/* Brand: TrackA'gain. Spark Green #e1ff00, Black, White, Pale Silver #cac4b8. */
:root, :root[data-theme="dark"]{
  --spark:#e1ff00; --silver:#cac4b8;
  --bg:#000000; --surface:#0B0B09; --bg-elev:#0B0B09; --bg-sunken:#000000; --surface-elevated:#0B0B09;
  --text:#FFFFFF; --text-dim:#cac4b8; --text-faint:#8F8A80; --text-primary:#FFFFFF; --text-secondary:#cac4b8; --text-muted:#8F8A80;
  --border:rgba(255,255,255,.12); --divider:rgba(255,255,255,.12);
  --day-bg:#000000; --day-card:#0B0B09; --day-line:rgba(255,255,255,.12); --day-line-strong:rgba(255,255,255,.26);
  --day-green-line:rgba(225,255,0,.55); --day-green-tint:rgba(225,255,0,.07);
  --accent:#e1ff00; --accent-text:#000000; --accent-soft:rgba(225,255,0,.16);
  --primary:#e1ff00; --primary-contrast:#000000;
  --green:#e1ff00; --amber:#cac4b8; --red:#FFFFFF; --gold:#e1ff00;
  --success:#e1ff00; --warning:#cac4b8; --error:#FFFFFF;
  --danger:#ff8f8f; --danger-soft:rgba(255,99,99,.14); --danger-border:rgba(255,120,120,.38);
  --bonus:#F2B705; --bonus-ink:#1A1400; --bonus-soft:rgba(242,183,5,.22);
  --overlay:rgba(0,0,0,.72);
  --radius:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:20px; --radius-2xl:24px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --shadow:0 1px 0 rgba(225,255,0,.04) inset, 0 10px 28px rgba(0,0,0,.45);
  --shadow-lg:0 16px 40px rgba(0,0,0,.55);
  --glow:0 0 24px rgba(225,255,0,.28);
  --ease:cubic-bezier(.22,1,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:120ms; --dur:150ms; --dur-med:220ms;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fs-caption:11px; --fs-small:13px; --fs-body:15px; --fs-btn:14px; --fs-h3:17px; --fs-h2:20px; --fs-h1:28px;
  font-family:var(--font);
}
:root[data-theme="light"]{
  --spark:#e1ff00; --silver:#cac4b8;
  --bg:#FFFFFF; --surface:#FFFFFF; --bg-elev:#FFFFFF; --bg-sunken:#F4F4EF; --surface-elevated:#FFFFFF;
  --text:#000000; --text-dim:#4A4740; --text-faint:#6B665C; --text-primary:#000000; --text-secondary:#4A4740; --text-muted:#6B665C;
  --border:rgba(0,0,0,.14); --divider:rgba(0,0,0,.14);
  --day-bg:#FFFFFF; --day-card:#FFFFFF; --day-line:rgba(0,0,0,.14); --day-line-strong:#000000;
  --day-green-line:#000000; --day-green-tint:#FAFFDB;
  --accent:#000000; --accent-text:#000000; --accent-soft:rgba(225,255,0,.28);
  --primary:#e1ff00; --primary-contrast:#000000;
  --green:#000000; --amber:#6B665C; --red:#000000; --gold:#e1ff00;
  --success:#000000; --warning:#6B665C; --error:#000000;
  --danger:#c93a3a; --danger-soft:#ffe8e8; --danger-border:#f2b8b8;
  --bonus:#C98900; --bonus-ink:#1A1400; --bonus-soft:rgba(201,137,0,.18);
  --overlay:rgba(0,0,0,.46);
  --shadow:0 1px 2px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.06);
  --shadow-lg:0 16px 40px rgba(0,0,0,.12);
  --glow:0 0 20px rgba(225,255,0,.35);
}
html,body{height:100%;}
html{background:var(--bg);}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{overscroll-behavior:none;}
html.overlay-open,html.overlay-open body{overflow:hidden;}
body{margin:0;background:var(--bg);color:var(--text);min-height:100dvh;-webkit-font-smoothing:antialiased;
  font-size:var(--fs-body);line-height:1.45;padding:0;}
.app{max-width:720px;margin:0 auto;padding:12px 16px calc(88px + env(safe-area-inset-bottom));min-height:100dvh;overflow-x:hidden;overflow-x:clip;}
h1,h2,h3{margin:0 0 4px;letter-spacing:-0.03em;font-weight:700;}
h1{font-size:var(--fs-h1);} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);}
p{margin:0;}
.icon{display:inline-block;flex:0 0 auto;vertical-align:-3px;}
.logo-mark{width:28px;height:28px;border-radius:8px;display:block;color:var(--primary);flex:0 0 auto;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:4px 0 16px;gap:10px;min-width:0;}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;letter-spacing:-0.03em;min-width:0;color:var(--text);flex:1;}
.brand .word{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);}
.brand .word em{font-style:normal;color:var(--text);}
.topbar-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0;}
.topbar-date{font-size:12px;font-weight:600;color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.theme-toggle{width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--bg-elev);
  color:var(--text);display:inline-flex;align-items:center;justify-content:center;padding:0;}
.streak-pill{display:flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--text);
  padding:8px 12px;border-radius:999px;font-weight:700;font-size:13px;min-height:36px;}
:root[data-theme="dark"] .streak-pill{color:var(--primary);}
nav.tabs{position:fixed;bottom:0;left:0;right:0;background:var(--bg-elev);
  border-top:1px solid var(--border);
  display:flex;justify-content:center;z-index:50;padding-bottom:env(safe-area-inset-bottom);}
nav.tabs .inner{display:flex;max-width:720px;width:100%;}
nav.tabs button{flex:1;background:none;border:none;padding:10px 2px 8px;font-size:11px;color:var(--text-faint);
  display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font-family:inherit;min-width:0;
  min-height:52px;font-weight:600;transition:color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);}
nav.tabs button .ic{display:flex;align-items:center;justify-content:center;height:24px;line-height:1;}
nav.tabs button.active{color:var(--accent);font-weight:700;}
nav.tabs button:active{transform:scale(.96);}
.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px;box-shadow:var(--shadow);}
.card.flat{box-shadow:none;}
.section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:700;margin:22px 0 10px;}
.section-title:first-child{margin-top:0;}
.muted{color:var(--text-dim);}
.faint{color:var(--text-faint);}
.small{font-size:var(--fs-small);}
.row{display:flex;align-items:center;gap:10px;}
.row.between{justify-content:space-between;}
.row.wrap{flex-wrap:wrap;}
button{cursor:pointer;font-family:inherit;}
.btn{background:var(--primary);color:var(--primary-contrast);border:1px solid var(--primary);border-radius:var(--radius-md);padding:12px 16px;
  font-weight:700;font-size:var(--fs-btn);min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:transform var(--dur-fast) var(--ease), opacity var(--dur) var(--ease), filter var(--dur) var(--ease);}
:root[data-theme="light"] .btn:not(.ghost):not(.danger){border-color:#000000;}
.btn:active:not(:disabled){transform:scale(.97);}
.btn.secondary{background:var(--bg-sunken);color:var(--text);border:1px solid var(--border);}
.btn.ghost{background:none;color:var(--accent);border-color:transparent;padding:10px 12px;font-weight:700;min-height:44px;}
.btn.danger{background:none;color:var(--danger);border-color:transparent;padding:10px 12px;font-weight:600;min-height:44px;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:inherit;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text);
  border-radius:var(--radius-md);padding:12px 12px;font-size:16px;width:100%;min-height:44px;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;min-height:20px;margin:0;
  padding:0;border:1.5px solid var(--border);border-radius:6px;background:var(--bg-sunken);flex:0 0 auto;cursor:pointer;
  display:inline-grid;place-content:center;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);}
input[type=radio]{border-radius:999px;}
input[type=checkbox]::before,input[type=radio]::before{content:"";width:10px;height:10px;transform:scale(0);transition:transform var(--dur-fast) var(--ease);
  background:var(--spark);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,46% 62%);}
input[type=radio]::before{clip-path:none;border-radius:999px;}
input[type=checkbox]:checked,input[type=radio]:checked{background:var(--day-card, var(--bg-elev));border-color:var(--spark);}
input[type=checkbox]:checked::before,input[type=radio]:checked::before{transform:scale(1);}
input[type=checkbox]:focus,input[type=checkbox]:focus-visible,
input[type=radio]:focus,input[type=radio]:focus-visible{outline:none;box-shadow:none;border-color:var(--spark);}
.choice-field{font-family:inherit;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;
  padding:12px;border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);color:var(--text);
  font-size:16px;font-weight:600;text-align:left;cursor:pointer;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur-fast) var(--ease);}
.choice-field:active:not(:disabled){transform:scale(.99);}
.choice-field:focus,.choice-field:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.choice-field.is-disabled,.choice-field:disabled{opacity:.55;cursor:not-allowed;}
.choice-field-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.choice-field svg{flex:0 0 auto;color:var(--text-faint);}
.choice-list{display:flex;flex-direction:column;margin:0 -4px;}
.choice-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 8px;min-height:52px;
  background:none;border:0;border-bottom:1px solid var(--border);color:var(--text);font:inherit;font-weight:600;font-size:15px;
  text-align:left;cursor:pointer;}
