@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@800&family=Poppins:wght@400;500;600;700&display=swap');
:root{font-family:Poppins,Arial,sans-serif;color:#111111;background:#ffffff;font-size:16px;font-synthesis:none;--bg:#ffffff;--panel:#ffffff;--border:#dde3ef;--muted:#647084;--blue:#2854e8;--on-blue:#ffffff;--red:#b42318;--radius:18px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue)}a:hover{text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3,.display{font-family:Montserrat,Arial,sans-serif;font-weight:800;letter-spacing:-.025em;text-transform:uppercase}h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.05}h2{font-size:1.9rem;line-height:1.1}h3{font-size:1.4rem;line-height:1.15}p{line-height:1.7}.muted{color:var(--muted)}.small{font-size:.875rem}.eyebrow{font-size:.875rem;font-weight:600;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px}.loading{padding:15vh 24px;text-align:center}.tag{font-size:.8rem;color:var(--blue);background:#eef2ff;padding:6px 10px;border-radius:6px;white-space:nowrap}.pill{padding:5px 10px;border:1px solid var(--border);border-radius:20px;font-size:.8rem;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:10px;border:1px solid var(--border);background:#f2f5fb;color:#2854e8;font-weight:600;text-decoration:none;font-size:.95rem}.btn:hover{background:#e9eefb}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.btn.primary:hover{background:#1740bd}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.compact{min-height:40px;padding:8px 12px;font-size:.875rem}.btn.full{width:100%}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.flex{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:20px}.gap-sm{gap:10px}.card{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:24px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{margin-bottom:28px}.page-head .muted{margin-top:12px}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{padding:34px 20px;position:fixed;inset:0 auto 0 0;width:228px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:32px;background:var(--bg)}.wordmark{font-family:Montserrat,Arial,sans-serif;font-size:1.75rem;letter-spacing:.05em;color:var(--blue);text-decoration:none}.brand-line{font-size:.8rem;color:var(--muted);margin-top:3px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;padding:14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.95rem}.nav button:hover{background:#f1f4ff;color:#111}.nav button.active{background:#eef2ff;color:var(--blue)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:14px}.avatar{width:40px;height:40px;display:grid;place-items:center;background:#eef2ff;border-radius:50%;color:var(--blue);font-weight:600}.main{grid-column:2;padding:32px 42px 70px;min-width:0}.main-inner{max-width:1180px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:34px}.date{font-size:.875rem;color:var(--muted)}.demo-banner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:#f4f7ff;border:1px solid #d8e2ff;border-radius:10px;padding:10px 14px;font-size:.875rem;margin-bottom:24px}.demo-banner button{background:transparent;border:0;color:var(--blue);font-size:.875rem;font-weight:600;padding:7px}.mobile-brand{display:none}.metric{font-family:Montserrat,Arial,sans-serif;font-size:2.8rem;color:var(--blue);line-height:1}.today-grid{grid-template-columns:minmax(0,1.3fr) minmax(270px,.8fr)}.workout-hero{position:relative;background:linear-gradient(130deg,#edf2ff,#ffffff 65%);padding:30px;display:flex;flex-direction:column;gap:24px}.workout-hero h2{font-size:3.6rem}.workout-stats{display:flex;gap:30px}.stat-label{color:var(--muted);font-size:.875rem;margin-top:3px}.hero-number{font-family:Montserrat,Arial,sans-serif;font-size:2rem}.divider{height:1px;background:var(--border);margin:20px 0}.week-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #e8ecf4}.week-row:last-child{border:0}.week-day{font-size:.875rem;color:var(--muted)}.week-row.today .week-day{color:var(--blue);font-weight:700}.week-row.today{background:#f1f4ff;border-radius:8px;padding-inline:8px;margin-inline:-8px}.week-activity{font-size:.95rem}.volume-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:20px}.volume-cell{display:flex;flex-direction:column;gap:8px}.volume-label{font-size:.875rem;color:var(--muted)}.volume-value{font-size:1.3rem;font-weight:600}.volume-bar{height:4px;border-radius:4px;background:#e1e7f6;overflow:hidden}.volume-bar span{display:block;background:var(--blue);height:100%}.workout-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.workout-tile{text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:22px;color:inherit;display:flex;flex-direction:column;gap:12px}.workout-tile:hover{border-color:var(--blue)}.exercise-list-preview{font-size:.875rem;color:var(--muted);line-height:1.8}.session-head{position:sticky;top:0;z-index:5;background:#fffffff5;backdrop-filter:blur(15px);padding:12px 0 18px;border-bottom:1px solid var(--border);margin-bottom:24px}.session-title{font-size:2.1rem}.progress-track{height:5px;background:#e6ebf5;border-radius:6px;margin-top:14px;overflow:hidden}.progress-fill{height:100%;background:var(--blue);transition:width .2s}.workout-surface{max-width:800px;margin:0 auto}.exercise{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.exercise+.exercise{margin-top:16px}.exercise-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;background:transparent;border:0;color:inherit;width:100%;text-align:left;padding:20px}.exercise-summary h3{font-family:Poppins,Arial,sans-serif;text-transform:none;font-size:1rem;font-weight:600;letter-spacing:0;line-height:1.5}.exercise-number{width:32px;height:32px;display:grid;place-items:center;background:#eef2ff;border-radius:8px;flex-shrink:0;color:var(--blue);font-size:.9rem}.exercise-summary .prescription{margin-top:5px;color:var(--muted);font-size:.875rem}.exercise-body{padding:0 22px 24px}.video{aspect-ratio:16/9;width:100%;border:0;background:#111111;border-radius:12px;display:block}.video-header{margin-bottom:10px;font-size:.875rem}.cue{margin-top:16px;white-space:pre-line;color:#343b49;font-size:.95rem;line-height:1.75}.exercise-meta{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 22px}.set-grid{display:grid;grid-template-columns:32px minmax(72px,1.2fr) minmax(64px,1fr) minmax(60px,1fr) 44px;gap:10px;align-items:center}.set-labels{font-size:.8rem;color:var(--muted);margin-bottom:8px;text-align:center}.set-labels div:nth-child(2){text-align:left}.set-row{padding:7px 0}.set-row input{width:100%;min-width:0;background:#ffffff;border:1px solid #ced7e6;color:#111;border-radius:9px;min-height:52px;padding:8px;text-align:center;font-size:1.1rem;font-weight:600}.set-row input::placeholder{font-size:.95rem;color:#8190a6;font-weight:400}.set-row.done input{border-color:#2854e8;color:var(--blue);background:#f0f4ff}.set-index{font-size:.875rem;color:var(--muted);text-align:center}.set-check{border:1px solid #d8e0ee;background:#f2f5fb;color:#68768b;border-radius:10px;min-height:48px;width:44px;display:grid;place-items:center}.set-check.done{background:var(--blue);color:var(--on-blue);border-color:var(--blue)}.previous-panel{margin-top:22px;border-top:1px solid var(--border);padding-top:18px}.previous-lines{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.previous-set{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.875rem}.suggestion{padding:18px;border-radius:12px;background:#f1f5ff;border:1px solid #d7e2ff;margin-top:16px}.suggestion h4{font-size:1rem;margin:6px 0 8px;color:var(--blue)}.suggestion p{font-size:.875rem;color:#343e55;line-height:1.75}.suggestion .eyebrow{color:#5875b6;font-size:.8rem}.save-state{font-size:.8rem;color:var(--muted)}.save-state.failed{color:var(--red)}.notes label{display:block;color:var(--muted);font-size:.875rem;margin-bottom:8px}.input,select,textarea{width:100%;min-height:48px;background:#ffffff;border:1px solid #ced7e6;border-radius:9px;color:#111111;padding:12px;font-size:.95rem}textarea{resize:vertical;min-height:100px;line-height:1.65}label.field{display:flex;flex-direction:column;gap:8px;font-size:.875rem;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.history-item{border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;justify-content:space-between;gap:16px;background:var(--panel);color:inherit;text-align:left;width:100%}.history-item:hover{border-color:var(--blue)}.client-card{display:flex;flex-direction:column;gap:20px}.client-name{font-size:1.5rem}.empty{padding:36px;text-align:center;border:1px dashed #c4cede;border-radius:16px;color:var(--muted);line-height:1.8}.empty h2{color:#111;margin-bottom:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tabs button{border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--muted);padding:11px 16px;min-height:44px}.tabs button.active{color:var(--on-blue);background:var(--blue);border-color:var(--blue)}.editor-exercise{border:1px solid var(--border);border-radius:14px;padding:20px;background:var(--panel)}.editor-exercise+.editor-exercise{margin-top:14px}.editor-exercise .form-grid{margin-top:20px}.toggle{display:flex;align-items:center;gap:12px;font-size:.875rem;color:#343b49}.toggle input{width:20px;height:20px;accent-color:var(--blue)}.schedule-editor{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:18px}.schedule-editor select{font-size:.8rem;padding:8px;min-width:0}.search{max-width:460px;margin-bottom:20px}.library-row{padding:17px 18px;background:var(--panel);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:14px}.library-row+.library-row{margin-top:10px}.library-row h3{font-family:Poppins,Arial,sans-serif;font-size:.95rem;text-transform:none;font-weight:600;letter-spacing:0}.import-drop{padding:40px 24px;border:1px dashed #9baedc;border-radius:18px;background:#f6f8ff;text-align:center;display:flex;flex-direction:column;gap:18px;align-items:center}.import-drop input{max-width:100%;color:var(--muted);font-size:.875rem}.warning{padding:14px 18px;border:1px solid #ecd295;background:#fffaf0;color:#75550c;border-radius:10px;font-size:.875rem;line-height:1.75}.warning+.warning{margin-top:8px}.error{padding:14px 18px;border:1px solid #edb3ac;background:#fff4f2;color:var(--red);border-radius:10px;font-size:.875rem;line-height:1.75}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:linear-gradient(145deg,#e9efff,#ffffff 65%);padding:70px;display:flex;flex-direction:column;justify-content:space-between}.auth-brand h1{font-size:clamp(3rem,6vw,6rem);max-width:600px;line-height:1.05}.auth-brand h1 span{color:var(--blue)}.auth-form{padding:60px 40px;max-width:500px;width:100%;margin:auto}.auth-form h2{font-size:2.4rem;margin-bottom:14px}.auth-form form{display:flex;flex-direction:column;gap:20px;margin-top:28px}.auth-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px}.text-btn{background:transparent;border:0;color:var(--blue);padding:6px 0;font-size:.875rem}.install-note{font-size:.8rem;color:var(--muted);line-height:1.7;margin-top:28px}.finish-card{border:1px solid #d7e2ff;background:#f2f6ff;border-radius:18px;padding:30px;text-align:center}.finish-card h1{color:var(--blue);margin:14px 0}.finish-card .metric{font-size:3.5rem}.finish-card .flex{justify-content:center}.mobile-nav{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#111827;color:#ffffff;border-radius:12px;padding:14px 20px;font-size:.875rem;max-width:calc(100vw - 32px);z-index:40;display:none;box-shadow:0 8px 40px #0005}#toast.show{display:block}dialog{background:var(--panel);color:#111;border:1px solid #d7dfee;border-radius:18px;max-width:650px;width:calc(100vw - 32px);max-height:88vh;padding:26px}dialog::backdrop{background:#060b09cc;backdrop-filter:blur(4px)}dialog .modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}dialog .modal-body{overflow:auto}dialog .form-grid{margin-bottom:20px}.readonly-table{width:100%;border-collapse:collapse;font-size:.875rem}.readonly-table td,.readonly-table th{text-align:left;padding:12px 8px;border-bottom:1px solid var(--border)}.readonly-table th{color:var(--muted);font-weight:500}.notice{padding:10px 0;font-size:.875rem;color:var(--muted)}.warmup details{border-bottom:1px solid var(--border);padding:14px 0}.warmup summary{cursor:pointer;font-size:.95rem;line-height:1.6}.footer-save{margin-top:24px;padding:20px;border:1px solid var(--border);border-radius:14px;background:#f4f7ff;display:flex;align-items:center;justify-content:space-between;gap:16px}.client-toolbar{margin-bottom:22px}.client-toolbar select{max-width:360px}.help-copy{font-size:.875rem;color:var(--muted);line-height:1.8}.help-copy ol{padding-left:22px}.help-copy li{margin-bottom:10px}.connection-badge{font-size:.8rem;color:var(--muted)}
@media(min-width:1200px){.main{padding-inline:56px}}
@media(max-width:950px){.shell{grid-template-columns:192px 1fr}.sidebar{width:192px;padding-inline:15px}.main{padding:24px}.today-grid{grid-template-columns:1fr}.schedule-editor{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-brand{padding:40px}.volume-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.shell{display:block}.sidebar{display:none}.main{padding:20px 16px calc(100px + env(safe-area-inset-bottom));}.topbar{margin-bottom:20px}.mobile-brand{display:block;font-family:Montserrat,Arial,sans-serif;color:var(--blue);font-size:1.5rem;letter-spacing:.035em}.topbar .date{font-size:.8rem}.demo-banner{font-size:.8rem;padding:8px 12px;gap:2px;margin-bottom:20px}.demo-banner button{padding:8px 0}.card{padding:20px}.page-head{margin-bottom:22px}.page-head h1{font-size:2.6rem}.grid.two,.workout-list{grid-template-columns:1fr}.workout-hero{padding:24px}.workout-hero h2{font-size:3.2rem}.workout-stats{gap:24px}.volume-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.volume-label{font-size:.8rem}.volume-value{font-size:1.2rem}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;border-top:1px solid var(--border);background:#fffffffa;backdrop-filter:blur(15px);padding:8px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:.75rem;color:var(--muted);background:none;border:0;padding:8px;min-width:58px;min-height:52px}.mobile-nav button.active{color:var(--blue)}.mobile-nav .icon{width:22px;height:22px}.session-head{padding-top:8px}.session-title{font-size:1.8rem}.session-head .btn{padding:9px 12px;min-height:44px;font-size:.875rem}.exercise-summary{padding:18px 16px}.exercise-body{padding:0 16px 20px}.set-grid{grid-template-columns:24px minmax(61px,1.1fr) minmax(54px,1fr) minmax(50px,1fr) 42px;gap:6px}.set-row input{font-size:1rem;padding:8px 4px;min-height:52px}.set-check{width:42px}.cue{font-size:.875rem}.form-grid{gap:12px}.schedule-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-exercise{padding:16px}.footer-save{align-items:stretch;flex-direction:column}.auth-layout{display:block}.auth-brand{padding:28px;min-height:auto;gap:36px}.auth-brand h1{font-size:3.4rem}.auth-brand>p{display:none}.auth-form{padding:30px 24px 48px}.auth-form h2{font-size:2rem}.history-item{padding:18px}.workout-surface{margin-top:-4px}#toast{bottom:96px}.library-row{padding:15px 12px}.library-row .btn{padding:8px 10px}.client-toolbar{flex-direction:column;align-items:stretch}.client-toolbar select{max-width:none}.readonly-table{font-size:.8rem}.readonly-table td,.readonly-table th{padding:10px 4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* The exercise player is a focused, thumb-friendly screen. */
.training-shell .topbar,.training-shell .mobile-nav{display:none}
.training-shell .demo-banner{margin-bottom:12px}
.training-shell .main{padding-bottom:210px}
.workout-surface{max-width:760px}
.session-head{margin-bottom:18px;background:#fffffff7;padding-top:8px}
.session-context{display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:var(--muted);margin:14px 0}
.exercise-dots{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.exercise-dot{width:30px;height:30px;min-width:30px;border:1px solid #d4def5;border-radius:50%;background:#f5f7fc;color:#647084;font-size:.72rem;font-weight:600;display:grid;place-items:center;padding:0}
.exercise-dot.current{border:2px solid var(--blue);background:var(--blue);color:#fff;transform:scale(1.15)}
.exercise-dot.complete{background:#e8efff;border-color:#9ab0fa;color:var(--blue)}
.exercise-dot.current.complete{background:var(--blue);color:#fff}
.exercise-dot .icon{width:16px;height:16px}
.exercise-page{border:0;touch-action:pan-y;overflow:visible}
.exercise-heading{padding:8px 0 0}
.exercise-heading h2{font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.15;font-weight:800;overflow-wrap:anywhere}
.exercise-page .exercise-body{padding:0}
.exercise-heading .exercise-meta{margin:14px 0 18px}
.reference-row{display:flex;gap:14px;align-items:flex-start;background:#f5f7fc;border-radius:12px;padding:12px}
.video-teaser{display:flex;flex-direction:column;gap:7px;background:none;border:0;color:#111;text-align:left;padding:0;flex-shrink:0;width:115px}
.video-thumbnail{display:block;position:relative;width:115px;height:70px;border-radius:8px;background:#d8e1f4;overflow:hidden}
.video-thumbnail img{width:100%;height:100%;object-fit:cover}
.video-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#0002}
.video-play .icon{width:28px;height:28px;fill:#2854e8;stroke:#fff}
.video-teaser-label{font-size:.72rem;color:#2854e8;font-weight:600;line-height:1.4}
.video-teaser-label>span{display:block;font-size:.65rem;font-weight:400;color:#647084;margin-top:3px;overflow-wrap:anywhere}
.last-performance{flex:1;min-width:0}.last-performance .eyebrow{font-size:.68rem;margin-bottom:4px}
.last-performance .small{font-size:.72rem}.previous-lines{gap:5px;margin-top:7px}.previous-set{padding:4px 6px;background:#fff;font-size:.72rem;border-color:#dde4f2}
.exercise-instructions{margin-top:14px;font-size:.8rem;color:#3b465a}.exercise-instructions summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:#2854e8;font-weight:500}
.exercise-instructions .cue{margin:0 0 14px}
.suggestion{margin-top:8px;padding:14px}.suggestion h4{font-family:Montserrat,Arial,sans-serif;font-weight:800;font-size:.95rem}.suggestion p{font-size:.8rem;line-height:1.65}
.set-toolbar{margin:18px 0 8px}.set-labels div:nth-child(2){text-align:center}
.set-check{border-radius:50%;height:44px;min-height:44px;background:#eef3ff;border-color:#b9c9fa;color:#2854e8}.set-check.done{color:#fff}
.set-row.done input{color:#183797;background:#f5f8ff;border-color:#bfd0ff}
.set-index small{display:block;font-size:.56rem;color:#2854e8}
.extra-controls{display:flex;justify-content:center;align-items:center;gap:16px;margin:18px 0 10px;font-size:.85rem;color:var(--muted)}
.extra-controls .btn{border-color:#c8d5fa;color:#2854e8}
.session-notes{margin-top:24px;padding:16px;background:#f8faff;font-size:.85rem}.session-notes summary,.warmup>summary{cursor:pointer;min-height:28px}.warmup{padding:14px 16px;margin-bottom:12px;font-size:.85rem;background:#f8faff}.warmup>summary{font-weight:500;color:#2854e8}
.workout-dock{position:fixed;z-index:15;bottom:18px;left:calc(228px + (100vw - 228px)/2);transform:translateX(-50%);width:min(760px,calc(100vw - 300px));border:1px solid #dce4f5;border-radius:18px;background:#fffffff5;backdrop-filter:blur(16px);padding:12px 16px;box-shadow:0 6px 30px #15378712}
.dock-navigation{display:grid;grid-template-columns:88px 1fr 88px;gap:10px;align-items:center}.dock-navigation>.btn{padding:8px 10px;color:#2854e8;border:0}
.timer-box{text-align:center}.timer-box>.small{font-size:.7rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:250px;margin:auto}
.timer-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:5px}.timer-controls>.btn{padding:6px;min-width:38px;border-radius:50%;font-size:.7rem;color:#2854e8}
.timer-main{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #2854e8;border-radius:50%;width:78px;height:78px;background:#f4f7ff;color:#2854e8;padding:5px;font-size:.7rem;flex-shrink:0}
.timer-main strong{font-family:Montserrat,Arial,sans-serif;font-weight:800;font-size:1.35rem;font-variant-numeric:tabular-nums}.timer-main.ready{background:#2854e8;color:#fff}.timer-main span{font-size:.57rem;font-weight:500;line-height:1.3}
.dock-options{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:6px;font-size:.68rem}.dock-options .btn{border:0;font-size:.7rem;min-height:30px;padding:5px}.dock-options .text-btn{font-size:.7rem;min-height:30px}.dock-options>span{font-size:.65rem}
.video-local img{width:100%;border-radius:12px;max-height:300px;object-fit:cover}
.video{min-height:200px}dialog:has(.video){max-width:820px}
.wordmark,.mobile-brand,.metric,.hero-number{font-weight:800;letter-spacing:-.03em}.wordmark{font-size:1.45rem}.workout-hero h2{font-size:3rem}.page-head h1{font-size:clamp(2rem,5vw,3.2rem)}
@media(max-width:950px){.workout-dock{left:calc(192px + (100vw - 192px)/2);width:calc(100vw - 240px)}}
@media(max-width:680px){.training-shell .main{padding:12px 16px calc(205px + env(safe-area-inset-bottom))}.training-shell .demo-banner{font-size:.68rem;margin-bottom:8px}.training-shell .demo-banner button{font-size:.68rem}.workout-dock{left:0;right:0;bottom:0;transform:none;width:100%;border-radius:16px 16px 0 0;padding:10px 10px calc(8px + env(safe-area-inset-bottom))}.dock-navigation{grid-template-columns:65px minmax(0,1fr) 65px;gap:4px}.dock-navigation>.btn{font-size:.75rem;padding:6px 2px}.timer-controls{gap:8px}.timer-main{width:68px;height:68px}.timer-main strong{font-size:1.2rem}.timer-box>.small{max-width:180px;font-size:.64rem}.dock-options>span{display:none}.session-context{font-size:.72rem}.exercise-dots{gap:8px}.exercise-dot{width:26px;height:26px;min-width:26px;font-size:.65rem}.exercise-heading h2{font-size:1.65rem}.exercise-meta .pill{font-size:.7rem;padding:4px 7px}.reference-row{padding:10px;gap:10px}.video-teaser,.video-thumbnail{width:96px}.video-thumbnail{height:60px}.set-grid{grid-template-columns:26px minmax(58px,1.1fr) minmax(52px,1fr) minmax(45px,.85fr) 42px}.exercise-page .exercise-body{padding:0}.set-toolbar .btn{min-height:36px;font-size:.75rem}#toast{bottom:180px}}
/* Black navigation and selective dark panels retain a white training canvas. */
.sidebar{background:#0b0d12;color:#fff;border-color:#151a25}
.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:14px;text-decoration:none}
.brand-logo{width:78px;height:68px;object-fit:contain}.sidebar .wordmark{color:#fff;font-size:1.3rem}.sidebar .brand-line{color:#8b95a9}
.sidebar .nav button{color:#a9b2c6}.sidebar .nav button:hover{color:#fff;background:#161d2c}.sidebar .nav button.active{background:#2854e8;color:#fff}
.sidebar .avatar{background:#1a2440;color:#a8beff}.sidebar .muted{color:#929cb1}.sidebar-foot .btn{background:#141923;border-color:#293245;color:#dce6ff}
.mobile-brand{display:flex;align-items:center;gap:10px}.mobile-brand img{width:34px;height:32px;object-fit:contain}.mobile-brand{display:none}
.workout-hero{background:#0d1018;border-color:#161c2b;color:#fff}.workout-hero .muted,.workout-hero .eyebrow,.workout-hero .stat-label{color:#a4aec3}.workout-hero .tag{background:#1c2951;color:#b3c6ff}
.training-shell .main{padding-bottom:70px}.training-shell .sidebar{background:#0b0d12}
.training-shell .workout-surface{padding-bottom:12px}.training-shell .exercise-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #e5eaf5;margin-top:24px;padding-top:18px}
.warmup-page{touch-action:pan-y}.warmup-page h2{font-size:clamp(1.7rem,4vw,2.5rem)}.warmup-protocol{white-space:pre-line;background:#f4f7ff;border-left:4px solid #2854e8;padding:18px;margin:20px 0;font-size:.9rem;line-height:1.8}.warmup-items{margin:22px 0}.warmup-item{padding:20px}.warmup-item h3{font-size:1rem}.warmup-item .set-check{flex-shrink:0}.warmup-item .video-teaser{flex-direction:row;width:auto;gap:12px;align-items:center;margin-top:8px}.warmup-item .video-teaser-label{max-width:320px}.warmup-item .cue{font-size:.85rem}
.rest-popup{position:fixed;right:28px;bottom:24px;z-index:18;width:300px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #d9e2f7;box-shadow:0 10px 45px #111b3340;border-radius:20px;padding:16px}
.rest-popup .eyebrow{margin:0;font-size:.75rem}.rest-popup-content>.small{font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:12px 0}.rest-popup .timer-main{width:88px;height:88px}.rest-popup .timer-main strong{font-size:1.6rem}.rest-popup .timer-controls{margin:12px 0}.rest-popup-options{margin-top:8px}.rest-popup-options .btn{border:0}
.rest-popup-mini{display:none}.rest-popup.minimized{width:auto;padding:8px 10px;border-radius:16px}.rest-popup.minimized .rest-popup-content{display:none}.rest-popup.minimized .rest-popup-mini{display:flex;align-items:center;gap:8px}.rest-popup-mini .btn.primary{gap:12px;padding:10px 14px;min-height:42px}.rest-popup-mini strong{font-family:Montserrat,Arial,sans-serif;font-size:1.1rem;font-variant-numeric:tabular-nums}.rest-popup-mini span{font-size:.75rem}
.session-rating{border:0;padding:0;margin:24px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.session-rating legend{font-size:.85rem;color:#647084;margin-bottom:12px}.rating-option{position:relative;cursor:pointer}.rating-option input{position:absolute;opacity:0;width:1px;height:1px}.rating-content{display:flex;align-items:center;flex-direction:column;gap:10px;padding:16px 8px;border:2px solid #e4e8f0;border-radius:14px;font-size:.8rem;text-align:center;color:#111}.rating-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;font-size:1.9rem}.poor .rating-icon{background:#ffe8e5}.okay .rating-icon{background:#fff2d7}.great .rating-icon{background:#ddf6e9}.poor input:checked+.rating-content{border-color:#df7164;background:#fff8f6}.okay input:checked+.rating-content{border-color:#d99b2a;background:#fffbf1}.great input:checked+.rating-content{border-color:#25a470;background:#f1fbf6}.rating-option input:focus-visible+.rating-content{outline:3px solid #2854e8;outline-offset:3px}.checkout-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.checkout-warning{margin-top:16px}.session-feedback-detail{border:1px solid #dfe6f4;padding:16px;border-radius:12px}.session-feedback-detail p{margin-top:8px}
.volume-intro{margin-top:12px}.muscle-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:36px;margin-top:24px;align-items:center}.body-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:400px;margin:auto}.body-view{display:flex;flex-direction:column;align-items:center;gap:8px;color:#657084;font-size:.8rem}.body-map{width:100%;max-height:330px;overflow:visible}.body-outline,.body-head{fill:#f3f5f8;stroke:#c2cad7;stroke-width:1.2}.muscle-region path{fill:var(--muscle-fill);stroke:#fff;stroke-width:1.2;stroke-linejoin:round}.muscle-region{cursor:pointer;outline:none}.muscle-region:hover path,.muscle-region:focus-visible path{stroke:#2854e8;stroke-width:2}.muscle-region.band-unknown path{stroke:#e5854d;stroke-dasharray:3 2}.muscle-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 14px;margin-top:18px;font-size:.7rem;color:#647084}.muscle-legend span{display:flex;align-items:center;gap:6px}.muscle-legend i,.allocation-row i{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.allocation-list{display:grid;grid-template-columns:1fr;gap:1px}.allocation-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;min-height:42px;border:0;border-bottom:1px solid #e8edf5;background:transparent;color:#111;text-align:left;font-size:.85rem}.allocation-row>span{display:flex;align-items:center;gap:10px}.allocation-row strong{white-space:nowrap}.allocation-row small{font-size:.7rem;color:#647084;font-weight:400}.allocation-row:hover{background:#f5f7ff;border-radius:8px}.muscle-detail{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.muscle-detail-swatch{width:48px;height:48px;border-radius:50%;display:block}.history-selector{display:flex;flex-direction:column;gap:8px;font-size:.75rem;color:#647084;margin:14px 0 0}.history-selector select{font-size:.8rem;min-height:42px}.history-disclaimer{font-size:.7rem;color:#647084;line-height:1.6;margin:6px 0 10px}
@media(max-width:950px){.muscle-layout{gap:20px;grid-template-columns:minmax(230px,1fr) minmax(230px,1fr)}}
@media(max-width:680px){.mobile-brand{display:flex}.training-shell .main{padding-bottom:36px}.training-shell .exercise-navigation .muted{font-size:.7rem}.training-shell .exercise-navigation{margin-bottom:10px;gap:10px}.exercise-navigation>.flex{gap:8px}.exercise-navigation .btn{font-size:.8rem}.rest-popup{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:280px;padding:14px}.rest-popup.minimized{width:auto}.warmup-item{padding:16px}.warmup-protocol{font-size:.8rem}.warmup-item .video-teaser-label{max-width:170px}.muscle-layout{grid-template-columns:1fr;gap:20px}.body-figures{max-width:320px;gap:24px}.body-map{max-height:270px}.allocation-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 12px}.allocation-row{padding:10px 0;font-size:.74rem;gap:6px}.allocation-row>span{gap:6px}.allocation-row small{display:none}.rating-content{font-size:.72rem;padding:14px 6px}.rating-icon{width:44px;height:44px;font-size:1.6rem}#toast{bottom:30px}}
/* V1.3: personal branding, simpler exercise reference, and supplied anatomical artwork. */
.brand-logo{width:104px;height:92px}.sidebar .wordmark{line-height:1.25;font-size:1.3rem;overflow-wrap:anywhere;text-transform:none;letter-spacing:-.025em}
.mobile-brand{max-width:65%;font-size:1rem;line-height:1.25;text-transform:none}.mobile-brand img{background:#0b0d12;width:46px;height:42px;border-radius:7px;padding:4px;flex-shrink:0}
.no-video{display:grid;place-items:center;color:#b3c4ff}.no-video .icon{width:36px;height:36px}.demo-description{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.demo-description h3{font-size:1.05rem}.demo-description .cue{margin-top:12px}
.suggestion{margin-top:18px;padding:18px}.suggestion .eyebrow{font-size:.8rem;margin-bottom:10px}.suggestion h4{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:1rem;line-height:1.5;margin:0 0 10px}.suggestion p{font-size:.85rem}.suggestion .recommendation-context{font-size:.72rem;color:#647084;margin-top:8px}
.exercise-notes{margin-top:22px;padding:16px;background:#f8faff;font-size:.85rem}.exercise-notes summary{cursor:pointer;font-weight:600;min-height:32px}.exercise-notes label{margin-top:14px}.exercise-notes textarea{min-height:100px}.exercise-notes .btn{margin-top:10px}.history-exercise-note{font-size:.85rem;margin-top:12px;white-space:pre-wrap;color:#343e55}
.preview-history-review{font-size:.75rem;color:#647084;margin-top:12px}.preview-history-review>summary{cursor:pointer;min-height:32px;display:list-item;padding-top:6px}.optional-cooldown{background:#f5f7fb;border-left:4px solid #111827;padding:18px;border-radius:10px;margin-bottom:22px}.optional-cooldown p{font-size:.85rem;white-space:pre-line;line-height:1.75}
.anatomy-figures{max-width:430px;margin:auto}.anatomy-map{width:100%;height:auto;display:block}.anatomy-artwork{pointer-events:none}.anatomy-map .muscle-region path{fill:var(--muscle-fill);fill-opacity:.72;stroke:none;stroke-width:0}.anatomy-map .band-low path{fill-opacity:0}.anatomy-map .muscle-region:hover path,.anatomy-map .muscle-region:focus-visible path{fill-opacity:.85;stroke:#2854e8;stroke-width:3}.anatomy-map .band-unknown path{stroke:#d78032;stroke-width:3;stroke-dasharray:8 5;fill-opacity:.15}.anatomy-view-labels{display:grid;grid-template-columns:1fr 1fr;text-align:center;font-size:.8rem;color:#647084;margin-top:6px}
@media(max-width:680px){.anatomy-figures{max-width:350px}.suggestion{padding:15px}.suggestion h4{font-size:.9rem}.suggestion p{font-size:.78rem}.exercise-notes{font-size:.8rem}.mobile-brand{font-size:.85rem}.demo-description .cue{font-size:.85rem}}
/* V1.4: completion drills, autonomous targets and coach review. */
.sidebar .brand-logo{width:83.2px;height:73.6px}.mobile-brand img{width:36.8px;height:33.6px}
.set-grid.no-rir{grid-template-columns:32px minmax(72px,1.2fr) minmax(64px,1fr) 44px}.completion-sets{margin-top:22px;display:flex;flex-direction:column;gap:10px}.completion-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border:1px solid #dde4f4;border-radius:12px}.completion-row.done{background:#f2f6ff;border-color:#b8cafd}.completion-row strong,.completion-row span{display:block}.completion-row strong{font-size:.9rem}.completion-row span{font-size:.8rem;color:#647084;margin-top:4px}
.working-set-choice{padding:14px 16px;border:1px solid #e6d3a9;border-radius:12px;background:#fffcf5;margin-top:16px;font-size:.85rem}.working-set-choice summary{cursor:pointer;font-weight:600;line-height:1.6}.working-set-choice .help-copy{margin:12px 0}.working-set-options{display:flex;flex-direction:column;gap:12px}.working-set-options .toggle{font-size:.78rem;align-items:flex-start}.working-set-options input{flex-shrink:0}
.review-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px}.review-metrics .card{background:#10141d;border-color:#10141d;color:#fff}.review-metrics strong{font-family:Montserrat,Arial,sans-serif;font-size:2.25rem;display:block}.review-metrics span{display:block;color:#a6b2cb;font-size:.8rem;margin-top:6px}.review-focus-list{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-focus{border:1px solid #e0e6f1;border-radius:12px;padding:18px}.review-focus.attention{border-left:4px solid #e5b343}.review-focus h4{margin:0;font-size:.9rem;line-height:1.5}.review-focus .pill{font-size:.65rem;white-space:normal}.review-focus p{font-size:.8rem;margin-top:12px}.review-focus .btn{margin-top:14px}.review-controls{display:grid;grid-template-columns:minmax(130px,.6fr) minmax(160px,1fr) minmax(150px,.8fr);gap:14px;margin-top:22px}.review-controls select{font-size:.8rem}.trend-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:24px 0 8px}.trend-summary strong{font-family:Montserrat,Arial,sans-serif;font-size:1.9rem;color:#2854e8}.trend-summary small{font-family:Poppins,Arial,sans-serif;font-weight:400;font-size:.85rem}.trend-summary>span{font-size:.8rem;color:#647084}.trend-chart{display:block;width:100%;overflow:visible;margin:16px 0}.trend-chart text{font-family:Poppins,Arial,sans-serif;font-size:11px;fill:#647084}.chart-grid{stroke:#e7ebf3;stroke-width:1}.chart-line{stroke:#2854e8;stroke-width:3}.chart-line.uncertain{stroke-dasharray:7 5;stroke:#9daed7}.chart-point{stroke:#2854e8;stroke-width:2;fill:#2854e8;cursor:pointer}.chart-point.uncertain{fill:#fff}.chart-point:hover,.chart-point:focus-visible{stroke:#111827;stroke-width:4;outline:none}.trend-data{margin-top:18px;font-size:.85rem}.trend-data summary,.review-targets summary{cursor:pointer;min-height:36px}.table-scroll{overflow-x:auto}.review-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.review-target-list button{border:1px solid #dfe5f0;border-radius:10px;padding:14px;background:#fff;text-align:left;display:flex;flex-direction:column;gap:6px}.review-target-list strong{font-size:.8rem}.review-target-list span{font-size:.75rem;color:#647084}.review-target-list button:hover{border-color:#2854e8}.review-trend .help-copy{font-size:.75rem}#review-trend-panel{scroll-margin-top:20px}
@media(max-width:680px){.review-metrics{gap:8px}.review-metrics .card{padding:14px 10px}.review-metrics strong{font-size:1.7rem}.review-metrics span{font-size:.66rem}.review-focus-list,.review-target-list{grid-template-columns:1fr}.review-controls{grid-template-columns:1fr}.review-controls select{font-size:.85rem}.trend-chart{min-width:0}.trend-chart text{font-size:13px}.completion-row{padding:14px}.set-grid.no-rir{grid-template-columns:26px minmax(58px,1.1fr) minmax(52px,1fr) 42px}}

/* V1.7: black type, unmistakable royal-blue actions, and layered app surfaces. */
:root{--heading:#0b0d12;--blue:#2854e8;--blue-wash:#f3f6ff;--blue-wash-strong:#e8eeff;--blue-wash-border:#d4def8}
body{background:#fff;color:#0b0d12}.main h1,.main h2,.main h3{color:var(--heading)}
.sidebar{background:linear-gradient(165deg,#090b10 0%,#101625 62%,#090b10 100%);border-color:#1d2638;box-shadow:12px 0 36px #0b10201f}
.brand-lockup{padding:14px;border:1px solid #222c40;border-radius:16px;background:linear-gradient(145deg,#151c2a,#0b0e15);box-shadow:inset 0 1px #ffffff0a,0 14px 30px #0005}
.sidebar .nav button{border:1px solid transparent;transition:background .18s,color .18s,transform .18s,box-shadow .18s}.sidebar .nav button:hover{transform:translateX(2px)}.sidebar .nav button.active{background:linear-gradient(135deg,#2854e8,#1d43c8);border-color:#5478ee;box-shadow:0 10px 24px #2854e844,inset 0 1px #ffffff2e}
.sidebar-foot{border-top:1px solid #20283a;padding-top:22px}.sidebar-foot .btn:hover{border-color:#4863b0;background:#1a2231}
.card{box-shadow:0 12px 32px #17223c0a,0 2px 8px #17223c08}.workout-hero{background:linear-gradient(145deg,#eef3ff 0%,#fff 68%);border-color:#cdd9fb;color:#0b0d12;box-shadow:0 18px 44px #2854e817;overflow:hidden}.workout-hero:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:#2854e8}.workout-hero h2,.workout-hero .hero-number{color:#0b0d12}.workout-hero .muted,.workout-hero .eyebrow,.workout-hero .stat-label{color:#667187}.workout-hero .tag{background:#dfe7ff;color:#2148c8;border:1px solid #b9c8f8}.workout-hero .btn.primary{background:#2854e8;border-color:#2854e8;color:#fff;box-shadow:0 12px 26px #2854e83d}.workout-hero .btn.primary:hover{background:#1c45cd}
.review-metrics .card{background:linear-gradient(145deg,#121725,#090b10);border-color:#202a3e;box-shadow:0 14px 30px #10172820}.review-metrics span{color:#b5bfd2}
.workout-tile{background:linear-gradient(145deg,#f5f7ff,#fff 76%);border-color:var(--blue-wash-border);box-shadow:0 12px 28px #2854e80d;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}.workout-tile:hover{background:var(--blue-wash-strong);border-color:#9eb2ef;transform:translateY(-3px);box-shadow:0 18px 36px #2854e81b}.workout-tile>h3,.workout-tile .flex h3{color:#0b0d12}.workout-tile>.small{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:38px;padding:9px 14px;border-radius:9px;background:#2854e8;color:#fff!important;font-weight:700;box-shadow:0 8px 18px #2854e82b}
.today-grid>.card:not(.workout-hero),.client-priorities,.history-item{background:#f8faff;border-color:#dce4f8}.history-item:hover{background:var(--blue-wash);border-color:#9eb2ef}.muscle-volume{background:linear-gradient(145deg,#f7f9ff,#fff 72%);border-color:#dce4f8}
div:has(> .workout-list)>div:first-child h3{display:inline-flex;align-items:center;min-height:42px;padding-left:14px;border-left:5px solid #2854e8;color:#0b0d12}
.page-head .eyebrow{color:#2854e8}.page-head .muted{color:#667187}.card,.history-item,.workout-tile{transition:border-color .18s,background .18s,box-shadow .18s}
.week-card{background:linear-gradient(145deg,#f3f6ff,#fff 78%)!important}.week-status{margin-top:5px;color:#667187;font-size:.78rem}.week-card [data-action="edit-week"]{background:#fff;border-color:#b9c8f8;color:#2148c8}.week-row.past{opacity:.62}.week-locked{font-size:.72rem;color:#788397}.schedule-swap-list{display:flex;flex-direction:column;gap:10px;margin:22px 0}.schedule-swap-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr);gap:14px;align-items:center;padding:14px;border:1px solid #dce4f8;border-radius:12px;background:#f8faff}.schedule-swap-row>div strong,.schedule-swap-row>div span{display:block}.schedule-swap-row>div strong{font-size:.85rem}.schedule-swap-row>div span{margin-top:4px;font-size:.8rem;color:#667187}.schedule-swap-row label>span{display:block;margin-bottom:6px;font-size:.72rem;color:#667187}.schedule-swap-row select{min-height:42px;font-size:.8rem}.schedule-swap-row.locked{background:#f6f7f9;border-color:#e5e8ed}.schedule-actions{display:flex;flex-direction:column;gap:10px}
@media(max-width:680px){.workout-hero{box-shadow:0 12px 30px #2854e812}.workout-tile:hover{transform:none}div:has(> .workout-list)>div:first-child h3{min-height:38px}.schedule-swap-row{grid-template-columns:1fr}.schedule-swap-row label{margin-top:4px}}

/* V1.8: open sidebar branding and gym-only weekly placement. */
.brand-lockup{padding:0 12px;border:0;border-radius:0;background:none;box-shadow:none;gap:10px}.sidebar .brand-line{padding-inline:12px;margin-top:8px}
.week-activities{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.week-activity-tag{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:8px;font-size:.78rem;font-weight:600;line-height:1.25}.week-activity-tag.gym{background:#e4ebff;color:#2148c8;border:1px solid #c3d0fa}.week-activity-tag.football{background:#171d2a;color:#fff;border:1px solid #29334a}.week-activity-tag.rest{background:#f0f2f5;color:#667187;border:1px solid #e0e4ea;font-weight:500}
.gym-move-list{display:flex;flex-direction:column;gap:10px}.gym-move-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.65fr);gap:16px;align-items:center;padding:15px 16px;border:1px solid #d6e0fa;border-radius:12px;background:#f7f9ff}.gym-move-row>span strong,.gym-move-row>span small{display:block}.gym-move-row>span strong{font-size:.9rem;color:#0b0d12}.gym-move-row>span small{margin-top:4px;font-size:.72rem;color:#667187}.gym-move-row select{min-height:44px;font-size:.85rem;background:#fff}
.schedule-preview{margin-top:22px;padding:18px;border-radius:14px;background:#f5f7fb;border:1px solid #e1e6ef}.schedule-preview-row{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;padding:9px 0;border-bottom:1px solid #e2e7f0}.schedule-preview-row:last-child{border-bottom:0}.schedule-preview-row>strong{font-size:.78rem;color:#667187;padding-top:5px}.schedule-preview-row>span{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:680px){.brand-lockup{padding-inline:8px}.gym-move-row{grid-template-columns:1fr;gap:10px}.week-row{grid-template-columns:34px minmax(0,1fr) auto;align-items:start}.week-row .tag{margin-top:1px}}

/* V1.11 · flexible weeks, archived programmes and workout substitutions */
.session-select{display:flex;align-items:center;gap:13px;cursor:pointer;min-width:0}.session-select input{width:21px;height:21px;accent-color:var(--blue);flex:0 0 auto}.session-select span,.session-select strong,.session-select small{display:block}.session-select strong{font-size:.9rem;color:#0b0d12}.session-select small{margin-top:4px;font-size:.74rem;color:#667187}.gym-move-row.not-selected{background:#f4f5f8;border-color:#e0e3e9}.gym-move-row.not-selected .session-select span{opacity:.7}.gym-move-row select:disabled{opacity:.5;cursor:not-allowed}.schedule-preview{margin-top:18px;padding:16px;border:1px solid #dce4f8;border-radius:14px;background:#fff}.schedule-preview>.eyebrow{margin-bottom:10px}.schedule-preview-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid #edf0f6}.schedule-preview-row:first-of-type{border-top:0}.schedule-preview-row>strong{font-size:.78rem}.programme-archive summary,.available-sessions summary{font-family:Montserrat,sans-serif;font-weight:800;color:#0b0d12;cursor:pointer}.archive-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}.programme-version-status{display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-card{padding:16px}.archive-workout{border:1px solid #dce4f8;border-radius:12px;background:#f8faff;padding:14px 16px}.archive-workout summary{font-weight:700;cursor:pointer;color:#0b0d12}.archive-workout div{display:grid;gap:8px;margin-top:14px}.archive-workout p{display:flex;justify-content:space-between;gap:16px;font-size:.82rem}.archive-workout p span{color:#667187;text-align:right}.tabs button{display:flex;flex-direction:column;gap:3px}.tabs button small{font:600 .66rem Poppins,sans-serif;opacity:.7}.exercise-swap-control{margin-top:22px;padding-top:18px;border-top:1px solid #e3e7f0}.exercise-swap-control p{margin-top:8px}.substitution-label{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:999px;background:#edf2ff;color:#2148c8;font-size:.76rem;font-weight:600}.swap-results{display:flex;flex-direction:column;gap:10px;margin-top:16px;max-height:min(58vh,560px);overflow:auto}.swap-choice{width:100%;text-align:left;cursor:pointer}.swap-choice:hover{border-color:#9eb2f1;background:#f6f8ff}.section-title{margin-bottom:16px}
@media(max-width:680px){.archive-workout p{display:block}.archive-workout p span{display:block;margin-top:3px;text-align:left}.programme-version-status{align-items:flex-start;flex-direction:column}.swap-choice{align-items:flex-start}.schedule-preview-row{grid-template-columns:34px minmax(0,1fr)}}

/* V1.10: left-aligned client identity and explicit performance provenance. */
.brand-lockup{align-items:flex-start;text-align:left}.sidebar .brand-line{text-align:left}.sidebar>div:first-child{display:flex;flex-direction:column;align-items:stretch}
.last-performance{padding:11px 12px;border:1px solid #dbe3f5;border-left:4px solid #2854e8;border-radius:10px;background:#fff}.last-performance .eyebrow{color:#2148c8;font-weight:700}.performance-source{font-size:.72rem;color:#58657a;line-height:1.45}.previous-set{box-shadow:0 2px 7px #17223c0a}
.recommendation-source{display:inline-flex!important;align-items:center;min-height:28px;margin:0 0 10px!important;padding:5px 9px;border-radius:7px;background:#fff;color:#4f5e78!important;border:1px solid #cfdbfa;font-size:.72rem!important;font-weight:600;line-height:1.4!important}
@media(max-width:680px){.last-performance{padding:9px 10px}.recommendation-source{display:flex!important}}

/* V1.12: clearer optional exercise swap action. */
.exercise-swap-control{margin-top:18px;padding:16px;border:1px solid #d7e2ff;border-radius:12px;background:#f1f5ff}
.exercise-swap-control .btn{background:#fff;border-color:#b9c9fa;color:#2854e8}
.exercise-swap-control p{margin-top:8px;color:#4f5e78}
.week-activity-tag.completed .icon{width:14px;height:14px}

/* V1.13: traditional exercise codes and paired superset pages. */
.exercise-unit+.exercise-unit,.superset-page .exercise-unit:not(:first-of-type){margin-top:34px;padding-top:30px;border-top:2px solid #d7e2ff}
.exercise-unit+.exercise-notes{margin-top:18px;margin-bottom:24px}
.superset-banner{margin:0 0 26px;padding:16px 18px;border:1px solid #bfd0ff;border-radius:14px;background:#edf3ff;color:#172443}
.superset-banner span{display:block;font-family:Montserrat,Arial,sans-serif;font-weight:800;font-size:1.05rem;color:#2854e8;letter-spacing:.04em}
.superset-banner strong{display:block;margin-top:3px;font-family:Montserrat,Arial,sans-serif;font-size:1.45rem;text-transform:uppercase}
.superset-banner p{margin-top:5px;font-size:.8rem;color:#5b6980}
.exercise-dot{min-width:38px;padding:0 7px;width:auto}
.exercise-dot.superset-dot{min-width:50px;border-radius:16px;font-size:.72rem}
.editor-exercise-group{margin:0 0 18px;padding:16px;border:1px solid #dce4f8;border-radius:16px;background:#f7f9ff}
.editor-exercise-group.superset{border-color:#b9cafa;background:#edf3ff}
.editor-group-head{margin-bottom:12px}.editor-group-head strong{font-family:Montserrat,Arial,sans-serif;font-size:.9rem;text-transform:uppercase;color:#2854e8}.editor-group-head span{font-size:.78rem;color:#667187}
.editor-exercise-group .editor-exercise{background:#fff}
.editor-exercise.superset-member{border-color:#9fb5f4;box-shadow:inset 4px 0 #2854e8}
@media(max-width:680px){.exercise-dots{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:2px 2px 6px}.exercise-dot{min-width:34px;width:auto;padding:0 6px}.exercise-dot.superset-dot{min-width:46px}.superset-banner{padding:13px 14px}.superset-banner strong{font-size:1.2rem}.superset-page .exercise-unit:not(:first-of-type){margin-top:28px;padding-top:26px}}

/* V1.14: two-stage client imports, coach client preview and true mobile viewport fitting. */
html,body,#app{width:100%;max-width:100%;overflow-x:hidden}
.client-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px;padding:12px 14px;border:1px solid #aebff4;border-radius:12px;background:#edf3ff;color:#263958;font-size:.84rem}
.client-preview-banner strong{color:#163fb9}.client-preview-banner .btn{flex:0 0 auto;background:#fff}
.import-section{position:relative;display:flex;flex-direction:column;gap:18px;padding-left:76px}.import-step{position:absolute;left:24px;top:24px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#2854e8;color:#fff;font-family:Montserrat,Arial,sans-serif;font-weight:800}.import-preview{padding-top:18px;border-top:1px solid var(--border)}
.shell,.main,.main-inner,.topbar,.page-head,.card,.flex>*{min-width:0}
@media(max-width:680px){
  .shell{width:100%;max-width:100%;overflow-x:hidden}
  .main{grid-column:auto;width:100%;max-width:100%;min-width:0;padding:16px 14px calc(94px + env(safe-area-inset-bottom))}
  .main-inner,.topbar,.mobile-brand,.page-head,.card,.workout-surface{width:100%;max-width:100%;min-width:0}
  .topbar{gap:8px}.topbar>.flex{gap:6px;flex:0 0 auto}.topbar .date{display:none}
  .mobile-brand{display:flex;align-items:center;gap:8px;overflow:hidden}.mobile-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .client-preview-banner{align-items:stretch;flex-direction:column;margin:-2px 0 18px;padding:11px 12px;font-size:.76rem}.client-preview-banner .btn{width:100%}
  .mobile-nav{left:0;right:0;width:100%;max-width:100%;overflow:hidden;justify-content:stretch;padding-inline:2px}
  .mobile-nav button{flex:1 1 0;min-width:0;padding:7px 2px;font-size:clamp(.59rem,2.6vw,.72rem);overflow:hidden}
  .mobile-nav button .icon{width:20px;height:20px}
  .grid,.grid.two,.today-grid,.workout-list,.review-metrics,.form-grid,.form-grid.four{width:100%;max-width:100%;min-width:0}
  .page-head .flex,.client-card>.flex,.workout-tile>.flex,.week-card>.flex{min-width:0}
  .page-head h1,.client-name,.workout-tile h3{overflow-wrap:anywhere}
  .import-section{padding:62px 16px 18px}.import-step{left:16px;top:16px}
  input,select,textarea,button{max-width:100%}.table-scroll{max-width:100%;overflow-x:auto}
  .training-shell .main{width:100%;max-width:100%;padding-inline:12px}
}

/* Session tools: small status line, clear choices, compact review inbox. */
.session-context{flex-wrap:wrap;gap:6px 14px}.session-runtime{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.session-duration-summary{font-weight:600;font-variant-numeric:tabular-nums;margin:12px 0;color:#174dcc}
.duration-estimate{padding:22px;border-radius:16px;background:#edf3ff;border:1px solid #d3e1ff}.duration-estimate strong{display:block;font-size:26px;color:#111}.duration-estimate p{margin:8px 0}.duration-estimate small{display:block;line-height:1.8;color:#505b70}
.shorter-option{display:flex;gap:12px;padding:18px;border-radius:14px;border:1px solid #dce3ef;cursor:pointer}.shorter-option input,.review-request-toggle input{width:20px;height:20px;accent-color:#174dcc;flex-shrink:0}.shorter-option span span,.shorter-option small{display:block;margin-top:6px;font-size:13px;line-height:1.7}.shorter-option small{color:#51617c}.review-request-toggle{display:flex;align-items:flex-start;gap:10px;margin:16px 0 4px;font-size:13px;font-weight:600}.review-request-toggle small{display:block;color:#637089;font-weight:400;margin-top:4px}.client-review-status{margin-top:12px;padding:14px;border-radius:12px;background:#edf3ff;font-size:13px}.coach-inbox{margin-bottom:24px}.coach-inbox h2{font-size:20px}.coach-inbox .muted{margin-top:8px}.coach-request{padding:18px;border:1px solid #dce3ef;border-radius:14px;background:#fafcff}.coach-request h3{margin-top:5px}.review-note{white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0;font-size:14px;line-height:1.8}.thai body,.thai input,.thai textarea,.thai button,.thai select{font-family:'Noto Sans Thai','Poppins',sans-serif}.thai h1,.thai h2,.thai h3,.thai h4{font-family:'Noto Sans Thai','Montserrat',sans-serif;font-weight:800}.thai .exercise-meta{line-height:1.8}.thai .mobile-nav button{font-size:11px}
@media(max-width:600px){.session-context #session-count{flex-basis:100%}.duration-estimate strong{font-size:23px}.coach-request{padding:14px}.shorter-option{padding:14px}.thai .session-head .btn{font-size:12px}}

/* Guided alternative sessions live below the main programme. */
.builder-section{margin-top:40px;border-top:3px solid #cbd7ed;background:#f7f9fd;display:grid;gap:18px;padding:28px}
.builder-section h3{margin:0;line-height:1.4;letter-spacing:0}.builder-section .help-copy{margin:0;width:100%;max-width:none;font-size:15px;line-height:1.85}.builder-section .btn.full{width:100%;max-width:none;justify-self:stretch}.builder-section .eyebrow{color:#596b87;margin:0}.builder-section .builder-guidance{width:100%;max-width:none;min-width:0;text-align:center;line-height:1.8;overflow-wrap:break-word}
.builder-page{width:100%;max-width:none;margin:auto;line-height:1.65}.builder-page h1{font-size:clamp(28px,3.3vw,42px);line-height:1.3;letter-spacing:0;overflow-wrap:break-word}.builder-page h2{font-size:clamp(22px,2.2vw,28px);line-height:1.4;letter-spacing:0}.builder-page .page-header{display:grid;gap:14px;margin-bottom:28px}.builder-page .page-header .eyebrow{margin:0}.builder-page .help-copy{font-size:15px;line-height:1.85;width:100%;max-width:none}.builder-page label.field{font-size:14px;line-height:1.7;gap:12px}.builder-page select{line-height:1.6;min-height:52px}
.builder-progress{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 32px;font-size:12px;color:#596b87}.builder-progress span{background:#edf2fa;border-radius:30px;padding:8px 14px;line-height:1.5}
.builder-step{margin-bottom:28px;gap:24px}.builder-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.builder-select{text-align:left;display:flex;flex-direction:column;gap:16px;cursor:pointer;color:#111;min-height:190px;font:inherit;position:relative;padding:26px;min-width:0}.builder-select strong{font-size:21px;font-weight:700;line-height:1.45;letter-spacing:0}.builder-select .builder-option-detail{width:100%;max-width:none;font-size:14px;line-height:1.8;color:#596b87;overflow-wrap:break-word}.builder-select .builder-arrow{color:#174dcc;font-size:24px;line-height:1;margin-top:auto;padding-top:4px}.builder-select:hover,.builder-select:focus-visible{border-color:#174dcc;background:#f4f7ff}
.builder-icon-badge{display:grid;place-items:center;width:112px;height:112px;flex:none}.builder-body-icon{display:block;width:100%;height:100%;object-fit:contain}

.builder-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.builder-exercise{padding:22px;min-width:0;display:flex;flex-direction:column;gap:18px}.builder-exercise-pick{border:0;background:none;text-align:left;color:inherit;font:inherit;display:grid;gap:12px;cursor:pointer;width:100%;padding:0}.builder-exercise-pick strong{font-size:16px;line-height:1.6;letter-spacing:0;overflow-wrap:break-word}.builder-exercise-pick span,.builder-exercise-pick small{font-size:13px;color:#596b87;line-height:1.7}.builder-exercise-pick .builder-pick-label{color:#174dcc;font-weight:600}.builder-demo{margin-top:auto}.builder-demo .video-teaser{width:100%;max-width:100%}.builder-exercise:focus-within{outline:2px solid #174dcc;outline-offset:2px}
.builder-radio{display:flex;align-items:center;gap:10px;margin:12px 0;font-weight:600}.builder-equipment-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}.builder-equipment-checks label{display:flex;align-items:flex-start;gap:10px;line-height:1.7;font-size:14px}.builder-equipment-checks input,.builder-radio input{width:18px;height:18px;flex:none;accent-color:#174dcc}
.builder-summary{display:grid;gap:14px}.builder-summary>div{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:start;gap:18px;padding:20px;border:1px solid #e4e8ee;border-radius:14px}.builder-summary>div>span{font-weight:700;color:#174dcc;line-height:1.6}.builder-summary>div>div{min-width:0;display:grid;gap:10px}.builder-summary strong{font-size:15px;line-height:1.65;letter-spacing:0;overflow-wrap:break-word}.builder-summary small{font-size:13px;line-height:1.75;color:#596b87}.builder-summary .btn{align-self:center;flex-shrink:0}.builder-page .duration-estimate{line-height:1.8}.builder-page .duration-estimate strong{line-height:1.5}.builder-page .btn.full{width:100%;max-width:none}.builder-footer,.builder-option-actions{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}.builder-footer{margin-top:12px}.builder-footer>.btn,.builder-option-actions>.btn{width:100%;max-width:none;min-width:0;white-space:normal;text-align:center;line-height:1.6}.builder-classification{border:1px solid #dbe3ef;padding:16px;border-radius:12px}.builder-classification summary{font-weight:600;cursor:pointer;margin-bottom:14px}
@media(max-width:1100px){.builder-type-grid{grid-template-columns:1fr}.builder-select{min-height:auto;padding:22px}.builder-type-choice{display:grid;grid-template-columns:88px minmax(0,1fr) 24px;gap:6px 20px;align-items:center}.builder-type-choice .builder-icon-badge{width:88px;height:88px;grid-column:1;grid-row:1 / 3}.builder-type-choice .builder-option-title{grid-column:2;grid-row:1}.builder-type-choice .builder-option-detail{grid-column:2;grid-row:2}.builder-type-choice .builder-arrow{grid-column:3;grid-row:1 / 3;margin:0;padding:0}}
@media(max-width:680px){.builder-section{padding:22px;gap:16px;margin-top:32px}.builder-page h1{font-size:28px}.builder-page .page-header{gap:12px;margin-bottom:24px}.builder-page .help-copy,.builder-section .help-copy{font-size:14px}.builder-progress{gap:8px;margin-bottom:26px}.builder-progress span{padding:7px 11px}.builder-step{gap:22px}.builder-summary>div{padding:16px;gap:10px 12px;grid-template-columns:28px minmax(0,1fr)}.builder-summary .btn{grid-column:2;justify-self:start}.builder-summary strong{font-size:14px}}
@media(max-width:560px){.builder-options{grid-template-columns:1fr;gap:14px}.builder-exercise{padding:20px}.builder-type-choice{padding:18px;grid-template-columns:72px minmax(0,1fr) 16px;column-gap:12px}.builder-type-choice .builder-icon-badge{width:72px;height:72px}.builder-select strong{font-size:19px}.builder-select .builder-option-detail{font-size:13px}.builder-equipment-checks{grid-template-columns:1fr}}

@media(max-width:560px){.builder-footer,.builder-option-actions{grid-auto-flow:row;grid-template-columns:minmax(0,1fr)}}

/* Guided choice pages use the same roomy cards as the session setup. */
.guided-choice h2{margin:12px 0 16px;letter-spacing:0;line-height:1.3}
.guided-choice>.help-copy{width:100%;max-width:none;margin-bottom:24px;line-height:1.7}
.guided-choice>.btn{margin-top:20px;width:100%}

/* Coach review: one client per row, then a readable period dashboard. */
.coach-dashboard{width:100%;min-width:0}.coach-dashboard .help-copy{max-width:none;line-height:1.7;overflow-wrap:anywhere}.coach-dashboard .page-head h1{letter-spacing:0;line-height:1.2}.dashboard-toolbar{display:grid;gap:18px;margin:24px 0}.dashboard-tabs{display:flex;gap:6px;background:#eaf1fe;border-radius:14px;padding:6px;width:fit-content}.dashboard-tabs button{border:0;background:transparent;border-radius:10px;padding:12px 22px;font:inherit;font-weight:600;cursor:pointer;color:#26364f}.dashboard-tabs button.active{background:#174dcc;color:#fff}.dashboard-dates{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.dashboard-dates .field{margin:0;min-width:170px}.dashboard-dates input,.dashboard-dates select{width:100%}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.dashboard-metrics .card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:24px}.dashboard-metrics strong{font-size:32px;line-height:1.15;color:#174dcc;letter-spacing:0}.dashboard-metrics span{font-weight:600}.dashboard-metrics small{color:#627189;line-height:1.6}.dashboard-filter{display:flex;gap:16px;align-items:end;margin:22px 0}.dashboard-filter>.input{flex:1;min-width:0}.dashboard-filter .field{margin:0;min-width:180px}.dashboard-roster{display:grid;gap:10px}.dashboard-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(155px,1.2fr) minmax(110px,1fr) minmax(110px,1fr) minmax(140px,1fr);gap:22px;width:100%;text-align:left;align-items:center;color:#111;font:inherit;cursor:pointer}.dashboard-row.card{padding:24px;border:1px solid #d8e4fa;background:#f7faff;transition:background .15s}.dashboard-row.card:hover{background:#eaf2ff}.dashboard-row strong,.dashboard-row small,.dashboard-plan-row strong,.dashboard-plan-row small,.dashboard-session-list strong,.dashboard-session-list small,.dashboard-older strong,.dashboard-older small{display:block;overflow-wrap:anywhere}.dashboard-row small{color:#627189;font-size:12px;line-height:1.65;margin-top:7px}.dashboard-column-head{font-size:12px;color:#627189;padding:0 24px;cursor:default}.dashboard-status{display:inline-flex;justify-content:center;background:#e8effd;color:#174dcc;padding:10px 13px;border-radius:10px;font-size:12px;font-weight:650;line-height:1.6}.dashboard-status.reviewed{background:#e5f3ed;color:#216b48}.dashboard-unread{color:#174dcc;background:#e8efff;font-weight:700}.dashboard-review-actions,.dashboard-feedback-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin:24px 0}.dashboard-grid h3,.dashboard-feedback h3{line-height:1.4;letter-spacing:0}.dashboard-plan{margin:22px 0;max-height:440px;overflow:auto}.dashboard-plan-row{display:flex;justify-content:space-between;gap:22px;align-items:center;border-bottom:1px solid #e4ebf7;padding:16px 0}.dashboard-plan-row small{color:#627189;font-size:12px;margin-top:6px;line-height:1.6}.dashboard-plan-row .btn{margin-top:10px}.dashboard-plan-row>span:last-child{text-align:right}.positive{color:#216b48}.dashboard-signals{display:grid;gap:14px;margin:22px 0}.dashboard-signals>div{display:flex;gap:16px;align-items:center;background:#f1f6ff;padding:16px;border-radius:12px}.dashboard-signals strong{font-size:22px;color:#174dcc}.dashboard-signals span{font-size:12px;line-height:1.6}.dashboard-change{display:grid;gap:7px;border-bottom:1px solid #e4ebf7;padding:16px 0}.dashboard-change span{color:#174dcc;font-weight:600}.dashboard-change small{color:#627189}.dashboard-comment{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:20px 0}.dashboard-exercise-note{background:#f1f6ff;padding:18px;border-radius:12px;margin-top:16px}.dashboard-exercise-note p{white-space:pre-wrap;line-height:1.75;margin:10px 0 16px;overflow-wrap:anywhere}.dashboard-response{border-left:3px solid #174dcc;padding:12px 16px;margin-top:16px;background:#f6f9ff}.dashboard-response p{line-height:1.75;white-space:pre-wrap;margin:8px 0;overflow-wrap:anywhere}.dashboard-response small{color:#627189}.dashboard-action-section{display:grid;gap:16px;margin:28px 0}.dashboard-session-list{margin-top:20px;display:grid;gap:12px}.dashboard-session-list small,.dashboard-older small{color:#627189;margin-top:8px}.dashboard-edit-highlight{outline:3px solid #174dcc;outline-offset:4px}.dashboard-older{margin:20px 0}.dashboard-older summary{font-weight:650;cursor:pointer}.dashboard-activity{margin:24px 0}.dashboard-bars{display:grid;gap:12px;margin-top:24px;max-height:380px;overflow:auto}.dashboard-bar-row{display:grid;grid-template-columns:100px minmax(60px,1fr) 26px 72px;gap:12px;align-items:center;font-size:12px}.dashboard-bar-row>div{height:16px;background:#edf2fb;border-radius:5px;overflow:hidden}.dashboard-bar{height:100%;background:#174dcc;display:block;border-radius:5px}.dashboard-bar-row small{color:#627189}.dashboard-loading{margin-top:25px;padding:32px}
@media(max-width:1150px){.dashboard-row{grid-template-columns:minmax(150px,1.3fr) repeat(3,minmax(95px,1fr));gap:16px}.dashboard-row>.dashboard-status{grid-column:1/-1;justify-self:start}.dashboard-column-head>span:last-child{display:none}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:640px){.dashboard-row{grid-template-columns:1fr 1fr;padding:20px!important}.dashboard-row>span:first-child{grid-column:1/-1}.dashboard-column-head{display:none}.dashboard-filter{flex-wrap:wrap}.dashboard-filter>.input{flex-basis:100%}.dashboard-filter .field{flex:1;min-width:0}.dashboard-dates{gap:8px}.dashboard-dates .field{min-width:135px;flex:1}.dashboard-metrics{gap:10px}.dashboard-metrics .card{padding:18px}.dashboard-metrics strong{font-size:26px}.dashboard-feedback-actions .btn,.dashboard-review-actions .btn{width:100%}.dashboard-plan-row{gap:12px}.dashboard-bar-row{grid-template-columns:82px minmax(40px,1fr) 20px 52px;gap:8px}.dashboard-toolbar .field{font-size:12px}.dashboard-tabs{width:100%}.dashboard-tabs button{flex:1;padding:12px 14px}.coach-dashboard h2{letter-spacing:0;line-height:1.35}}

@media(max-width:680px){.topbar{flex-wrap:wrap}.topbar>.mobile-brand{flex:1 1 100%}.topbar>.flex{margin-left:auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.topbar [data-action="coach-updates"]{white-space:normal;line-height:1.5}.mobile-nav button[data-route="dashboard"],.mobile-nav button[data-route="review"]{line-height:1.4}}
.today-summary{line-height:1.65;margin:12px 0 20px;max-width:none}
.today-session-meta{font-size:.85rem;color:#56647a;margin:0 0 18px}
.today-secondary{margin-top:12px}.today-other{margin-top:20px;display:grid;gap:10px}.today-other h3{font-size:1rem}
.week-legend{margin-top:12px;line-height:1.5}.week-activity-tag.planned{background:#edf2ff;border:1px dashed #9aaee3;color:#345082;display:flex;flex-wrap:wrap;gap:5px}
.week-activity-tag small{font-size:.65rem;font-weight:500;opacity:.8}.week-activity-tag.completed{border:1px solid #b1dabf;text-align:left;white-space:normal}
.today-picker{margin:20px 0;grid-template-columns:1fr}.today-grid .workout-hero{align-self:start}
@media(max-width:680px){.today-grid .workout-hero h2{font-size:clamp(1.75rem,8vw,2.5rem);line-height:1.2}.today-grid .week-card{padding:18px}.week-card .flex.between{gap:12px}}

/* V1.25: the original logger gains cancellation and explicit progress. */
.session-head .session-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px}
.session-actions .text-btn{justify-self:start;text-align:left}
.session-actions .save-state{white-space:nowrap}
.workout-progress-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;color:var(--muted)}
.workout-progress-label strong{font-weight:600;color:var(--blue);font-variant-numeric:tabular-nums}
.session-head .workout-progress-label+.progress-track{margin-top:6px}
.cancel-workout-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.cancel-workout-actions .btn{flex:1 1 180px}
@media(max-width:600px){.session-head .session-actions{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.session-actions .text-btn{grid-column:1;grid-row:1}.session-actions [data-action="finish"]{grid-column:2;grid-row:1}.session-actions .save-state{grid-column:1;grid-row:2}.session-actions [data-action="cancel-workout"]{grid-column:2;grid-row:2;min-height:36px;padding:6px 10px;font-size:12px}.workout-progress-label{margin-top:10px}}

/* Compact completion summary with its next action directly below. */
dialog[data-kind="workout-complete"]{max-width:520px;max-height:calc(100dvh - 32px);padding:24px}
dialog[data-kind="workout-complete"] .modal-head{margin-bottom:18px;gap:12px}
dialog[data-kind="workout-complete"] .modal-head h2{font-size:22px;line-height:1.3;text-transform:none}
dialog[data-kind="workout-complete"] .modal-head .btn{min-height:38px;padding:8px;flex:none}
dialog[data-kind="workout-complete"] .finish-card{padding:20px;text-align:left;border-radius:14px}
dialog[data-kind="workout-complete"] .finish-card h3{font-size:18px;line-height:1.45;text-transform:none;color:var(--text);overflow-wrap:anywhere;margin:12px 0 18px}
dialog[data-kind="workout-complete"] .finish-card .tag{font-size:12px;display:inline-block}
.finish-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 0;border-top:1px solid #d7e2ff;border-bottom:1px solid #d7e2ff}
.finish-metrics div{display:flex;flex-direction:column;gap:5px}
.finish-metrics strong{font:800 26px/1.2 Montserrat,Arial,sans-serif;color:var(--blue);font-variant-numeric:tabular-nums}
.finish-metrics span{font-size:12px;line-height:1.5;color:var(--muted)}
dialog[data-kind="workout-complete"] .finish-card p{font-size:14px;line-height:1.65;margin-top:16px}
.finish-action{position:sticky;bottom:0;background:#fff;padding-top:16px}
.finish-action .btn{font-size:14px;min-height:46px}
@media(max-width:600px){dialog[data-kind="workout-complete"]{padding:18px}dialog[data-kind="workout-complete"] .finish-card{padding:16px}dialog[data-kind="workout-complete"] .modal-head h2{font-size:20px}.finish-metrics{gap:12px}}

/* V1.43: reduce the front/back anatomy art by approximately 25% on phones. */
@media(max-width:680px){.portal-shell .anatomy-figures{max-width:262px;width:75%;margin-inline:auto}}

/* Shared portal design. Workout, warm-up and builder screens keep style.css. */
@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/Montserrat-800.woff') format('woff')}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Poppins-400.woff') format('woff')}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/Poppins-500.woff') format('woff')}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Poppins-600.woff') format('woff')}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/Poppins-700.woff') format('woff')}
@media(min-width:861px){html:has(.portal-shell){scrollbar-gutter:stable}}
.portal-shell{--portal-gutter:32px;--portal-sidebar:240px;--panel:#fff;--border:#e1e5ed;--muted:#626b7a;--portal-title:28px;--portal-section:20px;--portal-body:14px;--portal-meta:12px;font:400 var(--portal-body)/1.6 Poppins,Arial,sans-serif;background:#f5f6f9;color:#15171d;grid-template-columns:var(--portal-sidebar) minmax(0,1fr);color-scheme:light}
.portal-shell [hidden]{display:none!important}
.portal-shell .main{min-width:0;padding:32px var(--portal-gutter) 56px}
.portal-shell .main-inner{max-width:none;width:100%;margin:0}
.portal-shell .main h1,.portal-shell .main h2,.portal-shell .main h3,.portal-shell .main h4{font-family:Montserrat,Arial,sans-serif;font-weight:800;text-transform:none;letter-spacing:-.025em;color:#15171d}
.portal-shell .main h1,.portal-shell .page-head h1{font-size:var(--portal-title);line-height:1.25}
.portal-shell .main h2{font-size:var(--portal-section);line-height:1.35}
.portal-shell .main h3,.portal-shell .main h4{font-size:16px;line-height:1.45}
.portal-shell .page-head{margin-bottom:24px}
.portal-shell .page-head .muted,.portal-shell .help-copy{font-size:var(--portal-body);line-height:1.7;max-width:none;color:var(--muted)}
.portal-shell .page-head .muted{margin-top:8px}
.portal-shell .eyebrow{font:600 var(--portal-meta)/1.5 Poppins,Arial,sans-serif;letter-spacing:.075em;margin-bottom:8px}
.portal-shell .small,.portal-shell small{font-size:var(--portal-meta);line-height:1.6}
.portal-shell .card{border:1px solid var(--border);border-radius:16px;box-shadow:0 3px 12px #11182703;padding:24px;background:#fff}
.portal-shell .section-title{margin-bottom:16px}
.portal-shell .btn{font:600 var(--portal-body)/1.5 Poppins,Arial,sans-serif;min-height:44px;white-space:normal;padding:10px 16px;border-radius:10px;border:1px solid #dce1eb;background:#fff;color:#2854e8;box-shadow:0 1px 2px #11182704;transition:background .15s,border-color .15s,box-shadow .15s}
.portal-shell .btn:hover{background:#f1f4fc;border-color:#bac7ed}
.portal-shell .btn.primary{background:#2854e8;color:#fff;border-color:#2854e8;box-shadow:0 3px 8px #2854e81c,inset 0 1px 0 #ffffff1c}
.portal-shell .btn.primary:hover{background:#2047cc;border-color:#2047cc}
.portal-shell .btn.ghost{background:#fff;color:#2854e8}
.portal-shell .btn.compact{font-size:var(--portal-body);min-height:40px;padding:8px 12px}
.portal-shell .btn.danger{color:#b42318}
.portal-shell .pill,.portal-shell .tag{font-size:var(--portal-meta);line-height:1.5;max-width:100%;white-space:normal}
.portal-shell .avatar{background:#eaf0ff;color:#2854e8}
.portal-shell .field{font-size:var(--portal-body);min-width:0;gap:8px}
.portal-shell .input,.portal-shell select,.portal-shell textarea{font-size:16px;min-width:0;max-width:100%;border-radius:10px}
.portal-shell .text-btn{font-size:var(--portal-body)}
.portal-shell .topbar{display:none}
.portal-shell .demo-banner{font-size:var(--portal-meta);padding:10px 14px;background:#fff;border:1px solid var(--border);margin-bottom:24px;gap:8px}
.portal-shell .demo-banner button{display:inline-flex;align-items:center;gap:8px;font-size:var(--portal-meta);min-height:34px;padding:5px 0}
.portal-shell .demo-banner .icon{width:16px;height:16px}
/* A fixed shell with a subtle light reflection, depth and a restrained black finish. */
.portal-shell .sidebar{width:var(--portal-sidebar);height:100dvh;padding:24px 16px 18px;gap:24px;background:linear-gradient(165deg,#090b10 0%,#101625 62%,#090b10 100%);border-right:1px solid #1d2638;box-shadow:12px 0 36px #0b10201f,inset -1px 0 0 #ffffff07;z-index:15;overflow:hidden}
.portal-shell .sidebar .brand-lockup{gap:10px;padding:0 10px;text-align:left;justify-content:flex-start;text-decoration:none;border:0;box-shadow:none;background:none;flex:none}
.portal-shell .sidebar .brand-logo{width:54px;height:48px;object-fit:contain;flex:none}
.portal-shell .sidebar .wordmark{font:800 18px/1.4 Montserrat,Arial,sans-serif;letter-spacing:-.02em;color:#fff}
.portal-shell .sidebar .brand-line{color:#c4c4cc;font-size:var(--portal-body);padding:0;margin:0}
.portal-shell .sidebar .nav{gap:20px;min-height:0;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#343438 transparent;padding:0 0 2px}
.portal-nav-section{display:flex;flex-direction:column;gap:4px}
.portal-shell .portal-nav-heading{color:#8f9099;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;margin:0 12px 5px}
.portal-shell .portal-nav-item,.portal-shell .sidebar .nav button{width:100%;min-height:46px;flex:none;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid transparent;padding:10px 12px;border-radius:10px;text-align:left;font:500 var(--portal-body)/1.5 Poppins,Arial,sans-serif;background:transparent;color:#c6c6cd;transform:none;box-shadow:none;transition:background .15s,color .15s,border-color .15s}
.portal-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-shell .portal-nav-item .icon{width:20px;height:20px}
.portal-shell .portal-nav-item:hover,.portal-shell .sidebar .nav button:hover{color:#fff;background:#ffffff0a;border-color:#ffffff0c;transform:none}
.portal-shell .portal-nav-item.active,.portal-shell .sidebar .nav button.active{color:#2854e8;background:linear-gradient(180deg,#f1f4ff,#e7edff);border-color:#fff;box-shadow:inset 0 1px 0 #fff,0 3px 10px #00000025}
.portal-shell .portal-nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:21px;min-height:21px;padding:1px 5px;max-width:36px;font:600 11px/1.3 Poppins,Arial,sans-serif;border-radius:6px;background:#ffffff12;color:#eee}
.portal-shell .portal-nav-item.active .portal-nav-count{background:#2854e812;color:#2854e8}
.portal-shell .sidebar-foot{margin-top:0;flex:none;gap:10px;border-top:1px solid #ffffff12;padding-top:14px}
.portal-sidebar-utilities{display:grid;gap:5px;margin-bottom:4px}
.portal-shell .sidebar-foot .btn.ghost{font-size:var(--portal-meta);min-height:39px;padding:8px 10px;justify-content:flex-start;color:#f2f2f6;background:linear-gradient(180deg,#ffffff06,#ffffff02);border:1px solid #ffffff16;box-shadow:inset 0 1px 0 #ffffff06}
.portal-shell .sidebar-foot .btn.ghost:hover{color:#fff;background:#ffffff0c;border-color:#ffffff30}
.portal-shell .sidebar-foot .icon{width:18px;height:18px}
.portal-account{display:flex;align-items:center;gap:10px;padding:5px 10px 7px}
.portal-account .avatar{width:34px;height:34px;flex:none;background:#ffffff0c;color:#fff;font-size:var(--portal-body)}
.portal-account div{display:grid;min-width:0}
.portal-account strong{color:#f0f0f4;font-size:var(--portal-meta);font-weight:500;overflow-wrap:anywhere}
.portal-account span:not(.avatar){color:#95959f;font-size:11px}
/* Today: balanced plan and weekly progress, with the same reading sizes as the portal. */
.portal-shell .portal-week{padding:20px 24px 0;margin-bottom:24px;background:#fff}
.portal-shell .portal-week h3{font-size:var(--portal-section)}
.portal-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:16px 0}
.portal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:86px;padding:10px 2px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--muted);font-size:var(--portal-meta)}
.portal-day strong{font:800 20px/1.2 Montserrat,Arial,sans-serif;color:#15171d}
.portal-day small{font-size:var(--portal-meta);line-height:1.4}
.portal-day:hover{background:#f5f6fb}
.portal-day.selected{background:#2854e8;color:#fff;box-shadow:0 3px 8px #2854e817}
.portal-day.selected strong{color:#fff}
.portal-day-dot{width:5px;height:5px;border-radius:50%;background:#d1d5dd}
.portal-day-dot.gym{background:#188363}.portal-day-dot.football{background:#956213}.portal-day.selected .portal-day-dot{background:#fff}
.portal-week-expanded{border-top:1px solid var(--border)}
.portal-week-expanded>summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:13px 0;font-size:var(--portal-body);color:var(--muted);cursor:pointer}
.portal-week-expanded .week-card{padding:16px 0;border:0;border-radius:0;box-shadow:none;margin:0}
.portal-week-expanded .week-card>div:first-child h3{display:none}
.portal-shell .week-row{font-size:var(--portal-body);gap:12px;min-width:0}
.portal-shell .week-activity-tag{font-size:var(--portal-body);max-width:100%;white-space:normal;line-height:1.6}
.portal-today-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:stretch}
.portal-shell .card.portal-hero{display:block;background:#eaf0ff;color:#15171d;padding:24px;box-shadow:0 3px 12px #11182703;border:1px solid #dfe6f8;border-radius:16px;overflow:visible}
.portal-shell .portal-hero::before{display:none;content:none}
.portal-hero-top{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:16px;align-items:center}
.portal-shell .portal-hero h2{font-size:var(--portal-section);line-height:1.35;margin:6px 0}
.portal-shell .portal-hero .eyebrow{color:#2854e8}
.portal-duration{font-size:var(--portal-body);color:var(--muted);line-height:1.6}
.portal-session-art{width:100%;height:100%;object-fit:contain;display:block;min-width:0}
.portal-hero .portal-session-art{width:82px;height:96px}
.portal-recovery{width:70px;height:70px;display:grid;place-items:center;justify-self:end;background:#dce5ff;border-radius:18px;color:#2854e8}
.portal-recovery .icon{width:28px;height:28px}
.portal-shell .today-summary{font-size:var(--portal-body);line-height:1.7;margin:16px 0;width:100%;max-width:none}
.portal-shell .today-secondary{margin-top:10px}
.portal-shell .portal-week-summary{padding:24px;display:flex;flex-direction:column;gap:20px}
.portal-week-progress{display:flex;align-items:center;gap:20px;min-width:0;flex:1}
.portal-week-progress>div:last-child{min-width:0}
.portal-week-progress>div>strong{display:block;font:600 var(--portal-body)/1.7 Poppins,Arial,sans-serif}
.portal-week-progress p{font-size:var(--portal-body);margin-top:6px}
.portal-progress-ring{width:100px;height:100px;border-radius:50%;background:conic-gradient(#188363 var(--completion),#edf0f5 0);display:grid;place-items:center;flex:none}
.portal-progress-ring>span{width:84px;height:84px;background:#fff;border-radius:50%;display:grid;place-items:center}
.portal-progress-ring strong{font:800 var(--portal-title)/1.2 Montserrat,Arial,sans-serif;color:#15171d}
.portal-progress-ring small{font:500 var(--portal-body)/1.4 Poppins,Arial,sans-serif;color:var(--muted)}
.portal-session-marks{display:flex;gap:7px}
.portal-session-marks>span{height:5px;border-radius:4px;background:#e2e6ee;flex:1}
.portal-session-marks>span.done{background:#188363}
.portal-week-caption{font-size:var(--portal-meta);color:var(--muted)}
/* My Program: visible calendar, every allocated session, then training guidance. */
.portal-block-banner{background:#eaf0ff;padding:24px;border:1px solid #dfe6f8;border-radius:16px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.portal-block-banner .eyebrow{color:#2854e8}
.portal-block-banner h2{margin-bottom:8px}
.portal-block-banner p{font-size:var(--portal-body);line-height:1.7;color:var(--muted)}
.portal-block-week{flex:none;display:grid;gap:4px;text-align:center;padding:0 8px;font-size:var(--portal-meta);color:var(--muted)}
.portal-block-week strong{font:800 var(--portal-title)/1.3 Montserrat,Arial,sans-serif;color:#15171d}
.portal-programme{gap:24px}
.portal-programme-week>.help-copy{margin-top:8px}
.portal-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:20px}
.portal-schedule-day{padding:14px 10px;border:1px solid #e9ecf2;border-radius:11px;background:#fafbfc;min-width:0}
.portal-schedule-day.is-today{background:#f2f5ff;border-color:#bdcdf9}
.portal-schedule-day-label{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:var(--portal-body);margin-bottom:12px}
.portal-schedule-day-label>strong{font-weight:600;color:#15171d}
.portal-schedule-day-label>span{display:flex;align-items:center;gap:5px;color:var(--muted)}
.portal-today-label{display:none}
.portal-schedule-activities{display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0}
.portal-schedule-activity{display:flex;align-items:flex-start;gap:7px;max-width:100%;text-align:left;font-size:var(--portal-body);line-height:1.6;padding:0;background:none;border:0;color:#2854e8}
.portal-schedule-activity .icon{width:15px;height:15px;margin-top:2px;flex:none}
.portal-schedule-activity.logged{color:#188363}.portal-schedule-activity.football{color:#8a6225}.portal-schedule-activity.rest{color:var(--muted)}
.portal-schedule-activity>span{overflow-wrap:anywhere;min-width:0}
button.portal-schedule-activity:hover{text-decoration:underline}
.portal-shell .portal-session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:16px}
.portal-shell .portal-session-tile{border-radius:15px;box-shadow:0 3px 12px #11182703;border:1px solid var(--border);background:#fff;padding:22px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;transform:none;color:#15171d;min-width:0;overflow:visible}
.portal-shell .portal-session-tile:hover{border-color:#a6bbed;background:#fff;box-shadow:0 5px 16px #2854e80a}
.portal-tile-art{width:80px;height:80px;background:#eaf0ff;border-radius:13px;position:relative;display:block;padding:5px}
.portal-tile-done{position:absolute;right:-5px;top:-5px;border:1px solid #188363;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#fff;font-size:var(--portal-meta);color:#188363}
.portal-tile-copy{min-width:0}
.portal-shell .portal-tile-copy h3{font-size:var(--portal-section);line-height:1.35}
.portal-tile-copy small{display:block;font-size:var(--portal-meta);color:var(--muted);margin-top:7px;line-height:1.7}
.portal-tile-end{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding-top:13px;color:var(--muted);min-width:0}
.portal-tile-end small{font-size:var(--portal-meta);line-height:1.6}
.portal-shell .portal-build-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px;background:#eaf0ff;border:1px solid #dfe6f8;border-radius:16px;margin:0}
.portal-build-banner h2{margin:0 0 8px}
.portal-build-banner .eyebrow{color:#2854e8}
.portal-build-banner .small{margin-top:7px}
.portal-build-banner>.btn{flex:none;min-width:170px;max-width:none}
.portal-progression>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;min-height:44px}
.portal-progression>summary .small{margin-top:5px}
.portal-progression-content{font-size:var(--portal-body);line-height:1.8;padding-top:20px;color:var(--muted)}
.portal-progression-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}
.portal-progression-steps>div{padding:20px;border-radius:12px;background:#f5f6f9;display:grid;align-content:start;gap:10px}
.portal-progression-steps span{font-size:var(--portal-meta);color:#2854e8;font-weight:600}
.portal-progression-steps strong{font-size:16px;color:#15171d}
.portal-shell .muscle-volume{box-shadow:none}
/* History and editor retain their existing charts, records and editing controls. */
.portal-shell .review-controls{gap:12px}
.portal-shell .review-controls .field{font-size:var(--portal-body)}
.portal-shell .review-trend .trend-summary strong{color:#15171d}
.portal-shell .history-item{padding:18px;background:#fff;border-radius:12px;min-width:0}
.portal-shell .history-item h3{font-size:16px;line-height:1.5}
.portal-shell .client-priorities .review-focus{padding:16px;background:#f5f6f9;border-radius:12px}
.portal-shell .editor-exercise{border-radius:14px}
.portal-shell .editor-exercise h3{font-size:18px}
.portal-shell .footer-save{background:#eaf0ff;gap:20px;line-height:1.7}
.portal-shell .footer-save .btn{flex:none}
/* Coach reviews: a real action button, compact unread badges and independent status. */
.portal-client-name{display:flex;align-items:center;gap:14px;min-width:0}
.portal-client-name .avatar{width:46px;height:46px;border-radius:12px;flex:none}
.portal-coach-controls{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0}
.portal-coach-tabs{display:flex;gap:28px;border-bottom:1px solid var(--border);margin:20px 0 24px}
.portal-coach-tabs button{padding:13px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);display:flex;align-items:center;gap:8px;font-size:var(--portal-body);min-height:44px}
.portal-coach-tabs button[aria-selected=true]{color:#2854e8;border-bottom-color:#2854e8}
.portal-badge{background:#eaf0ff;color:#2854e8;min-width:21px;height:21px;border-radius:6px;font-size:var(--portal-meta);display:inline-grid;place-items:center}
.portal-shell .dashboard-metrics{gap:16px;margin:24px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
.portal-shell .portal-review-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-shell .dashboard-metrics .card{padding:22px;gap:8px}
.portal-shell .dashboard-metrics strong{font:800 var(--portal-title)/1.3 Montserrat,Arial,sans-serif;color:#15171d}
.portal-shell .dashboard-metrics span{font-size:var(--portal-body);color:var(--muted)}
.portal-shell .dashboard-metrics small{font-size:var(--portal-meta);color:var(--muted);line-height:1.7}
.portal-shell .dashboard-toolbar{background:transparent;margin:20px 0;gap:14px}
.portal-shell .dashboard-tabs{border:1px solid var(--border);padding:4px;border-radius:10px;background:#fff}
.portal-shell .dashboard-tabs button{padding:8px 16px;font-size:var(--portal-body);min-height:38px;border-radius:7px;font-weight:500}
.portal-shell .dashboard-tabs button.active{background:#eaf0ff;color:#2854e8}
.portal-review-settings{font-size:var(--portal-meta);color:var(--muted)}
.portal-review-settings>summary{cursor:pointer;line-height:1.8;min-height:32px}
.portal-review-settings .dashboard-dates{padding:12px 0 4px}
.portal-shell .dashboard-filter{gap:16px;margin:24px 0}
.portal-shell .dashboard-filter .field{min-width:160px}
.portal-shell .dashboard-row,.portal-shell .dashboard-column-head{grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(110px,1fr)) minmax(145px,1fr);gap:18px}
.portal-shell .dashboard-row.card{background:#fff;padding:20px 22px;border-color:var(--border);border-radius:14px;font-size:var(--portal-body);cursor:default;transform:none}
.portal-shell .dashboard-row.card:hover{background:#fff;border-color:var(--border)}
.portal-shell .dashboard-row>span{min-width:0}
.portal-shell .dashboard-row strong{font:600 var(--portal-body)/1.6 Poppins,Arial,sans-serif;display:block}
.portal-shell .dashboard-row small{font-size:var(--portal-meta);line-height:1.7;color:var(--muted);display:block;margin-top:4px}
.portal-shell .dashboard-column-head{padding:0 22px;font-size:var(--portal-meta);color:var(--muted)}
.portal-shell .portal-roster-client{display:flex;align-items:center;gap:12px}
.portal-roster-avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;background:#eaf0ff;color:#2854e8;border-radius:10px;font-weight:600}
.portal-shell .portal-feedback-count.dashboard-unread{display:inline-flex;align-items:center;width:max-content;max-width:100%;background:#eaf0ff;color:#2854e8;padding:3px 8px;border-radius:6px;font-size:var(--portal-meta);font-weight:600}
.portal-shell .portal-row-label{display:none}
.portal-shell .portal-review-entry{display:grid;gap:8px;justify-items:start}
.portal-review-state{font-size:var(--portal-meta);color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.portal-review-state::before{content:'';width:5px;height:5px;border-radius:50%;background:#c48a2c}
.portal-review-state.reviewed::before{background:#188363}
.portal-shell .dashboard-status{font-size:var(--portal-meta);line-height:1.6;padding:6px 10px;border-radius:7px;background:#eaf0ff;color:#2854e8}
.portal-shell .dashboard-status.reviewed{background:#e7f5ef;color:#188363}
.portal-shell .dashboard-comment{font-size:var(--portal-body);line-height:1.8;margin:16px 0}
.portal-shell .dashboard-feedback .eyebrow{font-size:var(--portal-meta);line-height:1.8}
.portal-shell .dashboard-plan{max-height:none;overflow:visible}
.portal-shell .dashboard-activity{margin:0 0 24px}
.portal-shell .dashboard-activity h3{font-size:16px}
.portal-shell .dashboard-bar-row{grid-template-columns:80px minmax(40px,1fr) 25px;gap:13px}
.portal-shell .dashboard-bars{max-height:none;overflow:visible}
.portal-shell .dashboard-bars .dashboard-bar{background:#2854e8}
.portal-shell .portal-coach-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:18px}
.portal-coach-day{border:0;border-radius:10px;background:#f5f6f9;display:grid;justify-items:center;gap:7px;padding:12px 3px;min-width:0;color:var(--muted);font-size:var(--portal-meta);line-height:1.5}
.portal-coach-day strong{font:800 20px/1.2 Montserrat,Arial,sans-serif;color:#15171d}
.portal-coach-day small{font-size:var(--portal-meta);line-height:1.6}
.portal-coach-day-mark{font-size:15px;line-height:1;height:17px}
.portal-coach-day.logged{background:#e7f5ef;color:#188363}.portal-coach-day.planned{background:#eaf0ff;color:#2854e8}.portal-coach-day.partial{background:#fcf0da;color:#956213}
.portal-shell .dashboard-feedback-actions{margin-bottom:0}
.portal-latest-feedback{margin:24px 0}
.portal-client-list{display:grid;gap:12px}
.portal-client-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:center;min-width:0}
.portal-client-row .avatar{border-radius:11px;width:44px;height:44px;flex:none}
.portal-client-open{border:0;background:transparent;padding:0;text-align:left;color:#15171d;min-width:0}
.portal-client-open h3{font-size:18px}
.portal-client-open small{font-size:var(--portal-meta);color:var(--muted);line-height:1.8;display:block;margin-top:5px;overflow-wrap:anywhere}
.portal-client-row .flex{flex-wrap:wrap;justify-content:flex-end;gap:8px}
/* Import markers live in the heading flow; file pickers fit their card. */
.portal-import-grid,.portal-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.portal-shell .card.import-section{padding:24px;display:flex;flex-direction:column;gap:20px;min-width:0}
.portal-import-heading{display:flex;align-items:flex-start;gap:12px;min-width:0}
.portal-import-heading>div{min-width:0}
.portal-import-heading p{font-size:var(--portal-meta);margin-top:6px}
.portal-shell .import-step{position:static;inset:auto;width:34px;height:34px;flex:none;border-radius:10px;font:800 16px/1.2 Montserrat,Arial,sans-serif;background:#eaf0ff;color:#2854e8;display:grid;place-items:center}
.portal-file-field{display:flex;flex-direction:column;gap:8px;border:1px dashed #bfcbe4;background:#f9faff;border-radius:12px;padding:18px;min-width:0}
.portal-file-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:var(--portal-body)}
.portal-file-label .icon{color:#2854e8;width:18px;height:18px}
.portal-file-field input{display:block;width:100%;min-width:0;font-size:var(--portal-meta);color:var(--muted);margin-top:4px}
.portal-file-field input::file-selector-button{min-height:40px;padding:8px 12px;border:1px solid #dce1eb;border-radius:8px;margin-right:10px;background:#fff;color:#2854e8;font:600 var(--portal-meta)/1.5 Poppins,Arial,sans-serif;cursor:pointer}
.portal-import-note{display:flex;align-items:flex-start;gap:8px;font-size:var(--portal-meta);line-height:1.8;color:var(--muted);margin-top:20px}
.portal-import-note .icon{color:#188363;width:18px;height:18px;flex:none;margin-top:1px}
.portal-import-empty .help-copy{margin:12px 0 20px}
.portal-shell .import-preview h3{font-size:16px}
.portal-settings-grid form{margin-top:20px}
.portal-account-details{display:grid;gap:14px;margin:20px 0 0}
.portal-account-details>div{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;font-size:var(--portal-body)}
.portal-account-details dt{color:var(--muted)}.portal-account-details dd{margin:0;text-align:right;overflow-wrap:anywhere}
.portal-settings-grid>.card:last-child{grid-column:1 / -1}
.portal-settings-grid>.card:last-child .help-copy{margin-top:12px}
.portal-settings-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.portal-more-grid{display:grid;gap:12px}
.portal-more-item{display:flex;align-items:center;gap:16px;min-width:0;text-align:left;color:#15171d}
.portal-more-item>span{flex:1;min-width:0;display:grid;gap:6px}
.portal-more-item>span>strong{font-size:16px;font-weight:600}.portal-more-item small{color:var(--muted)}
.portal-more-item>.icon:first-child{width:25px;height:25px;color:#2854e8}
.portal-more-item:hover{border-color:#bdcdf9;background:#f9faff}
@media(max-width:1200px){
 .portal-shell{--portal-gutter:24px}
 .portal-shell .dashboard-row,.portal-shell .dashboard-column-head{grid-template-columns:minmax(140px,1.4fr) repeat(3,minmax(90px,1fr)) minmax(130px,1fr);gap:14px}
 .portal-week-progress{gap:14px}.portal-progress-ring{width:82px;height:82px}.portal-progress-ring>span{width:68px;height:68px}
 .portal-schedule-grid{gap:6px}.portal-schedule-day{padding:12px 8px}
}
@media(max-width:1050px){
 .portal-today-layout{grid-template-columns:minmax(0,1fr)}
 .portal-shell .portal-week-summary{gap:16px}.portal-week-progress{flex:none;gap:20px}
 .portal-import-grid{grid-template-columns:minmax(0,1fr)}
 .portal-schedule-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .portal-shell .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-shell .dashboard-column-head{display:none}
 .portal-shell .dashboard-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
 .portal-shell .portal-roster-client{grid-column:1 / -1}
 .portal-shell .portal-review-entry{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center}
 .portal-shell .portal-row-label{display:block;color:var(--muted);font-size:var(--portal-meta);margin-bottom:6px}
}
@media(max-width:860px){
 .portal-shell{--portal-gutter:18px;display:block}
 .portal-shell .sidebar{display:none}
 .portal-shell .main{padding:0 var(--portal-gutter) calc(104px + env(safe-area-inset-bottom))}
 .portal-shell .topbar.portal-mobile-header{display:flex;justify-content:space-between;align-items:center;gap:10px;background:linear-gradient(180deg,#18181a,#050506);color:#fff;width:calc(100% + 2 * var(--portal-gutter));max-width:none;margin:0 calc(-1 * var(--portal-gutter)) 24px;padding:14px var(--portal-gutter);min-height:70px;box-shadow:0 2px 8px #0000000a}
 .portal-shell .mobile-brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1;font:800 16px/1.4 Montserrat,Arial,sans-serif;color:#fff;text-decoration:none}
 .portal-shell .mobile-brand span{min-width:0;overflow-wrap:anywhere}
 .portal-shell .mobile-brand img{width:36px;height:33px;object-fit:contain;flex:none}
 .portal-shell .topbar .flex{gap:6px;flex:none;max-width:100%}
 .portal-shell .topbar .btn{color:#fff;background:#ffffff08;border-color:#ffffff1a;min-width:40px;min-height:40px;padding:8px;box-shadow:none}
 .portal-mobile-hide{display:none}
 .portal-shell .topbar .portal-nav-count{font-size:11px}
 .portal-shell .mobile-nav{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;backdrop-filter:blur(16px);border-top:1px solid var(--border);z-index:20;box-shadow:0 -4px 18px #14223a06}
 .portal-shell .mobile-nav .portal-nav-item{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:50px;border:0;border-radius:10px;padding:7px 3px;font-size:11px;color:var(--muted);background:transparent;line-height:1.5;white-space:nowrap;position:relative;box-shadow:none}
 .portal-shell .mobile-nav .portal-nav-item.active{background:#eaf0ff;color:#2854e8}
 .portal-shell .mobile-nav .icon{width:20px;height:20px}
 .portal-shell .mobile-nav .portal-nav-count{position:absolute;top:3px;right:calc(50% - 26px);min-width:17px;min-height:17px;font-size:9px;background:#2854e8;color:#fff;padding:1px 3px}
 .portal-coach .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;padding-inline:5px}
 .portal-coach .mobile-nav .portal-nav-item{font-size:10px}
 .portal-shell .form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-shell .footer-save{flex-wrap:wrap}
 .portal-shell .main h1,.portal-shell .page-head h1{font-size:var(--portal-title)}
 .portal-shell .demo-banner{margin-bottom:22px}
 .portal-shell .portal-session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .portal-shell .card{padding:20px}
 .portal-shell .portal-week{padding:18px 12px 0}
 .portal-week>div:first-child{padding:0 6px}
 .portal-week-strip{gap:3px;padding:14px 0}
 .portal-day{font-size:11px;min-height:82px;gap:5px;border-radius:9px;padding:9px 1px}
 .portal-day strong{font-size:20px}.portal-day small{font-size:11px}
 .portal-week-expanded>summary{padding:13px 6px}
 .portal-shell .card.portal-hero{padding:20px}
 .portal-hero-top{grid-template-columns:minmax(0,1fr) 72px;gap:12px}
 .portal-hero .portal-session-art{width:72px;height:86px}
 .portal-shell .portal-week-summary{padding:20px}
 .portal-block-banner{padding:20px;gap:16px}
 .portal-shell .portal-session-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .portal-shell .portal-session-tile{grid-template-columns:66px minmax(0,1fr) 72px;align-items:center;gap:12px;padding:16px;min-width:0}
 .portal-tile-art{width:66px;height:66px;padding:3px;border-radius:10px}
 .portal-shell .portal-tile-copy h3{font-size:18px;line-height:1.4}
 .portal-tile-copy small{font-size:var(--portal-meta);margin-top:5px}
 .portal-tile-end{border:0;padding:0;display:grid;gap:10px;text-align:right;justify-content:end}
 .portal-tile-end small{font-size:11px;white-space:nowrap}
 .portal-schedule-grid{grid-template-columns:minmax(0,1fr);gap:0;margin-top:16px}
 .portal-schedule-day{display:grid;grid-template-columns:66px minmax(0,1fr);align-items:start;gap:12px;padding:12px 0;border:0;border-bottom:1px solid #edf0f4;background:none;border-radius:0}
 .portal-schedule-day:last-child{border-bottom:0}
 .portal-schedule-day.is-today{border-color:#edf0f4;background:#f2f5ff;border-radius:8px;padding:12px 8px;margin-inline:-8px}
 .portal-schedule-day-label{flex-direction:column;align-items:flex-start;gap:2px;margin:0}
 .portal-schedule-activity{font-size:var(--portal-body)}
 .portal-schedule-activity .icon{width:17px;height:17px;margin-top:3px}
 .portal-schedule-day-label>span{font-size:11px}
 .portal-today-label{display:inline;color:#2854e8;font-size:10px}
 .portal-shell .portal-build-banner{display:grid;grid-template-columns:minmax(0,1fr);padding:22px 20px;gap:18px}
 .portal-build-banner>.btn{width:100%}
 .portal-progression-steps{grid-template-columns:1fr;gap:11px}
 .portal-progression-steps>div{padding:16px}
 .portal-shell .dashboard-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .portal-shell .dashboard-metrics .card{padding:18px 16px}
 .portal-shell .dashboard-metrics strong{font-size:var(--portal-title)}
 .portal-shell .dashboard-metrics span{font-size:var(--portal-meta)}
 .portal-shell .dashboard-metrics{gap:12px}
 .portal-shell .dashboard-filter{flex-wrap:wrap;gap:12px}
 .portal-shell .dashboard-filter>.input{flex-basis:100%}
 .portal-shell .dashboard-filter .field{min-width:0;flex:1}
 .portal-shell .dashboard-feedback-actions .btn,.portal-shell .dashboard-review-actions .btn{flex:1 1 auto}
 .portal-coach-controls .btn{flex:1 1 auto}
 .portal-coach-tabs{gap:20px;justify-content:space-between}
 .portal-shell .dashboard-plan-row{gap:12px}
 .portal-shell .dashboard-dates{gap:10px}
 .portal-shell .dashboard-dates .field{min-width:135px;flex:1}
 .portal-client-row{grid-template-columns:38px minmax(0,1fr);gap:12px}
 .portal-client-row .avatar{width:38px;height:38px}
 .portal-client-row>.flex{grid-column:1 / -1;justify-content:flex-start;border-top:1px solid var(--border);padding-top:14px}
 .portal-client-row .btn{flex:1 1 auto}
 .portal-shell .review-controls{grid-template-columns:1fr}
 .portal-shell .review-trend .help-copy{font-size:var(--portal-meta)}
 .portal-shell .review-focus-list{grid-template-columns:1fr}
 .portal-shell .history-item{flex-wrap:wrap;gap:12px}
 .portal-import-grid,.portal-settings-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 .portal-shell .card.import-section{padding:20px;gap:18px}
 .portal-file-field{padding:15px}
 .portal-import-heading{gap:10px}
 .portal-settings-actions{flex-direction:column;align-items:stretch}
}
@media(max-width:360px){
 .portal-shell{--portal-gutter:14px}
 .portal-shell .card{padding:18px}
 .portal-shell .portal-session-tile{grid-template-columns:56px minmax(0,1fr) 64px;gap:10px;padding:13px}
 .portal-tile-art{width:56px;height:56px}
 .portal-shell .portal-tile-copy h3{font-size:16px}
 .portal-tile-copy small{font-size:11px}
 .portal-progress-ring{width:76px;height:76px}.portal-progress-ring>span{width:64px;height:64px}
 .portal-week-progress{gap:14px}
 .portal-coach-controls .btn{padding-inline:10px}
 .portal-coach-tabs{gap:12px}.portal-coach-tabs button{font-size:13px}
}

/* A visible charcoal-to-black finish, light reflection and separate edge. */
.portal-shell .sidebar{background:linear-gradient(165deg,#090b10 0%,#101625 62%,#090b10 100%);border-right:1px solid #1d2638;box-shadow:12px 0 36px #0b10201f,inset 1px 0 0 #ffffff14,inset -1px 0 0 #ffffff16}
.portal-shell .sidebar::after{content:"";position:absolute;inset:0 0 0 auto;width:1px;pointer-events:none;background:linear-gradient(180deg,#ffffff0a,#ffffff4d 24%,#ffffff12 75%,transparent)}

/* Past sessions have a separate, explicit action rather than a clickable status. */
.portal-shell .history-log-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.portal-shell .history-session{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #e1e5ed;box-shadow:none}
.portal-shell .history-session:hover{border-color:#e1e5ed}
.portal-shell .history-session-copy{min-width:0;flex:1}
.portal-shell .history-session h3{font-size:16px;text-transform:none;line-height:1.5}
.portal-shell .history-session p{margin-top:6px;line-height:1.65}
.portal-shell .history-session-status{display:block;color:#747a87;font-size:12px;line-height:1.5;margin-top:5px}
.portal-shell .history-session .btn{flex:none;min-width:124px}
.portal-shell .history-expand-action{margin-top:18px}
.portal-shell .past-sessions{scroll-margin-top:20px}
@media(max-width:600px){.portal-shell .history-session{align-items:stretch;flex-direction:column;gap:14px}.portal-shell .history-session .btn{align-self:stretch}}

/* One compact gear beside the client identity; account actions live in Settings. */
.portal-account>div{flex:1}
.sidebar-foot .btn.portal-account-gear,.portal-shell .sidebar-foot .btn.portal-account-gear{width:36px;min-width:36px;min-height:36px;height:36px;padding:8px;margin:0;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff;background:transparent;border:0;box-shadow:none;border-radius:8px}
.sidebar-foot .btn.portal-account-gear:hover,.portal-shell .sidebar-foot .btn.portal-account-gear:hover{background:#ffffff12}
.portal-account-gear:focus-visible{outline:2px solid #fff;outline-offset:3px}
.portal-header-actions{display:flex;align-items:center;gap:8px}
.portal-shell .portal-desktop-updates{display:inline-flex;align-items:center;gap:6px;width:auto;min-width:40px;padding:8px;position:relative}
.portal-block-week strong.portal-block-start{font-size:18px;white-space:nowrap}
@media(max-width:860px){.portal-shell .portal-desktop-updates{display:none}}

/* Separate the navigation back link from the client identity. */
.coach-client-workspace .portal-review-back{display:inline-flex;align-items:center;min-height:40px;margin-bottom:22px}
.portal-period-label{line-height:1.7}
.portal-period-label>strong{display:block;color:#15171d;font-weight:600;font-size:14px}
.portal-shell .dashboard-bar-row{grid-template-columns:106px minmax(40px,1fr) 25px}
.portal-bar-label{display:flex;flex-direction:column;gap:3px;font-size:13px}
.portal-bar-label small{font-size:11px;color:var(--muted);line-height:1.5}
.portal-comments-section{margin:28px 0}
.portal-comments-section .stack,.portal-action-cards{gap:16px}
.portal-review-empty{margin-top:16px}
@media(max-width:600px){.coach-client-workspace .portal-review-back{margin-bottom:18px}.portal-shell .dashboard-bar-row{grid-template-columns:90px minmax(40px,1fr) 25px;gap:10px}}

.portal-account span:not(.avatar){overflow-wrap:anywhere;line-height:1.5}

/* V1.32: calmer coach architecture and the focused weekly Google check-in. */
.portal-shell .coach-workspace-tabs{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid #e1e6f0;margin:0 0 25px;padding:0 0 13px}
.portal-shell .coach-workspace-tabs::-webkit-scrollbar{display:none}
.portal-shell .coach-workspace-tab{border:1px solid transparent;border-radius:11px;padding:11px 18px;background:transparent;white-space:nowrap;color:#606c7e;font:600 13px/1.35 Poppins,Arial,sans-serif;cursor:pointer;min-height:43px}
.portal-shell .coach-workspace-tab:hover{background:#f5f7fc;color:#2446c8}
.portal-shell .coach-workspace-tab.active{background:#eaf0ff;border-color:#dbe4ff;color:#2452ea}
.portal-shell .hub-checkin-deadline{display:flex;align-items:center;gap:16px;background:linear-gradient(115deg,#edf2ff,#f8faff);border:1px solid #dbe5ff;border-radius:18px;padding:22px 24px;margin:24px 0}
.portal-shell .hub-deadline-icon{display:grid;place-items:center;background:#fff;color:#2755ed;border-radius:14px;width:52px;height:52px;flex:none;border:1px solid #e4e9fc}
.portal-shell .hub-deadline-icon .icon{width:25px;height:25px}
.portal-shell .hub-checkin-deadline>span:last-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.portal-shell .hub-checkin-deadline strong{font:800 clamp(18px,2.3vw,26px)/1.35 Montserrat,Arial,sans-serif;color:#1b2750}
.portal-shell .hub-checkin-deadline small{font:500 12px/1.5 Poppins,Arial,sans-serif;color:#66718b}
.portal-shell .hub-checkin-deadline small:first-child{font-size:11px;letter-spacing:.07em;font-weight:700;color:#3655ac}
.portal-shell .hub-choice{position:relative}
.portal-shell .hub-choice-number{font:800 12px/1 Montserrat,Arial,sans-serif;position:absolute;top:17px;right:20px;color:#8b99b1;background:#f1f4fa;padding:9px 10px;border-radius:9px}
.portal-shell .hub-checkin-reassurance{border-top:1px solid #e6e9f1;margin:22px 0 0;padding:22px 4px 0;color:#46556f;font:500 14px/1.75 Poppins,Arial,sans-serif}
.portal-shell .hub-coaching-action-checkin .hub-action-footer{color:#2452ea}
@media(max-width:600px){.portal-shell .coach-workspace-tabs{margin-bottom:18px;gap:4px}.portal-shell .coach-workspace-tab{padding:10px 13px;font-size:12px}.portal-shell .hub-checkin-deadline{padding:16px;margin:17px 0;gap:12px}.portal-shell .hub-checkin-deadline strong{font-size:19px}.portal-shell .hub-deadline-icon{width:44px;height:44px}.portal-shell .hub-choice-number{right:14px;top:14px}}

.portal-shell .hub-link-pending{width:100%;display:grid;gap:8px}
.portal-shell .hub-link-pending .btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}
.portal-shell .hub-legacy-checkins{margin-top:22px}
.portal-shell .hub-legacy-checkins .hub-legacy-title{cursor:pointer;font:600 13px/1.5 Poppins,Arial,sans-serif;color:#576881;padding:2px 0;list-style-position:inside}
.portal-shell .hub-legacy-checkins[open] .hub-legacy-title{margin-bottom:18px}

/* V1.33 polish: consistent Poppins action text, explicitly labelled steps and real destinations. */
.portal-shell .hub-coaching-action-checkin .hub-action-footer,.portal-shell .hub-coaching-action-checkin [data-uk-checkin-countdown]{font:600 14px/1.5 Poppins,Arial,sans-serif;letter-spacing:0;color:#2452ea}
.portal-shell .hub-choice{padding-top:95px!important}
.portal-shell .hub-choice-number{left:23px;right:auto;top:22px;position:absolute;font:700 12px/1.25 Poppins,Arial,sans-serif;color:#2854e9;background:#edf2ff;padding:10px 13px}
.portal-shell .hub-choice-icon.hub-google-icon{position:absolute;right:24px;top:16px;left:auto;display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:#f8faff;border:1px solid #e7edfa;border-radius:13px}
.portal-shell .hub-choice-icon.hub-google-icon img{display:block;width:39px;height:39px;object-fit:contain}
.portal-shell .hub-checkin-late{display:block;margin-top:8px;color:#65728b;font-size:12px;line-height:1.65}
.portal-shell .hub-meal-plan-card{display:flex;flex-direction:column;gap:17px}
.portal-shell .hub-meal-plan-head{display:flex;align-items:center;gap:14px}
.portal-shell .hub-meal-plan-symbol{background:#eaf0ff;color:#3154e9;border-radius:13px;width:54px;height:54px;display:grid;place-items:center;flex:none}
.portal-shell .hub-meal-plan-head h2{margin:0 0 6px}
.portal-shell .hub-meal-plan-head p{margin:0}
.portal-shell .hub-meal-plan-link{align-self:flex-start}
.portal-shell .hub-meal-plan-awaiting{padding:13px 15px;background:#f7f8fb;border:1px solid #e8edf5;border-radius:11px;color:#66738b;font:500 13px/1.5 Poppins,Arial,sans-serif}
.portal-shell .hub-upcoming-course .hub-cover{filter:saturate(.8);opacity:.82}
.portal-shell .hub-upcoming-course .hub-upcoming-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:12px;color:#8b96a8;font:500 12px/1.4 Poppins,Arial,sans-serif}
.portal-shell .hub-course-starters{margin-top:26px}
.portal-shell .hub-course-starter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.portal-shell .hub-course-starter{display:flex;flex-direction:column;gap:10px;padding:20px}
.portal-shell .hub-course-starter h3{font:800 17px/1.4 Montserrat,Arial,sans-serif;margin:0}
.portal-shell .hub-course-starter .btn{margin-top:auto;align-self:flex-start}
@media(max-width:600px){.portal-shell .hub-choice-number{left:15px;top:20px}.portal-shell .hub-choice-icon.hub-google-icon{right:14px;top:15px}}

/* V1.34: restrained coaching deadline and Kajabi-like cover upload */
.portal-shell .hub-checkin-deadline{background:#f7f9ff;border:1px solid #e0e7f9;box-shadow:none;padding:20px 24px;border-radius:18px;gap:16px}
.portal-shell .hub-checkin-deadline strong{font:700 clamp(17px,2vw,24px)/1.5 Poppins,Arial,sans-serif;letter-spacing:-.015em;color:#1e3160}
.portal-shell .hub-checkin-deadline small:first-child{font:700 11px/1.5 Poppins,Arial,sans-serif;color:#4464ad;letter-spacing:.06em}
.portal-shell .hub-image-upload{display:flex;align-items:center;gap:16px;padding:15px;border:1px dashed #ced9ed;border-radius:14px;background:#f8faff;min-width:0}
.portal-shell .hub-image-upload>div:last-child{flex:1;min-width:0}
.portal-shell .hub-image-upload strong{display:block;font:700 14px/1.5 Poppins,Arial,sans-serif}
.portal-shell .hub-image-upload .help-copy{margin:3px 0 8px;font-size:12px}
.portal-shell .hub-image-upload input[type=file]{width:100%;max-width:100%;font:500 12px/1.5 Poppins,Arial,sans-serif}
.portal-shell .hub-image-upload-preview{width:128px;height:92px;border-radius:11px;display:grid;place-items:center;flex:none;overflow:hidden;background:#e9effd;color:#3158e8}
.portal-shell .hub-image-upload-preview img{width:100%;height:100%;object-fit:cover;display:block}
.portal-shell .hub-image-upload-preview .icon{width:26px;height:26px}
.portal-shell .hub-lesson-image-upload .hub-image-upload-preview{width:92px;height:76px}
.portal-shell .hub-lesson-cover-hero{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:13px;margin-bottom:18px}
@media(max-width:600px){.portal-shell .hub-checkin-deadline{padding:16px}.portal-shell .hub-checkin-deadline strong{font-size:18px}.portal-shell .hub-image-upload{gap:12px;padding:12px}.portal-shell .hub-image-upload-preview{width:82px;height:75px}}

.portal-shell .hub-checkin-deadline .hub-countdown-parts{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin:5px 0 3px;max-width:100%}
.portal-shell .hub-countdown-unit{min-width:78px;display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;background:white;border:1px solid #e0e6f2;border-radius:12px;padding:8px 13px}
.portal-shell .hub-countdown-unit strong{font:700 24px/1.25 Poppins,Arial,sans-serif!important;color:#1d3067;letter-spacing:0}
.portal-shell .hub-countdown-unit small{font:600 10px/1.55 Poppins,Arial,sans-serif!important;color:#69778f!important;letter-spacing:0!important;text-transform:uppercase}
@media(max-width:380px){.portal-shell .hub-countdown-unit{min-width:62px;padding:7px 9px}.portal-shell .hub-countdown-unit strong{font-size:19px!important}.portal-shell .hub-countdown-parts{gap:6px!important}}

/* V1.35 · Full supplied Google Sheets / Forms wordmarks, balanced as a pair. */
.portal-shell .hub-choice-icon.hub-google-brand{
  position:absolute;right:23px;top:18px;left:auto;
  display:flex;align-items:center;justify-content:flex-end;
  width:clamp(132px,15vw,186px);height:52px;max-width:58%;
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
.portal-shell .hub-choice-icon.hub-google-brand img{
  display:block;width:100%;height:100%;object-fit:contain;object-position:right center;
}
@media(max-width:600px){
  .portal-shell .hub-choice-icon.hub-google-brand{right:14px;top:16px;width:154px;height:48px;max-width:57%}
}
@media(max-width:360px){
  .portal-shell .hub-choice-icon.hub-google-brand{width:136px;max-width:54%}
}

/* V1.37: compact client creation, legible coach review queue */
.coach-add-client-form{max-width:560px;margin:0 auto;gap:18px}
.coach-add-client-form .help-copy{font-size:13px;line-height:1.5;margin:0}
.coach-tag-fieldset{border:0;padding:0;margin:0;min-width:0}
.coach-tag-fieldset legend{font-weight:700;margin-bottom:12px}
.coach-tag-fieldset legend small{font-weight:400;color:#677288}
.coach-tag-options{display:flex;flex-wrap:wrap;gap:9px}
.coach-tag-options label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:9px 13px;background:#f4f7ff;border:1px solid #dce4f8;border-radius:12px;font-size:14px}
.coach-tag-options label:has(input:checked){border-color:#2452ea;background:#e9efff;color:#234fdb}
.coach-tag-options input{accent-color:#2452ea;width:17px;height:17px}
.coach-midweek-reminder{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;background:linear-gradient(110deg,#f0f4ff,#fff);border:1px solid #d9e4ff;margin-bottom:20px}
.coach-midweek-reminder h2{font-size:21px;margin:7px 0}
.coach-midweek-reminder p{margin:0}
.coach-midweek-count{text-align:center;min-width:115px}
.coach-midweek-count strong{display:block;font-size:30px;color:#2857e7;line-height:1.2}
.coach-midweek-count small{font-size:12px;color:#5f6b82}
@media(max-width:580px){.coach-midweek-reminder{padding:18px;align-items:flex-start}.coach-midweek-count{min-width:75px}.coach-add-client-form .form-grid{grid-template-columns:1fr}}

/* V1.39: Today hero must keep its secondary action anchored to the card bottom.
   This also applies on a rest or match day when no workout button is present. */
.portal-shell .portal-today-layout .card.portal-hero{
 display:flex;flex-direction:column;align-items:stretch;
}
.portal-shell .portal-today-layout .portal-hero .today-secondary{
 margin-top:auto;padding-top:18px;
}
/* Single visual token for all shared sidebar instances and all routes. */
.portal-shell .sidebar{
 background:linear-gradient(165deg,#090b10 0%,#101625 62%,#090b10 100%);
}

/* V1.40 mobile legibility: align everyday reading size with iOS/Material norms,
   while preserving compact secondary labels and desktop layout. */
@media(max-width:680px){
 .portal-shell{--portal-body:16px;--portal-meta:13px}
 .portal-shell .hub-coaching-action .hub-action-content strong{font-size:17px;line-height:1.4}
 .portal-shell .hub-coaching-action .hub-action-content>span{font-size:14px;line-height:1.5}
 .portal-shell .hub-coaching-action .hub-action-footer{font-size:14px;line-height:1.45}
 .portal-shell .hub-coaching-action-checkin .hub-action-footer,.portal-shell .hub-coaching-action-checkin [data-uk-checkin-compact]{font:600 14px/1.45 Poppins,Arial,sans-serif;letter-spacing:0;color:#2452ea}
 .hub-coaching-action-checkin .hub-countdown-long{display:none!important}
 .hub-coaching-action-checkin .hub-countdown-short{display:inline!important;white-space:nowrap;font-variant-numeric:tabular-nums}
 .portal-shell .hub-coaching-action:not(:last-child){min-width:0}
 .portal-shell .hub-coaching-action .hub-action-footer{gap:5px}
 .portal-shell .hub-coaching-action .hub-action-footer>span:last-child{flex:none}
}
@media(min-width:681px){.hub-countdown-short{display:none!important}}
/* Rounded workout control surface shared by coach-preview and client workspaces. */
.portal-shell.training-shell .session-head{
 position:relative;top:auto;z-index:auto;
 background:#fff;border:1px solid #dce3f0;border-radius:19px;
 padding:18px 20px 20px;margin:0 0 24px;
 box-shadow:0 4px 18px rgba(22,37,74,.05);backdrop-filter:none;
}
.portal-shell.training-shell .session-head .session-actions{align-items:center}
.portal-shell.training-shell .session-head .save-state{color:#5f6a7a}
@media(max-width:680px){
 .portal-shell.training-shell .session-head{padding:15px;border-radius:18px;margin-bottom:22px;overflow:hidden}
 .portal-shell.training-shell .session-actions{gap:9px 12px}
 .portal-shell.training-shell .session-actions .btn{font-size:14px;min-height:43px;padding:9px 14px}
 .portal-shell.training-shell .session-actions .text-btn{font-size:15px;min-height:44px}
 .portal-shell.training-shell .session-actions .save-state{font-size:13px}
 .portal-shell.training-shell .session-context{font-size:13px;line-height:1.5;margin:12px 0;gap:6px 12px}
 .portal-shell.training-shell .session-runtime{font-size:12px}
 .portal-shell.training-shell .exercise-dots{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:5px}
 .portal-shell.training-shell .workout-progress-label{font-size:14px}
 .portal-shell.training-shell .warmup-protocol{font-size:16px;line-height:1.65}
 .portal-shell.training-shell .warmup-item .cue{font-size:15px;line-height:1.7}
}
@media(max-width:360px){
 .portal-shell .hub-coaching-action-checkin .hub-action-footer,.portal-shell .hub-coaching-action-checkin [data-uk-checkin-compact]{font-size:13px}
 .portal-shell.training-shell .session-actions .btn{padding:8px 10px}
}

/* V1.41: Today's two cards must size to content, not stretch vertically. */
.portal-shell .portal-today-layout{align-items:start}
.portal-shell .portal-today-layout .card.portal-hero{min-height:0;height:auto;align-self:start;gap:0;padding:22px 24px}
.portal-shell .portal-today-layout .portal-hero .today-summary{margin:12px 0 14px;line-height:1.55}
.portal-shell .portal-today-layout .portal-hero .today-secondary{margin-top:10px;padding-top:0}
.portal-shell .portal-today-layout .portal-week-summary{min-height:0;align-self:start;padding:22px 24px;gap:12px}
.portal-shell .portal-today-layout .portal-week-progress{flex:0 0 auto;gap:16px}
.portal-shell .portal-today-layout .portal-week-progress p{margin-top:3px;line-height:1.5}
.portal-shell .portal-today-layout .portal-progress-ring{width:80px;height:80px}
.portal-shell .portal-today-layout .portal-progress-ring>span{width:66px;height:66px}
.portal-shell .portal-today-layout .portal-week-caption{margin:0;line-height:1.45}
.portal-shell .portal-today-layout .portal-week-summary h2{margin:0;line-height:1.3}
@media(max-width:580px){.portal-shell .portal-today-layout .card.portal-hero,.portal-shell .portal-today-layout .portal-week-summary{padding:20px}}
/* Coach comment inbox: a direct, private review queue. */
.coach-dashboard .coach-feedback-metric{font:inherit;text-align:left;cursor:pointer;border:1px solid #bed0fb;background:#f1f5ff;transition:border .15s,background .15s}
.coach-dashboard .coach-feedback-metric:hover{background:#e9f0ff;border-color:#7e9af0}
.coach-feedback-metric span{display:flex;justify-content:space-between;gap:10px}
.coach-feedback-inbox{margin:18px 0 24px;padding:24px}
.coach-inbox-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.coach-inbox-head h2{font:800 20px/1.3 Montserrat,Arial,sans-serif;text-transform:none;letter-spacing:-.025em;margin-bottom:8px}
.coach-inbox-counter{background:#eaf0ff;color:#2854e8;font-size:13px;font-weight:700;white-space:nowrap;border-radius:24px;padding:7px 12px}
.coach-inbox-list{display:grid;gap:10px}
.coach-inbox-item{padding:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;border:1px solid #dde5f4;background:#f9fbff;border-radius:14px;min-width:0}
.coach-inbox-item-main{min-width:0}
.coach-inbox-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:#647084}
.coach-inbox-meta strong{font-size:15px;color:#111827}
.coach-inbox-rating{color:#2452e8;font-weight:600}
.coach-inbox-comment{font-size:15px;line-height:1.6;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.coach-inbox-note{font-size:14px;line-height:1.6;margin:8px 0 0;color:#4d5d74;white-space:pre-wrap;overflow-wrap:anywhere}
.coach-inbox-done{display:inline-flex;align-items:center;gap:9px;border:1px solid #bbcae8;background:#fff;color:#2854e8;border-radius:10px;padding:11px 14px;font:600 14px/1.4 Poppins,Arial,sans-serif;min-height:44px;cursor:pointer;white-space:nowrap}
.coach-inbox-done:hover{background:#edf3ff;border-color:#2854e8}
.coach-inbox-checkbox{width:21px;height:21px;border:2px solid #899bc4;border-radius:5px;color:transparent;font-size:14px;display:grid;place-items:center}
.coach-inbox-done:hover .coach-inbox-checkbox{border-color:#2854e8;color:#2854e8}
.coach-inbox-empty{padding:18px;border:1px dashed #c7d3e8;border-radius:12px;color:#647084;line-height:1.6}
@media(max-width:640px){.coach-feedback-inbox{padding:18px}.coach-inbox-head{flex-direction:column;gap:10px}.coach-inbox-item{grid-template-columns:1fr;gap:12px;padding:16px}.coach-inbox-done{justify-self:start}.coach-inbox-comment{font-size:16px}}

/* V1.42: responsive request modal and private feedback archive. */
#modal[data-kind="resolve-request"]{width:min(520px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100dvh - 24px);box-sizing:border-box;padding:clamp(16px,3vw,26px);overflow-x:hidden;overflow-y:auto}
#modal[data-kind="resolve-request"] .modal-head,#modal[data-kind="resolve-request"] .modal-body,#resolve-review-form{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
#modal[data-kind="resolve-request"] .modal-head h2{font-size:clamp(20px,4vw,26px);line-height:1.2;overflow-wrap:anywhere}
#resolve-review-form{gap:16px;overflow-wrap:anywhere}
#resolve-review-form h3{font-size:clamp(17px,3.5vw,21px);line-height:1.35;overflow-wrap:anywhere}
#resolve-review-form .review-note{overflow-wrap:anywhere;white-space:pre-wrap}
#resolve-review-form .field{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
#resolve-review-form textarea{display:block;box-sizing:border-box;min-width:0;width:100%;max-width:100%;min-height:112px;max-height:230px;resize:vertical;overflow-x:hidden;overflow-wrap:anywhere}
#modal[data-kind="resolve-request"] .btn[type="submit"]{width:100%;max-width:100%}
.coach-inbox-tabs{display:inline-flex;max-width:100%;gap:4px;margin:0 0 16px;padding:4px;border:1px solid #d8e1f2;background:#f5f7fc;border-radius:12px}
.coach-inbox-tabs button{min-height:40px;padding:8px 16px;border:0;border-radius:9px;background:transparent;color:#657184;font:600 14px/1.4 Poppins,Arial,sans-serif;cursor:pointer}
.coach-inbox-tabs button.active{color:#2854e8;background:#fff;box-shadow:0 1px 5px #1a35731b}
.coach-inbox-tabs button:focus-visible{outline:2px solid #2854e8;outline-offset:2px}
.coach-inbox-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}
.coach-inbox-reviewed-state{font:600 13px/1.4 Poppins,Arial,sans-serif;color:#346b56}
.coach-inbox-reviewed-date{color:#657184;font-size:13px;margin-top:12px}
@media(max-width:640px){.coach-inbox-actions{align-items:flex-start}.coach-inbox-tabs{display:flex;width:max-content}.coach-inbox-tabs button{padding-inline:12px}}

/* V1.43 shared spacing token for Today's workout card. */
.portal-shell .portal-today-layout .card.portal-hero{gap:0;padding:22px 24px}
.portal-shell .portal-today-layout .portal-hero .portal-hero-top{margin:0}
.portal-shell .portal-today-layout .portal-hero .today-summary{margin:14px 0 16px;line-height:1.55}
.portal-shell .portal-today-layout .portal-hero .today-secondary{margin:12px 0 0;padding:0}
.portal-shell .portal-today-layout .portal-hero .today-secondary .btn{margin:0}
@media(max-width:680px){
 .portal-shell .portal-today-layout .card.portal-hero{padding:20px}
 .portal-shell .portal-today-layout .portal-hero .today-summary{margin:12px 0 15px}
 .portal-shell .portal-today-layout .portal-hero .today-secondary{margin-top:12px}
}

/* V1.29 modules use the approved portal type roles and surfaces. Logger CSS is unchanged. */
.hub-form .field,.hub-form label{min-width:0}.hub-form .field>span{display:block}.hub-form textarea{resize:vertical}.hub-form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.hub-form-actions>.btn{flex:0 1 auto}.hub-back{margin-bottom:22px;display:inline-flex;align-items:center;min-height:40px}.hub-plan-toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:24px}.hub-segment{display:flex;gap:4px;padding:4px;background:#fff;border:1px solid #e1e5ed;border-radius:12px;max-width:100%}.hub-segment button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:120px;padding:8px 20px;border:0;background:transparent;border-radius:9px;font:600 14px/1.5 Poppins,Arial,sans-serif;color:#626b7a}.hub-segment button[aria-selected=true]{background:#2854e8;color:#fff;box-shadow:0 3px 8px #2854e81c}.hub-segment .icon{width:18px;height:18px}.hub-local-tabs{width:max-content;margin-bottom:24px}.hub-local-tabs button{min-width:0}.hub-error .btn{margin-top:16px}.hub-written{font:400 14px/1.8 Poppins,Arial,sans-serif;overflow-wrap:anywhere}.hub-written p+p{margin-top:16px}.hub-written h2{margin-bottom:16px}.hub-preserve-text,.hub-answer-list p{white-space:pre-wrap;overflow-wrap:anywhere}.hub-banner-icon{display:grid;place-items:center;flex:none;width:70px;height:70px;border:1px solid #c8d5ff;border-radius:18px;background:#dce5ff;color:#2854e8}.hub-banner-icon .icon{width:32px;height:32px}.hub-targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.hub-target{display:grid;gap:10px;align-content:start}.hub-target>span{font-size:14px;font-weight:500;color:#626b7a}.hub-target>strong{font:800 28px/1.2 Montserrat,Arial,sans-serif;color:#15171d}.hub-target>strong small{font:400 14px/1.5 Poppins,Arial,sans-serif;margin-left:6px;color:#626b7a}.hub-resources{display:grid;gap:10px;margin-top:16px}.hub-resource{display:flex;gap:12px;align-items:center;min-width:0;min-height:48px;padding:12px;border:1px solid #e1e5ed;border-radius:10px;background:#fff;color:#2854e8;text-decoration:none;font-size:14px}.hub-resource span{flex:1;overflow-wrap:anywhere;min-width:0}.hub-resource .icon{flex:none}.hub-today-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px}.portal-shell .hub-shortcut{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;align-items:center;gap:14px;text-align:left;padding:18px;color:#15171d;font:400 14px/1.6 Poppins,Arial,sans-serif}.hub-shortcut>span:nth-child(2){display:grid;gap:2px;min-width:0}.hub-shortcut strong{font-size:14px;font-weight:600}.hub-shortcut small{color:#626b7a}.hub-shortcut-icon{width:44px;height:44px;display:grid;place-items:center;background:#eaf0ff;color:#2854e8;border-radius:12px}.hub-shortcut-icon .icon{width:22px;height:22px}.hub-shortcut:hover{border-color:#b8c9f7}.hub-cover{height:168px;min-width:0;background:radial-gradient(circle at 80% 0%,#fff9,transparent 60%),linear-gradient(135deg,#eef3ff,#dde6ff);border:1px solid #d8e2fb;position:relative;overflow:hidden;border-radius:13px;display:grid;place-items:center;color:#2854e8;isolation:isolate}.hub-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.hub-cover-symbol{width:84px;height:84px;display:grid;place-items:center;border-radius:24px;background:#ffffff9c;border:1px solid #ffffffbc;box-shadow:0 6px 24px #2854e80a;transform:rotate(-7deg)}.hub-cover-symbol .icon{width:44px;height:44px;stroke-width:1.6;transform:rotate(7deg)}.hub-cover-caption{position:absolute;bottom:14px;left:16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.hub-cover:has(img:not([hidden])) .hub-cover-caption{background:#ffffffeb;padding:3px 8px;border-radius:6px;z-index:2}.hub-cover:has(img:not([hidden])) .hub-cover-symbol{display:none}.hub-cover-large{height:240px}.portal-shell .hub-onboarding-hero{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:32px;align-items:center;background:#eaf0ff;border-color:#dce5fb}.hub-onboarding-hero p{margin-top:12px}.hub-onboarding-hero .btn{margin-top:20px}.hub-next-lesson{display:flex;gap:12px;align-items:center;margin-top:20px;padding:16px;background:#ffffffb3;border-radius:12px}.hub-next-lesson>span{width:40px;height:40px;display:grid;place-items:center;color:#2854e8;background:#eaf0ff;border-radius:10px;flex:none}.hub-next-lesson>div{display:grid;gap:4px}.portal-shell .hub-checkin-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#eaf0ff;border-color:#dce5fb}.hub-checkin-hero>div{min-width:0;flex:1}.hub-checkin-hero .eyebrow{color:#2854e8}.hub-checkin-hero .help-copy{margin:12px 0 20px}.hub-hero-icon{display:grid;place-items:center;flex:none;width:76px;height:76px;border-radius:18px;color:#2854e8;background:#dce5ff}.hub-hero-icon .icon{width:34px;height:34px}.hub-update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hub-update{display:flex;flex-direction:column;gap:14px;min-width:0}.hub-update-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8}.hub-unread-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#2854e8}.hub-update-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.hub-status{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 9px;border-radius:7px;color:#2854e8;background:#eaf0ff;font:600 12px/1.5 Poppins,Arial,sans-serif;max-width:100%;white-space:normal}.hub-history{display:grid;gap:12px}.hub-history-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #e1e5ed;min-width:0}.hub-history-row>div{display:grid;gap:5px;min-width:0}.hub-history-row strong{font-size:14px;font-weight:600}.hub-history-row small{color:#626b7a}.hub-history-row:last-child{border-bottom:0}.hub-expand{margin-top:16px}.hub-whatsapp-note{display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.6;color:#626b7a;padding:16px;border:1px solid #e1e5ed;background:#fff;border-radius:12px}.hub-whatsapp-note .icon{flex:none;color:#2854e8}.hub-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:24px}.portal-shell .hub-course-tile{padding:16px;display:flex;flex-direction:column;min-width:0;gap:20px}.hub-course-tile>div:last-child{padding:0 4px 4px;display:flex;flex-direction:column;gap:12px;flex:1}.hub-course-tile h2{font-size:20px}.hub-course-tile p{width:100%;max-width:none}.hub-course-tile .hub-form-actions{margin-top:auto}.hub-course-tile .hub-progress{margin-bottom:4px}.portal-shell .hub-learning-hero{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:28px;align-items:center;background:#eaf0ff;border-color:#dce5fb}.hub-learning-hero .help-copy{margin:12px 0 20px}.hub-learning-hero .btn{margin-top:20px}.hub-progress-caption{display:flex;justify-content:space-between;gap:12px;margin:16px 0 8px;font-size:12px;color:#626b7a}.hub-progress-caption strong{color:#2854e8;font-weight:600}.hub-progress{height:7px;border-radius:10px;background:#dbe2f2;overflow:hidden}.hub-progress>span{height:100%;display:block;border-radius:inherit;background:#2854e8}.hub-course-layout{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:24px;align-items:start}.hub-course-summary .btn{margin:20px 0 12px}.hub-lessons{display:grid}.hub-lesson-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:14px;text-align:left;border:0;border-top:1px solid #e1e5ed;background:transparent;padding:20px 0;min-width:0;color:#15171d}.hub-lesson-row>span:nth-child(2){display:grid;gap:6px;min-width:0}.hub-lesson-row strong{font:600 14px/1.6 Poppins,Arial,sans-serif}.hub-lesson-row small{font-size:12px;color:#626b7a}.hub-lesson-row:disabled{opacity:.65;cursor:default}.hub-lesson-number{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#eaf0ff;color:#2854e8;font:600 14px/1.4 Poppins,Arial,sans-serif;flex:none}.hub-lesson-number .icon{width:18px;height:18px}.hub-lesson-row.done .hub-lesson-number{background:#e7f4ee;color:#188363}.hub-lesson-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(230px,1fr);gap:24px;align-items:start}.hub-lesson-content{display:grid;gap:24px;min-width:0}.hub-video{border:0;width:100%;aspect-ratio:16/9;border-radius:12px;background:#111;display:block}.hub-video-link{font-size:12px;display:inline-flex;align-items:center;gap:8px;color:#2854e8;text-decoration:none}.hub-video-link .icon{width:16px;height:16px}.hub-local-video{min-height:180px;background:#eaf0ff;display:flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;color:#2854e8;padding:24px;border-radius:12px}.hub-local-video>span{display:grid;gap:8px;font-weight:600}.hub-local-video small{font-weight:400}.hub-local-video .icon{width:32px;height:32px;flex:none}.hub-task{display:flex;gap:16px;background:#eaf0ff;border:1px solid #dce5fb;border-radius:12px;padding:20px;min-width:0}.hub-task>span{color:#2854e8;flex:none}.hub-task>div{min-width:0}.hub-task p{font:400 14px/1.8 Poppins,Arial,sans-serif;margin-top:8px}.hub-lesson-complete{display:grid;gap:14px;border-top:1px solid #e1e5ed;padding-top:24px;justify-items:start}.hub-completed{display:flex;align-items:center;gap:8px;color:#188363;font-weight:600;font-size:14px}.hub-outline-item{display:flex;gap:10px;align-items:flex-start;min-height:48px;padding:12px;border:1px solid transparent;background:transparent;text-align:left;width:100%;border-radius:10px;font:400 12px/1.6 Poppins,Arial,sans-serif;color:#626b7a}.hub-outline-item strong{font-weight:500}.hub-outline-item span{flex:none;min-width:16px}.hub-outline-item.active{color:#2854e8;background:#eaf0ff;border-color:#dce5fb}.hub-outline-item:disabled{opacity:.65;cursor:default}.hub-form-card{max-width:820px}.hub-form-card>p{margin-bottom:24px}.hub-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hub-required{color:#2854e8}.hub-attention-box{display:grid;gap:16px;background:#eaf0ff;border:1px solid #dce5fb;padding:20px;border-radius:12px}.hub-attention-box p{font-size:14px;line-height:1.8}.hub-answer-list{display:grid;gap:20px}.hub-answer-list>div{display:grid;gap:8px;padding-bottom:18px;border-bottom:1px solid #e1e5ed}.hub-answer-list strong{font:600 14px/1.7 Poppins,Arial,sans-serif}.hub-answer-list p{font:400 14px/1.8 Poppins,Arial,sans-serif}.hub-client-plan{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:20px;align-items:center}.hub-client-plan .help-copy{margin:6px 0}.hub-client-plan>div{min-width:0}.hub-client-plan .avatar{width:40px;height:40px}.hub-editor-lesson{padding:20px;border:1px solid #e1e5ed;background:#f8f9fc;border-radius:12px}.hub-editor-lesson summary{cursor:pointer;margin-bottom:0;min-height:40px;font:600 14px/1.6 Poppins,Arial,sans-serif}.hub-editor-lesson summary>span{display:inline-flex;align-items:center;gap:12px;max-width:100%}.hub-editor-lesson summary strong{overflow-wrap:anywhere;min-width:0}.hub-editor-lesson[open] summary{margin-bottom:20px}.hub-editor-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.hub-access-list{border-top:1px solid #e1e5ed;margin-top:24px;padding-top:20px}.hub-enrolment-row{display:grid;grid-template-columns:40px minmax(0,1fr) 100px auto auto;gap:20px;align-items:center}.hub-enrolment-row>div{min-width:0}.hub-enrolment-row p{font-size:14px;margin:5px 0}.hub-enrolment-row small{color:#626b7a}.hub-enrolment-progress{display:grid;gap:8px;color:#2854e8;font-size:14px}.hub-checkin-workspace{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,2fr);gap:24px;align-items:start}.hub-submission-row{display:flex;gap:20px;align-items:center;justify-content:space-between}.hub-submission-row>div{flex:1;min-width:0}.hub-submission-row>div>p{font-size:14px;margin:8px 0}.hub-request-preview{border-left:3px solid #b6c7ff;padding-left:12px;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.hub-checkin-setup{display:grid;gap:20px}.hub-setup-clients{display:grid;gap:8px}.hub-setup-row{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 0;border:0;border-top:1px solid #e1e5ed;background:transparent;font:400 12px/1.6 Poppins,Arial,sans-serif;text-align:left;color:#626b7a;min-width:0}.hub-setup-row strong{font-weight:600;color:#15171d;overflow-wrap:anywhere;min-width:0}.hub-setup-row>span{display:flex;align-items:center;gap:6px;flex:none}.hub-setup-row .icon{width:16px;height:16px}.hub-question-editor{display:grid;gap:18px;padding:20px;border:1px solid #e1e5ed;background:#f8f9fc;border-radius:12px}.hub-question-editor>.flex{flex-wrap:wrap;gap:12px}.hub-question-editor>.flex .flex{flex-wrap:wrap}.hub-review-checkins{margin-bottom:24px}.hub-review-checkin{display:grid;gap:16px;padding:16px 0;border-top:1px solid #e1e5ed}.hub-reported-metrics{display:flex;gap:24px;flex-wrap:wrap}.hub-reported-metrics>span{display:grid;gap:5px}.hub-reported-metrics small{color:#626b7a}.hub-reported-metrics strong{font-size:14px;font-weight:600}.hub-client-module-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.portal-client .portal-nav-count,.portal-mobile-header .portal-nav-count,.portal-desktop-updates .portal-nav-count{background:#eaf0ff;color:#2854e8}.portal-shell .portal-client-nav{gap:4px}.hub-roster-checkin{display:block;margin-top:4px;color:#2854e8;font-size:12px}.hub-roster-checkin.needs-review{font-weight:600}
@media(max-width:1100px){.hub-enrolment-row{grid-template-columns:40px minmax(0,1fr) 80px}.hub-enrolment-row>.btn{grid-column:auto}.hub-enrolment-row>.btn:last-child{grid-column:2/4}.hub-lesson-layout{grid-template-columns:minmax(0,1fr)}.hub-lesson-outline{order:2}.hub-lesson-outline h3{margin-bottom:10px}.hub-checkin-workspace{grid-template-columns:minmax(0,1fr)}.hub-checkin-setup{order:2}}
@media(max-width:860px){.portal-shell.portal-client .mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-shell.portal-client .mobile-nav .portal-nav-item{position:relative;min-width:0;padding:8px 2px;gap:3px;font-size:11px;min-height:54px}.portal-shell.portal-client .mobile-nav .portal-nav-label{font-size:11px;overflow:visible;text-overflow:clip}.portal-shell.portal-client .mobile-nav .portal-nav-count{position:absolute;top:3px;right:8px;min-width:17px;min-height:17px;font-size:10px;max-width:30px}.hub-plan-toolbar{align-items:stretch;gap:12px}.hub-plan-toolbar>.btn{padding:8px 10px;min-width:0}.hub-segment button{padding:8px 12px;min-width:0;flex:1}.hub-plan-toolbar>.hub-segment{flex:1}.hub-segment .icon{display:none}.hub-learning-hero,.portal-shell .hub-onboarding-hero{grid-template-columns:minmax(0,1fr);gap:20px}.hub-learning-hero>.hub-cover-large{height:176px}.hub-onboarding-hero>.hub-cover{display:none}.hub-course-layout{grid-template-columns:minmax(0,1fr)}.hub-course-summary .hub-cover-large{height:160px}.hub-update-grid{grid-template-columns:minmax(0,1fr)}.hub-client-plan{grid-template-columns:36px minmax(0,1fr);gap:14px}.hub-client-plan>.btn{grid-column:1/-1;justify-self:stretch}.hub-client-plan .avatar{width:36px;height:36px}.hub-submission-row{align-items:stretch;flex-direction:column;gap:16px}.hub-submission-row>.btn{align-self:flex-start}.hub-enrolment-row{grid-template-columns:36px minmax(0,1fr);gap:14px}.hub-enrolment-progress{grid-column:2}.hub-enrolment-row>.btn{grid-column:1/-1;justify-self:stretch}.hub-enrolment-row>.btn:last-child{grid-column:1/-1}.hub-local-tabs{width:100%}.hub-local-tabs button{padding:8px 10px;font-size:12px}.hub-cover-large{height:180px}.hub-editor-tools .btn{flex:1;min-width:0}.hub-editor-lesson{padding:16px}.hub-editor-tools{justify-content:stretch}.hub-question-editor{padding:16px}.hub-back{margin-bottom:18px}.hub-today-links{grid-template-columns:minmax(0,1fr)}.hub-checkin-hero .hub-hero-icon{width:56px;height:56px;border-radius:14px}.hub-checkin-hero .hub-hero-icon .icon{width:26px;height:26px}.hub-targets{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-target{padding:20px!important}.hub-checkin-hero{align-items:flex-start!important;gap:12px!important}.hub-plan-toolbar .hub-segment button{font-size:13px}.hub-plan-toolbar>.btn{font-size:12px}.hub-plan-toolbar>.btn .icon{width:16px;height:16px}}
@media(max-width:480px){.hub-input-grid{grid-template-columns:minmax(0,1fr)}.hub-form-actions>.btn{flex:1 1 130px}.hub-task,.hub-attention-box{padding:16px}.hub-lesson-row{gap:10px;grid-template-columns:32px minmax(0,1fr) 16px}.hub-lesson-number{width:32px;height:32px}.hub-update-footer{align-items:flex-start}.hub-update-footer>.flex{width:100%}.hub-plan-toolbar{flex-wrap:wrap}.hub-plan-toolbar>.hub-segment{flex-basis:100%}.hub-plan-toolbar>.btn{margin-left:auto}.hub-target>strong{font-size:26px}.hub-history-row{flex-wrap:wrap;gap:10px}.hub-history-row>.btn{min-width:120px}.portal-shell .hub-checkin-hero{padding:20px}.hub-checkin-hero>.hub-hero-icon{display:none}.hub-outline-item{font-size:14px}.hub-course-tile .hub-cover{height:164px}}
@media(prefers-reduced-motion:reduce){.hub-progress>span{transition:none}}

.hub-checkin-answer-preview{display:grid;gap:6px;font:400 14px/1.8 Poppins,Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.hub-checkin-answer-preview strong{font-weight:600}
/* V1.30: familiar two-step client coaching, responsive and keyboard-friendly. */
.hub-tracking-stack{display:grid;gap:20px}
.hub-track-step{display:grid;gap:20px;min-width:0}
.hub-step-heading{display:flex;align-items:flex-start;gap:16px}
.hub-step-heading>div{min-width:0;flex:1}
.hub-step-heading h2{font:800 20px/1.4 Montserrat,Arial,sans-serif;margin:4px 0 8px}
.hub-step-heading .help-copy{margin:0;line-height:1.75}
.hub-step-number{display:grid;place-items:center;border-radius:12px;width:42px;height:42px;flex:none;background:#eaf0ff;color:#2854e8;font:800 20px/1 Montserrat,Arial,sans-serif}
.hub-weight-summary,.hub-coach-weight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hub-weight-summary>div,.hub-coach-weight-grid>span{min-width:0;border:1px solid #e1e5ed;border-radius:12px;padding:16px;background:#fafbff;display:grid;gap:8px;align-content:start}
.hub-weight-summary small,.hub-coach-weight-grid small{font:500 12px/1.5 Poppins,Arial,sans-serif;color:#626b7a}
.hub-weight-summary strong,.hub-coach-weight-grid strong{font:800 20px/1.3 Montserrat,Arial,sans-serif;color:#15171d;overflow-wrap:anywhere}
.hub-weight-summary>div>span{font-size:12px;color:#626b7a}
.hub-weight-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.hub-weight-form .field{flex:1 1 150px;max-width:260px}
.hub-weight-form .field input{width:100%;font-size:16px}
.hub-weight-form button{flex:0 0 auto;min-height:46px}
.hub-weight-history{padding:12px 0;border-top:1px solid #e1e5ed;border-bottom:1px solid #e1e5ed}
.hub-weight-history summary,.hub-embed-details summary{cursor:pointer;font-weight:600;color:#2854e8;font-size:14px;min-height:30px}
.hub-weight-history>div{display:grid;grid-template-columns:1fr auto;gap:8px 18px;max-width:420px;padding:14px 4px;font-size:14px}
.hub-weight-history>div strong{font-weight:600;text-align:right}
.hub-track-sheet{display:grid;justify-items:start;gap:12px;padding-top:16px;border-top:1px solid #e1e5ed}
.hub-track-sheet .help-copy,.hub-track-sheet p{margin:0}
.hub-form-links{display:flex;gap:12px;flex-wrap:wrap}
.hub-embed-details{border-top:1px solid #e1e5ed;padding-top:16px;min-width:0}
.hub-embed-details iframe{display:block;width:100%;height:630px;min-height:400px;margin:14px 0;border:1px solid #e1e5ed;border-radius:12px;background:#fff}
.hub-not-configured{padding:18px;background:#f5f6f9;border:1px solid #e1e5ed;border-radius:12px}
.hub-not-configured strong{display:block;margin-bottom:5px}
.hub-coach-weight{margin-bottom:24px}
@media(max-width:680px){.hub-weight-summary,.hub-coach-weight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-weight-summary>div:last-child{grid-column:1/-1}.hub-weight-form .field{max-width:none;flex:1 1 125px}.hub-weight-form button{flex:1 1 100%}}
@media(max-width:365px){.hub-weight-summary,.hub-coach-weight-grid{grid-template-columns:1fr}.hub-weight-summary>div:last-child{grid-column:auto}.hub-step-heading{gap:10px}.hub-step-number{width:34px;height:34px;font-size:17px}.hub-weight-form .field{flex:1 1 100%}}

/* V1.31 · Coaching, designed around client actions rather than a data-entry form. */
.hub-coaching-shell{display:grid;gap:28px;min-width:0}
.hub-coaching-main,.hub-coaching-subpage{display:grid;gap:24px;min-width:0}
.hub-coaching-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hub-coaching-action{appearance:none;text-align:left;font:inherit;color:#15171d;cursor:pointer;min-width:0;border:1px solid #e1e5ed;background:#fff;border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:28px;min-height:225px;box-shadow:0 6px 22px rgba(28,40,76,.025);transition:border-color .18s,box-shadow .18s,transform .18s}
.hub-coaching-action:hover{border-color:#c4d0f5;box-shadow:0 12px 30px rgba(45,75,140,.08);transform:translateY(-2px)}
.hub-coaching-action:focus-visible,.hub-coaching-back:focus-visible,.hub-text-action:focus-visible,.hub-weight-date-toggle:focus-visible{outline:3px solid #2854e8;outline-offset:3px}
.hub-action-top,.hub-action-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hub-action-icon{width:54px;height:54px;display:grid;place-items:center;color:#2854e8;background:#eaf0ff;border-radius:15px}
.hub-action-icon .icon{width:27px;height:27px;stroke-width:1.8}
.hub-action-arrow{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#f5f6f9;color:#717b8e}
.hub-action-arrow .icon{height:17px;width:17px}
.hub-action-content{display:grid;gap:8px;margin-top:auto}
.hub-action-content strong{font:800 20px/1.35 Montserrat,Arial,sans-serif}
.hub-action-content>span{font:400 14px/1.6 Poppins,Arial,sans-serif;color:#626b7a}
.hub-action-footer{font:600 13px/1.5 Poppins,Arial,sans-serif;color:#2854e8;padding-top:13px;border-top:1px solid #edf0f6;margin-top:0}
.hub-action-footer>span:last-child{font:500 22px/1 Arial,sans-serif}
.hub-section-kicker{font:700 11px/1.4 Poppins,Arial,sans-serif;letter-spacing:.105em;color:#687386;text-transform:uppercase}
.hub-trend-card{padding:28px!important;display:grid;gap:18px;min-width:0}
.hub-trend-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.hub-trend-header h2,.hub-trend-header h3{font:800 20px/1.35 Montserrat,Arial,sans-serif;margin:5px 0 4px}
.hub-trend-header>.help-copy,.hub-trend-header p{margin:0}
.hub-text-action{display:inline-flex;gap:6px;align-items:center;justify-content:center;color:#2854e8;font:600 13px/1.4 Poppins,Arial,sans-serif;border:0;background:transparent;cursor:pointer;padding:8px 0;min-height:35px}
.hub-text-action .icon{width:16px;height:16px}
.hub-trend-overview{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.hub-main-stat{display:grid;gap:3px}
.hub-main-stat strong{font:800 30px/1.2 Montserrat,Arial,sans-serif;color:#15171d}
.hub-main-stat span{font:400 13px/1.6 Poppins,Arial,sans-serif;color:#687386}
.hub-main-stat b{font-weight:500}
.hub-change-pill{border:1px solid #dce4f5;background:#f5f8ff;border-radius:99px;padding:8px 12px;font:600 12px/1.5 Poppins,Arial,sans-serif;color:#2854e8}
.hub-trend-graph{width:100%;min-width:0;max-width:100%;}
.hub-trend-graph svg{display:block;width:100%;max-height:240px;overflow:visible}
.hub-trend-line{fill:none;stroke:#2854e8;stroke-width:3.3;stroke-linejoin:round;stroke-linecap:round}
.hub-trend-guide{stroke:#e8ebf2;stroke-width:1.5;stroke-dasharray:4 7}
.hub-trend-point{fill:#fff;stroke:#2854e8;stroke-width:3}
.hub-trend-axis{font:500 12px/1 Poppins,Arial,sans-serif;fill:#8a94a7}
.hub-trend-empty{background:#f8faff;border:1px dashed #dbe3f3;border-radius:14px;min-height:116px;display:grid;place-items:center;text-align:center;padding:24px;font:400 14px/1.65 Poppins,Arial,sans-serif;color:#687386}
.hub-trend-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid #edf0f6;font:400 12px/1.6 Poppins,Arial,sans-serif;color:#687386}
.hub-coaching-updates .section-title h2{font:800 20px/1.35 Montserrat,Arial,sans-serif}
.hub-coaching-quiet{display:flex;align-items:center;gap:16px;padding:23px!important}
.hub-coaching-quiet strong{font:700 15px/1.4 Poppins,Arial,sans-serif}
.hub-coaching-quiet p{margin:3px 0 0}
.hub-quiet-icon{width:46px;height:46px;flex:none;border-radius:13px;background:#f0f4ff;color:#2854e8;display:grid;place-items:center}
.hub-coaching-back{border:0;background:transparent;color:#2854e8;font:600 13px/1.5 Poppins,Arial,sans-serif;padding:6px 0;display:inline-flex;justify-self:start;align-items:center;gap:7px;cursor:pointer}
.hub-coaching-back .icon{transform:rotate(180deg);width:17px;height:17px}
.hub-coaching-subhead{display:grid;gap:7px;max-width:750px}
.hub-coaching-subhead h2{font:800 24px/1.3 Montserrat,Arial,sans-serif;margin:0}
.hub-coaching-subhead p{font:400 14px/1.65 Poppins,Arial,sans-serif;color:#687386;margin:0}
.hub-checkin-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.hub-choice{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-width:0;padding:26px!important;border-radius:20px!important}
.hub-choice>div:not(.hub-choice-unset){margin:0;display:grid;gap:10px}
.hub-choice h3{font:800 19px/1.35 Montserrat,Arial,sans-serif;margin:0}
.hub-choice p{font:400 14px/1.7 Poppins,Arial,sans-serif;color:#687386;margin:0}
.hub-choice-icon{display:grid;place-items:center;background:#eaf0ff;color:#2854e8;width:52px;height:52px;border-radius:14px;flex:none}
.hub-choice-icon .icon{width:25px;height:25px}
.hub-choice-link{margin-top:auto;min-height:46px!important;text-decoration:none;display:inline-flex;align-items:center;gap:10px;justify-content:center}
.hub-choice-link .icon{width:16px;height:16px}
.hub-choice-unset{margin-top:auto;color:#687386;font:400 13px/1.6 Poppins,Arial,sans-serif;padding:12px 14px;background:#f6f7fa;border-radius:10px}
.hub-coaching-footnote{font:400 12px/1.75 Poppins,Arial,sans-serif;color:#687386;margin:0}
.hub-reflection-page{display:grid;gap:20px;min-width:0}
.hub-reflection-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.hub-reflection-toolbar>div{display:grid;gap:6px}
.hub-reflection-toolbar strong{font:700 15px/1.4 Poppins,Arial,sans-serif}
.hub-reflection-toolbar p{margin:0}
.hub-reflection-iframe{width:100%;height:780px;border:1px solid #e1e5ed;border-radius:14px;background:#fff;display:block}
.hub-reflection-empty{display:grid;justify-items:start;gap:12px;padding:18px 0}
.hub-reflection-empty h3{font:800 20px/1.35 Montserrat,Arial,sans-serif;margin:0}
.hub-reflection-empty p{font:400 14px/1.65 Poppins,Arial,sans-serif;color:#687386;margin:0}
.hub-progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hub-progress-metric{border:1px solid #e1e5ed;border-radius:17px;background:#fff;padding:22px;display:grid;gap:8px;min-width:0}
.hub-progress-metric>span{font:600 13px/1.4 Poppins,Arial,sans-serif;color:#687386}
.hub-progress-metric>strong{font:800 23px/1.3 Montserrat,Arial,sans-serif;overflow-wrap:anywhere}
.hub-progress-metric small{font:400 12px/1.55 Poppins,Arial,sans-serif;color:#687386}
.hub-progress-lower{display:grid;grid-template-columns:1.2fr 1fr;align-items:start;gap:16px}
.hub-progress-history,.hub-progress-targets{display:grid;gap:16px;min-width:0}
.hub-progress-history h3,.hub-progress-targets h3{font:800 19px/1.4 Montserrat,Arial,sans-serif;margin:0}
.hub-weight-rows{display:grid;gap:0}
.hub-weight-rows>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf0f6;padding:13px 0;font:400 14px/1.5 Poppins,Arial,sans-serif}
.hub-weight-rows>div strong{font-weight:600}
.hub-progress-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hub-progress-target-grid>span{border-radius:12px;background:#f5f8ff;padding:16px;display:grid;gap:5px}
.hub-progress-target-grid small{font:500 12px/1.5 Poppins,Arial,sans-serif;color:#687386}
.hub-progress-target-grid strong{font:800 21px/1.4 Montserrat,Arial,sans-serif}
.hub-progress-target-grid em{font:500 13px/1.4 Poppins,Arial,sans-serif;font-style:normal;color:#687386}
.hub-progress-targets>.btn{justify-self:start}
/* The quick entry is a purpose-built single-task dialog, not an embedded spreadsheet form. */
#modal[data-kind="hub-weight-modal"]{max-width:min(440px,calc(100vw - 24px));width:440px;border-radius:22px}
#modal[data-kind="hub-weight-modal"] .modal-head{border-bottom:0;padding-bottom:4px}
#modal[data-kind="hub-weight-modal"] .modal-body{padding-top:6px}
.hub-quick-weight{display:grid;gap:16px;min-width:0}
.hub-quick-date{font:600 14px/1.5 Poppins,Arial,sans-serif;color:#687386;margin:0}
.hub-quick-weight-label{font:600 13px/1.4 Poppins,Arial,sans-serif}
.hub-quick-input{display:flex;align-items:center;gap:12px;min-width:0;border:1.5px solid #b8c8f9;border-radius:14px;padding:10px 16px;background:#f9fbff}
.hub-quick-input:focus-within{border-color:#2854e8;box-shadow:0 0 0 3px #eaf0ff}
.hub-quick-input input{border:0;background:transparent;outline:0;width:100%;min-width:0;font:800 32px/1.4 Montserrat,Arial,sans-serif;color:#15171d}
.hub-quick-input>span{font:600 16px/1 Poppins,Arial,sans-serif;color:#687386}
.hub-quick-weight .help-copy{margin:0;font-size:13px}
.hub-quick-weight .btn.primary{min-height:52px;font-weight:600}
.hub-weight-date-toggle{display:inline-flex;align-items:center;gap:8px;justify-content:center;background:none;border:0;color:#2854e8;font:600 13px/1.5 Poppins,Arial,sans-serif;cursor:pointer;min-height:40px}
.hub-weight-date-toggle .icon{width:16px;height:16px}
.hub-weight-other-date[hidden]{display:none}
.hub-weight-other-date{display:grid;gap:8px;border-top:1px solid #e1e5ed;padding-top:13px}
.hub-weight-other-date .field input{width:100%;font-size:16px}
@media(max-width:930px){.hub-coaching-actions{gap:12px}.hub-coaching-action{padding:19px;min-height:204px;gap:20px}.hub-progress-metric{padding:17px}}
@media(max-width:680px){.hub-coaching-shell,.hub-coaching-main,.hub-coaching-subpage{gap:18px}.hub-coaching-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hub-coaching-action{padding:17px;min-height:184px;gap:17px;border-radius:16px}.hub-coaching-action:last-child{grid-column:1/-1;min-height:118px;display:grid;grid-template-columns:50px 1fr 24px;column-gap:15px;align-items:center}.hub-coaching-action:last-child .hub-action-top{grid-column:1;grid-row:1}.hub-coaching-action:last-child .hub-action-arrow{display:none}.hub-coaching-action:last-child .hub-action-content{grid-column:2;grid-row:1;margin:0}.hub-coaching-action:last-child .hub-action-footer{grid-column:3;grid-row:1;border:0;padding:0;font-size:0}.hub-coaching-action:last-child .hub-action-footer span{font-size:23px}.hub-action-icon{width:48px;height:48px;border-radius:13px}.hub-action-icon .icon{width:23px;height:23px}.hub-action-content strong{font-size:16px}.hub-action-content>span{font-size:12px}.hub-action-footer{font-size:12px}.hub-trend-card{padding:20px!important}.hub-checkin-choices,.hub-progress-lower{grid-template-columns:minmax(0,1fr)}.hub-progress-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hub-progress-stats>div:last-child{grid-column:1/-1}.hub-progress-metric>strong{font-size:20px}.hub-reflection-iframe{height:690px}.hub-trend-bottom{align-items:flex-start}.hub-coaching-subhead h2{font-size:22px}}
@media(max-width:365px){.hub-coaching-action{padding:14px;min-height:175px}.hub-action-content strong{font-size:15px}.hub-action-footer{font-size:11px}.hub-coaching-action:last-child{grid-template-columns:45px 1fr 18px;padding:14px}.hub-action-icon{width:43px;height:43px}.hub-main-stat strong{font-size:25px}.hub-trend-bottom{flex-wrap:wrap}.hub-progress-target-grid{grid-template-columns:1fr}.hub-trend-header{gap:6px}}
@media(prefers-reduced-motion:reduce){.hub-coaching-action{transition:none}.hub-coaching-action:hover{transform:none}}

/* V1.36 — compact coach directory, bundles and external check-in workflow */
.hub-client-directory{display:grid;gap:18px;min-width:0}
.hub-client-filters{display:flex;align-items:center;gap:14px;min-width:0}
.hub-client-filters>.search{flex:1;min-width:130px;margin:0}
.hub-tag-filter{display:flex;align-items:center;gap:8px;font:500 13px Poppins,Arial,sans-serif;color:#667084;white-space:nowrap}
.hub-tag-filter select{max-width:210px;min-width:130px;min-height:46px;border:1px solid #dce3ef;border-radius:12px;padding:0 15px;background:#fff;font:500 13px Poppins,Arial,sans-serif}
.hub-client-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 17px;border:1px solid #e1e5ee;background:#fff;border-radius:14px}
.hub-client-bulk-bar>label{display:inline-flex;gap:10px;align-items:center;cursor:pointer;font-size:13px}
.hub-client-bulk-bar>span{margin-right:auto;color:#687386;font-size:13px}
.hub-client-bulk-bar input[type=checkbox],.hub-client-checkbox input,.hub-bundle-choice input{width:18px;height:18px;accent-color:#2d57ed}
.portal-client-list .hub-selectable-client{display:flex;align-items:center;gap:15px;min-width:0}
.portal-client-list .hub-selectable-client>.avatar{flex:none}
.portal-client-list .hub-selectable-client .portal-client-open{flex:1;min-width:0}
.hub-client-checkbox{min-width:20px;display:grid;place-items:center;cursor:pointer}
.hub-client-tag-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.hub-tag-chip{display:inline-flex;padding:3px 8px;border:1px solid #d7e1ff;border-radius:99px;background:#f5f8ff;color:#3357b4;font:600 11px/1.4 Poppins,Arial,sans-serif}
.hub-client-manage,.hub-client-quick-tools{position:relative;border:1px solid #e0e6f1;border-radius:11px;background:#fff;padding:0}
.hub-client-manage>summary,.hub-client-quick-tools>summary{list-style:none;cursor:pointer;padding:10px 15px;font:600 13px/1.4 Poppins,Arial,sans-serif;color:#294fbc}
.hub-client-manage>summary::-webkit-details-marker,.hub-client-quick-tools>summary::-webkit-details-marker{display:none}
.hub-client-manage>summary::after,.hub-client-quick-tools>summary::after{content:' ▾';color:#6a7792}
.hub-client-manage-menu{position:absolute;z-index:20;top:calc(100% + 8px);right:0;display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #dce3ef;border-radius:15px;min-width:230px;max-width:90vw;padding:15px;box-shadow:0 12px 35px rgba(10,22,59,.13)}
.hub-client-manage-menu strong{font:700 11px Poppins,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#6c7689}
.hub-client-quick-tools{margin-top:14px;max-width:630px}
.hub-client-quick-tools .hub-client-module-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 14px 15px}
.hub-bundles-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.hub-bundles-head h2{margin:0 0 5px;font:800 21px Montserrat,Arial,sans-serif}
.hub-bundles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}
.hub-bundle-card{display:flex;flex-direction:column;align-items:flex-start;gap:15px}
.hub-bundle-card h3{font:800 18px Montserrat,Arial,sans-serif;margin:0}
.hub-bundle-card .hub-form-actions{margin-top:auto}
.hub-bundle-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#eaf0ff;color:#2854e8}
.hub-bundle-symbol svg{width:23px;height:23px}
.hub-bundle-choices{display:grid;gap:10px;margin-top:12px;max-height:330px;overflow:auto}
.hub-bundle-choice{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e0e6f1;border-radius:12px;cursor:pointer}
.hub-bundle-choice span{display:grid;gap:4px}.hub-bundle-choice small{color:#687386;font-size:12px}
.hub-bulk-preview{max-height:260px;overflow:auto;display:grid;gap:8px;margin:0;padding-left:24px;font:400 13px/1.65 Poppins,Arial,sans-serif}
.hub-external-checkins{display:grid;gap:18px}
.hub-checkin-directory{display:grid;gap:10px}
.hub-checkin-client{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e0e6f1;border-radius:13px;padding:18px}
.hub-checkin-client h3{margin:0;font:800 16px Montserrat,Arial,sans-serif}.hub-checkin-client p{margin:6px 0 0}
.hub-checkin-client-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.hub-link-missing{color:#7a8291;font:500 12px Poppins,Arial,sans-serif}
@media(max-width:720px){.hub-client-filters{flex-direction:column;align-items:stretch}.hub-tag-filter{justify-content:space-between}.hub-tag-filter select{flex:1;max-width:none}.hub-client-bulk-bar{align-items:stretch}.hub-client-bulk-bar>.btn{flex:1 1 130px}.hub-checkin-client{align-items:stretch;flex-direction:column}.hub-checkin-client-actions>*{flex:1 1 115px;text-align:center}}
@media(max-width:470px){.portal-client-list .hub-selectable-client{gap:8px;flex-wrap:wrap}.portal-client-list .hub-selectable-client .portal-client-open{flex:1 1 calc(100% - 110px)}.portal-client-list .hub-selectable-client>.btn{flex:1 1 100%}.hub-client-manage-menu{right:auto;left:0;max-width:75vw}.hub-client-bulk-bar>label{flex:1 1 100%}}

/* V1.37: adaptive weekly weight chart with recorded-date axis and clear contrast */
.hub-v137-chart-wrap{background:#f2f6ff;border:1px solid #dfebfd;border-radius:18px;padding:15px 16px 8px;margin-top:20px}
.hub-v137-chart-scroll{overflow-x:auto;width:100%;overscroll-behavior-inline:contain}
.hub-v137-chart-scroll svg{display:block;width:100%;min-width:660px;height:auto;overflow:visible}
.hub-v137-chart-bg{fill:#f8fbff}.hub-v137-chart-grid{stroke:#d5e1f1;stroke-dasharray:4 7;stroke-width:1.1}
.hub-v137-chart-line{fill:none;stroke:#243b62;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.hub-v137-chart-dot{fill:#ffffff;stroke:#2456ea;stroke-width:3}
.hub-v137-chart-y,.hub-v137-chart-x,.hub-v137-chart-caption{font:500 15px Poppins,Arial,sans-serif;fill:#53617a}
.hub-v137-chart-caption{font-size:13px}
.hub-trend-graph{min-height:220px}
@media(min-width:800px){.hub-v137-chart-wrap{padding:18px 22px 12px}.hub-v137-chart-scroll svg{min-width:720px}}

/* V1.40: compact countdown is deliberately a separate mobile label. */
.hub-countdown-short{display:none}
@media(max-width:680px){.hub-coaching-action-checkin .hub-countdown-long{display:none}.hub-coaching-action-checkin .hub-countdown-short{display:inline}}

/* V1.43 mobile Coaching: three equal, compact action rows, not tall half-width tiles. */
@media(max-width:680px){
 .portal-shell .hub-coaching-actions{grid-template-columns:minmax(0,1fr);gap:12px}
 .portal-shell .hub-coaching-actions .hub-coaching-action,
 .portal-shell .hub-coaching-actions .hub-coaching-action:last-child{display:grid;grid-column:auto;grid-template-columns:50px minmax(0,1fr) 22px;grid-template-rows:auto auto;gap:4px 14px;align-items:center;min-height:0;padding:15px 17px;border-radius:16px}
 .portal-shell .hub-coaching-actions .hub-action-top{display:contents}
 .portal-shell .hub-coaching-actions .hub-action-icon{grid-column:1;grid-row:1/3;align-self:center}
 .portal-shell .hub-coaching-actions .hub-action-arrow{display:flex;grid-column:3;grid-row:1/3;align-self:center;justify-content:center}
 .portal-shell .hub-coaching-actions .hub-action-content,
 .portal-shell .hub-coaching-actions .hub-coaching-action:last-child .hub-action-content{grid-column:2;grid-row:1;margin:0;gap:3px}
 .portal-shell .hub-coaching-actions .hub-action-footer,
 .portal-shell .hub-coaching-actions .hub-coaching-action:last-child .hub-action-footer{grid-column:2;grid-row:2;display:flex;justify-content:flex-start;align-items:center;gap:6px;border:0;padding:0;margin:0;font-size:13px;line-height:1.4}
 .portal-shell .hub-coaching-actions .hub-action-footer>span:last-child{display:none}
 .portal-shell .hub-coaching-actions .hub-action-footer .hub-countdown-short{display:inline!important;white-space:normal;font:600 13px/1.4 Poppins,Arial,sans-serif}
 .portal-shell .hub-coaching-actions .hub-action-content strong{font-size:17px;line-height:1.35}
 .portal-shell .hub-coaching-actions .hub-action-content>span{font-size:13px;line-height:1.4}
}
@media(max-width:365px){
 .portal-shell .hub-coaching-actions .hub-coaching-action,
 .portal-shell .hub-coaching-actions .hub-coaching-action:last-child{gap:3px 11px;padding:14px;grid-template-columns:44px minmax(0,1fr) 20px}
}
