@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#071426;--panel:#0d2038;--panel2:#122b49;--line:#244362;--text:#e9f2ff;--muted:#8ca4c1;--blue:#8fc5ff;--cyan:#52d3df;--red:#ff6c83}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,system-ui,sans-serif}.app{min-height:100dvh;background:radial-gradient(ellipse at 25% -20%,#18375c 0,transparent 50%),var(--bg)}.top{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #24415e;background:#0a1a30ed;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;font-weight:800;letter-spacing:2px}.brand small{display:block;font-size:8px;color:var(--muted);letter-spacing:1.7px;margin-top:3px}.brandmark{display:grid;place-items:center;width:38px;height:38px;border:1px solid #5d91c1;border-radius:12px;color:#b9dcff;background:linear-gradient(145deg,#1c4772,#10233c);font-weight:800}.topright{display:flex;align-items:center;gap:12px}.live{font-size:10px;letter-spacing:1px;color:#9db6d2}.live i,.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#58d6b0;box-shadow:0 0 12px #58d6b0;margin-right:7px}.iconbtn{background:#142c48;border:1px solid #315274;color:#cde3ff;border-radius:12px;width:38px;height:38px;font-size:18px}main{height:calc(100dvh - 68px);min-height:540px;display:grid;grid-template-columns:minmax(0,1fr) 370px}.mapwrap{position:relative;min-height:0;background:#0a1929}#map{position:absolute;inset:0}.maptools{position:absolute;top:16px;left:16px;display:flex;gap:8px}.maptools button,.mapbadge{background:#0b2038e8;border:1px solid #345575;color:#d9eaff;border-radius:12px;padding:10px 13px;font:600 11px Inter;backdrop-filter:blur(12px)}.mapbadge{position:absolute;bottom:17px;left:17px;font-size:9px;letter-spacing:1px;color:#a7bfd9}.mapbadge b{color:#5ed4c6;margin:0 6px}.side{background:linear-gradient(180deg,#102743,#0b1c32);border-left:1px solid #294967;padding:21px 18px;overflow:auto}.sidehead{display:flex;align-items:center;justify-content:space-between}.sidehead small,.metrics small{font-size:9px;letter-spacing:1.3px;color:#829dbb;font-weight:700}.sidehead h1{font-size:23px;margin:5px 0 16px}.tag{font-size:9px;color:#71e1c2;border:1px solid #286a65;border-radius:20px;padding:5px 9px}.search,.field,select{width:100%;border:1px solid #294969;background:#0a1a2e;color:#e4f1ff;border-radius:11px;padding:12px;margin-bottom:10px}.search{display:flex;gap:8px;color:#89a7c6}.search input{border:0;outline:0;background:transparent;color:white;width:100%}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 0 18px}.metrics>div{padding:13px;background:#132d4b;border:1px solid #294967;border-radius:13px}.metrics strong{display:block;font-size:22px;margin-top:7px}.tabs{display:flex;border-bottom:1px solid #29445f;gap:5px;margin-bottom:15px}.tabs button{background:none;border:0;color:#8fa8c3;padding:11px 12px;font:600 12px Inter}.tabs button.active{color:#cfe5ff;border-bottom:2px solid #72b9ff}.sectiontitle{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin:12px 0}.sectiontitle button{border:0;background:none;color:#9fcfff;font-size:18px}.feed{display:grid;gap:9px;max-height:calc(100dvh - 390px);overflow:auto}.item{padding:13px;border:1px solid #2a4867;border-radius:13px;background:#102743}.itemtop{display:flex;justify-content:space-between;gap:10px}.item strong{font-size:12px}.item small{color:#89a4c1;font-size:10px}.item p{color:#b7cbe0;line-height:1.5;margin:9px 0 0;font-size:12px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:#6bc6dc}.dot.alert{background:#ff7384}.dot.all_clear{background:#61d7a9}.dot.shelter{background:#b59aff}.primary{border:0;border-radius:12px;padding:13px 16px;background:linear-gradient(180deg,#c3e0ff,#78b5f2);color:#09203a;font:700 12px Inter}.wide{width:100%;margin-top:14px}.empty{padding:22px;text-align:center;color:#829bb8;font-size:12px}.about{padding:14px;color:#a9bfd7;line-height:1.7}.about h2{color:#e5f2ff}.mobilebar{display:none}.modal{position:fixed;inset:0;z-index:10;background:#020914b8;display:grid;place-items:center;padding:18px}.dialog{position:relative;width:min(460px,100%);max-height:85dvh;overflow:auto;padding:25px;background:#102947;border:1px solid #41658a;border-radius:22px;box-shadow:0 25px 90px #0009}.close{position:absolute;right:15px;top:12px;background:none;border:0;color:#9db7d4;font-size:24px}.dialog h2{margin-top:0}.dialog p{color:#a9bfd7;line-height:1.6}.dialog input,.dialog select,.dialog textarea{width:100%;padding:12px;border-radius:10px;background:#091b30;border:1px solid #355779;color:#eaf4ff;margin:7px 0 12px;font:13px Inter}.dialog textarea{min-height:100px;resize:vertical}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#d4e9ff;color:#0b2340;padding:11px 16px;border-radius:12px;z-index:20;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1}.modrow{padding:12px;border:1px solid #315071;border-radius:12px;margin:8px 0;background:#102641}.modrow button{margin:8px 5px 0 0;padding:8px 10px;border-radius:9px;border:1px solid #436586;background:#173756;color:#dceeff}.maplibregl-ctrl-group{background:#102945!important;border:1px solid #31516f!important}.maplibregl-ctrl button span{filter:invert(1)}@media(max-width:760px){.top{height:58px;padding:0 13px}.live{display:none}main{height:calc(100dvh - 58px - 62px);min-height:0;display:block;position:relative}.mapwrap{height:100%;width:100%}.side{position:absolute;z-index:3;bottom:0;left:0;right:0;max-height:48%;border:1px solid #2b4c6d;border-radius:20px 20px 0 0;padding:13px 15px 18px;box-shadow:0 -15px 35px #0005}.sidehead h1{font-size:18px;margin-bottom:10px}.sidehead small{font-size:8px}.search,select{padding:9px;margin-bottom:6px}.metrics{margin:5px 0 9px}.metrics>div{padding:9px}.metrics strong{font-size:18px}.tabs{margin-bottom:8px}.tabs button{padding:8px}.feed{max-height:155px}.maptools{top:10px;left:10px}.mapbadge{bottom:auto;top:12px;left:50%;transform:translateX(-50%);white-space:nowrap}.mobilebar{height:62px;display:flex;justify-content:space-around;align-items:center;background:#0b1c31;border-top:1px solid #294967;padding-bottom:env(safe-area-inset-bottom)}.mobilebar button{background:none;border:0;color:#91a9c4;display:grid;gap:3px;justify-items:center;font-size:18px}.mobilebar span{font:10px Inter}.mobilebar .selected{color:#bfe0ff}.primary{padding:11px}.side{max-height:53%}.about{padding:6px}}
/* Respect the HTML hidden attribute: .modal uses display:grid and otherwise overrides the browser default. */
.modal[hidden]{display:none!important}