.choice-row:last-child{border-bottom:none;}
.choice-row:active{background:color-mix(in srgb, var(--text) 5%, transparent);}
.choice-row.on{color:var(--accent);}
.choice-row-check{flex:0 0 auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--spark);}
.choice-row-label{flex:1;min-width:0;}
label{font-size:12px;color:var(--text-dim);font-weight:600;display:block;margin-bottom:6px;}
.field{margin-bottom:12px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--bg-sunken);
  font-size:13px;font-weight:600;color:var(--text-dim);border:1px solid var(--border);cursor:pointer;min-height:36px;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);}
.chip:active{transform:scale(.98);}
.chip.on{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary);}
:root[data-theme="light"] .chip.on{border-color:#000000;}
.tag{display:inline-block;font-size:11px;padding:2px 7px;border-radius:6px;background:var(--bg);
  border:1px solid var(--border);color:var(--text-dim);font-weight:600;margin-right:4px;}
.diffchip{flex:1;text-align:center;padding:12px 6px;border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);
  font-weight:700;cursor:pointer;font-size:14px;min-height:44px;transition:transform var(--dur-fast) var(--ease);}
.diffchip:active{transform:scale(.98);}
.diffchip.on-easy{background:var(--accent-soft);border-color:var(--primary);color:var(--accent);}
.diffchip.on-med{background:var(--bg);border-color:var(--text-dim);color:var(--text);}
.diffchip.on-hard{background:var(--text);border-color:var(--text);color:var(--bg);}
.ex-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;margin-bottom:10px;background:var(--bg-sunken);
  transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);}
.ex-card .name{font-weight:700;font-size:16px;letter-spacing:-0.02em;}
.suggest-box{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-md);padding:10px 12px;margin-top:8px;font-size:13.5px;font-weight:600;
  border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);}
.sb-line{line-height:1.4;}
.suggest-box,.prompt-box{position:relative;padding-right:40px;}
.sb-info{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:999px;border:0;background:none;padding:0;
  display:inline-flex;align-items:center;justify-content:center;color:inherit;opacity:.75;cursor:pointer;}
.prompt-box .sb-info{color:var(--accent);}
.sb-info:active{opacity:1;background:color-mix(in srgb, var(--text) 10%, transparent);}
.lower-box{background:var(--bonus-soft);color:var(--text);border-color:color-mix(in srgb, var(--bonus) 45%, transparent);}
.lower-box .sb-line{font-weight:800;}
.lb-note{margin-top:4px;font-size:12.5px;font-weight:500;line-height:1.45;color:var(--text-dim);}
.lower-box .btn.lb-use{margin-top:10px;min-height:38px;padding:8px 16px;font-size:13px;width:auto;}
.sb-label{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text);margin-bottom:3px;}
.coach-box .sb-line{font-weight:800;}
.coach-box.tone-adjust{background:var(--bonus-soft);color:var(--text);border-color:color-mix(in srgb, var(--bonus) 45%, transparent);}
.coach-box.tone-neutral{background:var(--bg-sunken);color:var(--text);border-color:var(--border);}
.coach-box .btn.lb-use{margin-top:10px;min-height:38px;padding:8px 16px;font-size:13px;width:auto;}
.coach-pop{animation:coachPop .42s var(--ease) both;}
@keyframes coachPop{0%{opacity:0;transform:translateY(8px) scale(.97)}60%{opacity:1;transform:translateY(0) scale(1.015)}100%{transform:none}}
.spot-meter{margin-top:10px;}
.spot-meter-label{font-size:12px;font-weight:700;color:var(--text-dim);line-height:1.35;}
.spot-slots{display:flex;gap:6px;margin-top:8px;}
.spot-slot{flex:1;height:8px;border-radius:999px;background:color-mix(in srgb, var(--text) 14%, transparent);
  transition:background var(--dur) var(--ease), transform var(--dur-fast) var(--ease);}
.spot-slot.on{background:var(--primary);transform:scaleY(1.15);}
:root[data-theme="light"] .spot-slot.on{background:#000000;}
.spot-live{min-height:18px;margin-top:8px;font-size:12.5px;font-weight:700;line-height:1.35;color:var(--text-dim);}
.spot-live:empty{display:none;margin:0;min-height:0;}
.spot-live.is-pr{color:var(--accent);}
.spot-live-tick{animation:spotLiveTick .28s var(--ease) both;}
@keyframes spotLiveTick{0%{opacity:.35;transform:translateY(3px)}100%{opacity:1;transform:none}}
.spot-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.spot-chip{appearance:none;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);
  border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:700;min-height:34px;cursor:pointer;
  transition:transform var(--dur-fast) var(--ease), background var(--dur) var(--ease), border-color var(--dur) var(--ease);}
.spot-chip:active{transform:scale(.97);}
:root[data-theme="light"] .spot-chip{background:rgba(255,255,255,.7);border-color:#000000;}
.ns-preview{min-height:18px;margin:8px 2px 0;font-size:12.5px;font-weight:600;line-height:1.35;color:var(--text-dim);}
.ns-preview:empty{display:none;}
.ns-preview.is-pr{color:var(--accent);font-weight:800;}

/* Training guide sheet */
.guide-item{border-bottom:1px solid var(--border);}
.guide-item:last-child{border-bottom:0;}
.guide-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 2px;font-size:15px;font-weight:700;color:var(--text);cursor:pointer;}
.guide-item summary::-webkit-details-marker{display:none;}
.guide-item summary svg{flex:0 0 auto;color:var(--text-faint);transition:transform var(--dur) var(--ease);}
.guide-item[open] summary svg{transform:rotate(180deg);}
.guide-body{padding:0 2px 16px;font-size:14px;line-height:1.55;color:var(--text-dim);}
.guide-body p{margin:0 0 8px;}
.guide-body ul,.guide-body ol{margin:0 0 8px;padding-left:20px;}
.guide-body li{margin-bottom:4px;}
.guide-body b{color:var(--text);}
.guide-eg{padding:10px 12px;border-radius:var(--radius-md);font-size:13px;background:color-mix(in srgb, var(--text) 6%, transparent);}
.guide-goal{padding:10px 12px;margin-bottom:8px;border:1px solid var(--border);border-radius:var(--radius-md);}
.guide-goal p{margin:4px 0 0;}
.guide-goal.on{border-color:var(--primary);background:var(--accent-soft);}
:root[data-theme="light"] .guide-goal.on{border-color:#000000;}
.guide-you{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;background:var(--primary);color:var(--primary-contrast);vertical-align:1px;}
.guide-card .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.sb-progress{margin-top:6px;font-size:12px;font-weight:600;color:var(--text-dim);}
.sb-progress .meter{height:4px;margin-top:6px;background:color-mix(in srgb, var(--text) 12%, transparent);}
.sb-change{background:none;border:0;padding:0;margin-top:4px;font-size:12.5px;font-weight:700;color:var(--text-dim);
  text-decoration:underline;text-underline-offset:3px;}
.set-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;min-height:44px;}
.set-row:last-child{border-bottom:none;}
.set-badge{width:24px;height:24px;border-radius:7px;background:var(--bg);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--text-faint);flex-shrink:0;}
.diff-tag{font-size:11px;padding:2px 7px;border-radius:6px;font-weight:700;}
.diff-easy{background:var(--accent-soft);color:var(--accent);}
.diff-mid{background:var(--bg-sunken);color:var(--text-dim);border:1px solid var(--border);}
.diff-hard{background:var(--text);color:var(--bg);}
.trophy{font-size:13px;}
.progress-track{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:10px;}
.progress-fill{height:100%;background:var(--accent);transition:width .25s var(--ease);}
.accordion-head{display:flex;justify-content:space-between;align-items:center;padding:14px;background:var(--bg-elev);
  border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;margin-bottom:0;min-height:52px;}
