:root{--blue:#42b6ef;--cyan:#66dfdb;--green:#5cd8a0;--red:#ff727b;--amber:#f2bd68;--purple:#a6b1cf;--line:#293a43;--muted:#b0bec5}
body{background:#0b1117;font-family:"Segoe UI Variable","Segoe UI","Microsoft YaHei",sans-serif;letter-spacing:0;-webkit-font-smoothing:antialiased}
.app{gap:14px;padding:0 20px 20px}.top{background:#0b1117;box-shadow:none;grid-template-columns:minmax(480px,1fr) minmax(580px,1.2fr) 340px!important;gap:12px}.brand h1{font-size:18px;font-weight:650;white-space:normal;line-height:1.3}.brand p{font-size:12px;color:#9caeb9;white-space:normal;line-height:1.4}.logo{width:48px;flex-shrink:0}.logo svg{width:45px;filter:none}.nav button{font-size:15px;font-weight:600;border:0;transition:background .2s}.nav button.active{background:#162a34;box-shadow:inset 0 -3px var(--cyan)}.nav button:hover{background:#1c3039}.status{font-size:13px;gap:8px}.lang button{font-weight:600}
.panel{background:#101c24;border-color:#2b3a44;box-shadow:none;border-radius:6px}.hd{height:48px;background:transparent;padding:0 16px}.hd b{font-size:16px;font-weight:650;text-transform:none}.hd span{font-size:13px}.kpi{padding:18px 24px;grid-template-columns:66px 1fr;border-top:2px solid currentColor}.kpi .svg{width:40px;height:40px}.kpi .num{font-size:48px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}.kpi .label{font-size:13px;font-weight:600;text-transform:none;color:#bac7ce}.command .mid{grid-template-columns:290px minmax(0,1fr) 360px!important}.command{grid-template-rows:116px minmax(0,1fr) 236px}.kpi{height:100%}
.area{grid-template-columns:40px minmax(0,1fr);position:relative;min-height:104px;height:auto;padding:14px 12px 30px;gap:10px;background:#15232c;border-color:#30424c!important;box-shadow:none!important}.area .svg{width:32px;height:32px}.area h3{font-size:15px;font-weight:600}.area p{font-size:12px;margin-top:5px}.area>b{position:absolute;bottom:9px;left:62px;font-size:11px;font-weight:600}.critical{color:var(--red)}.warning{color:var(--amber)}.normal{color:var(--green)}.area h3,.risk h3{color:#f0f5f7}.risk{width:100%;grid-template-columns:36px minmax(0,1fr);padding:16px 12px;gap:10px;background:#15232c;box-shadow:none!important;border:1px solid #30424c!important;border-left:3px solid var(--amber)!important;transition:background .2s,transform .2s}.risk.critical{border-left-color:var(--red)!important}.risk:hover{background:#203440;transform:translateY(-2px)}.risk .svg{width:30px;height:30px}.risk h3{font-size:16px;font-weight:600;line-height:1.35}.risk p{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.pill{font-size:11px;font-weight:600}
.plant img{filter:brightness(1.12) saturate(.78)!important}.zone{font-size:13px;font-weight:600;padding:8px 11px;border-radius:4px;backdrop-filter:blur(8px)}.route{border-width:3px;filter:drop-shadow(0 0 4px var(--cyan));opacity:.8}.marker{width:44px;height:44px;border-width:2px;box-shadow:0 0 0 7px #091b2966}.marker .svg{width:26px;height:26px}.m1:after{content:"";position:absolute;inset:-8px;border:1px solid var(--red);border-radius:50%;animation:beacon 3s infinite}.mission h3{font-size:23px;font-weight:600;margin:10px 0}.mission h2{font-size:20px;font-weight:600}.missionline{font-size:14px;gap:16px}.robot-round{border-width:2px;box-shadow:none}.fleetgrid{height:calc(100% - 48px)}.fleetgrid .svg{display:block;width:38px;height:38px;margin:8px auto}.fleetgrid b{font-size:36px;font-weight:600}.fleetgrid span{font-size:13px}.overlay{background:#0b231fdb;border:1px solid #5cd8a088;backdrop-filter:blur(6px);border-radius:4px;padding:8px 12px}.overlay b{font-size:28px;font-weight:600}
.event-title h2{font-size:32px;font-weight:650}.event-title p{font-size:18px;line-height:1.5}.gauge{font-size:30px;font-weight:600}.recommend b{font-size:21px;line-height:1.5;font-weight:600}.cta{font-size:17px;font-weight:600;border-radius:5px;transition:filter .2s,transform .2s}.cta:hover{filter:brightness(1.2);transform:translateY(-1px)}.cta .svg{width:26px;height:26px}.cta.blue{background:#157694}.cta.red{background:#ad3948}.summary li{font-size:17px;line-height:1.5}.tag{font-size:13px;padding:6px 10px;font-weight:600}.cam{font-size:14px;line-height:1.5;text-shadow:0 1px 6px #000}.call{font-size:16px;border-width:1px;background:#4c1720dc}.box{border-width:2px}.mission-item h3{font-size:18px;font-weight:600}.checkpoint{font-size:14px;border-radius:4px}.execution b{font-size:32px;font-weight:600}.case-title h2{font-size:26px;font-weight:600}.case-title h3{font-size:22px;font-weight:600}.case h3{font-size:17px;font-weight:600}.case p{font-size:14px}.fact b{font-weight:600}.badge{font-weight:600}.trow{font-size:14px}.media,.livebox,.ev-card img{cursor:zoom-in}.media img,.livebox img{transition:filter .25s}.media:hover img,.livebox:hover img{filter:brightness(1.12)}button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.ex-tools{display:flex;align-items:center;justify-content:center}.ex-fullscreen{width:32px;height:32px;font-size:24px;color:#b9ccd7}.ex-viewer{border:1px solid #425563;border-radius:6px;padding:12px;background:#0c141c;color:white;max-width:92vw;max-height:94vh}.ex-viewer::backdrop{background:#02060dea;backdrop-filter:blur(10px)}.ex-viewer img{display:block;max-width:86vw;max-height:80vh;object-fit:contain}.ex-viewer header{display:flex;justify-content:space-between;align-items:center;padding:0 0 12px;font-size:14px}.ex-viewer button{font-size:26px;width:36px;height:36px}.page.active{animation:enter .28s ease-out}@keyframes enter{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes beacon{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.7);opacity:0}}
@media(max-width:1500px){.top{grid-template-columns:minmax(320px,1fr) minmax(480px,1.3fr) 285px!important}.brand h1{font-size:16px}.brand p{font-size:11px}.nav button{font-size:13px}.command .mid{grid-template-columns:235px minmax(0,1fr) 290px!important}.area h3{font-size:13px}.risk h3{font-size:14px}.mission h3{font-size:20px}.command{grid-template-rows:100px minmax(0,1fr) 218px}.area{min-height:88px}.risk{min-height:110px;padding:12px}.kpi .num{font-size:38px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
