:root{--ink:#292321;--muted:#625f5c;--red:#d71920;--red-dark:#aa141b;--line:#dedbd7;--canvas:#f4f5f6;--green:#087b73;--green-bg:#eaf6f3;--red-bg:#fff0f1;--amber:#805600;--amber-bg:#fff6df;--blue:#305f7b}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;background:var(--canvas);color:var(--ink);font:16px/1.5 Arial,"Segoe UI",sans-serif}button,input,select{font:inherit}button,select,input[type=checkbox],input[type=range],summary{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.table-scroll:focus-visible{outline:3px solid #d7192080;outline-offset:3px}.skip-link{position:absolute;top:-60px;left:16px;z-index:10;padding:10px;background:white}.skip-link:focus{top:12px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.2;letter-spacing:-.025em;margin-bottom:0}h2{font-size:20px;line-height:1.3;margin-bottom:0}h3{font-size:16px;margin-bottom:0}
.topbar{padding:16px 30px;background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:18px}.brand img{width:105px;height:36px;object-fit:contain;filter:brightness(0) invert(1)}.divider{height:32px;width:1px;background:#ffffff40}.brand strong{display:block;font-size:22px}.brand div>span{font-size:14px;color:#e7e0db}.prototype-label{font-size:14px;border:1px solid #ffffff40;border-radius:5px;padding:6px 10px;white-space:nowrap}main{max-width:1360px;margin:auto;padding:24px 30px 30px}.context{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.eyebrow{font-size:12px;letter-spacing:.065em;color:var(--red-dark);font-weight:700;margin:0 0 6px}.context-note{font-size:14px;color:var(--muted);margin:8px 0 0}.button{border:1px solid var(--red);background:var(--red);color:white;padding:9px 14px;border-radius:6px;font-weight:600;font-size:14px;line-height:1.35}.button:hover{background:var(--red-dark)}.button.secondary{background:white;border-color:#c9c4bf;color:var(--ink)}.button.secondary:hover{background:#f1f1f1}.button:disabled{opacity:.5;cursor:not-allowed}.view-tabs{display:flex;border-bottom:1px solid #cdc8c3;gap:4px;margin-bottom:20px}.view-tabs button{background:transparent;border:0;border-bottom:3px solid transparent;padding:12px 18px;font-size:15px;font-weight:600;color:var(--muted)}.view-tabs button[aria-selected=true]{border-bottom-color:var(--red);color:var(--red-dark);background:#fff}.view-tabs button:hover{background:#fff}
.scope-strip{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:22px;align-items:center;background:white;padding:15px 18px;border:1px solid var(--line);border-radius:8px;margin-bottom:14px}.label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.scope-strip strong{font-size:14px}.product-filter select{padding:7px 10px;font-size:14px}select,input[type=number]{width:100%;border:1px solid #c6c1bc;border-radius:5px;padding:9px 10px;background:white;color:var(--ink)}.data-status{font-size:14px;font-weight:600;color:var(--green);max-width:210px}.data-status.warn{color:var(--amber)}.stock-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.stock-kpi{background:white;border:1px solid var(--line);padding:14px 16px;border-radius:8px;min-width:0}.stock-kpi span{font-size:14px;color:var(--muted);display:block}.stock-kpi strong{display:block;font-size:30px;line-height:1.2;margin:7px 0}.stock-kpi small{font-size:12px;color:var(--muted);display:block}.stock-kpi.eligible{background:var(--green-bg);border-color:#98c9bd}.stock-kpi.eligible strong{color:var(--green)}.stock-kpi.blocked strong{color:var(--red-dark)}
.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(325px,1fr);gap:18px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:16px;min-width:0}.panel-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.section-number{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:white;font-size:13px;font-weight:700;border-radius:5px;padding:7px 9px;flex-shrink:0}.panel-heading p{font-size:14px;color:var(--muted);margin:4px 0 0}.table-scroll{overflow:auto;max-width:100%}.batch-table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}.batch-table th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.025em;color:var(--muted);padding:10px 8px;background:#f5f5f5;border-bottom:1px solid var(--line)}.batch-table td{padding:12px 8px;border-bottom:1px solid #eeeae6;vertical-align:middle}.batch-table td:nth-child(2),.batch-table td:nth-child(3),.batch-table td:nth-child(5){font-variant-numeric:tabular-nums}.batch-table td strong{font-size:14px}.batch-table td small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.batch-table tr.affected{background:var(--amber-bg)}.batch-table .eligible-quantity{font-weight:700;color:var(--green)}.badge{display:inline-block;padding:3px 7px;font-size:12px;font-weight:600;border-radius:4px;white-space:normal;line-height:1.35;max-width:115px}.badge.good{background:var(--green-bg);color:#075b52}.badge.warn{background:var(--amber-bg);color:var(--amber)}.badge.blocked{background:var(--red-bg);color:var(--red-dark)}.badge.neutral{background:#efefef;color:#555}.table-note{font-size:13px;color:var(--muted);margin:12px 0}.stock-bridge{border-top:1px solid var(--line);padding-top:14px}.bridge-bar{height:18px;display:flex;border-radius:4px;overflow:hidden;background:#eee}.bridge-bar span{display:block;height:100%}.bridge-segment.eligible{background:var(--green)}.bridge-segment.committed{background:#698299}.bridge-segment.shortlife{background:#c59231}.bridge-segment.blocked{background:var(--red)}.bridge-segment.uncertain{background:#8874a5}.bridge-legend{display:flex;flex-wrap:wrap;gap:7px 16px;margin-top:11px;font-size:12px;color:var(--muted)}.bridge-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.bridge-explanation{font-size:14px;margin:12px 0 0;line-height:1.5}
.promise-panel label{font-size:14px;font-weight:600;display:block;margin-bottom:7px}.promise-panel .field-note{font-size:12px;margin:7px 0 17px}.field-note{font-size:13px;color:var(--muted);margin:10px 0}.order-input-row{display:flex;align-items:center;gap:20px;margin-top:16px}.order-input-row label{margin:0;flex:1}.order-input-row label span{font-size:12px;font-weight:400;color:var(--muted);display:block}.order-input-row input{width:120px;font-weight:700;font-size:20px;text-align:right;font-variant-numeric:tabular-nums}.quick-tests{display:flex;gap:8px;margin:12px 0 16px}.quick-tests .button{font-size:12px;padding:7px 10px}.promise-result{border-left:4px solid var(--amber);padding:13px 14px;background:var(--amber-bg);border-radius:5px}.promise-result.good{background:var(--green-bg);border-color:var(--green)}.promise-result.error{background:var(--red-bg);border-color:var(--red)}.promise-result .result-title{font-size:16px;font-weight:700;display:block}.promise-result .result-numbers{display:flex;gap:18px;margin-top:10px;flex-wrap:wrap}.result-numbers span{font-size:12px;color:var(--muted);display:block}.result-numbers strong{font-size:24px;line-height:1.2;display:block;margin-top:3px}.promise-result p{font-size:14px;margin:10px 0 0}.allocation-plan{margin-top:17px}.allocation-plan h3{font-size:14px}.allocation-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid #eee;font-size:14px}.allocation-row small{font-size:12px;color:var(--muted);display:block}.boundary{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin:15px 0 0}.source-details{background:#eef1f4;border-radius:6px;padding:11px 15px;margin:0 0 16px;font-size:14px;color:var(--muted)}summary{font-size:14px;font-weight:600;color:var(--ink)}details{font-size:14px;color:var(--muted);margin-top:12px}details p{margin:10px 0 0}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:16px 0}.source-grid strong{color:var(--ink);font-size:14px}.source-grid p{font-size:13px;margin:6px 0 0}
.exception-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:28px}.exception-detail h3{font-size:17px;margin:6px 0}.exception-detail p{font-size:14px;margin:7px 0}.exception-detail .owner{font-weight:600}.exception-label,.small-label{font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--muted)}.exception-label{color:var(--amber)}.reconciliation-controls{padding-left:22px;border-left:1px solid var(--line)}.reconciliation-controls .button{margin:10px 0 0;display:block}.reconciliation-controls p{font-size:12px;color:var(--muted);margin:9px 0 0}.audit-trail{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;border-top:1px solid var(--line);padding-top:13px}.audit-trail span{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:5px 8px;border-radius:4px}.decision-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--ink);color:white;border-radius:7px;padding:16px 20px;margin-bottom:20px}.decision-footer strong{font-size:15px;display:block}.decision-footer span{font-size:13px;color:#eee5de;display:block;margin-top:4px}.decision-footer button{flex-shrink:0}
.slider-label{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:16px;font-weight:600}.slider-label output{font-size:24px;color:var(--red-dark)}input[type=range]{width:100%;accent-color:var(--red);margin:14px 0 5px}.range-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.route-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:30px}.stock-control{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:14px}.stock-control input{width:19px;height:19px;flex-shrink:0;accent-color:var(--green);margin-top:2px}.route-result{background:#f7f8f9;border:1px solid var(--line);padding:18px;border-radius:7px}.route-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.route-metrics span{display:block;font-size:14px;min-height:42px;color:var(--muted)}.route-metrics strong{display:block;font-size:24px;margin-top:5px}.comparison{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.comparison-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.comparison-heading span{font-size:13px}.bar-row{display:grid;grid-template-columns:105px minmax(0,1fr) 62px;gap:9px;align-items:center;margin:10px 0;font-size:13px}.bar-track{height:20px;background:#e2e4e6;position:relative;border-radius:3px}.cost-bar{height:100%;display:block;background:var(--red);border-radius:3px}.cost-bar.reference{background:#788796}.cost-bar.pass{background:var(--green)}.gate-line{position:absolute;left:60%;top:-3px;height:26px;border-left:2px dashed var(--red-dark);z-index:1}.route-decision{font-size:14px;margin-top:15px;background:var(--red-bg);border-left:3px solid var(--red);padding:12px}.route-decision.clear{background:var(--green-bg);border-color:var(--green)}.route-decision.stock{background:var(--amber-bg);border-color:var(--amber)}.route-decision p{margin:5px 0 0}.saving-positive{color:var(--green)}.saving-negative{color:var(--red-dark)}
.expansion-heading label{margin-left:auto;width:250px;flex-shrink:0}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.kpi{border:1px solid var(--line);border-top:3px solid var(--green);border-radius:6px;padding:14px;background:#fafbfc}.kpi.fail{background:var(--red-bg);border-top-color:var(--red)}.kpi .label{font-size:14px;font-weight:600;min-height:42px;color:var(--ink)}.kpi strong{font-size:28px;display:block;margin:4px 0 7px}.kpi small,.kpi .result{font-size:14px;display:block}.kpi small{color:var(--muted)}.kpi .result{color:var(--green);font-weight:600;margin-top:5px}.kpi.fail .result,.kpi.fail strong{color:var(--red-dark)}.release-banner{margin-top:15px;border-left:4px solid var(--red);padding:15px;background:var(--red-bg);border-radius:5px;display:flex;gap:14px}.release-banner.clear{background:var(--green-bg);border-color:var(--green)}.release-banner .status{font-size:14px;font-weight:700;color:var(--red-dark)}.release-banner.clear .status{color:var(--green)}.release-banner p{font-size:14px;margin:4px 0 0}.readiness-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.readiness-chip{padding:10px;background:#f0f5f4;border:1px solid #d8e5dc;border-radius:5px;font-size:13px}.readiness-chip strong{display:block;color:var(--green)}.readiness-chip span{display:block;color:var(--muted);margin-top:3px}.readiness-chip.fail{background:var(--red-bg)}.readiness-chip.fail strong{color:var(--red-dark)}.district-actions{margin-top:15px}.action-item{padding:12px;background:#f7f8f9;border-left:3px solid var(--amber);font-size:14px}.action-item+.action-item{margin-top:8px}.action-item p{margin:5px 0 0}.action-label{font-size:12px;font-weight:600;color:var(--red-dark);margin-right:10px}.action-owner{font-weight:600}.action-note{font-size:12px;color:var(--muted)}#safeguardList{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}#safeguardList span{font-size:13px;padding:7px;background:#f5f5f5}.wave-decision{font-size:14px;border-left:3px solid var(--red);padding:12px;background:var(--red-bg);margin-bottom:15px}.wave-decision.clear{border-color:var(--green);background:var(--green-bg)}.wave-decision strong,.wave-decision span{display:block}.wave-decision span{margin-top:4px;color:var(--muted)}.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.timeline>div{border:1px solid var(--line);border-top:3px solid var(--red);border-radius:5px;padding:14px}.timeline strong{font-size:15px;display:block}.timeline span{font-size:13px;color:var(--red-dark);display:block;margin-top:4px}.timeline p{font-size:14px;margin:8px 0 0;color:var(--muted)}.scale-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;font-size:14px}.scale-summary>div{background:var(--amber-bg);padding:12px;border-radius:5px}.scale-summary p{margin:6px 0 0}footer{margin-top:20px;border-top:1px solid var(--line);padding-top:12px}footer p{font-size:12px;color:var(--muted);margin-bottom:7px}
@media(max-width:1050px){.scope-strip{grid-template-columns:1fr 1fr;gap:14px}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr)}.stock-kpi{padding:12px}.stock-kpi strong{font-size:27px}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.route-layout{grid-template-columns:1fr}.readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.workspace{grid-template-columns:1fr}.stock-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.exception-layout{grid-template-columns:1fr;gap:15px}.reconciliation-controls{border-left:0;border-top:1px solid var(--line);padding:15px 0 0}.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.expansion-heading{flex-wrap:wrap}.expansion-heading label{width:100%;margin-left:0}.decision-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.topbar{padding:13px 16px;flex-wrap:wrap;gap:10px}.brand{gap:12px}.brand img{width:85px}.brand div>span{font-size:12px}.prototype-label{font-size:12px}main{padding:20px 14px}.context{align-items:flex-start;flex-direction:column;gap:14px}h1{font-size:25px}.view-tabs{gap:0}.view-tabs button{padding:10px 8px;font-size:13px;flex:1}.scope-strip{padding:13px;gap:14px}.scope-strip strong{font-size:13px}.stock-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stock-kpi.eligible{grid-column:span 2}.stock-kpi small{font-size:12px}.panel{padding:16px}.source-grid{grid-template-columns:1fr;gap:12px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-metrics{grid-template-columns:1fr}.route-metrics>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.route-metrics span{min-height:0}.route-metrics strong{margin:0}.release-banner{flex-direction:column;gap:6px}.timeline,.scale-summary,#safeguardList{grid-template-columns:1fr}.batch-table td{padding:10px 7px}.readiness-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:90px minmax(0,1fr) 56px;gap:6px}.quick-tests .button{font-size:13px}.scope-strip .data-status{max-width:none}}
.stock-workspace{min-width:0}.panel-heading>div{min-width:0}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
