[hidden]{display:none!important}:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#07111f;--panel:#0d1a2a;--panel2:#111f33;--line:rgba(255,255,255,.08);--muted:#91a0b4;--text:#f4f7fb;--accent:#1f77ff;--ok:#3ecf8e;--warn:#f5b942}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100vh}.loading-screen{position:fixed;inset:0;z-index:9999;min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center;background:radial-gradient(circle at 20% 10%,rgba(31,119,255,.16),transparent 32%),var(--bg)}.loading-screen>div{display:grid;gap:12px}.loader{width:44px;height:44px;border:4px solid rgba(255,255,255,.12);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite;margin:auto}.loading-screen span{color:var(--muted);font-size:.92rem}@keyframes spin{to{transform:rotate(360deg)}}.workspace{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:linear-gradient(180deg,#091625,#07111f);padding:22px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}.brand--official{gap:10px}.brand-logo{width:74px;height:48px;object-fit:contain;border-radius:10px;background:#050b14;padding:4px;border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 28px rgba(0,0,0,.24)}.brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#0c89ff,#174cae);display:grid;place-items:center;font-weight:900;letter-spacing:-.04em}.brand-copy strong{display:block;font-size:1rem}.brand-copy span{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}.nav-label{padding:12px 10px 8px;color:#65748a;font-size:.67rem;font-weight:800;letter-spacing:.13em}.nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#b9c4d3;display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:11px;font:inherit;font-size:.9rem;cursor:pointer;text-align:left}.nav-item:hover{background:rgba(255,255,255,.04);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(31,119,255,.2),rgba(31,119,255,.06));color:#fff;border:1px solid rgba(59,130,246,.18)}.nav-icon{width:22px;text-align:center;color:#80afff;font-size:1rem}.nav-off{margin-left:auto;padding:2px 7px;border:1px solid rgba(245,185,66,.3);border-radius:999px;color:#ffe0a0;font-size:.6rem;font-weight:800;white-space:nowrap}.sidebar-bottom{margin-top:auto;padding-top:18px}.user-card{border-top:1px solid var(--line);padding:18px 8px 4px;display:flex;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#1a2d45;display:grid;place-items:center;font-weight:800;font-size:.8rem}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta strong{font-size:.84rem}.user-meta span{font-size:.7rem;color:var(--muted);margin-top:3px}.logout{border:0;background:transparent;color:#8697ad;font-size:.8rem;cursor:pointer;padding:6px}.main{min-width:0}.topbar{min-height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 28px;background:rgba(7,17,31,.85);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.title-block h1{font-size:1.05rem;margin:0}.title-block p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.top-actions{display:flex;align-items:center;gap:10px}.work-select{min-width:280px;border:1px solid var(--line);background:#0b1828;color:#eaf0f8;border-radius:10px;padding:10px 12px;outline:none}.menu-toggle{display:none;border:1px solid var(--line);background:#0b1828;color:#fff;border-radius:9px;padding:9px 11px}.content{padding:28px;max-width:1500px;margin:0 auto}.hero-card{border:1px solid var(--line);border-radius:18px;padding:26px;background:linear-gradient(135deg,rgba(31,119,255,.14),rgba(13,26,42,.84) 45%,#0d1a2a);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.section-kicker{font-size:.67rem;letter-spacing:.13em;font-weight:900;color:#75a8ff}.hero-card h2,.panel h3{margin:7px 0 8px}.hero-card h2{font-size:clamp(1.6rem,3vw,2.5rem)}.hero-card p,.panel p,.empty-state p,.notice p{color:var(--muted);line-height:1.55;margin:0}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:.7rem;font-weight:800;white-space:nowrap;border:1px solid}.status-pill.ok{color:#b9f3d5;border-color:rgba(62,207,142,.28);background:rgba(62,207,142,.08)}.status-pill.warn{color:#ffe0a0;border-color:rgba(245,185,66,.3);background:rgba(245,185,66,.08)}.status-pill.build{color:#bcd4ff;border-color:rgba(31,119,255,.27);background:rgba(31,119,255,.08)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.kpi{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:18px}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi span{font-size:.72rem}.kpi strong{display:block;font-size:1.7rem;margin:8px 0 6px}.kpi small{font-size:.68rem}.panel{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:22px;margin-top:16px}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.panel h3{font-size:1.2rem}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.module-card{border:1px solid var(--line);background:#0a1726;color:#fff;border-radius:13px;padding:18px;text-align:left;cursor:pointer;transition:.18s ease}.module-card:hover{transform:translateY(-2px);border-color:rgba(31,119,255,.38);background:#0d1d31}.module-card>span{display:block;color:#82b0ff;font-size:1.25rem}.module-card strong{display:block;margin:12px 0 5px}.module-card small{color:var(--muted)}.empty-state{border:1px dashed rgba(255,255,255,.12);border-radius:14px;padding:26px;margin-top:18px;background:rgba(255,255,255,.015)}.empty-state strong{display:block;margin-bottom:7px}.primary-link{display:inline-block;margin-top:15px;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;font-size:.82rem;padding:10px 13px;border-radius:9px}.notice{border-radius:14px;padding:16px 18px;margin-top:16px;border:1px solid}.notice.warning{border-color:rgba(245,185,66,.28);background:rgba(245,185,66,.07)}.notice code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#ffd783;font-size:.78rem;word-break:break-all}@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.workspace{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:280px;transform:translateX(-102%);transition:.2s ease;box-shadow:24px 0 60px rgba(0,0,0,.4)}.sidebar.open{transform:translateX(0)}.menu-toggle{display:inline-block}.topbar{padding:12px 16px}.work-select{min-width:0;max-width:48vw}.content{padding:18px}.module-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar{align-items:flex-start;flex-wrap:wrap}.top-actions{width:100%}.work-select{max-width:none;flex:1}.kpi-grid{grid-template-columns:1fr}.hero-card{flex-direction:column}.content{padding:14px}.panel,.hero-card{padding:18px}.brand-logo{width:72px;height:46px}}
/* CVM global theme — Phase 1 */
:root{--surface:#091624;--surface2:#0a1726;--surface3:#0d1c2d;--input:#07111f;--soft-line:rgba(255,255,255,.055);--hover:rgba(255,255,255,.04);--table-text:#dbe5f0;--head-text:#9fb0c5;--topbar:rgba(7,17,31,.85);--sidebar-start:#091625;--sidebar-end:#07111f}
html[data-theme="light"]{color-scheme:light;--bg:#f4f7fb;--panel:#fff;--panel2:#f8fafc;--surface:#fff;--surface2:#f7f9fc;--surface3:#eef3f8;--input:#fff;--line:rgba(13,42,79,.14);--soft-line:rgba(13,42,79,.09);--muted:#65758b;--text:#132033;--table-text:#26384d;--head-text:#53677e;--hover:rgba(20,91,255,.055);--topbar:rgba(255,255,255,.92);--sidebar-start:#fff;--sidebar-end:#f5f8fc}
html[data-theme="light"] .sidebar{background:linear-gradient(180deg,var(--sidebar-start),var(--sidebar-end));box-shadow:8px 0 28px rgba(19,32,51,.04)}
html[data-theme="light"] .brand-logo{background:#fff;border-color:var(--line)}
html[data-theme="light"] .nav-label{color:#78879a}
html[data-theme="light"] .nav-item{color:#53677e}
html[data-theme="light"] .nav-item:hover{background:#edf3fb;color:#132033}
html[data-theme="light"] .nav-item.active{background:linear-gradient(90deg,rgba(31,119,255,.13),rgba(31,119,255,.035));color:#164fbd}
html[data-theme="light"] .avatar{background:#e5edf7;color:#26415f}
html[data-theme="light"] .topbar{background:var(--topbar)}
html[data-theme="light"] .work-select,html[data-theme="light"] .menu-toggle{background:#fff;color:#132033}
html[data-theme="light"] .hero-card{background:linear-gradient(135deg,rgba(31,119,255,.10),#fff 48%,#f8fafc)}
html[data-theme="light"] .module-card{background:#fff;color:#132033}
html[data-theme="light"] .module-card:hover{background:#f5f8fc}
html[data-theme="light"] .empty-state{border-color:rgba(13,42,79,.16);background:rgba(13,42,79,.018)}
.theme-switch{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--line);border-radius:999px;background:var(--surface2)}
.theme-button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--muted);padding:0;cursor:pointer;line-height:1}
.theme-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.theme-button:hover{color:var(--text);background:var(--hover)}
.theme-button.active{color:#fff;background:var(--accent);box-shadow:0 3px 10px rgba(31,119,255,.24)}
html[data-theme="light"] .theme-button.active{color:#fff}
@media(max-width:560px){.theme-button{width:28px;height:28px}.theme-button svg{width:15px;height:15px}}
/* Normalize existing R12 modules to global light tokens without changing print rules. */
html[data-theme="light"] :is(.admin-card,.admin-list-item,.check-card,.eng-kpi,.eng-breakdown,.eng-tech-card,.eng-table-toolbar,.plan-hero,.plan-side,.pointing-panel,.fronts-panel,.supply-operation,.reservation-row,.report-hero,.report-card,.report-physical,.report-kpis article,.ops-hero,.ops-kpi,.ops-step){background:var(--panel)!important;color:var(--text)!important}
html[data-theme="light"] :is(.admin-form input,.admin-form select,.eng-import-grid select,.eng-import-grid input,.eng-table-toolbar input,.pointing-toolbar input,.point-input,.supply-list-toolbar input,.supply-form input,.supply-form select,.supply-form textarea,.buy-qty,.reservation-actions input){background:var(--input)!important;color:var(--text)!important;border-color:var(--line)!important}
html[data-theme="light"] :is(.eng-table th,.supply-table th,.pointing-table th,.fronts-table th,.ops-table th,.plan-side-head,.pointing-toolbar,.report-section-head,.supply-list-toolbar){background:var(--surface3)!important;color:var(--head-text)!important}
html[data-theme="light"] :is(.eng-table td,.supply-table td,.pointing-table td,.ops-table td){color:var(--table-text)!important;border-color:var(--soft-line)!important}
html[data-theme="light"] :is(.supply-table td strong,.pointing-table td strong,.report-kpis strong){color:var(--text)!important}
html[data-theme="light"] :is(.admin-form label,.admin-field-label,.eng-import-grid label,.supply-form label){color:#43566d!important}
html[data-theme="light"] :is(.admin-feedback:not(:empty),.eng-status:not(:empty),.supply-feedback:not(:empty),.report-meta>span){background:#f7f9fc}
html[data-theme="light"] :is(.supply-secondary,.supply-small,.supply-link,.point-tabs button,.pointing-pager button,.point-reset,.report-actions button){background:#fff;color:#30465f}
html[data-theme="light"] .front-pct>span{background:#dfe7f1}
html[data-theme="light"] .report-progress{background:#dfe7f1}
html[data-theme="light"] .loading-screen{background:radial-gradient(circle at 20% 10%,rgba(31,119,255,.10),transparent 32%),var(--bg)}

/* Phase 1 contrast hardening — keep dark media surfaces readable in Light Mode */
html[data-theme="light"] :is(.work-hero,.work-hero-card,.overview-hero,.hero-work,.work-banner,.overview-banner){color:#f4f7fb!important}
html[data-theme="light"] :is(.work-hero,.work-hero-card,.overview-hero,.hero-work,.work-banner,.overview-banner) :is(h1,h2,h3,strong){color:#fff!important}
html[data-theme="light"] :is(.work-hero,.work-hero-card,.overview-hero,.hero-work,.work-banner,.overview-banner) :is(p,span,small){color:#b9c9dc!important}
html[data-theme="light"] .overview-section{background:#fff!important;color:var(--text)!important}
html[data-theme="light"] .overview-section-head{background:#f5f8fc!important}
html[data-theme="light"] .overview-metric{background:#fff!important;border-color:var(--line)!important}
html[data-theme="light"] .overview-metric-title strong,html[data-theme="light"] .overview-metric-secondary strong{color:var(--text)!important}
html[data-theme="light"] .overview-metric-primary small,html[data-theme="light"] .overview-metric-secondary{color:var(--muted)!important}
html[data-theme="light"] .overview-progress{background:#dfe7f1!important}
html[data-theme="light"] :is(.ops-table,.eng-table,.supply-table,.pointing-table,.fronts-table) tbody tr:hover{background:var(--hover)!important}
html[data-theme="light"] :is(.panel,.kpi,.admin-card,.eng-tech-card,.plan-side,.pointing-panel,.fronts-panel,.supply-operation,.report-card,.ops-kpi,.ops-step) :is(h1,h2,h3,h4,strong){color:var(--text)}
