:root{
  --bg:#f3f6f8;--card:#ffffff;--text:#142033;--muted:#667085;--line:#e3e8ef;
  --navy:#183b63;--navy-2:#102f52;--green:#e8f4df;--green-deep:#407a35;
  --blue:#e2f0fb;--blue-deep:#2f6f9f;--peach:#fce8da;--peach-deep:#a85d2e;
  --yellow:#fff4c9;--yellow-deep:#997000;--work:#f3f5f7;--work-deep:#667085;
  --sleep:#ece9f7;--sleep-deep:#61558a;--focus:#e8eef9;--focus-deep:#405e92;
  --danger:#b42318;--success:#15745c;--shadow:0 8px 28px rgba(16,47,82,.08);--radius:19px;
}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:
 radial-gradient(circle at 15% -5%,rgba(47,111,159,.10),transparent 28rem),
 radial-gradient(circle at 105% 18%,rgba(64,122,53,.07),transparent 25rem),
 var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,Arial,sans-serif;line-height:1.45}
button,input,textarea,select{font:inherit}
button{touch-action:manipulation}
a{color:var(--navy);text-decoration:none}
.app{max-width:920px;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 14px calc(92px + env(safe-area-inset-bottom))}
header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:5px 2px 18px}
.brand-wrap{display:flex;align-items:center;gap:11px;min-width:0}
.brand-mark{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;
 color:#fff;font-weight:950;font-size:calc(21px * var(--font-scale,1));letter-spacing:-.05em;
 background:linear-gradient(145deg,#102f52,#2f6f9f 70%,#5f8fb0);
 box-shadow:0 9px 22px rgba(16,47,82,.24),inset 0 1px 0 rgba(255,255,255,.25)}
h1{font-size:clamp(26px,6vw,38px);line-height:1.05;letter-spacing:-.04em;margin:0;color:var(--navy-2)}
.subtitle{font-size:calc(13px * var(--font-scale,1));color:var(--muted);margin-top:7px;max-width:620px}
.date-pill{flex:none;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 11px;box-shadow:var(--shadow);font-size:calc(12px * var(--font-scale,1));font-weight:700;color:var(--navy)}
.top-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#0f2d4d 0%,#183b63 58%,#2f6f9f 120%);color:#fff;border-radius:24px;padding:18px;margin:10px 0 14px;box-shadow:0 15px 38px rgba(16,47,82,.20)}
.top-card:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-65px;top:-95px;background:rgba(255,255,255,.09);box-shadow:-50px 90px 0 rgba(255,255,255,.035)}
.top-card>*{position:relative;z-index:1}
.top-card small{opacity:.78}.top-card strong{font-size:calc(20px * var(--font-scale,1));display:block;margin-top:4px}.top-card p{margin:8px 0 0;font-size:calc(13px * var(--font-scale,1));opacity:.88}
.day-tabs,.meal-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 9px;scrollbar-width:none}.day-tabs::-webkit-scrollbar,.meal-tabs::-webkit-scrollbar{display:none}
.day-btn,.meal-btn{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:14px;padding:10px 13px;font-weight:800;white-space:nowrap;min-width:54px;box-shadow:0 2px 8px rgba(16,47,82,.035)}
.day-btn.active,.meal-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.summary-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:9px;margin-bottom:14px}
.metric{background:linear-gradient(180deg,#fff,#fbfcfd);border:1px solid rgba(227,232,239,.95);border-radius:20px;padding:14px;box-shadow:0 8px 26px rgba(16,47,82,.07)}
.metric small{display:block;color:var(--muted);font-size:calc(12px * var(--font-scale,1))}.metric strong{display:block;font-size:calc(23px * var(--font-scale,1));margin-top:3px;color:var(--navy-2)}
.metric.primary strong{font-size:calc(29px * var(--font-scale,1))}.progress{height:8px;background:#edf1f5;border-radius:999px;overflow:hidden;margin-top:9px}.progress span{display:block;height:100%;background:var(--success);width:0;transition:width .2s ease}
.current-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:0 0 15px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px}
.current-badge{width:40px;height:40px;border-radius:13px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:calc(18px * var(--font-scale,1))}.current-card small{color:var(--muted);display:block}.current-card strong{display:block;margin-top:2px}.current-card .time{font-size:calc(12px * var(--font-scale,1));font-weight:800;color:var(--navy);white-space:nowrap}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 2px 9px}.section-head h2{font-size:calc(19px * var(--font-scale,1));margin:0;color:var(--navy-2);letter-spacing:-.015em}.section-head p{margin:2px 0 0;color:var(--muted);font-size:calc(12px * var(--font-scale,1))}
.icon-button,.soft-button,.primary-button,.danger-button{border-radius:12px;padding:9px 11px;border:1px solid var(--line);background:#fff;font-weight:800;color:var(--navy);cursor:pointer}
.primary-button{background:var(--navy);color:#fff;border-color:var(--navy)}.danger-button{color:var(--danger)}
.blocks{display:flex;flex-direction:column;gap:9px}.block{background:var(--card);border:1px solid rgba(227,232,239,.95);border-left:5px solid var(--work-deep);border-radius:20px;padding:14px 14px 13px;box-shadow:0 8px 25px rgba(16,47,82,.065);transition:transform .15s ease,box-shadow .15s ease}
.block:active{transform:scale(.995)}
.block[data-cat="prayer"]{border-left-color:var(--yellow-deep);background:linear-gradient(90deg,var(--yellow),#fff 26%)}
.block[data-cat="training"],.block[data-cat="movement"]{border-left-color:var(--green-deep);background:linear-gradient(90deg,var(--green),#fff 26%)}
.block[data-cat="care"]{border-left-color:var(--blue-deep);background:linear-gradient(90deg,var(--blue),#fff 26%)}
.block[data-cat="family"]{border-left-color:var(--peach-deep);background:linear-gradient(90deg,var(--peach),#fff 26%)}
.block[data-cat="sleep"]{border-left-color:var(--sleep-deep);background:linear-gradient(90deg,var(--sleep),#fff 26%)}
.block[data-cat="focus"]{border-left-color:var(--focus-deep);background:linear-gradient(90deg,var(--focus),#fff 26%)}
.block-top{display:grid;grid-template-columns:104px 1fr auto;gap:10px;align-items:start}.block-time{font-weight:900;font-variant-numeric:tabular-nums;color:var(--navy);font-size:calc(13px * var(--font-scale,1))}.block-name{font-weight:900;line-height:1.25}.block-summary{grid-column:2/-1;color:var(--muted);font-size:calc(12.5px * var(--font-scale,1));margin-top:-2px}.detail-link{border:0;background:transparent;color:var(--navy);font-weight:900;padding:2px 0;cursor:pointer;font-size:calc(12px * var(--font-scale,1))}
.task-list{margin:10px 0 0 114px;display:flex;flex-direction:column;gap:6px}.task{display:flex;gap:9px;align-items:flex-start;background:rgba(255,255,255,.72);border:1px solid rgba(227,232,239,.85);border-radius:11px;padding:8px 9px;font-size:calc(13px * var(--font-scale,1))}.task input{margin-top:2px;accent-color:var(--success);width:17px;height:17px}.task.done span{text-decoration:line-through;color:#8a94a3}
.search-wrap{position:relative;margin:8px 0 12px}.search-wrap input{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px 12px 39px;outline:none}.search-wrap:before{content:'⌕';position:absolute;left:14px;top:8px;font-size:calc(21px * var(--font-scale,1));color:var(--muted)}
.detail-day-intro{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px}.detail-day-intro strong{font-size:calc(18px * var(--font-scale,1));color:var(--navy-2)}.detail-day-intro div{color:var(--muted);font-size:calc(13px * var(--font-scale,1));margin-top:3px}
details.detail-card,details.rule-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:9px;box-shadow:var(--shadow);overflow:hidden}details.detail-card summary,details.rule-card summary{list-style:none;cursor:pointer;padding:14px 14px 13px;display:grid;grid-template-columns:104px 1fr 22px;gap:10px;align-items:center}details summary::-webkit-details-marker{display:none}.chev{font-size:calc(18px * var(--font-scale,1));color:var(--muted);transition:.18s}details[open] .chev{transform:rotate(90deg)}
.detail-content{padding:0 14px 15px;border-top:1px solid var(--line)}.goal{background:#f7f9fb;border-radius:12px;padding:10px 11px;margin:12px 0;color:#344054;font-size:calc(13px * var(--font-scale,1))}.goal strong{color:var(--navy)}.steps{counter-reset:step;display:flex;flex-direction:column;gap:8px}.step{position:relative;padding:9px 9px 9px 40px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd;font-size:calc(13px * var(--font-scale,1))}.step:before{counter-increment:step;content:counter(step);position:absolute;left:9px;top:8px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:white;font-weight:900;font-size:calc(11px * var(--font-scale,1))}.checks{margin-top:11px;background:#eff8f5;border:1px solid #d5eee5;border-radius:12px;padding:10px 11px}.checks strong{display:block;font-size:calc(12px * var(--font-scale,1));color:var(--success);margin-bottom:5px}.checks div{font-size:calc(12.5px * var(--font-scale,1));margin:4px 0}.checks div:before{content:'✓ ';font-weight:900;color:var(--success)}
.note-box{margin-top:10px}.note-box textarea{width:100%;min-height:75px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.note-label{font-size:calc(12px * var(--font-scale,1));font-weight:800;color:var(--muted);margin-bottom:5px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.info-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.info-card h3{margin:0 0 7px;font-size:calc(16px * var(--font-scale,1));color:var(--navy-2)}.info-card p{font-size:calc(13px * var(--font-scale,1));color:var(--muted);margin:0}.kicker{font-size:calc(11px * var(--font-scale,1));text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900;margin-bottom:5px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.table{border-collapse:collapse;width:100%;min-width:650px;font-size:calc(12.5px * var(--font-scale,1))}.table th,.table td{padding:10px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.table th{background:var(--navy);color:#fff;font-size:calc(11px * var(--font-scale,1));text-transform:uppercase;letter-spacing:.04em}.table tr:last-child td{border-bottom:0}.table td:first-child{font-weight:800}
.phase-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.phase{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.phase strong{display:block;color:var(--navy);font-size:calc(14px * var(--font-scale,1))}.phase small{display:block;color:var(--muted);margin:4px 0 7px}.phase p{font-size:calc(12px * var(--font-scale,1));margin:0}
.training-hero{padding-bottom:19px}
.hero-kicker{font-size:calc(10.5px * var(--font-scale,1));letter-spacing:.11em;font-weight:900;opacity:.75;margin-bottom:4px}
.hero-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}
.hero-pills span{font-size:calc(11px * var(--font-scale,1));font-weight:800;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)}

.training-session-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:3px 0 12px}
.training-session-btn{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:17px;padding:9px;min-width:0;box-shadow:0 5px 17px rgba(16,47,82,.05);color:var(--text)}
.training-session-btn .session-letter{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:12px;background:#eef2f6;color:var(--navy);font-weight:950}
.training-session-btn b{display:block;font-size:calc(12px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-session-btn small{display:block;font-size:calc(10px * var(--font-scale,1));color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-session-btn.active{border-color:rgba(24,59,99,.22);background:linear-gradient(145deg,#173a61,#24577f);color:#fff;box-shadow:0 9px 24px rgba(16,47,82,.16)}
.training-session-btn.active .session-letter{background:rgba(255,255,255,.16);color:#fff}
.training-session-btn.active small{color:rgba(255,255,255,.72)}

.training-dashboard{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;background:linear-gradient(180deg,#fff,#fbfcfd);border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow);margin-bottom:11px}
.training-progress-ring{--progress:0deg;width:67px;height:67px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--success) var(--progress),#e9eef2 0);position:relative}
.training-progress-ring:before{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}
.training-progress-ring>div{position:relative;text-align:center;line-height:1}
.training-progress-ring strong{display:block;font-size:calc(17px * var(--font-scale,1));color:var(--navy-2)}
.training-progress-ring small{display:block;font-size:calc(10px * var(--font-scale,1));color:var(--muted);margin-top:4px}
.training-dashboard-copy{min-width:0}
.training-dashboard-copy h2{margin:0;font-size:calc(18px * var(--font-scale,1));color:var(--navy-2)}
.training-dashboard-copy p{margin:4px 0 0;color:var(--muted);font-size:calc(12px * var(--font-scale,1))}
.compact{padding:7px 9px;font-size:calc(11px * var(--font-scale,1))}

.training-phase-card{background:#fff;border:1px solid var(--line);border-radius:17px;margin-bottom:12px;box-shadow:0 5px 17px rgba(16,47,82,.04);overflow:hidden}
.training-phase-card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;cursor:pointer}
.training-phase-card>summary::-webkit-details-marker{display:none}
.training-phase-card>summary b{display:block;font-size:calc(13px * var(--font-scale,1));color:var(--navy-2)}
.training-phase-card>summary small{display:block;font-size:calc(11px * var(--font-scale,1));color:var(--muted);margin-top:2px}
.phase-strip{display:flex;gap:8px;overflow-x:auto;padding:0 12px 12px;scrollbar-width:none}
.phase-strip::-webkit-scrollbar{display:none}
.phase-strip .phase{min-width:175px}
.training-head{margin-top:17px}

.exercise-list{display:flex;flex-direction:column;gap:10px}
.exercise-card{background:linear-gradient(180deg,#fff,#fdfefe);border:1px solid var(--line);border-radius:21px;padding:14px;box-shadow:0 8px 27px rgba(16,47,82,.07);transition:.18s}
.exercise-card.completed{border-color:#cfe6dd;background:linear-gradient(145deg,#f5fbf8,#fff 56%)}
.exercise-header{display:flex;align-items:flex-start;gap:11px}
.exercise-check{width:39px;height:39px;flex:0 0 39px;border-radius:13px;border:1px solid #d8e0e8;background:#f4f7f9;color:var(--navy);font-weight:950;font-size:calc(14px * var(--font-scale,1));display:grid;place-items:center}
.exercise-check.active{background:var(--success);border-color:var(--success);color:#fff;box-shadow:0 6px 16px rgba(21,116,92,.18)}
.exercise-title-wrap{min-width:0;flex:1}
.exercise-title{font-size:calc(15px * var(--font-scale,1));font-weight:950;color:var(--navy-2);line-height:1.25}
.exercise-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.exercise-chip{font-size:calc(10.5px * var(--font-scale,1));font-weight:800;color:#596474;background:#f1f4f7;border:1px solid #e7ebf0;border-radius:999px;padding:4px 7px}
.exercise-chip.main{color:#315f85;background:#eaf2f8;border-color:#dbeaf5}
.exercise-chip.muscle{color:#4e7444;background:#eef6e9;border-color:#e0efd8}
.exercise-quickcue{font-size:calc(12px * var(--font-scale,1));color:#697586;margin:10px 0 0 50px;padding-left:9px;border-left:2px solid #dfe6ed}

.exercise-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0 0 50px;align-items:start}
.exercise-technique{min-width:0}
.exercise-technique>summary{list-style:none}
.exercise-technique>summary::-webkit-details-marker{display:none}
.technique-button,.video-button,.animation-button{min-height:38px;border-radius:12px;padding:9px 11px;font-size:calc(12px * var(--font-scale,1));font-weight:900;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.technique-button{background:#f2f5f8;border:1px solid #e0e6ec;color:var(--navy)}
.video-button{background:linear-gradient(145deg,#183b63,#245c88);border:1px solid #183b63;color:#fff;white-space:nowrap;box-shadow:0 5px 13px rgba(16,47,82,.13)}
.animation-button{border:1px solid #183b63;background:linear-gradient(145deg,#183b63,#2f6f9f);color:#fff;white-space:nowrap;box-shadow:0 7px 18px rgba(16,47,82,.16)}
.animation-button:active{transform:scale(.98)}
.technique-panel{grid-column:1/-1;margin-top:8px;background:#f8fafb;border:1px solid #e6ebf0;border-radius:15px;padding:11px}
.movement-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch}
.movement-frame{position:relative;background:#fff;border:1px solid #e3e8ee;border-radius:13px;padding:10px 9px 9px 36px;min-height:86px}
.movement-frame>span{position:absolute;left:8px;top:9px;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:calc(10px * var(--font-scale,1));font-weight:900}
.movement-frame b{display:block;font-size:calc(11px * var(--font-scale,1));color:var(--navy);margin-bottom:4px}
.movement-frame small{display:block;font-size:calc(11px * var(--font-scale,1));color:#5f6b7a;line-height:1.35}
.movement-arrow{display:grid;place-items:center;color:#8b98a7;font-size:calc(18px * var(--font-scale,1))}
.mistake-box{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:9px 10px;border-radius:12px;background:#fff8e7;border:1px solid #f0dda9;font-size:calc(11px * var(--font-scale,1))}
.mistake-box b{white-space:nowrap;color:#806000}.mistake-box span{color:#665729}

.training-log-label{margin:13px 0 5px 50px;font-size:calc(10px * var(--font-scale,1));text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#8a94a3}
.log-row{display:grid;grid-template-columns:1.1fr 1fr .72fr;gap:6px;margin-left:50px}
.log-row label{display:block}
.log-row label span{display:block;font-size:calc(9.5px * var(--font-scale,1));color:#8a94a3;font-weight:800;margin:0 0 3px 2px}
.log-row input{width:100%;border:1px solid var(--line);border-radius:11px;padding:9px 8px;font-size:calc(12px * var(--font-scale,1));background:#fbfcfd;outline:none}
.log-row input:focus{background:#fff;border-color:#9eb6ca;box-shadow:0 0 0 3px rgba(47,111,159,.08)}

.training-rules-body{padding:0 13px 12px;border-top:1px solid var(--line)}
.rules-panel{margin-top:14px}
.video-note{display:flex;gap:11px;align-items:flex-start;background:linear-gradient(135deg,#edf4fa,#f8fbfd);border:1px solid #d9e8f3;border-radius:18px;padding:13px;margin-top:11px}
.video-note>span{display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;border-radius:11px;background:var(--navy);color:#fff;font-size:calc(11px * var(--font-scale,1))}
.video-note strong{font-size:calc(13px * var(--font-scale,1));color:var(--navy-2)}
.video-note p{font-size:calc(11.5px * var(--font-scale,1));color:#657181;margin:3px 0 0}

.meal-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:8px;box-shadow:var(--shadow)}.meal-top{display:grid;grid-template-columns:100px 1fr;gap:8px}.meal-time{font-weight:900;color:var(--navy);font-size:calc(12px * var(--font-scale,1))}.meal-name{font-weight:900}.meal-desc{font-size:calc(13px * var(--font-scale,1));color:#475467;margin:6px 0 0 108px}
.rule-card summary{grid-template-columns:1fr 22px!important;font-weight:900;color:var(--navy-2)}.rule-content{padding:0 14px 14px;border-top:1px solid var(--line)}.rule-list{padding-left:18px;margin:10px 0 0}.rule-list li{margin:7px 0;font-size:calc(13px * var(--font-scale,1))}.leit-row{display:grid;grid-template-columns:115px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:calc(13px * var(--font-scale,1))}.leit-row:last-child{border-bottom:0}.leit-row strong{color:var(--navy)}
.chaos{background:#fff8e7;border:1px solid #f1d99a;border-radius:var(--radius);padding:14px}.chaos h3{margin:0 0 7px;color:#7a5c00}.health{background:#fff5f3;border:1px solid #f4d2cb;border-radius:var(--radius);padding:14px}.health h3{margin:0 0 7px;color:var(--danger)}
.source-list a{display:block;padding:9px 0;border-bottom:1px solid var(--line);font-size:calc(13px * var(--font-scale,1));font-weight:700}.source-list a:last-child{border-bottom:0}
.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hidden{display:none!important}.empty{background:#fff;border:1px dashed var(--line);border-radius:var(--radius);padding:20px;text-align:center;color:var(--muted)}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;background:rgba(247,249,251,.88);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);border-top:1px solid rgba(216,224,233,.86);padding:7px 8px calc(7px + env(safe-area-inset-bottom));z-index:50;box-shadow:0 -10px 35px rgba(16,47,82,.06)}
.bottom-nav-inner{max-width:920px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.nav-btn{border:0;background:transparent;color:#7a8492;border-radius:13px;padding:6px 3px 5px;font-size:calc(10px * var(--font-scale,1));font-weight:850;cursor:pointer;transition:.15s}
.nav-btn svg{display:block;width:22px;height:22px;margin:0 auto 3px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nav-btn.active{background:linear-gradient(180deg,#e8eef5,#e2ebf4);color:var(--navy);box-shadow:inset 0 0 0 1px rgba(24,59,99,.05)}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(15px);opacity:0;pointer-events:none;background:#142033;color:white;padding:9px 12px;border-radius:999px;font-size:calc(12px * var(--font-scale,1));font-weight:800;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;background:rgba(20,32,51,.48);display:none;z-index:80;padding:16px;align-items:flex-end;justify-content:center}.modal.open{display:flex}.sheet{background:#fff;width:min(680px,100%);max-height:86vh;overflow:auto;border-radius:24px 24px 18px 18px;padding:16px;box-shadow:0 24px 80px rgba(0,0,0,.24)}.sheet-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.sheet-head h3{margin:0;color:var(--navy-2)}.close{border:0;background:#eef2f6;border-radius:50%;width:35px;height:35px;font-weight:900;font-size:calc(17px * var(--font-scale,1))}.sheet .step{font-size:calc(13.5px * var(--font-scale,1))}
@media(max-width:700px){
 .app{padding-left:11px;padding-right:11px}.summary-grid{grid-template-columns:1fr 1fr}.metric.primary{grid-column:1/-1}.block-top{grid-template-columns:89px 1fr auto}.task-list{margin-left:0}.block-summary{grid-column:1/-1;margin:5px 0 0}.cards{grid-template-columns:1fr}.phase-list{grid-template-columns:1fr 1fr}.meal-desc{margin-left:0;margin-top:8px}.meal-top{grid-template-columns:88px 1fr}details.detail-card summary{grid-template-columns:88px 1fr 20px}.current-card{grid-template-columns:auto 1fr}.current-card .time{grid-column:2}.date-pill{font-size:calc(11px * var(--font-scale,1));padding:7px 9px}.backup-actions{grid-template-columns:1fr}.log-row{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:390px){.phase-list{grid-template-columns:1fr}.nav-btn{font-size:calc(9px * var(--font-scale,1))}.nav-btn span{font-size:calc(19px * var(--font-scale,1))}h1{font-size:calc(27px * var(--font-scale,1))}}

@media(max-width:700px){
  .brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:13px;font-size:calc(19px * var(--font-scale,1))}
  .training-session-btn{padding:8px 7px;gap:6px}
  .training-session-btn .session-letter{width:32px;height:32px;flex-basis:32px}
  .training-dashboard{grid-template-columns:auto 1fr}
  .training-dashboard .compact{grid-column:2;justify-self:start}
  .exercise-quickcue,.exercise-actions,.training-log-label,.log-row{margin-left:0}
  .exercise-actions{margin-top:11px}
  .movement-strip{grid-template-columns:1fr}
  .movement-arrow{transform:rotate(90deg);height:12px}
  .mistake-box{display:block}
  .mistake-box b{display:block;margin-bottom:4px}
}
@media(max-width:390px){
  .training-session-btn{display:block;text-align:center}
  .training-session-btn .session-letter{margin:0 auto 5px}
  .training-session-btn b{font-size:calc(11px * var(--font-scale,1))}
  .training-session-btn small{font-size:calc(9px * var(--font-scale,1))}
  .training-dashboard{padding:12px;gap:10px}
  .training-progress-ring{width:61px;height:61px}
  .exercise-card{padding:12px}
  .exercise-actions{grid-template-columns:1fr 1fr}
}

/* Offline exercise reel / animation modal */
body.modal-open{overflow:hidden}
.exercise-modal{align-items:flex-end;background:rgba(11,25,40,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:0}
.exercise-sheet{width:min(720px,100%);max-height:94vh;border-radius:28px 28px 0 0;padding:16px 14px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#fff,#f8fafb);overflow:auto}
.exercise-sheet-head{position:sticky;top:-16px;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:3;margin:-16px -14px 10px;padding:16px 14px 10px;border-bottom:1px solid rgba(227,232,239,.8)}
.exercise-sheet-head h3{font-size:calc(20px * var(--font-scale,1));letter-spacing:-.025em}
.motion-stage{--motion-speed:2.7s;background:#fff;border:1px solid #e2e8ee;border-radius:24px;padding:8px;box-shadow:0 12px 35px rgba(16,47,82,.10);overflow:hidden}
.exercise-modal.motion-slow .motion-stage{--motion-speed:5.1s}
.exercise-modal.motion-paused .exercise-motion-svg *{animation-play-state:paused!important}
.exercise-modal.motion-paused .exercise-motion-svg animate,
.exercise-modal.motion-paused .exercise-motion-svg animateTransform{display:none}
.motion-stage-top{display:flex;justify-content:space-between;gap:8px;padding:3px 4px 7px}
.offline-pill,.loop-pill{font-size:calc(9.5px * var(--font-scale,1));font-weight:950;letter-spacing:.06em;border-radius:999px;padding:5px 8px}
.offline-pill{background:#e6f5ee;color:#15745c;border:1px solid #cfe9dd}
.loop-pill{background:#eef3f7;color:#587080;border:1px solid #e1e8ed}
.exercise-motion-svg{display:block;width:100%;aspect-ratio:360/250;border-radius:18px;overflow:hidden}
.exercise-motion-svg .svg-title{font:900 15px -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;fill:#102f52}
.exercise-motion-svg .svg-subtitle{font:700 10px -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;fill:#7a8695}
.exercise-motion-svg .svg-note{font:800 9px -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;fill:#2f6f9f}
.exercise-motion-svg .body{stroke:#163755;stroke-width:8;stroke-linecap:round;fill:none}
.exercise-motion-svg .thin{stroke-width:5}
.exercise-motion-svg .moving{stroke:#2f6f9f;stroke-width:8;stroke-linecap:round;fill:none}
.exercise-motion-svg .moving-fill{fill:#2f6f9f}
.exercise-motion-svg .skin{fill:#d6b19b;stroke:#b4876f;stroke-width:1.5}
.exercise-motion-svg .joint{stroke:#fff;stroke-width:2}
.exercise-motion-svg .machine{fill:#d3dbe2;stroke:#97a8b6;stroke-width:2}
.exercise-motion-svg .machine-dark{fill:#aab7c2;stroke:#7f909e;stroke-width:2}
.exercise-motion-svg .rail{stroke:#9eacb8;stroke-width:6;stroke-linecap:round;fill:none}
.exercise-motion-svg .floor{stroke:#cbd5dd;stroke-width:5;stroke-linecap:round}
.exercise-motion-svg .bar{stroke:#1d2e3e;stroke-width:6;stroke-linecap:round}
.exercise-motion-svg .weight{fill:#243b50}
.exercise-motion-svg .muscle-highlight{stroke:#e37843;stroke-width:11;stroke-linecap:round;fill:none;opacity:.92}
.exercise-motion-svg .muscle-highlight.secondary{stroke-width:8;opacity:.72}
.exercise-motion-svg .muscle-fill{fill:#e37843;opacity:.9}
.exercise-motion-svg .motion-arrow{stroke:#2f6f9f;stroke-width:3;fill:none;marker-end:url(#arrowHead);stroke-linecap:round}
.motion-legend{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:8px 5px 4px;font-size:calc(9.5px * var(--font-scale,1));font-weight:800;color:#697586}
.motion-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.body-dot{background:#163755}.moving-dot{background:#2f6f9f}.muscle-dot{background:#e37843}
.motion-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.motion-control{border:1px solid #dde5eb;background:#fff;color:#506273;border-radius:14px;padding:10px;font-size:calc(12px * var(--font-scale,1));font-weight:900;box-shadow:0 4px 13px rgba(16,47,82,.05)}
.motion-control.active{background:#eaf2f8;border-color:#d5e5f1;color:#183b63}
.exercise-modal-guide{display:flex;flex-direction:column;gap:8px}
.motion-guide-card{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:flex-start;background:#fff;border:1px solid #e1e7ed;border-radius:16px;padding:11px;box-shadow:0 4px 15px rgba(16,47,82,.04)}
.motion-guide-card.warning{background:#fff9ea;border-color:#f1dfa9}
.motion-guide-index{width:30px;height:30px;border-radius:10px;background:#e8f0f6;color:#183b63;display:grid;place-items:center;font-size:calc(12px * var(--font-scale,1));font-weight:950}
.motion-guide-card.warning .motion-guide-index{background:#f8e9bd;color:#806000}
.motion-guide-card strong{font-size:calc(12px * var(--font-scale,1));color:#102f52}.motion-guide-card p{font-size:calc(11.5px * var(--font-scale,1));color:#637080;margin:3px 0 0;line-height:1.42}
.online-fallback{margin-top:10px;border:1px solid #e0e6ec;background:#fff;border-radius:15px;overflow:hidden}
.online-fallback summary{list-style:none;padding:11px 12px;font-size:calc(11px * var(--font-scale,1));font-weight:850;color:#6b7786;cursor:pointer}
.online-fallback summary::-webkit-details-marker{display:none}
.online-fallback-body{padding:0 12px 12px;border-top:1px solid #edf0f3}
.online-fallback-body p{font-size:calc(11px * var(--font-scale,1));color:#7a8491}
.online-fallback-body .video-button{width:100%}
.offline-note{border-color:#d6eadf;background:linear-gradient(135deg,#edf8f2,#f9fcfa)}
.offline-note>span{background:#15745c}
@media(min-width:721px){
  .exercise-modal{align-items:center;padding:24px}
  .exercise-sheet{border-radius:28px;max-height:90vh;padding-bottom:18px}
  .exercise-sheet-head{top:-16px}
}
@media(max-width:390px){
  .exercise-sheet{padding-left:10px;padding-right:10px}
  .exercise-sheet-head{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}
  .motion-legend{gap:8px}
}
@media(prefers-reduced-motion:reduce){
  .exercise-motion-svg *{animation-duration:0.01ms!important}
}


/* =========================
   V5 DARK APP STYLE
   Inspired by the approved mockup look
   ========================= */
:root{
  --bg:#09111d;
  --card:#0f1727;
  --card-2:#131e31;
  --text:#f4f7ff;
  --muted:#98a6c1;
  --line:rgba(255,255,255,.08);
  --navy:#8d63ff;
  --navy-2:#c4b0ff;
  --green:#11271f;
  --green-deep:#57d39b;
  --blue:#111c32;
  --blue-deep:#8d63ff;
  --peach:#2a1d18;
  --peach-deep:#ff9d73;
  --yellow:#2c2516;
  --yellow-deep:#f4d36e;
  --work:#0d1625;
  --work-deep:#8d63ff;
  --sleep:#17132b;
  --sleep-deep:#b496ff;
  --focus:#10192a;
  --focus-deep:#8eb5ff;
  --danger:#ff6b6b;
  --success:#58d49f;
  --shadow:0 18px 40px rgba(0,0,0,.32);
  --radius:22px;
}
html{background:var(--bg)}
body.theme-v5-dark{
  background:
    radial-gradient(circle at 18% 0%,rgba(141,99,255,.18),transparent 25rem),
    radial-gradient(circle at 100% 20%,rgba(56,97,173,.18),transparent 28rem),
    linear-gradient(180deg,#08101b 0%,#0a1220 100%);
  color:var(--text);
}
body.theme-v5-dark a{color:#cdb9ff}
body.theme-v5-dark .app{max-width:980px;padding-left:14px;padding-right:14px}
body.theme-v5-dark header{align-items:center;margin:6px 2px 16px}
body.theme-v5-dark .brand-mark{
  background:linear-gradient(145deg,#6f4df0,#945dff 60%,#28498f);
  box-shadow:0 10px 28px rgba(123,87,255,.35), inset 0 1px 0 rgba(255,255,255,.18);
}
body.theme-v5-dark h1{color:#ffffff}
body.theme-v5-dark .subtitle{color:#9aa7c3}
body.theme-v5-dark .date-pill{
  background:rgba(18,26,42,.9);
  border:1px solid rgba(255,255,255,.09);
  color:#ebe7ff;
  box-shadow:0 10px 26px rgba(0,0,0,.22);
}
body.theme-v5-dark .top-card{
  background:
    radial-gradient(circle at 100% 0%,rgba(141,99,255,.28),transparent 28%),
    linear-gradient(135deg,#0b1524 0%,#111c2d 45%,#171429 100%);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 20px 45px rgba(0,0,0,.35);
}
body.theme-v5-dark .top-card:after{background:rgba(141,99,255,.12);box-shadow:-50px 90px 0 rgba(255,255,255,.02)}
body.theme-v5-dark .top-card strong,
body.theme-v5-dark .top-card p,
body.theme-v5-dark .top-card small{color:#fff}

body.theme-v5-dark .day-btn,
body.theme-v5-dark .meal-btn,
body.theme-v5-dark .training-session-btn,
body.theme-v5-dark .soft-button,
body.theme-v5-dark .primary-button,
body.theme-v5-dark .danger-button,
body.theme-v5-dark .motion-control,
body.theme-v5-dark .technique-button,
body.theme-v5-dark .animation-button,
body.theme-v5-dark .video-button{
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 22px rgba(0,0,0,.18);
}
body.theme-v5-dark .day-btn,
body.theme-v5-dark .meal-btn{
  background:rgba(16,24,39,.92);
  color:#e8ecff;
}
body.theme-v5-dark .day-btn.active,
body.theme-v5-dark .meal-btn.active{
  background:linear-gradient(145deg,#8b5cf6,#6f4df0);
  color:#fff;
  border-color:rgba(255,255,255,.14);
}
body.theme-v5-dark .summary-grid{gap:10px}
body.theme-v5-dark .metric,
body.theme-v5-dark .current-card,
body.theme-v5-dark .block,
body.theme-v5-dark .detail-card,
body.theme-v5-dark .meal-card,
body.theme-v5-dark .rule-card,
body.theme-v5-dark .info-card,
body.theme-v5-dark .note-box,
body.theme-v5-dark .training-dashboard,
body.theme-v5-dark .training-phase-card,
body.theme-v5-dark .exercise-card,
body.theme-v5-dark .video-note,
body.theme-v5-dark .online-fallback,
body.theme-v5-dark .motion-guide-card,
body.theme-v5-dark .detail-day-intro{
  background:linear-gradient(180deg,rgba(17,27,43,.98),rgba(12,20,33,.98));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
  color:var(--text);
}
body.theme-v5-dark .metric small,
body.theme-v5-dark .meal-desc,
body.theme-v5-dark .rule-content,
body.theme-v5-dark .detail-content,
body.theme-v5-dark .detail-day-intro,
body.theme-v5-dark .note-box,
body.theme-v5-dark .exercise-quickcue,
body.theme-v5-dark .training-dashboard-copy p,
body.theme-v5-dark .phase p,
body.theme-v5-dark .motion-guide-card p,
body.theme-v5-dark .online-fallback-body p,
body.theme-v5-dark .video-note p,
body.theme-v5-dark .subtitle,
body.theme-v5-dark .task.done,
body.theme-v5-dark .block-summary,
body.theme-v5-dark .meal-time,
body.theme-v5-dark .kicker,
body.theme-v5-dark .leit-row,
body.theme-v5-dark .time{
  color:#98a6c1;
}
body.theme-v5-dark .metric strong,
body.theme-v5-dark .block-name,
body.theme-v5-dark .meal-name,
body.theme-v5-dark .rule-card h3,
body.theme-v5-dark .detail-card h3,
body.theme-v5-dark .exercise-title,
body.theme-v5-dark .training-dashboard-copy h2,
body.theme-v5-dark .section-head h2,
body.theme-v5-dark .sheet h3{
  color:#ffffff;
}
body.theme-v5-dark .metric.primary{
  background:
    radial-gradient(circle at 100% 0%,rgba(141,99,255,.18),transparent 30%),
    linear-gradient(145deg,rgba(17,27,43,.98),rgba(13,20,34,.98));
}
body.theme-v5-dark .progress{background:rgba(255,255,255,.08)}
body.theme-v5-dark .progress span{background:linear-gradient(90deg,#58d49f,#8d63ff)}
body.theme-v5-dark .current-badge{
  background:linear-gradient(145deg,#7d56ff,#5b7fff);
  box-shadow:0 10px 24px rgba(123,87,255,.28);
}
body.theme-v5-dark .current-card{
  grid-template-columns:auto 1fr auto;
}
body.theme-v5-dark .block{
  border-left:4px solid #8d63ff;
}
body.theme-v5-dark .block-time,
body.theme-v5-dark .meal-time,
body.theme-v5-dark .time{
  color:#cdb9ff;
  font-weight:900;
}
body.theme-v5-dark .goal,
body.theme-v5-dark .health,
body.theme-v5-dark .chaos{
  background:rgba(141,99,255,.10);
  border:1px solid rgba(141,99,255,.18);
  color:#ece8ff;
}
body.theme-v5-dark .step{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
}
body.theme-v5-dark .task{
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.06);
  color:#edf1ff;
}
body.theme-v5-dark .task.done{
  background:rgba(88,212,159,.08);
  border-color:rgba(88,212,159,.18);
}
body.theme-v5-dark .checks input,
body.theme-v5-dark .log-row input,
body.theme-v5-dark textarea,
body.theme-v5-dark select{
  background:#0b1423;
  color:#f3f6ff;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:none;
}
body.theme-v5-dark .log-row label span,
body.theme-v5-dark .note-label,
body.theme-v5-dark .training-log-label{
  color:#8f9db6;
}
body.theme-v5-dark textarea::placeholder,
body.theme-v5-dark input::placeholder{color:#6f7c94}
body.theme-v5-dark .detail-link,
body.theme-v5-dark .primary-button{
  background:linear-gradient(145deg,#8b5cf6,#6f4df0);
  color:#fff;
}
body.theme-v5-dark .soft-button,
body.theme-v5-dark .technique-button,
body.theme-v5-dark .motion-control{
  background:#10192a;
  color:#ecf0ff;
}
body.theme-v5-dark .danger-button{
  background:#201218;
  color:#ffb4b4;
  border-color:rgba(255,107,107,.16);
}
body.theme-v5-dark .bottom-nav{
  background:rgba(8,13,24,.88);
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 -12px 40px rgba(0,0,0,.32);
}
body.theme-v5-dark .nav-btn{color:#90a0bb}
body.theme-v5-dark .nav-btn.active{
  background:linear-gradient(145deg,rgba(141,99,255,.22),rgba(46,76,141,.22));
  color:#ffffff;
  box-shadow:inset 0 0 0 1px rgba(141,99,255,.24);
}
body.theme-v5-dark .modal{background:rgba(5,10,18,.72)}
body.theme-v5-dark .sheet,
body.theme-v5-dark .exercise-sheet{
  background:linear-gradient(180deg,#0e1625 0%,#0a111d 100%);
  color:#f5f7ff;
  border-top:1px solid rgba(255,255,255,.08);
}
body.theme-v5-dark .sheet-head,
body.theme-v5-dark .exercise-sheet-head{
  background:rgba(12,18,31,.92);
  border-bottom:1px solid rgba(255,255,255,.08);
}
body.theme-v5-dark .close{
  background:#121c2d;
  color:#f2f5ff;
  border:1px solid rgba(255,255,255,.08);
}
body.theme-v5-dark .training-hero{
  background:
    radial-gradient(circle at 100% 0%,rgba(141,99,255,.23),transparent 30%),
    linear-gradient(135deg,#0b1524 0%,#101828 48%,#171429 100%);
}
body.theme-v5-dark .hero-pills span{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08);
}
body.theme-v5-dark .training-session-btn{
  background:linear-gradient(180deg,#0f1727,#0d1523);
  color:#f0f3ff;
}
body.theme-v5-dark .training-session-btn .session-letter{
  background:rgba(141,99,255,.12);
  color:#d8caff;
}
body.theme-v5-dark .training-session-btn small{color:#9aa7c2}
body.theme-v5-dark .training-session-btn.active{
  background:linear-gradient(145deg,#1c1531,#111a2c 60%,#1f2140);
  box-shadow:0 16px 32px rgba(53,31,111,.28);
}
body.theme-v5-dark .training-session-btn.active .session-letter{
  background:linear-gradient(145deg,#8d63ff,#6f4df0);
  color:#fff;
}
body.theme-v5-dark .training-progress-ring{
  background:conic-gradient(#8d63ff var(--progress), rgba(255,255,255,.08) 0);
}
body.theme-v5-dark .training-progress-ring:before{background:#0f1727}
body.theme-v5-dark .training-progress-ring strong{color:#ffffff}
body.theme-v5-dark .phase-strip .phase{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  border-radius:16px;
  padding:10px 12px;
}
body.theme-v5-dark .phase-strip .phase strong{color:#fff}
body.theme-v5-dark .exercise-card.completed{
  background:linear-gradient(145deg,rgba(12,24,27,.98),rgba(11,18,30,.98));
  border-color:rgba(88,212,159,.18);
}
body.theme-v5-dark .exercise-check{
  background:#111a2b;
  color:#f2f5ff;
  border-color:rgba(255,255,255,.08);
}
body.theme-v5-dark .exercise-check.active{
  background:linear-gradient(145deg,#58d49f,#34b480);
  color:#fff;
  border-color:transparent;
}
body.theme-v5-dark .exercise-chip{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  color:#d5dcee;
}
body.theme-v5-dark .exercise-chip.main{
  background:rgba(141,99,255,.16);
  color:#e9e1ff;
  border-color:rgba(141,99,255,.24);
}
body.theme-v5-dark .exercise-chip.muscle{
  background:rgba(88,212,159,.10);
  color:#c7f3e1;
  border-color:rgba(88,212,159,.18);
}
body.theme-v5-dark .exercise-quickcue{border-left:2px solid rgba(141,99,255,.45)}
body.theme-v5-dark .technique-panel,
body.theme-v5-dark .online-fallback-body{
  background:#0d1523;
  border-top:1px solid rgba(255,255,255,.06);
}
body.theme-v5-dark .movement-frame{
  background:#0f1727;
  border:1px solid rgba(255,255,255,.07);
}
body.theme-v5-dark .movement-frame>span{
  background:linear-gradient(145deg,#8d63ff,#6f4df0);
}
body.theme-v5-dark .movement-frame b{color:#fff}
body.theme-v5-dark .movement-frame small{color:#a4b0c7}
body.theme-v5-dark .movement-arrow{color:#cdb9ff}
body.theme-v5-dark .mistake-box{
  background:rgba(255,107,107,.08);
  border:1px solid rgba(255,107,107,.15);
}
body.theme-v5-dark .mistake-box b{color:#ffbab0}
body.theme-v5-dark .mistake-box span{color:#eaccc7}
body.theme-v5-dark .animation-button,
body.theme-v5-dark .video-button{
  background:linear-gradient(145deg,#8b5cf6,#6f4df0);
  color:#fff;
}
body.theme-v5-dark .rules-panel .rule-list li,
body.theme-v5-dark .rule-list li{
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.05);
}
body.theme-v5-dark .video-note,
body.theme-v5-dark .offline-note{
  background:linear-gradient(145deg,rgba(141,99,255,.12),rgba(17,27,43,.96));
  border-color:rgba(141,99,255,.16);
}
body.theme-v5-dark .video-note>span{background:linear-gradient(145deg,#8d63ff,#6f4df0)}

body.theme-v5-dark .motion-stage{
  background:#0e1626;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 40px rgba(0,0,0,.32);
}
body.theme-v5-dark .motion-stage-top{padding-bottom:8px}
body.theme-v5-dark .offline-pill{
  background:rgba(88,212,159,.10);
  color:#c8f4e2;
  border-color:rgba(88,212,159,.18);
}
body.theme-v5-dark .loop-pill{
  background:rgba(255,255,255,.05);
  color:#d1d9eb;
  border-color:rgba(255,255,255,.08);
}
body.theme-v5-dark .exercise-motion-svg .svg-title{fill:#ffffff}
body.theme-v5-dark .exercise-motion-svg .svg-subtitle{fill:#9aa7c2}
body.theme-v5-dark .exercise-motion-svg rect[fill^="url"]{filter:none}
body.theme-v5-dark .motion-legend{color:#b1bdd2}
body.theme-v5-dark .motion-guide-card.warning{
  background:rgba(255,107,107,.08);
  border-color:rgba(255,107,107,.16);
}
body.theme-v5-dark .motion-guide-index{
  background:rgba(141,99,255,.16);
  color:#efe8ff;
}
body.theme-v5-dark .motion-guide-card.warning .motion-guide-index{
  background:rgba(255,107,107,.16);
  color:#ffd0d0;
}
body.theme-v5-dark .online-fallback summary{color:#d6def0}
body.theme-v5-dark .backup-actions{gap:8px}
body.theme-v5-dark .empty{
  background:rgba(255,255,255,.03);
  border:1px dashed rgba(255,255,255,.10);
  color:#aab6cf;
}

@media (max-width:700px){
  body.theme-v5-dark .summary-grid{grid-template-columns:1fr 1fr}
  body.theme-v5-dark .metric.primary{grid-column:1/-1}
}


/* V6 – static exercise execution guide. Old SVG animation removed. */
.visual-exercise-card{padding:12px}
.exercise-card-main{display:grid;grid-template-columns:38px 92px 1fr;gap:10px;align-items:center}
.exercise-thumb{height:88px;border:1px solid rgba(255,255,255,.09);background:#f6f6f6;border-radius:12px;overflow:hidden;padding:0;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.exercise-thumb img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.exercise-compact-data{display:flex;gap:14px;margin-top:5px;color:#eef2ff;font-size:calc(11.5px * var(--font-scale,1));font-weight:800}
.exercise-muscle-line{margin-top:4px;color:#98a6c1;font-size:calc(11px * var(--font-scale,1))}
.execution-button{margin-top:8px;border:0;border-radius:999px;padding:7px 11px;background:linear-gradient(145deg,rgba(141,99,255,.30),rgba(111,77,240,.20));color:#d8caff;font-size:calc(11px * var(--font-scale,1));font-weight:900}
.compact-technique{margin:10px 0 0 48px}
.compact-technique .technique-button{justify-content:flex-start;min-height:32px;padding:6px 9px;background:transparent;box-shadow:none;color:#99a6c0;border-color:rgba(255,255,255,.06)}
.visual-exercise-card .training-log-label,.visual-exercise-card .log-row{margin-left:48px}

.execution-sheet{max-width:920px!important}
.execution-sheet-head{display:grid!important;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}
.execution-back{position:static!important}
.execution-head-copy h3{font-size:calc(24px * var(--font-scale,1))!important;margin:0}
.execution-subtitle{font-size:calc(12px * var(--font-scale,1));color:#a6b1c5;margin-top:2px}
.execution-star{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#141e2f;border:1px solid rgba(255,255,255,.08);font-size:calc(22px * var(--font-scale,1));color:#e9edff}
.target-muscle-pill{width:max-content;max-width:100%;margin:3px auto 15px;padding:8px 13px;border-radius:999px;background:rgba(141,99,255,.16);border:1px solid rgba(141,99,255,.28);color:#cdb9ff;font-size:calc(12px * var(--font-scale,1));text-align:center}
.target-muscle-pill strong{color:#fff}

.execution-visuals{display:grid;grid-template-columns:1fr 28px 1fr;gap:9px;align-items:center;padding-top:2px;border-top:1px solid rgba(255,255,255,.08)}
.execution-position-label{text-align:center;color:#ae8aff;font-size:calc(11px * var(--font-scale,1));font-weight:950;letter-spacing:.04em;padding:12px 0 7px}
.execution-between{color:#fff;text-align:center;font-size:calc(24px * var(--font-scale,1));padding-top:28px}
.execution-image-frame{height:270px;border-radius:17px;overflow:hidden;background:linear-gradient(180deg,#fff,#f4f4f4);border:1px solid rgba(255,255,255,.11);box-shadow:0 13px 28px rgba(0,0,0,.22)}
.execution-image-frame img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.execution-no-image{grid-column:1/-1;padding:32px;border:1px dashed rgba(255,255,255,.12);border-radius:16px;text-align:center;color:#a3afc5}

.execution-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:14px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.execution-guide-card{padding:15px 16px;min-height:128px}
.execution-guide-card+.execution-guide-card{border-left:1px solid rgba(255,255,255,.08)}
.execution-guide-title{font-size:calc(13px * var(--font-scale,1));font-weight:950;display:flex;align-items:center;gap:8px}
.execution-guide-title span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:calc(14px * var(--font-scale,1))}
.execution-guide-card p{margin:9px 0 0;color:#d5dceb;font-size:calc(12px * var(--font-scale,1));line-height:1.55}
.start-guide .execution-guide-title{color:#70d45c}.start-guide .execution-guide-title span{background:#387e34;color:#fff}
.move-guide .execution-guide-title{color:#ad8aff}.move-guide .execution-guide-title span{background:#7452d6;color:#fff}
.avoid-guide .execution-guide-title{color:#ff685e}.avoid-guide .execution-guide-title span{background:#d84137;color:#fff}

.execution-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}
.execution-stat{display:flex;align-items:center;justify-content:center;gap:11px;background:linear-gradient(180deg,#121c2d,#0f1725);border:1px solid rgba(255,255,255,.07);border-radius:15px;padding:12px}
.stat-icon{font-size:calc(27px * var(--font-scale,1));color:#e7ecfb}
.execution-stat small{display:block;color:#9ba8bd;font-size:calc(10px * var(--font-scale,1))}
.execution-stat strong{display:block;color:#fff;font-size:calc(17px * var(--font-scale,1));margin-top:1px}
.training-phase-foot{display:flex;align-items:center;gap:9px;margin-top:9px;padding:9px 11px;border-radius:13px;background:linear-gradient(90deg,rgba(141,99,255,.20),rgba(141,99,255,.07));border:1px solid rgba(141,99,255,.24);color:#d8d2ef;font-size:calc(10.5px * var(--font-scale,1))}
.training-phase-foot>span{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#865deb;color:#fff;font-size:calc(12px * var(--font-scale,1))}
.exercise-image-credit{text-align:center;margin-top:9px;color:#67758e;font-size:calc(9px * var(--font-scale,1))}

@media(max-width:700px){
 .exercise-card-main{grid-template-columns:34px 78px 1fr;gap:8px}
 .exercise-thumb{height:76px}
 .visual-exercise-card .training-log-label,.visual-exercise-card .log-row,.compact-technique{margin-left:0}
 .execution-image-frame{height:200px}
 .execution-guide-grid{grid-template-columns:1fr}
 .execution-guide-card+.execution-guide-card{border-left:0;border-top:1px solid rgba(255,255,255,.08)}
}
@media(max-width:480px){
 .exercise-card-main{grid-template-columns:32px 72px 1fr}
 .exercise-title{font-size:calc(13.5px * var(--font-scale,1))!important}
 .exercise-compact-data{gap:9px;font-size:calc(10.5px * var(--font-scale,1))}
 .execution-button{font-size:calc(10px * var(--font-scale,1));padding:6px 9px}
 .execution-visuals{display:flex;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
 .execution-position{min-width:88%;scroll-snap-align:center}
 .execution-between{min-width:20px;padding-top:115px}
 .execution-image-frame{height:230px}
 .execution-stats{grid-template-columns:1fr}
 .execution-stat{justify-content:flex-start}
}


/* V7 – permanent light/dark theme switch */
.theme-toggle{
  position:fixed;
  top:calc(11px + env(safe-area-inset-top));
  right:12px;
  z-index:90;
  width:42px;
  height:42px;
  padding:0;
  border-radius:13px;
  display:grid;
  place-items:center;
  border:1px solid rgba(115,91,218,.42);
  background:rgba(255,255,255,.90);
  color:#5e42c7;
  box-shadow:0 9px 25px rgba(35,31,68,.13);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .12s ease,box-shadow .22s ease;
}
.theme-toggle:active{transform:scale(.94)}
.theme-icon{width:22px;height:22px;display:grid;place-items:center}
.theme-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.theme-icon-moon{display:grid}
.theme-icon-sun{display:none}
body.theme-v5-dark .theme-toggle{
  background:rgba(13,21,35,.90);
  color:#c2aaff;
  border-color:rgba(141,99,255,.55);
  box-shadow:0 10px 28px rgba(0,0,0,.30),0 0 0 1px rgba(141,99,255,.06);
}
body.theme-v5-dark .theme-icon-moon{display:none}
body.theme-v5-dark .theme-icon-sun{display:grid}

/* Keep the normal header content clear of the fixed theme button. */
header{padding-right:48px}
@media(max-width:520px){
  .theme-toggle{width:40px;height:40px;right:10px;top:calc(9px + env(safe-area-inset-top));border-radius:12px}
  header{padding-right:44px}
  .date-pill{font-size:calc(10.5px * var(--font-scale,1));padding:7px 8px}
}

/* Smooth but restrained theme transition. */
body,
.bottom-nav,
.metric,.current-card,.block,.detail-card,.meal-card,.rule-card,.info-card,.note-box,
.training-dashboard,.training-phase-card,.exercise-card,.top-card,.date-pill,.day-btn,.meal-btn,
.training-session-btn,.sheet,.exercise-sheet,.theme-toggle{
  transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease;
}

/* Light-mode version of the V6 exercise execution popup. */
body:not(.theme-v5-dark) .execution-sheet{
  background:linear-gradient(180deg,#ffffff 0%,#f6f8fb 100%);
  color:#142033;
  border-top:1px solid #e3e8ef;
}
body:not(.theme-v5-dark) .execution-sheet .exercise-sheet-head{
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #e3e8ef;
}
body:not(.theme-v5-dark) .execution-sheet .execution-head-copy h3{color:#142033}
body:not(.theme-v5-dark) .execution-subtitle{color:#667085}
body:not(.theme-v5-dark) .execution-star{
  background:#f4f1ff;
  border-color:#ded5ff;
  color:#7251d2;
}
body:not(.theme-v5-dark) .target-muscle-pill{
  background:#f0ebff;
  border-color:#ddd2ff;
  color:#6a49c5;
}
body:not(.theme-v5-dark) .target-muscle-pill strong{color:#3e2d72}
body:not(.theme-v5-dark) .execution-visuals{border-top-color:#e2e7ed}
body:not(.theme-v5-dark) .execution-position-label{color:#7251d2}
body:not(.theme-v5-dark) .execution-between{color:#405068}
body:not(.theme-v5-dark) .execution-image-frame{
  background:#fff;
  border-color:#e0e5eb;
  box-shadow:0 12px 28px rgba(16,47,82,.10);
}
body:not(.theme-v5-dark) .execution-guide-grid{
  border-top-color:#e2e7ed;
  border-bottom-color:#e2e7ed;
}
body:not(.theme-v5-dark) .execution-guide-card+.execution-guide-card{border-left-color:#e2e7ed}
body:not(.theme-v5-dark) .execution-guide-card p{color:#4e5d70}
body:not(.theme-v5-dark) .execution-stat{
  background:linear-gradient(180deg,#ffffff,#f5f7fa);
  border-color:#e1e6ec;
  box-shadow:0 5px 16px rgba(16,47,82,.06);
}
body:not(.theme-v5-dark) .stat-icon{color:#53657a}
body:not(.theme-v5-dark) .execution-stat small{color:#778396}
body:not(.theme-v5-dark) .execution-stat strong{color:#142033}
body:not(.theme-v5-dark) .training-phase-foot{
  background:linear-gradient(90deg,#eee8ff,#f8f5ff);
  border-color:#ddd1ff;
  color:#5d5274;
}
body:not(.theme-v5-dark) .online-fallback{
  background:#fff;
  border-color:#e0e6ec;
}
body:not(.theme-v5-dark) .online-fallback summary{color:#667085}
body:not(.theme-v5-dark) .exercise-image-credit{color:#8993a2}

/* Light-mode training cards introduced in V6. */
body:not(.theme-v5-dark) .exercise-compact-data{color:#314156}
body:not(.theme-v5-dark) .exercise-muscle-line{color:#667085}
body:not(.theme-v5-dark) .execution-button{
  background:linear-gradient(145deg,#ede7ff,#e6ddff);
  color:#6042bb;
  border:1px solid #ded2ff;
}
body:not(.theme-v5-dark) .compact-technique .technique-button{
  color:#667085;
  border-color:#e5eaf0;
}

/* In dark mode the fixed toggle follows the approved purple mockup. */
body.theme-v5-dark .execution-button{
  background:linear-gradient(145deg,rgba(141,99,255,.30),rgba(111,77,240,.20));
  color:#d8caff;
  border:1px solid rgba(141,99,255,.18);
}


/* ============================================================
   V8 FIX – TRUE FULL LIGHT THEME
   The V5 :root palette is dark. Light mode must therefore
   explicitly replace ALL global variables and page surfaces.
   ============================================================ */

html.theme-light{
  --bg:#f3f6f8;
  --card:#ffffff;
  --card-2:#ffffff;
  --text:#142033;
  --muted:#667085;
  --line:#e3e8ef;
  --navy:#183b63;
  --navy-2:#102f52;
  --green:#e8f4df;
  --green-deep:#407a35;
  --blue:#e2f0fb;
  --blue-deep:#2f6f9f;
  --peach:#fce8da;
  --peach-deep:#a85d2e;
  --yellow:#fff4c9;
  --yellow-deep:#997000;
  --work:#f3f5f7;
  --work-deep:#667085;
  --sleep:#ece9f7;
  --sleep-deep:#61558a;
  --focus:#e8eef9;
  --focus-deep:#405e92;
  --danger:#b42318;
  --success:#15745c;
  --shadow:0 8px 28px rgba(16,47,82,.08);
  --radius:19px;
  background:#f3f6f8!important;
  color-scheme:light;
}
html.theme-v5-dark{
  color-scheme:dark;
  background:#09111d!important;
}

body.theme-light{
  min-height:100vh;
  background:
    radial-gradient(circle at 15% -5%,rgba(47,111,159,.10),transparent 28rem),
    radial-gradient(circle at 105% 18%,rgba(64,122,53,.07),transparent 25rem),
    #f3f6f8!important;
  color:#142033!important;
}
body.theme-light h1{color:#102f52!important}
body.theme-light .subtitle{color:#667085!important}
body.theme-light .brand-mark{
  background:linear-gradient(145deg,#102f52,#2f6f9f 70%,#5f8fb0)!important;
  box-shadow:0 9px 22px rgba(16,47,82,.24),inset 0 1px 0 rgba(255,255,255,.25)!important;
}
body.theme-light .date-pill{
  background:#fff!important;
  color:#183b63!important;
  border-color:#e3e8ef!important;
  box-shadow:0 8px 28px rgba(16,47,82,.08)!important;
}

/* Hero remains premium navy in light mode, matching the original light UI. */
body.theme-light .top-card{
  background:linear-gradient(135deg,#0f2d4d 0%,#183b63 58%,#2f6f9f 120%)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 15px 38px rgba(16,47,82,.20)!important;
}
body.theme-light .top-card strong,
body.theme-light .top-card p,
body.theme-light .top-card small{color:#fff!important}

/* Full light surfaces */
body.theme-light .metric,
body.theme-light .current-card,
body.theme-light .block,
body.theme-light .detail-card,
body.theme-light .meal-card,
body.theme-light .rule-card,
body.theme-light .info-card,
body.theme-light .note-box,
body.theme-light .training-dashboard,
body.theme-light .training-phase-card,
body.theme-light .exercise-card,
body.theme-light .detail-day-intro,
body.theme-light .online-fallback,
body.theme-light .motion-guide-card{
  background:linear-gradient(180deg,#ffffff,#fbfcfd)!important;
  border-color:#e3e8ef!important;
  color:#142033!important;
  box-shadow:0 8px 26px rgba(16,47,82,.07)!important;
}
body.theme-light .metric strong,
body.theme-light .block-name,
body.theme-light .meal-name,
body.theme-light .rule-card h3,
body.theme-light .detail-card h3,
body.theme-light .exercise-title,
body.theme-light .training-dashboard-copy h2,
body.theme-light .section-head h2{
  color:#102f52!important;
}
body.theme-light .metric small,
body.theme-light .meal-desc,
body.theme-light .rule-content,
body.theme-light .detail-content,
body.theme-light .note-box,
body.theme-light .exercise-quickcue,
body.theme-light .training-dashboard-copy p,
body.theme-light .phase p,
body.theme-light .block-summary,
body.theme-light .meal-time,
body.theme-light .kicker,
body.theme-light .leit-row,
body.theme-light .time{
  color:#667085!important;
}

body.theme-light .day-btn,
body.theme-light .meal-btn,
body.theme-light .training-session-btn{
  background:#fff!important;
  color:#142033!important;
  border-color:#e3e8ef!important;
  box-shadow:0 2px 8px rgba(16,47,82,.035)!important;
}
body.theme-light .day-btn.active,
body.theme-light .meal-btn.active{
  background:#183b63!important;
  color:#fff!important;
  border-color:#183b63!important;
}
body.theme-light .training-session-btn .session-letter{
  background:#eef2f6!important;
  color:#183b63!important;
}
body.theme-light .training-session-btn small{color:#667085!important}
body.theme-light .training-session-btn.active{
  background:linear-gradient(145deg,#173a61,#24577f)!important;
  color:#fff!important;
  border-color:rgba(24,59,99,.22)!important;
  box-shadow:0 9px 24px rgba(16,47,82,.16)!important;
}
body.theme-light .training-session-btn.active .session-letter{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
body.theme-light .training-session-btn.active small{color:rgba(255,255,255,.72)!important}

body.theme-light .progress{background:#edf1f5!important}
body.theme-light .progress span{background:#15745c!important}
body.theme-light .current-badge{background:#183b63!important;color:#fff!important}
body.theme-light .block{border-left-color:#667085!important}
body.theme-light .goal,
body.theme-light .health,
body.theme-light .chaos{
  background:#f6f8fa!important;
  border-color:#e3e8ef!important;
  color:#39475a!important;
}
body.theme-light .step,
body.theme-light .task{
  background:#fff!important;
  border-color:#e3e8ef!important;
  color:#142033!important;
}
body.theme-light .task.done{
  background:#f1faf6!important;
  border-color:#cfe9dd!important;
  color:#667085!important;
}

body.theme-light input,
body.theme-light textarea,
body.theme-light select,
body.theme-light .log-row input{
  background:#fff!important;
  color:#142033!important;
  border-color:#e3e8ef!important;
}
body.theme-light input::placeholder,
body.theme-light textarea::placeholder{color:#9aa4b2!important}

body.theme-light .soft-button,
body.theme-light .technique-button,
body.theme-light .motion-control{
  background:#f2f5f8!important;
  color:#183b63!important;
  border-color:#e0e6ec!important;
}
body.theme-light .primary-button,
body.theme-light .detail-link{
  background:#183b63!important;
  color:#fff!important;
}
body.theme-light .danger-button{
  background:#fff1f0!important;
  color:#b42318!important;
  border-color:#f4c7c3!important;
}

body.theme-light .exercise-check{
  background:#f4f7f9!important;
  color:#183b63!important;
  border-color:#d8e0e8!important;
}
body.theme-light .exercise-check.active{
  background:#15745c!important;
  color:#fff!important;
  border-color:#15745c!important;
}
body.theme-light .exercise-chip{
  background:#f1f4f7!important;
  color:#596474!important;
  border-color:#e7ebf0!important;
}
body.theme-light .exercise-chip.main{
  background:#eaf2f8!important;
  color:#315f85!important;
  border-color:#dbeaf5!important;
}
body.theme-light .exercise-chip.muscle{
  background:#eef6e9!important;
  color:#4e7444!important;
  border-color:#e0efd8!important;
}

/* Bottom navigation truly light */
body.theme-light .bottom-nav{
  background:rgba(247,249,251,.92)!important;
  border-top-color:#e3e8ef!important;
  box-shadow:0 -10px 35px rgba(16,47,82,.06)!important;
}
body.theme-light .nav-btn{color:#667085!important}
body.theme-light .nav-btn.active{
  background:#e8eef5!important;
  color:#183b63!important;
  box-shadow:inset 0 0 0 1px rgba(24,59,99,.05)!important;
}

/* Light theme toggle */
body.theme-light .theme-toggle{
  background:rgba(255,255,255,.94)!important;
  color:#6848d4!important;
  border-color:rgba(104,72,212,.42)!important;
  box-shadow:0 9px 25px rgba(35,31,68,.13)!important;
}

/* Light execution popup */
body.theme-light .modal{background:rgba(33,43,54,.38)!important}
body.theme-light .sheet,
body.theme-light .exercise-sheet{
  background:linear-gradient(180deg,#ffffff,#f6f8fb)!important;
  color:#142033!important;
  border-color:#e3e8ef!important;
}
body.theme-light .sheet-head,
body.theme-light .exercise-sheet-head{
  background:rgba(255,255,255,.95)!important;
  border-bottom-color:#e3e8ef!important;
}
body.theme-light .sheet h3{color:#142033!important}
body.theme-light .close{
  background:#f2f5f8!important;
  color:#24364a!important;
  border-color:#dfe5eb!important;
}
body.theme-light .execution-guide-card p{color:#4e5d70!important}
body.theme-light .execution-stat{
  background:linear-gradient(180deg,#fff,#f5f7fa)!important;
  border-color:#e1e6ec!important;
}
body.theme-light .execution-stat strong{color:#142033!important}
body.theme-light .execution-stat small{color:#778396!important}

/* Ensure desktop page outside max-width is also light. */
html.theme-light,
html.theme-light body,
body.theme-light:before,
body.theme-light:after{
  background-color:#f3f6f8;
}


.execution-image-combined img{width:100%;height:auto;display:block}
.execution-combined-wrap{width:100%}
.execution-combined-note{margin-top:8px;text-align:center;font-size:calc(12px * var(--font-scale,1));color:var(--muted)}


/* ============================================================
   V10 – accessibility font scale + action-row tap behavior
   ============================================================ */
:root{--font-scale:1}

/* H1 uses clamp, so scale it separately. */
h1{
  font-size:clamp(
    calc(26px * var(--font-scale,1)),
    calc(6vw * var(--font-scale,1)),
    calc(38px * var(--font-scale,1))
  );
}

/* Permanent Aa control next to the theme button */
.font-toggle{
  position:fixed;
  top:calc(11px + env(safe-area-inset-top));
  right:62px;
  z-index:91;
  width:42px;height:42px;padding:0;
  border-radius:13px;
  display:grid;place-items:center;
  border:1px solid rgba(115,91,218,.34);
  background:rgba(255,255,255,.90);
  color:#5e42c7;
  box-shadow:0 9px 25px rgba(35,31,68,.12);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  cursor:pointer;
}
.font-toggle span{font-size:calc(13px * var(--font-scale,1));font-weight:950;letter-spacing:-.04em}
.font-toggle.active{outline:2px solid rgba(122,82,235,.18)}
body.theme-v5-dark .font-toggle{
  background:rgba(13,21,35,.90);
  color:#c2aaff;
  border-color:rgba(141,99,255,.42);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
}
body.theme-light .font-toggle{
  background:rgba(255,255,255,.94);
  color:#6848d4;
  border-color:rgba(104,72,212,.32);
}

.font-popover{
  position:fixed;
  top:calc(60px + env(safe-area-inset-top));
  right:12px;
  z-index:95;
  width:min(280px,calc(100vw - 24px));
  padding:13px;
  border-radius:17px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px) scale(.98);
  transition:opacity .15s ease,transform .15s ease,visibility .15s;
  background:rgba(255,255,255,.97);
  color:#142033;
  border:1px solid #e1e6ec;
  box-shadow:0 18px 45px rgba(16,47,82,.18);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
.font-popover.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
body.theme-v5-dark .font-popover{
  background:rgba(14,22,37,.97);
  color:#f4f7ff;
  border-color:rgba(255,255,255,.09);
  box-shadow:0 22px 50px rgba(0,0,0,.38);
}
.font-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.font-popover-head strong{font-size:calc(13px * var(--font-scale,1))}
.font-popover-head span{font-size:calc(12px * var(--font-scale,1));font-weight:900;color:#7d58df}
.font-scale-row{display:grid;grid-template-columns:24px 1fr 28px;align-items:center;gap:8px;margin:14px 0 10px}
.font-sample{font-weight:950;text-align:center;color:#68768a}
.font-sample.small{font-size:calc(12px * var(--font-scale,1))}
.font-sample.large{font-size:calc(20px * var(--font-scale,1))}
.font-scale-row input[type=range]{width:100%;accent-color:#7d58df}
.font-reset{
  width:100%;border:1px solid #e2e7ed;background:#f5f7fa;color:#536173;
  border-radius:11px;padding:8px 10px;font-size:calc(11px * var(--font-scale,1));font-weight:850
}
body.theme-v5-dark .font-reset{background:#111a2a;color:#c7d0e2;border-color:rgba(255,255,255,.08)}

/* Action row: left checkbox only marks done; right side opens details */
.task.action-row{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:0;
  align-items:stretch;
  padding:0;
  overflow:hidden;
}
.task-check{
  min-height:43px;
  display:grid;
  place-items:center;
  cursor:pointer;
  border-right:1px solid rgba(227,232,239,.78);
}
body.theme-v5-dark .task-check{border-right-color:rgba(255,255,255,.07)}
.task-check input{
  margin:0!important;
  width:19px!important;height:19px!important;
  accent-color:var(--success);
}
.task-open{
  min-width:0;
  min-height:43px;
  padding:8px 9px 8px 11px;
  border:0;
  background:transparent;
  color:inherit;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  text-align:left;
  cursor:pointer;
}
.task-open:active{background:rgba(125,88,223,.07)}
.task-open-text{min-width:0;line-height:1.35}
.task-open-chevron{
  flex:0 0 auto;
  color:#805ae6;
  font-size:calc(20px * var(--font-scale,1));
  font-weight:800;
}
/* Checked state intentionally does NOT dim, strike through or recolor the action text. */
.task.done span{ text-decoration:none!important; color:inherit!important; }

.selected-action{
  margin-bottom:10px;
  padding:10px 12px;
  border-radius:13px;
  background:linear-gradient(145deg,#eee8ff,#f8f5ff);
  border:1px solid #ddd1ff;
}
.selected-action span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:#7251d2;
  font-size:calc(9.5px * var(--font-scale,1));
  font-weight:950;
}
.selected-action strong{
  display:block;
  margin-top:3px;
  color:#302651;
  font-size:calc(13px * var(--font-scale,1));
}
body.theme-v5-dark .selected-action{
  background:linear-gradient(145deg,rgba(141,99,255,.16),rgba(141,99,255,.07));
  border-color:rgba(141,99,255,.22);
}
body.theme-v5-dark .selected-action span{color:#b697ff}
body.theme-v5-dark .selected-action strong{color:#f4f0ff}

/* Header leaves space for both fixed controls. */
header{padding-right:96px!important}
@media(max-width:520px){
  .font-toggle{
    width:40px;height:40px;
    right:58px;
    top:calc(9px + env(safe-area-inset-top));
    border-radius:12px;
  }
  header{padding-right:88px!important}
}


/* ============================================================
   V11 – Products tab + conservative mobile tidy-up
   ============================================================ */
.products-hero{margin-bottom:10px}
.product-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.product-stat{background:linear-gradient(180deg,#fff,#fbfcfd);border:1px solid var(--line);border-radius:16px;padding:11px 12px;box-shadow:0 6px 18px rgba(16,47,82,.05)}
.product-stat small{display:block;color:var(--muted);font-size:calc(10px * var(--font-scale,1));font-weight:750}
.product-stat strong{display:block;margin-top:2px;color:var(--navy-2);font-size:calc(20px * var(--font-scale,1));font-weight:950}
body.theme-v5-dark .product-stat{background:linear-gradient(180deg,#111b2d,#0d1625);border-color:rgba(255,255,255,.08);box-shadow:0 10px 26px rgba(0,0,0,.18)}
body.theme-v5-dark .product-stat strong{color:#fff}
.product-search{display:grid;grid-template-columns:28px 1fr;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:0 10px;margin-bottom:9px;box-shadow:0 5px 15px rgba(16,47,82,.04)}
.product-search>span{font-size:calc(20px * var(--font-scale,1));color:#7d58df;text-align:center}
.product-search input{border:0!important;background:transparent!important;padding:11px 5px!important;box-shadow:none!important;min-width:0}
.product-chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:1px 1px 7px;margin:0 -1px}
.product-chips::-webkit-scrollbar{display:none}
.product-chip{flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:calc(10.5px * var(--font-scale,1));font-weight:850;white-space:nowrap}
.product-chip.active{background:linear-gradient(145deg,#8b5cf6,#6f4df0);border-color:transparent;color:#fff;box-shadow:0 6px 15px rgba(111,77,240,.18)}
.product-results-note{color:var(--muted);font-size:calc(10px * var(--font-scale,1));font-weight:750;margin:1px 2px 8px}
.product-group{background:var(--card);border:1px solid var(--line);border-radius:18px;margin-bottom:9px;overflow:hidden;box-shadow:0 7px 22px rgba(16,47,82,.05)}
.product-group>summary{list-style:none;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding:11px 12px;cursor:pointer}
.product-group>summary::-webkit-details-marker,.product-card>summary::-webkit-details-marker{display:none}
.product-group-icon,.product-icon{display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#eee8ff,#f7f4ff);color:#714fce}
.product-group-icon{width:36px;height:36px}.product-icon{width:39px;height:39px}
.product-group-icon svg,.product-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.product-group-copy strong{display:block;color:var(--navy-2);font-size:calc(13.5px * var(--font-scale,1))}
.product-group-copy small{display:block;color:var(--muted);font-size:calc(10px * var(--font-scale,1));margin-top:1px}
.product-grid{padding:0 9px 9px}
.product-card{border:1px solid var(--line);border-radius:15px;margin-top:7px;overflow:hidden;background:linear-gradient(180deg,#fff,#fcfdfe)}
.product-card>summary{list-style:none;display:grid;grid-template-columns:42px minmax(0,1fr) auto 13px;gap:8px;align-items:center;padding:10px;cursor:pointer}
.product-card-copy{min-width:0}.product-card-copy strong{display:block;color:var(--navy-2);font-size:calc(12.5px * var(--font-scale,1));line-height:1.25}.product-card-copy small{display:block;color:var(--muted);font-size:calc(9.7px * var(--font-scale,1));line-height:1.35;margin-top:3px}
.product-status{font-size:calc(8.5px * var(--font-scale,1));font-weight:950;border-radius:999px;padding:5px 7px;white-space:nowrap;border:1px solid transparent}
.product-status.active{background:#e9f7f0;color:#15745c;border-color:#d2ebdf}
.product-status.conditional{background:#edf2fb;color:#405e92;border-color:#dce6f7}
.product-status.open{background:#fff4da;color:#8b6500;border-color:#f2e2ae}
.product-status.paused{background:#fff0ed;color:#a64736;border-color:#f1d0c8}
.product-status.notneeded{background:#f1f3f5;color:#667085;border-color:#e1e5e9}
.product-card-body{padding:0 10px 10px;border-top:1px solid var(--line)}
.product-facts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.product-facts>div,.product-usage{background:#f7f9fb;border:1px solid #edf0f3;border-radius:11px;padding:9px}
.product-facts span,.product-usage>span{display:block;color:#7d58df;font-size:calc(8.5px * var(--font-scale,1));font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.product-facts strong{display:block;color:#35465a;font-size:calc(10.5px * var(--font-scale,1));line-height:1.35;margin-top:3px}
.product-usage{margin-top:7px}.product-usage p{margin:4px 0 0;color:#566477;font-size:calc(10.5px * var(--font-scale,1));line-height:1.48}
.product-footnote{margin:11px 1px 3px;padding:11px 12px;border-radius:14px;background:#f4f1ff;border:1px solid #e4dcff;color:#5c5371;font-size:calc(10px * var(--font-scale,1));line-height:1.45}
body.theme-v5-dark .product-group,body.theme-v5-dark .product-card{background:linear-gradient(180deg,#111b2d,#0d1625);border-color:rgba(255,255,255,.08);box-shadow:0 10px 25px rgba(0,0,0,.17)}
body.theme-v5-dark .product-group-icon,body.theme-v5-dark .product-icon{background:rgba(141,99,255,.14);color:#c8b4ff}
body.theme-v5-dark .product-group-copy strong,body.theme-v5-dark .product-card-copy strong{color:#fff}
body.theme-v5-dark .product-card-body{border-top-color:rgba(255,255,255,.07)}
body.theme-v5-dark .product-facts>div,body.theme-v5-dark .product-usage{background:#0c1524;border-color:rgba(255,255,255,.06)}
body.theme-v5-dark .product-facts strong,body.theme-v5-dark .product-usage p{color:#c6d0e2}
body.theme-v5-dark .product-footnote{background:rgba(141,99,255,.10);border-color:rgba(141,99,255,.17);color:#c4b8db}
body.theme-v5-dark .product-status.active{background:rgba(88,212,159,.10);color:#bff0dc;border-color:rgba(88,212,159,.17)}
body.theme-v5-dark .product-status.conditional{background:rgba(83,121,192,.13);color:#b7cef8;border-color:rgba(108,143,210,.16)}
body.theme-v5-dark .product-status.open{background:rgba(244,211,110,.10);color:#f2d983;border-color:rgba(244,211,110,.15)}
body.theme-v5-dark .product-status.paused{background:rgba(255,107,107,.09);color:#ffb7af;border-color:rgba(255,107,107,.14)}
body.theme-v5-dark .product-status.notneeded{background:rgba(255,255,255,.05);color:#aeb9cb;border-color:rgba(255,255,255,.07)}

/* Six bottom tabs – small, controlled mobile adjustment only. */
.bottom-nav-inner{grid-template-columns:repeat(6,1fr)!important;gap:2px!important}
.nav-btn{min-width:0;padding-left:2px!important;padding-right:2px!important;font-size:calc(9px * var(--font-scale,1))!important}
.nav-btn svg{width:20px!important;height:20px!important}
@media(max-width:430px){
 .app{padding-left:10px!important;padding-right:10px!important}
 .bottom-nav{padding-left:4px!important;padding-right:4px!important}
 .nav-btn{font-size:calc(8px * var(--font-scale,1))!important;padding-top:5px!important}
 .nav-btn svg{width:19px!important;height:19px!important;margin-bottom:2px!important}
 .product-stats{gap:6px}
 .product-stat{padding:9px}
 .product-card>summary{grid-template-columns:38px minmax(0,1fr) auto 10px;gap:6px;padding:9px 8px}
 .product-icon{width:36px;height:36px}
 .product-status{max-width:90px;white-space:normal;text-align:center;line-height:1.1}
 .product-facts{grid-template-columns:1fr}
}
@media(max-width:360px){
 .nav-btn{font-size:calc(7.3px * var(--font-scale,1))!important}
 .nav-btn svg{width:18px!important;height:18px!important}
 .product-stats{grid-template-columns:1fr 1fr 1fr}
 .product-stat strong{font-size:calc(17px * var(--font-scale,1))}
}

/* V12: products confirmed as already owned */
.product-owned-fact strong{color:#15745c!important}
body.theme-v5-dark .product-owned-fact strong{color:#bff0dc!important}


/* V13 stability additions */
.training-reset-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.training-values-clear{border:0;background:transparent;color:var(--danger);padding:2px 4px;font-size:calc(9.5px * var(--font-scale,1));font-weight:850;cursor:pointer}
body.theme-v5-dark .training-values-clear{color:#ff9b95}

.product-block-links{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.product-block-links>span,.block-products>span{display:block;font-size:calc(9.5px * var(--font-scale,1));font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.product-block-links>div,.block-products>div{display:flex;gap:6px;flex-wrap:wrap}
.product-block-links button,.block-products button{border:1px solid var(--line);background:var(--card);color:var(--navy);border-radius:999px;padding:7px 9px;font-size:calc(10.5px * var(--font-scale,1));font-weight:850;cursor:pointer}
body.theme-v5-dark .product-block-links button,body.theme-v5-dark .block-products button{background:#111a2b;color:#d7caff;border-color:rgba(255,255,255,.08)}
.block-products{margin-top:12px;padding:11px;border-radius:14px;background:rgba(125,88,223,.06);border:1px solid rgba(125,88,223,.12)}

.selected-product{margin-bottom:10px;padding:10px 12px;border-radius:13px;background:#eef6f2;border:1px solid #d4e9df}
.selected-product span{display:block;text-transform:uppercase;letter-spacing:.07em;color:#28705b;font-size:calc(9.5px * var(--font-scale,1));font-weight:950}
.selected-product strong{display:block;margin-top:3px;color:#194d3e;font-size:calc(13px * var(--font-scale,1))}
body.theme-v5-dark .selected-product{background:rgba(88,212,159,.08);border-color:rgba(88,212,159,.16)}
body.theme-v5-dark .selected-product span{color:#82dfb8}
body.theme-v5-dark .selected-product strong{color:#d9f7ea}

@media(max-width:700px){
  .training-reset-actions{grid-column:2;align-items:flex-start}
}


/* ============================================================
   V14 – Product inventory / shopping list
   ============================================================ */
.inventory-stats .product-stat{appearance:none;text-align:left;cursor:pointer;color:inherit}
.inventory-stat-button.low strong{color:#c7832a}
.inventory-stat-button.buy strong{color:var(--danger)}
body.theme-v5-dark .inventory-stat-button.low strong{color:#f2bd69}
body.theme-v5-dark .inventory-stat-button.buy strong{color:#ff9b95}

.shopping-summary,.shopping-empty{
  width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;
  margin:10px 0 12px;padding:12px 13px;border-radius:17px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 94%,var(--bg)));
  color:var(--text);text-align:left;box-shadow:0 5px 17px rgba(16,47,82,.05)
}
.shopping-summary{cursor:pointer}
.shopping-summary-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:rgba(125,88,223,.12);font-size:18px}
.shopping-summary strong,.shopping-empty strong{display:block;font-size:calc(12.5px * var(--font-scale,1))}
.shopping-summary small,.shopping-empty small{display:block;margin-top:2px;color:var(--muted);font-size:calc(10.5px * var(--font-scale,1))}
.shopping-empty{grid-template-columns:36px 1fr}
.shopping-empty>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:rgba(21,116,92,.10);color:var(--success);font-weight:950}

.shopping-chip{white-space:nowrap}
.product-card-statuses{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.stock-mini{border-radius:999px;padding:4px 7px;font-size:calc(8.5px * var(--font-scale,1));font-weight:900;white-space:nowrap}
.stock-mini.owned{background:#e8f6ef;color:#15745c}
.stock-mini.low{background:#fff4df;color:#996117}
.stock-mini.buy{background:#fff0ef;color:#b42318}
body.theme-v5-dark .stock-mini.owned{background:rgba(88,212,159,.11);color:#9ee7c7}
body.theme-v5-dark .stock-mini.low{background:rgba(242,189,105,.11);color:#f2bd69}
body.theme-v5-dark .stock-mini.buy{background:rgba(255,107,107,.11);color:#ffaaa4}

.inventory-control{margin-top:11px;padding:11px;border-radius:15px;background:rgba(125,88,223,.055);border:1px solid rgba(125,88,223,.10)}
.inventory-control-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.inventory-control-head>span{font-size:calc(10px * var(--font-scale,1));font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.inventory-control-head>small{font-size:calc(9px * var(--font-scale,1));color:var(--muted)}
.inventory-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.inventory-choice{min-width:0;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:11px;padding:8px 5px;font-size:calc(10px * var(--font-scale,1));font-weight:850;cursor:pointer}
.inventory-choice span{margin-right:3px}
.inventory-choice.owned.active{background:#e8f6ef;border-color:#cce8da;color:#15745c}
.inventory-choice.low.active{background:#fff4df;border-color:#f0ddb9;color:#966018}
.inventory-choice.buy.active{background:#fff0ef;border-color:#f3d0cc;color:#b42318}
body.theme-v5-dark .inventory-control{background:rgba(141,99,255,.06);border-color:rgba(141,99,255,.12)}
body.theme-v5-dark .inventory-choice{background:#111a2a;border-color:rgba(255,255,255,.08);color:#aeb9cc}
body.theme-v5-dark .inventory-choice.owned.active{background:rgba(88,212,159,.12);border-color:rgba(88,212,159,.22);color:#9ee7c7}
body.theme-v5-dark .inventory-choice.low.active{background:rgba(242,189,105,.12);border-color:rgba(242,189,105,.22);color:#f2bd69}
body.theme-v5-dark .inventory-choice.buy.active{background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.22);color:#ffaaa4}

.inventory-disabled{margin-top:10px;padding:9px 10px;border-radius:12px;background:rgba(128,139,154,.06);border:1px solid var(--line)}
.inventory-disabled span{display:block;color:var(--muted);font-size:calc(9px * var(--font-scale,1));font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.inventory-disabled strong{display:block;margin-top:2px;font-size:calc(11px * var(--font-scale,1));color:var(--muted)}

.shopping-list{display:flex;flex-direction:column;gap:13px;margin-top:10px}
.shopping-section{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.shopping-section-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid var(--line)}
.shopping-section-head strong{font-size:calc(13px * var(--font-scale,1))}
.shopping-section-head small{display:grid;place-items:center;min-width:25px;height:25px;border-radius:999px;background:rgba(125,88,223,.10);color:var(--navy);font-weight:900}
.shop-dot{width:10px;height:10px;border-radius:50%}.shop-dot.buy{background:var(--danger)}.shop-dot.low{background:#d59a3e}
.shopping-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}
.shopping-item:last-child{border-bottom:0}
.shopping-item-copy span{display:block;color:var(--muted);font-size:calc(9px * var(--font-scale,1));font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.shopping-item-copy strong{display:block;margin-top:2px;font-size:calc(12.5px * var(--font-scale,1));color:var(--text)}
.shopping-item-copy small{display:block;margin-top:3px;color:var(--muted);font-size:calc(10px * var(--font-scale,1));line-height:1.35}
.shopping-item-actions{display:flex;flex-direction:column;gap:5px}
.shopping-item-actions .inventory-choice{white-space:nowrap;padding:7px 9px}
.shopping-list-empty{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:25px 16px;box-shadow:var(--shadow)}
.shopping-list-bigcheck{width:48px;height:48px;margin:0 auto 10px;border-radius:16px;background:rgba(21,116,92,.10);color:var(--success);display:grid;place-items:center;font-size:23px;font-weight:950}
.shopping-list-empty strong{display:block}.shopping-list-empty p{color:var(--muted);font-size:calc(11px * var(--font-scale,1));margin:5px auto 0;max-width:380px}

@media(max-width:520px){
  .product-card-statuses{max-width:92px}
  .inventory-choices{gap:4px}
  .inventory-choice{font-size:calc(9px * var(--font-scale,1));padding:8px 3px}
  .shopping-item{grid-template-columns:1fr}
  .shopping-item-actions{flex-direction:row}
}


/* ============================================================
   V15 – mobile "Jetzt | Ganzer Tag" view
   ============================================================ */
.overview-mode-wrap{margin:4px 0 13px}
.overview-mode-toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;
  max-width:310px;margin:0 auto;padding:4px;border-radius:15px;
  background:rgba(24,59,99,.065);border:1px solid var(--line)
}
.overview-mode-btn{
  border:0;background:transparent;color:var(--muted);border-radius:11px;
  padding:8px 12px;font-size:calc(11px * var(--font-scale,1));font-weight:900;cursor:pointer
}
.overview-mode-btn.active{background:var(--card);color:var(--navy);box-shadow:0 5px 15px rgba(16,47,82,.09)}
.overview-mode-btn:disabled{opacity:.38;cursor:not-allowed}
body.theme-v5-dark .overview-mode-toggle{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}
body.theme-v5-dark .overview-mode-btn.active{background:#151f31;color:#d6c8ff;box-shadow:0 7px 18px rgba(0,0,0,.22)}
.now-unavailable{display:block;text-align:center;margin-top:5px;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}

.now-view{display:flex;flex-direction:column;gap:12px}
.now-focus-card{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 100% 0%,rgba(125,88,223,.12),transparent 30%),
    linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 96%,var(--bg)));
  border:1px solid rgba(125,88,223,.15);border-radius:23px;padding:15px;
  box-shadow:0 12px 32px rgba(16,47,82,.09)
}
body.theme-v5-dark .now-focus-card{
  background:radial-gradient(circle at 100% 0%,rgba(141,99,255,.17),transparent 32%),linear-gradient(180deg,#111b2d,#0e1726);
  border-color:rgba(141,99,255,.16);box-shadow:0 16px 36px rgba(0,0,0,.26)
}
.now-focus-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.now-kicker{
  display:inline-block;color:#7652d7;font-size:calc(9.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.09em;margin-bottom:4px
}
body.theme-v5-dark .now-kicker{color:#b99cff}
.now-focus-card h2{margin:0;color:var(--navy-2);font-size:calc(19px * var(--font-scale,1));line-height:1.2}
body.theme-v5-dark .now-focus-card h2{color:#fff}
.now-focus-time{margin-top:4px;color:var(--muted);font-size:calc(11px * var(--font-scale,1));font-weight:750}
.now-detail-button{
  flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--navy);
  border-radius:999px;padding:7px 10px;font-size:calc(10px * var(--font-scale,1));font-weight:900
}
body.theme-v5-dark .now-detail-button{background:#151f31;color:#d5c8ff;border-color:rgba(255,255,255,.08)}

.now-progress-row{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;
  margin-top:14px;padding-top:12px;border-top:1px solid var(--line)
}
.now-progress-row>div:first-child small{display:block;color:var(--muted);font-size:calc(9px * var(--font-scale,1))}
.now-progress-row>div:first-child strong{display:block;color:var(--text);font-size:calc(14px * var(--font-scale,1))}
.now-progress-row>span{color:var(--muted);font-size:calc(10px * var(--font-scale,1));font-weight:850}

.now-action-label{
  margin:14px 0 6px;color:var(--muted);font-size:calc(9px * var(--font-scale,1));
  font-weight:950;letter-spacing:.08em
}
.now-action-row{background:rgba(125,88,223,.045)!important;border-color:rgba(125,88,223,.11)!important}
body.theme-v5-dark .now-action-row{background:rgba(141,99,255,.07)!important;border-color:rgba(141,99,255,.12)!important}
.now-action-complete{
  display:flex;align-items:center;gap:9px;margin-top:13px;padding:10px 11px;
  border-radius:14px;background:rgba(21,116,92,.07);border:1px solid rgba(21,116,92,.12)
}
.now-action-complete>span{
  width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  background:var(--success);color:#fff;font-weight:950
}
.now-action-complete strong{display:block;font-size:calc(11.5px * var(--font-scale,1))}
.now-action-complete small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}

.now-upcoming-section{
  background:var(--card);border:1px solid var(--line);border-radius:20px;padding:13px;
  box-shadow:0 8px 24px rgba(16,47,82,.055)
}
body.theme-v5-dark .now-upcoming-section{background:#0f1828;border-color:rgba(255,255,255,.07);box-shadow:0 12px 28px rgba(0,0,0,.20)}
.now-section-title h3{margin:0;font-size:calc(14px * var(--font-scale,1));color:var(--navy-2)}
body.theme-v5-dark .now-section-title h3{color:#fff}
.now-section-title p{margin:2px 0 10px;color:var(--muted);font-size:calc(10px * var(--font-scale,1))}
.now-upcoming-list{display:flex;flex-direction:column;gap:6px}
.now-upcoming-card{
  width:100%;display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:9px;
  border:1px solid var(--line);background:rgba(128,139,154,.025);color:var(--text);
  border-radius:14px;padding:9px 10px;text-align:left;cursor:pointer
}
.now-upcoming-card:active{background:rgba(125,88,223,.06)}
.now-upcoming-time{color:#7652d7;font-size:calc(10px * var(--font-scale,1));font-weight:900}
body.theme-v5-dark .now-upcoming-time{color:#b99cff}
.now-upcoming-copy small{display:block;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.now-upcoming-copy strong{display:block;margin-top:1px;font-size:calc(11.5px * var(--font-scale,1));color:var(--text)}
.now-upcoming-copy>span{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px * var(--font-scale,1))}

.now-day-mini{
  display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center;
  padding:11px 12px;border-radius:17px;background:var(--card);border:1px solid var(--line)
}
.now-day-mini>span{font-size:calc(10px * var(--font-scale,1));color:var(--muted);font-weight:850}
.now-day-mini>strong{font-size:calc(13px * var(--font-scale,1));color:var(--navy)}
body.theme-v5-dark .now-day-mini>strong{color:#c5adff}
.now-day-mini .progress{grid-column:1/-1}
.now-day-mini>small{grid-column:1/-1;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}

.now-finished-card{
  display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;
  padding:18px;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)
}
.now-finished-icon{
  width:52px;height:52px;border-radius:17px;display:grid;place-items:center;
  background:rgba(21,116,92,.10);color:var(--success);font-size:24px;font-weight:950
}
.now-finished-card small{display:block;color:var(--success);font-size:calc(9px * var(--font-scale,1));font-weight:950;letter-spacing:.08em}
.now-finished-card strong{display:block;margin-top:2px;font-size:calc(14px * var(--font-scale,1))}
.now-finished-card p{margin:4px 0 0;color:var(--muted);font-size:calc(10px * var(--font-scale,1))}

@media(max-width:430px){
  .overview-mode-toggle{max-width:none}
  .now-upcoming-card{grid-template-columns:62px 1fr auto;padding:9px 8px}
  .now-focus-card{padding:13px}
}


/* ============================================================
   V16 – Training history
   ============================================================ */
.training-save-button{
  border:1px solid rgba(21,116,92,.18);
  background:linear-gradient(145deg,#e9f7f0,#ddf1e8);
  color:#12664f;border-radius:11px;padding:7px 10px;
  font-size:calc(10px * var(--font-scale,1));font-weight:950;cursor:pointer
}
body.theme-v5-dark .training-save-button{
  background:linear-gradient(145deg,rgba(88,212,159,.15),rgba(88,212,159,.08));
  border-color:rgba(88,212,159,.20);color:#a5eccf
}
.last-training-line{
  display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:baseline;
  margin-top:7px;padding:6px 8px;border-radius:10px;
  background:rgba(125,88,223,.055);border:1px solid rgba(125,88,223,.09)
}
.last-training-line span{
  grid-row:1/3;color:#7652d7;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;text-transform:uppercase;letter-spacing:.04em
}
.last-training-line strong{
  color:var(--text);font-size:calc(10.5px * var(--font-scale,1));font-weight:850;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.last-training-line small{color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
body.theme-v5-dark .last-training-line{background:rgba(141,99,255,.07);border-color:rgba(141,99,255,.12)}
body.theme-v5-dark .last-training-line span{color:#b99cff}

.training-history-section{margin-top:17px}
.training-history-head{align-items:center}
.history-count{
  min-width:31px;height:31px;border-radius:999px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-size:calc(11px * var(--font-scale,1));font-weight:950
}
body.theme-v5-dark .history-count{background:rgba(141,99,255,.13);color:#c5adff}

.training-history-empty{
  display:flex;align-items:flex-start;gap:11px;padding:14px;border-radius:17px;
  background:var(--card);border:1px solid var(--line);box-shadow:0 6px 20px rgba(16,47,82,.045)
}
.training-history-empty>span{
  width:35px;height:35px;flex:0 0 35px;border-radius:12px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-weight:950;font-size:18px
}
.training-history-empty strong{display:block;font-size:calc(12px * var(--font-scale,1))}
.training-history-empty p{margin:3px 0 0;color:var(--muted);font-size:calc(10px * var(--font-scale,1));line-height:1.4}

.training-history-list{display:flex;flex-direction:column;gap:7px}
.training-history-card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 5px 17px rgba(16,47,82,.045)
}
.training-history-card>summary{
  list-style:none;display:grid;grid-template-columns:1fr auto auto;gap:12px;
  align-items:center;padding:11px 12px;cursor:pointer
}
.training-history-card>summary::-webkit-details-marker{display:none}
.history-date strong{display:block;font-size:calc(11.5px * var(--font-scale,1));color:var(--text)}
.history-date small{display:block;margin-top:1px;color:var(--muted);font-size:calc(9px * var(--font-scale,1))}
.history-progress{text-align:right}
.history-progress strong{display:block;font-size:calc(12px * var(--font-scale,1));color:var(--navy)}
.history-progress small{display:block;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
body.theme-v5-dark .history-progress strong{color:#c5adff}
.history-body{padding:0 12px 11px;border-top:1px solid var(--line)}
.history-exercises{display:flex;flex-direction:column}
.history-exercise{
  display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--line)
}
.history-exercise:last-child{border-bottom:0}
.history-ex-check{
  width:24px;height:24px;border-radius:8px;display:grid;place-items:center;
  background:rgba(128,139,154,.08);color:var(--muted);font-size:12px;font-weight:950
}
.history-exercise.done .history-ex-check{background:rgba(21,116,92,.11);color:var(--success)}
.history-exercise strong{display:block;font-size:calc(10.5px * var(--font-scale,1));color:var(--text)}
.history-exercise small{display:block;margin-top:2px;color:var(--muted);font-size:calc(9px * var(--font-scale,1))}
.history-delete{
  display:block;margin:9px 0 0 auto;border:0;background:transparent;color:var(--danger);
  padding:4px;font-size:calc(9.5px * var(--font-scale,1));font-weight:850;cursor:pointer
}
body.theme-v5-dark .history-delete{color:#ff9b95}

@media(max-width:700px){
  .training-reset-actions{width:100%;align-items:stretch!important}
  .training-save-button,.training-reset-actions .soft-button{text-align:center}
}


/* ============================================================
   V17 – training start date + automatic program week
   ============================================================ */
.training-start-card{
  display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start;
  margin:12px 0;padding:14px;border-radius:19px;
  background:linear-gradient(145deg,#f6f2ff,#fbfaff);
  border:1px solid #e5dcff;box-shadow:0 8px 24px rgba(67,49,124,.07)
}
.training-start-icon{
  width:48px;height:48px;border-radius:15px;display:grid;place-items:center;
  background:#ece4ff;color:#704fd0;font-size:22px;font-weight:950
}
.training-start-copy>small,.program-kicker{
  display:block;color:#7652d7;font-size:calc(9px * var(--font-scale,1));
  font-weight:950;letter-spacing:.08em
}
.training-start-copy>strong{display:block;margin-top:2px;color:var(--navy-2);font-size:calc(14px * var(--font-scale,1))}
.training-start-copy>p{margin:4px 0 0;color:var(--muted);font-size:calc(10.5px * var(--font-scale,1));line-height:1.45}
.training-start-hint{
  margin-top:8px;padding:7px 9px;border-radius:10px;background:rgba(125,88,223,.06);
  color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))
}
.training-start-hint strong{color:var(--text)}
.training-start-form,.training-start-edit{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:10px
}
.training-start-form input,.training-start-edit input{
  min-width:0;border:1px solid var(--line);background:var(--card);color:var(--text);
  border-radius:11px;padding:9px 10px;font-size:calc(11px * var(--font-scale,1))
}
.training-start-form button,.training-start-edit button{
  border:1px solid rgba(125,88,223,.18);background:#7652d7;color:#fff;
  border-radius:11px;padding:8px 11px;font-size:calc(10px * var(--font-scale,1));
  font-weight:900;cursor:pointer
}
body.theme-v5-dark .training-start-card{
  background:linear-gradient(145deg,rgba(141,99,255,.11),rgba(141,99,255,.04));
  border-color:rgba(141,99,255,.16);box-shadow:0 11px 28px rgba(0,0,0,.20)
}
body.theme-v5-dark .training-start-icon{background:rgba(141,99,255,.14);color:#c1a8ff}
body.theme-v5-dark .training-start-copy>strong{color:#fff}
body.theme-v5-dark .training-start-form input,
body.theme-v5-dark .training-start-edit input{background:#111a2a;border-color:rgba(255,255,255,.08);color:#f3f6ff}

.training-program-card{
  margin:12px 0;padding:14px;border-radius:20px;background:var(--card);
  border:1px solid rgba(125,88,223,.15);box-shadow:0 9px 26px rgba(16,47,82,.065)
}
body.theme-v5-dark .training-program-card{background:#101a2a;border-color:rgba(141,99,255,.16);box-shadow:0 13px 30px rgba(0,0,0,.22)}
.training-program-top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.training-program-top h2{margin:2px 0 0;color:var(--navy-2);font-size:calc(17px * var(--font-scale,1))}
body.theme-v5-dark .training-program-top h2{color:#fff}
.training-program-top p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}
.program-week-badge{
  min-width:50px;height:50px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(145deg,#eee8ff,#e2d7ff);color:#6846c9;
  font-size:calc(18px * var(--font-scale,1));font-weight:950
}
body.theme-v5-dark .program-week-badge{background:rgba(141,99,255,.15);color:#c8b3ff}

.program-progress{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.program-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.program-progress-head span{color:var(--muted);font-size:calc(9.5px * var(--font-scale,1));font-weight:800}
.program-progress-head strong{color:#7652d7;font-size:calc(10.5px * var(--font-scale,1))}
body.theme-v5-dark .program-progress-head strong{color:#b99cff}

.program-prescription{
  display:grid;grid-template-columns:.8fr 1.5fr 1fr;gap:7px;margin-top:11px
}
.program-prescription>div{
  min-width:0;padding:9px;border-radius:12px;background:rgba(128,139,154,.055);border:1px solid var(--line)
}
.program-prescription small{
  display:block;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));
  font-weight:900;text-transform:uppercase;letter-spacing:.04em
}
.program-prescription strong{
  display:block;margin-top:3px;color:var(--text);font-size:calc(10.5px * var(--font-scale,1));line-height:1.3
}
.program-goal{margin:9px 0 0;color:var(--muted);font-size:calc(10px * var(--font-scale,1));line-height:1.45}

.training-start-settings{margin-top:9px;border-top:1px solid var(--line);padding-top:8px}
.training-start-settings>summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;
  color:var(--muted);font-size:calc(9.5px * var(--font-scale,1));font-weight:850;cursor:pointer
}
.training-start-settings>summary::-webkit-details-marker{display:none}
.training-start-settings[open] .chev{transform:rotate(90deg)}
.training-start-edit{grid-template-columns:minmax(0,1fr) auto auto}
.training-start-edit #clearTrainingStart{
  background:transparent;color:var(--danger);border-color:rgba(197,54,50,.18)
}
body.theme-v5-dark .training-start-edit #clearTrainingStart{color:#ff9b95}

.current-prescription{
  display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:baseline;
  margin-top:7px;padding:7px 8px;border-radius:10px;
  background:rgba(21,116,92,.055);border:1px solid rgba(21,116,92,.10)
}
.current-prescription span{
  grid-row:1/3;color:#18715a;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;text-transform:uppercase;letter-spacing:.04em
}
.current-prescription strong{
  color:var(--text);font-size:calc(10.5px * var(--font-scale,1));font-weight:900
}
.current-prescription small{color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
body.theme-v5-dark .current-prescription{background:rgba(88,212,159,.065);border-color:rgba(88,212,159,.11)}
body.theme-v5-dark .current-prescription span{color:#8de0bc}

@media(max-width:520px){
  .training-start-card{grid-template-columns:40px 1fr;padding:12px}
  .training-start-icon{width:40px;height:40px;border-radius:13px;font-size:19px}
  .training-start-form{grid-template-columns:1fr}
  .training-start-form button{width:100%}
  .program-prescription{grid-template-columns:1fr}
  .training-start-edit{grid-template-columns:1fr 1fr}
  .training-start-edit input{grid-column:1/-1}
}


/* V19 – Progression Coach */
.progression-overview{margin:12px 0;padding:14px;border-radius:20px;background:linear-gradient(145deg,#f8f5ff,#fcfbff);border:1px solid #e5ddff;box-shadow:0 9px 26px rgba(67,49,124,.065)}
body.theme-v5-dark .progression-overview{background:linear-gradient(145deg,rgba(141,99,255,.09),rgba(141,99,255,.035));border-color:rgba(141,99,255,.15);box-shadow:0 13px 30px rgba(0,0,0,.20)}
.progression-overview-head small,.progression-empty small{display:block;color:#7652d7;font-size:calc(9px * var(--font-scale,1));font-weight:950;letter-spacing:.08em}
body.theme-v5-dark .progression-overview-head small,body.theme-v5-dark .progression-empty small{color:#b99cff}
.progression-overview-head strong,.progression-empty strong{display:block;margin-top:2px;color:var(--navy-2);font-size:calc(15px * var(--font-scale,1))}
body.theme-v5-dark .progression-overview-head strong,body.theme-v5-dark .progression-empty strong{color:#fff}
.progression-overview-head p,.progression-empty p{margin:3px 0 0;color:var(--muted);font-size:calc(10px * var(--font-scale,1));line-height:1.45}
.progression-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:11px}
.progression-stat{min-width:0;padding:9px 7px;border-radius:13px;background:var(--card);border:1px solid var(--line);text-align:center}
.progression-stat>span{width:25px;height:25px;margin:0 auto 4px;border-radius:8px;display:grid;place-items:center;font-weight:950}
.progression-stat strong{display:block;color:var(--text);font-size:calc(14px * var(--font-scale,1))}
.progression-stat small{display:block;margin-top:1px;color:var(--muted);font-size:calc(8px * var(--font-scale,1));line-height:1.15}
.progression-stat.raise>span{background:rgba(21,116,92,.11);color:#14725a}
.progression-stat.reps>span{background:rgba(125,88,223,.10);color:#7652d7}
.progression-stat.hold>span{background:rgba(42,111,178,.10);color:#2b6fae}
.progression-stat.recover>span{background:rgba(197,54,50,.09);color:#b63631}
body.theme-v5-dark .progression-stat{background:#111a2a;border-color:rgba(255,255,255,.07)}
body.theme-v5-dark .progression-stat.raise>span{background:rgba(88,212,159,.12);color:#9ee7c7}
body.theme-v5-dark .progression-stat.reps>span{background:rgba(141,99,255,.13);color:#c4adff}
body.theme-v5-dark .progression-stat.hold>span{background:rgba(87,169,255,.11);color:#9dccff}
body.theme-v5-dark .progression-stat.recover>span{background:rgba(255,107,107,.11);color:#ffaaa4}
.progression-safety-note{display:grid;grid-template-columns:24px 1fr;gap:7px;align-items:start;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.progression-safety-note>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(125,88,223,.10);color:#7652d7;font-size:11px;font-weight:950}
.progression-safety-note p{margin:1px 0 0;color:var(--muted);font-size:calc(9px * var(--font-scale,1));line-height:1.4}
.progression-empty{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start}
.progression-overview-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(125,88,223,.10);color:#7652d7;font-size:20px;font-weight:950}

.progression-advice{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:start;margin-top:7px;padding:8px;border-radius:11px;border:1px solid var(--line)}
.progression-advice-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:16px;font-weight:950}
.progression-advice small{display:block;font-size:calc(8px * var(--font-scale,1));font-weight:950;letter-spacing:.05em;text-transform:uppercase}
.progression-advice strong{display:block;margin-top:1px;color:var(--text);font-size:calc(10.5px * var(--font-scale,1));line-height:1.25}
.progression-advice p{margin:3px 0 0;color:var(--muted);font-size:calc(8.8px * var(--font-scale,1));line-height:1.38}

.progression-advice.raise{background:rgba(21,116,92,.045);border-color:rgba(21,116,92,.10)}
.progression-advice.raise .progression-advice-icon{background:rgba(21,116,92,.11);color:#14725a}.progression-advice.raise small{color:#14725a}
.progression-advice.reps{background:rgba(125,88,223,.045);border-color:rgba(125,88,223,.10)}
.progression-advice.reps .progression-advice-icon{background:rgba(125,88,223,.10);color:#7652d7}.progression-advice.reps small{color:#7652d7}
.progression-advice.hold{background:rgba(42,111,178,.04);border-color:rgba(42,111,178,.09)}
.progression-advice.hold .progression-advice-icon{background:rgba(42,111,178,.10);color:#2b6fae}.progression-advice.hold small{color:#2b6fae}
.progression-advice.recover{background:rgba(197,54,50,.035);border-color:rgba(197,54,50,.09)}
.progression-advice.recover .progression-advice-icon{background:rgba(197,54,50,.09);color:#b63631}.progression-advice.recover small{color:#b63631}
.progression-advice.baseline{background:rgba(128,139,154,.035)}
.progression-advice.baseline .progression-advice-icon{background:rgba(128,139,154,.09);color:var(--muted)}.progression-advice.baseline small{color:var(--muted)}

body.theme-v5-dark .progression-advice.raise{background:rgba(88,212,159,.05);border-color:rgba(88,212,159,.10)}
body.theme-v5-dark .progression-advice.raise .progression-advice-icon{background:rgba(88,212,159,.12);color:#9ee7c7}body.theme-v5-dark .progression-advice.raise small{color:#9ee7c7}
body.theme-v5-dark .progression-advice.reps{background:rgba(141,99,255,.055);border-color:rgba(141,99,255,.11)}
body.theme-v5-dark .progression-advice.reps .progression-advice-icon{background:rgba(141,99,255,.13);color:#c4adff}body.theme-v5-dark .progression-advice.reps small{color:#c4adff}
body.theme-v5-dark .progression-advice.hold{background:rgba(87,169,255,.045);border-color:rgba(87,169,255,.09)}
body.theme-v5-dark .progression-advice.hold .progression-advice-icon{background:rgba(87,169,255,.11);color:#9dccff}body.theme-v5-dark .progression-advice.hold small{color:#9dccff}
body.theme-v5-dark .progression-advice.recover{background:rgba(255,107,107,.04);border-color:rgba(255,107,107,.09)}
body.theme-v5-dark .progression-advice.recover .progression-advice-icon{background:rgba(255,107,107,.11);color:#ffaaa4}body.theme-v5-dark .progression-advice.recover small{color:#ffaaa4}

@media(max-width:520px){.progression-stats{grid-template-columns:repeat(2,1fr)}.progression-overview{padding:12px}}


/* ============================================================
   V20 – Structured per-set training log
   ============================================================ */
.structured-log{margin:12px 0 0 48px;padding-top:10px;border-top:1px solid var(--line)}
.structured-log-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.structured-log-head>div:first-child>span{display:block;color:var(--navy);font-size:calc(10px * var(--font-scale,1));font-weight:950}
.structured-log-head>div:first-child>small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
body.theme-v5-dark .structured-log-head>div:first-child>span{color:#d6c8ff}

.set-count-controls{display:grid;grid-template-columns:28px 28px 28px;gap:3px;align-items:center}
.set-count-controls button{
  width:28px;height:28px;border-radius:9px;border:1px solid var(--line);
  background:var(--card);color:var(--navy);font-size:15px;font-weight:900;cursor:pointer
}
.set-count-controls button:disabled{opacity:.35;cursor:not-allowed}
.set-count-controls strong{text-align:center;font-size:calc(11px * var(--font-scale,1));color:var(--text)}
body.theme-v5-dark .set-count-controls button{background:#111a2a;color:#d3c5ff;border-color:rgba(255,255,255,.08)}

.set-log-table{display:flex;flex-direction:column;gap:5px}
.set-log-row{
  display:grid;grid-template-columns:45px minmax(0,1.2fr) minmax(0,.8fr) minmax(0,.65fr);
  gap:5px;align-items:end;padding:7px;border-radius:12px;
  background:rgba(128,139,154,.035);border:1px solid rgba(128,139,154,.08)
}
.set-number{height:39px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:9px;background:rgba(125,88,223,.07)}
.set-number span{font-size:calc(7.5px * var(--font-scale,1));color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.set-number strong{font-size:calc(13px * var(--font-scale,1));color:#7652d7}
body.theme-v5-dark .set-number{background:rgba(141,99,255,.09)}
body.theme-v5-dark .set-number strong{color:#bea6ff}

.set-log-row label{display:block;min-width:0}
.set-log-row label>span{display:block;margin:0 0 3px 2px;color:var(--muted);font-size:calc(8px * var(--font-scale,1));font-weight:850}
.set-log-row input{
  width:100%;height:39px;box-sizing:border-box;border:1px solid var(--line);
  border-radius:9px;padding:8px 7px;background:#fbfcfd;color:var(--text);
  font-size:calc(11px * var(--font-scale,1));outline:none
}
.set-log-row input:focus{background:#fff;border-color:#9e83ee;box-shadow:0 0 0 3px rgba(125,88,223,.08)}
body.theme-v5-dark .set-log-row{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.055)}
body.theme-v5-dark .set-log-row input{background:#0d1625;color:#f4f7ff;border-color:rgba(255,255,255,.08)}
body.theme-v5-dark .set-log-row input:focus{background:#111b2c;border-color:#8d63ff;box-shadow:0 0 0 3px rgba(141,99,255,.10)}

.set-input-unit{position:relative}
.set-input-unit input{padding-right:27px}
.set-input-unit em{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:calc(8px * var(--font-scale,1));font-style:normal;font-weight:800;
  pointer-events:none
}

.history-exercise-content{min-width:0}
.history-set-table{
  margin-top:6px;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  background:rgba(128,139,154,.025)
}
.history-set-row{
  display:grid;grid-template-columns:42px 1fr 1fr 1fr;gap:5px;align-items:center;
  padding:5px 7px;border-bottom:1px solid var(--line);font-size:calc(8.5px * var(--font-scale,1))
}
.history-set-row:last-child{border-bottom:0}
.history-set-row.head{background:rgba(125,88,223,.055);color:var(--muted);font-size:calc(7.5px * var(--font-scale,1));font-weight:900;text-transform:uppercase}
.history-set-row strong{color:#7652d7}
.history-set-row span{color:var(--text)}
body.theme-v5-dark .history-set-table{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.06)}
body.theme-v5-dark .history-set-row{border-color:rgba(255,255,255,.06)}
body.theme-v5-dark .history-set-row.head{background:rgba(141,99,255,.07)}
body.theme-v5-dark .history-set-row strong{color:#bea6ff}

@media(max-width:700px){
  .structured-log{margin-left:0}
}
@media(max-width:430px){
  .set-log-row{grid-template-columns:38px 1.15fr .8fr .65fr;gap:4px;padding:6px 5px}
  .set-log-row input{padding-left:5px;padding-right:5px}
  .set-input-unit input{padding-right:23px}
  .set-input-unit em{right:5px}
  .structured-log-head{align-items:flex-end}
}


/* ============================================================
   V21 – Explicit training session lifecycle
   ============================================================ */
.session-state-card{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:11px;align-items:center;
  margin:12px 0;padding:12px;border-radius:18px;background:var(--card);
  border:1px solid var(--line);box-shadow:0 7px 22px rgba(16,47,82,.055)
}
.session-state-card.ready{border-color:rgba(125,88,223,.16);background:linear-gradient(145deg,#faf8ff,#fff)}
.session-state-card.active{border-color:rgba(42,111,178,.15)}
.session-state-card.saved{border-color:rgba(21,116,92,.16)}
body.theme-v5-dark .session-state-card{background:#101a2a;border-color:rgba(255,255,255,.07);box-shadow:0 12px 28px rgba(0,0,0,.20)}
body.theme-v5-dark .session-state-card.ready{background:linear-gradient(145deg,rgba(141,99,255,.09),#101a2a);border-color:rgba(141,99,255,.16)}
body.theme-v5-dark .session-state-card.saved{border-color:rgba(88,212,159,.14)}

.session-state-icon{
  width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-size:17px;font-weight:950
}
.session-state-card.active .session-state-icon{background:rgba(42,111,178,.10);color:#2b6fae}
.session-state-card.saved .session-state-icon{background:rgba(21,116,92,.10);color:#14725a}
body.theme-v5-dark .session-state-icon{background:rgba(141,99,255,.13);color:#c2abff}
body.theme-v5-dark .session-state-card.active .session-state-icon{background:rgba(87,169,255,.10);color:#9dccff}
body.theme-v5-dark .session-state-card.saved .session-state-icon{background:rgba(88,212,159,.10);color:#9ee7c7}

.session-state-copy{min-width:0}
.session-state-copy small{
  display:block;color:#7652d7;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.07em
}
.session-state-card.active .session-state-copy small{color:#2b6fae}
.session-state-card.saved .session-state-copy small{color:#14725a}
body.theme-v5-dark .session-state-copy small{color:#b99cff}
body.theme-v5-dark .session-state-card.active .session-state-copy small{color:#9dccff}
body.theme-v5-dark .session-state-card.saved .session-state-copy small{color:#9ee7c7}
.session-state-copy strong{display:block;margin-top:1px;color:var(--text);font-size:calc(13px * var(--font-scale,1))}
.session-state-copy p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1));line-height:1.4}

.session-state-card>button,.session-state-actions button{
  border:1px solid rgba(125,88,223,.20);background:#7652d7;color:#fff;
  border-radius:11px;padding:8px 11px;font-size:calc(9.5px * var(--font-scale,1));font-weight:900;cursor:pointer;white-space:nowrap
}
.session-state-actions{display:flex;flex-direction:column;gap:5px}
.session-state-actions button.secondary{
  background:transparent;color:var(--muted);border-color:var(--line)
}
body.theme-v5-dark .session-state-actions button.secondary{color:#b5c0d3;border-color:rgba(255,255,255,.08)}

.structured-log.locked{
  display:grid;grid-template-columns:31px 1fr;gap:8px;align-items:center;
  padding:9px;border-top:1px solid var(--line);background:rgba(128,139,154,.025);border-radius:11px
}
.locked-log-icon{
  width:29px;height:29px;border-radius:9px;display:grid;place-items:center;
  background:rgba(128,139,154,.08);color:var(--muted);font-size:15px;font-weight:900
}
.structured-log.locked strong{display:block;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}
.structured-log.locked small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));line-height:1.35}

.exercise-check.locked{opacity:.42;filter:saturate(.35);cursor:not-allowed}

@media(max-width:600px){
  .session-state-card{grid-template-columns:40px 1fr;padding:11px}
  .session-state-icon{width:40px;height:40px;border-radius:13px}
  .session-state-card>button,.session-state-actions{grid-column:1/-1}
  .session-state-card>button{width:100%}
  .session-state-actions{display:grid;grid-template-columns:1fr 1fr}
  .session-state-actions button{width:100%}
}


/* ============================================================
   V22 – Training finish & session summary
   ============================================================ */
.training-finish-button{
  border:1px solid rgba(21,116,92,.20);
  background:linear-gradient(145deg,#19785f,#11664f);
  color:#fff;border-radius:11px;padding:7px 10px;
  font-size:calc(10px * var(--font-scale,1));font-weight:950;cursor:pointer
}
body.theme-v5-dark .training-finish-button{
  background:linear-gradient(145deg,#2a9a77,#19745b);
  border-color:rgba(88,212,159,.25);color:#fff
}

.training-completion-card{
  margin:12px 0;padding:14px;border-radius:21px;
  background:linear-gradient(145deg,#f2fbf7,#fbfffd);
  border:1px solid #d4eadf;box-shadow:0 10px 28px rgba(23,102,79,.08)
}
body.theme-v5-dark .training-completion-card{
  background:linear-gradient(145deg,rgba(88,212,159,.095),rgba(88,212,159,.035));
  border-color:rgba(88,212,159,.16);box-shadow:0 14px 32px rgba(0,0,0,.22)
}
.completion-head{display:grid;grid-template-columns:46px 1fr;gap:11px;align-items:center}
.completion-check{
  width:46px;height:46px;border-radius:15px;display:grid;place-items:center;
  background:#dff3e9;color:#14725a;font-size:22px;font-weight:950
}
body.theme-v5-dark .completion-check{background:rgba(88,212,159,.14);color:#a3e9ca}
.completion-head small{
  display:block;color:#14725a;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.08em
}
body.theme-v5-dark .completion-head small{color:#9ee7c7}
.completion-head strong{display:block;margin-top:2px;color:var(--text);font-size:calc(15px * var(--font-scale,1))}
.completion-head p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}

.completion-metrics{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px
}
.completion-metrics>div{
  min-width:0;padding:9px;border-radius:12px;background:rgba(255,255,255,.65);
  border:1px solid rgba(21,116,92,.08)
}
.completion-metrics small{
  display:block;color:var(--muted);font-size:calc(7.8px * var(--font-scale,1));
  font-weight:900;text-transform:uppercase;letter-spacing:.04em
}
.completion-metrics strong{
  display:block;margin-top:3px;color:var(--text);
  font-size:calc(12px * var(--font-scale,1));line-height:1.2
}
body.theme-v5-dark .completion-metrics>div{
  background:rgba(255,255,255,.035);border-color:rgba(88,212,159,.08)
}

.completion-progress{margin-top:11px;padding-top:10px;border-top:1px solid rgba(21,116,92,.10)}
.completion-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.completion-progress span{color:var(--muted);font-size:calc(9px * var(--font-scale,1));font-weight:850}
.completion-progress strong{color:#14725a;font-size:calc(10.5px * var(--font-scale,1))}
body.theme-v5-dark .completion-progress strong{color:#9ee7c7}

.completion-comparison{
  display:grid;grid-template-columns:31px 1fr;gap:8px;align-items:center;
  margin-top:10px;padding:9px;border-radius:12px;
  background:rgba(125,88,223,.045);border:1px solid rgba(125,88,223,.09)
}
.completion-comparison>span{
  width:29px;height:29px;border-radius:9px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-weight:950
}
.completion-comparison small{
  display:block;color:#7652d7;font-size:calc(7.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.05em
}
.completion-comparison strong{
  display:block;margin-top:2px;color:var(--text);font-size:calc(10px * var(--font-scale,1))
}
body.theme-v5-dark .completion-comparison{
  background:rgba(141,99,255,.055);border-color:rgba(141,99,255,.10)
}
body.theme-v5-dark .completion-comparison>span{background:rgba(141,99,255,.12);color:#c4adff}
body.theme-v5-dark .completion-comparison small{color:#b99cff}

.completion-volume-note{
  margin:8px 0 0;color:var(--muted);font-size:calc(8px * var(--font-scale,1));line-height:1.4
}

.history-session-metrics{
  display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:9px 0 3px
}
.history-session-metrics>span{
  min-width:0;padding:7px;border-radius:9px;background:rgba(128,139,154,.045);
  border:1px solid var(--line)
}
.history-session-metrics small{
  display:block;color:var(--muted);font-size:calc(7px * var(--font-scale,1));
  font-weight:900;text-transform:uppercase
}
.history-session-metrics strong{
  display:block;margin-top:2px;color:var(--text);font-size:calc(9px * var(--font-scale,1));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}

@media(max-width:520px){
  .completion-metrics{grid-template-columns:repeat(2,1fr)}
  .history-session-metrics{grid-template-columns:repeat(2,1fr)}
  .training-reset-actions{gap:6px}
  .training-finish-button{width:100%;text-align:center}
}


/* ============================================================
   V23 – Weekly training dashboard
   ============================================================ */
.weekly-training-dashboard{
  margin:12px 0;padding:14px;border-radius:21px;background:var(--card);
  border:1px solid rgba(125,88,223,.14);box-shadow:0 10px 28px rgba(16,47,82,.07)
}
body.theme-v5-dark .weekly-training-dashboard{
  background:#101a2a;border-color:rgba(141,99,255,.14);box-shadow:0 14px 32px rgba(0,0,0,.22)
}
.weekly-training-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.weekly-training-head small{
  display:block;color:#7652d7;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.07em
}
body.theme-v5-dark .weekly-training-head small{color:#b99cff}
.weekly-training-head strong{
  display:block;margin-top:2px;color:var(--text);font-size:calc(15px * var(--font-scale,1))
}
.weekly-training-head p{margin:3px 0 0;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))}
.weekly-percent{
  min-width:52px;height:52px;border-radius:17px;display:grid;place-items:center;
  background:linear-gradient(145deg,#eee8ff,#e3d9ff);color:#6846c9;
  font-size:calc(14px * var(--font-scale,1));font-weight:950
}
body.theme-v5-dark .weekly-percent{background:rgba(141,99,255,.14);color:#c5afff}
.weekly-progress{margin-top:10px}

.weekly-session-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}
.weekly-session-card{
  position:relative;min-width:0;border:1px solid var(--line);background:rgba(128,139,154,.025);
  border-radius:14px;padding:9px;text-align:left;color:var(--text);cursor:pointer
}
.weekly-session-card.done{background:rgba(21,116,92,.045);border-color:rgba(21,116,92,.11)}
.weekly-session-card.active{background:rgba(42,111,178,.045);border-color:rgba(42,111,178,.11)}
.weekly-session-card.today{background:rgba(125,88,223,.055);border-color:rgba(125,88,223,.13)}
.weekly-session-card.missed{background:rgba(197,54,50,.025);border-color:rgba(197,54,50,.08)}
body.theme-v5-dark .weekly-session-card{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.07)}
body.theme-v5-dark .weekly-session-card.done{background:rgba(88,212,159,.055);border-color:rgba(88,212,159,.11)}
body.theme-v5-dark .weekly-session-card.active{background:rgba(87,169,255,.055);border-color:rgba(87,169,255,.11)}
body.theme-v5-dark .weekly-session-card.today{background:rgba(141,99,255,.07);border-color:rgba(141,99,255,.13)}

.weekly-day{
  display:inline-grid;place-items:center;width:29px;height:24px;border-radius:8px;
  background:rgba(125,88,223,.08);color:#7652d7;font-size:calc(8.5px * var(--font-scale,1));font-weight:950
}
.weekly-session-card.done .weekly-day{background:rgba(21,116,92,.10);color:#14725a}
body.theme-v5-dark .weekly-day{background:rgba(141,99,255,.11);color:#bea7ff}
body.theme-v5-dark .weekly-session-card.done .weekly-day{background:rgba(88,212,159,.11);color:#9ee7c7}

.weekly-session-copy{display:block;margin-top:7px}
.weekly-session-copy small{display:block;color:var(--muted);font-size:calc(7.8px * var(--font-scale,1))}
.weekly-session-copy strong{display:block;margin-top:1px;color:var(--text);font-size:calc(15px * var(--font-scale,1))}
.weekly-session-copy em{
  display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));
  font-style:normal;font-weight:850
}
.weekly-session-card.done .weekly-session-copy em{color:#14725a}
body.theme-v5-dark .weekly-session-card.done .weekly-session-copy em{color:#9ee7c7}

.weekly-session-mark{
  position:absolute;top:8px;right:8px;width:23px;height:23px;border-radius:8px;
  display:grid;place-items:center;background:rgba(128,139,154,.07);color:var(--muted);
  font-size:11px;font-weight:950
}
.weekly-session-card.done .weekly-session-mark{background:rgba(21,116,92,.11);color:#14725a}
.weekly-session-card.active .weekly-session-mark{background:rgba(42,111,178,.10);color:#2b6fae}
.weekly-session-card.today .weekly-session-mark{background:rgba(125,88,223,.10);color:#7652d7}
body.theme-v5-dark .weekly-session-card.done .weekly-session-mark{background:rgba(88,212,159,.11);color:#9ee7c7}
body.theme-v5-dark .weekly-session-card.active .weekly-session-mark{background:rgba(87,169,255,.11);color:#9dccff}
body.theme-v5-dark .weekly-session-card.today .weekly-session-mark{background:rgba(141,99,255,.12);color:#c4adff}

.weekly-session-meta{
  display:block;margin-top:6px;padding-top:6px;border-top:1px solid var(--line);
  color:var(--muted);font-size:calc(7.5px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}

.next-training-card{
  display:grid;grid-template-columns:37px 1fr auto;gap:9px;align-items:center;
  margin-top:10px;padding:10px;border-radius:14px;
  background:linear-gradient(145deg,rgba(125,88,223,.065),rgba(125,88,223,.025));
  border:1px solid rgba(125,88,223,.10)
}
.next-training-icon{
  width:35px;height:35px;border-radius:11px;display:grid;place-items:center;
  background:rgba(125,88,223,.11);color:#7652d7;font-weight:950
}
.next-training-copy small{
  display:block;color:#7652d7;font-size:calc(7.8px * var(--font-scale,1));
  font-weight:950;letter-spacing:.05em
}
.next-training-copy strong{display:block;margin-top:1px;color:var(--text);font-size:calc(10.5px * var(--font-scale,1))}
.next-training-copy p{margin:2px 0 0;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
.next-training-card button{
  border:1px solid rgba(125,88,223,.18);background:#7652d7;color:#fff;
  border-radius:10px;padding:7px 9px;font-size:calc(8.5px * var(--font-scale,1));font-weight:900;cursor:pointer
}
body.theme-v5-dark .next-training-card{
  background:linear-gradient(145deg,rgba(141,99,255,.075),rgba(141,99,255,.025));
  border-color:rgba(141,99,255,.11)
}
body.theme-v5-dark .next-training-icon{background:rgba(141,99,255,.12);color:#c4adff}
body.theme-v5-dark .next-training-copy small{color:#b99cff}

.weekly-mini-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:9px
}
.weekly-mini-stats>div{
  min-width:0;padding:7px;border-radius:10px;background:rgba(128,139,154,.035);
  border:1px solid var(--line)
}
.weekly-mini-stats small{
  display:block;color:var(--muted);font-size:calc(7px * var(--font-scale,1));
  text-transform:uppercase;font-weight:900
}
.weekly-mini-stats strong{
  display:block;margin-top:2px;color:var(--text);
  font-size:calc(9.5px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}

@media(max-width:520px){
  .weekly-training-dashboard{padding:12px}
  .weekly-session-grid{gap:5px}
  .weekly-session-card{padding:8px 6px}
  .weekly-mini-stats{grid-template-columns:repeat(2,1fr)}
  .next-training-card{grid-template-columns:34px 1fr}
  .next-training-card button{grid-column:1/-1;width:100%}
}


/* ============================================================
   V24 – 6-week progress analytics
   ============================================================ */
.progress-analytics-card{
  margin:12px 0;padding:14px;border-radius:21px;background:var(--card);
  border:1px solid var(--line);box-shadow:0 9px 25px rgba(16,47,82,.055)
}
body.theme-v5-dark .progress-analytics-card{
  background:#0f1929;border-color:rgba(255,255,255,.07);box-shadow:0 13px 30px rgba(0,0,0,.20)
}
.progress-analytics-head small{
  display:block;color:#7652d7;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:950;letter-spacing:.07em
}
body.theme-v5-dark .progress-analytics-head small{color:#b99cff}
.progress-analytics-head strong{
  display:block;margin-top:2px;color:var(--text);font-size:calc(15px * var(--font-scale,1))
}
.progress-analytics-head p{
  margin:3px 0 0;color:var(--muted);font-size:calc(9.5px * var(--font-scale,1))
}

.progress-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}
.progress-kpis>div{
  min-width:0;padding:9px;border-radius:12px;background:rgba(128,139,154,.035);border:1px solid var(--line)
}
.progress-kpis small{
  display:block;color:var(--muted);font-size:calc(7.5px * var(--font-scale,1));
  font-weight:900;text-transform:uppercase;letter-spacing:.04em
}
.progress-kpis strong{
  display:block;margin-top:3px;color:var(--text);font-size:calc(13px * var(--font-scale,1))
}
.progress-kpis span{
  display:block;margin-top:2px;color:var(--muted);font-size:calc(8px * var(--font-scale,1));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.progress-kpis .up strong{color:#14725a}.progress-kpis .down strong{color:#b63631}
body.theme-v5-dark .progress-kpis .up strong{color:#9ee7c7}
body.theme-v5-dark .progress-kpis .down strong{color:#ffaaa4}

.analytics-details{margin-top:9px;border-top:1px solid var(--line);padding-top:8px}
.analytics-details>summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;
  color:var(--text);cursor:pointer
}
.analytics-details>summary::-webkit-details-marker{display:none}
.analytics-details>summary b{display:block;font-size:calc(10px * var(--font-scale,1))}
.analytics-details>summary small{display:block;margin-top:1px;color:var(--muted);font-size:calc(8px * var(--font-scale,1))}
.analytics-details[open]>summary .chev{transform:rotate(90deg)}
.analytics-body{padding-top:11px}

.six-week-chart{
  height:120px;display:grid;grid-template-columns:repeat(6,1fr);gap:5px;align-items:end;
  padding:9px 8px 5px;border-radius:14px;background:rgba(128,139,154,.03);border:1px solid var(--line)
}
.week-column{min-width:0;text-align:center}
.week-bars{height:70px;display:flex;gap:3px;align-items:end;justify-content:center}
.week-bars i{display:block;width:10px;border-radius:4px 4px 2px 2px}
.week-bars .volume-bar{background:rgba(125,88,223,.72)}
.week-bars .session-bar{background:rgba(21,116,92,.65)}
.week-column.current .volume-bar{background:#7652d7}
.week-column.current .session-bar{background:#14725a}
.week-column strong{display:block;margin-top:3px;color:var(--text);font-size:calc(8.5px * var(--font-scale,1))}
.week-column small{display:block;margin-top:1px;color:var(--muted);font-size:calc(7px * var(--font-scale,1));white-space:nowrap}
body.theme-v5-dark .week-bars .volume-bar{background:rgba(185,156,255,.68)}
body.theme-v5-dark .week-bars .session-bar{background:rgba(158,231,199,.60)}
body.theme-v5-dark .week-column.current .volume-bar{background:#b99cff}
body.theme-v5-dark .week-column.current .session-bar{background:#9ee7c7}

.chart-legend{display:flex;gap:12px;justify-content:center;margin-top:6px}
.chart-legend span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:calc(7.5px * var(--font-scale,1))}
.chart-legend i{width:8px;height:8px;border-radius:3px;display:block}
.legend-volume{background:#7652d7}.legend-session{background:#14725a}
body.theme-v5-dark .legend-volume{background:#b99cff}body.theme-v5-dark .legend-session{background:#9ee7c7}

.strength-section{margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.strength-head strong{display:block;color:var(--text);font-size:calc(10.5px * var(--font-scale,1))}
.strength-head small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8px * var(--font-scale,1));line-height:1.35}
.strength-list{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.strength-row{
  display:grid;grid-template-columns:minmax(0,1fr) 70px auto;gap:8px;align-items:center;
  padding:8px;border-radius:11px;background:rgba(128,139,154,.03);border:1px solid var(--line)
}
.strength-copy{min-width:0}
.strength-copy strong{display:block;color:var(--text);font-size:calc(9.5px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strength-copy small{display:block;margin-top:2px;color:var(--muted);font-size:calc(7.8px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strength-spark{height:50px;display:flex;gap:3px;align-items:end;justify-content:flex-end}
.strength-spark i{display:block;width:7px;border-radius:3px 3px 1px 1px;background:rgba(125,88,223,.50)}
body.theme-v5-dark .strength-spark i{background:rgba(185,156,255,.55)}
.strength-delta{
  min-width:44px;text-align:center;padding:5px 6px;border-radius:9px;
  background:rgba(128,139,154,.06);color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));font-weight:950
}
.strength-delta.up{background:rgba(21,116,92,.09);color:#14725a}
.strength-delta.down{background:rgba(197,54,50,.07);color:#b63631}
body.theme-v5-dark .strength-delta.up{background:rgba(88,212,159,.10);color:#9ee7c7}
body.theme-v5-dark .strength-delta.down{background:rgba(255,107,107,.09);color:#ffaaa4}

.strength-empty{
  display:grid;grid-template-columns:31px 1fr;gap:8px;align-items:start;margin-top:8px;
  padding:9px;border-radius:11px;background:rgba(128,139,154,.03);border:1px solid var(--line)
}
.strength-empty span{
  width:29px;height:29px;border-radius:9px;display:grid;place-items:center;
  background:rgba(128,139,154,.08);color:var(--muted);font-weight:900
}
.strength-empty p{margin:1px 0 0;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));line-height:1.4}

@media(max-width:520px){
  .progress-analytics-card{padding:12px}
  .progress-kpis{grid-template-columns:1fr 1fr}
  .progress-kpis>div:last-child{grid-column:1/-1}
  .strength-row{grid-template-columns:minmax(0,1fr) 55px auto;gap:5px}
  .strength-spark{width:55px}
}


/* ============================================================
   V25 – Cleaner 5-tab information architecture
   ============================================================ */
.bottom-nav-inner{grid-template-columns:repeat(5,1fr)!important;gap:3px!important}
.nav-btn{
  min-width:0!important;
  padding:6px 3px 5px!important;
  font-size:calc(9.5px * var(--font-scale,1))!important
}
.nav-btn svg{width:21px!important;height:21px!important;margin-bottom:3px!important}

.today-details-explorer{
  margin:13px 0 2px;background:var(--card);border:1px solid var(--line);
  border-radius:19px;overflow:hidden;box-shadow:0 8px 23px rgba(16,47,82,.05)
}
body.theme-v5-dark .today-details-explorer{
  background:#0f1929;border-color:rgba(255,255,255,.07);box-shadow:0 12px 28px rgba(0,0,0,.19)
}
.today-details-explorer>summary{
  list-style:none;display:grid;grid-template-columns:38px 1fr 20px;gap:9px;align-items:center;
  padding:12px;cursor:pointer
}
.today-details-explorer>summary::-webkit-details-marker{display:none}
.today-details-explorer[open]>summary{border-bottom:1px solid var(--line)}
.today-details-explorer[open]>summary .chev{transform:rotate(90deg)}
.today-details-icon{
  width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  background:rgba(125,88,223,.09);color:#7652d7;font-size:18px;font-weight:950
}
body.theme-v5-dark .today-details-icon{background:rgba(141,99,255,.12);color:#c4adff}
.today-details-explorer>summary strong{display:block;color:var(--text);font-size:calc(11.5px * var(--font-scale,1))}
.today-details-explorer>summary small{display:block;margin-top:2px;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));line-height:1.3}
.today-details-content{padding:11px}
.today-detail-search{position:relative;margin-bottom:9px}
.today-detail-search input{
  width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;
  padding:10px 38px 10px 11px;background:#f8fafc;color:var(--text);
  font-size:calc(10.5px * var(--font-scale,1));outline:none
}
.today-detail-search input:focus{background:#fff;border-color:#9e83ee;box-shadow:0 0 0 3px rgba(125,88,223,.08)}
.today-detail-search button{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border:0;border-radius:9px;background:rgba(128,139,154,.08);
  color:var(--muted);font-size:18px;cursor:pointer
}
body.theme-v5-dark .today-detail-search input{background:#0d1625;color:#f4f7ff;border-color:rgba(255,255,255,.08)}
body.theme-v5-dark .today-detail-search input:focus{background:#111b2c;border-color:#8d63ff}

.more-shortcuts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:11px 0 13px
}
.more-shortcuts button{
  border:1px solid var(--line);background:var(--card);color:var(--navy);
  border-radius:12px;padding:9px 5px;font-size:calc(8.5px * var(--font-scale,1));
  font-weight:900;cursor:pointer
}
body.theme-v5-dark .more-shortcuts button{
  background:#111a2a;color:#cdbdff;border-color:rgba(255,255,255,.07)
}

@media(max-width:430px){
  .bottom-nav{padding-left:6px!important;padding-right:6px!important}
  .nav-btn{font-size:calc(8.7px * var(--font-scale,1))!important;padding-top:6px!important}
  .nav-btn svg{width:20px!important;height:20px!important;margin-bottom:2px!important}
  .more-shortcuts{grid-template-columns:1fr 1fr}
}
@media(max-width:360px){
  .nav-btn{font-size:calc(8.1px * var(--font-scale,1))!important}
  .nav-btn svg{width:19px!important;height:19px!important}
}


/* ============================================================
   V26 – Training: Heute | Fortschritt | Plan
   ============================================================ */
.training-hero-compact{padding-bottom:13px!important}
.training-subnav{
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
  margin:10px 0 13px;padding:4px;border-radius:16px;
  background:rgba(24,59,99,.055);border:1px solid var(--line);
  position:sticky;top:58px;z-index:12;backdrop-filter:blur(12px)
}
body.theme-v5-dark .training-subnav{
  background:rgba(9,17,29,.88);border-color:rgba(255,255,255,.07)
}
.training-subnav-btn{
  min-width:0;border:0;background:transparent;color:var(--muted);
  border-radius:12px;padding:8px 5px;cursor:pointer;text-align:center
}
.training-subnav-btn strong{
  display:block;font-size:calc(10.5px * var(--font-scale,1));font-weight:950
}
.training-subnav-btn small{
  display:block;margin-top:1px;font-size:calc(7.5px * var(--font-scale,1));font-weight:750
}
.training-subnav-btn.active{
  background:var(--card);color:#7652d7;box-shadow:0 5px 15px rgba(16,47,82,.08)
}
body.theme-v5-dark .training-subnav-btn.active{
  background:#172236;color:#c5afff;box-shadow:0 7px 18px rgba(0,0,0,.22)
}
.training-subview-content{animation:trainingSubFade .16s ease-out}
@keyframes trainingSubFade{from{opacity:.6;transform:translateY(2px)}to{opacity:1;transform:none}}

.training-today-head{margin-top:15px}
.training-progress-session-select{
  margin-top:13px;padding:12px;border-radius:18px;
  background:var(--card);border:1px solid var(--line)
}
body.theme-v5-dark .training-progress-session-select{
  background:#0f1929;border-color:rgba(255,255,255,.07)
}
.training-progress-session-select .training-session-tabs{margin:9px 0 0}
.compact-section-head{margin:0!important}
.compact-section-head h2{font-size:calc(13px * var(--font-scale,1))!important}
.compact-section-head p{font-size:calc(9px * var(--font-scale,1))!important}

@media(max-width:520px){
  .training-subnav{top:54px;margin-left:-1px;margin-right:-1px}
  .training-subnav-btn{padding:7px 3px}
  .training-subnav-btn strong{font-size:calc(10px * var(--font-scale,1))}
  .training-subnav-btn small{font-size:calc(7px * var(--font-scale,1))}
}


/* ============================================================
   V27 – Essen & Produkte compact subviews
   ============================================================ */
.compact-subnav{
  display:grid;gap:4px;margin:10px 0 13px;padding:4px;border-radius:16px;
  background:rgba(24,59,99,.055);border:1px solid var(--line);
  position:sticky;top:58px;z-index:11;backdrop-filter:blur(12px)
}
.meal-subnav{grid-template-columns:1fr 1fr}
.product-subnav{grid-template-columns:repeat(3,1fr)}
body.theme-v5-dark .compact-subnav{
  background:rgba(9,17,29,.88);border-color:rgba(255,255,255,.07)
}
.compact-subnav>button{
  min-width:0;border:0;background:transparent;color:var(--muted);
  border-radius:12px;padding:8px 5px;cursor:pointer;text-align:center
}
.compact-subnav>button strong{display:block;font-size:calc(10px * var(--font-scale,1));font-weight:950}
.compact-subnav>button small{display:block;margin-top:1px;font-size:calc(7.2px * var(--font-scale,1));font-weight:750}
.compact-subnav>button.active{
  background:var(--card);color:#7652d7;box-shadow:0 5px 15px rgba(16,47,82,.08)
}
body.theme-v5-dark .compact-subnav>button.active{
  background:#172236;color:#c5afff;box-shadow:0 7px 18px rgba(0,0,0,.22)
}
.meal-subview-content,.product-subview-content{animation:trainingSubFade .16s ease-out}

/* Essen */
.meal-day-head{
  display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;
  margin-bottom:9px;padding:10px 11px;border-radius:15px;
  background:var(--card);border:1px solid var(--line)
}
.meal-day-head small,.shopping-view-head small{
  display:block;color:#7652d7;font-size:calc(8px * var(--font-scale,1));font-weight:950;letter-spacing:.06em
}
.meal-day-head strong,.shopping-view-head strong{
  display:block;margin-top:1px;color:var(--text);font-size:calc(13px * var(--font-scale,1))
}
.meal-day-head p,.shopping-view-head p{margin:2px 0 0;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1))}
.meal-day-head button{
  border:1px solid rgba(125,88,223,.15);background:rgba(125,88,223,.07);color:#7652d7;
  border-radius:10px;padding:7px 9px;font-size:calc(8.5px * var(--font-scale,1));font-weight:900
}
body.theme-v5-dark .meal-day-head button{background:rgba(141,99,255,.09);color:#c5afff;border-color:rgba(141,99,255,.13)}

.meal-list{display:flex;flex-direction:column;gap:7px}
.meal-card-compact{
  display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start;
  margin-bottom:0!important;padding:10px!important
}
.meal-index{
  width:32px;height:32px;border-radius:10px;display:grid;place-items:center;
  background:rgba(125,88,223,.08);color:#7652d7;font-size:calc(10px * var(--font-scale,1));font-weight:950
}
body.theme-v5-dark .meal-index{background:rgba(141,99,255,.10);color:#c4adff}
.meal-card-compact .meal-main{min-width:0}
.meal-card-compact .meal-top{grid-template-columns:82px 1fr!important}
.meal-card-compact .meal-desc{margin:5px 0 0!important;font-size:calc(11.5px * var(--font-scale,1))!important;line-height:1.4}

.meal-goal-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.meal-goal-summary>div{
  padding:11px;border-radius:14px;background:var(--card);border:1px solid var(--line)
}
.meal-goal-summary small{
  display:block;color:var(--muted);font-size:calc(8px * var(--font-scale,1));font-weight:900;text-transform:uppercase
}
.meal-goal-summary strong{
  display:block;margin-top:3px;color:var(--text);font-size:calc(12px * var(--font-scale,1))
}
.meal-rule-panel{
  margin-top:8px;background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden
}
.meal-rule-panel>summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:11px;cursor:pointer
}
.meal-rule-panel>summary::-webkit-details-marker{display:none}
.meal-rule-panel[open]>summary{border-bottom:1px solid var(--line)}
.meal-rule-panel[open]>summary .chev{transform:rotate(90deg)}
.meal-rule-panel summary strong{display:block;color:var(--text);font-size:calc(10.5px * var(--font-scale,1))}
.meal-rule-panel summary small{display:block;margin-top:1px;color:var(--muted);font-size:calc(8px * var(--font-scale,1))}
.meal-rule-body{padding:10px}
.meal-rule-body>p{margin:0;color:var(--muted);font-size:calc(10px * var(--font-scale,1));line-height:1.5}
.meal-goal-note{
  display:grid;grid-template-columns:25px 1fr;gap:7px;margin-top:9px;padding:9px;
  border-radius:12px;background:rgba(125,88,223,.04);border:1px solid rgba(125,88,223,.08)
}
.meal-goal-note>span{
  width:23px;height:23px;border-radius:50%;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-size:10px;font-weight:950
}
.meal-goal-note p{margin:1px 0 0;color:var(--muted);font-size:calc(8.5px * var(--font-scale,1));line-height:1.4}

/* Produkte */
.compact-inventory-stats{margin-bottom:8px!important}
.inventory-section-head{margin-top:12px!important}
.inventory-manager{display:flex;flex-direction:column;gap:7px}
.inventory-category{
  background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden
}
.inventory-category>summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;cursor:pointer
}
.inventory-category>summary::-webkit-details-marker{display:none}
.inventory-category[open]>summary{border-bottom:1px solid var(--line)}
.inventory-category[open]>summary .chev{transform:rotate(90deg)}
.inventory-category summary strong{display:block;color:var(--text);font-size:calc(10.5px * var(--font-scale,1))}
.inventory-category summary small{display:block;margin-top:1px;color:var(--muted);font-size:calc(8px * var(--font-scale,1))}
.compact-inventory-list{padding:4px 9px}
.compact-inventory-row{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto 28px;gap:7px;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--line)
}
.compact-inventory-row:last-child{border-bottom:0}
.compact-product-icon{
  width:31px;height:31px;border-radius:9px;display:grid;place-items:center;
  background:rgba(125,88,223,.07);color:#7652d7
}
.compact-product-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
body.theme-v5-dark .compact-product-icon{background:rgba(141,99,255,.09);color:#c4adff}
.compact-inventory-copy{min-width:0}
.compact-inventory-copy strong{
  display:block;color:var(--text);font-size:calc(9.5px * var(--font-scale,1));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.compact-inventory-copy small{
  display:block;margin-top:1px;color:var(--muted);font-size:calc(7.7px * var(--font-scale,1));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.stock-mini.unset{background:rgba(128,139,154,.07);color:var(--muted)}
.compact-stock-edit{
  width:27px;height:27px;border-radius:9px;border:1px solid var(--line);
  background:transparent;color:var(--muted);font-size:17px;cursor:pointer
}
.compact-inventory-modal{margin-top:10px}

.shopping-view-head{
  margin-bottom:9px;padding:11px;border-radius:15px;background:var(--card);border:1px solid var(--line)
}
.shopping-back-stock{width:100%;margin-top:8px}

@media(max-width:520px){
  .compact-subnav{top:54px}
  .product-subnav>button{padding-left:2px;padding-right:2px}
  .product-subnav>button strong{font-size:calc(9.5px * var(--font-scale,1))}
  .product-subnav>button small{font-size:calc(6.8px * var(--font-scale,1))}
  .meal-card-compact .meal-top{grid-template-columns:72px 1fr!important}
  .compact-inventory-row{grid-template-columns:30px minmax(0,1fr) auto 26px;gap:5px}
}
@media(max-width:370px){
  .product-subnav>button small{display:none}
  .product-subnav>button{padding-top:9px;padding-bottom:9px}
}


/* ============================================================
   V28 – iPhone / Mobile Polish
   Keine Funktionslogik geändert.
   ============================================================ */

/* Long labels and user-entered text may never force horizontal scrolling. */
.view,
.top-card,
.card,
.block,
.exercise-card,
.product-card,
.meal-card,
.rule-card,
.training-history-card,
.today-details-explorer,
.weekly-training-dashboard,
.progress-analytics-card,
.training-program-card,
.session-state-card,
.training-completion-card,
.inventory-category{
  min-width:0;
  overflow-wrap:anywhere;
}
button, input, textarea, select{max-width:100%}

/* Header controls remain usable even at 130% content font size. */
.header-actions button,
.theme-toggle,
.font-toggle{
  flex:0 0 auto;
  font-size:13px!important;
  line-height:1!important;
}
.header-actions{gap:6px!important}

/* Bottom navigation is UI chrome: keep it readable but do not scale it 130%. */
.bottom-nav{
  padding-bottom:max(5px,env(safe-area-inset-bottom))!important;
}
.bottom-nav-inner{
  min-height:58px;
  align-items:stretch;
}
.nav-btn{
  min-height:54px!important;
  font-size:clamp(8px,2.35vw,10px)!important;
  line-height:1.05!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nav-btn svg{
  flex:0 0 auto;
  width:20px!important;
  height:20px!important;
}

/* Secondary tab bars are UI controls, not article text. */
.training-subnav-btn strong,
.compact-subnav>button strong{
  font-size:clamp(9px,2.55vw,11px)!important;
}
.training-subnav-btn small,
.compact-subnav>button small{
  font-size:clamp(6.8px,1.95vw,8px)!important;
}
.training-subnav,
.compact-subnav{
  scrollbar-width:none;
}
.training-subnav::-webkit-scrollbar,
.compact-subnav::-webkit-scrollbar{display:none}

/* Comfortable touch targets for the controls used frequently on iPhone. */
.soft-button,
.training-save-button,
.training-finish-button,
.training-values-clear,
.execution-button,
.now-detail-button,
.next-training-card button,
.meal-day-head button,
.shopping-back-stock,
.session-state-card>button,
.session-state-actions button{
  min-height:44px;
}
.product-chip{
  min-height:38px;
}
.exercise-check,
.task-check{
  min-width:40px;
  min-height:40px;
}
.compact-stock-edit,
.set-count-controls button{
  min-width:34px;
  min-height:34px;
}

/* iOS Safari zooms form controls whose text is below 16px. */
@media(max-width:700px){
  input[type="text"],
  input[type="search"],
  input[type="number"],
  input[type="date"],
  input:not([type]),
  textarea,
  select,
  .set-log-row input,
  .today-detail-search input,
  .product-search input,
  .training-start-form input,
  .training-start-edit input{
    font-size:16px!important;
  }
}

/* Keep oversized content-font settings from blowing up small status chrome. */
.stock-mini,
.history-count,
.program-week-badge,
.weekly-percent,
.now-kicker,
.program-kicker,
.hero-kicker,
.product-status,
.pill,
.badge{
  font-size:clamp(8px,2.4vw,12px)!important;
}

/* Cards and tables fit narrow portrait screens without horizontal overflow. */
.set-log-row,
.history-set-row,
.weekly-session-grid,
.weekly-mini-stats,
.completion-metrics,
.program-prescription,
.progress-kpis,
.product-stats{
  min-width:0;
}
.set-log-row>*,
.history-set-row>*,
.weekly-session-card>*,
.progress-kpis>div,
.product-stat{
  min-width:0;
}

/* More breathing room above fixed bottom navigation on devices with a home indicator. */
body{
  padding-bottom:calc(78px + env(safe-area-inset-bottom))!important;
}

/* Compact layout for normal iPhone widths. */
@media(max-width:430px){
  .app-header,
  header{
    min-height:auto!important;
  }
  .header-inner{
    gap:8px!important;
  }
  .title,
  #headerTitle{
    font-size:clamp(15px,4.4vw,19px)!important;
    line-height:1.1!important;
  }
  .subtitle,
  #headerSubtitle{
    font-size:clamp(8px,2.4vw,10px)!important;
    line-height:1.25!important;
  }

  .top-card{
    padding:12px!important;
    border-radius:18px!important;
  }
  .top-card>strong{
    font-size:clamp(16px,4.8vw,20px)!important;
  }
  .top-card>p{
    line-height:1.4!important;
  }

  .training-subnav,
  .compact-subnav{
    top:52px!important;
    margin-top:8px!important;
    margin-bottom:10px!important;
  }

  .weekly-session-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .weekly-session-card{
    min-width:0!important;
  }

  .set-log-row{
    grid-template-columns:36px minmax(0,1.15fr) minmax(52px,.8fr) minmax(46px,.65fr)!important;
  }
  .set-log-row label>span{
    font-size:8px!important;
  }

  .compact-inventory-row{
    grid-template-columns:30px minmax(0,1fr) auto 32px!important;
  }
  .stock-mini{
    max-width:84px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .product-subnav>button small{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* Very narrow iPhones: protect navigation and dense workout tables. */
@media(max-width:370px){
  .bottom-nav{padding-left:3px!important;padding-right:3px!important}
  .bottom-nav-inner{gap:1px!important}
  .nav-btn{
    padding-left:1px!important;
    padding-right:1px!important;
    font-size:7.8px!important;
  }
  .nav-btn svg{width:18px!important;height:18px!important}

  .training-subnav,
  .compact-subnav{
    gap:2px!important;
    padding:3px!important;
  }
  .training-subnav-btn,
  .compact-subnav>button{
    padding-left:2px!important;
    padding-right:2px!important;
  }

  .set-log-row{
    grid-template-columns:33px minmax(0,1fr) 50px 44px!important;
    gap:3px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .set-number{width:33px!important}
}

/* Landscape phones: don't let the sticky subnavigation consume too much height. */
@media(max-height:500px) and (orientation:landscape){
  .training-subnav,
  .compact-subnav{
    position:relative!important;
    top:auto!important;
  }
}

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

/* Prevent accidental text selection on navigation/touch controls while leaving content selectable. */
.bottom-nav,
.training-subnav,
.compact-subnav,
.exercise-check,
.task-check,
.set-count-controls{
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}


/* ============================================================
   V30 – Encrypted Cloud Sync
   ============================================================ */
.header-status-wrap{display:flex;align-items:center;gap:7px;min-width:0}
.cloud-status-pill{
  min-height:34px;border-radius:999px;padding:6px 9px;border:1px solid var(--line);
  background:var(--card);color:var(--muted);display:flex;align-items:center;gap:5px;
  font-size:9px;font-weight:900;cursor:pointer;white-space:nowrap
}
.cloud-status-pill span{font-size:12px}
.cloud-status-pill.synced{color:#14725a;background:rgba(21,116,92,.08);border-color:rgba(21,116,92,.12)}
.cloud-status-pill.syncing,.cloud-status-pill.waiting{color:#7652d7;background:rgba(125,88,223,.08);border-color:rgba(125,88,223,.12)}
.cloud-status-pill.offline{color:#8b6a21;background:rgba(192,137,28,.08);border-color:rgba(192,137,28,.12)}
.cloud-status-pill.error,.cloud-status-pill.conflict{color:#b63631;background:rgba(197,54,50,.08);border-color:rgba(197,54,50,.12)}
body.theme-v5-dark .cloud-status-pill{background:#101a2a;border-color:rgba(255,255,255,.07)}
body.theme-v5-dark .cloud-status-pill.synced{color:#9ee7c7;background:rgba(88,212,159,.09);border-color:rgba(88,212,159,.12)}
body.theme-v5-dark .cloud-status-pill.syncing,body.theme-v5-dark .cloud-status-pill.waiting{color:#c4adff;background:rgba(141,99,255,.10);border-color:rgba(141,99,255,.13)}
body.theme-v5-dark .cloud-status-pill.error,body.theme-v5-dark .cloud-status-pill.conflict{color:#ffaaa4;background:rgba(255,107,107,.09);border-color:rgba(255,107,107,.12)}

.cloud-sync-card{
  margin:11px 0 13px;padding:13px;border-radius:19px;background:var(--card);
  border:1px solid rgba(125,88,223,.14);box-shadow:0 9px 25px rgba(16,47,82,.055)
}
body.theme-v5-dark .cloud-sync-card{background:#0f1929;border-color:rgba(141,99,255,.14);box-shadow:0 13px 30px rgba(0,0,0,.20)}
.cloud-sync-head{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start}
.cloud-sync-logo{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);font-size:19px
}
.cloud-sync-head small{display:block;color:#7652d7;font-size:8px;font-weight:950;letter-spacing:.07em}
body.theme-v5-dark .cloud-sync-head small{color:#b99cff}
.cloud-sync-head strong{display:block;margin-top:2px;color:var(--text);font-size:13px}
.cloud-sync-head p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.4}

.cloud-panel-status{
  display:grid;grid-template-columns:31px 1fr;gap:8px;align-items:center;
  margin-top:10px;padding:9px;border-radius:12px;background:rgba(128,139,154,.04);border:1px solid var(--line)
}
.cloud-panel-status>span{
  width:29px;height:29px;border-radius:9px;display:grid;place-items:center;
  background:rgba(128,139,154,.08);font-weight:950
}
.cloud-panel-status strong{display:block;color:var(--text);font-size:10px}
.cloud-panel-status small{display:block;margin-top:1px;color:var(--muted);font-size:8px;line-height:1.35}
.cloud-panel-status.synced>span{background:rgba(21,116,92,.10);color:#14725a}
.cloud-panel-status.syncing>span,.cloud-panel-status.waiting>span{background:rgba(125,88,223,.10);color:#7652d7}
.cloud-panel-status.error>span,.cloud-panel-status.conflict>span{background:rgba(197,54,50,.09);color:#b63631}
body.theme-v5-dark .cloud-panel-status.synced>span{background:rgba(88,212,159,.10);color:#9ee7c7}
body.theme-v5-dark .cloud-panel-status.syncing>span,body.theme-v5-dark .cloud-panel-status.waiting>span{background:rgba(141,99,255,.12);color:#c4adff}
body.theme-v5-dark .cloud-panel-status.error>span,body.theme-v5-dark .cloud-panel-status.conflict>span{background:rgba(255,107,107,.10);color:#ffaaa4}

.cloud-key-block{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.cloud-key-block label>span{display:block;color:var(--text);font-size:10px;font-weight:950}
.cloud-key-block label>small{display:block;margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35}
.cloud-key-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:7px}
.cloud-key-row input{
  width:100%;box-sizing:border-box;min-height:43px;border:1px solid var(--line);border-radius:11px;
  padding:8px 10px;background:#f8fafc;color:var(--text);font-size:14px;outline:none
}
.cloud-key-row button,.cloud-key-actions button{
  border:1px solid var(--line);background:var(--card);color:var(--navy);
  border-radius:11px;padding:8px 10px;font-size:9px;font-weight:900;cursor:pointer
}
body.theme-v5-dark .cloud-key-row input{background:#0d1625;color:#f4f7ff;border-color:rgba(255,255,255,.08)}
body.theme-v5-dark .cloud-key-row button,body.theme-v5-dark .cloud-key-actions button{background:#111a2a;color:#cdbdff;border-color:rgba(255,255,255,.08)}
.cloud-key-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}

.cloud-first-setup{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
.cloud-setup-choice{
  display:grid;grid-template-columns:28px 1fr;gap:7px;padding:9px;border-radius:12px;
  background:rgba(128,139,154,.035);border:1px solid var(--line)
}
.cloud-setup-choice>span{
  width:27px;height:27px;border-radius:9px;display:grid;place-items:center;
  background:rgba(125,88,223,.10);color:#7652d7;font-weight:950
}
.cloud-setup-choice strong{display:block;color:var(--text);font-size:9.5px}
.cloud-setup-choice p{margin:2px 0 7px;color:var(--muted);font-size:8px;line-height:1.35}
.cloud-setup-choice button{
  min-height:38px;border:1px solid rgba(125,88,223,.18);background:#7652d7;color:#fff;
  border-radius:10px;padding:7px;font-size:8.5px;font-weight:900;cursor:pointer
}

.cloud-connected-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.cloud-connected-actions button{min-height:42px}
.cloud-connected-actions .danger-button{grid-column:1/-1}

.cloud-conflict-box{
  margin-top:9px;padding:10px;border-radius:12px;background:rgba(197,54,50,.05);
  border:1px solid rgba(197,54,50,.12)
}
.cloud-conflict-box strong{display:block;color:#b63631;font-size:10px}
.cloud-conflict-box p{margin:3px 0 8px;color:var(--muted);font-size:8.5px;line-height:1.4}
.cloud-conflict-box>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cloud-conflict-box button{
  min-height:40px;border-radius:10px;border:1px solid rgba(197,54,50,.13);
  background:var(--card);color:var(--text);font-size:8.5px;font-weight:900
}
body.theme-v5-dark .cloud-conflict-box strong{color:#ffaaa4}

.cloud-security-note,.cloud-live-note{
  display:grid;grid-template-columns:27px 1fr;gap:7px;margin-top:8px;padding:8px;
  border-radius:11px;background:rgba(128,139,154,.025);border:1px solid var(--line)
}
.cloud-security-note>span,.cloud-live-note>span{
  width:25px;height:25px;border-radius:8px;display:grid;place-items:center;
  background:rgba(128,139,154,.07);font-size:11px
}
.cloud-security-note p,.cloud-live-note p{margin:1px 0 0;color:var(--muted);font-size:8px;line-height:1.4}
.cloud-security-note strong{color:var(--text)}

@media(max-width:600px){
  .header-status-wrap{gap:5px}
  .cloud-status-pill{padding:5px 7px;min-height:32px}
  .cloud-status-pill strong{font-size:8px}
  .cloud-first-setup{grid-template-columns:1fr}
}
@media(max-width:430px){
  .cloud-key-row input{font-size:16px!important}
  .cloud-connected-actions{grid-template-columns:1fr}
  .cloud-connected-actions .danger-button{grid-column:auto}
}
