@font-face {
  font-family: "Inter";
  src: url("./assets/fonts/InterVariable.woff2?v=693b77d4f32ee9b8bfc995589b5fad5e99adf2832738661f5402f9978429a8e3") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  color-scheme: light;
  --font-brand: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --ink: #304a58;
  --muted: #60716b;
  --paper: #f5f7f8;
  --surface: #fff;
  --surface-rgb: 255 255 255;
  --line: rgb(48 74 88 / .16);
  --line-strong: rgb(48 74 88 / .28);
  --accent: #2b77a0;
  --accent-dark: #255f7f;
  --accent-soft: rgb(194 229 242 / .55);
  --attention: #a42e63;
  --attention-soft: #ea99bd;
  --error: #843b32;
  --error-soft: #f9ebe8;
  --canvas-start: #f5f7f8;
  --canvas-middle: #eaf1f3;
  --canvas-end: #dde8ec;
  --panel: rgb(255 255 255 / .62);
  --panel-strong: rgb(255 255 255 / .82);
  --shadow: 0 30px 90px rgb(48 74 88 / .42);
  --dashboard-shadow: 48 74 88;
  --dashboard-ink: #364a57;
  --dashboard-muted-rgb: 0 10 27;
  --dashboard-active: #a42e63;
  --dashboard-active-ring: #ea99bd;
  --dashboard-tracking-surface: #255f7f;
  --dashboard-tracking-surface-hover: #2b77a0;
  --dashboard-tracking-ink: #fff;
  --dashboard-tracking-secondary-ink: rgb(255 255 255 / .74);
  --dashboard-tracking-toggle-ink: #255f7f;
  --dashboard-tracking-toggle-border: #255f7f;
  --dashboard-tracking-toggle-surface: #fff;
  --dashboard-tracking-start-toggle-border: #000;
  --dashboard-tracking-start-toggle-surface: #fff;
  --dashboard-tracking-start-toggle-center: #255f7f;
  --dashboard-tracking-shadow: 0 12px 28px rgb(48 74 88 / .18);
  --dashboard-tracking-glyph-shadow: 0 3px 8px rgb(48 74 88 / .16), inset 0 1px 0 rgb(255 255 255 / .9);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { min-width: 320px; min-height: 100%; }
html { background: var(--canvas-middle); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-brand);
  font-size: 16px;
  line-height: 24px;
  -webkit-font-smoothing: antialiased;
}
body:has(.capture-overlay:not([hidden])), body:has(dialog[open]) { overflow: hidden; }
button, input, select { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 9px 13px; color: #fff; background: var(--accent); border-radius: 9px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:where(button, a, input, select, summary):focus-visible { outline: 2px solid rgb(73 156 201 / .58); outline-offset: 2px; }

.brand { display: inline-flex; align-items: center; gap: 9px; color: inherit; font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: none; }
.brand img { width: 27px; height: 27px; object-fit: contain; }
.primary-button, .secondary-button, .danger-button, .quiet-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
.primary-button { border: 0; color: #fff; background: var(--accent); box-shadow: 0 8px 20px rgb(48 74 88 / .3); }
.primary-button:hover:not(:disabled) { background: var(--accent-dark); transform: translateY(-1px); box-shadow: 0 11px 24px rgb(48 74 88 / .38); }
.primary-button:disabled { cursor: not-allowed; opacity: .48; box-shadow: none; }
.primary-button > span { font-size: 17px; line-height: 1; font-weight: 400; }
.secondary-button, .quiet-button { border: 1px solid var(--line-strong); color: var(--accent); background: var(--panel); }
.secondary-button:hover, .quiet-button:hover { background: #fff; }
.danger-button { border: 0; color: #fff; background: var(--error); }
.danger-button:hover { background: #6c3029; }
.text-button { padding: 5px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; line-height: 18px; text-decoration: underline; text-underline-offset: 3px; }

/* Electron account gate */
.auth-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 26px;
  overflow: hidden;
  background: rgb(24 46 57 / .66);
  backdrop-filter: blur(12px);
}
.auth-dialog {
  width: min(1040px, 100%);
  min-height: min(700px, calc(100dvh - 52px));
  max-height: calc(100dvh - 52px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background:
    radial-gradient(circle at 88% 0%, rgb(194 229 242 / .42), transparent 36%),
    radial-gradient(circle at 7% 100%, rgb(234 153 189 / .16), transparent 38%),
    linear-gradient(145deg, var(--canvas-middle), var(--canvas-start) 62%, var(--canvas-end));
  box-shadow: var(--shadow);
}
.auth-header, .auth-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 28px; border-bottom: 1px solid var(--line); }
.auth-header > span { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; font-weight: 600; }
.auth-header > span i { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.auth-body { min-height: 0; display: grid; grid-template-columns: minmax(260px, .8fr) minmax(360px, 1fr); align-items: center; gap: 64px; overflow-y: auto; padding: 42px 64px; }
.auth-intro { align-self: center; }
.auth-kicker { display: block; margin-bottom: 12px; color: var(--attention); font-size: 11px; line-height: 16px; font-weight: 750; letter-spacing: .16em; }
.auth-intro h1 { max-width: 420px; margin-bottom: 14px; font-size: clamp(38px, 5vw, 62px); line-height: .98; font-weight: 600; letter-spacing: -.045em; }
.auth-intro p { max-width: 390px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.auth-card { width: 100%; max-width: 440px; justify-self: end; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel-strong); box-shadow: inset 0 1px 0 rgb(255 255 255 / .86), 0 20px 48px rgb(48 74 88 / .15); }
.auth-tabs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; margin-bottom: 18px; padding: 4px; border-radius: 12px; background: rgb(48 74 88 / .08); }
.auth-tabs button { min-height: 38px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; cursor: pointer; font-size: 13px; font-weight: 650; }
.auth-tabs button.active { color: var(--ink); background: var(--surface); box-shadow: 0 5px 14px rgb(48 74 88 / .13); }
.auth-form { display: grid; gap: 13px; }
.auth-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 650; }
.auth-form input { width: 100%; min-height: 44px; padding: 0 13px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: rgb(255 255 255 / .92); }
.auth-form small, .auth-card > p { color: var(--muted); font-size: 11px; line-height: 17px; }
.auth-form .primary-button { width: 100%; margin-top: 2px; }
.auth-link { justify-self: center; }
.auth-message { min-height: 18px; margin: -1px 0 0; color: var(--error); font-size: 11px; line-height: 16px; }
.auth-message.success { color: var(--accent-dark); }
.auth-verification h2, .auth-agreement h2 { margin: 8px 0 7px; font-size: 28px; line-height: 34px; font-weight: 600; letter-spacing: -.025em; }
.auth-step-mark { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--accent-dark); background: var(--accent-soft); font-size: 12px; font-weight: 750; }
.auth-inline-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; }
.auth-agreement .consent-choice { margin: 14px 0; }
.auth-agreement > .primary-button { width: 100%; margin-top: 8px; }
.residence-choice { display: grid; gap: 10px; margin: 16px 0 4px; padding: 0; border: 0; }
.residence-choice legend { padding: 0; color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 650; }
.residence-country { display: flex; flex-wrap: wrap; gap: 12px; }
.residence-country .consent-choice, .residence-adult-row { margin-top: 0; }
.residence-state-field { width: 100%; display: grid; gap: 6px; color: var(--muted); font-size: 12px; line-height: 16px; font-weight: 650; }
.residence-state-field select { min-height: 44px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: rgb(255 255 255 / .92); }
.residence-us-consents { display: grid; gap: 12px; }
.residence-consent-row { display: grid; gap: 6px; }
.residence-consent-row .consent-choice, .residence-us-consents .consent-choice { margin-top: 0; }
.residence-consent-row .policy-link { justify-self: start; color: var(--accent); font-size: 11px; line-height: 16px; font-weight: 600; }
.auth-footer { flex-wrap: wrap; border-top: 1px solid var(--line); border-bottom: 0; color: var(--muted); font-size: 10px; line-height: 15px; }
.auth-footer span::before { margin-right: 7px; color: var(--attention); content: "✓"; }

/* Electron onboarding shell */
.onboarding-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 26px;
  overflow: hidden;
  background: rgb(24 46 57 / .66);
  backdrop-filter: blur(12px);
}
.onboarding-dialog {
  width: min(1180px, 100%);
  height: min(900px, calc(100dvh - 52px));
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  color: var(--ink);
  background:
    radial-gradient(circle at 88% 0%, rgb(194 229 242 / .38), transparent 34%),
    radial-gradient(circle at 8% 100%, rgb(234 153 189 / .16), transparent 36%),
    linear-gradient(145deg, var(--canvas-middle), var(--canvas-start) 62%, var(--canvas-end));
  box-shadow: var(--shadow);
}
.onboarding-header {
  min-height: 72px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 430px) minmax(0, 1fr);
  align-items: center;
  gap: 24px;
  padding: 11px 32px;
  border-bottom: 1px solid var(--line);
}
.onboarding-header .brand { color: var(--muted); }
.onboarding-header-spacer { min-width: 1px; }
.onboarding-progress { min-width: 0; display: grid; justify-items: center; gap: 7px; }
.onboarding-progress > span { min-width: max-content; color: var(--muted); font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.onboarding-progress ol { width: 100%; display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; margin: 0; padding: 0; list-style: none; }
.onboarding-progress li { height: 4px; border-radius: 999px; background: var(--line); }
.onboarding-progress li.complete { background: rgb(43 119 160 / .48); }
.onboarding-progress li.active { background: var(--attention); box-shadow: 0 0 10px rgb(164 46 99 / .25); }
.onboarding-frame { min-height: 0; display: grid; overflow: hidden; }
.onboarding-step {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 26px 44px 28px;
  outline: none;
}
.step-heading { max-width: 920px; margin-bottom: 20px; }
.step-heading.compact { margin-bottom: 18px; }
.step-heading h1, .first-result-step h1 {
  margin: 0;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.03;
  font-weight: 600;
  letter-spacing: -.035em;
}
.step-heading > p { max-width: 760px; margin: 9px 0 0; color: var(--muted); font-size: 15px; line-height: 1.4; }
.welcome-form { display: flex; flex: 1; flex-direction: column; gap: 16px; }
.name-field { max-width: 620px; display: grid; grid-template-columns: max-content minmax(240px, 1fr); align-items: center; gap: 18px; }
.name-field > span { color: var(--muted); font-size: 13px; line-height: 18px; font-weight: 600; }
.name-field input { min-height: 44px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: rgb(255 255 255 / .9); }
.name-field input::placeholder { color: var(--muted); }
.step-actions { min-height: 54px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: auto; padding-top: 12px; }
.step-actions.end { justify-content: flex-end; }
.step-actions.centered { justify-content: center; }

.privacy-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 14px; }
.privacy-flow > b { color: var(--accent); font-size: 24px; }
.privacy-flow article { min-width: 0; display: grid; align-self: stretch; grid-template-rows: auto 1fr; gap: 10px; }
.privacy-flow article > strong { align-self: end; padding: 0 2px; font-size: 16px; }
.privacy-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border: 2px solid var(--line-strong); border-radius: 16px; background: #131314; box-shadow: 0 14px 32px rgb(48 74 88 / .24); }
.privacy-media.points-only { background: radial-gradient(circle at 50% 38%, rgb(194 229 242 / .38), transparent 60%), #131314; }
.privacy-media img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 22%; }
.privacy-media img + img { z-index: 1; }
.privacy-result { min-height: 0; align-self: end !important; aspect-ratio: 4 / 3; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); text-align: center; }
.privacy-result > span { width: 28px; height: 28px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: 11px; font-weight: 700; }
.privacy-result small { color: var(--muted); }
.trust-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 12px; }
.trust-row span { padding: 11px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--accent); background: var(--panel); font-size: 12px; font-weight: 600; text-align: center; }
.trust-row span::before { margin-right: 8px; color: var(--attention); content: "✓"; }
.privacy-details { margin-top: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.privacy-details summary { padding: 13px 0; color: var(--accent); cursor: pointer; font-size: 13px; font-weight: 600; }
.privacy-details p { margin: 0 0 10px; color: var(--muted); font-size: 12px; line-height: 18px; }
.consent-choice { max-width: 900px; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin-top: 14px; color: var(--muted); cursor: pointer; font-size: 12px; line-height: 18px; }
.consent-choice input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--attention); }
.consent-choice a { color: var(--accent); font-weight: 600; }

