/* Parka app chrome, shared by every phone screen. Baseline semantic tokens only. */

body.screen {
  margin: 0 auto;
  max-width: 430px;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-body);
}
#root { flex: 1; display: flex; flex-direction: column; }

.icon { width: 1em; height: 1em; flex: none; }

/* iOS-style status bar, as in Baseline's app layouts */
.status { display: flex; justify-content: space-between; padding: 14px 22px 4px; font-size: 13px;
  font-weight: 600; font-variant-numeric: tabular-nums; }
.sb-right { display: flex; gap: 7px; align-items: center; }
.sb-cell { display: flex; gap: 2px; align-items: flex-end; height: 11px; }
.sb-cell i { width: 3px; background: currentColor; border-radius: 1px; }
.sb-cell i:nth-child(1) { height: 4px; } .sb-cell i:nth-child(2) { height: 6px; }
.sb-cell i:nth-child(3) { height: 8px; } .sb-cell i:nth-child(4) { height: 11px; }
.sb-5g { font-size: 11px; font-weight: 700; letter-spacing: 0.02em; }
.sb-batt { box-sizing: border-box; width: 25px; height: 12px; border: 1.5px solid currentColor;
  border-radius: 4px; padding: 1.5px; position: relative; display: block; }
.sb-batt i { display: block; height: 100%; width: 78%; background: currentColor; border-radius: 1.5px; }

.head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-3);
  padding: var(--space-4) var(--space-5) var(--space-3); }
.head h1 { font-family: var(--font-display); font-size: var(--text-2xl); letter-spacing: -0.03em;
  line-height: 1.05; margin: 0; }
.place { display: inline-flex; align-items: center; gap: 6px; margin: 6px 0 0; color: var(--text-secondary);
  font-size: var(--text-sm); }
.updated { color: var(--text-tertiary); font-size: var(--text-xs); font-variant-numeric: tabular-nums;
  white-space: nowrap; padding-bottom: 3px; }

main { flex: 1; display: flex; flex-direction: column; gap: var(--space-4);
  padding: 0 var(--space-5) var(--space-5); }

.eyebrow { font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide);
  text-transform: uppercase; color: var(--text-tertiary); margin: 0; }

/* Today */
.answer { font-family: var(--font-display); font-size: 3.25rem; line-height: 0.95; letter-spacing: -0.04em;
  margin: var(--space-2) 0 var(--space-3); }
