/* Палитра публичного сайта. Админка этот файл не подключает.
   Производные on-line/on-soft сохраняют AA у мелких подписей на подложках.
   Светлые активные плашки в тёмной теме приглушены, чтобы не светились. */
:root {
 color-scheme:light;
 --bg:#F2F2F4;--card:#FFFFFF;--text:#0D0D10;--muted:#6E6E76;--line:#E4E4E8;
 --accent:#2D55C8;--accent-soft:#E8EDF8;--warning:#B25E00;--warning-soft:#FFF1DC;
 --secondary:var(--line);--soft:var(--bg);--soon:var(--warning-soft);--pill-bg:var(--text);
 --on-accent:#FFFFFF;--muted-on-line:#62626B;--accent-on-soft:var(--accent);--warning-on-soft:#A45500;
 --danger:#AD2525;--direction-out:#B0306A;--direction-in:#6B4FA0;
 --shadow:#00000020;--backdrop:#00000066;
 --accent-line:var(--accent);--accent-soft-chart:var(--accent-soft);
 --image-surface:#FFFFFF;--image-ink:#0D0D10;--white:#FFFFFF;--bus-body:#EE7D3B;
 --map-card:#FFFFFF;--map-text:#0D0D10;--map-muted:#6E6E76;--map-line:#E4E4E8;
 --map-direction-out:#B0306A;--map-direction-in:#6B4FA0;--map-brightness:1;
}
:root[data-theme=dark] {
 color-scheme:dark;
 --bg:#0B0B0D;--card:#17171A;--text:#F4F4F6;--muted:#8D8D96;--line:#26262B;
 --accent:#7C9BE6;--accent-soft:#1E2638;--warning:#FFB45C;--warning-soft:#2B2112;
 --on-accent:#0B0B0D;--muted-on-line:#8D8D96;--warning-on-soft:#FFB45C;
 --danger:#F09090;--direction-out:#DA6C9D;--direction-in:#AC8BDB;
 --shadow:#00000040;--backdrop:#00000088;--map-brightness:.85;--pill-bg:#B8B8C2;
}
@media(prefers-color-scheme:dark){
 :root:not([data-theme]) {
  color-scheme:dark;
  --bg:#0B0B0D;--card:#17171A;--text:#F4F4F6;--muted:#8D8D96;--line:#26262B;
  --accent:#7C9BE6;--accent-soft:#1E2638;--warning:#FFB45C;--warning-soft:#2B2112;
  --on-accent:#0B0B0D;--muted-on-line:#8D8D96;--warning-on-soft:#FFB45C;
  --danger:#F09090;--direction-out:#DA6C9D;--direction-in:#AC8BDB;
  --shadow:#00000040;--backdrop:#00000088;--map-brightness:.85;--pill-bg:#B8B8C2;
 }
}
.logo{color:var(--text)}.logo-dot{background:var(--accent)}
.theme-switch{display:flex;flex:none;align-items:center;gap:2px;padding:3px;border-radius:10px;background:var(--line);margin-left:auto}
.theme-switch button{display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:7px;padding:7px 9px;min-height:32px;background:transparent;color:var(--muted-on-line);font-size:12px;line-height:18px;font-weight:600}
.theme-switch button[aria-pressed=true]{background:var(--card);color:var(--text)}
.theme-switch button:disabled{opacity:1;cursor:default}
.theme-switch svg{display:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:899px){.theme-switch button{width:34px;min-height:38px;padding:5px}.theme-switch svg{display:block}.theme-switch button>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
.next-time,.future-departure,.departure-next,.mini-departure>strong,.trip-times .trip-departure,.district-departure>strong,.not-found-departure>strong{font-weight:700;font-variant-numeric:tabular-nums}
a:focus-visible,button:focus-visible{outline-color:var(--accent)}
.site-header nav a.current{color:var(--accent-on-soft);background:var(--accent-soft)}
.tabs [data-direction],.village-tabs button{color:var(--muted-on-line)}
.tabs [data-direction][aria-current=true],.village-tabs button[aria-pressed=true],.date-tabs a[aria-current],.weather-periods>a[aria-current=page],.outing-pill.active{background:var(--pill-bg);color:var(--bg);border-color:var(--pill-bg)}
.weather-days-row .day-tile[aria-current=date],.five-days-grid .day-tile[aria-current=date]{background:var(--pill-bg);color:var(--bg);border-color:var(--pill-bg)}
.weather-days-row .day-tile[aria-current=date]>*,.five-days-grid .day-tile[aria-current=date]>*{color:inherit}
.forecast-day[aria-current=date]{background:var(--pill-bg);color:var(--bg);border-color:var(--pill-bg)}
.forecast-day[aria-current=date] .forecast-date,.forecast-day[aria-current=date] small,.forecast-day[aria-current=date] .forecast-extremes{color:inherit}
.wait,.outing-price.free{background:var(--accent-soft);color:var(--accent-on-soft)}
.wait.soon,.outage-current{background:var(--warning-soft);color:var(--warning-on-soft)}
.source-warning,.announcement,.gust.strong-gust,.forecast-wind .strong-gust{color:var(--warning-on-soft)}
.trip-row.nearest{--muted:var(--muted-on-line)}
.trip-row.nearest .trip-status{color:var(--accent-on-soft)}
.time-grid .selected{background:var(--accent);color:var(--on-accent)}
.time-grid .past{color:var(--muted)}
.primary,.button.primary,.cookie-notice button,[data-site-feedback-form] .feedback-submit{background:var(--accent);color:var(--on-accent)}
.hero.primary .muted,.hero.primary .wait{color:var(--on-accent)}
.route-badge,.outing-initial{color:var(--white)}
.route-badge{background:var(--route-color)}
.freshness,.demo,.weather-mini-hour small,.weather-mini-hour{color:var(--muted-on-line)}
.event-banner-past{color:var(--muted-on-line)}
.event-detail-past .event-when,.forecast-past{opacity:1;color:var(--muted)}
.bottom-nav a[aria-current=page] .bottom-nav-icon{background:var(--accent-soft)}
.feedback-card input,.feedback-card select,.feedback-card textarea{background:var(--card);color:var(--text)}
/* Белый фон исходных картинок сохраняется, сами изображения не перекрашиваются. */
.transport-card-header img,.other-route-card>img,.person-card img,.article-cover,.article-body img,.history-feature>img,.history-article>img,.village-card img,.quick-links img{background:var(--image-surface)}
/* Подложка OSM и её элементы управления остаются светлыми. */
.live-map{--card:var(--map-card);--text:var(--map-text);--muted:var(--map-muted);--line:var(--map-line);--secondary:var(--map-line);--direction-out:var(--map-direction-out);--direction-in:var(--map-direction-in);--direction-kolyvan:var(--map-direction-out);--direction-city:var(--map-direction-in)}
.live-map .leaflet-tile-pane{filter:brightness(var(--map-brightness))}
.live-map .leaflet-popup-content-wrapper,.live-map .leaflet-popup-tip{background:var(--card);color:var(--text)}
/* Цвет номера берётся из Route; в тёмной теме осветляется только текст номера. */
:root[data-theme=dark] .mini-number,:root[data-theme=dark] .transport-route-number{color:color-mix(in srgb,var(--route-color,var(--accent)) 75%,var(--white))}
@media(prefers-color-scheme:dark){:root:not([data-theme]) .mini-number,:root:not([data-theme]) .transport-route-number{color:color-mix(in srgb,var(--route-color,var(--accent)) 75%,var(--white))}}
