/* «Синоптик»: спокойный светлый фон, опасность — штриховкой, как штормовое предупреждение */
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 800;font-display:swap;src:url(/static/fonts/golos-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 800;font-display:swap;src:url(/static/fonts/golos-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
:root{color-scheme:light;
--bg:#E4E9EE;--card:#F2F4F6;--ink:#17202A;--ink2:#4C5A69;--ink3:#3E4B59;--line:#DCE2E8;--edge:#CBD3DB;--btn-edge:#9AA7B4;
--link:#245A8E;--link-h:#163F66;--focus:#2F6FB0;--btn:#17202A;--btn-ink:#FFFFFF;--chip:#E0E5EA;
--calm:#1B6E45;--calm-bg:#E2F1E9;--calm-row:#EEF6F1;--calm-ink:#155C39;--live:#2E9E63;--live-ring:#D5EEDF;
--danger:#B3261E;--danger-bg:#FCE3E1;--danger-row:#FDF0EF;--danger-ink:#9C1F18;--d1:#E8453C;--d2:#B8241C;
--att:#8A4B00;--a1:#F2A33A;--a2:#C26A00;
--stale-bg:#D9DEE4;--stale-dot:#7D8895;
--land:#DDE3E9;--land-line:#F2F4F6;--nb:#ECEFF2;--nb-line:#AEB8C3;--sea:#CCDAE6;--sea-ink:#5F7F9C;--label:#6A7684;--city:#17202A;--halo:#F2F4F6;
--crawl:#D6DDE4;--crawl-ink:#2B3846;--alarm:#C42A21;
--lim:#B35400;--lim-bg:#FFF1E0;--lim-ink:#8A4100;--ap:#3D5A80;--ap-off:#8A95A1;
--shadow:0 1px 0 var(--edge);--overlay:rgba(14,22,32,.5)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;
--bg:#0E1620;--card:#16212C;--ink:#E8EEF4;--ink2:#A5B3C2;--ink3:#C2CDD8;--line:#243241;--edge:#243241;--btn-edge:#4A5B6D;
--link:#8FB8E6;--link-h:#B9D4F2;--focus:#8FB8E6;--btn:#E8EEF4;--btn-ink:#0E1620;--chip:#1E2B38;
--calm:#5FD39A;--calm-bg:#173A2A;--calm-row:#14261E;--calm-ink:#6EDCA6;--live:#4CC489;--live-ring:#173A2A;
--danger:#FF8A80;--danger-bg:#3A1A19;--danger-row:#2A1C1F;--danger-ink:#FF9A90;--d1:#F2554B;--d2:#A82219;
--att:#FFB869;--a1:#E89A2E;--a2:#9C5600;
--stale-bg:#2F4053;--stale-dot:#7F93A8;
--land:#243241;--land-line:#121B25;--nb:#1B2631;--nb-line:#4A5B6D;--sea:#0A121A;--sea-ink:#58738F;--label:#93A4B6;--city:#E8EEF4;--halo:#121B25;
--crawl:#1B2733;--crawl-ink:#C2CDD8;--alarm:#A8231B;
--lim:#FFA24C;--lim-bg:#3A2614;--lim-ink:#FFB869;--ap:#9DB8D8;--ap-off:#6F8295;--overlay:rgba(0,0,0,.6)}}
:root[data-theme=dark]{color-scheme:dark;
--bg:#0E1620;--card:#16212C;--ink:#E8EEF4;--ink2:#A5B3C2;--ink3:#C2CDD8;--line:#243241;--edge:#243241;--btn-edge:#4A5B6D;
--link:#8FB8E6;--link-h:#B9D4F2;--focus:#8FB8E6;--btn:#E8EEF4;--btn-ink:#0E1620;--chip:#1E2B38;
--calm:#5FD39A;--calm-bg:#173A2A;--calm-row:#14261E;--calm-ink:#6EDCA6;--live:#4CC489;--live-ring:#173A2A;
--danger:#FF8A80;--danger-bg:#3A1A19;--danger-row:#2A1C1F;--danger-ink:#FF9A90;--d1:#F2554B;--d2:#A82219;
--att:#FFB869;--a1:#E89A2E;--a2:#9C5600;
--stale-bg:#2F4053;--stale-dot:#7F93A8;
--land:#243241;--land-line:#121B25;--nb:#1B2631;--nb-line:#4A5B6D;--sea:#0A121A;--sea-ink:#58738F;--label:#93A4B6;--city:#E8EEF4;--halo:#121B25;
--crawl:#1B2733;--crawl-ink:#C2CDD8;--alarm:#A8231B;
--lim:#FFA24C;--lim-bg:#3A2614;--lim-ink:#FFB869;--ap:#9DB8D8;--ap-off:#6F8295;--overlay:rgba(0,0,0,.6)}

*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 "Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums}
a{color:var(--link)}a:hover{color:var(--link-h)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3{margin:0;letter-spacing:-.01em}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
svg.i{flex:none;display:block}

/* знаки статуса: штриховка, точки, ровный */
.hatch{background:repeating-linear-gradient(45deg,var(--d1) 0 3px,var(--d2) 3px 5px)}
.hatch-a{background:repeating-linear-gradient(45deg,var(--a1) 0 3px,var(--a2) 3px 5px)}
.dots{background-color:var(--stale-bg);background-image:radial-gradient(var(--stale-dot) .9px,transparent 1.1px);background-size:5px 5px}
.plain{background:var(--land);box-shadow:inset 0 0 0 1px var(--edge)}
.sq{display:inline-block;flex:none;width:14px;height:14px;border-radius:4px}
.sq.big{width:36px;height:36px;border-radius:10px}
.st-danger .sq,.sq.st-danger{background:repeating-linear-gradient(45deg,var(--d1) 0 3px,var(--d2) 3px 5px)}
.st-attention .sq,.sq.st-attention{background:repeating-linear-gradient(45deg,var(--a1) 0 3px,var(--a2) 3px 5px)}
.st-stale .sq,.sq.st-stale{background-color:var(--stale-bg);background-image:radial-gradient(var(--stale-dot) .9px,transparent 1.1px);background-size:5px 5px}
.st-calm .sq,.sq.st-calm{background:var(--land);box-shadow:inset 0 0 0 1px var(--edge)}
.t-danger{color:var(--danger)}.t-attention{color:var(--att)}.t-stale{color:var(--ink2)}.t-calm{color:var(--calm-ink)}

/* шапка */
.top{background:var(--bg)}
.top-in{max-width:1376px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand b{font-weight:800;font-size:18px;letter-spacing:-.01em}
.logo{width:22px;height:22px;border-radius:50%;flex:none;box-shadow:0 0 0 3px var(--card),0 0 0 4px var(--edge)}
.icon-btn{width:44px;height:44px;border:0;background:transparent;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--ink);cursor:pointer;flex:none}
.icon-btn:hover{background:var(--chip)}
.top-nav,.top-search,.top-theme{display:none}

/* бегущая строка */
.crawl-bar{display:flex;align-items:center;min-height:36px;background:var(--crawl);color:var(--crawl-ink);font-size:14px;font-weight:500;overflow:hidden}
.crawl-bar .lbl{flex:none;display:flex;align-items:center;gap:8px;padding:0 8px 0 16px;font-weight:700;color:var(--ink)}
.crawl{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 88%,transparent)}
.crawl span{display:inline-block;white-space:nowrap;padding-left:8px;animation:crawl var(--dur,36s) linear infinite}
.crawl.still span{animation:none}
@keyframes crawl{to{transform:translateX(-50%)}}
.crawl-bar.alarm{background:var(--alarm);color:#fff;min-height:40px;font-weight:600}
.crawl-bar.alarm .lbl{color:#fff;font-weight:800;letter-spacing:.04em}
.blink{width:9px;height:9px;border-radius:50%;background:#fff;animation:blink 1.2s ease-in-out infinite}
@keyframes blink{50%{opacity:.25}}
#stale-banner{background:#FFE7B8;color:#3A2600;text-align:center;padding:6px 12px;font-size:14px}

/* раскладка */
main{max-width:1376px;margin:0 auto;padding:0 12px 8px}
.layout{display:flex;flex-direction:column;gap:0}
.card{background:var(--card);border-radius:20px;box-shadow:var(--shadow)}
.sec{margin-top:28px}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:0 4px 10px}
.sec-h h2,.h2{font-size:21px;font-weight:800}
.meta{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:6px;white-space:nowrap}
.live{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px var(--live-ring)}
.lead{color:var(--ink2);font-size:14px;margin:4px 4px 0}
.crumbs{padding:14px 4px 0;font-size:14px;color:var(--ink2);display:flex;gap:6px;flex-wrap:wrap}
.crumbs a{text-decoration:none}
.page-h1{margin:8px 4px 4px;font-size:28px;line-height:1.1;font-weight:800;letter-spacing:-.02em}

/* мой регион и статус региона */
.mine{margin-top:12px;overflow:hidden}
.mine-in{padding:16px;display:flex;flex-direction:column;gap:14px}
.band{height:10px;background:repeating-linear-gradient(45deg,var(--d1) 0 4px,var(--d2) 4px 7px)}
.band.att{background:repeating-linear-gradient(45deg,var(--a1) 0 4px,var(--a2) 4px 7px)}
.mine.is-danger{box-shadow:0 0 0 2px var(--alarm)}
.mine.is-attention{box-shadow:0 0 0 2px var(--a2)}
.mine-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.mine-head .k{font-size:13px;color:var(--ink2)}
.mine-head .v{font-size:18px;font-weight:700;display:block}
.link-btn{background:none;border:0;padding:10px 0 10px 12px;font-size:15px;font-weight:600;color:var(--link);cursor:pointer;text-decoration:none;white-space:nowrap}
.status{display:flex;align-items:center;gap:14px}
.status-ico{flex:none;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.status .big{display:block;font-size:30px;line-height:1.02;font-weight:800;letter-spacing:-.015em}
.status .sub{display:block;font-size:14px;color:var(--ink2);margin-top:4px}
.s-calm .status-ico{background:var(--calm-bg);color:var(--calm)}.s-calm .big{color:var(--calm)}
.s-danger .status-ico{background:var(--danger-bg);color:var(--danger)}.s-danger .big{color:var(--danger);font-size:28px}
.s-attention .status-ico{background:var(--lim-bg);color:var(--att)}.s-attention .big{color:var(--att);font-size:28px}
.s-stale .status-ico{background:var(--chip);color:var(--ink2)}.s-stale .big{color:var(--ink3);font-size:26px}
.s-none .status-ico{background:var(--chip);color:var(--ink2)}.s-none .big{font-size:24px}
.where{margin:0;font-size:15px;line-height:1.45}
.row-sep{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.row-sep label{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;cursor:pointer}
.row-sep small{display:block;font-size:13px;font-weight:400;color:var(--ink2)}
.btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.btn{min-height:48px;border-radius:14px;border:1.5px solid var(--btn);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;padding:0 14px;text-align:center}
.btn.solid{background:var(--btn);color:var(--btn-ink)}
.btn.solid:hover{color:var(--btn-ink);opacity:.92}
.btn.ghost{border-color:var(--btn-edge);min-height:44px;font-weight:600;font-size:15px}
.btn[aria-pressed=true]{background:var(--chip)}
.hint{margin:0;font-size:13px;color:var(--ink2)}
.sw{appearance:none;-webkit-appearance:none;width:50px;height:30px;border-radius:15px;background:#B9C4CF;position:relative;cursor:pointer;margin:0;flex:none;transition:background .2s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .2s}
.sw:checked{background:var(--link)}.sw:checked::after{transform:translateX(20px)}

/* карта */
.mapbox{position:relative;overflow:hidden;background:var(--sea);border-radius:20px;box-shadow:var(--shadow)}
.map{width:100%;aspect-ratio:366/337;touch-action:none;position:relative}
.map.region{aspect-ratio:366/307}
.map svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none}
.map-ctl{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}
.map-ctl button,.map-all{width:44px;height:44px;border-radius:12px;border:1px solid var(--edge);background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.map-all{position:absolute;left:10px;bottom:10px;width:auto;min-height:40px;height:auto;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 4px 0;font-size:13px;color:var(--ink3)}
.legend span{display:flex;align-items:center;gap:6px}
.ap-dot{width:16px;height:16px;border-radius:50%;flex:none;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--ap)}
.ap-dot.lim{background:var(--lim-bg);box-shadow:inset 0 0 0 1.5px var(--lim)}
.ap-dot.off{box-shadow:inset 0 0 0 1.5px var(--ap-off)}
.line-key{width:16px;height:2px;background:var(--land-line);box-shadow:0 0 0 1px var(--nb-line)}
/* слои SVG */
.map .rg{fill:var(--land);stroke:var(--land-line);stroke-width:.8;cursor:pointer}
.map .rg.danger{fill:url(#hd)}.map .rg.attention{fill:url(#ha)}.map .rg.stale{fill:url(#hs)}
.map .rg.mine{stroke:var(--ink);stroke-width:2;stroke-linejoin:round}
.map .ctx{fill:var(--nb);stroke:var(--nb-line);stroke-width:.8}
.map .own{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round;pointer-events:none}
.map .ds{fill:var(--land);stroke:var(--land-line);stroke-width:.8}
.map .ds.danger{fill:url(#hd)}.map .ds.attention{fill:url(#ha)}.map .ds.stale{fill:url(#hs)}
.map #nb path{fill:var(--nb);stroke:var(--nb-line);stroke-width:.9;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}
.map .p-d1{fill:var(--d1)}.map .p-d2{fill:var(--d2)}.map .p-a1{fill:var(--a1)}.map .p-a2{fill:var(--a2)}.map .p-sb{fill:var(--stale-bg)}.map .p-sd{fill:var(--stale-dot)}
.map text{font-family:"Golos Text",system-ui,sans-serif;paint-order:stroke;stroke:var(--halo);stroke-linejoin:round;pointer-events:none}
.map .nbl{fill:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-anchor:middle;opacity:.85}
.map #labels text{fill:var(--label);font-weight:600;letter-spacing:.05em;text-transform:uppercase;text-anchor:middle}
.map .ct circle{fill:var(--city);stroke:var(--halo)}
.map .ct text{fill:var(--city);font-weight:500}
.map .ct.r1 text{font-weight:700}
.map .ap circle{fill:var(--card);stroke:var(--ap)}.map .ap path{fill:var(--ap)}
.map .ap.limited circle,.map .ap.closed circle{fill:var(--lim-bg);stroke:var(--lim)}.map .ap.limited path,.map .ap.closed path{fill:var(--lim)}
.map .ap.unknown circle{stroke:var(--ap-off)}.map .ap.unknown path{fill:var(--ap-off)}
.map .ap .n{fill:var(--ap)}.map .ap.limited .n,.map .ap.closed .n{fill:var(--lim)}
.map .ap text{fill:var(--card);stroke:none;font-weight:700;text-anchor:middle}

/* списки */
.list{display:flex;flex-direction:column;overflow:hidden}
.arow{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:14px 16px;text-decoration:none;color:var(--ink)}
.arow+.arow,.arow+.srow,.srow+.srow{border-top:1px solid var(--line)}
.arow .sq{grid-row:span 3;align-self:start}
.arow .n{font-size:17px;font-weight:700}
.arow .tm{font-size:15px;font-weight:600}
.arow .k{grid-column:2/4;font-size:15px;font-weight:600}
.arow .src{grid-column:2/4;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2)}
.arow .src.off{color:var(--link)}
.srow{display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px 12px;align-items:center;padding:14px 16px;color:var(--ink3)}
.srow .sq{grid-row:span 2;align-self:start}
.srow b{font-size:15px;font-weight:600;color:var(--ink)}
.srow span{font-size:14px}
.empty{padding:16px;color:var(--ink2);margin:0}
.lrow{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:6px 16px;font-size:16px;color:var(--ink);text-decoration:none}
.lrow+.lrow,.grp+.lrow,.lrow+.grp,details .lrow{border-top:1px solid var(--line)}
.lrow .r{font-size:14px;font-weight:600;text-align:right}
.lrow .r.m{font-weight:400;color:var(--ink2);font-size:13px}
.lrow small{color:var(--ink2);font-weight:400}
.grp{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:700}
.grp.danger{background:var(--danger-row);color:var(--danger-ink)}
.grp.calm{background:var(--calm-row);color:var(--calm-ink)}
.grp.stale{background:var(--chip);color:var(--ink3)}
details.more summary{list-style:none;min-height:52px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--line);font-size:15px;font-weight:700;color:var(--link);cursor:pointer}
details.more summary::-webkit-details-marker{display:none}
details.more[open] summary{display:none}
.ap-card{padding:16px;display:flex;flex-direction:column;gap:4px}
.ap-card .h{display:flex;justify-content:space-between;align-items:baseline}
.ap-card h2{font-size:19px;font-weight:800}
.aprow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:8px 0}
.aprow .ic{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--ap);color:var(--ap)}
.aprow.lim .ic{background:var(--lim-bg);box-shadow:inset 0 0 0 1.5px var(--lim);color:var(--lim)}
.aprow.off .ic{box-shadow:inset 0 0 0 1.5px var(--ap-off);color:var(--ap-off)}
.aprow .n{font-size:16px;font-weight:600;color:var(--ink);text-decoration:none}
.aprow .r{font-size:14px;font-weight:600;color:var(--lim-ink)}
.aprow .sub{grid-column:2/4;font-size:14px;color:var(--ink2)}
.more-link{display:flex;align-items:center;justify-content:space-between;min-height:44px;border-top:1px solid var(--line);font-size:15px;font-weight:600;text-decoration:none;margin-top:4px}
.go{margin-top:16px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--ink)}
.go b{display:block;font-size:17px}.go span span{display:block;font-size:14px;color:var(--ink2)}
.go svg{color:var(--link)}
.tl{list-style:none;margin:0;padding:4px 16px}
.tl li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:2px 12px;padding:12px 0}
.tl li+li{border-top:1px solid var(--line)}
.tl .t{grid-row:span 2;font-size:16px;font-weight:700}
.tl .k{font-size:15px;font-weight:600}
.tl .s{font-size:14px;color:var(--ink3)}
.bars-card{padding:16px;display:flex;flex-direction:column;gap:12px}
.bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:132px}
.bars div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;font-size:13px;font-weight:600}
.bars i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:#9DB3C9;min-height:2px}
.bars div:last-child i{background:var(--link)}
.bars-x{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;font-size:12px;color:var(--ink2);text-align:center;margin-top:-6px}
.bars-x span:last-child{font-weight:700;color:var(--ink)}
.hours{display:flex;align-items:flex-end;gap:2px;height:56px}
.hours i{flex:1;background:#9DB3C9;border-radius:2px 2px 0 0;height:calc(var(--v) * 3px + 2px);max-height:56px}
.txt{margin:0;font-size:14px;color:var(--ink3);line-height:1.5}
.links{display:flex;flex-direction:column;gap:8px}
.links a{background:var(--card);border-radius:16px;box-shadow:var(--shadow);min-height:52px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;font-weight:600;color:var(--ink);text-decoration:none}
.links a svg{color:var(--link)}
.faq details{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:0 16px;margin-bottom:8px}
.faq summary{min-height:52px;display:flex;align-items:center;font-weight:600;cursor:pointer}
.faq p{margin:0 0 14px;color:var(--ink3)}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 4px}
.chips a{min-height:40px;padding:0 14px;display:flex;align-items:center;border-radius:12px;background:var(--card);box-shadow:var(--shadow);text-decoration:none;font-weight:600;color:var(--ink)}
.cols{columns:2 160px;column-gap:16px;padding:12px 16px;margin:0;list-style:none}
.cols li{break-inside:avoid;padding:4px 0;display:flex;align-items:center;gap:8px}
.cols a{color:var(--ink);text-decoration:none}
.cols a:hover{color:var(--link)}
table.tbl{width:100%;border-collapse:collapse;font-size:15px}
table.tbl th,table.tbl td{padding:12px 16px;text-align:left;border-top:1px solid var(--line);vertical-align:top}
table.tbl th{font-size:13px;color:var(--ink2);font-weight:600;border-top:0}
table.tbl small{color:var(--ink2)}
.prose{padding:20px 16px;line-height:1.6}
.prose h2{font-size:21px;font-weight:800;margin:1.4em 0 .5em}
.prose p,.prose ul,.prose ol{margin:0 0 1em}
.prose .lead{font-size:17px;color:var(--ink);margin:0 0 1em}
.prose .sources{font-size:14px;color:var(--ink3)}
.cta{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;border-radius:14px;background:var(--btn);color:var(--btn-ink);font-weight:700;text-decoration:none}
.cta:hover{color:var(--btn-ink)}

/* подвал */
.foot{max-width:1376px;margin:32px auto 0;padding:24px 16px 32px;border-top:1px solid var(--edge);display:flex;flex-direction:column;gap:18px}
.foot nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:15px;font-weight:600}
.foot nav a{min-height:40px;display:flex;align-items:center;text-decoration:none}
.foot p{margin:0;font-size:13px;line-height:1.5;color:var(--ink2)}
.foot .btn{align-self:flex-start}

/* окна: меню, поиск, сообщение об ошибке */
dialog{border:0;padding:0;color:var(--ink);background:var(--card);max-width:none;max-height:none}
dialog::backdrop{background:rgba(14,22,32,.5)}
.drawer{margin:0 0 0 auto;width:min(318px,88vw);height:100%;border-radius:24px 0 0 24px;flex-direction:column;padding:8px 0 20px}
.drawer[open]{display:flex}
.drawer .dh{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px 20px;font-size:20px;font-weight:800}
.drawer .nav a{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 20px;font-size:17px;font-weight:600;color:var(--ink);text-decoration:none}
.drawer .nav a svg{color:var(--link)}
.drawer .sep{height:1px;background:var(--line);margin:10px 20px}
.drawer .blk{padding:8px 20px;display:flex;flex-direction:column;gap:6px}
.drawer .blk .k{font-size:13px;color:var(--ink2)}
.drawer .grow{flex:1}
.drawer .foot-a{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 20px;font-size:16px;font-weight:600;color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer;text-align:left}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:3px;border-radius:14px;background:var(--chip)}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 6px;border-radius:11px;font-size:14px;font-weight:600;color:var(--ink3);cursor:pointer;text-align:center;line-height:1.15}
.seg input:checked+span{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(23,32,42,.18)}
.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:1px}
.full{margin:0;width:100%;height:100%;display:none;flex-direction:column}
.full[open]{display:flex}
.sbar{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid var(--line)}
.sfield{flex:1;display:flex;align-items:center;gap:8px;height:48px;padding:0 4px 0 14px;border-radius:14px;background:var(--bg);box-shadow:inset 0 0 0 2px var(--link)}
.sfield input{flex:1;min-width:0;border:0;background:transparent;font-size:17px;outline:none}
.sfield input::-webkit-search-cancel-button{display:none}
.sres{list-style:none;margin:0;padding:0;overflow:auto;flex:1}
.sres li+li{border-top:1px solid var(--line)}
.sres a,.sres button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:12px 16px;color:var(--ink);text-decoration:none;width:100%;background:none;border:0;text-align:left;cursor:pointer}
.sres .nm{font-size:17px;font-weight:500}.sres .nm b{font-weight:800}
.sres .st{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.sres .st .sq{width:12px;height:12px;border-radius:3px}
.sres .sub{grid-column:1/3;font-size:14px;color:var(--ink2)}
.snote{padding:14px 16px 6px;font-size:13px;color:var(--ink2);margin:0}
.sheet{margin:auto 0 0;width:100%;max-height:92vh;border-radius:24px 24px 0 0;padding:10px 16px 20px;overflow:auto}
.sheet form{display:flex;flex-direction:column;gap:14px}
.grab{align-self:center;width:40px;height:5px;border-radius:3px;background:var(--edge)}
.sheet h2{font-size:22px;font-weight:800}
.sheet fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sheet legend,.sheet .lab{padding:0;margin-bottom:6px;font-size:15px;font-weight:700}
.opt{position:relative}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-radius:14px;border:1.5px solid var(--edge);font-size:16px;cursor:pointer}
.opt span::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--ink2)}
.opt input:checked+span{border-color:var(--link);background:var(--chip);font-weight:600}
.opt input:checked+span::before{box-shadow:inset 0 0 0 6px var(--link)}
.opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.inp{width:100%;min-height:48px;padding:10px 14px;border-radius:14px;border:1.5px solid var(--edge);background:var(--card);font-size:16px;resize:none}
.form-msg{margin:0;font-size:15px;font-weight:600}

