@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeue-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeue-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeue-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/HelveticaNeue-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Neue Pixel Grotesk;src:url(/fonts/Neue-Pixel-Grotesk.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root,:root[data-theme=dark]{color-scheme:dark;--color-bg:#161616;--color-surface:#1e1e1e;--color-surface-hover:#262626;--color-border:#333;--color-text:#f3f3f3;--color-text-muted:#a0a0a0;--color-text-dim:#636363;--color-accent:#4075cf;--color-accent-hover:#6ca0f8;--color-warn:#ff584a;--color-sand:#ffe5b4;--color-lilac:#afafcc;--color-sky:#6ca0f8;--color-success:#2fa36b;--color-danger:#ff584a;--color-neutral:#636363;--color-status-pending:#f59e0b;--color-orange:#ff8a3d;--color-yellow:#f2d13a;--color-status-critical:#b91c1c;--color-sand-text:#5b3a00;--color-on-accent:#fff;--color-active-bg:#fff;--color-active-text:#161616}:root[data-theme=light]{color-scheme:light;--color-bg:#ebebeb;--color-surface:#fff;--color-surface-hover:#f0f0f0;--color-border:#ccc;--color-text:#333;--color-text-muted:#666;--color-text-dim:#b3b3b3;--color-accent:#00494b;--color-accent-hover:#006162;--color-warn:#ac0020;--color-sand:#ffe5b4;--color-lilac:#afafcc;--color-sky:#006162;--color-success:#2fa36b;--color-danger:#ac0020;--color-neutral:#8a8a8a;--color-status-pending:#f59e0b;--color-orange:#d9600a;--color-yellow:#c9a400;--color-status-critical:#b91c1c;--color-sand-text:#5b3a00;--color-on-accent:#fff;--color-active-bg:#161616;--color-active-text:#fff}:root{--font-body:"Helvetica Neue",-apple-system,sans-serif;--font-display:"Neue Pixel Grotesk","Helvetica Neue",sans-serif;--radius-sm:6px;--radius-md:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--color-chart-1:var(--color-accent);--color-chart-2:var(--color-orange);--color-chart-3:var(--color-success);--color-chart-4:var(--color-lilac)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}a{color:var(--color-sky)}table{border-collapse:collapse}.card,.modal{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 1px 2px rgba(0,0,0,.08);padding:var(--space-4) var(--space-6)}.btn,.card,.modal{background:var(--color-surface)}.btn{padding:6px 14px;font-size:14px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--color-border);color:var(--color-text)}.btn--primary{background:var(--color-active-bg);border-color:var(--color-active-bg);color:var(--color-active-text)}.btn--secondary{background:var(--color-surface-hover);border-color:var(--color-border);color:var(--color-text)}.btn--ghost{background:none;border:none;color:var(--color-text);font-size:16px;padding:2px 8px}.btn--muted{background:none;border:1px solid var(--color-border);color:var(--color-text-muted)}.btn--full{width:100%}.btn:disabled{opacity:.4;cursor:default}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;color:var(--color-on-accent)}.status-badge--success{background:var(--color-success)}.status-badge--danger{background:var(--color-danger)}.status-badge--warning{background:var(--color-status-pending)}.status-badge--critical{background:var(--color-status-critical)}.status-badge--neutral{background:var(--color-neutral)}.kpi-card{flex:1 1 200px;text-align:center;padding:var(--space-6)}.kpi-card-value{font-size:36px;font-weight:700;font-family:var(--font-display);color:var(--color-text)}.kpi-card-label{font-size:13px;color:var(--color-text-dim);margin-top:var(--space-2)}.metric-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4)}@media (max-width:900px){.metric-chart-grid{grid-template-columns:minmax(0,1fr)}}.metric-period-selector{display:flex;gap:var(--space-1);margin-bottom:var(--space-4)}.metric-chart-subtitle{margin:0 0 var(--space-3);font-size:13px;color:var(--color-text-muted)}.metric-chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:0 0 var(--space-2);padding:0;list-style:none;font-size:13px;color:var(--color-text)}.metric-chart-legend-item{display:flex;align-items:center;gap:var(--space-1)}.metric-chart-swatch{display:inline-block;width:10px;height:10px;margin-right:var(--space-1);border-radius:2px}.metric-chart-legend-item .metric-chart-swatch{margin-right:0}.metric-chart-swatch--s0{background:var(--color-chart-1)}.metric-chart-swatch--s1{background:var(--color-chart-2)}.metric-chart-swatch--s2{background:var(--color-chart-3)}.metric-chart-swatch--s3{background:var(--color-chart-4)}.metric-chart-title{margin:0 0 var(--space-1);font-size:16px;font-weight:600;color:var(--color-text)}.metric-chart-empty{margin:var(--space-6) 0;text-align:center;font-size:14px;color:var(--color-text-muted)}.metric-chart .recharts-cartesian-grid line{stroke:var(--color-border)}.metric-chart .recharts-cartesian-axis-tick-value{fill:var(--color-text-muted)}.metric-chart .recharts-cartesian-axis-line{stroke:var(--color-border)}.metric-chart .recharts-tooltip-cursor{fill:var(--color-surface-hover);stroke:var(--color-border)}.metric-chart-bar--s0{fill:var(--color-chart-1)}.metric-chart-bar--s1{fill:var(--color-chart-2)}.metric-chart-bar--s2{fill:var(--color-chart-3)}.metric-chart-bar--s3{fill:var(--color-chart-4)}.metric-chart-bar--partial{opacity:.45}.metric-chart-line--s0 .recharts-line-curve{stroke:var(--color-chart-1)}.metric-chart-line--s1 .recharts-line-curve{stroke:var(--color-chart-2)}.metric-chart-line--s2 .recharts-line-curve{stroke:var(--color-chart-3)}.metric-chart-line--s3 .recharts-line-curve{stroke:var(--color-chart-4)}.metric-chart-dot{stroke:var(--color-surface);stroke-width:1}.metric-chart-dot--s0{fill:var(--color-chart-1)}.metric-chart-dot--s1{fill:var(--color-chart-2)}.metric-chart-dot--s2{fill:var(--color-chart-3)}.metric-chart-dot--s3{fill:var(--color-chart-4)}.metric-chart-dot--partial{opacity:.45}.metric-chart-label{font-size:11px;fill:var(--color-text)}.metric-chart-label--partial{fill:var(--color-text-muted)}.metric-chart-tooltip{padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.3);font-size:13px;color:var(--color-text)}.metric-chart-tooltip-month{color:var(--color-text-muted)}.metric-chart-tooltip-partial{color:var(--color-text-muted);font-style:italic}.metric-chart-tooltip-value{font-size:18px;font-weight:700;font-family:var(--font-display)}.metric-chart-tooltip-series+.metric-chart-tooltip-series{margin-top:var(--space-2)}.metric-chart-tooltip-label{font-size:13px;font-weight:400;font-family:var(--font-body)}.metric-chart-tooltip-context,.metric-chart-tooltip-delta{color:var(--color-text-muted)}.metric-chart-tooltip-context{margin-top:var(--space-2)}.dt-scroll{overflow-x:auto;overflow-y:auto;max-height:80vh;scrollbar-width:auto;scrollbar-color:var(--color-border) var(--color-surface)}.dt-scroll::-webkit-scrollbar{width:12px;height:12px}.dt-scroll::-webkit-scrollbar-track{background:var(--color-surface)}.dt-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm);border:2px solid var(--color-surface)}.dt-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}.dt-table{width:100%;border:1px solid var(--color-border);font-size:14px}.dt-th,.dt-thead-row{background:var(--color-surface)}.dt-th{border-bottom:1px solid var(--color-border);border:solid var(--color-border);border-width:1px 1px 2px;box-shadow:0 1px 0 var(--color-border);padding:8px 12px;color:var(--color-text);text-align:left;position:-webkit-sticky;position:sticky;top:0;z-index:1}.dt-th--center{text-align:center}.dt-table--sticky-first .dt-cell,.dt-table--sticky-first .dt-th{white-space:nowrap}.dt-table--sticky-first .dt-cell:first-child:not(.dt-group-cell),.dt-table--sticky-first .dt-th:first-child{position:-webkit-sticky;position:sticky;left:0;min-width:260px;box-shadow:1px 0 0 var(--color-border)}.dt-table--sticky-first .dt-th:first-child{z-index:2}.dt-table--sticky-first .dt-cell:first-child:not(.dt-group-cell){z-index:1}.dt-table--sticky-first .dt-group-cell{text-align:left}.dt-group-sticky{position:-webkit-sticky;position:sticky;left:0;display:inline-block;padding-right:var(--space-4)}.dt-group-meta{margin-left:var(--space-3);font-size:13px;font-weight:400;color:var(--color-text-muted)}.dt-th--right{text-align:right}.dt-cell{border:1px solid var(--color-border);padding:8px 12px;color:var(--color-text);background:var(--color-surface)}.dt-cell--right{text-align:right}.dt-cell--center{text-align:center}.dt-cell--payout{min-width:70px;padding:8px 6px;text-align:right}.dt-cell--editable{cursor:pointer;background:var(--color-surface-hover)}.dt-cell--needs-fill{background:var(--color-sand);color:var(--color-sand-text)}.dt-cell--muted{color:var(--color-text-dim)}.dt-cell--status-meet{color:var(--color-success);font-weight:500}.dt-cell--status-not-meet{color:var(--color-danger);font-weight:500}.dt-cell--status-warn{color:var(--color-warn)}.dt-group-row{background:var(--color-surface)}.dt-group-cell{font-weight:600;font-size:15px;text-align:center}.dt-cell--clickable{cursor:pointer}.dt-th--flat{padding:6px 12px;color:var(--color-text);text-align:left;position:-webkit-sticky;position:sticky;top:0;background:var(--color-surface);z-index:1;border:none;border-bottom:2px solid var(--color-border);box-shadow:0 1px 0 var(--color-border)}.dt-th--sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dt-row-divider{border-bottom:1px solid var(--color-border)}.dt-cell--flat{padding:6px 12px;color:var(--color-text);background:var(--color-surface)}.dt-cell--status-overdue{color:var(--color-danger)}.dt-cell--status-due-soon{color:var(--color-sand)}.dt-cell--status-missing{background:var(--color-surface-hover)}.dt-cell--nested{opacity:.7}.dt-cell--indent,.dt-cell--nested{padding-left:24px}.dt-cell--subtotal{opacity:.8}.dt-cell--strong{font-weight:600}.dt-pinned-row{background:var(--color-surface-hover);border-bottom:2px solid var(--color-border)}.dt-expand-toggle{background:none;border:none;cursor:pointer;color:var(--color-sky);text-decoration:underline;font:inherit;padding:0}.dt-expand-toggle--warn{color:var(--color-warn)}.dt-expand-list{text-align:left;margin:6px 0 0;padding-left:16px;font-size:13px}.dt-cell--tone-red{background:color-mix(in srgb,var(--color-danger) 18%,var(--color-surface))}.dt-cell--tone-orange{background:color-mix(in srgb,var(--color-orange) 20%,var(--color-surface))}.dt-cell--tone-yellow{background:color-mix(in srgb,var(--color-yellow) 24%,var(--color-surface))}.dt-cell--tone-green{background:color-mix(in srgb,var(--color-success) 18%,var(--color-surface))}.dt-cell--tone-grey{background:color-mix(in srgb,var(--color-neutral) 22%,var(--color-surface))}.dt-cell--tone-blue{background:color-mix(in srgb,var(--color-accent) 18%,var(--color-surface))}.dt-tone-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.dt-tone-dot--red{background:var(--color-danger)}.dt-tone-dot--orange{background:var(--color-orange)}.dt-cell--reference{position:-webkit-sticky;position:sticky;top:var(--dt-head-h,40px);z-index:1;background:var(--color-surface-hover);color:var(--color-text-muted);font-style:italic;border-bottom:2px solid var(--color-border)}.form-control{border:1px solid var(--color-accent-hover);background:var(--color-surface);color:var(--color-text)}.form-control--block{width:100%;padding:2px 4px}.form-control--invalid{border-color:var(--color-danger)}.form-error-text{color:var(--color-danger);font-size:11px;margin-top:2px}.filter-select{padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:14px}.filter-select--compact{padding:4px 8px}.search-select{position:relative;display:inline-block}.search-select .filter-select{box-sizing:border-box;width:100%;min-width:200px}.search-select-list{position:absolute;top:calc(100% + 4px);left:0;z-index:10;min-width:100%;max-width:min(360px,calc(100vw - 2 * var(--space-4)));max-height:260px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px rgba(0,0,0,.3)}.search-select-option{padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select-option--active{background:var(--color-surface-hover)}.search-select-option--selected{background:var(--color-active-bg);color:var(--color-active-text)}.search-select-empty{padding:6px 10px}.explainer,.search-select-empty{font-size:13px;color:var(--color-text-muted)}.explainer{line-height:1.5;margin:0 0 var(--space-3);max-width:900px}.explainer--last{margin-bottom:var(--space-4)}@media (max-width:600px){.search-select{display:block;width:100%}}.popover{position:absolute;top:calc(100% + 4px);left:0;z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;width:200px;box-shadow:0 4px 12px rgba(0,0,0,.3)}.popover-month-btn{padding:6px 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;background:var(--color-surface-hover);color:var(--color-text)}.popover-month-btn--selected{background:var(--color-active-bg);color:var(--color-active-text)}.nav-group{position:relative}.nav-group__toggle{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-weight:500;color:var(--color-text-muted)}.nav-group__menu{position:absolute;top:calc(100% + 8px);left:0;z-index:20;min-width:160px;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:4px 0}.nav-group__link{padding:8px 14px;text-decoration:none;color:var(--color-text);white-space:nowrap}.nav-group__link:hover{background:var(--color-surface-hover)}