:root{--bg:#07111f;--panel:#0b192b;--panel2:#0e2138;--line:#24415e;--text:#edf6ff;--muted:#9db4c9;--accent:#398cff;--good:#37d6a0;--warn:#ffcc66;--bad:#ff7676}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#06101c,#091729);color:var(--text);font-family:"Microsoft YaHei","Segoe UI",sans-serif;font-size:14px}.shell{max-width:1520px;margin:auto;padding:28px}.hero{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding:8px 4px 24px}.eyebrow{color:#7fb6ff;letter-spacing:.12em;font-size:12px}.hero h1{font-size:30px;margin:8px 0}.hero p,.section-title p{color:var(--muted);margin:4px 0}.hero-badges{display:flex;gap:8px;flex-wrap:wrap}.hero-badges span{border:1px solid #2e6aa3;background:#0c2743;padding:6px 10px;border-radius:999px;color:#a8d2ff}.panel{background:rgba(11,25,43,.97);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 10px 28px rgba(0,0,0,.18)}.emphasis{border-color:#2f6f8e}.section-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.section-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#12365d;color:#91c3ff;font-weight:700}.section-title h2{font-size:18px;margin:3px 0}.grid{display:grid;gap:12px}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:flex;flex-direction:column;gap:6px;color:#a8c2d9;position:relative}input,select{background:#071525;border:1px solid #31506e;color:#fff;border-radius:7px;padding:10px 12px;min-height:40px;font:inherit}input:focus,select:focus{outline:1px solid #438ee5;border-color:#438ee5}.unit{position:absolute;right:12px;bottom:11px;color:#7995ae;pointer-events:none}.actions{display:flex;gap:10px;margin:14px 0}.actions button,.login-card button{border:1px solid #365676;background:#172d47;color:#e8f3ff;padding:10px 16px;border-radius:7px;font-weight:650;cursor:pointer}.actions button.primary,.login-card button.primary{background:#287ce7;border-color:#287ce7}.cards{display:grid;gap:10px;margin:14px 0}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-height:82px;background:#08182a;border:1px solid #2a4967;border-radius:9px;padding:14px}.metric span{display:block;color:#91aac0;margin-bottom:8px}.metric strong{font-size:20px}.metric strong.small{font-size:15px;line-height:1.5}.info-line{border-left:3px solid #3f8def;padding:10px 12px;background:#0a1a2d;color:#cfe6ff;margin:10px 0;min-height:38px}.table-wrap{overflow:auto;border:1px solid #294864;border-radius:8px;max-height:430px}.table-wrap.scenario{max-height:520px}table{width:100%;border-collapse:collapse;min-width:1050px}th{position:sticky;top:0;background:#142b47;color:#e5f2ff;text-align:left;padding:9px;border-bottom:1px solid #395976;z-index:1}td{padding:8px 9px;border-bottom:1px solid #1f3b55;color:#d8e9f7;white-space:nowrap}tr:hover td{background:#0c2036}.optional{border:1px solid #263f58;border-radius:8px;padding:10px 12px;margin-top:12px;color:#a9c4dc}.optional summary{cursor:pointer;color:#bcd7ef;margin-bottom:10px}footer{color:#9eb4c8;padding:6px 4px 28px;line-height:1.7}.login-gate{position:fixed;inset:0;display:grid;place-items:center;background:rgba(3,9,17,.96);z-index:20}.login-gate.hidden{display:none}.login-card{width:min(430px,90vw);background:#0c1b2e;border:1px solid #2d4f6d;border-radius:12px;padding:28px}.login-card h1{margin:8px 0}.login-card p{color:#a6bdd1}.login-card input{width:100%;margin:10px 0}.error{color:#ff8b8b;margin-top:10px}@media(max-width:1000px){.grid.four,.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{display:block}.hero-badges{margin-top:14px}}@media(max-width:650px){.shell{padding:14px}.grid.four,.grid.two,.cards.four{grid-template-columns:1fr}.hero h1{font-size:24px}}


/* V10.12-P2E-5081-GA2 — light engineering theme */
:root{
  --bg:#f4f7fb;--panel:#ffffff;--panel2:#f8fafc;--line:#d7e0ea;
  --text:#162033;--muted:#607086;--accent:#2563eb;--good:#0f9f6e;
  --warn:#a16207;--bad:#c24141
}
html{background:#f4f7fb}
body{background:linear-gradient(180deg,#f8fafc 0%,#eef3f8 100%);color:var(--text)}
.eyebrow{color:#3168b8}.hero p,.section-title p{color:var(--muted)}
.hero-badges span{border-color:#b9d0ef;background:#eef6ff;color:#245a9b}
.panel{background:#fff;border-color:#d7e0ea;box-shadow:0 8px 24px rgba(32,55,84,.08)}
.emphasis{border-color:#9fc6f4}.section-title>span{background:#e7f1ff;color:#1f63b8}
label{color:#43556b}
input,select{background:#fff;border-color:#bdcad9;color:#162033}
input::placeholder{color:#94a3b8}
input:focus,select:focus{outline:2px solid #bfdbfe;border-color:#3b82f6}
.unit{color:#718198}
.actions button,.login-card button{border-color:#c3d0df;background:#f4f7fb;color:#223149}
.actions button:hover,.login-card button:hover{background:#eaf2fb}
.actions button.primary,.login-card button.primary{background:#2563eb;border-color:#2563eb;color:#fff}
.metric{background:#f8fafc;border-color:#d7e0ea}.metric span{color:#66778e}
.info-line{border-left-color:#3b82f6;background:#eef6ff;color:#284d75}
.table-wrap{border-color:#d7e0ea;background:#fff}
th{background:#eef3f8;color:#26374d;border-bottom-color:#cbd6e2}
td{color:#334155;border-bottom-color:#e5eaf0}tr:hover td{background:#f5f8fc}
.optional{border-color:#d7e0ea;background:#fbfcfe;color:#506176}.optional summary{color:#30445e}
footer{color:#62738a}
.login-gate{background:rgba(238,243,248,.97)}
.login-card{background:#fff;border-color:#d7e0ea;box-shadow:0 20px 55px rgba(26,45,72,.16)}
.login-card p{color:#607086}.error{color:#b42318}
.viz-card{border-color:#d7e0ea !important;background:#fbfcfe !important}
.viz-svg text{fill:#475569 !important}.viz-svg .gridline{stroke:#e2e8f0 !important}
.viz-svg .axis{stroke:#94a3b8 !important}.viz-svg .demand-line{stroke:#2563eb !important}
.viz-svg .supply-line{stroke:#059669 !important}.viz-svg .demand-point{fill:#2563eb !important}
.viz-svg .supply-point{fill:#059669 !important}.viz-legend .demand{color:#2563eb !important}
.viz-legend .supply{color:#059669 !important}


/* GA2-HF6 — visible work state + optional actual run-time supply */
.hidden{display:none !important}
.busy-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(244,247,251,.72);backdrop-filter:blur(2px)}
.busy-card{min-width:min(360px,86vw);display:grid;justify-items:center;gap:10px;padding:24px 28px;background:#fff;border:1px solid #cbd7e5;border-radius:14px;box-shadow:0 18px 55px rgba(30,50,80,.18);color:#23344b}
.busy-card small{color:#718198}.spinner{width:34px;height:34px;border:4px solid #dbe7f5;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
button[disabled]{opacity:.6;cursor:wait}
.actual-supply summary{font-size:14px}.actual-segments{display:grid;gap:10px;margin:12px 0}
.actual-segment{border:1px solid #d7e0ea;border-radius:10px;background:#fff;padding:12px}
.actual-segment-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.actual-segment-head strong{color:#31445d}.actual-segment-head button{border:1px solid #d3dce8;background:#f7f9fc;border-radius:6px;padding:6px 10px;cursor:pointer;color:#475569}
.actual-segment .grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.actual-segment .wide{grid-column:span 2}
@media(max-width:900px){.actual-segment .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.actual-segment .grid{grid-template-columns:1fr}.actual-segment .wide{grid-column:auto}.busy-card{min-width:82vw}}
