/* Layout: columna de foco (timer + break) a la izquierda, registro a la derecha; una columna en móvil */
:root{
  --bg:#f3f5f2; --surface:#ffffff; --ink:#1d2621; --muted:#5f6b64; --line:#dde3dd;
  --accent:#d9573b; --accent-ink:#ffffff; --sage:#4f7d63; --sage-soft:#e3eee6; --warn:#b7791f;
  --display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, Menlo, monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141a17; --surface:#1c2420; --ink:#e7ece8; --muted:#9aa79f; --line:#2c3631;
  --accent:#ef7356; --accent-ink:#1a0f0b; --sage:#7fb495; --sage-soft:#22322a; --warn:#e0a84a; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141a17; --surface:#1c2420; --ink:#e7ece8; --muted:#9aa79f; --line:#2c3631;
  --accent:#ef7356; --accent-ink:#1a0f0b; --sage:#7fb495; --sage-soft:#22322a; --warn:#e0a84a; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 48px}
.wrap{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
h1{font:700 clamp(28px,4vw,40px)/1.05 var(--display);margin:0;letter-spacing:-.02em}
h1 span{color:var(--accent)}
h2{font:700 20px/1.2 var(--display);margin:0;text-wrap:balance}
.sub{color:var(--muted);margin:0}
.grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:minmax(0,1fr)}}
.col{display:flex;flex-direction:column;gap:20px;min-width:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.label{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
button{font:700 15px/1 var(--body);border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:12px 16px;cursor:pointer}
button:hover{border-color:var(--muted)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.sage{background:var(--sage);color:var(--surface);border-color:var(--sage)}
button.ghost{background:transparent}
button.sm{padding:8px 10px;font-size:13px}
button:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
input,select{font:16px var(--body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0}
input[type=number]{width:80px}

/* Timer */
.timer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
@media (max-width:520px){.timer{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}}
.ring{width:200px;height:200px;position:relative;max-width:100%}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .time{position:absolute;inset:0;display:grid;place-items:center;font:500 44px/1 var(--mono);font-variant-numeric:tabular-nums}
.mode-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-weight:700;font-size:14px;background:var(--sage-soft);color:var(--sage);width:max-content}
.mode-pill.focus{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.mode-pill i{width:8px;height:8px;border-radius:50%;background:currentColor}
.tomatoes{display:flex;gap:6px}
.tomatoes b{width:14px;height:14px;border-radius:50%;border:2px solid var(--accent)}
.tomatoes b.on{background:var(--accent)}
details summary{cursor:pointer;color:var(--muted);font-size:14px}
.settings{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}
.settings label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}

/* Break chooser */
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:520px){.choices{grid-template-columns:minmax(0,1fr)}}
.choice{text-align:left;padding:16px;display:flex;flex-direction:column;gap:6px;line-height:1.4;border-radius:12px}
.choice strong{font:700 18px/1.2 var(--display)}
.choice span{font-weight:400;color:var(--muted);font-size:14px}
.choice:hover{border-color:var(--accent)}

/* Squat / stretch stage */
.stage{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:4/3;max-width:100%}
.stage video,.stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage video,.stage .overlay{transform:scaleX(-1)}
.stage .hint{position:absolute;left:10px;right:10px;bottom:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);border-radius:8px;padding:8px 10px;font-size:14px}
.counter{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.counter .big{font:700 64px/1 var(--display);font-variant-numeric:tabular-nums}
.counter .of{color:var(--muted);font-size:18px}
.bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.bar>i{display:block;height:100%;background:var(--sage);width:0;transition:width .3s}
.routines{display:flex;flex-direction:column;gap:10px}
.routine{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;font-weight:400}
.routine strong{display:block;font:700 16px/1.3 var(--display)}
.routine small{color:var(--muted)}
.step-name{font:700 24px/1.2 var(--display);margin:0}
.cue{margin:0;color:var(--muted);max-width:60ch}
.steps{display:flex;gap:4px}
.steps i{flex:1;height:5px;border-radius:9px;background:var(--line)}
.steps i.done{background:var(--sage)}
.steps i.now{background:var(--accent)}
.countdown{font:500 32px/1 var(--mono);font-variant-numeric:tabular-nums}

/* Log */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat{display:flex;flex-direction:column;gap:4px}
.stat b{font:700 28px/1 var(--display);font-variant-numeric:tabular-nums}
.stat small{color:var(--muted);font-size:13px}
.chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:140px}
.chart .col-b{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;min-width:0}
.chart .b{width:100%;max-width:34px;border-radius:6px 6px 2px 2px;background:var(--sage);min-height:2px}
.chart .b.today{background:var(--accent)}
.chart small{font:500 11px var(--mono);color:var(--muted)}
.chart em{font:500 11px var(--mono);font-style:normal;font-variant-numeric:tabular-nums}
.log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.log li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 0;border-top:1px solid var(--line);align-items:center}
.log li .what{font-weight:700}
.log li .meta{grid-column:1;color:var(--muted);font-size:13px}
.log li .acts{grid-column:2;grid-row:1/3;display:flex;gap:6px}
.chip{font:500 11px var(--mono);padding:2px 6px;border-radius:6px;background:var(--sage-soft);color:var(--sage);margin-left:6px;vertical-align:2px}
.chip.cam{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.empty{color:var(--muted);font-size:14px;margin:0}
kbd{font:500 11px var(--mono);border:1px solid var(--line);border-radius:4px;padding:1px 4px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:700;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* A quieter workspace, retaining the original terracotta and sage identity. */
:root{--bg:#f5f3ed;--surface:#fffefb;--ink:#26372e;--muted:#647066;--line:#e2e4db;--accent:#b94029;--sage:#3f6952;--sage-soft:#e8eee5;--accent-ink:#fff;--warn:#915b12}
:root[data-theme="dark"]{--bg:#151c18;--surface:#1e2822;--ink:#f1f1e7;--muted:#b2bdb4;--line:#38473e;--accent:#f08a6c;--sage:#90c3a2;--sage-soft:#2a3b30;--accent-ink:#20130e;--warn:#efb85f}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]){--bg:#151c18;--surface:#1e2822;--ink:#f1f1e7;--muted:#b2bdb4;--line:#38473e;--accent:#f08a6c;--sage:#90c3a2;--sage-soft:#2a3b30;--accent-ink:#20130e;--warn:#efb85f}}
body{padding-block:26px 24px}.wrap{max-width:1200px;gap:28px}header{align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}.brand{color:var(--ink);display:flex;align-items:center;gap:12px;text-decoration:none;font:500 21px var(--display);letter-spacing:-.5px}.brand b{font-weight:700}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--ink);color:var(--surface);border-radius:12px;font-size:30px;position:relative}.brand-mark span{position:absolute;right:5px;bottom:0;color:#ed9b73}.local-note,.micro{font-size:13px;color:var(--muted);margin:0;line-height:1.55}.local-note{margin-right:10px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 6px}.eyebrow{font:700 11px/1.5 var(--mono);color:var(--muted);letter-spacing:.09em;margin:0 0 10px}.intro h1{font-size:clamp(34px,4.2vw,53px);line-height:1.08;letter-spacing:-1.8px}.intro-note{font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 4px}.grid{grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr);gap:24px}.col{gap:24px}.card{padding:26px;border-radius:20px;gap:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head .eyebrow{margin-bottom:6px}.section-head> .eyebrow{margin:0}.section-head h2{font-size:22px}.focus-card{padding:28px 30px 20px}.task-label{font-size:13px;color:var(--muted);margin-top:4px}.task-input{width:100%;font:500 21px/1.4 var(--display);border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 14px;margin-top:-13px}.task-input::placeholder{color:var(--muted);opacity:.85}.timer{gap:30px;padding:8px 0}.ring{width:236px;height:236px}.ring .time{font-size:47px;letter-spacing:-2.5px}.timer-side{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.timer-message{font:700 23px/1.25 var(--display);margin:0;letter-spacing:-.4px}.timer-side .sub{font-size:14px}.mode-pill{font-size:12px;padding:6px 10px}.timer-actions{gap:5px;margin-top:4px}.primary{box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 12%,transparent)}button{min-height:44px;border-radius:10px;line-height:1.2;font-size:14px;transition:border-color .15s}button.primary:hover,button.sage:hover{filter:brightness(.94)}button.sm{min-height:36px}button.sage{color:var(--surface)}.text-button{border:0;background:none;padding:0;min-height:32px;font-size:13px;color:var(--muted);text-align:left;box-shadow:none}.text-button:hover{color:var(--accent)}.focus-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--muted)}.focus-footer span:first-child{color:var(--ink);font-weight:700}.choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.choice{position:relative;min-height:208px;gap:10px;padding:16px 14px 38px;background:var(--bg);border-color:transparent;box-shadow:none}.choice strong{font-size:18px;letter-spacing:-.5px}.choice>span:not(.choice-number):not(.choice-arrow){font-size:13px;line-height:1.55}.choice .choice-number{font:500 11px var(--mono);display:flex;justify-content:space-between;width:100%;color:var(--muted);margin-bottom:8px}.choice .choice-number span{font:inherit;color:inherit}.choice .choice-arrow{position:absolute;bottom:12px;right:16px;font-size:22px;color:var(--sage)}.choice:hover{background:var(--sage-soft);border-color:var(--sage)}.preferred{position:absolute;bottom:14px;left:12px;font-size:10px;color:var(--sage);font-weight:400}.break-actions:has(> :not([hidden])){border-bottom:1px solid var(--line);padding-bottom:14px}.break-actions:not(:has(> :not([hidden]))){display:none}.break-clock{font:500 14px var(--mono);background:var(--sage-soft);color:var(--sage);padding:7px 10px;border-radius:8px}.activity-view{display:flex;flex-direction:column;gap:16px}h3{font:700 24px/1.2 var(--display);margin:0}.inline-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.inline-label select{font-size:13px;max-width:160px}.stage{aspect-ratio:16/10;background:var(--bg);border:0}.stage canvas{object-fit:contain}.stage video{object-fit:contain}.stage .hint{font-size:13px;text-align:center;max-width:480px;margin:auto}.rep-panel{display:flex;align-items:center;justify-content:space-between;gap:16px}.counter .big{font-size:60px;letter-spacing:-2px}.counter .of{font-size:14px;line-height:1.35}.rep-buttons{gap:6px}.rep-buttons button{min-width:44px;padding:11px}.exercise-actions{justify-content:space-between}.rest-view{align-items:center;text-align:center;padding:12px}.rest-view .row{justify-content:center}.rest-check{width:48px;height:48px;background:var(--sage-soft);color:var(--sage);border-radius:50%;display:grid;place-items:center;font-size:24px}.rest-view .eyebrow{margin:0}.step-info{display:flex;gap:20px;justify-content:space-between}.step-info h3{font-size:24px;margin-bottom:10px}.step-info .countdown{font-size:26px}.routines .routine{padding:16px;background:var(--bg);border-color:transparent;min-height:84px}.routine small{display:block;font-size:13px;margin-top:5px}.routine .label{white-space:nowrap;font-size:12px}.routine-controls{gap:8px}.routine-controls button{font-size:13px}.daily-card{background:var(--sage-soft);border-color:transparent}.date{font-size:12px;color:var(--muted)}.daily-goal{display:flex;align-items:center;gap:14px}.daily-number{font:700 64px/1 var(--display);letter-spacing:-3px}.daily-goal b{font-size:15px}.daily-card .bar{background:color-mix(in srgb,var(--sage) 15%,transparent);height:6px}.daily-card #goalMessage{margin-top:-12px}.stats{border-top:1px solid color-mix(in srgb,var(--sage) 20%,transparent);padding-top:20px}.stat b{font-size:29px}.stat small{font-size:12px}.week-header{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:4px}.week-header .eyebrow{margin:0;font-size:10px}.chart{height:126px;gap:10px}.chart .b{max-width:24px;flex-shrink:0}.chart em{min-height:14px}.manual-card{padding:20px 24px}.manual-card summary{display:flex;align-items:center;justify-content:space-between;color:var(--ink);font-size:15px;font-weight:700;list-style:none}.manual-card summary::-webkit-details-marker{display:none}.manual-card details[open] summary{margin-bottom:18px}.manual-card form{display:flex;flex-direction:column;gap:10px}.manual-card form>label,.manual-card form .row label{font-size:13px;color:var(--muted)}.manual-card form .row{gap:8px}.manual-card form input{width:70px}.history-card{gap:16px}.log li{display:flex;flex-wrap:wrap;gap:5px 8px;padding:15px 0;align-items:flex-start}.log li .what{font-size:14px;width:100%;overflow-wrap:anywhere}.log li .meta{font-size:12px;flex:1;min-width:130px}.log li .acts{display:flex;gap:6px}.log li .acts button{font-size:11px;padding:5px 8px;min-height:30px}.log li form{width:100%}.chip{font-size:9px;margin-left:5px;white-space:nowrap}.empty{padding:20px 0;text-align:center}.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:8px}.backup-details{padding-top:14px;border-top:1px solid var(--line)}.backup-details summary{font-size:12px}.backup-details[open]{display:flex;flex-direction:column}.backup-details .micro{margin:12px 0}.backup-details .row{gap:7px}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:18px;color:var(--muted);font-size:12px}.shortcut-help summary{font-size:12px}.shortcut-help p{font-size:12px}.notice{border:1px solid var(--line);border-left:3px solid var(--sage);background:var(--surface);padding:12px 16px;border-radius:8px;font-size:14px;margin:0}#storageWarning{border-left-color:var(--accent)}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;width:min(560px,calc(100% - 24px));padding:26px;max-height:90dvh}dialog::backdrop{background:#15201988;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.settings{display:flex;flex-direction:column;gap:20px;margin:24px 0}.settings fieldset{display:grid;grid-template-columns:1fr 1fr;gap:16px;border:0;border-top:1px solid var(--line);padding:18px 0 0;min-width:0}.settings legend{font-weight:700;font-size:14px;padding-right:12px}.settings label{font-size:13px;min-width:0}.settings label:has(select){grid-column:1/-1}.settings input{width:100%;height:42px}.settings select{width:100%;font-size:14px;min-height:42px}.notification-settings{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.notification-settings button{align-self:flex-start}.dialog-done{width:100%}.toast{max-width:calc(100% - 32px);width:max-content;z-index:10;font-size:14px;text-align:center;box-shadow:0 4px 20px #0002}.skip-link{position:fixed;left:16px;top:-100px;background:var(--ink);color:var(--bg);padding:12px;z-index:100}.skip-link:focus-visible{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}summary:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}summary{min-height:26px;align-content:center}
@media(max-width:1080px){.grid{grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:20px}.ring{width:195px;height:195px}.ring .time{font-size:40px}.timer{gap:18px}.focus-card{padding:24px}.timer-actions button{padding:12px 10px}.card{padding:22px}.choice{padding:14px 11px 38px}.choice .choice-number{font-size:10px}.choice strong{font-size:17px}.timer-message{font-size:21px}}
@media(max-width:860px){.grid{grid-template-columns:minmax(0,1fr)}.intro-note{display:none}.ring{width:240px;height:240px}.ring .time{font-size:49px}.timer{gap:36px}.timer-side{flex:1}.card{padding:26px}.choices .choice{min-height:185px;padding:20px 18px 38px}.choice strong{font-size:20px}.choice .choice-number{font-size:11px}.stats{padding-top:18px}.chart .b{max-width:36px}.intro h1{font-size:45px}.daily-card .daily-number{font-size:60px}.daily-goal{margin-top:5px}}
@media(max-width:520px){body{padding-block:18px 24px}.wrap{gap:22px}header{padding-bottom:16px}.brand{font-size:18px;gap:8px}.brand-mark{width:33px;height:33px;font-size:27px}.local-note{display:none}.header-actions button{padding:10px}.intro{padding-top:0}.intro h1{font-size:36px;letter-spacing:-1.1px}.eyebrow{font-size:10px}.card,.focus-card{padding:20px;border-radius:16px;gap:18px}.timer{grid-template-columns:minmax(0,1fr);gap:12px;padding:0}.ring{width:218px;height:218px}.ring .time{font-size:44px}.timer-side{align-items:center;text-align:center;gap:8px;width:100%}.timer-message{font-size:21px}.timer-actions{width:100%;justify-content:center}.timer-actions .primary{min-width:160px}.focus-footer{font-size:11px;padding-top:13px}.task-input{font-size:18px}.mode-pill{font-size:11px}.choices{grid-template-columns:1fr;gap:10px;margin-top:16px}.choices .choice{min-height:112px;padding:14px 44px 14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;align-content:center}.choice .choice-number{grid-column:1;max-width:135px;margin:0}.choice strong{grid-column:1;font-size:20px}.choice>span:not(.choice-number):not(.choice-arrow){grid-column:2;grid-row:1/4;align-self:center;font-size:12px}.choice .choice-arrow{right:14px;bottom:40%;font-size:20px}.preferred{position:static;grid-column:1;font-size:10px}.section-head h2{font-size:21px}.inline-label{font-size:11px}.inline-label select{max-width:130px}.stage{aspect-ratio:4/3}.stage .hint{font-size:12px;bottom:6px;padding:6px 8px}.counter .big{font-size:52px}.rep-panel{gap:8px}.rep-buttons{gap:4px}.rep-buttons button{padding:10px;min-width:40px}.exercise-actions{gap:8px}.exercise-actions button{flex:1;font-size:13px;padding:12px 9px}.step-info{gap:12px}.step-info h3{font-size:21px}.step-info .countdown{font-size:24px}.step-info .cue{font-size:14px}.routine-controls{gap:7px}.routine-controls #finishStretch{width:100%}.routines .routine{padding:14px;gap:8px}.routine strong{font-size:15px}.routine small{font-size:12px}.routine .label{font-size:11px}.settings fieldset{gap:14px}.settings label{font-size:12px}dialog{padding:20px}.todayDate{font-size:11px}footer{font-size:11px}.backup-details .row{gap:8px}.focus-footer span{max-width:55%}}
/* First-use and mobile sharing. */
.welcome-card{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--sage-soft);border:1px solid var(--line);padding:20px 24px;border-radius:16px}.welcome-card h2{font-size:22px;margin:7px 0}.welcome-card p{margin:0;color:var(--muted);font-size:14px;max-width:60ch}.welcome-card .row{flex-shrink:0}.beta-tag{font:500 10px var(--mono);letter-spacing:.1em;color:var(--sage)}.update-notice{display:flex;justify-content:space-between;align-items:center;gap:16px}.help-content{display:flex;flex-direction:column;gap:22px;margin:24px 0}.help-content h3{font-size:18px;margin:0 0 8px}.help-content p{font-size:14px;color:var(--muted);margin:8px 0;line-height:1.65}.help-content b{color:var(--ink)}.help-done{width:100%}.feedback-link{color:var(--sage);display:inline-block;padding:8px 0;font-weight:700;font-size:14px}#shareFallback{margin-top:12px;display:flex;flex-direction:column;gap:8px}#shareFallback label{font-size:13px;color:var(--muted)}#publicLink{width:100%;font-size:13px}button,a{touch-action:manipulation}.rep-buttons button{min-width:44px;min-height:44px}.log li .acts button{min-height:44px;min-width:44px}.header-actions{gap:8px}footer button{min-height:36px}.header-actions #shareBtn{color:var(--sage)}
@media(max-width:760px){.welcome-card{align-items:flex-start;flex-direction:column;gap:16px}.welcome-card .row{width:100%}.welcome-card .row button{flex:1;font-size:13px}.intro h1{font-size:34px}.is-break .intro{display:none}.is-break .focus-card{padding:16px 20px;gap:10px}.is-break .focus-card .task-label,.is-break .focus-card .task-input,.is-break .focus-card .timer-message,.is-break .focus-card #timerHint,.is-break .focus-card .focus-footer{display:none}.is-break .focus-card .timer{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;text-align:left;padding:0;justify-items:start}.is-break .focus-card .ring{width:86px;height:86px}.is-break .focus-card .ring .time{font-size:23px;letter-spacing:-1px}.is-break .focus-card .timer-side{align-items:stretch}.is-break .timer-actions{flex-direction:column;align-items:stretch;margin:0;gap:4px}.is-break .timer-actions .primary{min-width:0}.is-break .timer-actions button{font-size:12px;min-height:36px;padding:8px}.is-break .focus-card .section-head .eyebrow{font-size:9px}.is-break .focus-card .mode-pill{font-size:10px}.stage .hint{pointer-events:none}}
@media(max-width:380px){#vExercise>.section-head{flex-wrap:wrap}#pushupStyleLabel{width:100%;justify-content:space-between}#pushupStyle{flex:1;max-width:180px}}
/* Daily goals and custom routines share the existing sage/terracotta controls. */
.pushup-daily-goal{display:flex;flex-direction:column;gap:14px;border-top:1px solid color-mix(in srgb,var(--sage) 20%,transparent);padding-top:18px}.pushup-daily-goal .daily-number{font-size:48px}.pushup-daily-goal .bar{margin-top:2px}.pushup-daily-goal p{margin:0}.activity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.routine-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.routine-picker-head h3{font-size:21px}.routine-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg)}.routine-item>.routine{width:100%;border:0;border-radius:0;min-width:0}.routine-item .routine>span:first-child{min-width:0;overflow-wrap:anywhere}.routine-item-actions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding:4px 10px}.routine-item-actions button{min-height:44px}.routine-fit p{margin:0 0 12px}.routine-fit .row{margin-bottom:12px}.routine-fit .micro{margin:0}#routineEditor{width:min(620px,calc(100% - 24px));scroll-padding:20px}#routineForm{display:flex;flex-direction:column;gap:18px}.routine-name-label{display:flex;flex-direction:column;gap:8px;margin-top:20px;font-size:14px}.routine-name-label input{width:100%;font-size:16px}.routine-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.routine-step{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--bg);display:grid;grid-template-columns:minmax(0,1fr) 106px;gap:14px;min-width:0}.step-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;grid-column:1/-1}.step-editor-head b{font-size:13px}.step-order{display:flex;gap:6px}.step-order button{min-height:44px;min-width:44px;padding:8px;font-size:12px}.routine-step label{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}.routine-step select,.routine-step input{font-size:16px;min-height:44px;width:100%;max-width:100%}.step-seconds small{font-size:11px;color:var(--muted)}#routineDuration{margin:0}.routine-editor-footer{position:sticky;bottom:-26px;background:var(--surface);padding:14px 0;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line)}#routineDraftStatus{overflow-wrap:anywhere}#routineEditorError{margin:0}#routineEditor :focus-visible{scroll-margin:20px}.settings input{font-size:16px}
@media(max-width:520px){.routine-step{grid-template-columns:minmax(0,1fr);padding:12px}.routine-step .step-seconds{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:center}.step-seconds small{grid-column:1/-1}.step-editor-head{gap:8px}.step-order{gap:4px}.routine-editor-footer{bottom:-20px}.routine-editor-footer button{flex:1;padding:12px 8px;font-size:13px}.routine-fit .row button{width:100%;font-size:13px}.routine-picker-head h3{font-size:19px}#dailyPushupGoal{font-size:16px}}
.toast button{pointer-events:auto;background:var(--bg);color:var(--ink);margin-left:8px;min-height:44px}
#routineEditor{scroll-padding-block:80px 90px}#routineEditor>.dialog-head{position:sticky;top:-26px;z-index:2;background:var(--surface);padding-block:12px;border-bottom:1px solid var(--line)}
@media(max-width:520px){#routineEditor>.dialog-head{top:-20px}#routineEditorTitle{font-size:21px}}
#routineEditor>.dialog-head{top:0}#routineEditor .routine-editor-footer{bottom:0}#editDailyGoals,#resumeRoutineDraft{min-height:44px}
.camera-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.camera-tools label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);min-width:0}.camera-tools select{font-size:16px;min-height:44px;max-width:100%}.camera-tools button{min-height:44px}.camera-status{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}#trackingQuality{font-weight:700;color:var(--sage)}.calibration-panel{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--sage);background:var(--sage-soft);border-radius:14px}.calibration-panel h3{font-size:22px}.calibration-panel p{margin:0}.calibration-panel .countdown{font-size:23px}.calibration-panel .row{gap:8px}.calibration-panel .row button{min-height:44px;line-height:1.35}.calibration-panel .bar>i{background:var(--sage)}.calibration-saved-actions button{min-height:44px}.stage .rear-camera{transform:none!important}
@media(max-width:520px){.camera-tools{align-items:stretch}.camera-tools label{width:100%}.camera-tools button{width:100%}.calibration-panel{padding:16px}.calibration-panel h3{font-size:20px}.calibration-panel .row button{width:100%;font-size:14px}.calibration-panel .countdown{font-size:21px}.camera-status{font-size:12px}}
.is-calibrating .focus-card,.is-calibrating .break-actions,.is-calibrating .camera-tools,.is-calibrating #exerciseCue,.is-calibrating .rep-panel,.is-calibrating #repProgress,.is-calibrating .exercise-actions,.is-calibrating .calibration-saved-actions,.is-calibrating #calibrationReminder{display:none!important}.calibration-panel{scroll-margin-top:12px}

.camera-framing{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.camera-framing>p{flex-basis:100%;margin:0}.camera-framing label{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.camera-framing select{font-size:16px;min-height:44px;width:100%;max-width:100%}.camera-framing button{min-height:44px}.camera-framing button[aria-pressed="true"]{background:var(--sage-soft);border-color:var(--sage);color:var(--ink)}.is-calibrating .camera-framing,.is-calibrating #cameraPlacement{display:none!important}
@media(max-width:520px){.camera-framing>button,.camera-framing>label{width:100%;flex-basis:100%}}

/* Exercise workspace: the same controls and IDs on desktop and mobile. */
.exercise-toolbar{display:flex;align-items:center;gap:8px;justify-content:space-between}.exercise-toolbar button{min-height:44px;font-size:12px}.exercise-toolbar>span{font:500 12px var(--mono);white-space:nowrap}.exercise-tracking{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.exercise-tracking button{min-height:44px;font-size:12px;white-space:nowrap}.camera-sheet{display:none}.camera-sheet[open]{display:flex;flex-direction:column;gap:18px}.camera-sheet .camera-tools label{flex:1}.camera-sheet .camera-tools select{width:100%}.camera-sheet .camera-status{gap:8px}.camera-sheet .calibration-saved-actions{display:flex!important}.camera-sheet #cameraPlacement{display:block!important}.camera-sheet .camera-tools,.camera-sheet .camera-framing{display:flex!important}.draft-choice-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.save-failure{display:flex;flex-direction:column;gap:10px;border-color:var(--accent)}.is-calibrating .exercise-tracking,.is-calibrating .exercise-toolbar{display:none}.is-calibrating #openCameraSettings{display:none}#exerciseTitle:focus{outline:none}.repeat-last{width:100%;margin-top:14px;min-height:52px;font-size:15px}.backup-nudge{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;justify-content:space-between}
@media(max-width:700px),(max-width:950px) and (max-height:500px){
 body.is-exercise{padding:0;min-height:100dvh}.is-exercise .wrap{max-width:none;padding:0;gap:0}.is-exercise header,.is-exercise .intro,.is-exercise #welcomeCard,.is-exercise footer,.is-exercise .focus-card,.is-exercise aside,.is-exercise #breakCard>.section-head,.is-exercise .break-actions,.is-exercise #updateNotice{display:none!important}.is-exercise .grid{display:block}.is-exercise #breakCard{border:0;border-radius:0;padding:12px 16px max(16px,env(safe-area-inset-bottom));box-shadow:none;min-height:100dvh;gap:0}.is-exercise #vExercise{gap:12px}.is-exercise .exercise-toolbar{padding-top:env(safe-area-inset-top);padding-bottom:8px;border-bottom:1px solid var(--line)}.is-exercise #vExercise>.section-head{gap:8px}.is-exercise #exerciseTitle{font-size:24px}.is-exercise #openCameraSettings{font-size:12px;min-height:44px;padding:8px 10px}.is-exercise .stage{height:clamp(180px,calc(100svh - 390px),460px);aspect-ratio:auto}.is-exercise .rep-panel{margin:0}.is-exercise .counter .big{font-size:52px}.is-exercise .rep-buttons{gap:7px}.is-exercise .rep-buttons button{min-width:48px;min-height:48px}.is-exercise .exercise-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:8px}.is-exercise .exercise-actions button{min-height:50px;padding:10px;font-size:14px}.is-exercise .stage .hint{font-size:12px;padding:10px;bottom:8px}.is-exercise .notice{border-radius:0;margin:0}.is-exercise .exercise-tracking{font-size:11px;gap:8px}.camera-sheet{width:100%;max-width:560px;max-height:85dvh;margin:auto auto 0;border-radius:20px 20px 0 0;padding:20px 20px max(24px,env(safe-area-inset-bottom));overscroll-behavior:contain}.is-calibrating .calibration-panel{padding:14px}.is-calibrating #vExercise>.stage{height:clamp(180px,35svh,320px)}
}
@media(max-height:500px) and (max-width:950px){.is-exercise .stage{height:200px}.camera-sheet{max-height:95dvh}}

@media(max-width:380px){.is-exercise #vExercise>.section-head{flex-wrap:nowrap}.is-exercise .exercise-toolbar button{padding:8px;font-size:11px}.is-exercise .exercise-toolbar>span{font-size:10px}.is-exercise #exerciseTitle{font-size:21px}}

@media(min-width:701px) and (max-width:950px) and (max-height:500px){
 .is-exercise:not(.is-calibrating) #vExercise{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-areas:"toolbar toolbar" "stage title" "stage tracking" "stage reps" "stage progress" "stage actions";gap:8px 16px}
 .is-exercise .exercise-toolbar{grid-area:toolbar}.is-exercise #vExercise>.section-head{grid-area:title}.is-exercise .exercise-tracking{grid-area:tracking}.is-exercise .rep-panel{grid-area:reps}.is-exercise #repProgress{grid-area:progress}.is-exercise .exercise-actions{grid-area:actions}
 .is-exercise:not(.is-calibrating) .stage{grid-area:stage;align-self:stretch;height:100%;min-height:240px}.is-exercise .exercise-tracking button{min-height:36px}.is-exercise #breakCard{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
}

/* A smiling flexed arm, shared by the header and installed app. */
.brand-mark{width:44px;height:44px;flex:none;background:none;border-radius:12px;object-fit:contain}
.count-check{display:flex;flex-direction:column;gap:8px;align-items:center;margin:4px 0}.count-check input{width:80px}.count-quality{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:14px}.check{display:flex;gap:8px;align-items:flex-start}.check input{margin-top:3px}.camera-advanced{border-top:1px solid var(--line);padding-top:12px}.camera-advanced[open]{display:flex;flex-direction:column;gap:14px}.camera-advanced summary{font-size:13px;color:var(--muted);cursor:pointer}.calendar-settings{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;border-top:1px solid var(--line);padding-top:16px}.calendar-settings button{align-self:flex-start}.calendar-settings input,.calendar-settings select{display:block;margin-top:4px}
.chart .stack{display:flex;flex-direction:column;justify-content:flex-end;width:100%;max-width:24px;border-radius:6px 6px 2px 2px;overflow:hidden;min-height:2px;background:var(--line)}.chart .stack i{display:block;width:100%}.s-squat{background:var(--sage)}.s-push{background:var(--accent)}.s-other{background:var(--muted)}.chart .today .stack{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}.stretch-min{font:500 10px var(--mono);color:var(--muted);opacity:.5}.stretch-min.on{opacity:1;color:var(--sage)}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:0}.chart-legend .k{display:inline-block;width:10px;height:10px;border-radius:3px}.chart .col-b{height:auto}.chart{height:auto;min-height:126px}.achievements-card .challenge{display:flex;flex-direction:column;gap:8px}.achievements-card .challenge .eyebrow{margin:0}.badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.badges li{border:1px dashed var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px;opacity:.55}.badges li.on{opacity:1;border-style:solid;border-color:var(--sage);background:var(--sage-soft)}.badges b{font-size:13px}.badges small{font-size:11px;color:var(--muted);line-height:1.35}
