@font-face {
  font-family: Geist;
  src: url("/fonts/Geist.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: Atkinson;
  src: url("/fonts/Atkinson-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: Atkinson;
  src: url("/fonts/Atkinson-Italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: block;
}
@font-face {
  font-family: Atkinson;
  src: url("/fonts/Atkinson-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: block;
}

/* Daylight — primary. High contrast, outdoor-readable. Not green, not terracotta. */
:root, [data-theme="daylight"] {
  --bg: #EEF1F6;
  --bg2: #FFFFFF;
  --bg3: #E3E8F0;
  --ink: #0E121B;
  --muted: #4A5568;
  --faint: #6B7380;
  --line: #D5DCE6;
  --accent: #2A4DFF;
  --accent-ink: #1A33C7;
  --accent-soft: #E4E9FF;
  --on-accent: #FFFFFF;
  --high: #D61F2C;
  --high-soft: #FDE8EA;
  --med: #B45309;
  --med-soft: #FFF1D6;
  --normal: #5B6573;
  --normal-soft: #E8ECF1;
  --ok: #0B7A4B;
  --ok-soft: #DDF6EA;
  --recall: #9D1F6A;
  --recall-soft: #F8E4F0;
  --asher: #2A4DFF;
  --lance: #C026D3;
  --shadow: 0 1px 2px rgba(14, 18, 27, .06), 0 8px 24px rgba(14, 18, 27, .06);
  --tab-bg: rgba(255,255,255,.92);
  --status: #0E121B;
  --toast-bg: #0E121B;
  --toast-ink: #F7F8FA;
  --map-bg: #E8EEF8;
  --map-line: #2A4DFF;
  --dim: rgba(14, 18, 27, .44);
}

/* Night shift — charcoal + periwinkle, no green. */
[data-theme="night"] {
  --bg: #10131A;
  --bg2: #1B202B;
  --bg3: #262C3A;
  --ink: #F4F6FA;
  --muted: #B4BCC9;
  --faint: #8B93A3;
  --line: #2E3544;
  --accent: #8BA4FF;
  --accent-ink: #C5D0FF;
  --accent-soft: #242C4A;
  --on-accent: #10131A;
  --high: #FF6B73;
  --high-soft: #3A1C22;
  --med: #F0B429;
  --med-soft: #3A2E14;
  --normal: #9AA3B2;
  --normal-soft: #252A35;
  --ok: #3DDB97;
  --ok-soft: #143528;
  --recall: #F472B6;
  --recall-soft: #3A1A2C;
  --asher: #8BA4FF;
  --lance: #E879F9;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 28px rgba(0,0,0,.28);
  --tab-bg: rgba(16, 19, 26, .92);
  --status: #F4F6FA;
  --toast-bg: #F4F6FA;
  --toast-ink: #10131A;
  --map-bg: #161B26;
  --map-line: #8BA4FF;
  --dim: rgba(0, 0, 0, .55);
}

/* Sun — pale butter + deep royal ink. Built for glare. */
[data-theme="sun"] {
  --bg: #FFF4CC;
  --bg2: #FFFcf3;
  --bg3: #F3E3A4;
  --ink: #161208;
  --muted: #3F3728;
  --faint: #5C5342;
  --line: #E4D18A;
  --accent: #1B3FA8;
  --accent-ink: #152F80;
  --accent-soft: #D9E2FF;
  --on-accent: #FFFFFF;
  --high: #B00020;
  --high-soft: #FFD4DA;
  --med: #8A4B00;
  --med-soft: #FFE0A8;
  --normal: #4A4538;
  --normal-soft: #EFE4C0;
  --ok: #0A5C38;
  --ok-soft: #C8F0DB;
  --recall: #8B1760;
  --recall-soft: #F8D6E8;
  --asher: #1B3FA8;
  --lance: #9C1A8A;
  --shadow: 0 1px 2px rgba(22, 18, 8, .08), 0 8px 22px rgba(22, 18, 8, .08);
  --tab-bg: rgba(255, 252, 243, .94);
  --status: #161208;
  --toast-bg: #161208;
  --toast-ink: #FFF8E0;
  --map-bg: #F6E9B8;
  --map-line: #1B3FA8;
  --dim: rgba(22, 18, 8, .42);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
  background: #0A0A0A;
  color: var(--ink);
  font-family: Atkinson, Geist, sans-serif;
  font-size: 15px;
  line-height: 1.35;
  -webkit-font-smoothing: antialiased;
}
.phone {
  width: 390px;
  height: 844px;
  background: var(--bg);
  color: var(--ink);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.status {
  height: 52px;
  padding: 12px 22px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: Geist, sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -.02em;
  color: var(--status);
  flex-shrink: 0;
}
.status .icons { display: flex; align-items: center; gap: 6px; }
.status svg { display: block; }
.island {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 118px;
  height: 32px;
  background: #0A0A0A;
  border-radius: 20px;
}

/* Header */
.top {
  padding: 4px 16px 10px;
  flex-shrink: 0;
}
.brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.brand {
  font-family: Geist, sans-serif;
  font-weight: 650;
  font-size: 15px;
  letter-spacing: -.03em;
}
.who {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: Geist, sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--on-accent);
  display: grid;
  place-items: center;
  font-family: Geist, sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: -.02em;
}
.avatar.lance { background: var(--lance); color: #fff; }
.avatar.asher { background: var(--asher); color: #fff; }
.avatar.sky { background: var(--ink); color: var(--bg2); }
[data-theme="night"] .avatar.sky { color: #10131A; }
.title {
  font-family: Geist, sans-serif;
  font-weight: 680;
  font-size: 24px;
  letter-spacing: -.045em;
  line-height: 1.1;
  margin-top: 6px;
}
.sub {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12.5px;
  font-family: Atkinson, sans-serif;
}
.pill-row { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; align-items: center; }
.pill {
  font-family: Geist, sans-serif;
  font-size: 11.5px;
  font-weight: 650;
  letter-spacing: .01em;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--bg3);
  color: var(--ink);
  border: 1px solid transparent;
}
.pill.live { background: var(--accent-soft); color: var(--accent-ink); }

/* Scroll */
.scroll {
  flex: 1;
  overflow: hidden;
  padding: 0 14px 8px;
}

/* Cluster */
.cluster {
  font-family: Geist, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--faint);
  padding: 6px 4px 4px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.cluster span { font-weight: 600; letter-spacing: 0; text-transform: none; font-family: Atkinson, sans-serif; font-size: 12px; }

/* Job card */
.card {
  background: var(--bg2);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 6px 10px 6px 13px;
  margin-bottom: 6px;
  position: relative;
  overflow: hidden;
}
.card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 5px;
  background: var(--bar, var(--normal));
}
.card.pri-high { --bar: var(--high); }
.card.pri-med { --bar: var(--med); }
.card.pri-normal { --bar: var(--normal); }
.card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}
.builder {
  font-family: Geist, sans-serif;
  font-weight: 650;
  font-size: 15.5px;
  letter-spacing: -.03em;
  line-height: 1.15;
}
.addr {
  margin-top: 2px;
  font-size: 13.5px;
  color: var(--ink);
  font-weight: 400;
}
.pkg {
  margin-top: 4px;
  font-family: Geist, sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--accent-ink);
}
.notes {
  margin-top: 3px;
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.meta {
  margin-top: 4px;
  font-size: 11px;
  color: var(--faint);
  font-family: Geist, sans-serif;
  font-weight: 500;
}
.flag {
  flex-shrink: 0;
  font-family: Geist, sans-serif;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 4px 7px;
  border-radius: 6px;
  line-height: 1;
}
.flag.high { background: var(--high-soft); color: var(--high); }
.flag.med { background: var(--med-soft); color: var(--med); }
.flag.normal { background: var(--normal-soft); color: var(--normal); }
.unfin {
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--recall-soft);
  color: var(--recall);
  font-family: Geist, sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 8px;
  border-radius: 8px;
}
.unfin i { font-style: normal; font-weight: 650; }

/* Buttons */
.btn {
  font-family: Geist, sans-serif;
  font-weight: 650;
  font-size: 13px;
  letter-spacing: -.02em;
  border: 0;
  border-radius: 11px;
  padding: 8px 11px;
  background: var(--bg3);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
}
.btn-primary { background: var(--accent); color: var(--on-accent); }
.btn-eta { background: var(--accent-soft); color: var(--accent-ink); flex: 1; }
.btn-recall { background: var(--recall-soft); color: var(--recall); flex: 1; }
.btn-ghost { background: transparent; color: var(--muted); }
.btn-danger { background: var(--high-soft); color: var(--high); }
.btn-ok { background: var(--ok-soft); color: var(--ok); }
.btn-row { display: flex; gap: 8px; margin-top: 8px; }
.btn.wide { width: 100%; }

/* Segmented */
.seg {
  display: flex;
  background: var(--bg3);
  border-radius: 12px;
  padding: 3px;
  gap: 2px;
}
.seg button {
  flex: 1;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-family: Geist, sans-serif;
  font-weight: 650;
  font-size: 13px;
  padding: 8px 6px;
  border-radius: 10px;
  letter-spacing: -.02em;
}
.seg button.on {
  background: var(--bg2);
  color: var(--ink);
  box-shadow: 0 1px 3px rgba(14,18,27,.12);
}

/* Days */
.days {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}
.day {
  flex: 1;
  text-align: center;
  background: var(--bg2);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 5px 0 5px;
  font-family: Geist, sans-serif;
}
.day .dow { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--faint); }
.day .num { font-size: 16px; font-weight: 700; letter-spacing: -.03em; margin-top: 1px; }
.day.on { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.day.on .dow, .day.on .num { color: var(--on-accent); }
.day.today:not(.on) { border-color: var(--accent); }
.day .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); margin: 3px auto 0; }
.day.on .dot { background: var(--on-accent); }
.dot.empty { display: none; }

/* Tabs */
.tabs {
  flex-shrink: 0;
  height: 66px;
  padding: 6px 18px 12px;
  display: flex;
  background: var(--tab-bg);
  border-top: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  color: var(--faint);
  font-family: Geist, sans-serif;
  font-size: 11px;
  font-weight: 650;
}
.tab.on { color: var(--accent-ink); }
.tab svg { display: block; }

/* Assign sheet */
.dim {
  position: absolute;
  inset: 0;
  background: var(--dim);
  z-index: 3;
}
.sheet {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  background: var(--bg2);
  border-radius: 22px 22px 0 0;
  padding: 10px 16px 28px;
  z-index: 4;
  box-shadow: 0 -12px 40px rgba(14,18,27,.18);
}
.handle {
  width: 40px; height: 4px; border-radius: 4px;
  background: var(--line); margin: 2px auto 12px;
}
.sheet h2 {
  font-family: Geist, sans-serif;
  font-size: 20px;
  font-weight: 680;
  letter-spacing: -.04em;
}
.field-label {
  font-family: Geist, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--faint);
  margin: 14px 0 8px;
}
.pick {
  display: flex;
  gap: 8px;
}
.pick .choice {
  flex: 1;
  border: 1.5px solid var(--line);
  background: var(--bg);
  border-radius: 14px;
  padding: 10px 10px 11px;
  text-align: left;
}
.pick .choice.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.choice .nm {
  font-family: Geist, sans-serif;
  font-weight: 700;
  font-size: 14.5px;
  letter-spacing: -.03em;
  margin-top: 6px;
}
.choice .role { font-size: 12px; color: var(--muted); }

