:root{--cereja:#e50145;--laranja:#f15a22;--amarelo:#efd600;--verde:#0c893e;--roxo:#962e9d;--fundo:#f6f3ea;--cartao:#fff;--texto:#1f1f1f;--suave:#5b5b5f;--borda:#d3d3d3;--cinza:#ececec}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--fundo);color:var(--texto);font-family:Hind Madurai,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}.container{max-width:1320px;margin:0 auto;padding:20px 20px 64px}h1{font-size:26px;color:var(--cereja)}h1,h2{font-weight:700}h2{font-size:17px;color:var(--laranja);margin:22px 0 8px}h3{font-size:15px;margin-bottom:6px}.sub{color:var(--suave);font-size:13px}.top{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}.tabs,.top{display:flex;flex-wrap:wrap}.tabs{gap:4px;margin-bottom:16px;border-bottom:2px solid var(--borda)}.tab{padding:9px 14px;background:none;cursor:pointer;font-weight:700;color:var(--suave);border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-family:inherit;font-size:14px}.tab.on{color:var(--cereja);border-bottom-color:var(--cereja)}.card{background:var(--cartao);border:1px solid var(--borda);border-radius:10px;padding:14px 16px}.grid{display:grid;grid-gap:12px;gap:12px}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:8px}.cards{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.two{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.kpi .v{font-size:24px;font-weight:700;color:var(--cereja)}.kpi .l{color:var(--suave);font-size:12px}table.t{width:100%;border-collapse:collapse;background:#fff;font-size:13px}table.t th{background:var(--cereja);color:#fff;text-align:left;padding:8px;font-weight:700;white-space:nowrap}table.t td{padding:7px 8px;border-bottom:1px solid var(--borda);vertical-align:top}table.t tbody tr:nth-child(2n) td{background:#fbf9f3}table.t tr.tot td{background:var(--cinza);font-weight:700}.num{text-align:right;white-space:nowrap}.btn{background:var(--cereja);color:#fff;border:none;border-radius:999px;padding:8px 16px;font-weight:700;cursor:pointer;font-family:inherit;font-size:13px}.btn.sec{background:#fff;color:var(--cereja);border:1px solid var(--cereja)}.btn.sm{padding:3px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:default}.chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.scroll{overflow-x:auto;border:1px solid var(--borda);border-radius:8px}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:12px;padding:20px;width:100%;max-width:560px;max-height:90vh;overflow:auto}.modal label{display:block;font-size:12px;font-weight:700;color:var(--suave);margin:10px 0 3px}.modal input,.modal select,.modal textarea{width:100%;padding:8px;border:1px solid var(--borda);border-radius:6px;font-family:inherit;font-size:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filtros{margin-bottom:12px}.filtros input,.filtros select{padding:6px 8px;border:1px solid var(--borda);border-radius:6px;font-family:inherit;font-size:13px;background:#fff}.bar{height:8px;background:var(--cinza);border-radius:99px;overflow:hidden;margin:6px 0 2px}.bar>i{display:block;height:100%;background:var(--cereja)}.nota{background:#fff9e9;border:1px solid #f5d69e;border-radius:8px;padding:10px 12px;font-size:13px;margin:10px 0}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.muted{color:var(--suave)}.erro{color:var(--cereja);font-weight:700}.gantt{border-collapse:collapse;font-size:12px;background:#fff}.gantt td,.gantt th{border:1px solid var(--borda);padding:0}.gantt thead th{background:var(--cereja);color:#fff;padding:5px 4px;text-align:center;min-width:56px;font-weight:700}.gantt td.fix,.gantt thead th.fix{position:-webkit-sticky;position:sticky;left:0;z-index:2;min-width:300px;max-width:300px;text-align:left;padding:5px 8px;background:#fff}.gantt thead th.fix{background:var(--cereja);z-index:3}.gantt td.cel{height:24px}.gantt tr.grp td{background:var(--cinza);font-weight:700;padding:4px 8px}.gantt .chave td{background:#fff9e9;color:var(--cereja);font-size:10px;font-weight:700;text-align:center;padding:3px 2px}.gantt .hoje{box-shadow:inset 0 0 0 2px #5b5b5f}