:root{--paper:#fff;--paper2:#f5f5f5;--ink:#161616;--muted:#666;--line:#e8e8e8;--action:#141414;--action-soft:#f2f2f2;--accent:#161616;--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04}h1{font-size:clamp(42px,5vw,70px);letter-spacing:-.035em}h2{font-size:38px}h3{font-size:27px}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}img{max-width:100%;display:block}svg{width:21px;height:21px;stroke-width:1.6;flex-shrink:0}button{border:0;background:none}a{text-underline-offset:4px}.skip{position:absolute;left:12px;top:-100px;z-index:99}.skip:focus{top:12px;background:white;padding:10px}.eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:600;color:var(--muted);margin-bottom:16px}.muted{color:var(--muted)}.small{font-size:12px}.btn{min-height:44px;border:0;padding:10px 19px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:500;text-decoration:none;background:transparent;line-height:1.4}.btn:hover{background:var(--paper2)}.btn.primary{background:var(--action);border-color:var(--action);color:#ffffff}.btn.primary:hover{background:#000}.btn.light{background:var(--paper);color:var(--ink)}.btn.danger{color:#a13d32}.btn.icon{padding:10px;min-width:44px}.btn.liked{background:var(--action-soft);color:var(--action);border-color:var(--action)}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;border:0;border-radius:50px;padding:4px 10px;font-size:10px;line-height:1.5;background:var(--paper)}.tag.green{background:var(--action-soft);border-color:transparent;color:var(--action)}.tag.orange{background:#f4e5d9;color:#915234;border-color:transparent}.brand{font:600 43px/.8 var(--serif);text-decoration:none;letter-spacing:-.07em;display:inline-flex;align-items:center;gap:15px}.brand span{font:500 10px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.16em;border:0;padding-left:15px}.public-nav{max-width:1320px;margin:auto;min-height:90px;padding:20px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}.public-nav nav{display:flex;gap:24px;align-items:center;font-size:12px}.section{max-width:1200px;margin:auto;padding:75px 28px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;padding-top:45px;padding-bottom:65px}.hero h1{font-size:clamp(55px,6.8vw,96px)}.hero h1 em{color:var(--action)}.hero p:not(.eyebrow){max-width:390px;margin:25px 0;color:var(--muted)}.hero .actions{margin-top:28px}.hero-visual{position:relative;min-height:480px;background:var(--action-soft);border-radius:160px 160px 10px 10px;padding:45px 28px 22px;overflow:hidden}.hero-visual>img{width:100%;height:315px;object-fit:contain;mix-blend-mode:multiply}.hero-visual .note-card{background:var(--paper);padding:20px;border:0;border-radius:8px;box-shadow:0 8px 25px #14141412;display:flex;justify-content:space-between;align-items:center;gap:15px}.hero-visual .note-card strong{font:500 28px var(--serif)}.hero-stamp{position:absolute;top:30px;right:24px;transform:rotate(8deg);width:85px;height:85px;border:0;border-radius:50%;display:grid;place-content:center;text-align:center;font:500 11px/1.5 var(--sans);color:var(--action)}.strip{border:0;display:flex;justify-content:center;gap:60px;flex-wrap:wrap;padding:22px;color:var(--action);font:500 23px var(--serif)}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.role-card{padding:27px;border:0;border-radius:9px;display:flex;flex-direction:column;gap:18px}.role-card>p{color:var(--muted);font-size:13px;flex:1}.role-card .num{font-size:11px;letter-spacing:.12em;color:var(--accent)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.public-footer{padding:30px 5%;border:0;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:11px;color:var(--muted)}.editorial{background:var(--action);color:#ffffff;border-radius:12px;padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:45px}.editorial .eyebrow,.editorial .muted{color:#d8d3cc}.editorial h2{font-size:48px}.editorial p{margin:18px 0}.editorial .muscle-list{display:flex;flex-wrap:wrap;gap:8px;align-content:center}.editorial .tag{background:#ffffff0b;border-color:#ffffff3c;font-size:13px;padding:8px 16px}.shell{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;border:0;padding:30px 22px;display:flex;flex-direction:column;background:var(--paper)}.sidebar .brand{margin:6px 0 47px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-btn{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:12px;min-height:45px;padding:12px;border-radius:6px;color:var(--muted)}.nav-btn:hover{color:var(--ink);background:var(--paper2)}.nav-btn[aria-current=page]{background:var(--action-soft);color:var(--action);font-weight:600}.sidebar-bottom{margin-top:auto;padding-top:25px}.sidebar-bottom p{font-size:10px;color:var(--muted);margin-top:15px}.main{min-width:0}.topbar{min-height:82px;padding:17px 40px;border:0;display:flex;align-items:center;justify-content:space-between;gap:15px}.topbar .eyebrow{margin:0}.topbar .avatar{width:36px;height:36px;font-size:13px}.content{max-width:1380px;margin:0 auto;padding:40px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:30px}.page-head p{margin-top:13px;color:var(--muted);max-width:560px;font-size:13px}.page-head h1{font-size:52px}.filters{padding:18px 0 25px;border:0;margin-bottom:25px}.filter-row{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}input,select,textarea{width:100%;border:0;background:#f5f5f5;border-radius:6px;padding:12px;color:var(--ink);font-size:13px;min-height:44px}textarea{min-height:94px;resize:vertical}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--action)}input[type=radio]{width:18px;min-height:18px;accent-color:var(--action)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.chip{padding:8px 14px;border:0;border-radius:50px;font-size:11px;min-height:38px}.chip[aria-pressed=true]{background:var(--action);border-color:var(--action);color:white}.catalog-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;font-size:11px;color:var(--muted)}.exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.exercise-card{border:0;border-radius:9px;overflow:hidden;background:#ffffff}.exercise-photo{position:relative;width:100%;padding:0;display:block;text-align:left;background:#f5f5f5}.exercise-photo img{width:100%;height:190px;object-fit:contain;mix-blend-mode:multiply;transition:transform .3s}.exercise-photo:hover img{transform:scale(1.04)}.exercise-photo .tag{position:absolute;top:13px;left:13px}.photo-play{position:absolute;right:10px;bottom:10px;width:28px;height:28px;display:grid;place-items:center;border-radius:4px;background:#ffffffdb;pointer-events:none}.photo-play svg{width:16px;height:16px}.exercise-copy{padding:18px}.exercise-copy h3{font-size:26px;margin:7px 0 12px;min-height:52px}.exercise-copy .muted{font-size:11px}.exercise-copy .actions{justify-content:space-between;margin-top:16px}.exercise-copy .link-btn{font-size:11px;padding:4px 0;text-decoration:underline;text-underline-offset:4px}.info-note{font-size:11px;color:var(--muted);margin:28px 0;padding:16px;border:0;background:var(--paper2)}.empty{padding:50px 30px;border:0;border-radius:10px;text-align:center;background:#fffaf380}.empty h3{font-size:32px}.empty p{color:var(--muted);font-size:13px;max-width:450px;margin:15px auto 20px}.empty .actions{justify-content:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}.stat{border:0;border-radius:8px;padding:22px}.stat strong{font:500 47px var(--serif);display:block}.stat span{font-size:11px;color:var(--muted)}.welcome{background:var(--action);color:var(--paper);padding:32px;border-radius:10px;display:flex;justify-content:space-between;gap:24px;margin-bottom:27px;align-items:center}.welcome p{font-size:12px;margin-top:12px;max-width:450px;color:#d8d3cc}.welcome h2{font-size:43px}.person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.person-card{border:0;border-radius:9px;padding:23px;background:#ffffff}.person-card h3{margin:18px 0 8px}.person-card p{font-size:12px;color:var(--muted);margin-bottom:14px;overflow-wrap:anywhere}.person-top{display:flex;align-items:center;justify-content:space-between}.avatar{width:65px;height:65px;display:grid;place-items:center;background:var(--action-soft);color:var(--action);font:500 30px var(--serif);border-radius:50%}.person-card .actions{margin-top:20px}.row-list{display:flex;flex-direction:column;gap:12px}.list-card{border:0;border-radius:8px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#ffffff}.list-card p{font-size:12px;color:var(--muted);margin-top:6px}.list-card h3{font-size:25px}.subheading{margin:30px 0 18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.span-all{grid-column:1/-1}.form-panel{max-width:750px;border:0;border-radius:10px;padding:27px;background:#ffffff}.error{color:#973d31;font-size:12px;padding:14px;background:#f5e5de;border-radius:6px;margin:14px 0}.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translateX(-50%);padding:15px 22px;max-width:calc(100% - 32px);width:max-content;border:0;box-shadow:0 10px 40px #0002;background:var(--ink);color:var(--paper);border-radius:8px;font-size:12px}.loading{color:var(--muted);padding:40px;text-align:center}.auth-layout{min-height:calc(100dvh - 90px);display:grid;grid-template-columns:1fr 1fr;max-width:1160px;margin:auto;padding:35px 28px 70px;gap:80px;align-items:center}.auth-art{background:var(--action-soft);border-radius:170px 170px 8px 8px;padding:40px 35px}.auth-art img{height:280px;width:100%;object-fit:contain;mix-blend-mode:multiply}.auth-art h2{font-size:53px;margin-top:20px}.auth-art p{margin-top:18px;color:var(--muted);font-size:12px}.auth-box{max-width:460px;width:100%}.auth-box h1{font-size:51px}.auth-box>p{margin:15px 0 25px;font-size:12px;color:var(--muted)}.auth-switch{display:flex;border:0;gap:25px;margin-bottom:28px}.auth-switch button{padding:12px 0;font-size:12px;border:0}.auth-switch button[aria-selected=true]{border-color:var(--action);font-weight:600}.role-picker{display:flex;gap:8px;margin:16px 0 24px}.role-picker label{flex:1;padding:10px 7px;border:0;border-radius:6px;display:flex;gap:5px;align-items:center;font-size:11px;cursor:pointer}.role-picker label:has(:checked){background:var(--action-soft);border-color:var(--action)}.auth-box form>.field{margin-bottom:16px}.auth-box form>.btn{width:100%;margin-top:15px}.auth-box .fine{font-size:10px;line-height:1.7;margin-top:20px;color:var(--muted)}
dialog{margin:auto;border:0;border-radius:12px;background:var(--paper);color:var(--ink);padding:0;width:min(850px,calc(100vw - 30px));max-height:90dvh;box-shadow:0 30px 90px #00000022}dialog::backdrop{background:#000000b3;backdrop-filter:blur(4px)}dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 25px;border:0;position:sticky;top:0;background:var(--paper);z-index:2}dialog>header h2{font-size:31px}dialog .dialog-body{padding:25px}dialog.wide{width:min(1220px,calc(100vw - 24px))}.exercise-viewer{background:white;border-radius:8px;overflow:hidden}.exercise-viewer img{height:330px;width:100%;object-fit:contain}.exercise-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:16px 0}.exercise-controls p{font-size:12px;color:var(--muted)}.exercise-description{margin-top:20px}.exercise-description h3{font-size:26px;margin:17px 0 9px}.exercise-description p{font-size:13px}.prescription{padding:17px;background:var(--action-soft);border-radius:8px;margin:15px 0;font-size:13px}.workout-ex{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:16px;padding:17px 0;border:0}.workout-ex img{width:76px;height:70px;object-fit:contain;background:white;border-radius:6px}.workout-ex h3{font-size:23px}.workout-ex p{font-size:12px;color:var(--muted);margin-top:5px;white-space:pre-wrap}.workout-ex .tag{margin-top:7px}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;margin-top:25px}.builder-picker{max-height:600px;overflow:auto}.builder-picker .exercise-grid{grid-template-columns:1fr 1fr;gap:12px}.builder-picker .exercise-photo img{height:130px}.builder-picker .exercise-copy{padding:12px}.builder-picker .exercise-copy h3{font-size:22px;min-height:45px}.builder-picker .filter-row{grid-template-columns:1fr 1fr}.builder-picker .chips{max-height:105px;overflow:auto}.builder-row{border:0;background:#ffffff;border-radius:8px;padding:17px;margin-bottom:13px}.builder-row h3{font-size:23px}.builder-row .form-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.builder-row .actions{margin-top:10px;justify-content:flex-end}.builder-row textarea{min-height:65px}.builder-count{position:sticky;bottom:0;background:var(--paper);border:0;padding:17px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.day-picker{display:flex;gap:12px;flex-wrap:wrap}.day-picker label{display:flex;align-items:center;gap:5px;font-size:12px}.chat-layout{display:grid;grid-template-columns:260px minmax(0,1fr);border:0;border-radius:10px;overflow:hidden;min-height:500px}.chat-peers{border:0;padding:15px}.chat-peer{display:block;text-align:left;width:100%;padding:16px;border-radius:7px;border:0}.chat-peer[aria-current=true]{background:var(--action-soft)}.chat-peer strong{font:600 23px var(--serif)}.chat-peer small{display:block;font-size:10px;color:var(--muted)}.chat-main{min-width:0;display:flex;flex-direction:column;padding:22px}.messages{height:340px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:12px 0}.bubble{max-width:85%;align-self:flex-start;padding:13px 17px;background:var(--paper2);border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.bubble.mine{align-self:flex-end;background:var(--action-soft)}.bubble small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.chat-form{display:flex;gap:10px;margin-top:15px}.chat-form textarea{min-height:50px;max-height:100px}.chat-form .btn{align-self:end}.profile-intro{display:flex;align-items:center;gap:20px;margin-bottom:22px}.profile-intro h3{font-size:35px}.profile-intro p{font-size:12px;color:var(--muted)}.date-badge{background:var(--action-soft);padding:10px 14px;border-radius:7px;color:var(--action);text-align:center;min-width:75px;font-size:12px}.date-badge b{font:600 27px var(--serif);display:block}.slot-info{flex:1}.hr{height:1px;background:var(--line);margin:25px 0}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.pagination{display:flex;justify-content:center;gap:15px;margin-top:28px;align-items:center;font-size:12px}
@media(min-width:1550px){.exercise-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.shell{grid-template-columns:185px 1fr}.sidebar{padding:25px 14px}.content{padding:30px 25px}.topbar{padding:18px 25px}.exercise-grid,.person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row{grid-template-columns:1fr 1fr}.hero{gap:30px}.auth-layout{gap:40px}.chat-layout{grid-template-columns:200px 1fr}}
@media(max-width:760px){.public-nav{min-height:75px;padding:20px}.public-nav nav{gap:12px}.public-nav nav>a:not(.btn){display:none}.brand{font-size:37px}.brand span{font-size:9px}.section{padding:45px 22px}.hero{grid-template-columns:1fr;gap:34px;padding-top:25px}.hero h1{font-size:65px}.hero-visual{min-height:390px;max-width:500px}.hero-visual>img{height:250px}.hero-stamp{width:70px;height:70px}.strip{gap:18px;font-size:19px}.three{grid-template-columns:1fr;gap:15px}.editorial{grid-template-columns:1fr;padding:27px;gap:10px}.editorial h2{font-size:40px}.public-footer{flex-wrap:wrap}.section-heading{align-items:start;flex-direction:column;gap:20px}.shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:auto;z-index:10;padding:7px 7px calc(7px + env(safe-area-inset-bottom));border:0;border:0}.sidebar>.brand,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:2px;justify-content:space-around;overflow-x:auto}.nav-btn{flex-direction:column;gap:4px;font-size:9px;padding:6px 9px;min-width:53px;border-radius:6px;flex-shrink:0}.nav-btn svg{width:20px;height:20px}.topbar{padding:16px 20px;min-height:70px}.content{padding:28px 19px 110px}.page-head{align-items:start;flex-direction:column;gap:17px}.page-head h1{font-size:43px}.page-head .eyebrow{margin-bottom:8px}.exercise-grid{gap:12px}.exercise-photo img{height:140px}.exercise-copy{padding:13px}.exercise-copy h3{font-size:23px;min-height:48px}.exercise-copy .actions{gap:5px}.exercise-copy .tag{font-size:9px}.filter-row{gap:9px}.filters{padding-top:0}.chips{gap:6px}.chip{padding:7px 12px}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:36px}.stat span{font-size:10px}.welcome{padding:24px;align-items:start;flex-direction:column}.welcome h2{font-size:36px}.person-grid{grid-template-columns:1fr}.list-card{padding:16px;flex-wrap:wrap;gap:12px}.list-card .actions{margin-left:auto}.auth-layout{grid-template-columns:1fr;padding:20px 22px 55px;gap:0;min-height:auto}.auth-art{display:none}.auth-box{max-width:100%;margin:10px auto}.auth-box h1{font-size:46px}.form-grid{grid-template-columns:1fr}.span-all{grid-column:auto}.form-panel{padding:20px}.builder-layout{grid-template-columns:1fr;gap:20px}.builder-picker{max-height:450px}.builder-count{flex-wrap:wrap}.chat-layout{grid-template-columns:1fr}.chat-peers{display:flex;overflow:auto;border:0;border:0;max-height:150px}.chat-peer{min-width:170px}.chat-main{padding:16px}.messages{height:330px}.workout-ex{grid-template-columns:55px minmax(0,1fr)}.workout-ex img{width:55px;height:65px}.workout-ex>.btn{grid-column:2;justify-self:start}dialog>header{padding:17px}dialog .dialog-body{padding:18px}dialog>header h2{font-size:28px}.exercise-viewer img{height:240px}.toast{bottom:95px}.profile-intro h3{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Full-width, borderless training experience. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.shell{grid-template-columns:76px minmax(0,1fr)}
.sidebar{padding:20px 12px;align-items:center}
.sidebar .brand{font-size:31px;margin:5px 0 30px}
.sidebar .brand span{display:none}
.sidebar nav{width:100%;gap:15px;align-items:center}
.nav-btn{width:48px;height:48px;padding:12px;justify-content:center;position:relative}
.nav-btn>span:not(.avatar){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.nav-btn[aria-current=page]{color:#000;background:transparent}
.nav-btn[aria-current=page]>svg{fill:currentColor;stroke:currentColor;stroke-width:1.7}
.nav-btn:has(.avatar){padding:6px}
.nav-btn .avatar{width:32px;height:32px}
.sidebar-bottom{display:flex;align-items:center;flex-direction:column;gap:12px}
.sidebar-bottom p{display:none}
.sidebar-bottom .avatar{width:32px;height:32px;font-size:16px}
.content{max-width:none;width:100%;padding:26px clamp(20px,2.8vw,48px) 35px}
.page-head{margin-bottom:22px}
.page-head h1{font-size:clamp(36px,3.4vw,51px)}
.page-head .eyebrow{margin-bottom:9px}
.page-head p{margin-top:9px;max-width:760px}
.filters{padding:8px 0 15px;margin-bottom:14px}
.exercise-grid{gap:18px;grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}
.exercise-card,.person-card,.list-card,.form-panel,.role-card,.stat{background:transparent}
.exercise-card{border-radius:0}
.exercise-photo{border-radius:10px;overflow:hidden}
.exercise-photo img{height:200px}
.exercise-copy{padding:14px 2px 12px}
.exercise-copy h3{min-height:0}
.person-grid{grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:24px}
.person-card{padding:0 0 20px;overflow:hidden;min-width:0}
.person-card h3{margin-top:14px}
.person-card .person-top{margin-top:14px}
.person-cover{display:block;width:100%;aspect-ratio:4/3;max-height:380px;overflow:hidden;padding:0;background:var(--paper2);border-radius:10px}
.person-cover img{height:100%;width:100%;object-fit:cover;transition:transform .2s}
.person-cover:hover img{transform:scale(1.025)}
.person-card .person-top .avatar{width:40px;height:40px;font-size:22px}
.avatar{overflow:hidden}
.avatar img{height:100%;width:100%;object-fit:cover}
.form-panel{max-width:none;padding:0}
.profile-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:40px;align-items:start}
.photo-editor-head{margin-bottom:18px}
.photo-editor-head h2{font-size:32px;margin-bottom:8px}
.photo-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.photo-slot{position:relative;aspect-ratio:3/4;min-width:0;overflow:hidden;background:var(--paper2);border-radius:10px}
.photo-slot:first-child{grid-column:auto;grid-row:auto}
.photo-slot img{width:100%;height:100%;object-fit:cover}
.photo-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:11px;padding:10px}
.photo-add:hover{background:#ededed}
.photo-add svg{width:25px;height:25px}
.photo-number{position:absolute;top:10px;left:10px;border-radius:30px;background:#ffffffdd;font-size:10px;padding:4px 10px}
.photo-slot-actions{position:absolute;bottom:10px;right:10px;display:flex;gap:6px}
.photo-tool{width:32px;height:32px;display:grid;place-items:center;background:#fffffff5;border-radius:50%;padding:7px}
.photo-tool svg{width:16px;height:16px}
.photo-status{margin-top:15px}
.profile-gallery{display:flex;gap:10px;overflow:auto;scroll-snap-type:x mandatory;margin-bottom:25px;padding-bottom:10px}
.profile-gallery img{flex:0 0 min(78%,420px);width:min(78%,420px);height:360px;object-fit:cover;border-radius:10px;scroll-snap-align:start}
.btn{background:var(--paper2)}
.btn.liked{background:transparent;color:#000}
.btn.liked svg{fill:currentColor}
.stat{padding:15px 0}
.welcome{padding:24px;margin-bottom:20px}
.welcome h2{font-size:36px}
.list-card{padding:18px 0}
.chat-layout{background:#ffffff80}
.chat-peer{padding:14px}
.chat-peer[aria-current=true]{background:var(--paper2);color:#000}
.hero-stamp{background:var(--paper)}
.auth-switch button[aria-selected=true]{background:var(--paper2);padding-inline:12px;border-radius:6px}

.demo-accounts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.demo-account{text-align:left;background:var(--paper2);border-radius:12px;padding:18px;display:flex;gap:12px;align-items:center}
.demo-account .avatar{flex-shrink:0;width:48px;height:48px}
.demo-account small{display:block;color:var(--muted)}
@media(min-width:1550px){.exercise-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}}
@media(max-width:1100px){.shell{grid-template-columns:70px minmax(0,1fr)}.sidebar{padding:20px 9px}.profile-layout{grid-template-columns:1fr;gap:28px}.photo-editor-grid{max-width:760px}}
@media(max-width:760px){
 .shell{display:block}.sidebar{width:100%;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--paper)}
 .sidebar nav{flex-direction:row;gap:0;width:100%;justify-content:space-around;overflow:auto;scrollbar-width:none}
 .sidebar nav::-webkit-scrollbar{display:none}
 .nav-btn{min-width:40px;width:44px;height:44px;flex-shrink:0;padding:10px;gap:0}
 .sidebar-bottom{display:none}
 .content{padding:18px 14px 88px}
 .page-head{gap:12px;margin-bottom:20px}.page-head h1{font-size:37px}.page-head p{font-size:12px}
 .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .exercise-photo img{height:145px}.exercise-copy{padding:12px 0}.exercise-copy h3{font-size:23px;min-height:0}
 .person-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.person-card h3{font-size:26px}.person-card .actions{gap:6px}.person-card .actions .btn{padding:9px;font-size:11px}
 .person-cover{aspect-ratio:3/4}.person-card .person-top{flex-wrap:wrap;gap:6px}.person-card .tag{font-size:9px}
 .profile-gallery img{height:310px}
 .photo-editor-grid{gap:8px}.photo-add span{font-size:9px}
 .form-panel{padding:0}.profile-layout{gap:26px}.stats{gap:16px}.stat{padding:4px 0 12px}
 .demo-accounts{grid-template-columns:1fr}
}

/* Compact training pages and an edge-to-edge exercise viewer. */
.page-head h1{font:500 28px/1.2 var(--sans);letter-spacing:-.025em}
.empty{padding:24px 12px;background:transparent}
.empty h3{font:500 17px/1.4 var(--sans)}
.empty p{margin:8px auto 14px;font-size:12px}
.empty>.btn,.empty>.actions{margin-top:14px}
.section-heading{margin-bottom:16px;align-items:center}
.section-heading h2,.subheading{font:500 22px/1.3 var(--sans)}
.exercise-copy h3{font:500 16px/1.35 var(--sans);margin:0 0 5px;min-height:0}
.exercise-copy .muted{display:flex;align-items:center;justify-content:space-between;gap:8px}
.exercise-copy .btn.icon{background:transparent}
.demo-switch{color:var(--muted);background:transparent;box-shadow:none}
body.exercise-open{overflow:hidden}
#exerciseDialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border-radius:0;box-shadow:none;overscroll-behavior:contain}
#exerciseDialog>header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));gap:12px}
#exerciseDialog>header h2{font:500 18px/1.3 var(--sans)}
#exerciseDialog>header .btn{flex:0 0 44px;background:transparent}
#exerciseDialog .dialog-body{padding:0 0 max(24px,env(safe-area-inset-bottom))}
.exercise-viewer{border-radius:0;background:var(--paper2)}
.exercise-viewer img{width:100%;height:auto;max-height:70dvh;object-fit:contain}
.exercise-controls{justify-content:center;gap:8px;margin:12px 16px}
.pose-control{width:44px;height:44px;padding:12px;border-radius:6px;display:grid;place-items:center;background:transparent}
.pose-control[aria-pressed=true]{background:var(--paper2)}
.pose-control svg{width:20px;height:20px}
.exercise-description{margin:0;padding:8px 16px 24px}
.exercise-description h3{font:500 18px/1.4 var(--sans);margin:16px 0 8px}
.exercise-description>p:not(.small){max-width:850px;font-size:14px;line-height:1.65}
.exercise-details{margin-top:24px;color:var(--muted);font-size:11px}
.exercise-details summary{cursor:pointer;width:fit-content}
.exercise-details p{font-size:11px;max-width:850px;margin-top:10px}
.auth-layout{grid-template-columns:1fr;max-width:540px;gap:0;min-height:auto;padding-top:32px}
.auth-art{display:none}
.auth-box h1{font:500 28px/1.2 var(--sans)}
.auth-box>p:empty{display:none}
@media(max-width:760px){.page-head h1{font-size:26px}.exercise-copy h3{font-size:14px}.section-heading{flex-direction:row;gap:12px}.exercise-viewer img{max-height:none}.demo-switch{min-width:40px;padding:10px}}

.hero{gap:32px;padding-block:32px}.hero h1{font:500 36px/1.2 var(--sans)}.hero-visual{border-radius:8px;padding:0;min-height:0}.hero-visual>img{height:auto}.section:has(.three){padding-block:24px}.role-card{padding:16px 0;gap:12px}.role-card h3{font:500 22px/1.3 var(--sans)}

/* Select fields use the same paper palette and controls as the app. */
.native-select{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0;pointer-events:none;clip-path:inset(50%)}
.select-trigger{width:100%;min-width:0;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f5f5f5;border-radius:6px;padding:12px;text-align:left;font-size:13px}
.select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-trigger svg{width:17px;height:17px}
.select-trigger[aria-expanded=true]{background:var(--paper2)}
.select-dialog{width:min(520px,calc(100vw - 24px));max-height:80dvh;border-radius:14px;padding-bottom:12px;overscroll-behavior:contain}
.select-dialog header{padding:12px 16px}
.select-dialog h2{font:500 18px/1.3 var(--sans)}
.select-dialog header .btn{background:transparent}
.select-options{padding:0 8px 8px}
.select-option{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:48px;padding:14px 12px;text-align:left;border-radius:7px;font-size:14px}
.select-option:hover,.select-option:focus-visible{background:var(--paper2)}
.select-option[aria-selected=true]{background:var(--ink);color:var(--paper)}
.select-check{visibility:hidden}.select-option[aria-selected=true] .select-check{visibility:visible}
.select-option:disabled{opacity:.4;cursor:default}
.exercise-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:28px 20px}
.exercise-photo{isolation:isolate;border-radius:0;overflow:hidden;background:transparent}
.exercise-photo img,.builder-picker .exercise-photo img{height:auto;width:100%;object-fit:contain;mix-blend-mode:normal;transform:none}
.exercise-photo:hover img{transform:none}
.photo-play{right:12px;bottom:12px;width:36px;height:36px;padding:0;display:grid;place-items:center;border-radius:50%;background:#fffffff2;z-index:1;line-height:1;box-shadow:0 1px 6px #0002}
.photo-play svg{display:block;width:18px;height:18px;margin-left:2px}
.exercise-copy{padding:12px 0 4px}
.workout-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
.workout-dialog .dialog-body{padding:0 0 30px}
.workout-dialog .dialog-body>p,.workout-dialog .prescription,.workout-dialog form{margin:16px 20px}
.workout-ex{display:block;padding:0;margin:24px 0}
.workout-ex .exercise-photo img{width:100%;height:auto;max-height:72dvh;object-fit:contain;border-radius:0;background:var(--paper2)}
.workout-ex-copy{padding:14px 20px}
.workout-ex h3{font:500 20px/1.35 var(--sans)}
.workout-ex p{font-size:13px}
.builder-picker .exercise-grid{grid-template-columns:1fr}
.builder-picker .exercise-copy h3{min-height:0;font-size:16px}
@media(max-width:760px){
 .select-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:85dvh;border-radius:18px 18px 0 0;padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .select-options{padding-inline:12px}
 .exercise-grid{grid-template-columns:minmax(0,1fr);gap:28px;margin-inline:-14px;width:calc(100% + 28px)}
 .exercise-copy{padding:12px 14px 0}.exercise-copy h3{font-size:18px}.exercise-copy .muted{font-size:12px}
 .chips{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-block:4px;scrollbar-width:none}.chips .chip{flex-shrink:0}
 .filters{margin-bottom:8px}.catalog-meta{margin-bottom:14px}
 dialog.wide{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
 .builder-picker .exercise-grid{margin-inline:-18px;width:calc(100% + 36px)}
 .builder-picker{max-height:65dvh;overflow-x:hidden}.builder-picker .exercise-copy{padding-inline:18px}
 .builder-picker .chips{max-height:none}.builder-count{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .workout-ex .exercise-photo img{max-height:none}
 .workout-dialog>header,.wide>header{padding-top:max(12px,env(safe-area-inset-top))}
}

.field{min-width:0}body:has(dialog[open]){overflow:hidden}
.builder-dialog .builder-tabs,.session-dialog .session-bar{top:var(--training-header-height,74px)}
/* The workout editor owns its viewport; no intrinsic image width can move the dialog. */
#appDialog.builder-dialog{position:fixed;inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.builder-dialog>header h2{font:500 21px/1.3 var(--sans)}
.builder-dialog .dialog-body{padding:0 16px;min-width:0;width:100%}
#workoutForm,#builderSheet,#builderPickerPanel,.builder-picker,.builder-picker .exercise-card,.builder-picker .exercise-copy{min-width:0;max-width:100%}
.builder-tabs{position:sticky;top:78px;z-index:3;display:flex;gap:6px;background:var(--paper);padding:8px 0 14px;margin-bottom:18px}
.builder-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;min-height:44px;border-radius:8px;font-size:13px}
.builder-tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}
.builder-notes{margin:20px 0;color:var(--muted);font-size:12px}
.builder-notes summary{cursor:pointer;padding-block:10px}.builder-notes textarea{margin-top:8px}
.builder-dialog .day-picker{gap:6px;display:flex;flex-wrap:wrap}
.builder-dialog .day-picker label{position:relative;flex:1;min-width:36px;max-width:64px}
.builder-dialog .day-picker input{position:absolute;opacity:0;width:100%;height:100%;margin:0}
.builder-dialog .day-picker span{display:grid;place-items:center;border-radius:7px;width:100%;height:42px;background:var(--paper2)}
.builder-dialog .day-picker input:checked+span{background:var(--ink);color:var(--paper)}
.builder-dialog .day-picker input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.builder-dialog .builder-picker{max-height:none;overflow:visible}
.builder-dialog .builder-picker .exercise-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%;margin:0}
.builder-dialog .builder-picker .exercise-card{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:12px}
.builder-dialog .builder-picker .exercise-photo{width:88px;max-width:88px;border-radius:6px}
.builder-dialog .builder-picker .exercise-photo img{width:100%;height:auto;max-width:100%}
.builder-dialog .builder-picker .photo-play{display:none}
.builder-dialog .builder-picker .exercise-copy{padding:0}.builder-dialog .builder-picker h3{font:500 14px/1.35 var(--sans);margin:0;overflow-wrap:anywhere}
.builder-dialog .builder-picker .exercise-copy p{font-size:11px;margin-top:4px}
.builder-dialog .builder-picker .filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.builder-dialog .builder-picker .filter-row .field{display:flex;min-width:0}
.builder-dialog .builder-picker .chips{flex-wrap:wrap;overflow:visible;max-height:none}.builder-dialog .builder-picker .chip{flex-shrink:0}
.builder-dialog .builder-row{background:transparent;padding:14px 0;margin:0;border-bottom:1px solid #16161612;border-radius:0}
.builder-row summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer;min-height:48px;font-size:14px}
.builder-row summary::-webkit-details-marker{display:none}.builder-row summary>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.builder-row summary small{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.builder-order{font-size:12px;color:var(--muted)}.builder-row .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.builder-dialog input,.builder-dialog textarea{min-width:0;max-width:100%}.builder-row .span-all{grid-column:1/-1}
.builder-count{z-index:4;position:sticky;bottom:0;margin-top:20px;min-width:0;padding:14px 0 max(14px,env(safe-area-inset-bottom));background:var(--paper)}
.add-exercises{width:100%;margin-top:16px;background:transparent}
/* A running session retains elapsed time on the server and only paints its clock locally. */
.session-dialog{position:fixed;inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;overflow-x:hidden;overscroll-behavior:contain}
.session-dialog>header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));align-items:center}
.session-dialog>header h2{font:500 18px/1.35 var(--sans);overflow-wrap:anywhere}.session-dialog>header>div{min-width:0}.session-dialog>header>.btn{flex:0 0 44px;background:transparent}
.session-bar{position:sticky;top:84px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper);padding:12px 16px}
#sessionClock{font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.session-progress{display:block;width:100%;height:3px;border:0;accent-color:var(--ink)}
.session-progress::-webkit-progress-bar,#restProgress::-webkit-progress-bar{background:var(--paper2)}.session-progress::-webkit-progress-value,#restProgress::-webkit-progress-value{background:var(--ink)}
.session-feedback{padding:0 16px;font-size:12px}.session-feedback:has(#sessionSaveStatus:not(:empty)){padding-block:8px}
.session-exercise{margin:12px 0 24px}.session-exercise>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;font-size:17px;font-weight:500}
.session-exercise>summary::-webkit-details-marker{display:none}.session-exercise>summary>span:first-child{min-width:0;overflow-wrap:anywhere}
.session-exercise.is-done>summary{color:#466451}.exercise-done{display:flex;flex-shrink:0}
.session-exercise .exercise-photo img{width:100%;height:auto;max-height:65dvh;object-fit:contain}
.session-prescription{padding:12px 16px;font-size:12px;color:var(--muted)}.session-prescription p{margin-top:6px;white-space:pre-wrap}
.set-head,.set-row{display:grid;grid-template-columns:36px repeat(3,minmax(0,1fr)) 44px;gap:8px;align-items:center;padding:6px 16px}
.set-head{font-size:11px;color:var(--muted);text-align:center}
.set-row input{width:100%;min-width:0;padding:10px 3px;text-align:center;font-size:15px;font-variant-numeric:tabular-nums;border-radius:7px}
.set-row input:disabled{opacity:1;-webkit-text-fill-color:var(--ink);background:transparent}
.set-row.is-done{background:#49634c0b}.set-row.is-done .set-check{background:#466451;color:white}
.set-number{text-align:center;font-size:12px;color:var(--muted)}.set-check{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:var(--paper2)}.set-check:disabled{cursor:default;opacity:.65}
.set-rest{grid-column:2/-1;font-size:11px;color:var(--muted);text-align:right;padding-bottom:6px}
.session-ending{padding:16px;margin-bottom:160px;font-size:12px}.session-ending summary{padding-block:12px;cursor:pointer}.session-ending .btn{margin-top:16px}
.session-footer{position:sticky;bottom:0;z-index:4;background:var(--paper);padding:12px 16px max(12px,env(safe-area-inset-bottom));box-shadow:0 -8px 20px #16161605}
.session-footer>.btn{width:100%}#restTimer>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 8px}#restClock{font-size:24px;font-variant-numeric:tabular-nums}
#restProgress{width:100%;height:3px;display:block;accent-color:var(--ink);border:0;margin-bottom:12px}
.session-summary{padding:16px 16px max(30px,env(safe-area-inset-bottom));font-size:12px;color:var(--muted)}.session-summary p{margin-top:12px}
.active-training{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;padding:16px;border-radius:8px;background:var(--ink);color:var(--paper);margin-bottom:20px}
.active-training small,.session-history-row small{display:block;font-size:11px;margin-top:5px;opacity:.7}
.session-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:18px 0;font-size:14px}.session-history-row>span{min-width:0;overflow-wrap:anywhere}
.workout-start{position:sticky;bottom:0;padding:16px;background:var(--paper)}.workout-start .btn{width:100%}
/* Full-page navigation and white, edge-to-edge photos throughout training. */
#appDialog,#appDialog.wide{position:fixed;inset:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none;overflow-x:hidden;overscroll-behavior:contain}
dialog>header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}
dialog>header h2{font:600 18px/1.35 var(--sans);overflow-wrap:anywhere}
dialog>header>.btn{flex-shrink:0;background:transparent}
#appDialog .dialog-body{padding-bottom:max(24px,env(safe-area-inset-bottom))}
#appDialog.profile-dialog .dialog-body{padding:0 0 max(24px,env(safe-area-inset-bottom))}
.profile-dialog .dialog-body> :not(.profile-gallery){margin-left:16px;margin-right:16px}
.profile-gallery{gap:0;padding:0;align-items:flex-start;scrollbar-width:thin;overscroll-behavior-x:contain}
.profile-gallery img{flex:0 0 100%;width:100%;height:auto;max-height:none;object-fit:contain;border-radius:0;scroll-snap-align:start}
.exercise-viewer img,.workout-ex .exercise-photo img{width:100%;height:auto;max-height:none;object-fit:contain}
.profile-intro h3,.person-card h3{font:600 22px/1.3 var(--sans)}
.profile-intro>div{min-width:0;overflow-wrap:anywhere}.profile-intro .avatar{flex-shrink:0}
.person-card,.person-cover{border-radius:0}
.person-cover{aspect-ratio:auto;max-height:none}
.person-cover img{height:auto;object-fit:contain;transform:none!important}
.sidebar{border:0}
@media(max-width:760px){
 .sidebar{border:0}
 .person-grid{grid-template-columns:minmax(0,1fr);gap:24px;width:calc(100% + 28px);margin-inline:-14px}
 .person-card>:not(.person-cover){margin-left:14px;margin-right:14px}
 .person-card .person-top{flex-wrap:nowrap}.person-card .actions .btn{font-size:13px}
 .person-card .tag{font-size:11px}
 .hero-visual{margin-inline:-22px;width:calc(100% + 44px);max-width:none;border-radius:0}
 input,textarea,.select-trigger{font-size:16px}
}
/* The header and next action stay visible; only exercise content scrolls. */
.session-dialog[open]{display:flex;flex-direction:column;overflow:hidden;box-shadow:none}
.session-dialog>header,.session-dialog>.session-bar,.session-dialog>.session-progress,.session-dialog>.session-feedback,.session-dialog>.session-footer{flex-shrink:0}
.session-dialog>header{position:static}
.session-dialog .session-bar{position:static;padding:8px 16px;gap:10px}
.session-clock-label{display:block;font-size:10px;color:var(--muted)}
.session-bar>div{margin-right:auto}#sessionClock{font-size:25px}
.session-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-padding-block:16px}
.session-dialog .session-feedback{min-height:30px;padding:4px 16px;line-height:22px}
.session-dialog .session-feedback:has(#sessionSaveStatus:not(:empty)){padding-block:4px}
.session-feedback .error{margin:0;padding:8px 0;background:none}
.session-exercise-nav{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;scrollbar-width:none}
.session-exercise-nav button{flex:0 0 auto;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--paper2);border-radius:24px;padding:10px 16px;min-height:44px;font-size:12px}
.session-exercise-nav button[aria-pressed=true]{background:var(--ink);color:white}
.session-exercise{margin:0 0 12px}
.session-exercise>summary{padding:10px 16px 14px;font-size:20px;line-height:1.35}
.session-exercise>summary small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-bottom:4px}
.exercise-done{align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.session-exercise .exercise-photo img{height:auto;max-height:none;object-fit:contain}
.session-prescription{display:flex;flex-wrap:wrap;gap:6px 16px;background:var(--paper2);font-size:12px}
.session-prescription p{flex-basis:100%}.session-prescription b{font-weight:500;color:var(--ink)}
.set-instructions{padding:16px}.set-instructions strong{font-size:16px}.set-instructions p{font-size:12px;color:var(--muted);margin-top:4px}
.set-instructions .btn{margin-top:10px;font-size:12px}
.set-head,.set-row{grid-template-columns:28px repeat(3,minmax(0,1fr)) 44px;padding-inline:12px;gap:6px}
.set-head{font-size:10px;padding-bottom:8px}
.set-row{padding-block:8px}.set-row input{border:1px solid #dedede;background:white;font-size:16px;min-height:46px}
.set-row input:focus{border-color:var(--ink)}
.set-row.is-current{background:#f0f6ff}.set-row.is-current .set-number{font-weight:700;color:#2359a0}
.set-row.is-done{background:#f4f8f4}.set-row.is-done input{color:#466451;border-color:transparent;background:transparent}
.set-row.is-done .set-check{background:#466451}.set-number{font-size:14px}
.set-row .set-rest{grid-column:auto;display:grid;place-items:center;align-self:stretch;padding:0;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}
.session-exercise-switch{display:flex;justify-content:space-between;gap:12px;padding:14px 16px}
.session-ending{padding:0 16px 20px;margin:0;color:var(--muted)}
.session-ending summary{min-height:44px}.session-ending .actions{margin-top:8px}
.session-dialog .session-footer{position:static;border-top:1px solid var(--line);padding:10px 16px max(12px,env(safe-area-inset-bottom));box-shadow:0 -4px 16px #00000005}
.session-footer>.btn{min-height:50px;font-size:15px;border-radius:10px}
.session-next{font-size:12px;line-height:1.4;margin:0 0 8px;color:var(--muted)}
#restTimer{position:relative}#restTimer>div{padding:0 0 6px}#restLabel{font-size:13px;font-weight:500}
#restTimer [data-rest-clock]{font-size:28px;line-height:1.2;font-variant-numeric:tabular-nums}.rest-expand{background:transparent;padding:8px}#restProgress{margin-bottom:8px}
.rest-overlay{--rest-color:#26623b;position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:18px;padding:max(20px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));text-align:center;color:var(--rest-color);background:#eaf7ed;transition:color .25s,background .25s}
.rest-overlay.warning{--rest-color:#805c00;background:#fff4cf}.rest-overlay.ready{--rest-color:#a52f2a;background:#ffebe9}
.rest-collapse{position:absolute;right:16px;top:max(16px,env(safe-area-inset-top));color:currentColor;background:#ffffff80}
.rest-overlay-copy{display:flex;flex-direction:column;gap:5px;margin-top:38px}.rest-overlay-copy>span{font-size:12px;text-transform:uppercase;letter-spacing:.16em}.rest-overlay-copy>strong{font-size:22px}
.rest-ring{--rest-progress:0;width:min(72vw,340px);aspect-ratio:1;border-radius:50%;padding:18px;background:conic-gradient(currentColor calc(var(--rest-progress)*1turn),#ffffff80 0);box-shadow:0 18px 60px #0000000b}
.rest-ring-center{width:100%;height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:color-mix(in srgb,currentColor 7%,white);color:currentColor}
.rest-ring-center svg{width:34px;height:34px}.rest-ring-center strong{font-size:clamp(58px,17vw,96px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.rest-ring-center span{font-size:12px}
.rest-overlay>p{font-size:13px}.rest-go{width:min(100%,420px);min-height:54px;background:var(--rest-color)!important;color:white!important;font-size:15px}
@media(max-width:360px){.session-bar .btn{padding-inline:10px}}
/* Calendar: one month, compact status marks, session details on demand. */
#trainingCalendar{max-width:940px;margin:0 auto 30px}
.calendar-student{display:block;font-size:11px;color:var(--muted);margin-top:5px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 20px}.calendar-heading h2{font:500 18px/1.3 var(--sans);text-transform:capitalize}
.calendar-totals{display:flex;justify-content:space-around;gap:12px;font-size:11px;color:var(--muted);margin-bottom:22px}.calendar-totals b{color:var(--ink);font-size:20px;display:block}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekday{text-align:center;color:var(--muted);font-size:11px;padding:8px 0}
.calendar-day{height:60px;min-width:0;border-radius:8px;padding:8px 0;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.calendar-day.is-today>span:first-child{font-weight:700;text-decoration:underline;text-underline-offset:4px}.calendar-day[aria-pressed=true]{background:var(--paper2)}
.calendar-dots{display:flex;gap:3px;min-height:6px}.day-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#aaa29a;flex-shrink:0}.day-dot.completed{background:#466451}.day-dot.partial,.day-dot.active{background:#b68542}.day-dot.missed{background:#ad5548}.day-dot.cancelled{background:#c6b7af}
.calendar-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:10px;color:var(--muted);padding:20px 0}.calendar-legend>span{display:flex;gap:5px;align-items:center}
.calendar-details>h3{font:500 18px/1.4 var(--sans);margin:15px 0}.calendar-entry{padding:16px 0;border-bottom:1px solid #16161612}.calendar-entry>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.calendar-entry h4{margin:0;font-size:14px;font-weight:500;overflow-wrap:anywhere}
.session-state{font-size:10px;white-space:nowrap;color:var(--muted)}.session-state.missed{color:#ad5548}.session-state.completed{color:#466451}.session-state.partial{color:#996c31}
.calendar-entry>.btn{margin-top:12px}.calendar-entry>p{margin-top:8px}.calendar-zone{margin-top:20px}.legacy-session{font-size:12px;margin:14px 0}.legacy-session summary{cursor:pointer}.legacy-session p{margin-top:8px}
@media(max-width:760px){
 .builder-dialog .builder-picker .exercise-copy{padding:0}.builder-tabs{top:74px}.builder-count .btn{padding-inline:15px}
 .builder-dialog .form-grid{grid-template-columns:minmax(0,1fr)}.builder-dialog .builder-row .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .session-exercise .exercise-photo img{max-height:none}.set-head,.set-row{padding-inline:12px;gap:6px;grid-template-columns:28px repeat(3,minmax(0,1fr)) 44px}
 .calendar-day{height:52px}.calendar-grid{gap:2px}.calendar-totals{gap:8px}
}
