:root{font-family:Manrope,Segoe UI,Avenir Next,sans-serif;color:#e5e7eb;background:radial-gradient(circle at 14% 10%,rgba(59,130,246,.12),transparent 32%),radial-gradient(circle at 86% 12%,rgba(16,185,129,.1),transparent 36%),linear-gradient(180deg,#0b1220,#0a0f1a);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;font-size:16px;background:transparent}h1,h2,p{margin:0}.app-shell{margin:0 auto;padding:1.3rem;max-width:1700px;display:grid;gap:1rem}.lock-screen{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.lock-card{width:min(480px,100%);padding:1.4rem;display:grid;gap:.9rem}.lock-card h1{font-size:1.7rem}.lock-card p{color:#cbd5e1}.lock-form{display:grid;gap:.6rem}.lock-form label{font-size:.95rem}.lock-form input{width:100%}.lock-logo-wrap{text-align:center;padding-top:.5rem}.lock-logo{height:64px;width:auto;object-fit:contain}.lock-error{color:#fca5a5!important;font-weight:700}.panel{background:var(--brand-panel);border:1px solid var(--brand-border);border-radius:16px;padding:1.2rem 1.3rem;box-shadow:0 10px 32px #00000059;margin-bottom:1rem}.report-workspace{padding:1.3rem;border-color:#334155;background:linear-gradient(180deg,#111827,#0f172a)}.report-workspace .chart-panel,.report-tab-panel .chart-panel{margin-top:.55rem;border-color:#334155;box-shadow:none}.report-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.85rem}.report-tab-btn{background:#0b1625;border:1px solid #334155;color:#cbd5e1;font-weight:700;font-size:.82rem;line-height:1.1;white-space:nowrap;padding:.42rem .7rem}.report-tab-btn-active{background:#2563eb;border-color:#2563eb;color:#fff}.report-tab-panel{display:grid;gap:.8rem}.report-tab-btn-scenario{border-color:#7c3aed;color:#ddd6fe}.report-tab-btn-scenario.report-tab-btn-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.scenario-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .9rem;border:1px solid #5b21b6;border-radius:12px;background:linear-gradient(120deg,#7c3aed2e,#38bdf814)}.scenario-banner-info{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.scenario-banner-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;background:#7c3aed;color:#fff;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.scenario-banner-text{font-weight:700;color:var(--brand-text)}.scenario-banner-sync{font-size:.78rem;color:var(--brand-muted);font-weight:600}.scenario-banner-sync.error{color:#fca5a5}.scenario-banner-actions{display:flex;gap:.5rem}.scenario-approve-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:1px solid #16a34a;color:#04210f;font-weight:800}.scenario-approve-btn:disabled{opacity:.5;cursor:not-allowed}.scenario-grid-scroll{position:relative;overflow-x:auto;border:1px solid var(--brand-border);border-radius:12px}.scenario-grid{display:flex;flex-direction:column}.scenario-grid-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(148,163,184,.12)}.scenario-grid-row:last-child{border-bottom:none}.scenario-grid-head{position:sticky;top:0;z-index:3;background:#0b1625}.scenario-row-label{position:sticky;left:0;z-index:2;width:180px;min-width:180px;display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#0b1625;border-right:1px solid rgba(148,163,184,.18);font-weight:700;font-size:.82rem;color:var(--brand-text)}.scenario-corner{z-index:4;color:var(--brand-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.scenario-row-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.scenario-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-col-head{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:.3rem 0;border-left:1px solid rgba(148,163,184,.1);font-size:.7rem;color:var(--brand-muted)}.scenario-col-week{font-weight:700;color:var(--brand-text)}.scenario-col-cap{font-size:.64rem;opacity:.8}.scenario-col-over{border-top:3px solid #ef4444;color:#fca5a5}.scenario-col-over .scenario-col-week{color:#fca5a5}.scenario-cell{flex-shrink:0;position:relative;border-left:1px solid rgba(148,163,184,.08)}.scenario-cell-target{background:#7c3aed29;box-shadow:inset 0 0 0 2px #7c3aed99}.scenario-bar{position:absolute;left:8px;right:8px;bottom:4px;border-radius:4px 4px 2px 2px;cursor:grab;display:flex;align-items:flex-start;justify-content:center;box-shadow:0 1px 3px #0006}.scenario-bar:hover{filter:brightness(1.1);outline:2px solid rgba(255,255,255,.35)}.scenario-bar-dragging{cursor:grabbing;opacity:.75}.scenario-bar-ghost{position:absolute;left:8px;right:8px;bottom:4px;border:1px dashed rgba(226,232,240,.6);border-radius:4px;background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(226,232,240,.12) 3px,rgba(226,232,240,.12) 6px);pointer-events:none}.scenario-delta{margin-top:-14px;padding:0 4px;border-radius:999px;font-size:.62rem;font-weight:800;line-height:1.4;white-space:nowrap;background:#0b1220;border:1px solid currentColor}.scenario-delta.up{color:#fca5a5}.scenario-delta.down{color:#86efac}.scenario-grid-empty{padding:1.4rem;text-align:center;color:var(--brand-muted);border:1px dashed var(--brand-border);border-radius:12px}.scenario-chart-wrap{display:grid;gap:.5rem}.scenario-popover{position:fixed;z-index:1000;width:250px;display:grid;gap:.55rem;padding:.8rem;border-radius:12px;background:#0f172a;border:1px solid #5b21b6;box-shadow:0 18px 48px #0009}.scenario-popover-title{font-weight:800;color:var(--brand-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-popover-sub{font-size:.76rem;color:var(--brand-muted);margin-top:-.3rem}.scenario-popover-field{display:grid;gap:.25rem;font-size:.78rem;font-weight:600;color:#e5e7eb}.scenario-popover-field input,.scenario-popover-field select{width:100%}.scenario-popover-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.2rem}.scenario-grid-wrap{display:grid;gap:.6rem}.scenario-select-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;padding:.5rem .8rem;border-radius:10px;border:1px solid #5b21b6;background:#7c3aed24}.scenario-select-count{font-weight:800;color:#ddd6fe}.scenario-select-agg{font-size:.8rem;color:var(--brand-text)}.scenario-select-over{color:#fca5a5}.scenario-select-hint{font-size:.78rem;color:var(--brand-muted);flex:1 1 auto;min-width:12rem}.scenario-col-head{cursor:pointer}.scenario-col-head:hover{background:#94a3b81f}.scenario-col-selected{background:#7c3aed38;box-shadow:inset 0 0 0 2px #7c3aedb3}.scenario-col-selected .scenario-col-week{color:#ddd6fe}.scenario-cell-selected{background:#7c3aed14}.scenario-row-bulkable{cursor:pointer}.scenario-row-bulkable:hover{background:#15233b}.scenario-row-bulk-chip{margin-left:auto;padding:.05rem .4rem;border-radius:999px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#7c3aed;color:#fff}.scenario-row-clickable{cursor:pointer}.scenario-row-clickable:hover{background:#15233b}.scenario-row-shift-chip{margin-left:auto;color:var(--brand-muted);font-size:.95rem;line-height:1;opacity:.7}.scenario-row-clickable:hover .scenario-row-shift-chip{opacity:1;color:#ddd6fe}.at-risk-panel{display:grid;gap:1rem}.at-risk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem}.at-risk-kpi{display:grid;gap:.25rem;padding:.8rem 1rem;border-radius:12px;border:1px solid var(--brand-border);background:var(--brand-panel)}.at-risk-kpi.danger{border-color:#ef4444;background:#ef44441a}.at-risk-kpi.warn{border-color:#f59e0b;background:#f59e0b1a}.at-risk-kpi-value{font-size:1.6rem;font-weight:800;color:var(--brand-text);line-height:1}.at-risk-kpi-label{font-size:.78rem;color:var(--brand-muted);font-weight:600}.at-risk-section{display:grid;gap:.55rem}.at-risk-section h3{margin:0;font-size:1.02rem}.at-risk-empty{padding:.9rem 1rem;border:1px dashed var(--brand-border);border-radius:10px;color:var(--brand-muted)}.at-risk-table-scroll{overflow-x:auto;border:1px solid var(--brand-border);border-radius:12px}.at-risk-table{width:100%;border-collapse:collapse;font-size:.84rem}.at-risk-table th,.at-risk-table td{padding:.5rem .7rem;text-align:left;border-bottom:1px solid rgba(148,163,184,.14);white-space:nowrap}.at-risk-table thead th{position:sticky;top:0;background:#0b1625;color:var(--brand-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.at-risk-table tbody tr:last-child td{border-bottom:none}.at-risk-table .num{text-align:right;font-variant-numeric:tabular-nums}.at-risk-table .danger-text{color:#fca5a5;font-weight:700}.at-risk-muted{color:var(--brand-muted)}.at-risk-task-name{max-width:240px;overflow:hidden;text-overflow:ellipsis}.at-risk-pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700}.at-risk-pill.warn{background:#f59e0b2e;color:#fcd34d;border:1px solid #b45309}.at-risk-pill.danger{background:#ef44442e;color:#fca5a5;border:1px solid #b91c1c}.at-risk-badge{display:inline-block;padding:.12rem .5rem;border-radius:6px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.at-risk-badge.overdue{background:#b91c1c;color:#fff}.at-risk-badge.behind{background:#b45309;color:#fff}.at-risk-badge.watch{background:#ca8a04;color:#1f1300}.at-risk-drivers{display:inline-flex;gap:.3rem;flex-wrap:wrap}.at-risk-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .45rem;border-radius:999px;background:#15233b;font-size:.76rem}.at-risk-chip-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.at-risk-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.at-risk-count{font-size:.78rem;color:var(--brand-muted);display:inline-flex;align-items:center;gap:.5rem}.at-risk-clear{background:transparent;border:none;color:var(--brand-accent);font-weight:700;font-size:.78rem;padding:0;cursor:pointer;text-decoration:underline}.at-risk-clear:hover{background:transparent}.at-risk-filter{display:inline-flex}.at-risk-filter-trigger{display:inline-flex;align-items:center;gap:.2rem;background:transparent;border:none;padding:0;cursor:pointer;color:var(--brand-muted);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.at-risk-filter-trigger:hover{background:transparent;color:var(--brand-text)}.at-risk-filter-trigger.active{color:var(--brand-accent)}.at-risk-filter-caret{font-size:.6rem}.at-risk-filter-menu{position:fixed;z-index:1000;min-width:11rem;max-height:16rem;overflow-y:auto;display:grid;gap:.15rem;padding:.45rem;background:#0f172a;border:1px solid #334155;border-radius:10px;box-shadow:0 14px 36px #0000008c;text-transform:none;letter-spacing:normal}.at-risk-filter-all{background:transparent;border:1px solid var(--brand-border);color:var(--brand-text);border-radius:7px;padding:.2rem .4rem;font-size:.74rem;font-weight:700;margin-bottom:.2rem;text-align:left}.at-risk-filter-opt{display:flex;align-items:center;gap:.5rem;padding:.28rem .35rem;border-radius:6px;font-size:.8rem;font-weight:500;color:var(--brand-text);cursor:pointer}.at-risk-filter-opt:hover{background:#1f2937}.at-risk-filter-empty{padding:.3rem;color:var(--brand-muted);font-size:.78rem}.at-risk-th-search span{display:block}.at-risk-th-search input{margin-top:.2rem;width:100%;min-width:6rem;max-width:9rem;font-size:.76rem;padding:.2rem .4rem;text-transform:none;letter-spacing:normal;font-weight:400}.at-risk-no-match{text-align:center;color:var(--brand-muted);padding:1rem}.scenario-bulk-section{display:grid;gap:.4rem;padding-bottom:.5rem;border-bottom:1px solid rgba(148,163,184,.16)}.scenario-bulk-note{font-size:.72rem;color:var(--brand-muted)}.scenario-select-toolbar-cells{border-color:#0e7490;background:#0ea5c024}.scenario-select-move{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--brand-text)}.scenario-select-move select{min-width:6rem}.scenario-cell-picked{box-shadow:inset 0 0 0 2px #2dd4ded9;background:#0ea5c01a}.scenario-bar-picked{outline:2px solid #67e8f9;outline-offset:1px}.forecast-selection-summary{display:grid;gap:.65rem;padding:.8rem .95rem;border:1px solid #334155;border-radius:12px;background:#0b1625}.forecast-selection-summary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.forecast-selection-summary-header strong{color:#f8fafc}.forecast-selection-summary-header p,.forecast-selection-hint{color:#cbd5e1;margin:.18rem 0 0;font-size:.92rem}.forecast-selection-summary-grid{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.forecast-selection-summary-grid>div{display:grid;gap:.16rem;padding:.55rem .65rem;border-radius:10px;border:1px solid #1f2937;background:#0f172a}.forecast-selection-summary-grid span{font-size:.8rem;color:#cbd5e1}.forecast-selection-summary-grid strong{font-size:1rem;color:#f8fafc}.forecast-filter-panel{display:grid;gap:.65rem;padding:.8rem .95rem;border:1px solid #334155;border-radius:12px;background:#0b1625}.forecast-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.forecast-filter-header strong{color:#f8fafc}.forecast-filter-header p,.forecast-filter-note{color:#cbd5e1;margin:.18rem 0 0;font-size:.92rem}.forecast-filter-actions{display:flex;flex-wrap:wrap;gap:.45rem}.report-header{align-items:flex-start;gap:1rem}.report-header-main{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(260px,1fr);gap:.8rem 1rem;align-items:start}.report-header-copy{min-width:0}.report-header-copy p{max-width:52rem}.report-context{display:flex;flex-wrap:wrap;gap:.35rem .6rem;font-size:.9rem;color:#cbd5e1;align-content:flex-start}.report-context span{padding:.15rem .48rem;border:1px solid #334155;border-radius:999px;background:#0b1625}.report-summary-table td:first-child{font-weight:700}.export-error{margin:.4rem 0 0;color:#fca5a5;font-weight:600}.report-workspace.pdf-exporting{background:#fff;border-color:#cbd5e1;color:#0f172a;box-shadow:none}.report-workspace.pdf-exporting .section-header p,.report-workspace.pdf-exporting .report-context,.report-workspace.pdf-exporting .report-tab-btn,.report-workspace.pdf-exporting th,.report-workspace.pdf-exporting td{color:#0f172a}.report-workspace.pdf-exporting .report-tab-btn{background:#e2e8f0;border-color:#cbd5e1}.report-workspace.pdf-exporting .report-tab-btn-active{background:#dbeafe;border-color:#93c5fd}.control-panel{min-height:520px;padding:1.7rem 1.6rem 1.45rem}.control-panel.collapsed{min-height:auto;padding-bottom:1rem}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:1rem;padding:.55rem 1.1rem;background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:14px;box-shadow:0 4px 24px #00000059;margin-bottom:.75rem}.app-header-brand{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.app-header-logo{height:36px;width:auto;object-fit:contain}.app-header-wordmark{font-size:.78rem;font-weight:700;color:var(--brand-muted);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.app-header-nav{flex:1;display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.app-header-actions{display:flex;align-items:center;gap:.55rem;flex-shrink:0}.user-mode-badge{display:inline-flex;align-items:center;padding:.22rem .7rem;border-radius:999px;border:1px solid var(--brand-accent);background:#00a3c41f;color:var(--brand-text);font-size:.78rem;font-weight:700;white-space:nowrap}.page-nav{display:inline-flex;gap:.5rem;margin-bottom:.9rem;flex-wrap:wrap}.page-tab{padding:.4rem .9rem;border-radius:10px;border:1px solid var(--brand-border);background:#0b1220;color:var(--brand-text);font-weight:700}.page-tab-active{border-color:#38bdf8;background:linear-gradient(120deg,#0ea5e9,#312e81);color:#0b1220}.production-subnav{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem 1.1rem;margin:-.35rem 0 .75rem;background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:14px;box-shadow:0 4px 24px #00000059}.production-subnav-label{margin-right:.4rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-muted)}.title-bar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.how-to-use-page{display:grid;gap:1rem}.how-to-use-hero{position:relative;overflow:hidden;background:radial-gradient(circle at top right,rgba(56,189,248,.18),transparent 30%),linear-gradient(135deg,#0ea5e91f,#0f172aeb)}.how-to-use-hero-copy{position:relative;z-index:1;display:grid;gap:1rem;max-width:64rem}.how-to-use-badge{display:inline-flex;align-items:center;width:fit-content;padding:.28rem .72rem;border-radius:999px;border:1px solid rgba(125,211,252,.45);background:#0b12208c;color:#bae6fd;font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.how-to-use-callout{padding:.9rem 1rem;border-radius:14px;border:1px solid rgba(59,130,246,.35);background:#0b1625b3;color:#dbeafe;max-width:52rem}.how-to-use-actions{display:flex;flex-wrap:wrap;gap:.6rem}.how-to-use-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.how-to-use-card,.how-to-use-steps{display:grid;gap:.8rem}.how-to-use-step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:flex-start;padding:.85rem .95rem;border-radius:12px;border:1px solid #1f2937;background:#0b1625}.how-to-use-step p{color:#cbd5e1;line-height:1.55}.how-to-use-step-number{width:2rem;height:2rem;border-radius:999px;display:inline-grid;place-items:center;background:linear-gradient(135deg,#22d3ee,#2563eb);color:#0b1220;font-weight:800}.how-to-use-tab-list,.how-to-use-tip-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.how-to-use-tab-item,.how-to-use-tip{display:grid;gap:.35rem;padding:.9rem 1rem;border-radius:12px;border:1px solid #1f2937;background:#0b1625}.how-to-use-tab-item strong,.how-to-use-tip strong{color:#f8fafc}.how-to-use-tab-item p,.how-to-use-tip p{color:#cbd5e1;line-height:1.55}.title-actions{display:grid;gap:.55rem;justify-items:end;align-content:start}.collapse-toggle{display:inline-flex;align-items:center;gap:.4rem}.chevron{display:inline-block;transition:transform .18s ease}.chevron-closed{transform:rotate(-90deg)}.department-page{display:grid;gap:1rem}.dept-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;background:#0f172a;border:1px solid #1f2937;border-radius:12px;padding:.7rem .9rem}.dept-summary span{color:#94a3b8;display:block;margin-bottom:.2rem}.dept-summary strong{color:#e2e8f0;font-size:1.15rem}.dept-sync strong{font-size:.96rem;line-height:1.35}.dept-summary>button{align-self:center}.dept-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-bottom:.4rem;padding:.35rem 0}.dept-filters.collapsed{display:none}.dept-filters label{display:grid;gap:.25rem;color:#cbd5e1}.dept-filters select{background:#0b1220;color:#e5e7eb;border:1px solid #1f2937;padding:.45rem;border-radius:10px;min-height:120px}.dept-week{background:#0b1220;border:1px solid #1f2937;border-radius:12px;padding:.9rem;display:grid;gap:.65rem}.dept-week-header{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;flex-wrap:wrap}.dept-week-header h3{margin:0}.dept-week-header p{margin:.1rem 0 0;color:#94a3b8}.dept-week-totals{display:grid;gap:.4rem;justify-items:end}.dept-project-totals{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.project-chip{color:#0b1220;padding:.18rem .5rem;border-radius:999px;font-weight:700;font-size:.88rem}.dept-table{display:grid;gap:.35rem}.dept-table-header,.dept-row{display:grid;grid-template-columns:1.15fr 1.05fr 1fr .85fr 1fr .9fr;gap:.5rem;align-items:center}.dept-filter-actions{display:flex;align-items:flex-end;justify-content:flex-start}.dept-table-header{color:#a5b4fc;font-weight:700;font-size:.95rem;border-bottom:1px solid #1f2937;padding-bottom:.35rem}.dept-row{padding:.5rem 0;border-bottom:1px solid #0f172a}.dept-row:last-child{border-bottom:none}.dept-filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 2rem;margin-bottom:1.25rem}.dept-filter-group{display:grid;gap:.25rem}.dept-filter-group label{font-size:.78rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.dept-filter-group select{background:#0b1220;color:#e5e7eb;border:1px solid #1f2937;border-radius:6px;padding:.35rem .6rem;font-size:.9rem;min-width:200px}.dept-filter-stats{display:flex;gap:1.25rem;flex-wrap:wrap}.dept-stat{display:flex;align-items:center;gap:.4rem;font-size:.88rem;color:#cbd5e1}.dept-stat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dept-table-wrap{overflow-x:auto}.release-table{display:table;width:100%;border-collapse:collapse}.release-table th,.release-table td{text-align:left;position:static}.release-table thead th{padding:.3rem .5rem;text-align:left;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-accent, #a5b4fc);background:transparent;border-bottom:2px solid #1f2937;white-space:nowrap}.dept-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.dept-th-sortable:hover{color:#e2e8f0}.dept-table-row td{padding:.25rem .5rem;border-bottom:1px solid #0f172a;font-size:.95rem;vertical-align:middle;text-align:left;background:transparent}.dept-table-row:last-child td{border-bottom:none}.dept-table-row:hover td{background:#ffffff08}.dept-project-chip{display:inline-block;padding:.1rem .35rem;border-radius:4px;border:1px solid currentColor;font-size:.88rem;font-weight:600;white-space:nowrap}.dept-release-date{font-variant-numeric:tabular-nums;font-weight:600;color:#e2e8f0}.dept-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.1rem .4rem;border-radius:8px;font-weight:700;font-size:.88rem;white-space:nowrap}.dept-status-complete{background:#22c55e26;color:#4ade80}.dept-status-today{background:#f871712e;color:#f87171}.dept-status-warning{background:#f59e0b2e;color:#fbbf24}.dept-status-scheduled{background:#3b82f62e;color:#93c5fd}.gcap-panel{margin-bottom:1rem;padding:1rem 1.1rem}.gcap-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.gcap-toggle{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;color:#e2e8f0}.gcap-toggle h3{margin:0;font-size:1.02rem;font-weight:700}.gcap-toggle h4{margin:0;font-size:.9rem;font-weight:700;color:#cbd5e1}.gcap-week-toggle{margin-bottom:.3rem}.gcap-caret{transition:transform .15s ease;color:#93c5fd;font-size:.9rem}.gcap-caret.collapsed{transform:rotate(-90deg)}.gcap-legend{display:flex;align-items:center;gap:.85rem;font-size:.75rem;color:#94a3b8}.gcap-legend-item{display:inline-flex;align-items:center;gap:.3rem}.gcap-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}.gcap-swatch.under{background:#22c55e80}.gcap-swatch.near{background:#f59e0b8c}.gcap-swatch.over{background:#f8717199}.gcap-sub{margin:.4rem 0 .8rem;font-size:.82rem;color:#94a3b8}.gcap-empty{margin:.6rem 0 0;font-size:.85rem;color:#94a3b8}.gcap-grid-wrap{border:1px solid #1f2937;border-radius:10px}.gcap-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.8rem}.gcap-grid th,.gcap-grid td{border-bottom:1px solid #16202e;border-right:1px solid #16202e;padding:.4rem .5rem;text-align:center;white-space:nowrap}.gcap-corner{position:sticky;left:0;z-index:3;width:132px;min-width:132px;background:#0d1726;border-right:1px solid #243042;text-align:left;color:#a5b4fc}.gcap-weekhead{cursor:pointer;min-width:62px;color:#cbd5e1;font-weight:600;-webkit-user-select:none;user-select:none}.gcap-weekhead.sel{color:#fff;box-shadow:inset 0 -2px #6366f1}.gcap-rowhead{position:sticky;left:0;z-index:2;width:132px;min-width:132px;background:#0d1726;border-right:1px solid #243042;text-align:left}.gcap-res-name{display:block;font-weight:600;color:#e2e8f0}.gcap-res-cap{display:block;font-size:.68rem;color:#64748b}.gcap-cell{cursor:pointer;min-width:56px;position:relative;color:#cbd5e1}.gcap-cell.under{background:#22c55e21}.gcap-cell.near{background:#f59e0b29}.gcap-cell.over{background:#f871712e}.gcap-cell.nocap{background:#3b82f61f}.gcap-cell.none{color:#475569}.gcap-cell.col-sel{box-shadow:inset 0 0 0 1px #6366f159}.gcap-cell.active{box-shadow:inset 0 0 0 2px #6366f1}.gcap-cell-h{font-weight:600}.gcap-cell-over{display:block;font-size:.66rem;font-weight:700;color:#f87171}.gcap-cell-nocap{display:block;font-size:.62rem;color:#93c5fd}.gcap-cell-zero{color:#334155}.gcap-total-row th,.gcap-total-row td{border-top:2px solid #1f2937;font-weight:700;color:#e2e8f0;background:#94a3b80f}.gcap-week-detail{margin-top:1rem}.gcap-week-pick{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;color:#cbd5e1}.gcap-week-pick select{background:#0d1b30;color:#e2e8f0;border:1px solid #1e3a5f;border-radius:6px;padding:.25rem .5rem}.gcap-week-table{font-size:.85rem}.gcap-week-row{cursor:pointer}.gcap-week-row:hover{background:#6366f114}.gcap-total-detail td{border-top:2px solid #1f2937}.gcap-muted{color:#64748b}.gcap-drill{margin-top:.85rem}.gcap-drill-body{padding:.75rem .9rem}.gcap-drill-note{margin:0 0 .6rem;font-size:.82rem;color:#fca5a5}.gcap-drill-list{display:flex;flex-direction:column;gap:.45rem}.gcap-drill-row{display:grid;grid-template-columns:14px minmax(120px,1.4fr) 3fr auto;align-items:center;gap:.6rem}.gcap-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.gcap-drill-proj{display:inline-flex;align-items:center;gap:.4rem;color:#e2e8f0;font-size:.84rem}.gcap-top-tag{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#f87171;background:#f8717129;border-radius:4px;padding:.05rem .35rem}.gcap-drill-bar{height:8px;background:#94a3b824;border-radius:4px;overflow:hidden}.gcap-drill-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#6366f1,#818cf8)}.gcap-drill-hrs{font-variant-numeric:tabular-nums;font-size:.82rem;color:#cbd5e1;white-space:nowrap}.project-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:.4rem;box-shadow:0 0 0 2px #0f172a99}.project-cell{display:inline-flex;align-items:center;gap:.2rem}.dept-progress{display:flex;align-items:center;gap:.4rem}.dept-progress-bar{flex:1;height:8px;background:#0f172a;border-radius:999px;overflow:hidden;border:1px solid #1f2937}.dept-progress-fill{height:100%;background:linear-gradient(120deg,#22d3ee,#2563eb)}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .5rem;border-radius:10px;font-weight:700;font-size:.9rem}.status-pill.status-completed{background:#22c55e33;color:#4ade80}.status-pill.status-in-progress{background:#3b82f633;color:#93c5fd}.status-pill.status-scheduled{background:#eab30833;color:#fbbf24}.status-pill.status-overdue{background:#f8717140;color:#fca5a5}.dept-view-toggle{display:flex;gap:.25rem;align-self:center}.dept-view-btn{background:#0b1625;border:1px solid #1f3347;color:#64748b;font-size:.78rem;font-weight:700;padding:.32rem .75rem;border-radius:6px;cursor:pointer;transition:background .1s,color .1s,border-color .1s;white-space:nowrap}.dept-view-btn:hover{background:#112240;color:#94a3b8;border-color:#2a4a70}.dept-view-btn-active{background:#1e3a6e;border-color:#2563eb;color:#93c5fd}.dept-board{display:grid;gap:.6rem}.dept-board-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .85rem;background:#f59e0b12;border:1px solid rgba(245,158,11,.22);border-radius:8px;flex-wrap:wrap}.dept-board-bar-info{font-size:.8rem;color:#fbbf24}.dept-board-empty{padding:2rem;text-align:center;color:#475569;font-size:.9rem}.dept-board-scroll{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:.75rem;align-items:flex-start;scrollbar-width:thin;scrollbar-color:#1f2937 transparent}.dept-board-scroll::-webkit-scrollbar{height:5px}.dept-board-scroll::-webkit-scrollbar-track{background:transparent}.dept-board-scroll::-webkit-scrollbar-thumb{background:#1f2937;border-radius:99px}.dept-board-col{flex:0 0 210px;min-width:200px;max-width:220px;background:#070e1b;border:1px solid #162030;border-radius:12px;padding:.55rem .6rem .7rem;display:flex;flex-direction:column;gap:.45rem;transition:border-color .12s,background .12s}.dept-board-col-target{border-color:#38bdf8!important;background:#38bdf80a}.dept-board-col-current{border-color:#2563eb}.dept-board-col-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.38rem;border-bottom:1px solid #162030;gap:.3rem}.dept-board-col-title{display:flex;align-items:center;gap:.3rem}.dept-board-col-label{font-weight:700;font-size:.84rem;color:#e2e8f0}.dept-board-col-now{background:#2563eb;color:#eff6ff;font-size:.6rem;font-weight:800;padding:.08rem .28rem;border-radius:4px;letter-spacing:.05em}.dept-board-col-meta{font-size:.72rem;color:#3a5270;white-space:nowrap}.dept-board-cards{display:flex;flex-direction:column;gap:.4rem;min-height:44px}.dept-board-drop-hint{border:2px dashed #1f3a5f;border-radius:8px;padding:.7rem;text-align:center;color:#2a4060;font-size:.78rem}.dept-card{background:#0c1929;border:1px solid #1a2e4a;border-left-width:3px;border-left-style:solid;border-left-color:#64748b;border-radius:8px;padding:.5rem .58rem;cursor:grab;display:flex;flex-direction:column;gap:.26rem;-webkit-user-select:none;user-select:none;transition:box-shadow .15s,opacity .15s}.dept-card:active{cursor:grabbing}.dept-card:hover{box-shadow:0 3px 14px #00000073}.dept-card-dragging{opacity:.3}.dept-card-in-progress{background:#f59e0b0a}.dept-card-completed{background:#22c55e0a}.dept-card-overdue{background:#ef44440d}.dept-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.25rem}.dept-card-project{font-size:.71rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.dept-card-flags{display:flex;gap:.18rem;flex-shrink:0}.dept-card-flag{font-size:.59rem;font-weight:700;padding:.08rem .26rem;border-radius:4px;border:1px solid;line-height:1.4}.dept-card-flag-moved{background:#f59e0b1f;color:#fbbf24;border-color:#f59e0b47}.dept-card-flag-ss{background:#8b5cf61f;color:#c4b5fd;border-color:#8b5cf647}.dept-card-flag-edited{background:#06b6d41a;color:#67e8f9;border-color:#06b6d447}.dept-card-sequence{font-size:.8rem;font-weight:600;color:#e2e8f0;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dept-card-meta{display:flex;gap:.45rem;font-size:.7rem;flex-wrap:wrap}.dept-card-hours{color:#8899b0;font-variant-numeric:tabular-nums}.dept-card-hours-btn{all:unset;cursor:pointer;color:#8899b0;font-variant-numeric:tabular-nums;font-size:inherit;border-radius:3px;padding:0 2px;transition:background .15s,color .15s}.dept-card-hours-btn:hover{background:#06b6d41f;color:#67e8f9}.dept-card-hours-input{width:4.5rem;background:#06b6d414;border:1px solid rgba(6,182,212,.4);border-radius:4px;color:#e2e8f0;font-size:.72rem;font-variant-numeric:tabular-nums;padding:1px 4px;outline:none}.dept-card-hours-input:focus{border-color:#06b6d4;background:#06b6d424}.dept-card-due{color:#4a6080}.dept-card-progress-row{display:flex;align-items:center;gap:.3rem}.dept-card-pct{font-size:.66rem;color:#3a5270;white-space:nowrap}.dept-card-status-btn{cursor:pointer;text-align:left;font-size:.69rem;border-radius:999px;padding:.18rem .48rem;transition:filter .12s;align-self:flex-start;border:none}.dept-card-status-btn:hover{filter:brightness(1.25)}.dept-card.dept-card-readonly{cursor:default}.dept-card.dept-card-copy{border-left-style:dashed;background:#6366f10d;opacity:.92}.dept-card.dept-card-copy:hover{opacity:1}.dept-card-flag-copy{background:#6366f11f;color:#a5b4fc;border-color:#6366f14d}.dept-card.dept-card-autosplit{border-left-style:dotted;border-left-width:3px;background:#22c55e0a;opacity:.9}.dept-card.dept-card-autosplit:hover{opacity:1;background:#22c55e14}.dept-card-flag-split{background:#22c55e21;color:#86efac;border-color:#22c55e4d}.dept-board-col-over-capacity{border-top-color:#ef4444b3!important;background:#ef44440a}.dept-board-col-near-capacity{border-top-color:#fbbf24b3!important;background:#fbbf2408}.dept-board-col-header-right{display:flex;align-items:center;gap:.25rem}.dept-util-badge{font-size:.65rem;font-weight:700;padding:.08rem .3rem;border-radius:99px;background:#94a3b81f;color:#94a3b8;border:1px solid rgba(148,163,184,.2);white-space:nowrap}.dept-util-badge-near{background:#fbbf2421;color:#fbbf24;border-color:#fbbf244d}.dept-util-badge-over{background:#ef444426;color:#f87171;border-color:#ef444459}.dept-board-bar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.dept-carry-forward-btn{color:#34d399!important;border-color:#34d39959!important}.dept-carry-forward-btn:hover{background:#34d39914!important}.dept-card-blocked{border-left-color:#f87171!important;box-shadow:0 0 0 1px #f8717133 inset}.dept-card-flag-blocked{background:#ef444426;color:#fca5a5;border-color:#ef444459}.dept-card-actions-row{margin-top:.2rem;display:flex;flex-direction:column;gap:.15rem}.dept-card-dep-btn{all:unset;cursor:pointer;font-size:.67rem;color:#4a6080;border-radius:4px;padding:.1rem .3rem;border:1px solid transparent;transition:color .15s,border-color .15s,background .15s}.dept-card-dep-btn:hover{color:#93c5fd;border-color:#93c5fd59;background:#93c5fd12}.dept-card-dep-btn-active{color:#93c5fd;border-color:#93c5fd66;background:#93c5fd14}.dept-card-dep-select{width:100%;font-size:.67rem;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;padding:.2rem .3rem;margin-top:.15rem;cursor:pointer}.dept-card-dep-select:focus{border-color:#60a5fa;outline:none}.dept-card-flag-pf{background:#fb923c21;color:#fb923c;border-color:#fb923c4d}.overtime-panel{padding:1rem 1.25rem}.overtime-label{display:flex;align-items:center;gap:.75rem;font-size:.88rem;font-weight:600;color:#cbd5e1}.overtime-input{width:100px;font-size:.88rem;padding:.3rem .5rem;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:6px}.overtime-input:focus{border-color:#60a5fa;outline:none}.overtime-note{margin-top:.6rem;font-size:.82rem;color:#64748b}.dept-card-copy-row{margin-top:.2rem}.dept-card-copy-btn{all:unset;cursor:pointer;font-size:.67rem;color:#4a6080;border-radius:4px;padding:.1rem .3rem;border:1px solid transparent;transition:color .15s,border-color .15s,background .15s}.dept-card-copy-btn:hover{color:#a5b4fc;border-color:#6366f159;background:#6366f114}.dept-card-copy-select{width:100%;background:#0f172ae6;border:1px solid rgba(99,102,241,.45);border-radius:5px;color:#e2e8f0;font-size:.68rem;padding:.2rem .35rem;outline:none;cursor:pointer}.dept-card-copy-select:focus{border-color:#818cf8}.dept-card-remove-copy-btn{all:unset;cursor:pointer;font-size:.67rem;color:#4a6080;border-radius:4px;padding:.1rem .3rem;border:1px solid transparent;margin-top:.2rem;transition:color .15s,border-color .15s,background .15s}.dept-card-remove-copy-btn:hover{color:#f87171;border-color:#f8717159;background:#f8717112}.title-stack{display:grid;gap:.45rem}.upload-inline{display:inline-flex;flex-direction:column;gap:.35rem;min-width:260px;align-items:flex-start}.lock-btn{min-width:120px}.control-panel h1{font-size:2.05rem;line-height:1.12;letter-spacing:-.02em}.subtitle{color:#cbd5e1;margin-top:.35rem;margin-bottom:1rem;font-size:1.03rem}.section-header{margin-bottom:.72rem}.section-header-row{display:flex;justify-content:space-between;gap:.85rem;align-items:center}.section-actions{display:inline-flex;gap:.5rem}.section-header h2{font-size:1.45rem;line-height:1.2}.section-header p{margin-top:.35rem;color:#cbd5e1;font-size:.98rem}.controls-grid{display:grid;gap:.95rem;grid-template-columns:1fr;max-width:1220px;margin:0 auto;align-items:start}.controls-grid>label,.controls-grid>.multi-select{background:#0f172a;border:1px solid #1f2937;border-radius:12px;padding:.72rem .78rem;width:100%;max-width:none;min-height:104px;justify-content:flex-start}.controls-grid>label select,.controls-grid>.multi-select .multi-trigger{width:auto;min-width:170px;max-width:320px}.controls-grid>label input[type=date],.controls-grid>label input[type=number]{width:auto;min-width:165px;max-width:240px}.controls-grid>label input[type=file]{max-width:100%}.multi-select{position:relative;display:flex;flex-direction:column;gap:.45rem}.multi-label{font-size:.97rem;color:#e5e7eb;font-weight:600}.multi-trigger{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#0b1625;border:1px solid #334155;border-radius:10px;color:#e5e7eb;font-weight:600}.multi-trigger:focus-visible{outline:3px solid rgba(59,130,246,.35);outline-offset:2px}.multi-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-caret{font-size:.8rem;color:#cbd5e1}.multi-menu{position:absolute;top:calc(100% + .4rem);left:0;right:0;z-index:20;background:#0f172a;border:1px solid #1f2937;border-radius:12px;box-shadow:0 14px 36px #0000008c;padding:.65rem}.multi-actions{display:flex;gap:.45rem;margin-bottom:.55rem}.multi-actions .ghost-btn{flex:1}.multi-search{width:100%;margin-bottom:.6rem}.multi-options{max-height:240px;overflow:auto;display:grid;gap:.2rem}.multi-option{display:flex;align-items:center;gap:.55rem;padding:.45rem .5rem;border-radius:8px;font-weight:500;color:#e5e7eb}.multi-option:hover{background:#1f2937}.multi-empty{padding:.6rem .5rem;color:#cbd5e1;font-size:.92rem}.pm-users-table{overflow:visible}.pm-assign-select .multi-select{min-width:210px}.pm-assign-select .multi-label{display:none}label{display:flex;flex-direction:column;gap:.45rem;font-size:.97rem;color:#e5e7eb;font-weight:600}.checkbox-label{justify-content:flex-end}input,select,button{border:1px solid #334155;border-radius:10px;font:inherit;padding:.56rem .68rem;background:#0b1625;color:#e5e7eb}button{cursor:pointer;border-color:#2563eb;background:#2563eb;color:#fff;font-weight:700}button:hover{background:#1d4ed8}button:disabled{opacity:.6;cursor:not-allowed}.ghost-btn{background:#0b1625;color:#c7d2fe;border:1px solid #3b82f6}.meta-row{margin-top:1rem;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;align-items:stretch;font-size:.97rem;color:#cbd5e1}.meta-card{grid-column:span 3;display:grid;gap:.28rem;padding:.78rem .9rem;border:1px solid #1f2937;border-radius:14px;background:#0f172a;min-width:0}.meta-card-wide{grid-column:span 4}.meta-card span{line-height:1.45;word-break:break-word}.meta-card-actions{grid-column:span 4;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem}.meta-card-actions button{min-width:180px}.summary-grid{margin-top:.8rem;display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.summary-grid>div{border:1px solid #1f2937;border-radius:12px;padding:.58rem .62rem;display:grid;gap:.15rem;background:#0f172a}.summary-grid span{font-size:.8rem;color:#cbd5e1}.summary-grid strong{font-size:1.02rem;letter-spacing:-.01em}.positive{color:#22c55e}.negative{color:#f87171}.warning{color:#f59e0b}.chart-wrap{width:100%;height:580px;border:1px solid #1f2937;border-radius:12px;background:linear-gradient(180deg,#0f172a,#0b1322);padding:.2rem}.chart-panel{overflow:hidden}.toggle-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.chip-toggle{border:1px solid #334155;border-radius:999px;padding:.28rem .8rem;background:#0f172a;color:#e5e7eb;font-weight:700;cursor:pointer}.weekend-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.chip-toggle:hover{border-color:#60a5fa}.chip-on{background:#1e293b;border-color:#60a5fa;color:#e0f2fe}.chip-off{opacity:.65}.compact-legend{display:flex;flex-wrap:wrap;gap:.35rem .45rem;max-width:100%;padding:.15rem 0 .3rem}.legend-chip{display:inline-flex;align-items:center;gap:.32rem;max-width:220px;padding:.16rem .46rem;border-radius:999px;background:#1f2937;color:#e5e7eb;font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-chip-dot{width:8px;height:8px;border-radius:999px;flex:0 0 auto}.legend-chip-more{background:#334155}.chart-note{margin-top:.5rem;font-size:.92rem;color:#cbd5e1}.revenue-page{display:grid;gap:.9rem}.revenue-header-row{align-items:flex-start}.revenue-header-actions{display:grid;gap:.35rem;justify-items:end;text-align:right}.revenue-header-actions button{min-width:250px}.revenue-export-error{margin:0;max-width:320px}.revenue-data-panel{justify-items:center}.revenue-data-shell{width:min(960px,100%);display:grid;gap:.75rem}.revenue-status-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:center;font-size:.9rem;color:#cbd5e1;border:1px solid #334155;border-radius:10px;background:#0f172a;padding:.45rem .7rem}.revenue-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.revenue-rate-panel{margin:0;padding:.85rem 1rem}.revenue-rate-panel .section-header{margin-bottom:.5rem}.revenue-rate-panel .section-header h3{font-size:1.1rem}.revenue-rate-panel .section-header p{font-size:.86rem}.revenue-rate-editor input{width:min(150px,100%);text-align:right;padding:.34rem .45rem;border-radius:8px;font-size:.88rem}.revenue-rate-table-wrap{max-height:440px}.revenue-rate-table th,.revenue-rate-table td{text-align:left;font-size:.88rem;padding:.42rem .44rem;background:#0d1e31;white-space:nowrap;vertical-align:middle}.revenue-rate-table th{background:#1f2937;font-size:.82rem;letter-spacing:.01em}.revenue-rate-table td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums}.revenue-rate-table td:nth-child(3),.revenue-rate-table td:nth-child(4){min-width:160px}.revenue-rate-table th:nth-child(1){width:38%}.revenue-rate-table th:nth-child(2){width:22%}.revenue-rate-table th:nth-child(3),.revenue-rate-table th:nth-child(4){width:20%}.revenue-chart-wrap{height:500px}.revenue-tooltip{border-radius:12px;border:1px solid rgba(191,219,254,.18);font-size:.84rem;background:#0916265c;box-shadow:0 14px 26px #0208172e;backdrop-filter:blur(7.7px);-webkit-backdrop-filter:blur(7.7px);color:#f8fafc;padding:.6rem .68rem;width:430px;max-width:min(92vw,430px);max-height:320px;display:grid;gap:.4rem}.revenue-tooltip-title{font-weight:700;margin-bottom:.15rem}.revenue-tooltip-summary{display:grid;gap:.15rem;margin-bottom:.15rem}.revenue-tooltip-grid{display:grid;gap:.2rem;max-height:205px;overflow-y:auto;padding-right:.22rem}.revenue-tooltip-row{display:grid;grid-template-columns:minmax(116px,1.2fr) repeat(3,minmax(72px,.85fr));gap:.35rem;align-items:center}.revenue-tooltip-project{font-weight:700;color:#bfdbfe;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revenue-tooltip-metric{text-align:right;color:#e2e8f0;font-variant-numeric:tabular-nums}.revenue-tooltip-empty{color:#94a3b8}.pivot-wrap,.table-wrap{overflow-x:auto;overflow-y:auto}.pivot-table,table{width:100%;border-collapse:collapse;min-width:0}.pivot-table,table{table-layout:fixed}.pivot-table th,.pivot-table td,th,td{border-bottom:1px solid #1f2937;text-align:center;vertical-align:middle;padding:.58rem .52rem;font-size:.95rem;white-space:normal;word-break:break-word;background:#0b1625;color:#e5e7eb}.pivot-table thead th,.pivot-table tfoot th,th{background:#1f2937;color:#e5e7eb;position:sticky;top:0;z-index:2}.pivot-table tfoot th{top:auto;bottom:0;z-index:1}.sticky-col{position:sticky;left:0;z-index:3;background:#111827}.row-label{font-weight:700;text-align:center;padding:.3rem .35rem}.row-label-selected{background:#0b2238}.row-selected td:not(.sticky-col){background:#38bdf812}.row-label-btn,.row-sort-btn{width:100%;border:1px solid transparent;border-radius:8px;background:#0f172a;color:#e5e7eb;font-weight:700;padding:.32rem .4rem;text-align:center}.row-label-btn:hover,.row-sort-btn:hover{border-color:#38bdf8}.row-label-btn-active{border-color:#38bdf8;background:#38bdf82e}.row-total{font-weight:700;text-align:center}.pivot-table td input{width:100%;min-width:60px;padding:.3rem .35rem;font-size:.92rem;border-radius:8px;background:#0f172a;color:#e5e7eb;border:1px solid #334155}.cell-display{width:100%;padding:.3rem .35rem;border:1px solid transparent;border-radius:8px;background:#0f172a;color:#e5e7eb;text-align:center;font-weight:600}.cell-display:hover{border-color:#3b82f6;background:#111827}.cell-display:disabled{cursor:not-allowed;opacity:.55}.week-header-cell{display:flex;flex-direction:column;align-items:center;gap:.3rem}.week-select-btn{border:1px solid #334155;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.72rem;line-height:1;padding:.22rem .5rem}.week-select-btn:hover:not(:disabled){border-color:#38bdf8;color:#e5e7eb}.week-select-btn:disabled{opacity:.45;cursor:not-allowed}.week-select-btn-active{border-color:#38bdf8;color:#e5e7eb;background:#38bdf829}.week-select-count{font-size:.72rem;color:#9ca3af}.pivot-drag-selecting,.pivot-drag-selecting *{-webkit-user-select:none;user-select:none}.pivot-drag-selecting .cell-display:not(:disabled){cursor:crosshair}.editing{background:#1e293b}.editing input{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa40}.inline-field{display:inline-flex;flex-direction:column;gap:.25rem;min-width:110px}.inline-field select{min-width:90px}.edited{background:#38bdf829}.over-week{background:#f8717140}button.sortable{background:transparent;color:inherit;border:none;padding:0;font-weight:700}.capacity-cell{width:130px;text-align:center}.emp-resource-block{margin-top:.8rem;padding-top:.6rem;border-top:1px solid var(--brand-border)}.emp-resource-head{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.4rem}.emp-resource-head strong{font-size:.95rem;color:#e2e8f0}.emp-resource-cap{font-size:.82rem;color:var(--brand-muted)}.emp-resource-note{color:#64748b}.emp-resource-head button{margin-left:auto}.emp-table th,.emp-table td{vertical-align:middle}.emp-table input[type=text],.emp-table input[type=number]{width:100%;min-width:80px}.emp-table input[type=text]{min-width:140px}.emp-zero{color:#fca5a5;font-weight:700}.total-weekly-capacity-panel{margin-bottom:.9rem;padding:.85rem .95rem;border:1px solid #1f2937;border-radius:12px;background:#0f172a;display:grid;gap:.7rem}.total-weekly-capacity-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem .7rem;align-items:end}.total-weekly-capacity-controls input{width:100%}.total-weekly-capacity-summary{display:flex;flex-wrap:wrap;gap:.4rem .75rem;color:#cbd5e1;font-size:.9rem}.total-weekly-capacity-summary strong{color:#e5e7eb}.total-weekly-capacity-tag{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;border:1px solid #334155;background:#111827;color:#cbd5e1;font-weight:700}.total-weekly-capacity-tag-scheduled{border-color:#38bdf8;color:#7dd3fc}.total-weekly-capacity-actions{display:flex;flex-wrap:wrap;gap:.5rem}.total-weekly-capacity-actions button{min-width:170px}.total-weekly-capacity-table-wrap{max-height:250px}.total-weekly-capacity-table th,.total-weekly-capacity-table td{font-size:.88rem;white-space:normal}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#374151;border-radius:34px;transition:.2s}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#e5e7eb;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background-color:#2563eb}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:focus-visible+.toggle-slider{box-shadow:0 0 0 3px #3b82f659}.capacity-selected-row{background:#3b82f62e}.weekly-over-row td,.monthly-over-row td{background:#f59e0b42}.weekly-under-row td,.monthly-under-row td{background:#f871714d}.weekly-within-row td,.monthly-within-row td{background:#22c55e33}.status{text-align:center;color:#cbd5e1;font-size:1.02rem;padding:1.1rem}.status.error{color:#fca5a5;border-color:#7f1d1d;background:#2b0f13}@media(max-width:980px){.app-shell{padding:.8rem}.panel{padding:.88rem}.control-panel{min-height:0;padding:1rem 1rem .95rem}.control-panel h1{font-size:1.62rem}.controls-grid>label,.controls-grid>.multi-select{max-width:none}.controls-grid>label select,.controls-grid>.multi-select .multi-trigger,.controls-grid>label input[type=date],.controls-grid>label input[type=number]{min-width:0;width:100%;max-width:none}.chart-wrap{height:520px}.how-to-use-grid,.how-to-use-tab-list,.how-to-use-tip-grid{grid-template-columns:1fr}}@media(min-width:1280px){.controls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:1180px){.meta-row{grid-template-columns:repeat(2,minmax(0,1fr))}.meta-card,.meta-card-wide,.meta-card-actions{grid-column:span 1}.meta-card-actions{justify-content:flex-start}}@media(max-width:640px){.controls-grid{grid-template-columns:1fr}.chart-wrap{height:460px}.revenue-header-actions{width:100%;justify-items:flex-start;text-align:left}.revenue-header-actions button{min-width:0;width:100%}.revenue-tooltip{width:min(94vw,430px)}.revenue-tooltip-grid{max-height:170px}.section-header h2{font-size:1.24rem}.section-header-row{flex-direction:column;align-items:flex-start}.section-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.meta-row{grid-template-columns:1fr}.meta-card,.meta-card-wide,.meta-card-actions{grid-column:span 1}.meta-card-actions button{width:100%}.total-weekly-capacity-actions button{width:100%;min-width:0}.report-header-main{grid-template-columns:1fr}.pivot-table td input{width:100%}.how-to-use-actions{flex-direction:column}.how-to-use-actions button{width:100%}}:root{--brand-bg: #041c29;--brand-surface: #0a2a3b;--brand-panel: #0f3246;--brand-accent: #00a3c4;--brand-accent-strong: #0091ae;--brand-secondary: #f4b400;--brand-text: #e4f2fb;--brand-muted: #9fb8c9;--brand-border: #0f415a;--brand-danger: #f87171;--brand-warning: #f59e0b}body{background:var(--brand-bg);color:var(--brand-text)}.app-shell{background:radial-gradient(circle at 20% 20%,rgba(0,163,196,.12),transparent 35%),radial-gradient(circle at 80% 10%,rgba(0,163,196,.08),transparent 32%),repeating-linear-gradient(45deg,#00a3c40f 0px 14px,#041c2933 14px 28px),linear-gradient(135deg,#031622,#062234 40%,#041c29)}.panel{background:var(--brand-panel);border:1px solid var(--brand-border);color:var(--brand-text);box-shadow:0 10px 30px #00000040}.control-panel{background:var(--brand-surface);border:1px solid var(--brand-border);padding:1.8rem 1.6rem 1.5rem}.title-bar{align-items:center;gap:1rem;flex-wrap:wrap;justify-content:space-between}.brand-lockup{display:flex;align-items:center;justify-content:center;padding:.2rem .6rem}.brand-logo{height:72px;width:auto;object-fit:contain}.subtitle{color:var(--brand-muted)}.page-tab{border-color:var(--brand-border);background:#0c2b3d;color:var(--brand-text)}.page-tab-active{border-color:var(--brand-accent);background:linear-gradient(120deg,#0d3d53,#0a95b7);color:#03202f}button,.ghost-btn{background:linear-gradient(135deg,#0a95b7,#067a96);color:#031622;border:1px solid #0ea5c0}button:hover,.ghost-btn:hover{background:linear-gradient(135deg,#0fb5d6,#0b95b7)}.ghost-btn{background:transparent;color:var(--brand-text);border-color:var(--brand-border)}.ghost-btn.collapse-toggle.filter-active{border-color:var(--brand-secondary);color:var(--brand-secondary)}.filter-count{margin-left:.4rem;font-weight:700}select,input,.multi-select .multi-trigger{background:#0d3044;color:var(--brand-text);border:1px solid var(--brand-border)}.dept-week{background:#0c2b3d;border-color:var(--brand-border)}.dept-table-header{color:var(--brand-accent)}.dept-progress-bar{background:#0a2433;border-color:#0f415a}.dept-progress-fill{background:linear-gradient(120deg,#0fb5d6,#f4b400)}.project-chip{color:#041524}.status-pill.status-completed{background:#4fdc8e2e;color:#8ff0c0}.status-pill.status-overdue{background:#f8717133;color:#fca5a5}.status-pill.status-scheduled,.status-pill.status-in-progress{background:#00a3c433;color:#7ce3ff}.status-pill{border:1px solid var(--brand-border)}.summary-grid strong,.dept-summary strong,.meta-row strong{color:var(--brand-secondary)}.chart-wrap{background:#0c2b3d;border:1px solid var(--brand-border);border-radius:14px}.weekend-pills button{background:#0f3246;border:1px solid var(--brand-border)}.chip-toggle{border-color:var(--brand-border);color:var(--brand-text)}.chip-toggle.chip-on{background:var(--brand-accent);color:#03202f}.section-header h2,.section-header-row h2{color:var(--brand-accent)}.pill-ghost{background:#00a3c41f;color:var(--brand-text);border:1px solid var(--brand-border)}.status{color:var(--brand-text)}.status.error{background:#2a0f0f;border-color:#7f1d1d}.summary-panel{background:#0b2434;border-color:var(--brand-border)}.page-nav{background:transparent}.brand-grid{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 20% 20%,rgba(0,163,196,.07),transparent 40%),radial-gradient(circle at 80% 10%,rgba(244,180,0,.08),transparent 45%),repeating-linear-gradient(60deg,#00a3c414 0 12px,#041c291a 12px 24px);opacity:.5;z-index:0}.app-shell>*{position:relative;z-index:1}.deals-filter-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.control-inline{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.pill{background:#00a3c41f;color:var(--brand-text);border:1px solid var(--brand-border);padding:4px 12px;border-radius:999px;font-size:.85rem}.error-text{color:#f87171;font-size:.9rem}.token-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.token-inline input{padding:6px 10px;border:1px solid var(--brand-border);background:#0f3246;color:var(--brand-text);min-width:260px}.token-inline button{padding:6px 12px}.token-inline small{color:var(--brand-muted)}.executive-panel .section-header{margin-bottom:1rem}.executive-panel .kpi-card{transition:box-shadow .2s}.executive-panel .kpi-card:hover{box-shadow:0 0 0 2px var(--brand-accent)}.executive-panel .sub-panel{border:1px solid var(--brand-border);border-radius:12px;padding:1rem}.executive-panel .compact-table{width:100%;border-collapse:collapse;font-size:.9rem}.executive-panel .compact-table th{text-align:left;color:var(--brand-muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--brand-border)}.executive-panel .compact-table td{padding:6px 8px;border-bottom:1px solid #1f2937}.executive-panel .annual-summary{margin-top:.5rem}.executive-panel .annual-summary span{display:block;color:var(--brand-muted);font-size:.82rem}.executive-panel .annual-summary strong{font-size:1.25rem}.executive-panel .muted{color:var(--brand-muted);font-size:.9rem;padding:.5rem 0}.gantt-workspace{display:flex;flex-direction:column;gap:.75rem;min-width:0}.gantt-ws-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.25rem}.gantt-ws-meta{display:flex;gap:8px;flex-shrink:0}.gantt-ws-count{font-size:12px;color:#64748b;background:#0f2240;border:1px solid #1e3a5f;border-radius:5px;padding:3px 10px}.gantt-sub-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;border-bottom:1px solid #1e293b;padding-bottom:10px}.gantt-sub-tab{background:none;border:1px solid #334155;border-radius:6px;color:#94a3b8;padding:5px 14px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .15s,color .15s,border-color .15s;display:flex;align-items:center;gap:5px}.gantt-sub-tab:hover{background:#1e293b;color:#e2e8f0}.gantt-sub-tab.active{background:#1e3a5f;border-color:#3b82f6;color:#93c5fd;font-weight:600}.gantt-master-icon{font-size:14px;line-height:1}.gantt-no-projects{font-size:12px;color:#475569;margin-left:8px}.gantt-project-filter{border:1px solid #1e293b;border-radius:8px;background:#0a1424;padding:8px 10px;display:flex;flex-direction:column;gap:8px}.gantt-project-filter-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.gantt-project-filter-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;display:flex;align-items:center;gap:8px}.gantt-project-filter-count{font-size:11px;font-weight:600;color:#93c5fd;background:#0f2240;border:1px solid #1e3a5f;border-radius:5px;padding:1px 7px;letter-spacing:0}.gantt-project-filter-actions{display:flex;gap:6px}.gantt-project-filter-actions button{background:none;border:1px solid #334155;border-radius:5px;color:#94a3b8;padding:3px 10px;font-size:11px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s}.gantt-project-filter-actions button:hover{background:#1e293b;color:#e2e8f0}.gantt-project-chips{display:flex;flex-wrap:wrap;gap:6px}.gantt-project-chip{display:inline-flex;align-items:center;gap:6px;background:#0e1a2e;border:1px solid #1e293b;border-radius:999px;color:#64748b;padding:4px 11px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s,opacity .12s;opacity:.55}.gantt-project-chip:hover{border-color:#334155;color:#cbd5e1}.gantt-project-chip.checked{background:#102338;border-color:#3b82f6;color:#e2e8f0;opacity:1}.gantt-project-chip-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.gantt-project-chip:not(.checked) .gantt-project-chip-dot{filter:grayscale(.6)}.gantt-chart{display:flex;flex-direction:column;gap:0;min-width:0}.gantt-toolbar{display:flex;align-items:center;gap:8px;padding:0 2px 8px}.gantt-toolbar-btn{background:none;border:1px solid #334155;border-radius:6px;color:#94a3b8;padding:4px 12px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s}.gantt-toolbar-btn:hover{background:#1e293b;color:#e2e8f0}.gantt-crit-control{display:inline-flex;align-items:center;gap:2px;border:1px solid #334155;border-radius:6px;padding:2px}.gantt-crit-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:0 8px 0 6px}.gantt-crit-btn{background:none;border:none;border-radius:4px;color:#94a3b8;padding:3px 11px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s}.gantt-crit-btn:hover{background:#1e293b;color:#e2e8f0}.gantt-crit-btn.active{background:#7f1d1d;color:#fecaca;font-weight:600}.gantt-crit-legend{font-size:11px;color:#fda4af}.gantt-seq-section.crit-dim .gantt-bar,.gantt-seq-section.crit-dim .gantt-ras-marker,.gantt-seq-section.crit-dim .gantt-ras-marker-date,.gantt-seq-section.crit-dim .gantt-span-bar{opacity:.22}.gantt-seq-section.crit-dim .gc-res-name,.gantt-seq-section.crit-dim .gantt-seq-title{opacity:.5}.gantt-seq-section.crit-hit .gantt-bar{outline:2px solid #fb7185;outline-offset:1px;box-shadow:0 0 12px #fb71858c}.gantt-seq-section.crit-hit .gantt-ras-diamond{filter:drop-shadow(0 0 7px #fb7185)}.gantt-seq-section.crit-hit .gantt-seq-group-label{box-shadow:inset 3px 0 #fb7185}.gantt-crit-tag{font-size:9px;font-weight:800;letter-spacing:.06em;color:#fecaca;background:#7f1d1d;border-radius:4px;padding:1px 6px;flex-shrink:0}.gantt-scroll{overflow:auto;max-height:68vh;max-width:100%;border:1px solid #1e293b;border-radius:10px;background:#080e1c;position:relative}.gantt-header-row{display:flex;position:sticky;top:0;z-index:20;background:#0c1628}.gantt-left-corner{position:sticky;left:0;z-index:30;background:#0c1628;border-right:1px solid #1e3a5f;border-bottom:1px solid #1e3a5f;display:flex;align-items:center;padding:0 12px;gap:0;flex-shrink:0}.gc-col-seq{flex:1;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.gc-col-pct2{width:90px;flex-shrink:0;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.gantt-tl-header{flex-shrink:0;border-bottom:1px solid #1e3a5f}.gantt-months,.gantt-weeks{display:flex}.gantt-month-cell{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#7dd3fc;background:#0c1628;border-right:1px solid #162033;border-bottom:1px solid #1e3a5f;overflow:hidden;white-space:nowrap;padding:0 4px;letter-spacing:.02em}.gantt-week-cell{display:flex;align-items:center;justify-content:center;font-size:10px;color:#475569;background:#0c1628;border-right:1px solid #0f1e33;overflow:hidden;white-space:nowrap;flex-shrink:0}.gantt-week-cell.today-week{background:#0f2d56;color:#60a5fa;font-weight:700}.gantt-cap-strip{position:sticky;z-index:18;display:flex;flex-direction:column;background:#0c1628;border-bottom:1px solid #1e3a5f}.gantt-cap-row{display:flex;border-bottom:1px solid #122033}.gantt-cap-row.total{border-bottom:none;border-top:1px solid #243042}.gantt-cap-label{position:sticky;left:0;z-index:5;display:flex;align-items:center;padding:0 10px;background:#0c1628;border-right:1px solid #243042;font-size:11px;font-weight:600;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-cap-row.total .gantt-cap-label{color:#e2e8f0;font-weight:700}.gantt-cap-tl{display:flex;flex-shrink:0}.gantt-cap-cell{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;color:#cbd5e1;border-right:1px solid #14202e;font-variant-numeric:tabular-nums}.gantt-cap-cell.under{background:#22c55e21}.gantt-cap-cell.near{background:#f59e0b29}.gantt-cap-cell.over{background:#f8717133;color:#fecaca;font-weight:700}.gantt-cap-cell.nocap{background:#3b82f61a}.gantt-cap-cell.none{color:#3b4861}.gantt-project-row{display:flex;align-items:stretch}.gantt-project-label{position:sticky;left:0;z-index:10;background:#0d1b30;border-right:1px solid #1e3a5f;border-bottom:1px solid #162033;display:flex;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:700;color:#94a3b8;flex-shrink:0;letter-spacing:.01em}.gantt-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.gantt-project-tl{border-bottom:1px solid #162033;flex-shrink:0;position:relative;overflow:hidden}.gantt-row{display:flex;align-items:stretch;border-bottom:1px solid #0f1e33;transition:background .1s}.gantt-seq-group-row{display:flex;align-items:stretch;border-bottom:1px solid #1a2744}.gantt-seq-group-label{position:sticky;left:0;z-index:10;background:#0a1830;border-right:1px solid #1e3a5f;display:flex;align-items:center;gap:6px;padding:0 8px 0 20px;flex-shrink:0;overflow:hidden}.gantt-seq-chevron{font-size:10px;flex-shrink:0;line-height:1;transition:transform .15s}.gantt-seq-chevron.collapsed{transform:rotate(-90deg)}.gantt-seq-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.gantt-seq-toggle:hover{background:#0f2a47}.gantt-project-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.gantt-project-toggle:hover{background:#112a48}.gantt-seq-title{flex:1;font-size:12px;font-weight:700;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}.gantt-seq-meta{font-size:10px;color:#475569;flex-shrink:0;white-space:nowrap}.gantt-seq-tl{border-bottom:none;flex-shrink:0;overflow:hidden}.gantt-span-bar{position:absolute;top:50%;transform:translateY(-50%);height:6px;border-radius:3px;border:1px solid;pointer-events:none}.gantt-row:hover .gantt-resource-cell{background:#0f2240}.gantt-row-sel .gantt-resource-cell{background:#0f2a50!important;border-right-color:#3b82f6}.gantt-resource-cell{position:sticky;left:0;z-index:10;background:#080e1c;border-right:1px solid #1e293b;display:flex;align-items:center;gap:6px;padding:0 10px;flex-shrink:0;overflow:hidden;cursor:pointer;transition:background .12s}.gc-res-indent{width:20px;flex-shrink:0}.gc-res-name{flex:1;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-prog-wrap{width:48px;height:4px;background:#1a2744;border-radius:2px;flex-shrink:0;overflow:hidden}.gc-prog-fill{height:100%;border-radius:2px;transition:width .3s}.gc-prog-num{width:30px;font-size:10px;color:#64748b;flex-shrink:0;text-align:right}.gc-edit-hint{font-size:12px;color:#475569;opacity:0;transition:opacity .15s;flex-shrink:0;line-height:1}.gantt-row:hover .gc-edit-hint{opacity:1}.gantt-bar-area{flex-shrink:0;overflow:hidden}.gantt-vgrid{position:absolute;top:0;bottom:0;border-right:1px solid #0c1628;pointer-events:none}.gantt-vgrid.today-col{background:#3b82f60a}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#3b82f6,#1d4ed8);z-index:6;pointer-events:none;box-shadow:0 0 6px #3b82f680}.gantt-today-line:before{content:"Today";position:absolute;top:2px;left:4px;font-size:9px;color:#60a5fa;white-space:nowrap;font-weight:600}.gantt-bar{position:absolute;border-radius:5px;border:1.5px solid;overflow:hidden;-webkit-user-select:none;user-select:none;transition:box-shadow .15s}.gantt-bar:not(.is-dragging):hover{box-shadow:0 2px 16px #00000080;z-index:8;filter:brightness(1.15)}.gantt-bar.is-dragging{opacity:.9;box-shadow:0 6px 28px #000000b3;z-index:20;transition:none}.gantt-bar.is-moved{border-style:dashed}.gantt-bar-prog{position:absolute;left:0;top:0;bottom:0;border-radius:4px;transition:width .3s;pointer-events:none}.gantt-bar-lbl{position:absolute;left:6px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:500;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:2;text-shadow:0 1px 3px rgba(0,0,0,.8)}.gantt-status-badge{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:9px;font-weight:700;letter-spacing:.03em;padding:1px 5px;border-radius:3px;pointer-events:none;z-index:3;text-transform:uppercase}.gantt-status-badge.st-scheduled{background:#60a5fa40;color:#93c5fd}.gantt-status-badge.st-in-progress{background:#34d39940;color:#6ee7b7}.gantt-status-badge.st-completed{background:#a3e63540;color:#bef264}.gantt-status-badge.st-overdue{background:#f8717140;color:#fca5a5}.gantt-dep-badge{position:absolute;top:50%;right:5px;transform:translateY(-50%);font-size:9px;font-weight:700;color:#f59e0b;pointer-events:none;z-index:3;text-shadow:0 1px 3px rgba(0,0,0,.8)}.gantt-edit-panel{border:1px solid #1e3a5f;border-radius:10px;background:#0d1b30;margin-top:10px;overflow:hidden}.gantt-edit-hd{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#0c1628;border-bottom:1px solid #1e3a5f;flex-wrap:wrap}.gantt-edit-hd-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.gantt-edit-hd strong{font-size:13px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-edit-proj{font-size:11px;color:#64748b}.gantt-edit-tabs{margin-left:auto;display:flex;gap:4px}.gantt-edit-tabs button{background:none;border:1px solid #334155;border-radius:5px;color:#94a3b8;padding:3px 10px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,border-color .12s,color .12s;display:flex;align-items:center;gap:5px}.gantt-edit-tabs button:hover{background:#1e293b;color:#e2e8f0}.gantt-edit-tabs button.active{background:#1e3a5f;border-color:#3b82f6;color:#93c5fd;font-weight:600}.gantt-dep-count{background:#3b82f6;color:#fff;border-radius:8px;font-size:10px;padding:0 5px;font-weight:700}.gantt-edit-close{background:none;border:none;color:#64748b;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;margin-left:4px}.gantt-edit-close:hover{color:#e2e8f0}.gantt-edit-body{display:flex;gap:14px;padding:12px 14px;flex-wrap:wrap;align-items:flex-end}.gantt-field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.gantt-field input,.gantt-field select{background:#0f2240;border:1px solid #1e3a5f;border-radius:5px;color:#e2e8f0;padding:5px 8px;font-size:12px;font-family:inherit;min-width:130px;transition:border-color .12s}.gantt-field input:focus,.gantt-field select:focus{outline:none;border-color:#3b82f6}.gantt-field input:disabled{opacity:.45;cursor:not-allowed}.gantt-edit-actions{display:flex;gap:8px;align-items:center;margin-left:auto;flex-wrap:wrap}.gantt-btn-save{background:#1e40af;border:1px solid #3b82f6;border-radius:6px;color:#bfdbfe;padding:5px 16px;font-size:12px;font-family:inherit;font-weight:600;cursor:pointer;transition:background .12s}.gantt-btn-save:hover{background:#1d4ed8}.gantt-btn-cancel{background:none;border:1px solid #334155;border-radius:6px;color:#94a3b8;padding:5px 12px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s}.gantt-btn-cancel:hover{background:#1e293b;color:#e2e8f0}.gantt-btn-reset{background:#422006;border:1px solid #b45309;border-radius:6px;color:#fcd34d;padding:5px 14px;font-size:12px;font-family:inherit;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap}.gantt-btn-reset:hover{background:#78350f}.gantt-moved-note{width:100%;font-size:12px;color:#fcd34d;background:#b453091f;border:1px solid rgba(180,83,9,.4);border-radius:6px;padding:6px 10px;margin-bottom:4px}.gantt-deps-body{padding:12px 14px}.gantt-deps-hint{font-size:12px;color:#94a3b8;margin:0 0 10px}.gantt-deps-hint strong{color:#e2e8f0}.gantt-deps-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px;max-height:220px;overflow-y:auto;margin-bottom:10px;padding-right:4px}.gantt-no-deps{font-size:12px;color:#475569}.gantt-dep-item{display:flex;align-items:center;gap:7px;font-size:12px;color:#94a3b8;padding:5px 8px;border:1px solid #1e293b;border-radius:5px;cursor:pointer;transition:background .1s,border-color .1s;-webkit-user-select:none;user-select:none}.gantt-dep-item input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;flex-shrink:0}.gantt-dep-item:hover,.gantt-dep-item.checked{background:#0f2240;border-color:#1e3a5f;color:#e2e8f0}.gantt-dep-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.gantt-dep-lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-dep-res{font-size:10px;color:#475569;flex-shrink:0;white-space:nowrap}.gantt-empty{padding:56px 24px;text-align:center;color:#475569;font-size:13px;background:#080e1c;border:1px dashed #1e293b;border-radius:10px}.gantt-ras-label-date{font-size:10px;color:#64748b;margin-left:auto;flex-shrink:0;white-space:nowrap}.gantt-ras-marker{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:8;display:flex;align-items:center;pointer-events:none}.gantt-ras-diamond{font-size:14px;color:#f59e0b;line-height:1;filter:drop-shadow(0 0 5px rgba(245,158,11,.7))}.gantt-ras-marker-date{position:absolute;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;white-space:nowrap;pointer-events:none;z-index:8;text-shadow:0 1px 3px rgba(0,0,0,.85)}.gantt-bar-segment{border-style:solid}.gantt-gap-connector{position:absolute;height:0;border-top:2px dashed #475569;transform:translateY(-50%);z-index:3;pointer-events:none}.gantt-split-badge{font-size:9px;font-weight:700;color:#fcd34d;background:#b453092e;border:1px solid rgba(180,83,9,.45);border-radius:4px;padding:0 5px;flex-shrink:0;white-space:nowrap}.gantt-split-badge:before{content:"✂ "}.gantt-segments-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;max-height:240px;overflow-y:auto}.gantt-segment-row{display:flex;align-items:center;gap:10px;background:#0f2240;border:1px solid #1e3a5f;border-radius:6px;padding:6px 10px}.gantt-segment-idx{width:20px;height:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#1e3a5f;color:#93c5fd;font-size:11px;font-weight:700}.gantt-segment-row label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.gantt-segment-row input{background:#0a1424;border:1px solid #1e3a5f;border-radius:5px;color:#e2e8f0;padding:4px 7px;font-size:12px;font-family:inherit}.gantt-segment-hours input{width:70px}.gantt-seg-hours{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:700;color:#ffffffeb;white-space:nowrap;pointer-events:none;z-index:2;text-shadow:0 1px 3px rgba(0,0,0,.85)}.gantt-segment-remove{margin-left:auto;background:none;border:1px solid #334155;border-radius:5px;color:#94a3b8;width:24px;height:24px;font-size:15px;line-height:1;cursor:pointer;flex-shrink:0}.gantt-segment-remove:hover:not(:disabled){background:#7f1d1d;color:#fecaca;border-color:#b91c1c}.gantt-segment-remove:disabled{opacity:.35;cursor:not-allowed}.updates-page{display:flex;flex-direction:column;gap:1rem}.updates-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.updates-header h2{font-size:1.2rem;font-weight:700;color:#e2e8f0;margin:0}.updates-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.updates-version-chip{font-size:14px;font-weight:800;color:#bbf7d0;background:#064e3b;border:1px solid #10b981;border-radius:7px;padding:4px 12px;letter-spacing:.02em}.updates-count{font-size:12px;color:#64748b;background:#0f2240;border:1px solid #1e3a5f;border-radius:5px;padding:3px 10px}.updates-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.updates-item{display:flex;gap:14px;align-items:stretch}.updates-item-rail{position:relative;width:14px;flex-shrink:0;display:flex;justify-content:center}.updates-item-rail:before{content:"";position:absolute;top:0;bottom:0;width:2px;background:#1e293b}.updates-item:first-child .updates-item-rail:before{top:9px}.updates-item:last-child .updates-item-rail:before{bottom:calc(100% - 9px)}.updates-dot{position:relative;z-index:1;width:12px;height:12px;margin-top:4px;border-radius:50%;border:2px solid #0a0f1a;box-shadow:0 0 0 2px currentColor}.updates-dot.type-major{color:#fb7185;background:#fb7185}.updates-dot.type-minor{color:#60a5fa;background:#60a5fa}.updates-dot.type-patch{color:#94a3b8;background:#94a3b8}.updates-item-body{flex:1;min-width:0;padding-bottom:1.1rem}.updates-item-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.updates-ver{font-size:13px;font-weight:800;letter-spacing:.02em}.updates-ver.type-major{color:#fda4af}.updates-ver.type-minor{color:#93c5fd}.updates-ver.type-patch{color:#cbd5e1}.updates-type-chip{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:4px;padding:1px 7px}.updates-type-chip.type-major{color:#fecaca;background:#f43f5e2e;border:1px solid rgba(244,63,94,.4)}.updates-type-chip.type-minor{color:#bfdbfe;background:#3b82f629;border:1px solid rgba(59,130,246,.4)}.updates-type-chip.type-patch{color:#cbd5e1;background:#94a3b824;border:1px solid rgba(148,163,184,.35)}.updates-date{font-size:11px;color:#64748b;margin-left:auto}.updates-item-title{font-size:.98rem;font-weight:700;color:#e2e8f0;margin:4px 0 6px}.updates-changes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.updates-changes li{font-size:.86rem;color:#94a3b8;line-height:1.4}.requests-page{display:flex;flex-direction:column;gap:1rem}.requests-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.requests-header h2{font-size:1.2rem;font-weight:700;color:#e2e8f0;margin:0}.request-form{border:1px solid #1e3a5f;border-radius:10px;background:#0a1424;padding:12px 14px}.request-form-title{font-size:.95rem;font-weight:700;color:#e2e8f0;margin:0 0 10px}.request-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.request-field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.request-field-wide{grid-column:1 / -1}.request-field input,.request-field select,.request-field textarea{background:#0f2240;border:1px solid #1e3a5f;border-radius:6px;color:#e2e8f0;padding:7px 9px;font-size:13px;font-family:inherit;width:100%}.request-field textarea{resize:vertical}.request-field input:focus,.request-field select:focus,.request-field textarea:focus{outline:none;border-color:#3b82f6}.request-form-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.request-ok{font-size:12px;color:#6ee7b7}.request-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.request-filters select,.request-search{background:#0f2240;border:1px solid #1e3a5f;border-radius:6px;color:#e2e8f0;padding:6px 9px;font-size:12px;font-family:inherit}.request-search{flex:1;min-width:200px}.request-filter-count{font-size:12px;color:#64748b}.request-list{display:flex;flex-direction:column;gap:10px}.request-card{border:1px solid #1e293b;border-radius:10px;background:#0b1626;padding:12px 14px}.request-card.is-updated{border-color:#3b82f6;box-shadow:inset 3px 0 #3b82f6}.request-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.request-id{font-size:12px;font-weight:800;color:#93c5fd;letter-spacing:.02em}.request-meta{font-size:11px;color:#64748b;margin-left:auto}.request-updated-flag{font-size:10px;font-weight:700;color:#93c5fd}.request-title{font-size:.98rem;font-weight:700;color:#e2e8f0;margin:7px 0 4px}.request-desc{font-size:.88rem;color:#cbd5e1;margin:0 0 5px;white-space:pre-wrap}.request-justification{font-size:.84rem;color:#94a3b8;margin:0 0 6px}.request-justification strong{color:#cbd5e1}.request-chip{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 7px;white-space:nowrap}.request-chip.cat-feature{color:#bfdbfe;background:#3b82f629}.request-chip.cat-enhancement{color:#c4b5fd;background:#8b5cf629}.request-chip.cat-bug{color:#fca5a5;background:#ef444429}.request-chip.cat-feedback{color:#93c5fd;background:#38bdf829}.request-chip.cat-other{color:#cbd5e1;background:#94a3b829}.request-chip.prio-low{color:#94a3b8;background:#94a3b824}.request-chip.prio-medium{color:#93c5fd;background:#3b82f624}.request-chip.prio-high{color:#fcd34d;background:#f59e0b29}.request-chip.prio-critical{color:#fca5a5;background:#ef444433}.request-chip.status-submitted{color:#cbd5e1;background:#94a3b829}.request-chip.status-under_review{color:#93c5fd;background:#3b82f629}.request-chip.status-approved{color:#a5b4fc;background:#6366f129}.request-chip.status-in_progress{color:#fcd34d;background:#f59e0b29}.request-chip.status-completed{color:#bef264;background:#84cc162e}.request-chip.status-rejected{color:#fca5a5;background:#ef444429}.request-history{margin:4px 0 2px;font-size:.82rem}.request-history summary{cursor:pointer;color:#64748b;font-size:11px}.request-history ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.request-history li{display:flex;align-items:center;gap:8px}.request-history-date{font-size:11px;color:#64748b}.request-history-note{font-size:11px;color:#94a3b8}.request-admin{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #1e293b;flex-wrap:wrap}.request-admin select,.request-admin input{background:#0f2240;border:1px solid #1e3a5f;border-radius:6px;color:#e2e8f0;padding:5px 8px;font-size:12px;font-family:inherit}.request-admin input{flex:1;min-width:160px}@media(max-width:720px){.request-form-grid{grid-template-columns:1fr}}@media(max-width:900px){.app-shell{padding:.7rem}.app-header{flex-wrap:wrap;gap:.5rem .6rem;padding:.5rem .7rem}.app-header-nav{order:3;flex:1 0 100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:.3rem;padding-bottom:.2rem}.app-header-nav .page-tab{flex:0 0 auto;white-space:nowrap}.app-header-actions{margin-left:auto}.production-subnav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.production-subnav .page-tab{flex:0 0 auto;white-space:nowrap}}@media(max-width:560px){.app-header-wordmark{display:none}.app-header-logo{height:30px}.page-tab{padding:.5rem .72rem;font-size:.9rem}.panel{padding:.8rem;border-radius:12px}.section-header h2{font-size:1.2rem}.dept-filter-bar{gap:.7rem 1rem}.dept-filter-bar>.dept-filter-group{flex:1 1 100%}.dept-filter-bar .dept-filter-group select,.dept-filter-bar .dept-filter-group input{width:100%}button,select,input[type=date],input[type=number],input[type=text]{min-height:40px}.dept-table-wrap,.at-risk-table-scroll,.scenario-grid-scroll{-webkit-overflow-scrolling:touch}}
