:root{
  --bg:#f4f6f8;--card:#fff;--text:#111827;--muted:#667085;--line:#e4e7ec;
  --green:#20c77a;--green-dark:#148d56;--dark:#07101d;--dark2:#0f1b2d;
  --soft:#eafaf2;--danger:#dc2626;--warn:#f59e0b;--blue:#2563eb;--shadow:0 14px 36px rgba(16,24,40,.10)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
body.dark{--bg:#07101d;--card:#101b2b;--text:#f8fafc;--muted:#9aa6b7;--line:#26354a;--soft:#123425;--shadow:0 14px 36px rgba(0,0,0,.30)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.boot{position:fixed;inset:0;z-index:100;background:var(--dark);display:grid;place-content:center;gap:22px;text-align:center;color:white}.logo-big{font-size:38px;font-weight:900;letter-spacing:1px}.logo-big span,.brand span{color:var(--green)}.spinner{width:42px;height:42px;border:4px solid #273449;border-top-color:var(--green);border-radius:50%;margin:auto;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-shell{min-height:100vh;background:linear-gradient(160deg,#07101d 0%,#10213a 55%,#123425 100%);padding:28px 18px;display:grid;place-items:center}.auth-card{width:min(100%,480px);background:rgba(255,255,255,.97);border-radius:28px;padding:26px;box-shadow:0 30px 70px rgba(0,0,0,.35)}.auth-card h1{margin:6px 0}.auth-card .logo-big{color:#101828}.auth-card .subline{color:#667085;margin:0 0 22px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#f2f4f7;border-radius:14px;padding:4px;margin-bottom:18px}.tabs button{border:0;background:transparent;padding:11px;border-radius:11px;font-weight:700}.tabs button.active{background:white;box-shadow:0 3px 10px rgba(0,0,0,.08)}
.field{margin:12px 0}.field label{display:block;font-weight:700;font-size:14px;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid #d0d5dd;background:white;color:#101828;border-radius:13px;padding:13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(32,199,122,.13)}.form-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;padding:10px 12px;border-radius:12px;font-size:14px}.form-note{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45}.password-meter{height:8px;border-radius:99px;background:#e5e7eb;overflow:hidden;margin-top:8px}.password-meter i{display:block;height:100%;width:0;background:var(--danger);transition:.2s}.password-hint{font-size:12px;color:#667085;margin-top:6px}.linkbtn{border:0;background:transparent;color:#0f766e;text-decoration:underline;padding:7px 0}.primary,.secondary,.danger-btn{border:0;border-radius:14px;padding:14px 18px;font-weight:800;font-size:16px}.primary{background:var(--green);color:#052518}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:var(--card);color:var(--text);border:1px solid var(--line)}.danger-btn{background:#fee2e2;color:#991b1b}.full{width:100%}
.onboard-shell{min-height:100vh;background:var(--bg);padding:18px}.onboard-card{max-width:720px;margin:auto;background:var(--card);border:1px solid var(--line);border-radius:26px;padding:20px;box-shadow:var(--shadow)}.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0 20px}.stepper i{height:7px;border-radius:99px;background:var(--line)}.stepper i.active{background:var(--green)}.onboard-card h1{margin:2px 0 4px}.onboard-card h2{margin:18px 0 8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.choice{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card);display:flex;gap:8px;align-items:center}.choice input{width:20px;height:20px}.range-row{display:grid;grid-template-columns:1fr 55px;gap:10px;align-items:center}.range-row output{font-weight:800;text-align:center;background:var(--soft);padding:8px;border-radius:10px}.actions-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.safety-box{background:#fff7ed;border:1px solid #fed7aa;padding:14px;border-radius:15px;color:#9a3412;line-height:1.5}.danger-box{background:#fef2f2;border:1px solid #fecaca;padding:14px;border-radius:15px;color:#991b1b;line-height:1.5}
.app{padding-bottom:88px}.top{height:78px;padding:16px 18px;background:var(--dark);color:white;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.brand{font-weight:900;font-size:25px;letter-spacing:1px}.sub{font-size:13px;color:#a9b4c5;margin-top:3px}.head-actions{display:flex;gap:8px}.iconbtn,.close{border:0;border-radius:12px;background:#1b2738;color:white;width:42px;height:42px;font-size:19px;display:grid;place-items:center}.avatar{border:0;width:42px;height:42px;border-radius:50%;background:var(--green);color:#052518;font-weight:900;font-size:16px}main{max-width:760px;margin:auto;padding:16px}.bottom{position:fixed;z-index:12;bottom:0;right:0;left:0;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.bottom button{border:0;background:transparent;color:var(--muted);font-size:22px}.bottom span{display:block;font-size:11px;margin-top:3px}.bottom .active{color:var(--green)}
.hero{background:linear-gradient(135deg,#07101d,#1c2c42);color:white;padding:22px;border-radius:24px;box-shadow:0 16px 40px rgba(4,12,25,.18);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(32,199,122,.13);left:-55px;bottom:-80px}.hero h1{font-size:28px;margin:0 0 5px;position:relative;z-index:1}.hero p{color:#c5d0df;margin:0 0 14px;position:relative;z-index:1}.hero .primary,.hero .secondary{position:relative;z-index:1}.hero .secondary{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.25)}.today-list{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 16px;position:relative;z-index:1}.chip{padding:7px 10px;background:rgba(255,255,255,.11);border-radius:99px;font-size:12px}.pill{display:inline-flex;align-items:center;padding:6px 9px;background:var(--soft);color:var(--green-dark);border-radius:99px;font-size:12px;font-weight:700;margin:0 0 6px 6px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.metric,.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px}.metric strong{display:block;font-size:24px}.metric small,.muted{color:var(--muted)}h2{font-size:20px;margin:22px 0 10px}.progress{height:10px;background:var(--line);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green)}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.notice{background:#eff6ff;color:#1e3a8a;border:1px solid #bfdbfe;border-radius:15px;padding:13px;margin:12px 0;line-height:1.45}.warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.success{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.tiny{font-size:12px;color:var(--muted)}
.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-head button{border:0;background:var(--card);color:var(--text);border-radius:12px;width:42px;height:42px}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week span{text-align:center;font-size:12px;color:var(--muted);padding:8px}.day{aspect-ratio:1;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;position:relative;font-weight:700}.day.has{border:2px solid #607087}.day.done{background:var(--soft);border-color:var(--green)}.day.today{box-shadow:inset 0 0 0 2px var(--green)}.day .v{position:absolute;left:4px;top:2px;color:var(--green)}.day .dot{position:absolute;bottom:5px;right:50%;width:5px;height:5px;background:var(--green);border-radius:50%}
.exercise{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:9px 0}.exercise img{width:90px;height:64px;object-fit:cover;border-radius:12px;background:white}.ex-icon{width:52px;height:52px;border-radius:14px;background:var(--soft);display:grid;place-items:center;font-size:25px}.exercise h3{margin:0 0 5px;font-size:16px}.exercise p{margin:0;font-size:13px;color:var(--muted)}.search{width:100%;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--text)}.barrow{display:grid;grid-template-columns:100px 1fr 40px;align-items:center;gap:8px;margin:12px 0}.bar{height:10px;background:var(--line);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}.toggle{display:flex;justify-content:space-between;align-items:center;gap:14px}.toggle input{width:22px;height:22px}.settings-list{display:grid;gap:10px}.version{display:flex;align-items:center;justify-content:space-between}.version b{font-size:18px}.spotify-frame{border:0;width:100%;height:152px;border-radius:15px;margin-top:10px;background:#111}
.sheet{position:fixed;z-index:30;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:flex-end}.sheet.hidden{display:none}.sheet-card{background:var(--bg);width:100%;max-height:96vh;overflow:auto;border-radius:25px 25px 0 0;padding:18px;overscroll-behavior:contain}.close{position:sticky;top:0;float:left;z-index:3}.workout-head{padding-top:8px}.workout-head h1{margin:0}.detail{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin:10px 0;line-height:1.5}.detail-row{display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center}.detail-row img{width:100px;height:76px;object-fit:cover;border-radius:12px;background:white}.phase-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.phase-list div{background:var(--card);border:1px solid var(--line);padding:10px;border-radius:13px;text-align:center}.phase-list b{display:block;font-size:18px}.trainer{min-height:80vh;text-align:center;padding:6px 0 24px}.trainer h1{font-size:27px;margin:8px 0}.trainer .phase-badge{display:inline-flex;background:var(--soft);color:var(--green-dark);font-weight:800;border-radius:99px;padding:7px 12px}.exercise-visual{display:block;width:100%;max-width:860px;max-height:420px;object-fit:contain;border-radius:18px;margin:14px auto;background:#fff;border:1px solid var(--line)}.timer-circle{width:210px;height:210px;border:13px solid var(--line);border-top-color:var(--green);border-radius:50%;display:grid;place-items:center;margin:16px auto;position:relative;transition:.2s}.timer-circle strong{font-size:48px}.timer-circle small{display:block;font-size:13px;color:var(--muted)}.trainer-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.trainer-actions button{padding:13px 6px}.trainer-progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:10px 0 4px}.trainer-progress i{display:block;height:100%;background:var(--green);transition:.25s}.coach-line{font-size:16px;line-height:1.5;min-height:48px}.rest-screen{display:grid;place-items:center;min-height:290px;border-radius:20px;background:linear-gradient(145deg,#0d1b2e,#123425);color:white;margin:14px 0}.rest-screen .big{font-size:70px}.music-toggle{margin-top:10px}.music-dock{margin-top:10px}.feedback{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.feedback button{padding:12px 5px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:13px}.completion{padding:15px 0;text-align:center}.completion .trophy{font-size:72px}.completion h1{margin:8px 0}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.summary-grid div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.summary-grid b{display:block;font-size:19px}.readiness-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.readiness-grid button{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;padding:10px 4px}.readiness-grid button.selected{border-color:var(--green);background:var(--soft)}.pain-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.pain-chip{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;padding:10px}.pain-chip.selected{background:#fff7ed;border-color:#fb923c;color:#9a3412}.block-icon{font-size:58px}
.toast{position:fixed;z-index:80;left:50%;bottom:100px;transform:translateX(-50%);background:#111827;color:white;padding:12px 16px;border-radius:13px;box-shadow:var(--shadow);max-width:90%;text-align:center}
@media(min-width:720px){.sheet{align-items:center;justify-content:center}.sheet-card{max-width:760px;border-radius:25px;max-height:93vh}.auth-shell{padding:40px}.onboard-card{padding:28px}}
@media(max-width:560px){.form-grid,.choice-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.detail-row{grid-template-columns:82px 1fr}.detail-row img{width:82px;height:68px}.trainer-actions{grid-template-columns:1fr 1fr}.trainer-actions .exit{grid-column:1/-1}.phase-list{grid-template-columns:1fr}.readiness-grid{grid-template-columns:repeat(5,1fr);font-size:13px}}
/* v0.5.0 */
body.ltr{direction:ltr}body.ltr .top,body.ltr main,body.ltr .sheet-card{text-align:left}body.ltr .close{float:right}
.access-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:14px;padding:11px 14px;margin-bottom:12px;font-size:14px}.access-banner.active{background:#ecfdf5;border:1px solid #a7f3d0;color:#166534}.access-banner.expired{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.access-banner span{font-size:12px}
.access-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;margin:8px 0 12px}.access-pill.ok{background:#dcfce7;color:#166534}.access-pill.bad{background:#fee2e2;color:#991b1b}
.exercise{width:100%;text-align:inherit}.exercise-thumb{width:118px;height:78px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line)}
.coach-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;text-align:start;margin:10px 0}.coach-card p{margin:5px 0 12px;line-height:1.5}.coach-card b{color:var(--green-dark)}
.exercise-visual{width:100%;height:auto;max-height:330px;object-fit:contain;background:#fff;padding:5px}.image-fallback{opacity:.92}
.admin-card{border-color:#86efac;background:linear-gradient(145deg,var(--card),#f0fdf4)}.user-admin{margin:10px 0}.user-admin-head{display:flex;justify-content:space-between;align-items:start;gap:10px}.user-admin-head p{margin:4px 0}.trial-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.trial-buttons button{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:9px 5px}.trial-buttons .primary{background:var(--green);color:#062b1d;border-color:transparent}.trial-buttons .danger-btn{background:#fee2e2;color:#991b1b;border-color:#fecaca}.custom-trial{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:9px}.custom-trial input{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--card);color:var(--text)}
@media(max-width:560px){.exercise-thumb{width:92px;height:66px}.trial-buttons{grid-template-columns:repeat(2,1fr)}.user-admin-head{align-items:center}.exercise-visual{max-height:285px}}

/* v0.6.0 professional exercise guide */
.infographic-card{background:#fff;color:#111827;border:1px solid #dfe5ec;border-radius:22px;overflow:hidden;margin:14px auto;max-width:780px;box-shadow:0 8px 24px rgba(4,12,24,.12);text-align:start}.infographic-card header{background:#0b1220;color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.infographic-card header h3{margin:0;font-size:23px}.infographic-card header p{margin:3px 0 0;color:#68d391;font-weight:800}.level-pill{background:#e9fff4;color:#0b7b48;padding:6px 10px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}.infographic-movement{min-height:360px;display:grid;place-items:center;padding:14px;background:linear-gradient(#fff,#f7fafc)}.movement-single{width:100%;display:grid;place-items:center}.movement-image{display:block;width:100%;height:auto;max-height:520px;min-height:320px;object-fit:contain;background:#fff;border-radius:14px}.movement-image.compact-image{min-height:180px;max-height:240px}.movement-positions{display:grid;grid-template-columns:1fr 58px 1fr;align-items:center;gap:8px;width:100%;min-height:300px}.movement-positions img{width:100%;height:300px;object-fit:contain;border-radius:14px;background:#f8fafc}.movement-arrow{font-size:44px;color:var(--green);font-weight:900;text-align:center;direction:ltr}.infographic-copy{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;padding:15px;border-top:1px solid #e5e7eb}.infographic-copy p{margin:5px 0;line-height:1.5}.cue-box{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:14px;padding:10px}.infographic-card.compact .infographic-movement{min-height:190px}.rest-preview{margin:12px auto 0;max-width:780px}.rest-preview>b{display:block;margin-bottom:8px;color:#d1fae5}.rest-preview .infographic-card{margin-top:0}.detail p{margin:6px 0 0;line-height:1.5}.library-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 16px}.library-tabs button{border:1px solid var(--line);background:var(--card);color:var(--text);padding:11px 6px;border-radius:13px;font-weight:800}.library-tabs button.active{background:var(--green);color:#062014;border-color:var(--green)}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:15px;display:flex;flex-direction:column;min-height:220px}.category-card h3{margin:8px 0}.category-card p{color:var(--muted);line-height:1.5;flex:1}.category-icon{font-size:34px;color:var(--green)}.stretch-card{border-color:#8bd8b4}.exercise-group{margin:18px 0}.exercise-group>h3{display:flex;justify-content:space-between;align-items:center}.exercise-group>h3 small{color:var(--muted);font-weight:400}.next-preview{position:sticky;bottom:8px;z-index:4;margin:-4px auto 10px;background:#0b1220;color:#fff;border:1px solid #31405a;border-radius:16px;padding:8px 11px;display:grid;grid-template-columns:auto 72px 1fr;align-items:center;gap:9px;max-width:520px;box-shadow:0 8px 22px rgba(0,0,0,.25);animation:slideUp .25s ease}.next-preview.hidden{display:none}.next-preview span{font-size:12px;color:#a8b3c5}.next-preview b{text-align:start}.next-thumb{width:72px;height:54px;object-fit:contain;background:#fff;border-radius:9px}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}@keyframes slideUp{from{transform:translateY(15px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:560px){.sheet-card{max-height:98vh;padding:12px}.trainer{min-height:90vh}.trainer h1{font-size:30px}.infographic-card{border-radius:18px;margin:10px 0}.infographic-card header{padding:12px}.infographic-card header h3{font-size:21px}.infographic-movement{min-height:360px;padding:8px}.movement-image{min-height:340px;max-height:58vh}.movement-image.compact-image{min-height:190px;max-height:230px}.movement-positions{grid-template-columns:1fr 42px 1fr;min-height:330px}.movement-positions img{height:330px}.movement-arrow{font-size:34px}.infographic-copy{grid-template-columns:1fr;padding:12px}.timer-circle{width:180px;height:180px;margin:10px auto}.category-grid{grid-template-columns:1fr}.library-tabs{font-size:12px}.next-preview{grid-template-columns:auto 62px 1fr}.next-thumb{width:62px;height:48px}.rest-preview .infographic-card header h3{font-size:18px}}
.locked-infographic{background:#fff;border:1px solid #dfe5ec;border-radius:20px;overflow:hidden;margin:12px auto;max-width:960px;box-shadow:0 8px 24px rgba(4,12,24,.12)}
.locked-infographic-image{display:block;width:100%;height:auto;min-height:260px;max-height:55vh;object-fit:contain;background:#fff}
.locked-infographic.compact{max-width:650px;margin:8px auto}
.locked-infographic.compact .locked-infographic-image{min-height:150px;max-height:220px}
@media(max-width:560px){.locked-infographic{border-radius:16px}.locked-infographic-image{min-height:240px;max-height:52vh}.locked-infographic.compact .locked-infographic-image{min-height:140px;max-height:190px}}
.locked-infographic-copy{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;padding:13px 15px;border-top:1px solid #e5e7eb;text-align:start;color:#111827}
.locked-infographic-copy p{margin:5px 0;line-height:1.45}
.locked-infographic-copy>div:last-child{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:13px;padding:9px}
@media(max-width:560px){.locked-infographic-copy{grid-template-columns:1fr;padding:11px}}

/* v0.6.4 locked infographic experience */
.locked-infographic{position:relative;overflow:hidden;touch-action:pan-y;background:#fff}
.locked-infographic-image{width:100%;height:auto;min-height:0;max-height:none;object-fit:contain;cursor:zoom-in;display:block}
.locked-infographic.zoomed{overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.locked-infographic.zoomed .locked-infographic-image{width:1020px;max-width:none;cursor:zoom-out}
.trainer-actions button{position:relative;z-index:6;touch-action:manipulation;pointer-events:auto}
@media(max-width:560px){
  .locked-infographic{border-radius:14px}
  .locked-infographic-image{width:100%;max-height:none}
  .locked-infographic.compact .locked-infographic-image{width:100%;min-height:0;max-height:none}
  .locked-infographic.zoomed .locked-infographic-image{width:960px}
}

/* v0.6.7 approved workout layout */
.trainer-v067{min-height:88vh;padding-bottom:18px;text-align:center}
.trainer-stage-head{display:grid;grid-template-columns:1fr 116px;gap:12px;align-items:start;text-align:start;margin-bottom:8px}
.trainer-stage-head .phase-badge{margin-bottom:4px}
.mini-timer{background:#0b1626;border:1px solid #34445c;border-radius:16px;padding:8px 10px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 6px;color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.22);direction:ltr;min-height:88px}
.mini-timer small{grid-column:1/-1;color:#a8b3c5;text-align:start;font-size:11px}
.mini-timer strong{font-size:37px;line-height:1;color:var(--green);font-variant-numeric:tabular-nums}
.mini-timer span{font-size:11px;color:#a8b3c5;padding-bottom:3px}
.mini-timer.rest strong{color:#7ee2a8}
.trainer-v067 h1{font-size:30px;margin:10px 0 3px}
.exercise-subtitle{margin:0 0 8px;color:var(--muted);font-weight:700}
.trainer-visual-wrap{width:100%;margin:8px auto 10px}
.trainer-v067 .locked-infographic{max-width:100%;margin:0;background:#fff}
.trainer-v067 .locked-infographic-image{width:100%;max-height:60vh;min-height:0;object-fit:contain}
.trainer-actions.v067{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:9px;position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--bg) 20%);padding-top:18px;z-index:8}
.trainer-actions.v067 .exit{grid-column:1/-1}
.spotify-status{display:inline-flex;align-items:center;gap:7px;border:1px solid #1ed760;background:#0b1d14;color:#8ff0ad;border-radius:999px;padding:7px 12px;margin:0 auto 8px;font-weight:800}
.persistent-spotify{position:fixed;z-index:60;left:12px;right:12px;bottom:86px;background:#0b1220;border:1px solid #34445c;border-radius:18px;padding:9px;box-shadow:0 16px 40px rgba(0,0,0,.45);max-width:720px;margin:auto}
.persistent-spotify.hidden{display:none}
.spotify-head{display:flex;justify-content:space-between;align-items:center;color:#fff;padding:2px 4px 8px}
.spotify-head button{border:0;background:#1a2638;color:#fff;border-radius:50%;width:30px;height:30px}
.persistent-spotify .spotify-frame{width:100%;height:152px;border:0;border-radius:12px}
.rest-next{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:12px;align-items:center;background:#0b1626;border:1px solid #34445c;border-radius:20px;padding:12px;margin:12px 0;color:#fff;text-align:start}
.rest-next h2{margin:5px 0;font-size:25px}
.rest-next .locked-infographic{margin:0;max-width:100%}
.rest-next .locked-infographic-image{max-height:32vh;object-fit:contain}
.habit-card.complete{border-color:#22c55e;background:linear-gradient(135deg,var(--card),rgba(34,197,94,.12))}

@media(max-width:560px){
  .sheet-card{padding:10px 12px 18px}
  .trainer-stage-head{grid-template-columns:1fr 102px;gap:8px}
  .mini-timer{min-height:76px;padding:7px 8px;border-radius:14px}
  .mini-timer strong{font-size:31px}
  .trainer-v067 h1{font-size:28px}
  .trainer-v067 .locked-infographic-image{max-height:62vh}
  .trainer-actions.v067{grid-template-columns:1fr 1.3fr 1fr;gap:7px}
  .trainer-actions.v067 button{font-size:14px;padding:12px 5px}
  .persistent-spotify{left:8px;right:8px;bottom:74px}
  .persistent-spotify .spotify-frame{height:152px}
  .rest-next{grid-template-columns:1fr;padding:10px;text-align:center}
  .rest-next .locked-infographic-image{max-height:36vh}
}
.calendar-goal{margin-bottom:12px}.calendar-goal .section-title span{font-weight:900;color:var(--green)}

/* v0.6.8 mobile-first vertical infographic workout screen */
.trainer-v068{min-height:92vh;padding:0 0 18px;text-align:center}
.trainer-v068 .trainer-stage-head{grid-template-columns:minmax(0,1fr) 92px;align-items:start;margin:0 0 6px}
.trainer-v068 .mini-timer{min-height:72px;border-radius:14px;padding:6px 8px}
.trainer-v068 .mini-timer strong{font-size:30px}
.trainer-v068 .trainer-progress{margin:6px 0 8px}
.trainer-v068 .mobile-visual{width:100%;max-width:520px;margin:4px auto 8px}
.trainer-v068 .locked-infographic{margin:0 auto;border-radius:20px;max-width:520px;background:#fff}
.trainer-v068 .locked-infographic-image{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;background:#fff}
.trainer-actions.v068{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:8px;position:sticky;bottom:0;z-index:12;padding:18px 0 calc(6px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(7,16,29,0),var(--bg) 24%)}
.trainer-actions.v068 .exit{grid-column:1/-1;min-height:58px;font-size:18px;font-weight:900;touch-action:manipulation}
.trainer-actions.v068 button{min-height:52px}
.trainer-v068 .next-preview{bottom:86px}
.trainer-v068 .rest-next .locked-infographic-image{max-height:52vh}

.celebration-card{position:relative;overflow:hidden;padding:24px 8px 32px;min-height:70vh;display:flex;flex-direction:column;justify-content:center}
.celebration-check{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:linear-gradient(145deg,#20c77a,#0e9d5a);color:#fff;font-size:66px;font-weight:900;box-shadow:0 16px 40px rgba(32,199,122,.35);animation:celebratePop .6s cubic-bezier(.2,.9,.2,1.2)}
.celebration-card h1{font-size:34px;margin:6px 0 8px}
.celebration-message{font-size:18px;line-height:1.55;color:var(--muted);max-width:560px;margin:0 auto 16px}
.celebration-home{margin-top:18px;min-height:58px;font-size:18px;font-weight:900;position:relative;z-index:3}
.confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.confetti-layer i{position:absolute;top:-12%;font-style:normal;font-size:18px;animation:confettiFall var(--duration) ease-in var(--delay) forwards;transform:translateX(0) rotate(0);opacity:.95}
.confetti-layer .c0{color:#20c77a}.confetti-layer .c1{color:#ffd54a}.confetti-layer .c2{color:#62a6ff}.confetti-layer .c3{color:#ff6b81}.confetti-layer .c4{color:#b78cff}
@keyframes celebratePop{0%{transform:scale(.35);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
@keyframes confettiFall{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate3d(var(--drift),110vh,0) rotate(var(--spin));opacity:.1}}

@media(max-width:560px){
  .sheet-card{max-height:100vh;border-radius:22px 22px 0 0;padding:9px 10px 14px}
  .trainer-v068{min-height:94vh}
  .trainer-v068 .trainer-stage-head{grid-template-columns:minmax(0,1fr) 84px;gap:7px}
  .trainer-v068 .mini-timer{min-height:66px;padding:5px 7px}
  .trainer-v068 .mini-timer strong{font-size:28px}
  .trainer-v068 .mobile-visual{max-width:100%;margin-top:2px}
  .trainer-v068 .locked-infographic{width:100%;border-radius:16px}
  .trainer-v068 .locked-infographic-image{width:100%;max-height:70vh}
  .trainer-actions.v068{grid-template-columns:1fr 1.25fr 1fr;gap:6px;padding-top:14px}
  .trainer-actions.v068 button{font-size:14px;padding:11px 5px}
  .trainer-actions.v068 .exit{font-size:17px;min-height:56px}
  .celebration-card{min-height:78vh;padding:18px 4px 26px}
  .celebration-check{width:102px;height:102px;font-size:60px}
  .celebration-card h1{font-size:30px}
  .celebration-message{font-size:17px}
}
.trainer-v068 .mobile-exercise-title{font-size:27px;margin:5px 0 1px}.trainer-v068 .exercise-subtitle{margin:0 0 5px;font-size:14px}
@media(max-width:560px){.trainer-v068 .mobile-exercise-title{font-size:25px}}
