:root{--bg:#f4f2f0;--surface:#fff;--surface2:#ebe8e5;--surface-high:#f0eeeb;--surface-glass:rgba(255,255,255,.75);--border:rgba(92,68,64,.08);--ghost-border:rgba(0,0,0,.06);--text:#1c1b1b;--text2:rgba(93,63,59,.78);--text3:rgba(93,63,59,.62);--accent:#d4372c;--accent2:#ff5545;--accent-soft:#ffb4aa;--accent-glow:rgba(255,85,69,.12);--green:#16a34a;--red:#dc2626;--blue:#d4372c;--teal:#0891b2;--color-running:#0891b2;--radius:16px;--radius-lg:24px;--font:'Inter',-apple-system,'SF Pro Display','Helvetica Neue',system-ui,sans-serif;/* La app se lee con el móvil en el suelo, sudado y entre series: el suelo de la
   escala es 11px y el tamaño de cuerpo 14px. --text3 es para iconografía y
   separadores; cualquier texto que haya que leer va en --text2 o --text. */
--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.625rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px}
*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100dvh;padding-bottom:84px;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}
nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px 24px 0 0;display:flex;z-index:100;padding:8px 8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom))}
:root.dark nav{background:rgba(19,19,19,.6);box-shadow:0 -10px 40px rgba(0,0,0,.4)}
nav button{flex:1;background:none;border:none;color:var(--text2);padding:6px 4px 4px;font-family:var(--font);font-size:var(--fs-xs);font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:all .2s;border-radius:var(--radius)}
nav button.active{color:#fff;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}nav button .material-symbols-outlined{font-size:24px}nav button svg{width:24px;height:24px;stroke-width:1.8}
header{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:sticky;top:0;z-index:60}
:root.dark header{background:rgba(19,19,19,.4)}
header h1{font-size:var(--fs-xl);font-weight:800;letter-spacing:-.03em;text-transform:uppercase;display:flex;align-items:center;gap:6px}header h1 span{color:var(--accent)}.header-logo{width:24px;height:24px;border-radius:6px}
.context-bar{position:sticky;top:48px;z-index:55;background:var(--surface2);padding:6px 12px;margin:0 0 12px;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);border-radius:20px}
.section{display:none;padding:16px 20px}.section.active{display:block;animation:fadeIn .2s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
label{display:block;font-size:var(--fs-base);color:var(--text2);margin-bottom:5px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}
select,input[type="date"],input[type="number"],input[type="text"]{width:100%;background:var(--surface2);border:none;color:var(--text);font-family:var(--font);font-size:var(--fs-lg);padding:12px 14px;border-radius:10px;outline:none;-webkit-appearance:none;transition:background .2s}
select:focus,input:focus{background:var(--surface);box-shadow:0 0 0 2px rgba(212,55,44,.3)}
input[type="number"]{font-size:var(--fs-xl);text-align:center;font-weight:600}
textarea{width:100%;background:var(--surface2);border:none;color:var(--text);font-family:var(--font);font-size:var(--fs-lg);padding:12px 14px;border-radius:10px;outline:none;resize:vertical;min-height:60px;transition:background .2s}
textarea:focus{background:var(--surface);box-shadow:0 0 0 2px rgba(212,55,44,.3)}
.row{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.row>*{flex:1}.mb{margin-bottom:var(--sp-3)}.mb2{margin-bottom:var(--sp-5)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border:none;font-family:var(--font);font-size:var(--fs-lg);font-weight:700;padding:16px 24px;border-radius:var(--radius);cursor:pointer;width:100%;transition:transform .1s,opacity .15s;box-shadow:0 8px 24px var(--accent-glow)}
.btn:active{transform:scale(.97);opacity:.85}
.btn-outline{background:var(--surface2);border:none;color:var(--text);font-weight:500}.btn-outline:active{background:var(--surface-high,var(--surface2));opacity:.85}
.btn-sm{padding:10px 16px;font-size:var(--fs-md);width:auto}.btn-danger{background:var(--red);color:#fff}
.save-bar{margin-top:var(--sp-3)}
.save-bar-notes-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.save-bar-notes-label{font-size:var(--fs-xs);color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.save-bar-notes-toggle{background:none;border:none;color:var(--accent);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:4px 0 4px 16px;cursor:pointer;min-height:44px}
.save-bar-notes-body{margin-bottom:8px}
.save-bar-notes-body textarea{min-height:72px;resize:vertical;width:100%}
#saveWorkoutBtn{position:sticky;bottom:max(84px,env(safe-area-inset-bottom,0px) + 84px);z-index:40;box-shadow:0 12px 32px var(--accent-glow)}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ex-dots{display:none;justify-content:center;gap:6px;padding:4px 0 8px;position:sticky;top:82px;z-index:45;background:var(--bg)}
.ex-dots.visible{display:flex}
.ex-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .2s,transform .2s;cursor:pointer}
.ex-dot.active{background:var(--accent);transform:scale(1.3)}
.session-overview-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-3)}
.so-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}
.so-name{font-size:var(--fs-xl);font-weight:700}
.so-count{font-size:var(--fs-sm);color:var(--text2)}
.so-list{display:flex;flex-direction:column;gap:var(--sp-1)}
.so-ex{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--surface2);border-radius:var(--radius)}
.so-ex-name{font-size:var(--fs-md);font-weight:600}
.so-ex-target{font-size:var(--fs-sm);color:var(--text2);font-weight:500}
.so-last{font-size:var(--fs-sm);color:var(--text2);margin-top:var(--sp-3);text-align:center}
.so-draft{font-size:var(--fs-sm);color:var(--accent);margin-top:var(--sp-1);text-align:center}
.so-start{width:100%;margin-top:var(--sp-3)}
.so-ex-hiit{flex-direction:column;align-items:stretch;padding:8px 12px;background:var(--surface2);border-radius:var(--radius)}
.so-ex-hiit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.so-hiit-list{display:flex;flex-direction:column;gap:2px;padding-top:4px;border-top:1px solid var(--border)}
.so-hiit-ex{display:flex;justify-content:space-between;font-size:var(--fs-sm);color:var(--text2);padding:3px 0}
.so-hiit-ex span:first-child{color:var(--text)}
.str-plan-header{margin-bottom:var(--sp-3)}
.str-plan-select{width:100%}
.str-plan-desc{font-size:var(--fs-sm);color:var(--text2);margin-bottom:var(--sp-3);line-height:1.4}
.str-plan-session{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-3)}
.str-plan-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}
.str-plan-session-name{font-size:var(--fs-lg);font-weight:700}
.str-plan-session-count{font-size:var(--fs-sm);color:var(--text2)}
.str-plan-ex-list{display:flex;flex-direction:column;gap:var(--sp-1)}
.str-plan-start-btn{width:100%;margin-top:var(--sp-2)}
.str-plan-custom{margin-bottom:var(--sp-4)}
.str-plan-custom-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}
.str-plan-custom-title{font-size:var(--fs-md);font-weight:700}
.str-plan-custom-empty{background:var(--surface);border-radius:var(--radius-lg);padding:16px;font-size:var(--fs-sm);color:var(--text2);line-height:1.5;display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}
.str-plan-session-custom{border:1px solid var(--accent-soft)}
.str-plan-custom-actions{display:flex;gap:8px;margin-top:var(--sp-2)}
.str-plan-custom-actions .btn{flex:1;margin-top:0}
.str-plan-custom-more{background:none;border:none;color:var(--accent);font-size:var(--fs-sm);font-weight:600;padding:var(--sp-2);width:100%;cursor:pointer}
.draft-guard-text{font-size:var(--fs-sm);color:var(--text2);line-height:1.5;margin-bottom:var(--sp-4)}
.draft-guard-actions{display:flex;flex-direction:column;gap:8px}
.run-plan-session-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-3)}
.run-plan-session-header{font-size:var(--fs-lg);font-weight:700;margin-bottom:var(--sp-2)}
.ex-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-3)}
.ex-card .ex-name{font-size:var(--fs-md);font-weight:700;margin-bottom:3px}
.ex-card .ex-target{font-size:var(--fs-sm);color:var(--text2);margin-bottom:var(--sp-2);font-weight:500}
.ex-card .sets-grid{display:grid;grid-template-columns:auto 1fr 1fr;gap:var(--sp-2) 10px;align-items:center}
.ex-card .set-label{font-size:var(--fs-sm);color:var(--text2);text-align:center;font-weight:600;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s,border-color .15s,transform .15s;padding:0;font-family:var(--font)}
.ex-card .set-label:active{transform:scale(.92)}
.ex-card .set-label.set-done{background:rgba(22,163,74,.12);border-color:var(--green);color:var(--green)}
.ex-card .set-label.active-set{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}
.ex-card input{padding:12px 8px;font-size:var(--fs-xl);text-align:center;border-radius:8px;min-height:44px}
.ex-card .sets-header{font-size:var(--fs-xs);color:var(--text2);text-align:center;text-transform:uppercase;letter-spacing:.5px;padding-bottom:2px;font-weight:600}
.ex-card .prev-data{font-size:var(--fs-sm);color:var(--text2);margin-top:10px;padding-top:8px;font-weight:500}
.ex-card .prev-data span{color:var(--green);font-weight:600}
.prev-badge{display:inline-flex;align-items:center;font-size:var(--fs-2xs);font-weight:700;color:var(--text2);background:var(--surface2);border-radius:10px;padding:2px 7px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.prev-badge--record{color:#a16207;background:rgba(245,158,11,.12)}
.timer-bar{z-index:50;background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius);padding:10px 16px;display:none;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.timer-bar.active{display:flex}
.timer-mode-toggle{display:flex;background:var(--surface2);border-radius:20px;padding:2px;gap:2px}
.timer-mode{background:none;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-sm);font-weight:600;padding:5px 10px;border-radius:18px;cursor:pointer;transition:background .2s,color .2s}
.timer-mode.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.timer-presets{display:flex;gap:var(--sp-1)}
.timer-display{font-size:var(--fs-2xl);font-weight:700;flex:1;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em;transition:color .3s}
.timer-display.warning{color:var(--accent)}.timer-display.done{color:var(--green);animation:pulse .5s ease-in-out 3}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.timer-btn{background:var(--surface2);border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:10px 16px;border-radius:20px;cursor:pointer;transition:background .2s,color .2s;min-height:44px}
.timer-btn:active{background:rgba(255,255,255,.1)}.timer-btn.active-dur{background:rgba(212,55,44,.15);color:var(--accent)}
.timer-custom-btn{font-size:var(--fs-base);padding:7px 10px}
.timer-custom-input{display:none;width:70px;background:var(--surface);border:1.5px solid var(--accent);color:var(--text);font-family:var(--font);font-size:var(--fs-2xl);font-weight:700;text-align:center;padding:4px 6px;border-radius:10px;font-variant-numeric:tabular-nums;outline:none}
.timer-custom-input.visible{display:block}
.timer-start{width:44px;height:44px;border-radius:50%;background:var(--accent);border:none;color:#000;font-size:var(--fs-xl);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s;flex-shrink:0}
.timer-start:active{transform:scale(.9)}.timer-start.running{background:var(--red)}
.timer-reset{width:44px;height:44px;border-radius:50%;background:var(--surface2);border:none;color:var(--text2);font-size:var(--fs-xl);display:none;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s;flex-shrink:0}
.timer-reset:active{transform:scale(.9)}
.timer-bar.mode-stopwatch .timer-presets{display:none}
.timer-bar.mode-stopwatch .timer-custom-input{display:none}
.timer-bar.mode-stopwatch .timer-reset{display:flex}
.timer-bar.mode-countdown .timer-reset{display:none}
.mini-timer{display:none;position:sticky;top:82px;z-index:46;background:var(--surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:20px;padding:4px 12px 4px 16px;margin:0 auto var(--sp-2);align-items:center;justify-content:center;gap:var(--sp-2);width:fit-content;box-shadow:0 2px 8px rgba(0,0,0,.1);cursor:pointer;transition:opacity .2s}
.mini-timer.visible{display:flex}
.mini-timer-time{font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums}
.mini-timer-time.warning{color:var(--red);animation:pulse .5s ease-in-out infinite}
.mini-timer-stop{background:var(--red);color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.cal-container{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-3)}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-header .cal-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em}
.cal-header .cal-count{font-size:var(--fs-xs);color:var(--text2);text-align:right;font-weight:500;text-transform:uppercase;letter-spacing:.5px}
.cal-header .cal-count span{display:block;font-size:var(--fs-2xl);font-weight:700;color:var(--accent);letter-spacing:-.02em}
.cal-nav{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);justify-content:center}
.cal-nav button{background:var(--surface2);border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:8px 18px;border-radius:20px;cursor:pointer;transition:background .2s}
.cal-nav button:active{background:rgba(255,255,255,.1)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.cal-grid .cal-dow{font-size:var(--fs-xs);color:var(--text2);text-transform:uppercase;letter-spacing:.5px;padding-bottom:8px;font-weight:600}
.cal-grid .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);border-radius:50%;color:var(--text2);font-weight:500;transition:background .2s}
.cal-grid .cal-day.has-workout{background:var(--accent);color:#fff;font-weight:700;cursor:pointer}
.cal-grid .cal-day.has-workout:active{background:var(--accent2);transform:scale(.9)}
.cal-grid .cal-day.today{box-shadow:inset 0 0 0 1.5px var(--text3)}
.cal-grid .cal-day.today.has-workout{box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}
.cal-grid .cal-day.empty{color:transparent}
.history-item{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:var(--sp-2);cursor:pointer;transition:transform .1s}
.history-item:active{transform:scale(.98)}
.history-item .hi-date{font-size:var(--fs-base);color:var(--accent);font-weight:700}
.history-item .hi-session{font-size:var(--fs-base);color:var(--text2);font-weight:500;margin-top:1px}
.history-item .hi-summary{font-size:var(--fs-base);color:var(--text);margin-top:6px;line-height:1.4}
.history-item .hi-plan{font-size:.6rem;color:var(--text2);background:var(--surface2,rgba(128,128,128,.12));padding:1px 6px;border-radius:6px;font-weight:600;white-space:nowrap}
.history-item .hi-edit-btn{background:var(--accent);color:#fff;border:none;font-family:var(--font);font-size:var(--fs-sm);font-weight:700;padding:5px 12px;border-radius:14px;cursor:pointer;margin-top:var(--sp-2);transition:opacity .2s}
.history-item .hi-edit-btn:active{opacity:.7}
.load-more-btn{display:block;width:100%;background:var(--surface2);border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:12px;border-radius:var(--radius);cursor:pointer;margin-top:var(--sp-1);transition:background .2s}.load-more-btn:active{background:var(--border)}
.measure-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.measure-row label{flex:1;margin:0;font-size:var(--fs-base);font-weight:500}
.measure-row input{width:85px;flex:none}
.proportion-card{background:var(--surface);border-radius:var(--radius);padding:12px;margin-bottom:var(--sp-2)}
.proportion-card .p-label{font-size:var(--fs-base);color:var(--text2);font-weight:500}
.proportion-card .p-value{font-size:var(--fs-xl);font-weight:700;margin:5px 0;letter-spacing:-.02em}
.proportion-card .p-bar{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}
.proportion-card .p-fill{height:100%;border-radius:2px;transition:width .4s ease}
.calc-result{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:var(--sp-2)}
.calc-result .cr-label{font-size:var(--fs-xs);color:var(--text2);text-transform:uppercase;font-weight:600;letter-spacing:.5px}
.calc-result .cr-value{font-size:var(--fs-2xl);font-weight:700;color:var(--accent);letter-spacing:-.02em;margin-top:2px}
.calc-result .cr-sub{font-size:var(--fs-base);color:var(--text2);margin-top:2px}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:none;align-items:center;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:8px 20px 24px;width:100%;max-width:500px;max-height:75vh;overflow-y:auto;animation:slideUp .3s}
.detail-btn-bar{position:fixed;bottom:0;left:0;right:0;padding:10px 10px calc(14px + env(safe-area-inset-bottom));display:flex;gap:6px;background:var(--surface);z-index:210;box-shadow:0 -2px 10px rgba(0,0,0,.08)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal::before{content:'';display:block;width:36px;height:5px;background:var(--text3);border-radius:3px;margin:8px auto 16px}
.modal h3{font-size:var(--fs-lg);font-weight:700;margin-bottom:var(--sp-4);letter-spacing:-.01em}
.sec-title{font-size:var(--fs-base);color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--sp-2)}
.sec-title-accent{color:var(--accent)}
.phase-option{display:flex;align-items:center;gap:14px;padding:14px;background:var(--surface2);border-radius:var(--radius);margin-bottom:var(--sp-2);cursor:pointer;transition:background .2s,transform .1s;border:1.5px solid transparent}
.phase-option:active{transform:scale(.98)}
.phase-option.selected{border-color:var(--accent);background:rgba(255,159,10,.08)}
.phase-option .po-num{width:34px;height:34px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-lg)}
.phase-option.selected .po-num{background:var(--accent);color:#fff}
.phase-option .po-text{font-size:var(--fs-md)}
.phase-option .po-title{font-weight:700;margin-bottom:1px}
.phase-option .po-desc{color:var(--text2);font-size:var(--fs-base)}
.delete-zone{margin-top:var(--sp-6);padding-top:16px}
.settings-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--sp-4)}
.sc-row{display:flex;align-items:center;padding:14px 16px;gap:var(--sp-3)}
.sc-row:last-child,.sc-row:last-of-type{border-bottom:none}
.sc-row-toggle{gap:var(--sp-3)}
.sc-row-content{flex:1}
.sc-row-label{font-size:var(--fs-lg);font-weight:600}
.sc-row-desc{font-size:var(--fs-base);color:var(--text2);margin-top:2px}
.sc-row-action{background:none;border:none;width:100%;text-align:left;font-family:var(--font);font-size:var(--fs-lg);color:var(--text);cursor:pointer;transition:background .15s}
.sc-row-action:active{background:var(--surface2)}
.sc-row-action:last-child{border-bottom:none}
.sc-row-action span:nth-child(2){flex:1}
.sc-row-icon{width:28px;height:28px;border-radius:7px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sc-row-icon svg{width:16px;height:16px;stroke:#fff}
.sc-row-chevron{color:var(--text3);font-size:var(--fs-xl);font-weight:300;flex-shrink:0}
.sc-row-danger{color:var(--red)}
.sc-row-danger .sc-row-icon{background:var(--red)}
.settings-card-danger{margin-top:var(--sp-6)}
.input-hint{font-size:var(--fs-sm);color:var(--text2);margin-top:2px}
.zones-preview{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 14px}
.zp-chip{font-size:var(--fs-sm);font-weight:700;color:#fff;padding:3px 8px;border-radius:8px;white-space:nowrap}
.zp-hint{font-size:var(--fs-sm);color:var(--text2);font-style:italic}
::-webkit-scrollbar{width:0}
@media(min-width:500px){body{max-width:500px;margin:0 auto}nav{max-width:500px;left:50%;transform:translateX(-50%)}
.modal-overlay{justify-content:center;align-items:center}
.detail-modal .modal,.run-detail-modal .modal{max-width:500px!important;max-height:90vh!important;border-radius:var(--radius-lg)!important;margin:auto}
.detail-btn-bar{max-width:500px;left:50%;transform:translateX(-50%);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.share-editor-overlay{max-width:500px;left:50%;right:auto;transform:translateX(-50%);border-radius:var(--radius-lg)}
}

/* Static inline styles extracted from HTML */
#prefillBanner{display:none;background:rgba(212,55,44,.08);border:.5px solid rgba(212,55,44,.2);border-radius:var(--radius);padding:10px 14px;margin-bottom:var(--sp-3);align-items:center;justify-content:space-between;gap:var(--sp-2)}
#prefillText{font-size:var(--fs-md);color:var(--accent);font-weight:600}
.prefill-clear{background:none;border:none;color:var(--text2);font-size:var(--fs-base);font-weight:600;cursor:pointer;padding:4px 8px;border-radius:8px;white-space:nowrap}
#bodyEditBanner{display:none;background:rgba(212,55,44,.08);border:.5px solid rgba(212,55,44,.2);border-radius:var(--radius);padding:10px 14px;margin-bottom:var(--sp-3);align-items:center;justify-content:space-between;gap:var(--sp-2)}
#bodyEditText{font-size:var(--fs-md);color:var(--accent);font-weight:600}
.cal-nav-today{flex:1;text-align:center}
.history-filter-wrap{margin-top:var(--sp-3)}
.sec-title-mt{margin-top:var(--sp-5)}
#importFile{display:none}
.drive-sync-toggle{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:var(--radius);padding:14px 16px;margin-bottom:var(--sp-3)}
.dst-label,.sc-row-label{font-size:var(--fs-lg);font-weight:600}.dst-desc{font-size:var(--fs-base);color:var(--text2);margin-top:2px}
.toggle-btn{width:50px;height:30px;border-radius:15px;border:none;background:var(--surface2);position:relative;cursor:pointer;transition:background .25s}
.toggle-btn::after{content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:transform .25s}
.toggle-btn.active{background:var(--green)}.toggle-btn.active::after{transform:translateX(20px)}
.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--red);color:#fff;font-family:var(--font);font-size:var(--fs-base);font-weight:600;text-align:center;padding:4px 12px;z-index:200;transform:translateY(-100%);transition:transform .3s ease}.offline-banner.visible{transform:translateY(0)}
.sync-indicator{font-size:var(--fs-sm);color:var(--text2);display:none;align-items:center;gap:var(--sp-1)}
.sync-indicator.visible{display:flex}
.sync-indicator.syncing{color:var(--accent)}
.sync-indicator.syncing::before{content:'';width:10px;height:10px;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
.sync-indicator.ok{color:var(--green)}
.sync-indicator.error{color:var(--red)}
@keyframes spin{to{transform:rotate(360deg)}}
.drive-status{font-size:var(--fs-base);padding:8px 16px;margin:0;text-align:center}
.drive-status:empty{display:none}
.drive-success{background:rgba(52,199,89,.1);color:var(--green)}
.drive-error{background:rgba(255,59,48,.1);color:var(--red)}
#driveBackupBtn:disabled,#driveRestoreBtn:disabled,#driveRevisionsBtn:disabled{opacity:.5;pointer-events:none}

/* Share card (detail modal) */
.detail-modal .modal{padding:0;overflow:hidden;width:100%;max-width:100%;max-height:100vh;display:flex;flex-direction:column;border-radius:0}
#shareCard{background:linear-gradient(145deg,#fff 0%,#f4f2f0 100%);padding:28px 20px 16px;position:relative;flex:1;display:flex;flex-direction:column;justify-content:center}
.share-bubble-1{position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:rgba(212,55,44,.06)}
.share-bubble-2{position:absolute;bottom:-60px;left:-30px;width:160px;height:160px;border-radius:50%;background:rgba(212,55,44,.03)}
#shareCardInner{position:relative;z-index:1}
.share-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4);flex-direction:column;text-align:center;gap:6px}
#detailDate{font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}
#detailSession{font-weight:800;letter-spacing:-.02em;color:var(--text);margin-top:2px}
#detailPhase{font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:rgba(212,55,44,.1);color:var(--accent);padding:4px 10px;border-radius:10px}
#detailExercises{display:flex;flex-direction:column;gap:var(--sp-2)}
.detail-ex-name{font-size:var(--fs-lg);font-weight:700;color:var(--accent);margin-bottom:6px;display:flex;align-items:center;justify-content:center;gap:6px}
.detail-ex-accent{width:3px;height:14px;background:var(--accent);border-radius:2px;display:inline-block}
.detail-pr-tag{font-size:var(--fs-2xs);background:var(--accent);color:#fff;padding:2px 6px;border-radius:6px;font-weight:700;margin-left:4px}
.detail-sets{display:flex;flex-direction:column;gap:var(--sp-1);align-items:center}
.detail-set-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-lg)}
.detail-set-num{color:var(--text2);font-weight:600;width:22px;text-align:right}
.detail-set-kg{color:var(--text);font-weight:600;min-width:52px;text-align:right}
.detail-set-reps{color:var(--text2)}
.detail-set-single{font-size:var(--fs-lg);color:var(--text);text-align:center;font-weight:600}
.detail-stat{flex:1;text-align:center}
.detail-stat-value{font-size:var(--fs-2xl);font-weight:800;color:var(--text);letter-spacing:-.02em}
.detail-stat-label{font-size:var(--fs-sm);color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
#detailNotes{display:none;padding-top:10px;color:var(--text2);font-style:italic;text-align:center}
#detailStats{display:flex;gap:0;padding-top:12px}
.share-footer{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-3);padding-top:8px;border-top:.5px solid rgba(0,0,0,.04)}
.card-brand{color:var(--text3);font-weight:500;letter-spacing:.3px}
.card-brand span{color:var(--accent)}
.card-url{color:var(--text3)}

/* Detail button bar */
#detailBtnBar{display:none}
.detail-btn-bar .btn{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:12px 8px;font-size:var(--fs-base)}
.detail-close-btn{font-size:var(--fs-md)}
.detail-share-btn{background:var(--accent);color:#fff;font-weight:700}
#deleteBtn{background:var(--red);color:#fff;border:none;border-radius:12px;font-weight:700}

/* PR celebration */
#prCelebration{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center}
.pr-card{background:var(--surface);border-radius:var(--radius-lg);padding:28px 24px;max-width:320px;width:90%;text-align:center;animation:slideUp .4s ease}
.pr-icon{font-size:var(--fs-3xl);margin-bottom:var(--sp-2)}
.pr-title{font-size:var(--fs-xl);font-weight:800;color:var(--text);margin-bottom:4px}
.pr-subtitle{font-size:var(--fs-md);color:var(--text2);margin-bottom:var(--sp-4)}
#prList{text-align:left}
.pr-confirm-btn{margin-top:var(--sp-4);background:var(--accent);color:#fff;font-weight:700;font-size:var(--fs-lg)}

/* Progress section */
.progress-label{font-size:var(--fs-base);font-weight:600;color:var(--text2);margin-bottom:6px;display:block}
#progressExercise{width:100%;padding:12px;border-radius:var(--radius);border:none;background:var(--surface2);color:var(--text);font-family:var(--font);font-size:var(--fs-lg);font-weight:600}
#progressChart{background:var(--surface);border-radius:var(--radius-lg);padding:16px;border:none;min-height:240px;position:relative}
#progressStats{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}
#progressHistory{margin-top:var(--sp-4)}
.progress-select-wrap{margin-bottom:var(--sp-4)}

/* Program selector + phase context */
.phase-context{display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:5px 14px;background:rgba(255,159,10,.1);border:1px solid rgba(255,159,10,.2);border-radius:20px;transition:background .2s}
.phase-context:active{background:rgba(255,159,10,.2)}
#phaseName,#activeProgramName{font-size:var(--fs-base);font-weight:600;color:var(--text)}
.phase-context svg{color:var(--text3);flex-shrink:0}

/* Exercise mode cards */
.ex-mode-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:8px;margin-bottom:6px}
.ex-mode-badge.interval{background:rgba(0,180,216,.12);color:var(--teal)}
.ex-mode-badge.tabata{background:rgba(255,59,48,.1);color:var(--red)}
.ex-mode-badge.rounds{background:rgba(212,55,44,.08);color:var(--accent)}
.ex-mode-badge.ladder,.ex-mode-badge.pyramid{background:rgba(255,159,10,.12);color:#e67e00}
.ex-mode-badge.amrap{background:rgba(52,199,89,.1);color:var(--green)}
.ex-mode-badge.emom{background:rgba(175,82,222,.1);color:#af52de}
.ex-mode-badge.superset{background:rgba(255,149,0,.1);color:#ff9500}
.ex-mode-badge.hiit{background:rgba(212,55,44,.1);color:var(--accent)}
.ex-mode-badge.workout{background:rgba(94,92,230,.1);color:#5e5ce6}
.ex-mode-info{font-size:var(--fs-base);color:var(--text2);margin-bottom:var(--sp-2);line-height:1.4}
.ex-mode-desc{font-size:var(--fs-base);color:var(--text2);margin-bottom:var(--sp-2);line-height:1.4;font-style:italic}
.workout-totals{margin-bottom:8px;padding:8px 10px;background:var(--surface2);border-radius:var(--radius)}
.workout-totals-title{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);margin-bottom:4px}
.workout-totals .round-list{margin:0}
.workout-round{margin-bottom:4px}
.workout-round summary.workout-round-title{font-size:var(--fs-base);font-weight:600;color:var(--text2);cursor:pointer;padding:4px 0;list-style:none}
.workout-round summary.workout-round-title::before{content:'▸ ';color:var(--text3)}
.workout-round[open] summary.workout-round-title::before{content:'▾ '}
.workout-round .round-list{margin:0 0 4px 12px}
.round-list{margin:6px 0 10px;padding-left:0;list-style:none}
.round-item{font-size:var(--fs-base);color:var(--text);padding:4px 0;display:flex;justify-content:space-between}
.round-item:last-child{border-bottom:none}
.round-item .ri-name{font-weight:600}
.round-item .ri-reps{color:var(--text2);font-size:var(--fs-base)}
.tabata-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-1);margin:6px 0 10px}
.tabata-round{font-size:var(--fs-xs);text-align:center;padding:5px 2px;background:var(--surface2);border-radius:6px;font-weight:600;line-height:1.3}
.tabata-round .tr-num{font-size:var(--fs-2xs);color:var(--text2);display:block}

/* Exercise inline timer */
.ex-timer-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;margin:8px 0;border-radius:var(--radius);border:1.5px dashed var(--border);background:none;color:var(--text2);font-size:var(--fs-base);font-weight:600;cursor:pointer;transition:all .2s}
.ex-timer-btn:active{transform:scale(.97)}
.ex-timer-btn.hiit-start{background:var(--accent);color:#fff;border:none;padding:14px 16px;font-size:var(--fs-lg)}
input.partial{border-color:var(--text3);color:var(--text2)}
.ex-timer-btn.hiit-start:active{opacity:.85;transform:scale(.97)}
.ex-timer{margin:8px 0;padding:12px;border-radius:var(--radius);text-align:center;transition:background .3s,border-color .3s}
.ex-timer.work{background:rgba(52,199,89,.1);border:1.5px solid var(--green)}
.ex-timer.rest{background:rgba(255,59,48,.08);border:1.5px solid var(--red)}
.ex-timer.neutral{background:var(--surface2);border:1.5px solid transparent}
.ex-timer-phase{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.ex-timer.work .ex-timer-phase{color:var(--green)}
.ex-timer.rest .ex-timer-phase{color:var(--red)}
.ex-timer.neutral .ex-timer-phase{color:var(--text2)}
.ex-timer-display{font-size:var(--fs-3xl);font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.ex-timer-round{font-size:var(--fs-base);color:var(--text2);margin-top:var(--sp-1)}
.ex-timer-label{font-size:var(--fs-sm);color:var(--text2);margin-top:2px;font-weight:500}
.ex-timer-bar{height:4px;border-radius:2px;background:var(--surface2);margin:8px 0 4px;overflow:hidden}
.ex-timer-bar-fill{height:100%;border-radius:2px;transition:width .25s linear}
.ex-timer.work .ex-timer-bar-fill{background:var(--green)}
.ex-timer.rest .ex-timer-bar-fill{background:var(--red)}
.ex-timer.neutral .ex-timer-bar-fill{background:var(--accent)}
.ex-timer-actions{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-2)}
.ex-timer-stop{padding:12px 20px;min-height:44px;border-radius:20px;border:none;font-size:var(--fs-base);font-weight:700;cursor:pointer}
.ex-timer.work .ex-timer-stop{background:var(--green);color:#fff}
.ex-timer.rest .ex-timer-stop{background:var(--red);color:#fff}
.ex-timer.neutral .ex-timer-stop{background:var(--text2);color:#fff}
.ex-timer-round-btn{padding:12px 16px;min-height:48px;border-radius:20px;border:1.5px solid var(--accent);background:none;color:var(--accent);font-size:var(--fs-base);font-weight:700;cursor:pointer}
.ex-timer-round-btn:active{background:var(--accent);color:#fff}
.ex-timer.paused{opacity:.9;border-style:dashed}
.ex-timer.paused .ex-timer-phase::after{content:' · PAUSADO';color:var(--text3);font-size:var(--fs-2xs)}
.ex-timer-resume{padding:12px 0;min-height:44px;border-radius:20px;background:var(--accent);border:none;color:#fff;font-size:var(--fs-base);font-weight:700;cursor:pointer;flex:1}
.ex-timer-resume:active{opacity:.85}
.ex-timer.paused .ex-timer-stop{background:var(--text3);color:#fff;min-height:44px}
.hiit-ex-list{margin:8px 0 4px;padding:0}
.hiit-ex-item{display:flex;justify-content:space-between;align-items:center;padding:7px 6px;border-bottom:1px solid var(--border);font-size:var(--fs-base);color:var(--text2);transition:all .2s}
.hiit-ex-item.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}
.hiit-ex-item.done{color:var(--text3);text-decoration:line-through;opacity:.45}
.hiit-ex-item .hiit-ex-reps{font-size:var(--fs-sm);color:inherit;margin-left:8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hiit-ex-btn{padding:12px 20px;min-height:44px;border-radius:20px;background:var(--accent);border:none;color:#fff;font-size:var(--fs-base);font-weight:700;cursor:pointer;flex:1}
.hiit-ex-btn:active{opacity:.85}
.ex-timer.hiit-work .ex-timer-stop{flex:1;min-height:44px;background:var(--surface);color:var(--text2);border:1.5px solid var(--border)}
.ex-timer.hiit-done{background:rgba(52,199,89,.1);border:1.5px solid var(--green)}
.ex-timer.hiit-done .ex-timer-phase{color:var(--green);font-size:var(--fs-sm);letter-spacing:1px}
.ex-timer.hiit-done .ex-timer-display{color:var(--green)}
body.hiit-focus header{display:none}
body.hiit-focus nav{display:none}
body.hiit-focus .context-bar{display:none}
body.hiit-focus .str-subnav{display:none}
body.hiit-focus{padding-bottom:0}
body.hiit-focus .round-list{display:none}
body.hiit-focus .ex-mode-info{display:none}

/* HIIT work/rest phase states */
.ex-timer.hiit-work{background:rgba(22,163,74,.12);border:2px solid var(--green);border-radius:var(--radius);padding:16px 16px 12px;text-align:center}
.ex-timer.hiit-work .ex-timer-phase{color:var(--green);font-size:var(--fs-xs);letter-spacing:2px;display:flex;justify-content:space-between;align-items:center}
.ex-timer.hiit-work .ex-timer-display{display:none}
.ex-timer.hiit-rest{background:var(--surface2);border:1.5px solid var(--accent);border-radius:var(--radius);padding:20px 16px 16px;text-align:center}
.ex-timer.hiit-rest .ex-timer-phase{color:var(--accent);font-size:var(--fs-xs);letter-spacing:2px;display:flex;justify-content:space-between;align-items:center}
.hiit-session-elapsed{font-size:var(--fs-xs);font-weight:600;letter-spacing:.5px;color:var(--text2);font-variant-numeric:tabular-nums;opacity:.75}
.ex-timer.hiit-rest .ex-timer-display{font-size:var(--fs-4xl);color:var(--text);line-height:1;margin:8px 0}
.hiit-rest-next{font-size:var(--fs-sm);color:var(--text2);margin-bottom:12px}
.hiit-rest-next strong{color:var(--text);font-weight:700}
.hiit-skip-btn{width:100%;padding:16px;min-height:52px;border-radius:14px;border:1.5px solid var(--accent);background:none;color:var(--accent);font-family:var(--font);font-size:var(--fs-lg);font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.hiit-skip-btn:active{background:var(--accent);color:#fff;transform:scale(.97)}
.hiit-rounds-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:10px}
.hrd{width:10px;height:10px;border-radius:50%;border:2px solid var(--green);background:transparent;transition:background .25s,transform .25s}
.hrd.filled{background:var(--green)}
.hrd.just-completed{animation:hrd-pop .3s ease-out}
@keyframes hrd-pop{0%{transform:scale(1)}50%{transform:scale(1.6)}100%{transform:scale(1)}}

/* Circuit variant — usa --accent (rojo) en lugar de --green */
.ex-timer.circuit-work{background:rgba(212,55,44,.08);border:2px solid var(--accent);border-radius:var(--radius);padding:16px 16px 12px;text-align:center}
.ex-timer.circuit-work .ex-timer-phase{color:var(--accent);font-size:var(--fs-xs);letter-spacing:2px;display:flex;justify-content:space-between;align-items:center}
.ex-timer.circuit-work .ex-timer-display{display:none}
.ex-timer.circuit-work .ex-timer-stop{flex:1;min-height:44px;background:var(--surface);color:var(--text2);border:1.5px solid var(--border)}
.ex-timer.circuit-work .hrd{border-color:var(--accent)}
.ex-timer.circuit-work .hrd.filled{background:var(--accent)}
.ex-timer.circuit-work .hiit-ex-item.active{color:var(--accent);border-bottom-color:var(--accent)}
.hiit-illus{display:flex;justify-content:center;align-items:center;min-height:0;margin:2px 0}
.hiit-illus:empty{display:none}
.hiit-illus .ex-pict{width:96px;height:96px}
.hiit-ex-item.rest-step{color:var(--text3);font-style:italic}
.hiit-ex-item.rest-step.active{color:var(--accent);font-style:normal;border-bottom-color:var(--accent)}
.ex-timer.step-rest{background:var(--surface2);border-color:var(--accent)}
.ex-timer.step-rest .ex-timer-phase{color:var(--accent)}
.hiit-side-cue{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:8px;background:var(--accent);color:#fff;font-size:var(--fs-xs);font-weight:700;letter-spacing:.3px}
.hiit-rest-adj{display:flex;justify-content:center;gap:8px;margin-bottom:12px}
.hiit-rest-tip{font-size:var(--fs-sm);color:var(--text2);line-height:1.4;margin:0 0 12px;padding:0 4px}
.ex-timer.hiit-prep{background:var(--surface2);border:2px solid var(--green);border-radius:var(--radius);padding:20px 16px 16px;text-align:center}
.ex-timer.hiit-prep .ex-timer-phase{color:var(--green);font-size:var(--fs-xs);letter-spacing:2px}
.hiit-prep-count{font-size:4rem;font-weight:800;line-height:1;margin:6px 0;font-variant-numeric:tabular-nums;color:var(--text)}
.hiit-prep-next{font-size:var(--fs-sm);color:var(--text2);margin:8px 0 14px}
.hiit-prep-next strong{color:var(--text)}
.hiit-prep-skip{width:100%;padding:14px;min-height:48px;border-radius:14px;border:1.5px solid var(--green);background:none;color:var(--green);font-family:var(--font);font-size:var(--fs-base);font-weight:700;cursor:pointer}
.hiit-prep-skip:active{background:var(--green);color:#fff;transform:scale(.97)}
.ex-timer.circuit-done{background:rgba(212,55,44,.1);border:1.5px solid var(--accent)}
.ex-timer.circuit-done .ex-timer-phase{color:var(--accent);font-size:var(--fs-sm);letter-spacing:1px}
.ex-timer.circuit-done .ex-timer-display{color:var(--accent)}

/* Toast notifications */
.toast-container{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:250;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);pointer-events:none}
.toast{background:var(--text);color:var(--bg);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:10px 20px;border-radius:20px;opacity:0;transform:translateY(20px);transition:opacity .25s,transform .25s;pointer-events:auto;max-width:90vw;text-align:center}
.toast.visible{opacity:1;transform:translateY(0)}
.toast-success{background:var(--green);color:#fff}
.toast-error{background:var(--red);color:#fff}
.update-banner{position:fixed;top:0;left:0;right:0;background:var(--accent);color:#fff;font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;z-index:300;gap:var(--sp-3)}
.update-banner button{background:#fff;color:var(--accent);border:none;border-radius:8px;padding:6px 16px;font-family:var(--font);font-size:var(--fs-md);font-weight:700;cursor:pointer;flex-shrink:0}
.toast-info{background:var(--text);color:var(--bg)}
.toast-action{background:none;border:none;color:inherit;font-family:var(--font);font-size:var(--fs-md);font-weight:800;text-decoration:underline;cursor:pointer;margin-left:8px;padding:0}
.toast-restore{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(30px);z-index:260;background:var(--surface2);color:var(--text);font-family:var(--font);border-radius:16px;padding:16px;max-width:92vw;width:360px;box-shadow:0 8px 32px rgba(0,0,0,.25);opacity:0;transition:opacity .3s,transform .3s}
.toast-restore.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.toast-restore-msg{font-size:var(--fs-md);line-height:1.4;margin-bottom:var(--sp-3)}
.toast-restore-actions{display:flex;gap:var(--sp-2);justify-content:flex-end}
.toast-restore-actions button{border:none;border-radius:10px;padding:8px 18px;font-family:var(--font);font-size:var(--fs-md);font-weight:700;cursor:pointer}
.toast-restore-yes{background:var(--green);color:#fff}
.toast-restore-no{background:var(--surface);color:var(--text2)}

/* Prefilled inputs */
input.prefilled{background:rgba(212,55,44,.06);border:.5px dashed rgba(212,55,44,.25)}
input.prefilled:focus{background:var(--surface);border:none}

/* Custom programs list */
.custom-prog-item{display:flex;align-items:center;gap:var(--sp-2);padding:10px 12px}
.custom-prog-item:last-child{border-bottom:none}
.custom-prog-name{flex:1;font-size:var(--fs-md);font-weight:600;color:var(--text)}
.custom-prog-desc{font-size:var(--fs-sm);color:var(--text2)}
.custom-prog-badge{font-size:var(--fs-2xs);background:var(--teal);color:#fff;padding:2px 6px;border-radius:6px;font-weight:700}
.custom-prog-del{background:none;border:none;color:var(--red);font-size:var(--fs-base);font-weight:600;cursor:pointer;padding:4px 8px;font-family:var(--font)}
.create-plan-link{display:block;text-align:center;font-size:var(--fs-base);color:var(--accent);font-weight:600;margin-top:var(--sp-2);text-decoration:none}

/* Program selector modal */
.prog-modal-item{display:flex;align-items:center;gap:var(--sp-2);padding:12px;border-radius:var(--radius);cursor:pointer;transition:background .15s}
.prog-modal-item:active{background:var(--surface2)}
.prog-modal-item.active{background:rgba(212,55,44,.08);border:1px solid rgba(212,55,44,.2)}
.prog-modal-name{font-size:var(--fs-lg);font-weight:700;color:var(--text)}
.prog-modal-desc{font-size:var(--fs-base);color:var(--text2);margin-top:2px}

/* ── Running Section ─────────────────────────────────── */

/* Running context bar */
.run-ctx-bar{position:sticky;top:48px;z-index:55;background:var(--surface2);padding:6px 12px;margin:0 0 12px;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);border-radius:20px}
.run-ctx-bar .phase-context{background:rgba(212,55,44,.1);border-color:rgba(212,55,44,.2)}
.run-ctx-bar .phase-context:active{background:rgba(212,55,44,.2)}

/* Sub-navigation */
.run-subnav{display:flex;background:var(--surface2);border-radius:20px;padding:2px;gap:2px;margin-bottom:var(--sp-4)}
.run-tab{flex:1;background:none;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:8px 4px;border-radius:18px;cursor:pointer;transition:background .2s,color .2s}
.run-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* Panels */
.run-panel{display:none}.run-panel.active{display:block;animation:fadeIn .2s ease-out}

/* Strength sub-navigation (mirrors run-subnav) */
.str-subnav{display:flex;background:var(--surface2);border-radius:20px;padding:2px;gap:2px;margin-bottom:var(--sp-4)}
.str-tab{flex:1;background:none;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:8px 4px;border-radius:18px;cursor:pointer;transition:background .2s,color .2s}
.str-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.str-panel{display:none}.str-panel.active{display:block;animation:fadeIn .2s ease-out}

/* Segment cards */
.run-seg-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;margin-bottom:14px}
.run-seg-bar-block{min-width:2px}
.run-seg-bar-gap{width:3px;background:var(--bg);flex-shrink:0}
/* La zona del segmento la marca el chip de color de `.run-seg-zone`, no una
   banda de acento en el borde. */
.run-segment-card{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:var(--sp-2)}
.run-seg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.run-seg-name{font-size:var(--fs-md);font-weight:700}
.run-seg-zone{font-size:var(--fs-xs);font-weight:700;color:#fff;padding:2px 8px;border-radius:10px}
.run-seg-info{font-size:var(--fs-base);color:var(--text2);margin-bottom:var(--sp-2);font-weight:500}
.run-seg-inputs{display:flex;gap:var(--sp-2)}
.run-seg-inputs>div{flex:1}
.run-seg-inputs input{padding:8px 6px;font-size:var(--fs-lg);text-align:center;border-radius:8px}

/* Pace display */
.run-pace-display{text-align:center;font-size:var(--fs-xl);font-weight:700;color:var(--accent);margin:-4px 0 16px;display:none}

/* Summary section */
.run-summary{margin-top:var(--sp-2)}

/* Context bar for running */
.run-context-bar{margin-bottom:var(--sp-2)}

/* History cards */
.run-history-card{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:var(--sp-2)}
.run-hist-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.run-hist-date{font-size:var(--fs-base);color:var(--text2);font-weight:600}
.run-hist-type{font-size:var(--fs-xs);font-weight:700;color:var(--accent);background:rgba(212,55,44,.08);padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px}
.run-hist-session{font-size:var(--fs-md);font-weight:700;margin-bottom:2px}
.run-hist-details{font-size:var(--fs-md);font-weight:600;color:var(--text)}
.run-hist-extras{font-size:var(--fs-base);color:var(--text2);margin-top:var(--sp-1);font-weight:500}
.run-hist-actions{display:flex;gap:6px;margin-top:10px}
.run-hist-actions button{font-size:var(--fs-base);padding:6px 12px}

/* Weekly bar chart */
.run-chart{min-height:160px;margin-bottom:var(--sp-2)}
.run-bar-chart{display:flex;align-items:flex-end;gap:var(--sp-1);height:150px;padding:0 4px}
.run-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}
.run-bar-value{font-size:var(--fs-2xs);font-weight:700;color:var(--text2);margin-bottom:4px}
.run-bar{width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:3px;transition:height .3s}
.run-bar-label{font-size:var(--fs-2xs);color:var(--text2);margin-top:var(--sp-1);font-weight:600}

/* Pace evolution SVG chart */
.run-pace-svg{width:100%;height:120px;display:block}
.run-pace-labels{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text2);font-weight:600;margin-top:-4px}
.run-pace-dates{display:flex;justify-content:space-between;font-size:var(--fs-2xs);color:var(--text2);margin-top:2px}

/* Stats grid */
.run-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.run-stat-card{background:var(--surface);border-radius:var(--radius);padding:14px;text-align:center}
.run-stat-value{font-size:var(--fs-xl);font-weight:800;color:var(--text)}
.run-stat-label{font-size:var(--fs-sm);color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-top:var(--sp-1);font-weight:600}

/* Empty state */
.empty-state{text-align:center;color:var(--text2);font-size:var(--fs-md);padding:40px 20px;font-weight:500}

/* ── Running: Goal card ──────────────────────────────── */
.run-goal-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-4)}
.run-goal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}
.run-goal-title{font-size:var(--fs-base);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text2)}
.run-goal-settings{background:none;border:none;color:var(--text2);cursor:pointer;padding:4px}
.run-goal-body{display:flex;align-items:center;gap:var(--sp-4)}
.run-goal-ring{position:relative;width:100px;height:100px;flex-shrink:0}
.run-goal-ring svg{width:100%;height:100%}
.run-goal-ring-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.run-goal-current{font-size:var(--fs-2xl);font-weight:800;color:var(--text);line-height:1}
.run-goal-unit{font-size:var(--fs-xs);font-weight:600;color:var(--text2);text-transform:uppercase}
.run-goal-info{flex:1}
.run-goal-target{font-size:var(--fs-md);font-weight:600;color:var(--text);margin-bottom:4px}
.run-goal-sessions{font-size:var(--fs-base);color:var(--text2)}
.run-plan-pills{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}
.run-plan-pill{font-size:var(--fs-xs);font-weight:600;padding:3px 8px;border-radius:10px;background:var(--surface2);color:var(--text2)}
.run-plan-pill.done{background:rgba(48,209,88,.15);color:var(--green)}
.run-goal-nogoal{font-size:var(--fs-base);color:var(--text2);text-align:center;padding:12px 0}

/* ── Running: Personal Records card ──────────────────── */
.run-next-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-4)}
.run-next-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}
.run-next-label{font-size:var(--fs-xs);font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.run-next-week{font-size:var(--fs-xs);color:var(--text2)}
.run-next-name{font-size:var(--fs-xl);font-weight:700;margin-bottom:4px}
.run-next-desc{font-size:var(--fs-sm);color:var(--text2);margin-bottom:var(--sp-3);line-height:1.4}
.run-next-start{width:100%;margin-top:var(--sp-3)} /* legacy, kept for plan tab */
.run-prs-card{background:var(--surface);border-radius:var(--radius-lg);padding:16px;margin-bottom:var(--sp-4)}
.run-prs-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.run-pr-item{background:var(--surface2);border-radius:var(--radius);padding:12px;text-align:center}
.run-pr-dist{font-size:var(--fs-xs);font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.run-pr-value{font-size:var(--fs-xl);font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.run-pr-item.has-pr{border:1px solid rgba(212,55,44,.15)}
.run-pr-item.new-pr{background:rgba(212,55,44,.08);border:1px solid var(--accent);animation:prPulse .6s ease}
@keyframes prPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}

/* ── Running: Start/Manual buttons ───────────────────── */
.run-start-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;background:var(--accent);color:#fff;border:none;font-family:var(--font);font-size:var(--fs-xl);font-weight:700;padding:18px 24px;border-radius:16px;cursor:pointer;transition:transform .1s,opacity .15s;margin-bottom:var(--sp-2)}
.run-start-btn:active{transform:scale(.97);opacity:.85}
.run-start-btn svg{flex-shrink:0}
.run-secondary-actions{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:var(--sp-2)}
.run-secondary-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:12px 16px;cursor:pointer;transition:color .15s}
.run-secondary-btn:active{color:var(--text)}
.run-secondary-sep{width:1px;height:20px;background:var(--border)}

/* ── Running: UI Lock (black screen keep-alive) ──────── */
.run-ui-lock{display:none;position:fixed;inset:0;z-index:600;background:#000;flex-direction:column;align-items:center;justify-content:center;color:#555;user-select:none;-webkit-user-select:none;touch-action:none}
.run-ui-lock.active{display:flex}
.run-ui-lock-content{text-align:center}
.run-ui-lock-content .material-symbols-outlined{font-size:48px}
.run-ui-lock-content p{margin:8px 0 0;font-size:var(--fs-base);font-weight:600}
.run-ui-lock-hint{font-size:var(--fs-sm)!important;font-weight:400!important;color:#444}
.run-ui-lock-progress{position:absolute;bottom:0;left:0;height:4px;background:var(--accent);width:0;transition:width .05s linear}

/* ── Running: GPS gap warning in summary ─────────────── */
.run-sum-gap-warn{background:rgba(255,170,0,.12);border:1px solid rgba(255,170,0,.3);border-radius:var(--radius);padding:10px 14px;font-size:var(--fs-sm);color:#fa0;text-align:center;margin-bottom:12px}

/* ── Running: GPS Tracking Overlay ───────────────────── */
.run-tracking-overlay{display:none;position:fixed;inset:0;z-index:500;background:var(--bg);flex-direction:column;overflow:hidden}
.run-tracking-overlay.active{display:flex}
.run-live{display:flex;flex-direction:column;height:100%;position:relative}
.run-live-top{display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) 16px 8px;background:var(--surface)}
.run-live-data{display:contents}
.run-live-btn{background:var(--surface2);border:none;width:52px;min-height:44px;height:auto;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px 4px;cursor:pointer;color:var(--text)}
.run-live-btn:active{opacity:.7}
.run-live-btn-label{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.3px;line-height:1;white-space:nowrap;color:inherit;opacity:.8}
.run-live-controls{display:flex;gap:var(--sp-2);align-items:flex-start}
.run-live-center-status{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0}
.run-stop-btn{background:var(--red);color:#fff}
.run-stop-btn .run-live-btn-label{opacity:1}
.run-live-status{font-size:var(--fs-md);font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--accent)}
.run-live-status.paused{color:var(--red);animation:status-blink 1.5s ease-in-out infinite}
@keyframes status-blink{0%,100%{opacity:1}50%{opacity:.4}}
.run-live-timer{font-size:var(--fs-4xl);font-weight:800;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.03em;padding:8px 0 4px;color:var(--text)}
.run-live-metrics{display:flex;justify-content:center;gap:var(--sp-8);padding:0 20px 12px}
.run-live-metric{text-align:center}
.run-live-metric-value{font-size:var(--fs-3xl);font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.run-live-metric-label{font-size:var(--fs-xs);font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.run-live-splits{padding:0 16px;max-height:80px;overflow-y:auto;margin-bottom:var(--sp-2)}
.run-live-split{display:flex;justify-content:space-between;padding:4px 8px;font-size:var(--fs-base);font-weight:600;border-bottom:.5px solid var(--border)}
.run-live-split-km{color:var(--text2)}.run-live-split-pace{color:var(--text);font-variant-numeric:tabular-nums}
.run-live-map{flex:1;min-height:150px;background:var(--surface2);position:relative}
.run-live-map .leaflet-container{height:100%;width:100%}
.run-live-bottom{display:flex;justify-content:center;padding:16px 20px max(16px,env(safe-area-inset-bottom));background:var(--surface)}
.run-pause-btn{width:64px;height:64px;border-radius:50%;background:var(--accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s;box-shadow:0 4px 12px rgba(212,55,44,.3)}
.run-pause-btn:active{transform:scale(.92)}
.run-pause-btn.paused svg{display:none}
.run-pause-btn.paused::after{content:'';width:0;height:0;border-style:solid;border-width:14px 0 14px 24px;border-color:transparent transparent transparent #fff;margin-left:4px}

/* Auto-pause toggle */
.run-autopause-btn.active{background:var(--green);color:#fff}

/* Timer blink on auto-pause */
.run-live-timer.auto-paused{animation:autopause-blink 1.2s ease-in-out infinite}
@keyframes autopause-blink{0%,100%{opacity:1}50%{opacity:.3}}

/* HR monitor button states */
.run-hr-btn.connected{background:var(--red);color:#fff}
.run-hr-btn.connected svg{fill:currentColor}
.run-hr-btn.connecting{animation:hr-pulse 1s ease-in-out infinite}
@keyframes hr-pulse{0%,100%{opacity:1}50%{opacity:.3}}
.run-live-hr .run-live-metric-value{transition:color .3s;font-variant-numeric:tabular-nums}
.run-live-hr .run-live-metric-label{transition:color .3s;font-variant-numeric:tabular-nums}
.run-type-hr-btn.hr-connected{border-color:var(--green);color:var(--green)}

/* HR detail section */
.run-detail-hr-section{margin-top:var(--sp-3)}
.run-detail-hr-title{font-size:var(--fs-base);font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;margin-top:var(--sp-3)}
.run-detail-hr-graph{background:var(--surface2);border-radius:8px;padding:8px;overflow:hidden}
.hr-zone-bar-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.hr-zone-bar-label{font-size:var(--fs-base);font-weight:700;width:20px;text-align:center}
.hr-zone-bar-track{flex:1;height:14px;background:var(--surface2);border-radius:7px;overflow:hidden}
.hr-zone-bar-fill{height:100%;border-radius:7px;transition:width .3s}
.hr-zone-bar-time{font-size:var(--fs-base);font-weight:600;color:var(--text);width:36px;text-align:right;font-variant-numeric:tabular-nums}
.hr-zone-bar-pct{font-size:var(--fs-sm);color:var(--text2);width:28px;text-align:right}

/* ── Run type picker modal ───────────────────────────── */
.run-type-picker{max-width:400px}
.run-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin:12px 0}
.run-type-card{padding:12px;border:2px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.run-type-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.run-type-card-name{font-weight:600;font-size:var(--fs-lg);margin-bottom:2px}
.run-type-card-desc{font-size:var(--fs-base);color:var(--text-sec);line-height:1.3}
.run-type-card-zone{display:inline-block;font-size:var(--fs-sm);padding:1px 6px;border-radius:4px;color:#fff;margin-top:var(--sp-1);font-weight:600}
.run-type-extra{margin-top:var(--sp-2)}
.run-type-extra label{font-size:var(--fs-md);color:var(--text-sec)}
.run-type-extra input{width:100%;margin-top:var(--sp-1)}

/* ── Live type panel & badge ─────────────────────────── */
.run-live-type-badge{font-size:var(--fs-sm);padding:2px 8px;border-radius:4px;color:#fff;font-weight:600;display:none}
.run-live-type-badge.visible{display:inline-block}
.run-live-type-panel{padding:0 16px;min-height:0;transition:min-height .2s}
.run-live-type-panel:empty{display:none}

/* Session progress bar */
.run-session-progress{display:flex;gap:var(--sp-1);padding:8px 16px;align-items:center}
.run-session-seg{flex:1;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600;color:#fff;opacity:.35;transition:opacity .3s,transform .2s;overflow:hidden;white-space:nowrap;padding:0 6px}
.run-session-seg.active{opacity:1;transform:scaleY(1.15)}
.run-session-seg.done{opacity:.5}

/* Steady segment panel */
.run-type-steady-seg{padding:6px 0}
.run-type-steady-info{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:var(--fs-md)}
.run-type-steady-name{font-weight:600;color:var(--text)}
.run-type-steady-remaining{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-xl)}
.run-type-steady-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.run-type-steady-bar-fill{height:100%;border-radius:2px;transition:width .5s linear}
.run-seg-skip-btn{display:block;margin:10px auto 0;background:var(--surface2);border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:8px 20px;border-radius:20px;cursor:pointer;transition:background .2s}

/* Type panel: zone bar */
.run-type-zone-bar{display:flex;align-items:center;gap:var(--sp-2);padding:8px 12px;border-radius:8px;font-size:var(--fs-lg);font-weight:600;color:#fff}
.run-type-zone-bar .zone-label{opacity:.85;font-weight:400}

/* Type panel: pace comparison (tempo) */
.run-type-pace-compare{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:8px 0}
.run-type-pace-target{text-align:center}
.run-type-pace-target-value{font-size:var(--fs-xl);font-weight:700}
.run-type-pace-target-label{font-size:var(--fs-base);color:var(--text-sec)}
.run-type-pace-delta{font-size:var(--fs-2xl);font-weight:700;padding:4px 12px;border-radius:8px}
.run-type-pace-delta.faster{color:#34c759;background:rgba(52,199,89,.12)}
.run-type-pace-delta.slower{color:#ff3b30;background:rgba(255,59,48,.12)}

/* Type panel: competition progress */
.run-type-race{text-align:center;padding:6px 0}
.run-type-race-remaining{font-size:var(--fs-2xl);font-weight:700}
.run-type-race-label{font-size:var(--fs-base);color:var(--text-sec)}
.run-type-race-eta{font-size:var(--fs-lg);color:var(--text-sec);margin-top:var(--sp-1)}
.run-type-race-bar{height:6px;background:var(--border);border-radius:3px;margin-top:6px;overflow:hidden}
.run-type-race-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s}

/* Type panel: intervals */
.run-type-interval{text-align:center;padding:6px 0}
.run-type-interval-rep{font-size:var(--fs-2xl);font-weight:700}
.run-type-interval-phase{font-size:var(--fs-lg);font-weight:600;padding:3px 12px;border-radius:6px;display:inline-block;margin-top:var(--sp-1)}
.run-type-interval-phase.work{background:#ff6b35;color:#fff}
.run-type-interval-phase.rest{background:#34c759;color:#fff}
.run-type-interval-seg{font-size:var(--fs-base);color:var(--text-sec);margin-top:var(--sp-1)}
.run-type-interval-lap-btn{margin-top:var(--sp-2);padding:8px 24px;border:2px solid var(--accent);border-radius:8px;background:transparent;color:var(--accent);font-weight:700;font-size:var(--fs-lg);cursor:pointer}

/* Type panel: cuestas */
.run-type-elev{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);padding:8px 0}
.run-type-elev-value{font-size:var(--fs-2xl);font-weight:700}
.run-type-elev-label{font-size:var(--fs-base);color:var(--text-sec)}

/* ── Running: Desktop layout ─────────────────────────── */
@media(min-width:700px){
.run-live{flex-direction:row;max-width:1200px;margin:0 auto}
.run-live-data{display:flex;flex-direction:column;width:380px;min-width:340px;max-width:420px;background:var(--surface);border-right:.5px solid var(--border);overflow-y:auto}
.run-live-map{flex:1;min-height:unset;height:100vh}
.run-live-top{padding:16px;flex-wrap:wrap}
.run-live-timer{font-size:var(--fs-3xl)}
.run-live-metrics{flex-direction:column;gap:var(--sp-3);padding:0 20px 16px}
.run-live-metric{display:flex;align-items:baseline;justify-content:space-between;text-align:left}
.run-live-metric-value{font-size:var(--fs-2xl)}
.run-live-metric-label{font-size:var(--fs-base)}
.run-live-splits{max-height:none;flex:1}
.run-live-bottom{padding:16px 20px;border-top:.5px solid var(--border);margin-top:auto}
.run-pause-btn{width:56px;height:56px}
}

/* ── Running: Post-run summary ───────────────────────── */
.run-summary-screen{padding:max(16px,env(safe-area-inset-top)) 20px 20px;overflow-y:auto;height:100%}
.run-summary-header{font-size:var(--fs-xl);font-weight:800;text-align:center;margin-bottom:var(--sp-4);color:var(--text)}
.run-summary-big-stats{display:flex;justify-content:center;gap:var(--sp-6);margin-bottom:var(--sp-4)}
.run-summary-stat{text-align:center}
.run-summary-stat-value{font-size:var(--fs-2xl);font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.run-summary-stat-label{font-size:var(--fs-xs);font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.run-summary-map{height:200px;border-radius:var(--radius);overflow:hidden;margin-bottom:var(--sp-4);background:var(--surface2)}
.run-summary-map .leaflet-container{height:100%;width:100%;border-radius:var(--radius)}
.run-summary-splits-title{font-size:var(--fs-base);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);margin-bottom:var(--sp-2)}
.run-summary-splits{margin-bottom:var(--sp-4)}
.run-split-row{display:flex;align-items:center;gap:var(--sp-2);padding:8px 0;border-bottom:.5px solid var(--border)}
.run-split-row:last-child{border-bottom:none}
.run-split-km{font-size:var(--fs-base);font-weight:700;color:var(--text2);width:40px}
.run-split-pace{font-size:var(--fs-lg);font-weight:700;color:var(--text);width:auto;min-width:60px;font-variant-numeric:tabular-nums}
.run-split-hr{font-size:var(--fs-base);color:var(--red);margin-left:4px;font-weight:600}
.run-split-bar{flex:1;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}
.run-split-fill{height:100%;border-radius:3px;transition:width .3s}
.run-split-fast{background:var(--green)}
.run-split-mid{background:var(--accent)}
.run-split-slow{background:var(--red)}
.run-summary-form{margin-top:var(--sp-2)}

/* ── Running: History cards with map thumbnail ───────── */
.run-history-card{background:var(--surface);border-radius:var(--radius);padding:14px;margin-bottom:var(--sp-2);cursor:pointer;transition:transform .1s}
.run-history-card:active{transform:scale(.98)}
.run-hist-body{display:flex;gap:var(--sp-3)}
.run-hist-minimap{width:64px;height:64px;border-radius:8px;background:var(--surface2);flex-shrink:0;overflow:hidden;position:relative}
.run-hist-minimap canvas{width:100%;height:100%}
.run-hist-content{flex:1;min-width:0}
.run-hist-splits{font-size:var(--fs-xs);color:var(--text2);margin-top:var(--sp-1);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Running: Detail modal ───────────────────────────── */
.run-detail-modal .modal{padding-top:0;overflow:hidden}
#runShareCard{background:linear-gradient(145deg,#fff 0%,#f0f2f8 100%);padding:20px 20px 12px;position:relative;overflow:hidden}
#runShareCardInner{position:relative;z-index:1}
#runShareCard .share-footer{margin-top:var(--sp-2)}
#runShareCard + div{padding:0 16px 16px}
.run-detail-header{text-align:center;margin-bottom:var(--sp-4)}
.run-detail-date{font-size:var(--fs-base);font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.run-detail-type{display:inline-block;font-size:var(--fs-xs);font-weight:700;color:var(--accent);background:rgba(212,55,44,.08);padding:2px 10px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;margin-top:var(--sp-1)}
.run-detail-session-name{font-size:var(--fs-md);font-weight:700;margin-top:var(--sp-1)}
.run-detail-stats{display:flex;justify-content:center;gap:var(--sp-5);padding:12px 0;border-top:.5px solid var(--border);border-bottom:.5px solid var(--border);margin-bottom:var(--sp-3)}
.run-detail-stat{text-align:center}
.run-detail-stat-value{font-size:var(--fs-xl);font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.run-detail-stat-label{font-size:var(--fs-2xs);font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.run-detail-map{height:180px;border-radius:var(--radius);overflow:hidden;margin-bottom:var(--sp-3);background:var(--surface2)}
.run-detail-map .leaflet-container{height:100%;width:100%;border-radius:var(--radius)}
.run-detail-splits{margin-bottom:var(--sp-2)}
.run-detail-notes{font-size:var(--fs-md);color:var(--text2);font-style:italic;padding:8px 0}

/* ── Running: Manual splits input ────────────────────── */
.run-manual-splits{margin-bottom:var(--sp-3)}
.run-split-input-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:6px}
.run-split-input-label{font-size:var(--fs-base);font-weight:600;color:var(--text2);width:40px}
.run-split-input-row input{flex:1;padding:8px 10px;font-size:var(--fs-lg)}
.run-split-input-row .run-split-remove{background:none;border:none;color:var(--red);font-size:var(--fs-base);cursor:pointer;padding:4px 8px}

/* ── Onboarding ─────────────────────────────────────────── */
.onboarding-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.onboarding-overlay.visible{display:flex}
.onboarding-card{background:var(--surface);border-radius:20px;padding:40px 28px 28px;max-width:340px;width:90%;text-align:center}
.onboarding-step{display:none}.onboarding-step.active{display:block}
.onboarding-icon{font-size:var(--fs-4xl);margin-bottom:var(--sp-4)}
.onboarding-card h2{font-size:var(--fs-xl);font-weight:700;margin-bottom:var(--sp-2)}
.onboarding-card p{font-size:var(--fs-md);color:var(--text2);line-height:1.5;margin-bottom:var(--sp-5)}
.onboarding-dots{display:flex;justify-content:center;gap:var(--sp-2);margin-bottom:var(--sp-5)}
.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}
.onboarding-dot.active{background:var(--accent)}

/* ── Wizard / Stepper ───────────────────────────────────── */
.wizard{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}
.wiz-header{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:var(--sp-5)}
.wiz-step-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:none;color:var(--text3);font-family:var(--font);font-size:var(--fs-md);font-weight:700;display:flex;align-items:center;justify-content:center;cursor:default;transition:all .2s;flex-shrink:0}
.wiz-step-dot.active{border-color:var(--accent);background:var(--accent);color:#fff;cursor:default}
.wiz-step-dot.done{border-color:var(--green);background:var(--green);color:#fff;cursor:pointer}
.wiz-step-line{flex:1;height:2px;background:var(--border);max-width:40px;transition:background .2s}
.wiz-step-line.done{background:var(--green)}
.wiz-title{font-size:var(--fs-xl);font-weight:700;margin-bottom:var(--sp-4);letter-spacing:-.01em}
.wiz-body{min-height:120px;margin-bottom:var(--sp-5)}
.wiz-footer{display:flex;gap:var(--sp-2)}
.wiz-footer .btn{flex:1;padding:12px;font-size:var(--fs-md)}
.wiz-cancel{flex:0 0 auto !important;width:auto;padding:12px var(--sp-4) !important}
.wiz-back{flex:0 0 auto !important;width:auto;padding:12px var(--sp-4) !important}

/* ── Sortable list ──────────────────────────────────────── */
.sortable-dragging{position:fixed;z-index:100;opacity:.9;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:none;transition:none}
.sortable-placeholder{background:var(--surface2);border:2px dashed var(--border);border-radius:var(--radius);opacity:.5}

/* ── Dashboard ─────────────────────────────────────────── */
.dash-greeting{margin-bottom:var(--sp-6)}
.dash-greeting-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text2);margin-bottom:var(--sp-1)}
.dash-greeting-title{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.04em;line-height:1.1}
.dash-greeting-quote{font-size:var(--fs-sm);color:var(--text2);font-style:italic;margin-top:var(--sp-2);line-height:1.5}
.dash-bento{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-5)}
.dash-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.dash-card-wide{grid-column:span 2}
.dash-card-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text2);align-self:flex-start}
.dash-ring-wrap{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}
.dash-ring{width:80px;height:80px}
.dash-ring-fill{transition:stroke-dashoffset .8s ease}
.dash-ring-value{position:absolute;font-size:var(--fs-md);font-weight:800;color:var(--text);text-align:center}
.dash-streak-value{font-size:var(--fs-2xl);font-weight:800;color:var(--accent);letter-spacing:-.02em}
.dash-streak-sub{font-size:var(--fs-sm);color:var(--text2)}
.dash-cta-group{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.dash-cta{flex:1;font-size:var(--fs-lg);font-weight:800;padding:16px 12px;box-shadow:0 20px 40px var(--accent-glow)}
.dash-cta-run{background:var(--color-running);box-shadow:0 20px 40px rgba(8,145,178,.15)}
.dash-activity{margin-bottom:var(--sp-5)}
.dash-section-title{font-size:var(--fs-md);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);margin-bottom:var(--sp-3)}
.dash-activity-scroll{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-2);-ms-overflow-style:none;scrollbar-width:none}
.dash-activity-scroll::-webkit-scrollbar{display:none}
.dash-act-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-4);min-width:200px;flex-shrink:0}
.dash-act-name{font-size:var(--fs-md);font-weight:700;margin-bottom:var(--sp-1);display:flex;align-items:center;gap:6px}
/* El tipo de actividad y el récord se marcan con el icono y un chip, nunca con
   una banda de acento en el borde. */
.dash-act-card .dash-act-icon{font-size:16px}
.dash-act-card.dash-act-run .dash-act-icon{color:var(--color-running)}
.dash-act-card.has-pr .dash-act-icon{color:var(--accent)}
.dash-act-chip{display:inline-block;margin-bottom:var(--sp-1);padding:2px 8px;border-radius:10px;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:#fff}
.dash-act-detail{font-size:var(--fs-sm);color:var(--text2)}
.dash-act-time{font-size:var(--fs-xs);color:var(--text2);margin-top:var(--sp-2)}
.dash-empty{color:var(--text2);font-size:var(--fs-base);text-align:center;padding:var(--sp-8) 0}

/* Dark theme — applied via .dark class on :root */
:root.dark{--bg:#131313;--surface:#201f1f;--surface2:#2a2a2a;--surface-high:#353534;--surface-glass:rgba(32,31,31,.85);--border:transparent;--ghost-border:rgba(93,63,59,.15);--text:#e5e2e1;--text2:rgba(231,189,183,.78);--text3:rgba(231,189,183,.62);--accent:#ff5545;--accent2:#ffb4aa;--accent-soft:#ffb4aa;--accent-glow:rgba(255,85,69,.3);--green:#30d158;--red:#ff453a;--teal:#68d3fc}
:root.dark body{-webkit-font-smoothing:auto}
:root.dark select,:root.dark input[type="date"],:root.dark input[type="number"],:root.dark input[type="text"],:root.dark textarea{color-scheme:dark}
:root.dark .timer-start{color:#fff}
:root.dark #shareCard{background:linear-gradient(145deg,#201f1f 0%,#131313 100%)}
:root.dark .run-share-card{background:linear-gradient(145deg,#201f1f 0%,#131313 100%)}
:root.dark .card-brand{color:var(--text2)}
/* Theme selector highlight */
.theme-options{display:flex;gap:var(--sp-1);flex-shrink:0}
.theme-opt{background:var(--surface2);border:2px solid transparent;border-radius:var(--radius);padding:6px 12px;font-family:var(--font);font-size:var(--fs-md);font-weight:600;color:var(--text2);cursor:pointer;transition:all .15s}
.theme-opt.active{border-color:var(--accent);color:var(--accent);background:rgba(212,55,44,.08)}
/* ── Share Editor ─────────────────────────────────────────── */
.share-editor-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:250;display:none;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.share-editor-overlay.open{display:flex;animation:seFadeIn 200ms ease-out}
@keyframes seFadeIn{from{opacity:0}to{opacity:1}}
.se-header{display:flex;align-items:center;padding:8px 16px;min-height:48px;flex-shrink:0}
.se-close-btn{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.se-close-btn:active{background:rgba(255,255,255,.2)}
.se-preview-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:12px 20px;min-height:0;position:relative}
.se-preview-wrap canvas{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.3);transition:opacity .15s ease}
.se-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.se-loading.hidden{display:none}
.se-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
.se-controls{flex-shrink:0;padding:12px 20px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}
.se-toggles-row{display:flex;gap:12px;justify-content:center;align-items:center}
.se-format-toggle,.se-theme-toggle{display:flex;background:rgba(255,255,255,.08);border-radius:10px;padding:3px}
.se-format-btn,.se-theme-btn{flex:1;background:none;border:none;color:rgba(255,255,255,.5);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:8px 20px;border-radius:8px;cursor:pointer;transition:all .15s;min-height:36px;white-space:nowrap}
.se-format-btn.active,.se-theme-btn.active{background:var(--accent);color:#fff}
.se-presets{display:flex;gap:8px;justify-content:center}
.se-preset-chip{background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);font-family:var(--font);font-size:var(--fs-md);font-weight:600;padding:10px 16px;border-radius:20px;cursor:pointer;transition:all .15s;min-height:44px;display:flex;align-items:center}
.se-preset-chip.active{border-color:var(--accent);color:#fff;background:rgba(212,55,44,.15)}
.se-preset-chip:active{transform:scale(.96)}
.se-preset-chip.hidden{display:none}
.se-action-row{display:flex;gap:8px}
.se-share-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 24px}
.se-copy-btn,.se-download-btn{display:flex;align-items:center;justify-content:center;width:52px;padding:0;border-radius:var(--radius);flex-shrink:0}
.se-share-btn .material-symbols-outlined{font-size:20px}
.se-share-btn:disabled{opacity:.5;pointer-events:none}

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

/* ── Quirón, tu coach ─────────────────────────────────────── */
#quironFab{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:90;width:52px;height:52px;border-radius:50%;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px var(--accent-glow);transition:transform .1s}
#quironFab:active{transform:scale(.92)}
#quironFab svg{width:25px;height:25px;stroke-width:1.9}
body.quiron-open #quironFab{display:none}
.quiron-panel{position:fixed;inset:0;z-index:200;background:var(--bg);display:none;flex-direction:column}
.quiron-panel.open{display:flex;animation:fadeIn .15s ease-out}
.quiron-header{display:flex;align-items:center;gap:8px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
:root.dark .quiron-header{background:rgba(19,19,19,.4)}
.quiron-title{flex:1;display:flex;align-items:center;gap:6px;font-size:var(--fs-xl);font-weight:800;letter-spacing:-.03em}
.quiron-title svg{width:21px;height:21px;color:var(--accent);stroke-width:2}
.quiron-sub{font-size:var(--fs-sm);font-weight:500;color:var(--text2);text-transform:none;letter-spacing:0}
.quiron-hbtn{background:var(--surface2);border:none;color:var(--text);width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.quiron-hbtn .material-symbols-outlined{font-size:20px}
.quiron-msgs{flex:1;overflow-y:auto;padding:16px 16px 8px;display:flex;flex-direction:column;gap:10px}
.q-bubble{max-width:88%;padding:10px 14px;border-radius:18px;font-size:var(--fs-md);line-height:1.5;word-wrap:break-word}
.q-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:6px}
.q-assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:6px}
:root.dark .q-assistant{background:var(--surface2)}
.q-code{background:var(--surface2);border-radius:10px;padding:10px 12px;margin:8px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word}
:root.dark .q-code{background:rgba(0,0,0,.35)}
.q-li{padding-left:4px}
.q-typing{color:var(--text2);font-style:italic}
.q-typing::after{content:'';display:inline-block;width:1em;animation:qdots 1.2s steps(4) infinite}
@keyframes qdots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}
.q-err{color:var(--red);font-size:var(--fs-base)}
.quiron-chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}
.q-chip{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--font);font-size:var(--fs-base);font-weight:500;padding:8px 14px;border-radius:20px;cursor:pointer}
:root.dark .q-chip{background:var(--surface2)}
.q-chip:active{background:var(--surface2);opacity:.85}
.q-continue{align-self:flex-start;color:var(--accent);border-color:var(--accent-soft)}
.quiron-inputbar{display:flex;align-items:flex-end;gap:8px;padding:8px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.quiron-inputbar textarea{flex:1;min-height:44px;max-height:120px;border-radius:22px;padding:12px 16px;font-size:var(--fs-md);resize:none}
#quironSendBtn{width:44px;height:44px;border-radius:50%;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
#quironSendBtn .material-symbols-outlined{font-size:22px}
#quironSendBtn.q-stop{background:var(--text2)}
.quiron-setup{padding:24px;text-align:center;color:var(--text2);font-size:var(--fs-md);display:flex;flex-direction:column;gap:10px;align-items:center}
.quiron-setup strong{color:var(--text)}
.quiron-setup-icon{font-size:2rem}
.quiron-setup .btn{width:auto}
.quiron-setup[hidden]{display:none}
.quiron-history-modal{z-index:210}
.quiron-history-item{display:flex;align-items:center;gap:8px;padding:12px;border-radius:12px;background:var(--surface2);margin-bottom:8px;cursor:pointer}
.qh-text{flex:1;min-width:0}
.qh-title{font-size:var(--fs-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qh-meta{font-size:var(--fs-xs);color:var(--text2);margin-top:2px}
.qh-del{background:none;border:none;color:var(--text3);font-size:var(--fs-md);padding:8px;cursor:pointer;flex-shrink:0}
.quiron-history-empty{color:var(--text2);font-size:var(--fs-base);text-align:center;padding:16px 8px}
.q-report-choice{align-self:flex-start;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--text2)}
.q-report-choice span{width:100%}

/* ── Propuesta de plan de Quirón (Fase 5.0) ───────────────── */
.q-proposal{align-self:stretch;background:var(--surface);border:1px solid var(--accent-soft);border-radius:16px;padding:14px;margin:2px 0 6px;display:flex;flex-direction:column;gap:10px}
:root.dark .q-proposal{background:var(--surface2)}
.q-proposal.applied{border-color:var(--border);opacity:.85}
.q-prop-head{display:flex;align-items:flex-start;gap:10px}
.q-prop-head .material-symbols-outlined{color:var(--accent);font-size:22px;flex-shrink:0}
.q-prop-titles{min-width:0}
.q-prop-title{font-size:var(--fs-lg);font-weight:700;line-height:1.2}
.q-prop-tag{font-size:var(--fs-sm);color:var(--text2);margin-top:2px}
.q-prop-summary{font-size:var(--fs-md);color:var(--text);line-height:1.45}
.q-prop-toggle{align-self:flex-start;background:none;border:none;color:var(--accent);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:0;cursor:pointer}
.q-prop-detail{display:flex;flex-direction:column;gap:4px;background:var(--surface2);border-radius:10px;padding:10px 12px}
:root.dark .q-prop-detail{background:rgba(0,0,0,.25)}
.q-prop-line{font-size:var(--fs-base);color:var(--text);line-height:1.4}
.q-prop-actions{display:flex;gap:8px}
.q-prop-actions .btn{flex:1}
.q-prop-actions-3{flex-wrap:wrap}
.q-prop-actions-3 .q-prop-discard,.q-prop-actions-3 .q-prop-save{flex:1 1 40%}
.q-prop-actions-3 .q-prop-start{flex:1 1 100%}
.q-proposal.applied .q-prop-apply{background:var(--green);box-shadow:none}
#quironAttachBtn{width:40px;height:44px;background:none;border:none;color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
#quironAttachBtn .material-symbols-outlined{font-size:24px}
#quironAttachBtn:active{opacity:.6}
.q-img-chip{display:inline-flex;align-items:center;gap:6px}
.q-img-chip .material-symbols-outlined{font-size:18px;vertical-align:middle}

/* ══ Ilustraciones de ejercicio ══════════════════════════
   Flipbook de N fotogramas: cada uno visible 1/N del ciclo, repartido por
   retardo negativo. Fondo transparente, así que no necesitan ficha. */
.ex-pict{position:relative;display:inline-block;flex-shrink:0;width:52px;height:52px;vertical-align:middle}
.ex-pict img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;border-radius:0}
.ex-pict.sm{width:34px;height:34px}
.ex-pict.lg{width:168px;height:168px}
.ex-pict.f1 img{animation:none;opacity:1}
.ex-pict.f2 img{animation:exPict2 2.4s steps(1,end) infinite}
.ex-pict.f3 img{animation:exPict3 3s steps(1,end) infinite}
.ex-pict.f4 img{animation:exPict4 3.2s steps(1,end) infinite}
.ex-pict.f2 img:nth-child(2){animation-delay:-1.2s}
.ex-pict.f3 img:nth-child(2){animation-delay:-1s}
.ex-pict.f3 img:nth-child(3){animation-delay:-2s}
.ex-pict.f4 img:nth-child(2){animation-delay:-.8s}
.ex-pict.f4 img:nth-child(3){animation-delay:-1.6s}
.ex-pict.f4 img:nth-child(4){animation-delay:-2.4s}
@keyframes exPict2{0%,49.99%{opacity:1}50%,100%{opacity:0}}
@keyframes exPict3{0%,33.32%{opacity:1}33.33%,100%{opacity:0}}
@keyframes exPict4{0%,24.99%{opacity:1}25%,100%{opacity:0}}
.ex-pict img:only-child{animation:none;opacity:1}
@media (prefers-reduced-motion:reduce){
  .ex-pict img{animation:none!important}
  .ex-pict img:first-child{opacity:1}
}
.ex-card .ex-name{display:flex;align-items:center;gap:8px}

/* ══ Runner de sesión ════════════════════════════════════ */
.start-runner-btn{display:block;width:100%;background:var(--accent);color:#fff;border:none;font-family:var(--font);font-size:var(--fs-lg);font-weight:700;padding:15px;border-radius:var(--radius);cursor:pointer;min-height:52px;margin-bottom:var(--sp-3);box-shadow:0 8px 24px var(--accent-glow);-webkit-tap-highlight-color:transparent}
.start-runner-btn:active{transform:scale(.985);opacity:.9}

body.session-focus header,body.session-focus nav,
body.session-focus .context-bar,body.session-focus .str-subnav{display:none}
body.session-focus{padding-bottom:0;overflow:hidden}

.set-runner{position:fixed;inset:0;z-index:90;background:var(--bg);display:flex;flex-direction:column;padding:var(--sp-5) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .32s cubic-bezier(.32,.72,0,1);will-change:transform;visibility:hidden}
.set-runner.up{transform:translateY(0);visibility:visible}
.set-runner>*{width:100%;max-width:520px;margin-left:auto;margin-right:auto}
.sr-top{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.09em;margin-bottom:var(--sp-2)}
.sr-top span{display:flex;align-items:center;gap:6px;min-width:0}
.sr-ex .ex-pict{width:26px;height:26px}
.sr-progress{display:flex;gap:3px;margin-bottom:var(--sp-3)}
.sr-progress i{flex:1;height:4px;border-radius:2px;background:var(--surface2)}
.sr-progress i.d{background:var(--green)}
.sr-progress i.a{background:var(--accent)}

.sr-phase{display:none;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2)}
.set-runner.is-work .sr-work,.set-runner.is-rest .sr-rest,.set-runner.is-done .sr-done{display:flex}

/* Cierre de sesión: lo que acaba de producir el entreno, antes de guardarlo. */
.sr-done{gap:var(--sp-4);overflow-y:auto;justify-content:flex-start;padding-top:var(--sp-8)}
/* En el cierre la cabecera ya no aplica: el ejercicio y la serie son pasado. */
.set-runner.is-done .sr-top{visibility:hidden}
.sr-done-title{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em;text-align:center}
.sr-done-sub{font-size:var(--fs-lg);font-weight:600;color:var(--text2);margin-top:calc(var(--sp-4) * -1 + 2px)}
.sr-done-stats{display:flex;gap:var(--sp-8);margin-top:var(--sp-2)}
.sr-done-stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.sr-done-stat b{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sr-done-stat span{font-size:var(--fs-sm);font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.08em}
.sr-done-prs{width:100%;display:flex;flex-direction:column;gap:var(--sp-2)}
.sr-done-pr{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border-radius:var(--radius);padding:12px 14px}
.sr-done-pr-chip{flex-shrink:0;padding:2px 8px;border-radius:10px;background:var(--accent);color:#fff;font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sr-done-pr-ex{flex:1;min-width:0;font-size:var(--fs-md);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-done-pr-kg{flex-shrink:0;font-size:var(--fs-md);font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
.sr-done-more{text-align:center;font-size:var(--fs-sm);font-weight:600;color:var(--text2)}
.sr-done-vol{font-size:var(--fs-md);color:var(--text2);text-align:center}
.sr-done-vol b{color:var(--text);font-variant-numeric:tabular-nums}
.sr-done-delta.up{color:var(--green);font-weight:700}
.sr-done-delta.down{color:var(--text2);font-weight:700}
.sr-name{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em;text-align:center}
.sr-load{display:flex;align-items:flex-start;gap:var(--sp-3);margin-top:var(--sp-2)}
.sr-load label{display:flex;flex-direction:column;align-items:center;gap:2px}
.sr-load span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text2);font-weight:700}
.set-runner .sr-in{width:122px;flex:0 0 auto;padding:10px 4px;font-size:3rem;font-weight:800;text-align:center;border-radius:14px;border:none;background:var(--surface);color:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.04em;min-height:76px}
.set-runner .sr-in:focus{outline:2px solid var(--accent);outline-offset:1px}
.sr-x{font-size:1.6rem;color:var(--text2);font-weight:700;margin-top:16px}
.sr-prev{font-size:var(--fs-base);color:var(--text2);font-weight:600;margin-top:var(--sp-3);min-height:1.2em}

.sr-ring{position:relative;width:220px;height:220px}
.sr-ring svg{transform:rotate(-90deg);width:100%;height:100%}
.sr-track{fill:none;stroke:var(--surface2);stroke-width:10}
.sr-prog{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .3s linear,stroke .3s}
.sr-ring.ending .sr-prog{stroke:var(--green)}
.sr-ring-mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.sr-time{font-size:3.4rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}
.sr-lbl{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text2);margin-top:4px}
.sr-adj{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}
.sr-adj-btn{background:var(--surface);border:1px solid var(--ghost-border);color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:700;padding:9px 16px;border-radius:20px;min-height:44px;cursor:pointer}
.sr-adj-btn:active{transform:scale(.95)}
.sr-did{background:var(--surface);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;gap:10px;width:100%;margin-top:var(--sp-3);border:1px solid var(--ghost-border)}
.sr-did-who{flex:1;min-width:0}
.sr-did-k{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text2);font-weight:700}
.sr-did-v{font-size:var(--fs-md);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-runner .sr-did-in{width:62px;flex:0 0 auto;padding:9px 4px;font-size:var(--fs-xl);font-weight:700;text-align:center;border-radius:10px;min-height:44px;border:none;background:var(--surface2);color:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums}
.sr-did-x{font-size:var(--fs-md);color:var(--text2);font-weight:700}
.sr-tip{font-size:var(--fs-base);color:var(--text2);text-align:center;margin-top:var(--sp-2);line-height:1.45}
.sr-next{font-size:var(--fs-base);color:var(--text2);text-align:center;font-weight:600;margin-top:var(--sp-2)}
.sr-next b{color:var(--text)}
.sr-cta{width:100%;background:var(--accent);color:#fff;border:none;font-family:var(--font);font-size:var(--fs-lg);font-weight:700;padding:16px;border-radius:var(--radius);cursor:pointer;min-height:54px;box-shadow:0 8px 24px var(--accent-glow);margin-top:var(--sp-3)}
.sr-cta:active{transform:scale(.985);opacity:.9}
.sr-cta.ready{background:var(--green);box-shadow:none}
.sr-sub{width:100%;background:none;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:12px;cursor:pointer;min-height:44px}
@media (prefers-reduced-motion:reduce){.set-runner{transition:none}}

/* ══ Contraste del texto funcional de la sesión ══════════
   --text2 da 2,86:1 y --text3 2,06:1 sobre blanco; ambos fallan AA. En texto
   decorativo pasa, pero "Kg", "Reps" y las etiquetas de serie son funcionales:
   se leen de reojo, a contraluz y sudado. Se sube solo aquí, no en el token
   global, que cambiaría el tono de toda la app.
   PENDIENTE: revisar --text2/--text3 a nivel de sistema. */
.ex-card .sets-header,.ex-card .set-label,
.sr-load span,.sr-lbl,.sr-did-k{color:rgba(93,63,59,.78)}
:root.dark .ex-card .sets-header,:root.dark .ex-card .set-label,
:root.dark .sr-load span,:root.dark .sr-lbl,:root.dark .sr-did-k{color:rgba(231,189,183,.82)}

/* ── Entrenar: modo fuerza / carrera ─────────────────────
   Fuerza y running eran dos pestañas de la nav para la misma intención. Ahora
   son un modo dentro de "Entrenar"; el modo activo se marca por fondo y peso,
   nunca por una banda de acento. */
.train-mode{display:flex;gap:var(--sp-1);background:var(--surface2);border-radius:22px;padding:3px;margin-bottom:var(--sp-3)}
.train-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:none;border:none;border-radius:19px;padding:9px 4px;min-height:44px;cursor:pointer;font-family:var(--font);font-size:var(--fs-base);font-weight:700;color:var(--text2);transition:background .2s,color .2s}
.train-mode-btn .material-symbols-outlined{font-size:18px}
.train-mode-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.train-panel{display:none}
.train-panel.active{display:block}

/* ── Perfil: los 7 dominios ──────────────────────────────*/
.prof-head{text-align:center;margin-bottom:var(--sp-2)}
.prof-level{font-size:var(--fs-4xl);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--accent)}
.prof-level-name{font-size:var(--fs-md);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text2);margin-top:var(--sp-1)}
.prof-limited{font-size:var(--fs-md);color:var(--text2);margin-top:var(--sp-3)}
.prof-limited b{color:var(--text)}
.prof-provisional{display:block;font-size:var(--fs-sm);color:var(--text2);margin-top:var(--sp-1)}
/* Las etiquetas salen del viewBox: el padding lateral evita que se corten en
   pantallas estrechas, que es donde se mira esto. */
.radar-wrap{max-width:360px;margin:0 auto var(--sp-4);padding:0 34px}
.radar-wrap svg{width:100%;height:auto;overflow:visible}
.radar-worst{animation:radarPulse 2s ease-in-out infinite}
@keyframes radarPulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.radar-worst{animation:none}}

.prof-next-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-5)}
.prof-next-label{font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text2)}
.prof-next-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-2)}
.prof-next-name{font-size:var(--fs-md);font-weight:700}
.prof-next-why{font-size:var(--fs-sm);color:var(--text2);margin-top:2px}
.prof-next-btn{width:auto;flex-shrink:0;padding:12px 20px;min-height:44px}

.prof-domain{background:var(--surface);border-radius:var(--radius);margin-bottom:var(--sp-2);overflow:hidden}
.prof-domain-head{width:100%;display:flex;align-items:center;gap:var(--sp-3);background:none;border:none;padding:var(--sp-3) var(--sp-4);min-height:56px;cursor:pointer;text-align:left;font-family:var(--font);color:var(--text)}
.prof-domain-icon{font-size:22px;flex-shrink:0}
.prof-domain-main{flex:1;min-width:0}
.prof-domain-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-md);font-weight:700}
.prof-domain-bar{display:block;height:4px;border-radius:2px;background:var(--surface2);margin-top:6px;overflow:hidden}
.prof-domain-bar .fill{display:block;height:100%;border-radius:2px;transition:width .4s ease-out}
.prof-domain-lvl{flex-shrink:0;font-size:var(--fs-xl);font-weight:800;font-variant-numeric:tabular-nums}
.prof-chip{padding:1px 7px;border-radius:9px;font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.prof-chip-lim{background:var(--accent);color:#fff}
.prof-chip-stale{background:var(--surface2);color:var(--text2)}
.prof-chip-none{background:var(--surface2);color:var(--text2)}

.prof-domain-body{display:none;padding:0 var(--sp-4) var(--sp-4)}
.prof-domain.open .prof-domain-body{display:block}
.prof-domain-why{font-size:var(--fs-sm);color:var(--text2);line-height:1.45;margin-bottom:var(--sp-3)}
.prof-metric{display:flex;align-items:baseline;gap:var(--sp-2);padding:8px 0;border-top:1px solid var(--ghost-border)}
.prof-metric-name{flex:1;min-width:0;font-size:var(--fs-base);font-weight:600}
.prof-metric-src{font-size:var(--fs-2xs);color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.prof-metric-val{font-size:var(--fs-base);font-weight:700;font-variant-numeric:tabular-nums;min-width:62px;text-align:right}
.prof-metric-lvl{font-size:var(--fs-sm);font-weight:800;color:var(--text2);min-width:24px;text-align:right}
.prof-metric-none .prof-metric-name,.prof-metric-none .prof-metric-val{color:var(--text2)}
.prof-domain-rule,.prof-domain-proto{font-size:var(--fs-sm);color:var(--text2);line-height:1.45;margin-top:var(--sp-3)}
.prof-domain-proto{background:var(--surface2);border-radius:var(--radius);padding:var(--sp-3)}
.prof-domain-body .btn{margin-top:var(--sp-3)}
.prof-warn{background:var(--surface2);border-radius:var(--radius);padding:var(--sp-3);font-size:var(--fs-sm);color:var(--text2);line-height:1.45;margin-top:var(--sp-4)}
.prof-warn b{color:var(--text)}
.prof-calib{font-size:var(--fs-xs);color:var(--text2);line-height:1.5;margin-top:var(--sp-4);text-align:center}

/* ── Hoja de test de dominio ─────────────────────────────*/
.dtest{position:fixed;inset:0;z-index:95;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center}
.dtest.open{display:flex}
.dtest-sheet{width:100%;max-width:520px;max-height:92dvh;overflow-y:auto;background:var(--bg);border-radius:24px 24px 0 0;padding:var(--sp-5) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));animation:dtestUp .3s cubic-bezier(.32,.72,0,1)}
@keyframes dtestUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.dtest-sheet{animation:none}}
.dtest-top{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}
.dtest-icon{font-size:24px}
.dtest-title{flex:1;font-size:var(--fs-xl);font-weight:800;letter-spacing:-.02em}
.dtest-close{background:none;border:none;color:var(--text2);font-size:var(--fs-lg);cursor:pointer;min-width:44px;min-height:44px}
.dtest-proto{background:var(--surface);border-radius:var(--radius);padding:var(--sp-4);margin-bottom:var(--sp-4)}
.dtest-proto-label{font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text2);margin-bottom:6px}
.dtest-proto p{font-size:var(--fs-base);color:var(--text2);line-height:1.5}
.dtest-field{display:block;margin-bottom:var(--sp-4)}
.dtest-field-name{display:block;font-size:var(--fs-base);font-weight:700;margin-bottom:6px}
.dtest-field-input{display:flex;align-items:center;gap:var(--sp-2)}
.dtest-field-input input{flex:1;min-width:0;padding:12px;font-size:var(--fs-xl);font-weight:700;text-align:center;border-radius:12px;border:none;background:var(--surface);color:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums;min-height:52px}
.dtest-field-input input:focus{outline:2px solid var(--accent);outline-offset:1px}
.dtest-field-unit{flex-shrink:0;font-size:var(--fs-md);font-weight:700;color:var(--text2);min-width:34px}
.dtest-field-prev{display:block;font-size:var(--fs-sm);color:var(--text2);margin-top:6px}
.dtest-save{width:100%;min-height:54px;font-size:var(--fs-lg);font-weight:700}
.dtest-sub{width:100%;background:none;border:none;color:var(--text2);font-family:var(--font);font-size:var(--fs-base);font-weight:600;padding:12px;cursor:pointer;min-height:44px}

.dtest-result{text-align:center}
.dtest-res-lvl{font-size:var(--fs-4xl);font-weight:800;letter-spacing:-.04em;line-height:1}
.dtest-res-name{font-size:var(--fs-md);font-weight:700;color:var(--text2);margin-top:var(--sp-2)}
.dtest-res-delta{font-size:var(--fs-base);font-weight:700;margin-top:var(--sp-3)}
.dtest-res-delta.up{color:var(--green)}
.dtest-res-delta.down{color:var(--text2)}
.dtest-res-metrics{margin:var(--sp-5) 0}
.dtest-res-metric{display:flex;align-items:baseline;gap:var(--sp-2);padding:10px 0;border-top:1px solid var(--ghost-border);text-align:left}
.dtest-res-metric span:first-child{flex:1;font-size:var(--fs-base);font-weight:600}
.dtest-res-metric b{font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.dtest-res-mlvl{font-size:var(--fs-sm);font-weight:800;color:var(--text2);min-width:24px;text-align:right}
.dtest-res-note{font-size:var(--fs-sm);color:var(--text2);line-height:1.5;margin-bottom:var(--sp-3)}
.dtest-res-next{font-size:var(--fs-base);font-weight:700;color:var(--text2);margin:var(--sp-4) 0}
.run-import-hint{font-size:var(--fs-sm);color:var(--text2);text-align:center;line-height:1.5;margin-top:var(--sp-3)}
#runImportBtn .material-symbols-outlined{font-size:22px}

/* Nivel en "Hoy": un resumen que lleva al Perfil, no un segundo radar. */
.dash-level{display:flex;align-items:center;gap:var(--sp-3);width:100%;background:var(--surface);border:none;border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-5);cursor:pointer;text-align:left;font-family:var(--font);color:var(--text);min-height:64px}
.dash-level:active{opacity:.85}
.dash-level-num{flex-shrink:0;font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em;color:var(--accent);min-width:44px;text-align:center}
.dash-level-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dash-level-txt b{font-size:var(--fs-md);font-weight:700}
.dash-level-txt span{font-size:var(--fs-sm);color:var(--text2)}
.dash-level-go{flex-shrink:0;color:var(--text2);font-size:22px}