/* H1 RADAR Mini App shell — visual language inspired by primer / primer2 */
:root{
 --glass:linear-gradient(145deg,rgba(112,169,235,.15),rgba(8,24,48,.78) 48%,rgba(74,143,205,.12));
 --glass-line:rgba(191,222,255,.19);
 --glass-shadow:0 18px 48px rgba(0,7,20,.38),inset 0 1px 0 rgba(255,255,255,.12);
}
html,body{min-height:100%;background:#030814}
body{background:radial-gradient(55% 40% at 20% 0%,rgba(26,95,208,.22),transparent 70%),#030814}
.app{background:radial-gradient(60% 45% at 85% 0%,rgba(99,220,255,.10),transparent 70%),transparent}
.top{background:rgba(5,16,34,.84);border-bottom-color:var(--glass-line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.brandmark{border-color:rgba(131,195,255,.48);background:linear-gradient(145deg,rgba(40,105,175,.58),rgba(9,27,53,.88));box-shadow:0 0 24px rgba(63,157,251,.16),inset 0 1px 0 rgba(255,255,255,.22)}
.side{background:linear-gradient(160deg,rgba(12,34,63,.96),rgba(4,15,31,.97));border-left-color:var(--glass-line)}
.maptools button,.mapbadge,.metrics>div,.item,.modrow,.dialog,.iconbtn,.search,select,.field{
 border-color:var(--glass-line);box-shadow:var(--glass-shadow)
}
.maptools button,.mapbadge{background:rgba(5,19,39,.76);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.metrics>div,.item,.modrow{background:linear-gradient(145deg,rgba(31,68,111,.52),rgba(8,26,49,.76))}
.iconbtn{background:rgba(19,47,78,.72)}
.primary{background:linear-gradient(135deg,#d4edff,#6fb5f6 58%,#52d3df);box-shadow:0 8px 24px rgba(63,157,251,.2)}
.dialog{background:linear-gradient(155deg,rgba(20,52,88,.98),rgba(5,19,39,.98));backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.mobilebar{background:rgba(5,17,35,.92);border-top-color:var(--glass-line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.toast{box-shadow:0 10px 35px rgba(0,0,0,.35)}
/* Telegram's fullscreen/safe-area insets */
.top{padding-top:var(--tg-content-safe-area-inset-top,0px)}
.mobilebar{padding-bottom:max(env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px))}
@media(max-width:760px){
 .top{height:calc(58px + var(--tg-content-safe-area-inset-top,0px));}
 main{height:calc(100dvh - 120px - var(--tg-content-safe-area-inset-top,0px));}
 .side{background:linear-gradient(160deg,rgba(12,34,63,.94),rgba(4,15,31,.96));backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
}


/* H1 RADAR — midnight glass visual pass */
:root{--bg:#050b14;--panel:rgba(10,25,43,.82);--panel2:rgba(15,37,61,.9);--line:rgba(166,205,239,.17);--text:#edf6ff;--muted:#91a8c1;--blue:#a7d4ff;--cyan:#68ded6;--red:#ff7789}
body{background:#050b14;color:var(--text);letter-spacing:-.012em}
.app{background:radial-gradient(ellipse at 48% -35%,#21466b55 0,transparent 54%),#050b14}
.top{position:absolute;top:14px;left:16px;right:16px;height:58px;padding:0 17px;border:1px solid #9bc8ed35;border-radius:19px;background:linear-gradient(120deg,#193a5dcc,#0b1c30df 55%,#193755c9);backdrop-filter:blur(24px) saturate(160%);box-shadow:0 18px 48px #0008,inset 0 1px #ffffff25;z-index:20}
.brandmark{border-radius:11px;background:linear-gradient(145deg,#295477,#10243a);border-color:#91c5ed70;box-shadow:0 0 24px #67c9e51c}
.topright{gap:9px}.live{padding:8px 12px;border:1px solid #83d9cb2b;border-radius:30px;background:#4bcbb110}
.iconbtn{border-radius:50%;background:#ffffff0d;border-color:#ffffff25;backdrop-filter:blur(12px);transition:transform .2s,background .2s,box-shadow .2s}
.iconbtn:hover{transform:translateY(-1px);background:#ffffff1c;box-shadow:0 5px 20px #6cbfff20}
main{height:100dvh;min-height:600px;padding-top:0;grid-template-columns:minmax(0,1fr) 350px;gap:0}
.mapwrap{background:#06101c}
#map{filter:saturate(.82) contrast(1.06)}
.side{align-self:stretch;margin:86px 16px 16px 0;padding:20px 18px;border:1px solid #9bc8ed35;border-radius:25px;background:linear-gradient(155deg,#17385bcf,#0a1b30ed 58%,#0a1728ed);backdrop-filter:blur(26px) saturate(155%);box-shadow:0 24px 65px #0008,inset 0 1px #ffffff20}
.sidehead h1{font-size:22px;letter-spacing:-.8px}.sidehead small,.metrics small{letter-spacing:1.5px;color:#8ea9c6}
.tag{border-color:#4faaa078;background:#45cdb014;color:#83e4d4}
.search,.field,select{border-radius:12px!important;background:#061426c9!important;border-color:#8eb8dc35!important;color:#e8f4ff!important;outline:none;transition:border-color .2s,box-shadow .2s}
.search:focus-within,.field:focus,select:focus{border-color:#79bdf2a8!important;box-shadow:0 0 0 3px #68b9ef16}
.metrics>div,.item,.modrow,.about{border:1px solid #a4c8e51c;border-radius:15px;background:linear-gradient(145deg,#ffffff0b,#ffffff04);box-shadow:inset 0 1px #ffffff09}
.tabs{border-bottom-color:#a4c8e51d}.tabs button{color:#8fa8c1}.tabs button.active{color:#e8f5ff;border-bottom-color:#7fc6ff}
.primary{border:1px solid #d6edff;background:linear-gradient(135deg,#c6e5ff,#82bdf2);color:#071a2b;border-radius:13px;box-shadow:0 9px 26px #73b9f22c}
.primary:hover{box-shadow:0 13px 32px #73b9f244;transform:translateY(-1px)}
.maptools button,.mapbadge{border-radius:12px;border:1px solid #9ac5e53d;background:#0a1c30d9;color:#d8ebfc;backdrop-filter:blur(18px);box-shadow:0 8px 26px #0006}
.mapbadge{letter-spacing:1.2px}
.modal .dialog{border:1px solid #9ac5e544!important;border-radius:22px!important;background:linear-gradient(150deg,#173653f2,#081729f5)!important;box-shadow:0 35px 90px #000b,inset 0 1px #ffffff20!important;backdrop-filter:blur(28px)}
.toast{border:1px solid #9ac5e544;background:#102943ed;backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 12px 40px #0008}
@media(max-width:850px){.top{top:8px;left:8px;right:8px;height:54px;border-radius:16px;padding:0 11px}.side{margin:0;border-radius:22px 22px 0 0;border-left:1px solid #9bc8ed35;border-bottom:0}.live{font-size:8px;padding:6px 8px}main{height:100dvh;min-height:0;grid-template-columns:1fr}.mapwrap{min-height:50dvh}.side{margin:0 8px 8px;max-height:46dvh}}


/* H1 RADAR — map-first layout and floating report action */
.top{position:fixed;top:14px;left:16px;right:16px;height:58px;border:1px solid #9bc8ed45;border-radius:20px;background:linear-gradient(120deg,#193a5de8,#0b1c30ed 55%,#193755df);backdrop-filter:blur(24px) saturate(160%);box-shadow:0 18px 48px #0008,inset 0 1px #ffffff25;z-index:20}
main{height:100dvh;min-height:560px;display:block;padding:0}
.mapwrap{position:absolute;inset:0;background:#071522}
#map{position:absolute;inset:0}
.side{position:fixed;z-index:9;right:16px;top:86px;bottom:16px;width:318px;margin:0;border:1px solid #9bc8ed45;border-radius:26px;background:linear-gradient(155deg,#17385bd9,#0a1b30f2 58%,#0a1728f2);backdrop-filter:blur(26px) saturate(155%);box-shadow:0 24px 65px #0008,inset 0 1px #ffffff20}
.maptools{position:fixed;z-index:8;top:96px;left:18px;display:grid}
.mapbadge{position:fixed;z-index:8;top:91px;left:50%;transform:translateX(-50%);bottom:auto}
.map-report{position:fixed;z-index:8;right:calc(350px + 34px);bottom:24px;border:1px solid #e4f2ff;border-radius:999px;padding:14px 28px;background:linear-gradient(135deg,#d8edff,#83bff4);color:#071a2b;font:800 13px Inter, sans-serif;box-shadow:0 12px 34px #5aaeff55;cursor:pointer}
.map-report:hover{transform:translateY(-2px);box-shadow:0 16px 40px #5aaeff66}
.sidehead h1{font-size:18px}.tabs{overflow-x:auto}.tabs button{white-space:nowrap}
.chat-compose{display:flex;gap:8px;margin-top:10px}.chat-compose input{min-width:0;flex:1;padding:12px;border:1px solid #8eb8dc35;border-radius:12px;background:#061426c9;color:#fff}
.chatmsg{padding:10px 12px;border:1px solid #a4c8e51c;border-radius:13px;background:#ffffff09;margin:7px 0}.chatmsg small{color:#91a8c1}
@media(max-width:760px){
 .top{top:max(7px,env(safe-area-inset-top));left:8px;right:8px;height:54px;padding:0 10px}
 main{height:100dvh;min-height:0}
 .side{left:10px;right:10px;bottom:72px;top:auto;width:auto;max-height:36dvh;border-radius:22px;padding:12px 13px}
 .map-report{right:16px;bottom:calc(80px + env(safe-area-inset-bottom));padding:13px 21px}
 .mapbadge{top:70px;font-size:8px}
 .maptools{top:72px;left:10px}
 .mobilebar{position:fixed;z-index:18;left:8px;right:8px;bottom:7px;height:58px;border:1px solid #ffffff24;border-radius:18px}
 .feed{max-height:115px}
}
