*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#06040f;--bg2:#0c0820;--panel:rgba(14,10,32,.88);--panel2:rgba(20,14,42,.95);
  --card:rgba(18,12,40,.75);--glass:rgba(12,8,28,.72);
  --border:rgba(180,120,255,.14);--border2:rgba(0,240,255,.22);
  --text:#f4f0ff;--dim:#9d94b8;--dim2:#c4b8e8;
  --neon-green:#39ff14;--neon-cyan:#00f0ff;--neon-pink:#ff006e;
  --neon-orange:#ff7a00;--neon-amber:#ff9500;--neon-yellow:#ffe600;--neon-red:#ff0055;
  --neon-purple:#bf00ff;--neon-blue:#4d9fff;--grey:#7a7f9a;
  --green:var(--neon-green);--orange:var(--neon-orange);--yellow:var(--neon-yellow);
  --red:var(--neon-red);--blue:var(--neon-cyan);
  --green-dim:rgba(57,255,20,.12);--green-bg:rgba(57,255,20,.1);
  --orange-bg:rgba(255,122,0,.12);--yellow-bg:rgba(255,230,0,.12);--red-bg:rgba(255,0,85,.12);
  --map-bg:#04020c;
  --glow-green:0 0 12px rgba(57,255,20,.55),0 0 28px rgba(57,255,20,.2);
  --glow-cyan:0 0 12px rgba(0,240,255,.5),0 0 28px rgba(0,240,255,.18);
  --glow-orange:0 0 12px rgba(255,122,0,.5),0 0 28px rgba(255,122,0,.18);
  --glow-amber:0 0 12px rgba(255,149,0,.5),0 0 28px rgba(255,149,0,.18);
  --glow-yellow:0 0 12px rgba(255,230,0,.45),0 0 28px rgba(255,230,0,.15);
  --glow-red:0 0 12px rgba(255,0,85,.5),0 0 28px rgba(255,0,85,.18);
  --glow-purple:0 0 14px rgba(191,0,255,.45),0 0 32px rgba(191,0,255,.15);
  --shadow:0 12px 40px rgba(0,0,0,.55);
  --safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);
  --sheet-radius:24px;--nearby-h:220px;--radius:16px;
  --status-yes:#39ff14;--status-queue:#ff7a00;--status-amber:#ff9500;
  --status-low:#ffe600;--status-no:#ff0055;--status-unknown:#7a7f9a;
  --accent-cyan:#00f0ff;--accent-purple:#bf00ff;
}
html,body{
  height:100%;background:var(--bg);color:var(--text);
  font-family:"Outfit",system-ui,-apple-system,sans-serif;
  font-size:15px;overflow:hidden;-webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  color-scheme:dark
}
button,input{font:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
#app{display:flex;flex-direction:column;height:100%;background:linear-gradient(180deg,#06040f 0%,#0a0520 100%)}

/* ── Шапка ── */
.app-header{
  flex-shrink:0;z-index:1000;position:relative;
  padding:calc(10px + var(--safe-top)) 16px 12px;
  background:linear-gradient(180deg,rgba(10,6,24,.96) 0%,rgba(10,6,24,.82) 100%);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 24px rgba(191,0,255,.08)
}
.app-header::after{
  content:'';position:absolute;left:16px;right:16px;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--neon-cyan),var(--neon-purple),transparent);
  opacity:.45
}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.brand-wrap{min-width:0}
.brand{
  font-size:21px;font-weight:800;letter-spacing:-.03em;white-space:nowrap;
  display:inline-flex;align-items:baseline;gap:0;line-height:1;margin:0
}
.brand-tagline{
  margin-top:3px;font-size:11px;font-weight:700;line-height:1;color:var(--dim2);letter-spacing:.02em
}
.brand-azs{
  color:#fff;
  text-shadow:0 0 16px rgba(255,122,0,.5)
}
.brand-status{
  background:linear-gradient(135deg,#ff7a00 0%,#ffe600 48%,#39ff14 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 8px rgba(57,255,20,.4))
}
.header-actions{display:flex;gap:8px;align-items:center}
.btn-pill{
  padding:10px 14px;border-radius:999px;border:1px solid var(--border);
  background:var(--glass);color:var(--dim2);font-weight:700;font-size:13px;
  white-space:nowrap;transition:transform .15s,box-shadow .15s,border-color .15s
}
.btn-pill:active{transform:scale(.96)}
.btn-pill.btn-icon{padding:10px 11px;color:var(--neon-cyan);border-color:rgba(0,240,255,.25)}
.btn-pill.btn-icon:hover,.btn-pill.btn-icon:focus-visible{box-shadow:var(--glow-cyan)}
.btn-pill.primary{
  display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,rgba(57,255,20,.18),rgba(0,240,255,.12));
  border-color:rgba(57,255,20,.45);color:var(--neon-green);
  box-shadow:var(--glow-green)
}
#theme-btn .theme-icon-sun{display:none}
#theme-btn .theme-icon-moon{display:block}
#theme-btn.is-light{color:var(--neon-yellow);border-color:rgba(255,230,0,.4);box-shadow:var(--glow-yellow)}
#theme-btn.is-light .theme-icon-moon{display:none}
#theme-btn.is-light .theme-icon-sun{display:block}

#search-open-btn{color:var(--neon-cyan);border-color:rgba(0,240,255,.28)}
#search-open-btn:hover,#search-open-btn:focus-visible{box-shadow:var(--glow-cyan)}
#search-open-btn[aria-expanded="true"]{
  color:#06040f;background:rgba(0,240,255,.88);border-color:var(--neon-cyan);box-shadow:var(--glow-cyan)
}

