/* Warm glass system. Optical depth is an enhancement; opaque fallbacks retain readability. */
@media screen{
:root{--glass-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--glass-surface:rgba(255,253,250,.78);--glass-stroke:rgba(255,255,255,.94);--glass-shadow:inset 0 1px 1px #fff,inset 0 -1px 2px #bea47722,0 1px 2px #5a3f3510,0 12px 28px #5a3f3510;--glass-ink:#302b2e;--glass-muted:#74675f}
body{background:#faf7f2 url('assets/brand/glass-ambient.png') center top/cover fixed;font-family:var(--glass-font);color:var(--glass-ink)}
.app-shell,main{background:transparent}
body button,body input,body select,body textarea,body h1,body h2,body h3,body h4,body .page-head h1,body .coach-title h1,body .modal-inner>h2,body .compact-home .client-card-heading h1,body .compact-home .training-diary-tool h2,body .home-workout-history b,body .knowledge-cards b{font-family:var(--glass-font)!important}
h1,h2,h3{letter-spacing:-.035em!important}body h1{font-weight:700!important}input,select,textarea{font-size:16px}
.topbar,.sidebar{background:rgba(250,247,242,.78);border-color:#ffffffb8;box-shadow:0 1px 0 #e7dfd655;backdrop-filter:blur(18px) saturate(115%);-webkit-backdrop-filter:blur(18px) saturate(115%)}
body .bell,body .top-actions .admin-toggle,body .top-actions .profile-toggle,body .profile-avatar-button{background:#fffdf975;border:1px solid #fffffff2;box-shadow:inset 0 1px 2px white,inset 0 -2px 3px #c0b1a64a,0 7px 16px #624a3910;color:#88724e;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
body .top-actions .admin-toggle.on{background:#54233fe8;color:#fff;border:1px solid #ffffffc9;box-shadow:inset 0 2px 4px #ffffff73,inset 0 -3px 5px #260d2366,0 7px 16px #54233f20}
body .mobile-nav{background:rgba(255,253,250,.83);border:1px solid #ffffffed;box-shadow:inset 0 1px 2px white,0 -5px 24px #4d332711;backdrop-filter:blur(22px) saturate(120%);-webkit-backdrop-filter:blur(22px) saturate(120%)}
body .mobile-nav .nav-btn.active,body .sidebar .nav-btn.active{background:rgba(84,35,63,.09);border-radius:18px;color:#54233f;box-shadow:inset 0 1px 2px #ffffffcc,inset 0 -1px 2px #54233f15}
body .client-plan-card,body .client-tool-card,body .coach-directory,body .coach-member-row,body .tracker-fold,body .weight-checkin,body .coach-data-chart,body .measurement-comparison,body .training-analytics,body .home-workout-history,body .knowledge-cards>button,body .membership-card,body .next-session-card,body .hero-management,body .hero-directory-fold,body .coach-extra,body .coach-attendance-entry,body .focused-history,body .tracker-guide-link,body .panel,body .personal-plan{background:var(--glass-surface);border:1px solid var(--glass-stroke);box-shadow:var(--glass-shadow);border-radius:22px}
body .compact-home .client-plan-card,body .compact-home .training-diary-tool,body .home-workout-history{background:var(--glass-surface);border-color:var(--glass-stroke)}
body .client-plan-card,body .hero-management,body .tracker-fold,body .knowledge-cards>button{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body .coach-data-chart,body .measurement-comparison,body .training-analytics{background:rgba(255,253,250,.92)}
body .hero-management>.coach-extra,body .hero-management>.coach-attendance-entry{background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body .hero-management>*+*{border-top:1px solid #d8cdbd6b!important}
body .hero-member-search,body .coach-tools>label{background:rgba(255,253,250,.56);border:1px solid #ffffffed;border-radius:28px;box-shadow:inset 0 1px 2px white,inset 0 -1px 3px #b9a89230,0 8px 18px #4e352508;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
body .hero-member-search input,body .coach-tools input{background:transparent;border:0;box-shadow:none}
body .primary,body button.primary,body .compact-home .training-diary-tool>button{background:rgba(84,35,63,.95);border:1px solid #ffffffb0;border-radius:18px;box-shadow:inset 0 1px 2px #ffffff55,inset 0 -2px 3px #2d102d44,0 7px 16px #54233f24;color:#fff;min-height:46px}
body .outline,body button.outline{background:#fffdf97d;border:1px solid #d8c6a79c;color:#806a46;box-shadow:inset 0 1px 1px #fff,0 3px 8px #806a4608;border-radius:16px}
body .hero-add-member{background:#fffdf940;border-color:#bca583;border-radius:25px;color:#806a46}
body .hero-coach .plum-today{border:1px solid #ffffffdf;border-radius:25px;box-shadow:inset 0 2px 4px #ffffff85,inset 1px 0 2px #ffffff45,inset 0 -2px 3px #ffffff4d,0 3px 7px #54233f1c,0 16px 32px #54233f25}
body .hero-coach .plum-today .coach-today-heading>button{background:#ffffff16;color:#fff2d7;border:1px solid #ffffff65;border-radius:25px;box-shadow:inset 0 1px 2px #ffffff44,inset 0 -1px 2px #ffffff24;padding:8px 12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}
body .hero-coach .plum-today .coach-today-list>button{background:transparent;box-shadow:none;border-radius:0;border-color:#ffffff2b}
body .hero-coach .plum-today>.link-btn{color:#fff0d2}
body .focused-tabs,body .member-view-tabs,body .knowledge-tabs,body .membership-tabs{background:#ede5df80;border:1px solid #ffffffda;border-radius:18px;box-shadow:inset 0 1px 2px #ffffffbb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body .focused-tabs [aria-selected=true],body .member-view-tabs [aria-selected=true],body .knowledge-tabs button.selected,body .membership-tabs .selected{background:#fffdf9cf;color:#54233f;border:1px solid #ffffffeb;box-shadow:inset 0 1px 1px #fff,0 3px 9px #54233f10;border-radius:13px}
body .focused-summary>div,body .measurement-delta-grid>div,body .habit-summary,body .membership-intro{background:#fffaf3aa;border-color:#ffffffdb;box-shadow:inset 0 1px 1px #fff,0 4px 14px #60432907}
body .tile-icon,body .compact-home .client-plan-values .target-icon,body .compact-home .client-plan-values>div:nth-child(odd) .target-icon{background:#f5eee57d;border:1px solid #ffffffc9;box-shadow:inset 0 1px 2px white,0 5px 10px #71522f08;border-radius:50%}
body .report-form input,body .report-form textarea,body .report-form select,body .period-controls input,body .memberships input:not([type=checkbox]),body .memberships select,body .login-panel input{background:rgba(255,253,250,.91);border:1px solid #d8cabc;box-shadow:inset 0 1px 2px #74594208;border-radius:14px;color:#302b2e}
body input:focus,body select:focus,body textarea:focus{outline:2px solid #795067;outline-offset:2px}body .hero-member-search input:focus{outline:0}body button:focus-visible,body summary:focus-visible{outline:2px solid #795067;outline-offset:3px}
body #modal{background:rgba(255,253,250,.96);border:1px solid #fff;box-shadow:inset 0 1px 3px #fff,0 15px 60px #38232f40;border-radius:28px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
body #modal::backdrop{background:#38232f42;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
body #modalClose{background:#f6edf180;border:1px solid white;box-shadow:inset 0 1px 2px white,0 4px 10px #54233f0c;color:#54233f}
body .booking-person{background:#fffcf8e6;border:1px solid #e8dfd3;box-shadow:inset 0 1px 2px #fff;border-radius:18px}
body .booking-person.is-booked-next,body .booking-attendance button.selected{background:#edf3ee;border-color:#9ab1a3;color:#426451}
body .schedule-calendar{background:#fffdfaab;border-color:#ffffffdd;box-shadow:var(--glass-shadow)}
body .login{background:transparent}body .login-panel{background:#fffdfaeb}
@media(hover:hover){body button.primary:hover,body .compact-home .training-diary-tool>button:hover{background:#67314f;box-shadow:inset 0 1px 2px #ffffff70,0 9px 22px #54233f28}body .outline:hover{background:#fffdf9e8}}
@media(max-width:680px){body{background-attachment:scroll;background-size:auto 1600px}.mobile-nav .nav-btn{min-height:48px}.hero-coach .plum-today{padding:18px}.hero-coach .plum-today .coach-today-heading h2{font-size:23px}.hero-coach .plum-today .coach-today-heading>button{font-size:11px;padding:8px 10px}.hero-management summary{font-size:14px}}
@media(max-width:360px){body .hero-coach .plum-today{padding:15px}body .hero-coach .plum-today .coach-today-heading h2{font-size:21px}body .hero-coach .plum-today .coach-today-heading>button{font-size:10px;padding:7px 9px}.hero-coach .plum-today .coach-today-heading{gap:6px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){:root{--glass-surface:#fffdfa}.topbar,.sidebar,body .mobile-nav{background:#faf7f2}body .hero-member-search{background:#f5f0ea}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--glass-surface:#fffdfa}body .topbar,body .sidebar,body .mobile-nav,body #modal{background:#fffdfa;backdrop-filter:none;-webkit-backdrop-filter:none}body .hero-member-search{background:#f5f0ea}body .hero-coach .plum-today{background:#54233f}body{background:#faf7f2}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
}
@media screen{
#app *,#modal *,#login *{font-family:var(--glass-font)!important}
:root{--glass-surface:rgba(255,253,250,.65)}
body .hero-management{background:rgba(255,253,250,.58)}
@media(max-width:820px){body .mobile-nav{left:8px;right:8px;bottom:6px;width:auto;border-radius:25px;padding:7px 5px max(7px,env(safe-area-inset-bottom));background:rgba(255,253,250,.86)}body .content{padding-bottom:100px}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--glass-surface:#fffdfa}body .hero-management,body .mobile-nav{background:#fffdfa}}
}
@media screen{body .booking-person.booking-has-next{background:#edf4eb;border-color:#bacdb5}}

/* Phone reference: smoked glass over a plum and taupe backdrop. */
@media screen{
:root{--glass-surface:rgba(255,253,250,.46);--glass-shadow:inset 0 1px 1px #ffffffb0,inset 0 -1px 1px #ffffff55,0 9px 25px #38253218}
body{background:#e2dfd9;-webkit-font-smoothing:antialiased;isolation:isolate}
body::before{content:"";position:fixed;inset:0;background:url('assets/brand/plum-velvet.png') center/cover;filter:grayscale(1);opacity:.07;z-index:-1;pointer-events:none}
body h1,body h2,body h3,body .page-head h1,body .coach-title h1{font-weight:600!important;letter-spacing:-.025em!important}
body .plum-welcome h1,body .hero-coach .coach-title h1{font-size:30px!important;line-height:1.15}
body .client-plan-card,body .client-tool-card,body .tracker-fold,body .weight-checkin,body .home-workout-history,body .knowledge-cards>button,body .membership-card,body .next-session-card,body .hero-management,body .hero-directory-fold,body .coach-extra,body .coach-attendance-entry,body .panel{background:var(--glass-surface);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%);border:1px solid #ffffff80;box-shadow:var(--glass-shadow);border-radius:26px}
body .hero-management>.coach-extra,body .hero-management>.coach-attendance-entry{background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body .topbar,body .sidebar,body .mobile-nav{background:#ffffff4d;backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%);box-shadow:inset 0 1px 1px #ffffffb0,inset 0 -1px 1px #ffffff66,0 5px 20px #38253212;border:1px solid #ffffff66}
body .primary,body button.primary,body .compact-home .training-diary-tool>button{background:rgba(84,35,63,.95);border:1px solid #ffffff75;box-shadow:inset 0 2px 3px #ffffff45,inset 0 -1px 2px #ffffff30,0 6px 16px #54233f25;border-radius:25px;font-weight:500}
body .outline,body button.outline,body .hero-member-search{background:#ffffff40;border:1px solid #ffffff99;box-shadow:var(--glass-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:25px;color:#624e42}
body .hero-coach .plum-today{background:#54233fd9;backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);border:1px solid #ffffff70;box-shadow:inset 0 1px 2px #ffffff80,inset 0 -1px 2px #ffffff40,0 12px 30px #54233f30;border-radius:28px}
body .hero-coach .plum-today .coach-today-list>button{background:transparent;border:0;border-bottom:1px solid #ffffff30;border-radius:0;padding:14px 0;margin:0;box-shadow:none}
body .hero-coach .plum-today .coach-today-list>button>b{font-weight:400;font-variant-numeric:tabular-nums;font-size:24px}
body .hero-coach .plum-today .coach-today-heading h2{font-weight:500!important}
body .tile-icon,body .compact-home .client-plan-values .target-icon,body .compact-home .client-plan-values>div:nth-child(odd) .target-icon{background:#81796d20;border:1px solid #ffffff9c;border-radius:17px;box-shadow:inset 0 1px 2px #ffffffb0,inset 0 -1px 2px #ffffff50,0 5px 12px #54233f12}
body .login-panel{background:#fffaf26b;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
body #modal{background:#fffdfae8;box-shadow:inset 0 1px 2px #fff,inset 0 -1px 2px #ffffffb0,0 20px 70px #38232f40}
body .mobile-nav .nav-btn.active{background:#54233f18;box-shadow:inset 0 1px 2px #ffffff85,inset 0 -1px 1px #ffffff55}
body .booking-person.booking-has-next{background:#edf4eb;border-color:#bacdb5}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--glass-surface:#fffdfa}body{background:#e2dfd9}body::before{display:none}body .hero-management,body .mobile-nav,body .topbar,body #modal{background:#fffdfa;backdrop-filter:none;-webkit-backdrop-filter:none}body .hero-coach .plum-today{background:#54233f}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){:root{--glass-surface:#fffdfa}body .hero-management,body .mobile-nav{background:#fffdfa}}
}

@media screen{body .compact-home .client-plan-card,body .compact-home .training-diary-tool,body .home-workout-history{border:1px solid #ffffff75;box-shadow:var(--glass-shadow);background:var(--glass-surface)}body .compact-home .client-card-heading h1,body .compact-home .training-diary-tool h2,body .home-workout-history b,body .plum-welcome h1{font-weight:500!important;letter-spacing:-.025em!important}body .hero-coach .plum-today{background:#54233fc9}}

/* Calendar format colours; attendance and reconciliation retain their own states. */
@media screen{
body .schedule-event.type-personal{background:#eee3eb;border-left-color:#754760;color:#302b2e}
body .schedule-event.type-group{background:#f2ead9;border-left-color:#a88b55;color:#302b2e}
body .schedule-event.type-individual{background:#e9e5df;border-left-color:#817369;color:#302b2e}
body .schedule-event.cancelled{background:#f5e9e6;border-left-color:#b98a83}
}

/* Typography and expanded tracker layout audit. */
@media screen{
body,body *{font-family:var(--glass-font)!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body input:not([type=checkbox]):not([type=radio]),body select,body textarea{font-size:16px!important}
body .tidy-tracker .weight-history{display:grid;grid-template-columns:minmax(0,1fr);gap:0;width:100%;border:0;padding:0;margin:12px 0 0}
body .tidy-tracker .weight-history>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:10px 0;border-bottom:1px solid #81736925;font-size:14px;line-height:1.5}
body .tidy-tracker .weight-history>div b{white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}
body .tidy-tracker .weight-history .link-btn{margin-top:8px;white-space:normal}
body .tracker-fold-body>.measure-panel{padding:14px;background:#fffdfa66;border-radius:18px}
body .tracker-fold>summary>span{min-width:0}body .tracker-fold>summary small{line-height:1.45}body .tracker-fold>summary>i{flex-shrink:0}
body .measure-head>*{min-width:0;max-width:100%}body .measure-head .status{white-space:normal;line-height:1.4}
body .measure-inputs label{min-width:0}body .measure-inputs input{max-width:100%;box-sizing:border-box}
body .modal-inner h2,body .page-head h1{overflow-wrap:break-word}
@media(max-width:360px){body .tidy-tracker #weightForm{display:grid;grid-template-columns:minmax(0,1fr)}body .tidy-tracker #weightForm>.primary{width:100%}body .tracker-fold>summary{padding:16px}body .tracker-fold-body{padding:0 12px 16px}}
}

@media screen{
body #action-feedback,body #request-feedback{display:none;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;z-index:2147483647;box-sizing:border-box;max-width:calc(100vw - 40px);border:1px solid #ffffffbd;border-radius:24px;background:#fffdfaf2;color:#302b2e;box-shadow:inset 0 1px 2px #fff,0 12px 45px #38232f33;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:22px 26px;text-align:center;pointer-events:none;font-size:16px;line-height:1.45}
body #action-feedback.visible{display:grid;justify-items:center;gap:9px;width:300px}body #action-feedback strong{font-size:21px;font-weight:600}body #action-feedback small{font-size:13px;color:#685d62}body .feedback-check{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#54233f;color:white;font-size:25px}
body #request-feedback{inset:auto auto 24px 50%;transform:translateX(-50%);border-radius:24px;padding:12px 18px}body #request-feedback.visible{display:flex;align-items:center;gap:10px}
.request-spinner{width:20px;height:20px;border:2px solid #54233f25;border-top-color:#54233f;border-radius:50%;animation:request-turn .8s linear infinite}
@keyframes request-turn{to{transform:rotate(360deg)}}
@media(max-width:820px){body #request-feedback{bottom:100px}}
@media(prefers-reduced-motion:reduce){.request-spinner{animation:none;border-style:dotted}}
}

@media screen{
body .coach-row-actions details>div.coach-actions-popover{position:fixed;inset:auto 16px 24px 16px;width:min(420px,calc(100vw - 32px));max-height:70vh;overflow:auto;margin:0 auto;padding:10px;box-sizing:border-box;border:1px solid #ffffffc9;border-radius:22px;background:#fffdfaf5;box-shadow:0 16px 50px #38232f40;color:#302b2e;z-index:1000}
body .coach-actions-popover button{display:block;width:100%;min-height:48px;text-align:left;font-size:15px;padding:12px;border:0;background:transparent}
body .coach-row-actions details>div.coach-actions-popover::backdrop{background:transparent;pointer-events:none}
@supports not selector(:popover-open){body .coach-row-actions details[open]{grid-column:1/-1}body .coach-row-actions details>div{position:static;width:100%;box-sizing:border-box}}
body [data-schedule]{display:none!important}
}

/* Explicit intrinsic sizing for top-layer popovers, including mobile Safari. */
@media screen{
body #action-feedback,body #request-feedback{height:fit-content;min-height:0;min-block-size:0;max-height:calc(100dvh - 40px);overflow:auto;align-content:start}
body #action-feedback.visible{width:260px;padding:18px;gap:5px 12px;border-radius:20px;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;justify-items:start;text-align:left}
body #action-feedback .feedback-check{grid-row:1/3;width:34px;height:34px;font-size:21px}
body #action-feedback strong{font-size:17px;line-height:1.3}
body #action-feedback small{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
body #action-feedback.feedback-message.visible{display:block}
}

@media screen{body #action-feedback:not(.visible),body #request-feedback:not(.visible){display:none!important}body #action-feedback.visible{pointer-events:auto;cursor:pointer}}

@media screen{
body .booking-person.booking-compact{padding:12px 14px;border-radius:17px;gap:7px;margin-bottom:8px}
body .booking-compact .booking-person-title b{font-size:15px;line-height:1.3}body .booking-compact .booking-person-title small{font-size:11px;margin-top:3px}
body .booking-compact .booking-next-note{margin:5px 0;padding:0;font-size:11px;line-height:1.4}body .booking-compact .booking-next-note b{font-size:11px}body .booking-compact .booking-next-note span{font-size:12px}
body .booking-compact-footer{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
body .booking-compact .booking-reconcile{border:0;margin:0;padding:0;min-height:44px;gap:7px;font-size:12px;display:flex;align-items:center}
body .booking-compact .booking-reconcile input{width:20px;height:20px;flex-shrink:0}
body .booking-charge-count{font-size:11px;color:#625a55}
body .booking-compact .booking-next-compact{margin-left:auto;min-height:44px;padding:6px 10px;border:1px solid #d3c6b8;border-radius:12px;background:#fffcf899;color:#54233f;font-size:12px}
body .booking-compact-options{border-top:1px solid #81736922;font-size:12px}body .booking-compact-options>summary{padding:8px 0;min-height:36px;box-sizing:border-box;cursor:pointer;color:#75644f}
body .booking-compact .booking-charge{padding:8px 0;margin:0}body .booking-compact .booking-person-actions{margin:4px 0;gap:8px}body .booking-compact .booking-person-actions button{min-height:44px;padding:8px;font-size:12px}
}

@media screen{body .booking-compact .booking-reconcile{width:auto;flex:0 0 auto}body .booking-compact .booking-next-compact{width:auto}body .booking-compact-footer{justify-content:space-between}}

/* One bottom clearance, owned by the page rather than nested containers. */
@media screen and (max-width:820px){
html{overscroll-behavior-y:none;scroll-padding-bottom:90px}
body{padding-bottom:0;overscroll-behavior-y:none}
body .app-shell{min-height:100dvh}
body .content{padding-bottom:0}
body .page{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
body:has(.mobile-nav.hidden) .page{padding-bottom:24px}
body:has(dialog[open]){overflow:hidden}
body #modal{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
}

@media screen{.workout-replies{margin:16px 0}.workout-replies article{background:#54233f09;border-left:3px solid #754760;border-radius:12px;padding:12px;margin:8px 0}.workout-replies p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.workout-replies small{color:#817369}.workout-reply-button{margin-top:10px;min-height:44px;padding:10px 18px}.workout-reply-form{margin:16px 0}.workout-reply-form textarea{min-height:100px;width:100%;box-sizing:border-box}}
