:root{--bg:#060a12;--bg-2:#0a1019;--panel:rgba(13,20,33,0.72);--panel-solid:#0c1320;--panel-2:rgba(20,30,49,0.6);--border:rgba(74,96,138,0.22);--border-strong:rgba(96,124,173,0.4);--text:#e9eff9;--muted:#8295b6;--faint:#56688c;--brand:#0bbd8b;--brand-2:#1fd6a6;--signal:#38d0e0;--good:#2ecc71;--moderate:#f1c40f;--warn:#ff9f1c;--danger:#e8431f;--severe:#b3122a;--radius:14px;--radius-sm:9px;--shadow:0 18px 50px -22px rgba(0,0,0,0.8);--shadow-sm:0 6px 20px -10px rgba(0,0,0,0.7);--font-d:var(--font-display),ui-sans-serif,system-ui,sans-serif;--font-b:var(--font-body),ui-sans-serif,system-ui,sans-serif;--font-m:var(--font-mono),ui-monospace,"SFMono-Regular",monospace;--header-h:58px;--dock-w:396px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-b);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--brand) 40%,transparent)}.chat-log::-webkit-scrollbar,.scroll::-webkit-scrollbar{width:8px}.chat-log::-webkit-scrollbar-thumb,.scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.chat-log,.scroll{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.shell{display:grid;grid-template-rows:var(--header-h) 1fr;height:100vh;width:100vw;overflow:hidden;background:radial-gradient(1100px 500px at 78% -8%,rgba(11,189,139,.1),transparent 60%),radial-gradient(900px 500px at 0 110%,rgba(56,208,224,.07),transparent 55%),var(--bg)}.shell-body{display:grid;grid-template-columns:var(--dock-w) 1fr;min-height:0}.hdr{display:flex;align-items:center;gap:18px;padding:0 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(10,16,25,.92),rgba(8,12,20,.78));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20}.hdr-brand{display:flex;align-items:baseline;gap:10px}.hdr-mark{font-family:var(--font-d);font-weight:800;font-size:17px;letter-spacing:-.02em;line-height:1}.hdr-mark .g{color:var(--brand-2)}.hdr-mark .dot{color:var(--signal)}.hdr-sub{font-family:var(--font-m);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.hdr-spacer{flex:1 1}.status{display:flex;align-items:center;gap:12px;padding:6px 12px 6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel)}.status-led{width:9px;height:9px;border-radius:50%;position:relative;flex-shrink:0}.status-led:after{content:"";position:absolute;inset:-5px;border-radius:50%;background:inherit;opacity:.35;animation:pulse 2.2s ease-out infinite}.status-txt{font-family:var(--font-m);font-size:11px;letter-spacing:.04em}.status-txt b{text-transform:uppercase}.status-sigs{display:flex;gap:10px}.status-sig{font-family:var(--font-m);font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.status-sig .d{width:6px;height:6px;border-radius:50%}.guest-pill{font-family:var(--font-m);font-size:10px;letter-spacing:.06em;padding:6px 11px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);white-space:nowrap}.hdr-actions{display:flex;align-items:center;gap:8px}.icon-btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:9px;font-family:var(--font-m);font-size:11px;letter-spacing:.03em;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.icon-btn:hover{border-color:var(--brand);transform:translateY(-1px)}.icon-btn.on{border-color:var(--brand);color:var(--brand-2)}.icon-btn .k{width:6px;height:6px;border-radius:50%;background:var(--danger)}.icon-btn .k.live{background:var(--good)}.dock{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:linear-gradient(180deg,rgba(10,15,24,.6),rgba(7,11,18,.4));position:relative}.dock-tabs{display:flex;gap:4px;padding:12px 14px 10px;border-bottom:1px solid var(--border)}.dock-tab{flex:1 1;padding:9px 0;border-radius:9px;background:transparent;border:1px solid transparent;color:var(--muted);font-family:var(--font-m);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:7px}.dock-tab:hover{color:var(--text)}.dock-tab.on{color:var(--bg);background:linear-gradient(135deg,var(--brand-2),var(--brand));font-weight:700;box-shadow:0 6px 18px -8px var(--brand)}.dock-tab .badge{font-size:9px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--danger);color:#fff}.dock-tab.on .badge{background:rgba(0,0,0,.28)}.chat{flex-direction:column;min-height:0}.chat,.chat-log{display:flex;flex:1 1}.chat-log{overflow-y:auto;padding:16px;flex-direction:column;gap:14px}.msg{font-size:13.5px;line-height:1.55;animation:fadeUp .35s ease both}.msg .who{font-family:var(--font-m);font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin-bottom:4px}.msg.user .bubble{background:linear-gradient(135deg,rgba(11,189,139,.14),rgba(56,208,224,.08));border:1px solid var(--border-strong);border-radius:12px 12px 4px 12px;padding:10px 12px;white-space:pre-wrap}.msg.assistant .bubble{color:var(--text)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 9px}.md h1,.md h2,.md h3,.md h4{font-family:var(--font-m);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--brand-2);font-weight:600;margin:15px 0 7px;padding-bottom:5px;border-bottom:1px solid var(--border)}.md h1:first-child,.md h2:first-child,.md h3:first-child,.md h4:first-child{margin-top:0}.md ol,.md ul{margin:0 0 9px;padding-left:17px}.md li{margin:0 0 4px}.md li::marker{color:var(--brand-2)}.md strong{color:var(--text);font-weight:650}.md em{color:var(--muted)}.md a{color:var(--brand-2);text-decoration:underline;text-underline-offset:2px}.md hr{border:0;border-top:1px solid var(--border);margin:13px 0}.md blockquote{margin:0 0 9px;padding:2px 0 2px 11px;border-left:2px solid var(--border-strong);color:var(--muted)}.md code{font-family:var(--font-m);font-size:11.5px;background:rgba(127,127,127,.13);border-radius:4px;padding:1px 5px}.md pre{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px;overflow-x:auto;margin:0 0 9px}.md pre code{background:none;padding:0;font-size:11px;line-height:1.5}.md-table-wrap{overflow-x:auto;margin:0 0 10px}.md table{border-collapse:collapse;width:100%;font-size:12px}.md td,.md th{text-align:left;padding:6px 9px;border-bottom:1px solid var(--border);vertical-align:top}.md th{font-family:var(--font-m);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);border-bottom-color:var(--border-strong);white-space:nowrap}.md tbody tr:last-child td{border-bottom:none}.md td:last-child:nth-child(2){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.intro{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--panel);font-size:13px;line-height:1.6;color:var(--muted)}.intro b{color:var(--text)}.tool-chip{font-size:10.5px;color:var(--brand-2);background:rgba(11,189,139,.08);border:1px solid var(--border);border-radius:7px;padding:4px 9px;display:inline-flex;gap:6px;margin:5px 6px 0 0}.thinking,.tool-chip{font-family:var(--font-m)}.thinking{color:var(--muted);font-size:12px;display:flex;gap:7px;align-items:center}.thinking .d{width:6px;height:6px;border-radius:50%;background:var(--brand-2);animation:blink 1.1s infinite}.suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 14px}.chip{font-size:12px;padding:7px 11px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;transition:all .15s;line-height:1.2}.chip:hover{border-color:var(--brand);color:var(--brand-2);transform:translateY(-1px)}.chat-input{display:flex;gap:9px;padding:13px 16px;border-top:1px solid var(--border)}.chat-input textarea{flex:1 1;resize:none;height:42px}button,input,textarea{font-family:var(--font-b);font-size:13px;color:var(--text);background:rgba(9,14,23,.8);border:1px solid var(--border);border-radius:9px;padding:9px 11px;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(11,189,139,.12)}input::placeholder,textarea::placeholder{color:var(--faint)}button{cursor:pointer}button.primary{background:linear-gradient(135deg,var(--brand-2),var(--brand));color:#04130d;border:none;font-family:var(--font-m);font-weight:700;font-size:12px;letter-spacing:.04em;padding:9px 16px}button.primary:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:default}.notice{font-size:12.5px;color:var(--warn);background:rgba(255,159,28,.07);border:1px solid rgba(255,159,28,.28);border-radius:10px;padding:11px;line-height:1.5}.notice code{font-family:var(--font-m);font-size:11px;color:var(--brand-2)}.scroll{overflow-y:auto;min-height:0;flex:1 1;padding:4px 0 24px}.sec{padding:16px 16px 4px}.sec-h{display:flex;align-items:center;gap:8px;margin:0 0 11px;font-family:var(--font-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.sec-h:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand)}.sec-h .src{margin-left:auto;color:var(--faint);letter-spacing:.06em}.card{border-radius:var(--radius);padding:14px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-sm);animation:fadeUp .4s ease both}.card .lede{font-size:13px;line-height:1.5;margin:0 0 10px;color:var(--text)}.rows{flex-direction:column}.row,.rows{display:flex}.row{align-items:center;gap:9px;padding:8px 0;font-size:13px;border-top:1px solid var(--border)}.row:first-child{border-top:none}.row .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px -1px currentColor}.row .name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .sub{font-size:10px;color:var(--faint);letter-spacing:.03em}.row .sub,.row .val{font-family:var(--font-m)}.row .val{font-weight:700;font-size:14px}.row .val .u{font-weight:400;font-size:10px;color:var(--muted);margin-left:3px}.src-line{font-size:9.5px;color:var(--faint);margin-top:11px;line-height:1.5}.loading,.src-line{font-family:var(--font-m)}.loading{font-size:11.5px;color:var(--muted);padding:8px 0;display:flex;gap:8px;align-items:center}.loading .d{width:6px;height:6px;border-radius:50%;background:var(--brand-2);animation:blink 1.1s infinite}.search-row{display:flex;gap:8px}.search-row input{flex:1 1}.cf-toggle{display:flex;gap:6px;margin-bottom:10px}.cf-btn{flex:1 1;font-family:var(--font-m);font-size:9.5px;letter-spacing:.03em;padding:7px 8px;border-radius:8px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);text-align:center;line-height:1.3}.cf-btn.on{border-color:var(--brand-2);color:var(--brand-2);background:rgba(31,214,166,.08)}.health-row{align-items:flex-start;padding:10px 0}.health-row-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.health-row-top{display:flex;align-items:baseline;gap:8px}.health-row-top .name{font-size:13px}.health-row-top .val{font-family:var(--font-m);font-weight:700;font-size:15px;white-space:nowrap;margin-left:auto}.health-row-top .val .u{font-weight:400;font-size:9.5px;color:var(--muted);margin-left:3px;text-transform:none}.health-row-sub{font-family:var(--font-m);font-size:10px;color:var(--faint);line-height:1.55}.health-national-hero{display:flex;align-items:baseline;gap:10px;margin:2px 0 8px}.health-national-hero .val{font-family:var(--font-m);font-weight:700;font-size:30px;color:var(--text);line-height:1}.health-national-hero .u{font-size:11.5px;color:var(--muted);line-height:1.4;max-width:220px}.health-national{font-size:14px;line-height:1.5;font-weight:600;color:var(--text);margin:0 0 10px}.health-benchmark{margin-top:4px;padding:10px;border-radius:9px;background:rgba(29,155,240,.07);border:1px solid rgba(29,155,240,.25);display:flex;flex-direction:column;gap:4px}.health-benchmark-label{font-family:var(--font-m);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal)}.health-benchmark-val{font-size:12px;line-height:1.5;color:var(--text)}.health-benchmark.retraction{background:rgba(255,159,28,.07);border-color:rgba(255,159,28,.28)}.health-benchmark.retraction .health-benchmark-label{color:var(--warn)}.health-benchmark.province{background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.28)}.health-benchmark.province .health-benchmark-label{color:#a78bfa;display:flex;align-items:center;gap:8px}.health-pending-badge{font-family:var(--font-m);font-size:8px;letter-spacing:.04em;text-transform:none;color:var(--warn);background:rgba(255,159,28,.12);border:1px solid rgba(255,159,28,.35);border-radius:5px;padding:1px 6px}.health-pending-badge.passed{color:var(--good);background:rgba(46,204,113,.12);border-color:rgba(46,204,113,.35)}.health-pending-badge.failed{color:var(--danger);background:rgba(232,67,31,.12);border-color:rgba(232,67,31,.35)}.province-rows{margin-top:6px}.health-districts-head{font-size:9px;color:var(--faint);margin:14px 0 2px}.dust-badge,.health-districts-head{font-family:var(--font-m);letter-spacing:.06em;text-transform:uppercase}.dust-badge{font-size:8px;color:#c99a4d;background:rgba(201,154,77,.14);border:1px solid rgba(201,154,77,.35);border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:middle}.health-caption{font-size:11px;line-height:1.55;color:var(--muted);margin-top:11px}.health-caption b{color:var(--text)}.health-limits-btn{margin-top:9px;width:100%;background:transparent;border:1px dashed var(--border-strong);font-family:var(--font-m);font-size:10px;letter-spacing:.03em;color:var(--muted);padding:7px 10px}.health-limits-btn:hover{color:var(--brand-2);border-color:var(--brand)}.health-limits{margin-top:8px;padding:11px;border-radius:9px;background:var(--panel-2);border:1px solid var(--border)}.health-limits ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}.health-limits li{font-size:11.5px;line-height:1.5;color:var(--muted)}.health-method{font-family:var(--font-m);font-size:9.5px;line-height:1.65;color:var(--faint);margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.uc-grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}.uc-card{display:flex;flex-direction:column;gap:5px;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:13px 14px;cursor:pointer;color:var(--text);transition:border-color .15s,transform .1s,box-shadow .15s;position:relative;overflow:hidden}.uc-card:before{content:"";position:absolute;inset:0;opacity:0;background:linear-gradient(135deg,rgba(11,189,139,.1),transparent 60%);transition:opacity .2s}.uc-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.uc-card:hover:before{opacity:1}.uc-card.active{border-color:var(--brand-2);box-shadow:0 0 0 1px var(--brand-2) inset,var(--shadow-sm)}.uc-badge{align-self:flex-start;font-family:var(--font-m);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;background:rgba(56,208,224,.1);border:1px solid var(--border);color:var(--signal);padding:3px 7px;border-radius:5px;position:relative}.uc-title{font-family:var(--font-d);font-size:15px;font-weight:700;line-height:1.15;position:relative}.uc-blurb{font-size:11.5px;color:var(--muted);line-height:1.4;position:relative}.uc-play{font-family:var(--font-m);font-size:10px;color:var(--brand-2);margin-top:3px;letter-spacing:.04em;position:relative}.uc-banner{position:absolute;top:14px;left:14px;z-index:6;padding:9px 14px;display:flex;align-items:center;gap:11px}.uc-banner b{font-family:var(--font-d);font-size:14px}.uc-banner span{font-family:var(--font-m);font-size:8.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--signal);border:1px solid var(--border);border-radius:5px;padding:3px 7px}.reveal{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);z-index:7;padding:14px 18px;width:min(540px,84%)}.reveal-track{display:flex;align-items:center;gap:14px;font-family:var(--font-m);font-size:10px;letter-spacing:.12em;color:var(--muted)}.reveal-track input{flex:1 1;accent-color:var(--signal);height:4px}.reveal-label{text-align:center;font-family:var(--font-m);font-size:10px;color:var(--brand-2);margin-top:9px;letter-spacing:.03em}.map-wrap{position:relative;min-height:0}.map{position:absolute;inset:0}.glass{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.layers{position:absolute;top:14px;right:14px;z-index:6;width:250px;overflow:hidden}.layers-head{display:flex;align-items:center;gap:8px;padding:12px 14px;cursor:pointer;font-family:var(--font-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);border-bottom:1px solid transparent}.layers.open .layers-head{border-color:var(--border)}.layers-head .chev{margin-left:auto;transition:transform .2s;color:var(--muted)}.layers.open .layers-head .chev{transform:rotate(180deg)}.layers-body{max-height:0;overflow:hidden;transition:max-height .28s ease}.layers.open .layers-body{max-height:560px}.layers-grp{padding:8px 6px}.layers-grp+.layers-grp{border-top:1px solid var(--border)}.layers-grp-h{font-family:var(--font-m);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);padding:4px 8px}.sw-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:12.5px;transition:background .12s}.sw-row:hover{background:rgba(255,255,255,.03)}.sw-row .swatch{width:9px;height:9px;border-radius:3px;flex-shrink:0}.sw-row .lbl{flex:1 1}.switch{width:32px;height:18px;border-radius:999px;background:rgba(120,140,175,.25);position:relative;transition:background .18s;flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#cfe0ff;transition:transform .18s}.sw-row.on .switch{background:linear-gradient(135deg,var(--brand-2),var(--brand))}.sw-row.on .switch:after{transform:translateX(14px);background:#04130d}.ticker{position:absolute;bottom:0;left:0;right:0;z-index:8;height:36px;border-radius:0;border-left:none;border-right:none;border-bottom:none;overflow:hidden}.ticker,.ticker-tag{display:flex;align-items:center}.ticker-tag{flex-shrink:0;align-self:stretch;padding:0 14px;font-family:var(--font-m);font-size:10px;letter-spacing:.12em;color:#04130d;font-weight:700;background:linear-gradient(135deg,var(--brand-2),var(--brand))}.ticker-track{flex:1 1;overflow:hidden;position:relative;height:100%;display:flex;align-items:center}.ticker-idle{padding-left:16px;font-family:var(--font-m);font-size:11px;color:var(--muted)}.ticker-move{display:inline-flex;align-items:center;gap:30px;white-space:nowrap;padding-left:16px;animation:marquee linear infinite;will-change:transform}.ticker:hover .ticker-move{animation-play-state:paused}.ticker-item{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text);text-decoration:none}.ticker-item:hover{color:var(--brand-2)}.ticker-dot{width:5px;height:5px;border-radius:50%;background:var(--signal);flex-shrink:0}.ticker-src{font-family:var(--font-m);font-size:10px;color:var(--faint)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.legend{position:absolute;bottom:50px;left:16px;z-index:5;padding:12px 14px;max-width:290px}.legend .t{font-family:var(--font-m);font-size:10px;letter-spacing:.06em;color:var(--muted);line-height:1.5}.legend .scale{display:flex;gap:0;margin:8px 0 4px;border-radius:6px;overflow:hidden}.legend .scale span{flex:1 1;height:8px}.legend .scale-l{display:flex;justify-content:space-between;font-family:var(--font-m);font-size:8.5px;color:var(--faint)}.legend-health{margin-top:9px;padding-top:9px;border-top:1px solid var(--border);font-size:9.5px;line-height:1.5;color:var(--muted);display:flex;flex-direction:column;gap:7px}.legend-health-row{display:flex;align-items:flex-start;gap:8px}.legend-health-row b{color:var(--text);font-weight:600}.legend-health-dots{flex:none;width:40px;display:flex;align-items:center;justify-content:center;gap:3px;margin-top:1px}.legend-health-dots i{display:block;border-radius:50%;background:#1d9bf0;border:1.3px solid #fff;box-sizing:content-box}.legend-health-badge{flex:none;width:18px;height:18px;margin-top:1px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0b1220;border:1.6px solid #38d0e0;font-family:var(--font-m);font-size:10px;color:#fff}.legend .attr{margin-top:8px;font-family:var(--font-m);font-size:8.5px;line-height:1.55;color:var(--faint)}.pop-wrap{position:relative}.pop{position:absolute;top:42px;right:0;z-index:30;width:320px;padding:16px}.pop h3{font-family:var(--font-d);font-size:14px;margin:0 0 4px}.pop p{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}.pop p a{color:var(--brand-2)}.pop .field{display:flex;gap:8px}.pop .field input{flex:1 1;font-family:var(--font-m);font-size:11px}.pop .hint{font-family:var(--font-m);font-size:9.5px;color:var(--faint);margin-top:10px;line-height:1.5}.pop .ok{color:var(--good)}.maplibregl-popup-content{background:var(--panel-solid);color:var(--text);border:1px solid var(--border-strong);border-radius:10px;font-family:var(--font-b);font-size:12px;box-shadow:var(--shadow)}.maplibregl-popup-content b{font-family:var(--font-m);font-size:11px}.maplibregl-popup-tip{border-top-color:var(--panel-solid)!important;border-bottom-color:var(--panel-solid)!important}.popup-detail .maplibregl-popup-content{padding:0;overflow:hidden}.hc{font-size:12px;line-height:1.45;max-height:62vh;overflow-y:auto}.hc-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:11px 30px 9px 13px;border-bottom:1px solid var(--border)}.popup-detail .maplibregl-popup-close-button{color:var(--muted);font-size:17px;line-height:1;padding:4px 8px 6px;background:none}.popup-detail .maplibregl-popup-close-button:hover{color:var(--text);background:none}.hc-name{font-size:13px;font-weight:650;color:var(--text)}.hc-adm,.hc-name{font-family:var(--font-m)}.hc-adm{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);white-space:nowrap}.hc-hero{display:flex;align-items:center;gap:11px;padding:12px 13px 4px}.hc-big{font-family:var(--font-m);font-size:30px;font-weight:600;line-height:1;color:var(--brand-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hc-unit{font-size:10.5px;line-height:1.35;color:var(--muted)}.hc-ctx{padding:0 13px 10px;font-size:10.5px;color:var(--faint);margin-bottom:2px}.hc-block,.hc-ctx,.hc-sec{border-bottom:1px solid var(--border)}.hc-block,.hc-sec{padding:9px 13px}.hc-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:2px 0}.hc-k{color:var(--muted);font-size:11px}.hc-v{font-family:var(--font-m);font-size:11.5px;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.hc-strong{font-size:13px;font-weight:650}.hc-band{position:relative;height:14px;margin:7px 0 3px}.hc-band-track{position:absolute;top:6px;left:0;right:0;height:3px;border-radius:2px;background:linear-gradient(90deg,rgba(56,208,224,.18),rgba(56,208,224,.5),rgba(56,208,224,.18))}.hc-band-dot{position:absolute;top:2px;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:var(--brand-2);box-shadow:0 0 0 2px var(--panel-solid)}.hc-scale{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-m);font-size:9.5px;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hc-scale-mid{text-transform:uppercase;letter-spacing:.08em}.hc-note{padding:9px 13px;font-size:10.5px;line-height:1.45;color:var(--muted);border-bottom:1px solid var(--border);background:rgba(127,127,127,.05)}.hc-foot{padding:9px 13px 11px;font-size:9.5px;line-height:1.5;color:var(--faint)}.hc-foot b{font-family:inherit;font-size:inherit;color:var(--muted)}.maplibregl-ctrl-group{background:var(--panel-solid)!important;border:1px solid var(--border)!important}.maplibregl-ctrl-group button{filter:invert(.9)}.drawer-btn{display:none}.login-wrap{height:100vh;width:100vw;display:grid;place-items:center;background:radial-gradient(1100px 600px at 70% -10%,rgba(11,189,139,.12),transparent 60%),radial-gradient(900px 600px at 0 110%,rgba(56,208,224,.08),transparent 55%),var(--bg)}.login-card{width:min(380px,92vw);padding:30px 28px;display:flex;flex-direction:column;gap:14px;animation:fadeUp .5s ease both}.login-mark{font-family:var(--font-d);font-weight:800;font-size:21px;letter-spacing:-.02em}.login-mark .g{color:var(--brand-2)}.login-mark .dot{color:var(--signal)}.login-sub{font-family:var(--font-m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field span{font-family:var(--font-m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.login-field input{padding:11px 12px}.login-error{font-size:12.5px;color:var(--danger);background:rgba(232,67,31,.08);border:1px solid rgba(232,67,31,.3);border-radius:9px;padding:9px 11px}.login-btn{margin-top:4px;padding:12px;font-size:13px}.login-foot{text-align:center;font-family:var(--font-m);font-size:9px;letter-spacing:.08em;color:var(--faint);margin-top:4px}@keyframes pulse{0%{transform:scale(.6);opacity:.6}to{transform:scale(2.4);opacity:0}}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:880px){:root{--dock-w:100%}.shell-body{grid-template-columns:1fr}.dock{position:absolute;top:var(--header-h);left:0;right:0;bottom:0;z-index:15;transform:translateX(-100%);transition:transform .28s ease;border-right:none;background:var(--bg-2)}.dock.open{transform:none}.drawer-btn{display:inline-flex}.hdr-sub,.status-sigs{display:none}.layers{width:210px}}