.search-wrap{position:relative;display:flex;align-items:center;margin-bottom:12px}
.search-wrap[hidden]{display:none!important}
.search-icon{position:absolute;left:14px;color:var(--neon-cyan);pointer-events:none;z-index:1;filter:drop-shadow(0 0 4px rgba(0,240,255,.6))}
#search{
  width:100%;padding:13px 44px 13px 42px;border-radius:var(--radius);
  border:1px solid rgba(0,240,255,.18);background:rgba(8,4,20,.65);color:var(--text);font-size:15px;
  transition:border-color .2s,box-shadow .2s
}
.search-close-btn{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2;
  width:32px;height:32px;border:none;border-radius:999px;background:transparent;
  color:var(--dim2);font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center
}
.search-close-btn:hover,.search-close-btn:focus-visible{
  color:var(--text);background:rgba(255,255,255,.08);outline:none;box-shadow:0 0 0 2px rgba(0,240,255,.18)
}
#search::placeholder{color:var(--dim)}
#search:focus{
  outline:none;border-color:rgba(0,240,255,.55);
  box-shadow:0 0 0 3px rgba(0,240,255,.12),var(--glow-cyan)
}
.search-results{
  position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--panel2);
  border:1px solid var(--border2);border-radius:var(--radius);max-height:240px;overflow:auto;
  z-index:2000;display:none;box-shadow:var(--shadow),var(--glow-purple)
}
.search-results.open{display:block}
.search-results button{
  display:block;width:100%;text-align:left;padding:14px 16px;background:none;border:none;
  color:var(--text);border-bottom:1px solid rgba(255,255,255,.06);font-size:14px
}
.search-results button:last-child{border-bottom:none}
.search-results button:active{background:rgba(0,240,255,.08)}

