:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background:#f5f6f6;min-width:320px;min-height:100%}body{min-width:320px;min-height:100%;margin:0}#root{min-height:100svh}.login-screen{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.login-card{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:26px;width:min(100%,430px);padding:30px;box-shadow:0 18px 55px #16202a1c}.home-brand{justify-content:center;margin:1.5rem 0 2rem;display:flex}.home-logo{width:min(175px,72vw);height:auto;display:block}.login-heading{margin-bottom:28px}.login-heading h1{margin-bottom:12px}.login-heading>p:last-child{color:var(--muted);line-height:1.55}.login-form{gap:10px;display:grid}.login-form label{margin-top:8px;font-size:.86rem;font-weight:750}.login-form input{border:1px solid var(--border);width:100%;min-height:50px;color:var(--text);font:inherit;background:#fff;border-radius:13px;padding:11px 14px}.login-form input:focus{border-color:var(--navy);outline:3px solid #2437461f}.login-error{color:#8c2020;background:#fff0f0;border:1px solid #e6b9b9;border-radius:12px;margin-top:8px;padding:11px 13px;font-size:.87rem;line-height:1.4}.login-submit{margin-top:14px}.login-submit:disabled{cursor:wait;opacity:.65}.login-help{color:#0b6f86;cursor:pointer;background:0 0;border:0;margin:18px auto 0;padding:6px;font-weight:700;display:block}.auth-loading-screen{justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.auth-loading-card{text-align:center}.auth-loading-card p{color:var(--muted)}.auth-mode-switch{background:#0000000f;border-radius:.75rem;grid-template-columns:1fr 1fr;gap:.25rem;margin-bottom:1.5rem;padding:.25rem;display:grid}.auth-mode-switch button{min-height:2.75rem;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:.6rem;padding:.65rem .75rem;font-weight:600}.auth-mode-switch button.active{background:#fff;box-shadow:0 1px 3px #0000001f}.form-field{flex-direction:column;gap:.4rem;display:flex}.name-fields{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.field-error{color:#a12622;font-size:.85rem;line-height:1.35}.field-help{color:#0000009e;font-size:.85rem;line-height:1.35}.login-form input[aria-invalid=true]{border-color:#a12622}.auth-alternate{text-align:center;margin:1.25rem 0 0;font-size:.9rem}.auth-alternate button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}@media (width<=480px){.name-fields{grid-template-columns:1fr}}.schedule-header{justify-content:space-between;align-items:center;gap:1.5rem;width:100%;margin-bottom:1.5rem;display:flex}.schedule-brand{align-items:center;gap:1rem;min-width:0;display:flex}.schedule-logo{object-fit:contain;flex:none;width:54px;height:54px;display:block}.schedule-brand h1{letter-spacing:-.035em;margin:0;font-size:clamp(2rem,4vw,2rem);line-height:1}.schedule-account{flex:none;align-items:center;gap:1rem;display:flex}.schedule-account span{color:#5f6973;font-weight:600}.event-registration{flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.event-registration button{background:var(--muted-blue);color:#fff;cursor:pointer;border:0;border-radius:999px;width:100%;min-height:38px;padding:8px 14px;font-weight:700}.event-registration span{color:var(--muted);font-size:.68rem}.event-label{letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#0b6f86!important;margin-bottom:3px!important;font-size:.68rem!important}@media (width>=641px){.event-row .event-registration{grid-column:2/4}}@media (width<=640px){.event-row .event-registration{grid-column:1/-1}}.delivery-option.booked button{color:#000;cursor:pointer;box-shadow:inset 0 0 0 1px #17663c2e;background:#ffeb3b!important}.delivery-option.booked button:hover{background:#fcf085!important}.delivery-option.booked button:disabled{opacity:1}.delivery-option.booked button span{color:inherit;margin-right:3px;font-size:.95em}.delivery-option.waitlisted button{color:#000;cursor:pointer;box-shadow:inset 0 0 0 1px #17663c2e;background:#cddc39!important}.delivery-option.waitlisted button:hover{background:#e5f073!important}.modal-backdrop.is-success{animation:.5s 2.8s forwards reservation-backdrop-fade}.reservation-modal-success{opacity:1;justify-content:center;align-items:center;min-height:230px;animation:.5s 2.8s forwards reservation-success-fade;display:flex;transform:translateY(0)scale(1)}.reservation-success{text-align:center;width:100%}.reservation-success h2{margin:14px 0 6px;padding:0}.reservation-success p{color:var(--muted);margin:0}.reservation-checkmark{color:#177245;background:#dff4e8;border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto;font-size:2.8rem;font-weight:800;line-height:1;animation:.36s cubic-bezier(.2,.9,.3,1.25) reservation-checkmark-pop;display:grid}.reservation-error{color:#8c2020;background:#fff0f0;border:1px solid #e6b9b9;border-radius:12px;margin:-6px 0 16px;padding:12px 14px;font-size:.9rem;line-height:1.4}.primary-button:disabled,.modal-close:disabled{cursor:wait;opacity:.7}.secondary-button{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:999px;margin-top:.75rem;padding:.85rem 1rem;font-weight:600}.secondary-button:hover,.secondary-button:focus-visible{background:#0000000d}.secondary-button:disabled{opacity:.55;cursor:not-allowed}.cancel-reservation-button{background:#b42318;border-color:#b42318}@keyframes reservation-checkmark-pop{0%{opacity:0;transform:scale(.55)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes reservation-success-fade{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes reservation-backdrop-fade{0%{background:#14191c8c}to{background:#14191c00}}@media (prefers-reduced-motion:reduce){.modal-backdrop.is-success,.reservation-modal-success,.reservation-checkmark{animation:none}}@media (width<=640px){.schedule-header{align-items:flex-start}.schedule-brand{gap:.7rem}.schedule-logo{width:40px;height:40px}.schedule-brand h1{font-size:2rem}.schedule-account span{display:none}.schedule-account button{padding:.65rem .9rem}}:root{--background:#f5f6f6;--surface:#fff;--surface-muted:#f4f4f4;--text:#16202a;--muted:#657078;--border:#dce1e3;--navy:#243746;--muted-blue:#53a3be;--studio:#8e43c9;--studio-dark:#7431ad;--online:#059669;--online-dark:#047857}*{box-sizing:border-box}body{background:var(--background);color:var(--text);margin:0}button{font:inherit}button:focus-visible{outline-offset:2px;outline:3px solid #24374640}.app-shell{min-height:100vh;padding:max(22px, env(safe-area-inset-top)) 16px max(30px, env(safe-area-inset-bottom))}.app-header{justify-content:space-between;align-items:center;max-width:860px;margin:0 auto 22px;display:flex}.eyebrow{color:#0b6f86;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:.75rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.8rem,7vw,2.4rem);line-height:1.05}.account-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;padding:10px 16px}.account-actions{align-items:center;gap:10px;display:flex}.account-name{color:var(--muted);font-size:.85rem;font-weight:700}.schedule-message{color:var(--muted);text-align:center;padding:30px 15px}.schedule-error{color:#8c2020;background:#fff0f0;border:1px solid #e6b9b9;border-radius:14px;margin-bottom:20px;padding:14px}main{max-width:860px;margin:0 auto}.week-navigation{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:18px;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-bottom:14px;padding:10px;display:grid}.week-navigation button{background:var(--surface-muted);cursor:pointer;border:0;border-radius:50%;width:44px;height:44px;font-size:1.8rem}.week-navigation div{flex-direction:column;gap:2px;display:flex}.week-navigation span{color:var(--muted);font-size:.8rem}.schedule-filters{background:#0c182212;border-radius:999px;justify-content:center;gap:0;width:fit-content;margin:0 auto 28px;padding:5px;display:flex}.schedule-filters button{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:9px 15px;font-size:.88rem;font-weight:700}.schedule-filters button.active{background:var(--navy);color:#fff;box-shadow:0 7px 18px #00000024}.day-group{margin-bottom:34px}.day-group>h2{text-align:left;margin-bottom:11px;font-size:1.15rem}.schedule-table{border:1px solid var(--border);background:var(--surface);border-radius:18px;overflow:hidden;box-shadow:0 8px 26px #0000000d}.schedule-heading{background:#e0e9ec;grid-template-columns:minmax(0,1fr) 112px 112px;gap:8px;padding:11px 13px;font-size:.78rem;font-weight:800;display:grid}.schedule-heading span:nth-child(2),.schedule-heading span:nth-child(3){text-align:center}.schedule-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 112px 112px;align-items:stretch;gap:8px;padding:13px;display:grid}.schedule-row:nth-child(odd){background:#f8f8f8}.class-information{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px 34px;min-width:0;display:grid}.class-time{flex-direction:column;gap:2px;display:flex}.class-time strong{font-size:.9rem}.class-time span{color:var(--muted);font-size:.75rem}.class-description{text-align:left;min-width:0}.class-description h3{margin-bottom:4px;font-size:1rem;line-height:1.2}.class-description p{color:var(--muted);margin-bottom:0;font-size:.83rem}.delivery-option{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;display:flex}.delivery-option button{color:#fff;cursor:pointer;border:0;border-radius:999px;width:100%;min-height:38px;padding:8px 10px;font-size:.83rem;font-weight:700}.delivery-option.studio button{background:var(--studio)}.delivery-option.studio button:hover{background:var(--studio-dark)}.delivery-option.online button{background:var(--online)}.delivery-option.online button:hover{background:var(--online-dark)}.delivery-option span{color:var(--muted);font-size:.68rem;line-height:1.15}.delivery-option.unavailable{color:var(--muted);font-size:.74rem}.modal-backdrop{z-index:20;padding:max(15px, env(safe-area-inset-top)) 15px max(15px, env(safe-area-inset-bottom));background:#14191c8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.reservation-modal{background:var(--surface);border-radius:24px;width:min(100%,520px);max-height:calc(100svh - 30px);padding:28px;position:relative;overflow-y:auto;box-shadow:0 20px 70px #00000040}.modal-close{background:var(--surface-muted);cursor:pointer;border:0;border-radius:50%;width:38px;height:38px;font-size:1.5rem;position:absolute;top:14px;right:14px}.reservation-modal h2{padding-right:40px}.reservation-modal dl{gap:14px;margin:24px 0;display:grid}.reservation-modal dl div{grid-template-columns:92px 1fr;gap:10px;display:grid}.reservation-modal dt{color:var(--muted)}.reservation-modal dd{margin:0;font-weight:600}.primary-button{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:999px;width:100%;padding:14px 18px;font-weight:700}@media (width<=640px){.schedule-heading{display:none}.schedule-table{box-shadow:none;background:0 0;border:0;border-radius:0;overflow:visible}.schedule-row{border:1px solid var(--border);border-radius:18px;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;padding:15px;box-shadow:0 7px 22px #0000000d;background:var(--surface)!important}.class-information{border-bottom:1px solid var(--border);grid-column:1/-1;grid-template-columns:95px minmax(0,1fr);padding-bottom:11px}.delivery-option{padding-top:19px;position:relative}.delivery-option:before{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:.66rem;font-weight:800;position:absolute;top:0}.delivery-option.studio:before{content:"Studio"}.delivery-option.online:before{content:"Online"}.schedule-filters{max-width:100%}.schedule-filters button{padding-left:12px;padding-right:12px}}@media (width>=641px){.schedule-row .class-information{grid-column:1}.schedule-row .delivery-option.studio{grid-column:2}.schedule-row .delivery-option.online{grid-column:3}}
