/* Photography-led theme. Existing components retain their behavior. */
:root{--surface-bg:#f3f4f0;--surface-muted:#f0f4f2;--sidebar-bg:#102b30;--sidebar-active:#d4ef87;--accent:#176575;--accent-strong:#104b58;--accent-soft:#e6f1f1;--accent-ink:#164f5b;--ink:#193339;--ink-muted:#697977;--border:#dfe6e1;--success:#367564;--radius-lg:18px;--shadow-card:0 4px 20px #183d3505;--bs-link-color:#176575;--bs-link-hover-color:#104b58}
body{background:var(--surface-bg)}
a{color:var(--accent)}
.btn{font-weight:650; border-radius:9px;padding:.65rem 1.05rem}.btn-sm{padding:.4rem .75rem}
.btn-primary{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:var(--accent-strong);--bs-btn-hover-border-color:var(--accent-strong);--bs-btn-active-bg:var(--accent-strong);background:var(--accent);border-color:var(--accent)}
.btn-outline-primary{color:var(--accent);border-color:#93b5b9;--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent);--bs-btn-active-bg:var(--accent)}
.btn-outline-primary:hover{color:white;background:var(--accent);border-color:var(--accent)}
.form-control:focus,.form-select:focus{border-color:#478594;box-shadow:0 0 0 3px #17657520}
:focus-visible{outline:3px solid #428b9b;outline-offset:4px}
.topbar{padding:24px 0 12px}.topbar .container-fluid{max-width:1400px}.topbar .navbar-brand:before{content:'PT';display:inline-grid;place-items:center;background:#153a42;color:#ddf3a8;width:38px;height:38px;border-radius:10px;margin-right:12px;font-size:14px}
.public-shell{max-width:1400px;padding-top:20px}
.eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--accent);margin-bottom:14px}
.landing-hero{position:relative;overflow:hidden;border-radius:22px;min-height:530px;display:flex;align-items:center;background:linear-gradient(90deg,#071f29f2 0%,#092831d4 35%,#09283112 80%),url('../images/strength.jpg') center 52%/cover;color:white}
.landing-hero__copy{padding:60px;max-width:740px;position:relative;z-index:1}.landing-hero .eyebrow{color:#d4ef87}.landing-hero h1{font-size:clamp(34px,4.4vw,62px);line-height:1.22;font-weight:800;letter-spacing:-.055em;margin:22px 0}.landing-hero h1>span{color:#d4ef87}.landing-hero p{font-size:15px;line-height:1.9;color:#d2dfdf;margin-bottom:30px}
.btn-lime{background:#d4ef87;color:#16373b;border:1px solid #d4ef87}.btn-lime:hover{background:#e3ffa1;color:#102b30}.btn-lime span{margin-left:24px}.btn-glass{border:1px solid #ffffff65;color:white;background:#ffffff09}.btn-glass:hover{background:#ffffff20;color:white}
.hero-caption{display:flex;gap:24px;margin-top:48px;padding-top:18px;border-top:1px solid #ffffff30;color:#c0d0d0;font-size:10px;letter-spacing:.15em}.photo-index{position:absolute;right:28px;bottom:28px;font-size:10px;letter-spacing:.15em;color:#e2e9e7}
.landing-section-heading{display:flex;align-items:end;justify-content:space-between;margin:42px 0 22px}.landing-section-heading h2{font-size:26px;font-weight:750;margin:0}.landing-section-heading .eyebrow{margin-bottom:10px}.landing-section-heading>p{color:var(--ink-muted);font-size:13px;margin:0}
.feature-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.feature-card{min-height:310px;padding:26px;border-radius:16px;display:flex;flex-direction:column;justify-content:space-between;color:white;text-decoration:none;overflow:hidden;transition:transform .2s}.feature-card:hover{transform:translateY(-4px);color:white}.feature-card--studio{background:linear-gradient(0deg,#061c23f5,#061c2330),url('../images/studio.jpg') center/cover}.feature-card--recovery{background:linear-gradient(0deg,#062936eb,#06293615),url('../images/recovery.jpg') center/cover}.feature-card--plain{background:#e1e8dc;color:var(--ink)}.feature-card--plain:hover{color:var(--ink)}.feature-number{font-size:10px;letter-spacing:.18em;font-weight:700}.feature-card h3{font-size:22px;font-weight:700}.feature-card p{font-size:12px;opacity:.8;line-height:1.8}.feature-link{font-size:12px;display:block;border-top:1px solid #ffffff40;padding-top:16px;margin-top:20px}.feature-card--plain .feature-link{border-color:#19333925}.nutrition-art{display:flex;align-items:center;gap:16px;font-size:66px;line-height:1;color:#4c7162;margin:10px 0 18px}.nutrition-art span{font-size:11px;letter-spacing:.08em}.landing-footer{display:flex;justify-content:space-between;font-size:11px;color:#71817d;margin-top:32px;padding-top:22px;border-top:1px solid var(--border)}
.app-sidebar{padding-top:32px}.app-sidebar__brand{font-size:.94rem;margin-bottom:44px}.app-sidebar__brand-mark{background:#d4ef87;color:#102b30;border-radius:8px;width:34px;height:34px}.app-sidebar__nav{gap:7px}.app-sidebar__link{padding:13px 14px}.app-sidebar__link.is-active{color:#17373a;background:#d4ef87}.nav-index{font-size:10px;opacity:.55;font-weight:500;min-width:18px}.sidebar-motto{padding:36px 12px 14px}.sidebar-motto span{font-size:11px;font-weight:800;letter-spacing:.13em;color:#d4ef87}.sidebar-motto p{font-size:11px;margin-top:10px;color:#9db4b4}.app-sidebar-offcanvas{background:var(--sidebar-bg)}
.dashboard-intro{display:flex;align-items:center;justify-content:space-between;margin:3px 0 24px;gap:12px}.dashboard-intro h1{font-size:27px;font-weight:800;margin:0}.dashboard-intro h1 span{font-size:11px;font-weight:500;color:#82928c;letter-spacing:.12em;margin-left:10px}.dashboard-intro .eyebrow{font-size:9px;margin-bottom:8px}.daily-tag{font-size:11px;color:#72847d}
.today-command{min-height:235px;padding:32px;position:relative;overflow:hidden;align-items:flex-end;background:linear-gradient(90deg,#092c34f2,#092c34b8 55%,#092c3420),url('../images/strength.jpg') center 53%/cover;box-shadow:none;margin-bottom:16px;color:white}.today-command__copy{max-width:70%}.today-command__label{color:#cfe59f;font-size:11px;margin-bottom:15px}.today-command h2{font-size:clamp(21px,2.3vw,32px);line-height:1.5;color:white}.today-command .btn{color:white;border-color:#ffffff70;background:#0b333b55;white-space:nowrap}.coach-safety-note{color:#82765e;font-size:11px;margin-bottom:20px}
.today-stat-rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-ring{width:auto;display:flex;align-items:center;gap:18px;padding:20px 24px;background:white;border:1px solid var(--border);border-radius:14px}.stat-ring svg{width:56px;flex:0 0 56px}.stat-ring__body{position:static;align-items:flex-start;text-align:left}.stat-ring__body strong{font-size:25px;line-height:1.3}.stat-ring__body span{font-size:11px;margin-top:4px}.stat-ring--mode .stat-ring__body strong{font-size:19px}
.action-section,.card{border:1px solid var(--border);box-shadow:var(--shadow-card)}.action-section{padding:23px}.section-heading h4{font-size:16px}.readiness-panel--hero{background:#eaf0e8;border-color:#d4dfd0}.recovery-photo{height:130px;border-radius:11px;margin-bottom:22px;background:linear-gradient(0deg,#092b3b99,transparent),url('../images/recovery.jpg') center 58%/cover;display:flex;align-items:flex-end;padding:16px}.recovery-photo span{color:white;font-size:9px;letter-spacing:.2em}.quick-log-fab{background:#d4ef87;color:#16373b;border:1px solid #b5cf72;box-shadow:0 6px 24px #153a4230}
.auth-layout{display:grid;grid-template-columns:1.05fr 1fr;min-height:590px;border:1px solid var(--border);border-radius:22px;overflow:hidden;background:white;margin:20px auto;max-width:1100px}.auth-photo{background:linear-gradient(0deg,#082934e8,#08293440),url('../images/studio.jpg') center/cover;display:flex;flex-direction:column;justify-content:space-between;padding:42px;color:white}.auth-photo .eyebrow{color:#d4ef87;font-size:9px}.auth-photo h1{font-size:48px;font-weight:800;line-height:1.25;margin-bottom:20px}.auth-photo p{font-size:13px;color:#d0ddda}.auth-layout .form-card{width:100%;max-width:none;margin:auto;padding:48px}.auth-layout .card{border:0;box-shadow:none!important}.auth-layout .card-body{padding:0!important}.auth-layout .form-control{padding:13px}.auth-layout h3{font-weight:750}.auth-layout form{margin-top:32px}.auth-layout .text-center.mt-3{font-size:12px;margin-top:24px!important}
@media(min-width:1500px){.app-main>.page-shell{max-width:1500px;margin:0 auto}}
@media(max-width:1100px){.stat-ring{padding:18px 14px;gap:12px}.stat-ring svg{width:44px;flex-basis:44px}.stat-ring__body strong{font-size:22px}.landing-hero__copy{padding:42px}.auth-layout .form-card{padding:32px}.feature-card{padding:22px}.feature-card h3{font-size:19px}}
@media(max-width:767px){.public-shell{padding:14px 18px 32px}.topbar{padding-top:14px}.landing-hero{min-height:520px;background-position:58% center}.landing-hero__copy{padding:32px 24px}.landing-hero h1{font-size:39px}.landing-hero .eyebrow{font-size:8px}.landing-hero p{font-size:13px}.hero-caption{flex-direction:column;gap:8px;margin-top:34px}.photo-index{font-size:8px;right:18px;bottom:18px}.landing-section-heading{display:block;margin-top:30px}.landing-section-heading h2{font-size:23px}.landing-section-heading>p{margin-top:12px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:270px}.landing-footer{gap:12px;flex-direction:column}.dashboard-intro h1{font-size:23px}.daily-tag{display:none}.today-command{min-height:230px;padding:24px;align-items:flex-start;flex-direction:column;justify-content:space-between}.today-command__copy{max-width:100%}.today-command h2{font-size:24px}.today-command .btn{width:auto}.today-stat-rings{gap:8px}.stat-ring{flex-direction:column;padding:15px 5px;gap:10px}.stat-ring__body{align-items:center;text-align:center}.stat-ring__body strong{font-size:20px}.stat-ring--mode .stat-ring__body strong{font-size:16px}.stat-ring__body span{font-size:9px}.action-section{padding:18px}.auth-layout{grid-template-columns:1fr;margin-top:0}.auth-photo{min-height:240px;padding:26px}.auth-photo h1{font-size:32px;margin-bottom:10px}.auth-photo>.eyebrow:last-child{display:none}.auth-layout .form-card{padding:32px 24px}.sidebar-motto{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.landing-hero h1,.auth-photo h1,.feature-card h3{color:inherit}
.app-topbar__toggle .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23edf4ec' stroke-linecap='round' stroke-width='2' d='M5 8h20M5 15h20M5 22h20'/%3E%3C/svg%3E")}

/* Wellness app refinement: quiet surfaces, focused actions, thumb navigation. */
:root{--surface-bg:#f5f4f0;--ink:#243535;--ink-muted:#74807b;--border:#e5e7e1;--radius-lg:24px;--shadow-card:0 6px 28px #283d3104}
.ui-icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}
.app-sidebar__link .ui-icon{width:19px;height:19px;opacity:.85}
.app-sidebar__link.is-active{background:#edf0df;color:#243535}
.app-sidebar__brand-mark{background:#edf0df;color:#243535}
.app-sidebar{background:linear-gradient(180deg,#1e3235,#142427)}
.app-sidebar__link{font-weight:500;border-radius:14px}
.btn{border-radius:999px}.btn-lime{background:#e7eed2;border-color:#e7eed2;color:#243535}
.card,.action-section{border-color:#e8e9e3;border-radius:22px}
.dashboard-intro{margin-bottom:22px}.dashboard-intro .eyebrow{color:#7d8b84;font-weight:600;letter-spacing:.16em}
.dashboard-intro h1{font-weight:650}.dashboard-intro h1 span{display:none}
.wellness-hero{min-height:350px;padding:38px 40px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:28px;border-radius:26px;background-image:linear-gradient(90deg,#142c32e8,#142c3280 58%,#142c3210),url('../images/strength.jpg')}
.wellness-hero--rest{background-image:linear-gradient(90deg,#142c32de,#142c3240),url('../images/recovery.jpg')}
.wellness-hero .today-command__copy{max-width:650px}.wellness-hero .today-command__label{color:#d7e1d7;font-size:12px;font-weight:400;margin-bottom:22px}
.wellness-hero h2{font-size:clamp(32px,3.4vw,47px);font-weight:550;line-height:1.3;letter-spacing:-.04em}
.hero-next-action{font-size:12px;line-height:1.85;color:#d2ddd7;max-width:520px;margin:18px 0 0}
.hero-action-row{display:flex;align-items:center;gap:26px}.wellness-hero .btn-lime{background:#edf1de;border-color:#edf1de;color:#223431;padding:13px 23px;font-size:13px}.hero-secondary{color:#f0f1e9;font-size:12px;text-decoration:none}.hero-secondary:hover{color:#d4ef87}.hero-secondary .ui-icon{width:16px;height:16px;margin-left:8px}
.today-stat-rings{gap:0;background:white;border:1px solid var(--border);border-radius:22px;margin:24px 0;padding:21px 0}.stat-ring{border:0;border-radius:0;padding:5px 25px;background:transparent}.stat-ring+.stat-ring{border-left:1px solid var(--border)}.stat-ring__body strong{font-weight:500;font-size:29px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.stat-ring svg{width:48px;flex-basis:48px}.stat-ring__track{stroke:#edf0e9;stroke-width:3}.stat-ring__value{stroke:#668f84;stroke-width:3}.stat-ring--mode svg{opacity:.5}.stat-ring__body span{color:#7a837d}
.readiness-disclosure{border:1px solid #e0e6db;border-radius:20px;background:#edf0e7;margin:0 0 24px;scroll-margin-top:20px}.readiness-disclosure>summary{list-style:none;display:flex;align-items:center;gap:14px;padding:20px;cursor:pointer}.readiness-disclosure>summary::-webkit-details-marker{display:none}.readiness-disclosure__icon{width:38px;height:38px;border:1px solid #cbd7c6;border-radius:50%;display:grid;place-items:center;color:#567364;font-size:21px;transition:transform .2s}.readiness-disclosure[open] .readiness-disclosure__icon{transform:rotate(90deg)}.readiness-disclosure summary strong{display:block;font-size:14px;font-weight:600}.readiness-disclosure summary small{display:block;font-size:11px;color:#72806f;margin-top:5px}.readiness-disclosure__status{margin-left:auto;font-size:11px;color:#4b6755;white-space:nowrap}.readiness-disclosure .readiness-panel{border:0;border-top:1px solid #dbe2d4;background:transparent;border-radius:0;margin-bottom:0!important;box-shadow:none}
.training-focus-card{scroll-margin-top:20px}.workout-compact-card{background:#f3f4ec;border-radius:16px;padding:22px}.section-heading h4{font-weight:600}.coach-safety-note{font-size:10px;line-height:1.8;opacity:.85}.recovery-photo{height:170px;border-radius:16px}.recovery-photo span{font-size:10px;font-weight:500;letter-spacing:.18em}.landing-hero,.auth-layout{border-radius:28px}.landing-hero h1,.auth-photo h1{font-weight:600}.feature-card{border-radius:22px}.feature-card h3{font-weight:550}
.training-page-hero{padding:38px;border-radius:24px;min-height:260px;margin-bottom:26px;color:white;background:linear-gradient(90deg,#142c32ee,#142c3230),url('../images/studio.jpg') center 52%/cover}.training-page-hero .eyebrow{color:#dbe6c8}.training-page-hero h1{color:white;font-size:38px;font-weight:550;line-height:1.35}.training-page-hero p{color:#d5dfd7;font-size:12px;margin:18px 0 0}
.workout-execution .today-header{margin-bottom:25px}.execution-toolbar{background:#1e3033;border-radius:24px;padding:28px;gap:24px}.execution-toolbar>div{border:0;padding:0;background:transparent}.execution-toolbar span{color:#afc2be;font-size:11px}.execution-toolbar strong{font-size:36px;font-weight:500;letter-spacing:-.04em;color:#f3f2e8;font-variant-numeric:tabular-nums}.execution-toolbar>div:first-child strong{color:#e3ebbd;font-size:52px;line-height:1.2}.execution-toolbar .rest-clock.is-active{background:#304749;border:0;border-radius:14px;padding:10px}.workout-execution .progress{height:8px;border-radius:99px;background:#e0e7dc}.workout-execution .progress-bar{background:#648b73;font-size:0}.exercise-execution-card{border-radius:22px;padding:24px}.exercise-index{background:#edf0e2;color:#486651;border-radius:50%}.execution-set-row{padding-top:10px;padding-bottom:10px}.execution-set-row.is-complete{background:#eaf1e3}.set-complete-control{min-height:44px}.set-complete-control .form-check-input{width:22px;height:22px}.form-check-input:checked{background-color:#51765e;border-color:#51765e}.mobile-dock{display:none}
@media(max-width:991px){
 body:has(.mobile-dock) .page-shell{padding-bottom:130px}
 .mobile-dock{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:480px;z-index:1035;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:7px;background:rgba(250,251,245,.93);border:1px solid #ffffffc9;box-shadow:0 7px 30px #142c3220;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:32px}
 .mobile-dock__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:#687773;min-height:51px;border-radius:25px;font-size:9px;font-weight:500}
 .mobile-dock__item.is-active{background:#e3e9d9;color:#243d35}.mobile-dock__item:hover{color:#203c32;background:#eaf0e2}.mobile-dock__item .ui-icon{width:21px;height:21px}
 .quick-log-fab{bottom:calc(96px + env(safe-area-inset-bottom,0px));right:20px;width:48px;height:48px;background:#243e3d;color:#eef2df;border:1px solid #ffffff50;box-shadow:0 5px 18px #16352e25}
 .app-topbar{background:var(--surface-bg);border-bottom:0;padding:16px 20px}.app-topbar .navbar-brand{color:#283e37;font-size:14px;font-weight:600}.app-topbar__toggle{border:1px solid #dce2d8;border-radius:50%;width:38px;height:38px;padding:7px}.app-topbar__toggle .navbar-toggler-icon{filter:brightness(.3);width:20px;height:20px}
 .app-sidebar-offcanvas .btn-close{filter:invert(1)}
}
@media(max-width:767px){
 .dashboard-intro{margin:0 2px 18px}.dashboard-intro .eyebrow{font-size:8px}.dashboard-intro h1{font-size:24px}
 .wellness-hero{min-height:375px;padding:27px 24px;border-radius:25px;background-position:58% center;gap:24px}.wellness-hero .today-command__label{font-size:10px;margin-bottom:28px}.wellness-hero h2{font-size:33px;font-weight:500;line-height:1.4}.hero-next-action{font-size:11px;line-height:1.85;margin-top:18px}.hero-action-row{gap:18px;flex-wrap:wrap}.wellness-hero .btn-lime{width:auto;font-size:12px;padding:12px 18px}.hero-secondary{font-size:11px}
 .today-stat-rings{padding:18px 0;margin:20px 0}.stat-ring{padding:0 7px;gap:10px}.stat-ring svg{width:35px;flex-basis:35px}.stat-ring__body strong{font-size:25px}.stat-ring--mode .stat-ring__body strong{font-size:17px;line-height:32px}.stat-ring__body span{font-size:9px;margin-top:4px}
 .readiness-disclosure>summary{padding:17px 14px;gap:10px}.readiness-disclosure summary strong{font-size:13px}.readiness-disclosure summary small{font-size:10px}.readiness-disclosure__icon{width:30px;height:30px;font-size:17px}.readiness-disclosure__status{font-size:10px}.readiness-disclosure .readiness-panel{padding:16px}.today-dashboard-grid{gap:20px}.today-stack{gap:20px}.action-section{padding:20px}.section-heading h4{font-size:16px}.recovery-photo{height:160px}
 .training-page-hero{padding:28px;min-height:260px}.training-page-hero h1{font-size:32px}.execution-toolbar{padding:24px 20px;grid-template-columns:1fr 1fr;gap:18px}.execution-toolbar>div:first-child{grid-column:1/-1;padding-bottom:18px;border-bottom:1px solid #ffffff20}.execution-toolbar>div:first-child strong{font-size:64px}.execution-toolbar strong{font-size:24px}.execution-toolbar .rest-clock.is-active{padding:8px;margin:-8px 0}.exercise-execution-card{padding:18px}.workout-execution .today-header{align-items:flex-start;gap:12px}.workout-execution .today-header h2{font-size:25px}
 .page-student_dashboard .compact-alert.alert-info{background:transparent;color:#7c867e;font-size:10px;line-height:1.8;padding:2px 4px;margin-bottom:7px}
}
.training-empty{text-align:center;padding:24px 16px 30px}.training-empty>span{display:grid;place-items:center;margin:0 auto 20px;width:54px;height:54px;border-radius:50%;background:#edf0e5;color:#6b8271;font-size:27px}.training-empty h4{font-size:18px;font-weight:550}.training-empty p{font-size:12px;color:#7a847a;line-height:1.9;max-width:360px;margin:12px auto 22px}
