:root{--bg:#f4f6f8;--panel:#fff;--ink:#1b2730;--muted:#7b8790;--line:#e7ebee;--nav:#18232d;--teal:#087e78;--green:#168762;--amber:#c9862d;--red:#c65353;--blue:#537ab8;--shadow:0 2px 8px #172b3a08}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:13px 'DM Sans','Noto Sans SC',sans-serif;min-width:900px}.app-shell{min-height:100vh;display:grid;grid-template-columns:226px 1fr}.sidebar{background:var(--nav);color:#cad3d9;padding:20px 13px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 28px;color:#fff}.brand-logo{width:34px;height:34px;border-radius:9px;background:#14857d;color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700}.brand b{font-size:14px;display:block}.brand small{display:block;color:#8697a1;font-size:9px;letter-spacing:1px;margin-top:3px}.nav-caption{font-size:10px;color:#73828c;letter-spacing:1px;padding:0 11px 8px}.nav-link{width:100%;border:0;background:transparent;color:#b9c4cb;display:flex;align-items:center;gap:12px;text-align:left;padding:11px;border-radius:7px;margin:2px 0;font:inherit;cursor:pointer}.nav-link i{width:17px;text-align:center;font-style:normal;font-size:15px}.nav-link:hover{background:#22313b;color:white}.nav-link.active{background:#253944;color:white;box-shadow:inset 3px 0 #35b4a8}.sidebar-footer{margin-top:auto;border-top:1px solid #30404b;padding:15px 8px 0;display:flex;align-items:center;gap:9px;font-size:11px}.sidebar-footer small{display:block;color:#8998a1;margin-top:3px}.avatar{width:30px;height:30px;border-radius:50%;background:#36656a;color:#eef6f3;display:grid;place-items:center;font-weight:700}.avatar.small{width:27px;height:27px}.more{margin-left:auto;color:#9aa6ac;font-size:18px}.main-area{min-width:0}.topbar{height:61px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px}.breadcrumb{color:#77848d;font-size:12px}.breadcrumb span{padding:0 8px;color:#bec5ca}.breadcrumb b{color:#34414a;font-weight:600}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:15px;color:#75818a;font-size:11px}.service-state{display:flex;align-items:center;gap:7px}.service-state i{width:7px;height:7px;border-radius:50%;background:#21a271;box-shadow:0 0 0 3px #e6f5ef}.divider{height:19px;border-left:1px solid var(--line)}#clock{font-variant-numeric:tabular-nums}.header-icon{border:1px solid var(--line);border-radius:6px;background:#fff;color:#65727a;width:31px;height:31px}.page-wrap{padding:23px 28px 35px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:flex-end;margin-bottom:18px}.page-heading h1{font-size:21px;margin:0 0 6px;letter-spacing:-.35px}.page-heading p{font-size:11px;color:var(--muted);margin:0}.page-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.btn{height:33px;border:1px solid #dfe5e8;background:#fff;border-radius:6px;padding:0 11px;color:#52616a;font-size:11px;cursor:pointer}.btn:hover{background:#f8faf9}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;padding:0 14px}.btn.danger{color:var(--red);border-color:#edcece}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.metric{padding:14px 16px}.metric-label{font-size:11px;color:#75818a}.metric-value{font-size:24px;font-weight:650;margin-top:9px;letter-spacing:-.4px}.metric-note{font-size:10px;color:#99a2a8;margin-top:4px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.card-head{min-height:48px;border-bottom:1px solid #edf0f2;display:flex;align-items:center;padding:0 15px}.card-head h2{font-size:12px;margin:0;font-weight:650}.card-head .hint{font-size:10px;color:#929ca2;margin-left:8px}.card-head .right{margin-left:auto}.card-body{padding:14px 15px}.resource-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:13px}.resource-count{padding:11px;border:1px solid #edf0f2;border-radius:6px;background:#fbfcfc}.resource-count label{font-size:10px;color:#77858d}.resource-count b{display:block;font-size:19px;color:var(--teal);margin-top:5px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:10px 12px;background:#fafbfc;color:#87939a;font-size:10px;font-weight:500;border-bottom:1px solid #edf0f2;white-space:nowrap}.data-table td{padding:10px 12px;font-size:11px;color:#59666f;border-bottom:1px solid #f0f2f3;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table strong{color:#293740;font-size:11px;font-weight:600}.type-pill,.status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:10px;padding:4px 8px;background:#eef4f3;color:#31766d;font-size:9px}.status-pill.online{background:#eaf6f1;color:#18805e}.status-pill.busy{background:#edf2fa;color:#5578b6}.status-pill.warn{background:#fff4e7;color:#a87229}.status-pill.off{background:#f0f1f2;color:#7d878d}.task-list{display:flex;flex-direction:column}.task-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px solid #f0f2f3;cursor:pointer}.task-item:last-child{border-bottom:0}.task-item:hover .task-name{color:var(--teal)}.task-index{width:27px;height:27px;border-radius:7px;background:#edf5f3;color:#218277;display:grid;place-items:center;font-size:10px;font-weight:600}.task-name{font-size:11px;font-weight:600}.task-meta{font-size:9px;color:#929da4;margin-top:4px}.task-arrow{color:#a1aaaf}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:13px}.toolbar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #edf0f2}.toolbar .spacer{flex:1}.input,.select{height:32px;border:1px solid #dfe5e8;border-radius:5px;background:#fff;padding:0 9px;font-size:11px;color:#39474f}.input{min-width:170px}.select{min-width:110px}.device-icon{width:25px;height:25px;border-radius:6px;background:#eef4f3;color:#1a8177;display:inline-grid;place-items:center;margin-right:7px}.map-panel{height:330px;position:relative;overflow:hidden;background-color:#f7f9f8;background-image:linear-gradient(30deg,transparent 48%,#e2e9e7 49%,#e2e9e7 50%,transparent 51%),linear-gradient(150deg,transparent 48%,#e8edeb 49%,#e8edeb 50%,transparent 51%);background-size:140px 110px,170px 130px}.map-dot{position:absolute;width:12px;height:12px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 4px #1a927d27;background:#168b76;transform:translate(-50%,-50%)}.map-dot.busy{background:#597db8;box-shadow:0 0 0 4px #597db828}.map-dot.warn{background:#d28b30;box-shadow:0 0 0 4px #d28b3028}.map-label{position:absolute;transform:translate(8px,-50%);font-size:9px;color:#65737b;background:#fff;border:1px solid #e4e9e8;border-radius:4px;padding:3px 6px;white-space:nowrap}.map-legend{display:flex;gap:15px;font-size:9px;color:#7d8990}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.module-card{padding:16px}.module-card h3{margin:0;font-size:12px}.module-card p{color:#87939a;font-size:10px;line-height:1.6;min-height:32px}.module-count{font-size:23px;font-weight:650;margin-top:10px}.feedback-row{display:grid;grid-template-columns:7px 1fr auto;gap:9px;padding:11px 0;border-bottom:1px solid #f0f2f3}.feedback-row:last-child{border:0}.feedback-sev{width:6px;height:30px;border-radius:4px;background:var(--amber)}.feedback-sev.done{background:var(--green)}.feedback-title{font-size:10px;font-weight:600}.feedback-text{font-size:9px;color:#8d989e;margin-top:4px;line-height:1.5}.feedback-time{font-size:9px;color:#9aa3a8}.empty-state{text-align:center;color:#9aa3a8;padding:28px;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#12212d66;z-index:30;display:grid;place-items:center;padding:18px}.modal{background:#fff;border-radius:9px;width:min(520px,100%);box-shadow:0 18px 55px #0002;overflow:hidden}.modal-head{padding:16px 19px;border-bottom:1px solid #edf0f2;display:flex;align-items:center;font-size:14px;font-weight:650}.modal-head button{margin-left:auto;border:0;background:none;font-size:20px;color:#89949a;cursor:pointer}.modal-body{padding:18px 19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-field{font-size:10px;color:#65727b}.form-field.wide{grid-column:1/-1}.form-field input,.form-field select,.form-field textarea{width:100%;margin-top:6px;border:1px solid #dfe5e8;border-radius:5px;padding:8px;font:11px inherit;color:#35434b;background:#fff}.form-field input,.form-field select{height:34px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 19px;border-top:1px solid #edf0f2}.toast{position:fixed;right:22px;bottom:22px;background:#20343a;color:#fff;padding:10px 14px;border-radius:7px;font-size:11px;z-index:50;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.detail-line{display:grid;grid-template-columns:100px 1fr;padding:10px 0;border-bottom:1px solid #f0f2f3;font-size:11px}.detail-line span:first-child{color:#89949a}.settings-row{padding:12px 0;border-bottom:1px solid #eff1f2;display:flex;align-items:center;font-size:11px}.settings-row:last-child{border:0}.tag-list{display:flex;gap:7px;flex-wrap:wrap}.tag{border-radius:5px;background:#f0f4f4;color:#536970;padding:6px 9px;font-size:10px}@media(max-width:1100px){.app-shell{grid-template-columns:195px 1fr}.page-wrap{padding:20px}.dashboard-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}
.ai-plan{margin-bottom:16px;border-color:#b9d7f6;background:linear-gradient(135deg,#fff 0%,#f5f9ff 100%)}
.monitor-map-card{overflow:hidden;margin-bottom:14px}.monitor-map{height:440px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 48% 45%,#19394a 0%,#102733 52%,#0c1d29 100%);isolation:isolate}.map-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px),radial-gradient(ellipse at center,transparent 25%,#07172077 100%);background-size:32px 32px,32px 32px,100% 100%;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.monitor-map:before,.monitor-map:after{content:"";position:absolute;border:1px solid #8ee4d317;border-radius:50%;width:68%;height:100%;left:16%;top:-5%;transform:rotate(-17deg);pointer-events:none}.monitor-map:after{width:45%;left:28%;height:130%;top:-15%;transform:rotate(28deg)}.route-canvas{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:1}.route-line,.route-glow{fill:none;stroke-width:.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.route-line{stroke-dasharray:2 1.4;opacity:.82}.route-glow{stroke-width:5;opacity:.13;filter:blur(2px)}.route-node{fill:#e5fff8;stroke:#159b83;stroke-width:.45;vector-effect:non-scaling-stroke}.route-end{fill:#102733;stroke:#e1b264;stroke-width:.7;vector-effect:non-scaling-stroke}.moving-unit{filter:drop-shadow(0 0 5px #62d9ff)}.map-topline{position:absolute;z-index:2;left:18px;top:16px;color:#91aeb9;font:9px ui-monospace,monospace;letter-spacing:1.4px}.live-indicator{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#39dfad;box-shadow:0 0 10px #39dfad;animation:livePulse 1.5s infinite}.map-topline-time{margin-left:12px;color:#e0eef1}.map-compass{position:absolute;right:18px;top:16px;color:#aec7ce;font-size:9px;text-align:center;line-height:1.6;z-index:2}.map-scale{position:absolute;bottom:15px;left:18px;display:flex;align-items:center;gap:8px;color:#91aeb9;font-size:9px;z-index:2}.map-scale i{width:31px;border-top:2px solid #b4d4d7}.route-tag{position:absolute;z-index:3;transform:translate(11px,-50%);padding:5px 8px;border:1px solid #b4d7da33;background:#102833e8;color:#d7ebed;border-radius:4px;font-size:9px;white-space:nowrap;pointer-events:none}.route-tag i,.route-status-row>i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--route-color);margin-right:6px;box-shadow:0 0 8px var(--route-color)}.map-empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;color:#d7e7eb;font-size:12px}.map-empty span{color:#819da7;font-size:10px}.monitor-bottom{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}.route-status-row{display:flex;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f2}.route-status-row:last-child{border-bottom:0}.route-status-row>i{flex:none}.route-status-row div{display:flex;flex-direction:column;gap:4px}.route-status-row b{font-size:10px}.route-status-row small{font-size:9px;color:#929ca2}.route-live{margin-left:auto;color:#18805e;background:#eaf6f1;border-radius:9px;padding:4px 7px;font-size:9px}@keyframes livePulse{50%{opacity:.4;box-shadow:0 0 3px #39dfad}}@media(max-width:1050px){.monitor-map{height:360px}.monitor-bottom{grid-template-columns:1fr}}
.ai-plan .card-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
.ai-plan .card-head h2{margin:0 0 6px}
.ai-plan .hint{line-height:1.7}
[data-action="ai-dispatch"]{white-space:nowrap}

.online-map{height:440px;background:#dce7e7}.dashboard-map.online-map{height:280px}.online-map .leaflet-popup-content{font-size:12px;line-height:1.7}.online-map .leaflet-tile-pane{filter:saturate(.8) contrast(1.02)}

.dispatch-analysis{margin-bottom:14px}.dispatch-analysis .card-head{gap:10px}.decision-tag{padding:5px 9px;border-radius:12px;background:#eaf5f2;color:#167b68;font-size:10px}.candidate-chip{display:inline-block;margin:2px;padding:4px 7px;border-radius:10px;background:#f0f4f7;color:#53636d;font-size:9px}.ai-choice{color:#087e78}.analysis-empty{color:#bd6e48;font-size:10px}

/* Device pictograms */
.resource-count{display:flex;align-items:center;gap:9px}
.device-icon{width:32px;height:32px;flex:0 0 auto;border-radius:8px;background:#eef6f5;display:inline-grid;place-items:center;margin-right:0}
.device-icon img{width:26px;height:26px;display:block}
.device-icon.compact{width:18px;height:18px;border-radius:5px;margin:-2px 1px -2px -4px;background:transparent}
.device-icon.compact img{width:18px;height:18px}

/* Explainable dispatch V1 */
.weather-rail{display:grid;grid-template-columns:minmax(220px,.8fr) 1.7fr minmax(180px,.65fr);align-items:center;gap:18px;margin-bottom:14px;padding:12px 15px;border:1px solid #dce6e4;border-radius:8px;background:linear-gradient(100deg,#f8fbfa 0%,#fff 52%,#f2f7f7 100%);box-shadow:var(--shadow)}
.weather-main,.telemetry-source{display:flex;align-items:center;gap:10px}.weather-symbol{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dceeea;color:#087e78;font-size:18px}.weather-main b,.telemetry-source span{display:block;font-size:11px}.weather-main small,.telemetry-source small{display:block;color:#89979e;font-size:9px;margin-top:3px}.weather-facts{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid #e1e9e7;border-right:1px solid #e1e9e7}.weather-facts span{padding:0 13px;border-right:1px solid #edf1f0}.weather-facts span:last-child{border:0}.weather-facts small{display:block;color:#8a969c;font-size:9px;margin-bottom:3px}.weather-facts b{font-size:11px}.safe-text{color:#168762}.danger-text{color:#c65353}.telemetry-source i,.live-pill i{width:7px;height:7px;border-radius:50%;background:#24a77b;box-shadow:0 0 0 4px #24a77b17;animation:telemetryPulse 1.8s infinite}
.live-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #cfe4de;background:#f1f8f6;color:#267966;border-radius:12px;padding:5px 9px;font-size:9px}
.telemetry-card{overflow:hidden}.telemetry-table td{vertical-align:middle}.device-name-cell{display:flex;align-items:center;gap:9px;margin-bottom:6px}.device-name-cell .device-icon{width:28px;height:28px}.device-name-cell .device-icon img{width:22px;height:22px}.device-name-cell span{display:flex;flex-direction:column;gap:3px}.device-name-cell small,.cell-note{display:block;color:#929da4;font-size:9px;margin-top:4px}.mono-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#34434c}.capability-list{display:flex;flex-wrap:wrap;gap:4px;max-width:180px}.capability-list span{padding:3px 6px;border-radius:4px;background:#eef4f3;color:#39746c;font-size:8px}.telemetry-na{color:#8a979d;font-size:9px}
.device-icon.offline{background:#fde8e7;color:#bc4b48}.device-icon.offline img{filter:grayscale(1) sepia(.65) saturate(2.6) hue-rotate(310deg)}.street-value{color:#34434c;font-size:11px;font-weight:600}
.battery-readout{width:96px}.battery-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.battery-head b{font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}.battery-head span{font-size:8px;color:#98a3a8}.battery-track{height:6px;border-radius:4px;background:#e8edec;overflow:hidden;position:relative}.battery-track i{display:block;height:100%;border-radius:4px;background:#1b9a74;transition:width 1s linear;position:relative;overflow:hidden}.battery-track i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:translateX(-100%);animation:batterySweep 2.4s infinite}.battery-readout.warn .battery-track i{background:#ce8b36}.battery-readout.critical .battery-track i{background:#c65353}
.planner-hero{display:grid;grid-template-columns:1fr 170px;margin-bottom:14px;overflow:hidden;border-color:#d9e5e2}.planner-hero-copy{padding:22px 24px;background:linear-gradient(120deg,#172c32 0%,#1d3b40 60%,#24534f 100%);color:#e9f4f2;position:relative}.planner-hero-copy:after{content:"";position:absolute;right:8%;top:-70px;width:210px;height:210px;border:1px solid #9ce2d326;border-radius:50%;box-shadow:0 0 0 28px #9ce2d30a,0 0 0 58px #9ce2d307}.eyebrow{display:block;color:#72c9bb;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.4px;margin-bottom:9px}.planner-hero h2{font-size:19px;letter-spacing:-.3px;margin:0 0 8px}.planner-hero p{color:#a9c0c1;font-size:10px;line-height:1.7;max-width:690px;margin:0}.algorithm-chain{display:flex;align-items:center;gap:9px;margin-top:16px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#cae1df}.algorithm-chain span{border:1px solid #75bdb243;border-radius:4px;padding:5px 7px;background:#fff08}.algorithm-chain i{font-style:normal;color:#5a8d88}.planner-hero-action{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#f8fbfa;border-left:1px solid #dce6e4}.planner-hero-action>b{font-size:34px;color:#17383a}.planner-hero-action>span{font-size:9px;color:#89969b;margin:2px 0 13px}.plan-workbench{margin-bottom:14px;overflow:hidden}.plan-tabs{display:flex;gap:7px;align-items:stretch;padding:10px;border-bottom:1px solid #e8eeec;background:#fafcfb;overflow:auto}.plan-tab{min-width:155px;text-align:left;border:1px solid #dce5e3;background:#fff;border-radius:6px;padding:8px 10px;color:#59686e;cursor:pointer}.plan-tab small{display:block;color:#909ba0;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-tab b{display:block;margin:5px 0 3px;font-size:10px}.plan-tab span{color:#168762;font-size:9px}.plan-tab.active{border-color:#218a7e;background:#eff8f5;box-shadow:inset 0 -2px #218a7e}.unassigned-note{align-self:center;padding:6px 9px;color:#a86c2d;background:#fff5e9;border-radius:5px;font-size:9px}.planner-detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:0;border-bottom:1px solid #e8eeec}.planner-map{height:310px;position:relative;overflow:hidden;background:#102a32}.planner-grid{position:absolute;inset:0;background-image:linear-gradient(#8ce1d20c 1px,transparent 1px),linear-gradient(90deg,#8ce1d20c 1px,transparent 1px),radial-gradient(circle at 50% 50%,#1b4a4a55,transparent 60%);background-size:20px 20px,20px 20px,100% 100%}.planner-map svg{position:absolute;inset:0;width:100%;height:100%}.planner-obstacle{fill:#d7776838;stroke:#d98c7f;stroke-width:.4;vector-effect:non-scaling-stroke}.planner-obstacle.secondary{fill:#d6a25730;stroke:#d2a052}.planner-route-shadow,.planner-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.planner-route-shadow{stroke:#4bd4be30;stroke-width:8}.planner-route{stroke:#60ddc6;stroke-width:2;stroke-dasharray:4 2;animation:routeFlow 1.8s linear infinite}.planner-start{fill:#f6d36e;stroke:#fff;stroke-width:.6}.planner-end{fill:#61ddc6;stroke:#fff;stroke-width:.6}.planner-caption{position:absolute;left:12px;right:12px;bottom:11px;display:flex;align-items:center;gap:14px;color:#9bb7bb;font-size:8px;background:#0e252cca;padding:7px 9px;border-radius:5px}.planner-caption b{margin-left:auto;color:#d5e9e8;font:9px ui-monospace,monospace}.route-key,.obstacle-key{display:inline-block;width:13px;border-top:2px solid #60ddc6;margin-right:5px}.obstacle-key{border-color:#d98c7f}.route-sequence{padding:11px 14px;background:#f9fbfa;border-top:1px solid #e5ebe9}.route-sequence small{display:block;color:#8e9a9f;font-size:8px;margin-bottom:5px}.route-sequence b{font-size:9px;line-height:1.6;color:#46575e}.decision-ledger{padding:20px;border-left:1px solid #e5ebe9;background:#fff}.ledger-head{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:end;padding-bottom:14px;border-bottom:1px solid #edf1f0}.ledger-head span{grid-column:1/-1;color:#8a969b;font-size:9px}.ledger-head b{font-size:17px;color:#22363c}.ledger-head strong{color:#168762;font-size:12px}.decision-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}.decision-metrics span{padding:9px 7px;border:1px solid #e5ebe9;border-radius:5px;background:#fafcfb}.decision-metrics small{display:block;font-size:8px;color:#929da1;margin-bottom:4px}.decision-metrics b{font:600 11px ui-monospace,monospace}.reason-list{margin:0;padding-left:18px;color:#5d6b70;font-size:9px;line-height:1.8}.reason-list li::marker{color:#168762}.candidate-audit .card-head{border-bottom:0}.audit-state{display:inline-block;padding:4px 7px;border-radius:9px;font-size:8px}.audit-state.pass{background:#e8f6f0;color:#168762}.audit-state.reject{background:#f3f4f4;color:#828c91}.planning-empty{text-align:center;padding:42px 20px;margin-bottom:14px}.planning-empty h3{font-size:13px;margin:14px 0 6px}.planning-empty p{font-size:10px;color:#8c989d}.empty-orbit{position:relative;width:54px;height:54px;margin:auto;border:1px solid #b8d7d1;border-radius:50%}.empty-orbit i{position:absolute;width:6px;height:6px;border-radius:50%;background:#168b76;left:24px;top:24px}.empty-orbit i:nth-child(2){animation:orbit 3s linear infinite;transform-origin:3px 3px}.empty-orbit i:nth-child(3){width:4px;height:4px;background:#d29443;animation:orbit 5s linear infinite reverse;transform-origin:2px 2px}.pending-telemetry{overflow:hidden}.compact-cols{gap:0}.compact-cols>div+div{border-left:1px solid #e8edec}
@keyframes telemetryPulse{50%{opacity:.45;box-shadow:0 0 0 7px #24a77b08}}@keyframes batterySweep{to{transform:translateX(100%)}}@keyframes routeFlow{to{stroke-dashoffset:-12}}@keyframes orbit{from{transform:rotate(0) translateX(22px)}to{transform:rotate(360deg) translateX(22px)}}
.btn:focus-visible,.plan-tab:focus-visible,.nav-link:focus-visible{outline:2px solid #38a99b;outline-offset:2px}
@media(max-width:1100px){.weather-rail{grid-template-columns:1fr 1.6fr}.telemetry-source{display:none}.planner-detail-grid{grid-template-columns:1fr}.decision-ledger{border-left:0;border-top:1px solid #e5ebe9}.planner-hero{grid-template-columns:1fr 145px}.algorithm-chain{flex-wrap:wrap}.telemetry-table{min-width:1050px}}
@media(prefers-reduced-motion:reduce){.telemetry-source i,.live-pill i,.battery-track i:after,.planner-route,.empty-orbit i{animation:none!important}.battery-track i{transition:none}}
.incident-strip{border-color:#f0d2c1;background:#fffaf7;margin-bottom:14px}
.incident-list{padding:0 18px 14px;display:grid;gap:8px}
.incident-row{display:flex;align-items:center;gap:14px;padding:10px 12px;border:1px solid #f2ddd1;border-radius:9px;background:#fff;color:#755143;font-size:12px}
.incident-row b{color:#ad4f2b}
.incident-row .status-pill{margin-left:auto}
.dispatch-scene{margin-bottom:14px;overflow:hidden}
.dispatch-scene-map{height:380px;position:relative;overflow:hidden;background-color:#102a32;background-image:linear-gradient(#8ce1d20c 1px,transparent 1px),linear-gradient(90deg,#8ce1d20c 1px,transparent 1px),radial-gradient(circle at 50% 50%,#1b4a4a55,transparent 60%);background-size:20px 20px,20px 20px,100% 100%}
.dispatch-scene-map:after{content:none}
.dispatch-scene-map svg{position:absolute;inset:0;width:100%;height:100%}
.scene-selected-route,.scene-active-route,.scene-return-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.scene-selected-route{stroke:#087f76;stroke-width:4;filter:drop-shadow(0 1px 2px #fff);stroke-dasharray:9 5;animation:routeFlow 1.8s linear infinite}
.scene-active-route{stroke:#477ddd;stroke-width:3;opacity:.78}
.scene-return-route{stroke:#d96343;stroke-width:3;stroke-dasharray:7 6}
.scene-device circle{fill:#4283d4;stroke:#fff;stroke-width:.35;vector-effect:non-scaling-stroke}
.scene-device.selected circle{fill:#087f76;stroke:#fff;stroke-width:.65;r:2}
.scene-task circle{fill:#e4a52b;stroke:#fff;stroke-width:.4;vector-effect:non-scaling-stroke}
.scene-task.urgent circle{fill:#db4b3e;r:2}
.scene-task.selected circle{stroke:#162f3c;stroke-width:.6}
.dispatch-scene-map text{font:1.7px sans-serif;fill:#263840;paint-order:stroke;stroke:#fff;stroke-width:.55px;stroke-linejoin:round}
.scene-legend{position:absolute;left:14px;bottom:12px;display:flex;gap:14px;padding:8px 11px;background:#ffffffeb;border-radius:6px;color:#48585e;font-size:9px}
.scene-key{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#4283d4}.scene-key.task{background:#e4a52b}.scene-key.route{width:15px;height:0;border-top:3px dashed #087f76;border-radius:0;background:none}.scene-key.return{width:15px;height:0;border-top:3px dashed #d96343;border-radius:0;background:none}

.scene-task-strip{display:flex;gap:8px;padding:10px;overflow:auto;background:#f7faf9}.scene-task-card{flex:0 0 170px;text-align:left;padding:10px 12px;border:1px solid #dce6e2;border-radius:6px;background:#fff;cursor:pointer}.scene-task-card b{display:block;font-size:11px;color:#29454a}.scene-task-card span{display:block;margin-top:6px;font-size:10px;color:#71858a}.scene-task-card.active{border-color:#168b76;background:#eaf6f1}.dispatch-map{height:430px!important}

.planner-hero-copy{padding:12px 18px}.planner-hero .eyebrow,.planner-hero .algorithm-chain{display:none}.planner-hero h2{font-size:15px;margin:0}.planner-hero-action{flex-direction:row;gap:8px;padding:10px}.planner-hero-action>b{font-size:22px}.planner-hero-action>span{margin:0}.planner-hero{grid-template-columns:1fr 260px}.event-feed{margin-bottom:14px;overflow:hidden}.event-feed-row{display:flex;gap:12px;align-items:center;border-top:1px solid #edf1f0;padding:10px 15px;font-size:11px}.event-feed-row time{color:#6e8188;font-family:monospace}.event-feed-row>span:nth-last-child(2){margin-left:auto}.event-feed-row b{white-space:nowrap;color:#087f76}.plan-workbench summary{cursor:pointer;font-weight:600}
/* Spatial operations workspace */
.simulation-space{background:#edf2f3;position:relative;border-top:1px solid #e0e7e9;overflow:hidden}
.space-toolbar{height:48px;padding:8px 16px;display:flex;align-items:center;gap:8px;background:#f8fafb;border-bottom:1px solid #e0e7e9;color:#6c7d87;font-size:11px}
.space-toolbar>span{margin-right:auto;font-variant-numeric:tabular-nums}
.space-toolbar label{display:flex;gap:8px;align-items:center}.space-toolbar select{height:30px;min-width:145px;border:1px solid #d6dfe2;border-radius:4px;background:#fff;color:#374e5c;padding:0 9px;font:inherit}.space-toolbar .network-source select{min-width:168px}.space-toolbar .btn{font-size:11px;min-height:30px;padding:4px 10px}.space-toolbar .btn.active{background:#1c1c1c;color:#fff;border-color:#1c1c1c}
.space-viewport{height:490px;position:relative;overflow:hidden;display:flex}.space-map{position:relative;flex:1;min-width:0;height:100%}.space-viewport canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.altitude-axis{width:176px;flex:none;display:flex;flex-direction:column;background:#f8fafb;border-left:1px solid #e1e8eb}.altitude-title{padding:10px 12px 0;font-size:12px;font-weight:600;color:#314852}.altitude-title small{display:block;margin-top:2px;font-size:10px;font-weight:400;color:#7d8d96}.altitude-scale{position:relative;flex:1;margin:14px 8px 18px 34px;border-left:1px solid #c5d2d8}.alt-tick{position:absolute;left:-34px;width:28px;transform:translateY(50%);text-align:right;font:10px ui-monospace,SFMono-Regular,monospace;color:#7b8c96}.alt-tick:after{content:"";position:absolute;right:-10px;top:50%;width:6px;height:1px;background:#c5d2d8}.alt-group{position:absolute;left:8px;transform:translateY(50%);display:flex;flex-direction:column;gap:1px;padding:2px 5px;border-radius:3px;background:rgba(248,250,251,.94)}.alt-group small{color:#667967;font:10px ui-monospace,SFMono-Regular,monospace}.alt-group b{font-weight:600;font-size:11px;color:#314852}.alt-group b.chosen{color:#0e8f6e}.space-viewport canvas:active{cursor:grabbing}.space-viewport canvas:focus-visible{outline:2px solid #66869b;outline-offset:-3px}.space-corner{position:absolute;bottom:12px;left:15px;font-size:10px;color:#687e88;pointer-events:none}
.space-readout{min-height:38px;display:flex;align-items:center;padding:9px 16px;white-space:pre-wrap;background:#f8fafb;border-top:1px solid #e1e8eb;color:#324c5d;font:11px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums}
.space-foot{display:flex;gap:14px;align-items:center;padding:9px 16px;background:#fff;color:#778992;font-size:10px;flex-wrap:wrap}.space-foot>span{display:inline-flex;align-items:center;white-space:nowrap}.glyph{width:15px;height:15px;display:inline-block;margin-right:4px;object-fit:contain}.legend-line{width:16px;height:3px;margin-right:5px;border-radius:2px;background:currentColor;display:inline-block}.mark-icon{width:16px;height:16px;flex:none;display:inline-block;vertical-align:-3px;margin-right:4px}.ops-name>.mark-icon{width:20px;height:20px}.ops-team{display:flex;flex-wrap:wrap;gap:3px 8px;align-items:center;white-space:normal;overflow:visible}.ops-team b{font-weight:500;color:#3d5562}.ops-row.queue .btn{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:280px}.space-viewport .scene-legend{top:12px;bottom:auto;z-index:2;align-items:center}.space-viewport .scene-legend .glyph{width:14px;height:14px}
.scene-task-strip{background:#fff;border-bottom:1px solid #e6ebed;gap:0;padding:0 12px}.scene-task-card{border:0;border-radius:0;border-bottom:2px solid transparent;flex-basis:160px;padding:12px;background:#fff}.scene-task-card.active{background:#f4f7f8;border-color:#577b8e}.scene-task-card b{font-weight:500;color:#374f5c}.scene-task-card span{font-size:10px}
.dispatch-scene .card-head{padding:13px 16px}.dispatch-scene .card-head h2{font-size:13px;font-weight:600;color:#334d5b}.event-feed .card-head h2{font-size:13px;color:#334d5b}.event-feed-row{font-size:11px;padding:11px 16px}.event-feed-row b{color:#496575;font-weight:500}.page-heading p:empty{display:none}.plan-workbench summary{font-size:11px;color:#6b808b;font-weight:400}
@media(max-width:700px){.space-viewport{height:390px}.space-toolbar{padding:8px;gap:5px}.space-toolbar select{min-width:105px;max-width:130px}.space-toolbar label{font-size:0}.space-readout{font-size:10px;line-height:1.7}.space-foot{gap:8px;flex-wrap:wrap}.event-feed-row{flex-wrap:wrap;gap:7px}.space-foot .spacer{display:none}}
@media(prefers-reduced-motion:reduce){.scene-task-card{transition:none}}
.space-modes{display:flex;border:1px solid #d3dde2;border-radius:4px;overflow:hidden;flex:none}.space-modes button{border:0;border-right:1px solid #d3dde2;background:#fff;padding:6px 12px;color:#72858d;font-size:11px;cursor:pointer}.space-modes button:last-child{border:0}.space-modes button.active{background:#536e80;color:#fff}.space-modes button:focus-visible{outline:2px solid #658da3;outline-offset:-2px}
.ops-board{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-bottom:14px}.ops-card{overflow:hidden}.ops-list{max-height:360px;overflow:auto}.ops-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(88px,120px) 52px;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid #edf1f0}.ops-row.queue{grid-template-columns:minmax(0,1fr) auto;align-items:start}.ops-row.queue .btn{margin-top:2px}.ops-fix{color:#2f6f5d;font-size:10px;white-space:normal;line-height:1.45}.ops-row.active{background:#f3f8f6}.ops-name{display:flex;align-items:center;gap:8px;min-width:0;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.ops-name span{display:flex;flex-direction:column;gap:3px;min-width:0}.ops-name b{font-size:12px;font-weight:600;color:#29424c}.ops-name small{color:#7d8d96;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-name small.ops-fix{color:#2f6f5d;white-space:normal;overflow:visible;text-overflow:clip}.ops-track{display:block;height:6px;border-radius:4px;background:#e6eeec;overflow:hidden}.ops-track i{display:block;height:100%;background:#1b8f78;border-radius:4px}.ops-row em{font-style:normal;font:11px ui-monospace,SFMono-Regular,monospace;color:#3e5968;text-align:right}.ops-hold{max-width:168px;color:#a87229;font-size:11px;line-height:1.45;text-align:right}.ops-repair{padding:10px 14px;border-top:1px solid #edf1f0;color:#8a7560;font-size:11px;line-height:1.6}.ops-board .event-feed{margin:0}
.cost-panel{margin-bottom:14px;overflow:hidden}.cost-panel .card-head h2,.terrain-panel .card-head h2,.defect-panel .card-head h2{font-size:13px;font-weight:600;color:#334d5b}.cost-scroll{max-height:330px;overflow:auto}.cost-scroll thead{position:sticky;top:0;background:#f8fafb;z-index:1}.cost-value{font:11px ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums;white-space:nowrap;color:#405d6d}.cost-assumptions{padding:10px 16px;border-top:1px solid #e6ecef;color:#87959d;font-size:10px;line-height:1.8}.cost-assumptions summary{cursor:pointer}.cost-assumptions span{display:block;margin-top:8px;max-width:800px}.analysis-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.terrain-panel,.defect-panel{overflow:hidden}.terrain-dot{display:inline-block;width:9px;height:9px;margin-right:7px;border-radius:2px}.defect-gallery{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px 14px}.defect-gallery figure{margin:0;min-width:0}.defect-gallery img{width:100%;height:130px;object-fit:cover;border-radius:3px;background:#eef2f3}.defect-gallery figcaption{font-size:10px;color:#6a7f8a;padding-top:7px}.defect-source{display:block;font-size:9px;color:#80949f;padding:0 14px 12px}.terrain-panel td{font-size:11px}.cost-panel td strong{font-size:11px}
@media(max-width:850px){.ops-board{grid-template-columns:1fr}.analysis-pair{grid-template-columns:1fr}.space-toolbar>span{display:none}.space-modes button{padding:6px 8px}.cost-scroll .data-table{min-width:680px}}
body{font:13px/1.45 "PingFang SC","Hiragino Sans GB","Noto Sans SC",sans-serif;background:#f6f6f6;color:#1c1c1c}
.sidebar{background:#fafafa;color:#222;border-right:1px solid #e7e7e7;padding:18px 10px}
.brand{padding:2px 10px 22px}.brand b{font-size:15px;font-weight:600;letter-spacing:0}
.nav-link{color:#444;border-radius:2px;padding:9px 10px}.nav-link:hover{background:#f0f0f0;color:#111}.nav-link.active{background:#eee;color:#111;box-shadow:inset 2px 0 #1c1c1c}
.topbar{height:52px;border-bottom-color:#e7e7e7}.topbar h1{margin:0;font-size:15px;font-weight:600;letter-spacing:0}
.page-wrap{padding:16px 20px 28px}.card{border-radius:2px;box-shadow:none;border-color:#e7e7e7}
.btn,.input,.select,.tag{border-radius:2px}.status-pill,.type-pill{border-radius:2px}
.metric{padding:12px 14px}.metric-label{font-size:12px;color:#777}.metric-value{font-size:22px;font-weight:600;margin-top:6px;letter-spacing:0}
.weather-rail{display:flex;align-items:baseline;gap:16px;margin:0 0 12px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.weather-rail b{font-size:13px;font-weight:600}.weather-rail span{color:#666;font-size:13px}
.task-item{grid-template-columns:minmax(0,1fr) auto;padding:10px 0}
.card-head h2{font-size:13px;font-weight:600}
.space-foot{justify-content:flex-end;padding:6px 12px;color:#9aa;font-size:10px}
.altitude-axis,.space-toolbar,.space-readout{background:#fff}
.battery-readout>b{display:block;margin-bottom:4px;font:600 12px ui-monospace,SFMono-Regular,monospace}
.telemetry-source i,.live-pill i,.battery-track i:after,.service-state i{animation:none}
.module-card p{display:none}
.altitude-axis{width:236px;background:#fff}
.altitude-body{flex:1;display:flex;min-height:0;gap:6px;padding:8px 8px 12px 30px}
.altitude-scale{width:12px;flex:none;margin:0;border:0;border-radius:2px;background:linear-gradient(to top,#fff 0%,#fff 22%,#d7e7f8 48%,#5e95cf 76%,#1e5eac 100%)}
.altitude-list{flex:1;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:2px}
.alt-row{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;border:0;border-radius:2px;padding:2px 5px;font:10px/1.35 inherit;text-align:left;cursor:pointer}
.alt-row small{font:10px ui-monospace,SFMono-Regular,monospace}
.alt-row.chosen{outline:1px solid #1c1c1c}
.alt-notch{position:absolute;left:0;width:12px;height:2px;transform:translateY(50%);box-shadow:0 0 0 1px #ffffffcc}
.alt-tick{left:-28px;width:24px;color:#667480}
.resource-count b{color:#1c1c1c}
.btn.primary{background:#1c1c1c;border-color:#1c1c1c}
.nav-link.active{box-shadow:inset 2px 0 #1c1c1c}

/* Task creation behaves like an operator's worksheet, not a generic form. */
.task-studio{margin:-18px;background:#fbfbfa}.task-studio>header{padding:17px 20px 13px;border-bottom:1px solid #e6e6e3}.task-studio>header span{display:block;font-size:15px;font-weight:650;color:#202725}.task-studio>header small{display:block;margin-top:4px;color:#6d7471;font-size:11px}.task-blueprints{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px 20px;background:#f2f4f1;border-bottom:1px solid #e3e5e1}.task-blueprint{min-height:54px;padding:8px 10px;text-align:left;border:1px solid #d8ddd8;border-radius:2px;background:#fff;color:#252d2a;cursor:pointer}.task-blueprint:hover,.task-blueprint:focus-visible{border-color:#202725;outline:0}.task-blueprint b,.task-blueprint small{display:block}.task-blueprint b{font-size:11px;font-weight:650}.task-blueprint small{margin-top:4px;color:#747b78;font-size:10px}.task-studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:0}.task-draft{padding:18px 20px}.task-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.task-advice{margin:18px 18px 18px 0;padding:13px 14px;align-self:stretch;border-left:2px solid #1c1c1c;background:#f0f2ef;color:#303936}.task-advice span,.task-advice small{display:block;color:#707874;font-size:10px}.task-advice>b{display:block;margin:4px 0 12px;font-size:16px;font-weight:650}.task-advice div{padding:8px 0;border-top:1px solid #d9ddda;font-size:11px;line-height:1.55}.task-advice small{margin-top:11px;line-height:1.45}.device-console{margin:-18px;background:#fafbfa}.device-console>header{padding:18px 20px 14px;background:#202725;color:#f4f6f3}.device-console>header span,.device-console>header small{display:block;color:#b7c3bc;font-size:10px}.device-console>header b{display:block;margin:5px 0 2px;font-size:16px;font-weight:650}.device-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e1e5e1}.device-kpis>div{padding:13px 15px;border-right:1px solid #e1e5e1}.device-kpis>div:last-child{border:0}.device-kpis small{display:block;color:#747d78;font-size:10px}.device-kpis b{display:block;margin-top:4px;font:600 14px ui-monospace,SFMono-Regular,Menlo,monospace;color:#202826}.device-console-grid{display:grid;grid-template-columns:1fr 1fr}.device-console-grid section{padding:16px 20px}.device-console-grid section+section{border-left:1px solid #e1e5e1}.device-console h3{margin:0 0 9px;font-size:11px;font-weight:650;color:#38413d}.device-console dl,.device-console ul{margin:0;padding:0;list-style:none}.device-console dl>div{display:grid;grid-template-columns:72px 1fr;padding:7px 0;border-top:1px solid #e8ebe8;font-size:11px}.device-console dt{color:#747d78}.device-console dd{margin:0;color:#25302b}.device-console li{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #e8ebe8}.device-console code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2f6258;font-size:9px}.device-console li span{color:#747d78;font-size:10px;text-align:right}.device-console footer{padding:9px 20px;border-top:1px solid #e1e5e1;color:#747d78;background:#f2f4f1;font-size:10px}
@media(max-width:640px){.task-blueprints{grid-template-columns:1fr 1fr}.task-studio-grid,.device-console-grid{grid-template-columns:1fr}.task-advice{margin:0 20px 18px}.device-console-grid section+section{border-left:0;border-top:1px solid #e1e5e1}.device-kpis{grid-template-columns:1fr 1fr}.device-kpis>div:nth-child(2){border-right:0}.task-controls{grid-template-columns:1fr}}
.task-map-picker{position:relative;height:116px;margin-top:12px;overflow:hidden;border:1px solid #cfd7d1;background:linear-gradient(90deg,#ffffffa8 1px,transparent 1px),linear-gradient(#ffffffa8 1px,transparent 1px),#8fa59a;background-size:20px 20px;cursor:crosshair}.task-map-picker:before{content:"";position:absolute;inset:0;background:linear-gradient(25deg,transparent 45%,#52706b 46% 48%,transparent 49%),linear-gradient(155deg,transparent 35%,#5f8179 36% 38%,transparent 39%);opacity:.7}.task-map-picker span{position:absolute;left:9px;top:8px;z-index:1;padding:3px 5px;background:#ffffffe0;color:#43504a;font-size:10px}.task-map-picker i{position:absolute;z-index:2;display:block;border:2px solid #1c1c1c;background:#ffffff30;pointer-events:none}
button.resource-count{width:100%;border:1px solid #edf0f2;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}button.resource-count:hover,button.resource-count.selected{border-color:#8fcac3;background:#f3faf8;box-shadow:0 0 0 2px #168b7620}button.resource-count:focus-visible{outline:2px solid #38a99b;outline-offset:2px}
