/* ============================================================
 * TRAVEL ENGINE TOKEN CONTRACT
 * These neutral values ARE the app when no theme is installed.
 * Themes overwrite them at runtime (never edit for a theme).
 * ============================================================ */
:root {
  /* global surface */
  --bg: #F7F5F0;
  --bg-2: #EEF2F4;
  --ink: #26242B;
  --ink-soft: #4C4954;
  --muted: #8B8794;
  --card: #FFFFFF;
  --line: #E8E4DC;
  --accent: #5B7A8C;        /* neutral slate-blue — deliberately calm */
  --accent-deep: #415866;
  --wash: #EEF2F4;
  --sun: #D9A441;
  --header: #FFFFFF;
  --control: #E8EFF2;
  --selected: #F4E5B8;
  --illustration: #D9A441;
  --danger: #C25B4E;
  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 8px 28px rgba(30, 28, 36, 0.10);
  --font-display: ui-rounded, "SF Pro Rounded", "Nunito", "Quicksand", -apple-system, system-ui, sans-serif; /* rounded, matching the splash mockups; swap in the exact font file when known */
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --gutter: 11px;
  --ease-glide: cubic-bezier(.2, .7, .3, 1);
  --ease-settle: cubic-bezier(.2, .72, .24, 1);
  --ease-spring: cubic-bezier(.2, 1.5, .4, 1);

  /* per-traveller (neutral defaults; theme.js generates real blocks
     under html[data-traveller="…"]) */
  --tv-accent: var(--accent);
  --tv-accent-deep: var(--accent-deep);
  --tv-wash: var(--wash);
  --tv-ring: #B9C6CE;
  --tv-player-frame: linear-gradient(160deg, #E6ECEF, #C9D5DB);
  --tv-bar-fill: var(--accent);
  --tv-note-bg: #F0F3F5;

  /* layout */
  --tab-h: calc(64px + env(safe-area-inset-bottom, 0px));
  --maxw: 640px;
}
