/* #region zone:map.style.tokens — โทเค็นดีไซน์ของเว็บแผนที่ (สีตระกูล Super_T + กระจกลอยเหนือแผนที่) */
/* The Super_T teal/ink palette (apps/desk/DESIGN.md) re-tuned for a map-first surface: panels float over a
   live map as frosted glass, so legibility comes from the backdrop blur plus an opaque-enough fill. Text pairs
   are >= 4.5:1 on the glass fill in both themes. Anuphan (the Desk face) covers Thai and Latin. */
@font-face {
  font-family: 'Anuphan';
  src: url('fonts/Anuphan.ttf') format('truetype');
  font-weight: 100 700;
  font-display: swap;
}
:root {
  --fs-number: 44px;
  --fs-stat: 32px;
  color-scheme: light dark;
  --font: 'Anuphan', 'Noto Sans Thai', 'Leelawadee UI', system-ui, sans-serif;
  --fs-xs: 0.75rem;
  --fs-sm: 0.8125rem;
  --fs-md: 0.9375rem;
  --fs-lg: 1.0625rem;
  --fs-xl: 1.25rem;
  --fs-2xl: 1.75rem;
  --fs-hero: 3.5rem;
  --ink: #0b2029;
  --text: #0b2029;
  --muted: #3f5559;
  --faint: #52676b;
  --accent: #007f78;
  --accent-strong: #006a64;
  --on-accent: #ffffff;
  --accent-soft: rgba(0, 127, 120, 0.12);
  --map-bg: #e6eeeb;
  /* Solid surface for content that must NOT float translucently over the map (the sign-in card's
     form panel) — everything else on Map is deliberately glass; this is the one exception, added
     2026-09-26 for the shared login-shell.css (apps/desk/DESIGN.md-style token, one home here). */
  --panel: #ffffff;
  --glass: rgba(248, 251, 250, 0.8);
  --glass-strong: rgba(250, 252, 251, 0.92);
  --glass-line: rgba(255, 255, 255, 0.7);
  --glass-edge: rgba(11, 32, 41, 0.08);
  --glass-shadow: 0 18px 40px -12px rgba(11, 32, 41, 0.28), 0 2px 8px rgba(11, 32, 41, 0.08);
  --card: rgba(255, 255, 255, 0.66);
  --card-line: rgba(11, 32, 41, 0.07);
  --track: rgba(11, 32, 41, 0.08);
  --level-clear: #0f7a6c;
  --level-busy: #8e5a0a;
  --level-heavy: #b3142e;
  --rain: #2f74c0;
  --temp: #d2651f;
  --warn-bg: rgba(214, 140, 0, 0.14);
  --warn-line: rgba(168, 106, 12, 0.35);
  --warn-ink: #6b4200;
  --danger: #a8102c;
  --danger-soft: rgba(168, 16, 44, 0.09);
  --tap-min: 44px;
  --on-heavy: #ffffff;
  --r-panel: 24px;
  --r-card: 18px;
  --r-control: 14px;
  --r-pill: 999px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --t-fast: 160ms;
  --t-med: 240ms;
}
@media (prefers-color-scheme: dark) {
  :root {
    --ink: #e9f2ef;
    --text: #e9f2ef;
    --muted: #b3c6c2;
    --faint: #9db3ae;
    --accent: #3cc7b7;
    --accent-strong: #5fd6c8;
    --on-accent: #04181c;
    --accent-soft: rgba(60, 199, 183, 0.16);
    --map-bg: #0f2129;
    --panel: #122a33;
    --glass: rgba(10, 27, 33, 0.74);
    --glass-strong: rgba(10, 27, 33, 0.9);
    --glass-line: rgba(255, 255, 255, 0.1);
    --glass-edge: rgba(0, 0, 0, 0.35);
    --glass-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.6), 0 2px 8px rgba(0, 0, 0, 0.3);
    --card: rgba(255, 255, 255, 0.06);
    --card-line: rgba(255, 255, 255, 0.08);
    --track: rgba(255, 255, 255, 0.1);
    --level-clear: #2fb39f;
    --level-busy: #e0a03a;
    --level-heavy: #f0566f;
    --rain: #74b2f0;
    --temp: #f59a5e;
    --warn-bg: rgba(240, 170, 40, 0.16);
    --warn-line: rgba(240, 170, 40, 0.35);
    --warn-ink: #ffd591;
    --danger: #ff8fa1;
    --danger-soft: rgba(255, 143, 161, 0.12);
    --on-heavy: #04181c;
  }
}
/* #endregion */
/* #region zone:map.style.body-input-token — ขนาดช่องกรอกเท่าขนาดอ่านของหน้า */
html:root {
  --u-body: var(--fs-md);
}
/* #endregion */