.why { margin: 0; color: var(--text-secondary); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.wear-card .eyebrow, .wear-card .answer { color: var(--accent-default); }
.extras { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.now { display: flex; align-items: center; gap: var(--space-4); }
.now .big { font-family: var(--font-display); font-size: var(--text-4xl); letter-spacing: -0.04em; line-height: 1;
  font-variant-numeric: tabular-nums; }
.now .cond { display: flex; flex-direction: column; gap: 2px; }
.now .cond b { font-size: var(--text-base); }
.now .cond span { color: var(--text-tertiary); font-size: var(--text-sm); }
.now .glyph { font-size: 44px; color: var(--accent-default); margin-left: auto; }
.hours { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--space-1); margin-top: var(--space-3); }
.hour { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: var(--text-xs);
  color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.hour .glyph { font-size: 20px; color: var(--text-secondary); }
.hour .t { font-size: var(--text-sm); font-weight: 600; color: var(--text-primary); }
.drop { display: inline-flex; align-items: center; gap: 2px; }

/* Week: today is a sunlit card, and the rest of the week is one line of highs.
   Warmth colors are Parka tokens, a light (a) and a deep (b) for each outfit tier.
   They stay light in dark mode too, so the ink on them is always the darkest neutral. */
:root {
  --hot-a: oklch(0.94 0.085 98);   --hot-b: oklch(0.79 0.13 48);
  --warm-a: oklch(0.95 0.07 100);  --warm-b: oklch(0.86 0.12 85);
  --mild-a: oklch(0.95 0.035 140); --mild-b: oklch(0.84 0.075 150);
  --cool-a: oklch(0.94 0.035 235); --cool-b: oklch(0.76 0.09 245);
  --cold-a: oklch(0.88 0.05 285);  --cold-b: oklch(0.64 0.12 280);
  --wk-ink: var(--neutral-975);
  --wk-radius: calc(var(--seed-radius) * 2);
  --wk-fill: 0.55;
  /* Garment paint comes from Baseline's warm neutrals. */
  --cloth-hi: var(--neutral-50);
  --cloth-lo: var(--neutral-200);
  --cloth-shade: var(--neutral-700);
  --cloth-seam: var(--neutral-500);
  --cloth-inside-hi: var(--neutral-600);
  --cloth-inside-lo: var(--neutral-800);
}
[data-theme="dark"] { --wk-fill: 0.22; }
.tier-hot { --t-a: var(--hot-a); --t-b: var(--hot-b); }
.tier-warm { --t-a: var(--warm-a); --t-b: var(--warm-b); }
.tier-mild { --t-a: var(--mild-a); --t-b: var(--mild-b); }
.tier-cool { --t-a: var(--cool-a); --t-b: var(--cool-b); }
.tier-cold { --t-a: var(--cold-a); --t-b: var(--cold-b); }

.gm-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.garment { display: block; overflow: visible; pointer-events: none; }
.garment .g-fold { fill: none; stroke: var(--cloth-shade); stroke-opacity: 0.13; stroke-width: 2; stroke-linecap: round; filter: url(#gm-blur); }
.garment .g-inside { fill: url(#gm-inside); }
.garment .g-rib { fill: none; stroke: var(--neutral-300); stroke-width: 2.2; stroke-linecap: round; }
.garment .g-seam { fill: none; stroke: var(--cloth-seam); stroke-opacity: 0.5; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; }
.garment .g-zip { fill: none; stroke: var(--cloth-seam); stroke-opacity: 0.65; stroke-width: 1.2; stroke-dasharray: 0.7 0.8; }
.garment .g-pull { fill: var(--neutral-400); }
.garment .g-cord { fill: none; stroke: var(--neutral-300); stroke-width: 1.3; stroke-linecap: round; }
.garment .g-fur circle { fill: url(#gm-fur); }

.wk { gap: var(--space-5); }

.wk-hero { position: relative; overflow: hidden; min-height: 232px; box-sizing: border-box; padding: 18px 20px 20px;
  display: flex; flex-direction: column; border-radius: var(--wk-radius); color: var(--wk-ink);
  background:
    radial-gradient(85% 75% at 86% 6%, color-mix(in oklab, white 72%, transparent), transparent 62%),
    linear-gradient(158deg, var(--t-a) 8%, var(--t-b) 100%);
  box-shadow: 0 26px 40px -24px color-mix(in oklab, var(--t-b), black 20%),
    inset 0 1px 0 color-mix(in oklab, white 70%, transparent); }
.wk-hero > :not(.garment) { position: relative; z-index: 1; }
.wk-hero-top { display: flex; align-items: center; justify-content: space-between; }
.wk-kicker { font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide);
  text-transform: uppercase; font-weight: 600; }
.wk-glass { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px 5px 9px; border-radius: var(--radius-full);
  background: color-mix(in oklab, white 45%, transparent); border: 1px solid color-mix(in oklab, white 60%, transparent);
  -webkit-backdrop-filter: blur(12px) saturate(1.5); backdrop-filter: blur(12px) saturate(1.5);
  font-size: var(--text-xs); font-weight: 600; }
.wk-hero-wear { font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 0.88;
  letter-spacing: -0.05em; margin: auto 0 12px; max-width: 210px; }
.wk-hero-temps { margin: 0; display: flex; align-items: baseline; gap: 4px; font-size: var(--text-sm);
  font-variant-numeric: tabular-nums; }
.wk-hero-temps b { font-weight: 700; }
.wk-hero-temps span { margin-left: 10px; color: color-mix(in oklab, var(--wk-ink) 62%, transparent); }
.wk-hero-rain { align-self: flex-start; margin-top: 10px; }
.wk-hero-garment { position: absolute; width: 176px; height: 176px; right: -10px; bottom: 4px; transform: rotate(-9deg);
  filter: drop-shadow(0 16px 14px color-mix(in oklab, color-mix(in oklab, var(--t-b), black 45%) 50%, transparent)); }

.wk-ahead { display: flex; flex-direction: column; }
.wk-story { margin: 8px 0 0; font-size: var(--text-lg); line-height: 1.25; letter-spacing: -0.02em;
  color: var(--text-secondary); font-weight: 500; }
.wk-story b { color: var(--text-primary); font-weight: 700; }
.wk-line { position: relative; margin-top: 14px; }
.wk-line > svg { position: absolute; top: 0; left: -20px; width: calc(100% + 40px); height: 100%; overflow: visible; }
.wk-stroke { fill: none; stroke: url(#wk-days); stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.wk-dot { position: absolute; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(75% 75% at 32% 26%, var(--t-a), var(--t-b));
  box-shadow: inset 0 1.5px 0 color-mix(in oklab, white 60%, transparent), inset 0 -2px 4px color-mix(in oklab, var(--t-b), black 12%),
    0 0 0 3px var(--bg-primary), 0 12px 18px -8px color-mix(in oklab, var(--t-b), black 35%); }
.wk-dot .garment { width: 40px; height: 40px; filter: drop-shadow(0 3px 3px color-mix(in oklab, var(--neutral-900) 24%, transparent)); }
.wk-cols { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: 12px; text-align: center; }
.wk-col { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.wk-day { font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide);
  text-transform: uppercase; font-weight: 600; color: var(--text-tertiary); }
.wk-col > b { font-size: var(--text-sm); font-weight: 700; letter-spacing: -0.01em; }
.wk-hl { font-size: var(--text-xs); color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.wk-hl b { color: var(--text-primary); font-weight: 600; }
.wk-wet { display: inline-flex; align-items: center; gap: 2px; margin-top: 1px; font-size: var(--text-2xs);
  font-weight: 600; color: var(--text-secondary); font-variant-numeric: tabular-nums; }

/* Places */
.places { display: flex; flex-direction: column; gap: var(--space-3); }
.pl { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-3); cursor: pointer;
  text-align: left; width: 100%; font: inherit; color: inherit; }
.pl .city { font-family: var(--font-display); font-size: var(--text-lg); letter-spacing: -0.02em; margin: 0; }
.pl .sub { color: var(--text-tertiary); font-size: var(--text-xs); margin: 2px 0 var(--space-2);
  font-variant-numeric: tabular-nums; }
.pl .right { display: flex; align-items: center; gap: var(--space-2); }
.pl .temp { font-family: var(--font-display); font-size: var(--text-3xl); letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums; }
.pl .glyph { font-size: 26px; color: var(--text-secondary); }

.note { color: var(--text-tertiary); font-size: var(--text-xs); margin: 0; text-align: center; }

/* Tab bar */
.tabbar { display: flex; justify-content: space-around; border-top: 1px solid var(--border-subtle);
  padding: var(--space-2) 0 var(--space-1); background: var(--bg-secondary); }
.tabbar a { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 64px; min-height: 44px;
  justify-content: center; color: var(--text-tertiary); font-size: var(--text-2xs); text-decoration: none; }
.tabbar a .glyph { font-size: 20px; height: 30px; display: grid; place-items: center; }
.tabbar a.on { color: var(--accent-default); font-weight: 600; }
/* The brand accent marks what's yours right now: today's answer, your place, and the screen you're on. */
.tabbar a.on .glyph { position: relative; z-index: 0; color: var(--accent-on); }
.tabbar a.on .glyph::before { content: ""; position: absolute; inset: 1px -16px; z-index: -1;
  border-radius: var(--radius-full); background: var(--accent-default); }
.home { height: 5px; width: 120px; border-radius: 99px; background: var(--border-strong); margin: 6px auto 8px; }