.baseline-capture-layout { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 14px; }
.baseline-camera-column { min-width: 0; display: grid; gap: 9px; }
.baseline-camera-state { min-height: 52px; display: grid; grid-template-columns: 13px minmax(0, 1fr); align-items: center; gap: 11px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: var(--panel); }
.baseline-camera-state > span { width: 11px; height: 11px; border: 2px solid var(--muted); border-radius: 50%; background: transparent; }
.baseline-camera-state > div { min-width: 0; display: grid; gap: 1px; }
.baseline-camera-state strong { color: var(--ink); font-size: 12px; line-height: 17px; }
.baseline-camera-state small { font-size: 11px; line-height: 16px; }
.baseline-preview { height: min(340px, 45dvh); min-height: 260px; position: relative; overflow: hidden; border: 2px solid var(--line-strong); border-radius: 20px; background: #131314; box-shadow: 0 18px 42px rgb(48 74 88 / .32); }
.baseline-preview::after { position: absolute; inset: 8%; border: 1px dashed rgb(194 229 242 / .42); border-radius: 14px; content: ""; }
.baseline-preview img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; opacity: .88; }
.baseline-preview > span { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 8px 12px; border-radius: 999px; color: #fff; background: rgb(15 18 24 / .62); font-size: 12px; font-weight: 600; backdrop-filter: blur(6px); }
.baseline-proof { min-height: 0; display: flex; flex-direction: column; justify-content: center; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.baseline-proof > div { display: grid; gap: 5px; padding: 22px 2px; }
.baseline-proof > div + div { border-top: 1px solid var(--line); }
.baseline-proof strong { color: var(--accent); font-size: 23px; line-height: 1.1; white-space: nowrap; }
.baseline-proof span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.baseline-instruction { margin: 12px 2px 0; color: var(--muted); font-size: 13px; line-height: 19px; }

.first-result-step { align-items: center; text-align: center; }
.first-result-step h1 { margin: 18px 0 20px; }
.first-result-score { min-width: 170px; display: inline-flex; align-items: baseline; justify-content: center; margin: 0 auto 10px; padding: 16px 27px; color: var(--accent); background: var(--accent-soft); border: 1px solid var(--line); border-radius: 16px; }
.first-result-score strong { font-size: 48px; line-height: 1; font-weight: 600; }
.first-result-score span { color: var(--muted); }
.first-result-signals { width: min(800px, 100%); display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 18px auto; }
.first-result-signals div { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); text-align: left; }
.first-result-signals span { color: var(--muted); font-size: 12px; }
.first-result-signals strong { color: var(--accent); }
.boundary-copy, .wellbeing-note { color: var(--muted); font-size: 11px; line-height: 16px; }

.onboarding-questionnaire { align-items: stretch; }
.question-card { margin: 0; padding: 18px 20px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); }
.question-card legend { padding-right: 10px; color: var(--ink); font-size: 14px; font-weight: 600; }
.question-card legend span { margin-right: 9px; color: var(--accent); }
.question-card > p { margin: -4px 0 10px; color: var(--muted); font-size: 12px; }
.choice-grid { display: grid; gap: 9px; }
.choice-grid.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-grid.three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-grid label { min-height: 62px; display: flex; align-items: center; padding: 12px 13px; border: 1px solid var(--line); border-radius: 11px; background: rgb(var(--surface-rgb) / .52); cursor: pointer; transition: border-color 150ms ease, background 150ms ease, transform 150ms ease; }
.choice-grid label:hover { border-color: rgb(43 119 160 / .38); transform: translateY(-1px); }
.choice-grid label:has(input:checked) { border-color: rgb(43 119 160 / .52); background: var(--accent-soft); box-shadow: inset 0 0 0 1px rgb(43 119 160 / .1); }
.choice-grid input { width: 17px; height: 17px; margin: 0 10px 0 0; accent-color: var(--attention); }
.choice-grid span { font-size: 13px; line-height: 1.3; font-weight: 600; }
.other-field { display: grid; grid-template-columns: max-content minmax(240px, 1fr); align-items: center; gap: 14px; margin-top: 12px; }
.other-field > span { color: var(--muted); font-size: 13px; font-weight: 600; }
.other-field input { min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: rgb(var(--surface-rgb) / .82); }
.onboarding-message { min-height: 18px; margin: 0; color: var(--error); font-size: 12px; }

