@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --bg:#061512; --panel:#0a211c; --panel-2:#0d2922; --line:#204238; --text:#e5f2ea; --muted:#8ba79b; --green:#57e68c; --lime:#b9ef55; --amber:#ffbb55; --red:#fa705d; --blue:#67c8ff; }
* { box-sizing:border-box; }
body { margin:0; color:var(--text); background:radial-gradient(circle at 75% 0%,#11382d 0,transparent 29%),var(--bg); font-family:Manrope,Arial,sans-serif; font-size:13px; }
button,input { font:inherit; } button { cursor:pointer; } .app-shell { min-height:100vh; padding:0 24px 24px; max-width:1800px; margin:auto; }
.topbar { height:86px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(112,176,148,.18); }
.brand { display:flex; align-items:center; gap:10px; } .brand h1 { margin:1px 0 0; font-size:21px; letter-spacing:-.8px; } .eyebrow,.panel-kicker { color:var(--green); font:500 9px "DM Mono",monospace; letter-spacing:1.3px; margin:0; }
.brand-logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 0 7px rgba(103,200,255,.32))}
.mission-state { display:flex; align-items:center; gap:9px; font:500 10px "DM Mono",monospace; letter-spacing:.8px; color:#b1c9bc; }.pulse-dot { width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 12px var(--green); }.divider { height:14px;width:1px;background:#315247; }.weather { display:flex; align-items:center; gap:9px; color:#f0cb77; }.weather>span { font-size:25px; }.weather strong,.weather small { display:block; }.weather small { font-size:10px;color:var(--muted);margin-top:1px; }
.mission-watch{margin-top:14px;padding:10px 12px;border:1px solid rgba(185,239,85,.38);border-radius:8px;background:linear-gradient(120deg,rgba(17,53,39,.9),rgba(8,27,22,.92));box-shadow:inset 0 0 22px rgba(115,234,149,.05)}.mission-watch time,.mission-watch small{display:block}.mission-watch time{margin:4px 0 2px;color:#dfffb2;font:700 25px "DM Mono";letter-spacing:1.6px;text-shadow:0 0 14px rgba(185,239,85,.3)}.mission-watch small{color:#8ba79b;font:8px "DM Mono";letter-spacing:.25px}
.dashboard { display:grid; grid-template-columns:295px minmax(500px,1fr) 330px; gap:18px; margin-top:20px; align-items:start; }.panel { background:linear-gradient(145deg,rgba(13,42,35,.9),rgba(7,27,22,.94)); border:1px solid rgba(94,151,125,.2); border-radius:12px; padding:16px; box-shadow:0 14px 50px rgba(0,0,0,.15); }.panel + .panel { margin-top:14px; }.panel-heading { display:flex;align-items:center;justify-content:space-between;margin-bottom:14px; }.status-ready,.model-tag,.field-id,.tiny-live,.decision-kind { font:500 9px "DM Mono",monospace; letter-spacing:.7px;padding:4px 6px;border-radius:4px;background:rgba(87,230,140,.09);color:var(--green); }.tiny-live { color:#65d9ff;background:rgba(103,200,255,.08); }.field-id { color:var(--muted);background:rgba(255,255,255,.04); }.button-row { display:flex; gap:7px; }.button-row button { height:36px;border-radius:7px;border:1px solid transparent;font-size:11px;font-weight:700; }.primary { background:var(--lime); color:#112518; padding:0 14px; flex:1; }.primary:hover{background:#d2ff6d}.secondary {background:transparent;border-color:#3d6556!important;color:#d7e8dd;padding:0 11px}.secondary:disabled { opacity:.4;cursor:default}.icon-button {background:#123328;color:var(--muted);width:37px;font-size:19px!important}.control-label { display:flex;justify-content:space-between;font-size:11px;color:#b2c9be;margin:18px 0 8px }.control-label output{font:500 10px "DM Mono";color:var(--lime)} input[type=range] { width:100%;accent-color:var(--lime);height:4px; }.scenario-label { font:500 9px "DM Mono";letter-spacing:1px;color:var(--muted);margin:19px 0 8px; }.scenario-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px;}.scenario-grid button { background:#0f3027;border:1px solid #23483b;color:#a9c2b5;border-radius:5px;padding:8px 6px;font-size:10px;text-align:left}.scenario-grid button:last-child{grid-column:span 2}.scenario-grid .selected { color:#dff3ad;border-color:#a0ce4a;background:#223922; }.seed-label { display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:16px; }.seed-label input{width:105px;background:#092019;border:1px solid #294a3e;color:#dbeee2;border-radius:4px;padding:5px 7px;font:10px "DM Mono";}.text-button { margin:8px -3px 0;padding:3px;border:0;background:none;color:var(--green);font-size:10px; }.sensor-list { border-top:1px solid rgba(105,150,128,.14); }.sensor-row { display:grid;grid-template-columns:16px 20px 1fr auto;align-items:center;gap:7px;padding:10px 1px;border-bottom:1px solid rgba(105,150,128,.12);opacity:.48;transition:.2s}.sensor-row.enabled {opacity:1}.sensor-toggle { width:13px;height:13px;padding:0;border-radius:50%;border:1px solid #58776a;background:transparent}.enabled .sensor-toggle{background:var(--green);border-color:var(--green);box-shadow:0 0 9px rgba(87,230,140,.55)}.sensor-icon{color:#78d6b4;font-size:17px}.sensor-row strong,.sensor-row small {display:block}.sensor-row strong{font-size:10px}.sensor-row small{font-size:9px;color:var(--muted);margin-top:2px}.sensor-row b{font:500 10px "DM Mono";color:#d2e9dc}.micro-copy{color:var(--muted);font-size:9px;line-height:1.55;margin:11px 0 0}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px}.stats-grid strong{font-size:19px;letter-spacing:-.5px;display:block;color:#dff3e6}.stats-grid strong span{font-size:11px;color:var(--muted);font-weight:500}.stats-grid small{color:var(--muted);font-size:9px}
.planner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.planner-grid button{background:#0f3027;border:1px solid #23483b;color:#a9c2b5;border-radius:6px;padding:8px 9px;font-size:10px;text-align:left}.planner-grid button strong,.planner-grid button small{display:block}.planner-grid button strong{font-size:10px}.planner-grid button small{margin-top:3px;color:#77988b;font:8px "DM Mono"}.planner-grid .selected{color:#dbeeff;border-color:#67c8ff;background:#142f32;box-shadow:inset 0 0 18px rgba(103,200,255,.08)}.planner-grid .selected small{color:#9ad9ef}.seed-label select{background:#092019;border:1px solid #294a3e;color:#dbeee2;border-radius:4px;padding:5px 7px;font-size:10px}.check-label{display:block;color:#afc7ba;font-size:10px;margin-top:11px}.check-label input{accent-color:var(--lime);vertical-align:-2px;margin:0 5px 0 0}.fusion-controls{border-top:1px solid rgba(105,150,128,.14);margin-top:13px;padding-top:13px}.fusion-controls .panel-heading{margin-bottom:8px}.fusion-controls .control-label{margin:10px 0 5px}.fusion-controls .check-label{margin-top:10px}.matrix-label{display:flex;justify-content:space-between;margin-top:12px;color:var(--muted);font:9px "DM Mono"}.matrix-label b{color:#86dcb0;font-weight:500}.redundancy-matrix{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:6px}.matrix-cell{height:7px;border-radius:2px;background:#14382d}.matrix-cell.high{background:#57e68c}.matrix-cell.mid{background:#4e9894}.matrix-cell.off{background:#354a42}.robot-matrix-key,.robot-matrix-row{display:grid;grid-template-columns:1.7fr repeat(4,.55fr);gap:3px;align-items:center}.robot-matrix-key{margin-top:6px;color:#6f9081;font:8px "DM Mono"}.robot-matrix-row{margin-top:3px;color:#bdd4c7;font:8px "DM Mono"}.robot-matrix-row i{height:8px;border-radius:2px;background:#57e68c;box-shadow:0 0 5px rgba(87,230,140,.35)}.robot-matrix-row i.degraded{background:#ffbb55;box-shadow:none}.robot-matrix-row i.offline{background:#4c6057;box-shadow:none}
.map-column { min-width:0; }.map-toolbar{height:53px;display:flex;align-items:start;justify-content:space-between;padding:1px 2px 8px}.map-toolbar h2{font-size:14px;margin:4px 0 0;letter-spacing:-.25px}.map-toolbar h2 span{font-weight:500;color:var(--muted);font-size:11px}.legend{display:flex;gap:12px;color:var(--muted);font-size:9px;align-self:center}.legend span{display:flex;align-items:center;gap:4px}.legend-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.robot{background:var(--lime);box-shadow:0 0 8px var(--lime)}.healthy{background:#3a8765}.risk{background:var(--red)}.treated{background:#67c8ff}.field-wrap{position:relative;background:#09251d;border:1px solid #38624f;border-radius:10px;overflow:hidden;box-shadow:0 20px 45px rgba(0,0,0,.25)}canvas{display:block;width:100%;height:auto;cursor:crosshair}.map-overlay{position:absolute;left:13px;right:13px;display:flex;justify-content:space-between;font:500 9px "DM Mono";letter-spacing:.7px;color:#a8c5b7;pointer-events:none}.map-overlay.top{top:12px}.map-overlay.bottom{bottom:11px}.scan-card{position:absolute;top:42px;right:14px;display:flex;align-items:center;gap:16px;background:rgba(5,20,15,.84);border:1px solid rgba(102,159,130,.42);border-radius:7px;padding:9px 10px;min-width:180px;backdrop-filter:blur(7px)}.scan-card strong{display:block;font-size:11px;margin-top:3px}.scan-badge{font:500 9px "DM Mono";letter-spacing:.5px;color:var(--muted)}.map-foot{height:32px;display:flex;align-items:center;gap:7px;color:var(--muted);font:9px "DM Mono";padding:0 3px}.compass{border:1px solid var(--muted);border-radius:50%;font-style:normal;padding:2px 4px;color:#d7e8dd}.scale{width:52px;border-top:2px solid #aecabd;position:relative}.scale:before,.scale:after{content:"";position:absolute;height:5px;border-left:1px solid #aecabd;top:-3px}.scale:before{left:0}.scale:after{right:0}.map-hint{margin-left:auto}
.line-route{background:#ffbb55}.aco-route{background:#67c8ff}.swarm-route{background:#bd8cff}.danger{background:#fa705d}.doubt{background:#ffbb55}.scan-card small{display:block;font:9px "DM Mono";color:#8ba79b;margin-top:3px}.route-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid rgba(94,151,125,.2);border-radius:8px;overflow:hidden;background:#0a211c}.route-metrics div{padding:9px 11px;background:rgba(13,42,35,.9)}.route-metrics span,.route-metrics strong{display:block}.route-metrics span{color:#8ba79b;font:8px "DM Mono";letter-spacing:.55px}.route-metrics strong{font-size:13px;margin-top:3px}.route-metrics .saved{background:#1d3722}.route-metrics .saved strong{color:#c8f76e}
.planner-dock{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid rgba(103,200,255,.24);border-radius:8px;background:linear-gradient(90deg,rgba(11,38,32,.96),rgba(10,36,42,.88))}.planner-dock small{display:block;margin-top:4px;color:var(--muted);font:8px "DM Mono";line-height:1.35}
.fusion-visual-card{margin-top:10px;padding:10px 12px 12px;border:1px solid rgba(103,200,255,.24);border-radius:8px;background:linear-gradient(125deg,rgba(8,34,30,.96),rgba(9,29,38,.94));box-shadow:inset 0 0 28px rgba(103,200,255,.035)}.fusion-visual-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}.fusion-visual-heading h3{margin:3px 0 0;font-size:11px;font-weight:600}.fusion-visual-card img{display:block;width:100%;margin-top:9px;border:1px solid rgba(103,200,255,.18);border-radius:5px;background:#061914}
.operating-assumptions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:10px;border:1px solid rgba(94,151,125,.24);border-radius:8px;overflow:hidden;background:#0a211c}.operating-assumptions>div{padding:10px 11px;background:rgba(13,42,35,.9)}.operating-assumptions strong,.operating-assumptions small{display:block}.operating-assumptions strong{margin-top:4px;color:#d7eadf;font-size:10px;line-height:1.35}.operating-assumptions small{margin-top:5px;color:#7f9e91;font:8px/1.45 "DM Mono"}
.completion-banner{display:none;margin-top:10px;padding:11px 13px;border:1px solid rgba(103,200,255,.52);border-radius:8px;background:linear-gradient(90deg,rgba(11,44,43,.96),rgba(14,35,58,.9));box-shadow:inset 0 0 26px rgba(103,200,255,.08)}.completion-banner.visible{display:grid;grid-template-columns:1.15fr 1fr;gap:8px 18px;align-items:center}.completion-banner strong{display:block;margin-top:4px;color:#d9f9ff;font-size:14px}.completion-banner small{grid-column:1/-1;color:#b8d9d5;font:9px "DM Mono";line-height:1.5}.completion-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.completion-stats span{display:flex;align-items:center;gap:5px;padding:4px 6px;border-radius:3px;background:rgba(103,200,255,.1);font:8px "DM Mono";color:#cdeef5}.completion-stats i{width:7px;height:7px;border-radius:50%;display:inline-block;box-shadow:0 0 6px currentColor}.completion-stats .blue i{background:#67dcff;color:#67dcff}.completion-stats .green i{background:#57e68c;color:#57e68c}.completion-stats .red i{background:#fa705d;color:#fa705d}.completion-stats .amber i{background:#ffbb55;color:#ffbb55}.completion-stats b{color:#fff;font-size:11px}
.drone-activity-banner{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:center;margin-top:10px;padding:9px 11px;border:1px solid rgba(103,200,255,.2);border-radius:8px;background:rgba(9,31,28,.86)}.drone-activity-banner small{display:block;margin-top:4px;color:var(--muted);font:8px "DM Mono"}.drone-activity-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:4px}.drone-activity-feed div{min-width:0;padding:4px 5px;border-radius:3px;background:rgba(27,66,62,.55);font:8px "DM Mono"}.drone-activity-feed b,.drone-activity-feed small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drone-activity-feed b{color:#c7f6ff;font-weight:500}.drone-activity-feed .offline b{color:#fa9484}
.activity-stack{display:flex;flex-direction:column}.bot-activity-banner{order:2;display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:center;margin-top:8px;padding:9px 11px;border:1px solid rgba(185,239,85,.18);border-radius:8px;background:rgba(9,31,28,.72);opacity:.58;transition:opacity .25s}.bot-activity-banner small{display:block;margin-top:4px;color:var(--muted);font:8px "DM Mono"}.bot-activity-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:4px}.bot-activity-feed div{min-width:0;padding:4px 5px;border-radius:3px;background:rgba(35,67,35,.55);font:8px "DM Mono"}.bot-activity-feed b,.bot-activity-feed small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bot-activity-feed b{color:#dfffb2;font-weight:500}.bot-activity-feed .service b{color:#ffcb77}.drone-activity-banner.docked{order:2;opacity:.62}.bot-activity-banner.active{order:1;opacity:1}
.water{background:#67c8ff}.cliff{background:#d59b59}
.field-wrap.map-idle .map-overlay,.field-wrap.map-idle .scan-card{display:none}
.battery-heading{display:flex;justify-content:space-between;border-top:1px solid rgba(105,150,128,.14);margin-top:15px;padding-top:12px;color:#8ba79b;font:9px "DM Mono"}.battery-heading span:last-child{color:#b9ef55}.battery-policy{display:block;margin-top:6px;color:#719587;font:8px/1.45 "DM Mono"}.battery-list{margin-top:7px}.battery-row{display:grid;grid-template-columns:49px 1fr 31px;gap:6px;align-items:center;margin-top:5px;color:#b8d0c3;font:8px "DM Mono"}.battery-track{height:6px;background:#15382c;border-radius:5px;overflow:hidden}.battery-track i{display:block;height:100%;background:#57e68c;border-radius:5px;transition:width .3s}.battery-track i.caution{background:#ffbb55}.battery-track i.low{background:#fa705d}
.scale-marks{display:flex;justify-content:space-between;color:#6f9081;font:8px "DM Mono";margin-top:4px}
.model-training{border-top:1px solid rgba(105,150,128,.14);margin-top:12px;padding-top:1px}.data-upload{display:flex;justify-content:space-between;align-items:center;margin-top:7px;color:#afc7ba;font-size:9px}.data-upload input{width:120px;color:#8ba79b;font-size:8px}
.map-health{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.map-health-card{background:rgba(10,33,28,.82);border:1px solid rgba(94,151,125,.2);border-radius:8px;padding:0 11px 10px}.map-health-card .battery-heading{margin-top:0}.map-sensor-list{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.sensor-chip{font:8px "DM Mono";letter-spacing:.3px;padding:4px 5px;border-radius:3px;background:#14382d;color:#8da99d}.sensor-chip.active{background:rgba(87,230,140,.14);color:#b9ef55}.sensor-chip.degraded{background:rgba(255,187,85,.13);color:#ffcb77}.sensor-chip.offline{background:rgba(250,112,93,.11);color:#fa9484}
.pipeline { padding:2px 0 0 }.pipe-step{display:grid;grid-template-columns:25px 1fr 8px;align-items:center;gap:9px;transition:.25s}.step-num{font:10px "DM Mono";color:#66877a}.pipe-step strong,.pipe-step small{display:block}.pipe-step strong{font-size:10px}.pipe-step small{font-size:9px;color:var(--muted);margin-top:2px}.pipe-step i{font-style:normal;color:#43665a;font-size:9px}.pipe-step.active i{color:var(--lime);text-shadow:0 0 9px var(--lime)}.pipe-step.active strong{color:#eaffc8}.pipe-line{height:11px;border-left:1px dashed #36574a;margin-left:12px}.fusion-header{display:grid;grid-template-columns:1fr 1fr;color:var(--muted);font-size:9px;margin:0 0 7px}.fusion-bars>div{display:grid;grid-template-columns:1fr 35px;gap:8px;align-items:center;margin:7px 0}.bar-track{height:7px;background:#14372c;border-radius:7px;overflow:hidden}.bar-track span{height:100%;display:block;background:linear-gradient(90deg,#49ad6c,#b9ef55);border-radius:7px;transition:width .4s}.bar-track.neural span{background:linear-gradient(90deg,#498fd4,#70e8c2)}.fusion-bars b{font:10px "DM Mono";color:#d5ebe0}.confidence{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(110,159,135,.15);margin-top:13px;padding-top:11px}.confidence span,.confidence strong{display:block}.confidence span{font:9px "DM Mono";color:var(--muted)}.confidence strong{font-size:17px;margin-top:2px}.confidence-gauge{height:42px;width:42px;border:4px solid #204538;border-right-color:var(--lime);border-top-color:var(--lime);border-radius:50%;position:relative;transform:rotate(45deg)}.confidence-gauge span{position:absolute;inset:-4px;border:4px solid transparent;border-left-color:#73c8ed;border-radius:50%;transition:.4s}.decision-panel{border-color:rgba(133,181,84,.32)}.decision-kind{color:#becbbb}.decision-content{display:flex;gap:11px;align-items:flex-start}.decision-symbol{height:31px;width:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:8px;background:#15362b;color:var(--lime);font-size:20px}.decision-content strong{font-size:11px}.decision-content p{font-size:9px;color:var(--muted);margin:4px 0 0;line-height:1.45}.unit-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-bottom:8px}.unit-feed div{min-width:0;border:1px solid rgba(93,147,124,.17);border-radius:3px;background:#0b271f;padding:4px 5px;font:8px "DM Mono";color:#9db9aa}.unit-feed b,.unit-feed small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit-feed b{color:#d8f7c2;font-weight:500}.unit-feed small{margin-top:2px;color:#719587}.unit-feed .offline b{color:#fa705d}.unit-feed .service b{color:#ffbb55}.event-log{height:125px;overflow:hidden;display:flex;flex-direction:column-reverse}.event-log p{margin:0;padding:7px 0;border-bottom:1px solid rgba(107,151,129,.12);color:#bdd0c5;font-size:9px;line-height:1.4}.event-log time{font-family:"DM Mono";color:var(--green);margin-right:5px}
.app-footer{display:flex;align-items:center;justify-content:center;gap:18px;min-height:70px;margin-top:22px;padding:12px 18px;border-top:1px solid rgba(94,151,125,.2);color:#7f9e91;font-size:10px}.footer-branding{display:flex;align-items:center;gap:8px}.footer-branding span{color:#8ba79b;font:8px "DM Mono";letter-spacing:.4px}.footer-palmion-logo{width:54px;height:38px;object-fit:contain}.footer-bio-robotix-logo{width:120px;max-height:34px;object-fit:contain}.app-footer p{margin:0}
@media(max-width:1200px){.dashboard{grid-template-columns:260px 1fr}.right-rail{grid-column:span 2;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px}.right-rail .panel{margin:0}.log-panel{display:none}}@media(max-width:800px){.app-shell{padding:0 12px 12px}.topbar{height:70px}.weather,.mission-state .divider,.mission-state #missionTime{display:none}.dashboard{display:block;margin-top:12px}.map-column{margin:15px 0}.left-rail{display:grid;grid-template-columns:1fr 1fr;gap:12px}.left-rail .panel{margin:0}.stats-panel{grid-column:span 2}.right-rail{display:block}.right-rail .panel{margin:12px 0}.legend{display:none}.map-hint{display:none}.scan-card{transform:scale(.85);transform-origin:top right}.route-metrics{grid-template-columns:1fr 1fr;margin-top:8px}.planner-dock{grid-template-columns:1fr}.planner-grid{grid-template-columns:1fr}.planner-grid button{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.planner-grid button small{margin:0;text-align:right}.operating-assumptions{grid-template-columns:1fr}}@media(max-width:510px){.left-rail{display:block}.left-rail .panel{margin:12px 0}.topbar .eyebrow{display:none}.topbar h1{font-size:18px}.field-wrap{margin:0 -3px}.map-toolbar{height:47px}.scan-card{right:3px;top:33px}.map-overlay.top{font-size:7px}.route-metrics div{padding:8px}}
