:root{--brand-primary:#5c86a0;--brand-navy:#33475c;--signal-critical:#a3564f;--signal-warning:#ab8a4c;--signal-warning-text:#6e5730;--signal-ok:#5c8573;--signal-anomaly:#7a5f92;--text:#5a5f66;--text-h:#1c2024;--bg:#fdfdfc;--page-bg:#e9e9ea;--surface-alt:#e7e7e8;--border:#d3d4d7;--card-shadow:0 1px 2px #1414140a, 0 4px 12px #1414140d;--sans:Roboto, "Segoe UI", Calibri, -apple-system, BlinkMacSystemFont, Arial, sans-serif;--mono:ui-monospace, "SF Mono", Consolas, monospace;font:15px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--page-bg)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--brand-primary:#7d9bac;--brand-navy:#74838f;--signal-critical:#b98682;--signal-warning:#c0a877;--signal-warning-text:#c0a877;--signal-ok:#85a494;--signal-anomaly:#b49bd1;--text:#a0a3a8;--text-h:#e2e3e4;--bg:#17181a;--page-bg:#0c0d0e;--surface-alt:#1c1d1f;--border:#2a2b2d;--card-shadow:0 1px 2px #0000004d, 0 4px 16px #00000059}}*{box-sizing:border-box}body{background:var(--page-bg);margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.app-shell{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:0 32px 64px}.card{background:var(--bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:6px;padding:20px 24px}.table-card{padding:0;overflow:hidden}.table-card table{margin:0}.top-bar{background:var(--brand-navy);color:#fff;font-variant-numeric:tabular-nums;align-items:baseline;gap:12px;margin-bottom:28px;padding:14px 32px;display:flex}.top-bar .wordmark{letter-spacing:.06em;text-transform:uppercase;font-size:14px;font-weight:700}.prototype-badge{color:#fff;opacity:.5;font-size:11px;font-style:italic}.top-bar .project-code{font-family:var(--mono);opacity:.85;font-size:13px}.project-switcher{font:inherit;font-family:var(--mono);color:#fff;background:#ffffff1a;border:1px solid #ffffff59;border-radius:4px;padding:3px 6px;font-size:13px}.project-switcher option{color:var(--text-h);background:var(--bg)}.project-switcher-light{color:var(--text-h);background:var(--bg);border-color:var(--border)}.page-header{align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.page-header h1{margin-bottom:0}.top-bar-nav{gap:20px;margin-left:auto;display:flex}.top-bar-nav a{color:#fff;opacity:.85;font-size:13px;text-decoration:none}.top-bar-nav a:hover{opacity:1;text-decoration:underline}.link-button{color:#fff;opacity:.85;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px}.link-button:hover{opacity:1;text-decoration:underline}.lang-switcher{border:1px solid #ffffff59;border-radius:4px;gap:2px;padding:2px;display:flex}.lang-switcher button{color:#fff;letter-spacing:.03em;opacity:.75;cursor:pointer;background:0 0;border:none;border-radius:2px;padding:3px 8px;font-size:12px;font-weight:600}.lang-switcher button:hover{opacity:1}.lang-switcher button.active{color:var(--brand-navy);opacity:1;background:#fff}h1{color:var(--text-h);letter-spacing:-.01em;margin:0 0 20px;font-size:22px;font-weight:600}h2{color:var(--text-h);margin:24px 0 8px;font-size:16px;font-weight:600}h3{color:var(--text-h);margin:16px 0 6px;font-size:13px;font-weight:600}.project-admin-card{margin-bottom:20px}.project-admin-source{margin-top:8px}.dependencies-note{margin:20px 0}.dependencies-note summary{color:var(--text);cursor:pointer;font-size:13px;font-weight:600;list-style:none}.dependencies-note summary::-webkit-details-marker{display:none}.dependencies-note summary:before{content:"▸ ";font-size:10px}.dependencies-note[open] summary:before{content:"▾ "}.dependencies-note p{color:var(--text);margin:8px 0 0 14px;font-size:13px}a{color:var(--brand-primary)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}th{color:var(--text-h);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--brand-primary)}.sort-arrow{opacity:.5;font-size:10px}.sort-arrow.active{opacity:1;color:var(--brand-primary)}tbody tr:nth-child(2n){background:var(--surface-alt)}.rollup-table tbody tr.health-red{background:color-mix(in srgb, var(--signal-critical) 8%, var(--bg))}.rollup-table tbody tr.health-purple{background:color-mix(in srgb, var(--signal-anomaly) 9%, var(--bg))}.rollup-table tbody tr.health-yellow{background:color-mix(in srgb, var(--signal-warning) 10%, var(--bg))}.rollup-table tbody tr.health-green{background:var(--bg)}.figure{font-family:var(--mono);font-variant-numeric:tabular-nums}.critical{color:var(--signal-critical);font-weight:600}.anomaly{color:var(--signal-anomaly);font-weight:600}.warning{color:var(--signal-warning-text)}.ok{color:var(--signal-ok)}.signal-lamp{--lamp-color:var(--signal-ok);background:var(--lamp-color);width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb, var(--lamp-color) 22%, transparent), 0 0 6px 1px color-mix(in srgb, var(--lamp-color) 55%, transparent);border-radius:50%;flex:none;display:inline-block}.signal-lamp.red{--lamp-color:var(--signal-critical)}.signal-lamp.purple{--lamp-color:var(--signal-anomaly)}.signal-lamp.yellow{--lamp-color:var(--signal-warning)}.signal-lamp.green{--lamp-color:var(--signal-ok)}.signal-lamp.off{--lamp-color:var(--border);box-shadow:none}@media (prefers-reduced-motion:no-preference){.signal-lamp.red{animation:2.2s ease-in-out infinite lamp-pulse}}@keyframes lamp-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--lamp-color) 22%, transparent), 0 0 6px 1px color-mix(in srgb, var(--lamp-color) 55%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--lamp-color) 30%, transparent), 0 0 10px 3px color-mix(in srgb, var(--lamp-color) 70%, transparent)}}.kpi-row{gap:14px;margin-bottom:24px;display:flex}.kpi-tile{background:var(--surface-alt);border-radius:6px;flex:1;padding:16px 20px}.kpi-tile.critical{background:color-mix(in srgb, var(--signal-critical) 10%, var(--surface-alt))}.kpi-tile.anomaly{background:color-mix(in srgb, var(--signal-anomaly) 10%, var(--surface-alt))}.kpi-tile.warning{background:color-mix(in srgb, var(--signal-warning) 14%, var(--surface-alt))}.kpi-tile.ok{background:color-mix(in srgb, var(--signal-ok) 10%, var(--surface-alt))}.kpi-value{font-variant-numeric:tabular-nums;color:var(--text-h);font-size:32px;font-weight:600;line-height:1}.kpi-tile.critical .kpi-value{color:var(--signal-critical)}.kpi-tile.anomaly .kpi-value{color:var(--signal-anomaly)}.kpi-tile.warning .kpi-value{color:var(--signal-warning-text)}.kpi-tile.ok .kpi-value{color:var(--signal-ok)}.kpi-label{color:var(--text);text-transform:uppercase;letter-spacing:.03em;margin-top:6px;font-size:12px}.split-pane{border:1px solid var(--border);border-radius:4px;max-height:70vh;font-size:14px;overflow-y:auto}.split-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:stretch;display:flex}.split-row:hover{background:var(--surface-alt)}.split-row.selected{background:var(--brand-primary);color:#fff}.split-row.selected .signal-lamp{box-shadow:0 0 0 3px #ffffff4d}.wbs-row{border-right:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;flex:0 0 380px;align-items:center;gap:8px;height:27px;padding:0 10px;display:flex;overflow:hidden}.gantt-row{flex:1;align-items:center;height:27px;padding:0 12px;font-size:13px;display:flex}.gantt-track{background:var(--surface-alt);border-radius:2px;flex:1;height:10px;position:relative}.gantt-bar{border-radius:2px;height:100%;position:absolute;top:0}.gantt-bar.old{background:color-mix(in srgb, var(--text) 40%, transparent)}.gantt-bar.new{background:var(--brand-primary)}.gantt-bar.new.critical{background:var(--signal-critical);box-shadow:0 0 0 2px color-mix(in srgb, var(--signal-critical) 25%, transparent)}.gantt-bar.new.anomaly{background:var(--signal-anomaly);box-shadow:0 0 0 2px color-mix(in srgb, var(--signal-anomaly) 25%, transparent)}.selected-task-bar{border:1px solid var(--border);border-radius:4px;margin-top:16px;padding:12px 16px;font-size:14px}.back-link{margin-bottom:16px;font-size:14px;display:inline-block}.legend{border-top:1px solid var(--border);color:var(--text);flex-wrap:wrap;gap:6px 20px;margin-top:16px;padding-top:12px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-swatch-bar{border-radius:2px;flex:none;width:20px;height:8px;display:inline-block}.legend-swatch-bar.old{background:color-mix(in srgb, var(--text) 40%, transparent)}.legend-swatch-bar.new{background:var(--brand-primary)}.legend-swatch-bar.critical{background:var(--signal-critical)}.legend-swatch-bar.anomaly{background:var(--signal-anomaly)}.deviation-history li{margin-bottom:6px}.show-all-toggle{margin:4px 0 16px;font-size:14px;display:block}.trend-chart{max-width:640px;position:relative}.trend-chart svg{width:100%;height:auto;display:block;overflow:visible}.trend-grid{stroke:var(--border);stroke-width:1px}.trend-axis-label{font-family:var(--mono);fill:var(--text);font-size:9px}.trend-line{stroke:var(--brand-primary);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.trend-dot{fill:var(--brand-primary);stroke:var(--bg);stroke-width:2px}.trend-end-label{font-family:var(--mono);fill:var(--text-h);font-size:11px;font-weight:600}.trend-tooltip{background:var(--text-h);color:var(--bg);white-space:nowrap;pointer-events:none;border-radius:4px;padding:6px 10px;font-size:12px;line-height:1.4;position:absolute;transform:translate(-50%,-125%)}.trend-table{max-width:420px;margin-top:8px}.muted{color:var(--text);opacity:.65}.conflict-note{color:var(--signal-critical);margin-top:2px;font-size:12px}.manual-link-picker{margin-top:6px}.statistics-item-list{columns:2;color:var(--text);column-gap:24px;margin:4px 0 16px;padding-left:18px;font-size:13px}.statistics-item-list li{break-inside:avoid}.confidence-meter{align-items:center;gap:8px;display:flex}.confidence-track{background:var(--surface-alt);border-radius:2px;width:90px;height:8px;overflow:hidden}.confidence-fill{border-radius:2px;height:100%}.confidence-fill.green{background:var(--signal-ok)}.confidence-fill.yellow{background:var(--signal-warning)}.confidence-fill.red{background:var(--signal-critical)}.confidence-label{font-size:12px}button{font:inherit;background:var(--brand-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px}button.secondary{color:var(--text);border:1px solid var(--border);background:0 0}.range-picker{background:var(--surface-alt);border-radius:4px;flex-wrap:wrap;align-items:center;gap:16px;margin:4px 0 20px;padding:10px 14px;font-size:13px;display:flex}.range-picker label{align-items:center;gap:6px;display:flex}.range-picker select{font:inherit;font-family:var(--mono);border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:4px;padding:4px 6px;font-size:12px}.range-picker button{padding:4px 10px;font-size:12px}.upload-form{flex-direction:column;gap:16px;max-width:420px;margin:20px 0;display:flex}.upload-form label{color:var(--text-h);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.upload-form input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:4px;padding:8px 10px;font-weight:400}.upload-form button{align-self:flex-start}.upload-form button:disabled{opacity:.5;cursor:not-allowed}.upload-result{border:1px solid var(--signal-ok);border-radius:4px;max-width:480px;padding:14px 16px}.report-toolbar{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.report-toolbar .back-link{margin-bottom:0}.report-meta{margin:4px 0;font-size:13px}.report-summary{margin:8px 0 20px;font-size:15px}.login-page{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.app-footer{text-align:center;color:var(--text);opacity:.55;padding:16px 32px 24px;font-size:11px}.app-footer a{color:inherit;text-underline-offset:2px;text-decoration:underline}.app-footer a:hover{opacity:.85}.login-card{width:100%;max-width:360px}.login-card h1{text-align:center}@media print{.top-bar,.range-picker,.show-all-toggle,button{display:none!important}.app-shell{max-width:none;padding:0}.card{box-shadow:none;border:none;padding:0}body{background:#fff}a{color:inherit;text-decoration:none}a.back-link{display:none}}