/* Calendar stops */
.stop {
  background: var(--bg2);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 7px 11px;
  margin-bottom: 6px;
  box-shadow: var(--shadow);
}
.stop .who-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: Geist, sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px 3px 4px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.stop .who-chip.lance { background: #F7E5FB; color: #9D1F6A; }
[data-theme="night"] .stop .who-chip.lance { background: #3A1A2C; color: #F472B6; }
.stop-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.time {
  font-family: Geist, sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -.02em;
  color: var(--ink);
  white-space: nowrap;
}
.eta-live {
  font-family: Geist, sans-serif;
  font-size: 11.5px;
  font-weight: 750;
  color: var(--accent-ink);
  background: var(--accent-soft);
  padding: 4px 8px;
  border-radius: 8px;
}

/* Week grid */
.week-list .dow-h {
  font-family: Geist, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--muted);
  padding: 8px 2px 6px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.week-list .dow-h.is-today { color: var(--accent-ink); }
.chip-job {
  background: var(--bg2);
  border: 1px solid var(--line);
  border-left: 4px solid var(--asher);
  border-radius: 12px;
  padding: 8px 10px;
  margin-bottom: 6px;
}
.chip-job .t { font-family: Geist, sans-serif; font-weight: 650; font-size: 13.5px; letter-spacing: -.02em; }
.chip-job .s { font-size: 12px; color: var(--muted); margin-top: 1px; }
.chip-job.done { opacity: .72; }
.chip-job.done .t { text-decoration: none; }

/* Route / today */
.route {
  background: var(--map-bg);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px 10px 6px;
  margin-bottom: 8px;
}
.route-title {
  font-family: Geist, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--faint);
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
}
.route-title em { font-style: normal; color: var(--accent-ink); letter-spacing: 0; text-transform: none; font-weight: 700; font-size: 11.5px; }
.diagram { width: 100%; height: 70px; display: block; }
.leg {
  display: flex;
  gap: 10px;
  padding: 0 2px;
}
.rail {
  width: 16px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--bg);
  box-shadow: 0 0 0 2px var(--accent);
  flex-shrink: 0;
  z-index: 1;
}
.dot.office { background: var(--ink); box-shadow: 0 0 0 2px var(--ink); }
.dot.done { background: var(--ok); box-shadow: 0 0 0 2px var(--ok); }
.dot.next { background: var(--accent); }
.wire {
  width: 2px;
  flex: 1;
  background: var(--line);
  min-height: 14px;
}
.wire.drive { background: transparent; width: 0; border-left: 2px dashed var(--accent); opacity: .7; min-height: 28px; }
.leg-body { flex: 1; padding-bottom: 2px; min-width: 0; }
.drive-band {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--accent-ink);
  font-family: Geist, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 0 0 4px;
}
.drive-band .flash {
  background: var(--accent-soft);
  color: var(--accent-ink);
  font-size: 10.5px;
  font-weight: 750;
  padding: 2px 6px;
  border-radius: 6px;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.stop-card { padding: 8px 10px; margin-bottom: 2px; }
.done-flag {
  margin-top: 6px;
  background: var(--ok-soft);
  color: var(--ok);
  font-family: Geist, sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  padding: 6px 8px;
  border-radius: 8px;
}
.added {
  font-family: Geist, sans-serif;
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent-ink);
  background: var(--accent-soft);
  padding: 3px 7px;
  border-radius: 6px;
}