.accordion-body{padding:10px 2px 4px;}
.ex-list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;border-bottom:1px solid var(--border);gap:10px;cursor:pointer;min-height:52px;}
.ex-list-item:last-child{border-bottom:none;}
.ex-list-item .meta{font-size:12px;color:var(--text-faint);}
.rec-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.rec-head .close-x{flex:none;}
.rec-head-text{min-width:0;}
.rec-kicker{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;}
.rec-head h3{margin:0;font-size:20px;font-weight:800;letter-spacing:-0.02em;line-height:1.15;}
.rec-sub{font-size:12.5px;color:var(--text-faint);margin-top:3px;}
.rec-list{padding:4px 14px;}
.rec-row{gap:12px;}
.rec-row:active{opacity:.75;}
.rec-row-main{flex:1;min-width:0;}
.rec-row-name{font-size:15px;font-weight:700;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rec-row .meta{margin-top:2px;}
.rec-chip{flex:none;padding:6px 11px;font-size:13px;}
.rec-go{flex:none;display:inline-flex;color:var(--text-faint);margin-right:-4px;}
.records-pr{font-size:28px;font-weight:800;letter-spacing:-0.04em;}
.pr-hero{padding:20px 16px 16px;}
.pr-hero .hero-eyebrow{margin-bottom:6px;}
.pr-hero .records-pr{font-size:34px;line-height:1.1;}
.pr-hero-sub{color:var(--text-dim);font-size:13.5px;font-weight:600;margin:6px 0 16px;}
.pr-hero .stat-box{background:var(--bg-elev);border:1px solid var(--border);}
.pr-hero .stat-box .val{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.pr-when{min-width:0;}
.pr-when .small{margin-top:2px;}
.pr-val{flex:0 0 auto;font-size:13.5px;font-weight:800;letter-spacing:-0.02em;white-space:nowrap;padding:6px 11px;
  border-radius:999px;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text);}
.pr-row.current .pr-val{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary);}
:root[data-theme="light"] .pr-row.current .pr-val{border-color:#000000;}
.empty{text-align:center;color:var(--text-faint);padding:36px 10px;font-size:14px;}
.day-tag{background:var(--bg-sunken);color:var(--text-dim);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;}
.modal-bg{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center;z-index:100;}
.modal{background:var(--bg-elev);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:20px 18px calc(28px + env(safe-area-inset-bottom));
  width:100%;max-width:720px;max-height:88vh;overflow-y:auto;overscroll-behavior:contain;
  border:1px solid var(--border);border-bottom:none;box-shadow:var(--shadow-lg);}
.modal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px;}
.modal-top h3{font-size:17px;}
.sheet-grab{width:36px;height:5px;border-radius:999px;background:var(--text-faint);opacity:.5;margin:-10px auto 12px;}
.modal-bg.sheet-drag{background:transparent;}
.modal-bg.sheet-drag::before{content:'';position:absolute;inset:0;background:var(--overlay);opacity:var(--sheet-fade,1);}
.modal-bg.sheet-drag > .modal{position:relative;will-change:transform;}
.modal-bg.sheet-drag.dragging > .modal{user-select:none;-webkit-user-select:none;}
.modal-bg.sheet-drag.snapping > .modal{transition:transform .28s cubic-bezier(.2,.8,.2,1);}
.modal-bg.sheet-drag.snapping::before{transition:opacity .28s ease;}
@media (prefers-reduced-motion:reduce){
  .modal-bg.sheet-drag.snapping > .modal,.modal-bg.sheet-drag.snapping::before{transition:none;}
}
.close-x,.back-x{background:var(--bg-sunken);border:1px solid var(--border);border-radius:12px;font-size:18px;color:var(--text-dim);
  padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
.back-x{border:none;background:none;padding:0 8px 0 0;font-weight:700;}
.toast-wrap{position:fixed;left:16px;right:16px;bottom:calc(78px + env(safe-area-inset-bottom));margin:0 auto;width:max-content;max-width:min(85vw,420px);
  z-index:400;pointer-events:none;display:flex;justify-content:center;}
.toast{pointer-events:auto;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:12px 16px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);text-align:center;max-width:100%;
  opacity:0;transform:translateY(8px);}
.toast.toast-in{animation:toastIn var(--dur-med) var(--ease) forwards;}
.toast.toast-out{animation:toastOut 200ms var(--ease) forwards;}
.toast.pr{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary);}
.toast-action{background:none;border:0;padding:0 0 0 14px;margin:0;font:inherit;font-weight:800;color:inherit;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes toastOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)}}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.stat-box{background:var(--bg-sunken);border-radius:var(--radius-lg);padding:12px 6px;text-align:center;min-width:0;}
.stat-box .val{font-size:20px;font-weight:800;letter-spacing:-0.03em;}
.stat-box .lbl{font-size:11px;color:var(--text-faint);margin-top:2px;line-height:1.25;}
.hist-day{padding:14px 4px;border-bottom:1px solid var(--border);min-height:56px;}
.hist-day:last-child{border-bottom:none;}
.hist-tree{padding:4px 8px 8px;}
.hist-fold{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 6px;cursor:pointer;min-height:46px;}
.hist-fold .nm{font-weight:700;letter-spacing:-0.02em;}
.hist-fold.year .nm{font-size:18px;}
.hist-fold.month .nm{font-size:15px;}
.hist-fold.week .nm{font-size:13.5px;font-weight:600;color:var(--text-dim);}
.hist-fold .meta{font-size:12px;color:var(--text-faint);font-weight:600;white-space:nowrap;}
.hist-kids{margin:0 0 4px 8px;padding-left:12px;border-left:1px solid var(--border);}
.hist-tree .hist-day{padding:12px 6px;}
.recent-card{padding:4px 14px;}
.recent-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer;min-height:68px;
  transition:opacity var(--dur) var(--ease);}