/* Фильтры — неон */
.filter-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.filter-row::-webkit-scrollbar{display:none}
.chip{
  flex-shrink:0;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;
  border:1.5px solid transparent;letter-spacing:.02em;
  transition:transform .12s,box-shadow .15s,opacity .15s
}
.chip:active{transform:scale(.95)}
.chip.yes{color:var(--neon-green);background:rgba(57,255,20,.08);border-color:rgba(57,255,20,.4);text-shadow:0 0 8px rgba(57,255,20,.4)}
.chip.queue{color:var(--neon-orange);background:rgba(255,122,0,.08);border-color:rgba(255,122,0,.4);text-shadow:0 0 8px rgba(255,122,0,.35)}
.chip.queue_limited{color:var(--neon-amber);background:rgba(255,149,0,.08);border-color:rgba(255,149,0,.4);text-shadow:0 0 8px rgba(255,149,0,.35)}
.chip.low{color:var(--neon-yellow);background:rgba(255,230,0,.08);border-color:rgba(255,230,0,.4);text-shadow:0 0 8px rgba(255,230,0,.35)}
.chip.no{color:var(--neon-red);background:rgba(255,0,85,.08);border-color:rgba(255,0,85,.4);text-shadow:0 0 8px rgba(255,0,85,.35);margin-left:auto}
.chip.active{opacity:1}
.chip.yes.active{background:rgba(57,255,20,.22);color:var(--neon-green);border-color:var(--neon-green);box-shadow:var(--glow-green)}
.chip.queue.active{background:rgba(255,122,0,.22);color:#fff;border-color:var(--neon-orange);box-shadow:var(--glow-orange)}
.chip.queue_limited.active{background:rgba(255,149,0,.22);color:#fff;border-color:var(--neon-amber);box-shadow:var(--glow-amber)}
.chip.low.active{background:rgba(255,170,0,.78);color:#fff;border-color:var(--neon-yellow);box-shadow:var(--glow-yellow)}
.chip.no.active{background:rgba(255,0,85,.22);color:#fff;border-color:var(--neon-red);box-shadow:var(--glow-red)}
.chip:not(.active){opacity:.5}

/* ── Карта ── */
.map-area{flex:1;min-height:0;position:relative}
#map{position:absolute;inset:0;background:var(--map-bg)}
#map.map-theme-light{background:#c8d4e8}

/* ── Список снизу ── */
.nearby-panel{
  flex-shrink:0;height:var(--nearby-h);background:linear-gradient(0deg,rgba(6,4,15,.98),rgba(10,6,24,.92));
  border-top:1px solid rgba(191,0,255,.2);display:flex;flex-direction:column;
  padding-bottom:var(--safe-bottom);transition:height .28s ease,opacity .22s ease,border-color .22s ease;
  z-index:500;
  box-shadow:0 -8px 32px rgba(191,0,255,.1)
}
.nearby-panel.expanded{height:min(52vh,420px)}
.nearby-panel-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  padding:14px 16px 10px;flex-shrink:0
}
.nearby-panel-titles{min-width:0}
.nearby-panel-head h2{font-size:17px;font-weight:800;line-height:1.25;letter-spacing:-.02em;color:var(--text)}
.nearby-subtitle{font-size:12px;color:var(--neon-cyan);margin-top:3px;font-weight:600;text-shadow:0 0 10px rgba(0,240,255,.35)}
.link-btn{
  background:none;border:none;color:var(--neon-green);font-weight:800;font-size:13px;
  padding:6px 0;text-shadow:0 0 10px rgba(57,255,20,.4)
}
.nearby-cards{flex:1;overflow-y:auto;padding:0 14px 10px;-webkit-overflow-scrolling:touch}
.station-card{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:13px 14px;border-radius:18px;
  background:linear-gradient(135deg,rgba(20,12,45,.8),rgba(12,8,28,.9));
  border:1px solid rgba(180,120,255,.15);margin-bottom:10px;color:var(--text);
  transition:transform .12s,border-color .15s,box-shadow .15s
}
.station-card:active{transform:scale(.98)}
.station-card.selected{
  border-color:rgba(0,240,255,.7);
  background:linear-gradient(135deg,rgba(0,240,255,.12),rgba(20,12,45,.92));
  box-shadow:var(--glow-cyan),inset 0 0 0 1px rgba(0,240,255,.18);
}
.station-card.selected .station-card-chevron{color:var(--neon-cyan);opacity:1;filter:drop-shadow(0 0 6px rgba(0,240,255,.7))}
.station-card.selected .station-card-name{color:var(--text);text-shadow:0 0 10px rgba(0,240,255,.25)}
.station-card-logo{
  width:46px;height:46px;border-radius:14px;flex-shrink:0;
  border:1.5px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;overflow:hidden
}
.station-card-logo.has-brand{background:#fff;padding:5px}
.station-card-logo.has-brand.yes{border-color:rgba(57,255,20,.6);box-shadow:var(--glow-green)}
.station-card-logo.has-brand.queue{border-color:rgba(255,122,0,.6);box-shadow:var(--glow-orange)}
.station-card-logo.has-brand.queue_limited{border-color:rgba(255,149,0,.6);box-shadow:var(--glow-amber)}
.station-card-logo.has-brand.low{border-color:rgba(255,230,0,.6);box-shadow:var(--glow-yellow)}
.station-card-logo.has-brand.no{border-color:rgba(255,0,85,.6);box-shadow:var(--glow-red)}
.station-card-logo.has-brand.unknown{border-color:rgba(122,127,154,.5)}
.brand-icon{width:100%;height:100%;object-fit:contain;display:block}
.station-card-logo.yes:not(.has-brand){background:rgba(57,255,20,.12);color:var(--neon-green);border-color:rgba(57,255,20,.45);box-shadow:var(--glow-green)}
.station-card-logo.queue:not(.has-brand){background:rgba(255,122,0,.12);color:var(--neon-orange);border-color:rgba(255,122,0,.45);box-shadow:var(--glow-orange)}
.station-card-logo.queue_limited:not(.has-brand){background:rgba(255,149,0,.12);color:var(--neon-amber);border-color:rgba(255,149,0,.45);box-shadow:var(--glow-amber)}
.station-card-logo.low:not(.has-brand){background:rgba(255,230,0,.12);color:var(--neon-yellow);border-color:rgba(255,230,0,.45);box-shadow:var(--glow-yellow)}
.station-card-logo.no:not(.has-brand){background:rgba(255,0,85,.12);color:var(--neon-red);border-color:rgba(255,0,85,.45);box-shadow:var(--glow-red)}
.station-card-logo.unknown:not(.has-brand){background:rgba(122,127,154,.15);color:var(--grey);border-color:rgba(122,127,154,.35)}
.station-card-logo:not(.has-brand) svg{display:block;filter:drop-shadow(0 0 4px currentColor)}
.station-card-body{flex:1;min-width:0}
.station-card-name{display:block;font-weight:800;font-size:15px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.station-card-addr{
  display:block;font-size:12px;color:var(--dim);line-height:1.35;margin-bottom:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.station-card-meta{display:inline;font-size:12px;color:var(--dim);font-weight:500}
.station-card-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:4px}
.station-card-chevron{flex-shrink:0;color:var(--neon-purple);opacity:.7;filter:drop-shadow(0 0 4px rgba(191,0,255,.5))}
.nearby-empty{padding:20px;text-align:center;color:var(--dim);font-size:14px}

/* Статус-pills */
.status-pill{
  display:inline-block;padding:5px 12px;border-radius:999px;
  font-size:11px;font-weight:800;white-space:nowrap;letter-spacing:.03em;text-transform:uppercase
}
.status-pill.yes{background:rgba(57,255,20,.12);color:var(--neon-green);border:1px solid rgba(57,255,20,.45);box-shadow:var(--glow-green)}
.status-pill.queue{background:rgba(255,122,0,.12);color:var(--neon-orange);border:1px solid rgba(255,122,0,.45);box-shadow:var(--glow-orange)}
.status-pill.queue_limited{background:rgba(255,149,0,.12);color:var(--neon-amber);border:1px solid rgba(255,149,0,.45);box-shadow:var(--glow-amber)}
.status-pill.low{background:rgba(255,230,0,.12);color:var(--neon-yellow);border:1px solid rgba(255,230,0,.45);box-shadow:var(--glow-yellow)}
.status-pill.no{background:rgba(255,0,85,.12);color:var(--neon-red);border:1px solid rgba(255,0,85,.45);box-shadow:var(--glow-red)}
.status-pill.unknown{background:rgba(122,127,154,.12);color:var(--grey);border:1px solid rgba(122,127,154,.35)}
.status-pill.large{font-size:12px;padding:10px 18px}

/* ── Поделиться ── */
#share-btn{
  color:#e879ff;
  border:2px solid rgba(232,121,255,.75)!important;
  background:linear-gradient(135deg,rgba(191,0,255,.22),rgba(0,240,255,.1));
  box-shadow:var(--glow-purple)
}
#share-btn .share-header-icon{
  display:block;
  filter:drop-shadow(0 0 5px rgba(232,121,255,.85))
}
#share-btn:hover,#share-btn:focus-visible{
  color:#f5d0ff;
  border-color:rgba(245,208,255,.9)!important;
  box-shadow:0 0 14px rgba(191,0,255,.65),0 0 28px rgba(191,0,255,.28)
}
.share-sheet{max-height:min(72vh,520px)}
#share-backdrop{
  position:fixed;inset:0;z-index:5000!important;
  background:rgba(2,0,8,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;pointer-events:none;transition:opacity .25s ease
}
#share-backdrop.visible{opacity:1;pointer-events:auto}
#share-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:5010!important;
  background:linear-gradient(180deg,rgba(22,14,48,.98) 0%,rgba(10,6,24,.99) 100%);
  border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;
  border-top:1px solid rgba(0,240,255,.25);
  box-shadow:0 -12px 48px rgba(0,0,0,.6),0 0 40px rgba(191,0,255,.12);
  transform:translateY(100%);transition:transform .34s cubic-bezier(.32,.72,0,1);
  max-height:min(72vh,520px);display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)
}
#share-sheet.open{transform:translateY(0)}
.share-sheet-head .icon-btn{position:relative;z-index:2}
.share-sheet-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:4px 20px 12px;flex-shrink:0
}
.share-sheet-head h2{font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.02em}
.share-sheet-body{padding:0 20px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.share-lead{
  color:var(--dim2);font-size:14px;line-height:1.55;margin-bottom:18px
}
.share-note{
  margin-top:16px;color:var(--dim);font-size:12px;line-height:1.45;text-align:center
}
.share-block__buttons{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px
}
.share-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;
  border-radius:999px;border:2px solid transparent;padding:0;
  cursor:pointer;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.35);
  transition:transform .12s,filter .12s,box-shadow .12s
}
.share-btn:active{transform:scale(.94)}
.share-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.share-btn__text{
  font-size:11px;font-weight:800;letter-spacing:.04em;color:#fff;pointer-events:none;user-select:none
}
.share-btn--max .share-btn__text{font-size:9px;letter-spacing:.02em}
.share-btn__icon{display:inline-flex;align-items:center;justify-content:center;color:inherit;pointer-events:none}
.share-btn__icon svg{display:block;width:16px;height:16px}
.share-btn--copy{
  background:#3d3d3d!important;border-color:rgba(0,240,255,.45)!important;color:var(--neon-cyan)!important;
  flex-direction:column;gap:2px;width:3rem;height:3rem;min-width:3rem;min-height:3rem
}
.share-btn--copy .share-btn__text{font-size:9px;color:var(--neon-cyan)!important}
.share-btn--copy.share-btn--copied{
  background:rgba(57,255,20,.18)!important;border-color:rgba(57,255,20,.55)!important;color:var(--neon-green)!important
}
.share-btn--copy.share-btn--copied .share-btn__text,.share-btn--copy.share-btn--copied .share-btn__icon{color:var(--neon-green)!important}

