:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#203b34;background:#f3f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.topbar{padding:20px 30px;border-bottom:1px solid #dce5df;background:#fbfcfa;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;align-items:center;gap:13px}.brandmark{display:grid;place-items:center;background:#176a54;color:#fff;font-size:25px;width:44px;height:44px;border-radius:12px}h1{font-size:20px;margin:0;font-weight:650}.brand p{font-size:12px;color:#6b8177;margin:5px 0 0}.topright{display:flex;gap:8px;flex-wrap:wrap}.pill{font-size:12px;border:1px solid #d7e5dc;background:#edf5ef;border-radius:20px;padding:8px 13px}main{max-width:1740px;margin:auto;display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;padding:22px 28px}.controls,.panel{background:#fff;border:1px solid #dce6df;border-radius:14px;padding:18px}.controls{align-self:start}.workspace{min-width:0}.panel{margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}h2{font-size:16px;margin:0;font-weight:650}.eyebrow{font-size:10px;letter-spacing:2px;color:#7b9287;display:block;margin-bottom:5px}.hint,small{font-size:12px;color:#63786e;line-height:1.6}.fields{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.fields label{font-size:11px;color:#476155}.fields input{margin-top:5px}.check{font-size:12px;color:#476155;display:flex;gap:8px;align-items:flex-start;margin:16px 0;line-height:1.5}.check input{accent-color:#176a54;margin:2px 0 0}input,select,button{font:inherit}input[type=number],input[type=text],select{color:#203b34;border:1px solid #cedbd2;background:white;border-radius:7px;padding:8px;width:100%;min-height:38px}button{font-size:12px;padding:9px 13px;background:#fff;color:#315647;border:1px solid #cddbd2;border-radius:7px;cursor:pointer}button:hover{background:#eef5ef}button:disabled{cursor:default;opacity:.45}.primary{background:#176a54;border-color:#176a54;color:#fff}.primary:hover{background:#115a46}.wide{width:100%}.quiet{border:0;background:transparent;color:#38765d;padding:5px}.error{font-size:12px;color:#a53d2a;min-height:20px}.controls details{border-top:1px solid #e0e7df;margin-top:8px;padding-top:14px}.controls summary{cursor:pointer;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.kpi{border:1px solid #dce6df;border-radius:12px;background:#fff;padding:14px;min-width:0}.kpi span{display:block;color:#6b8075;font-size:11px}.kpi strong{display:block;font-size:21px;font-weight:600;margin-top:6px;overflow-wrap:anywhere}.stage-panel{padding:0;overflow:hidden}.stage-panel>.section-head{padding:18px 20px 3px}.clock{font-size:15px;font-variant-numeric:tabular-nums;color:#5b776a}.scene-wrap{padding:0 15px}.scene-wrap svg{display:block;width:100%;max-height:570px;border-radius:9px}.zone-title{font-size:15px;fill:#365749;font-weight:650}.zone-sub,.disclaimer{font-size:11px;fill:#70877a}.route{stroke:#a7c3af;stroke-width:3;stroke-dasharray:7 7}.cargo-route{fill:none;stroke:#d5e4d7;stroke-width:5;stroke-dasharray:7 8}.slot{fill:white;stroke:#a8c7b3;stroke-width:2}.slot.outside{stroke:#d7bf83}.slot.busy{fill:#e3f1e7;stroke:#288060}.slot.outside.busy{fill:#fff0c9;stroke:#bd9441}.slot-text{font-size:11px;fill:#668273}.plane-mark{cursor:pointer}.plane-mark circle{stroke:white;stroke-width:2}.plane-mark text{fill:white;font-size:11px;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none}.plane-mark.selected circle{stroke:#df8c39;stroke-width:4}.cargo-icon{fill:#cf9a52;stroke:#9d6e33}.stage-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:14px 20px;border-top:1px solid #e5ebe6;border-bottom:1px solid #e5ebe6}.stage-stat span{font-size:11px;color:#73877c;display:block}.stage-stat strong{font-size:17px;font-weight:600;display:block;margin-top:4px}.transport{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:14px 20px 5px}.transport label{display:flex;align-items:center;gap:8px;font-size:12px;color:#557463}.transport select{width:auto;min-height:34px;padding:5px}#seek{display:block;width:calc(100% - 40px);margin:12px 20px 2px;accent-color:#176a54}.time-scale{display:flex;justify-content:space-between;font-size:10px;color:#83958a;padding:0 20px 14px}.lower{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.flight-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.flight-card{border:1px solid #dce7df;border-radius:9px;background:#f8faf8;padding:10px;text-align:left}.flight-card.selected{border-color:#ca9650;background:#fff7ea}.flight-card b{display:block;font-size:13px}.flight-card span{font-size:11px;color:#6d8075}.status{display:inline-block;padding:3px 7px;border-radius:20px;background:#e5eee9;color:#267354;margin-top:6px}.status.queued{background:#e8f1f8;color:#547c99}.status.late{background:#fff1dc;color:#9b6d2b}.selection{margin-top:13px;color:#526b5e;font-size:12px;line-height:1.7}.capacity-line{margin:12px 0}.capacity-label{display:flex;justify-content:space-between;font-size:12px;color:#4d6658}.track{height:7px;border-radius:8px;background:#edf2ee;margin-top:5px;overflow:hidden}.fill{height:100%;background:#57a780;border-radius:8px}.fill.warn{background:#e0a458}.event-log{margin-top:16px;border-top:1px solid #e3eae4;padding-top:12px;color:#5b7365;font-size:12px;line-height:1.7}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:8px 9px;border-bottom:1px solid #dce6df;text-align:left;white-space:nowrap}th{color:#557463;font-weight:600}td input{width:78px!important;min-height:30px!important;padding:5px!important}td input[data-k=id]{width:54px!important}td select{min-height:30px!important;padding:5px!important;width:93px!important}td button{padding:5px 8px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #469b7c;outline-offset:2px}@media(max-width:1280px){.kpis{grid-template-columns:repeat(3,1fr)}.lower{grid-template-columns:1fr}}@media(max-width:850px){.topbar{padding:16px;flex-wrap:wrap}main{display:flex;flex-direction:column;padding:12px}.controls{order:1}.workspace{order:0;width:100%}.kpis{grid-template-columns:repeat(2,1fr)}.scene-wrap{padding:0}.scene-wrap svg{min-height:260px}.stage-stats{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Large daily plans remain editable without filling the whole page. */
.plan-tools{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.plan-tools label{font-size:11px;color:#557463;display:grid;gap:3px}
.plan-tools input{width:85px;min-height:32px;padding:5px}
#flightTableDetails{border-top:1px solid #e3eae4;padding-top:8px}
#flightTableDetails summary{cursor:pointer;color:#315647;font-size:12px;margin-bottom:8px}
#resultsDetails{border-top:1px solid #e3eae4;padding-top:10px}
#resultsDetails summary{cursor:pointer;color:#315647;font-size:13px;font-weight:600;padding:7px 0}
#resultsDetails[open] summary{margin-bottom:8px}
.incident-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 20px;background:#f4f8f3;border-bottom:1px solid #e5ebe6;font-size:12px;color:#486455}
.incident-banner strong{color:#94612c}
.operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.operation-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.operation-numbers>div{background:#f6faf6;border:1px solid #dce7df;border-radius:8px;padding:10px}
.operation-numbers span{display:block;font-size:11px;color:#71867a}
.operation-numbers strong{display:block;font-size:16px;margin-top:4px}
.operation-list{margin-top:13px;font-size:12px;max-height:180px;overflow:auto}
.operation-list>b{display:block;margin-bottom:6px}
.operation-list>div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid #e7eee8}
.operation-list span{color:#61776a;text-align:right}
.operation-list p{color:#71867a}
.game-incident{background:#663f23d9;color:#fff1db;border-radius:9px;padding:8px 12px;font-size:12px}
@media(max-width:850px){.operations-grid{grid-template-columns:1fr}}
.flight-cards .list-note{grid-column:1/-1;margin:0}
.mode-entry{display:inline-flex;align-items:center;padding:9px 13px;border:1px solid #176a54;border-radius:7px;background:#e9f5ed;color:#176a54;font-size:12px;font-weight:650;text-decoration:none}
.mode-entry:hover{background:#d9eee0}
