:root{--bg:#f6f7f9;--card:#fff;--border:#e5e8ec;--text:#1a2333;--muted:#6b7686;--accent:#2563eb;--accent-lt:#93c5fd;--amber:#f59e0b;--gray-bar:#cbd2da;--green:#16a34a;--red:#dc2626;--proj-bg:#fbfcfe;--chart-client:#2563eb;--chart-internal:#8da2c0;--chart-nonbill:#f59e0b;--chart-none:#d5dae1;--chart-billable-past:#2563eb;--chart-billable-future:#f59e0b;--chart-nonbillable:#8b5cf6;--chart-util-planned:#cbd5e1;--chart-util-planned-strong:#64748b;--chart-band-1:#15803d;--chart-band-2:#16a34a;--chart-band-3:#a16207;--chart-band-4:#c2410c;--chart-band-5:#dc2626;--chart-band-null:#9aa4b2;--chart-pipeline-hc:#f59e0b;--chart-pipeline-low:#8da2c0;--chart-pipeline-open:#eef1f5;--chart-pipeline-open-border:#d5dae1;--chart-revenue:#2563eb;--chart-revenue-proj:#93c5fd;--chart-revenue-pipeline:#f59e0b;--chart-revenue-pipeline-proj:#fcd34d;--chart-expenses:#cbd2da;--chart-expenses-proj:#e0e4e9;--chart-ebitda-line:#16a34a;--chart-ebitda-negative:#dc2626;--chart-pace-revenue:#7c3aed;--chart-pace-ebitda:#16a34a;--chart-grid-strong:#c6cdd6;--chart-grid-line:#eef1f5;--chart-axis-label:#6b7686;--row-hover:color-mix(in srgb, var(--accent) 3%, transparent);--row-hover-strong:color-mix(in srgb, var(--accent) 7%, transparent)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);padding:32px 40px 48px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}header{margin-bottom:22px}h1{letter-spacing:-.02em;font-size:22px;font-weight:700}.subtitle{color:var(--muted);margin-top:4px;font-size:13px}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.chip{background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:5px 12px;font-size:11.5px}.chip b{color:var(--text);font-weight:600}.refresh-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:11.5px;font-weight:600;display:inline-flex}.refresh-btn:hover{background:#1d4ed8}.switch-root{cursor:pointer;background:#cbd2da;border:none;border-radius:999px;flex:none;align-items:center;width:32px;height:18px;padding:0;transition:background .15s;display:inline-flex;position:relative}.switch-root[data-state=checked]{background:var(--accent)}.switch-root.amber[data-state=checked]{background:var(--amber)}.switch-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;display:block;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #10182833}.switch-thumb[data-state=checked]{transform:translate(14px)}.float-card{background:var(--card);border:1px solid var(--border);white-space:normal;overflow-wrap:break-word;max-width:300px;color:var(--text);z-index:50;border-radius:8px;padding:8px 10px;font-size:11.5px;line-height:1.4;box-shadow:0 4px 12px #1018282e}.float-title{color:var(--text);font-size:11.5px;font-weight:700}.float-sub{color:var(--muted);margin-top:2px;font-size:11px}.chart-tooltip{opacity:0;pointer-events:none;z-index:1000;transition:opacity 80ms;position:fixed;top:0;left:0}.chart-tooltip-row{align-items:center;gap:6px;padding:1px 0;display:flex}.chart-tooltip-swatch{border:1px solid #10182826;border-radius:2px;flex:none;width:9px;height:9px}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:26px 0 12px;font-size:11px;font-weight:700}.kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.kpi{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 18px}.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px #1018280a}.panel:not(.table-scroll){padding:20px}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;font-size:11.5px;display:flex}.sw{vertical-align:-2px;border-radius:4px;width:14px;height:14px;margin-right:5px;display:inline-block}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);padding:7px 10px}th{color:var(--muted);font-size:11px;font-weight:600}th:first-child,td:first-child{text-align:left}td:first-child{font-weight:600}td.proj,th.proj{background:var(--proj-bg)}td.neg{color:var(--red)}tr.total-row td{border-top:2px solid var(--border);font-weight:700}td.tot{background:#f2f5f9;font-weight:700}th.tot{color:var(--text);background:#f2f5f9}td.dim{color:#b6bec9}table :is(tbody,tfoot) tr:hover>td,table :is(tbody,tfoot) tr:hover>th,table td.col-hover,table th.col-hover{background-image:linear-gradient(var(--row-hover), var(--row-hover))}table :is(tbody,tfoot) tr:hover>td.col-hover,table :is(tbody,tfoot) tr:hover>th.col-hover{background-image:linear-gradient(var(--row-hover-strong), var(--row-hover-strong))}.badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#eef2ff;border-radius:999px;padding:1px 6px;font-size:9px;font-weight:700;display:inline-block}.chart-wrap{width:100%}.empty-state{color:var(--muted);text-align:center;font-size:13px}footer{color:var(--muted);border-top:1px solid var(--border);margin-top:34px;padding-top:14px;font-size:11.5px;line-height:1.6}@media (width<=640px){body{padding:20px}}
