/* TOM global Day/Night contract.
   Loaded last by every full-page TOM template except booking_v2, whose mature
   operator theme uses the same data-theme/localStorage contract already. */
:root[data-tom-theme-ready] {
  color-scheme: dark;
  --tom-page: #0e1320;
  --tom-page-raised: #131b2a;
  --tom-surface: #182235;
  --tom-surface-soft: #202c40;
  --tom-input: #111a29;
  --tom-border: #34445a;
  --tom-border-strong: #52657e;
  --tom-ink: #f2f5f9;
  --tom-ink-secondary: #c3cedc;
  --tom-ink-muted: #9cabbc;
  --tom-accent: #38c9b5;
  --tom-accent-strong: #65e2d0;
  --tom-focus: #ffdd00;
  --tom-shadow: 0 10px 30px rgba(0,0,0,.28);

  /* Shared tom-ui.css aliases used by CRM, sales and Admin descendants. */
  --bg-page: var(--tom-page);
  --bg-card: var(--tom-surface);
  --bg-card-soft: var(--tom-surface-soft);
  --border-soft: var(--tom-border);
  --border-subtle: var(--tom-border);
  --ink-primary: var(--tom-ink);
  --ink-secondary: var(--tom-ink-secondary);
  --ink-muted: var(--tom-ink-muted);
  --ink-subtle: var(--tom-ink-muted);
  --ink-on-dark: #f4f7fb;

  /* Portal aliases: one palette, no page-by-page fork. */
  --pt-bg-deep: #0e1320;
  --pt-bg-input: #111a29;
  --pt-bg-raised: #182235;
  --pt-bg-grad: linear-gradient(180deg,#131b2a 0%,#0e1320 100%);
  --pt-panel-bg: #182235;
  --pt-panel-bg-hover: #202c40;
  --pt-border: #34445a;
  --pt-border-strong: #52657e;
  --pt-hairline: rgba(255,255,255,.09);
  --pt-text: #f2f5f9;
  --pt-text-soft: #c3cedc;
  --pt-label: #b2c0d0;
  --pt-muted: #9cabbc;
  --pt-muted-2: #8493a6;
  --pt-muted-3: #738398;
}

:root[data-theme="light"][data-tom-theme-ready] {
  color-scheme: light;
  --tom-page: #eaf0f6;
  --tom-page-raised: #f3f6fa;
  --tom-surface: #ffffff;
  --tom-surface-soft: #edf3f8;
  --tom-input: #ffffff;
  --tom-border: #b8c6d6;
  --tom-border-strong: #8294aa;
  --tom-ink: #172033;
  --tom-ink-secondary: #405168;
  --tom-ink-muted: #596b80;
  --tom-accent: #087f71;
  --tom-accent-strong: #006f62;
  --tom-shadow: 0 8px 24px rgba(18,38,63,.10);

  --bg-page: var(--tom-page);
  --bg-card: var(--tom-surface);
  --bg-card-soft: var(--tom-surface-soft);
  --border-soft: var(--tom-border);
  --border-subtle: var(--tom-border);
  --ink-primary: var(--tom-ink);
  --ink-secondary: var(--tom-ink-secondary);
  --ink-muted: var(--tom-ink-muted);
  --ink-subtle: var(--tom-ink-muted);
  --ink-on-dark: #f4f7fb;

  --pt-bg-deep: #eaf0f6;
  --pt-bg-input: #ffffff;
  --pt-bg-raised: #ffffff;
  --pt-bg-grad: linear-gradient(180deg,#f3f6fa 0%,#eaf0f6 100%);
  --pt-panel-bg: #ffffff;
  --pt-panel-bg-hover: #edf3f8;
  --pt-border: #b8c6d6;
  --pt-border-strong: #8294aa;
  --pt-hairline: rgba(18,38,63,.10);
  --pt-text: #172033;
  --pt-text-soft: #405168;
  --pt-label: #405168;
  --pt-muted: #596b80;
  --pt-muted-2: #6b7b8f;
  --pt-muted-3: #748397;
}

:root[data-tom-theme-ready] body {
  background: var(--tom-page) !important;
  color: var(--tom-ink) !important;
}
:root[data-tom-theme-ready] body,
:root[data-tom-theme-ready] button,
:root[data-tom-theme-ready] input,
:root[data-tom-theme-ready] select,
:root[data-tom-theme-ready] textarea {
  font-family: var(--font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

/* Global anchors remain navy in both modes. */
:root[data-tom-theme-ready] header,
:root[data-tom-theme-ready] .topbar,
:root[data-tom-theme-ready] .admin-top h1,
:root[data-tom-theme-ready] .admin-top h1 .crumb {
  color: #eaf2ff !important;
}

:root[data-tom-theme-ready] .admin-top,
:root[data-tom-theme-ready] .portal-top {
  background: linear-gradient(180deg,#142235 0%,#0e1928 100%) !important;
  border-color: #2a3a50 !important;
  color: #f4f7fb !important;
}
:root[data-tom-theme-ready] header a,
:root[data-tom-theme-ready] header button,
:root[data-tom-theme-ready] .topbar a,
:root[data-tom-theme-ready] .portal-top a { color: #d7e0ea !important; }
:root[data-tom-theme-ready] [data-master-form] .mf-hero h1,
:root[data-tom-theme-ready] [data-master-form] .mf-hero h2,
:root[data-tom-theme-ready] [data-master-form] .mf-hero h3,
:root[data-tom-theme-ready] [data-master-form] .mf-hero p,
:root[data-tom-theme-ready] [data-master-form] .mf-hero .sub,
:root[data-tom-theme-ready] [data-master-form] .mf-hero a {
  color: #f4f7fb !important;
}
:root[data-tom-theme-ready] [data-master-form] .mf-hero [class$="-actions"] a,
:root[data-tom-theme-ready] [data-master-form] .mf-hero [class$="-actions"] button {
  background: var(--tom-surface) !important;
  border-color: var(--tom-border-strong) !important;
  color: var(--tom-ink) !important;
}

/* Shared work surfaces used across Admin, portals and standalone modules. */
:root[data-tom-theme-ready] .panel,
:root[data-tom-theme-ready] section.panel,
:root[data-tom-theme-ready] .card,
:root[data-tom-theme-ready] .stat-card,
:root[data-tom-theme-ready] .metric-card,
:root[data-tom-theme-ready] .action-card,
:root[data-tom-theme-ready] .team-card,
:root[data-tom-theme-ready] .content-card,
:root[data-tom-theme-ready] .form-card,
:root[data-tom-theme-ready] .login-card,
:root[data-tom-theme-ready] form.login,
:root[data-tom-theme-ready] .auth-card,
:root[data-tom-theme-ready] .table-wrap,
:root[data-tom-theme-ready] .table-card,
:root[data-tom-theme-ready] .entry,
:root[data-tom-theme-ready] .admin-sidebar,
:root[data-tom-theme-ready] .sidebar,
:root[data-tom-theme-ready] main [class$="-card"],
:root[data-tom-theme-ready] main [class*="-card "],
:root[data-tom-theme-ready] main [class$="-panel"],
:root[data-tom-theme-ready] main [class*="-panel "],
:root[data-tom-theme-ready] main [class$="-table-wrap"],
:root[data-tom-theme-ready] main [class*="-table-wrap "] {
  background: var(--tom-surface) !important;
  border-color: var(--tom-border) !important;
  color: var(--tom-ink) !important;
}
:root[data-tom-theme-ready] .entry { box-shadow: var(--tom-shadow); }
:root[data-tom-theme-ready] .home-wrap { color: var(--tom-ink) !important; }
:root[data-tom-theme-ready] .home-mark .name,
:root[data-tom-theme-ready] .home-wrap .lede,
:root[data-tom-theme-ready] .home-wrap footer { color: var(--tom-ink-secondary) !important; }
:root[data-tom-theme-ready] .ah-card,
:root[data-tom-theme-ready] .ah-footer,
:root[data-tom-theme-ready] .ah-guide span {
  background: var(--tom-surface) !important;
  border-color: var(--tom-border) !important;
  color: var(--tom-ink-secondary) !important;
}
:root[data-tom-theme-ready] .ah-link {
  background: var(--tom-input) !important;
  border-color: var(--tom-border) !important;
  color: var(--tom-ink-secondary) !important;
}
:root[data-tom-theme-ready] .ah-link.primary {
  background: color-mix(in srgb,var(--tom-accent) 10%,var(--tom-surface)) !important;
  border-color: color-mix(in srgb,var(--tom-accent) 55%,var(--tom-border)) !important;
  color: var(--tom-accent-strong) !important;
}
:root[data-tom-theme-ready] main [class$="-specs"],
:root[data-tom-theme-ready] main fieldset,
:root[data-tom-theme-ready] main details {
  background: var(--tom-surface-soft) !important;
  border-color: var(--tom-border) !important;
  color: var(--tom-ink-secondary) !important;
}
:root[data-tom-theme-ready] main [class$="-empty"],
:root[data-tom-theme-ready] main [class$="-count"],
:root[data-tom-theme-ready] main [class$="-meta"],
:root[data-tom-theme-ready] main [class$="-hint"],
:root[data-tom-theme-ready] main [class$="-help"],
:root[data-tom-theme-ready] main [class$="-sub"] { color: var(--tom-ink-secondary) !important; }
:root[data-tom-theme-ready] .action-card.primary,
:root[data-tom-theme-ready] button.primary,
:root[data-tom-theme-ready] a.primary {
  background: var(--tom-accent) !important;
  border-color: var(--tom-accent) !important;
  color: #071b1a !important;
}
:root[data-tom-theme-ready] .admin-sidebar { box-shadow: 8px 0 24px rgba(18,38,63,.06); }

:root[data-tom-theme-ready] h1,
:root[data-tom-theme-ready] h2,
:root[data-tom-theme-ready] h3,
:root[data-tom-theme-ready] h4,
:root[data-tom-theme-ready] legend,
:root[data-tom-theme-ready] .title,
:root[data-tom-theme-ready] .card-title { color: var(--tom-ink) !important; }
:root[data-tom-theme-ready] p,
:root[data-tom-theme-ready] label,
:root[data-tom-theme-ready] .subtitle,
:root[data-tom-theme-ready] .muted,
:root[data-tom-theme-ready] .help,
:root[data-tom-theme-ready] .hint,
:root[data-tom-theme-ready] small { color: var(--tom-ink-secondary); }

:root[data-tom-theme-ready] input:not([type="checkbox"]):not([type="radio"]),
:root[data-tom-theme-ready] select,
:root[data-tom-theme-ready] textarea {
  background: var(--tom-input) !important;
  color: var(--tom-ink) !important;
  border-color: var(--tom-border-strong) !important;
}
:root[data-tom-theme-ready] input::placeholder,
:root[data-tom-theme-ready] textarea::placeholder { color: var(--tom-ink-muted) !important; opacity: 1; }
:root[data-tom-theme-ready] input:-webkit-autofill,
:root[data-tom-theme-ready] input:-webkit-autofill:hover,
:root[data-tom-theme-ready] input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--tom-ink) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--tom-input) inset !important;
  caret-color: var(--tom-ink) !important;
}
:root[data-theme="light"][data-tom-theme-ready] form.login .logo svg text:last-child {
  fill: var(--tom-ink);
}
:root[data-tom-theme-ready] input:focus,
:root[data-tom-theme-ready] select:focus,
:root[data-tom-theme-ready] textarea:focus,
:root[data-tom-theme-ready] button:focus-visible,
:root[data-tom-theme-ready] a:focus-visible {
  outline: 3px solid var(--tom-focus) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 1px #101820 !important;
}

:root[data-tom-theme-ready] table { color: var(--tom-ink); }
:root[data-tom-theme-ready] th {
  background: var(--tom-surface-soft) !important;
  color: var(--tom-ink-secondary) !important;
  border-color: var(--tom-border) !important;
}
:root[data-tom-theme-ready] td { border-color: var(--tom-border) !important; }
:root[data-tom-theme-ready] tbody tr:nth-child(even) { background: color-mix(in srgb,var(--tom-surface-soft) 56%,transparent); }
:root[data-tom-theme-ready] tbody tr:hover { background: color-mix(in srgb,var(--tom-accent) 10%,var(--tom-surface)) !important; }

:root[data-tom-theme-ready] a:not([class*="btn"]):not(.primary) { color: var(--tom-accent-strong); }
:root[data-theme="light"][data-tom-theme-ready] a:not([class*="btn"]):not(.primary) { color: #075f96; }
:root[data-tom-theme-ready] body header a,
:root[data-tom-theme-ready] body header button:not(.primary),
:root[data-tom-theme-ready] .cp-nav a,
:root[data-tom-theme-ready] nav.cp-subnav a {
  color: #d7e0ea !important;
}
:root[data-tom-theme-ready] .cp-nav a.active,
:root[data-tom-theme-ready] nav.cp-subnav a.active {
  background: #f3f6fa !important;
  color: #172033 !important;
}
:root[data-tom-theme-ready] hr { border-color: var(--tom-border); }
:root[data-tom-theme-ready] code,
:root[data-tom-theme-ready] pre { background: var(--tom-input) !important; color: var(--tom-ink-secondary) !important; border-color: var(--tom-border) !important; }

/* Convert the most common legacy literal surfaces without touching status fills. */
:root[data-theme="light"][data-tom-theme-ready] [style*="background:#1a1a2e"],
:root[data-theme="light"][data-tom-theme-ready] [style*="background: #1a1a2e"],
:root[data-theme="light"][data-tom-theme-ready] [style*="background:#16162a"],
:root[data-theme="light"][data-tom-theme-ready] [style*="background: #16162a"],
:root[data-theme="light"][data-tom-theme-ready] [style*="background:#111827"],
:root[data-theme="light"][data-tom-theme-ready] [style*="background: #111827"] { background: var(--tom-surface) !important; }
:root[data-theme="dark"][data-tom-theme-ready] [style*="background:#fff"],
:root[data-theme="dark"][data-tom-theme-ready] [style*="background: #fff"],
:root[data-theme="dark"][data-tom-theme-ready] [style*="background:#ffffff"],
:root[data-theme="dark"][data-tom-theme-ready] [style*="background: #ffffff"] { background: var(--tom-surface) !important; }
:root[data-theme="light"][data-tom-theme-ready] [style*="color:#fff"],
:root[data-theme="light"][data-tom-theme-ready] [style*="color: #fff"],
:root[data-theme="light"][data-tom-theme-ready] [style*="color:#eee"],
:root[data-theme="light"][data-tom-theme-ready] [style*="color: #eee"] { color: var(--tom-ink) !important; }
:root[data-theme="dark"][data-tom-theme-ready] [style*="color:#1f2933"],
:root[data-theme="dark"][data-tom-theme-ready] [style*="color: #1f2933"] { color: var(--tom-ink) !important; }

/* Full-screen Map keeps its spatial layout but receives real Day surfaces. */
:root[data-theme="light"][data-tom-theme-ready] #tomMapFullscreenCanvas {
  background: #dfe8f0 !important;
}
:root[data-theme="light"][data-tom-theme-ready] #mapDriverPanel,
:root[data-theme="light"][data-tom-theme-ready] #mapBookingPanel {
  background: rgba(248,250,252,.97) !important;
  border-color: #aebdcd !important;
  color: #172033 !important;
  box-shadow: 3px 0 18px rgba(18,38,63,.12) !important;
}
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row {
  background: #ffffff !important;
  border-color: #8294aa;
  color: #172033 !important;
}
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row:hover,
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row:focus-visible,
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row[aria-current="true"] {
  background: #e7f2f0 !important;
}
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row .cs { color:#172033 !important; }
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row .veh,
:root[data-theme="light"][data-tom-theme-ready] .mp-driver-row .time,
:root[data-theme="light"][data-tom-theme-ready] .map-panel-h { color:#596b80 !important; }
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail {
  background: rgba(255,255,255,.97) !important;
  border-color: #9aacc0 !important;
  color: #172033 !important;
  box-shadow: 0 18px 48px rgba(18,38,63,.18) !important;
}
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-title p,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-grid dt,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-job-route,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-section { color:#596b80 !important; }
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-grid dd,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-status { color:#26374d !important; }
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-grid,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-grid dt,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-grid dd { border-color:#c5d1df !important; }
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-job,
:root[data-theme="light"][data-tom-theme-ready] #mapDriverDetail .mdd-actions a:not(.primary) {
  background:#f3f6fa !important;
  border-color:#b8c6d6 !important;
  color:#172033 !important;
}
:root[data-tom-theme-ready] #tomMapTopbar .title,
:root[data-tom-theme-ready] #tomMapTopbar a.back { color:#65e2d0 !important; }

/* Theme control: inline in a header where possible, unobtrusively floating otherwise. */
.tom-global-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #506176;
  border-radius: 999px;
  background: #17263a;
  color: #f4f7fb;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.tom-global-theme-toggle:hover { border-color: #65e2d0; color: #65e2d0; }
.tom-global-theme-toggle--inline { margin-left: auto; flex: 0 0 auto; }
.tom-global-theme-toggle--floating {
  position: fixed;
  z-index: 950;
  left: 18px;
  bottom: 18px;
  box-shadow: var(--tom-shadow);
}

@media (max-width: 700px) {
  .tom-global-theme-toggle span:last-child { display: none; }
  .tom-global-theme-toggle { width: 34px; padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  :root[data-tom-theme-ready] *,
  :root[data-tom-theme-ready] *::before,
  :root[data-tom-theme-ready] *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* User-audit contrast corrections, shared by both supported palettes. */
:root[data-tom-theme-ready] table.am-list td.mono { color:var(--tom-ink); }
:root[data-tom-theme-ready] .admin-nav-link.active,
:root[data-tom-theme-ready] .admin-nav-home.active { background:var(--tom-surface-soft); color:var(--tom-ink); }
:root[data-tom-theme-ready] a.am-new,
:root[data-tom-theme-ready] button.am-go { background:#006b61; color:#fff !important; }
:root[data-tom-theme-ready] .admin-nav-label { color:inherit; }
