/* GENERATED by scripts/build.mjs — edit src/css/styles.css, not this file. */
  :root {
    --green-900: #0b3d22;
    --green-800: #14532d;
    --green-700: #15803d;
    --green-600: #16a34a;
    --green-500: #22c55e;
    --sand: #e8dcb5;
    --sand-dark: #d9c98f;
    --ink: #0f2417;
    --paper: #f7faf6;
    --card: #ffffff;
    --muted: #5b6b60;
    --line: #e2ebe2;
    --accent: #f4c542;
    --shadow: 0 12px 34px rgba(11, 61, 34, 0.10);
    --shadow-sm: 0 2px 8px rgba(11, 61, 34, 0.06);
    --radius: 18px;
    color-scheme: light;
  }
  * { box-sizing: border-box; }
  body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--ink);
    background: var(--paper);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  .wrap { max-width: 760px; margin: 0 auto; padding: 18px 20px 70px; position: relative; z-index: 1; }

  /* Slim sticky app bar (replaces the giant brand hero) */
  header.appbar {
    position: sticky; top: 0; z-index: 60;
    background: linear-gradient(160deg, #0f2417, #14532d);
    box-shadow: 0 2px 14px rgba(8,40,22,.18);
    /* Installed iOS app draws under the status bar (viewport-fit=cover) — pad the
       header down by the safe-area inset so the clock/battery don't overlap the brand. */
    padding-top: env(safe-area-inset-top);
  }
  .appbar-in {
    max-width: 760px; margin: 0 auto; height: 56px;
    padding: 0 max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left));
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
  }
  .wordmark { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 900; font-size: 20px; letter-spacing: -.6px;
    background: none; border: 0; padding: 0; margin: 0; font-family: inherit; cursor: pointer; }
  .wordmark:active { transform: translateY(1px); }
  .wordmark .wm-ic { width: 28px; height: 28px; display: block; flex: 0 0 auto; filter: drop-shadow(0 1px 2px rgba(0,0,0,.28)); }
  .wordmark .em { color: #7ef0a8; }
  .wordmark .ball { width: 14px; height: 14px; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fff, #d7e2d7); box-shadow: inset -2px -2px 4px rgba(0,0,0,.18); }
  /* Refresh button — only shown when running as an installed app (no browser reload). */
  .appbar-refresh { display: none; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 38px; height: 38px; padding: 0; border-radius: 50%; cursor: pointer; color: #eafff1;
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); -webkit-tap-highlight-color: transparent; }
  .appbar-refresh:active { transform: scale(.92); }
  .appbar-refresh.spin svg { animation: ffspin .6s linear; }
  @keyframes ffspin { to { transform: rotate(360deg); } }
  body.ff-standalone .appbar-refresh { display: inline-flex; }

  /* Big brand hero — Dashboard (Home) only. Matches the premium welcome. */
  .dash-hero {
    position: relative; overflow: hidden; text-align: center; color: #eafff1;
    background: radial-gradient(130% 105% at 80% -10%, #14512f 0%, #0a2317 46%, #06140d 100%);
    border-radius: 20px; padding: 28px 20px 26px; margin-bottom: 16px;
    border: 1px solid rgba(255,255,255,.06);
    box-shadow: 0 14px 34px rgba(5,18,11,.34);
  }
  .dash-hero .hero-ic { width: 72px; height: 72px; display: block; margin: 2px auto 12px; filter: drop-shadow(0 4px 12px rgba(0,0,0,.35)); }
  .dash-hero .brand { margin: 10px 0 14px; font:900 clamp(38px,11.5vw,58px)/1 system-ui; letter-spacing:-2px; white-space:nowrap; }
  .dash-hero .brand .em { color:#7ef0a8; }
  .dash-hero .hook { font:900 clamp(24px,7vw,34px)/1.05 system-ui; letter-spacing:-.8px; color:#fff; margin:0 0 13px; }
  .dash-hero .hook .em { color:#7ef0a8; }
  .dash-hero .tagline { font-size: 13.5px; line-height:1.5; color: #b6dfc6; max-width: 440px; margin:0 auto; }

  /* golf "kicker" label above card titles */
  .kicker {
    display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:800;
    letter-spacing:1.2px; text-transform:uppercase; color:var(--green-600);
    background:#eef7f0; border:1px solid #d9ecdf; padding:4px 10px; border-radius:999px; margin-bottom:10px;
  }
  .brand-kicker {
    display: inline-flex; align-items: center; gap: 8px;
    font-weight: 800; letter-spacing: 2.4px; font-size: 12.8px;
    text-transform: uppercase; color: #7ef0a8;
    background: rgba(126,240,168,.10); padding: 8px 18px; border-radius: 999px;
    border: 1px solid rgba(126,240,168,.28);
  }
  .brand-kicker .ball {
    width: 15px; height: 15px; border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fff, #d7e2d7);
    box-shadow: inset -2px -2px 4px rgba(0,0,0,.15);
  }
  .brand {
    margin: 22px 0 16px; font-weight: 900; line-height: 0.9; color: #fff;
    font-size: clamp(44px, 12vw, 118px); letter-spacing: -0.045em;
    text-shadow: 0 6px 38px rgba(0,0,0,.30);
  }
  .brand .em { color: #7ef0a8; text-shadow: 0 0 46px rgba(126,240,168,.45); }
  .tagline { margin: 0 auto; max-width: 600px; color: #c9e8d3; font-size: 17px; line-height: 1.55; }
  .tagline b { color: #fff; }

  /* Tabs (inside the app bar, desktop) */
  .tabs {
    display: inline-flex; gap: 4px; background: rgba(255,255,255,.10);
    padding: 4px; border-radius: 999px; margin: 0;
    border: 1px solid rgba(255,255,255,.12);
  }
  .tabs button {
    border: none; background: transparent; color: #d6f3e0;
    font-size: 13px; font-weight: 700; padding: 8px 16px; border-radius: 999px;
    cursor: pointer; transition: all .18s ease;
  }
  .tabs button:hover { color: #fff; }
  .tabs button.active { background: #fff; color: var(--green-800); box-shadow: 0 4px 12px rgba(0,0,0,.22); }

  [hidden] { display: none !important; }   /* the hidden attribute must always win */
  .view { display: none; }
  .view.active { display: block; }

  /* Single centered column everywhere — a collapsed inputs card next to the tall plan
     left the desktop layout lopsided, so the Fuel view now stacks like the rest of the app. */
  .grid { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
  /* Fuel "Today" strip — the daily answer, above the reference cards. */
  .ftoday{ background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:10px 12px;
    margin:0 0 14px; box-shadow:0 1px 3px rgba(12,40,24,.04); }
  .ftoday.done{ display:flex; align-items:center; gap:11px; padding:14px 15px;
    background:#eef7f0; border-color:#cfe9d8; }
  .ft-next{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; background:none;
    border:0; padding:6px 4px; cursor:pointer; font:inherit; }
  .ft-ic{ font-size:20px; flex:0 0 auto; }
  .ft-tx{ flex:1; min-width:0; }
  .ft-tx b{ display:block; font-size:15px; color:var(--ink); letter-spacing:-.01em; }
  .ft-tx span{ display:block; font-size:12.5px; color:var(--muted); margin-top:1px; }
  .ft-chk{ flex:0 0 auto; width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center;
    justify-content:center; border:2px solid #cfe9d8; color:var(--green-700); font-weight:800; font-size:15px; }
  .ft-next:active .ft-chk{ background:#eef7f0; }
  .ft-rem{ display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--line);
    margin-top:7px; padding:8px 4px 2px; font-size:12.5px; color:var(--muted); }
  .ft-rem b{ color:var(--green-800); font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:14px; }
  .golf-note.slim{ font-size:12.8px; padding:9px 12px; }
  /* Train Today: compact session list (the player logs; the spreadsheet is opt-in). */
  .sess-list{ margin-top:10px; }
  .sl-row{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; background:var(--paper);
    border:1px solid var(--line); border-radius:12px; padding:11px 13px; margin:0 0 7px; cursor:pointer; font:inherit; }
  .sl-ic{ font-size:16px; flex:0 0 auto; }
  .sl-tx{ flex:1; min-width:0; }
  .sl-tx b{ display:block; font-size:14px; color:var(--ink); letter-spacing:-.01em; }
  .sl-tx span{ display:block; font-size:12px; color:var(--muted); margin-top:1px; }
  .sl-go{ color:#9db8a5; font-size:16px; flex:0 0 auto; }
  .sl-note{ font-size:12.3px; color:var(--muted); line-height:1.5; margin:9px 2px 10px; }
  .sl-manual{ display:block; width:100%; border:1.5px dashed var(--line); background:transparent;
    color:var(--green-700); border-radius:12px; padding:11px; font:800 13px system-ui; cursor:pointer; }
  .sl-manual.off{ margin-top:10px; color:var(--muted); }
  .grid .card-full { grid-column: 1 / -1; }

  .card {
    background: var(--card); border-radius: var(--radius);
    box-shadow: var(--shadow); border: 1px solid var(--line); padding: 26px 26px 28px;
  }
  .card h2 { margin: 0 0 4px; font-size: 21px; letter-spacing: -0.4px; }
  .card .sub { margin: 0 0 20px; color: var(--muted); font-size: 13.5px; }

  label.field { display: block; margin-bottom: 16px; }
  label.field > span.lbl {
    display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: #243a2c;
  }
  input[type="number"], input[type="text"], input[type="date"], input[type="time"], select {
    width: 100%; padding: 13px 13px; border: 1.5px solid var(--line);
    border-radius: 10px; font-size: 16px; background: #fcfdfc; color: var(--ink);
    transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none;
  }
  /* iOS renders date/time inputs as centered mini-pills unless told otherwise. */
  input[type="date"], input[type="time"]{ min-height:47px; text-align:left; box-sizing:border-box; font-family:inherit; }
  input::-webkit-date-and-time-value{ text-align:left; }
  select { -webkit-appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235b6b60' d='M6 8L0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:34px; }
  input[type="number"]:focus, input[type="text"]:focus, input[type="date"]:focus, input[type="time"]:focus, select:focus {
    outline: none; border-color: var(--green-600); box-shadow: 0 0 0 3px rgba(34,197,94,.15);
  }
  .row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

  .seg { display: inline-flex; background: #eaf1ea; border-radius: 12px; padding: 4px; gap: 3px; width: 100%; }
  .seg button {
    flex: 1; border: none; background: transparent; padding: 9px 8px; border-radius: 9px;
    font-size: 13.5px; font-weight: 600; color: var(--muted); cursor: pointer; transition: all .15s;
  }
  .seg button:hover { color: var(--green-800); }
  .seg button.active { background: var(--card); color: var(--green-800); box-shadow: 0 2px 6px rgba(20,83,45,.14); }
  .unit-suffix { font-weight: 500; color: var(--muted); font-size: 12.8px; }
  .field-help { margin: 7px 2px 0; font-size: 12.8px; line-height: 1.5; color: var(--muted);
    background: #f5f8f4; border-left: 3px solid var(--green-600); border-radius: 0 8px 8px 0; padding: 8px 11px; }
  .field-help b { color: #2f4a3a; font-weight: 700; }

  .goals { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 4px; }
  .goal {
    text-align: left; border: 1.5px solid var(--line); background: #fcfdfc;
    border-radius: 12px; padding: 12px 13px; cursor: pointer; transition: all .15s;
  }
  .goal:hover { border-color: var(--green-500); }
  .goal.active {
    border-color: var(--green-600); background: linear-gradient(180deg, #f1fdf4, #ffffff);
    box-shadow: 0 4px 14px rgba(22,163,74,.16);
  }
  .goal .gname { font-weight: 700; font-size: 14.5px; display:flex; align-items:center; gap:6px; }
  .goal .gdesc { font-size: 12.5px; color: var(--muted); margin-top: 3px; line-height: 1.35; }
  .goal .gtag { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--green-700); }

  .result-hero {
    text-align: center; position: relative; overflow: hidden;
    background: radial-gradient(135% 135% at 8% 0%, #1a5031 0%, #0d2216 72%);
    color: #fff; border:1px solid rgba(255,255,255,.06); border-radius: 18px; padding: 26px 22px; margin-bottom: 18px;
    box-shadow: 0 12px 28px rgba(8,40,22,.24);
  }
  .result-hero::after {
    content:""; position:absolute; top:-40%; right:-10%; width:220px; height:220px;
    background: radial-gradient(circle, rgba(255,255,255,.14), rgba(255,255,255,0) 70%); pointer-events:none;
  }
  .result-hero .kcal { font-size: 56px; font-weight: 800; line-height: 1; letter-spacing: -2px; position:relative; }
  .result-hero .kcal small { font-size: 17px; font-weight: 600; opacity: .82; letter-spacing: 0; }
  .result-hero .goal-label {
    display:inline-block; margin-top: 10px; font-size: 12.8px; color: #7ef0a8;
    background: rgba(126,240,168,.16); border: 1px solid rgba(126,240,168,.34);
    padding: 4px 13px; border-radius: 999px; font-weight: 700; letter-spacing:.3px; position:relative;
  }
  .tdee-line { font-size: 12.8px; opacity: .88; margin-top: 10px; position:relative; }
  .tuned-note { display:inline-block; margin-top:10px; background:rgba(255,255,255,.16); border-radius:999px; padding:5px 12px; font-size:12.5px; font-weight:600; }
  .tuned-note b { font-weight:800; }

  .target { border-radius: 14px; padding: 14px 16px; margin-bottom: 18px; border:1.5px solid; }
  .target.gain { background:#eafaf0; border-color:#bce6cd; }
  .target.loss { background:#eef4ff; border-color:#cdddf6; }
  .target.hold { background:#fef7e6; border-color:#f0e2b8; }
  .target-h { font-size: 16px; font-weight: 800; color:#173a26; letter-spacing:-.2px; }
  .target.loss .target-h { color:#143057; }
  .target.hold .target-h { color:#6b5310; }
  .target-h b { font-weight: 900; }
  .target-sub { font-size: 13px; line-height:1.5; color:#41514a; margin-top:5px; }

  .macros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 6px; }
  .macro { border-radius: 14px; padding: 15px 12px; text-align: center; border: 1.5px solid var(--line); }
  .macro.p { background: #fdf1f1; border-color:#f6d6d6; }
  .macro.c { background: #fef7e6; border-color:#f6e6bd; }
  .macro.f { background: #eef6ff; border-color:#d4e6f9; }
  .macro .mlabel { font-size: 12.8px; font-weight: 700; text-transform: uppercase; letter-spacing:.5px; color:#4a5a50; }
  .macro .mg { font-size: 30px; font-weight: 800; line-height:1.1; margin: 4px 0 0; }
  .macro .mg small { font-size: 14px; font-weight:600; }
  .macro .mkcal { font-size: 12.5px; color: var(--muted); }
  .macro .mbar { height:6px; border-radius:6px; margin-top:8px; background: rgba(0,0,0,.08); overflow:hidden; }
  .macro .mbar > i { display:block; height:100%; border-radius:6px; }
  .macro.p .mbar > i { background:#e05a5a; }
  .macro.c .mbar > i { background:#e6b13a; }
  .macro.f .mbar > i { background:#4a90e2; }

  /* collapsible disclosure */
  details.fold { margin-top:16px; border:1px solid var(--line); border-radius:14px; background:#fafcf9; overflow:hidden; }
  details.fold > summary { list-style:none; cursor:pointer; padding:12px 16px; font-size:13px; font-weight:700; color:var(--green-800); display:flex; justify-content:space-between; align-items:center; gap:8px; }
  details.fold > summary::-webkit-details-marker { display:none; }
  details.fold > summary::after { content:"▾"; color:var(--muted); transition:transform .2s; font-size:12px; }
  details.fold[open] > summary::after { transform:rotate(180deg); }
  details.fold .fold-body { padding:2px 16px 14px; }
  details.fold .fold-body ul { margin:0; padding-left:18px; line-height:1.6; font-size:13.2px; color:#5a4f2b; }
  details.fold .fold-body ul b { color:#3f3818; }
  /* Coaching playbook — the three reference reads grouped under one fold. */
  .pb-sec { padding:12px 0; border-top:1px solid var(--line); }
  .pb-sec:first-child { padding-top:4px; border-top:0; }
  .pb-sec h4 { margin:0 0 6px; font-size:13px; color:var(--green-800); }
  .pb-sec p, .pb-sec div { font-size:13.2px; color:#5a4f2b; line-height:1.55; }
  .pb-sec p { margin:0 0 8px; } .pb-sec p:last-child { margin:0; }
  /* Slim "see your progress" link under the workout. */
  .train-link { display:flex; align-items:center; justify-content:space-between; width:100%; margin-top:10px;
    background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 15px;
    font:700 13px system-ui; color:var(--green-800); cursor:pointer; }
  .train-link:active { transform:translateY(1px); }
  .train-link .tl-go { color:var(--muted); }
  /* Equipment summary count chip. */
  .eq-sum { font-weight:600; color:var(--muted); font-size:12.5px; }

  .breakdown { background:transparent; }
  .breakdown table { width:100%; border-collapse: collapse; font-size: 13px; }
  .breakdown td { padding: 9px 0; color: #2b3a30; }
  .breakdown td:last-child { text-align: right; font-weight: 700; color: var(--green-800); }
  .breakdown tr + tr td { border-top: 1px dashed var(--line); }
  .permeal { font-size:13px; color:var(--muted); margin-top:12px; text-align:center; }

  .golf-note {
    margin-top: 18px; background: linear-gradient(160deg,#efe6c6,var(--sand)); border: 1px solid var(--sand-dark);
    border-radius: 14px; padding: 14px 16px; font-size: 13.2px; color: #5a4f2b; line-height: 1.5;
  }
  .golf-note b { color:#3f3818; }

  /* ---- Nutrient timing ---- */
  .timing { margin-top:20px; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow: var(--shadow-sm); }
  .timing-head {
    background:linear-gradient(160deg, var(--green-800), #1c6b3a); color:#eafff1; padding:13px 17px; font-size:14px; font-weight:700;
    display:flex; justify-content:space-between; align-items:center; gap:10px;
  }
  .timing-head .when { font-size:12.5px; font-weight:600; background:rgba(255,255,255,.16); padding:3px 10px; border-radius:999px; }
  .timing-rows { display:grid; grid-template-columns:1fr 1fr; }
  @media (max-width:520px){ .timing-rows { grid-template-columns:1fr; } }
  .twin { padding:14px 16px; }
  .twin.pre { border-right:1px solid var(--line); background:#fef7e6; }
  .twin.post { background:#eaf7ee; }
  @media (max-width:520px){ .twin.pre { border-right:none; border-bottom:1px solid var(--line); } }
  .twin .tlabel { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#4a5a50; }
  .twin .tgrams { font-size:26px; font-weight:800; line-height:1.1; margin:3px 0 1px; color:#1d2b22; }
  .twin .tgrams small { font-size:13px; font-weight:600; }
  .twin .tclock { font-size:13px; color:#5b6b60; font-weight:600; }
  .twin .ttip { font-size:12.5px; color:var(--muted); margin-top:6px; line-height:1.4; }
  .timing-foot { padding:11px 16px; font-size:12.2px; color:#5a4f2b; background:var(--sand); border-top:1px solid var(--sand-dark); line-height:1.45; }
  .timing-foot b { color:#3f3818; }

  /* ---- Meal plan ---- */
  .meals { margin-top:20px; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow: var(--shadow-sm); }
  .meals-head {
    background:linear-gradient(160deg, var(--green-800), #1c6b3a); color:#eafff1; padding:13px 17px; font-size:14px; font-weight:700;
    display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;
  }
  .meal-pick { display:flex; align-items:center; gap:8px; }
  .meal-pick-lbl { font-size:12px; font-weight:600; opacity:.85; }
  @media (max-width:480px){
    .meal-pick-lbl{ display:none; }
    .seg.meal-seg button{ padding:5px 9px; }
    .meals-head{ flex-wrap:nowrap; }
    .meals-head > span:first-child{ white-space:nowrap; }
  }
  .seg.meal-seg { width:auto; background:rgba(255,255,255,.15); padding:3px; }
  .seg.meal-seg button { padding:5px 11px; color:#d6f3e0; font-size:13px; }
  .seg.meal-seg button.active { background:#fff; color:#14532d; }
  .meals-body { padding:15px 16px; }
  .meal-each { font-size:13px; color:#2b3a30; margin-bottom:12px; }
  .rec { color:var(--muted); font-size:12.5px; font-weight:500; }
  .meal-macros { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  .mm { border-radius:14px; padding:13px 12px; text-align:center; border:1.5px solid var(--line); }
  .mm.p { background:#fdf1f1; border-color:#f6d6d6; }
  .mm.c { background:#fef7e6; border-color:#f6e6bd; }
  .mm.f { background:#eef6ff; border-color:#d4e6f9; }
  .mm-g { font-size:27px; font-weight:800; line-height:1.1; color:#1d2b22; }
  .mm-g small { font-size:13px; font-weight:600; }
  .mm-l { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#4a5a50; margin-top:2px; }
  .meal-foot { margin-top:13px; font-size:12.2px; color:#5b6b60; line-height:1.5; }
  .meal-foot b { color:#243a2c; }
  .sched-title { margin:16px 0 8px; font-size:13px; font-weight:700; color:#243a2c; }
  .sched-title b { color:var(--green-700); }
  .sched { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .sched-row { display:flex; align-items:center; gap:12px; padding:10px 14px; }
  .sched-row + .sched-row { border-top:1px solid var(--line); }
  .sched-row.pre { background:#fef7e6; }
  .sched-time { flex:0 0 72px; font-size:13px; font-weight:800; color:var(--green-800); font-variant-numeric:tabular-nums; }
  .sched-body { flex:1; min-width:0; }
  .sched-name { font-size:13px; font-weight:700; color:#243a2c; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .sched-macros { font-size:12.8px; color:var(--muted); margin-top:1px; }
  .sched-macros b { color:#2b3a30; }
  .sched-plus { color:var(--green-700); font-weight:600; }
  .sched-tag { font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; padding:2px 7px; border-radius:999px; }
  .sched-tag.post { background:#e3f5e9; color:var(--green-700); }
  .sched-tag.pre { background:#f6e6bd; color:#9a6a16; }

  /* ---- Equipment selector ---- */
  .equip { background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 18px; box-shadow: var(--shadow-sm); margin-bottom:4px; }
  .equip-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .equip-head h3 { margin:0; font-size:15px; }
  .equip-head h3 small { display:block; font-weight:500; font-size:12.5px; color:var(--muted); margin-top:2px; }
  .equip-presets { display:flex; gap:6px; flex-wrap:wrap; }
  .equip-presets button { border:1px solid var(--line); background:#fcfdfc; border-radius:999px; padding:6px 13px; font-size:12.8px; font-weight:700; color:var(--muted); cursor:pointer; transition:all .15s; }
  .equip-presets button:hover { border-color:var(--green-500); color:var(--green-800); }
  .equip-chips { display:flex; flex-wrap:wrap; gap:8px; }
  .eq-chip { border:1.5px solid var(--line); background:#fcfdfc; border-radius:999px; padding:7px 13px; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer; transition:all .15s; display:inline-flex; align-items:center; gap:6px; user-select:none; }
  .eq-chip:hover { border-color:var(--green-500); }
  .eq-chip.on { border-color:var(--green-600); background:linear-gradient(180deg,#f1fdf4,#fff); color:var(--green-800); }
  .eq-chip.on::before { content:"✓"; font-weight:800; color:var(--green-600); font-size:12px; }
  .eq-chip.locked { opacity:.65; cursor:default; }
  .eq-chip .mach-count { font-size:11px; background:var(--green-600); color:#fff; border-radius:999px; padding:1px 6px; margin-left:2px; }
  .mach-expand { background:none; border:none; color:var(--green-700); font-size:12.8px; font-weight:700; cursor:pointer; padding:8px 2px 4px; }
  .mach-sub { display:flex; flex-wrap:wrap; gap:7px; padding:4px 0 2px 12px; border-left:2px solid #e2ebe2; margin:2px 0 2px 4px; }
  .eq-chip.sm { padding:6px 11px; font-size:12.8px; }
  .equip-note { font-size:12.5px; color:var(--muted); margin-top:11px; line-height:1.45; }
  .equip-note b { color:var(--green-800); }

  /* swapped / unavailable exercises */
  table.ex tr.swap td.exname .swap-badge {
    display:inline-block; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.4px;
    background:#e3f5e9; color:var(--green-700); border-radius:5px; padding:1px 6px; margin-left:7px; vertical-align:middle;
  }
  table.ex tr.swap td.exname .orig { color:var(--muted); font-size:12px; font-weight:500; }
  table.ex tr.skip td.exname { color:#a84747; }
  table.ex tr.skip td.exname .nm { text-decoration:line-through; opacity:.7; }
  table.ex tr.skip td.exname .need { display:block; font-size:12px; color:var(--muted); font-style:italic; text-decoration:none; margin-top:1px; }
  table.ex tr.skip td.sets { color:#c98a8a; }

  .placeholder { text-align:center; color:var(--muted); padding: 40px 10px; font-size:14px; }
  .placeholder .big { font-size:40px; margin-bottom:8px; }
  .reset-btn { background:none; border:none; color:var(--muted); font-size:13px; cursor:pointer; text-decoration:underline; margin-top:4px; }
  .form-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:6px; }
  .share-btn { background:var(--green-600); color:#fff; border:none; border-radius:10px;
    font-size:13.5px; font-weight:700; padding:10px 16px; cursor:pointer; box-shadow:0 3px 10px rgba(20,83,45,.22); }
  .share-btn:active { transform:translateY(1px); }
  .share-btn.done { background:#1f9d52; }
  .share-hint { font-size:12.5px; color:var(--muted); margin:8px 2px 0; }

  /* ---- Training plan ---- */
  .plan-intro { margin-bottom: 22px; }
  .plan-intro .lead {
    font-size: 15px; color: #2b3a30; line-height: 1.55; margin: 0 0 16px;
  }
  .plan-intro .lead b { color: var(--green-800); }
  .plan-phase { display:inline-block; margin:2px 0 12px; padding:5px 12px; border-radius:999px;
    background:#eef7f0; color:var(--green-700); border:1px solid #cfe9d8; font-size:12.8px; font-weight:700; }
  .plan-phase b { color:var(--green-800); }
  .pillars { display:flex; flex-direction:column; gap:9px; }
  .pillar { display:flex; align-items:flex-start; gap:13px; background:#fff; border:1px solid var(--line);
    border-radius:13px; padding:12px 15px; box-shadow: var(--shadow); }
  .pillar .ico { font-size:21px; line-height:1.1; flex:0 0 auto; }
  .pillar h3 { margin:0 0 2px; font-size:14px; }
  .pillar p { margin:0; font-size:13px; color:var(--muted); line-height:1.4; }


  .phase-detail { margin-top:18px; }
  .phase-head {
    background: linear-gradient(160deg, var(--green-800), var(--green-600)); color:#fff;
    border-radius:14px; padding:18px 20px; margin-bottom:18px;
  }
  .phase-head h3 { margin:0 0 4px; font-size:20px; }
  .phase-head p { margin:0; font-size:13px; opacity:.92; line-height:1.5; }
  .phase-head .focuschips { margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
  .phase-head .focuschips span { background:rgba(255,255,255,.18); padding:4px 11px; border-radius:999px; font-size:12.5px; font-weight:600; }

  .freqbar { display:flex; align-items:center; gap:10px; margin-bottom:16px; font-size:13px; color:var(--muted); }
  .freqbar .seg { width:auto; }
  .freqbar .seg button { padding:8px 16px; }

  .day { border:1px solid var(--line); border-radius:12px; margin-bottom:12px; overflow:hidden; }
  .day-head {
    display:flex; justify-content:space-between; align-items:center;
    background:#f3f8f3; padding:11px 15px; font-weight:700; font-size:14px; color:var(--green-800);
  }
  .day-head .tag { font-size:12px; font-weight:700; color:#fff; background:var(--green-600); padding:3px 9px; border-radius:999px; }
  .day-head .tag.rest { background:#64766c; }
  .day-head .tag.speed { background:#c2621c; }
  .day-head .tag.power { background:#7a4fd0; }
  table.ex { width:100%; border-collapse:collapse; font-size:13px; }
  table.ex th { text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); padding:8px 15px 4px; }
  table.ex td { padding:7px 15px; border-top:1px solid var(--line); color:#2b3a30; }
  table.ex td.sets { text-align:right; font-weight:700; color:var(--green-800); white-space:nowrap; }
  table.ex tr.note td { font-size:12.5px; color:var(--muted); font-style:italic; border-top:none; padding-top:0; }
  .restday { padding:14px 15px; font-size:13px; color:var(--muted); }
  .rest-check { display:block; width:calc(100% - 30px); margin:0 15px 15px; padding:12px; border:1px solid #cfe4d6;
    background:#f4f9f5; color:var(--green-800); font:700 14px system-ui; border-radius:12px; cursor:pointer; }
  .rest-check:active { transform:translateY(1px); }
  .rest-check.done { background:#eafaf0; border-color:#bfe3cd; }
  .day.rest-done .day-head .tag.rest { background:#1f9d52; color:#fff; }

  /* speed day — same clean table as lifts, kept distinct with a warm accent */
  .speedday .day-head { background:#fdf1e3; color:#9a5b1c; }
  .speed-intro { padding:11px 15px; font-size:13px; color:#7a5320; background:#fffaf3; border-bottom:1px solid var(--line); line-height:1.45; }
  .speed-toggle { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 15px; background:#fffaf3; border-bottom:1px solid var(--line); }
  .speed-toggle .st-lbl { font:700 12px system-ui; color:#9a5b1c; }
  .seg.speed-seg { width:auto; flex:0 0 auto; background:#f2e3d0; }
  .seg.speed-seg button { padding:6px 13px; font-size:13px; color:#9a5b1c; }
  .seg.speed-seg button.active { background:#fff; color:#8a4d15; }
  .speed-why { margin:11px 15px 0; padding:10px 12px; font-size:12.5px; line-height:1.5; color:#6b7a63; background:#f4f8f4; border:1px solid var(--line); border-radius:10px; }
  .speed101-wrap { padding:0 15px; }
  .speed101 { margin-top:12px; }
  .speed101 > summary { color:#9a5b1c; font-weight:800; }
  .speedday table.ex td { vertical-align:top; }
  .exname-main { font-weight:600; color:#243a2c; }
  .exnote { font-size:12.5px; color:var(--muted); margin-top:2px; line-height:1.35; }
  .warm { padding:9px 15px; font-size:11.6px; color:#5a6b60; background:#f6faf5; border-bottom:1px solid var(--line); line-height:1.45; }
  .warm b { color:var(--green-800); }
  table.ex td.sets .effort { font-size:11px; font-weight:600; color:var(--muted); margin-top:3px; letter-spacing:.2px; white-space:nowrap; }
  .deload-banner { background:#eef3ff; border:1px solid #cfdbf2; color:#2c3e66; border-radius:12px; padding:11px 14px; font-size:13px; line-height:1.45; margin-bottom:14px; }
  .deload-banner b { color:#1f2f57; }
  /* Future-day preview note — themes off tokens so no hand-pinned dark variant. */
  .upcoming-banner { background:var(--paper); border:1px solid var(--line); border-left:3px solid #d9a441;
    color:var(--muted); border-radius:12px; padding:11px 14px; font-size:13px; line-height:1.5; margin-bottom:14px; }
  .upcoming-banner b { color:var(--ink); }
  .romcue { padding:8px 15px 2px; font-size:12px; color:var(--muted); font-style:italic; line-height:1.4; }
  .exlegend { font-size:12px; color:var(--muted); margin:-4px 0 14px; padding:0 2px; line-height:1.4; }
  .exlegend b { color:#3f3818; }
  .mode-banner { border-radius:12px; padding:11px 14px; font-size:13px; line-height:1.5; margin-bottom:12px; }
  .mode-banner.build { background:#eef7f0; border:1px solid #cfe9d8; color:#2b3a30; }
  .mode-banner.retain { background:#fff4e8; border:1px solid #f3d6b0; color:#7a5320; }
  .mode-banner b { color:inherit; }
  .mode-banner .mb-auto { display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase;
    letter-spacing:.4px; opacity:.65; margin-left:4px; }
  .foodfold .foodintro { font-size:13px; color:#5a6b60; margin:2px 0 6px; line-height:1.5; }
  .foodfold h4 { margin:12px 0 4px; font-size:13px; color:var(--green-800); }
  .foodfold h4 span { font-weight:500; font-size:12px; color:var(--muted); }
  .foodfold .fold-body ul { margin:0; padding-left:18px; font-size:13.2px; line-height:1.7; color:#3a4a40; }
  .foodfold .fold-body ul b { color:var(--green-800); }
  .foodfix { margin-top:12px; background:#f1fdf4; border:1px solid #cfe9d8; border-radius:9px; padding:10px 12px; font-size:13px; color:#1c3a28; line-height:1.55; }
  .fooddyn:empty { display:none; }
  .fooddyn { background:#0f5a34; color:#eafff2; border-radius:11px; padding:12px 14px; margin-bottom:12px; }
  .fooddyn .fd-head { font-size:12px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; opacity:.8; margin-bottom:5px; }
  .fooddyn .fd-day { font-size:13px; line-height:1.5; margin-bottom:9px; color:#fff; }
  .fooddyn .fd-day b { color:#ffe08a; }
  .fooddyn .fd-row { font-size:13.2px; line-height:1.5; margin:4px 0; color:#eafff2; }
  .fooddyn .fd-tag { display:inline-block; background:rgba(255,255,255,.16); border-radius:999px; padding:2px 9px; font-size:12px; font-weight:700; margin-right:4px; }
  .fooddyn .fd-sum { opacity:.7; font-size:12.5px; }
  .fooddyn .fd-note { font-size:12px; opacity:.75; margin-top:7px; font-style:italic; }
  .fooddyn .fd-swap { margin-top:9px; display:inline-flex; align-items:center; gap:6px; cursor:pointer;
    background:rgba(255,255,255,.16); border:0; color:#fff; font:700 11.5px system-ui; border-radius:999px; padding:7px 13px; }
  .fooddyn .fd-swap:active { transform:translateY(1px); }
  .fooddyn .fd-ai { margin-top:9px; margin-left:7px; display:inline-flex; align-items:center; gap:6px; cursor:pointer;
    background:#ffe08a; border:0; color:#143a26; font:800 11.5px system-ui; border-radius:999px; padding:7px 13px; }
  .fooddyn .fd-ai:active { transform:translateY(1px); }
  .sched-row.tappable { cursor:pointer; }
  .sched-row.tappable .sched-name::after { content:" ▾"; color:var(--muted); font-size:11px; }
  .sched-row.tappable.open .sched-name::after { content:" ▴"; }
  .sched-row .meal-eg { display:none; margin-top:6px; font-size:12.8px; color:#1c3a28; background:#f1fdf4;
    border:1px solid #cfe9d8; border-radius:8px; padding:7px 10px; line-height:1.45; }
  .sched-row.open .meal-eg { display:block; }
  .primer { padding:10px 15px; font-size:11.8px; color:#7a4a12; background:#fff6ec; border-bottom:1px solid var(--line); line-height:1.5; }
  .primer b { color:#b4540f; }
  .primer-sub { color:#9a7a52; }
  .primer-cue { display:block; margin-top:5px; font-size:12px; color:#8a7a60; font-style:italic; }
  .goalhelp { margin-top:8px; border:1px solid var(--line); border-radius:10px; background:#fafcf9; }
  .goalhelp > summary { list-style:none; cursor:pointer; padding:9px 12px; font-size:12.8px; font-weight:700; color:var(--green-800); }
  .goalhelp > summary::-webkit-details-marker { display:none; }
  .goalhelp > div { padding:0 12px 11px; font-size:11.8px; color:#5a6b60; line-height:1.5; }
  .goalhelp-note { display:block; margin-top:6px; font-style:italic; color:var(--muted); }

  .speed-callout {
    margin-top:8px; background:#fff4e8; border:1px solid #f3d6b0; border-radius:12px; padding:15px 16px;
  }
  .speed-callout h4 { margin:0 0 6px; font-size:14px; color:#9a5b1c; display:flex; align-items:center; gap:7px; }
  .speed-callout p { margin:0 0 8px; font-size:13.2px; color:#7a5320; line-height:1.5; }
  .speed-callout ul { margin:0; padding-left:18px; font-size:13.2px; color:#7a5320; line-height:1.6; }

  /* ===== Octane score ===== */
  .ffscore { margin-bottom:14px; background:radial-gradient(135% 135% at 6% 0%,#1a5031 0%,#0d2216 72%);
    color:#eafff1; border-radius:18px; padding:17px 18px 16px; box-shadow:0 10px 26px rgba(8,40,22,.22);
    border:1px solid rgba(255,255,255,.06); }
  .ffscore-compact { display:block; width:100%; text-align:left; cursor:pointer; border:1px solid rgba(255,255,255,.06); }
  .ffscore-compact:active { transform:translateY(1px); }
  .ffscore-more { display:block; margin-top:11px; padding-top:11px; border-top:1px solid rgba(255,255,255,.12);
    font:800 12.5px system-ui; color:#7ef0a8; }
  /* the pillar-breakdown fold toggle inside the full (Stats) Octane card */
  .ffscore-drives{ display:flex; align-items:center; justify-content:space-between; width:100%;
    margin-top:12px; padding:11px 0 0; border:0; border-top:1px solid rgba(255,255,255,.12);
    background:none; font:800 12.5px system-ui; color:#7ef0a8; cursor:pointer; text-align:left; }
  .ffscore-drives .pf-arr{ color:#9fc4ac; font-size:15px; }
  .ffscore-top { display:flex; align-items:center; gap:16px; }
  .ffscore-gauge { position:relative; width:120px; flex:0 0 auto; }
  .ffscore-gauge .num { position:absolute; left:0; right:0; bottom:6px; text-align:center;
    font-weight:900; font-size:34px; line-height:1; color:#fff; letter-spacing:-1.4px; }
  .ffscore-gauge .num i { font-style:normal; font-size:12.8px; font-weight:700; opacity:.5; letter-spacing:0; margin-left:1px; }
  .ffscore-head { flex:1; min-width:0; }
  .ffscore-head h3 { margin:0 0 4px; font-size:13px; color:#9fe7bb; display:flex; align-items:center; gap:6px;
    letter-spacing:.8px; font-weight:800; }
  .ffscore-head .ff-sum { margin:0; font-size:13px; color:#dff3e7; line-height:1.5; }
  .ffscore-head .ff-sum b { color:#ffe08a; font-weight:700; }
  /* Dashboard hero: driver carry as the star, Octane engine underneath */
  .hero-card { display:block; width:100%; text-align:left; cursor:pointer; }
  .hero-card:active { transform:translateY(1px); }
  .hero-kick { font:800 11px system-ui; letter-spacing:1.4px; color:#9fe7bb; text-transform:uppercase; }
  .hero-dist { margin:6px 0 3px; color:#fff; font-weight:900; letter-spacing:-2px; line-height:.95; }
  .hero-dist b { font-size:58px; }
  .hero-dist .u { font-size:21px; font-weight:800; letter-spacing:-.5px; margin-left:5px; color:#dff3e7; }
  .hero-gainrow { display:flex; align-items:center; gap:11px; flex-wrap:wrap; }
  .hero-gain { display:inline-flex; align-items:center; gap:5px; font:800 14.5px system-ui; color:#7ef0a8;
    background:rgba(126,240,168,.13); padding:5px 11px; border-radius:999px; }
  .hero-gain.neg { color:#ffce8a; background:rgba(255,196,120,.13); }
  .hero-since { font:600 12px system-ui; color:#9fbfab; }
  .hero-since.solo { display:block; margin-top:8px; }
  .hero-mission { display:flex; align-items:center; gap:10px; margin-top:9px; width:100%; }
  .hero-mission .hm-lbl { font:800 11px system-ui; letter-spacing:.6px; color:#9fe7bb; text-transform:uppercase; white-space:nowrap; }
  .hero-mission .hm-track { flex:1; height:5px; border-radius:99px; background:rgba(255,255,255,.12); overflow:hidden; }
  .hero-mission .hm-fill { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#2f9e5d,#8be9ac); }
  .hero-mission.hit .hm-lbl { color:#7ef0a8; }
  .hero-mission.hit .hm-fill { background:#7ef0a8; }
  .hero-empty { margin:8px 0 2px; }
  .hero-empty b { display:block; color:#fff; font:900 21px system-ui; letter-spacing:-.5px; }
  .hero-empty span { display:block; font:600 12.5px/1.45 system-ui; color:#bfe3cd; margin-top:4px; }
  .hero-engine { margin-top:15px; padding-top:14px; border-top:1px solid rgba(255,255,255,.10);
    display:flex; align-items:center; gap:12px; }
  .hero-etx { flex:1; min-width:0; }
  .hero-ename { font:900 17px system-ui; letter-spacing:1px; color:#7ef0a8; text-transform:uppercase; }
  .hero-esub { font:600 12px/1.4 system-ui; color:#bfe3cd; margin-top:2px; }
  .hero-esub b { color:#fff; }
  /* Hevy-style week strip: trained-day dots, today ringed. */
  .hero-week { margin-top:13px; padding-top:11px; border-top:1px solid rgba(255,255,255,.10);
    display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .hw-dots { display:flex; gap:7px; }
  .hw-d { width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
    font:800 11px system-ui; color:#8fb59d; background:rgba(255,255,255,.07); }
  .hw-d.on { background:#7ef0a8; color:#0d2216; }
  .hw-d.today { box-shadow:0 0 0 2px rgba(139,233,172,.55); }
  .hw-n { font:700 12px system-ui; color:#9fbfab; white-space:nowrap; }
  .hw-n b { color:#fff; font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:14px; }
  .ffscore-bars { margin-top:15px; display:flex; flex-direction:column; gap:10px; }
  .ffp { display:flex; align-items:center; gap:12px; font-size:13px; }
  .ffp-label { width:112px; flex:0 0 auto; color:#dff3e7; }
  .ffp-track { flex:1; height:8px; background:rgba(255,255,255,.16); border-radius:99px; overflow:hidden; }
  .ffp-fill { display:block; height:100%; min-width:8px; background:linear-gradient(90deg,#3aae68,#86e9a8); border-radius:99px;
    box-shadow:0 0 8px rgba(134,233,168,.4); transition:width .55s ease; }
  .ffp-val { width:24px; text-align:right; font-weight:800; color:#fff; flex:0 0 auto; font-variant-numeric:tabular-nums; }
  .ffp.locked .ffp-label { color:#7fa791; }
  .ffp.locked .ffp-val { color:#9fe7bb; font-size:15px; line-height:1; }
  .ffp.locked .ffp-fill { background:rgba(255,255,255,.14); box-shadow:none; }

  /* ===== Dashboard ===== */
  .dash-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
  .wk-recap { display:flex; align-items:center; gap:10px; width:100%; margin-top:11px; padding:13px 15px;
    background:#fff; border:1px solid var(--line); border-radius:16px; cursor:pointer; text-align:left; }
  .wk-recap .wr-t { font:800 12px system-ui; color:var(--green-800); white-space:nowrap; }
  .wk-recap .wr-b { flex:1; font:600 12.5px system-ui; color:var(--muted); }
  .wk-recap .wr-b b { color:var(--ink); }
  .wk-recap .wr-cta { font:700 12px system-ui; color:var(--green-600); white-space:nowrap; }
  .dtile { display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left;
    background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:14px 13px;
    box-shadow:var(--shadow); cursor:pointer; transition:transform .12s, box-shadow .12s; }
  .dtile:active { transform:translateY(1px); }
  .dt-ic { font-size:20px; line-height:1; }
  .dt-label { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; margin-top:5px; }
  .dt-big { font-size:16px; font-weight:700; color:var(--ink); line-height:1.15; }
  .dt-big b { color:var(--green-700); }
  .dt-big .dt-go { color:var(--green-600); font-weight:800; }
  .dt-sub { font-size:12px; color:var(--muted); line-height:1.3; }
  @media(max-width:520px){ .dash-grid{ grid-template-columns:1fr; }
    .dtile{ flex-direction:row; align-items:center; flex-wrap:wrap; gap:4px 10px; padding:13px 15px; }
    .dt-ic{ font-size:22px; } .dt-label{ flex:1; margin:0; order:1; }
    .dt-big{ order:2; width:100%; font-size:17px; } .dt-sub{ order:3; width:100%; } }
  .dash-log { margin-top:13px; background:var(--paper); border:1px solid var(--line); border-radius:14px;
    padding:14px 15px; box-shadow:var(--shadow); }
  .dash-log .dl-head { font-size:13px; font-weight:800; color:var(--green-800); margin-bottom:9px; }
  .dash-log .dl-row { display:flex; gap:8px; }
  .dash-log .dl-row input { flex:1; min-width:0; border:1.5px solid var(--line); border-radius:10px;
    padding:11px 12px; font-size:15px; }
  .dash-log .dl-row button { flex:0 0 auto; background:#11643a; color:#fff; border:0; border-radius:10px;
    padding:0 20px; font:700 14px system-ui; cursor:pointer; }
  .dash-log .dl-row button:active { transform:translateY(1px); }
  .dash-log .dl-add { width:100%; margin-top:8px; background:#11643a; color:#fff; border:0; border-radius:10px;
    padding:12px; font:700 14.5px system-ui; cursor:pointer; }
  .dash-log .dl-add:active { transform:translateY(1px); }
  .dash-log .dl-hint { font-size:12.5px; color:var(--muted); margin-top:8px; line-height:1.4; }
  .dash-log .dl-hint b { color:var(--green-700); }

  /* Adaptive nutrition check-in card */
  .adapt { margin-top:13px; background:linear-gradient(160deg,#0f2417,#14532d); color:#eafff1; border-radius:16px; padding:16px 17px; box-shadow:0 8px 24px rgba(8,40,22,.2); }
  .adapt.ok { background:linear-gradient(160deg,#13402a,#1b5e3a); }
  .adapt-h { font:800 13px system-ui; color:#7ef0a8; letter-spacing:.3px; margin-bottom:7px; }
  .adapt p { margin:0; font-size:13px; line-height:1.5; color:#d9f3e2; }
  .adapt p b { color:#fff; }
  .adapt-sugg { margin:12px 0 4px; background:rgba(126,240,168,.14); border:1px solid rgba(126,240,168,.3); border-radius:10px; padding:11px 13px; font:800 14px system-ui; color:#fff; }
  .adapt-btns { display:flex; gap:9px; margin-top:13px; }
  .adapt-btn { flex:1; background:#7ef0a8; color:#0f2417; border:0; border-radius:11px; padding:13px; font:800 13.5px system-ui; cursor:pointer; }
  .adapt-btn:active { transform:translateY(1px); }
  .adapt-btn.ghost { flex:0 0 auto; background:rgba(255,255,255,.1); color:#cdebd6; padding:13px 16px; }

  /* Game Day — dashboard CTA + the round-day plan screen */
  .gameday-cta { margin-top:13px; width:100%; display:flex; align-items:center; gap:13px; text-align:left; cursor:pointer;
    background:linear-gradient(135deg,#1b6b3c,#14532d); border:1px solid rgba(244,197,66,.4); border-radius:16px; padding:15px 16px; box-shadow:0 8px 22px rgba(8,40,22,.2); }
  .gameday-cta:active { transform:translateY(1px); }
  .gameday-cta .gd-flag { font-size:26px; flex:0 0 auto; }
  .gameday-cta .gd-cta-tx { flex:1; min-width:0; display:flex; flex-direction:column; }
  .gameday-cta .gd-cta-tx b { color:#fff; font-size:15.5px; }
  .gameday-cta .gd-cta-tx span { color:#cdebd6; font-size:12.8px; margin-top:2px; }
  .gameday-cta .gd-cta-go { color:#7ef0a8; font-size:24px; font-weight:700; flex:0 0 auto; }
  .gd-top { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
  .gd-back { background:none; border:0; color:var(--green-700); font:700 14px system-ui; cursor:pointer; padding:6px 4px 6px 0; }
  /* Premium dark Game Day hero — matches the other tabs. */
  .gd-hero { background:radial-gradient(135% 135% at 8% 0%,#1a5031 0%,#0d2216 72%); border:1px solid rgba(255,255,255,.06);
    border-radius:18px; padding:20px 18px; margin-bottom:16px; box-shadow:0 12px 28px rgba(8,40,22,.24); color:#eafff1; }
  .gd-hero-t { font:900 26px/1.05 system-ui; letter-spacing:-.6px; color:#fff; margin-bottom:9px; }
  .gd-hero-sub { font-size:13px; line-height:1.55; color:#bfe3cd; }
  .gd-hero-sub b { color:#fff; }
  .gd-controls { display:flex; flex-wrap:wrap; gap:12px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px; margin-bottom:16px; box-shadow:var(--shadow-sm); }
  .gd-field { display:flex; flex-direction:column; gap:6px; }
  .gd-field > span { font:700 11px system-ui; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
  .gd-field input[type=time] { border:1.5px solid var(--line); border-radius:10px; padding:9px 11px; font:700 15px system-ui; color:var(--ink); }
  .gd-seg { display:flex; gap:5px; }
  .gd-seg-btn { border:1.5px solid var(--line); background:#fcfdfc; color:var(--muted); border-radius:9px; padding:9px 13px; font:700 13px system-ui; cursor:pointer; }
  .gd-seg-btn.on { background:#11643a; color:#fff; border-color:#11643a; }
  .gd-empty { text-align:center; color:var(--muted); font-size:13.5px; padding:24px; background:var(--paper); border-radius:12px; }
  /* timeline */
  .gd-timeline { position:relative; }
  .gd-card { display:flex; gap:13px; padding-bottom:14px; position:relative; }
  .gd-card:not(:last-child)::before { content:""; position:absolute; left:54px; top:22px; bottom:-2px; width:2px; background:var(--line); }
  .gd-time { flex:0 0 54px; text-align:right; font:800 11.5px system-ui; color:var(--green-700); padding-top:13px; }
  .gd-cbody { flex:1; min-width:0; background:#fff; border:1px solid var(--line); border-radius:13px; padding:12px 14px; box-shadow:var(--shadow-sm); position:relative; }
  .gd-cbody::before { content:""; position:absolute; left:-9px; top:15px; width:9px; height:9px; border-radius:50%; background:#11643a; box-shadow:0 0 0 3px #fff; }
  .gd-ctitle { font:800 14.5px system-ui; color:var(--green-800); margin-bottom:4px; }
  .gd-cdetail { font-size:13.2px; line-height:1.5; color:var(--ink); }
  .gd-cdetail b { color:var(--green-700); }
  .gd-warm { margin-top:10px; display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  .gd-warm .wu-row { margin-bottom:0; }
  @media(max-width:430px){ .gd-warm { grid-template-columns:1fr; } }
  .gd-pack { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; margin-top:6px; box-shadow:var(--shadow-sm); }
  .gd-pack-h { font:800 13px system-ui; color:var(--green-800); margin-bottom:8px; }
  .gd-pack ul { margin:0; padding-left:18px; font-size:13px; line-height:1.7; color:var(--ink); }

  /* ---- Food preferences picker (modal + onboarding) ---- */
  .ffp-legend { font-size:12.8px; color:var(--muted); line-height:1.5; margin-bottom:12px; background:var(--paper); border:1px solid var(--line); border-radius:9px; padding:8px 10px; }
  .ffp-legend .lk { color:#11643a; } .ffp-legend .av { color:#b4453a; }
  .ffp-grp { margin-bottom:14px; }
  .ffp-gh { font:800 11px system-ui; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); margin-bottom:7px; }
  .ffp-chips { display:flex; flex-wrap:wrap; gap:7px; }
  .ffp-f, .ffp-r { border:1.5px solid var(--line); background:#fcfdfc; color:var(--ink); border-radius:999px; padding:7px 12px; font:600 12.5px system-ui; cursor:pointer; transition:all .12s; }
  .ffp-f.lk { background:#e7f7ec; border-color:#11643a; color:#11643a; font-weight:800; }
  .ffp-f.lk::before { content:"♥ "; }
  .ffp-f.av { background:#fbeae8; border-color:#d98a80; color:#b4453a; }
  .ffp-f.av::before { content:"✕ "; }
  .ffp-f.dim { opacity:.32; text-decoration:line-through; cursor:not-allowed; }
  .ffp-r.on { background:#11643a; color:#fff; border-color:#11643a; font-weight:800; }
  .ffp-card { max-height:88vh; display:flex; flex-direction:column; overflow:hidden; }
  .ffp-card .swap-head { position:static; flex:0 0 auto; }            /* fixed top, no sticky/scroll collision */
  .ffp-card .swap-body { flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .ffp-card .ffp-donebar { flex:0 0 auto; }
  .ffp-donebar { padding:10px 14px 4px; border-top:1px solid var(--line); }
  .ffp-donebtn { width:100%; background:#11643a; color:#fff; border:0; border-radius:11px; padding:12px; font:800 14px system-ui; cursor:pointer; }
  .ob-foodwrap { background:#fff; border-radius:14px; padding:13px 13px 4px; max-height:44vh; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .ffp-ziprow { display:flex; align-items:center; gap:10px; }
  .ffp-zip { width:120px; border:1.5px solid var(--line); border-radius:10px; padding:9px 11px; font:700 14px system-ui; color:var(--ink); background:#fcfdfc; letter-spacing:1px; }
  .ffp-reg { font:800 12.5px system-ui; color:var(--green-700); }

  /* ---- Meal ideas from your favorites (Fuel) ---- */
  .ffm-cta { display:flex; align-items:center; gap:13px; }
  .ffm-cta-ic { font-size:30px; flex:0 0 auto; }
  .ffm-cta-tx { flex:1; min-width:0; display:flex; flex-direction:column; }
  .ffm-cta-tx b { color:var(--green-800); font-size:15px; }
  .ffm-cta-tx span { color:var(--muted); font-size:13px; margin-top:2px; line-height:1.45; }
  .ffm-cta-btn { flex:0 0 auto; background:#11643a; color:#fff; border:0; border-radius:10px; padding:10px 14px; font:800 13px system-ui; cursor:pointer; }
  .ffm-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .ffm-head span { font:800 15.5px system-ui; color:var(--green-800); }
  .ffm-mini { background:var(--paper); border:1px solid var(--line); color:var(--green-700); border-radius:999px; padding:5px 11px; font:700 12px system-ui; cursor:pointer; }
  .ffm-sub { font-size:13px; color:var(--muted); margin:4px 0 10px; }
  .ffm-meals { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
  .ffm-meals > span:first-child { font:700 11.5px system-ui; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
  .ffm-seg { display:flex; gap:5px; }
  .ffm-seg button { border:1.5px solid var(--line); background:#fcfdfc; color:var(--muted); border-radius:9px; min-width:34px; padding:6px 0; font:700 13px system-ui; cursor:pointer; }
  .ffm-seg button.on { background:#11643a; color:#fff; border-color:#11643a; }
  /* collapsed calculator summary */
  .calc-sum { margin-top:2px; }
  .cs-line { display:flex; align-items:center; gap:11px; background:var(--paper); border:1px solid var(--line); border-radius:13px; padding:12px 14px; }
  .cs-ic { font-size:22px; flex:0 0 auto; }
  .cs-tx { flex:1; min-width:0; display:flex; flex-direction:column; }
  .cs-tx b { color:var(--green-800); font-size:15px; }
  .cs-tx span { color:var(--muted); font-size:13px; margin-top:1px; }
  .cs-edit { flex:0 0 auto; background:#fff; border:1.5px solid var(--line); color:var(--green-800); border-radius:9px; padding:8px 14px; font:800 12.5px system-ui; cursor:pointer; }
  .ffm-sub b { color:var(--green-700); }
  .ffm-pair { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:11px 13px; margin-bottom:9px; }
  .ffm-pair-h { font:800 12.5px system-ui; color:var(--green-800); margin-bottom:6px; display:flex; justify-content:space-between; gap:8px; }
  .ffm-pair-h span { color:var(--muted); font-weight:700; }
  .ffm-items { display:flex; flex-wrap:wrap; align-items:center; font-size:13px; color:var(--ink); line-height:1.5; }
  .ffm-it { white-space:nowrap; }
  .ffm-plus { color:var(--muted); margin:0 6px; }
  .ffm-snacks { margin-top:6px; }
  .ffm-snk-h { font:800 12px system-ui; color:var(--green-800); margin-bottom:6px; }
  .ffm-snk-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .ffm-snk { background:#fff; border:1px solid var(--line); border-radius:999px; padding:5px 10px; font-size:12.8px; color:var(--ink); }
  .ffm-snk i { color:var(--green-700); font-style:normal; font-weight:700; font-size:12px; }
  .ffm-acts { display:flex; flex-wrap:wrap; gap:7px; margin-top:13px; }
  .ffm-act { flex:1 1 auto; background:#fff; border:1.5px solid var(--line); color:var(--green-800); border-radius:10px; padding:10px 12px; font:700 12.5px system-ui; cursor:pointer; white-space:nowrap; }
  .ffm-act.primary { background:#11643a; color:#fff; border-color:#11643a; }
  .ffm-day { margin-top:14px; border-top:1px solid var(--line); padding-top:13px; }
  .ffm-day-h { font:800 13.5px system-ui; color:var(--green-800); margin-bottom:10px; }
  .ffm-meal { margin-bottom:10px; }
  .ffm-meal-h { font:800 12.5px system-ui; color:var(--ink); margin-bottom:4px; display:flex; justify-content:space-between; gap:8px; }
  .ffm-meal-h span { color:var(--muted); font-weight:700; }
  .ffm-meal-t{ flex:0 0 auto; font:700 11.5px system-ui; color:var(--muted); min-width:56px; }
  details.exday-fold{ margin-top:12px; }
  details.exday-fold > summary{ padding:14px 15px; font-size:13.5px; gap:8px; justify-content:flex-start; }
  details.exday-fold > summary .fold-t{ white-space:nowrap; font-weight:800; }
  details.exday-fold > summary .fold-sub{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  details.exday-fold > summary .fold-sub b{ color:var(--green-700); }
  .exday-body{ padding:2px 13px 13px; }
  .exday-body .sched-sample{ margin-top:2px; }
  details.fold .fold-sub{ margin-left:auto; color:var(--muted); font-weight:600; font-size:12px; }
  /* Round debrief sheet + the on-course proof card */
  .rd-grid{ display:flex; gap:10px; margin:4px 0 12px; }
  .rd-f{ flex:1; display:flex; flex-direction:column; gap:5px; }
  .rd-f span{ font:700 12px system-ui; color:var(--muted); }
  .rd-f span em{ font-style:normal; font-weight:600; opacity:.7; }
  .rd-f input{ width:100%; box-sizing:border-box; border:1.5px solid var(--line); border-radius:12px;
    padding:12px; font:600 20px 'FF Numeral', system-ui; text-align:center; }
  .rd-lbl{ font:700 12.5px system-ui; color:var(--muted); margin:10px 0 7px; }
  .rd-chips{ display:flex; flex-wrap:wrap; gap:7px; }
  .rd-save{ display:block; width:100%; margin-top:16px; border:0; border-radius:12px; background:#16a34a;
    color:#fff; font-weight:900; font-size:15px; padding:14px; cursor:pointer; min-height:48px; }
  .rd-foot{ font-size:12px; color:var(--muted); margin-top:9px; text-align:center; }
  .pl-livepr{ margin:2px 0 10px; display:inline-flex; align-items:center; gap:6px;
    background:linear-gradient(90deg,#f59e0b,#ef4444); color:#fff; font:800 13px system-ui;
    border-radius:999px; padding:7px 14px; }
  .pl-livepr b{ font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:15px; }
  .prw-r{ display:flex; align-items:center; gap:9px; padding:9px 2px; border-bottom:1px solid var(--line); font-size:13.5px; }
  .prw-r:last-child{ border-bottom:0; }
  .prw-ic{ flex:0 0 auto; font-size:15px; }
  .prw-lb{ flex:1; min-width:0; color:var(--ink); font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .prw-v{ flex:0 0 auto; color:var(--ink); }
  .prw-v b{ font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:17px; }
  .prw-d{ flex:0 0 auto; min-width:52px; text-align:right; font-size:11.5px; color:var(--muted); }
  .prw-tot{ margin-top:9px; font-size:12.5px; color:var(--muted); }
  .prw-tot b{ color:var(--green-800); font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; }
  .rd-stam{ font-size:13px; color:var(--muted); line-height:1.5; margin:8px 0 4px; }
  .rd-list{ margin:8px 0 4px; }
  .rd-r{ display:flex; align-items:center; gap:10px; padding:8px 2px; border-bottom:1px solid var(--line); font-size:13px; }
  .rd-r:last-child{ border-bottom:0; }
  .rd-d{ color:var(--muted); flex:1; }
  .rd-v{ min-width:56px; text-align:right; }
  .rd-v b{ font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:15px; }
  .rd-e{ min-width:86px; text-align:right; font-size:12px; color:var(--green-700); font-weight:700; }
  .rd-ins-h{ font-size:11px; font-weight:800; letter-spacing:.8px; text-transform:uppercase;
    color:var(--green-700); margin:12px 0 6px; }
  .rd-ins{ font-size:13px; color:var(--ink); line-height:1.5; background:#f2f8f3;
    border:1px solid #dcebe0; border-radius:10px; padding:9px 11px; margin:0 0 7px; }
  .rd-ins b{ color:var(--green-800); }
  .rd-ins.dim{ color:var(--muted); background:transparent; border-style:dashed; }
  .gd-loground{ display:block; width:100%; margin:0 0 14px; border:1.5px dashed #cfe0d5; background:#f4faf6;
    color:var(--green-800); border-radius:13px; padding:13px; font:800 13.5px system-ui; cursor:pointer; }
  .gd-loground.done{ border-style:solid; background:#eef7f0; }
  .sched-sample{ font-size:12.5px; color:var(--muted); line-height:1.5; margin:-4px 2px 12px; }
  .sched-sample b{ color:var(--green-800); }
  /* Meal cards with check-offs: name left, macros pushed right, buttons at the edge. */
  .ffm-meal-h.has-fchk{ justify-content:flex-start; align-items:center; }
  .ffm-meal-h.has-fchk .ffm-meal-n{ color:var(--ink); }
  .ffm-meal-h.has-fchk .ffm-meal-m{ margin-left:auto; text-align:right; }
  .ffm-meal-h.has-fchk .fchk{ flex-direction:row; }
  .ffm-meal.fdone{ opacity:.62; }
  .ffm-meal.fdone .ffm-meal-n{ text-decoration:line-through; text-decoration-color:#9db8a5; text-decoration-thickness:1.5px; }
  .ffm-groc { margin-top:12px; background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:11px 13px; }
  .ffm-groc-h { font:800 12.5px system-ui; color:var(--green-800); margin-bottom:7px; }
  /* One-day shopping list collapses — a scan-later artifact, not a daily read. */
  details.ffm-groc-fold > summary{ list-style:none; cursor:pointer; margin-bottom:0;
    display:flex; align-items:center; justify-content:space-between; gap:8px; }
  details.ffm-groc-fold > summary::-webkit-details-marker{ display:none; }
  details.ffm-groc-fold > summary::after{ content:"▾"; color:var(--muted); font-size:12px; transition:transform .2s; }
  details.ffm-groc-fold[open] > summary::after{ transform:rotate(180deg); }
  details.ffm-groc-fold[open] > summary{ margin-bottom:7px; }
  .ffm-groc-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .ffm-groc-i { background:#fff; border:1px solid var(--line); border-radius:7px; padding:4px 9px; font-size:12.8px; color:var(--ink); }
  .ffm-day-note { font-size:12.5px; color:var(--muted); margin-top:10px; line-height:1.5; }
  .ffm-day-note b { color:var(--green-700); }
  .ffm-pair-h em, .ffm-meal-h em { color:#b9852b; font-style:normal; font-weight:700; font-size:12px; }
  .ffm-tot { margin-top:13px; }
  .ffm-tot-h { font:800 12px system-ui; color:var(--green-800); margin-bottom:7px; }
  .ffm-tot-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  .ffm-tot-cell { background:var(--paper); border:1px solid var(--line); border-radius:11px; padding:9px 6px; text-align:center; }
  .ffm-tot-cell.ok { border-color:#9fdcb4; background:#eefaf1; }
  .ttc-v { font:800 16px system-ui; color:var(--ink); }
  .ttc-v small { font-size:11.5px; font-weight:700; color:var(--muted); }
  .ffm-tot-cell.ok .ttc-v { color:#11643a; }
  .ttc-l { font-size:11.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; margin-top:2px; }
  .ffm-shop { list-style:none; margin:0; padding:0; }
  .ffm-shop li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 2px; border-bottom:1px solid var(--line); font-size:13px; }
  .ffm-shop li:last-child { border-bottom:0; }
  .ffm-shop .shop-n { color:var(--ink); }
  .ffm-shop .shop-q { color:var(--green-800); font-weight:800; white-space:nowrap; }
  /* weekly plan sheet */
  .ffw-intro { font-size:13px; color:var(--muted); line-height:1.5; margin-bottom:12px; }
  .ffw-strip { display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; margin-bottom:12px; }
  .ffw-day { flex:0 0 auto; border:1.5px solid var(--line); background:#fcfdfc; color:var(--muted); border-radius:999px; padding:7px 13px; font:800 12.5px system-ui; cursor:pointer; }
  .ffw-day.on { background:#11643a; color:#fff; border-color:#11643a; }
  .ffw-dayhdr { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
  .ffw-dayhdr span { font:800 14.5px system-ui; color:var(--green-800); }
  .ffw-aisle { font:800 11.5px system-ui; text-transform:uppercase; letter-spacing:.4px; color:var(--green-700); margin:12px 0 2px; }
  .ffw-copy { width:100%; margin-top:12px; background:#11643a; color:#fff; border:0; border-radius:11px; padding:12px; font:800 13.5px system-ui; cursor:pointer; }
  /* proactive coaching "Your focus" insight card */
  .insight { position:relative; background:#fff; border:1px solid var(--line); border-left:4px solid #f4c542; border-radius:14px; padding:14px 16px; margin-bottom:13px; box-shadow:var(--shadow-sm); }
  .insight-x { position:absolute; top:4px; right:5px; background:var(--paper); border:1px solid var(--line); color:var(--muted); width:36px; height:36px; border-radius:50%; font-size:17px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .insight-top { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
  .insight-ic { font-size:20px; }
  .insight-kick { font:800 10.5px system-ui; letter-spacing:1px; text-transform:uppercase; color:#b9852b; }
  .insight-title { font:800 16.5px/1.2 system-ui; color:var(--green-800); letter-spacing:-.2px; margin-bottom:5px; padding-right:22px; }
  .insight-body { font-size:13px; line-height:1.5; color:var(--ink); }
  .insight-body b { color:var(--green-700); }
  .insight-cta { margin-top:12px; width:100%; background:#11643a; color:#fff; border:0; border-radius:10px; padding:10px; font:800 13px system-ui; cursor:pointer; }
  .insight-cta:active { transform:translateY(1px); }

  /* ---- First-run onboarding wizard ---- */
  .ob { position:fixed; inset:0; z-index:200;
    background:radial-gradient(135% 95% at 82% -8%, #14512f 0%, #0a2317 44%, #05130c 100%);
    display:flex; flex-direction:column; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  /* Clear the iPhone status bar / Dynamic Island on the installed app (viewport-fit=cover). */
  .ob-top { padding:calc(18px + env(safe-area-inset-top, 0px)) 18px 0; }
  .ob-prog { height:6px; background:rgba(255,255,255,.14); border-radius:999px; overflow:hidden; max-width:560px; margin:0 auto; }
  .ob-prog > span { display:block; height:100%; background:linear-gradient(90deg,#34d27b,#7ef0a8); border-radius:999px; transition:width .35s cubic-bezier(.4,0,.2,1); }
  .ob-main { flex:1; display:flex; flex-direction:column; justify-content:center; padding:14px 18px 24px; }
  .ob-card { width:100%; max-width:560px; margin:0 auto; color:#fff; }
  .ob-kicker { font:800 11.5px/1.2 system-ui; letter-spacing:1.2px; text-transform:uppercase; color:#7ef0a8; margin-bottom:12px; display:flex; align-items:center; gap:7px; }
  .ob-h { font:800 26px/1.18 system-ui; margin:0 0 8px; letter-spacing:-.5px; }
  .ob-p { font:400 14.5px/1.5 system-ui; color:#cdebd6; margin:0 0 20px; max-width:450px; }
  .ob-p b { color:#fff; }
  .ob-cite { font:500 12px/1.5 system-ui; color:#8fbfa2; margin:-8px 0 20px; max-width:450px; }
  .ob-cite b { color:#bfe3cd; font-weight:700; }
  .ob-brand { font:900 clamp(38px,11.5vw,58px)/1 system-ui; letter-spacing:-2px; margin:4px 0 18px; white-space:nowrap; }
  .ob-brand .em { color:#7ef0a8; }
  /* Premium welcome hero */
  .ob-hook { font:900 clamp(31px,8.6vw,46px)/1.04 system-ui; letter-spacing:-1.2px; color:#fff; margin:0 0 16px; }
  .ob-hook .em { color:#7ef0a8; }
  .ob-feats { display:flex; gap:9px; margin-top:22px; }
  .ob-feat { flex:1; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.11);
    border-radius:15px; padding:15px 8px 13px; text-align:center; }
  .ob-feat > span { font-size:22px; line-height:1; display:block; }
  .ob-feat b { display:block; font:800 12.5px system-ui; color:#fff; margin-top:8px; letter-spacing:-.2px; }
  .ob-feat small { display:block; font:500 10px/1.32 system-ui; color:#92c7a8; margin-top:4px; }
  .ob-opts { display:grid; gap:10px; }
  .ob-opt { display:flex; align-items:center; gap:13px; width:100%; text-align:left; cursor:pointer;
    background:rgba(255,255,255,.06); border:1.5px solid rgba(255,255,255,.16); border-radius:15px; padding:15px 16px; color:#fff; transition:all .14s; }
  .ob-opt:active { transform:scale(.99); }
  .ob-opt.sel { background:rgba(126,240,168,.16); border-color:#7ef0a8; box-shadow:0 0 0 3px rgba(126,240,168,.18); }
  .ob-opt .obo-ic { font-size:24px; flex:0 0 auto; width:34px; text-align:center; }
  .ob-opt .obo-tx { flex:1; min-width:0; }
  .ob-opt .obo-t { font:800 15.5px system-ui; display:flex; align-items:center; gap:8px; }
  .ob-opt .obo-tag { font:800 10px system-ui; padding:2px 7px; border-radius:999px; background:rgba(126,240,168,.2); color:#7ef0a8; }
  .ob-opt .obo-d { font:400 12.5px/1.4 system-ui; color:#bfe3cd; margin-top:3px; }
  .ob-seg { display:flex; gap:8px; flex-wrap:wrap; }
  .ob-seg button { flex:1 1 auto; min-width:70px; background:rgba(255,255,255,.07); border:1.5px solid rgba(255,255,255,.16);
    color:#fff; border-radius:12px; padding:13px 10px; font:700 14px system-ui; cursor:pointer; transition:all .14s; }
  .ob-seg button.sel { background:#7ef0a8; border-color:#7ef0a8; color:#0f2417; }
  .ob-field { margin-bottom:16px; }
  .ob-field > label { display:block; font:700 13px system-ui; color:#cdebd6; margin-bottom:8px; }
  .ob-field > label span { opacity:.6; font-weight:600; }
  .ob-row { display:flex; gap:10px; }
  .ob-in { width:100%; box-sizing:border-box; background:rgba(255,255,255,.95); border:1.5px solid transparent; border-radius:12px;
    padding:14px; font:600 16px system-ui; color:#0f2417; }
  .ob-in:focus { outline:none; border-color:#7ef0a8; }
  .ob-select { width:100%; box-sizing:border-box; background:rgba(255,255,255,.95); border:0; border-radius:12px; padding:14px; font:600 15px system-ui; color:#0f2417; }
  .ob-startcue { margin:6px 0 4px; background:rgba(126,240,168,.10); border:1px solid rgba(126,240,168,.28);
    border-radius:12px; padding:12px 14px; font:600 13px/1.5 system-ui; color:#cdebd6; }
  .ob-startcue b { color:#fff; }
  .ob-sum { display:flex; gap:10px; margin:2px 0 18px; }
  .ob-sumv { flex:1; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:14px 10px; text-align:center; }
  .ob-sumv .v { font:800 23px system-ui; color:#fff; }
  .ob-sumv .v small { font-size:13px; font-weight:700; color:#bfe3cd; }
  .ob-sumv .k { font:700 10.5px system-ui; color:#9ccfb0; text-transform:uppercase; letter-spacing:.6px; margin-top:3px; }
  .ob-nav { display:flex; gap:10px; align-items:center; max-width:560px; margin:18px auto 0; width:100%; }
  .ob-next { flex:1; background:#7ef0a8; color:#0f2417; border:0; border-radius:14px; padding:16px; font:800 16px system-ui; cursor:pointer; }
  .ob-next:active { transform:translateY(1px); }
  .ob-back { flex:0 0 auto; background:none; border:0; color:rgba(255,255,255,.6); font:700 14px system-ui; padding:14px 8px; cursor:pointer; }
  .ob-later { display:block; max-width:560px; margin:12px auto 0; width:100%; background:none; border:0; color:rgba(255,255,255,.55); font:600 13px system-ui; cursor:pointer; }
  .ob-err { color:#ffd27e; font:600 12.5px system-ui; margin-top:10px; min-height:16px; }
  @media(min-width:560px){ .ob-h{ font-size:30px; } }

  /* ---- Progress / Stats view ---- */
  .prog-hd { margin:4px 2px 14px; }
  .prog-kick { font:800 11px/1.2 system-ui; letter-spacing:1.2px; text-transform:uppercase; color:var(--green-600); margin-bottom:6px; }
  .prog-hd h2 { margin:0 0 3px; font:900 26px/1.05 system-ui; color:var(--green-800); letter-spacing:-.5px; }
  .prog-hd p { margin:0; font-size:13px; color:var(--muted); line-height:1.45; }
  .pcard { background:#fff; border:1px solid var(--line); border-radius:16px; padding:15px 16px; margin-bottom:13px; box-shadow:0 1px 3px rgba(12,40,24,.04); }
  .pc-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
  .pc-t { font:800 13.5px system-ui; color:var(--green-800); }
  .pc-t small { font-weight:600; color:var(--muted); font-size:12px; margin-left:3px; }
  /* Calm pass: Stats cards fold to a headline row (title · stat · chevron). */
  .pf-head{ width:100%; text-align:left; background:none; border:0; padding:0; cursor:pointer; font:inherit; }
  .pf-side{ margin-left:auto; display:flex; align-items:center; gap:8px; flex:0 0 auto; }
  .pf-num{ font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:15px; color:var(--green-800); }
  .pf-sub{ font-size:11.5px; color:var(--muted); font-weight:600; }
  .pf-arr{ color:#9db8a5; font-size:16px; line-height:1; }
  .pcard.pf-closed{ padding:13px 16px; }
  .pcard.pf-closed .pc-head{ margin-bottom:0; }
  .pcard.pf-closed .pc-t{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
  .pcard.season .pf-num, .pcard.season .pf-sub{ color:#bfe3cd; }
  .lb-seg-top{ margin:2px 0 10px; }
  /* "Unlocks as you log" — the one quiet home for everything not yet earned. */
  .pcard.unlk{ border-style:dashed; background:transparent; box-shadow:none; }
  .unlk-r{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; background:none;
    border:0; border-bottom:1px solid var(--line); padding:9px 2px; cursor:pointer; font:inherit; }
  .unlk-r:last-child{ border-bottom:0; }
  .unlk-r:disabled{ cursor:default; }
  .unlk-ic{ font-size:16px; flex:0 0 auto; }
  .unlk-tx{ flex:1; min-width:0; }
  .unlk-tx b{ display:block; font-size:13.5px; color:var(--green-800); }
  .unlk-tx span{ display:block; font-size:12px; color:var(--muted); line-height:1.35; }
  .pc-delta { font:800 12px system-ui; padding:3px 9px; border-radius:999px; white-space:nowrap; }
  .pc-delta.up { background:#e6f6ec; color:#15803d; }
  .pc-delta.down { background:#fdeaea; color:#c0392b; }
  .pc-delta.flat, .pc-delta.neu { background:#eef2f0; color:#5a6b60; }
  .pc-now { font:800 34px system-ui; color:var(--ink); line-height:1; margin:2px 0 6px; letter-spacing:-1px; }
  .pc-now span { font-size:15px; font-weight:700; color:var(--muted); margin-left:5px; letter-spacing:0; }
  .pc-now.muted { color:var(--line); }
  .pc-svg { display:block; margin:4px 0 2px; max-height:108px; }
  .pc-foot { display:flex; justify-content:space-between; font-size:12.5px; color:var(--muted); margin-top:4px; }
  .pc-foot b { color:var(--green-700); }
  .pc-payoff { margin-top:9px; padding:9px 11px; border-radius:10px; background:linear-gradient(135deg,#ecfbf1,#e2f6ea);
    border:1px solid #c7ecd3; font-size:13px; line-height:1.45; color:var(--green-800); }
  .pc-payoff b { color:#11643a; }
  .pc-payoff span { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
  .pc-payoff.muted { background:var(--paper); border-color:var(--line); color:var(--muted); }
  .pc-payoff.muted b { color:var(--green-700); }
  .pc-need { font-size:13px; color:var(--muted); line-height:1.45; background:var(--paper); border-radius:10px; padding:12px 13px; margin-top:4px; }
  /* sub-section headers inside merged cards (Gym & body, Season) */
  .pc-sec{ margin:15px 2px 7px; padding-top:12px; border-top:1px dashed var(--line);
    font:800 12px system-ui; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .pc-sec small{ font-size:11px; font-weight:700; letter-spacing:.03em; margin-left:4px; }
  .pc-sec.first{ margin-top:4px; padding-top:0; border-top:0; }
  /* strength rows */
  .lr { display:flex; align-items:center; gap:11px; padding:10px 0; border-top:1px solid var(--line); }
  .lr:first-of-type { border-top:0; }
  .lr-name { flex:1; min-width:0; font:700 13.5px system-ui; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lr-spark { flex:0 0 72px; height:26px; opacity:.9; }
  .lr-one { font-size:11.5px; color:var(--muted); }
  .lr-val { flex:0 0 auto; font:800 16px system-ui; color:var(--green-800); display:flex; align-items:center; gap:7px; }
  .lr-val small { font-size:11.5px; font-weight:700; color:var(--muted); margin-left:-4px; }
  .lr-val .pc-delta { font-size:12px; padding:2px 7px; }
  /* consistency bars */
  .wkbars { display:flex; align-items:flex-end; gap:6px; height:76px; margin:6px 0 2px; }
  .wkbar { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:5px; }
  .wkbar-fill { width:100%; max-width:30px; background:#bfe3cd; border-radius:5px 5px 3px 3px; min-height:3px; transition:height .3s; }
  .wkbar-fill.full { background:#16a34a; }
  .wkbar-n { font:700 10px system-ui; color:var(--muted); }
  /* quick add */
  .pc-add .pc-addrow { display:flex; gap:8px; }
  .pc-add .pc-addrow input { flex:1; min-width:0; border:1.5px solid var(--line); border-radius:10px; padding:12px; font:600 15px system-ui; color:var(--ink); }
  .pc-add .pc-addrow input:focus { outline:none; border-color:var(--green-600); }
  .pc-add .pc-addrow button { flex:0 0 auto; background:#11643a; color:#fff; border:0; border-radius:10px; padding:0 20px; font:800 14px system-ui; cursor:pointer; }
  .pc-add .pc-addrow button:active { transform:translateY(1px); }
  .pc-add .pc-addwide { width:100%; margin-top:8px; background:#11643a; color:#fff; border:0; border-radius:10px; padding:12px; font:800 14px system-ui; cursor:pointer; }
  .pc-add .pc-addwide:active { transform:translateY(1px); }
  .pc-addhint { font-size:12.5px; color:var(--muted); margin-top:8px; line-height:1.4; }
  /* empty */
  .pc-empty-card { text-align:center; padding:30px 20px; }
  .pc-empty-card .pc-emoji { font-size:40px; }
  .pc-empty-card h3 { margin:10px 0 5px; font-size:18px; color:var(--green-800); }
  .pc-empty-card p { margin:0 auto; font-size:13.5px; color:var(--muted); line-height:1.5; max-width:340px; }
  /* leaderboard */
  .lb-seg { display:flex; gap:3px; background:var(--paper); border-radius:9px; padding:3px; }
  .lb-seg button { border:0; background:none; font:700 11.5px system-ui; color:var(--muted); padding:6px 11px; border-radius:7px; cursor:pointer; }
  .lb-seg button.on { background:#11643a; color:#fff; }
  .lb-join { display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:var(--paper); border-radius:12px; padding:13px; margin-bottom:6px; font-size:13px; color:var(--muted); line-height:1.4; }
  .lb-join input { flex:1; min-width:150px; border:1.5px solid var(--line); border-radius:9px; padding:11px 12px; font:600 14px system-ui; color:var(--ink); }
  .lb-join input:focus { outline:none; border-color:var(--green-600); }
  .lb-join button { flex:0 0 auto; background:#11643a; color:#fff; border:0; border-radius:9px; padding:11px 20px; font:800 13px system-ui; cursor:pointer; }
  .lb-hint { flex-basis:100%; font-size:12px; color:var(--muted); }
  .lb-mine { display:flex; align-items:center; justify-content:space-between; gap:8px; background:#eef7f0; border:1px solid #cfe9d8; border-radius:11px; padding:11px 14px; margin-bottom:6px; font-size:13px; color:var(--green-800); }
  .lb-leave { background:none; border:0; color:#c0392b; font:700 12.5px system-ui; cursor:pointer; }
  .lb-list { margin-top:8px; }
  .lb-row { display:flex; align-items:center; gap:11px; padding:9px 4px; border-top:1px solid var(--line); }
  .lb-row:first-child { border-top:0; }
  .lb-row.me { background:#f1faf3; border-radius:9px; margin:0 -6px; padding:9px 10px; }
  .lb-rank { flex:0 0 26px; text-align:center; font:800 14px system-ui; color:var(--muted); }
  .lb-name { flex:1; min-width:0; font:700 13.5px system-ui; color:var(--ink); display:flex; align-items:center; gap:7px; white-space:nowrap; overflow:hidden; }
  .lb-name { text-overflow:ellipsis; }
  .lb-you { flex:0 0 auto; font:800 9px system-ui; background:#11643a; color:#fff; padding:2px 6px; border-radius:99px; letter-spacing:.4px; text-transform:uppercase; }
  .lb-div { flex:0 0 auto; font-weight:600; color:var(--muted); font-size:12px; }
  .lb-num { flex:0 0 auto; font:800 15px system-ui; color:var(--green-800); }
  /* In-context AI entry points */
  .dash-ai { margin-top:13px; width:100%; display:flex; align-items:center; gap:13px; text-align:left;
    background:linear-gradient(110deg,#11643a,#0e4f30); color:#fff; border:0; border-radius:14px; padding:14px 16px;
    cursor:pointer; box-shadow:var(--shadow); }
  .dash-ai:active { transform:translateY(1px); }
  .dash-ai .dai-ic { font-size:20px; flex:0 0 auto; }
  .dash-ai .dai-tx { flex:1; display:flex; flex-direction:column; gap:2px; }
  .dash-ai .dai-tx b { font-size:14px; }
  .dash-ai .dai-tx span { font-size:12.5px; color:#cdeedb; line-height:1.3; }
  .dash-ai .dai-go { font-size:22px; color:#9fe7bb; flex:0 0 auto; }
  .train-ai { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; text-align:left;
    background:#eef7f0; color:var(--green-800); border:1px solid #cfe9d8;
    border-radius:12px; padding:13px 15px; font:600 13.5px system-ui; cursor:pointer; margin-bottom:14px; }
  .train-ai b { color:var(--green-700); font-weight:800; }
  .train-ai .tai-go { flex:0 0 auto; color:var(--green-700); font-weight:800; white-space:nowrap; }
  .train-ai:active { transform:translateY(1px); }
  /* Finish workout — locks the session into permanent history */
  .finish-btn { width:100%; margin:6px 0 16px; background:#11643a; color:#fff; border:0; border-radius:14px;
    padding:17px; font:800 16px system-ui; cursor:pointer; box-shadow:0 6px 18px rgba(17,100,58,.28);
    display:flex; flex-direction:column; align-items:center; gap:2px; }
  .finish-btn:active { transform:translateY(1px); }
  .finish-btn.done { background:#eef7f0; color:var(--green-800); box-shadow:none; border:1px solid #cfe9d8; }
  .finish-btn .fb-sub { font:600 11.5px system-ui; opacity:.8; }
  .clear-workout { display:block; width:100%; margin:-8px 0 14px; background:none; border:0; padding:8px;
    font:600 12.5px system-ui; color:var(--muted); cursor:pointer; }
  .clear-workout:hover { color:#c0392b; }
  .clear-workout.arm { color:#c0392b; font-weight:800; }
  .ff-toast { position:fixed; left:50%; bottom:96px; transform:translate(-50%,12px); z-index:200;
    background:#0f2417; color:#fff; font:700 13.5px system-ui; padding:12px 18px; border-radius:999px;
    box-shadow:0 10px 30px rgba(8,40,22,.45); opacity:0; transition:opacity .3s, transform .3s; pointer-events:none; max-width:90vw; text-align:center; }
  .ff-toast.show { opacity:1; transform:translate(-50%,0); }
  .hist-row { border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:9px; background:#fff; cursor:pointer; }
  .hist-row:active { background:#f7faf7; }
  .hist-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .hist-day { font:800 14px system-ui; color:var(--green-800); }
  .hist-chev { display:inline-block; color:var(--muted); font-weight:800; transition:transform .2s; }
  .hist-row.open .hist-chev { transform:rotate(90deg); }
  .hist-right { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
  .hist-date { font:600 12px system-ui; color:var(--muted); white-space:nowrap; flex:0 0 auto; }
  .hist-del { background:none; border:0; font-size:15px; line-height:1; opacity:.45; cursor:pointer; padding:0; width:38px; height:38px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; }
  .hist-del:hover { opacity:1; }
  .hist-del.arm { opacity:1; color:#c0392b; font:800 11px system-ui; background:#fbeaea; }
  .hist-meta { font:600 12px system-ui; color:var(--muted); margin-top:3px; }
  .hist-detail { margin-top:11px; padding-top:11px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:7px; }
  .hist-ex { display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
  .hex-name { font:700 12.5px system-ui; color:var(--green-800); }
  .hex-sets { font:600 12.5px system-ui; color:var(--muted); text-align:right; font-variant-numeric:tabular-nums; }

  /* ===== Account ===== */
  .acct-card { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:18px;
    box-shadow:var(--shadow); margin-bottom:13px; }
  .acct-card.center { text-align:center; }
  .acct-bigico { font-size:34px; }
  .acct-card.center h3 { margin:8px 0 5px; font-size:18px; color:var(--green-800); }
  .acct-card.center p { margin:0 0 15px; font-size:13px; color:var(--muted); line-height:1.5; }
  .acct-id { display:flex; align-items:center; gap:13px; margin-bottom:14px; }
  .acct-ava { width:46px; height:46px; flex:0 0 auto; border-radius:50%; background:#11643a; color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; }
  .acct-email { font-size:15px; font-weight:700; color:var(--ink); word-break:break-all; }
  .acct-synced { font-size:12.8px; color:var(--green-700); margin-top:2px; }
  .acct-synced.warn { color:#b45309; font-weight:700; }
  .acct-head { font-size:14px; font-weight:800; color:var(--green-800); margin-bottom:6px; }
  .acct-p { margin:0 0 12px; font-size:13.2px; color:var(--muted); line-height:1.5; }
  .acct-plan { font-size:13px; color:var(--ink); margin-bottom:12px; }
  .acct-plan b { color:var(--green-700); }
  .acct-btn { width:100%; background:#11643a; color:#fff; border:0; border-radius:11px; padding:13px;
    font:700 14px system-ui; cursor:pointer; }
  .acct-btn:active { transform:translateY(1px); }
  .acct-btn.ghost { background:#eef7f0; color:var(--green-700); border:1px solid #cfe9d8; }
  /* Premium dark account hero — matches the dashboard/Train heroes. */
  .acct-card.hero { background:radial-gradient(135% 135% at 8% 0%,#1a5031 0%,#0d2216 72%);
    border:1px solid rgba(255,255,255,.06); color:#eafff1; box-shadow:0 12px 28px rgba(8,40,22,.24); padding:22px 20px; }
  .acct-card.hero .acct-id { margin-bottom:16px; }
  .acct-card.hero .acct-ava { background:#7ef0a8; color:#0d2216; }
  .acct-card.hero .acct-email { color:#fff; }
  .acct-card.hero .acct-synced { color:#7ef0a8; }
  .acct-card.hero .acct-synced.warn { color:#ffd28a; }
  .acct-card.hero.center .acct-bigico { color:#7ef0a8; }
  .acct-card.hero.center h3 { color:#fff; font-size:20px; letter-spacing:-.4px; }
  .acct-card.hero.center p { color:#bfe3cd; }
  .acct-card.hero .acct-btn { background:#7ef0a8; color:#0d2216; }
  .acct-card.hero .acct-btn.ghost { background:rgba(255,255,255,.08); color:#eafff1; border:1px solid rgba(255,255,255,.18); }
  .acct-btn.danger { background:#fff; color:#b3402f; border:1.5px solid #eccac4; }
  .acct-btn.danger:active { background:#fbeeeb; }
  .acct-list { margin-bottom:13px; }
  .calc-trainref { width:100%; text-align:left; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
    background:#f5f8f4; border:1px solid var(--line); border-radius:12px; padding:12px 14px; cursor:pointer; }
  .calc-trainref b { font:800 14px system-ui; color:var(--green-800); }
  .calc-trainref span { font:600 12px system-ui; color:var(--muted); }
  .calc-trainref span b { color:var(--green-700); font-weight:800; }
  .calc-trainref:active { transform:translateY(1px); }
  .acct-set { margin-top:15px; }
  .acct-head + .acct-set { margin-top:4px; }
  .acct-set-lbl { font:700 12.5px system-ui; color:var(--ink); margin-bottom:7px; }
  .acct-set-lbl small { font-weight:500; color:var(--muted); }
  .goal-chips { display:flex; flex-wrap:wrap; gap:8px; }
  .goal-chips button { flex:1; min-width:52px; padding:11px 6px; border:1px solid var(--line); background:#fcfdfc;
    border-radius:12px; font:800 14px system-ui; color:var(--muted); cursor:pointer; }
  .goal-chips button.on { background:#11643a; border-color:#11643a; color:#fff; }
  .goal-chips button:active { transform:translateY(1px); }
  .acct-li { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; }
  .acct-li:last-child { border-bottom:0; }
  .acct-li span { color:var(--muted); }
  .acct-li b { color:var(--ink); }
  .acct-foot { text-align:center; font-size:12.5px; color:var(--muted); line-height:1.6; margin-top:4px; padding-bottom:8px; }
  .acct-links { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:14px; font-size:13.5px; }
  .acct-links a { color:var(--green-700); font-weight:700; text-decoration:none; }
  .acct-links span { color:var(--line); }

  .tracker {
    margin-top:22px; background:var(--sand); border:1px solid var(--sand-dark); border-radius:14px; padding:18px 20px;
  }
  .tracker h3 { margin:0 0 10px; font-size:15px; color:#5a4f2b; }
  .tracker ul { margin:0; padding-left:18px; color:#5a4f2b; font-size:13px; line-height:1.7; }
  .tracker ul b { color:#3f3818; }

  footer { text-align: center; color: var(--muted); font-size: 12.8px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); line-height: 1.6; }
  footer strong { color: var(--green-800); }
  footer .disc { max-width: 640px; margin: 8px auto 0; opacity:.8; font-size: 12.5px; }
  footer .disc-fold { margin-top: 6px; }
  footer .disc-fold summary { cursor: pointer; list-style: none; font-size: 12.2px; opacity:.85; }
  footer .disc-fold summary::-webkit-details-marker { display: none; }

  /* ===== Workout logger ===== */
  .weekbar { display:flex; align-items:center; justify-content:space-between; gap:10px;
    background:linear-gradient(160deg,#0f2417,#14532d); color:#eafff1; border-radius:14px; padding:12px 16px; margin-bottom:14px; }
  .weekbar .wk-label { font-size:13px; font-weight:700; line-height:1.3; }
  .weekbar .wk-label b { color:#7ef0a8; font-size:15px; }
  .weekbar .wk-label span { display:block; font-size:12px; opacity:.8; font-weight:500; }
  .weekbar select { width:auto; background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.25);
    padding:9px 30px 9px 12px; font-size:14px; font-weight:700; border-radius:10px; }
  .weekbar select option { color:#143; }
  .wk-adjust { background:rgba(255,255,255,.16); color:#fff; border:0; border-radius:9px; padding:9px 14px; font:700 12.5px system-ui; cursor:pointer; }
  .wk-adjust:active { transform:translateY(1px); }
  .wk-adjrow { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:-6px 0 14px; padding:11px 12px;
    background:#f3f7f3; border:1px solid var(--line); border-radius:11px; }
  .wk-adjrow select { flex:1; min-width:120px; padding:9px 10px; }
  /* Calendar start card (before the plan is started) */
  .startbar { background:linear-gradient(160deg,#0f2417,#14532d); color:#eafff1; border-radius:14px; padding:16px; margin-bottom:14px; }
  .startbar .sb-top { display:flex; flex-direction:column; gap:4px; margin-bottom:12px; }
  .startbar .sb-top b { font-size:16px; color:#fff; }
  .startbar .sb-top span { font-size:12.8px; color:#bfe6cd; line-height:1.45; }
  .startbar .sb-go { width:100%; background:#7ef0a8; color:#0d2216; border:0; border-radius:11px; padding:13px; font:800 15px system-ui; cursor:pointer; }
  .startbar .sb-go:active { transform:translateY(1px); }
  .startbar .sb-alt { font-size:12.8px; color:#bfe6cd; margin-top:11px; text-align:center; }
  .sb-link { background:none; border:0; color:var(--green-700); font:700 13px system-ui; cursor:pointer; text-decoration:underline; text-underline-offset:2px; padding:6px 4px; margin:-6px -4px; }
  .startbar .sb-link { color:#9fe7bb; }   /* the start banner is dark green — keep the light link there */
  .wk-adjrow .sb-link { color:var(--green-700); }
  .startbar .sb-jump { display:flex; gap:8px; margin-top:11px; }
  .startbar .sb-jump select { flex:1; }
  .sb-go2 { background:#7ef0a8; color:#0d2216; border:0; border-radius:9px; padding:9px 15px; font:800 13px system-ui; cursor:pointer; }
  /* Today vs Full-week view */
  .planview-seg { display:flex; gap:6px; background:#eef3ee; padding:4px; border-radius:11px; margin-bottom:12px; }
  .planview-seg button { flex:1; min-height:44px; border:0; background:transparent; padding:9px; border-radius:8px; font:700 13px system-ui; color:var(--muted); cursor:pointer; }
  .planview-seg button.active { background:#fff; color:var(--green-700); box-shadow:0 1px 4px rgba(0,0,0,.08); }
  .planview-seg button:disabled { opacity:.4; cursor:default; }
  /* The full 7-day week at a glance (no horizontal scroll) — equal columns. */
  .weekstrip { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:3px; padding:1px 0 12px; margin-bottom:2px; }
  .ws-chip { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:44px; border:1px solid var(--line); background:var(--paper);
    color:var(--ink); text-align:center; border-radius:10px; padding:7px 1px; cursor:pointer; overflow:hidden; min-width:0; }
  .ws-chip .ws-date { font:600 8.5px/1 system-ui; color:var(--muted); letter-spacing:-.2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  .ws-chip .ws-name { font:800 10px/1 system-ui; letter-spacing:-.3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  .ws-chip.done { color:var(--green-700); border-color:#cfe9d8; }
  .ws-chip.today { border-color:#11643a; box-shadow:inset 0 0 0 1px #11643a; }
  .ws-chip.today .ws-date { color:var(--green-700); font-weight:800; }
  .ws-chip.cur { background:#11643a; color:#fff; border-color:#11643a; box-shadow:none; }
  .ws-chip.cur .ws-date { color:#bfe6cd; }
  .ws-chip.cur .ws-name { color:#fff; }
  /* Inline logger — Hevy-style exercise cards */
  .ilogwrap { padding:4px 0 2px; }
  .il-prog { height:5px; background:var(--line); border-radius:99px; overflow:hidden; margin:0 0 14px; }
  .il-progbar { height:100%; background:#16a34a; border-radius:99px; transition:width .35s; }
  .il-ex { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 14px 11px; margin-bottom:12px; box-shadow:0 1px 3px rgba(11,40,24,.05); }
  .il-exhead { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .il-name { font-size:15.5px; font-weight:800; color:var(--green-800); letter-spacing:-.2px; }
  .il-acts { display:flex; align-items:center; gap:4px; flex:0 0 auto; }
  .il-swap { background:none; border:0; color:var(--muted); font:700 12px system-ui; cursor:pointer; flex:0 0 auto; }
  .il-why { background:none; border:0; color:var(--muted); font:700 12px system-ui; cursor:pointer; padding:3px 7px; border-radius:8px; }
  .il-why.on { background:#eef7f0; color:var(--green-700); }
  .il-why-box { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:12px 13px; margin:0 0 11px; }
  .il-why-box .why-why { font-size:13.2px; line-height:1.5; color:var(--ink); }
  .il-why-box .why-cue { font-size:13px; color:var(--green-800); margin-top:8px; }
  .il-why-box .why-cue b { color:var(--green-700); }
  .il-why-box .why-coach { margin-top:11px; width:100%; background:#11643a; color:#fff; border:0; border-radius:9px; padding:10px; font:700 12.5px system-ui; cursor:pointer; }
  .il-why-box .why-coach:active { transform:translateY(1px); }
  /* read-only "why this lift" affordance in the plan/speed tables — quiet by default */
  .exwhy-btn { background:none; border:0; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer; text-align:left; }
  .exwhy-i { color:var(--muted); font-size:12px; opacity:.5; margin-left:1px; }
  .exwhy-btn[aria-expanded="true"] .exwhy-i { opacity:1; color:var(--green-700); }
  .exwhy-row > td { padding:0 14px 12px !important; }
  .exwhy-panel { background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:12px 13px; }
  .exwhy-panel .why-why { font-size:12.6px; line-height:1.5; color:var(--ink); }
  .exwhy-panel .why-cue { font-size:12.3px; color:var(--green-800); margin-top:8px; }
  .exwhy-panel .why-cue b { color:var(--green-700); }
  /* "How to do it" launcher button (in both inline + read-only why panels) */
  .why-howto { display:block; width:100%; margin-top:11px; background:#eef7f0; border:1px solid #cfe9d8; color:var(--green-700);
    border-radius:9px; padding:10px; font:800 12.5px system-ui; cursor:pointer; }
  .why-howto:active { transform:translateY(1px); }
  /* exercise demo sheet content (reuses .swap-modal/.swap-card shell) */
  .ed-mu { font-size:13px; color:var(--green-800); background:#eef7f0; border:1px solid #cfe9d8; border-radius:10px; padding:10px 12px; margin-bottom:12px; }
  .ed-sec { margin-bottom:14px; }
  .ed-sec h4 { margin:0 0 7px; font-size:13px; color:var(--green-800); }
  .ed-cues, .ed-miss { margin:0; padding-left:20px; }
  .ed-cues li, .ed-miss li { font-size:13px; line-height:1.5; color:var(--ink); margin:4px 0; }
  .ed-miss li { color:#8a4a40; }
  .ed-why { font-size:12.6px; line-height:1.5; color:#5a4f2b; background:#fef9ec; border:1px solid #f0e3b8; border-radius:10px; padding:11px 12px; margin-bottom:14px; }
  .ed-video { display:block; text-align:center; background:#11643a; color:#fff; text-decoration:none; border-radius:10px; padding:13px; font:800 14px system-ui; }
  .ed-video:active { transform:translateY(1px); }
  .il-sub { font-size:12.5px; color:var(--muted); margin:2px 0 11px; }
  .il-up { color:var(--green-700); font-weight:800; background:#eef7f0; border:1px solid #d9ecdf; border-radius:999px; padding:7px 12px; margin:4px 0 2px; display:inline-block; font-size:inherit; font-family:inherit; cursor:pointer; min-height:34px; }
  .il-up:active { transform:translateY(1px); }
  .add-custom { border:1px dashed var(--green-700) !important; color:var(--green-700) !important; font-weight:800; }
  .il-cols, .il-set { display:grid; grid-template-columns:26px minmax(54px,1fr) 60px 60px 40px; gap:8px; align-items:center; }
  .il-cols { font-size:10.5px; font-weight:800; letter-spacing:.6px; color:#9bb0a3; padding:0 2px 7px; }
  .il-cols span:nth-child(3),.il-cols span:nth-child(4){ text-align:center; }
  .il-set { padding:5px 2px; border-radius:9px; margin-bottom:2px; }
  .il-set.done { background:#eafaf0; }
  .il-sn { text-align:center; font-weight:800; color:var(--muted); font-size:13px; }
  .il-prev { background:none; border:0; color:var(--muted); font:600 12.5px system-ui; cursor:pointer; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0; }
  .il-prev:disabled { opacity:.45; cursor:default; }
  .il-set .il-in { width:100%; min-width:0; border:1.5px solid var(--line); border-radius:9px; padding:10px 4px; font-size:15px; text-align:center; box-sizing:border-box; background:#fff; }
  .il-set.done .il-in { background:transparent; border-color:transparent; font-weight:800; color:var(--green-800); }
  .il-check { width:40px; height:40px; border:1.5px solid #d3e0d8; background:#fff; color:#c2d3c8; border-radius:9px; font-size:17px; cursor:pointer; }
  .il-check.on { background:#16a34a; border-color:#16a34a; color:#fff; }
  .il-plates { grid-column:1 / -1; font-size:11.5px; color:#8a6d1c; padding:1px 0 5px 34px; }
  .il-add { width:100%; margin-top:9px; background:#f1f6f2; border:0; color:var(--green-700); border-radius:9px; padding:11px; font:800 13px system-ui; cursor:pointer; }
  .il-add:active { transform:translateY(1px); }
  .il-addlift { width:100%; margin-top:6px; background:#11643a; border:0; color:#fff; border-radius:12px; padding:15px; font:800 14.5px system-ui; cursor:pointer; box-shadow:0 4px 12px rgba(17,100,58,.22); }
  .il-addlift:active { transform:translateY(1px); }
  /* Warm-up & primer — warm amber box so it stands out from the white logging cards */
  .prelift { background:linear-gradient(165deg,#fff7ec,#ffeed7); border:1px solid #f1d9b4; border-left:4px solid #e8923a;
    border-radius:12px; margin-bottom:13px; overflow:hidden; box-shadow:0 4px 14px rgba(184,120,30,.10); }
  .prelift > summary { list-style:none; cursor:pointer; padding:13px 15px; font-size:13px; font-weight:800; color:#9a560f; }
  .prelift > summary::-webkit-details-marker { display:none; }
  .prelift > summary::after { content:"▾"; float:right; color:#c98b4a; }
  .prelift[open] > summary::after { content:"▴"; }
  .prelift .prelift-body { padding:0 4px 4px; }
  .prelift .warm, .prelift .primer { border-radius:0; }
  /* Gym-readable warm-up & power primer — scannable, tappable rows */
  .wu { padding:4px 8px 8px; }
  .wu-h { font:800 10.5px/1.2 system-ui; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); margin:12px 2px 7px; }
  .wu-h:first-child { margin-top:4px; }
  .wu-h span { font-weight:600; letter-spacing:0; text-transform:none; }
  .wu-row { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; text-align:left;
    background:#fff; border:1px solid var(--line); border-radius:10px; padding:11px 13px; margin-bottom:7px; cursor:pointer; }
  .wu-row:active { transform:translateY(1px); }
  .wu-move { font:600 13.5px system-ui; color:var(--ink); }
  .wu-dose { font:800 12.5px system-ui; color:var(--green-700); white-space:nowrap; }
  .wu-row.done { opacity:.5; background:#f3f7f4; }
  .wu-row.done .wu-move { text-decoration:line-through; }
  .wu-row.primer { background:linear-gradient(160deg,#0f2417,#14532d); border-color:#0f2417; }
  .wu-row.primer .wu-move { color:#fff; font-weight:800; }
  .wu-row.primer .wu-dose { color:#7ef0a8; }
  .wu-row.primer.done { opacity:.55; }
  .wu-note { font-size:12.5px; color:var(--muted); line-height:1.45; margin:-1px 2px 6px; }
  .wu-note.caution { color:#8a6d1f; background:#fef7e6; border:1px solid #f0e3b8; border-radius:8px; padding:8px 10px; margin-top:4px; }
  /* Rest-timer pill */
  .rest-pill { position:fixed; left:50%; transform:translateX(-50%); bottom:78px; z-index:75; display:flex; align-items:center; gap:10px;
    background:#11643a; color:#fff; border-radius:999px; padding:9px 9px 9px 16px; box-shadow:0 8px 24px rgba(8,40,22,.42); }
  .rest-pill .rp-label { font-size:12.8px; font-weight:700; opacity:.85; white-space:nowrap; flex:0 0 auto; }
  .rest-pill .rp-btn { white-space:nowrap; flex:0 0 auto; }
  .rest-pill .rp-time { font-size:17px; font-weight:800; font-variant-numeric:tabular-nums; min-width:48px; text-align:center; }
  .rest-pill .rp-btn { background:rgba(255,255,255,.18); border:0; color:#fff; border-radius:999px; padding:7px 12px; font:700 12px system-ui; cursor:pointer; }

  /* ===== Lift page (workout-first) ===== */
  #view-plan > .card { display:flex; flex-direction:column; }
  #view-plan .plan-intro { order:0; }
  #view-plan #phaseDetail { order:1; }
  #view-plan .tracker-fold { order:3; }
  #view-plan.started .plan-intro { display:none; }
  /* Once training, the brochure nutrition fold is redundant with the Fuel tab. */
  #view-plan.started .tracker-fold { display:none; }
  /* Equipment editor nested inside the Plan & settings fold. */
  .settings-equip { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
  .seteq-label { font-size:13px; font-weight:800; color:var(--green-800); margin-bottom:10px; }
  .seteq-label small { font-weight:500; color:var(--muted); margin-left:4px; }
  /* Premium dark session hero — anchors the Train tab like the dashboard Score. */
  .lift-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    margin:2px 0 14px; padding:18px 18px 17px; color:#eafff1;
    background:radial-gradient(135% 135% at 8% 0%,#1a5031 0%,#0d2216 72%);
    border:1px solid rgba(255,255,255,.06); border-radius:18px; box-shadow:0 12px 28px rgba(8,40,22,.24); }
  .lift-hero .lh-l { flex:1; min-width:0; }
  .lift-hero .lh-week { font-size:12px; font-weight:800; letter-spacing:1.4px; color:#9fe7bb; }
  .lift-hero .lh-name { margin:5px 0 4px; font:900 26px/1.04 system-ui; color:#fff; letter-spacing:-.6px; }
  .lift-hero .lh-sub { font-size:13px; color:#bfe3cd; }
  .lift-hero .lh-done { color:#7ef0a8; font-weight:800; }
  .lift-hero .lh-dot { opacity:.45; margin:0 3px; }
  .lift-hero .lh-prog { margin-top:12px; height:5px; max-width:240px; background:rgba(255,255,255,.15); border-radius:999px; overflow:hidden; }
  .lift-hero .lh-prog > span { display:block; height:100%; background:linear-gradient(90deg,#34d27b,#7ef0a8); border-radius:999px; box-shadow:0 0 8px rgba(126,240,168,.45); }
  .lift-hero .lh-mode { flex:0 0 auto; font-size:12px; font-weight:800; padding:6px 12px; border-radius:999px; }
  .lift-hero .lh-mode.build { background:rgba(126,240,168,.16); color:#7ef0a8; }
  .lift-hero .lh-mode.retain { background:rgba(255,196,120,.16); color:#ffce8a; }
  .settings-body { padding-top:8px; }
  .settings-body .set-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
  .settings-body .set-lbl { font-size:13px; color:var(--ink); font-weight:600; }
  .settings-body .seg.sm { display:inline-flex; gap:6px; }
  .settings-body .seg.sm button { padding:8px 16px; }
  .settings-body .mode-banner { margin:0 0 13px; }
  .settings-body .exlegend { margin:0 0 14px; }
  .settings-body .set-jump { display:flex; gap:8px; margin-bottom:13px; }
  .settings-body .set-jump select { flex:1; padding:9px 10px; }
  .day-focus { margin-top:2px; }

  /* Swap picker modal */
  .swap-modal { position:fixed; inset:0; z-index:340; background:rgba(8,24,15,.55); display:flex; align-items:flex-end; justify-content:center; }
  .swap-card { background:#f7faf7; width:100%; max-width:520px; border-radius:20px 20px 0 0; max-height:82vh; overflow-y:auto; }
  .swap-head { position:sticky; top:0; background:linear-gradient(160deg,#0f2417,#14532d); color:#fff; padding:15px 18px;
    display:flex; align-items:center; justify-content:space-between; font-size:16px; font-weight:700; }
  .swap-x { background:rgba(255,255,255,.16); border:0; color:#fff; width:38px; height:38px; border-radius:50%; font-size:17px; cursor:pointer; flex:0 0 auto; }
  .swap-body { padding:14px 16px 22px; }
  .swap-sub { font-size:13px; color:var(--muted); margin-bottom:12px; line-height:1.45; }
  .swap-opt { display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left; background:#fff;
    border:1.5px solid var(--line); border-radius:12px; padding:14px 15px; margin-bottom:9px; font:700 14.5px system-ui; color:var(--ink); cursor:pointer; }
  .swap-opt:active { transform:translateY(1px); }
  .swap-opt.cur { border-color:#11643a; background:#eef7f0; color:var(--green-800); }
  .swap-opt.reset { font-weight:600; color:var(--muted); }
  .swap-now { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--green-700); }
  .add-search { width:100%; box-sizing:border-box; border:1.5px solid var(--line); border-radius:12px; padding:13px 15px;
    font:600 16px system-ui; margin-bottom:14px; position:sticky; top:0; background:#fff; z-index:1; }
  .add-search:focus { outline:none; border-color:#11643a; }
  .add-group { font:800 11px system-ui; text-transform:uppercase; letter-spacing:.7px; color:var(--muted); margin:14px 2px 8px; }
  .swap-coach { width:100%; margin-top:6px; background:#eef7f0; border:1px solid #cfe9d8; color:var(--green-700);
    border-radius:12px; padding:13px; font:700 13.5px system-ui; cursor:pointer; }
  /* Full-width stacked buttons — a right-aligned half-width pill read as broken on mobile. */
  .day-foot { padding:11px 15px 13px; border-top:1px solid var(--line); display:flex; flex-direction:column; align-items:stretch; gap:8px; }
  .logbtn { display:flex; justify-content:center; align-items:center; gap:6px; width:100%; min-height:44px; border:none; cursor:pointer; font-weight:700; font-size:13px;
    border-radius:10px; padding:12px 16px; background:var(--green-600); color:#fff; transition:all .15s; }
  .logbtn:hover { background:var(--green-700); }
  .logbtn.logged { background:#eef7f0; color:var(--green-700); border:1px solid #cfe9d8; }
  .logbtn.reset { background:none; color:var(--muted); border:1px solid var(--line); font-weight:700; }
  .logbtn.reset.arm { border-color:#d9534f; color:#c0392b; }

  .modal-back { position:fixed; inset:0; background:rgba(8,24,15,.55); z-index:100;
    display:flex; align-items:flex-end; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s; }
  .modal-back.open { opacity:1; pointer-events:auto; }
  .modal { background:var(--paper); width:100%; max-width:560px; max-height:94vh; border-radius:20px 20px 0 0;
    overflow:hidden; display:flex; flex-direction:column; transform:translateY(24px); transition:transform .22s; }
  @media(min-width:560px){ .modal-back{ align-items:center; } .modal{ border-radius:20px; max-height:90vh; } }
  .modal-back.open .modal { transform:none; }
  .modal-head { background:linear-gradient(160deg,var(--green-800),var(--green-600)); color:#fff; padding:16px 18px;
    display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
  .modal-head h3 { margin:0; font-size:17px; letter-spacing:-.3px; }
  .modal-head .mh-sub { font-size:12.8px; opacity:.9; margin-top:3px; }
  .modal-close { background:rgba(255,255,255,.2); border:none; color:#fff; width:34px; height:34px; border-radius:50%;
    font-size:19px; line-height:1; cursor:pointer; flex-shrink:0; }
  .modal-body { overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 16px 18px; }
  .logx { background:#fff; border:1px solid var(--line); border-radius:14px; padding:13px 14px; margin-bottom:12px; box-shadow: var(--shadow-sm); }
  .logx-name { font-weight:700; font-size:14.5px; color:#243a2c; }
  .logx-target { font-size:12.5px; color:var(--muted); }
  .logx-last { font-size:12px; color:var(--green-700); margin:6px 0 9px; background:#f1fdf4; padding:5px 9px; border-radius:7px; display:inline-block; }
  .setlabels { display:grid; grid-template-columns:32px 1fr 1fr 44px; gap:8px; font-size:10.5px; text-transform:uppercase;
    letter-spacing:.4px; color:var(--muted); margin:8px 0 5px; padding:0 2px; font-weight:700; }
  .setrow { display:grid; grid-template-columns:32px 1fr 1fr 44px; gap:8px; align-items:center; margin-bottom:7px; }
  .setrow .snum { font-size:13px; font-weight:800; color:var(--muted); text-align:center; }
  .setrow input { padding:11px 6px; font-size:16px; text-align:center; border-radius:9px; }
  .setrow .donebtn { width:44px; height:44px; border-radius:10px; border:1.5px solid var(--line); background:#fff;
    font-size:17px; cursor:pointer; color:#c2cabb; }
  .setrow .donebtn.on { background:var(--green-600); border-color:var(--green-600); color:#fff; }
  .setrow.is-done input { background:#f1fdf4; border-color:#cfe9d8; }
  .addset { background:none; border:1.5px dashed var(--line); border-radius:9px; padding:9px; width:100%; font-size:12.8px;
    color:var(--muted); cursor:pointer; font-weight:700; margin-top:3px; }
  .logx-nudge { font-size:12.5px; font-weight:800; color:#0f5a34; background:#e8f7ee; border:1px solid #bfe3cd;
    border-radius:7px; padding:6px 9px; margin:6px 0 9px; }
  .logx-foot { display:flex; gap:8px; margin-top:3px; }
  .logx-foot .addset { margin-top:0; flex:1; }
  .filllast { background:none; border:1.5px dashed #bfe3cd; border-radius:9px; padding:9px 10px; font-size:12.8px;
    color:var(--green-800); cursor:pointer; font-weight:700; white-space:nowrap; }
  .modal-foot { padding:12px 16px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fff;
    display:flex; gap:10px; }
  .modal-foot button { flex:1; background:var(--green-700); color:#fff; border:none; border-radius:12px; padding:15px;
    font-size:15px; font-weight:800; cursor:pointer; }
  .modal-foot button.ghost { flex:0 0 auto; background:#eef3ee; color:var(--muted); padding:15px 18px; }

  /* progress */
  .prog-row { display:grid; grid-template-columns:1fr 1fr auto; gap:9px; align-items:end; margin-bottom:12px; }
  .prog-row.three { grid-template-columns:1fr 1fr 1fr; }
  .prog-row label { font-size:12px; font-weight:700; color:#243a2c; }
  .prog-row .addp { background:var(--green-600); color:#fff; border:none; border-radius:10px; padding:13px 16px; font-weight:800; cursor:pointer; font-size:14px; }
  .addp-wide { display:block; width:100%; margin:0 0 12px; background:var(--green-600); color:#fff; border:none; border-radius:10px; padding:13px; font-weight:800; cursor:pointer; font-size:14px; }
  .addp-wide:active { transform:translateY(1px); }
  .prog-list { font-size:13px; }
  .prog-list .pe { display:flex; justify-content:space-between; padding:7px 0; border-top:1px dashed var(--line); color:#2b3a30; }
  .prog-list .pe b { color:var(--green-800); }
  .prog-empty { font-size:13px; color:var(--muted); }
  .spark { display:block; margin:6px 0 4px; }

  /* ===== Mobile bottom tab bar (app-like nav) ===== */
  .mobile-tabbar { display: none; }
  @media (max-width: 760px) {
    .mobile-tabbar {
      display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
      background: rgba(255,255,255,.92); backdrop-filter: blur(10px);
      border-top: 1px solid var(--line); box-shadow: 0 -4px 20px rgba(11,61,34,.10);
      padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
    }
    .mobile-tabbar button {
      flex: 1; border: none; background: transparent; cursor: pointer;
      display: flex; flex-direction: column; align-items: center; gap: 3px;
      padding: 7px 4px; border-radius: 12px; color: var(--muted);
      font-size: 12px; font-weight: 700; transition: all .15s;
    }
    .mobile-tabbar button .ic { font-size: 19px; line-height: 1; }
    .mobile-tabbar button.active { color: var(--green-700); background: #eef7f0; }
    body { padding-bottom: 62px; }
    .wrap { padding-bottom: 24px; }
    .tabs { display: none; }            /* replaced by the bottom bar on phones */
  }

  /* ===== Phone polish: bigger tap targets ===== */
  @media (max-width: 600px) {
    .wrap { padding: 16px 14px 70px; }
    .appbar-in { height: 52px; padding: 0 15px; }
    .wordmark { font-size: 18px; }
    .card { padding: 20px 16px 22px; border-radius: 16px; }
    .seg button { padding: 12px 8px; min-height: 44px; }       /* ≥44px tap target */
    .goal { padding: 14px; }
    .eq-chip { padding: 10px 14px; }
    .equip-presets button { padding: 9px 14px; }
    .tabs button { padding: 11px 18px; }
    .meal-seg button, .freqbar .seg button { min-height: 38px; }
    .sched-time { flex-basis: 64px; }
    .result-hero .kcal { font-size: 48px; }
    input[type="number"], select { padding: 14px 13px; }      /* roomier fields */
  }

  /* ===== Coach tips: per-tab "what is this page" teaching banners ===== */
  .tip{ display:flex; gap:11px; align-items:flex-start; position:relative;
    margin:0 0 16px; padding:13px 40px 13px 14px; border-radius:14px;
    background:linear-gradient(165deg,#eef6ff,#e2eefc); border:1px solid #c8ddf6;
    box-shadow:0 4px 14px rgba(30,90,170,.08); animation:tipIn .35s ease both; }
  @keyframes tipIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
  .tip-ic{ font-size:20px; line-height:1.2; flex:0 0 auto; }
  .tip-tx{ flex:1 1 auto; min-width:0; }
  .tip-t{ font-weight:800; font-size:14.5px; color:#114; letter-spacing:-.01em; }
  .tip-b{ font-size:13px; line-height:1.5; color:#2b4763; margin-top:2px; }
  .tip-b b{ color:#143a63; }
  .tip-cta{ margin-top:10px; display:inline-flex; align-items:center; gap:6px;
    background:#1769c4; color:#fff; border:0; border-radius:10px;
    padding:9px 15px; font-weight:800; font-size:13px; cursor:pointer; min-height:40px;
    box-shadow:0 3px 9px rgba(23,105,196,.28); }
  .tip-cta:active{ transform:translateY(1px); }
  .tip-x{ position:absolute; top:5px; right:5px; width:36px; height:36px;
    border:0; background:transparent; color:#5b7596; font-size:19px; line-height:1;
    cursor:pointer; border-radius:8px; display:flex; align-items:center; justify-content:center; }
  .tip-x:hover{ background:rgba(40,90,160,.1); }
  /* sign-in flavored tip stands out a touch warmer */
  .tip.tip-signin{ background:linear-gradient(165deg,#fff6ea,#ffeed6); border-color:#f0d6ad; box-shadow:0 4px 14px rgba(184,120,30,.10); }
  .tip.tip-signin .tip-t{ color:#7a3f06; } .tip.tip-signin .tip-b{ color:#6b4a23; }
  .tip.tip-signin .tip-cta{ background:#e8923a; box-shadow:0 3px 9px rgba(232,146,58,.30); }
  /* install hint — green to read as "this is the app itself" */
  .tip.tip-install{ background:linear-gradient(165deg,#eaf7ee,#dcf0e2); border-color:#bfe0c8; box-shadow:0 4px 14px rgba(20,120,60,.09); }
  .tip.tip-install .tip-t{ color:#0f5a2e; } .tip.tip-install .tip-b{ color:#244a32; }

  /* ===== Shared "Log today" quick-add (Home + Stats) ===== */
  .qlog{ margin-top:13px; background:var(--card); border:1px solid var(--line); border-radius:14px;
    padding:14px 15px; box-shadow:var(--shadow-sm); }
  .qlog-h{ font-size:13px; font-weight:800; color:var(--green-800); margin-bottom:9px; }
  .qlog-row{ display:flex; gap:8px; }
  .qlog-row input{ flex:1; min-width:0; border:1.5px solid var(--line); border-radius:10px;
    padding:12px 10px; font-size:16px; background:var(--card); color:var(--ink); }
  .qlog-add{ display:block; width:100%; margin-top:8px; background:#11643a; color:#fff; border:0; border-radius:10px;
    padding:12px; font-weight:800; font-size:14.5px; cursor:pointer; min-height:44px; }
  .qlog-add:active{ transform:translateY(1px); }
  .qlog-hint{ font-size:13px; color:var(--muted); margin-top:8px; line-height:1.45; }
  .qlog-hint b{ color:var(--green-700); }

  /* ===== Progress narrative: Octane hub drill-ins, Season map, Sunday Scorecard ===== */
  button.ffp{ width:100%; border:0; background:none; padding:0; font:inherit; color:inherit; cursor:pointer; text-align:left; }
  .ffp-detail{ margin:4px 0 10px; padding:12px 13px; border-radius:12px; background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.1); }
  .ffp-detail .fd-tx{ font-size:13px; line-height:1.5; color:#cfe3d6; }
  .ffp-detail .fd-tx b{ color:#fff; }
  .ffp-detail .fd-act{ display:inline-block; margin-top:10px; border:0; border-radius:999px; background:#8be9ac; color:#0b2f1b;
    font-weight:800; font-size:13px; padding:8px 15px; cursor:pointer; }
  .ffp-detail .wkbars{ margin:8px 0 2px; }
  .fd-sparkrow{ display:flex; align-items:center; gap:10px; margin:8px 0 2px; }
  .fd-sparkrow .n{ font-size:12.5px; color:#cfe3d6; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pcard.season{ background:radial-gradient(130% 110% at 80% -10%, #14512f 0%, #0a2317 55%, #071710 100%);
    border-color:#1d5c38; color:#eafbef; }
  .pcard.season .pc-t{ color:#eafbef; }
  .season-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:6px -4px 0; padding:0 4px; }
  .season-leg{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
  .season-leg span{ font-size:11.5px; font-weight:700; color:#bfe9cd; display:inline-flex; align-items:center; gap:5px; }
  .season-leg i{ width:10px; height:10px; border-radius:3px; display:inline-block; }
  .season-foot{ margin-top:10px; font-size:12.8px; color:#9fd4b3; line-height:1.5; }
  .season-foot b{ color:#eafbef; }
  /* the Sunday Scorecard grid lives inside the dark season card — light-theme
     ink/line tokens would vanish there, so the season context re-colors it */
  .season .pc-sec{ color:#9fd4b3; border-top-color:rgba(255,255,255,.16); }
  .season .sc-grid{ border-top-color:rgba(255,255,255,.16); }
  .season .sc-row{ border-bottom-color:rgba(255,255,255,.12); }
  .season .sc-name, .season .sc-val{ color:#eafbef; }
  .season .sc-hole{ color:#9fd4b3; }
  .season .sc-chip.miss{ background:rgba(255,255,255,.08); color:#bfe9cd; border-color:rgba(255,255,255,.16); }
  .season .sc-share{ border-color:#8be9ac; color:#8be9ac; }
  .season .ff-term{ text-decoration-color:rgba(139,233,172,.6); }
  .sc-grid{ margin-top:10px; border-top:1px solid var(--line); }
  .sc-row{ display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--line); }
  .sc-hole{ flex:0 0 26px; font-weight:900; font-size:13px; color:var(--muted); }
  .sc-name{ flex:1; font-weight:700; font-size:13.5px; color:var(--ink); }
  .sc-val{ font-weight:900; font-size:14px; color:var(--ink); }
  .sc-chip{ flex:0 0 auto; min-width:52px; text-align:center; font-size:11.5px; font-weight:900; letter-spacing:.03em;
    border-radius:999px; padding:4px 9px; }
  .sc-chip.good{ background:#e9f8ee; color:#0f5a2e; border:1px solid #bfe0c8; }
  .sc-chip.mid{ background:#fff6e3; color:#8a5a08; border:1px solid #edd9a8; }
  .sc-chip.miss{ background:#f4f5f4; color:#7d8a80; border:1px solid #dde3de; }
  .sc-share{ display:block; width:100%; margin-top:12px; border:1.5px solid #16a34a; border-radius:12px; background:none;
    color:#0f5a2e; font-weight:800; font-size:13.5px; padding:11px; cursor:pointer; }
  .ev-grid{ display:grid; grid-template-columns:1fr 1.35fr; gap:9px; }
  @media (max-width:380px){ .ev-grid{ grid-template-columns:1fr; } }
  .ev-f{ display:block; }
  .ev-f span{ display:block; font-size:12px; font-weight:800; color:var(--muted); margin:0 0 5px 2px;
    text-transform:uppercase; letter-spacing:.05em; }
  .ev-f span em{ font-style:normal; text-transform:none; letter-spacing:0; font-weight:600; }
  .ev-f input{ width:100%; min-height:47px; }
  .ev-note{ margin:9px 0 0; font-size:13px; color:var(--muted); line-height:1.5; }
  .ev-note b{ color:var(--green-700); }
  .ev-clear{ margin-top:9px; border:1px solid var(--line); background:none; color:var(--muted); border-radius:10px;
    padding:9px 14px; font-weight:700; font-size:13px; cursor:pointer; }
  .swap-divide{ margin:12px 2px 7px; font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
    color:var(--muted); border-top:1px dashed var(--line); padding-top:10px; }
  .swap-opt.nogear{ opacity:.62; }
  .swap-need{ display:inline-block; margin-left:6px; font-size:11.5px; font-weight:700; color:#8a5a08;
    background:#fff6e3; border:1px solid #edd9a8; border-radius:999px; padding:2px 8px; }
  /* exercise history sheet */
  .xh-prs{ display:flex; gap:8px; margin:2px 0 12px; }
  .xh-pr{ flex:1; background:#f2f8f4; border:1px solid #d5e8db; border-radius:12px; padding:10px 8px; text-align:center; }
  .xh-pr .v{ font-size:18px; font-weight:900; color:#0f3d24; }
  .xh-pr .v small{ font-size:11px; color:#5b7a68; font-weight:700; margin-left:2px; }
  .xh-pr .k{ font-size:11px; color:#5b7a68; font-weight:700; margin-top:3px; line-height:1.35; }
  .xh-chart-h{ font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:2px 2px 4px; }
  .xh-list{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
  .xh-row{ background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
  .xh-row.live{ border-color:#8be9ac; }
  .xh-top{ display:flex; justify-content:space-between; gap:10px; font-size:12.5px; color:var(--muted); font-weight:700; }
  .xh-top em{ font-style:normal; color:#16a34a; font-weight:800; }
  .xh-e1 b{ color:var(--ink); }
  .xh-sets{ margin-top:5px; font-size:14px; font-weight:700; color:var(--ink); letter-spacing:.01em; }
  .xh-note{ margin-top:6px; font-size:12.5px; color:var(--muted); line-height:1.45; }
  button.lr{ width:100%; border:0; background:none; padding:0; font:inherit; color:inherit; cursor:pointer; text-align:left; }
  .pl-notes{ display:block; width:100%; margin-top:16px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12);
    border-radius:13px; color:#e9f5ec; font:600 14px/1.5 inherit; font-family:inherit; padding:12px 13px; resize:none; outline:none; }
  .pl-notes::placeholder{ color:#87a893; }
  /* fuel check-off */
  .fuel-sum{ margin:12px 0 4px; padding:15px; border-radius:14px; background:#f2f8f4; border:1px solid #d5e8db; }
  .fuel-sum.rated-on{ background:#e9f8ee; border-color:#bfe0c8; }
  .fuel-sum.rated-close{ background:#fff6e3; border-color:#edd9a8; }
  .fuel-sum.rated-off{ background:#fdf0ee; border-color:#eccfc9; }
  .fuel-sum-top{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
  .fuel-sum-t{ font-weight:900; font-size:14.5px; color:#123f28; }
  .fuel-streak{ font-size:12.5px; font-weight:800; color:#8a5a08; }
  .fuel-sum-line{ margin-top:6px; font-size:14.5px; line-height:1.5; color:#33564a; }
  .fuel-nums{ margin-top:7px; font-size:13.5px; color:#123f28; }
  .fuel-numbtn{ margin-top:8px; border:0; background:none; color:#16a34a; font-weight:800; font-size:12.5px;
    cursor:pointer; padding:6px 4px; margin-left:-4px; text-decoration:underline; text-underline-offset:2px; }
  .frate{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px dashed #d5e8db; }
  .frate-lbl{ font-size:12.5px; font-weight:700; color:#5b7a68; }
  .frate-chip{ border:1px solid #cfe0d5; background:#fff; border-radius:999px; padding:7px 12px;
    font-weight:800; font-size:12.5px; color:#33564a; cursor:pointer; min-height:34px; }
  .frate-chip.on{ border-color:#16a34a; background:#e9f8ee; color:#0f5a2e; }
  .fchk{ flex:0 0 auto; display:flex; flex-direction:column; gap:5px; }
  .fchk-b{ width:42px; height:34px; border-radius:10px; border:1.5px solid #cfe0d5; background:#fff;
    font-size:15px; font-weight:900; color:#5b7a68; cursor:pointer; }
  .fchk-b.on{ background:#16a34a; border-color:#16a34a; color:#fff; }
  .fchk-b.close.on{ background:#e8a33a; border-color:#e8a33a; }
  .sched-row.fdone .sched-name, .sched-row.fdone .sched-macros{ opacity:.62; }
  .sched-row.fdone .sched-name{ text-decoration:line-through; text-decoration-color:#9db8a5; text-decoration-thickness:1.5px; }

  /* ===== Today spine (Home) — one primary action + the day as a timeline ===== */
  .nu-card{ display:block; width:100%; text-align:left; position:relative; margin:0 0 14px; border:0; cursor:pointer;
    border-radius:18px; padding:17px 44px 17px 18px; color:#eafbef;
    background:linear-gradient(135deg,#134b2b,#0b2f1b); border:1px solid #1d5c38;
    box-shadow:0 10px 26px rgba(8,40,22,.30); }
  .nu-card.alt{ background:linear-gradient(135deg,#173a4e,#0d2230); border-color:#254b61; box-shadow:0 10px 26px rgba(10,30,45,.28); }
  .nu-card.rest{ background:linear-gradient(135deg,#2e4636,#18271e); border-color:#3c5a47; }
  .nu-kick{ font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#8fd6a8; margin-bottom:4px; }
  .nu-card.alt .nu-kick{ color:#8ec8e8; }
  .nu-title{ font-size:21px; font-weight:900; letter-spacing:-.02em; line-height:1.15; }
  .nu-sub{ margin-top:5px; font-size:13px; color:#b9dcc6; line-height:1.45; }
  .nu-card.alt .nu-sub{ color:#a9cfe4; }
  .nu-go{ position:absolute; right:15px; top:50%; transform:translateY(-50%); font-size:26px; color:#8be9ac; }
  .nu-card.alt .nu-go{ color:#8ec8e8; }
  .tl{ margin:2px 0 14px; }
  .tl-h{ font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); margin:0 2px 8px;
    display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .tl-fuelchip{ display:inline-flex; align-items:center; gap:5px; border:1px solid var(--line); background:var(--card);
    color:var(--green-700); font:800 11px system-ui; letter-spacing:.05em; border-radius:999px; padding:4px 10px; cursor:pointer; }
  .tl-fuelchip.full{ background:#eef7f0; border-color:#cfe9d8; }
  .tl-fuelchip:active{ transform:translateY(1px); }
  .tl-item{ display:flex; gap:0; align-items:stretch; }
  .tl-when{ flex:0 0 62px; text-align:right; padding:13px 10px 0 0; font-size:12px; font-weight:800; color:var(--muted); }
  .tl-rail{ flex:0 0 22px; position:relative; }
  .tl-rail::before{ content:""; position:absolute; left:10px; top:0; bottom:0; width:2px; background:var(--line); }
  .tl-item:first-of-type .tl-rail::before{ top:18px; }
  .tl-item:last-of-type .tl-rail::before{ bottom:auto; height:18px; }
  .tl-dot{ position:absolute; left:5px; top:16px; width:12px; height:12px; border-radius:50%;
    background:var(--card); border:2.5px solid #b9cdbf; }
  .tl-item.done .tl-dot{ background:#16a34a; border-color:#16a34a; }
  .tl-item.now .tl-dot{ border-color:#16a34a; box-shadow:0 0 0 4px rgba(34,197,94,.18); }
  .tl-card{ flex:1; min-width:0; margin:4px 0; background:var(--card); border:1px solid var(--line); border-radius:13px;
    padding:11px 13px; display:flex; align-items:center; gap:10px; text-align:left; cursor:pointer; color:var(--ink); }
  .tl-card:disabled{ cursor:default; }
  .tl-item.done .tl-card{ opacity:.72; }
  .tl-ic{ font-size:18px; flex:0 0 auto; }
  .tl-tx{ flex:1; min-width:0; }
  .tl-t{ display:block; font-weight:800; font-size:14px; letter-spacing:-.01em; }
  .tl-s{ display:block; }
  .tl-item.done .tl-t{ text-decoration:line-through; text-decoration-color:#9db8a5; text-decoration-thickness:1.5px; }
  .tl-s{ font-size:12.5px; color:var(--muted); margin-top:1px; line-height:1.4; }
  .tl-go{ color:#9db8a5; font-size:17px; flex:0 0 auto; }
  /* Calm pass: completed items fold into one pill; non-next items go slim. */
  .tl-donepill{ display:flex; align-items:center; width:100%; text-align:left; background:transparent;
    border:1.5px dashed var(--line); color:var(--green-700); border-radius:11px; padding:9px 13px;
    font:800 12.5px system-ui; cursor:pointer; margin:0 0 6px; }
  .tl-donepill span{ margin-left:auto; color:var(--muted); font-weight:600; text-transform:uppercase;
    letter-spacing:.06em; font-size:10.5px; }
  .tl-donepill:active{ transform:translateY(1px); }
  .tl-item.slim .tl-card{ padding:7px 11px; margin:3px 0; border-radius:11px; }
  .tl-item.slim .tl-ic{ font-size:14px; }
  .tl-item.slim .tl-t{ font-size:13px; font-weight:600; letter-spacing:0; }
  .tl-item.slim .tl-when{ padding-top:11px; }
  .tl-item.slim .tl-dot{ top:14px; width:9px; height:9px; left:6px; }
  .tl-item.slim .tl-go{ font-size:15px; }
  /* Reorder sheet rows */
  .ord-row{ display:flex; align-items:center; gap:10px; background:#fff; border:1.5px solid var(--line);
    border-radius:12px; padding:12px 12px; margin-bottom:6px; font:700 14px system-ui; color:var(--ink);
    touch-action:none; user-select:none; -webkit-user-select:none; }
  .ord-row.dragging{ opacity:.92; box-shadow:0 8px 22px rgba(0,0,0,.22); position:relative; z-index:5; }
  .ord-row.done .ord-n{ opacity:.55; text-decoration:line-through; }
  .ord-row .ord-n em{ font-style:normal; font-size:11px; color:var(--green-700); text-decoration:none; margin-left:4px; }
  .ord-grab{ color:var(--muted); font-size:15px; flex:0 0 auto; cursor:grab; }
  .ord-n{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ord-btns{ display:flex; gap:6px; flex:0 0 auto; }
  .ord-btns button{ width:38px; height:38px; border-radius:10px; border:1.5px solid var(--line); background:#fff;
    font-size:16px; font-weight:800; color:var(--ink); cursor:pointer; }
  /* Add/remove set controls in the player */
  .pl-setops{ display:flex; align-items:center; gap:8px; margin-top:10px; flex-wrap:wrap; }
  .pl-setops button{ border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.07); color:#dff1e4;
    border-radius:10px; padding:9px 13px; font:800 12.5px system-ui; cursor:pointer; min-height:40px; }
  .pl-setops-hint{ flex-basis:100%; font-size:11px; color:#7f9c8b; }
  /* While the on-screen keyboard is up, the pinned bars hide (and can't strand mid-air). */
  body.ff-kb .mobile-tabbar, body.ff-kb .ff-fab, body.ff-kb .pl-pausebar{ display:none !important; }
  .pl-pausebar{ position:fixed; left:10px; right:10px; bottom:calc(66px + env(safe-area-inset-bottom)); z-index:46;
    display:flex; align-items:center; gap:9px; border:0; cursor:pointer; text-align:left;
    background:linear-gradient(160deg,#0f2417,#14532d); color:#dff1e4; border-radius:14px;
    padding:11px 14px; box-shadow:0 8px 24px rgba(0,0,0,.35); font:600 13px system-ui; }
  .pl-pausebar b{ color:#fff; }
  .pl-pausebar .pl-pb-ic{ font-size:15px; flex:0 0 auto; }
  .pl-pausebar .pl-pb-tx{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pl-pausebar .pl-pb-go{ flex:0 0 auto; display:inline-flex; align-items:center; gap:4px;
    background:#22b45e; color:#08150c; font-weight:900; font-size:12px; border-radius:999px; padding:6px 12px; }
  @media (min-width:761px){ .pl-pausebar{ bottom:14px; max-width:560px; left:calc(50% - 280px); right:auto; width:560px; } }
  body.ff-plpaused .ff-fab{ bottom:calc(126px + env(safe-area-inset-bottom)); }
  @media (min-width:761px){ body.ff-plpaused .ff-fab{ bottom:74px; } }
  /* Labeled, not a mystery circle: the one log door. */
  .ff-fab{ position:fixed; right:16px; bottom:calc(76px + env(safe-area-inset-bottom)); z-index:45;
    display:inline-flex; align-items:center; gap:6px; height:54px; padding:0 20px 0 16px; border-radius:999px;
    border:0; cursor:pointer;
    background:linear-gradient(150deg,#22b45e,#11643a); color:#fff; font-size:26px; line-height:1; font-weight:600;
    box-shadow:0 8px 22px rgba(10,80,40,.42); }
  .ff-fab-lbl{ font:800 15px system-ui; letter-spacing:.01em; }
  .ff-fab:active{ transform:scale(.94); }
  @media (min-width:761px){ .ff-fab{ bottom:24px; } }
  .qsheet{ position:fixed; inset:0; z-index:210; background:rgba(8,20,13,.55); display:flex; align-items:flex-end; }
  .qsheet-card{ width:100%; max-width:760px; margin:0 auto; background:var(--card); border-radius:20px 20px 0 0;
    padding:8px 16px calc(16px + env(safe-area-inset-bottom)); box-shadow:0 -12px 40px rgba(0,0,0,.28); }
  .qsheet-grab{ width:44px; height:5px; border-radius:99px; background:var(--line); margin:4px auto 10px; }
  .qsheet-h{ font-weight:900; font-size:16px; color:var(--ink); margin:0 0 2px; }
  .qsheet-acts{ display:flex; flex-direction:column; gap:8px; margin-top:12px; }
  /* Glossary: any invented term is tappable — dotted underline is the tell. */
  .ff-term{ text-decoration:underline dotted; text-decoration-color:#7cb08d; text-underline-offset:3px; cursor:pointer; }
  .term-one{ display:flex; gap:12px; align-items:flex-start; padding:10px 2px 4px; }
  .term-one.sm{ border-bottom:1px solid var(--line); padding:10px 2px; }
  .term-one.sm:last-of-type{ border-bottom:0; }
  .term-ic{ font-size:22px; flex:0 0 auto; }
  .term-one.sm .term-ic{ font-size:17px; }
  .term-tx{ min-width:0; }
  .term-t{ font-weight:900; font-size:15.5px; color:var(--green-800); margin-bottom:3px; }
  .term-one.sm .term-t{ font-size:13.5px; margin-bottom:1px; }
  .term-d{ font-size:13.5px; color:var(--muted); line-height:1.55; }
  .term-one.sm .term-d{ font-size:12.5px; line-height:1.45; }
  .term-lead{ margin:2px 2px 10px; font-size:13px; color:var(--muted); line-height:1.5; }
  .term-all{ display:block; width:100%; margin-top:12px; border:1.5px dashed var(--line); background:transparent;
    color:var(--green-700); border-radius:12px; padding:11px; font:800 13px system-ui; cursor:pointer; }
  #termSheet .qsheet-card{ max-height:78vh; overflow-y:auto; }
  /* The loop — the whole system in one picture (light sheets + dark onboarding). */
  .ff-loop{ margin:6px 0 10px; }
  .ffl-step{ display:flex; align-items:center; gap:11px; background:var(--paper); border:1px solid var(--line);
    border-radius:12px; padding:9px 13px; }
  .ffl-ic{ font-size:18px; }
  .ffl-tx b{ display:block; font-size:14px; color:var(--green-800); }
  .ffl-tx span{ display:block; font-size:12px; color:var(--muted); }
  .ffl-arr{ text-align:center; color:#9db8a5; font-size:13px; line-height:1.1; margin:1px 0; }
  .ffl-back{ text-align:center; font:800 12px system-ui; color:var(--green-700); margin-top:7px;
    text-transform:uppercase; letter-spacing:.07em; }
  .ob .ffl-step{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); }
  .ob .ffl-tx b{ color:#fff; }
  .ob .ffl-tx span{ color:#9ccfb0; }
  .ob .ffl-arr{ color:#7ea98c; }
  .ob .ffl-back{ color:#8be9ac; }
  .ob-loophead{ font:800 12px system-ui; letter-spacing:.07em; text-transform:uppercase; color:#8be9ac; margin:14px 0 7px; }
  .qsheet-act{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; border:1px solid var(--line);
    background:var(--paper); border-radius:13px; padding:13px 14px; font-weight:800; font-size:14.5px; color:var(--ink); cursor:pointer; }
  .qsheet-act .qa-sub{ display:block; font-weight:600; font-size:12.5px; color:var(--muted); margin-top:1px; }
  .qsheet-act .qa-go{ margin-left:auto; color:#9db8a5; font-size:17px; }

  /* ===== Workout Player — full-screen guided session. Always dark: it's a focus
     mode (gym lighting, one thing at a time), identical in both themes. ===== */
  .pl-start{ display:block; width:100%; margin:0 0 12px; border:0; border-radius:16px; cursor:pointer;
    background:linear-gradient(135deg,#134b2b,#0b2f1b); color:#eafbef; text-align:left;
    padding:15px 17px; box-shadow:0 8px 22px rgba(8,40,22,.28); border:1px solid #1d5c38; }
  .pl-start b{ font-size:16.5px; font-weight:900; letter-spacing:-.01em; }
  .pl-start .pls-sub{ display:block; margin-top:3px; font-size:12.8px; color:#9fd4b3; font-weight:600; }
  .pl-start .pls-go{ float:right; font-size:22px; color:#8be9ac; line-height:1.4; }
  .pl-root{ position:fixed; inset:0; z-index:300; display:flex; flex-direction:column;
    background:radial-gradient(120% 90% at 80% -10%, #123a24 0%, #0a1f14 55%, #060f0a 100%);
    color:#e9f5ec; }
  .pl-top{ padding:calc(10px + env(safe-area-inset-top)) 16px 10px; flex:0 0 auto; }
  .pl-toprow{ display:flex; align-items:center; gap:10px; }
  .pl-x{ width:38px; height:38px; border-radius:50%; border:0; background:rgba(255,255,255,.12); color:#fff;
    font-size:18px; cursor:pointer; flex:0 0 auto; }
  .pl-headtx{ flex:1; min-width:0; }
  .pl-title{ font-weight:900; font-size:16px; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pl-kick{ font-size:12px; font-weight:800; letter-spacing:.08em; color:#79d49b; text-transform:uppercase; }
  .pl-dots{ display:flex; gap:5px; margin-top:12px; }
  .pl-dot{ flex:1; height:4px; border-radius:99px; background:rgba(255,255,255,.14); }
  .pl-dot.done{ background:#3fbf77; }
  .pl-dot.cur{ background:#8be9ac; box-shadow:0 0 8px rgba(139,233,172,.5); }
  .pl-body{ flex:1 1 auto; overflow-y:auto; padding:14px 16px 22px; -webkit-overflow-scrolling:touch; }
  .pl-skick{ font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#79d49b; }
  .pl-exname{ font-size:26px; font-weight:900; letter-spacing:-.02em; line-height:1.12; margin:4px 0 2px; }
  .pl-target{ display:inline-block; margin:6px 8px 2px 0; background:rgba(255,255,255,.1); padding:5px 12px;
    border-radius:999px; font-weight:800; font-size:13.5px; }
  .pl-target.dim{ background:rgba(255,255,255,.05); color:#9fc4ac; font-weight:700; }
  .pl-presc{ margin:10px 0 2px; font-size:14px; color:#bfe9cd; }
  .pl-presc b{ color:#8be9ac; font-size:18px; }
  .pl-cue{ margin:8px 0 0; font-size:13px; color:#9fc4ac; line-height:1.55; }
  .pl-acts{ display:flex; gap:8px; margin:12px 0 0; }
  .pl-acts button{ border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.08); color:#dff1e4;
    border-radius:999px; padding:9px 15px; font-weight:800; font-size:13px; cursor:pointer; min-height:38px; }
  .pl-acts button.on{ background:rgba(139,233,172,.18); border-color:#3fbf77; color:#bff2d2; }
  .pl-whybox{ margin:12px 0 0; padding:13px 14px; border-radius:14px; background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.1); font-size:13.5px; line-height:1.6; color:#cfe3d6; }
  .pl-whybox b{ color:#fff; }
  .pl-whybox .pl-howto{ display:inline-block; margin-top:10px; border:0; border-radius:999px; background:#8be9ac;
    color:#0b2f1b; font-weight:800; font-size:13px; padding:8px 15px; cursor:pointer; }
  .pl-sets{ margin-top:14px; display:flex; flex-direction:column; gap:10px; }
  .pl-set{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.09); border-radius:16px; padding:10px 12px; }
  .pl-set.done{ border-color:#2f9e5d; background:rgba(47,158,93,.14); }
  .pl-set-head{ display:flex; justify-content:space-between; font-size:12px; color:#9fc4ac; margin-bottom:7px; font-weight:700; }
  .pl-set-row{ display:flex; align-items:center; gap:8px; }
  .pl-stp{ flex:1.25; display:flex; align-items:center; gap:5px; background:rgba(0,0,0,.22); border-radius:12px; padding:2px; }
  .pl-stp.reps{ flex:1; }
  .pl-stp button{ width:40px; height:44px; border-radius:10px; border:0; background:rgba(255,255,255,.1); color:#fff;
    font-size:19px; font-weight:800; cursor:pointer; flex:0 0 auto; }
  .pl-stp button:active{ background:rgba(255,255,255,.22); }
  .pl-stp input{ flex:1; min-width:0; width:100%; text-align:center; font-size:20px; font-weight:900; background:transparent;
    border:0; color:#fff; padding:6px 0; outline:none; }
  .pl-check{ width:52px; height:48px; border-radius:12px; border:0; background:rgba(255,255,255,.12); color:#fff;
    font-size:19px; cursor:pointer; flex:0 0 auto; }
  .pl-check.on{ background:#2f9e5d; }
  .pl-plates{ margin-top:7px; font-size:12.8px; color:#9fc4ac; }
  .pl-list{ display:flex; flex-direction:column; gap:9px; margin-top:12px; }
  .pl-item{ display:flex; justify-content:space-between; align-items:center; gap:10px; width:100%; text-align:left;
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:14px;
    font-weight:700; font-size:15px; color:#e9f5ec; cursor:pointer; }
  .pl-item.done{ background:rgba(47,158,93,.16); border-color:#2f9e5d; }
  .pl-item .dose{ color:#9fc4ac; font-weight:800; font-size:13px; flex:0 0 auto; }
  .pl-note{ margin-top:12px; font-size:12.8px; color:#9fc4ac; line-height:1.55; }
  .pl-restbar{ flex:0 0 auto; padding:0 16px 8px; }
  .pl-rest-in{ background:rgba(255,255,255,.08); border-radius:14px; padding:10px 14px; display:flex; align-items:center; gap:12px; }
  .pl-rest-time{ font-size:22px; font-weight:900; min-width:64px; }
  .pl-rest-track{ flex:1; height:6px; border-radius:99px; background:rgba(255,255,255,.13); overflow:hidden; }
  .pl-rest-fill{ height:100%; background:#8be9ac; transition:width .25s linear; }
  .pl-rest-skip{ border:0; background:rgba(255,255,255,.14); color:#fff; border-radius:10px; padding:9px 13px; font-weight:800; cursor:pointer; }
  .pl-nav{ flex:0 0 auto; display:flex; gap:10px; padding:10px 16px calc(12px + env(safe-area-inset-bottom)); }
  .pl-nav button{ min-height:52px; border-radius:14px; border:0; font-weight:900; font-size:15.5px; cursor:pointer; }
  .pl-prev{ background:rgba(255,255,255,.1); color:#dff1e4; flex:0 0 30%; }
  .pl-next{ background:#8be9ac; color:#0b2f1b; flex:1; }
  .pl-recap{ text-align:center; padding:12px 0; }
  .pl-recap-kick{ font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#79d49b; }
  .pl-recap-big{ font-size:40px; font-weight:900; letter-spacing:-.02em; margin:4px 0 2px; }
  .pl-statrow{ display:flex; gap:10px; margin:18px 0 6px; }
  .pl-stat{ flex:1; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.09); border-radius:14px; padding:13px 8px; }
  .pl-stat .v{ font-size:20px; font-weight:900; }
  .pl-stat .k{ font-size:12px; color:#9fc4ac; margin-top:2px; }
  .pl-pr{ margin:10px 4px 0; display:inline-block; padding:8px 16px; border-radius:999px;
    background:linear-gradient(90deg,#f59e0b,#ef4444); color:#fff; font-weight:900; font-size:14px;
    box-shadow:0 4px 16px rgba(239,68,68,.35); }
  .pl-first{ margin:10px 4px 0; display:inline-block; padding:8px 16px; border-radius:999px;
    background:rgba(255,255,255,.1); color:#cfe9d8; font-weight:800; font-size:13px; }
  .pl-share{ display:block; width:100%; margin-top:16px; border:1.5px solid #8be9ac; border-radius:13px;
    background:transparent; color:#8be9ac; font-weight:800; font-size:14.5px; padding:13px; cursor:pointer; }

  /* ===== Speed Test Day — the biweekly testing ritual ===== */
  .stest-card{ margin:0 0 14px; padding:13px 15px; border-radius:14px;
    background:#f2f8f4; border:1px solid #d5e8db; color:#33564a; font-size:13px; line-height:1.5; }
  .stest-card.due{ background:linear-gradient(160deg,#0d3320,#15502f); border-color:#1d5c38;
    color:#eafbef; box-shadow:0 6px 18px rgba(10,60,30,.22); }
  .stest-t{ font-weight:900; font-size:15.5px; letter-spacing:-.01em; margin-bottom:4px; }
  .stest-b b{ color:inherit; }
  .stest-go{ display:block; width:100%; margin-top:11px; border:0; border-radius:11px;
    background:#8be9ac; color:#0b2f1b; font-weight:900; font-size:14.5px; padding:12px 14px;
    cursor:pointer; min-height:44px; }
  .stest-go:active{ transform:translateY(1px); }
  .stest-go.sm{ width:auto; display:inline-block; margin-top:10px; padding:10px 16px; background:#16a34a; color:#fff; font-size:13.5px; }
  .stest-link{ border:0; background:none; color:#16a34a; font-weight:800; cursor:pointer; padding:8px 6px; margin:-8px -6px; font-size:13px; text-decoration:underline; text-underline-offset:2px; }
  .st-sec{ font-weight:800; font-size:14px; margin:14px 0 8px; color:#123f28; }
  .st-sec small{ font-weight:600; color:#5b7a68; }
  .st-swings{ display:flex; gap:8px; }
  .st-swings input{ flex:1; min-width:0; padding:13px 10px; border:1.5px solid #cfe0d5; border-radius:11px;
    font-size:16px; font-weight:700; text-align:center; }
  .st-best{ margin:12px 0 4px; padding:12px 14px; border-radius:12px; background:#eef7f1; border:1px solid #d5e8db;
    font-size:14px; color:#254d38; }
  .st-best b{ font-size:18px; }
  .st-save{ display:block; width:100%; margin-top:14px; border:0; border-radius:12px; background:#16a34a; color:#fff;
    font-weight:900; font-size:15px; padding:14px; cursor:pointer; min-height:48px; }
  .st-save:disabled{ opacity:.45; cursor:default; }
  .st-note{ font-size:13px; color:#5b7a68; margin-top:10px; line-height:1.5; }
  .st-result{ text-align:center; padding:6px 0 2px; }
  .st-res-kick{ font-size:12.8px; font-weight:800; letter-spacing:.08em; color:#4d7a5f; text-transform:uppercase; }
  .st-res-num{ font-size:52px; font-weight:900; letter-spacing:-.03em; color:#0d3320; line-height:1.05; }
  .st-res-num span{ font-size:20px; font-weight:700; color:#4d7a5f; margin-left:4px; }
  .st-pr{ margin:10px auto 0; display:inline-block; padding:7px 14px; border-radius:999px;
    background:linear-gradient(90deg,#f59e0b,#ef4444); color:#fff; font-weight:900; font-size:14px;
    box-shadow:0 4px 14px rgba(239,68,68,.3); }
  .st-gain{ margin-top:10px; font-size:14px; color:#254d38; line-height:1.55; }
  .st-gain b{ color:#0d3320; }
  .st-share{ display:block; width:100%; margin-top:14px; border:1.5px solid #16a34a; border-radius:12px;
    background:#fff; color:#0f5a2e; font-weight:800; font-size:14px; padding:12px; cursor:pointer; }
  .pc-test{ margin-top:10px; }

  /* ===== Mobility screen — 3-move self-test ===== */
  .mob-test{ margin:0 0 14px; padding:13px 14px; border-radius:13px; background:#f7fafc; border:1px solid #dde7ee; }
  .mob-t{ font-weight:800; font-size:14.5px; color:#123f5a; }
  .mob-d{ font-size:13px; color:#3d5a6e; line-height:1.55; margin:5px 0 10px; }
  .mob-d b{ color:#123f5a; }
  .mob-opts{ display:flex; gap:7px; }
  .mob-opts button{ flex:1; border:1.5px solid #cfdde8; border-radius:11px; background:#fff; padding:10px 6px;
    font-weight:800; font-size:13px; color:#38566b; cursor:pointer; min-height:42px; }
  .mob-opts button.on{ border-color:#16a34a; background:#e9f8ee; color:#0f5a2e; }
  .mob-save{ display:block; width:100%; margin-top:6px; border:0; border-radius:12px; background:#16a34a; color:#fff;
    font-weight:900; font-size:15px; padding:14px; cursor:pointer; min-height:48px; }
  .mob-save:disabled{ opacity:.45; cursor:default; }
  .mob-res{ text-align:center; padding:8px 0; }
  .mob-res-num{ font-size:46px; font-weight:900; color:#0d3320; }
  .mob-res-num span{ font-size:18px; color:#4d7a5f; font-weight:700; }
  .mob-flag.ok{ background:#eef7f1; border-color:#d5e8db; color:#254d38; }
  .mob-flag{ margin:10px 0 0; padding:10px 12px; border-radius:11px; background:#fff7e8; border:1px solid #f0dcb2;
    color:#6b4a10; font-size:13px; line-height:1.5; text-align:left; }
  .wu-row.from-screen .wu-move::after{ content:" · from your mobility screen"; font-size:12px; color:#b8860b; font-weight:700; }

  /* App, not document: block pinch-zoom and double-tap zoom (rapid stepper taps
     were zooming the page, which makes iOS float the fixed bottom bars while
     scrolling). Panning/scrolling unaffected; per-element touch-action rules
     (charts, sheet heads, reorder rows) still override locally. */
  html{ touch-action: pan-x pan-y; }
  button, input, select, textarea, a{ touch-action: manipulation; }

  /* ===== Display numerals — Barlow Condensed (OFL), self-hosted ~12KB subset =====
     This is a numbers product; hero figures get an instrumentation face instead
     of body-copy system-ui. Units and letters are in the subset too, so "83 mph"
     stays one voice. font-display:swap → numbers never block on the font. */
  @font-face{
    font-family:'FF Numeral';
    src:url('fonts/ffnum.woff2') format('woff2');
    font-weight:600; font-style:normal; font-display:swap;
  }
  .hero-dist, .ffscore-gauge .num, .pl-recap-big, .pl-stat .v, .pl-rest-time,
  .st-res-num, .mob-res-num, .twin .tgrams, .mm-g{
    font-family:'FF Numeral', system-ui, -apple-system, sans-serif;
    font-weight:600;
  }
  /* Condensed metrics: reset the negative tracking tuned for system-ui and
     bump sizes so the narrower face keeps its presence. */
  .hero-dist{ letter-spacing:-.5px; }
  .hero-dist b{ font-size:66px; }
  .ffscore-gauge .num{ letter-spacing:0; font-size:38px; }
  .pl-recap-big{ font-size:46px; }
  .pl-stat .v{ font-size:24px; }
  .pl-rest-time{ font-size:25px; }
  .st-res-num{ font-size:58px; letter-spacing:0; }
  .mob-res-num{ font-size:52px; }
  .twin .tgrams{ font-size:30px; }
  .mm-g{ font-size:31px; }

  /* ===== Icons — inline SVG chrome iconography (see src/js/app/006-icons.js) ===== */
  .ffi{ display:inline-block; vertical-align:-2.5px; flex:0 0 auto; }
  .ffi-purpose{ vertical-align:-3px; opacity:.85; }
  .mobile-tabbar button .ic svg{ display:block; margin:0 auto; }
  .ffscore-head h3 .ffi{ vertical-align:-2px; }

  /* ===== Scrubbable charts — crosshair + readout on the trend curves ===== */
  .pcwrap{ position:relative; touch-action:none; cursor:crosshair; }
  .pcwrap svg{ display:block; }
  .pc-cross{ position:absolute; top:2px; bottom:2px; width:1.5px; opacity:.45; pointer-events:none; }
  .pc-sdot{ position:absolute; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border-radius:50%;
    border:2px solid #fff; box-sizing:border-box; pointer-events:none; box-shadow:0 1px 4px rgba(0,0,0,.3); }
  .pc-tip{ position:absolute; top:0; transform:translate(-50%,-30%); background:#0f2417; color:#fff;
    font:600 11.5px system-ui; padding:4px 9px 5px; border-radius:8px; white-space:nowrap;
    pointer-events:none; box-shadow:0 3px 10px rgba(0,0,0,.25); z-index:3; }
  .pc-tip b{ font-family:'FF Numeral', system-ui, sans-serif; font-weight:600; font-size:14.5px; }
  .pc-tip span{ opacity:.75; margin-left:4px; }

  /* ===== Sheets — one drag physics for every overlay (see src/js/app/008-sheets.js) ===== */
  /* Grab affordance: the pill every native bottom sheet carries. Lives on the
     sticky heads so it never scrolls away. touch-action:none lets the drag
     controller own vertical gestures on the header without fighting scroll. */
  .swap-head, .modal-head, .qsheet-grab, .qsheet-h{ touch-action:none; }
  .swap-head, .modal-head{ cursor:grab; }
  .swap-head::after, .modal-head::after{
    content:""; position:absolute; top:7px; left:50%; width:44px; height:5px;
    margin-left:-22px; border-radius:99px; background:rgba(255,255,255,.38);
  }
  .swap-head, .modal-head{ position:sticky; top:0; z-index:2; }
  .swap-card, .modal{ will-change:transform; }

  /* ===== Motion system — entrances, physics, celebration (see src/js/app/007-motion.js) ===== */
  /* Tab switches cross-fade via the View Transitions API; keep it quick and quiet. */
  ::view-transition-old(root){ animation-duration:.16s; }
  ::view-transition-new(root){ animation-duration:.16s; }
  /* Every overlay arrives the same way: scrim fades in, sheet springs up.
     These replay automatically because the elements go display:none → visible. */
  @keyframes ffScrimIn{ from{ opacity:0; } }
  @keyframes ffSheetIn{ from{ opacity:.4; transform:translateY(30px); } }
  @keyframes ffRiseIn{ from{ opacity:0; transform:translateY(16px) scale(.985); } }
  .swap-modal, .qsheet{ animation:ffScrimIn .18s ease-out; }
  .swap-card, .qsheet-card{ animation:ffSheetIn .3s cubic-bezier(.3,1.25,.45,1); }
  .pl-root{ animation:ffRiseIn .26s cubic-bezier(.3,1.1,.45,1); }
  .pl-recap{ animation:ffRiseIn .32s cubic-bezier(.3,1.15,.45,1); }
  /* The user asked for calm: one switch kills every animation and transition. */
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  }

  /* ===== GENERATED-DARK: auto dark theme — edit scripts/gen-dark-theme.py, not this block ===== */
  @media (prefers-color-scheme: dark){
  html:not([data-theme="light"]){ --paper:#0d1712; --card:#141f18; --ink:#e4efe6; --muted:#96ab9d; --line:#28402f; --green-800:#a5dcb8; --green-700:#7ccd9c; --sand:#332c18; --sand-dark:#584c28; --shadow:0 12px 34px rgba(0,0,0,.45); --shadow-sm:0 2px 8px rgba(0,0,0,.35); color-scheme:dark; }
  html:not([data-theme="light"]) input, html:not([data-theme="light"]) select, html:not([data-theme="light"]) textarea{ background:#101b14; color:var(--ink); }
  html:not([data-theme="light"]) .logbtn:hover{ background:#15803d; }
  html:not([data-theme="light"]) .modal-foot button{ background:#15803d; }
  html:not([data-theme="light"]) .mobile-tabbar{ background:rgba(16,24,19,.94); border-top:1px solid #28402f; box-shadow:0 -4px 20px rgba(0,0,0,.45); }
  html:not([data-theme="light"]) .wordmark .ball{ background:radial-gradient(circle at 35% 30%, #1a1a1a, #212d21); }
  html:not([data-theme="light"]) .kicker{ background:#142417; border:1px solid #25422e; }
  html:not([data-theme="light"]) .brand-kicker .ball{ background:radial-gradient(circle at 35% 30%, #1a1a1a, #212d21); }
  html:not([data-theme="light"]) .tabs button.active{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ftoday.done{ background:#142417; border-color:#274531; }
  html:not([data-theme="light"]) .ft-chk{ border:2px solid #274531; }
  html:not([data-theme="light"]) .ft-next:active .ft-chk{ background:#142417; }
  html:not([data-theme="light"]) label.field > span.lbl{ color:#caded2; }
  html:not([data-theme="light"]) input[type="number"], html:not([data-theme="light"]) input[type="text"], html:not([data-theme="light"]) input[type="date"], html:not([data-theme="light"]) input[type="time"], html:not([data-theme="light"]) select{ background:#141f14; }
  html:not([data-theme="light"]) .seg{ background:#182518; }
  html:not([data-theme="light"]) .field-help{ background:#172014; }
  html:not([data-theme="light"]) .field-help b{ color:#c8dcd0; }
  html:not([data-theme="light"]) .goal{ background:#141f14; }
  html:not([data-theme="light"]) .goal.active{ background:linear-gradient(180deg, #122116, #1a1a1a); }
  html:not([data-theme="light"]) .target.gain{ background:#14251a; border-color:#294a36; }
  html:not([data-theme="light"]) .target.loss{ background:#121822; border-color:#253142; }
  html:not([data-theme="light"]) .target.hold{ background:#252014; border-color:#484029; }
  html:not([data-theme="light"]) .target-h{ color:#c7e4d3; }
  html:not([data-theme="light"]) .target.loss .target-h{ color:#c4d1e3; }
  html:not([data-theme="light"]) .target.hold .target-h{ color:#e2dac2; }
  html:not([data-theme="light"]) .target-sub{ color:#cbd5d1; }
  html:not([data-theme="light"]) .macro.p{ background:#211212; border-color:#402424; }
  html:not([data-theme="light"]) .macro.c{ background:#252014; border-color:#463d27; }
  html:not([data-theme="light"]) .macro.f{ background:#121922; border-color:#243240; }
  html:not([data-theme="light"]) .macro .mlabel{ color:#cad4ce; }
  html:not([data-theme="light"]) details.fold{ background:#172112; }
  html:not([data-theme="light"]) details.fold .fold-body ul{ color:#e1dac1; }
  html:not([data-theme="light"]) details.fold .fold-body ul b{ color:#e4dec6; }
  html:not([data-theme="light"]) .pb-sec p, html:not([data-theme="light"]) .pb-sec div{ color:#e1dac1; }
  html:not([data-theme="light"]) .train-link{ background:#1a1a1a; }
  html:not([data-theme="light"]) .breakdown td{ color:#cddad2; }
  html:not([data-theme="light"]) .golf-note{ background:linear-gradient(160deg,#342f1c,var(--sand)); color:#e1dac1; }
  html:not([data-theme="light"]) .golf-note b{ color:#e4dec6; }
  html:not([data-theme="light"]) .twin.pre{ background:#252014; }
  html:not([data-theme="light"]) .twin.post{ background:#14261a; }
  html:not([data-theme="light"]) .twin .tlabel{ color:#cad4ce; }
  html:not([data-theme="light"]) .twin .tgrams{ color:#ceded4; }
  html:not([data-theme="light"]) .twin .tclock{ color:#c8d1cb; }
  html:not([data-theme="light"]) .timing-foot{ color:#e1dac1; }
  html:not([data-theme="light"]) .timing-foot b{ color:#e4dec6; }
  html:not([data-theme="light"]) .seg.meal-seg button.active{ background:#1a1a1a; color:#c4e3d0; }
  html:not([data-theme="light"]) .meal-each{ color:#cddad2; }
  html:not([data-theme="light"]) .mm.p{ background:#211212; border-color:#402424; }
  html:not([data-theme="light"]) .mm.c{ background:#252014; border-color:#463d27; }
  html:not([data-theme="light"]) .mm.f{ background:#121922; border-color:#243240; }
  html:not([data-theme="light"]) .mm-g{ color:#ceded4; }
  html:not([data-theme="light"]) .mm-l{ color:#cad4ce; }
  html:not([data-theme="light"]) .meal-foot{ color:#c8d1cb; }
  html:not([data-theme="light"]) .meal-foot b{ color:#caded2; }
  html:not([data-theme="light"]) .sched-title{ color:#caded2; }
  html:not([data-theme="light"]) .sched-row.pre{ background:#252014; }
  html:not([data-theme="light"]) .sched-name{ color:#caded2; }
  html:not([data-theme="light"]) .sched-macros b{ color:#cddad2; }
  html:not([data-theme="light"]) .sched-tag.post{ background:#16291c; }
  html:not([data-theme="light"]) .sched-tag.pre{ background:#352e1c; color:#dfd3bd; }
  html:not([data-theme="light"]) .equip{ background:#1a1a1a; }
  html:not([data-theme="light"]) .equip-presets button{ background:#141f14; }
  html:not([data-theme="light"]) .eq-chip{ background:#141f14; }
  html:not([data-theme="light"]) .eq-chip.on{ background:linear-gradient(180deg,#122116,#1a1a1a); }
  html:not([data-theme="light"]) .mach-sub{ border-left:2px solid #293b29; }
  html:not([data-theme="light"]) table.ex tr.swap td.exname .swap-badge{ background:#16291c; }
  html:not([data-theme="light"]) .plan-intro .lead{ color:#cddad2; }
  html:not([data-theme="light"]) .plan-phase{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .pillar{ background:#1a1a1a; }
  html:not([data-theme="light"]) .day-head{ background:#132113; }
  html:not([data-theme="light"]) table.ex td{ color:#cddad2; }
  html:not([data-theme="light"]) .rest-check{ border:1px solid #274631; background:#122215; }
  html:not([data-theme="light"]) .rest-check.done{ background:#14251a; border-color:#294a36; }
  html:not([data-theme="light"]) .speedday .day-head{ background:#261e14; color:#dfcebc; }
  html:not([data-theme="light"]) .speed-intro{ color:#e0d2bf; background:#211b12; }
  html:not([data-theme="light"]) .speed-toggle{ background:#211b12; }
  html:not([data-theme="light"]) .speed-toggle .st-lbl{ color:#dfcebc; }
  html:not([data-theme="light"]) .seg.speed-seg{ background:#30261a; }
  html:not([data-theme="light"]) .seg.speed-seg button{ color:#dfcebc; }
  html:not([data-theme="light"]) .seg.speed-seg button.active{ background:#1a1a1a; color:#e0cfbf; }
  html:not([data-theme="light"]) .speed-why{ color:#c9d0c5; background:#142014; }
  html:not([data-theme="light"]) .speed101 > summary{ color:#dfcebc; }
  html:not([data-theme="light"]) .exname-main{ color:#caded2; }
  html:not([data-theme="light"]) .warm{ color:#c8d1cb; background:#152112; }
  html:not([data-theme="light"]) .deload-banner{ background:#121722; border:1px solid #263043; color:#c0cae1; }
  html:not([data-theme="light"]) .deload-banner b{ color:#c3cce2; }
  html:not([data-theme="light"]) .upcoming-banner{ border-left:3px solid #625337; }
  html:not([data-theme="light"]) .exlegend b{ color:#e4dec6; }
  html:not([data-theme="light"]) .mode-banner.build{ background:#142417; border:1px solid #274531; color:#cddad2; }
  html:not([data-theme="light"]) .mode-banner.retain{ background:#241c13; border:1px solid #493c29; color:#e0d2bf; }
  html:not([data-theme="light"]) .foodfold .foodintro{ color:#c8d1cb; }
  html:not([data-theme="light"]) .foodfold .fold-body ul{ color:#ccd7d0; }
  html:not([data-theme="light"]) .foodfix{ background:#122116; border:1px solid #274531; color:#c6e4d2; }
  html:not([data-theme="light"]) .fooddyn .fd-ai{ background:#423a24; color:#c7e4d5; }
  html:not([data-theme="light"]) .sched-row .meal-eg{ color:#c6e4d2; background:#122116; border:1px solid #274531; }
  html:not([data-theme="light"]) .primer{ color:#e1d2c1; background:#221b12; }
  html:not([data-theme="light"]) .primer b{ color:#decabb; }
  html:not([data-theme="light"]) .goalhelp{ background:#172112; }
  html:not([data-theme="light"]) .goalhelp > div{ color:#c8d1cb; }
  html:not([data-theme="light"]) .speed-callout{ background:#241c13; border:1px solid #493c29; }
  html:not([data-theme="light"]) .speed-callout h4{ color:#dfcebc; }
  html:not([data-theme="light"]) .speed-callout p{ color:#e0d2bf; }
  html:not([data-theme="light"]) .speed-callout ul{ color:#e0d2bf; }
  html:not([data-theme="light"]) .hero-mission .hm-fill{ background:linear-gradient(90deg,#2f9e5d,#274933); }
  html:not([data-theme="light"]) .hero-mission.hit .hm-fill{ background:#274934; }
  html:not([data-theme="light"]) .hw-d.on{ background:#274934; color:#cae6d6; }
  html:not([data-theme="light"]) .ffp-fill{ background:linear-gradient(90deg,#3aae68,#274933); }
  html:not([data-theme="light"]) .wk-recap{ background:#1a1a1a; }
  html:not([data-theme="light"]) .adapt-btn{ background:#274934; color:#cae5d4; }
  html:not([data-theme="light"]) .gd-controls{ background:#1a1a1a; }
  html:not([data-theme="light"]) .gd-seg-btn{ background:#141f14; }
  html:not([data-theme="light"]) .gd-cbody{ background:#1a1a1a; }
  html:not([data-theme="light"]) .gd-pack{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ffp-legend .lk{ color:#c3e2d2; }
  html:not([data-theme="light"]) .ffp-f, html:not([data-theme="light"]) .ffp-r{ background:#141f14; }
  html:not([data-theme="light"]) .ffp-f.lk{ background:#15271a; color:#c3e2d2; }
  html:not([data-theme="light"]) .ffp-f.av{ background:#251614; border-color:#5a3733; }
  html:not([data-theme="light"]) .ob-foodwrap{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ffp-zip{ background:#141f14; }
  html:not([data-theme="light"]) .ffm-seg button{ background:#141f14; }
  html:not([data-theme="light"]) .cs-edit{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ffm-snk{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ffm-act{ background:#1a1a1a; }
  html:not([data-theme="light"]) .rd-ins{ background:#132315; border:1px solid #25412d; }
  html:not([data-theme="light"]) .gd-loground{ border:1.5px dashed #2b4334; background:#122117; }
  html:not([data-theme="light"]) .gd-loground.done{ background:#142417; }
  html:not([data-theme="light"]) .ffm-groc-i{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ffm-pair-h em, html:not([data-theme="light"]) .ffm-meal-h em{ color:#ddcfb8; }
  html:not([data-theme="light"]) .ffm-tot-cell.ok{ border-color:#2e523b; background:#132317; }
  html:not([data-theme="light"]) .ffm-tot-cell.ok .ttc-v{ color:#c3e2d2; }
  html:not([data-theme="light"]) .ffw-day{ background:#141f14; }
  html:not([data-theme="light"]) .insight{ background:#1a1a1a; border-left:4px solid #625737; }
  html:not([data-theme="light"]) .insight-kick{ color:#ddcfb8; }
  html:not([data-theme="light"]) .ob-prog > span{ background:linear-gradient(90deg,#34d27b,#274934); }
  html:not([data-theme="light"]) .ob-opt.sel{ border-color:#30553e; }
  html:not([data-theme="light"]) .ob-seg button.sel{ background:#274934; border-color:#30553e; color:#cae5d4; }
  html:not([data-theme="light"]) .ob-in{ color:#cae5d4; }
  html:not([data-theme="light"]) .ob-in:focus{ border-color:#30553e; }
  html:not([data-theme="light"]) .ob-select{ color:#cae5d4; }
  html:not([data-theme="light"]) .ob-next{ background:#274934; color:#cae5d4; }
  html:not([data-theme="light"]) .pcard{ background:#1a1a1a; }
  html:not([data-theme="light"]) .pc-delta.up{ background:#15271c; color:#c0e1cc; }
  html:not([data-theme="light"]) .pc-delta.down{ background:#241313; }
  html:not([data-theme="light"]) .pc-delta.flat, html:not([data-theme="light"]) .pc-delta.neu{ background:#19211d; color:#c8d1cb; }
  html:not([data-theme="light"]) .pc-payoff{ background:linear-gradient(135deg,#132419,#16291d); border:1px solid #274631; }
  html:not([data-theme="light"]) .pc-payoff b{ color:#c3e2d2; }
  html:not([data-theme="light"]) .wkbar-fill{ background:#1f3a2a; }
  html:not([data-theme="light"]) .lb-mine{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .lb-row.me{ background:#122216; }
  html:not([data-theme="light"]) .train-ai{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .finish-btn.done{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .hist-row{ background:#1a1a1a; }
  html:not([data-theme="light"]) .hist-row:active{ background:#141f14; }
  html:not([data-theme="light"]) .hist-del.arm{ background:#241414; }
  html:not([data-theme="light"]) .acct-synced.warn{ color:#dfcbbc; }
  html:not([data-theme="light"]) .acct-btn.ghost{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .acct-card.hero .acct-ava{ background:#274934; color:#cae6d6; }
  html:not([data-theme="light"]) .acct-card.hero .acct-btn{ background:#274934; color:#cae6d6; }
  html:not([data-theme="light"]) .acct-btn.danger{ background:#1a1a1a; color:#ddbdb8; border:1.5px solid #472c28; }
  html:not([data-theme="light"]) .acct-btn.danger:active{ background:#241613; }
  html:not([data-theme="light"]) .calc-trainref{ background:#172014; }
  html:not([data-theme="light"]) .goal-chips button{ background:#141f14; }
  html:not([data-theme="light"]) .tracker h3{ color:#e1dac1; }
  html:not([data-theme="light"]) .tracker ul{ color:#e1dac1; }
  html:not([data-theme="light"]) .tracker ul b{ color:#e4dec6; }
  html:not([data-theme="light"]) .weekbar select option{ color:#c6e4da; }
  html:not([data-theme="light"]) .wk-adjrow{ background:#152015; }
  html:not([data-theme="light"]) .startbar .sb-go{ background:#274934; color:#cae6d6; }
  html:not([data-theme="light"]) .sb-go2{ background:#274934; color:#cae6d6; }
  html:not([data-theme="light"]) .planview-seg{ background:#182218; }
  html:not([data-theme="light"]) .planview-seg button.active{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ws-chip.done{ border-color:#274531; }
  html:not([data-theme="light"]) .il-ex{ background:#1a1a1a; }
  html:not([data-theme="light"]) .il-why.on{ background:#142417; }
  html:not([data-theme="light"]) .why-howto{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .ed-mu{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .ed-miss li{ color:#debfba; }
  html:not([data-theme="light"]) .ed-why{ color:#e1dac1; background:#231e13; border:1px solid #484129; }
  html:not([data-theme="light"]) .il-up{ background:#142417; border:1px solid #25422e; }
  html:not([data-theme="light"]) .il-set.done{ background:#14251a; }
  html:not([data-theme="light"]) .il-set .il-in{ background:#1a1a1a; }
  html:not([data-theme="light"]) .il-check{ border:1.5px solid #2d4034; background:#1a1a1a; }
  html:not([data-theme="light"]) .il-plates{ color:#e0d7be; }
  html:not([data-theme="light"]) .il-add{ background:#152118; }
  html:not([data-theme="light"]) .prelift{ background:linear-gradient(165deg,#221c12,#292116); border:1px solid #493c29; border-left:4px solid #624d37; }
  html:not([data-theme="light"]) .prelift > summary{ color:#e0cfbe; }
  html:not([data-theme="light"]) .wu-row{ background:#1a1a1a; }
  html:not([data-theme="light"]) .wu-row.done{ background:#152018; }
  html:not([data-theme="light"]) .wu-note.caution{ color:#e0d6be; background:#252014; border:1px solid #484129; }
  html:not([data-theme="light"]) .lift-hero .lh-prog > span{ background:linear-gradient(90deg,#34d27b,#274934); }
  html:not([data-theme="light"]) .swap-card{ background:#141f14; }
  html:not([data-theme="light"]) .swap-opt{ background:#1a1a1a; }
  html:not([data-theme="light"]) .swap-opt.cur{ background:#142417; }
  html:not([data-theme="light"]) .add-search{ background:#1a1a1a; }
  html:not([data-theme="light"]) .swap-coach{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .logbtn.logged{ background:#142417; border:1px solid #274531; }
  html:not([data-theme="light"]) .logbtn.reset.arm{ border-color:#623837; }
  html:not([data-theme="light"]) .logx{ background:#1a1a1a; }
  html:not([data-theme="light"]) .logx-name{ color:#caded2; }
  html:not([data-theme="light"]) .logx-last{ background:#122116; }
  html:not([data-theme="light"]) .setrow .donebtn{ background:#1a1a1a; }
  html:not([data-theme="light"]) .setrow.is-done input{ background:#122116; border-color:#274531; }
  html:not([data-theme="light"]) .logx-nudge{ color:#c4e3d3; background:#15261c; border:1px solid #294a36; }
  html:not([data-theme="light"]) .filllast{ border:1.5px dashed #294a36; }
  html:not([data-theme="light"]) .modal-foot{ background:#1a1a1a; }
  html:not([data-theme="light"]) .modal-foot button.ghost{ background:#182218; }
  html:not([data-theme="light"]) .prog-row label{ color:#caded2; }
  html:not([data-theme="light"]) .prog-list .pe{ color:#cddad2; }
  html:not([data-theme="light"]) .tip{ background:linear-gradient(165deg,#121922,#151d27); border:1px solid #263343; }
  html:not([data-theme="light"]) .tip-t{ color:#c6c6e4; }
  html:not([data-theme="light"]) .tip-b{ color:#c0d1e1; }
  html:not([data-theme="light"]) .tip-b b{ color:#c3d2e2; }
  html:not([data-theme="light"]) .tip.tip-signin{ background:linear-gradient(165deg,#231c13,#2a2216); border-color:#4b3e2a; }
  html:not([data-theme="light"]) .tip.tip-signin .tip-t{ color:#e2d1c2; }
  html:not([data-theme="light"]) .tip.tip-signin .tip-b{ color:#e1d2c0; }
  html:not([data-theme="light"]) .tip.tip-install{ background:linear-gradient(165deg,#14261a,#182c1e); border-color:#2a4a33; }
  html:not([data-theme="light"]) .tip.tip-install .tip-t{ color:#c4e3d1; }
  html:not([data-theme="light"]) .tip.tip-install .tip-b{ color:#c4e2cf; }
  html:not([data-theme="light"]) .ffp-detail .fd-act{ background:#274933; color:#c9e5d5; }
  html:not([data-theme="light"]) .season .sc-share{ border-color:#2f543c; }
  html:not([data-theme="light"]) .sc-chip.good{ background:#14261a; color:#c4e3d1; border:1px solid #2a4a33; }
  html:not([data-theme="light"]) .sc-chip.mid{ background:#252014; color:#e1d5c0; border:1px solid #4d432b; }
  html:not([data-theme="light"]) .sc-chip.miss{ background:#1a1c1a; border:1px solid #2f3931; }
  html:not([data-theme="light"]) .sc-share{ color:#c4e3d1; }
  html:not([data-theme="light"]) .swap-need{ color:#e1d5c0; background:#252014; border:1px solid #4d432b; }
  html:not([data-theme="light"]) .xh-pr{ background:#132318; border:1px solid #26442f; }
  html:not([data-theme="light"]) .xh-pr .v{ color:#c7e4d4; }
  html:not([data-theme="light"]) .xh-pr .v small{ color:#c4d3ca; }
  html:not([data-theme="light"]) .xh-pr .k{ color:#c4d3ca; }
  html:not([data-theme="light"]) .xh-row.live{ border-color:#2f543c; }
  html:not([data-theme="light"]) .xh-top em{ color:#bcdfc9; }
  html:not([data-theme="light"]) .fuel-sum{ background:#132318; border:1px solid #26442f; }
  html:not([data-theme="light"]) .fuel-sum.rated-on{ background:#14261a; border-color:#2a4a33; }
  html:not([data-theme="light"]) .fuel-sum.rated-close{ background:#252014; border-color:#4d432b; }
  html:not([data-theme="light"]) .fuel-sum.rated-off{ background:#221512; border-color:#452c27; }
  html:not([data-theme="light"]) .fuel-sum-t{ color:#c7e4d5; }
  html:not([data-theme="light"]) .fuel-streak{ color:#e1d5c0; }
  html:not([data-theme="light"]) .fuel-sum-line{ color:#c5ddd5; }
  html:not([data-theme="light"]) .fuel-nums{ color:#c7e4d5; }
  html:not([data-theme="light"]) .fuel-numbtn{ color:#bcdfc9; }
  html:not([data-theme="light"]) .frate{ border-top:1px dashed #26442f; }
  html:not([data-theme="light"]) .frate-lbl{ color:#c4d3ca; }
  html:not([data-theme="light"]) .frate-chip{ border:1px solid #2b4334; background:#1a1a1a; color:#c5ddd5; }
  html:not([data-theme="light"]) .frate-chip.on{ background:#14261a; color:#c4e3d1; }
  html:not([data-theme="light"]) .fchk-b{ border:1.5px solid #2b4334; background:#1a1a1a; color:#c4d3ca; }
  html:not([data-theme="light"]) .tl-fuelchip.full{ background:#142417; border-color:#274531; }
  html:not([data-theme="light"]) .tl-dot{ border:2.5px solid #34493a; }
  html:not([data-theme="light"]) .ord-row{ background:#1a1a1a; }
  html:not([data-theme="light"]) .ord-btns button{ background:#1a1a1a; }
  html:not([data-theme="light"]) .pl-dot.cur{ background:#274933; }
  html:not([data-theme="light"]) .pl-whybox .pl-howto{ background:#274933; color:#c9e5d5; }
  html:not([data-theme="light"]) .pl-rest-fill{ background:#274933; }
  html:not([data-theme="light"]) .pl-next{ background:#274933; color:#c9e5d5; }
  html:not([data-theme="light"]) .pl-share{ border:1.5px solid #2f543c; }
  html:not([data-theme="light"]) .stest-card{ background:#132318; border:1px solid #26442f; color:#c5ddd5; }
  html:not([data-theme="light"]) .stest-go{ background:#274933; color:#c9e5d5; }
  html:not([data-theme="light"]) .stest-link{ color:#bcdfc9; }
  html:not([data-theme="light"]) .st-sec{ color:#c7e4d5; }
  html:not([data-theme="light"]) .st-sec small{ color:#c4d3ca; }
  html:not([data-theme="light"]) .st-swings input{ border:1.5px solid #2b4334; }
  html:not([data-theme="light"]) .st-best{ background:#142419; border:1px solid #26442f; color:#c3e2d2; }
  html:not([data-theme="light"]) .st-note{ color:#c4d3ca; }
  html:not([data-theme="light"]) .st-res-kick{ color:#c1d8ca; }
  html:not([data-theme="light"]) .st-res-num{ color:#c8e5d6; }
  html:not([data-theme="light"]) .st-res-num span{ color:#c1d8ca; }
  html:not([data-theme="light"]) .st-gain{ color:#c3e2d2; }
  html:not([data-theme="light"]) .st-gain b{ color:#c8e5d6; }
  html:not([data-theme="light"]) .st-share{ background:#1a1a1a; color:#c4e3d1; }
  html:not([data-theme="light"]) .mob-test{ background:#121b21; border:1px solid #243540; }
  html:not([data-theme="light"]) .mob-t{ color:#c4d7e3; }
  html:not([data-theme="light"]) .mob-d{ color:#c1d1dc; }
  html:not([data-theme="light"]) .mob-d b{ color:#c4d7e3; }
  html:not([data-theme="light"]) .mob-opts button{ border:1.5px solid #273845; background:#1a1a1a; color:#c0d2de; }
  html:not([data-theme="light"]) .mob-opts button.on{ background:#14261a; color:#c4e3d1; }
  html:not([data-theme="light"]) .mob-res-num{ color:#c8e5d6; }
  html:not([data-theme="light"]) .mob-res-num span{ color:#c1d8ca; }
  html:not([data-theme="light"]) .mob-flag.ok{ background:#142419; border-color:#26442f; color:#c3e2d2; }
  html:not([data-theme="light"]) .mob-flag{ background:#241e13; border:1px solid #4a3f29; color:#e2d6c2; }
  html:not([data-theme="light"]) .wu-row.from-screen .wu-move::after{ color:#ded4bb; }
  html:not([data-theme="light"]) .pc-sdot{ border:2px solid #292929; }
  }
  html[data-theme="dark"]{ --paper:#0d1712; --card:#141f18; --ink:#e4efe6; --muted:#96ab9d; --line:#28402f; --green-800:#a5dcb8; --green-700:#7ccd9c; --sand:#332c18; --sand-dark:#584c28; --shadow:0 12px 34px rgba(0,0,0,.45); --shadow-sm:0 2px 8px rgba(0,0,0,.35); color-scheme:dark; }
  html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] textarea{ background:#101b14; color:var(--ink); }
  html[data-theme="dark"] .logbtn:hover{ background:#15803d; }
  html[data-theme="dark"] .modal-foot button{ background:#15803d; }
  html[data-theme="dark"] .mobile-tabbar{ background:rgba(16,24,19,.94); border-top:1px solid #28402f; box-shadow:0 -4px 20px rgba(0,0,0,.45); }
  html[data-theme="dark"] .wordmark .ball{ background:radial-gradient(circle at 35% 30%, #1a1a1a, #212d21); }
  html[data-theme="dark"] .kicker{ background:#142417; border:1px solid #25422e; }
  html[data-theme="dark"] .brand-kicker .ball{ background:radial-gradient(circle at 35% 30%, #1a1a1a, #212d21); }
  html[data-theme="dark"] .tabs button.active{ background:#1a1a1a; }
  html[data-theme="dark"] .ftoday.done{ background:#142417; border-color:#274531; }
  html[data-theme="dark"] .ft-chk{ border:2px solid #274531; }
  html[data-theme="dark"] .ft-next:active .ft-chk{ background:#142417; }
  html[data-theme="dark"] label.field > span.lbl{ color:#caded2; }
  html[data-theme="dark"] input[type="number"], html[data-theme="dark"] input[type="text"], html[data-theme="dark"] input[type="date"], html[data-theme="dark"] input[type="time"], html[data-theme="dark"] select{ background:#141f14; }
  html[data-theme="dark"] .seg{ background:#182518; }
  html[data-theme="dark"] .field-help{ background:#172014; }
  html[data-theme="dark"] .field-help b{ color:#c8dcd0; }
  html[data-theme="dark"] .goal{ background:#141f14; }
  html[data-theme="dark"] .goal.active{ background:linear-gradient(180deg, #122116, #1a1a1a); }
  html[data-theme="dark"] .target.gain{ background:#14251a; border-color:#294a36; }
  html[data-theme="dark"] .target.loss{ background:#121822; border-color:#253142; }
  html[data-theme="dark"] .target.hold{ background:#252014; border-color:#484029; }
  html[data-theme="dark"] .target-h{ color:#c7e4d3; }
  html[data-theme="dark"] .target.loss .target-h{ color:#c4d1e3; }
  html[data-theme="dark"] .target.hold .target-h{ color:#e2dac2; }
  html[data-theme="dark"] .target-sub{ color:#cbd5d1; }
  html[data-theme="dark"] .macro.p{ background:#211212; border-color:#402424; }
  html[data-theme="dark"] .macro.c{ background:#252014; border-color:#463d27; }
  html[data-theme="dark"] .macro.f{ background:#121922; border-color:#243240; }
  html[data-theme="dark"] .macro .mlabel{ color:#cad4ce; }
  html[data-theme="dark"] details.fold{ background:#172112; }
  html[data-theme="dark"] details.fold .fold-body ul{ color:#e1dac1; }
  html[data-theme="dark"] details.fold .fold-body ul b{ color:#e4dec6; }
  html[data-theme="dark"] .pb-sec p, html[data-theme="dark"] .pb-sec div{ color:#e1dac1; }
  html[data-theme="dark"] .train-link{ background:#1a1a1a; }
  html[data-theme="dark"] .breakdown td{ color:#cddad2; }
  html[data-theme="dark"] .golf-note{ background:linear-gradient(160deg,#342f1c,var(--sand)); color:#e1dac1; }
  html[data-theme="dark"] .golf-note b{ color:#e4dec6; }
  html[data-theme="dark"] .twin.pre{ background:#252014; }
  html[data-theme="dark"] .twin.post{ background:#14261a; }
  html[data-theme="dark"] .twin .tlabel{ color:#cad4ce; }
  html[data-theme="dark"] .twin .tgrams{ color:#ceded4; }
  html[data-theme="dark"] .twin .tclock{ color:#c8d1cb; }
  html[data-theme="dark"] .timing-foot{ color:#e1dac1; }
  html[data-theme="dark"] .timing-foot b{ color:#e4dec6; }
  html[data-theme="dark"] .seg.meal-seg button.active{ background:#1a1a1a; color:#c4e3d0; }
  html[data-theme="dark"] .meal-each{ color:#cddad2; }
  html[data-theme="dark"] .mm.p{ background:#211212; border-color:#402424; }
  html[data-theme="dark"] .mm.c{ background:#252014; border-color:#463d27; }
  html[data-theme="dark"] .mm.f{ background:#121922; border-color:#243240; }
  html[data-theme="dark"] .mm-g{ color:#ceded4; }
  html[data-theme="dark"] .mm-l{ color:#cad4ce; }
  html[data-theme="dark"] .meal-foot{ color:#c8d1cb; }
  html[data-theme="dark"] .meal-foot b{ color:#caded2; }
  html[data-theme="dark"] .sched-title{ color:#caded2; }
  html[data-theme="dark"] .sched-row.pre{ background:#252014; }
  html[data-theme="dark"] .sched-name{ color:#caded2; }
  html[data-theme="dark"] .sched-macros b{ color:#cddad2; }
  html[data-theme="dark"] .sched-tag.post{ background:#16291c; }
  html[data-theme="dark"] .sched-tag.pre{ background:#352e1c; color:#dfd3bd; }
  html[data-theme="dark"] .equip{ background:#1a1a1a; }
  html[data-theme="dark"] .equip-presets button{ background:#141f14; }
  html[data-theme="dark"] .eq-chip{ background:#141f14; }
  html[data-theme="dark"] .eq-chip.on{ background:linear-gradient(180deg,#122116,#1a1a1a); }
  html[data-theme="dark"] .mach-sub{ border-left:2px solid #293b29; }
  html[data-theme="dark"] table.ex tr.swap td.exname .swap-badge{ background:#16291c; }
  html[data-theme="dark"] .plan-intro .lead{ color:#cddad2; }
  html[data-theme="dark"] .plan-phase{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .pillar{ background:#1a1a1a; }
  html[data-theme="dark"] .day-head{ background:#132113; }
  html[data-theme="dark"] table.ex td{ color:#cddad2; }
  html[data-theme="dark"] .rest-check{ border:1px solid #274631; background:#122215; }
  html[data-theme="dark"] .rest-check.done{ background:#14251a; border-color:#294a36; }
  html[data-theme="dark"] .speedday .day-head{ background:#261e14; color:#dfcebc; }
  html[data-theme="dark"] .speed-intro{ color:#e0d2bf; background:#211b12; }
  html[data-theme="dark"] .speed-toggle{ background:#211b12; }
  html[data-theme="dark"] .speed-toggle .st-lbl{ color:#dfcebc; }
  html[data-theme="dark"] .seg.speed-seg{ background:#30261a; }
  html[data-theme="dark"] .seg.speed-seg button{ color:#dfcebc; }
  html[data-theme="dark"] .seg.speed-seg button.active{ background:#1a1a1a; color:#e0cfbf; }
  html[data-theme="dark"] .speed-why{ color:#c9d0c5; background:#142014; }
  html[data-theme="dark"] .speed101 > summary{ color:#dfcebc; }
  html[data-theme="dark"] .exname-main{ color:#caded2; }
  html[data-theme="dark"] .warm{ color:#c8d1cb; background:#152112; }
  html[data-theme="dark"] .deload-banner{ background:#121722; border:1px solid #263043; color:#c0cae1; }
  html[data-theme="dark"] .deload-banner b{ color:#c3cce2; }
  html[data-theme="dark"] .upcoming-banner{ border-left:3px solid #625337; }
  html[data-theme="dark"] .exlegend b{ color:#e4dec6; }
  html[data-theme="dark"] .mode-banner.build{ background:#142417; border:1px solid #274531; color:#cddad2; }
  html[data-theme="dark"] .mode-banner.retain{ background:#241c13; border:1px solid #493c29; color:#e0d2bf; }
  html[data-theme="dark"] .foodfold .foodintro{ color:#c8d1cb; }
  html[data-theme="dark"] .foodfold .fold-body ul{ color:#ccd7d0; }
  html[data-theme="dark"] .foodfix{ background:#122116; border:1px solid #274531; color:#c6e4d2; }
  html[data-theme="dark"] .fooddyn .fd-ai{ background:#423a24; color:#c7e4d5; }
  html[data-theme="dark"] .sched-row .meal-eg{ color:#c6e4d2; background:#122116; border:1px solid #274531; }
  html[data-theme="dark"] .primer{ color:#e1d2c1; background:#221b12; }
  html[data-theme="dark"] .primer b{ color:#decabb; }
  html[data-theme="dark"] .goalhelp{ background:#172112; }
  html[data-theme="dark"] .goalhelp > div{ color:#c8d1cb; }
  html[data-theme="dark"] .speed-callout{ background:#241c13; border:1px solid #493c29; }
  html[data-theme="dark"] .speed-callout h4{ color:#dfcebc; }
  html[data-theme="dark"] .speed-callout p{ color:#e0d2bf; }
  html[data-theme="dark"] .speed-callout ul{ color:#e0d2bf; }
  html[data-theme="dark"] .hero-mission .hm-fill{ background:linear-gradient(90deg,#2f9e5d,#274933); }
  html[data-theme="dark"] .hero-mission.hit .hm-fill{ background:#274934; }
  html[data-theme="dark"] .hw-d.on{ background:#274934; color:#cae6d6; }
  html[data-theme="dark"] .ffp-fill{ background:linear-gradient(90deg,#3aae68,#274933); }
  html[data-theme="dark"] .wk-recap{ background:#1a1a1a; }
  html[data-theme="dark"] .adapt-btn{ background:#274934; color:#cae5d4; }
  html[data-theme="dark"] .gd-controls{ background:#1a1a1a; }
  html[data-theme="dark"] .gd-seg-btn{ background:#141f14; }
  html[data-theme="dark"] .gd-cbody{ background:#1a1a1a; }
  html[data-theme="dark"] .gd-pack{ background:#1a1a1a; }
  html[data-theme="dark"] .ffp-legend .lk{ color:#c3e2d2; }
  html[data-theme="dark"] .ffp-f, html[data-theme="dark"] .ffp-r{ background:#141f14; }
  html[data-theme="dark"] .ffp-f.lk{ background:#15271a; color:#c3e2d2; }
  html[data-theme="dark"] .ffp-f.av{ background:#251614; border-color:#5a3733; }
  html[data-theme="dark"] .ob-foodwrap{ background:#1a1a1a; }
  html[data-theme="dark"] .ffp-zip{ background:#141f14; }
  html[data-theme="dark"] .ffm-seg button{ background:#141f14; }
  html[data-theme="dark"] .cs-edit{ background:#1a1a1a; }
  html[data-theme="dark"] .ffm-snk{ background:#1a1a1a; }
  html[data-theme="dark"] .ffm-act{ background:#1a1a1a; }
  html[data-theme="dark"] .rd-ins{ background:#132315; border:1px solid #25412d; }
  html[data-theme="dark"] .gd-loground{ border:1.5px dashed #2b4334; background:#122117; }
  html[data-theme="dark"] .gd-loground.done{ background:#142417; }
  html[data-theme="dark"] .ffm-groc-i{ background:#1a1a1a; }
  html[data-theme="dark"] .ffm-pair-h em, html[data-theme="dark"] .ffm-meal-h em{ color:#ddcfb8; }
  html[data-theme="dark"] .ffm-tot-cell.ok{ border-color:#2e523b; background:#132317; }
  html[data-theme="dark"] .ffm-tot-cell.ok .ttc-v{ color:#c3e2d2; }
  html[data-theme="dark"] .ffw-day{ background:#141f14; }
  html[data-theme="dark"] .insight{ background:#1a1a1a; border-left:4px solid #625737; }
  html[data-theme="dark"] .insight-kick{ color:#ddcfb8; }
  html[data-theme="dark"] .ob-prog > span{ background:linear-gradient(90deg,#34d27b,#274934); }
  html[data-theme="dark"] .ob-opt.sel{ border-color:#30553e; }
  html[data-theme="dark"] .ob-seg button.sel{ background:#274934; border-color:#30553e; color:#cae5d4; }
  html[data-theme="dark"] .ob-in{ color:#cae5d4; }
  html[data-theme="dark"] .ob-in:focus{ border-color:#30553e; }
  html[data-theme="dark"] .ob-select{ color:#cae5d4; }
  html[data-theme="dark"] .ob-next{ background:#274934; color:#cae5d4; }
  html[data-theme="dark"] .pcard{ background:#1a1a1a; }
  html[data-theme="dark"] .pc-delta.up{ background:#15271c; color:#c0e1cc; }
  html[data-theme="dark"] .pc-delta.down{ background:#241313; }
  html[data-theme="dark"] .pc-delta.flat, html[data-theme="dark"] .pc-delta.neu{ background:#19211d; color:#c8d1cb; }
  html[data-theme="dark"] .pc-payoff{ background:linear-gradient(135deg,#132419,#16291d); border:1px solid #274631; }
  html[data-theme="dark"] .pc-payoff b{ color:#c3e2d2; }
  html[data-theme="dark"] .wkbar-fill{ background:#1f3a2a; }
  html[data-theme="dark"] .lb-mine{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .lb-row.me{ background:#122216; }
  html[data-theme="dark"] .train-ai{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .finish-btn.done{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .hist-row{ background:#1a1a1a; }
  html[data-theme="dark"] .hist-row:active{ background:#141f14; }
  html[data-theme="dark"] .hist-del.arm{ background:#241414; }
  html[data-theme="dark"] .acct-synced.warn{ color:#dfcbbc; }
  html[data-theme="dark"] .acct-btn.ghost{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .acct-card.hero .acct-ava{ background:#274934; color:#cae6d6; }
  html[data-theme="dark"] .acct-card.hero .acct-btn{ background:#274934; color:#cae6d6; }
  html[data-theme="dark"] .acct-btn.danger{ background:#1a1a1a; color:#ddbdb8; border:1.5px solid #472c28; }
  html[data-theme="dark"] .acct-btn.danger:active{ background:#241613; }
  html[data-theme="dark"] .calc-trainref{ background:#172014; }
  html[data-theme="dark"] .goal-chips button{ background:#141f14; }
  html[data-theme="dark"] .tracker h3{ color:#e1dac1; }
  html[data-theme="dark"] .tracker ul{ color:#e1dac1; }
  html[data-theme="dark"] .tracker ul b{ color:#e4dec6; }
  html[data-theme="dark"] .weekbar select option{ color:#c6e4da; }
  html[data-theme="dark"] .wk-adjrow{ background:#152015; }
  html[data-theme="dark"] .startbar .sb-go{ background:#274934; color:#cae6d6; }
  html[data-theme="dark"] .sb-go2{ background:#274934; color:#cae6d6; }
  html[data-theme="dark"] .planview-seg{ background:#182218; }
  html[data-theme="dark"] .planview-seg button.active{ background:#1a1a1a; }
  html[data-theme="dark"] .ws-chip.done{ border-color:#274531; }
  html[data-theme="dark"] .il-ex{ background:#1a1a1a; }
  html[data-theme="dark"] .il-why.on{ background:#142417; }
  html[data-theme="dark"] .why-howto{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .ed-mu{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .ed-miss li{ color:#debfba; }
  html[data-theme="dark"] .ed-why{ color:#e1dac1; background:#231e13; border:1px solid #484129; }
  html[data-theme="dark"] .il-up{ background:#142417; border:1px solid #25422e; }
  html[data-theme="dark"] .il-set.done{ background:#14251a; }
  html[data-theme="dark"] .il-set .il-in{ background:#1a1a1a; }
  html[data-theme="dark"] .il-check{ border:1.5px solid #2d4034; background:#1a1a1a; }
  html[data-theme="dark"] .il-plates{ color:#e0d7be; }
  html[data-theme="dark"] .il-add{ background:#152118; }
  html[data-theme="dark"] .prelift{ background:linear-gradient(165deg,#221c12,#292116); border:1px solid #493c29; border-left:4px solid #624d37; }
  html[data-theme="dark"] .prelift > summary{ color:#e0cfbe; }
  html[data-theme="dark"] .wu-row{ background:#1a1a1a; }
  html[data-theme="dark"] .wu-row.done{ background:#152018; }
  html[data-theme="dark"] .wu-note.caution{ color:#e0d6be; background:#252014; border:1px solid #484129; }
  html[data-theme="dark"] .lift-hero .lh-prog > span{ background:linear-gradient(90deg,#34d27b,#274934); }
  html[data-theme="dark"] .swap-card{ background:#141f14; }
  html[data-theme="dark"] .swap-opt{ background:#1a1a1a; }
  html[data-theme="dark"] .swap-opt.cur{ background:#142417; }
  html[data-theme="dark"] .add-search{ background:#1a1a1a; }
  html[data-theme="dark"] .swap-coach{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .logbtn.logged{ background:#142417; border:1px solid #274531; }
  html[data-theme="dark"] .logbtn.reset.arm{ border-color:#623837; }
  html[data-theme="dark"] .logx{ background:#1a1a1a; }
  html[data-theme="dark"] .logx-name{ color:#caded2; }
  html[data-theme="dark"] .logx-last{ background:#122116; }
  html[data-theme="dark"] .setrow .donebtn{ background:#1a1a1a; }
  html[data-theme="dark"] .setrow.is-done input{ background:#122116; border-color:#274531; }
  html[data-theme="dark"] .logx-nudge{ color:#c4e3d3; background:#15261c; border:1px solid #294a36; }
  html[data-theme="dark"] .filllast{ border:1.5px dashed #294a36; }
  html[data-theme="dark"] .modal-foot{ background:#1a1a1a; }
  html[data-theme="dark"] .modal-foot button.ghost{ background:#182218; }
  html[data-theme="dark"] .prog-row label{ color:#caded2; }
  html[data-theme="dark"] .prog-list .pe{ color:#cddad2; }
  html[data-theme="dark"] .tip{ background:linear-gradient(165deg,#121922,#151d27); border:1px solid #263343; }
  html[data-theme="dark"] .tip-t{ color:#c6c6e4; }
  html[data-theme="dark"] .tip-b{ color:#c0d1e1; }
  html[data-theme="dark"] .tip-b b{ color:#c3d2e2; }
  html[data-theme="dark"] .tip.tip-signin{ background:linear-gradient(165deg,#231c13,#2a2216); border-color:#4b3e2a; }
  html[data-theme="dark"] .tip.tip-signin .tip-t{ color:#e2d1c2; }
  html[data-theme="dark"] .tip.tip-signin .tip-b{ color:#e1d2c0; }
  html[data-theme="dark"] .tip.tip-install{ background:linear-gradient(165deg,#14261a,#182c1e); border-color:#2a4a33; }
  html[data-theme="dark"] .tip.tip-install .tip-t{ color:#c4e3d1; }
  html[data-theme="dark"] .tip.tip-install .tip-b{ color:#c4e2cf; }
  html[data-theme="dark"] .ffp-detail .fd-act{ background:#274933; color:#c9e5d5; }
  html[data-theme="dark"] .season .sc-share{ border-color:#2f543c; }
  html[data-theme="dark"] .sc-chip.good{ background:#14261a; color:#c4e3d1; border:1px solid #2a4a33; }
  html[data-theme="dark"] .sc-chip.mid{ background:#252014; color:#e1d5c0; border:1px solid #4d432b; }
  html[data-theme="dark"] .sc-chip.miss{ background:#1a1c1a; border:1px solid #2f3931; }
  html[data-theme="dark"] .sc-share{ color:#c4e3d1; }
  html[data-theme="dark"] .swap-need{ color:#e1d5c0; background:#252014; border:1px solid #4d432b; }
  html[data-theme="dark"] .xh-pr{ background:#132318; border:1px solid #26442f; }
  html[data-theme="dark"] .xh-pr .v{ color:#c7e4d4; }
  html[data-theme="dark"] .xh-pr .v small{ color:#c4d3ca; }
  html[data-theme="dark"] .xh-pr .k{ color:#c4d3ca; }
  html[data-theme="dark"] .xh-row.live{ border-color:#2f543c; }
  html[data-theme="dark"] .xh-top em{ color:#bcdfc9; }
  html[data-theme="dark"] .fuel-sum{ background:#132318; border:1px solid #26442f; }
  html[data-theme="dark"] .fuel-sum.rated-on{ background:#14261a; border-color:#2a4a33; }
  html[data-theme="dark"] .fuel-sum.rated-close{ background:#252014; border-color:#4d432b; }
  html[data-theme="dark"] .fuel-sum.rated-off{ background:#221512; border-color:#452c27; }
  html[data-theme="dark"] .fuel-sum-t{ color:#c7e4d5; }
  html[data-theme="dark"] .fuel-streak{ color:#e1d5c0; }
  html[data-theme="dark"] .fuel-sum-line{ color:#c5ddd5; }
  html[data-theme="dark"] .fuel-nums{ color:#c7e4d5; }
  html[data-theme="dark"] .fuel-numbtn{ color:#bcdfc9; }
  html[data-theme="dark"] .frate{ border-top:1px dashed #26442f; }
  html[data-theme="dark"] .frate-lbl{ color:#c4d3ca; }
  html[data-theme="dark"] .frate-chip{ border:1px solid #2b4334; background:#1a1a1a; color:#c5ddd5; }
  html[data-theme="dark"] .frate-chip.on{ background:#14261a; color:#c4e3d1; }
  html[data-theme="dark"] .fchk-b{ border:1.5px solid #2b4334; background:#1a1a1a; color:#c4d3ca; }
  html[data-theme="dark"] .tl-fuelchip.full{ background:#142417; border-color:#274531; }
  html[data-theme="dark"] .tl-dot{ border:2.5px solid #34493a; }
  html[data-theme="dark"] .ord-row{ background:#1a1a1a; }
  html[data-theme="dark"] .ord-btns button{ background:#1a1a1a; }
  html[data-theme="dark"] .pl-dot.cur{ background:#274933; }
  html[data-theme="dark"] .pl-whybox .pl-howto{ background:#274933; color:#c9e5d5; }
  html[data-theme="dark"] .pl-rest-fill{ background:#274933; }
  html[data-theme="dark"] .pl-next{ background:#274933; color:#c9e5d5; }
  html[data-theme="dark"] .pl-share{ border:1.5px solid #2f543c; }
  html[data-theme="dark"] .stest-card{ background:#132318; border:1px solid #26442f; color:#c5ddd5; }
  html[data-theme="dark"] .stest-go{ background:#274933; color:#c9e5d5; }
  html[data-theme="dark"] .stest-link{ color:#bcdfc9; }
  html[data-theme="dark"] .st-sec{ color:#c7e4d5; }
  html[data-theme="dark"] .st-sec small{ color:#c4d3ca; }
  html[data-theme="dark"] .st-swings input{ border:1.5px solid #2b4334; }
  html[data-theme="dark"] .st-best{ background:#142419; border:1px solid #26442f; color:#c3e2d2; }
  html[data-theme="dark"] .st-note{ color:#c4d3ca; }
  html[data-theme="dark"] .st-res-kick{ color:#c1d8ca; }
  html[data-theme="dark"] .st-res-num{ color:#c8e5d6; }
  html[data-theme="dark"] .st-res-num span{ color:#c1d8ca; }
  html[data-theme="dark"] .st-gain{ color:#c3e2d2; }
  html[data-theme="dark"] .st-gain b{ color:#c8e5d6; }
  html[data-theme="dark"] .st-share{ background:#1a1a1a; color:#c4e3d1; }
  html[data-theme="dark"] .mob-test{ background:#121b21; border:1px solid #243540; }
  html[data-theme="dark"] .mob-t{ color:#c4d7e3; }
  html[data-theme="dark"] .mob-d{ color:#c1d1dc; }
  html[data-theme="dark"] .mob-d b{ color:#c4d7e3; }
  html[data-theme="dark"] .mob-opts button{ border:1.5px solid #273845; background:#1a1a1a; color:#c0d2de; }
  html[data-theme="dark"] .mob-opts button.on{ background:#14261a; color:#c4e3d1; }
  html[data-theme="dark"] .mob-res-num{ color:#c8e5d6; }
  html[data-theme="dark"] .mob-res-num span{ color:#c1d8ca; }
  html[data-theme="dark"] .mob-flag.ok{ background:#142419; border-color:#26442f; color:#c3e2d2; }
  html[data-theme="dark"] .mob-flag{ background:#241e13; border:1px solid #4a3f29; color:#e2d6c2; }
  html[data-theme="dark"] .wu-row.from-screen .wu-move::after{ color:#ded4bb; }
  html[data-theme="dark"] .pc-sdot{ border:2px solid #292929; }
  @media (prefers-color-scheme: dark) and (max-width: 760px){
  html:not([data-theme="light"]) .mobile-tabbar button.active{ background:#142417; }
  }
  @media (max-width: 760px){
  html[data-theme="dark"] .mobile-tabbar button.active{ background:#142417; }
  }
  /* ===== /GENERATED-DARK ===== */
