:root{font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;color:#e7eef0;background:#0a1520;font-synthesis:none;--panel:#101f2c;--border:#263748;--muted:#8296a7;--cyan:#60d6dd;--aqua:#5ad1b4;--amber:#f0b962;--red:#f28277;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html,body{margin:0;min-width:320px}body{background:radial-gradient(ellipse at 35% -28%,#1a3745 0,transparent 49%),#0a1520}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}#app{max-width:1810px;margin:auto}.topbar{min-height:82px;display:flex;align-items:center;justify-content:space-between;padding:15px 38px;border-bottom:1px solid #263544;background:#0d1b28cc}.identity,.top-actions,.logo{display:flex;align-items:center}.identity{gap:14px}.logo{color:var(--cyan);border:1px solid #3c6570;background:#14303c;width:47px;height:47px;justify-content:center;border-radius:12px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--cyan)}.identity .eyebrow{color:#819ba9;font-size:9px;letter-spacing:1.55px}.identity h1{margin:4px 0 0;font-weight:850;font-size:22px;letter-spacing:1px;line-height:1}.identity h1 span{font-weight:350;color:#8eacb8}.top-actions{gap:21px}.tag{font-size:12px;color:#c4d3db;letter-spacing:.15px}.flag{display:flex;gap:9px;align-items:center}.tag-dot{color:#597589}.live-status{display:flex;align-items:center;gap:9px;font:700 10px var(--mono);letter-spacing:1px;color:#77ddbd}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5fe2b5;box-shadow:0 0 0 4px #5fe2b517}.icon-button{border:1px solid var(--border);background:#142837;color:#d2e3e9;width:32px;height:32px;border-radius:8px;font-size:17px}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:0}.workspace{min-width:0;padding:30px 30px 28px 38px}.intro{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:23px}.overline{font-size:10px}.intro h2{font-weight:750;font-size:30px;line-height:1.18;margin:10px 0 7px;letter-spacing:-.8px}.intro h2 em{font-style:normal;color:#80d2d8}.intro p{color:#98acb8;font-size:12.5px;line-height:1.6;margin:0;max-width:630px}.small-id{color:#7f95a3;font-size:10px;line-height:2.1;font-family:var(--mono);text-align:right;white-space:nowrap}.small-id strong{color:#c6d6dc;font-weight:600}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{background:linear-gradient(146deg,#142838,#10202f);border:1px solid #293f50;padding:17px 17px 14px;border-radius:11px;min-height:110px}.metric-name{font-size:9px;font-weight:800;letter-spacing:1.6px;color:#90a7b3}.metric-val{font-size:27px;font-weight:780;color:#f1f7f8;letter-spacing:-.5px;margin:10px 0 7px;font-variant-numeric:tabular-nums}.metric-val small{font-size:12px;color:#8da9b5;font-weight:500;margin-left:1px}.metric-foot{font-size:9px;letter-spacing:.75px;color:#7d95a5;display:flex;align-items:center;gap:7px}.tiny-circle{width:6px;height:6px;border-radius:50%}.cyan{background:#58d3da}.aqua{background:#6bdaba}.risk-val{font-size:22px;color:#5ee0b8;margin:13px 0 8px;letter-spacing:.4px}.metric.alert .risk-val{color:var(--amber)}.metric.danger .risk-val{color:var(--red)}.viewport-card{background:#10202d;border:1px solid #2a3c49;border-radius:12px;overflow:hidden}.view-head{height:45px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #263b4a}.view-title{font-weight:800;font-size:10px;letter-spacing:1.5px}.view-live{display:inline-block;width:8px;height:8px;border:2px solid #4fd7b7;border-radius:50%;margin-right:7px}.view-sub{font:500 10px var(--mono);color:#7f98a9;letter-spacing:.4px}.viewport-wrap{height:430px;position:relative;overflow:hidden;background:radial-gradient(circle at 47% 38%,#315867,#152d3d 49%,#0b1e2c 100%)}#world{width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}#world.dragging{cursor:grabbing}#worldLabels{position:absolute;inset:0;pointer-events:none}.world-label{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:0;color:#ecf7f5;white-space:nowrap;font:750 9px var(--mono);letter-spacing:1.1px;text-shadow:0 2px 8px #051925,0 1px 2px #051925;filter:drop-shadow(0 2px 2px #0005)}.world-label>span:nth-child(2){background:#07202dc4;border:1px solid #9cdce252;border-radius:4px;padding:5px 8px}.world-pin{width:1px;height:18px;background:#a1d6d9;order:2}.world-pin:after{content:'';position:absolute;bottom:-2px;left:calc(50% - 2px);width:5px;height:5px;background:#7fe2de;border-radius:50%}.viewport-crosshair{position:absolute;top:50%;left:50%;color:#a4cfd740;pointer-events:none}.viewport-text-top{position:absolute;left:15px;right:15px;top:13px;display:flex;justify-content:space-between;pointer-events:none}.scene-chip{background:#0a1e2acc;border:1px solid #42708277;color:#b9d7dd;font:650 9px var(--mono);padding:7px 9px;border-radius:5px;letter-spacing:.7px}.signal{display:inline-block;width:6px;height:6px;background:#6de7b4;border-radius:50%;margin-right:5px}.viewport-footer{position:absolute;bottom:12px;left:13px;right:13px;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none}.gesture-tip{color:#d9e8e8;background:#0c2535c9;border-radius:6px;padding:9px 12px;font-size:10px}.gesture-tip span{color:#608394;margin:0 6px}.camera-controls{display:flex;background:#0c2030e8;border:1px solid #335669;border-radius:7px;overflow:hidden;pointer-events:auto}.cam-btn{color:#9fb9c6;background:transparent;border:0;padding:9px 11px;font-size:10px;font-weight:800;letter-spacing:.4px}.cam-btn+.cam-btn{border-left:1px solid #345061}.cam-btn.selected{background:#235465;color:#eafafd}.cam-btn:hover{background:#2b5364}.view-bottom{min-height:40px;display:flex;align-items:center;gap:21px;padding:10px 18px;flex-wrap:wrap;border-top:1px solid #26404e;color:#afc3cc;font:650 9px var(--mono);letter-spacing:.3px}.view-bottom>span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:8px;height:8px;border-radius:2px}.legend-field{background:#3fb5d3}.legend-village{background:#59d2bc}.legend-outlet{background:#7d99de}.view-bottom .bottom-right{margin-left:auto;font-weight:400;color:#7c96a4}.viewport-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;color:#ffddaf;background:#10212fea;font-size:14px;line-height:1.6}.viewport-error[hidden]{display:none}.analytics{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:15px;margin-top:18px}.chart-panel,.hydro-panel{border:1px solid #293d4e;border-radius:11px;background:linear-gradient(160deg,#122534,#10212e);min-width:0;padding:17px 18px 14px}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.panel-head h3,.hydro-panel h3{margin:6px 0 0;font-size:15px;letter-spacing:-.1px}.chart-legend{display:flex;gap:11px;flex-wrap:wrap;color:#98aebb;font:600 10px var(--mono)}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:14px;height:2px;display:inline-block}.line-a{background:#4dcbf1}.line-b{background:#62deae}.line-c{background:#f1bd77}#chart{display:block;width:100%;height:168px;margin-top:12px}.hydro-panel{padding:18px}.hydro-panel h3{margin-bottom:15px}.ledger-row{display:flex;justify-content:space-between;gap:7px;padding:9px 0;border-bottom:1px solid #253946;color:#9ab0bf;font-size:11px}.ledger-row strong{color:#dce9ec;font-family:var(--mono);font-size:11px;font-weight:700}.ledger-row strong.good{color:#68e3b8}.ledger-foot{font-size:10px;color:#798e9c;line-height:1.5;margin:14px 0 0}.sidebar{border-left:1px solid #293a49;background:linear-gradient(180deg,#102433,#0e1e2c);display:flex;flex-direction:column;min-width:0}.side-top{display:flex;justify-content:space-between;align-items:center;padding:27px 25px 22px;border-bottom:1px solid var(--border)}.side-top h2{font-size:21px;margin:8px 0 0;letter-spacing:-.35px}.side-badge{font:700 12px var(--mono);padding:9px 11px;border:1px solid #436171;color:#add5d9;border-radius:8px}.side-scroll{padding:0 25px 26px}.control-section{padding:23px 0;border-bottom:1px solid #293e4c}.section-heading{display:flex;align-items:center;gap:11px;margin-bottom:18px}.section-index{font:650 11px var(--mono);color:#5cd9ce}.section-heading h3{font-size:13px;margin:0;font-weight:750}.control-label{display:block;color:#8fa7b3;letter-spacing:1.1px;font-size:9px;font-weight:800;margin-bottom:9px}.control-select{width:100%;height:40px;border:1px solid #385265;border-radius:6px;background:#172e3d;color:#e1f2ef;padding:0 11px;font-size:11px;appearance:auto}.description{font-size:11px;color:#819caa;line-height:1.6;margin:12px 0 0}.slider-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#cbdde0}.slider-head output{font-family:var(--mono);font-size:11px;color:#75dfd1;font-weight:750}input[type=range]{width:100%;margin:15px 0 3px;height:5px;accent-color:#66d6d9;cursor:pointer}.range-caption{display:flex;justify-content:space-between;font-size:9px;font-weight:700;color:#647f90;letter-spacing:.55px}.second-slider{margin-top:23px}.mode-heading{margin-top:25px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#091e2b;border:1px solid #263f4d;padding:4px;border-radius:7px}.seg{font-size:11px;font-weight:650;border-radius:5px;padding:9px 5px;color:#90acb9;border:0;background:transparent}.seg.active{background:#2c5764;color:#f2feff}.pump-toggle-row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 0;border-bottom:1px solid #243947}.pump-toggle-row>div{display:flex;flex-direction:column;gap:4px}.pump-toggle-row strong{font-size:11px}.pump-toggle-row span{font-size:10px;color:#7b97a7}.pump-button{font-size:10px;font-weight:800;min-width:54px;height:27px;color:#f38f83;background:#51303a;border:1px solid #764b51;border-radius:5px}.pump-button.on{background:#174d46;border-color:#39786e;color:#79e2bc}.pump-button:disabled{cursor:not-allowed;opacity:.75}.inline-flow{display:flex;justify-content:space-between;font-size:11px;color:#91aab8;margin-top:13px}.inline-flow strong{color:#d6e9e8;font-family:var(--mono)}.time-card{padding:16px;background:#0a1b28;border:1px solid #314557;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:9px;margin-bottom:17px}.time-card>span:first-child{color:#87a0af;font-size:9px;letter-spacing:1.1px;font-weight:750}.time-card strong{font:550 30px var(--mono);letter-spacing:1px;color:#e1f2f1}.time-card>span:last-child{color:#80c8cb;font:550 11px var(--mono)}.button-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:9px;margin-top:12px}.primary-button,.ghost-button,.reset-button{border-radius:7px;border:1px solid #357481;font-weight:800;font-size:11px;padding:12px 9px}.primary-button{background:linear-gradient(145deg,#7ce5de,#47bacb);color:#072735}.primary-button:hover{filter:brightness(1.07)}.ghost-button{background:#203b4b;color:#c1e5e8}.reset-button{display:block;width:100%;margin-top:11px;background:transparent;border:1px solid #334c5e;color:#9cb5c2}.info-note{display:flex;gap:12px;margin-top:22px;background:#142d38;border:1px solid #285064;border-radius:8px;padding:14px;color:#c1d8de}.info-note>span{font-size:19px;color:#f6bc76}.info-note strong{font-size:11px}.info-note p{margin:6px 0 0;font-size:10px;line-height:1.6;color:#8faeb9}.footer{display:flex;justify-content:space-between;gap:10px;padding:18px 38px;border-top:1px solid #293948;color:#8da7b4;font:600 9px var(--mono);letter-spacing:.5px}.muted{color:#6b8493}dialog{border:1px solid #416274;border-radius:12px;background:#102433;color:#eaf3f2;max-width:min(700px,94vw);box-shadow:0 28px 130px #000b}dialog::backdrop{background:#030b13bf}.help-modal{padding:13px 18px 15px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.modal-head h2{margin:7px 0 3px;font-size:23px}.help-modal>p{color:#a9c3cc;font-size:12px;line-height:1.8}.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px}.help-grid>div{padding:14px;background:#182f40;border:1px solid #344e5d;border-radius:8px}.help-grid strong{font-size:12px}.help-grid p{font-size:11px;color:#abc3cb;line-height:1.6;margin:8px 0 0}.modal-foot{text-align:right;margin-top:16px}@media(max-width:1280px){.dashboard{grid-template-columns:minmax(0,1fr) 320px}.workspace{padding:27px 22px 25px}.sidebar .side-scroll{padding:0 20px}.metric{padding:14px 12px}.metric-val{font-size:24px}.intro h2{font-size:27px}.viewport-wrap{height:390px}.gesture-tip{font-size:9px}}@media(max-width:1040px){.dashboard{display:flex;flex-direction:column}.sidebar{border-left:0;border-top:1px solid var(--border)}.side-scroll{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-items:start}.side-top{padding:20px 24px}.control-section{min-height:210px}.info-note{align-self:center}.viewport-wrap{height:460px}}@media(max-width:640px){.topbar{padding:13px 16px}.identity h1{font-size:18px}.top-actions .flag,.top-actions .live-status{display:none}.workspace{padding:19px 12px}.intro{display:block}.intro h2{font-size:25px}.intro p{font-size:11.5px}.small-id{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{min-height:101px}.viewport-wrap{height:365px}.viewport-text-top{top:9px;left:7px;right:7px}.scene-chip{font-size:7px;padding:5px}.world-label{font-size:7px;letter-spacing:0}.world-label>span:nth-child(2){padding:4px}.viewport-footer{display:block;bottom:8px;left:9px;right:9px}.gesture-tip{display:none}.camera-controls{display:flex;width:max-content;margin-left:auto}.cam-btn{padding:9px}.view-sub{font-size:8px}.view-bottom{gap:10px;padding:10px;font-size:8px}.view-bottom .bottom-right{display:none}.analytics{grid-template-columns:1fr;gap:12px}.panel-head{align-items:start;flex-direction:column}.side-scroll{grid-template-columns:1fr;padding:0 20px 22px}.control-section{min-height:0}.footer{flex-wrap:wrap;padding:15px;font-size:8px}.help-grid{grid-template-columns:1fr}.time-card strong{font-size:27px}}@media(prefers-reduced-motion:reduce){.pulse{box-shadow:none}}