@media (prefers-reduced-motion:reduce){.crawl span,.blink{animation:none}.sw,.sw::after{transition:none}}

/* компьютер */
@media (min-width:1024px){
 .top{background:var(--card);border-bottom:1px solid var(--edge)}
 .top-in{padding:0 32px;min-height:68px;gap:20px}
 .brand{margin-right:8px}.brand b{font-size:20px}
 .top-nav{display:flex;gap:4px;margin-right:auto;font-size:15px;font-weight:600}
 .top-nav a{min-height:44px;padding:0 12px;display:flex;align-items:center;border-radius:10px;color:var(--ink);text-decoration:none}
 .top-nav a:hover{background:var(--chip)}
 .top-search{display:flex;align-items:center;gap:8px;width:300px;height:44px;padding:0 14px;border-radius:12px;background:var(--bg);border:0;color:var(--ink2);cursor:text;font-size:15px}
 .top-theme{display:flex;border:1px solid var(--edge)}
 .js-search-btn,.js-menu-btn{display:none}
 .crawl-bar .lbl{padding-left:max(32px,calc((100vw - 1376px)/2 + 32px))}
 main{padding:24px 32px 8px}
 .layout{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);grid-template-rows:repeat(12,auto) 1fr;column-gap:24px}
 .layout>*{grid-column:1}
 .layout>.wide{grid-column:2;grid-row:1/-1;align-self:start;position:sticky;top:16px;margin-top:0}
 .layout>:first-child{margin-top:0}
 .layout .sec{margin-top:24px}
 .wide .map{aspect-ratio:820/620}
 .wide .map.region{aspect-ratio:4/3}
 .sec-h h2.xl{font-size:26px}
 .page-h1{font-size:34px}
 .foot{flex-direction:row;align-items:center;gap:24px;padding:20px 32px 32px}
 .foot nav{display:flex;gap:16px}
 .foot p{flex:1}
 .full{margin:8vh auto auto;width:560px;height:auto;max-height:76vh;border-radius:20px}
 .sheet{margin:auto;width:520px;border-radius:24px}
}
.map #ds-all{stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round}
.map path{vector-effect:non-scaling-stroke}
.map .ct.has-ap circle{display:none}.map .ct.ap-hidden circle{display:inline}
.lrow:target{background:var(--chip)}