.first-result-step { align-items: stretch; text-align: left; }
.first-result-step .step-heading { margin: 0 0 18px; }
.pattern-card { display: grid; grid-template-columns: .86fr 1.14fr; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--panel); }
.pattern-card > div { min-height: 190px; display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 24px 28px; }
.pattern-card > div:first-child { background: linear-gradient(145deg, rgb(194 229 242 / .8), rgb(234 153 189 / .3)); }
.pattern-card > div:last-child { align-items: center; }
.pattern-card > div > span, .setup-insight span, .strain-card > span, .report-card > span, .workspace-hero span, .exercise-card > span { color: var(--accent-dark); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pattern-card > div > strong { font-size: clamp(28px, 3.2vw, 43px); line-height: 1; }
.pattern-card p { margin: 0; color: var(--muted); }
.pattern-card .first-result-score { margin: 0; }
.pattern-card .first-result-signals { grid-template-columns: repeat(2, 1fr); margin: 0; }
.pattern-story { align-items: flex-start !important; }
.pattern-story strong { font-size: clamp(21px, 2.3vw, 31px) !important; line-height: 1.12 !important; }
.pattern-story p { font-size: 13px; line-height: 1.5; }
.baseline-reference { margin: 0 0 10px; padding: 10px 12px; border-left: 3px solid var(--accent); color: var(--muted); background: rgb(194 229 242 / .24); font-size: 12px; line-height: 18px; }
.setup-insight { display: grid; grid-template-columns: minmax(0, .9fr) 140px minmax(0, 1fr); align-items: center; gap: 22px; margin-top: 18px; padding: 8px 26px; }
.setup-insight h2 { margin: 7px 0 0; font-size: 22px; line-height: 1.2; }
.setup-insight img { width: 140px; height: 140px; object-fit: contain; }
.setup-insight p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.measurement-details { margin-top: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.measurement-details summary { padding: 12px 0; color: var(--accent-dark); cursor: pointer; font-weight: 600; }
#baseline-measurements { display: grid; grid-template-columns: repeat(2, 1fr); padding-bottom: 10px; }
#baseline-measurements div { display: flex; justify-content: space-between; gap: 15px; padding: 8px 12px; border-bottom: 1px solid var(--line); font-size: 12px; }

.data-modes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.data-modes label { min-height: 250px; position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--panel); cursor: pointer; }
.data-modes label:has(input:checked) { border-color: rgb(43 119 160 / .5); background: linear-gradient(145deg, var(--accent-soft), rgb(var(--surface-rgb) / .74)); }
.data-modes input { position: absolute; opacity: 0; }
.data-modes label > span { width: 20px; height: 20px; border: 1px solid var(--line); border-radius: 50%; }
.data-modes label:has(input:checked) > span { border: 6px solid var(--attention-soft); background: var(--attention); }
.data-modes strong { margin-top: 22px; font-size: 25px; }
.data-modes small { position: absolute; top: 30px; right: 30px; color: var(--attention); font-weight: 700; text-transform: uppercase; }
.data-modes p { margin: 18px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.control-list { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.control-list > div { min-height: 78px; display: grid; grid-template-columns: 48px 1fr; align-items: center; padding: 0 24px; border-bottom: 1px solid var(--line); }
.control-list > div:last-child { border-bottom: 0; }
.control-list > div > span { color: var(--accent); font-size: 11px; font-weight: 700; }
.control-list p { display: grid; gap: 3px; margin: 0; }
.control-list small { color: var(--muted); font-size: 12px; }
.web-control-preview { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px 20px; margin-top: 18px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.web-control-preview > div { display: flex; align-items: center; gap: 10px; }
.web-control-preview p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 12px; }

.setup-live-mapping { --mapping-face-fill: rgb(194 229 242 / .09); --mapping-face-stroke: #a9d4e4; --mapping-shoulder-stroke: #a9d4e4; --mapping-centre-stroke: #f0c477; --mapping-shoulder-node-fill: #c2e5f2; --mapping-shoulder-node-stroke: #499cc9; --mapping-centre-node-fill: #f6d79d; --mapping-centre-node-stroke: #f0c477; --mapping-intersection-fill: #f6d79d; --mapping-intersection-stroke: #f0c477; position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.setup-live-mapping svg { width: 100%; height: 100%; display: block; overflow: hidden; }
.setup-live-mapping .mapping-face-outline { stroke-width: 2.8; filter: drop-shadow(0 1px 2px rgb(15 18 24 / .75)); }
.setup-live-mapping .mapping-shoulder-curve { stroke-width: 3.4; filter: drop-shadow(0 1px 2px rgb(15 18 24 / .75)); }
.setup-live-mapping .mapping-centre-line { stroke-width: 2.2; stroke-dasharray: 7 6; filter: drop-shadow(0 1px 2px rgb(15 18 24 / .75)); }
.setup-live-mapping :is(.mapping-neck-axis,.mapping-spine-line) { fill: none; stroke: #a9d4e4; stroke-width: 2.2; stroke-linecap: round; }
.setup-live-mapping .mapping-head-extrema-node { fill: #c2e5f2; stroke: #499cc9; stroke-width: 1.5; }
.setup-live-mapping .mapping-spine-node { fill: #f6d79d; stroke: #f0c477; stroke-width: 1.5; }

.pain-now-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 12px; }
.pain-now-card { min-height: 126px; padding: 17px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.pain-now-card > span { color: var(--attention); font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.pain-now-card h2 { margin: 3px 0 7px; font-size: 18px; }
.pain-now-card p { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 17px; }
.pain-now-card > strong { font-size: 12px; }
.session-card { padding-bottom: 13px; }
.session-timeline-track { min-height: 56px; position: relative; margin-top: 15px; border-radius: 12px; background: linear-gradient(90deg, rgb(48 74 88 / .08), rgb(48 74 88 / .03)); }
.session-timeline-track::before { position: absolute; top: 27px; right: 12px; left: 12px; height: 2px; background: var(--line); content: ""; }
.timeline-point { width: 13px; height: 13px; position: absolute; top: 21px; border: 2px solid #fff; border-radius: 50%; background: var(--accent); box-shadow: 0 2px 7px rgb(48 74 88 / .25); transform: translateX(-50%); }
.timeline-point.middle { background: #c18a3d; }
.timeline-point.attention { background: var(--attention); }
.timeline-legend { display: flex; gap: 16px; margin-top: 8px; color: var(--muted); font-size: 10px; }
.timeline-legend span { display: flex; align-items: center; gap: 5px; }
.timeline-legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.timeline-legend i.variation { background: #c18a3d; }
.timeline-legend i.attention { background: var(--attention); }
.overview-widget-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.overview-widget-grid .dashboard-card { min-height: 185px; }
.overview-widget-grid h2 { margin: 5px 0 18px; font-size: 20px; }
.overview-widget-grid strong { display: block; margin-bottom: 8px; }
.overview-widget-grid p { color: var(--muted); font-size: 12px; line-height: 18px; }
.workspace-hero { display: grid; grid-template-columns: 1fr 240px; align-items: center; margin-top: 0; }
.workspace-hero h3 { margin: 6px 0 8px; font-size: 28px; }
.workspace-hero p { color: var(--muted); }
.workspace-hero img { width: 220px; height: 220px; justify-self: center; object-fit: contain; }
.workspace-grid, .exercise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.workspace-grid article > span { color: var(--accent); font-size: 11px; font-weight: 700; }
.workspace-grid h3 { margin: 8px 0; }
.workspace-grid p, .exercise-card p, .browser-boundary-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.exercise-card { min-height: 280px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.exercise-illustration { min-height: 140px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 14px; color: var(--accent-dark); background: linear-gradient(145deg, var(--accent-soft), rgb(255 255 255 / .62)); font-size: 52px; }
.exercise-card h3 { margin: 6px 0 9px; }
.browser-boundary-card { margin-top: 12px; }
.nav-icon-setup { --nav-icon: url("./assets/icons/monitor-up.svg?v=57c22d5ed358c8e98ab59852fee3990a08dd801f69427cbff9efd13e0d866f19"); }
.nav-icon-exercises { --nav-icon: url("./assets/icons/activity.svg?v=d892052970813acb04cc9823d0e77ac6e70e44f5245259b256c5df5b78900f02"); }

/* Electron overview shell */
.dashboard-shell { min-height: 100vh; display: grid; grid-template-columns: 224px minmax(0, 1fr); overflow: hidden; color: var(--dashboard-ink); background: linear-gradient(145deg, var(--canvas-start), var(--canvas-middle) 54%, var(--canvas-end)); }
.sidebar { height: 100vh; position: sticky; top: 0; display: flex; flex-direction: column; padding: 42px 18px 18px; border-right: 1px solid rgb(54 74 87 / .2); background: radial-gradient(circle at 18% 12%, rgb(194 229 242 / .42), transparent 34%), linear-gradient(160deg, rgb(234 241 243 / .98), rgb(216 229 234 / .98)); box-shadow: inset -1px 0 0 rgb(54 74 87 / .08), 18px 0 46px rgb(var(--dashboard-shadow) / .12); }
.sidebar-brand { margin: 0 10px 22px; color: var(--dashboard-ink); font-size: 22px; line-height: 30px; }
.sidebar-brand img { width: 31px; height: 31px; }
.primary-nav { display: grid; gap: 5px; }
.nav-item { width: 100%; min-height: 40px; display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 0; border-radius: 10px; color: rgb(var(--dashboard-muted-rgb) / .66); background: transparent; cursor: pointer; text-align: left; font-size: 14px; line-height: 20px; font-weight: 600; }
.nav-item:hover { color: var(--dashboard-ink); background: rgb(48 74 88 / .08); }
.nav-item.active { color: var(--dashboard-ink); background: var(--panel-strong); box-shadow: inset 0 1px 0 rgb(255 255 255 / .8), 0 10px 24px rgb(var(--dashboard-shadow) / .14); }
.nav-icon { width: 18px; height: 18px; flex: 0 0 18px; background: currentColor; opacity: .78; -webkit-mask: var(--nav-icon) center / contain no-repeat; mask: var(--nav-icon) center / contain no-repeat; }
.nav-item.active .nav-icon { opacity: 1; }
.nav-icon-overview { --nav-icon: url("./assets/icons/layout-dashboard.svg?v=7ceff1a675b87b88cdb1f7d2c0e5e766801bb2f0dccff2ca5f3f582471c5bb4d"); }
.nav-icon-setup { --nav-icon: url("./assets/icons/monitor-up.svg?v=57c22d5ed358c8e98ab59852fee3990a08dd801f69427cbff9efd13e0d866f19"); }
.nav-icon-progress { --nav-icon: url("./assets/icons/clock-3.svg?v=e42572934377d7940fb39e5a9d9ff122493cdfd05b532f62361de29978168193"); }
.nav-icon-exercises { --nav-icon: url("./assets/icons/activity.svg?v=d892052970813acb04cc9823d0e77ac6e70e44f5245259b256c5df5b78900f02"); }
.nav-icon-settings { --nav-icon: url("./assets/icons/sliders-horizontal.svg?v=ff658c277e002e1524d22efe0436049a2298f8cddea55458b29b18d5bc9cbeab"); }
.sidebar-preferences { display: grid; gap: 7px; margin-top: 16px; padding: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sidebar-preference { min-height: 27px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: rgb(var(--dashboard-muted-rgb) / .68); font-size: 10px; line-height: 14px; }
.sidebar-preference output { color: var(--dashboard-ink); font-size: 10px; font-weight: 700; }
.sidebar-notification-toggle { min-width: 58px; min-height: 25px; display: inline-flex; align-items: center; justify-content: flex-start; gap: 5px; padding: 3px 6px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--muted); background: rgb(48 74 88 / .08); cursor: pointer; }
.sidebar-notification-toggle .sidebar-toggle-knob { width: 14px; height: 14px; flex: 0 0 14px; border-radius: 50%; background: currentColor; transition: transform 150ms ease; }
.sidebar-notification-toggle strong { font-size: 8px; line-height: 11px; }
.sidebar-notification-toggle[aria-checked="true"] { justify-content: flex-end; color: #fff; background: var(--accent); border-color: var(--accent); }
.storage-badge { min-height: 52px; display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: 9px; margin-top: auto; padding: 10px 12px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); }
.storage-badge div { display: grid; gap: 1px; }
.storage-badge strong { font-size: 12px; line-height: 16px; }
.storage-badge small { color: rgb(var(--dashboard-muted-rgb) / .66); font-size: 10px; line-height: 14px; }
.lock-icon { position: relative; width: 12px; height: 10px; border: 1.3px solid currentColor; border-radius: 3px; }
.lock-icon::before { position: absolute; width: 6px; height: 5px; left: 1.7px; top: -6px; border: 1.3px solid currentColor; border-bottom: 0; border-radius: 5px 5px 0 0; content: ""; }
.sidebar-reset { margin: 10px auto 0; }
.sidebar-sign-out { margin: 0 auto; }
.dashboard-content { min-width: 0; height: 100vh; overflow-x: hidden; overflow-y: auto; padding: 0 32px 18px; background: radial-gradient(circle at 76% 8%, rgb(194 229 242 / .45), transparent 38%), radial-gradient(circle at 28% 82%, rgb(234 239 242 / .34), transparent 42%); }
.dashboard-header { min-height: 94px; display: grid; grid-template-columns: minmax(190px, 1fr) minmax(250px, 430px) minmax(190px, 1fr); align-items: center; gap: 18px; padding: 25px 0 8px; }
.dashboard-header h1 { margin: 0; font-size: clamp(24px, 2.7vw, 36px); line-height: 42px; font-weight: 600; white-space: nowrap; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.overview-tracking-control { min-width: 0; display: flex; align-items: center; justify-content: flex-start; }
.overview-tracking-panel {
  box-sizing: border-box;
  width: 320px;
  min-width: 320px;
  height: 46px;
  min-height: 46px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(105px, auto);
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0 17px 0 12px;
  border: 0;
  border-radius: 999px;
  color: var(--dashboard-tracking-ink);
  background: var(--dashboard-tracking-surface);
  box-shadow: var(--dashboard-tracking-shadow);
  cursor: pointer;
  appearance: none;
  text-align: left;
}
.overview-tracking-panel:hover:not(:disabled) { background: var(--dashboard-tracking-surface-hover); }
.overview-tracking-panel:focus-visible { outline: 2px solid rgb(73 156 201 / .9); outline-offset: 2px; }
.overview-tracking-glyph {
  position: relative;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 2px solid var(--dashboard-tracking-toggle-border);
  border-radius: 50%;
  color: var(--dashboard-tracking-toggle-ink);
  background: var(--dashboard-tracking-toggle-surface);
  box-shadow: var(--dashboard-tracking-glyph-shadow);
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.overview-tracking-panel:hover:not(:disabled) .overview-tracking-glyph { transform: scale(1.04); }
.overview-pause-glyph { width: 10px; height: 12px; display: flex; justify-content: space-between; }
.overview-pause-glyph::before, .overview-pause-glyph::after { width: 3px; border-radius: 3px; background: currentColor; content: ""; }
.overview-start-glyph { position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--dashboard-tracking-start-toggle-center); opacity: 0; transform: scale(.7); transition: opacity 180ms ease, transform 260ms cubic-bezier(.22,1,.36,1); }
.overview-tracking-control.is-stopped .overview-tracking-glyph { border-color: var(--dashboard-tracking-start-toggle-border); background: var(--dashboard-tracking-start-toggle-surface); }
.overview-tracking-control.is-stopped .overview-pause-glyph { opacity: 0; }
.overview-tracking-control.is-stopped .overview-start-glyph { opacity: 1; transform: scale(1); }
.overview-tracking-panel strong, .overview-tracking-detail { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.overview-tracking-panel strong { font-size: 12px; line-height: 16px; font-variant-numeric: tabular-nums; }
.overview-tracking-detail { display: flex; align-items: center; gap: 7px; color: var(--dashboard-tracking-secondary-ink); font-size: 11px; line-height: 14px; font-weight: 600; }
.overview-tracking-detail i { width: 10px; height: 10px; flex: 0 0 auto; border: 3px solid var(--dashboard-active-ring); border-radius: 50%; background: var(--dashboard-active); box-shadow: 0 0 7px rgb(164 46 99 / .38); }
.overview-tracking-control.is-stopped .overview-tracking-panel { grid-template-columns: auto minmax(0, 1fr); padding: 0 20px 0 12px; }
.overview-tracking-control.is-stopped .overview-tracking-detail { display: none; }
.overview-tracking-control.needs-attention .overview-tracking-detail i { border-color: rgb(180 123 52 / .24); background: #b47b34; box-shadow: 0 0 7px rgb(180 123 52 / .28); }
.notification-rail-toggle { width: 42px; height: 42px; position: relative; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--dashboard-ink); background: var(--panel); cursor: pointer; box-shadow: inset 0 1px 0 rgb(255 255 255 / .8); }
.notification-rail-toggle:hover, .notification-rail-toggle[aria-expanded="true"] { background: #fff; }
.notification-rail-toggle > img { width: 18px; height: 18px; display: block; }
.notification-rail-toggle > i { width: 9px; height: 9px; position: absolute; top: 3px; right: 3px; border: 2px solid var(--paper); border-radius: 50%; background: var(--attention); }
.new-check-in { min-height: 42px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--dashboard-ink); background: rgb(255 255 255 / .58); box-shadow: inset 0 1px 0 rgb(255 255 255 / .82); white-space: nowrap; }
.new-check-in:hover:not(:disabled) { color: var(--dashboard-ink); background: #fff; box-shadow: 0 8px 20px rgb(var(--dashboard-shadow) / .12); }
.dashboard-view { outline: none; }
.metric-grid { display: grid; grid-template-columns: minmax(245px, .62fr) minmax(0, 1.38fr); gap: 12px; }
.score-hero { min-height: 272px; position: relative; overflow: hidden; padding: 16px; border: 1px solid rgb(255 255 255 / .08); border-radius: 18px; color: #fff; background: radial-gradient(ellipse 38% 38% at 88% 10%, rgb(194 229 242 / .28), transparent), linear-gradient(-139.288deg, #275f7d 15%, #347a9e 56%, #367b9d 85%); box-shadow: 0 14px 35px rgb(46 89 113 / .15); }
.score-hero > div:nth-child(2) > span { position: absolute; z-index: 3; top: 15px; left: 17px; color: rgb(255 255 255 / .72); font-size: 19px; line-height: 26px; font-weight: 700; }
.score-hero > div:nth-child(2) > p { position: absolute; z-index: 3; top: 61px; right: 17px; margin: 0; }
.score-hero > div:nth-child(2) strong { color: #fff; font-size: 66px; line-height: 1; font-weight: 600; }
.score-hero > div:nth-child(2) small { color: rgb(255 255 255 / .65); font-size: 16px; }
.score-hero > div:nth-child(2) b { position: absolute; z-index: 3; top: 15px; right: 16px; padding: 4px 9px; border: 1px solid rgb(255 255 255 / .18); border-radius: 999px; color: #fff; background: rgb(34 51 62 / .18); font-size: 11px; line-height: 15px; font-weight: 600; }
.score-hero > p { position: absolute; right: 14px; bottom: 13px; left: 14px; margin: 0; padding: 10px 12px; border: 1px solid rgb(255 255 255 / .14); border-radius: 10px; color: rgb(255 255 255 / .8); background: rgb(34 51 62 / .18); font-size: 11px; line-height: 15px; }
.spine-mark { width: 90px; height: 155px; position: absolute; top: 62px; left: 22px; }
.spine-mark i { width: 40px; height: 11px; position: absolute; left: 24px; border: 2px solid rgb(255 255 255 / .66); border-radius: 8px; box-shadow: 0 0 9px rgb(194 229 242 / .22); transform: rotate(5deg); }
.spine-mark i:nth-child(1){top:0}.spine-mark i:nth-child(2){top:16px;left:26px}.spine-mark i:nth-child(3){top:32px;left:28px}.spine-mark i:nth-child(4){top:48px;left:29px}.spine-mark i:nth-child(5){top:64px;left:28px}.spine-mark i:nth-child(6){top:80px;left:26px}.spine-mark i:nth-child(7){top:96px;left:23px}.spine-mark i:nth-child(8){top:112px;left:21px}.spine-mark i:nth-child(9){top:128px;left:22px}
.signal-grid { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.signal-card { min-width: 0; min-height: 131px; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr auto; overflow: hidden; padding: 14px; border: 2px solid var(--line); border-radius: 24px; background: var(--panel-strong); box-shadow: inset 0 1px 0 rgb(255 255 255 / .8), inset 10px 10px 28px rgb(54 74 87 / .02); }
.signal-card > span { z-index: 2; overflow: hidden; font-size: 12px; line-height: 17px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.signal-card > img { width: 78px; height: 72px; position: absolute; bottom: 18px; left: 8px; object-fit: contain; object-position: left bottom; opacity: .72; }
.signal-card > strong { z-index: 2; grid-column: 2; grid-row: 2; align-self: center; font-size: 28px; line-height: 1; }
.signal-card > small { z-index: 2; grid-column: 1 / -1; grid-row: 3; justify-self: end; color: rgb(var(--dashboard-muted-rgb) / .66); font-size: 9px; line-height: 12px; }
.signal-tone { z-index: 2; justify-self: end; padding: 3px 7px; border: 1px solid var(--line); border-radius: 999px; color: var(--dashboard-ink); background: #fff; font-size: 10px; line-height: 14px; font-weight: 600; }
.signal-tone.balanced { color: #263e4a; background: rgb(194 229 242 / .72); }
.signal-tone.middle { color: #6b3e08; background: #f1dfc1; }
.signal-tone.attention { color: #71334f; background: #f4c7da; }
.dashboard-card { margin-top: 12px; padding: 17px; border: 2px solid var(--line); border-radius: 26px; background: var(--panel); box-shadow: inset 0 1px 0 rgb(255 255 255 / .8), 0 18px 44px rgb(var(--dashboard-shadow) / .16); }
.dashboard-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.dashboard-card h2, .dashboard-card h3 { margin: 0; font-size: 15px; line-height: 20px; font-weight: 600; }
.dashboard-card header span { color: rgb(var(--dashboard-muted-rgb) / .62); font-size: 11px; line-height: 14px; }
.quiet-button { min-height: 32px; padding: 5px 10px; border-radius: 9px; font-size: 11px; line-height: 16px; }
.week-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; margin-top: 13px; }
.week-day { min-height: 74px; display: grid; align-content: center; justify-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 12px; background: rgb(255 255 255 / .52); }
.week-day strong { font-size: 11px; line-height: 14px; }
.week-day span { color: var(--accent-dark); font-size: 20px; line-height: 25px; font-weight: 700; }
.week-day small { color: rgb(var(--dashboard-muted-rgb) / .62); font-size: 9px; line-height: 12px; }
.week-day.current { border-color: rgb(164 46 99 / .42); box-shadow: inset 0 0 0 1px rgb(164 46 99 / .12); }
.week-day.current strong { color: var(--dashboard-active); }
.week-day.empty span { color: rgb(var(--dashboard-muted-rgb) / .34); }
.recent-card { margin-bottom: 2px; }
.check-in-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.check-in-row:last-child { border-bottom: 0; }
.check-in-row > strong { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--accent-dark); background: var(--accent-soft); font-size: 13px; }
.check-in-row div { display: grid; gap: 1px; }
.check-in-row div strong { font-size: 12px; line-height: 16px; }
.check-in-row div span, .check-in-row > span { color: rgb(var(--dashboard-muted-rgb) / .62); font-size: 11px; line-height: 14px; }
.empty-history { min-height: 72px; display: grid; place-items: center; margin: 0; color: var(--muted); font-size: 12px; }
.wellbeing-note { margin: 12px 0 0; text-align: center; }

/* Current Electron overview composition, adapted only where browser capture differs. */
.overview-view { min-height: calc(100vh - 112px); }
.browser-load-page { width: min(1140px, 100%); min-height: calc(100vh - 112px); display: flex; flex-direction: column; align-items: stretch; gap: 12px; margin: 0 auto; padding: 0 0 8px; }
.browser-load-hero { width: min(650px, 100%); min-height: 248px; position: relative; display: grid; justify-items: center; align-content: start; margin: 0 auto; text-align: center; }
.browser-load-title { margin: 0; color: var(--dashboard-ink); font-size: 16px; line-height: 21px; font-weight: 650; }
.browser-load-date { margin: 0; color: rgb(var(--dashboard-muted-rgb) / .62); font-size: 10px; line-height: 14px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.browser-load-score { width: 232px; height: 145px; position: relative; margin-top: 0; color: #a66a25; }
.browser-load-score svg { width: 232px; height: auto; display: block; overflow: visible; }
.browser-gauge-segment, .browser-gauge-value { fill: none; stroke-width: 20; stroke-linecap: butt; }
.browser-gauge-segment { stroke-dasharray: 33 67; opacity: .78; }
.browser-gauge-segment.is-balanced { stroke: #55a58e; stroke-dashoffset: 0; }
.browser-gauge-segment.is-variation { stroke: #caa05e; stroke-dashoffset: -33; }
.browser-gauge-segment.is-attention { stroke: #a42e63; stroke-dashoffset: -66; }
.browser-gauge-value { stroke: transparent; stroke-width: 1; }
.browser-gauge-needle { transform: rotate(-90deg); transform-origin: 124px 137px; transition: transform 420ms ease; }
.browser-gauge-needle path, .browser-gauge-needle circle:first-of-type { fill: #000; }
.browser-gauge-needle circle:last-of-type { fill: #fff; }
.browser-gauge-score { fill: currentColor; font: 750 26px/1 var(--font-brand); letter-spacing: -.04em; }
.browser-load-score[data-band="balanced"] { color: #0f7665; }
.browser-load-score[data-band="attention"] { color: #a42e63; }
.browser-load-score[data-band="unavailable"] { color: rgb(var(--dashboard-muted-rgb) / .48); }
.browser-load-score[data-band="unavailable"] .browser-gauge-segment { stroke: rgb(48 74 88 / .18); }
.browser-load-reference { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: -1px; color: rgb(var(--dashboard-muted-rgb) / .72); font-size: 13px; line-height: 18px; }
.browser-load-reference strong { color: var(--dashboard-ink); font-size: 14px; font-weight: 500; }
.browser-load-headline { max-width: 760px; margin: 14px 0 0; color: var(--dashboard-ink); font-size: 16px; line-height: 22px; font-weight: 650; letter-spacing: 0; }
.browser-area-toggle { width: 24px; height: 36px; position: absolute; top: 118px; right: -3px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 8px; color: rgb(var(--dashboard-muted-rgb) / .72); background: transparent; cursor: pointer; }
.browser-area-toggle:hover { color: var(--dashboard-ink); background: rgb(48 74 88 / .05); }
.browser-area-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform 180ms ease; }
.browser-area-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.browser-area-panel { width: 100%; }
.browser-area-panel .signal-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.browser-area-panel .signal-card { min-height: 148px; grid-template-rows: auto 1fr auto; border-width: 1px; border-radius: 20px; background: rgb(255 255 255 / .42); box-shadow: inset 0 1px 0 rgb(255 255 255 / .82); }
.browser-area-panel .signal-card > img { width: 72px; height: 68px; bottom: 18px; opacity: .82; }
.browser-area-panel .signal-card > strong { font-size: 22px; font-weight: 600; }
.browser-overview-tabs { align-self: center; display: inline-flex; gap: 2px; padding: 3px; border: 1px solid rgb(48 74 88 / .16); border-radius: 999px; background: rgb(255 255 255 / .5); }
.browser-overview-tabs button { min-height: 30px; padding: 5px 15px; border: 0; border-radius: 999px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; line-height: 17px; font-weight: 650; }
.browser-overview-tabs button:hover { background: rgb(48 74 88 / .06); }
.browser-overview-tabs button[aria-selected="true"] { color: #fff; background: var(--dashboard-ink); box-shadow: 0 5px 14px rgb(var(--dashboard-shadow) / .18); }
.browser-segment-panel { width: 100%; flex: 1; }
.browser-now-grid, .browser-quality-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.browser-now-grid { grid-auto-rows: 142px; }
.browser-overview-card { min-width: 0; min-height: 142px; overflow: hidden; padding: 11px 14px 10px; border: 1px solid rgb(48 74 88 / .12); border-radius: 20px; background: rgb(255 255 255 / .42); box-shadow: inset 0 1px 0 rgb(255 255 255 / .82); backdrop-filter: blur(24px) saturate(145%); }
.browser-overview-card > span, .browser-overview-card header span { color: var(--dashboard-active); font-size: 10px; line-height: 14px; font-weight: 750; letter-spacing: .06em; }
.browser-overview-card h2 { margin: 0; color: var(--dashboard-ink); font-size: 15px; line-height: 20px; font-weight: 650; letter-spacing: 0; }
.browser-overview-card > header { min-height: 30px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.browser-overview-card > header > div { display: flex; align-items: baseline; gap: 9px; }
.browser-card-action { padding: 2px 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 10px; font-weight: 650; }
.browser-focus-row { min-height: 88px; display: grid; grid-template-columns: 74px minmax(0, 1fr); align-items: center; gap: 13px; }
.browser-focus-row img { width: 64px; height: 64px; object-fit: contain; }
.browser-focus-row > div { display: grid; gap: 4px; }
.browser-focus-row strong { color: var(--dashboard-ink); font-size: 12px; line-height: 16px; }
.browser-focus-card p, .browser-boundary-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 15px; }
.browser-quality-card > header > strong { color: var(--dashboard-ink); font-size: 22px; line-height: 26px; font-weight: 500; }
.browser-quality-mark { min-height: 88px; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 12px; }
.browser-quality-ring { --quality: 0%; width: 64px; height: 64px; position: relative; display: block; border-radius: 50%; background: conic-gradient(var(--accent) var(--quality), rgb(48 74 88 / .1) 0); }
.browser-quality-ring::after { width: 44px; height: 44px; position: absolute; top: 10px; left: 10px; border-radius: 50%; background: #edf4f6; content: ""; }
.browser-quality-card p { display: grid; gap: 4px; margin: 0; }
.browser-quality-card p b { color: var(--dashboard-ink); font-size: 13px; }
.browser-quality-card p small { max-width: 175px; color: var(--muted); font-size: 10px; line-height: 15px; }
.browser-comparison-mark { min-height: 90px; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 12px; }
.browser-comparison-mark > img { width: 64px; height: 64px; object-fit: contain; }
.browser-comparison-mark > div { display: grid; gap: 8px; }
.browser-comparison-mark span { display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; }
.browser-comparison-mark i { height: 8px; overflow: hidden; border-radius: 999px; background: rgb(48 74 88 / .12); }
.browser-comparison-mark i b { width: 0; height: 100%; display: block; border-radius: inherit; background: #78858e; transition: width 320ms ease; }
.browser-comparison-mark span:last-child i b { background: #b47b34; }
.browser-comparison-mark strong { color: var(--dashboard-ink); font-size: 10px; font-variant-numeric: tabular-nums; text-align: right; }
.browser-capture-card > header > strong { color: var(--dashboard-ink); font-size: 22px; line-height: 26px; font-weight: 500; }
.browser-capture-card > div { min-height: 88px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; }
.browser-capture-card p { display: grid; gap: 3px; margin: 0; }
.browser-capture-card p b { font-size: 12px; }
.browser-capture-card p small { color: var(--muted); font-size: 10px; line-height: 14px; }
.browser-capture-card ul { display: grid; gap: 3px; margin: 0; padding: 0; color: var(--muted); font-size: 9px; line-height: 13px; list-style: none; }
.browser-capture-card li::before { margin-right: 5px; color: var(--accent); content: "•"; }
.browser-history-grid { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 12px; }
.browser-overview-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.browser-overview-card > header > div { display: grid; gap: 3px; }
.browser-overview-card > header strong { color: var(--dashboard-ink); font-size: 12px; }
.browser-overview-card > header > b { color: var(--muted); font-size: 9px; font-weight: 600; }
.browser-history-grid .week-strip { margin-top: 20px; }
.browser-history-grid .week-day { min-height: 76px; background: rgb(255 255 255 / .46); }
.browser-timeline-card { display: grid; grid-template-rows: auto 1fr auto; }
.session-timeline-track { height: 62px; position: relative; align-self: center; margin: 22px 8px 10px; border-radius: 999px; background: linear-gradient(90deg, rgb(48 74 88 / .08), rgb(43 119 160 / .13), rgb(48 74 88 / .08)); }
.session-timeline-track::before { height: 2px; position: absolute; top: 30px; right: 0; left: 0; background: rgb(48 74 88 / .17); content: ""; }
.timeline-point { width: 12px; height: 12px; position: absolute; z-index: 1; top: 25px; border: 3px solid #fff; border-radius: 50%; background: #c48b3b; box-shadow: 0 2px 8px rgb(var(--dashboard-shadow) / .2); transform: translateX(-50%); }
.timeline-point.balanced { background: #4e8b79; }
.timeline-point.attention { background: var(--attention); }
.timeline-legend { display: flex; justify-content: center; gap: 17px; color: var(--muted); font-size: 9px; }
.timeline-legend span { display: flex; align-items: center; gap: 5px; }
.timeline-legend i { width: 7px; height: 7px; border-radius: 50%; background: #c48b3b; }
.timeline-legend i.balanced { background: #4e8b79; }
.timeline-legend i.attention { background: var(--attention); }
.browser-recent-card #recent-check-ins { margin-top: 8px; }
.browser-boundary-card { color: #fff; background: radial-gradient(circle at 90% 10%, rgb(194 229 242 / .24), transparent 36%), linear-gradient(145deg, #275f7d, #347a9e); }
.browser-boundary-card > span, .browser-boundary-card p { color: rgb(255 255 255 / .67); }
.browser-boundary-card h2 { max-width: 390px; color: #fff; }
.browser-medical-note { margin: auto 0 0; color: rgb(var(--dashboard-muted-rgb) / .56); font-size: 10px; line-height: 14px; text-align: center; }

.view-heading { max-width: 780px; margin-bottom: 18px; }
.view-heading h2 { margin: 0; font-size: clamp(24px, 2.7vw, 36px); line-height: 42px; font-weight: 600; }
.view-heading p { margin: 5px 0 0; color: rgb(var(--dashboard-muted-rgb) / .66); font-size: 13px; line-height: 19px; }
.week-chart-card { margin-top: 0; }
.legend { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--dashboard-active); }
.week-chart { min-height: 280px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; align-items: end; margin-top: 18px; padding: 18px 8px 0; border-radius: 12px; background: linear-gradient(to top, rgb(48 74 88 / .07) 1px, transparent 1px) 0 0 / 100% 25%; }
.chart-day { min-width: 0; height: 250px; display: grid; grid-template-rows: 1fr 25px; gap: 8px; }
.chart-bars { display: flex; align-items: flex-end; justify-content: center; gap: 4px; }
.chart-bar { width: min(18px, 32%); min-height: 4px; position: relative; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--attention-soft), var(--attention)); }
.chart-bar::after { position: absolute; top: -17px; left: 50%; color: var(--muted); font-size: 9px; transform: translateX(-50%); content: attr(data-score); }
.chart-day > strong { color: var(--muted); font-size: 11px; text-align: center; }
.chart-day.current > strong { color: var(--dashboard-active); }
.all-check-ins-card > header { align-items: center; }
.all-check-ins-card #all-check-ins { margin-top: 8px; }
.all-check-ins-card .check-in-row { grid-template-columns: 44px minmax(120px, 1fr) minmax(140px, 1fr) auto; }
.check-in-signals { color: var(--muted); font-size: 11px; }
.settings-view { max-width: 980px; }
.settings-card { display: flex; align-items: center; justify-content: space-between; gap: 26px; margin-bottom: 12px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel-strong); box-shadow: inset 0 1px 0 rgb(255 255 255 / .8); }
.settings-card > div:first-child { display: grid; grid-template-columns: 42px 1fr; gap: 14px; }
.settings-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: var(--accent-dark); background: var(--accent-soft); font-size: 19px; }
.settings-card h3 { margin: 0 0 5px; font-size: 15px; line-height: 20px; font-weight: 600; }
.settings-card p { max-width: 640px; margin: 0; color: rgb(var(--dashboard-muted-rgb) / .66); font-size: 12px; line-height: 17px; }
.settings-card small { display: block; margin-top: 8px; color: var(--accent-dark); font-size: 11px; }
.settings-card label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; line-height: 14px; font-weight: 600; }
.settings-card select { min-width: 160px; min-height: 40px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: #fff; }
.danger-card { border-color: rgb(132 59 50 / .24); }
.danger-card .settings-icon { color: var(--error); background: var(--error-soft); }
.mobile-nav { display: none; }

/* Electron workspace, progress, exercise, and settings surfaces */
.workspace-screen { height: calc(100vh - 112px); min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 29%); gap: 14px; }
.workspace-editor, .exercise-configured-routines, .exercise-routine-builder { border-radius: 18px; background: rgb(48 74 88 / .035); }
.workspace-editor { min-width: 0; min-height: 0; display: grid; grid-template-rows: 68px minmax(0, 1fr) 148px; gap: 8px; padding: 8px; }
.workspace-editor-toolbar { min-width: 0; display: grid; grid-template-columns: auto auto minmax(0, 1fr); grid-template-rows: 32px 30px; align-items: center; gap: 4px 8px; }
.workspace-workplace-switcher { min-width: 0; grid-column: 1 / -1; display: flex; align-items: center; gap: 5px; }
.workspace-workplace-switcher label, .workspace-editor-toolbar > label { min-width: 0; display: inline-flex; align-items: center; gap: 6px; color: rgb(var(--dashboard-muted-rgb) / .58); font-size: 11px; line-height: 14px; }
.workspace-workplace-switcher label { color: rgb(var(--dashboard-muted-rgb) / .7); font-weight: 650; }
.workspace-editor-toolbar select { height: 28px; padding: 3px 23px 3px 7px; border: 0; border-radius: 7px; color: var(--dashboard-ink); background: rgb(48 74 88 / .06); font-size: 11px; opacity: 1; }
.workspace-workplace-switcher select { min-width: 180px; }
.workspace-workplace-switcher button, .workspace-canvas-toolbar button { min-height: 26px; padding: 4px 7px; border: 0; border-radius: 7px; color: rgb(var(--dashboard-muted-rgb) / .72); background: transparent; font-size: 11px; line-height: 15px; font-weight: 650; opacity: 1; }
.workspace-canvas-toolbar { display: flex; align-items: center; gap: 3px; margin-left: auto; }
.workspace-canvas-toolbar button { min-width: 28px; height: 28px; }
.workspace-canvas-toolbar button:disabled { opacity: .3; }
.workspace-canvas-wrap { position: relative; min-height: 0; }
.workspace-canvas { position: absolute; inset: 0; min-height: 0; overflow: hidden; border-radius: 20px; background: radial-gradient(circle at 50% 38%, rgb(194 229 242 / .26), transparent 58%), rgb(48 74 88 / .035); }
.workspace-desk-surface { position: absolute; inset: 8% 7% 31%; height: auto; border-radius: 26px; background: repeating-linear-gradient(6deg, rgb(245 197 111 / .12) 0 1px, transparent 1px 7px), linear-gradient(104deg, #76552f, #a66a25 44%, #a6702b 72%, #7b4b18); box-shadow: 0 16px 36px rgb(var(--dashboard-shadow) / .18), inset 0 1px rgb(245 197 111 / .2); }
.workspace-layout-surface { width: min(74%, 520px); height: min(72%, 360px); position: absolute; z-index: 0; top: 50%; left: 50%; display: none; object-fit: contain; transform: translate(-50%, -50%); }
.workspace-canvas[data-workspace-kind="sofa"] .workspace-desk-surface, .workspace-canvas[data-workspace-kind="bed"] .workspace-desk-surface, .workspace-canvas[data-workspace-kind="floor"] .workspace-desk-surface { opacity: 0; }
.workspace-canvas[data-workspace-kind="sofa"] .workspace-layout-sofa, .workspace-canvas[data-workspace-kind="bed"] .workspace-layout-bed, .workspace-canvas[data-workspace-kind="floor"] .workspace-layout-floor { display: block; }
.workspace-user-position { position: absolute; z-index: 4; bottom: .5%; left: 50%; display: grid; place-items: center; color: rgb(var(--dashboard-muted-rgb) / .48); font-size: 11px; transform: translateX(-50%); }
.workspace-user-position i { width: 52px; height: 18px; display: block; border: 0; border-radius: 50% 50% 8px 8px; background: rgb(48 74 88 / .18); }
.workspace-user-position span { margin-top: 2px; }
.workspace-object { position: absolute; z-index: 2; width: 94px; height: 86px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 14px; background: transparent; transform: translate(-50%, -50%); }
.workspace-object.is-selected { background: rgb(43 119 160 / .09); box-shadow: 0 0 0 2px rgb(43 119 160 / .66); }
.workspace-object.is-seating { z-index: 3; }
.workspace-object img { width: 88px; height: 80px; object-fit: contain; }
.workspace-object[data-type="monitor"], .workspace-object[data-type="monitor-wide"], .workspace-object[data-type="keyboard"], .workspace-object[data-type="slim-keyboard"] { width: 132px; }
.workspace-object[data-type="monitor"] img, .workspace-object[data-type="monitor-wide"] img, .workspace-object[data-type="keyboard"] img, .workspace-object[data-type="slim-keyboard"] img { width: 124px; }
.workspace-object[data-type="mouse"], .workspace-object[data-type="vertical-mouse"] { width: 62px; }
.workspace-object[data-type="mouse"] img, .workspace-object[data-type="vertical-mouse"] img { width: 56px; }
.workspace-object[data-type="office-chair"], .workspace-object[data-type="dining-chair"], .workspace-object[data-type="standing"] { bottom: 0; }
.workspace-object-editor { position: absolute; z-index: 14; top: 48%; left: 50%; display: flex; align-items: center; gap: 4px; padding: 4px; border-radius: 11px; color: var(--dashboard-ink); background: rgb(255 255 255 / .9); box-shadow: 0 12px 30px rgb(var(--dashboard-shadow) / .24), inset 0 1px 0 #fff; transform: translate(-50%, -50%); backdrop-filter: blur(16px); }
.workspace-object-editor::before { width: 8px; height: 8px; position: absolute; top: -4px; left: 50%; content: ""; background: rgb(255 255 255 / .9); transform: translateX(-50%) rotate(45deg); }
.workspace-object-editor button { min-height: 27px; padding: 4px 7px; border: 0; border-radius: 7px; color: rgb(var(--dashboard-muted-rgb) / .78); background: transparent; font-size: 11px; line-height: 15px; white-space: nowrap; }
.workspace-laptop-configuration, .workspace-object-actions { display: flex; align-items: center; gap: 2px; }
.workspace-laptop-configuration button[aria-pressed="true"] { color: #fff; background: var(--accent); box-shadow: 0 2px 8px rgb(43 119 160 / .2); }
.workspace-object-actions::before { width: 1px; height: 18px; margin: 0 2px; content: ""; background: rgb(48 74 88 / .1); }
.workspace-object-actions svg { width: 15px; height: 15px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.workspace-palette { min-width: 0; display: grid; grid-template-columns: 1fr 1.2fr .52fr; grid-template-rows: 62px 66px; align-items: stretch; gap: 5px; padding: 5px; overflow: visible; border: 0; border-radius: 14px; background: rgb(48 74 88 / .035); }
.workspace-palette section { min-width: 0; display: grid; grid-template-rows: 14px minmax(0, 1fr); padding: 0 3px; }
.workspace-palette h3 { margin: 0; color: rgb(var(--dashboard-muted-rgb) / .54); font-size: 11px; line-height: 12px; font-weight: 650; }
.workspace-palette section > div { min-width: 0; display: flex; gap: 1px; overflow-x: auto; scrollbar-width: none; }
.workspace-palette button { width: 48px; height: 58px; min-width: 48px; display: grid; place-items: center; padding: 1px; border: 0; border-radius: 10px; background: transparent; opacity: 1; }
.workspace-palette button[aria-checked="true"] { background: rgb(43 119 160 / .13); box-shadow: inset 0 0 0 1px rgb(43 119 160 / .6); }
.workspace-palette img { width: 45px; height: 45px; object-fit: contain; }
.workspace-palette button span { display: none; }
.workspace-palette .workspace-seating { grid-column: 1 / -1; display: grid; grid-template-columns: 62px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: center; gap: 5px; }
.workspace-guidance { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 10px; padding: 11px; border-radius: 18px; background: linear-gradient(155deg, rgb(194 229 242 / .24), rgb(48 74 88 / .025)); }
.workspace-camera-check { min-height: 0; display: grid; grid-template-rows: auto auto auto; gap: 5px; }
.workspace-camera-check > header { display: flex; align-items: center; justify-content: space-between; }
.workspace-camera-check > header > div { display: flex; align-items: center; gap: 7px; }
.workspace-camera-check header i { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.workspace-camera-check header strong { font-size: 12px; line-height: 16px; }
.workspace-camera-check header button { padding: 3px 0; border: 0; color: var(--accent); background: transparent; cursor: pointer; font-size: 11px; }
.workspace-camera-stage { min-height: 104px; position: relative; overflow: hidden; border: 1px solid rgb(43 119 160 / .2); border-radius: 15px; background: #0f1218; box-shadow: inset 0 1px 0 rgb(255 255 255 / .05); }
.workspace-camera-visual { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.workspace-camera-visual svg { width: 100%; height: 100%; display: block; }
.workspace-camera-stage > p { position: absolute; z-index: 3; right: 8px; bottom: 8px; left: 8px; margin: 0; padding: 5px 8px; border-radius: 8px; color: #fff; background: rgb(15 18 24 / .66); font-size: 11px; line-height: 15px; font-weight: 650; text-align: center; backdrop-filter: blur(6px); }
.workspace-camera-check > small { color: rgb(var(--dashboard-muted-rgb) / .5); font-size: 11px; line-height: 14px; }
.workspace-improvements { min-height: 0; overflow-y: auto; }
.workspace-improvements-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.workspace-improvements-heading h3 { margin: 0; font-size: 16px; line-height: 21px; }
.workspace-improvements-heading strong { color: var(--accent); font-size: 14px; }
.workspace-improvements ol { display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.workspace-improvements li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 8px; }
.workspace-improvements li > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: var(--accent-dark); background: #fff; font-size: 11px; font-weight: 700; }
.workspace-improvements li p { display: grid; gap: 1px; margin: 0; }
.workspace-improvements li strong { font-size: 11px; line-height: 15px; }
.workspace-improvements li small { color: var(--muted); font-size: 10px; line-height: 14px; }
.workspace-guidance > p { margin: 0; color: rgb(var(--dashboard-muted-rgb) / .52); font-size: 10px; line-height: 14px; }

.progress-page-header { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.progress-status { margin: 0; color: var(--muted); font-size: 10px; }
.progress-tablist { align-self: stretch; display: flex; gap: 24px; }
.progress-tablist button { position: relative; padding: 0 2px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 13px; font-weight: 600; }
.progress-tablist button[aria-selected="true"] { color: var(--dashboard-ink); }
.progress-tablist button[aria-selected="true"]::after { height: 3px; position: absolute; right: 0; bottom: -1px; left: 0; border-radius: 3px 3px 0 0; background: var(--attention); content: ""; }
.progress-panel { display: grid; gap: 12px; }
.progress-goal-card { min-height: 210px; padding: 24px; border-radius: 22px; color: #fff; background: radial-gradient(circle at 90% 10%, rgb(194 229 242 / .25), transparent 30%), linear-gradient(145deg, #275f7d, #347a9e); box-shadow: 0 16px 38px rgb(46 89 113 / .18); }
.progress-goal-kicker { color: rgb(255 255 255 / .62); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.progress-goal-card h3 { margin: 8px 0 12px; font-size: clamp(27px, 3.3vw, 42px); line-height: 1.06; }
.progress-goal-card > p { max-width: 690px; color: rgb(255 255 255 / .72); font-size: 12px; }
.progress-goal-state { display: inline-grid; gap: 2px; margin-top: 10px; padding: 11px 14px; border: 1px solid rgb(255 255 255 / .18); border-radius: 12px; background: rgb(34 51 62 / .2); }
.progress-goal-state strong { font-size: 12px; }
.progress-goal-state span { color: rgb(255 255 255 / .62); font-size: 10px; }
.progress-empty-state { min-height: 400px; display: grid; place-items: center; align-content: center; gap: 10px; padding: 40px; border: 1px solid var(--line); border-radius: 20px; background: var(--panel); text-align: center; }
.progress-empty-state .nav-icon { width: 34px; height: 34px; color: var(--accent); }
.progress-empty-state h3 { margin: 5px 0 0; font-size: 24px; }
.progress-empty-state p { max-width: 520px; margin: 0 0 8px; color: var(--muted); }

.exercises-view { display: grid; gap: 14px; }
.exercise-configured-routines, .exercise-routine-builder { padding: 20px; }
.exercise-custom-heading, .exercise-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.exercise-custom-heading h2, .exercise-page-header h2 { margin: 0; font-size: 24px; line-height: 30px; }
.exercise-custom-heading p, .exercise-page-header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.exercise-secondary-action, .exercise-primary-action { min-height: 36px; padding: 7px 11px; border: 1px solid var(--line-strong); border-radius: 9px; background: rgb(255 255 255 / .72); cursor: pointer; font-size: 10px; font-weight: 700; }
.exercise-primary-action { border-color: var(--accent); color: #fff; background: var(--accent); }
.exercise-secondary-action:disabled { cursor: not-allowed; opacity: .48; }
.exercise-routine-card { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 13px; background: rgb(255 255 255 / .52); }
.exercise-routine-card > div { display: flex; align-items: center; gap: 11px; }
.exercise-routine-card > div > div { display: grid; }
.exercise-routine-card small { color: var(--muted); font-size: 10px; }
.exercise-routine-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: var(--accent-dark); background: var(--accent-soft); font-size: 14px; font-weight: 700; }
.standard-exercise-tracks { display: grid; gap: 14px; margin-top: 18px; }
.exercise-track { padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: rgb(255 255 255 / .38); }
.exercise-track > header { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.exercise-track > header span { color: var(--attention); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.exercise-track h3 { margin: 2px 0 0; font-size: 15px; }
.exercise-track > header small { color: var(--muted); font-size: 9px; }
.exercise-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.exercise-card { min-height: 120px; display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px; border-radius: 13px; background: rgb(255 255 255 / .76); }
.exercise-card img { width: 105px; height: 95px; object-fit: contain; border-radius: 10px; background: linear-gradient(145deg, var(--accent-soft), rgb(255 255 255 / .5)); }
.exercise-card h4 { margin: 2px 0 5px; font-size: 13px; }
.exercise-card p { font-size: 10px; line-height: 15px; }
.exercise-card > div > span { color: var(--accent-dark); font-size: 8px; font-weight: 700; }
.exercise-reminder-rules { margin-top: 14px; border: 1px solid var(--line); border-radius: 13px; background: rgb(255 255 255 / .48); }
.exercise-reminder-rules summary { display: flex; align-items: center; justify-content: space-between; padding: 13px 15px; cursor: pointer; list-style: none; }
.exercise-reminder-rules summary > span:first-child { display: grid; }
.exercise-reminder-rules summary strong { font-size: 12px; }
.exercise-reminder-rules summary small { color: var(--muted); font-size: 9px; }
.exercise-reminder-content { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 15px 15px; }
.exercise-reminder-content p, .exercise-safety { margin: 0; color: var(--muted); font-size: 10px; line-height: 15px; }
.exercise-safety { margin-top: 13px; }

.settings-view { display: grid; gap: 18px; padding-bottom: 20px; }
.settings-group-header { margin-bottom: 7px; padding-left: 2px; }
.settings-group-header h2 { margin: 0; font-size: 15px; line-height: 20px; }
.settings-group .settings-card { min-height: 76px; margin: 0; padding: 17px 18px; border-radius: 14px; }
.settings-group .settings-card > div:first-child { display: block; }
.settings-profile-field { display: grid; gap: 3px; }
.settings-group .settings-card > .settings-profile-field { display: grid; }
.settings-profile-field span, .settings-field > span { color: var(--muted); font-size: 10px; font-weight: 600; }
.settings-profile-field strong { font-size: 12px; }
.settings-field-grid { display: grid !important; grid-template-columns: minmax(180px, 280px) 1fr !important; align-items: end !important; }
.settings-field { display: grid; gap: 5px; }
.settings-note { align-self: center; }
.settings-plan-badge { padding: 5px 9px; border-radius: 999px; color: var(--accent-dark); background: var(--accent-soft); font-size: 9px; font-weight: 800; }
.settings-checkin-card, .settings-notification-card, .settings-privacy-card { align-items: flex-start; }
.settings-checkin-card > div { display: grid !important; gap: 4px !important; }
.settings-status { color: var(--muted); font-size: 10px; line-height: 15px; }
.settings-notification-controls { display: flex !important; grid-template-columns: none !important; align-items: end; gap: 8px !important; }
.settings-group a.secondary-button { white-space: nowrap; }

/* Page-open notification rail: no system notification or background claim. */
.notification-rail { width: min(360px, calc(100vw - 28px)); height: min(520px, calc(100vh - 28px)); position: fixed; z-index: 46; top: 14px; right: 14px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; color: var(--dashboard-ink); background: rgb(245 247 248 / .96); box-shadow: 0 30px 90px rgb(24 46 57 / .38); backdrop-filter: blur(18px); }
.notification-rail > header { min-height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 12px 15px; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 90% 0%, rgb(194 229 242 / .52), transparent 55%); }
.notification-rail > header div { display: grid; gap: 1px; }
.notification-rail > header span { color: var(--attention); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.notification-rail > header h2 { margin: 0; font-size: 20px; }
.notification-rail > header button { width: 34px; height: 34px; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--panel); cursor: pointer; font-size: 20px; }
.notification-rail-body { overflow-y: auto; padding: 12px; }
.notification-rail-empty { min-height: 100%; display: grid; place-items: center; align-content: center; gap: 6px; color: var(--muted); text-align: center; }
.notification-rail-empty img { width: 118px; height: 92px; object-fit: contain; opacity: .76; }
.notification-rail-empty strong { color: var(--dashboard-ink); font-size: 14px; }
.notification-rail-empty span { font-size: 10px; }
.notification-card { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: start; gap: 12px; overflow: hidden; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 12px 30px rgb(var(--dashboard-shadow) / .13); }
.notification-card > img { width: 92px; height: 92px; display: block; border-radius: 12px; object-fit: cover; object-position: center; background: var(--accent-soft); }
.notification-card > div { min-width: 0; display: grid; gap: 4px; padding: 0; }
.notification-card > div > span { color: var(--attention); font-size: 8px; font-weight: 800; letter-spacing: .09em; }
.notification-card strong { font-size: 14px; line-height: 18px; }
.notification-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 14px; }
.notification-card > div > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.notification-primary, .notification-secondary { min-height: 30px; padding: 5px 9px; border-radius: 8px; cursor: pointer; font-size: 9px; font-weight: 700; }
.notification-primary { border: 0; color: #fff; background: var(--accent); }
.notification-secondary { border: 1px solid var(--line-strong); background: transparent; }
.notification-rail > footer { padding: 9px 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 8px; line-height: 12px; text-align: center; }

/* Camera and modal surfaces */
.capture-overlay { min-height: 100vh; min-height: 100dvh; position: fixed; z-index: 50; inset: 0; overflow-y: auto; display: grid; place-items: center; padding: 26px; background: rgb(24 46 57 / .66); backdrop-filter: blur(12px); outline: none; }
.capture-dialog { width: min(1180px, 100%); min-height: min(740px, calc(100dvh - 52px)); padding: 20px 32px 28px; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); background: radial-gradient(circle at 88% 0%, rgb(194 229 242 / .38), transparent 34%), linear-gradient(145deg, var(--canvas-middle), var(--canvas-start) 62%, var(--canvas-end)); box-shadow: var(--shadow); }
.capture-dialog > header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.icon-button { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--panel); cursor: pointer; font-size: 20px; }
.capture-heading { margin: 18px 0 14px; }
.capture-heading h1, .result-dialog h1, .error-dialog h1 { margin: 0; font-size: clamp(28px, 3.4vw, 46px); line-height: 1.05; font-weight: 600; letter-spacing: -.035em; }
.capture-heading p { min-height: 20px; margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.capture-layout { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 14px; }
.camera-stage { aspect-ratio: 16 / 9; position: relative; overflow: hidden; border: 2px solid var(--line-strong); border-radius: 20px; background: #131314; box-shadow: 0 18px 42px rgb(48 74 88 / .32); }
.camera-stage video.camera-source { width: 1px; height: 1px; position: absolute; opacity: 0; pointer-events: none; }
.camera-stage.points-only { background: radial-gradient(circle at 50% 40%, rgb(43 119 160 / .24), transparent 46%), #0f1218; }
.map-opening { position: absolute; z-index: 3; inset: 0; display: grid; align-content: center; justify-items: center; gap: 13px; color: #fff; background: radial-gradient(circle at 50% 40%, rgb(43 119 160 / .22), transparent 42%), #0f1218; }
.map-opening span { width: 34px; height: 34px; border: 3px solid rgb(255 255 255 / .28); border-top-color: #fff; border-radius: 50%; animation: map-spin 800ms linear infinite; }
@keyframes map-spin { to { transform: rotate(360deg); } }
.framing-guide { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.framing-guide::before { width: min(54%, 350px); aspect-ratio: .83; border: 1px dashed rgb(194 229 242 / .55); border-radius: 50% 50% 38% 38%; box-shadow: 0 0 0 999px rgb(5 10 8 / .08); content: ""; }
.local-badge, .snapshot-badge { position: absolute; top: 16px; padding: 8px 12px; border-radius: 999px; color: #fff; background: rgb(15 18 24 / .62); font-size: 11px; line-height: 15px; font-weight: 600; backdrop-filter: blur(6px); }
.local-badge { left: 16px; display: inline-flex; align-items: center; gap: 8px; }
.local-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--attention-soft); box-shadow: 0 0 0 3px rgb(234 153 189 / .18); }
.snapshot-badge { left: 50%; background: var(--attention); transform: translateX(-50%); }
.capture-proof { min-height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); }
.capture-proof div { display: grid; gap: 5px; padding: 20px 2px; }
.capture-proof div + div { border-top: 1px solid var(--line); }
.capture-proof strong { color: var(--accent); font-size: 23px; line-height: 1.1; }
.capture-proof span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.progress-row { display: grid; grid-template-columns: 1fr 44px; align-items: center; gap: 13px; margin-top: 14px; }
.progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: var(--line); }
.progress-track span { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--attention-soft), var(--attention)); transition: width 180ms ease; }
.progress-row > strong { color: var(--muted); font-size: 11px; }
.result-dialog { min-height: min(700px, calc(100dvh - 52px)); display: flex; flex-direction: column; align-items: center; text-align: center; }
.result-dialog > header { width: 100%; }
.success-mark { width: 49px; height: 49px; display: grid; place-items: center; margin: 28px auto 16px; border-radius: 50%; color: #fff; background: var(--accent); box-shadow: 0 0 0 9px rgb(43 119 160 / .09); }
.result-dialog > p { color: var(--muted); }
.result-dialog .first-result-signals { margin: 18px auto; }
.result-guidance { max-width: 690px; margin: 4px auto 10px; line-height: 1.5; }
.result-dialog > .primary-button { margin-top: auto; }
.error-dialog { min-height: 390px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.error-dialog > header { display: none; }
.error-dialog > p { max-width: 650px; margin: 12px 0 20px; color: var(--muted); line-height: 1.5; }
.error-dialog > div { display: flex; gap: 10px; }
.error-mark { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 50%; color: var(--error); background: var(--error-soft); font-size: 25px; font-weight: 700; }
.storage-recovery-dialog { width: min(760px, 100%); min-height: min(650px, calc(100dvh - 52px)); display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 20px 28px 28px; }
.storage-recovery-dialog > header { min-height: 48px; }
.storage-recovery-state { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; line-height: 15px; font-weight: 650; }
.storage-recovery-state i { width: 8px; height: 8px; border-radius: 50%; background: #b47b34; box-shadow: 0 0 0 4px rgb(180 123 52 / .12); }
.storage-recovery-body { width: min(540px, 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; justify-self: center; padding: 34px 0 10px; text-align: center; }
.storage-lock-mark { width: 66px; height: 66px; position: relative; display: grid; place-items: center; margin-bottom: 20px; border: 1px solid rgb(43 119 160 / .2); border-radius: 22px; color: var(--accent-dark); background: rgb(194 229 242 / .46); box-shadow: 0 12px 30px rgb(var(--dashboard-shadow) / .1); }
.storage-lock-mark::before { width: 24px; height: 19px; position: absolute; top: 27px; border: 3px solid currentColor; border-radius: 5px; content: ""; }
.storage-lock-mark::after { width: 16px; height: 17px; position: absolute; top: 15px; border: 3px solid currentColor; border-bottom: 0; border-radius: 12px 12px 0 0; content: ""; }
.storage-lock-mark i { width: 4px; height: 7px; position: relative; z-index: 1; margin-top: 8px; border-radius: 999px; background: currentColor; }
.storage-recovery-kicker { margin: 0 0 8px; color: var(--attention); font-size: 10px; line-height: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.storage-recovery-dialog h1 { max-width: 520px; margin: 0; color: var(--ink); font-size: clamp(31px, 4vw, 46px); line-height: 1.06; font-weight: 600; letter-spacing: -.035em; }
.storage-recovery-copy { max-width: 510px; margin: 13px 0 22px; color: var(--muted); font-size: 14px; line-height: 21px; }
.storage-account-context { width: min(460px, 100%); display: grid; gap: 3px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 16px; text-align: left; background: rgb(255 255 255 / .58); box-shadow: inset 0 1px 0 rgb(255 255 255 / .82); }
.storage-account-context > span { color: var(--muted); font-size: 9px; line-height: 13px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.storage-account-context > strong { overflow-wrap: anywhere; color: var(--ink); font-size: 14px; line-height: 19px; }
.storage-account-context > small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 15px; }
.storage-recovery-actions { width: min(460px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 16px; }
.storage-recovery-actions button { width: 100%; }
.storage-recovery-delete { margin-top: 14px; padding: 5px 8px; border: 0; color: var(--error); background: transparent; cursor: pointer; font-size: 11px; line-height: 16px; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.storage-recovery-delete:hover { color: #6c3029; }
.storage-recovery-status { min-height: 18px; margin: 7px 0 0; color: var(--error); font-size: 10px; line-height: 15px; }
.storage-recovery-dialog button:disabled { cursor: wait; opacity: .54; }
.unsupported-state { width: min(780px, calc(100% - 40px)); min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: auto; text-align: center; }
.unsupported-state > img { width: 54px; margin-bottom: 20px; }
.unsupported-state h1 { max-width: 650px; margin-bottom: 12px; font-size: 38px; line-height: 46px; font-weight: 600; }
.unsupported-state > p { max-width: 620px; color: var(--muted); }
.delete-dialog { width: min(520px, calc(100% - 30px)); padding: 0; border: 0; border-radius: 20px; color: var(--ink); background: var(--paper); box-shadow: var(--shadow); }
.delete-dialog::backdrop { background: rgb(24 46 57 / .66); backdrop-filter: blur(8px); }
.delete-dialog form { padding: 30px; }
.delete-dialog h2 { margin-bottom: 10px; font-size: 28px; line-height: 36px; font-weight: 600; }
.delete-dialog p { color: var(--muted); line-height: 1.5; }
.delete-dialog form > div { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
.storage-recovery-confirm form { padding: 32px; }
.storage-confirm-icon { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 50%; color: var(--error); background: var(--error-soft); font-size: 18px; font-weight: 800; }
.storage-recovery-confirm .form-message { min-height: 18px; margin: 12px 0 0; color: var(--error); font-size: 11px; line-height: 16px; }

@media (max-width: 980px) {
  .auth-body { gap: 32px; padding-inline: 38px; }
  .onboarding-header { grid-template-columns: 1fr minmax(250px, 360px) 1fr; padding-inline: 24px; }
  .privacy-flow { grid-template-columns: 1fr; }
  .privacy-flow > b { justify-self: center; transform: rotate(90deg); }
  .privacy-flow article { width: 100%; grid-template-columns: 160px minmax(0, 1fr); grid-template-rows: 1fr; align-items: center; }
  .privacy-flow article > strong { align-self: center; }
  .privacy-result { min-height: 140px; aspect-ratio: auto; display: flex !important; }
  .metric-grid { grid-template-columns: 1fr; }
  .score-hero { min-height: 230px; }
  .signal-grid { grid-template-columns: repeat(3, 1fr); }
  .dashboard-header { grid-template-columns: minmax(170px, 1fr) minmax(220px, 330px) auto; }
  .overview-tracking-panel { width: 280px; min-width: 240px; }
  .browser-area-panel .signal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .browser-history-grid { grid-template-columns: 1fr; }
  .choice-grid.three-column { grid-template-columns: repeat(2, 1fr); }
  .setup-insight { grid-template-columns: 1fr 120px; }
  .setup-insight > div:last-child { grid-column: 1 / -1; }
  .workspace-screen { grid-template-columns: minmax(0, 1fr) 240px; }
  .workspace-editor-toolbar > label { display: none; }
  .exercise-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .auth-shell { padding: 0; background: var(--paper); backdrop-filter: none; }
  .auth-dialog { width: 100%; min-height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; box-shadow: none; }
  .auth-header { padding: 14px 18px; }
  .auth-header > span { font-size: 0; }
  .auth-header > span i { margin-right: 4px; }
  .auth-body { display: block; padding: 28px 20px; }
  .auth-intro { margin-bottom: 24px; }
  .auth-intro h1 { font-size: 40px; }
  .auth-card { max-width: none; }
  .auth-footer { display: grid; gap: 4px; padding: 13px 20px calc(13px + env(safe-area-inset-bottom)); }
  .onboarding-shell { padding: 0; background: var(--paper); backdrop-filter: none; }
  .onboarding-dialog { width: 100%; height: 100dvh; border: 0; border-radius: 0; box-shadow: none; }
  .onboarding-header { min-height: 68px; grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 8px; padding: 8px 14px; }
  .onboarding-header .brand span { display: none; }
  .onboarding-progress { gap: 5px; }
  .onboarding-progress > span { min-width: 0; font-size: 10px; }
  .onboarding-step { padding: 26px 20px calc(24px + env(safe-area-inset-bottom)); }
  .step-heading h1, .first-result-step h1 { font-size: 34px; line-height: 1.08; }
  .name-field { grid-template-columns: 1fr; gap: 7px; }
  .choice-grid.two-column, .choice-grid.three-column { grid-template-columns: 1fr; }
  .question-card { padding: 15px; }
  .other-field { grid-template-columns: 1fr; gap: 7px; }
  .privacy-flow article { grid-template-columns: 100px minmax(0, 1fr); }
  .privacy-media { width: 100px; }
  .trust-row { grid-template-columns: repeat(2, 1fr); }
  .baseline-capture-layout { grid-template-columns: 1fr; }
  .baseline-preview { height: auto; min-height: 0; aspect-ratio: 16 / 10; max-height: none; }
  .baseline-proof { min-height: 82px; display: grid; grid-template-columns: repeat(2, 1fr); }
  .baseline-proof > div { padding: 8px; text-align: center; }
  .baseline-proof > div + div { border-top: 0; border-left: 1px solid var(--line); }
  .first-result-signals { grid-template-columns: 1fr; }
  .pattern-card, .data-modes { grid-template-columns: 1fr; }
  .pattern-card > div { min-height: 0; padding: 22px; }
  .pattern-card .first-result-signals { grid-template-columns: 1fr; }
  .setup-insight { grid-template-columns: 1fr; padding-inline: 0; text-align: center; }
  .setup-insight img { justify-self: center; }
  #baseline-measurements { grid-template-columns: 1fr; }
  .control-list > div { padding-inline: 14px; }
  .web-control-preview { grid-template-columns: 1fr; }
  .dashboard-shell { display: block; padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .sidebar { display: none; }
  .dashboard-content { height: auto; min-height: 100vh; padding: 0 16px 18px; }
  .dashboard-header { min-height: 126px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-top: 12px; }
  .dashboard-header h1 { font-size: 26px; line-height: 34px; }
  .overview-tracking-control { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .overview-tracking-panel { width: 100%; min-width: 0; height: 42px; min-height: 42px; }
  .overview-tracking-glyph { width: 27px; height: 27px; }
  .header-actions { gap: 7px; }
  .new-check-in { min-height: 40px; padding-inline: 12px; }
  .metric-grid { display: block; }
  .score-hero { min-height: 225px; margin-bottom: 10px; }
  .score-hero .spine-mark { transform: scale(.78); transform-origin: top left; }
  .score-hero > p { background: rgb(34 51 62 / .78); }
  .signal-grid { grid-template-columns: repeat(2, 1fr); }
  .signal-card { min-height: 128px; }
  .signal-card > img { width: 65px; height: 58px; opacity: .62; }
  .overview-view, .browser-load-page { min-height: 0; }
  .browser-load-hero { min-height: 345px; }
  .browser-area-toggle { right: auto; bottom: 5px; }
  .browser-area-panel .signal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .browser-now-grid, .browser-quality-grid { grid-template-columns: 1fr; }
  .browser-overview-tabs { overflow-x: auto; grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .browser-overview-card { min-height: 175px; padding: 17px; }
  .browser-history-grid .week-strip { grid-template-columns: repeat(7, minmax(74px, 1fr)); }
  .pain-now-grid, .overview-widget-grid, .workspace-grid, .exercise-grid { grid-template-columns: 1fr; }
  .workspace-hero { grid-template-columns: 1fr; }
  .workspace-hero img { width: 180px; height: 180px; }
  .workspace-screen { height: auto; min-height: 0; grid-template-columns: 1fr; }
  .workspace-editor { min-height: 650px; grid-template-rows: 68px minmax(330px, 1fr) 148px; }
  .workspace-editor-toolbar { overflow: hidden; }
  .workspace-workplace-switcher > button, .workspace-canvas-toolbar { display: none; }
  .workspace-canvas-wrap { min-height: 330px; }
  .workspace-palette { grid-template-columns: 1fr 1fr; }
  .workspace-palette .workspace-seating { grid-column: 1 / -1; }
  .workspace-guidance { min-height: 460px; }
  .progress-page-header { align-items: flex-end; flex-direction: column; }
  .progress-tablist { width: 100%; justify-content: space-around; }
  .progress-tablist button { min-height: 42px; }
  .progress-goal-card { padding: 20px; }
  .exercise-configured-routines, .exercise-routine-builder { padding: 15px; border-radius: 17px; }
  .exercise-custom-heading, .exercise-page-header, .exercise-routine-card, .exercise-reminder-content { align-items: stretch; flex-direction: column; }
  .exercise-page-header > button, .exercise-custom-heading > button { display: none; }
  .exercise-card { grid-template-columns: 92px minmax(0, 1fr); }
  .exercise-card img { width: 92px; height: 84px; }
  .settings-field-grid { grid-template-columns: 1fr !important; }
  .settings-notification-controls { display: grid !important; width: 100%; }
  .settings-group .settings-card > button, .settings-group .settings-card > a { align-self: flex-start; }
  .week-strip { overflow-x: auto; grid-template-columns: repeat(7, minmax(78px, 1fr)); padding-bottom: 5px; }
  .dashboard-card { padding: 15px; border-radius: 20px; }
  .mobile-nav { height: calc(66px + env(safe-area-inset-bottom)); position: fixed; z-index: 35; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5, 1fr); padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgb(245 247 248 / .94); backdrop-filter: blur(14px); }
  .mobile-nav button { display: grid; place-items: center; align-content: center; gap: 3px; border: 0; color: var(--muted); background: transparent; font-size: 10px; }
  .mobile-nav .nav-icon { width: 19px; height: 19px; }
  .mobile-nav button.active { color: var(--accent-dark); }
  .week-chart { overflow-x: auto; grid-template-columns: repeat(7, minmax(58px, 1fr)); }
  .all-check-ins-card .check-in-row { grid-template-columns: 42px 1fr auto; }
  .all-check-ins-card .check-in-signals { display: none; }
  .settings-card { align-items: stretch; flex-direction: column; }
  .settings-card select { width: 100%; }
  .capture-overlay { align-items: start; padding: 0; background: var(--paper); }
  .capture-dialog { width: 100%; min-height: 100dvh; padding: 16px; border: 0; border-radius: 0; box-shadow: none; }
  .capture-heading h1, .result-dialog h1, .error-dialog h1 { font-size: 31px; }
  .capture-layout { grid-template-columns: 1fr; }
  .camera-stage { aspect-ratio: 3 / 4; max-height: 56vh; }
  .capture-proof { min-height: 85px; display: grid; grid-template-columns: repeat(3, 1fr); }
  .capture-proof div { padding: 9px; text-align: center; }
  .capture-proof div + div { border-top: 0; border-left: 1px solid var(--line); }
  .capture-proof strong { font-size: 20px; }
  .result-dialog .first-result-signals { max-height: 270px; overflow-y: auto; }
  .error-dialog > div { width: 100%; flex-direction: column; }
  .error-dialog > div button { width: 100%; }
  .storage-recovery-dialog { display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 16px; }
  .storage-recovery-body { justify-content: flex-start; padding-top: 30px; }
  .storage-recovery-dialog h1 { font-size: 32px; }
  .storage-recovery-actions { grid-template-columns: 1fr; }
  .notification-rail { width: 100%; height: min(78dvh, 680px); top: auto; right: 0; bottom: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 22px 22px 0 0; padding-bottom: env(safe-area-inset-bottom); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