/* Notification */
.toast {
  position: absolute;
  top: 56px;
  left: 12px;
  right: 12px;
  background: var(--toast-bg);
  color: var(--toast-ink);
  border-radius: 18px;
  padding: 10px 12px 11px;
  z-index: 6;
  box-shadow: 0 12px 32px rgba(0,0,0,.28);
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.toast .app-ic {
  width: 32px; height: 32px; border-radius: 9px;
  background: var(--accent);
  color: var(--on-accent);
  display: grid; place-items: center;
  font-family: Geist, sans-serif;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
  letter-spacing: -.04em;
}
.toast .from {
  font-family: Geist, sans-serif;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
}
.toast .from span { font-weight: 500; opacity: .7; }
.toast p {
  font-size: 13.5px;
  margin-top: 2px;
  letter-spacing: -.01em;
  font-family: Atkinson, sans-serif;
}

.priv {
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
}

.hl { outline: 2px solid var(--accent); outline-offset: 0; }

.day-sum {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  background: var(--bg2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 7px 10px;
  margin-bottom: 6px;
  font-size: 12.5px;
  color: var(--muted);
}
.day-sum b { font-family: Geist, sans-serif; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.has-toast .top { padding-top: 70px; }
.top { padding: 2px 16px 8px; }

.has-toast .brand-row { visibility: hidden; height: 0; margin: 0; overflow: hidden; }
.has-toast .top { padding-top: 64px; }

.avatar.asher { color: var(--on-accent); }
.diagram .ml { stroke: var(--map-line); fill: none; }
.diagram .odot { fill: var(--ink); }
.diagram .ddot { fill: var(--ok); }
.diagram .ndot { fill: var(--map-line); stroke: var(--bg2); }
.diagram .fdot { fill: var(--map-line); opacity: .55; }
.diagram .lab-a { fill: var(--map-line); }

/* ——— New palette options (layout unchanged). Avoid FN forest/terracotta and the prior indigo/gray, night, sun. ——— */

/* Harbor — slate + teal */
[data-theme="harbor"] {
  --bg: #E6ECEE;
  --bg2: #FFFFFF;
  --bg3: #D2DCE0;
  --ink: #1B2A30;
  --muted: #3E545C;
  --faint: #5E7178;
  --line: #C5D0D4;
  --accent: #0B7F86;
  --accent-ink: #085E64;
  --accent-soft: #D3F0F2;
  --on-accent: #FFFFFF;
  --high: #C4161C;
  --high-soft: #F8D6D7;
  --med: #9A5B00;
  --med-soft: #F8E8C4;
  --normal: #5A6A70;
  --normal-soft: #E1E7E9;
  --ok: #0C6B58;
  --ok-soft: #D2F0E8;
  --recall: #9C2A6A;
  --recall-soft: #F6DCEB;
  --asher: #0B7F86;
  --lance: #B3267A;
  --shadow: 0 1px 2px rgba(27, 42, 48, .06), 0 8px 24px rgba(27, 42, 48, .07);
  --tab-bg: rgba(255,255,255,.92);
  --status: #1B2A30;
  --toast-bg: #1B2A30;
  --toast-ink: #F4F8F8;
  --map-bg: #D9E6E8;
  --map-line: #0B7F86;
  --dim: rgba(27, 42, 48, .44);
}

/* Canyon — warm sand + burnt orange (brighter and redder than FN terracotta) */
[data-theme="canyon"] {
  --bg: #F1E3CC;
  --bg2: #FBF6ED;
  --bg3: #E4D0B0;
  --ink: #2A1708;
  --muted: #634A32;
  --faint: #7A6148;
  --line: #DFC9A4;
  --accent: #D24A0F;
  --accent-ink: #9E3208;
  --accent-soft: #FFD8C2;
  --on-accent: #FFFFFF;
  --high: #C10B1A;
  --high-soft: #F8D0D3;
  --med: #8A6A00;
  --med-soft: #F3E7B0;
  --normal: #6B5B4A;
  --normal-soft: #E8DCC8;
  --ok: #17665A;
  --ok-soft: #D2EEE8;
  --recall: #8B2458;
  --recall-soft: #F4D6E4;
  --asher: #D24A0F;
  --lance: #7A2E8A;
  --shadow: 0 1px 2px rgba(42, 23, 8, .07), 0 8px 22px rgba(42, 23, 8, .08);
  --tab-bg: rgba(251, 246, 237, .94);
  --status: #2A1708;
  --toast-bg: #2A1708;
  --toast-ink: #FBF6ED;
  --map-bg: #EAD9B8;
  --map-line: #D24A0F;
  --dim: rgba(42, 23, 8, .42);
}

/* Volt — graphite + lime / chartreuse */
[data-theme="volt"] {
  --bg: #161816;
  --bg2: #232623;
  --bg3: #2E322E;
  --ink: #F4F7EC;
  --muted: #B5BBA8;
  --faint: #8B9180;
  --line: #3A3F38;
  --accent: #C8E000;
  --accent-ink: #DFF25A;
  --accent-soft: #2A3210;
  --on-accent: #161816;
  --high: #FF5C63;
  --high-soft: #3A181A;
  --med: #F0C400;
  --med-soft: #3A3210;
  --normal: #A0A498;
  --normal-soft: #2C2F2C;
  --ok: #A8E06A;
  --ok-soft: #243318;
  --recall: #FF7AD0;
  --recall-soft: #3A1A30;
  --asher: #C8E000;
  --lance: #3EE0E0;
  --shadow: 0 1px 2px rgba(0,0,0,.45), 0 10px 28px rgba(0,0,0,.3);
  --tab-bg: rgba(22, 24, 22, .92);
  --status: #F4F7EC;
  --toast-bg: #F4F7EC;
  --toast-ink: #161816;
  --map-bg: #1C1F1A;
  --map-line: #C8E000;
  --dim: rgba(0, 0, 0, .55);
}

/* Marina — navy + coral */
[data-theme="marina"] {
  --bg: #0A1B33;
  --bg2: #132744;
  --bg3: #1C3456;
  --ink: #F5F7FB;
  --muted: #B7C3D6;
  --faint: #8B9BB0;
  --line: #234066;
  --accent: #FF6B57;
  --accent-ink: #FFB0A4;
  --accent-soft: #3D2230;
  --on-accent: #0A1B33;
  --high: #FF3B5C;
  --high-soft: #3A1520;
  --med: #F4C44A;
  --med-soft: #3A3018;
  --normal: #8A9BB0;
  --normal-soft: #1C2C44;
  --ok: #3DDBA9;
  --ok-soft: #16382E;
  --recall: #FF7AD9;
  --recall-soft: #3A1A30;
  --asher: #FF6B57;
  --lance: #7AB8FF;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 28px rgba(0,0,0,.32);
  --tab-bg: rgba(10, 27, 51, .92);
  --status: #F5F7FB;
  --toast-bg: #F5F7FB;
  --toast-ink: #0A1B33;
  --map-bg: #10233F;
  --map-line: #FF6B57;
  --dim: rgba(0, 0, 0, .55);
}

/* Khaki — forest-free olive khaki + rust */
[data-theme="khaki"] {
  --bg: #E7E3D2;
  --bg2: #F5F2E6;
  --bg3: #D4CDB5;
  --ink: #2A281C;
  --muted: #5B5746;
  --faint: #6F6A56;
  --line: #CBC3A8;
  --accent: #A83A1C;
  --accent-ink: #7C2A14;
  --accent-soft: #F0D5C8;
  --on-accent: #FFFFFF;
  --high: #B10F1C;
  --high-soft: #F3D0D2;
  --med: #A17A12;
  --med-soft: #EDE0B0;
  --normal: #5E5A4A;
  --normal-soft: #E4DFD0;
  --ok: #5A5E32;
  --ok-soft: #E4E6C8;
  --recall: #8A2A50;
  --recall-soft: #F0D4E0;
  --asher: #A83A1C;
  --lance: #4A5C8A;
  --shadow: 0 1px 2px rgba(42, 40, 28, .07), 0 8px 22px rgba(42, 40, 28, .08);
  --tab-bg: rgba(245, 242, 230, .94);
  --status: #2A281C;
  --toast-bg: #2A281C;
  --toast-ink: #F5F2E6;
  --map-bg: #DDD6C0;
  --map-line: #A83A1C;
  --dim: rgba(42, 40, 28, .42);
}

/* Signal — monochrome + a single red accent */
[data-theme="signal"] {
  --bg: #F0F0F0;
  --bg2: #FFFFFF;
  --bg3: #E2E2E2;
  --ink: #111111;
  --muted: #444444;
  --faint: #6A6A6A;
  --line: #D0D0D0;
  --accent: #E10600;
  --accent-ink: #B00000;
  --accent-soft: #FFD6D4;
  --on-accent: #FFFFFF;
  --high: #E10600;
  --high-soft: #FFD6D4;
  --med: #111111;
  --med-soft: #E4E4E4;
  --normal: #5A5A5A;
  --normal-soft: #EFEFEF;
  --ok: #222222;
  --ok-soft: #E8E8E8;
  --recall: #111111;
  --recall-soft: #E8E8E8;
  --asher: #E10600;
  --lance: #111111;
  --shadow: 0 1px 2px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.06);
  --tab-bg: rgba(255,255,255,.92);
  --status: #111111;
  --toast-bg: #111111;
  --toast-ink: #F5F5F5;
  --map-bg: #E8E8E8;
  --map-line: #E10600;
  --dim: rgba(17, 17, 17, .45);
}

/* ——— Autumn palettes for Asher's views (layout unchanged). Not FN forest/terracotta, not Signal gray. ——— */

/* Pumpkin — pumpkin + cream */
[data-theme="pumpkin"] {
  --bg: #FAF0D8;
  --bg2: #FFFBF3;
  --bg3: #EDE3C8;
  --ink: #2C1A0C;
  --muted: #6A4E32;
  --faint: #856B50;
  --line: #E5D6B8;
  --accent: #E36A0F;
  --accent-ink: #B84A08;
  --accent-soft: #FFD9B8;
  --on-accent: #FFFFFF;
  --high: #C4161C;
  --high-soft: #F8D6D7;
  --med: #8A6A00;
  --med-soft: #F3E7B0;
  --normal: #6B5B4A;
  --normal-soft: #EDE4D4;
  --ok: #4F6B3A;
  --ok-soft: #E4EBC8;
  --recall: #8B2458;
  --recall-soft: #F4D6E4;
  --asher: #E36A0F;
  --lance: #7A2E5A;
  --shadow: 0 1px 2px rgba(44, 26, 12, .07), 0 8px 22px rgba(44, 26, 12, .08);
  --tab-bg: rgba(255, 251, 243, .94);
  --status: #2C1A0C;
  --toast-bg: #2C1A0C;
  --toast-ink: #FFFBF3;
  --map-bg: #F0E4C8;
  --map-line: #E36A0F;
  --dim: rgba(44, 26, 12, .42);
}

/* Maple — maple red + walnut */
[data-theme="maple"] {
  --bg: #E9DFD0;
  --bg2: #F7F0E6;
  --bg3: #D9CBB8;
  --ink: #2A1810;
  --muted: #5C4334;
  --faint: #7A5E4C;
  --line: #D4C4B0;
  --accent: #9B1B1F;
  --accent-ink: #7A1216;
  --accent-soft: #F3D4D4;
  --on-accent: #FFFFFF;
  --high: #D51020;
  --high-soft: #F8D0D3;
  --med: #A17A12;
  --med-soft: #EDE0B0;
  --normal: #5E4E42;
  --normal-soft: #E8DFD4;
  --ok: #4F6B3A;
  --ok-soft: #E4EBC8;
  --recall: #7A2A50;
  --recall-soft: #F0D4E0;
  --asher: #9B1B1F;
  --lance: #4A3A8A;
  --shadow: 0 1px 2px rgba(42, 24, 16, .07), 0 8px 22px rgba(42, 24, 16, .08);
  --tab-bg: rgba(247, 240, 230, .94);
  --status: #2A1810;
  --toast-bg: #2A1810;
  --toast-ink: #F7F0E6;
  --map-bg: #E4D8C8;
  --map-line: #9B1B1F;
  --dim: rgba(42, 24, 16, .42);
}

/* Harvest — harvest gold + deep brown */
[data-theme="harvest"] {
  --bg: #F0E4C4;
  --bg2: #FBF6E6;
  --bg3: #E4D4A8;
  --ink: #2A1C10;
  --muted: #5C4728;
  --faint: #7A6240;
  --line: #DCCBA0;
  --accent: #C8960A;
  --accent-ink: #8A6508;
  --accent-soft: #F7E7B0;
  --on-accent: #2A1C10;
  --high: #C4161C;
  --high-soft: #F8D6D7;
  --med: #8B3E16;
  --med-soft: #F0D8C8;
  --normal: #5C4E3A;
  --normal-soft: #EBE3D0;
  --ok: #4F6B3A;
  --ok-soft: #E4EBC8;
  --recall: #8B2458;
  --recall-soft: #F4D6E4;
  --asher: #C8960A;
  --lance: #7A2E5A;
  --shadow: 0 1px 2px rgba(42, 28, 16, .07), 0 8px 22px rgba(42, 28, 16, .08);
  --tab-bg: rgba(251, 246, 230, .94);
  --status: #2A1C10;
  --toast-bg: #2A1C10;
  --toast-ink: #FBF6E6;
  --map-bg: #E8D9A8;
  --map-line: #C8960A;
  --dim: rgba(42, 28, 16, .42);
}

/* Cranberry — cranberry + oatmeal */
[data-theme="cranberry"] {
  --bg: #EFE6D6;
  --bg2: #F7F2E8;
  --bg3: #E0D5C4;
  --ink: #2A1F18;
  --muted: #5A4A3E;
  --faint: #74685C;
  --line: #D8CCBA;
  --accent: #8E1537;
  --accent-ink: #6C1028;
  --accent-soft: #F3D4DE;
  --on-accent: #FFFFFF;
  --high: #C4161C;
  --high-soft: #F8D6D7;
  --med: #A17A12;
  --med-soft: #EDE0B0;
  --normal: #5E564C;
  --normal-soft: #E8E2D6;
  --ok: #4F6B3A;
  --ok-soft: #E4EBC8;
  --recall: #8E1537;
  --recall-soft: #F3D4DE;
  --asher: #8E1537;
  --lance: #4A3A8A;
  --shadow: 0 1px 2px rgba(42, 31, 24, .07), 0 8px 22px rgba(42, 31, 24, .08);
  --tab-bg: rgba(247, 242, 232, .94);
  --status: #2A1F18;
  --toast-bg: #2A1F18;
  --toast-ink: #F7F2E8;
  --map-bg: #E8DCC8;
  --map-line: #8E1537;
  --dim: rgba(42, 31, 24, .42);
}

/* Sienna — burnt sienna + charcoal (redder than FN terracotta; warm charcoal, not forest) */
[data-theme="sienna"] {
  --bg: #2C2A28;
  --bg2: #3A3734;
  --bg3: #4A4540;
  --ink: #F4EFE8;
  --muted: #C4B8AA;
  --faint: #9A9086;
  --line: #534E48;
  --accent: #C2451D;
  --accent-ink: #F0A888;
  --accent-soft: #4A2A1E;
  --on-accent: #FFFFFF;
  --high: #FF8A8E;
  --high-soft: #5C282C;
  --med: #F0C400;
  --med-soft: #3A3210;
  --normal: #B0A8A0;
  --normal-soft: #3A3834;
  --ok: #D8ECA8;
  --ok-soft: #2A3A18;
  --recall: #FF8AB0;
  --recall-soft: #3A1A28;
  --asher: #C2451D;
  --lance: #C4A0E0;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 28px rgba(0,0,0,.3);
  --tab-bg: rgba(44, 42, 40, .92);
  --status: #F4EFE8;
  --toast-bg: #F4EFE8;
  --toast-ink: #2C2A28;
  --map-bg: #332F2C;
  --map-line: #C2451D;
  --dim: rgba(0, 0, 0, .55);
}

/* Ember — darker autumn night (brown-black, not FN green-black) */
[data-theme="ember"] {
  --bg: #1A1410;
  --bg2: #2A1F18;
  --bg3: #3A2C22;
  --ink: #F6EBD8;
  --muted: #C4B09A;
  --faint: #9A8878;
  --line: #4A3A2E;
  --accent: #E8772A;
  --accent-ink: #FFB06A;
  --accent-soft: #3A2414;
  --on-accent: #1A1410;
  --high: #FF8A8E;
  --high-soft: #5A2228;
  --med: #F0C400;
  --med-soft: #3A2E10;
  --normal: #B0A090;
  --normal-soft: #2C241C;
  --ok: #D8ECA8;
  --ok-soft: #243014;
  --recall: #FF8AB0;
  --recall-soft: #3A1A28;
  --asher: #E8772A;
  --lance: #C4A0E0;
  --shadow: 0 1px 2px rgba(0,0,0,.45), 0 10px 28px rgba(0,0,0,.32);
  --tab-bg: rgba(26, 20, 16, .92);
  --status: #F6EBD8;
  --toast-bg: #F6EBD8;
  --toast-ink: #1A1410;
  --map-bg: #201A14;
  --map-line: #E8772A;
  --dim: rgba(0, 0, 0, .55);
}
