:root{--fpv:#AD1457;--artillery:#6D4C41;--airport:#1E88E5;--bg:#0B0D10;--card:#14181D;--line:#262C33;--text:#ECEFF3;--muted:#8A94A0;--accent:#FF9500;--rocket:#FF6D00;--aviation:#8E24AA;--uav:#E53935;--calm:#30D158}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}
.brand{display:inline-flex;gap:8px;align-items:center;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:.2px}
.btn{display:inline-block;padding:10px 16px;border-radius:12px;border:1px solid var(--line);color:var(--text);text-decoration:none;font-weight:600;background:var(--card)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#111}
.ghost{background:none;border:0;color:var(--muted);font-size:18px;cursor:pointer}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--calm);box-shadow:0 0 0 0 currentColor}
.t-rocket .dot,.dot.t-rocket{background:var(--rocket)}.t-aviation .dot,.dot.t-aviation{background:var(--aviation)}.t-uav .dot,.dot.t-uav{background:var(--uav)}
.alert{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:600;margin:12px 0}
.alert.t-rocket{border-color:var(--rocket)}.alert.t-uav{border-color:var(--uav)}.alert.t-aviation{border-color:var(--aviation)}
.page{display:flex;justify-content:center;padding:24px 16px}.card{max-width:560px;width:100%}
.card h1{font-size:24px;line-height:1.2;margin:18px 0 4px}.stores{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.src,.zones{padding-left:18px;word-break:break-all}.prose p{color:#C9D0D8}
.mapbody{height:100dvh;overflow:hidden}#map{position:fixed;inset:0}
.bar{position:fixed;top:12px;left:12px;right:12px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:rgba(20,24,29,.86);backdrop-filter:blur(12px);border:1px solid var(--line);z-index:2}
.summary{display:flex;gap:8px;align-items:center;font-weight:600}
.panel{position:fixed;right:12px;top:76px;bottom:12px;width:340px;display:flex;flex-direction:column;border-radius:14px;background:rgba(20,24,29,.92);backdrop-filter:blur(12px);border:1px solid var(--line);z-index:2}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 4px}.panel-head h2{font-size:16px;margin:0}
.list{flex:1;overflow:auto;padding:4px 8px}.panel-foot{padding:12px 14px;border-top:1px solid var(--line)}
.item{padding:10px 8px;border-radius:10px;cursor:pointer}.item:hover{background:#1B2026}
.item .h{display:flex;gap:8px;align-items:center;font-weight:600}.item .s{color:var(--muted);font-size:13px;margin-left:18px}
.empty{padding:18px 10px;color:var(--muted)}
.legend{position:fixed;left:12px;bottom:12px;display:flex;gap:12px;padding:8px 12px;border-radius:12px;background:rgba(20,24,29,.86);border:1px solid var(--line);font-size:12px;z-index:2}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.sw.t-rocket{background:var(--rocket)}.sw.t-aviation{background:var(--aviation)}.sw.t-uav{background:var(--uav)}
.about{display:none}.about:target{display:block;position:fixed;inset:0;z-index:10;overflow:auto;background:var(--bg);padding:24px 16px}
.about .card{margin:0 auto;position:relative}.about h1{font-size:24px;line-height:1.2;margin:18px 32px 8px 0}.about h3{font-size:16px;margin:16px 0 4px}
.about-close{position:absolute;top:0;right:0;font-size:20px;color:var(--muted);text-decoration:none;padding:4px 8px}
.about-link{margin-left:auto;color:var(--muted)}.h2{font-size:18px;margin:24px 0 8px}
.regions{columns:2;column-gap:24px;padding-left:18px;margin:0 0 16px}.regions li{break-inside:avoid;margin:2px 0}
@media (max-width:480px){.regions{columns:1}}
.maplibregl-popup .maplibregl-popup-content{padding:12px 14px;font-size:14px;line-height:1.5;background:var(--card);color:var(--text);border-radius:12px;border:1px solid var(--line)}
.maplibregl-popup .maplibregl-popup-tip{display:none}.maplibregl-popup-close-button{color:var(--muted);font-size:18px;right:4px}
@media (max-width:720px){.panel{left:12px;right:12px;width:auto;top:auto;height:42dvh}.panel.collapsed{height:52px}.legend{bottom:calc(42dvh + 20px)}#updated{display:none}}
.brand .logo{border-radius:7px}

.sw.t-fpv{background:var(--fpv)}.sw.t-artillery{background:var(--artillery)}.sw.t-airport{background:var(--airport)}
.panel-head{gap:10px}.panel-head h2{display:flex;gap:8px;align-items:center}
.count{font:600 12px/1 ui-monospace,Menlo,monospace;padding:3px 8px;border-radius:999px;background:#1F2A2A;color:#7FD1B9}
.tools{display:grid;gap:8px;padding:6px 12px 8px}
#search{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:#0F1215;color:var(--text);font:inherit}
#search:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{font:600 12px/1 inherit;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#111}
.list{display:grid;gap:4px;align-content:start}
.row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:22px minmax(0,1fr) auto 42px;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;cursor:pointer}
.row:hover{background:#1B2026}.row:focus-visible{outline:2px solid var(--accent)}
.row .place{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .tm{font:12px ui-monospace,Menlo,monospace;color:var(--muted);text-align:right}
.pill{font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;background:#3A2A14;color:#FFB04A}
.pill.p-shelter,.pill.p-alarm{background:#4A1A1D;color:#FF7A70}
.pill.p-danger{background:#3A2414;color:#FF9F4A}
.pill.p-signal,.pill.p-warning{background:#3A3314;color:#E8C547}
.pill.p-air,.pill.p-restriction{background:#1E2836;color:#8FB4E8}
.pill.p-clear{background:#14301F;color:#4ED17F}
.pop{display:grid;gap:8px}.pop-h{display:flex;gap:10px;align-items:center}.pop-b{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pop .muted{color:var(--muted);font-size:13px}
.legend{flex-wrap:wrap;max-width:calc(100% - 24px)}
.t-kab .dot,.dot.t-kab{background:var(--aviation)}.t-fpv .dot,.dot.t-fpv{background:var(--fpv)}.t-artillery .dot,.dot.t-artillery{background:var(--artillery)}
@media (prefers-reduced-motion:no-preference){
  .maplibregl-popup .maplibregl-popup-content{animation:pop-in .26s cubic-bezier(.2,.8,.2,1)}
  @keyframes pop-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
}
/* Кнопки карты не прячем под журналом; на телефоне — над шторкой журнала. */
@media (min-width:721px){#map .maplibregl-ctrl-bottom-right{right:364px}}
@media (max-width:720px){#map .maplibregl-ctrl-bottom-right{bottom:calc(42dvh + 20px)}}
/* Карточка точки: статус и сообщения */
.state{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.state.s-on{background:#4A1A1D;color:#FF8A80}.state.s-fade{background:#2A2F36;color:#A9B1BA}
.msgs{display:grid;gap:6px;max-height:300px;overflow:auto;margin-top:2px}
.msgs-h{display:flex;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.msg{border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:rgba(255,255,255,.03)}
.msg summary{display:flex;gap:8px;align-items:center;cursor:pointer;list-style:none}.msg summary::-webkit-details-marker{display:none}
.msg summary .tm{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted)}
.msg-t{margin:8px 0 4px;padding:8px 10px;border-radius:8px;background:#0F1215;font-size:13px;line-height:1.45;white-space:normal}
.towards{margin:2px 0 4px;padding:6px 10px;border-radius:8px;background:#10302A;color:#7FE0C4;font-size:12.5px}