/* --- доработки после сравнения с конкурентом --- */
html.big body{zoom:1.15}
.online{display:flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:12px;background:var(--calm-bg);color:var(--calm);font-weight:700;font-size:14px;flex:none;cursor:default}
.online svg{flex:none}
.head-btns{display:flex;align-items:center;gap:2px}
.mini{display:flex;align-items:center;gap:10px;padding:8px 4px 8px 14px}
.mini-ico{flex:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--calm-bg);color:var(--calm)}
.mini.s-stale .mini-ico,.mini.s-none .mini-ico{background:var(--chip);color:var(--ink2)}
.mini-txt{flex:1;min-width:0;background:none;border:0;padding:6px 0;text-align:left;cursor:pointer;display:flex;flex-direction:column;color:var(--ink)}
.mini-txt b{font-size:16px;font-weight:700;line-height:1.25}
.mini-txt span{font-size:13px;color:var(--ink2);line-height:1.3}
.mini .t-ok{color:var(--calm-ink);font-weight:600}
.js-snd-mini[aria-pressed=true]{color:var(--link);background:var(--chip)}
.btns.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.btn.icon{width:48px;padding:0;border-color:var(--btn-edge)}
.sq.big{display:flex;align-items:center;justify-content:center;color:#fff}
.sq.big svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.chips.filt{padding:0 0 10px;gap:6px}
.chips.filt:empty{display:none}
.chips.filt button{min-height:40px;padding:0 12px;border-radius:12px;border:1px solid var(--edge);background:var(--card);font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;color:var(--ink);cursor:pointer}
.chips.filt button[aria-pressed=true]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.fx-key{flex:none;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--card);box-shadow:inset 0 0 0 1.6px var(--d2);color:var(--d1)}
.fx-row{display:flex;align-items:center;gap:10px}
details.fold>summary{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:12px;cursor:pointer;padding:0 4px 10px}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary .h2::after{content:"";display:inline-block;width:8px;height:8px;margin-left:10px;border-right:2.4px solid currentColor;border-bottom:2.4px solid currentColor;transform:translateY(-4px) rotate(45deg);transition:transform .2s}
details.fold[open]>summary .h2::after{transform:translateY(0) rotate(-135deg)}
.map-pop{position:absolute;left:10px;right:64px;bottom:10px;z-index:3;background:var(--card);border-radius:16px;box-shadow:0 6px 24px rgba(14,22,32,.24);padding:12px 12px 12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:start}
.map-pop b{font-size:16px}
.map-pop .s{grid-column:1/2;font-size:14px;font-weight:600}
.map-pop .w{grid-column:1/3;font-size:13px;color:var(--ink2)}
.map-pop a{grid-column:1/3;min-height:40px;margin-top:4px;border-radius:12px;background:var(--btn);color:var(--btn-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;text-decoration:none}
.map-pop .x{grid-row:1/3;grid-column:2;width:36px;height:36px;border:0;border-radius:10px;background:var(--chip);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.mapbox:has(.map-pop:not([hidden])) .map-all{display:none}
.mapbox.fs{position:fixed;inset:0;z-index:40;border-radius:0}
.mapbox.fs .map,.mapbox.fs .wide .map{aspect-ratio:auto;height:100%}
body.fs-on{overflow:hidden}
.map .kd circle{fill:var(--btn);stroke:var(--card);stroke-width:1.5}
.map .kd path,.map .kd circle.g{fill:none;stroke:var(--btn-ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.map .kd path.f{fill:var(--btn-ink);stroke:none}
.map .fx circle{fill:var(--card);stroke:var(--d2);stroke-width:1.6}
.map .fx path{fill:var(--d1)}
.map .fx .b{fill:var(--d2);stroke:none}
.map .fx text{fill:#fff;stroke:none;font-weight:700;text-anchor:middle}
.map .fx.fresh circle:nth-child(2){animation:fxp 1.6s ease-out infinite}
@keyframes fxp{0%{stroke-width:1.6}50%{stroke-width:5}100%{stroke-width:1.6}}
@media (prefers-reduced-motion:reduce){.map .fx.fresh circle:nth-child(2){animation:none}}
@media (max-width:420px){.online{padding:0 8px;height:32px;font-size:13px}}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:60;max-width:calc(100% - 32px);padding:12px 16px;border-radius:14px;background:var(--btn);color:var(--btn-ink);font-weight:600;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:opacity .2s,transform .2s}
#toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){#toast{transition:none}}
.btns.three .btn{padding:0 10px}
.brand b{white-space:nowrap}
@media (max-width:420px){html.big .brand b{display:none}html.big .online{padding:0 6px}}

/* --- ПВО и сбития --- */
:root{--pvo:#2563A8;--down:#B35400}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--pvo:#8FB8E6;--down:#FFA24C}}
:root[data-theme=dark]{--pvo:#8FB8E6;--down:#FFA24C}
.fx-key.k-pvo{box-shadow:inset 0 0 0 1.6px var(--pvo);color:var(--pvo)}
.fx-key.k-down{box-shadow:inset 0 0 0 1.6px var(--down);color:var(--down)}
.ev-w{font-weight:600}
.map .fx.pvo circle{stroke:var(--pvo)}.map .fx.pvo path{fill:none;stroke:var(--pvo);stroke-width:1.5}
.map .fx.down circle{stroke:var(--down)}.map .fx.down path{fill:var(--down)}

/* --- главная: карта на весь экран; список — панель поверх карты (компьютер) или шторка снизу (телефон) ---
   --ml / --mb — сколько карты слева / снизу закрыто списком: по ним сдвигаются кнопки и окна на карте */
.split,.side-grab,.side-tab{display:none}
body.appview{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body.appview main{flex:1;min-height:0;max-width:none;width:100%;padding:0;position:relative}
body.appview .foot{display:none}
.layout.app{position:absolute;inset:0;display:block}
.layout.app>.wide{position:absolute;inset:0;margin:0;align-self:auto}
.layout.app .mapbox{height:100%;border-radius:0;box-shadow:none}
.layout.app .map{aspect-ratio:auto;height:100%}
.map-top{position:absolute;z-index:3;top:10px;left:calc(var(--ml,0px) + 10px);right:64px;display:flex;align-items:center;gap:8px;pointer-events:none}
.map-top>*{pointer-events:auto}
.map-top .pill{display:flex;align-items:center;gap:8px;min-width:0;min-height:36px;padding:0 12px;border-radius:12px;background:var(--card);box-shadow:0 2px 10px rgba(14,22,32,.18)}
.map-top h2{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.map-top .meta{font-size:12px}
.side-tab{align-items:center;gap:6px;flex:none;height:36px;padding:0 10px;border:0;border-radius:12px;background:var(--card);box-shadow:0 2px 10px rgba(14,22,32,.18);color:var(--ink);font-weight:700;font-size:13px;cursor:pointer}
.side-tab .t-open svg{transform:rotate(180deg)}
.side-tab .t-shut{display:none;align-items:center;gap:6px}
.side-tab b{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--danger-bg);color:var(--danger);font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.layout.app .map-all{left:calc(var(--ml,0px) + 10px);bottom:calc(var(--mb,0px) + 10px)}
.layout.app .map-pop{left:calc(var(--ml,0px) + 10px);bottom:calc(var(--mb,0px) + 10px)}
.layout.app .shel-panel{left:calc(var(--ml,0px) + 10px)}
.legend-box{position:absolute;z-index:2;right:10px;bottom:calc(var(--mb,0px) + 10px)}
.legend-box summary{list-style:none;display:flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:12px;background:var(--card);box-shadow:0 2px 10px rgba(14,22,32,.18);font-size:13px;font-weight:600;cursor:pointer}
.legend-box summary::-webkit-details-marker{display:none}
.legend-box[open] summary{background:var(--btn);color:var(--btn-ink)}
.legend-box .legend{position:absolute;right:0;bottom:calc(100% + 6px);width:230px;flex-direction:column;flex-wrap:nowrap;gap:8px;padding:12px 14px;border-radius:14px;background:var(--card);box-shadow:0 6px 24px rgba(14,22,32,.24)}
.mapbox:has(.map-pop:not([hidden])) .legend-box,.mapbox:has(.shel-panel:not([hidden])) .legend-box{display:none}
.side-foot{display:flex;flex-direction:column;gap:12px;margin-top:20px;padding:16px 4px 4px;border-top:1px solid var(--edge)}
.side-foot p{margin:0;font-size:12px;line-height:1.5;color:var(--ink2)}
.side-foot .btn{align-self:flex-start}
@media (min-width:1024px){
 .layout.app{--ml:calc(var(--side-w,400px) + 12px)}
 .layout.app.shut{--ml:0px}
 .layout.app>.side{position:absolute;z-index:4;left:12px;top:12px;bottom:12px;width:var(--side-w,400px);overflow-y:auto;overscroll-behavior:contain;padding:10px 10px 16px;border-radius:18px;background:var(--bg);box-shadow:0 6px 28px rgba(14,22,32,.22);scrollbar-width:thin;scrollbar-color:var(--edge) transparent}
 .layout.app>.side>:first-child+*{margin-top:0}
 .layout.app>.split{position:absolute;z-index:4;left:calc(var(--side-w,400px) + 12px);top:12px;bottom:12px;width:12px;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none}
 .split span{width:4px;height:56px;border-radius:2px;background:var(--edge);transition:background .15s}
 .split:hover span,.split:focus-visible span,.split.drag span{background:var(--link)}
 .layout.app.shut>.side,.layout.app.shut>.split{display:none}
 .side-tab{display:flex}
 .layout.app.shut .side-tab .t-open{display:none}
 .layout.app.shut .side-tab .t-shut{display:flex}
 .layout.app .map-pop.ev{top:56px;bottom:auto;max-height:calc(100% - 66px)}
 .layout.app .shel-panel{top:56px;max-height:calc(100% - 66px)}
 body.split-drag{cursor:col-resize;user-select:none}
}
@media (max-width:1023px){
 .layout.app{--mb:var(--peek,150px)}
 .layout.app>.side{position:absolute;z-index:4;left:0;right:0;bottom:0;top:8px;padding:0 12px 24px;border-radius:20px 20px 0 0;background:var(--bg);box-shadow:0 -4px 24px rgba(14,22,32,.22);overflow:hidden;transform:translateY(calc(100% - var(--peek,150px)));transition:transform .28s cubic-bezier(.2,.8,.2,1)}
 .layout.app.open>.side{transform:none;overflow-y:auto;overscroll-behavior:contain}
 .side-grab{display:flex;position:sticky;top:0;z-index:1;width:calc(100% + 24px);height:26px;margin:0 -12px;padding:0;border:0;background:var(--bg);align-items:center;justify-content:center;cursor:grab;touch-action:none}
 .layout.app #mine{margin-top:0}
 .layout.app .shel-panel{bottom:calc(var(--mb,0px) + 10px)}
}
.layout.app:not(.ready)>.side{transition:none}
@media (prefers-reduced-motion:reduce){.layout.app>.side{transition:none}}

/* --- компьютер: плотнее и мельче --- */
@media (min-width:1024px){
 body{font-size:15px}
 .top-in{min-height:56px;padding:0 24px}
 .brand b{font-size:18px}
 .top-nav{font-size:14px}.top-nav a{min-height:38px;padding:0 10px}
 .top-search{height:38px;width:260px;font-size:14px}
 .top-theme{width:38px;height:38px}
 .online{height:32px;font-size:13px}
 .crawl-bar{min-height:32px;font-size:13px}.crawl-bar.alarm{min-height:34px}
 main{padding:16px 24px 8px}
 .card{border-radius:16px}
 .sec{margin-top:18px}.layout .sec{margin-top:16px}
 .sec-h{padding:0 2px 8px}.sec-h h2,.h2{font-size:17px}.sec-h h2.xl{font-size:19px}
 .mine-in{padding:12px;gap:10px}
 .mine-head .v{font-size:16px}.mine-head .k{font-size:12px}
 .status{gap:12px}.status-ico{width:38px;height:38px}.status-ico svg{width:21px;height:21px}
 .status .big{font-size:22px}.s-danger .big,.s-attention .big{font-size:21px}.s-stale .big{font-size:20px}.s-none .big{font-size:19px}
 .status .sub{font-size:13px}
 .where{font-size:14px}
 .btn{min-height:38px;font-size:14px;border-radius:12px}
 .btn.icon{width:40px}
 .row-sep{padding-top:10px}.row-sep label{font-size:14px}
 .sw{width:44px;height:26px}.sw::after{width:20px;height:20px}.sw:checked::after{transform:translateX(18px)}
 .icon-btn{width:38px;height:38px}
 .link-btn{font-size:14px;padding:8px 0 8px 10px}
 .mini{padding:6px 4px 6px 12px;gap:8px}.mini-ico{width:30px;height:30px}.mini-txt b{font-size:15px}.mini-txt span{font-size:12px}
 .arow{padding:10px 12px;grid-template-columns:28px minmax(0,1fr) auto;gap:2px 10px}
 .arow .n{font-size:15px}.arow .tm{font-size:13px}.arow .k{font-size:13px}.arow .src{font-size:12px}
 .sq.big{width:28px;height:28px;border-radius:8px}.sq.big svg{width:15px;height:15px}
 .srow{padding:10px 12px;grid-template-columns:28px minmax(0,1fr)}.srow b{font-size:14px}.srow span{font-size:13px}
 .chips.filt{padding-bottom:8px}.chips.filt button{min-height:30px;padding:0 9px;font-size:12px;border-radius:10px}.chips.filt svg{width:13px;height:13px}
 .lrow{min-height:38px;font-size:14px;padding:4px 12px}.lrow .r{font-size:13px}.lrow .r.m{font-size:12px}
 .grp{padding:8px 12px;font-size:13px}
 .ap-card{padding:12px}.ap-card h2{font-size:16px}.aprow{padding:6px 0}.aprow .ic{width:26px;height:26px}.aprow .n{font-size:14px}.aprow .r{font-size:12px}
 .more-link{min-height:38px;font-size:14px}
 .go{padding:12px}.go b{font-size:15px}.go span span{font-size:13px}
 .legend{font-size:12px;gap:6px 14px;padding-top:8px}
 .map-ctl{right:8px;top:8px;gap:5px}.map-ctl button,.map-all{width:36px;height:36px;border-radius:10px}.map-all{width:auto;min-height:34px;font-size:13px}
 .page-h1{font-size:28px}
 .tl li{padding:9px 0}.tl .t{font-size:14px}.tl .k{font-size:14px}.tl .s{font-size:13px}
 .links a{min-height:44px;font-size:14px}
 .faq summary{min-height:44px;font-size:15px}
 .cols{font-size:14px}
 .foot{font-size:13px}
 details.fold>summary{padding-bottom:8px}
}

/* окно события на карте */
.map-pop.ev{display:block;left:10px;right:10px;bottom:10px;top:auto;max-height:78%;overflow:auto;padding:12px 14px 14px}
.map-pop.ev .x{position:absolute;top:10px;right:10px}
.ev-h{display:flex;align-items:center;gap:8px;padding-right:44px;min-height:36px}
.ev-h b{font-size:16px}
.chip{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:8px;background:var(--chip);color:var(--ink2)}
.chip.on{background:var(--danger-bg);color:var(--danger)}
.ev-d{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:10px 0;font-size:14px}
.ev-d dt{color:var(--ink2)}.ev-d dd{margin:0;font-weight:600}.ev-d small{font-weight:400;color:var(--ink2)}
.ev-t{display:inline-flex;align-items:center;gap:6px;margin:0 10px 4px 0}
.ev-l .k{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);margin:4px 0 6px}
.ev-m{border:1px solid var(--line);border-radius:12px;margin-bottom:6px}
.ev-m summary{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;font-size:14px;font-weight:600;list-style:none}
.ev-m summary::-webkit-details-marker{display:none}
.ev-m .tm{color:var(--ink2);font-weight:600;min-width:42px}
.ev-m p{margin:0 10px 8px;font-size:13px;color:var(--ink3);line-height:1.45}
.ev-m .src{color:var(--ink2);font-size:12px}
.map-pop.ev a{display:flex;margin-top:10px}
.map .fx{cursor:pointer}
@media (min-width:1024px){.map-pop.ev{right:auto;width:380px;top:10px;bottom:auto;max-height:calc(100% - 20px)}}

/* укрытия */
.top-shel{display:none}
.drawer .nav button{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 20px;font-size:17px;font-weight:600;color:var(--ink);background:none;border:0;width:100%;cursor:pointer;text-align:left}
.drawer .nav button svg{color:var(--link)}
.js-shelters[aria-pressed=true]{background:var(--calm-bg);color:var(--calm)}
.map-ctl .js-shelters[aria-pressed=true]{border-color:var(--calm)}
.mapbox.shel #kinds,.mapbox.shel #fx,.mapbox.shel #air{display:none}
.mapbox.shel .rg,.mapbox.shel .ds{fill-opacity:.35}
.map .sh{cursor:pointer}
.map .sh circle{stroke:#fff;stroke-width:1.6}
.map .sh text{fill:#fff;stroke:none;font-weight:800;text-anchor:middle;pointer-events:none}
.map .sh.metro circle{fill:#C62A21}.map .sh.parking circle{fill:#2563A8}.map .sh.underpass circle{fill:#6A4FB3}
.map .sh.cl circle{fill:#1B6E45;stroke-width:2.4}
.shel-panel{position:absolute;left:10px;top:10px;right:64px;z-index:3;background:var(--card);border-radius:16px;box-shadow:0 6px 24px rgba(14,22,32,.24);padding:12px 14px;display:flex;flex-direction:column;gap:8px;max-height:calc(100% - 20px);overflow:auto}
.sp-h{display:flex;justify-content:space-between;align-items:center}
.sp-h b{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--calm)}
.sp-h .x{width:34px;height:34px;border:0;border-radius:10px;background:var(--chip);color:var(--ink);cursor:pointer}
.sp-n{margin:0;font-size:13px;color:var(--ink3)}
.sp-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.sp-l:empty{display:none}
.sp-l button{width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;color:var(--ink)}
.sp-l b{font-size:14px}.sp-l span{font-size:12px;color:var(--ink2)}
.sp-k{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--ink3)}
.sp-k span{display:flex;align-items:center;gap:6px}
.shk{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-style:normal;font-weight:800;font-size:10px}
.shk.metro{background:#C62A21}.shk.parking{background:#2563A8}.shk.underpass{background:#6A4FB3}
.sp-d{margin:0;font-size:11px;line-height:1.45;color:var(--ink2)}
.mapbox:has(.shel-panel:not([hidden])) .map-all{display:none}
@media (min-width:1024px){
 .top-shel{display:flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--edge);background:var(--card);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer}
 .shel-panel{right:auto;width:300px}
}
@media (max-width:1023px){.shel-panel{top:auto;bottom:10px;max-height:55%}}
@media (max-width:1023px){.mapbox.shel .map{aspect-ratio:3/4}}
.map .fx circle.hit{fill:transparent;stroke:none}
.map .kd,.map .ap,.map .ct{cursor:pointer}
.map .ct circle{stroke-width:1.5}
.sp-b{display:flex;gap:6px}
.sp-h .mn{width:34px;height:34px;border:0;border-radius:10px;background:var(--chip);color:var(--ink);cursor:pointer;font-size:18px;font-weight:700;line-height:1}
.shel-panel.min>:not(.sp-h){display:none}
.shel-panel.min{width:auto;right:auto;padding:8px 10px}
.shel-panel.min .sp-h{gap:12px}
.shel-panel.min .js-shel-min{transform:rotate(180deg)}
.map-pop.ev .sh-btn{position:absolute;top:10px;right:52px;width:36px;height:36px;border:0;border-radius:10px;background:var(--chip);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.map-pop.ev .ev-h{padding-right:96px}
/* моря и океаны */
.map .nbl.sea{fill:var(--sea-ink);font-style:italic;font-weight:500;letter-spacing:.04em;text-transform:none;stroke:var(--sea);opacity:1}
/* свечение по контуру России: три мягкие обводки под регионами, видна только внешняя половина */
:root{--glow:#2F6FB0}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--glow:#7DB8FF}}
:root[data-theme=dark]{--glow:#7DB8FF}
.map .glow{pointer-events:none}
.map .glow-line{fill:none;stroke:#000;stroke-width:5px;stroke-linejoin:round;stroke-linecap:round}
.map .gf{flood-color:var(--glow);flood-opacity:.55}
:root[data-theme=light] .map .gf{flood-opacity:.4}
@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .map .gf{flood-opacity:.4}}
/* подписи посёлков нажимаются, как и точки */
.map .ct text{pointer-events:auto;cursor:pointer}
/* страница региона в боковой панели */
.layout.app .crumbs{padding:6px 2px 0}
.layout.app .page-h1{font-size:22px;margin:6px 2px 2px}
.layout.app .lead{margin:0 2px 12px;font-size:13px}
.layout.app #rstatus{margin-top:0}
.map-top .pill .sq{width:12px;height:12px;border-radius:3px}
.map .under{fill:var(--land);stroke:none;pointer-events:none}
/* заливка по уровню: красная штриховка — тревога и ракеты, оранжевая — опасность; полупрозрачная поверх суши */
:root{--hatch-o:.5}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--hatch-o:.55}}
:root[data-theme=dark]{--hatch-o:.55}
.map .p-base{fill:var(--land)}
.map :is(#hd,#ha) rect:not(.p-base){fill-opacity:var(--hatch-o)}
.map :is(.rg,.ds).danger.lv-warn{fill:url(#ha)}
.sq.lv-warn,.st-danger.lv-warn .sq{background:repeating-linear-gradient(45deg,var(--a1) 0 3px,var(--a2) 3px 5px)}
/* карточка «Мой регион»: компактнее, сворачивается в строку */
.mini.s-danger .mini-ico{background:var(--danger-bg);color:var(--danger)}
.mini.s-attention .mini-ico{background:var(--lim-bg);color:var(--att)}
.js-mine-min svg{transform:rotate(-90deg)}
.head-btns .js-mine-min{width:34px;height:34px;color:var(--ink2)}
#mine .mine-in{padding:12px 12px 12px 14px;gap:10px}
#mine .status{gap:12px}
#mine .status-ico{width:36px;height:36px}
#mine .status-ico svg{width:20px;height:20px}
#mine.s-none .big{font-size:18px}
#mine .status .sub{font-size:13px}
#mine .row-sep{padding-top:10px}
#mine .row-sep label{font-size:14px}
#mine .row-sep small{font-size:12px}
/* значок на регионе — «!» в кружке: красный — тревога (угроза удара, ракеты), оранжевый — опасность */
:root{--ku:#E5483E;--ka:#E08A12}
.map .kd circle,.mark circle{fill:var(--ka);stroke:#fff;stroke-width:1.6}
.map .kd.lv-alarm circle,.mark.lv-alarm circle{fill:var(--ku)}
.map .kd g *,.mark g *{fill:#fff;stroke:none}
.arow .sq.big{border-radius:50%;background:var(--ka)}
.arow.lv-alarm .sq.big{background:var(--ku)}
.arow:not(.lv-alarm) .k.t-danger{color:var(--att)}  /* подпись опасности — оранжевая, как значок */
/* карточка статуса при опасности без тревоги — оранжевая */
.mine.lv-warn{box-shadow:0 0 0 2px var(--a2)}
.s-danger.lv-warn .status-ico,.mini.s-danger.lv-warn .mini-ico{background:var(--lim-bg);color:var(--att)}
.s-danger.lv-warn .big{color:var(--att)}
.lv-warn .grp.danger{background:var(--lim-bg);color:var(--lim-ink)}
.lv-warn .grp.danger .sq{background:repeating-linear-gradient(45deg,var(--a1) 0 3px,var(--a2) 3px 5px)}
.lv-warn .lrow .t-danger{color:var(--att)}