/* ── Тост ── */
.app-toast{
  position:fixed;left:50%;bottom:calc(28px + var(--safe-bottom));z-index:2000;
  transform:translateX(-50%) translateY(10px);
  padding:12px 20px;border-radius:999px;
  background:linear-gradient(135deg,rgba(20,14,42,.98),rgba(10,6,24,.98));
  border:1px solid rgba(0,240,255,.35);color:var(--text);
  font-size:14px;font-weight:700;letter-spacing:.01em;
  box-shadow:var(--shadow),var(--glow-cyan);
  opacity:0;pointer-events:none;
  transition:opacity .22s ease,transform .22s ease
}
.app-toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Шторка ── */
.sheet-backdrop{
  position:fixed;inset:0;z-index:900;
  background:rgba(2,0,8,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;pointer-events:none;transition:opacity .25s ease
}
.sheet-backdrop.visible{opacity:1;pointer-events:auto}
.sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:950;
  background:linear-gradient(180deg,rgba(22,14,48,.98) 0%,rgba(10,6,24,.99) 100%);
  border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;
  border-top:1px solid rgba(0,240,255,.25);
  box-shadow:0 -12px 48px rgba(0,0,0,.6),0 0 40px rgba(191,0,255,.12);
  transform:translateY(100%);transition:transform .34s cubic-bezier(.32,.72,0,1);
  max-height:min(88vh,680px);display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)
}
.sheet.open{transform:translateY(0)}
body.sheet-open .nearby-panel{
  height:0!important;min-height:0!important;padding:0!important;
  border-top-color:transparent!important;overflow:hidden!important;
  opacity:0;pointer-events:none
}
body.sheet-open #station-sheet.open{
  min-height:min(58vh,440px)
}
.sheet-handle{
  width:40px;height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--neon-purple),var(--neon-cyan));
  margin:12px auto 6px;flex-shrink:0;box-shadow:var(--glow-cyan)
}
.sheet-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:6px 20px 14px;flex-shrink:0
}
.station-sheet-logo{
  width:52px;height:52px;border-radius:16px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  border:2px solid rgba(255,255,255,.15)
}
.station-sheet-logo.has-brand{background:#fff;padding:6px}
.station-sheet-logo.has-brand .brand-icon{width:100%;height:100%;object-fit:contain;display:block}
.station-sheet-logo.is-letter{font-size:24px;font-weight:900;line-height:1;letter-spacing:-.03em}
.station-sheet-logo.is-letter.yes{background:rgba(57,255,20,.2);color:var(--neon-green);border-color:var(--neon-green);box-shadow:var(--glow-green)}
.station-sheet-logo.is-letter.queue{background:rgba(255,122,0,.2);color:#fff;border-color:var(--neon-orange);box-shadow:var(--glow-orange)}
.station-sheet-logo.is-letter.queue_limited{background:rgba(255,149,0,.2);color:#fff;border-color:var(--neon-amber);box-shadow:var(--glow-amber)}
.station-sheet-logo.is-letter.low{background:rgba(255,230,0,.2);color:var(--neon-yellow);border-color:var(--neon-yellow);box-shadow:var(--glow-yellow)}
.station-sheet-logo.is-letter.no{background:rgba(255,0,85,.2);color:#fff;border-color:var(--neon-red);box-shadow:var(--glow-red)}
.station-sheet-logo.is-letter.unknown{background:rgba(255,255,255,.95);color:#111;border-color:var(--grey)}
.station-sheet-logo.has-brand.yes{border-color:rgba(57,255,20,.7);box-shadow:var(--glow-green)}
.station-sheet-logo.has-brand.queue{border-color:rgba(255,122,0,.7);box-shadow:var(--glow-orange)}
.station-sheet-logo.has-brand.queue_limited{border-color:rgba(255,149,0,.7);box-shadow:var(--glow-amber)}
.station-sheet-logo.has-brand.low{border-color:rgba(255,230,0,.75);box-shadow:var(--glow-yellow)}
.station-sheet-logo.has-brand.no{border-color:rgba(255,0,85,.7);box-shadow:var(--glow-red)}
.sheet-title-wrap{min-width:0;flex:1;padding-top:4px}
.sheet-title-wrap h2{font-size:18px;font-weight:800;line-height:1.2;word-break:break-word;letter-spacing:-.02em;color:var(--text)}
.station-status-line{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  margin-top:4px;min-height:22px;line-height:1.3
}
.station-status-line .status-pill{font-size:11px;padding:3px 8px}
.station-status-line .status-time,.station-status-line .status-hint{font-size:12px;color:var(--dim2)}
.station-addr{font-size:12px;color:var(--dim);margin-top:3px;line-height:1.35}
.icon-btn{
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,0,85,.35);
  background:rgba(255,0,85,.1);color:var(--neon-red);font-size:22px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 0 12px rgba(255,0,85,.25);transition:transform .12s
}
.icon-btn:active{transform:scale(.92)}
.sheet-scroll{overflow-y:auto;flex:1;padding:0 16px 20px;-webkit-overflow-scrolling:touch}

.section-label{
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  color:var(--neon-purple);margin:0 0 8px;text-shadow:0 0 8px rgba(191,0,255,.35)
}
.history-disclosure{margin-top:6px;border-top:1px solid rgba(180,120,255,.12);padding-top:2px}
.history-toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:10px 0;border:none;background:transparent;color:var(--dim2);
  font-size:13px;font-weight:700;cursor:pointer;text-align:left
}
.history-toggle-chevron{flex-shrink:0;color:var(--dim);transition:transform .2s ease}
.history-toggle[aria-expanded="true"] .history-toggle-chevron{transform:rotate(180deg)}
.history-panel{padding-bottom:4px}
.history-list{display:flex;flex-direction:column;gap:6px}
.history-item{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:12px;
  background:rgba(12,8,28,.7);border:1px solid rgba(180,120,255,.12)
}
.history-item.is-active{border-color:rgba(57,255,20,.25)}
.history-time{font-size:12px;color:var(--dim2);margin-left:auto;white-space:nowrap}
.history-empty{font-size:13px;color:var(--dim);padding:4px 0}

.status-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}
.status-btn{
  min-height:48px;padding:8px 6px;border-radius:14px;border:1.5px solid transparent;
  background:transparent;color:var(--text);font-weight:800;font-size:11px;line-height:1.25;
  display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left;
  transition:background .15s,border-color .15s,opacity .15s
}
.status-btn-text{flex:1;min-width:0}
.status-btn.is-current{border-color:rgba(0,240,255,.55);background:rgba(0,240,255,.08)}
.status-btn.is-submitting{opacity:.65;pointer-events:none}
.status-icon{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:900;line-height:1;flex-shrink:0
}
.status-btn.yes{border-color:rgba(57,255,20,.45)}
.status-btn.yes .status-icon{color:var(--neon-green);filter:drop-shadow(0 0 6px rgba(57,255,20,.75)) drop-shadow(0 0 14px rgba(57,255,20,.35))}
.status-btn.queue{border-color:rgba(255,122,0,.45)}
.status-btn.queue .status-icon{color:var(--neon-orange);filter:drop-shadow(0 0 6px rgba(255,122,0,.75)) drop-shadow(0 0 14px rgba(255,122,0,.35))}
.status-btn.queue_limited{border-color:rgba(255,149,0,.45)}
.status-btn.queue_limited .status-icon{color:var(--neon-amber);filter:drop-shadow(0 0 6px rgba(255,149,0,.75)) drop-shadow(0 0 14px rgba(255,149,0,.35))}
.status-btn.low{border-color:rgba(255,230,0,.45)}
.status-btn.low .status-icon{color:var(--neon-yellow);filter:drop-shadow(0 0 6px rgba(255,230,0,.7)) drop-shadow(0 0 14px rgba(255,230,0,.3))}
.status-btn.no{border-color:rgba(255,0,85,.45)}
.status-btn.no .status-icon{color:var(--neon-red);filter:drop-shadow(0 0 6px rgba(255,0,85,.75)) drop-shadow(0 0 14px rgba(255,0,85,.35))}

/* Маркеры */
.leaflet-div-icon.map-marker-icon,.leaflet-div-icon.map-cluster-icon{background:transparent!important;border:none!important}
.station-marker{display:flex;flex-direction:column;align-items:center;width:38px}
.station-marker-bubble{
  width:36px;height:36px;border-radius:50%;border:2.5px solid rgba(255,255,255,.9);
  display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0
}
.station-marker-bubble svg{display:block;filter:drop-shadow(0 0 3px rgba(255,255,255,.8))}
.station-marker-point{
  width:0;height:0;margin-top:-2px;flex-shrink:0;
  border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid rgba(255,255,255,.9)
}
.station-marker.yes .station-marker-bubble{background:var(--neon-green);box-shadow:var(--glow-green);color:#041008}
.station-marker.yes .station-marker-point{border-top-color:var(--neon-green)}
.station-marker.queue .station-marker-bubble{background:var(--neon-orange);box-shadow:var(--glow-orange)}
.station-marker.queue .station-marker-point{border-top-color:var(--neon-orange)}
.station-marker.queue_limited .station-marker-bubble{background:var(--neon-amber);box-shadow:var(--glow-amber)}
.station-marker.queue_limited .station-marker-point{border-top-color:var(--neon-amber)}
.station-marker.low .station-marker-bubble{background:var(--neon-yellow);box-shadow:var(--glow-yellow);color:#1a1400}
.station-marker.low .station-marker-point{border-top-color:var(--neon-yellow)}
.station-marker.no .station-marker-bubble{background:var(--neon-red);box-shadow:var(--glow-red)}
.station-marker.no .station-marker-point{border-top-color:var(--neon-red)}
.station-marker.unknown .station-marker-bubble{background:#3a3550;color:#e8e4ff;box-shadow:0 0 10px rgba(122,127,154,.4)}
.station-marker.unknown .station-marker-point{border-top-color:#3a3550}
.station-marker.is-selected .station-marker-bubble{
  border-color:#fff;
  box-shadow:var(--glow-cyan),0 0 0 3px rgba(0,240,255,.35);
  transform:scale(1.12)
}
.station-marker.is-selected .station-marker-point{filter:drop-shadow(0 0 4px rgba(0,240,255,.8))}
.cluster-hex{position:relative;display:flex;align-items:center;justify-content:center}
.cluster-hex::before{
  content:'';position:absolute;inset:0;background:#4a4560;
  border:2px solid rgba(0,240,255,.5);box-shadow:var(--glow-cyan);
  clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%)
}
.cluster-hex span{position:relative;z-index:1;color:#fff;font-weight:900;font-size:12px;text-shadow:0 0 6px rgba(0,240,255,.8)}
.user-marker{
  width:18px;height:18px;border-radius:50%;background:var(--neon-cyan);
  border:3px solid #fff;box-shadow:var(--glow-cyan),0 0 0 4px rgba(0,240,255,.25)
}

/* Leaflet */
.leaflet-container{background:var(--map-bg);font-family:inherit}
.leaflet-control-zoom{
  border:1px solid rgba(0,240,255,.25)!important;box-shadow:var(--glow-cyan)!important;
  border-radius:16px!important;overflow:hidden;margin-right:14px!important;margin-top:14px!important
}
.leaflet-control-zoom a{
  background:rgba(10,6,24,.92)!important;color:var(--neon-cyan)!important;
  border-bottom:1px solid rgba(0,240,255,.15)!important;
  width:42px!important;height:42px!important;line-height:42px!important;font-weight:700!important
}
.leaflet-control-attribution{display:none!important}

body.share-open .leaflet-control-zoom,
body.share-open .leaflet-top.leaflet-right{
  visibility:hidden!important;
  pointer-events:none!important;
}

/* ── Светлая тема ── */
body.light-theme{
  --bg:#eef2f8;--bg2:#e4eaf4;
  --panel:rgba(255,255,255,.98);--panel2:#fff;
  --card:#fff;--glass:#fff;
  --border:rgba(15,23,42,.12);--border2:rgba(15,23,42,.16);
  --text:#0f172a;--dim:#475569;--dim2:#334155;
  --map-bg:#c8d4e8;
  --shadow:0 12px 32px rgba(15,23,42,.1);
  --glow-green:0 1px 4px rgba(21,128,61,.18);
  --glow-cyan:0 1px 4px rgba(8,145,178,.16);
  --glow-orange:0 1px 4px rgba(194,65,12,.18);
  --glow-amber:0 1px 4px rgba(180,83,9,.18);
  --glow-yellow:0 1px 4px rgba(146,64,14,.16);
  --glow-red:0 1px 4px rgba(190,18,60,.18);
  --glow-purple:0 1px 4px rgba(109,40,217,.14);
  --status-yes:#15803d;--status-queue:#c2410c;--status-amber:#b45309;
  --status-low:#92400e;--status-no:#be123c;--status-unknown:#64748b;
  --accent-cyan:#0e7490;--accent-purple:#6d28d9;
  color:var(--text);
  background:var(--bg);
  color-scheme:light
}
body.light-theme #app{background:linear-gradient(180deg,#eef2f8 0%,#e6ecf5 100%)}
body.light-theme .app-header{
  background:rgba(255,255,255,.97);
  border-color:var(--border);
  box-shadow:0 4px 20px rgba(15,23,42,.06)
}
body.light-theme .app-header::after{opacity:.28}
body.light-theme .brand-azs{color:#0f172a;text-shadow:none}
body.light-theme .brand-tagline{color:var(--dim)}
body.light-theme .brand-status{
  background:linear-gradient(135deg,#c2410c 0%,#ca8a04 48%,#15803d 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:none
}
body.light-theme .btn-pill{background:var(--glass);color:var(--dim2);border-color:var(--border);box-shadow:0 1px 3px rgba(15,23,42,.06)}
body.light-theme .btn-pill.btn-icon{color:var(--accent-cyan);border-color:rgba(14,116,144,.28)}
body.light-theme .btn-pill.btn-icon:hover,body.light-theme .btn-pill.btn-icon:focus-visible{box-shadow:0 0 0 3px rgba(14,116,144,.12)}
body.light-theme #theme-btn{
  color:#c2410c;
  background:linear-gradient(135deg,rgba(251,191,36,.35),rgba(253,224,71,.22));
  border-color:rgba(234,88,12,.5);
  box-shadow:0 0 0 1px rgba(251,191,36,.45),0 2px 10px rgba(234,88,12,.18)
}
body.light-theme #theme-btn:hover,body.light-theme #theme-btn:focus-visible{
  box-shadow:0 0 0 3px rgba(234,88,12,.18),0 2px 10px rgba(234,88,12,.22)
}
body.light-theme #theme-btn .theme-icon-moon{display:none}
body.light-theme #theme-btn .theme-icon-sun{display:block}
body.light-theme .btn-pill.primary{
  background:linear-gradient(135deg,rgba(21,128,61,.12),rgba(14,116,144,.08));
  color:var(--status-yes);border-color:rgba(21,128,61,.32);box-shadow:var(--glow-green)
}
body.light-theme .search-icon{color:var(--accent-cyan);filter:none}
body.light-theme #search-open-btn{color:var(--accent-cyan);border-color:rgba(14,116,144,.28)}
body.light-theme #search-open-btn[aria-expanded="true"]{color:#fff;background:var(--accent-cyan);border-color:var(--accent-cyan)}
body.light-theme .search-close-btn{color:var(--dim)}
body.light-theme .search-close-btn:hover,body.light-theme .search-close-btn:focus-visible{color:var(--text);background:rgba(15,23,42,.06)}
body.light-theme #search{background:#fff;color:var(--text);border-color:var(--border);box-shadow:inset 0 1px 2px rgba(15,23,42,.04)}
body.light-theme #search::placeholder{color:var(--dim)}
body.light-theme #search:focus{border-color:rgba(14,116,144,.5);box-shadow:0 0 0 3px rgba(14,116,144,.12)}
body.light-theme .search-results{background:var(--panel2);border-color:var(--border2);box-shadow:var(--shadow)}
body.light-theme .search-results button{color:var(--text);border-bottom-color:rgba(15,23,42,.08)}
body.light-theme .search-results button:active{background:rgba(14,116,144,.08)}
body.light-theme .chip{text-shadow:none;opacity:1}
body.light-theme .chip:not(.active){
  color:var(--dim)!important;
  background:#f1f5f9!important;
  border-color:#cbd5e1!important;
  box-shadow:none!important
}
body.light-theme .chip.yes.active{
  color:#fff!important;
  background:#15803d!important;
  border-color:#15803d!important;
  box-shadow:0 2px 8px rgba(21,128,61,.28)!important
}
body.light-theme .chip.queue.active{
  color:#fff!important;
  background:#c2410c!important;
  border-color:#c2410c!important;
  box-shadow:0 2px 8px rgba(194,65,12,.28)!important
}
body.light-theme .chip.queue_limited.active{
  color:#fff!important;
  background:#b45309!important;
  border-color:#b45309!important;
  box-shadow:0 2px 8px rgba(180,83,9,.28)!important
}
body.light-theme .chip.low.active{
  color:#fff!important;
  background:#92400e!important;
  border-color:#92400e!important;
  box-shadow:0 2px 8px rgba(146,64,14,.28)!important
}
body.light-theme .chip.no.active{
  color:#fff!important;
  background:#be123c!important;
  border-color:#be123c!important;
  box-shadow:0 2px 8px rgba(190,18,60,.28)!important
}
body.light-theme .nearby-panel{
  background:linear-gradient(0deg,#edf1f8,#f8faff);
  border-color:var(--border);
  box-shadow:0 -4px 24px rgba(15,23,42,.06)
}
body.light-theme .nearby-subtitle{color:var(--accent-cyan);text-shadow:none}
body.light-theme .link-btn{color:var(--status-yes);text-shadow:none}
body.light-theme .station-card{
  background:#fff;
  border-color:var(--border);
  color:var(--text);
  box-shadow:0 1px 4px rgba(15,23,42,.06)
}
body.light-theme .station-card.selected{
  background:linear-gradient(135deg,rgba(14,116,144,.1),#fff);
  border-color:rgba(14,116,144,.42);
  box-shadow:0 4px 14px rgba(14,116,144,.12)
}
body.light-theme .station-card.selected .station-card-name{text-shadow:none}
body.light-theme .station-card-addr{color:var(--dim)}
body.light-theme .station-card-chevron{color:var(--accent-purple);opacity:.75;filter:none}
body.light-theme .station-card.selected .station-card-chevron{color:var(--accent-cyan);opacity:1;filter:none}
body.light-theme .status-pill{text-shadow:none}
body.light-theme .status-pill.yes{color:var(--status-yes);background:rgba(21,128,61,.14);border-color:rgba(21,128,61,.32)}
body.light-theme .status-pill.queue{color:var(--status-queue);background:rgba(194,65,12,.12);border-color:rgba(194,65,12,.32)}
body.light-theme .status-pill.queue_limited{color:var(--status-amber);background:rgba(180,83,9,.12);border-color:rgba(180,83,9,.32)}
body.light-theme .status-pill.low{color:var(--status-low);background:rgba(146,64,14,.12);border-color:rgba(146,64,14,.32)}
body.light-theme .status-pill.no{color:var(--status-no);background:rgba(190,18,60,.12);border-color:rgba(190,18,60,.32)}
body.light-theme .status-pill.unknown{color:var(--status-unknown);background:rgba(100,116,139,.12);border-color:rgba(100,116,139,.28)}
body.light-theme #share-btn{
  color:#9333ea;
  border:2px solid rgba(147,51,234,.6)!important;
  background:linear-gradient(135deg,rgba(167,139,250,.28),rgba(196,181,253,.18));
  box-shadow:0 0 12px rgba(147,51,234,.28)
}
body.light-theme #share-btn .share-header-icon{filter:drop-shadow(0 0 3px rgba(147,51,234,.45))}
body.light-theme #share-btn:hover,body.light-theme #share-btn:focus-visible{
  color:#7e22ce;
  border-color:rgba(126,34,206,.75)!important;
  box-shadow:0 0 0 3px rgba(147,51,234,.18),0 0 14px rgba(147,51,234,.22)
}
body.light-theme .share-lead{color:var(--text)}
body.light-theme .share-note{color:var(--dim)}
body.light-theme .share-btn--copy{background:#fff!important;border-color:rgba(14,116,144,.35)!important;color:var(--accent-cyan)!important}
body.light-theme .share-btn--copy .share-btn__text{color:var(--accent-cyan)!important}
body.light-theme #share-backdrop{background:rgba(15,23,42,.38)}
body.light-theme #share-sheet{
  background:linear-gradient(180deg,#fff 0%,#f8faff 100%);
  border-top-color:var(--border);
  box-shadow:0 -8px 32px rgba(15,23,42,.12)
}
body.light-theme .app-toast{
  background:#fff;color:var(--text);border-color:rgba(14,116,144,.35);
  box-shadow:0 8px 24px rgba(15,23,42,.12),0 0 0 1px rgba(14,116,144,.08)
}
body.light-theme .sheet-backdrop{background:rgba(15,23,42,.38)}
body.light-theme .sheet{
  background:linear-gradient(180deg,#fff 0%,#f8faff 100%);
  border-top-color:var(--border);
  box-shadow:0 -8px 32px rgba(15,23,42,.12)
}
body.light-theme .sheet-handle{background:linear-gradient(90deg,var(--accent-purple),var(--accent-cyan));box-shadow:none}
body.light-theme .icon-btn{
  color:var(--status-no);
  background:rgba(190,18,60,.08);
  border-color:rgba(190,18,60,.28);
  box-shadow:none
}
body.light-theme .station-status-line .status-time,
body.light-theme .station-status-line .status-hint{color:var(--dim)}
body.light-theme .section-label{color:var(--accent-purple);text-shadow:none}
body.light-theme .history-item{background:#fff;border-color:var(--border)}
body.light-theme .history-item.is-active{border-color:rgba(21,128,61,.32);background:rgba(21,128,61,.06)}
body.light-theme .history-disclosure{border-top-color:var(--border)}
body.light-theme .history-toggle{color:var(--dim)}
body.light-theme .status-btn.is-current{border-color:rgba(14,116,144,.45);background:rgba(14,116,144,.08)}
body.light-theme .status-btn{
  color:var(--text);
  background:#fff;
  border-color:var(--border);
  box-shadow:0 1px 3px rgba(15,23,42,.05)
}
body.light-theme .status-btn.yes{border-color:rgba(21,128,61,.32);background:rgba(21,128,61,.06)}
body.light-theme .status-btn.queue{border-color:rgba(194,65,12,.32);background:rgba(194,65,12,.06)}
body.light-theme .status-btn.queue_limited{border-color:rgba(180,83,9,.32);background:rgba(180,83,9,.06)}
body.light-theme .status-btn.low{border-color:rgba(146,64,14,.32);background:rgba(146,64,14,.06)}
body.light-theme .status-btn.no{border-color:rgba(190,18,60,.32);background:rgba(190,18,60,.06)}
body.light-theme .status-btn.yes .status-icon{color:var(--status-yes);filter:none}
body.light-theme .status-btn.queue .status-icon{color:var(--status-queue);filter:none}
body.light-theme .status-btn.queue_limited .status-icon{color:var(--status-amber);filter:none}
body.light-theme .status-btn.low .status-icon{color:var(--status-low);filter:none}
body.light-theme .status-btn.no .status-icon{color:var(--status-no);filter:none}
body.light-theme .station-sheet-logo.is-letter.low{color:var(--status-low)}
body.light-theme .leaflet-control-zoom{border-color:var(--border)!important;box-shadow:var(--shadow)!important}
body.light-theme .leaflet-control-zoom a{
  background:#fff!important;
  color:var(--accent-cyan)!important;
  border-bottom-color:var(--border)!important
}
body.light-theme .leaflet-control-zoom a:hover{background:#f8fafc!important}

@media (min-width:520px){
  #app{max-width:480px;margin:0 auto;border-left:1px solid rgba(191,0,255,.15);border-right:1px solid rgba(191,0,255,.15)}
  body.light-theme #app{border-left-color:rgba(15,23,42,.08);border-right-color:rgba(15,23,42,.08)}
  .sheet,.sheet-backdrop{max-width:480px;left:50%;transform:translateX(-50%) translateY(100%)}
  .sheet.open{transform:translateX(-50%) translateY(0)}
  #share-backdrop,#share-sheet{max-width:480px;left:50%;right:auto;width:100%}
  #share-sheet{transform:translateX(-50%) translateY(100%)}
  #share-sheet.open{transform:translateX(-50%) translateY(0)}
}
