/* Dark theme: token overrides + the few components that hard-code light colors. */
.theme-toggle { position:relative; flex:none; width:36px; height:36px; border-radius:50%; border:1px solid var(--border); background:var(--card); color:var(--fg); cursor:pointer; display:grid; place-items:center; padding:0; transition:background .2s, border-color .2s, transform .25s cubic-bezier(.2,1.6,.3,1); }
.theme-toggle:hover { transform:rotate(18deg) scale(1.08); border-color:var(--primary); }
.theme-toggle .ti { position:absolute; display:grid; place-items:center; transition:transform .5s cubic-bezier(.2,1.4,.3,1), opacity .3s; }
.theme-toggle .sun { color:#F59E0B; } .theme-toggle .moon { color:#93B8FA; }
:root[data-theme="dark"] .theme-toggle .sun { opacity:0; transform:rotate(90deg) scale(.3); }
:root:not([data-theme="dark"]) .theme-toggle .moon { opacity:0; transform:rotate(-90deg) scale(.3); }
::view-transition-old(root), ::view-transition-new(root) { animation:none; mix-blend-mode:normal; }
::view-transition-old(root) { z-index:1; } ::view-transition-new(root) { z-index:2; }

/* Palette: #010736 deepest, #0D1C42 surface, #22396F raised/border; accents use the same blues as the light theme. */
:root[data-theme="dark"] { color-scheme:dark;
  --d0:#010736; --d1:#0C1842; --d2:#22396F; --accent:#6EA2FA; --text-2:#C3CDE0;
  --bg:var(--d0); --card:var(--d1); --border:var(--d2); --fg:#F2F5FB; --muted:#93A1BE;
  --primary:#2563EB; --primary-dark:#1D4ED8; --primary-soft:rgba(37,99,235,.2);
  --ok:#4ADE80; --ok-bg:rgba(34,197,94,.16); --amber:#FBBF24; --amber-bg:rgba(245,158,11,.16);
  --grey:#C3CCDD; --grey-bg:#22396F; --err:#F87171; --err-bg:rgba(239,68,68,.16);
  --shadow:0 4px 18px rgba(0,0,0,.45); }
:root[data-theme="dark"] body { background:var(--d0); }

/* text on things that are filled with the cream accent must be navy */
:root[data-theme="dark"] a { color:#8DB4FB; }
:root[data-theme="dark"] .btn, :root[data-theme="dark"] .btn:hover { color:#fff; }
:root[data-theme="dark"] .btn { box-shadow:0 8px 22px rgba(37,99,235,.35); }
:root[data-theme="dark"] .btn.outline, :root[data-theme="dark"] .btn.outline:hover { color:#8DB4FB; background:transparent; border-color:rgba(110,162,250,.5); box-shadow:none; }
:root[data-theme="dark"] .btn.outline:hover { background:rgba(37,99,235,.2); }
:root[data-theme="dark"] .btn.light { background:#fff; color:#0B2169; border-color:#fff; box-shadow:0 10px 30px rgba(0,0,0,.4); }
:root[data-theme="dark"] .btn.light:hover { background:#EAF1FD; color:#0B2169; }
:root[data-theme="dark"] .btn.ghost { color:#fff; border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.1); }
:root[data-theme="dark"] .num, :root[data-theme="dark"] .nstep, :root[data-theme="dark"] .tick { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .nstep { border-color:var(--d0); box-shadow:0 4px 12px rgba(37,99,235,.5); }
/* logo mark, avatar and badges stay blue: cream fills look wrong on small icon tiles */
:root[data-theme="dark"] .brand svg rect { fill:#2563EB; }
:root[data-theme="dark"] .avatar { background:var(--d2); color:#fff; }
:root[data-theme="dark"] .card, :root[data-theme="dark"] .feat { background:var(--card); border-color:var(--border); box-shadow:0 10px 30px rgba(0,0,0,.4); }
:root[data-theme="dark"] .feat h3 { color:var(--fg); }
:root[data-theme="dark"] .feat:hover { box-shadow:0 22px 50px rgba(110,162,250,.12); }
:root[data-theme="dark"] .feat-ico { background:var(--d2); color:#fff; box-shadow:0 8px 18px rgba(0,0,0,.4); }
:root[data-theme="dark"] .topbar { background:var(--d1); }
:root[data-theme="dark"] .brand { color:var(--fg); }
:root[data-theme="dark"] .sidebar a { color:var(--grey); }
:root[data-theme="dark"] .sidebar a.active { color:#fff; }
:root[data-theme="dark"] .map-card { background:linear-gradient(135deg,var(--d2),var(--d1)); }
:root[data-theme="dark"] .eyebrow.dark { border-color:var(--border); color:var(--fg); }
:root[data-theme="dark"] .eyebrow.dark i { background:var(--accent); }
:root[data-theme="dark"] .sample-note { background:rgba(37,99,235,.2); color:var(--fg); }
:root[data-theme="dark"] .stat-icon.blue { background:var(--d2); color:#fff; }

/* hero + closing band use the palette instead of the light-theme blues */
:root[data-theme="dark"] .mv { color:#fff;
  background:radial-gradient(900px 560px at 76% 42%, rgba(34,57,111,.95), transparent 62%),
             radial-gradient(700px 500px at 0% 100%, rgba(34,57,111,.55), transparent 65%),
             linear-gradient(160deg,#010736 0%,#0D1C42 60%,#16295A 100%); }
:root[data-theme="dark"] .mv h1 { text-shadow:0 4px 30px rgba(0,0,0,.6); }
:root[data-theme="dark"] .mv .lead { color:rgba(255,255,255,.82); }
:root[data-theme="dark"] .glow { background:linear-gradient(100deg,#fff 0%,#C9D6F5 30%,#fff 50%,#AFC2EE 75%,#fff 100%); background-size:240% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; }
:root[data-theme="dark"] .eyebrow { color:#fff; }
:root[data-theme="dark"] .core { box-shadow:inset 0 0 50px rgba(1,7,54,.85), 0 0 70px rgba(34,57,111,.9); }
:root[data-theme="dark"] .oc { background:rgba(13,28,66,.96); border:1px solid var(--d2); box-shadow:0 14px 34px rgba(0,0,0,.6); }
:root[data-theme="dark"] .oc-price { color:#fff; }
:root[data-theme="dark"] .cta-band { background:linear-gradient(120deg,#010736,#0D1C42 55%,#22396F); border:1px solid var(--d2); box-shadow:0 24px 60px rgba(0,0,0,.5); color:#fff; }
:root[data-theme="dark"] .cta-band p { color:rgba(255,255,255,.78); }
:root[data-theme="dark"] .cb-ring { border-color:rgba(110,162,250,.25); }

/* journey */
:root[data-theme="dark"] .trip-path path { stroke:var(--accent); filter:drop-shadow(0 0 6px rgba(110,162,250,.45)); }
:root[data-theme="dark"] .node { --wrc:#6EA2FA; }
:root[data-theme="dark"] .tp-dot { fill:var(--d0); stroke:var(--accent); filter:drop-shadow(0 0 8px rgba(110,162,250,.9)); }
:root[data-theme="dark"] .nring { filter:drop-shadow(0 0 8px rgba(110,162,250,.45)); }
:root[data-theme="dark"] .ncore { background:var(--d1); color:#fff; box-shadow:0 10px 30px rgba(0,0,0,.55), inset 0 0 0 1px var(--d2); }

/* finder, pills, menus */
:root[data-theme="dark"] .finder { background:linear-gradient(100deg,#0D1C42 0%,#0A1538 55%,#010736 100%); border-bottom-color:var(--border); }
:root[data-theme="dark"] .searchbox, :root[data-theme="dark"] .pill, :root[data-theme="dark"] .seg, :root[data-theme="dark"] .pill.sort { background:var(--d1); border-color:var(--border); }
:root[data-theme="dark"] .pill { color:var(--accent); }
:root[data-theme="dark"] .pill:hover { border-color:#3A5694; }
:root[data-theme="dark"] .pill.has-value, :root[data-theme="dark"] .pill.open { background:rgba(37,99,235,.2); border-color:rgba(110,162,250,.6); box-shadow:none; }
:root[data-theme="dark"] .pill.has-value .pill-btn, :root[data-theme="dark"] .pill.open .pill-btn { color:#fff; }
:root[data-theme="dark"] .pill.open .pill-chevron { color:var(--accent); }
:root[data-theme="dark"] .pill-menu { background:var(--d1); border-color:var(--border); box-shadow:0 18px 44px rgba(0,0,0,.65); }
:root[data-theme="dark"] .pill-menu li.active { background:var(--d2); }
:root[data-theme="dark"] .pill-menu li[aria-selected="true"] { background:rgba(37,99,235,.2); color:#fff; }
:root[data-theme="dark"] .seg-thumb { background:linear-gradient(90deg,#2563EB,#4F8DF7); box-shadow:0 2px 10px rgba(37,99,235,.45); }
:root[data-theme="dark"] .seg input:checked + span, :root[data-theme="dark"] .seg[data-value="rent"] label:first-of-type span, :root[data-theme="dark"] .seg[data-value="sale"] label:last-of-type span { color:#fff; }
:root[data-theme="dark"] .seg[data-value="sale"] label:first-of-type span, :root[data-theme="dark"] .seg[data-value="rent"] label:last-of-type span { color:var(--muted); }

/* property cards */
:root[data-theme="dark"] .pcard { border-color:var(--border); box-shadow:0 2px 14px rgba(0,0,0,.5); }
:root[data-theme="dark"] .pcard-photo, :root[data-theme="dark"] .oc-photo { background:linear-gradient(135deg,#22396F,#0D1C42); }
:root[data-theme="dark"] .pcard-photo .ph, :root[data-theme="dark"] .oc-photo { color:rgba(110,162,250,.45); }
:root[data-theme="dark"] .badge { background:linear-gradient(90deg,#2563EB,#4F8DF7); color:#fff; box-shadow:0 2px 10px rgba(37,99,235,.45); }
:root[data-theme="dark"] .avatar-ring { background:var(--d1); border-color:var(--d2); color:#fff; }
:root[data-theme="dark"] .cta { background:rgba(1,7,54,.7); color:#fff; }
:root[data-theme="dark"] .pcard-wrap:hover .cta { background:#2563EB; color:#fff; box-shadow:0 8px 20px rgba(37,99,235,.5); }
:root[data-theme="dark"] .pcard::after { background:radial-gradient(circle at var(--mx,50%) var(--my,0%), rgba(110,162,250,.16), rgba(110,162,250,0) 46%); }
:root[data-theme="dark"] .pcard-wrap:hover .pcard { border-color:rgba(110,162,250,.7); }
:root[data-theme="dark"] .pcard-wrap::before { box-shadow:0 44px 64px -20px rgba(34,57,111,.9), 0 22px 34px -14px rgba(0,0,0,.7); }
:root[data-theme="dark"] .pcard-title, :root[data-theme="dark"] .pcard-price { color:var(--fg); }
:root[data-theme="dark"] .pcard-wrap:hover .pcard-title, :root[data-theme="dark"] .pcard-wrap:hover .pcard-price { color:#fff; }
:root[data-theme="dark"] .tag.blue { color:#E6ECF8; background:rgba(37,99,235,.2); border-color:rgba(110,162,250,.35); box-shadow:0 4px 12px -4px rgba(0,0,0,.6); }
:root[data-theme="dark"] .tag.green { color:#6EE7A0; background:rgba(34,197,94,.14); border-color:rgba(74,222,128,.3); box-shadow:0 4px 12px -4px rgba(0,0,0,.6); }
:root[data-theme="dark"] .tag.amber { color:#FCD34D; background:rgba(245,158,11,.14); border-color:rgba(251,191,36,.3); box-shadow:0 4px 12px -4px rgba(0,0,0,.6); }

/* auth */
:root[data-theme="dark"] body.auth { background:var(--d0); }
:root[data-theme="dark"] body.auth .topbar { background:rgba(13,28,66,.88); }
:root[data-theme="dark"] .bgmap { filter:invert(.92) hue-rotate(180deg) brightness(.7) saturate(.6); opacity:.65; }
:root[data-theme="dark"] .orb { opacity:.45; background:var(--d2); }
:root[data-theme="dark"] .o3 { background:rgba(37,99,235,.35); }
:root[data-theme="dark"] .route path { stroke:var(--accent); opacity:.4; }
:root[data-theme="dark"] .auth-card { background:rgba(13,28,66,.92); box-shadow:0 18px 50px rgba(0,0,0,.65); }
:root[data-theme="dark"] .auth-card::before { background:conic-gradient(from var(--ang), transparent 0 55%, rgba(96,165,250,.95) 78%, #2563EB 88%, transparent 100%); }
:root[data-theme="dark"] .auth-card h1::after { background:linear-gradient(90deg,#2563EB,#93C5FD); }
:root[data-theme="dark"] .field, :root[data-theme="dark"] .role-body { background:var(--d0); border-color:var(--border); }
:root[data-theme="dark"] .field:focus-within { background:var(--d0); box-shadow:0 0 0 3px rgba(110,162,250,.14); }
:root[data-theme="dark"] .field::after { background:linear-gradient(90deg,#60A5FA,#2563EB); }
:root[data-theme="dark"] .field input { color:var(--fg); }
:root[data-theme="dark"] .role-card input:checked + .role-body { background:rgba(37,99,235,.2); border-color:var(--accent); color:#fff; }
:root[data-theme="dark"] .role-card:hover .role-body { box-shadow:0 10px 22px rgba(0,0,0,.4); }
:root[data-theme="dark"] .auth-card .btn { box-shadow:0 8px 22px rgba(110,162,250,.15); }
:root[data-theme="dark"] .auth-card p.center a { color:#fff; }
:root[data-theme="dark"] .meter[data-s="3"] .bars i:nth-child(-n+3) { background:#8FA3D6; }
:root[data-theme="dark"] .btn.loading::before { border-color:rgba(255,255,255,.4); border-top-color:#fff; }
:root[data-theme="dark"] .house { opacity:.5; filter:brightness(.55) saturate(.6); }

/* smooth recolor when the browser has no View Transitions */
@media (prefers-reduced-motion: no-preference) { :root { transition:background-color .3s; } body, .topbar, .card, .pcard, .field, .pill { transition-property:background-color,border-color,color,box-shadow,transform,opacity; } }
@media (prefers-reduced-motion: reduce) { .theme-toggle, .theme-toggle .ti { transition:none; } }

/* bank logos need a light tile even in dark mode */
:root[data-theme="dark"] .loan { --tile:#F4F7FD; }
:root[data-theme="dark"] .bs-thumb { background:rgba(37,99,235,.2); border-color:#6EA2FA; }
:root[data-theme="dark"] .bank-chip.on .bc-rate { color:#8DB4FB; }

/* map */
:root[data-theme="dark"] .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.7); }
:root[data-theme="dark"] #map { background:#0B1730; }
:root[data-theme="dark"] .nb-thumb { background:linear-gradient(135deg,#22396F,#0D1C42); color:rgba(110,162,250,.55); }
:root[data-theme="dark"] .nb-card.on { background:rgba(37,99,235,.16); }
:root[data-theme="dark"] .nb-price { color:#8DB4FB; }
:root[data-theme="dark"] .pm { background:#0D1C42; color:#fff; }
:root[data-theme="dark"] .pm.on, :root[data-theme="dark"] .pm:hover { background:#2563EB; }
:root[data-theme="dark"] .leaflet-popup-content-wrapper, :root[data-theme="dark"] .leaflet-popup-tip { background:#0D1C42; color:#fff; }
:root[data-theme="dark"] .pp .pp-price { color:#8DB4FB; }
:root[data-theme="dark"] .leaflet-bar a { background:#0D1C42; color:#fff; border-color:#22396F; }

:root[data-theme="dark"] .mp-legend { color:#fff; background:linear-gradient(180deg,rgba(21,38,82,.97) 0%,rgba(13,28,66,.95) 100%); border-color:rgba(110,162,250,.28);
  box-shadow:0 1px 0 rgba(255,255,255,.10) inset, 0 -1px 0 rgba(0,0,0,.35) inset, 0 2px 4px rgba(0,0,0,.4), 0 10px 26px -6px rgba(37,99,235,.4), 0 18px 40px -12px rgba(0,0,0,.6); }
:root[data-theme="dark"] .mp-legend::before { background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); }

:root[data-theme="dark"] .mp-mapwrap .leaflet-bar { background:#0D1C42; box-shadow:0 1px 2px rgba(0,0,0,.5), 0 6px 18px -4px rgba(0,0,0,.7); }
:root[data-theme="dark"] .mp-mapwrap .leaflet-bar a, :root[data-theme="dark"] .mp-locate button { background:#0D1C42; color:#fff; }
:root[data-theme="dark"] .mp-mapwrap .leaflet-bar a + a { border-top-color:#22396F !important; }
:root[data-theme="dark"] .mp-mapwrap .leaflet-bar a:hover, :root[data-theme="dark"] .mp-locate button:hover { background:#16295A; }
:root[data-theme="dark"] .mp-locate button.on, :root[data-theme="dark"] .mp-locate button.loading svg { color:#6EA2FA; }
:root[data-theme="dark"] #f-listing label span:not(.seg-thumb) { color:var(--muted); }
:root[data-theme="dark"] #f-listing input:checked + span { color:#fff; }

/* settings */
:root[data-theme="dark"] .st-nav a:hover { color:#fff; }
:root[data-theme="dark"] .st-thumb { background:rgba(37,99,235,.2); box-shadow:inset 3px 0 0 #6EA2FA, 0 6px 16px -6px rgba(0,0,0,.6); }
:root[data-theme="dark"] .st-nav a.on, :root[data-theme="dark"] .role-pill { color:#8DB4FB; }
:root[data-theme="dark"] .role-pill.agent { color:var(--amber); }
:root[data-theme="dark"] .st-avatar { background:var(--d2); box-shadow:0 8px 22px rgba(0,0,0,.5); }
:root[data-theme="dark"] .st-initial { color:#fff; }
:root[data-theme="dark"] .st-role.current { background:rgba(37,99,235,.16); }
:root[data-theme="dark"] .st-role > svg { color:#8DB4FB; }
:root[data-theme="dark"] .st-form .field.disabled { background:var(--d0); }

/* top-bar links */
:root[data-theme="dark"] .nav-link { color:var(--fg); }
:root[data-theme="dark"] .nav-thumb { background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(96,165,250,.16)); box-shadow:0 6px 16px -6px rgba(0,0,0,.7), inset 0 0 0 1px rgba(110,162,250,.28); }
:root[data-theme="dark"] .nav-link:hover, :root[data-theme="dark"] .nav-link:focus-visible, :root[data-theme="dark"] .nav-link.current { color:#fff; }
:root[data-theme="dark"] .nav-link:hover .nl-ico, :root[data-theme="dark"] .nav-link:focus-visible .nl-ico, :root[data-theme="dark"] .nav-link.current .nl-ico { color:#8DB4FB; }
:root[data-theme="dark"] .nav-link::after { background:linear-gradient(90deg,#8DB4FB,#3B7CF4); }

/* quick-view dialog */
:root[data-theme="dark"] .qv-dialog { background:var(--d1); box-shadow:0 24px 60px -16px rgba(0,0,0,.85), 0 0 0 1px var(--d2); }
:root[data-theme="dark"] .qv-arrow { background:var(--d1); border-color:var(--d2); }
:root[data-theme="dark"] .qv-photo { background:linear-gradient(135deg,#22396F,#0D1C42); }
:root[data-theme="dark"] .qv-ph { color:rgba(252,241,208,.0); color:rgba(141,180,251,.45); }
:root[data-theme="dark"] .qv-price b, :root[data-theme="dark"] .qv-specs li svg { color:#8DB4FB; }
:root[data-theme="dark"] .qv-dist, :root[data-theme="dark"] .qv-av { color:#8DB4FB; background:rgba(37,99,235,.2); }
:root[data-theme="dark"] .qv-specs { background:var(--d0); }

/* subscription */
:root[data-theme="dark"] .sub-test code { background:rgba(79,141,247,.2); }
:root[data-theme="dark"] .cmp .prem { background:rgba(79,141,247,.1); }
:root[data-theme="dark"] .sub-cardico { background:rgba(79,141,247,.16); }

/* map */

:root[data-theme="dark"] .cmp .prem .cmp-num { color:#8DB4FB; }
:root[data-theme="dark"] .sub-state.ok { color:#86F0B3; }
/* chips: outlined, low saturation */

:root[data-theme="dark"] .sub-change summary { color:#8DB4FB; }
:root[data-theme="dark"] .ugc-tr { color:#9DB6E6; border-color:rgba(141,180,251,.3); }
:root[data-theme="dark"] .ugc-tr:hover { background:rgba(110,162,250,.16); border-color:#8DB4FB; color:#fff; }
:root[data-theme="dark"] .ugc-tr { background:#0A1540; }
/* home: why-us numbers and icons need the light accent on the navy page */
:root[data-theme="dark"] .why-ico, :root[data-theme="dark"] .type-ico { color:#8DB4FB; }
:root[data-theme="dark"] .why-card.hot .why-ico { color:#fff; }
:root[data-theme="dark"] .type-tile, :root[data-theme="dark"] .st-tile { color:var(--fg); }

/* ---- refined home sections (design review): quieter surfaces, near-white numbers, accent line instead of a loud fill ---- */
:root[data-theme="dark"] .why-stats .stat + .stat { border-left-color:rgba(141,180,251,.16); }
:root[data-theme="dark"] .stat b { color:#E3ECFD; background:linear-gradient(180deg,#F2F5FB,#B4CCF8); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
:root[data-theme="dark"] .stat em { color:#93A1BE; }
:root[data-theme="dark"] .why-card, :root[data-theme="dark"] .type-tile, :root[data-theme="dark"] .st-tile { background:linear-gradient(180deg,#0F1C48,#0B163F); box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 16px 32px -16px rgba(0,0,0,.7); }
:root[data-theme="dark"] .why-card, :root[data-theme="dark"] .type-tile { border:1px solid rgba(141,180,251,.14); }
:root[data-theme="dark"] .why-card:hover, :root[data-theme="dark"] .type-tile:hover { border-color:rgba(141,180,251,.32); box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 20px 40px -18px rgba(0,0,0,.8); }
:root[data-theme="dark"] .why-card p { color:var(--text-2); }
:root[data-theme="dark"] .why-ico, :root[data-theme="dark"] .type-ico { background:rgba(141,180,251,.08); box-shadow:inset 0 0 0 1px rgba(141,180,251,.18); }
:root[data-theme="dark"] .why-card.hot { background:linear-gradient(180deg,rgba(141,180,251,.07),rgba(141,180,251,.02)), #0C1842; border-color:rgba(141,180,251,.28); box-shadow:inset 0 2px 0 #6EA2FA, 0 16px 32px -16px rgba(0,0,0,.7); }
:root[data-theme="dark"] .why-card.hot .why-ico { background:rgba(141,180,251,.14); color:#DCE7FD; box-shadow:inset 0 0 0 1px rgba(141,180,251,.35); }
:root[data-theme="dark"] .btn { box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 6px 16px -6px rgba(37,99,235,.45); }

/* ---- dark mode depth = lighter surfaces, not drop shadows (design review rule). Hairline top highlight only. ---- */
:root[data-theme="dark"] .card, :root[data-theme="dark"] .feat, :root[data-theme="dark"] .pcard, :root[data-theme="dark"] .why-card, :root[data-theme="dark"] .type-tile, :root[data-theme="dark"] .st-tile, :root[data-theme="dark"] .sub-compare, :root[data-theme="dark"] .qv-dialog, :root[data-theme="dark"] .pill-menu,
:root[data-theme="dark"] .why-card.hot { box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
:root[data-theme="dark"] .why-card.hot { box-shadow:inset 0 2px 0 #6EA2FA; }
:root[data-theme="dark"] .pcard-wrap::before { box-shadow:none; }
:root[data-theme="dark"] .feat:hover { box-shadow:inset 0 1px 0 rgba(255,255,255,.08); background:#10204F; }
:root[data-theme="dark"] .pcard-wrap:hover .pcard { background:linear-gradient(180deg,#132560,#0E1F52); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
:root[data-theme="dark"] .why-card:hover, :root[data-theme="dark"] .type-tile:hover { background:linear-gradient(180deg,#12235A,#0D1B4C); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
:root[data-theme="dark"] .st-tile:hover { background:linear-gradient(180deg,#12235A,#0D1B4C); box-shadow:none; }
:root[data-theme="dark"] .btn:disabled, :root[data-theme="dark"] .btn[aria-disabled="true"] { background:#16275E; border-color:#16275E; color:#7F8DAE; }
:root[data-theme="dark"] .btn:active { background:#1D4ED8; border-color:#1D4ED8; }
:root[data-theme="dark"] .mp-area { background:#0E1B4A; border-color:rgba(141,180,251,.26); box-shadow:none; }
:root[data-theme="dark"] .pm.area { border-color:#8DB4FB; } :root[data-theme="dark"] .pm.area::after { border-color:#8DB4FB; }
:root[data-theme="dark"] .pm.area.rent { border-color:#E9C46A; } :root[data-theme="dark"] .pm.area.rent::after { border-color:#E9C46A; }
:root[data-theme="dark"] .lst-form textarea { background:#050E3C; border-color:rgba(141,180,251,.22); }
:root[data-theme="dark"] .lst-seg span { background:#050E3C; border-color:rgba(141,180,251,.22); }
:root[data-theme="dark"] .lst-seg input:checked + span { background:#2563EB; border-color:#2563EB; }
:root[data-theme="dark"] .drop-box { border-color:rgba(141,180,251,.3); }
:root[data-theme="dark"] .ph-item .link:not(.danger) { color:#8DB4FB; }
:root[data-theme="dark"] .ph-item.plan img { background:#E8EEFA; }

/* listing form: pickers, sliders, modal */
:root[data-theme="dark"] .pick-wrap .leaflet-bar, :root[data-theme="dark"] .pick-wrap .leaflet-bar a, :root[data-theme="dark"] .pick-locate button { background:#0E1B4A; color:#fff; box-shadow:none; }
:root[data-theme="dark"] .pick-wrap .leaflet-bar { border:1px solid rgba(141,180,251,.26) !important; }
:root[data-theme="dark"] .pick-wrap .leaflet-bar a + a { border-top-color:rgba(141,180,251,.2) !important; }
:root[data-theme="dark"] .pick-wrap .leaflet-bar a:hover, :root[data-theme="dark"] .pick-locate button:hover { background:#16295A; }
:root[data-theme="dark"] .pick-locate button.on, :root[data-theme="dark"] .pick-locate button.loading svg { color:#6EA2FA; }
:root[data-theme="dark"] .pick-expand { background:#0E1B4A; color:#fff; box-shadow:none; border:1px solid rgba(141,180,251,.26); }
:root[data-theme="dark"] .pick-expand:hover { background:#16295A; }
:root[data-theme="dark"] .pick-wrap { border-color:rgba(141,180,251,.22); }
:root[data-theme="dark"] .gm-box { border-color:rgba(141,180,251,.3); }
:root[data-theme="dark"] .strip-nav { background:#0E1B4A; border-color:rgba(141,180,251,.3); box-shadow:none; }
:root[data-theme="dark"] .map-modal-card { background:#0A1540; border-color:rgba(141,180,251,.26); box-shadow:none; }
:root[data-theme="dark"] .map-modal-card header { border-bottom-color:rgba(141,180,251,.2); }
:root[data-theme="dark"] .gm-msg:not(.err) { color:#8FD5B0; }
:root[data-theme="dark"] .side-thumb { background:rgba(79,141,247,.16); box-shadow:inset 3px 0 0 #6EA2FA; }
:root[data-theme="dark"] .sidebar a.active { color:#fff; }

:root[data-theme="dark"] .pill.form-select .pill-btn, :root[data-theme="dark"] .pill.form-select.has-value .pill-btn { color:#fff; }
:root[data-theme="dark"] .ph-add { border-color:rgba(141,180,251,.3); }
:root[data-theme="dark"] .ph-add .plus { background:rgba(110,162,250,.14); color:#8DB4FB; }
:root[data-theme="dark"] .ph-add:hover, :root[data-theme="dark"] .ph-add:focus-within { background:rgba(110,162,250,.1); border-color:#6EA2FA; }
:root[data-theme="dark"] .ph-add:hover .plus { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .combo-menu { background:#0E1B4A; border-color:rgba(141,180,251,.26); box-shadow:none; }
:root[data-theme="dark"] .combo-menu li.group { background:#0E1B4A; }
:root[data-theme="dark"] .combo-menu li.active { background:rgba(110,162,250,.16); }
:root[data-theme="dark"] .combo-menu li[aria-selected="true"] { color:#8DB4FB; }
:root[data-theme="dark"] .st-btn { background:rgba(110,162,250,.14); color:#8DB4FB; }
:root[data-theme="dark"] .st-btn:hover:not(:disabled) { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .origin-note .link { color:#8DB4FB; border-color:rgba(141,180,251,.3); }

:root[data-theme="dark"] .like-btn { background:#0D1C42; border-color:#22396F; color:#B7C4E6; }
:root[data-theme="dark"] .like-btn:hover, :root[data-theme="dark"] .like-btn.on { color:#FB7185; border-color:#FB7185; }
:root[data-theme="dark"] .like-btn.on { background:rgba(251,113,133,.12); }

:root[data-theme="dark"] .like-btn { background:#0D1C42; border-color:#22396F; color:#B7C4E6; }
:root[data-theme="dark"] .like-btn:hover, :root[data-theme="dark"] .like-btn.on { color:#FB7185; border-color:#FB7185; }
:root[data-theme="dark"] .like-btn.on { background:rgba(251,113,133,.12); }

:root[data-theme="dark"] .cv.best { background:rgba(74,222,128,.16); color:#4ADE80; }
:root[data-theme="dark"] .rl svg { color:#6EA2FA; }
:root[data-theme="dark"] #cmp-map { border-color:#22396F; }
:root[data-theme="dark"] .pick-bar { background:#0D1C42; border-color:#22396F; box-shadow:none; }
:root[data-theme="dark"] .note-wrap { background:#010736; border-color:#22396F; }
:root[data-theme="dark"] .note-wrap:focus-within { border-color:#4F8DF7; box-shadow:0 0 0 3px rgba(79,141,247,.25); }
:root[data-theme="dark"] .note-ico, :root[data-theme="dark"] .note-lock { background:rgba(37,99,235,.18); }

:root[data-theme="dark"] .cmp-mk { background:#0D1C42; border-color:#22396F; box-shadow:none; }
:root[data-theme="dark"] .cmp-mk::after { background:#0D1C42; border-color:#22396F; }
:root[data-theme="dark"] .cmp-mk-txt i { color:#6EA2FA; }
:root[data-theme="dark"] .cmp-corner-ico { background:rgba(37,99,235,.18); }
:root[data-theme="dark"] .cmp-expand { background:#0D1C42; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .cmp-mk { box-shadow:0 1px 0 rgba(255,255,255,.12) inset, 0 6px 14px -4px rgba(0,0,0,.6), 0 0 0 1px rgba(79,141,247,.18); }
/* map popup, dark */
:root[data-theme="dark"] .cmp-pop .leaflet-popup-content-wrapper { background:rgba(13,28,66,.92); color:#fff; box-shadow:0 0 0 1px rgba(110,162,250,.28), 0 24px 48px -12px rgba(0,0,0,.7), 0 0 36px -8px rgba(37,99,235,.45); }
:root[data-theme="dark"] .cmp-pop .leaflet-popup-tip { background:rgba(13,28,66,.92); box-shadow:none; }
:root[data-theme="dark"] .cmp-qv-price b { color:#6EA2FA; }
:root[data-theme="dark"] .cmp-qv-dist { background:rgba(37,99,235,.22); color:#8DB6FF; }
:root[data-theme="dark"] .cmp-qv-specs li, :root[data-theme="dark"] .cmp-qv-ext { background:rgba(255,255,255,.07); color:#fff !important; }
:root[data-theme="dark"] .cmp-qv-specs svg { color:#6EA2FA; }
:root[data-theme="dark"] .cmp-qv-ext:hover { background:rgba(37,99,235,.3); }
/* aocal + calendar page */
:root[data-theme="dark"] .aocal-nav { background:#0D1C42; border-color:#22396F; }
:root[data-theme="dark"] .aocal-day:hover:not(:disabled):not(.sel) { background:rgba(37,99,235,.2); }
:root[data-theme="dark"] .aocal-day.sel { box-shadow:none; }
:root[data-theme="dark"] .cal-item { background:#0D1C42; border-color:#22396F; }
:root[data-theme="dark"] .cal-pill { background:rgba(37,99,235,.2); color:#8DB6FF; }
:root[data-theme="dark"] .cal-pill.soft { background:transparent; border-color:#22396F; color:#B7C4E6; }
:root[data-theme="dark"] .cal-chat { border-color:#4F8DF7; color:#8DB6FF; }
:root[data-theme="dark"] .cal-chat:hover { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .cal-chip { background:rgba(245,158,11,.2); color:#FBBF24; }
/* chat */
:root[data-theme="dark"] .chat { background:#010736; }
:root[data-theme="dark"] .chat-side, :root[data-theme="dark"] .chat-head, :root[data-theme="dark"] .chat-compose, :root[data-theme="dark"] .chat-panel, :root[data-theme="dark"] .chat-note { background:#0D1C42; border-color:#22396F; }
:root[data-theme="dark"] .chat-search input, :root[data-theme="dark"] .chat-compose textarea { background:#132556; color:#fff; }
:root[data-theme="dark"] .chat-row:hover, :root[data-theme="dark"] .chat-row.on { background:rgba(37,99,235,.2); }
:root[data-theme="dark"] .chat-bub { background:#17306B; color:#fff; }
:root[data-theme="dark"] .chat-m.mine .chat-bub { background:linear-gradient(135deg,#3B82F6,#2563EB); }
:root[data-theme="dark"] .chat-bub.failed { background:#4C1D1D !important; color:#FCA5A5 !important; }
:root[data-theme="dark"] .chat-typing i { background:#8DB6FF; }
:root[data-theme="dark"] .chat-av .dot { border-color:#0D1C42; }
:root[data-theme="dark"] .chat-appt, :root[data-theme="dark"] .chat-slot { background:#0D1C42; border-color:#22396F; box-shadow:none; }
:root[data-theme="dark"] button.chat-slot:hover { background:rgba(37,99,235,.2); }
:root[data-theme="dark"] .chat-appt-ico, :root[data-theme="dark"] .chat-icon-btn, :root[data-theme="dark"] .chat-sys, :root[data-theme="dark"] .chat-appt-note, :root[data-theme="dark"] .chat-picked span { background:rgba(37,99,235,.2); color:#8DB6FF; }
:root[data-theme="dark"] .chat-send { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .chat-chip { background:rgba(245,158,11,.2); color:#FBBF24; }
:root[data-theme="dark"] .chat-chip.ok { background:rgba(34,197,94,.2); color:#4ADE80; }
:root[data-theme="dark"] .chat-chip.no { background:rgba(148,163,184,.2); color:#CBD5E1; }
:root[data-theme="dark"] .chat-times button, :root[data-theme="dark"] .chat-panel input.note { background:#0D1C42; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .chat-times button.on { background:#2563EB; }
:root[data-theme="dark"] .chat-prop-card { border-color:#22396F; }
:root[data-theme="dark"] .chat-prop-card small, :root[data-theme="dark"] .chat-prop { color:#8DB6FF; }
:root[data-theme="dark"] .dh-tabs { background:rgba(37,99,235,.18); }
:root[data-theme="dark"] .dh-tabs button { color:#B7C4E6; }
:root[data-theme="dark"] .dh-tabs button[aria-pressed="true"] { background:#2563EB; color:#fff; box-shadow:none; }
:root[data-theme="dark"] .wheel { background:#132556; }
:root[data-theme="dark"] .wheel::before { background:#0D1C42; box-shadow:0 0 0 1.5px #4F8DF7; }
:root[data-theme="dark"] .wheel::after { background:linear-gradient(180deg, #132556 0%, rgba(19,37,86,0) 30%, rgba(19,37,86,0) 70%, #132556 100%); }
:root[data-theme="dark"] .wheel-i { color:#8DB6FF; }
:root[data-theme="dark"] .wheel-i.sel { color:#fff; }
:root[data-theme="dark"] .cmp-qv-appt { background:rgba(37,99,235,.18); }
:root[data-theme="dark"] .cmp-qv-appt-ico { background:#0D1C42; color:#8DB6FF; }
:root[data-theme="dark"] .cmp-qv-appt-txt b { color:#fff; }
:root[data-theme="dark"] .aod-card { background:#0D1C42; box-shadow:0 0 0 1px rgba(110,162,250,.28), 0 28px 60px -12px rgba(0,0,0,.7); }
:root[data-theme="dark"] .aod-ico { background:rgba(37,99,235,.2); color:#8DB6FF; }
:root[data-theme="dark"] .aod-ico.danger { background:rgba(251,113,133,.16); color:#FB7185; }
/* reviews / cases */
:root[data-theme="dark"] .rv-sum, :root[data-theme="dark"] .rv-reply, :root[data-theme="dark"] .case-quote, :root[data-theme="dark"] .case-ico { background:rgba(37,99,235,.18); }
:root[data-theme="dark"] .rv-tag { background:rgba(74,222,128,.14); color:#4ADE80; }
:root[data-theme="dark"] .rv-tag.bad { background:rgba(251,113,133,.14); color:#FB7185; }
:root[data-theme="dark"] .rv-verified { color:#4ADE80; }
:root[data-theme="dark"] .trust-notice { background:rgba(245,158,11,.14); border-color:#F59E0B; color:#FCD34D; }
:root[data-theme="dark"] .rv-removed { background:rgba(245,158,11,.16); color:#FCD34D; }
:root[data-theme="dark"] .stars .st { color:#3B4A73; }
:root[data-theme="dark"] .stars .st.on { color:#FBBF24; }
:root[data-theme="dark"] .trm-radio, :root[data-theme="dark"] .trm-area textarea, :root[data-theme="dark"] .trm-tag, :root[data-theme="dark"] .case-decide textarea { background:#0D1C42; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .trm-radio:has(input:checked) { background:rgba(37,99,235,.22); border-color:#4F8DF7; }
:root[data-theme="dark"] .trm-tag[aria-pressed="true"] { background:#2563EB; color:#fff; }
:root[data-theme="dark"] .case-chip { color:#FBBF24; }
:root[data-theme="dark"] .case-chip.ok { color:#4ADE80; }
:root[data-theme="dark"] .case-chip.no { color:#CBD5E1; }
:root[data-theme="dark"] .case-chip.bad { color:#FB7185; }
:root[data-theme="dark"] .case-tl li::before { background:#0D1C42; }
:root[data-theme="dark"] .case-tl li.admin::before { background:#4F8DF7; }
:root[data-theme="dark"] .cases-filter button { border-color:#22396F; color:#B7C4E6; }
/* broker profile */
:root[data-theme="dark"] .bp-code, :root[data-theme="dark"] .bp-chip, :root[data-theme="dark"] .bpe-chip-x { background:rgba(37,99,235,.2); color:#8DB6FF; }
:root[data-theme="dark"] .bp-chip.soft { background:transparent; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .bp-banner { background:rgba(245,158,11,.14); border-color:#F59E0B; color:#FCD34D; }
:root[data-theme="dark"] .bpe-field input, :root[data-theme="dark"] .bpe-field textarea, :root[data-theme="dark"] .bpe-tags, :root[data-theme="dark"] .bpe-toggle { background:#0D1C42; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .bpe-toggle[aria-pressed="true"] { background:#2563EB; border-color:#2563EB; }
:root[data-theme="dark"] .bpe-sw-ui { background:#3B4A73; }
:root[data-theme="dark"] .bpe-status { color:#CBD5E1; }
:root[data-theme="dark"] .bpe-status[data-on="1"] { color:#4ADE80; }
:root[data-theme="dark"] .bpe-msg.ok { color:#4ADE80; }
:root[data-theme="dark"] .bpe-msg.err { color:#FCA5A5; }
:root[data-theme="dark"] #bpe-prev .bp-head { border-color:#22396F; }
:root[data-theme="dark"] .aof-f input, :root[data-theme="dark"] .aof-f select, :root[data-theme="dark"] .aof-f textarea { background:#010736; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .ad-act { background:rgba(37,99,235,.2); color:#8DB6FF; }
:root[data-theme="dark"] .ad-filter input, :root[data-theme="dark"] .ad-filter select { background:#0D1C42; border-color:#22396F; color:#fff; }
:root[data-theme="dark"] .ad-table th { background:#0D1C42; }
:root[data-theme="dark"] .chip.red { color:#FCA5A5; }
:root[data-theme="dark"] .followup-box { background:#0D1C42; border-color:#22396F; box-shadow:none; }
:root[data-theme="dark"] .followup-read { background:#152957; }
:root[data-theme="dark"] .followup-box input, :root[data-theme="dark"] .followup-box select, :root[data-theme="dark"] .followup-box textarea { background:#010736; border-color:#22396F; color:#fff; }

/* >>> neutral greys (generated by tools/gen_dark_neutral.py) */
:root[data-theme="dark"] body:not(.home) .chat-pick { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .chat-pick-item { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .panel-home select { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .crm-banner { background:#1C1C1C; border:1px solid #383838; }
:root[data-theme="dark"] body:not(.home) .crm-filter input, :root[data-theme="dark"] body:not(.home) .crm-filter select, :root[data-theme="dark"] body:not(.home) .crm-form input:not([type=checkbox]), :root[data-theme="dark"] body:not(.home) .crm-form select, :root[data-theme="dark"] body:not(.home) .crm-form textarea, :root[data-theme="dark"] body:not(.home) .crm-match-form input:not([type=checkbox]), :root[data-theme="dark"] body:not(.home) .crm-match-form select, :root[data-theme="dark"] body:not(.home) .crm-inline input, :root[data-theme="dark"] body:not(.home) .crm-inline select { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .crm-suggest { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .crm-tasks li { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .crm-range { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .crm-table th, :root[data-theme="dark"] body:not(.home) .crm-table td { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .btn.light { color:#222222; }
:root[data-theme="dark"] body:not(.home) .btn.light:hover { color:#222222; }
:root[data-theme="dark"] body:not(.home) .mv { background:radial-gradient(900px 560px at 76% 42%, rgba(56,56,56,0.95), transparent 62%),
             radial-gradient(700px 500px at 0% 100%, rgba(56,56,56,0.55), transparent 65%),
             linear-gradient(160deg,#0F0F0F 0%,#1C1C1C 60%,#292929 100%); }
:root[data-theme="dark"] body:not(.home) .core { box-shadow:inset 0 0 50px rgba(15,15,15,0.85), 0 0 70px rgba(56,56,56,0.9); }
:root[data-theme="dark"] body:not(.home) .oc { background:rgba(28,28,28,0.96); }
:root[data-theme="dark"] body:not(.home) .cta-band { background:linear-gradient(120deg,#0F0F0F,#1C1C1C 55%,#383838); }
:root[data-theme="dark"] body:not(.home) .finder { background:linear-gradient(100deg,#1C1C1C 0%,#161616 55%,#0F0F0F 100%); }
:root[data-theme="dark"] body:not(.home) .pill:hover { border-color:#545454; }
:root[data-theme="dark"] body:not(.home) .pcard-photo, :root[data-theme="dark"] body:not(.home) .oc-photo { background:linear-gradient(135deg,#383838,#1C1C1C); }
:root[data-theme="dark"] body:not(.home) .cta { background:rgba(15,15,15,0.7); }
:root[data-theme="dark"] body:not(.home) .pcard-wrap::before { box-shadow:0 44px 64px -20px rgba(56,56,56,0.9), 0 22px 34px -14px rgba(0,0,0,.7); }
:root[data-theme="dark"] body:not(.home) .auth-card { background:rgba(28,28,28,0.92); }
:root[data-theme="dark"] body:not(.home) #map { background:#161616; }
:root[data-theme="dark"] body:not(.home) .nb-thumb { background:linear-gradient(135deg,#383838,#1C1C1C); }
:root[data-theme="dark"] body:not(.home) .pm { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .leaflet-popup-content-wrapper, :root[data-theme="dark"] body:not(.home) .leaflet-popup-tip { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .leaflet-bar a { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .mp-legend { background:linear-gradient(180deg,rgba(38,38,38,0.97) 0%,rgba(28,28,28,0.95) 100%); }
:root[data-theme="dark"] body:not(.home) .mp-mapwrap .leaflet-bar { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .mp-mapwrap .leaflet-bar a, :root[data-theme="dark"] body:not(.home) .mp-locate button { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .mp-mapwrap .leaflet-bar a + a { border-top-color:#383838 !important; }
:root[data-theme="dark"] body:not(.home) .mp-mapwrap .leaflet-bar a:hover, :root[data-theme="dark"] body:not(.home) .mp-locate button:hover { background:#292929; }
:root[data-theme="dark"] body:not(.home) .qv-photo { background:linear-gradient(135deg,#383838,#1C1C1C); }
:root[data-theme="dark"] body:not(.home) .ugc-tr { background:#161616; }
:root[data-theme="dark"] body:not(.home) .why-card, :root[data-theme="dark"] body:not(.home) .type-tile, :root[data-theme="dark"] body:not(.home) .st-tile { background:linear-gradient(180deg,#1D1D1D,#171717); }
:root[data-theme="dark"] body:not(.home) .why-card.hot { background:linear-gradient(180deg,rgba(141,180,251,.07),rgba(141,180,251,.02)), #191919; }
:root[data-theme="dark"] body:not(.home) .feat:hover { background:#202020; }
:root[data-theme="dark"] body:not(.home) .pcard-wrap:hover .pcard { background:linear-gradient(180deg,#262626,#202020); }
:root[data-theme="dark"] body:not(.home) .why-card:hover, :root[data-theme="dark"] body:not(.home) .type-tile:hover { background:linear-gradient(180deg,#242424,#1C1C1C); }
:root[data-theme="dark"] body:not(.home) .st-tile:hover { background:linear-gradient(180deg,#242424,#1C1C1C); }
:root[data-theme="dark"] body:not(.home) .btn:disabled, :root[data-theme="dark"] body:not(.home) .btn[aria-disabled="true"] { background:#282828; border-color:#282828; }
:root[data-theme="dark"] body:not(.home) .mp-area { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .lst-form textarea { background:#101010; }
:root[data-theme="dark"] body:not(.home) .lst-seg span { background:#101010; }
:root[data-theme="dark"] body:not(.home) .pick-wrap .leaflet-bar, :root[data-theme="dark"] body:not(.home) .pick-wrap .leaflet-bar a, :root[data-theme="dark"] body:not(.home) .pick-locate button { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .pick-wrap .leaflet-bar a:hover, :root[data-theme="dark"] body:not(.home) .pick-locate button:hover { background:#292929; }
:root[data-theme="dark"] body:not(.home) .pick-expand { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .pick-expand:hover { background:#292929; }
:root[data-theme="dark"] body:not(.home) .strip-nav { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .map-modal-card { background:#161616; }
:root[data-theme="dark"] body:not(.home) .combo-menu { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .combo-menu li.group { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .like-btn { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .like-btn { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) #cmp-map { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .pick-bar { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .note-wrap { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cmp-mk { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cmp-mk::after { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cmp-expand { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cmp-pop .leaflet-popup-content-wrapper { background:rgba(28,28,28,0.92); }
:root[data-theme="dark"] body:not(.home) .cmp-pop .leaflet-popup-tip { background:rgba(28,28,28,0.92); }
:root[data-theme="dark"] body:not(.home) .aocal-nav { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cal-item { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .cal-pill.soft { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .chat { background:#0F0F0F; }
:root[data-theme="dark"] body:not(.home) .chat-side, :root[data-theme="dark"] body:not(.home) .chat-head, :root[data-theme="dark"] body:not(.home) .chat-compose, :root[data-theme="dark"] body:not(.home) .chat-panel, :root[data-theme="dark"] body:not(.home) .chat-note { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .chat-search input, :root[data-theme="dark"] body:not(.home) .chat-compose textarea { background:#252525; }
:root[data-theme="dark"] body:not(.home) .chat-bub { background:#2F2F2F; }
:root[data-theme="dark"] body:not(.home) .chat-av .dot { border-color:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .chat-appt, :root[data-theme="dark"] body:not(.home) .chat-slot { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .chat-times button, :root[data-theme="dark"] body:not(.home) .chat-panel input.note { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .chat-prop-card { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .wheel { background:#252525; }
:root[data-theme="dark"] body:not(.home) .wheel::before { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .wheel::after { background:linear-gradient(180deg, #252525 0%, rgba(37,37,37,0) 30%, rgba(37,37,37,0) 70%, #252525 100%); }
:root[data-theme="dark"] body:not(.home) .cmp-qv-appt-ico { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .aod-card { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .stars .st { color:#4A4A4A; }
:root[data-theme="dark"] body:not(.home) .trm-radio, :root[data-theme="dark"] body:not(.home) .trm-area textarea, :root[data-theme="dark"] body:not(.home) .trm-tag, :root[data-theme="dark"] body:not(.home) .case-decide textarea { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .case-tl li::before { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .cases-filter button { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .bp-chip.soft { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .bpe-field input, :root[data-theme="dark"] body:not(.home) .bpe-field textarea, :root[data-theme="dark"] body:not(.home) .bpe-tags, :root[data-theme="dark"] body:not(.home) .bpe-toggle { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .bpe-sw-ui { background:#4A4A4A; }
:root[data-theme="dark"] body:not(.home) #bpe-prev .bp-head { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .aof-f input, :root[data-theme="dark"] body:not(.home) .aof-f select, :root[data-theme="dark"] body:not(.home) .aof-f textarea { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .ad-filter input, :root[data-theme="dark"] body:not(.home) .ad-filter select { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .ad-table th { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .followup-box { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .followup-read { background:#282828; }
:root[data-theme="dark"] body:not(.home) .followup-box input, :root[data-theme="dark"] body:not(.home) .followup-box select, :root[data-theme="dark"] body:not(.home) .followup-box textarea { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .mk-seg, :root[data-theme="dark"] body:not(.home) .mk-stage, :root[data-theme="dark"] body:not(.home) .mk-banner { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .mk-col textarea { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .mo-skel { background:linear-gradient(100deg, #1C1C1C 30%, #292929 50%, #1C1C1C 70%); }
:root[data-theme="dark"] body:not(.home) .sheet-filter input, :root[data-theme="dark"] body:not(.home) .sheet-filter select, :root[data-theme="dark"] body:not(.home) .sheet-bulk select, :root[data-theme="dark"] body:not(.home) .sheet-bulk input, :root[data-theme="dark"] body:not(.home) .sheet-foot select, :root[data-theme="dark"] body:not(.home) .sheet-cell-input { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sheet-table th, :root[data-theme="dark"] body:not(.home) .sheet-table td, :root[data-theme="dark"] body:not(.home) .sheet-table td.chk, :root[data-theme="dark"] body:not(.home) .sheet-table th.chk { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sheet-table tr.sel td, :root[data-theme="dark"] body:not(.home) .sheet-table td:not(.ro):hover > .cell { background:#292929; }
:root[data-theme="dark"] body:not(.home) .sheet-menu, :root[data-theme="dark"] body:not(.home) .sheet-modal { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sheet-bar, :root[data-theme="dark"] body:not(.home) .sheet-banner { background:#1C1C1C; border:1px solid #383838; }
:root[data-theme="dark"] body:not(.home) .sheet-sum div { background:#292929; }
:root[data-theme="dark"] body:not(.home) .sfe-col input:not([type=checkbox]):not([type=file]), :root[data-theme="dark"] body:not(.home) .sfe-col select { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sfe-themes, :root[data-theme="dark"] body:not(.home) .sfe-banner { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .sfe-order li, :root[data-theme="dark"] body:not(.home) .sf-rev article { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sf-intro, :root[data-theme="dark"] body:not(.home) .ls-hl li { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .sf-intro .chip { background:#292929; }
:root[data-theme="dark"] body:not(.home) .ls-hero { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .trip-add-toast { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .bell-pop, :root[data-theme="dark"] body:not(.home) .pal { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .pal-scrim { background:rgba(15,15,15,0.7); }
:root[data-theme="dark"] body:not(.home) .trip-pop { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .trip-pop-scrim { background:rgba(15,15,15,0.7); }
:root[data-theme="dark"] body:not(.home) .trip-pop-row { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .trip-pop-x { background:#282828; }
:root[data-theme="dark"] body:not(.home) .trip-pop-newbtn { border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .sub-period { background:#1C1C1C; }
:root[data-theme="dark"] body:not(.home) .trip-note { background:#1C1C1C; border:1px solid #383838; }
:root[data-theme="dark"] body:not(.home) .trip-item.over { box-shadow:0 0 0 2px #383838; }
:root[data-theme="dark"] body:not(.home) .trip-date input, :root[data-theme="dark"] body:not(.home) .trip-times input[type="time"], :root[data-theme="dark"] body:not(.home) .share-row input { background:#0F0F0F; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .icon-btn { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .trip-add-toast { background:#1C1C1C; border-color:#383838; }
:root[data-theme="dark"] body:not(.home) .case-action select { background:#0F0F0F; border-color:#383838; }
/* <<< neutral greys */

/* =====================================================================================================================
   App pages dark theme (every page except the home page, which keeps the rules above).
   Same approach as YouTube / Facebook / TikTok dark modes:
   - one hierarchy in both themes, lightness inverted: page (darkest) < surface < raised < overlay. Depth = a lighter
     surface + a hairline, never a drop shadow.
   - three text levels (primary / secondary / tertiary) instead of pure white everywhere.
   - the brand blue stays the FILL colour (primary buttons, selected thumbs); blue TEXT and icons use a lighter tint of
     the same hue (generated block at the end of this file), and only one thing per view is accent-filled.
   - secondary buttons and chips are neutral raised surfaces, not blue outlines (like Facebook's grey buttons).
   - status colours keep their meaning (green ok / orange warn / red error) but are lighter and less saturated.
   Neutral near-black like YouTube / CapCut (not pure #000, no blue tint): #0F0F0F page, #1C1C1C surface, #262626 / #333333 raised.
   ===================================================================================================================== */
:root[data-theme="dark"] body:not(.home) {
  --bg:#0F0F0F; --card:#1C1C1C; --s2:#262626; --s3:#333333; --inset:#121212;
  --border:#2A2A2A; --border-2:#3A3A3A;
  --fg:#F1F1F1; --t1:#FFFFFF; --grey:#C7C7C7; --muted:#A0A0A0; --t4:#808080;
  --grey-bg:#2A2A2A;
  --primary:#2563EB; --primary-dark:#3B78F2; --primary-soft:rgba(79,141,247,.16); --accent-text:#8DB4FB;
  --ok:#6EE7A0; --ok-bg:rgba(74,222,128,.12); --amber:#FDBA74; --amber-bg:rgba(251,146,60,.13);
  --err:#FCA5A5; --err-bg:rgba(248,113,113,.13);
  --shadow:none; --shadow-md:none; --ring:0 0 0 3px rgba(110,162,250,.45);
  --d0:#0F0F0F; --d1:#1C1C1C; --d2:#333333; --text-2:#C7C7C7;
  background:var(--bg); color:var(--fg); }
:root[data-theme="dark"] body:not(.home) h1, :root[data-theme="dark"] body:not(.home) h2, :root[data-theme="dark"] body:not(.home) h3 { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) ::placeholder { color:var(--t4); opacity:1; }
:root[data-theme="dark"] body:not(.home) ::selection { background:rgba(79,141,247,.4); color:#fff; }
:where(:root[data-theme="dark"] body:not(.home)) a { color:var(--accent-text); }

/* frame: top bar + sidebar sit on the page colour with a hairline (YouTube), content cards are one step lighter */
:root[data-theme="dark"] body:not(.home) .topbar { background:var(--bg); border-bottom:1px solid var(--border); box-shadow:none; }
:root[data-theme="dark"] body:not(.home) .nav-link { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .nav-link .nl-ico { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .nav-link:hover, :root[data-theme="dark"] body:not(.home) .nav-link:focus-visible, :root[data-theme="dark"] body:not(.home) .nav-link.current { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .nav-link:hover .nl-ico, :root[data-theme="dark"] body:not(.home) .nav-link.current .nl-ico { color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .nav-thumb { background:var(--s3); box-shadow:none; border:0; }
:root[data-theme="dark"] body:not(.home) .theme-toggle, :root[data-theme="dark"] body:not(.home) .lang-toggle { background:var(--s2); border-color:var(--border-2); }
:root[data-theme="dark"] body:not(.home) .user-chip { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .user-chip:hover { background:var(--s2); color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .avatar { background:var(--s3); color:var(--t1); }
/* home page: only the top bar follows the app pages (near-black); the rest of the home page keeps its navy theme */
:root[data-theme="dark"] body.home .topbar { --bg:#0F0F0F; --s2:#262626; --s3:#333333; --border:#2A2A2A; --border-2:#3A3A3A; --fg:#F1F1F1; --t1:#FFFFFF; --grey:#C7C7C7; --muted:#A0A0A0; --accent-text:#8DB4FB;
  background:var(--bg); border-bottom:1px solid var(--border); box-shadow:none; }
:root[data-theme="dark"] body.home .topbar .nav-link { color:var(--grey); }
:root[data-theme="dark"] body.home .topbar .nav-link .nl-ico { color:var(--muted); }
:root[data-theme="dark"] body.home .topbar .nav-link:hover, :root[data-theme="dark"] body.home .topbar .nav-link.current { color:var(--t1); }
:root[data-theme="dark"] body.home .topbar .nav-link:hover .nl-ico, :root[data-theme="dark"] body.home .topbar .nav-link.current .nl-ico { color:var(--accent-text); }
:root[data-theme="dark"] body.home .topbar .nav-thumb { background:var(--s3); box-shadow:none; border:0; }
:root[data-theme="dark"] body.home .topbar .theme-toggle, :root[data-theme="dark"] body.home .topbar .lang-toggle { background:var(--s2); border-color:var(--border-2); }
:root[data-theme="dark"] body.home .topbar .user-chip { color:var(--grey); }
:root[data-theme="dark"] body.home .topbar .user-chip:hover { background:var(--s2); color:var(--t1); }
:root[data-theme="dark"] body.home .topbar .avatar { background:var(--s3); color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .sidebar { background:var(--bg); border-right:1px solid var(--border); }
:root[data-theme="dark"] body:not(.home) .sidebar a { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .sidebar a:hover:not(.active) { color:var(--t1); background:rgba(255,255,255,.04); }
:root[data-theme="dark"] body:not(.home) .sidebar a.active, :root[data-theme="dark"] body:not(.home) .sidebar nav.ready a.active { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .sidebar a.active svg { color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .side-thumb { background:var(--s3); box-shadow:inset 3px 0 0 #4F8DF7; }
:root[data-theme="dark"] body:not(.home) .sidebar .side-sep { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .sidebar .side-sep-line { background:var(--border); }

/* selected list rows are a lighter grey, like YouTube's selected item (blue stays for the one primary action) */
:root[data-theme="dark"] body:not(.home) .chat-row.on { background:var(--s3); }
:root[data-theme="dark"] body:not(.home) .chat-appt-note { background:var(--s2); color:var(--grey); }
/* surfaces */
:root[data-theme="dark"] body:not(.home) .card, :root[data-theme="dark"] body:not(.home) .pcard, :root[data-theme="dark"] body:not(.home) .st-card,
:root[data-theme="dark"] body:not(.home) .auth-card, :root[data-theme="dark"] body:not(.home) .feat, :root[data-theme="dark"] body:not(.home) .st-tile {
  background:var(--card); background-image:none; border:1px solid var(--border); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
:root[data-theme="dark"] body:not(.home) .card:hover { box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
:root[data-theme="dark"] body:not(.home) .pcard-wrap:hover .pcard { background:var(--s2); border-color:var(--border-2); box-shadow:inset 0 1px 0 rgba(255,255,255,.06); }
:root[data-theme="dark"] body:not(.home) .pcard-wrap:hover .pcard .pcard-title { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .pcard-photo, :root[data-theme="dark"] body:not(.home) .nb-thumb, :root[data-theme="dark"] body:not(.home) .qv-photo { background:var(--s2); }
:root[data-theme="dark"] body:not(.home) .muted { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) hr { border-color:var(--border); }

/* overlays (menus, popovers, dialogs) sit one more step up */
:root[data-theme="dark"] body:not(.home) .pill-menu, :root[data-theme="dark"] body:not(.home) .qv-dialog, :root[data-theme="dark"] body:not(.home) .qv-arrow,
:root[data-theme="dark"] body:not(.home) .combo-menu, :root[data-theme="dark"] body:not(.home) .leaflet-popup-content-wrapper, :root[data-theme="dark"] body:not(.home) .leaflet-popup-tip {
  background:var(--s2); border-color:var(--border-2); box-shadow:0 0 0 1px var(--border-2); }
:root[data-theme="dark"] body:not(.home) .pill-menu li, :root[data-theme="dark"] body:not(.home) .combo-menu li { color:var(--fg); }
:root[data-theme="dark"] body:not(.home) .pill-menu li:hover, :root[data-theme="dark"] body:not(.home) .pill-menu li.active, :root[data-theme="dark"] body:not(.home) .combo-menu li:hover { background:var(--s3); }
:root[data-theme="dark"] body:not(.home) .pill-menu li[aria-selected="true"], :root[data-theme="dark"] body:not(.home) .combo-menu li[aria-selected="true"] { background:rgba(79,141,247,.2); color:#DCE7FD; }

/* inputs: recessed (darker than the surface they sit on), blue only on focus */
:root[data-theme="dark"] body:not(.home) .field, :root[data-theme="dark"] body:not(.home) .role-body,
:root[data-theme="dark"] body:not(.home) input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
:root[data-theme="dark"] body:not(.home) select, :root[data-theme="dark"] body:not(.home) textarea {
  background-color:var(--inset); border-color:var(--border-2); color:var(--fg); }
:root[data-theme="dark"] body:not(.home) .field input, :root[data-theme="dark"] body:not(.home) .field select, :root[data-theme="dark"] body:not(.home) .field textarea,
:root[data-theme="dark"] body:not(.home) .searchbox input, :root[data-theme="dark"] body:not(.home) .pill select { background-color:transparent; }
:root[data-theme="dark"] body:not(.home) .field:focus-within, :root[data-theme="dark"] body:not(.home) input:focus, :root[data-theme="dark"] body:not(.home) select:focus, :root[data-theme="dark"] body:not(.home) textarea:focus {
  border-color:#4F8DF7; box-shadow:var(--ring); outline:0; }
:root[data-theme="dark"] body:not(.home) .field input:focus { box-shadow:none; }
:root[data-theme="dark"] body:not(.home) .field input:disabled { background-color:transparent; }
:root[data-theme="dark"] body:not(.home) .field > svg { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .field:focus-within > svg:first-child { color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .field.disabled, :root[data-theme="dark"] body:not(.home) .st-form .field.disabled, :root[data-theme="dark"] body:not(.home) input:disabled { background-color:#161616; color:var(--t4); }
:root[data-theme="dark"] body:not(.home) input[type="checkbox"], :root[data-theme="dark"] body:not(.home) input[type="radio"], :root[data-theme="dark"] body:not(.home) input[type="range"] { accent-color:#4F8DF7; }

/* finder (search page): a flat surface band, controls as neutral pills */
:root[data-theme="dark"] body:not(.home) .finder { background:var(--card); background-image:none; border-bottom:1px solid var(--border); }
:root[data-theme="dark"] body:not(.home) .searchbox, :root[data-theme="dark"] body:not(.home) .pill, :root[data-theme="dark"] body:not(.home) .pill.sort, :root[data-theme="dark"] body:not(.home) .seg {
  background:var(--inset); border-color:var(--border-2); color:var(--fg); box-shadow:none; }
:root[data-theme="dark"] body:not(.home) .pill:hover { border-color:#4A4A4A; }
:root[data-theme="dark"] body:not(.home) .pill.has-value, :root[data-theme="dark"] body:not(.home) .pill.open { background:rgba(79,141,247,.14); border-color:#4F8DF7; }
:root[data-theme="dark"] body:not(.home) .pill.has-value .pill-btn, :root[data-theme="dark"] body:not(.home) .pill.open .pill-btn, :root[data-theme="dark"] body:not(.home) .pill.open .pill-chevron { color:#DCE7FD; }
:root[data-theme="dark"] body:not(.home) .pill-btn, :root[data-theme="dark"] body:not(.home) .pill select { color:var(--fg); }
:root[data-theme="dark"] body:not(.home) .seg span:not(.seg-thumb) { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .seg-thumb { background:#2563EB; box-shadow:none; }

/* buttons: blue fill = the one primary action; everything else is a neutral raised button */
:root[data-theme="dark"] body:not(.home) .btn { box-shadow:inset 0 1px 0 rgba(255,255,255,.14); }
:root[data-theme="dark"] body:not(.home) .btn:not(.outline):not(:disabled):not([aria-disabled="true"]) { color:#fff; }
:root[data-theme="dark"] body:not(.home) .btn:not(.outline):not(:disabled):not([aria-disabled="true"]):hover { background:#3B78F2; border-color:#3B78F2; }
:root[data-theme="dark"] body:not(.home) .btn:not(.outline):active { background:#1D4ED8; border-color:#1D4ED8; }
:root[data-theme="dark"] body:not(.home) .btn.outline { background:var(--s2); border-color:var(--border-2); color:#DCE7FD; box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
:root[data-theme="dark"] body:not(.home) .btn.outline:hover { background:var(--s3); border-color:#4A4A4A; color:#fff; }
:root[data-theme="dark"] body:not(.home) .btn.outline:active { background:#2A2A2A; }
:root[data-theme="dark"] body:not(.home) .btn.outline.danger, :root[data-theme="dark"] body:not(.home) .btn.danger.outline { color:var(--err); border-color:rgba(252,165,165,.35); }
:root[data-theme="dark"] body:not(.home) .btn.outline.danger:hover { background:var(--err-bg); border-color:var(--err); }
:root[data-theme="dark"] body:not(.home) .btn:disabled, :root[data-theme="dark"] body:not(.home) .btn[aria-disabled="true"] { background:#262626; border-color:#262626; color:var(--t4); box-shadow:none; }
:root[data-theme="dark"] body:not(.home) button.link { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) button.link:hover { color:var(--t1); }

/* chips, tags, pills: tinted fills, no outlines-with-glow */
:root[data-theme="dark"] body:not(.home) .chip.grey { color:var(--grey); background:var(--grey-bg); }
:root[data-theme="dark"] body:not(.home) .chip.ok { color:var(--ok); background:var(--ok-bg); }
:root[data-theme="dark"] body:not(.home) .chip.amber, :root[data-theme="dark"] body:not(.home) .chip.warn { color:var(--amber); background:var(--amber-bg); }
:root[data-theme="dark"] body:not(.home) .chip.red { color:var(--err); background:var(--err-bg); }
:root[data-theme="dark"] body:not(.home) .tag { box-shadow:none; background-image:none; }
:root[data-theme="dark"] body:not(.home) .tag.blue { color:#C9DBFD; background:rgba(79,141,247,.16); border-color:rgba(141,180,251,.28); }
:root[data-theme="dark"] body:not(.home) .tag.green { color:var(--ok); background:var(--ok-bg); border-color:rgba(110,231,160,.26); }
:root[data-theme="dark"] body:not(.home) .tag.amber { color:var(--amber); background:var(--amber-bg); border-color:rgba(253,186,116,.28); }
:root[data-theme="dark"] body:not(.home) .role-pill { background:rgba(79,141,247,.16); color:#DCE7FD; border:1px solid rgba(141,180,251,.32); }
:root[data-theme="dark"] body:not(.home) .st-badge { background:rgba(79,141,247,.16); color:#DCE7FD; border:1px solid rgba(141,180,251,.32); }
:root[data-theme="dark"] body:not(.home) .badge { box-shadow:none; }

/* messages */
:root[data-theme="dark"] body:not(.home) .st-flash.ok, :root[data-theme="dark"] body:not(.home) .sub-state.ok { background:var(--ok-bg); color:var(--ok); border:1px solid rgba(110,231,160,.24); }
:root[data-theme="dark"] body:not(.home) .st-flash.error, :root[data-theme="dark"] body:not(.home) .alert { background:var(--err-bg); color:var(--err); border:1px solid rgba(252,165,165,.24); }
:root[data-theme="dark"] body:not(.home) .st-warn, :root[data-theme="dark"] body:not(.home) .sub-state.ending, :root[data-theme="dark"] body:not(.home) .sub-test { background:var(--amber-bg); color:var(--amber); border:1px solid rgba(253,186,116,.24); }

/* tables: header row one step up, hairline rows, faint hover */
:root[data-theme="dark"] body:not(.home) table th, :root[data-theme="dark"] body:not(.home) table td { border-color:var(--border); }
:root[data-theme="dark"] body:not(.home) table thead th { background-color:var(--s2); color:var(--grey); }
:root[data-theme="dark"] body:not(.home) table tbody tr:hover > td { background-color:rgba(255,255,255,.025); }

/* dashboard: stat icons are tinted tiles (the solid orange/green discs glare on navy) */
:root[data-theme="dark"] body:not(.home) .stat-icon.blue { background:rgba(79,141,247,.18); color:#8DB4FB; }
:root[data-theme="dark"] body:not(.home) .stat-icon.amber { background:rgba(251,146,60,.16); color:#FDBA74; }
:root[data-theme="dark"] body:not(.home) .stat-icon.green { background:rgba(74,222,128,.14); color:#6EE7A0; }
:root[data-theme="dark"] body:not(.home) .stat-num { color:var(--t1); }

/* settings + plan/billing pages */
:root[data-theme="dark"] body:not(.home) .st-nav a { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .st-nav a.on { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .st-thumb { background:var(--s3); box-shadow:inset 3px 0 0 #4F8DF7; }
:root[data-theme="dark"] body:not(.home) .st-role { background:var(--inset); border-color:var(--border-2); }
:root[data-theme="dark"] body:not(.home) .st-role.current, :root[data-theme="dark"] body:not(.home) .role-card input:checked + .role-body { background:rgba(79,141,247,.14); border-color:#4F8DF7; }
:root[data-theme="dark"] body:not(.home) .sub-table th, :root[data-theme="dark"] body:not(.home) .sub-table td, :root[data-theme="dark"] body:not(.home) .sub-facts div, :root[data-theme="dark"] body:not(.home) .st-avatar-row { border-bottom-color:var(--border); }
:root[data-theme="dark"] body:not(.home) .sub-cardico { background:rgba(79,141,247,.16); color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .sub-list svg { color:var(--ok); }
:root[data-theme="dark"] body:not(.home) .sub-banner { box-shadow:inset 3px 0 0 #4F8DF7, inset 0 1px 0 rgba(255,255,255,.04); }
:root[data-theme="dark"] body:not(.home) .sub-period { background:var(--inset); box-shadow:inset 0 0 0 1px var(--border-2); }
:root[data-theme="dark"] body:not(.home) .sub-period button { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .sub-period button[aria-pressed="true"] { color:#fff; }
:root[data-theme="dark"] body:not(.home) .sub-period:not(.mo-live) button[aria-pressed="true"], :root[data-theme="dark"] body:not(.home) .sub-period .mo-thumb { background:#2563EB; }
:root[data-theme="dark"] body:not(.home) .sub-badge, :root[data-theme="dark"] body:not(.home) .sub-save { background:var(--ok-bg); color:var(--ok); }
:root[data-theme="dark"] body:not(.home) .sub-period button[aria-pressed="true"] .sub-badge { background:rgba(255,255,255,.2); color:#fff; }
/* plan table: Premium is the single highlighted column (light: blue tint + top bar + blue numbers) */
:root[data-theme="dark"] body:not(.home) .sub-compare { background:var(--card); }
:root[data-theme="dark"] body:not(.home) .cmp thead th { background:var(--s2); border-bottom:1px solid var(--border-2); }
:root[data-theme="dark"] body:not(.home) .cmp th, :root[data-theme="dark"] body:not(.home) .cmp td { border-bottom-color:var(--border); }
:root[data-theme="dark"] body:not(.home) .cmp tbody tr:last-child > * { border-bottom:0; }
:root[data-theme="dark"] body:not(.home) .cmp-feat { color:var(--fg); }
:root[data-theme="dark"] body:not(.home) .cmp-hint, :root[data-theme="dark"] body:not(.home) .cmp-intro-sub { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .cmp-intro-tags li { background:var(--s3); color:var(--grey); border:0; }
:root[data-theme="dark"] body:not(.home) .cmp-intro-tags li svg { color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .cmp-price small, :root[data-theme="dark"] body:not(.home) .cmp .cmp-unit, :root[data-theme="dark"] body:not(.home) .cmp-sub.muted { color:var(--muted); }
:root[data-theme="dark"] body:not(.home) .cmp-sub { color:var(--grey); }
:root[data-theme="dark"] body:not(.home) .cmp-sub b { color:var(--ok); }
:root[data-theme="dark"] body:not(.home) .cmp-cur { background:rgba(79,141,247,.16); color:#DCE7FD; border:1px solid rgba(141,180,251,.32); }
:root[data-theme="dark"] body:not(.home) .cmp .cmp-yes { color:var(--ok); }
:root[data-theme="dark"] body:not(.home) .cmp .cmp-no { color:var(--t4); opacity:1; }
:root[data-theme="dark"] body:not(.home) .cmp .cmp-num { color:var(--t1); }
:root[data-theme="dark"] body:not(.home) .cmp .prem { background:rgba(79,141,247,.10); box-shadow:inset 1px 0 0 rgba(110,162,250,.26), inset -1px 0 0 rgba(110,162,250,.26); }
:root[data-theme="dark"] body:not(.home) .cmp thead th.prem { background:linear-gradient(180deg,rgba(79,141,247,.26),rgba(79,141,247,.12)), var(--s2); box-shadow:inset 0 3px 0 #4F8DF7, inset 1px 0 0 rgba(110,162,250,.26), inset -1px 0 0 rgba(110,162,250,.26); }
:root[data-theme="dark"] body:not(.home) .cmp .prem .cmp-num, :root[data-theme="dark"] body:not(.home) .cmp .prem .cmp-unit { color:var(--accent-text); }
:root[data-theme="dark"] body:not(.home) .cmp thead .prem .cmp-price small { color:var(--grey); }

/* >>> accent text (generated by tools/gen_dark_accents.py) */
:where(:root[data-theme="dark"] body:not(.home)) .ad-act,
:where(:root[data-theme="dark"] body:not(.home)) .an-rank,
:where(:root[data-theme="dark"] body:not(.home)) .fpin,
:where(:root[data-theme="dark"] body:not(.home)) .field:focus-within > svg:first-child,
:where(:root[data-theme="dark"] body:not(.home)) .eye:hover,
:where(:root[data-theme="dark"] body:not(.home)) .bp-code,
:where(:root[data-theme="dark"] body:not(.home)) .bp-chip,
:where(:root[data-theme="dark"] body:not(.home)) .bpe-chip-x,
:where(:root[data-theme="dark"] body:not(.home)) .aocal-day.sel .aocal-dot,
:where(:root[data-theme="dark"] body:not(.home)) .cal-av,
:where(:root[data-theme="dark"] body:not(.home)) .cal-chat,
:where(:root[data-theme="dark"] body:not(.home)) .cal-pill,
:where(:root[data-theme="dark"] body:not(.home)) .cal-row svg,
:where(:root[data-theme="dark"] body:not(.home)) .chat-prop,
:where(:root[data-theme="dark"] body:not(.home)) .chat-back,
:where(:root[data-theme="dark"] body:not(.home)) .chat-prop-card img,
:where(:root[data-theme="dark"] body:not(.home)) .chat-prop-card .ph,
:where(:root[data-theme="dark"] body:not(.home)) .chat-prop-card small,
:where(:root[data-theme="dark"] body:not(.home)) .chat-icon-btn,
:where(:root[data-theme="dark"] body:not(.home)) .chat-quick button,
:where(:root[data-theme="dark"] body:not(.home)) .chat-appt-ico,
:where(:root[data-theme="dark"] body:not(.home)) .chat-slot span,
:where(:root[data-theme="dark"] body:not(.home)) .chat-picked span,
:where(:root[data-theme="dark"] body:not(.home)) .wheel-col:focus-visible .wheel-i.sel,
:where(:root[data-theme="dark"] body:not(.home)) .range-arrow,
:where(:root[data-theme="dark"] body:not(.home)) .chat-prop-pick,
:where(:root[data-theme="dark"] body:not(.home)) .chat-pick-item img,
:where(:root[data-theme="dark"] body:not(.home)) .chat-pick-item .ph,
:where(:root[data-theme="dark"] body:not(.home)) .chat-pick-item small,
:where(:root[data-theme="dark"] body:not(.home)) .note-ico,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-corner-ico,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-mk-txt i,
:where(:root[data-theme="dark"] body:not(.home)) .rl svg,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-photo .ph,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-price b,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-dist,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-specs svg,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-ext:hover,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-appt-ico,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-qv-more,
:where(:root[data-theme="dark"] body:not(.home)) .crm-match-img .ph,
:where(:root[data-theme="dark"] body:not(.home)) .chip.st-new,
:where(:root[data-theme="dark"] body:not(.home)) .dh-today h2 svg,
:where(:root[data-theme="dark"] body:not(.home)) .dh-today-ico,
:where(:root[data-theme="dark"] body:not(.home)) .aod-ico,
:where(:root[data-theme="dark"] body:not(.home)) .ph-item .link,
:where(:root[data-theme="dark"] body:not(.home)) .my-thumb .ph,
:where(:root[data-theme="dark"] body:not(.home)) .lst-page .st-card h2 svg,
:where(:root[data-theme="dark"] body:not(.home)) .drop > svg,
:where(:root[data-theme="dark"] body:not(.home)) .pick-locate button.on,
:where(:root[data-theme="dark"] body:not(.home)) .pick-locate button.loading svg,
:where(:root[data-theme="dark"] body:not(.home)) .gm-head svg,
:where(:root[data-theme="dark"] body:not(.home)) .map-modal-card h3 svg,
:where(:root[data-theme="dark"] body:not(.home)) .up-head svg,
:where(:root[data-theme="dark"] body:not(.home)) .ph-add .plus,
:where(:root[data-theme="dark"] body:not(.home)) .ph-add.full .plus,
:where(:root[data-theme="dark"] body:not(.home)) .ph-add.full:hover .plus,
:where(:root[data-theme="dark"] body:not(.home)) .combo-menu li[aria-selected="true"],
:where(:root[data-theme="dark"] body:not(.home)) .st-btn,
:where(:root[data-theme="dark"] body:not(.home)) .nb-price,
:where(:root[data-theme="dark"] body:not(.home)) .nb-actions a,
:where(:root[data-theme="dark"] body:not(.home)) .nb-actions button,
:where(:root[data-theme="dark"] body:not(.home)) .pp .pp-price,
:where(:root[data-theme="dark"] body:not(.home)) .mp-locate button.on,
:where(:root[data-theme="dark"] body:not(.home)) .mp-locate button.loading svg,
:where(:root[data-theme="dark"] body:not(.home)) .qv-price b,
:where(:root[data-theme="dark"] body:not(.home)) .qv-dist,
:where(:root[data-theme="dark"] body:not(.home)) .qv-specs li svg,
:where(:root[data-theme="dark"] body:not(.home)) .qv-av,
:where(:root[data-theme="dark"] body:not(.home)) .bank-chip.on .bc-rate,
:where(:root[data-theme="dark"] body:not(.home)) .bs-arrow:hover,
:where(:root[data-theme="dark"] body:not(.home)) .loan-actions .link,
:where(:root[data-theme="dark"] body:not(.home)) .role-pill,
:where(:root[data-theme="dark"] body:not(.home)) .st-nav a.on,
:where(:root[data-theme="dark"] body:not(.home)) .st-initial,
:where(:root[data-theme="dark"] body:not(.home)) .st-role > svg,
:where(:root[data-theme="dark"] body:not(.home)) .sheet-table th.sortable:hover,
:where(:root[data-theme="dark"] body:not(.home)) .sheet-table th.sorted .arrow,
:where(:root[data-theme="dark"] body:not(.home)) .sfe-thumb,
:where(:root[data-theme="dark"] body:not(.home)) a,
:where(:root[data-theme="dark"] body:not(.home)) .avatar,
:where(:root[data-theme="dark"] body:not(.home)) .btn.outline,
:where(:root[data-theme="dark"] body:not(.home)) .role-card input:checked + .role-body,
:where(:root[data-theme="dark"] body:not(.home)) .error-code,
:where(:root[data-theme="dark"] body:not(.home)) .sidebar a.active,
:where(:root[data-theme="dark"] body:not(.home)) .pill,
:where(:root[data-theme="dark"] body:not(.home)) .pill.has-value .pill-btn,
:where(:root[data-theme="dark"] body:not(.home)) .pill.open .pill-btn,
:where(:root[data-theme="dark"] body:not(.home)) .pill.open .pill-chevron,
:where(:root[data-theme="dark"] body:not(.home)) .pill-menu li[aria-selected="true"],
:where(:root[data-theme="dark"] body:not(.home)) .avatar-ring,
:where(:root[data-theme="dark"] body:not(.home)) .tag.blue,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link:hover,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link:focus-visible,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link:hover .nl-ico,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link:focus-visible .nl-ico,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link.current .nl-ico,
:where(:root[data-theme="dark"] body:not(.home)) .nav-link.current,
:where(:root[data-theme="dark"] body:not(.home)) .ugc-tr,
:where(:root[data-theme="dark"] body:not(.home)) .origin-note .link,
:where(:root[data-theme="dark"] body:not(.home)) .trip-add-btn,
:where(:root[data-theme="dark"] body:not(.home)) .sidebar a.locked:hover .nav-lock,
:where(:root[data-theme="dark"] body:not(.home)) .pal-row.on,
:where(:root[data-theme="dark"] body:not(.home)) .pal-row:hover,
:where(:root[data-theme="dark"] body:not(.home)) .trip-pop-ico,
:where(:root[data-theme="dark"] body:not(.home)) .trip-pop-newbtn,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-cur,
:where(:root[data-theme="dark"] body:not(.home)) .cmp .prem .cmp-num,
:where(:root[data-theme="dark"] body:not(.home)) .cmp-intro-tags li,
:where(:root[data-theme="dark"] body:not(.home)) .sub-cardico,
:where(:root[data-theme="dark"] body:not(.home)) .sub-change summary,
:where(:root[data-theme="dark"] body:not(.home)) .trip-thumb .ph,
:where(:root[data-theme="dark"] body:not(.home)) .rv h2 svg,
:where(:root[data-theme="dark"] body:not(.home)) .rv-reply svg,
:where(:root[data-theme="dark"] body:not(.home)) .case-ico { color:var(--accent-text); }
/* <<< accent text */
