.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--nav-bg, #16213e);border-top:1px solid var(--nav-border, rgba(255, 255, 255, .08));display:flex;align-items:flex-start;z-index:100}.bottom-nav__item{flex:1;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--nav-inactive, rgba(255, 255, 255, .45));text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:color .15s ease}.bottom-nav__item:active{transform:scale(.88);opacity:.7;transition:transform .08s ease,opacity .08s ease}.bottom-nav__item--active{color:var(--nav-active, #e94560)}.bottom-nav__icon{position:relative;width:44px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:14px;transition:background .2s ease}.bottom-nav__item--active .bottom-nav__icon{background:#e9456026}.bottom-nav__icon svg{width:22px;height:22px;flex-shrink:0}.bottom-nav__label{font-size:10px;font-weight:500;letter-spacing:.02em;line-height:1}.auth-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px;background:var(--bg, #0f0f23);gap:24px}.auth-page-logo{max-width:180px;max-height:90px;width:auto;height:auto;object-fit:contain;opacity:.9}.auth-card{width:100%;max-width:400px;background:var(--surface, #16213e);border-radius:16px;padding:32px 28px;box-shadow:0 8px 32px #0006}.auth-title{margin:0 0 28px;font-size:24px;font-weight:700;color:var(--text-primary, #ffffff);text-align:center}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-row{display:flex;gap:12px}.auth-row .auth-label{flex:1}.auth-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .6))}.auth-input{background:var(--input-bg, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .12));border-radius:8px;color:var(--text-primary, #ffffff);font-size:16px;padding:12px 14px;outline:none;width:100%;transition:border-color .15s;-webkit-appearance:none}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-wrap .auth-input{flex:1;padding-right:42px}.auth-eye{position:absolute;right:10px;background:none;border:none;color:var(--text-secondary, rgba(255, 255, 255, .45));cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.auth-eye:active{color:var(--text-primary, #ffffff)}.auth-input:focus{border-color:var(--accent, #e94560)}.auth-error{margin:0;color:var(--error, #ff6b6b);font-size:13px;text-align:center}.auth-btn{margin-top:8px;background:var(--accent, #e94560);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;padding:14px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,opacity .15s ease}.auth-btn:active:not(:disabled){transform:scale(.97);opacity:.85}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-footer{margin:20px 0 0;text-align:center;font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .5))}.auth-footer a{color:var(--accent, #e94560);text-decoration:none;font-weight:500}.page{display:flex;flex-direction:column;height:100%}.page-header{padding:16px 20px 12px;background:var(--surface, #16213e);border-bottom:1px solid var(--border, rgba(255, 255, 255, .08));flex-shrink:0}.page-header__title{margin:0;font-size:20px;font-weight:700;color:var(--text-primary, #ffffff)}.page-content{flex:1;overflow-y:auto;overscroll-behavior-y:contain;padding:20px;-webkit-overflow-scrolling:touch}.home-content{display:flex;flex-direction:column;gap:12px}.home-inactive-banner{background:#e945601f;border:1px solid rgba(233,69,96,.35);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.home-inactive-banner__status{margin:0;font-size:14px;color:var(--text-primary, #fff)}.home-inactive-banner__msg{margin:0;font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .65));line-height:1.5}.home-greeting{font-size:22px;font-weight:700;color:var(--text-primary, #fff);margin:0 0 4px}.past-due-banner{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:16px;border-radius:16px;border:1.5px solid rgba(220,38,38,.5);background:#dc26261f;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s}.past-due-banner:active{background:#dc262633}.past-due-banner__title{font-size:20px;font-weight:800;color:#ef4444;text-transform:uppercase;letter-spacing:.02em}.past-due-banner__amount{font-size:14px;font-weight:600;color:#991b1b}.past-due-banner__btn{margin-top:8px;padding:10px 28px;border-radius:10px;background:#dc2626;color:#fff;font-size:15px;font-weight:700}.dash-card{position:relative;background:var(--card-bg, #1a1a2e);border:1px solid var(--card-border, rgba(255, 255, 255, .08));border-radius:16px;padding:16px 44px 16px 16px;display:flex;flex-direction:column;gap:4px;overflow:hidden;text-align:left;width:100%}.dash-card--clickable{cursor:pointer;background:none;border-color:var(--card-border, rgba(255, 255, 255, .08));transition:background .12s;-webkit-tap-highlight-color:transparent}.dash-card--clickable:active{background:#ffffff0d}.dash-card__accent{position:absolute;top:0;left:0;width:4px;height:100%;border-radius:16px 0 0 16px}.dash-card__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#ffffff73;margin-left:8px}.dash-card__main{font-size:17px;font-weight:600;color:var(--text-primary, #fff);margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card__sub{font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .55));margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card__chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:22px;color:#fff3;line-height:1}.qr-content{display:flex;align-items:center;justify-content:center}.qr-card{display:flex;flex-direction:column;align-items:center;gap:20px;background:#fff;border-radius:16px;padding:28px 24px;width:100%;max-width:320px}.qr-label{margin:0;font-size:17px;font-weight:600;color:#111;text-align:center}.qr-image{width:260px;height:260px;object-fit:contain;display:block}.qr-hint{margin:0;font-size:13px;color:#666;text-align:center}.qr-empty{color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:15px;text-align:center}.settings-section{margin-bottom:32px}.settings-section__title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffff8c;margin:0 4px 10px}.settings-form{display:flex;flex-direction:column;gap:14px;background:var(--surface, #16213e);border-radius:12px;padding:20px}.settings-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .6))}.settings-input{background:var(--input-bg, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .12));border-radius:8px;color:var(--text-primary, #ffffff);font-size:16px;padding:10px 14px;outline:none;transition:border-color .15s;-webkit-appearance:none}.settings-input:focus{border-color:var(--accent, #e94560)}.settings-error{margin:0;font-size:13px;color:var(--error, #ff6b6b)}.settings-success{margin:0;font-size:13px;color:var(--success, #51cf66)}.settings-btn{background:var(--accent, #e94560);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;padding:12px;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.settings-btn:disabled{opacity:.6;cursor:not-allowed}.settings-btn--pay{background:#16a34a;margin-top:4px}.settings-install-card{background:var(--surface, #16213e);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px}.settings-install-step{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-primary, #fff);line-height:1.4;-webkit-user-select:none;user-select:none}.settings-install-step strong{color:#fff;font-weight:600}.settings-install-num{flex-shrink:0;width:24px;height:24px;background:var(--accent, #e94560);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.settings-overlay{position:fixed;inset:0;background:#0000008c;z-index:100;animation:fade-in .2s ease}.settings-sheet{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom));left:0;right:0;background:var(--surface, #16213e);border-radius:20px 20px 0 0;padding:12px 20px 28px;z-index:101;animation:slide-up .28s ease;max-height:calc(90vh - 64px - env(safe-area-inset-bottom));overflow-y:auto}.settings-sheet-handle{width:40px;height:4px;background:#fff3;border-radius:2px;margin:0 auto 12px}.settings-sheet-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:20px}.settings-sheet-title{font-size:17px;font-weight:600;color:var(--text-primary, #fff);margin:0}.settings-sheet-cancel{position:absolute;right:0;background:none;border:none;color:#ff3b30;font-size:17px;font-weight:700;cursor:pointer;padding:6px 0;-webkit-tap-highlight-color:transparent}.settings-menu{background:var(--surface-2, #1a2a4a);border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden}.settings-row{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:14px 16px;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.07);color:var(--text-primary, #fff);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .12s}.settings-row:last-child{border-bottom:none}.settings-row:active{background:#ffffff14}.settings-row__icon{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#e9456026;border-radius:8px;color:var(--accent, #e94560)}.settings-row__label{flex:1;font-size:15px;font-weight:500;color:var(--text-primary, #fff)}.settings-row__chevron{flex-shrink:0;display:flex;align-items:center;color:#ffffff40}.settings-select-wrap{position:relative;display:flex;align-items:center}.settings-select{width:100%;background:var(--input-bg, rgba(255, 255, 255, .06));border:1px solid var(--border, rgba(255, 255, 255, .12));border-radius:8px;color:var(--text-primary, #ffffff);font-size:16px;padding:10px 36px 10px 14px;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s}.settings-select:focus{border-color:var(--accent, #e94560)}.settings-select-wrap>svg{position:absolute;right:12px;pointer-events:none;color:#ffffff73}.plan-rows{display:flex;flex-direction:column;gap:0;background:var(--surface, #16213e);border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.plan-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06);gap:12px}.plan-row:last-child{border-bottom:none}.plan-row__label{font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .55));flex-shrink:0}.plan-row__value{font-size:14px;font-weight:500;color:var(--text-primary, #fff);text-align:right}.settings-loading{text-align:center;font-size:14px;color:var(--text-secondary, rgba(255, 255, 255, .45));padding:20px 0;margin:0}.enroll-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.enroll-iframe{flex:1;width:100%;border:none;min-height:0}.enroll-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:15px;text-align:center;padding:24px}.enroll-done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px 24px;text-align:center}.enroll-done__btn{padding:12px 28px;background:var(--color-primary, #1a73e8);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.sched-tabs{display:flex;gap:4px;padding:10px 0 2px;border-bottom:1px solid var(--border, rgba(255, 255, 255, .08))}.sched-tab{flex:1;padding:8px 0;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:14px;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.sched-tab--active{color:var(--text-primary, #fff);border-bottom-color:var(--accent, #e94560)}.cal-grid-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:4px 0}.cal-tile{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 8px 14px;border-radius:16px;background:var(--card-bg, #1a1a2e);border:1.5px solid var(--card-border, rgba(255, 255, 255, .08));cursor:pointer;transition:border-color .15s,background .15s,transform .1s;-webkit-tap-highlight-color:transparent;text-align:center}.cal-tile:active{transform:scale(.94)}.cal-tile--active{border-color:var(--accent, #e94560);background:#e945601a}.cal-tile__icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cal-tile__name{font-size:12px;font-weight:600;color:var(--text-primary, #fff);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cal-back-bar{padding:8px 1rem;flex-shrink:0;border-bottom:1px solid var(--border, rgba(255, 255, 255, .08))}.cal-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent, #e94560);font-size:14px;font-weight:600;cursor:pointer;padding:4px 0;-webkit-tap-highlight-color:transparent}.cal-header-info{display:flex;flex-direction:column;gap:2px}.cal-sessions-badge{font-size:12px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .55))}.cal-empty{text-align:center;color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:14px;margin-top:2rem}.cal-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.12);border-top-color:var(--accent, #e94560);border-radius:50%;animation:cal-spin .7s linear infinite;margin:2rem auto}@keyframes cal-spin{to{transform:rotate(360deg)}}.cal-day-group{margin-bottom:1.25rem}.cal-day-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, rgba(255, 255, 255, .5));margin:0 0 8px}.cal-event-card{display:flex;border-radius:12px;background:var(--card-bg, #1a1a2e);border:1px solid var(--card-border, rgba(255, 255, 255, .08));overflow:hidden;margin-bottom:10px}.cal-event-card__accent{width:4px;flex-shrink:0}.cal-event-card__body{flex:1;padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px}.cal-event-card__time{font-size:15px;font-weight:600;color:var(--text-primary, #fff);margin:0}.cal-event-card__spots{font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .55));margin:0}.cal-event-card__spots--full{color:var(--accent, #e94560)}.cal-event-card__spots--enrolled{color:#4caf50;font-weight:600}.cal-event-card__btn{align-self:flex-start;margin-top:4px;padding:8px 18px;border-radius:8px;border:none;background:var(--accent, #e94560);color:#fff;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.cal-event-card__btn:disabled{opacity:.45;cursor:default}.cal-event-card__btn--full{background:#ffffff14;color:var(--text-secondary, rgba(255, 255, 255, .5))}.cal-event-card--enrolled{border-color:#4caf5059}.cal-event-card__btn--enrolled{background:#4caf502e;color:#4caf50}.sp-modal__message--error{color:var(--accent, #e94560)}.sp-modal--success{text-align:center;gap:.5rem;max-width:460px}.sp-modal__icon{font-size:52px;line-height:1;margin-bottom:.25rem}.sp-modal__headline{font-size:20px;font-weight:700;color:var(--text-primary, #fff);margin:0}.sp-modal__detail{font-size:14px;color:var(--text-secondary, rgba(255, 255, 255, .6));margin:0;line-height:1.5}.sp-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.sp-modal{background:var(--card-bg, #1a1a2e);border:1px solid var(--card-border, rgba(255, 255, 255, .1));border-radius:14px;padding:1.75rem 1.5rem 1.25rem;width:100%;max-width:340px;display:flex;flex-direction:column;gap:.75rem}.sp-modal__message{font-size:15px;color:var(--text-primary, #fff);margin:0;line-height:1.5;text-align:center}.sp-modal__btn{width:100%;padding:12px;border-radius:10px;border:none;font-size:15px;font-weight:600;cursor:pointer}.sp-modal__btn--primary{background:var(--accent, #e94560);color:#fff}.sp-modal__btn--secondary{background:transparent;color:var(--text-secondary, rgba(255, 255, 255, .6));border:1px solid var(--card-border, rgba(255, 255, 255, .1))}:root{--bg: #0f0f23;--surface: #16213e;--surface-2: #1a2a4a;--nav-bg: #16213e;--nav-border: rgba(255, 255, 255, .08);--nav-inactive: rgba(255, 255, 255, .4);--nav-active: #e94560;--accent: #e94560;--border: rgba(255, 255, 255, .1);--input-bg: rgba(255, 255, 255, .06);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .55);--error: #ff6b6b;--success: #51cf66}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;height:100dvh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:auto;user-select:auto}a,button,[role=button]{touch-action:manipulation}.app-shell{display:flex;flex-direction:column;height:100%;height:100dvh}.no-tenant{height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--text-secondary);font-size:15px}.app-topbar{flex-shrink:0;display:flex;align-items:stretch;padding-top:env(safe-area-inset-top);padding-right:4px;padding-bottom:0;padding-left:4px;background:var(--surface, #16213e);border-bottom:1px solid var(--border, rgba(255, 255, 255, .08));height:calc(56px + env(safe-area-inset-top));gap:0}.app-topbar__left{width:52px;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0}.app-topbar__logo{height:95%;width:auto;object-fit:contain}.app-topbar__title{flex:1;align-self:center;text-align:center;font-size:16px;font-weight:600;color:var(--text-primary, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.app-topbar__logout{width:52px;height:44px;align-self:center;flex-shrink:0;background:none;border:none;color:var(--text-secondary, rgba(255, 255, 255, .45));cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;border-radius:50%;transition:background .15s ease,color .15s ease}.app-topbar__logout:active{color:var(--text-primary, #ffffff);background:#ffffff14}.app-shell__content{flex:1;overflow:hidden;padding-bottom:calc(64px + env(safe-area-inset-bottom))}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page{animation:page-enter .18s ease}
