.app-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.booking-dialog{width:min(520px,100% - 32px);max-height:calc(100dvh - 40px);color:var(--text);background:#1a1c17;border:1px solid #56594e;margin:auto;padding:0;overflow-y:auto;box-shadow:0 30px 100px #0009}.booking-dialog::backdrop{backdrop-filter:blur(5px);background:#000b}.booking-dialog-content{padding:35px}.booking-dialog h2{margin-block:22px;font-size:46px;line-height:1}.booking-dialog p{font-size:13px;line-height:1.8}.booking-dialog .eyebrow{font-size:10px}.booking-dialog .fine-print{margin-block:20px 30px;font-size:11px}.booking-dialog .button-row{flex-direction:column;align-items:stretch;gap:10px}.booking-dialog .button{justify-content:center;min-height:50px;font-size:12px}@media (width<=600px){.booking-dialog{border-bottom:0;width:100%;max-width:none;max-height:calc(100dvh - 24px);margin:auto 0 0}.booking-dialog-content{padding:30px 24px calc(24px + env(safe-area-inset-bottom))}}.app-loading{border:1px solid var(--line);min-height:300px;padding:70px 30px}.app-loading h2{margin-top:25px;font-size:48px}.filters{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:22px;display:grid}.schedule-tools{color:var(--muted);justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;font-size:10px;display:flex}.check-label{align-items:center;gap:10px;font-size:11px;display:flex}.check-label input{margin:0}.class-row{border-top:1px solid var(--line);grid-template-columns:110px 1fr 115px 155px;align-items:center;gap:24px;padding:26px 0;display:grid}.class-row:last-child{border-bottom:1px solid var(--line)}.class-time strong{font-family:var(--display);font-size:37px;font-weight:600;line-height:1;display:block}.class-time>span{color:var(--muted);font-size:10px}.class-description .eyebrow{font-size:8px}.class-description h3{margin-block:10px;font-size:30px}.class-description p{font-size:10px}.class-description p span{margin-inline:5px}.class-spots{align-items:center;gap:9px;font-size:10px;display:flex}.status-dot{background:#c2c9b6;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.class-row .button{justify-content:center;font-size:10px}.class-row.cancelled{opacity:.6}.inline-confirm{color:var(--bg);z-index:5;background:#e8e7e0;border:1px solid #fff;justify-content:space-between;align-items:center;gap:28px;padding:26px 30px;display:flex;position:sticky;bottom:20px;box-shadow:0 10px 60px #0009}.inline-confirm h3{margin-block:10px;font-size:32px}.inline-confirm p{color:#515149;font-size:11px}.inline-confirm .button{color:var(--bg);border-color:#45453f}.inline-confirm .button.light{background:var(--bg);color:var(--text)}.selected-class{background:#1b1c18;border:1px solid #68685e;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px;padding:25px;display:flex}.selected-class h3{margin-block:10px;font-size:30px}.selected-class p{font-size:11px}.notice{color:#d8dece;background:#1d2119;border:1px solid #6e7667;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:15px 20px;font-size:12px;display:flex}.notice.error{color:#f4cbb9;background:#281c17;border-color:#805343}.notice button{min-width:32px;min-height:32px;font-size:20px}.empty-state{text-align:center;background:var(--panel);border:1px solid var(--line);padding:50px 25px}.empty-state h3{margin-bottom:15px;font-size:35px}.empty-state p{margin-bottom:25px;font-size:13px}.portal-shell{background:#10100f;grid-template-columns:235px minmax(0,1fr);max-width:1920px;min-height:calc(100vh - 104px);margin:auto;display:grid}.portal-sidebar{border-right:1px solid var(--line);background:#0d0d0c;flex-direction:column;align-self:stretch;min-width:0;padding:36px 24px;display:flex}.portal-brand{font-family:var(--display);letter-spacing:-.02em;font-size:48px;font-weight:700;line-height:1}.portal-brand span{font-family:var(--body);letter-spacing:.14em;color:var(--muted);margin-top:12px;font-size:8px;display:block}.portal-sidebar nav{flex-direction:column;gap:6px;margin-top:45px;display:flex}.portal-sidebar nav button{text-align:left;color:var(--muted);border:1px solid #0000;align-items:center;gap:13px;padding:14px 10px;font-size:10px;display:flex}.portal-sidebar nav button>span:first-child{opacity:.6;font-size:9px}.portal-sidebar nav button[aria-pressed=true]{border-color:var(--line);color:var(--text);background:#20201d}.nav-arrow{opacity:0;margin-left:auto}.portal-sidebar nav button[aria-pressed=true] .nav-arrow{opacity:1}.sidebar-bottom{border-top:1px solid var(--line);flex-direction:column;gap:15px;margin-top:100px;padding-top:24px;font-size:10px;display:flex}.sidebar-bottom .text-button{align-self:flex-start;margin-top:6px}.portal-content{min-width:0;padding:25px 38px 0}.demo-banner{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding-bottom:21px;font-size:9px;display:flex}.demo-banner p{font-size:9px}.demo-banner a{white-space:nowrap;margin-left:auto;font-size:9px}.portal-heading{justify-content:space-between;align-items:center;gap:30px;padding-block:36px 32px;display:flex}.portal-heading h1{margin-block:14px;font-size:clamp(42px,4.3vw,65px)}.portal-heading p:not(.eyebrow){font-size:11px}.portal-date{text-align:right;flex-shrink:0;font-size:10px;line-height:1.9}.portal-date span{color:var(--muted)}.portal-bottom{border-top:1px solid var(--line);letter-spacing:.1em;color:var(--muted);justify-content:space-between;gap:15px;margin-top:60px;padding-block:28px;font-size:8px;display:flex}.stat-grid{border:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-bottom:24px;display:grid}.stat{border-right:1px solid var(--line);padding:24px}.stat:last-child{border:0}.stat>span{color:var(--muted);font-size:9px}.stat strong{font-family:var(--display);margin-block:15px;font-size:60px;font-weight:600;line-height:1.1;display:block}.stat strong small{font-family:var(--body);color:var(--muted);margin-left:12px;font-size:10px;font-weight:400}.stat strong.stat-word{text-transform:uppercase;font-size:45px;line-height:1.46}.stat>p{font-size:9px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.app-panel{background:var(--panel);border:1px solid var(--line);min-width:0;padding:27px}.panel-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.app-panel h3{font-size:34px}.app-panel .eyebrow{font-size:8px}.next-session{background:linear-gradient(135deg,#2c2c27,#141413 85%)}.next-session h3{text-transform:uppercase;max-width:350px;margin-bottom:17px;font-size:46px}.next-session>p{font-size:11px}.next-time{border-bottom:1px solid #494940;align-items:center;gap:23px;margin-block:5px 20px;padding:26px 0;display:flex}.next-time strong{font-family:var(--display);font-size:52px;font-weight:600;line-height:1}.next-time span{color:var(--muted);font-size:9px}.next-session>.button{margin-top:10px}.activity-chart{justify-content:space-between;align-items:flex-end;gap:13px;height:180px;margin-top:25px;display:flex}.activity-day{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.activity-day>span{color:var(--muted);font-size:9px}.activity-day>span:last-child{margin-top:12px}.bar-track{border-bottom:1px solid #5a5a50;flex-direction:column;justify-content:flex-end;height:120px;margin-top:5px;display:flex}.bar-fill{transform-origin:bottom;width:100%;max-width:35px;height:100%;transform:scaleY(var(--activity-level,.03));background:#b5b6aa;margin-inline:auto}.training-callout{border:1px solid var(--line);background:repeating-linear-gradient(-45deg,#0000,#0000 5px,#ffffff02 5px 6px),#171715;justify-content:space-between;align-items:center;gap:28px;margin-top:24px;padding:30px;display:flex}.training-callout h3{margin-block:15px;font-size:35px}.training-callout p:not(.eyebrow){font-size:11px}.app-section-head{justify-content:space-between;align-items:center;gap:25px;margin-bottom:30px;display:flex}.app-section-head h2{margin-top:15px;font-size:42px}.button-row{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.text-button{text-underline-offset:4px;padding:10px 0;font-size:10px;text-decoration:underline}.booking-list{flex-direction:column;gap:15px;display:flex}.booking-card{border:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:20px;padding:26px;display:flex}.booking-card h3{margin:14px 0;font-size:32px}.booking-card p{font-size:11px}.booking-card .eyebrow{font-size:9px}.booking-actions{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.cancel-confirm{border:1px solid #69695e;flex-wrap:wrap;align-items:center;gap:12px;padding:15px;font-size:11px;display:flex}.cancel-confirm p{width:100%}.workout-progress{background:#3d3d35;height:3px;margin-bottom:24px}.workout-progress>span{transform-origin:0;background:#d5d5c8;width:100%;height:100%;display:block}.exercise{border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:21px 0;display:flex}.exercise-number{color:var(--muted);font-size:10px}.exercise strong{font-size:12px;font-weight:500;display:block}.exercise small{color:var(--muted);margin-top:6px;font-size:10px;display:block}.exercise input{margin-left:auto}.exercise-list{margin-bottom:30px}.history-list{margin-top:25px}.history-list>div{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;padding:14px 0;font-size:9px;display:flex}.stack-form{flex-direction:column;gap:22px;margin-top:27px;display:flex}.membership-panel>h3{font-size:74px}.membership-panel>p{margin-top:18px;font-size:11px}.club-metrics{gap:35px;padding-top:10px;display:flex}.club-metrics strong{font-family:var(--display);font-size:48px;line-height:1;display:block}.club-metrics span{color:var(--muted);font-size:9px}.app-panel>.text-link{margin-top:20px}.manage-toolbar{justify-content:space-between;align-items:center;gap:25px;margin-bottom:28px;display:flex}.manage-toolbar>label:first-child{width:270px}.editor-panel{border-color:#78786b;margin-bottom:30px}.editor-panel .form-grid{margin-top:25px}.admin-class{border:1px solid var(--line);margin-bottom:14px;padding:24px}.admin-class-main{justify-content:space-between;align-items:center;gap:22px;display:flex}.admin-class h3{margin-block:12px;font-size:30px}.admin-class p{font-size:10px}.admin-class .eyebrow{font-size:8px}.admin-class .button{font-size:9px}.attendees{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.attendees h4{margin-bottom:14px;font-size:25px}.attendees p{margin:7px 0;font-size:12px}.admin-cancel{margin-top:20px}.search-field{max-width:450px;margin-bottom:28px}.member-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.member-card{background:var(--panel);border:1px solid var(--line);padding:25px}.avatar{border:1px solid #79796e;border-radius:50%;place-items:center;width:42px;height:42px;font-size:11px;display:grid}.member-card h3{margin-bottom:16px;font-size:32px}.member-card p{overflow-wrap:anywhere;font-size:10px}.member-card .button-row{margin-top:24px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:11px}th,td{border-bottom:1px solid var(--line);padding:18px 15px}th{text-transform:uppercase;color:var(--muted);letter-spacing:.06em;font-size:9px;font-weight:500}td small{color:var(--muted);margin-top:6px;font-size:9px;display:block}.reset-panel{margin-bottom:24px}.reset-panel h3{margin-bottom:16px}.reset-panel p{max-width:700px;margin-bottom:25px;font-size:12px}@media (width<=1200px){.portal-shell{grid-template-columns:195px minmax(0,1fr)}.portal-sidebar{padding-inline:15px}.portal-content{padding-inline:25px}.class-row{grid-template-columns:85px 1fr 125px;gap:20px}.class-spots{display:none}.admin-class-main{flex-direction:column;align-items:flex-start}.portal-heading{align-items:flex-start}.portal-date{display:none}.stat{padding:19px}.stat strong{font-size:50px}.stat strong.stat-word{font-size:36px}.dashboard-grid{gap:18px}.app-panel{padding:23px}.next-session h3{font-size:37px}.training-callout{padding:24px}}@media (width<=900px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:20px 25px}.portal-brand{display:none}.portal-sidebar nav{flex-direction:row;gap:6px;margin:0;overflow:auto}.portal-sidebar nav button{white-space:nowrap;flex-shrink:0;padding:13px}.portal-sidebar nav button>span:first-child,.nav-arrow{display:none}.sidebar-bottom{flex-flow:wrap;align-items:center;gap:20px;margin-top:15px;padding-top:15px}.sidebar-bottom .eyebrow{display:none}.sidebar-bottom .text-button{margin:0;padding:0}.portal-content{padding-top:22px}.class-row{grid-template-columns:85px 1fr 150px}.stat>p{font-size:8px}}@media (width<=600px){.portal-sidebar{padding-inline:15px}.portal-content{padding-inline:20px}.demo-banner{align-items:flex-start;font-size:8px}.demo-banner .status-dot{margin-top:5px}.demo-banner p,.demo-banner a{font-size:8px}.portal-heading h1{font-size:44px}.portal-heading .eyebrow{font-size:8px}.portal-heading{padding-block:27px}.stat-grid{grid-template-columns:1fr 1fr;margin-bottom:18px}.stat:last-child{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:center;display:grid}.stat:nth-child(2){border:0}.stat:last-child strong{text-align:right;margin:0}.stat:last-child p{grid-column:1/-1}.stat{padding:18px}.stat strong{font-size:49px}.stat strong small{margin-left:7px;font-size:8px}.stat strong.stat-word{font-size:38px;line-height:1.2}.stat>span{font-size:8px}.dashboard-grid{grid-template-columns:1fr;gap:18px}.app-panel{padding:23px}.training-callout{flex-direction:column;align-items:flex-start;padding:24px}.training-callout h3{font-size:32px}.filters{grid-template-columns:1fr 1fr;gap:15px}.filters>label:first-child{grid-column:1/-1}.filters label{font-size:10px}.filters select{min-height:44px;padding-inline:10px;font-size:11px}.schedule-tools{align-items:flex-start;gap:14px;font-size:9px}.check-label{font-size:9px}.class-row{grid-template-columns:65px 1fr;gap:15px;padding-block:24px}.class-time strong{font-size:31px}.class-time>span{font-size:9px}.class-description h3{font-size:27px}.class-description .eyebrow{font-size:8px}.class-description p{font-size:9px}.class-row>.button,.class-row>.pill{grid-column:2;justify-self:start;min-width:140px}.class-spots{grid-column:2;font-size:9px;display:flex}.inline-confirm{flex-direction:column;align-items:flex-start;gap:15px;padding:22px;bottom:10px}.inline-confirm p{font-size:10px}.inline-confirm .button{font-size:9px}.inline-confirm .button-row{gap:10px}.selected-class{flex-direction:column;align-items:flex-start;padding:20px}.app-section-head{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:25px}.app-section-head h2{font-size:37px}.booking-card{flex-direction:column;align-items:flex-start;padding:23px}.booking-actions{align-items:flex-start;width:100%}.booking-actions .pill{font-size:9px}.portal-bottom{margin-top:40px;font-size:7px}.portal-bottom span:last-child{display:none}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.manage-toolbar{flex-direction:column;align-items:flex-start;gap:20px}.manage-toolbar>label:first-child{width:100%}.admin-class{padding:22px}.admin-class .button-row{gap:15px}.member-grid{grid-template-columns:1fr}.member-card h3{font-size:34px}th,td{min-width:120px;padding:15px 10px;font-size:10px}.search-field{max-width:none}.club-metrics{justify-content:space-between;gap:20px}.exercise{gap:16px}}.public-schedule .filters label{font-size:14px}.public-schedule .filters select{min-height:48px;font-size:16px}.public-schedule .schedule-tools,.public-schedule .check-label,.public-schedule .class-time>span{font-size:13px}.public-schedule .class-description .eyebrow{font-size:12px}.public-schedule .class-description p{font-size:14px}.public-schedule .class-spots{font-size:13px;display:flex}.public-schedule .class-row .button{min-height:44px;font-size:13px}.public-schedule .class-row>.pill{text-align:center;font-size:12px}.schedule-update{border:1px solid var(--line);margin-block:24px;padding:20px;font-size:14px}.schedule-update summary{min-height:44px;padding-block:10px}.schedule-update p{max-width:65ch;margin-block:14px 20px}.schedule-recovery{margin-block:24px}.class-description .class-restriction{color:#e1c5bd;margin-top:12px}@media (width>=601px) and (width<=1200px){.public-schedule .class-row{grid-template-columns:85px minmax(0,1fr) auto;grid-template-areas:"time description action""time spots action";row-gap:10px}.public-schedule .class-time{grid-area:time}.public-schedule .class-description{grid-area:description}.public-schedule .class-spots{grid-area:spots}.public-schedule .class-row>.button,.public-schedule .class-row>.pill{grid-area:action}}@media (width<=600px){.public-schedule .schedule-tools{flex-wrap:wrap;gap:12px}.public-schedule .class-row{grid-template-columns:65px minmax(0,1fr);grid-template-areas:"time description""time spots""action action";row-gap:12px}.public-schedule .class-time{grid-area:time;align-self:start}.public-schedule .class-description{grid-area:description}.public-schedule .class-spots{grid-area:spots}.public-schedule .class-row>.button,.public-schedule .class-row>.pill{grid-area:action}}.portal-loading{min-height:calc(100svh - 104px)}.public-schedule{min-height:80svh}.public-schedule .app-loading{min-height:65svh}@media (width<=760px){.portal-loading{min-height:calc(100svh - 83px)}}@media (prefers-reduced-motion:no-preference){.portal-body{animation:.36s cubic-bezier(.22,1,.36,1) portal-content-enter}.booking-dialog[open]{animation:.28s cubic-bezier(.22,1,.36,1) portal-dialog-enter}.booking-dialog[open]::backdrop{animation:.18s ease-out portal-backdrop-enter}.portal-content .notice,.schedule .booking-success,.cancel-confirm{animation:.24s cubic-bezier(.22,1,.36,1) portal-status-enter}.activity-chart .bar-fill{animation:portal-activity-enter .48s cubic-bezier(.22, 1, .36, 1) var(--activity-delay,0s) backwards;transition:transform .32s cubic-bezier(.22,1,.36,1)}.workout-progress>span{transition:transform .3s cubic-bezier(.22,1,.36,1)}}@keyframes portal-content-enter{0%{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-dialog-enter{0%{opacity:.65;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes portal-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes portal-status-enter{0%{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-activity-enter{0%{transform:scaleY(.03)}to{transform:scaleY(var(--activity-level,.03))}}@media (prefers-reduced-motion:reduce){.portal-body,.booking-dialog,.booking-dialog::backdrop,.portal-content .notice,.schedule .booking-success,.cancel-confirm,.activity-chart .bar-fill{animation:none}.activity-chart .bar-fill,.workout-progress>span{transition:none}}