.recent-row:last-child{border-bottom:none;}
.recent-row:active{opacity:.7;}
.date-tile{flex:0 0 auto;width:46px;height:46px;border-radius:var(--radius-md);background:var(--bg-sunken);border:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.date-tile .dd{font-size:17px;font-weight:800;letter-spacing:-0.03em;color:var(--text);}
.date-tile .mm{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-top:3px;}
.date-tile.latest{background:var(--primary);border-color:var(--primary);}
.date-tile.latest .dd,.date-tile.latest .mm{color:var(--primary-contrast);}
:root[data-theme="light"] .date-tile.latest{border-color:#000000;}
.recent-main{flex:1;min-width:0;}
.recent-main .nm{font-weight:700;font-size:15px;letter-spacing:-0.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.recent-main .small{margin-top:3px;line-height:1.35;}
.recent-go{flex:0 0 auto;color:var(--text-faint);display:flex;}
.past-toggle{width:100%;justify-content:space-between;margin-bottom:14px;}
.chart-box{position:relative;height:168px;margin-top:4px;}
.chart-tip{position:absolute;top:6px;transform:translateX(-50%);background:var(--text);color:var(--bg);
  font-size:12px;font-weight:700;padding:6px 8px;border-radius:8px;pointer-events:none;white-space:nowrap;z-index:2;}
.chip-scroll{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:6px;-webkit-overflow-scrolling:touch;margin-bottom:12px;}
.chip-scroll .chip{white-space:nowrap;flex:0 0 auto;}
.ex-card.done{border-color:var(--primary);background:var(--accent-soft);}
.done-badge{color:var(--green);font-weight:800;}
canvas{max-width:100%;}
a{color:var(--accent);}
::-webkit-scrollbar{width:0;height:0;}

.hero-card{background:linear-gradient(165deg, var(--accent-soft), var(--bg-elev) 64%);border:1px solid var(--border);
  border-radius:var(--radius-xl);padding:26px 22px;margin-bottom:14px;box-shadow:var(--shadow);}
.hero-eyebrow{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.hero-greet{font-size:28px;font-weight:800;letter-spacing:-0.04em;margin-bottom:6px;line-height:1.12;}
.hero-sub{color:var(--text-dim);font-size:14.5px;margin-bottom:16px;}
.hero-quote{font-size:14.5px;font-style:italic;color:var(--text-dim);border-left:3px solid var(--accent);
  padding-left:12px;margin-bottom:20px;line-height:1.5;font-weight:500;}
.hero-cta{width:100%;padding:16px;font-size:16px;border-radius:var(--radius-lg);}
.hero-meta{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;}
.hero-meta .pill{background:var(--bg-sunken);border:1px solid var(--border);border-radius:999px;padding:8px 13px;
  font-size:12.5px;color:var(--text-dim);font-weight:700;}
.session-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-soft);
  border:1px solid color-mix(in srgb, var(--primary) 45%, var(--border));border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:14px;}
.session-bar .lbl{font-weight:700;color:var(--text);font-size:13.5px;min-width:0;line-height:1.35;flex:1;text-align:center;}
.session-clock{font-variant-numeric:tabular-nums;font-weight:800;font-size:18px;letter-spacing:-0.03em;line-height:1;}
.slot-clock{display:inline-flex;align-items:flex-start;line-height:1;vertical-align:top;}
.slot{display:inline-block;height:1em;overflow:hidden;}
.slot-reel{display:flex;flex-direction:column;will-change:transform;
  transition:transform 560ms cubic-bezier(.34,1.45,.5,1);}
.slot-reel > span{display:block;height:1em;line-height:1;text-align:center;}
.slot-sep{display:inline-block;height:1em;line-height:1;}
:root[data-theme="dark"] .session-bar .lbl{color:var(--primary);}
.session-bar .btn{flex:0 0 auto;}
.weigh-card{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:var(--accent-soft);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:14px;cursor:pointer;}
.weigh-card .copy{min-width:0;}
.weigh-card .title{font-weight:800;color:var(--accent);font-size:14px;}
.weigh-card .sub{font-size:12.5px;color:var(--text-dim);margin-top:3px;}
.bw-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.bw-main{min-width:0;}
.bw-label{font-size:15px;font-weight:700;letter-spacing:-0.01em;color:var(--text);margin-bottom:2px;}
.bw-value{font-size:52px;font-weight:800;letter-spacing:-0.045em;line-height:1;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;}
.bw-value .unit{margin-left:6px;font-size:20px;font-weight:800;letter-spacing:0;color:var(--text);}
.bw-change{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto;padding-bottom:4px;}
.bw-delta{padding:5px 11px;border-radius:999px;border:1px solid var(--day-line-strong);background:var(--day-bg);
  font-size:13px;font-weight:800;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;}
.bw-since{font-size:11.5px;font-weight:600;color:var(--text-faint);white-space:nowrap;}
.share-card{background:linear-gradient(165deg, var(--primary) 0%, #FFFFFF 78%);color:#000000;border-radius:var(--radius-xl);
  padding:24px 20px;border:1px solid var(--border);}
:root[data-theme="dark"] .share-card{background:linear-gradient(165deg, rgba(225,255,0,.18) 0%, var(--bg-elev) 42%, #000000 100%);
  color:var(--text);border-color:rgba(225,255,0,.22);}
:root[data-theme="dark"] .share-brand{color:var(--primary);opacity:1;}
.share-brand{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:14px;}
.share-title{font-size:21px;font-weight:800;margin-bottom:4px;letter-spacing:-0.02em;}
.share-date{font-size:13.5px;opacity:.9;margin-bottom:20px;}
.share-stats{display:grid;grid-template-columns:1fr 1fr;row-gap:16px;margin-bottom:18px;}
.share-stats .val{font-size:23px;font-weight:800;}
.share-stats .lbl{font-size:11px;opacity:.85;text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.share-exlist{font-size:13.5px;opacity:.95;line-height:1.65;margin-bottom:16px;}
.share-quote{font-weight:700;font-size:14.5px;line-height:1.4;margin-bottom:14px;}
.share-streak{font-size:12.5px;opacity:.9;font-weight:700;}

/* Workout complete card (centered sheet after Finish) */
.done-hero{margin:-20px -18px 0;padding:22px 18px 18px;text-align:center;
  background:linear-gradient(165deg, rgba(225,255,0,.26), rgba(225,255,0,.05) 70%, transparent);
  border-bottom:1px solid var(--day-green-line);}
:root[data-theme="light"] .done-hero{background:var(--spark);border-bottom-color:#000000;}
.done-check{position:relative;width:58px;height:58px;margin:0 auto 12px;border-radius:999px;background:var(--spark);color:#000000;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--glow);animation:donePop .55s var(--ease) both;}
.done-check::after{content:'';position:absolute;inset:0;border-radius:inherit;border:2px solid var(--spark);
  animation:doneRing 1.1s .3s var(--ease-out) both;pointer-events:none;}
:root[data-theme="light"] .done-check{background:#000000;color:var(--spark);box-shadow:none;}
:root[data-theme="light"] .done-check::after{border-color:#000000;}
.done-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--spark);}
:root[data-theme="light"] .done-kicker{color:#000000;}
.done-day{margin-top:4px;font-size:20px;font-weight:800;letter-spacing:-0.03em;line-height:1.2;color:var(--text);overflow-wrap:anywhere;}
.done-time{text-align:center;padding:16px 0 12px;}
.done-time .val{font-size:38px;font-weight:800;letter-spacing:-0.04em;line-height:1;font-variant-numeric:tabular-nums;}
.done-time .lbl,.done-stats .lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-top:6px;}
.done-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.done-stats > div{min-width:0;padding:10px 8px;text-align:center;background:var(--day-card);border:1px solid var(--day-line);border-radius:14px;}
:root[data-theme="light"] .done-stats > div{border-color:#000000;}
.done-stats .val{font-size:22px;font-weight:800;letter-spacing:-0.03em;line-height:1.1;font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.done-stats .unit{font-size:12px;font-weight:700;color:var(--text-dim);margin-left:2px;}
.done-stats .hot{border-color:var(--day-green-line);background:var(--day-green-tint);}
.done-stats .hot .val{color:var(--spark);}
:root[data-theme="light"] .done-stats .hot{background:var(--spark);border-color:#000000;}
:root[data-theme="light"] .done-stats .hot .val{color:#000000;}
.done-prs{margin-top:12px;padding:2px 12px;border:1px solid var(--day-line);border-radius:14px;}
:root[data-theme="light"] .done-prs{border-color:#000000;}
.done-pr{display:flex;align-items:center;gap:10px;min-height:38px;border-top:1px solid var(--day-line);}
.done-pr:first-child{border-top:0;}
.done-pr .ic{display:inline-flex;flex:0 0 auto;color:var(--bonus);}
.done-pr .nm{flex:1;min-width:0;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.done-pr .pv{flex:0 0 auto;font-size:13px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums;}
.done-pr-more{padding:8px 0;border-top:1px solid var(--day-line);font-size:12px;font-weight:700;color:var(--text-faint);}
.done-line{margin:14px 0 4px;text-align:center;font-size:14px;font-weight:600;line-height:1.4;color:var(--text);}
.done-muscles{text-align:center;font-size:12px;color:var(--text-faint);}
.done-streak{display:flex;align-items:center;gap:6px;width:max-content;max-width:100%;margin:12px auto 16px;padding:7px 13px;
  border-radius:999px;background:var(--accent-soft);border:1px solid var(--day-green-line);font-size:12.5px;font-weight:800;color:var(--text);}
:root[data-theme="dark"] .done-streak{color:var(--spark);}
.done-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.done-actions .btn{width:100%;min-height:48px;}
:root[data-theme="dark"] .done-actions .btn:not(.secondary){box-shadow:var(--glow);}
@keyframes donePop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@keyframes doneRing{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.settings-footer{margin-top:28px;margin-bottom:6px;padding:22px 18px 18px;text-align:center;
  background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);}
.settings-footer .logo-mark{width:32px;height:32px;margin:0 auto 12px;}
.settings-footer .brand-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px;}
.settings-footer .credit-line{margin-top:2px;font-size:15px;font-weight:600;color:var(--text);line-height:1.45;}
.settings-footer .copy{margin-top:10px;font-size:12.5px;font-weight:600;letter-spacing:.01em;
  color:var(--text-faint);}
.settings-footer .credit-mail{color:var(--text-faint);text-decoration:none;font-weight:600;}
.settings-footer .credit-mail:active{opacity:.7;}
.chai-support{margin-top:18px;margin-bottom:4px;text-align:center;}
.chai-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:217px;height:60px;border-radius:16px;
  background:var(--primary);color:#000000;border:1.5px solid var(--primary);font-weight:800;font-size:18px;letter-spacing:-0.01em;text-decoration:none;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease);}
.chai-btn:active{transform:scale(.97);}
:root[data-theme="dark"] .chai-btn{box-shadow:var(--glow);}
:root[data-theme="light"] .chai-btn{border-color:#000000;}
.chai-hint{margin-top:8px;font-size:12px;color:var(--text-faint);font-weight:600;}
.app-ver{font-size:15px;font-weight:800;letter-spacing:-0.01em;}
.update-head{padding:4px 2px 2px;}
.update-ver{font-size:30px;font-weight:800;letter-spacing:-0.04em;line-height:1.1;}
.update-list{margin:0 0 16px;padding-left:20px;display:grid;gap:6px;font-size:14px;line-height:1.45;color:var(--text);}
.btn.update-cta{width:100%;text-decoration:none;}

.day-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;margin-bottom:10px;box-shadow:var(--shadow);
  transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);}
.day-card.today{border-color:var(--accent);}
.day-card .dayname{font-weight:800;font-size:15.5px;}
.day-card .exline{font-size:13px;color:var(--text-dim);margin-top:5px;line-height:1.5;}
/* Day editor: true black + spark green; light mode is white with black lines.
   The app-wide versions of these rules live in the "Editor style" block at the end. */
.modal.day-sheet{padding-bottom:0;}.day-name input{font-size:20px;font-weight:800;letter-spacing:-0.02em;padding:14px;}
.day-live{background:var(--accent-soft);border:1px solid var(--day-green-line, var(--border));border-radius:var(--radius-md);padding:10px 12px;font-size:13px;color:var(--text);margin:0 0 12px;line-height:1.4;}
.day-editor-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px;}
.day-count{display:inline-flex;align-items:center;gap:10px;min-width:0;font-size:20px;font-weight:800;letter-spacing:-0.02em;text-transform:none;color:var(--text);line-height:1.2;}
.day-count-meta{font-size:13px;font-weight:700;letter-spacing:0;color:var(--text-faint);white-space:nowrap;}
.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:26px;padding:0 10px;border-radius:999px;
  background:var(--spark);color:#000000;font-size:14px;font-weight:800;letter-spacing:0;}
:root[data-theme="light"] .count-pill{box-shadow:inset 0 0 0 1px #000000;}
.day-editor-bar .day-copy{flex:0 0 auto;min-height:40px;padding:8px 10px;font-weight:800;}
.day-wu-reset{flex:0 0 auto;width:40px;height:40px;border-radius:999px;background:var(--day-bg);border:1px solid var(--day-line-strong);color:var(--text);}
.day-wu-reset:active{background:var(--spark);color:#000000;border-color:var(--spark);}
:root[data-theme="light"] .day-wu-reset{border-color:#000000;}
.day-hint{margin:0 0 12px;font-size:12.5px;color:var(--text-faint);line-height:1.45;}
.group-note{margin:0 0 10px;font-size:12.5px;color:var(--text-dim);}
.group-note.warn{color:var(--danger);font-weight:700;}
[data-group-bar] .btn.secondary{width:100%;margin-bottom:12px;white-space:normal;line-height:1.25;text-align:center;
  background:transparent;color:var(--spark);border:1.5px solid var(--spark);font-weight:800;}
:root[data-theme="light"] [data-group-bar] .btn.secondary{background:var(--spark);color:#000000;border-color:#000000;}
.day-rows{min-width:0;}

.plan-row{position:relative;background:var(--day-card, var(--bg-elev));border:1px solid var(--day-line, var(--border));border-radius:16px;
  margin-bottom:10px;overflow:hidden;min-width:0;transition:border-color var(--dur) var(--ease);}
.plan-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--spark);}
:root[data-theme="light"] .plan-row{border-color:#000000;}
:root[data-theme="light"] .plan-row::before{width:5px;border-right:1px solid #000000;}
.plan-row.open{border-color:var(--day-green-line);}
.plan-row.selected{border-color:var(--spark);background:linear-gradient(var(--day-green-tint),var(--day-green-tint)),var(--day-card);}
:root[data-theme="light"] .plan-row.selected{border-color:#000000;box-shadow:inset 0 0 0 1px #000000;background:var(--day-green-tint);}
.plan-head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;min-width:0;cursor:pointer;}
.plan-check{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0;}
.plan-check input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--spark);cursor:pointer;}
.plan-idx{flex:0 0 auto;width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--spark);color:#000000;font-size:13px;font-weight:800;}
:root[data-theme="light"] .plan-idx{box-shadow:inset 0 0 0 1px #000000;}
.plan-copy{flex:1;min-width:0;}
.plan-copy .nm{font-weight:800;font-size:15.5px;letter-spacing:-0.02em;line-height:1.25;color:var(--text);overflow-wrap:anywhere;}
.plan-summary{margin-top:3px;font-size:12.5px;font-weight:700;color:var(--spark);font-variant-numeric:tabular-nums;line-height:1.35;}
:root[data-theme="light"] .plan-summary{display:inline-block;color:#000000;background:rgba(225,255,0,.6);padding:1px 7px;border-radius:6px;}
.plan-chev{flex:0 0 auto;width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--text);border:1px solid var(--day-line-strong);transition:transform var(--dur-med) var(--ease), background var(--dur) var(--ease);}
.plan-row.open .plan-chev{transform:rotate(180deg);background:var(--spark);color:#000000;border-color:var(--spark);}
:root[data-theme="light"] .plan-row.open .plan-chev{border-color:#000000;}
.plan-body{display:none;padding:0 12px 14px 14px;}
.plan-row.open .plan-body{display:block;}
.plan-sub{font-size:12.5px;color:var(--text-faint);margin:-4px 0 12px;line-height:1.35;}
.hold-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.hold-part{margin:0;}
.hold-part label{margin-bottom:4px;}
.plan-hold .hold-fields{margin-top:0;}
.plan-hold .hold-part input{padding:8px 2px;font-size:15px;}
.plan-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;background:var(--day-bg);
  border:1px solid var(--day-line);border-radius:14px;}
.plan-metrics > div,.plan-extra > div{min-width:0;}
.plan-metrics.hold{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.7fr);}
.plan-metrics label{text-align:center;}
.plan-metrics input{text-align:center;padding:10px 2px;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;background:var(--day-card);min-width:0;}
.plan-metrics > div:first-child input{border-color:var(--spark);color:var(--spark);}
:root[data-theme="light"] .plan-metrics > div:first-child input{border-color:#000000;color:#000000;background:rgba(225,255,0,.55);}
.plan-metrics input[type=number]::-webkit-outer-spin-button,
.plan-metrics input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.plan-metrics input[type=number]{-moz-appearance:textfield;appearance:textfield;}
.plan-extra{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(90px,.7fr);gap:8px;margin-top:10px;}
.plan-extra.load{grid-template-columns:minmax(0,1.3fr) minmax(80px,.55fr) minmax(100px,.7fr);}
.plan-extra input{min-width:0;}
.plan-drop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;background:var(--day-bg);
  border:1px solid var(--day-line);border-radius:12px;cursor:pointer;line-height:1.35;}
.plan-drop{font-size:13.5px;font-weight:700;color:var(--text);}
.plan-drop .hint{color:var(--text-faint);font-weight:600;}
input.switch{-webkit-appearance:none;appearance:none;position:relative;flex:0 0 auto;width:44px;min-width:44px;height:26px;min-height:26px;
  margin:0;padding:0;border:none;border-radius:999px;background:var(--day-line-strong, #8F8A80);cursor:pointer;transition:background var(--dur) var(--ease);}
input.switch::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#FFFFFF;
  transition:transform var(--dur-med) var(--ease);}
input.switch:checked{background:var(--spark);}
input.switch:checked::after{transform:translateX(18px);background:#000000;}
:root[data-theme="light"] input.switch{background:#cac4b8;box-shadow:inset 0 0 0 1px #000000;}
:root[data-theme="light"] input.switch:checked{background:var(--spark);}
.plan-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.plan-links .btn{width:100%;min-width:0;padding:10px 8px;white-space:normal;line-height:1.2;text-align:center;
  background:transparent;color:var(--spark);border:1.5px solid var(--day-green-line);font-weight:800;}
:root[data-theme="light"] .plan-links .btn{color:#000000;background:#FFFFFF;}
.plan-tools{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--day-line);}
.plan-tools .iconbtn{width:42px;height:42px;border-radius:12px;background:var(--day-bg);border:1px solid var(--day-line-strong);color:var(--text);}
.plan-tools .iconbtn:active:not(:disabled){background:var(--spark);color:#000000;border-color:var(--spark);}
.plan-tools .iconbtn.danger{margin-left:auto;width:auto;padding:0 14px;gap:6px;font-size:13.5px;font-weight:800;
  background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger);}
.plan-tools .iconbtn.danger:active{background:var(--danger-border);color:var(--danger);}

.day-sheet .day-editor-actions{position:sticky;bottom:0;z-index:3;margin:16px -18px 0;
  padding:12px 18px calc(14px + env(safe-area-inset-bottom));background:var(--day-bg);border-top:1px solid var(--day-line);}
.day-action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.day-action-row:has(> .btn:only-child){grid-template-columns:1fr;}
.day-action-row .btn{width:100%;min-height:50px;font-weight:800;font-size:15px;white-space:nowrap;padding:12px 10px;}
.day-sheet .btn.day-add{background:transparent;color:var(--spark);border:1.5px dashed var(--spark);}
:root[data-theme="light"] .day-sheet .btn.day-add{color:#000000;border-color:#000000;background:#FFFFFF;}
.day-sheet .day-save{background:var(--spark);color:#000000;border-color:var(--spark);box-shadow:var(--glow);}
:root[data-theme="light"] .day-sheet .day-save{border-color:#000000;box-shadow:none;}
.plan-metrics.wu{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.65fr);}
.plan-metrics.wu .wu-name input{text-align:left;padding-left:10px;padding-right:10px;font-size:15px;}
.day-foot{text-align:center;margin:8px 0 0;font-size:12px;color:var(--text-faint);}
.iconbtn{background:var(--bg);border:1px solid var(--border);border-radius:10px;width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px;padding:0;flex:0 0 auto;
  transition:transform var(--dur-fast) var(--ease);}
.iconbtn:active:not(:disabled){transform:scale(.96);}
.iconbtn:disabled{opacity:.35;}
.iconbtn.danger{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border);}
.rowbtns{display:flex;gap:6px;flex:0 0 auto;}
.pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.pick-tile{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;
  text-align:left;font-weight:700;font-size:14px;color:var(--text);min-height:64px;transition:transform var(--dur) var(--ease);}
.pick-tile .cnt{display:block;font-size:11px;color:var(--text-faint);font-weight:600;margin-top:3px;}
.region-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-weight:800;margin:14px 0 8px;}
.region-label:first-child{margin-top:0;}
.pick-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 4px;
  border-bottom:1px solid var(--border);cursor:pointer;min-height:52px;}
.pick-item:last-child{border-bottom:none;}
.pick-item .nm{font-weight:600;font-size:14.5px;}
.pick-item .sub{font-size:11.5px;color:var(--text-faint);margin-top:3px;}
.alt-item{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;margin-bottom:9px;background:var(--bg-sunken);
  transition:transform var(--dur) var(--ease);}
.alt-item .why{font-size:12.5px;color:var(--text-dim);margin-top:4px;line-height:1.45;}
.notfound{background:var(--accent-soft);border-radius:var(--radius-lg);padding:14px;margin-top:14px;text-align:center;}
.notfound p{font-size:13px;color:var(--text-dim);margin-bottom:10px;}
.search-wrap{position:relative;margin-bottom:12px;}
.search-wrap input{padding-left:40px;}
.search-wrap .mag{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.6;display:flex;}

.warn-box{background:var(--bg-sunken);border:1px solid var(--text);color:var(--text);
  border-radius:var(--radius-md);padding:10px 12px;font-size:12.5px;font-weight:600;margin-bottom:10px;line-height:1.45;}
.warn-box .pick{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--text);font-weight:600;cursor:pointer;}
.warn-box .pick input{width:auto;min-height:auto;}
.prompt-box{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 50%, var(--border));border-radius:var(--radius-md);padding:11px 12px;margin-top:8px;}
.prompt-box .ph{font-weight:800;color:var(--accent);font-size:14px;line-height:1.35;}
.prompt-box .pn{font-size:12.5px;color:var(--text-dim);margin-top:4px;line-height:1.45;}
.prompt-box .row{margin-top:10px;flex-wrap:wrap;}
.prompt-box .btn{padding:10px 10px;font-size:13px;flex:1;}
.meter{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:8px;}
.meter span{display:block;height:100%;background:var(--accent);}
.mw-row{display:flex;align-items:center;gap:10px;padding:6px 0;}
.mw-row .nm{font-size:13px;font-weight:600;width:82px;flex:0 0 auto;}
.mw-bar{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden;}
.mw-bar span{display:block;height:100%;background:var(--accent);}
.mw-val{font-size:12px;color:var(--text-faint);font-weight:700;width:64px;text-align:right;flex:0 0 auto;}
.rest-alert-modal{border-radius:20px;max-width:340px;width:88%;padding:22px 20px;text-align:center;animation:none;border:1px solid var(--primary);}
.rest-alert-kicker{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;}
.hit-card{border:1px solid var(--day-line);border-radius:var(--radius-lg);padding:16px 16px 16px 18px;margin-bottom:12px;background:var(--day-card);
  box-shadow:var(--shadow);overflow:hidden;}
.hit-card.done{border-color:var(--day-green-line);background:linear-gradient(var(--day-green-tint),var(--day-green-tint)),var(--day-card);}
:root[data-theme="light"] .hit-card{border-color:#000000;}
.hit-card .name{font-weight:800;font-size:16.5px;letter-spacing:-0.02em;line-height:1.25;overflow-wrap:anywhere;}
.hit-icon{width:44px;height:44px;border-radius:14px;background:var(--primary);color:var(--primary-contrast);
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid #000000;}
.hit-muscle{display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 8px;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-dim);}
.hit-target{font-size:13px;color:var(--text-dim);font-weight:600;margin-top:2px;}
.set-dots{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px;}
.set-dot{width:12px;height:12px;border-radius:999px;border:1.5px solid var(--border);background:transparent;}
.set-dot.on{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-soft);}
.set-dot.bonus{width:14px;height:14px;background:var(--bonus);border-color:var(--bonus);box-shadow:0 0 0 3px var(--bonus-soft);}
.set-dot.fresh{animation:dotFill .5s var(--ease) both;}
@keyframes dotFill{0%{transform:scale(.4);opacity:.3}60%{transform:scale(1.35);opacity:1}100%{transform:scale(1)}}
.hit-progress-msg{margin-top:2px;color:var(--accent);font-weight:700;}
.hit-done-msg{margin-top:2px;color:var(--success);font-weight:700;}
.hit-bonus-msg{margin-top:2px;color:var(--bonus);font-weight:800;}
.badge-bonus{display:inline-flex;align-items:center;gap:4px;background:var(--bonus);color:var(--bonus-ink);
  font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;flex:0 0 auto;}
.set-badge.bonus{background:var(--bonus);border-color:var(--bonus);color:var(--bonus-ink);}
.hit-last,.hit-suggest{border-radius:var(--radius-md);padding:10px 12px;margin-top:10px;font-size:13px;line-height:1.4;}
.hit-last{background:var(--bg-sunken);color:var(--text-dim);}
.hit-last strong,.hit-suggest strong{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px;color:var(--text-faint);}
.hit-suggest{background:var(--accent-soft);color:var(--accent);font-weight:600;}
.hit-prog{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12.5px;min-height:16px;}
.hit-prog .set-dots{margin:0;}
.hit-prog span{margin:0;}
.hit-ref{margin-top:8px;font-size:12.5px;color:var(--text-faint);}

/* Today's sets: plain rows, no box. */
.today-sets{margin-top:12px;}
.ts-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px;}
.ts-title{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);}
.ts-more{background:none;border:0;padding:4px 0;font-size:12.5px;font-weight:700;color:var(--accent);}
:root[data-theme="light"] .ts-more{text-decoration:underline;text-underline-offset:3px;}
.ts-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto 32px;align-items:center;gap:10px;min-height:38px;
  border-top:1px solid var(--border);cursor:pointer;border-radius:8px;transition:background var(--dur) var(--ease);}
.ts-row:active{background:color-mix(in srgb, var(--text) 6%, transparent);}
.ts-row.editing{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--primary);border-top-color:transparent;}
:root[data-theme="light"] .ts-row.editing{box-shadow:inset 0 0 0 1.5px #000000;}
.ts-row.editing + .ts-row{border-top-color:transparent;}
.ts-sub{border-top:0;min-height:32px;padding-left:10px;}
.ts-sub .ts-val{font-size:13px;font-weight:600;color:var(--text-dim);}
.ts-branch{align-self:stretch;position:relative;}
.ts-branch::before{content:"";position:absolute;left:0;top:0;height:50%;width:10px;
  border-left:1.5px solid var(--text-faint);border-bottom:1.5px solid var(--text-faint);border-bottom-left-radius:6px;opacity:.7;}
.ts-num{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:var(--text-dim);border:1px solid var(--border);font-variant-numeric:tabular-nums;}
.ts-row.bonus .ts-num{background:var(--bonus);border-color:var(--bonus);color:var(--bonus-ink);}
.ts-row.warmup .ts-num{border-style:dashed;color:var(--text-faint);}
.ts-row.warmup .ts-val{color:var(--text-dim);}
.ts-val{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ts-tag{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-left:4px;}
.ts-feel{font-size:12px;font-weight:600;color:var(--text-faint);}
.ts-del{width:32px;height:32px;border-radius:8px;border:0;background:none;color:var(--text-faint);
  display:inline-flex;align-items:center;justify-content:center;padding:0;}
.ts-del:active{background:color-mix(in srgb, var(--text) 10%, transparent);color:var(--text);}
.next-set.is-editing{box-shadow:inset 0 0 0 1.5px var(--primary);}
:root[data-theme="light"] .next-set.is-editing{box-shadow:inset 0 0 0 1.5px #000000;}

/* Inline logger for the next set. */
.next-set{margin-top:12px;padding:10px;border-radius:var(--radius-md);background:color-mix(in srgb, var(--text) 5%, transparent);}
.ns-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px;margin-bottom:8px;padding:0 2px;}
.ns-title{font-size:13px;font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ns-ref{font-size:12px;font-weight:600;color:var(--text-faint);}
.ns-wu{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:700;color:var(--text-dim);cursor:pointer;flex:0 0 auto;}
.ns-wu input{appearance:none;-webkit-appearance:none;width:30px;height:18px;min-height:0;padding:0;margin:0;border-radius:999px;
  border:1px solid var(--border);background:var(--surface);position:relative;cursor:pointer;flex:0 0 auto;}
.ns-wu input::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:999px;background:var(--text-faint);
  transition:transform var(--dur) var(--ease), background var(--dur) var(--ease);}
.ns-wu input:checked{background:var(--primary);border-color:var(--primary);}
.ns-wu input:checked::after{transform:translateX(12px);background:var(--primary-contrast);}
:root[data-theme="light"] .ns-wu input:checked{border-color:#000000;}
.ns-wu input:focus{box-shadow:none;}
.ns-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ns-steps.single{grid-template-columns:1fr;}
.stp{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;height:46px;border-radius:var(--radius-md);
  background:var(--surface);border:1px solid var(--border);overflow:hidden;}
.stp-btn{height:100%;border:0;background:none;color:var(--text);display:inline-flex;align-items:center;justify-content:center;padding:0;}
.stp-btn:active{background:color-mix(in srgb, var(--text) 10%, transparent);}
.stp-val{display:flex;align-items:baseline;justify-content:center;gap:3px;margin:0;min-width:0;cursor:text;}
.stp-val input{width:3ch;min-width:1.5ch;max-width:70%;min-height:0;padding:0;border:0;border-radius:0;background:none;text-align:center;
  font-size:17px;font-weight:800;letter-spacing:-0.02em;color:var(--text);font-variant-numeric:tabular-nums;
  -moz-appearance:textfield;appearance:textfield;}
.stp-val input:focus{box-shadow:none;}
.stp-val input::-webkit-outer-spin-button,.stp-val input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.stp-val span{font-size:11px;font-weight:700;color:var(--text-faint);white-space:nowrap;}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:8px;padding:3px;border-radius:var(--radius-md);
  background:var(--surface);border:1px solid var(--border);}
.seg button{height:30px;border:0;border-radius:9px;background:none;font-size:13px;font-weight:600;color:var(--text-dim);padding:0;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);}
.seg button.on{background:var(--primary);color:var(--primary-contrast);font-weight:800;}
:root[data-theme="light"] .seg button.on{box-shadow:inset 0 0 0 1px #000000;}

.btn.add-set{flex:1;width:100%;margin:0;min-height:48px;font-size:15px;border-radius:var(--radius-lg);}
.hit-actions{display:flex;gap:8px;margin-top:10px;}
.hit-actions .drop-btn{flex:0 0 38%;width:auto;min-height:48px;padding:0 10px;border-radius:var(--radius-lg);font-size:13.5px;font-weight:700;
  background:var(--surface);border:1px solid var(--border);color:var(--text);}
.hit-actions .expand-btn{flex:1;width:100%;margin:0;min-height:44px;gap:6px;border-radius:var(--radius-lg);font-size:14px;font-weight:700;
  background:transparent;border:1.5px dashed var(--text-faint);color:var(--text-dim);}
.hit-actions .expand-btn:active{background:color-mix(in srgb, var(--text) 6%, transparent);}
:root[data-theme="light"] .hit-actions .expand-btn{border-color:rgba(0,0,0,.45);color:#000000;}
.ex-card{background:var(--surface);}
.fab{position:fixed;right:max(16px, env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom));
  width:56px;height:56px;border-radius:18px;border:none;background:var(--primary);color:var(--primary-contrast);
  box-shadow:var(--shadow-lg);z-index:40;display:none;align-items:center;justify-content:center;}
:root[data-theme="light"] .fab{border:1px solid #000000;}
.tag.strength{border-color:var(--amber);color:var(--amber);}
.stepper{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0;}
.stepper .v{font-size:26px;font-weight:800;min-width:110px;text-align:center;}
.stepper button{width:48px;height:48px;border-radius:14px;border:1px solid var(--border);
  background:var(--bg-sunken);color:var(--text);font-size:20px;font-weight:700;}

.superset-wrap{border:1.5px dashed var(--accent);border-radius:var(--radius-lg);padding:12px 10px;margin-bottom:14px;background:var(--accent-soft);min-width:0;}
.superset-wrap .ss-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
.superset-wrap .ss-label .btn{margin-left:auto;padding:6px 10px;min-height:36px;font-size:13px;flex:0 0 auto;}
.superset-wrap .ex-card,.superset-wrap .hit-card{margin-bottom:10px;background:var(--bg-elev);}
.superset-wrap .ex-card:last-child,.superset-wrap .hit-card:last-child{margin-bottom:0;}
.superset-wrap .plan-row{margin-bottom:10px;}
.superset-wrap .plan-row:last-child{margin-bottom:0;}
.badge-ss{display:inline-flex;align-items:center;gap:4px;background:var(--primary);color:var(--primary-contrast);
  border:1px solid #000000;
  font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;flex:0 0 auto;}
.ss-round{font-size:12.5px;font-weight:700;color:var(--text-dim);margin:-2px 0 10px;}
.ss-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.ss-actions .btn{width:100%;}
.ss-block{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;margin-bottom:12px;background:var(--bg-elev);}
.ss-block .name{font-weight:800;font-size:15.5px;letter-spacing:-0.02em;margin-bottom:2px;}
.badge-drop{display:inline-flex;align-items:center;gap:4px;background:var(--text);color:var(--bg);
  font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;flex:0 0 auto;}
.dropset-row{flex-wrap:wrap;}
.hint-oftendrop{font-size:11.5px;color:var(--accent);font-weight:700;margin-top:6px;}
.stage-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.stage-row .stage-num{width:18px;flex:0 0 auto;font-size:12px;color:var(--text-faint);font-weight:700;}
.row-select{width:auto !important;margin-top:3px;flex:0 0 auto;min-height:auto;}
.skel{background:linear-gradient(90deg, var(--bg-sunken) 0%, var(--surface-elevated) 50%, var(--bg-sunken) 100%);
  background-size:200% 100%;animation:skel 1.2s ease infinite;border-radius:8px;height:14px;}
@keyframes skel{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* ---------------------------------------------------------------------------
   Editor style, app-wide: the Split day editor's look applied everywhere.
   True black surfaces, hairline lines, spark-green labels and accent bars.
   Light mode: white with black lines and spark highlights.
   --------------------------------------------------------------------------- */

/* Surfaces */
.card,.day-card,.accordion-head,.settings-footer,.ss-block,.alt-item,.pick-tile{
  background:var(--day-card);border:1px solid var(--day-line);border-radius:var(--radius-lg);}
:root[data-theme="light"] .card,:root[data-theme="light"] .day-card,:root[data-theme="light"] .accordion-head,
:root[data-theme="light"] .settings-footer,:root[data-theme="light"] .ss-block,:root[data-theme="light"] .alt-item,
:root[data-theme="light"] .pick-tile{border-color:#000000;}
.hero-card{background:linear-gradient(165deg, var(--accent-soft), var(--day-card) 64%);border:1px solid var(--day-line);}
:root[data-theme="light"] .hero-card{border-color:#000000;background:linear-gradient(165deg, var(--day-green-tint), #FFFFFF 64%);}
.hero-meta .pill{background:var(--day-bg);border-color:var(--day-line-strong);color:var(--text);}
.weigh-card,.session-bar{border:1px solid var(--day-green-line);}

/* Spark accent bar on item cards (same as exercise rows in the day editor) */
.day-card,.hit-card,.alt-item,.ss-block{position:relative;overflow:hidden;}
.day-card,.alt-item,.ss-block{padding-left:16px;}
.day-card::before,.hit-card::before,.alt-item::before,.ss-block::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--spark);}
:root[data-theme="light"] .day-card::before,:root[data-theme="light"] .hit-card::before,
:root[data-theme="light"] .alt-item::before,:root[data-theme="light"] .ss-block::before{width:5px;border-right:1px solid #000000;}
.day-card.today{border-color:var(--day-green-line);background:linear-gradient(var(--day-green-tint),var(--day-green-tint)),var(--day-card);}
.day-card .dayname{font-weight:800;font-size:15.5px;letter-spacing:-0.02em;}
.day-card .exline{color:var(--text-dim);}
.hit-target{color:var(--spark);font-weight:700;font-variant-numeric:tabular-nums;font-size:12.5px;margin-top:3px;}
:root[data-theme="light"] .hit-target{display:inline-block;color:#000000;background:rgba(225,255,0,.6);padding:1px 7px;border-radius:6px;}

/* Section headings: like the "EXERCISES" bar in the editor */
.section-title{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--text);}
.region-label{color:var(--spark);letter-spacing:.08em;}
:root[data-theme="light"] .region-label{color:#000000;}

/* Sheets */
.modal{background:var(--day-bg);border-color:rgba(225,255,0,.25);}
:root[data-theme="light"] .modal{border-color:#000000;}
.modal-top h3{font-size:20px;font-weight:800;letter-spacing:-0.03em;}
.close-x{background:var(--day-card);border-color:var(--day-line-strong);color:var(--text);}

/* Form fields */
input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--day-bg);border:1px solid var(--day-line-strong);color:var(--text);}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--spark);box-shadow:0 0 0 3px rgba(225,255,0,.18);}
:root[data-theme="light"] input:not([type=checkbox]):not([type=radio]):focus,:root[data-theme="light"] select:focus,
:root[data-theme="light"] textarea:focus{border-color:#000000;box-shadow:0 0 0 3px rgba(225,255,0,.75);}
input[type=checkbox],input[type=radio]{background:var(--day-bg);border-color:var(--day-line-strong);}
input[type=checkbox]:checked,input[type=radio]:checked{border-color:var(--spark);}
:root[data-theme="light"] input[type=checkbox]:checked,:root[data-theme="light"] input[type=radio]:checked{border-color:#000000;}
:root[data-theme="light"] input[type=checkbox]::before,:root[data-theme="light"] input[type=radio]::before{background:#000000;}
.choice-field{background:var(--day-bg);border:1px solid var(--day-line-strong);color:var(--text);}
.choice-field:focus,.choice-field:focus-visible{border-color:var(--spark);box-shadow:0 0 0 3px rgba(225,255,0,.18);}
:root[data-theme="light"] .choice-field:focus,:root[data-theme="light"] .choice-field:focus-visible{border-color:#000000;box-shadow:0 0 0 3px rgba(225,255,0,.75);}
.choice-row{border-bottom-color:var(--day-line);}
.choice-row.on{color:var(--spark);}
:root[data-theme="light"] .choice-row.on{color:#000000;}
.choice-row-check{color:var(--spark);}
:root[data-theme="light"] .choice-row-check{color:#000000;}
.toast-wrap .toast{background:var(--day-card);color:var(--text);border-color:var(--day-line-strong);}
.toast-wrap .toast.pr{background:var(--spark);color:#000000;border-color:var(--spark);}
:root[data-theme="light"] .toast-wrap .toast.pr{border-color:#000000;}
.field > label,label:not([class]),.plan-metrics label{color:var(--spark);font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;}
:root[data-theme="light"] .field > label,:root[data-theme="light"] label:not([class]),
:root[data-theme="light"] .plan-metrics label{color:#000000;}

/* Buttons */
.btn.secondary{background:transparent;color:var(--spark);border:1.5px solid var(--day-green-line);font-weight:800;}
:root[data-theme="light"] .btn.secondary{color:#000000;background:#FFFFFF;border-color:#000000;}
.btn.dashed{background:transparent;color:var(--spark);border:1.5px dashed var(--spark);font-weight:800;}
:root[data-theme="light"] .btn.dashed{color:#000000;border-color:#000000;background:#FFFFFF;}
.btn.ghost{font-weight:800;}
.hit-actions .btn.expand-btn{background:transparent;color:var(--spark);border:1.5px dashed var(--day-green-line);}
:root[data-theme="light"] .hit-actions .btn.expand-btn{color:#000000;border-color:#000000;background:#FFFFFF;}
:root[data-theme="dark"] .hero-cta,:root[data-theme="dark"] .btn.add-set{box-shadow:var(--glow);}
.iconbtn{background:var(--day-bg);border:1px solid var(--day-line-strong);color:var(--text);border-radius:12px;}
.iconbtn:active:not(:disabled){background:var(--spark);color:#000000;border-color:var(--spark);}
.iconbtn.danger{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger);}
.iconbtn.danger:active{background:var(--danger-border);color:var(--danger);border-color:var(--danger-border);}

/* Chips, tags, segmented controls, steppers */
.chip{background:var(--day-bg);border-color:var(--day-line-strong);color:var(--text);font-weight:700;}
.chip.on{background:var(--spark);color:#000000;border-color:var(--spark);font-weight:800;}
:root[data-theme="light"] .chip.on{border-color:#000000;}
.tag{background:transparent;border-color:var(--day-line-strong);color:var(--text);}
.seg,.stp{background:var(--day-bg);border-color:var(--day-line-strong);}
.seg button.on{background:var(--spark);color:#000000;}
.stepper button{background:var(--day-bg);border-color:var(--day-line-strong);}

/* Inset boxes: like the sets/reps panel inside an exercise row */
.stat-box{background:var(--day-bg);border:1px solid var(--day-line);border-radius:14px;}
.pr-hero .stat-box{background:var(--day-bg);border-color:var(--day-line);}
.hit-last{background:var(--day-bg);border:1px solid var(--day-line);}
.date-tile{background:var(--day-bg);border-color:var(--day-line-strong);}
.date-tile.latest{background:var(--spark);border-color:var(--spark);}
:root[data-theme="light"] .date-tile.latest{border-color:#000000;}
.pr-val{background:var(--day-bg);border-color:var(--day-line-strong);}

/* Supersets */
.superset-wrap{background:rgba(225,255,0,.05);border-color:var(--day-green-line);padding:10px;}
:root[data-theme="light"] .superset-wrap{background:var(--day-green-tint);}

/* Fixed header: logo row (and the workout timer bar), content scrolls under it.
   overflow-x:clip on .app (not hidden) keeps .app from becoming a scroll
   container, which would stop position:sticky from working. */
.app-head{position:sticky;top:0;z-index:40;margin:-12px -16px 14px;padding:calc(env(safe-area-inset-top) + 12px) 16px 0;
  background:var(--day-bg);border-bottom:1px solid var(--day-line);}
:root[data-theme="light"] .app-head{border-bottom-color:#000000;}
.app-head .topbar{padding:4px 0 12px;}

/* First-run welcome screen */
body.welcome-mode nav.tabs{display:none;}
body.welcome-mode .app{padding-bottom:calc(24px + env(safe-area-inset-bottom));}
.welcome{max-width:480px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 28px) 0 8px;display:flex;flex-direction:column;}
.welcome-brand .logo-mark{width:52px;height:52px;border-radius:14px;margin-bottom:18px;}
:root[data-theme="dark"] .welcome-brand .logo-mark{filter:drop-shadow(0 0 18px rgba(225,255,0,.35));}
.welcome-title{font-size:30px;font-weight:800;letter-spacing:-0.04em;line-height:1.1;margin-bottom:8px;}
.welcome-title em{font-style:normal;color:var(--accent);}
.welcome-sub{color:var(--text-dim);font-size:14.5px;line-height:1.45;margin-bottom:16px;}
.welcome-privacy{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:16px;border-radius:var(--radius-md);
  background:var(--accent-soft);border:1px solid var(--day-green-line);font-size:13px;line-height:1.45;color:var(--text);}
.welcome-privacy .icon{flex:0 0 auto;margin-top:1px;color:var(--accent);}
.welcome-privacy b{font-weight:800;}
.welcome-card{margin-bottom:18px;}
.welcome-card .field{margin-bottom:16px;}
.welcome-chips{display:flex;flex-wrap:wrap;gap:8px;}
.welcome-chips .chip{flex:1 1 auto;min-height:42px;}
.welcome-skip{align-self:center;margin-top:6px;color:var(--text-dim);}

/* Workout timer bar: workout clock, or the rest countdown while resting */
.timer-bar{position:relative;display:block;margin:0 0 12px;padding:10px 12px 12px;
  background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--day-bg);
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);}
.timer-bar.resting, .timer-bar.holding{border-color:var(--spark);box-shadow:var(--glow);}
:root[data-theme="light"] .timer-bar.resting,
:root[data-theme="light"] .timer-bar.holding{border-color:#000000;box-shadow:var(--shadow);}
.tb-fill-wrap{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;}
.tb-fill{height:100%;background:rgba(225,255,0,.16);transition:width 250ms linear;}
:root[data-theme="light"] .tb-fill{background:rgba(225,255,0,.6);}
.tb-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.tb-sub{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:4px;font-size:11px;font-weight:600;color:var(--text-dim);white-space:nowrap;}
.tb-sub b{font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;}
.tb-rest{position:relative;display:flex;gap:6px;margin-top:10px;}
.tb-rest .btn{flex:1;min-width:0;min-height:38px;padding:6px 8px;font-size:13px;white-space:nowrap;}
.tb-rest .tb-main{flex:1.6;gap:6px;}

/* Today's hit list on Home: read-only, one exercise per line */
.hl-card{padding-bottom:6px;}
.hl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;}
.hl-day{display:inline-flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:800;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hl-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 0;border-top:1px solid var(--day-line);}
.hl-row:first-child{border-top:0;}
.hl-idx{flex:0 0 auto;width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--spark);color:#000000;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;}
:root[data-theme="light"] .hl-idx{box-shadow:inset 0 0 0 1px #000000;}
.hl-name{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font-weight:700;font-size:14.5px;letter-spacing:-0.01em;line-height:1.3;color:var(--text);}
.hl-link{display:inline-flex;color:var(--text-faint);flex:0 0 auto;}
.hl-target{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--spark);font-variant-numeric:tabular-nums;white-space:nowrap;}
:root[data-theme="light"] .hl-target{color:#000000;background:rgba(225,255,0,.6);padding:1px 7px;border-radius:6px;}
.hl-row.done .hl-idx{background:transparent;color:var(--spark);box-shadow:inset 0 0 0 1.5px var(--day-green-line);}
:root[data-theme="light"] .hl-row.done .hl-idx{color:#000000;}
.hl-row.done .hl-name,.hl-row.done .hl-target{color:var(--text-faint);text-decoration:line-through;text-decoration-thickness:1px;}
:root[data-theme="light"] .hl-row.done .hl-target{background:transparent;}

/* Day warm-ups in workout (split editor reuses .plan-row) */
.wu-workout-card{margin-bottom:14px;}
.wu-workout-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.wu-workout-meta{font-size:12.5px;font-weight:800;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;}
.wu-workout-rows{display:flex;flex-direction:column;gap:6px;}
.wu-workout-row{display:flex;flex-direction:column;gap:0;width:100%;padding:4px 4px 6px;border-radius:12px;
  border:1px solid var(--day-line, var(--border));background:var(--bg);color:var(--text);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);}
.wu-workout-main{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:8px 8px 6px;border:0;background:none;
  color:inherit;font:inherit;cursor:pointer;border-radius:10px;}
.wu-workout-main:active{transform:scale(.99);}
.wu-check{flex:0 0 auto;width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--day-line, var(--border));background:transparent;color:var(--spark);margin-top:1px;}
.wu-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.wu-title{font-weight:700;font-size:14.5px;line-height:1.3;}
.wu-dose{font-size:12.5px;color:var(--text-faint);font-weight:600;}
.wu-workout-row.done{opacity:.72;}
.wu-workout-row.done .wu-check{background:transparent;border-color:var(--day-green-line, var(--spark));}
.wu-workout-row.done .wu-title,.wu-workout-row.done .wu-dose{text-decoration:line-through;text-decoration-thickness:1px;color:var(--text-faint);}
:root[data-theme="light"] .wu-workout-row{border-color:#000000;}
:root[data-theme="light"] .wu-check{border-color:#000000;}
.wu-row-top{display:flex;align-items:flex-start;gap:4px;}
.wu-row-top .wu-workout-main{flex:1;min-width:0;}
.wu-row-top .wu-howto-btn{flex:0 0 auto;margin:8px 8px 0 0;}
.wu-detail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.wu-detail-top .wu-howto-btn{flex:0 0 auto;margin-left:auto;}
.plan-head .wu-howto-btn{flex:0 0 auto;margin-left:2px;}
.plan-row > .wu-howto-body{margin:0 14px 8px;}
.wu-howto-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 2px;border:0;background:none;color:var(--text-faint);
  font:inherit;font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;white-space:nowrap;}
.wu-howto-btn svg{transition:transform var(--dur) var(--ease);flex:0 0 auto;}
.wu-howto-scope.howto-open .wu-howto-btn svg{transform:rotate(180deg);}
.wu-howto-btn:active{opacity:.75;}
.wu-howto-body{margin:0 12px 8px;padding:0;font-size:12.5px;line-height:1.45;color:var(--text-dim);font-weight:500;}
.wu-howto-body[hidden]{display:none;}

/* Bottom tab bar */
nav.tabs{background:var(--day-bg);border-top:1px solid var(--day-line);}
nav.tabs button.active{color:var(--spark);font-weight:800;}
:root[data-theme="light"] nav.tabs{border-top-color:#000000;}
:root[data-theme="light"] nav.tabs button.active{color:#000000;}
