/* Appearance: night mode + accent colour chosen by the visitor (js/theme.js sets data-theme / data-accent on <html>).
   Loaded after site.css / cabinet.css / the inline styles of the legal pages, so these variables win. */

/* ---- accent palettes: --ac fill, --ac-t text on light, --ac-td text on dark, tints, hover, text on a filled button ---- */
:root[data-accent="gold"]{--ac:#C6A052;--ac-t:#8A6A24;--ac-td:#D9B86F;--ac-tint:#F8F1E2;--ac-tintd:#2E2716;--ac-h:#B8923F;--ac-on:#1E1606}
:root[data-accent="blue"]{--ac:#2F6FCC;--ac-t:#1F5BAE;--ac-td:#8AB6F2;--ac-tint:#E8F0FB;--ac-tintd:#16253A;--ac-h:#255DB0;--ac-on:#FFFFFF}
:root[data-accent="green"]{--ac:#24855F;--ac-t:#1A6B4C;--ac-td:#6FD1A8;--ac-tint:#E4F3EC;--ac-tintd:#13291F;--ac-h:#1C7050;--ac-on:#FFFFFF}
:root[data-accent="burgundy"]{--ac:#A33A4C;--ac-t:#8A2C3D;--ac-td:#EE97A6;--ac-tint:#F7E6E9;--ac-tintd:#331A1F;--ac-h:#8D2F40;--ac-on:#FFFFFF}
:root[data-accent="violet"]{--ac:#6B4CC0;--ac-t:#5A3DAA;--ac-td:#BBA6F2;--ac-tint:#EEE9FA;--ac-tintd:#241D3A;--ac-h:#5B3FA8;--ac-on:#FFFFFF}
:root[data-accent="orange"]{--ac:#D9772B;--ac-t:#A3521A;--ac-td:#F2AA6B;--ac-tint:#FBEDE1;--ac-tintd:#33230F;--ac-h:#C2661F;--ac-on:#1E1606}
:root[data-accent="graphite"]{--ac:#4A5260;--ac-t:#3A414C;--ac-td:#C3C9D3;--ac-tint:#ECEEF1;--ac-tintd:#23272D;--ac-h:#3B424E;--ac-on:#FFFFFF}
:root[data-theme="dark"][data-accent="graphite"]{--ac:#8C96A6;--ac-h:#A0A9B6;--ac-on:#121417}

:root[data-accent]{--gold:var(--ac);--signal:var(--ac);--gold-text:var(--ac-t);--accent:var(--ac-t);--gold-tint:var(--ac-tint);--gold-hover:var(--ac-h);--on-gold:var(--ac-on);--signal-ink:var(--ac-on)}

/* ---- night mode ---- */
:root[data-theme="dark"]{color-scheme:dark;
  --bg:#121417;--surface:#1A1D21;--surface-2:#23272D;--panel:#16191D;
  --navy:#16191D;--navy-2:#1A1D21;--navy-ink:#ECEDEE;--navy-mute:#A3A9B3;
  --fg:#ECEDEE;--mute:#A0A6B0;--line:#30353C;
  --ok:#5FC58F;--ok-bg:#15301F;--warn:#E3B54F;--warn-bg:#33290F;--err:#F2776C;--err-bg:#3A1A18;--info:#86ADE0;--info-bg:#172537;
  --sea:#7FA3D6;--rail:#AEB5C0;--map-bg:#171A1E}
:root[data-theme="dark"][data-accent]{--gold-text:var(--ac-td);--accent:var(--ac-td);--gold-tint:var(--ac-tintd)}

/* filled accent buttons follow the chosen colour */
.btn.solid{color:var(--on-gold,#1E1606)}
.btn.solid:hover{background:var(--gold-hover,#B8923F)}

/* maps */
[data-theme="dark"] .rmap,[data-theme="dark"] .smap{background:var(--map-bg)}
[data-theme="dark"] #routeMap .grat{stroke:#22262B}
[data-theme="dark"] #routeMap .land,[data-theme="dark"] .smap .sm-land{fill:#262A30;stroke:#353A41}
[data-theme="dark"] #routeMap .borders,[data-theme="dark"] .smap .sm-borders{stroke:#454B53}
[data-theme="dark"] #routeMap .r-rail{stroke:#AEB5C0}
[data-theme="dark"] #routeMap .r-rail-tie,[data-theme="dark"] .smap .sm-tie{stroke:var(--map-bg)}
[data-theme="dark"] #routeMap .hub,[data-theme="dark"] .smap .sm-hub{fill:var(--surface)}
[data-theme="dark"] #routeMap .hub.major{stroke:var(--surface)}
[data-theme="dark"] #routeMap text,[data-theme="dark"] .smap text{stroke:var(--map-bg)}
[data-theme="dark"] .rlegend i.rail{border-top-color:#AEB5C0}
[data-theme="dark"] .rlegend i.hub{background:var(--surface)}

/* charts, tooltips, toasts, misc */
[data-theme="dark"] .ag{stroke:var(--line)}
[data-theme="dark"] .hit.on,[data-theme="dark"] .hit:focus{fill:rgba(255,255,255,.06)}
[data-theme="dark"] .adot{stroke:var(--surface)}
[data-theme="dark"] .atip,[data-theme="dark"] .toast{background:#2C3138;color:#ECEDEE;box-shadow:0 8px 24px rgba(0,0,0,.5)}
[data-theme="dark"] .atip .tt{border-top-color:rgba(255,255,255,.15)}
[data-theme="dark"] .poa-prev{background:var(--surface-2)}
[data-theme="dark"] .rate button,[data-theme="dark"] .stars i{color:#4A5058}
[data-theme="dark"] .hero::before{background-image:repeating-linear-gradient(90deg,transparent 0 38px,rgba(255,255,255,.025) 38px 40px)}
[data-theme="dark"] .ticker{background:#0C0E10;border-color:var(--line)}
[data-theme="dark"] img{opacity:.92}

/* ---- appearance button + panel ---- */
.thm{position:relative;display:inline-flex}
.thm-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;padding:0}
.thm-btn:hover{border-color:var(--gold)}
.thm-btn .sw{width:10px;height:10px;border-radius:50%;background:var(--gold);position:absolute;right:4px;bottom:4px;box-shadow:0 0 0 2px var(--surface)}
.thm-pan{position:absolute;right:0;top:calc(100% + 8px);z-index:70;width:260px;background:var(--surface);color:var(--fg);border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:10px;padding:14px;box-shadow:0 14px 40px -12px rgba(0,0,0,.35);font:14px/1.4 var(--body,system-ui)}
.thm-pan h3{font:600 12px var(--body,system-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin:0 0 8px}
.thm-pan h3+*{margin-bottom:14px}
.thm-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--surface-2);border-radius:8px;padding:3px}
.thm-seg button{border:0;background:none;color:var(--fg);font:500 13px var(--body,system-ui);padding:7px 4px;border-radius:6px;cursor:pointer}
.thm-seg button[aria-pressed="true"]{background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.18);font-weight:600}
.thm-cols{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px!important}
.thm-cols button{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;display:grid;place-items:center}
.thm-cols button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--fg)}
.thm-cols button svg{opacity:0}.thm-cols button[aria-pressed="true"] svg{opacity:1}
.thm-name{font-size:13px;color:var(--mute);margin:0}
@media (max-width:560px){.thm-pan{position:fixed;left:16px;right:16px;top:64px;width:auto}}

/* legal pages (politika / soglasie) and 404: their own inline styles */
[data-theme="dark"] .fill{background:var(--warn-bg);color:var(--fg)}
[data-theme="dark"] th{background:var(--surface-2)}
[data-theme="dark"] a.ghost{box-shadow:inset 0 0 0 1px var(--line)}

/* cabinet header on phones: room for the appearance button */
@media (max-width:520px){.top-in .thm-btn{width:34px;height:34px}}
@media (max-width:430px){.top-in .who{display:none}}
