/* FITCORE DNA — dedicated MOBILE member experience on phone and desktop. */
:root{--member-max:460px;--member-nav-height:76px;}
html[data-theme="light"] body.member-portal-shell,
html[data-theme="dark"] body.member-portal-shell{
 margin:0;min-height:100dvh;overflow-x:hidden;color:var(--text)!important;
 background:var(--page)!important;padding-bottom:calc(92px + env(safe-area-inset-bottom));
 font:400 14px/1.5 Inter,"Plus Jakarta Sans",system-ui,"Segoe UI",sans-serif;
}
.member-topbar,html[data-theme="light"] .member-topbar{
 position:sticky;top:0;z-index:80;display:flex;justify-content:space-between;
 width:min(100%,var(--member-max));min-height:68px;margin:0 auto;padding:10px 16px;
 color:#F3F6FA;background:var(--topbar)!important;border:0!important;box-shadow:none!important;backdrop-filter:none;
}
.member-brand img{width:112px;max-height:36px;object-fit:contain;}
.member-top-actions{gap:8px;}
.member-icon-button,html[data-theme="light"] .member-icon-button{width:44px;height:44px;border:1px solid #415061;border-radius:12px;background:#253441!important;color:#FFF!important;}
.member-avatar-link,html[data-theme="light"] .member-avatar-link{width:44px;height:44px;border:2px solid #637588;background:#30404E!important;border-radius:12px;}
.member-main{width:min(100% - 28px,calc(var(--member-max) - 28px));max-width:calc(var(--member-max) - 28px);min-width:0;margin:0 auto;padding:20px 0 30px;}
.member-main>*{min-width:0;max-width:100%;}
.member-bottom-nav,html[data-theme="light"] .member-bottom-nav{
 position:fixed;z-index:90;right:50%;left:auto;bottom:0;width:min(100%,var(--member-max));
 transform:translateX(50%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
 min-height:var(--member-nav-height);gap:2px;padding:8px 7px calc(8px + env(safe-area-inset-bottom));
 color:var(--text);border:1px solid var(--border)!important;border-bottom:0!important;
 border-radius:16px 16px 0 0;background:var(--surface)!important;box-shadow:0 -8px 28px rgba(16,24,40,.08);backdrop-filter:none;
}
.member-bottom-nav a{min-width:0;min-height:54px;gap:3px;border-radius:10px;color:var(--text-muted);font-size:11px;font-weight:700;}
.member-bottom-nav a svg{width:21px;height:21px;}
.member-bottom-nav a.active,html[data-theme="light"] .member-bottom-nav a.active{
 color:#FFF!important;background:var(--brand-600)!important;box-shadow:none!important;
}
.member-greeting{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 18px;}
.member-greeting h1,.member-page-head h1{font-size:clamp(26px,7vw,30px);line-height:1.15;font-weight:800;letter-spacing:-.045em;color:var(--text);}
.member-greeting p:last-child,.member-page-head p:last-child{font-size:13px!important;color:var(--text-secondary)!important;line-height:1.5;}
.member-main .eyebrow{font-size:11px;font-weight:800;color:var(--brand-700);letter-spacing:.06em;}
html[data-theme="dark"] .member-main .eyebrow{color:#FF9894;}
.member-page-head{margin-bottom:18px;}
.member-card,html[data-theme="light"] .member-card,html[data-theme="dark"] .member-card,
.member-kpi,html[data-theme="light"] .member-kpi,html[data-theme="dark"] .member-kpi {
 color:var(--text)!important;background:var(--surface)!important;
 border:1px solid var(--border)!important;border-radius:16px!important;
 padding:16px;box-shadow:var(--shadow-card)!important;
}
.member-card-highlight,html[data-theme="light"] .member-card-highlight{
 position:relative;padding:20px!important;margin:0 0 14px!important;color:#FFF!important;
 background:linear-gradient(125deg,#111B25,#24313F)!important;border:1px solid #394A5A!important;overflow:hidden;
}
.member-card-highlight:after{right:-50px;bottom:-60px;filter:none;background:radial-gradient(circle,rgba(244,81,58,.31),transparent 66%);}
.member-card-highlight .eyebrow{color:#FFC2BD!important;}
.member-card-highlight h2,.member-card-highlight strong{color:white;}
.member-card-highlight .member-card-head h2{font-size:19px;letter-spacing:.02em;}
.member-card-person{gap:12px;margin-top:20px;}
.member-card-person img{width:54px;height:54px;border-radius:13px;border-color:#556475;}
.member-card-person strong{font-size:15px;}
.member-card-person small{font-size:11px!important;color:#C0CBD6!important;}
.member-main .button,html[data-theme="light"] .member-main .button,body.member-login-page .button{
 display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;
 border-radius:9px;font-size:13px;font-weight:700;box-shadow:none!important;transform:none!important;
}
.member-main .button-primary,html[data-theme="light"] .member-main .button-primary,
.member-login-page .button-primary,html[data-theme="light"] .member-login-page .button-primary{
 border:1px solid var(--brand-600)!important;color:#FFF!important;background:var(--brand-600)!important;
}
.member-main .button-primary:hover:not(:disabled),.member-login-page .button-primary:hover:not(:disabled){background:var(--brand-700)!important;border-color:var(--brand-700)!important;}
.member-main .button-secondary,html[data-theme="light"] .member-main .button-secondary{
 border:1px solid var(--border-strong)!important;background:var(--surface)!important;color:var(--text)!important;
}
.member-main .button-danger,html[data-theme="light"] .member-main .button-danger{color:#FFF!important;border-color:#B42333!important;background:#B42333!important;}
.member-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:18px;}
.member-quick-actions a{display:flex;min-width:0;min-height:82px;align-items:center;justify-content:center;flex-direction:column;gap:8px;
 border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);font-size:11px;font-weight:750;
 text-align:center;box-shadow:var(--shadow-card);padding:10px 4px;}
.member-quick-actions svg{width:24px;height:24px;color:var(--brand-600);}
.member-quick-actions a:hover{border-color:var(--brand-600);background:var(--surface-muted);}
.member-quick-actions span{white-space:normal;}
.member-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px;}
.member-kpi{min-height:108px;align-items:flex-start;flex-direction:column;gap:10px;padding:14px!important;}
.member-kpi>span{width:36px;height:36px;flex:0 0 36px;border-radius:10px;color:var(--brand-600)!important;background:rgba(218,47,54,.08)!important;}
.member-kpi small{font-size:11px!important;line-height:1.35;color:var(--text-secondary)!important;}
.member-kpi strong{font-size:22px!important;font-weight:850;font-variant-numeric:tabular-nums;}
.member-section-head{margin:24px 0 12px;}
.member-section-head h2{margin-top:4px;font-size:18px;letter-spacing:-.025em;}
.member-section-head>a,.member-back-link{font-size:12px;color:var(--brand-700)!important;font-weight:750;}
.member-membership-list,.member-notice-list,.member-class-list,.member-more-links{display:grid;gap:10px;}
.member-card-head h2,.member-card-head h3{font-size:16px;font-weight:800;}
.membership-mobile-stats{gap:8px;margin-top:14px;}
.membership-mobile-stats>div,html[data-theme="light"] .membership-mobile-stats>div,
.member-class-hero-grid>div,html[data-theme="light"] .member-class-hero-grid>div,
.member-invoice-meta>div,html[data-theme="light"] .member-invoice-meta>div{
 padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted)!important;
}
.membership-mobile-stats small,.member-class-hero-grid small,.member-invoice-meta dt{font-size:11px!important;color:var(--text-muted)!important;}
.membership-mobile-stats strong,.member-class-hero-grid strong{font-size:13px!important;color:var(--text)!important;}
.member-progress{height:7px;background:var(--border);}
.member-progress span{background:var(--brand-600)!important;}
.member-class-date{min-width:56px;width:56px;min-height:66px;border:1px solid rgba(218,47,54,.15);background:rgba(218,47,54,.07);border-radius:12px;}
.member-class-date strong{color:var(--brand-700);font-size:23px;}
.member-class-date span{color:var(--brand-700);font-size:11px;}
.member-next-class>div:nth-child(2)>strong,.member-class-main h3{font-size:14px!important;}
.member-next-class>div:nth-child(2)>small,.member-class-main>p,.member-class-meta{font-size:11px!important;color:var(--text-secondary)!important;}
.member-notice-icon,.member-more-link>span{color:var(--brand-600)!important;background:rgba(218,47,54,.08)!important;}
.member-notice-row strong,.member-history-row>div:nth-child(2)>strong,.member-payment-mobile>div:nth-child(2)>strong,.member-more-link strong,.member-inbox-card strong{font-size:13px!important;}
.member-notice-row small,.member-notice-row time,.member-history-row small,.member-history-row span,.member-payment-mobile small,
.member-more-link small,.member-inbox-card small,.member-inbox-card p{font-size:11px!important;color:var(--text-secondary)!important;}
.member-empty strong{font-size:15px!important;}
.member-empty span,.member-muted-note{font-size:12px!important;color:var(--text-secondary)!important;}
.member-status,.status-badge{font-size:10px;font-weight:800;letter-spacing:.015em;}
.member-status-active,.status-success{background:#E5F7EE;color:#168451;}
.status-warning{background:#FFF4DB;color:#935706;}.status-danger{background:#FDECEF;color:#B42333;}
.member-class-card{grid-template-columns:56px minmax(0,1fr);padding:14px!important;}
.member-class-meta{flex-wrap:wrap;}
.member-class-description,.member-booking-state p:last-child{font-size:12px!important;color:var(--text-secondary)!important;}
.member-eligible-package{border-color:rgba(218,47,54,.15);background:rgba(218,47,54,.05);}
.member-eligible-package>span{color:var(--brand-600);}
.member-eligible-package strong{font-size:13px;}.member-eligible-package small{font-size:11px;color:var(--text-secondary);}
.member-more-link{min-height:74px;padding:14px!important;grid-template-columns:42px minmax(0,1fr) auto;}
.member-more-link>span{width:42px;height:42px;}
.member-more-link>b{color:var(--text-secondary);}
.member-profile-head h1{font-size:20px;overflow-wrap:anywhere;}
.member-profile-head strong{font-size:12px;color:var(--brand-700);}
.member-profile-head small{font-size:11px!important;overflow-wrap:anywhere;}
.member-profile-form-grid{grid-template-columns:1fr;}
.member-profile-full{grid-column:auto;}
.member-main .form-field>span:first-child,.member-login-page .form-field>span:first-child{font-size:12px;color:var(--text);font-weight:750;}
.member-main .form-field input,.member-main .form-field textarea,.member-main .form-field select,
.member-login-page .form-field input{min-height:44px;border-radius:9px;border:1px solid var(--border-strong)!important;color:var(--text)!important;background:var(--surface)!important;font-size:14px;}
.member-main .consent-check{color:var(--text);font-size:12px;}
.member-digital-card,html[data-theme="light"] .member-digital-card{
 max-width:100%;margin:0;padding:20px;border-radius:20px;
 border:1px solid #4E5C6B!important;color:white!important;background:linear-gradient(135deg,#111B25,#263342)!important;
 box-shadow:0 12px 26px rgba(13,21,30,.14)!important;
}
.member-digital-card:after{background:rgba(218,47,54,.13);filter:none;}
.member-digital-person h2{font-size:18px;color:white;}
.member-digital-person strong{color:#FFABAA;font-size:12px;}
.member-digital-summary span,.member-digital-summary small{font-size:11px;color:#CBD6DF!important;}
.member-digital-summary strong{font-size:24px;color:white;}
.member-qr-box,html[data-theme="light"] .member-qr-box{width:min(100%,304px);aspect-ratio:1;max-width:304px;margin:20px auto;background:#FFF!important;border-radius:15px;box-shadow:none;}
.member-qr-actions{margin:0 auto 14px;}
.member-qr-actions small{font-size:10px;overflow-wrap:anywhere;}
.member-safety-note strong,.member-policy-box strong{font-size:13px;}
.member-safety-note small,.member-policy-box small{font-size:11px!important;color:var(--text-secondary)!important;}
.member-invoice-lines{border-color:var(--border);}.member-invoice-lines>div,.member-invoice-meta dd{font-size:12px;color:var(--text-secondary);}
.member-invoice-lines strong{color:var(--text)!important;}
.member-invoice-total small{font-size:11px;color:var(--text-muted);}.member-invoice-total strong{font-size:20px;}
.member-inbox-delivery{font-size:10px;color:var(--text-muted);background:var(--surface-muted);}
.member-profile-form-grid .button{margin-top:8px;}
.member-main .alert{font-size:13px;border-radius:10px;}
/* Member login is a MOBILE sign-in screen even on large desktop viewports. */
html[data-theme="light"] body.member-login-page,html[data-theme="dark"] body.member-login-page{
 color:var(--text)!important;background:var(--page)!important;min-height:100dvh;
}
.member-login-shell{display:flex;flex-direction:column;justify-content:flex-start;max-width:460px;min-height:100dvh;margin:auto;
 padding:0 0 28px;background:var(--surface);box-shadow:0 6px 36px rgba(16,24,40,.08);}
.member-login-hero{display:flex;min-height:220px;justify-content:center;flex-direction:column;padding:28px 22px 26px;
 color:white;background:linear-gradient(135deg,#0D151E,#293A49);}
.member-login-hero>img{width:122px;max-height:40px;margin-bottom:16px;object-fit:contain;}
.member-login-hero h1{margin:9px 0;font-size:clamp(33px,8vw,40px);line-height:1.06;color:white;letter-spacing:-.045em;}
.member-login-hero h1 span{color:#FF958D;}
.member-login-hero>p{margin:10px 0 0;color:#CBD6DF;font-size:12px;line-height:1.55;}
.member-login-panel{display:block;flex:1;padding:18px 16px 24px;background:var(--surface)!important;}
.member-login-card,html[data-theme="light"] .member-login-card,html[data-theme="dark"] .member-login-card{
 width:100%;padding:16px 4px;background:var(--surface)!important;border:0!important;border-radius:0;
 color:var(--text)!important;box-shadow:none!important;backdrop-filter:none;}
.member-login-card h2{font-size:24px;font-weight:800;letter-spacing:-.035em;}
.member-login-card>p:nth-of-type(2){font-size:13px;color:var(--text-secondary)!important;line-height:1.55;}
.member-login-note{padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted);}
.member-login-note strong{font-size:12px;}.member-login-note span{font-size:11px;color:var(--text-secondary);}
.member-staff-link{margin-top:14px;color:var(--brand-700);font-size:12px;font-weight:700;}
.member-login-page .password-toggle{background:var(--surface-muted)!important;color:var(--text)!important;border-color:var(--border-strong)!important;}
.member-login-page .stage-badge{color:#FFD0CB;background:rgba(218,47,54,.18);border-color:#96585E;}
.member-login-page .eyebrow{color:var(--brand-700);font-size:11px;}
@media(min-width:768px){
 .member-main{padding-top:20px;}
 .member-bottom-nav{bottom:0;border-radius:16px 16px 0 0;}
 .member-topbar{padding:10px 16px;}
 .member-booking-state{grid-template-columns:1fr;}
}
@media(max-width:430px){
 .member-main{width:calc(100% - 24px);padding-top:16px;}
 .member-kpi-grid,.member-class-hero-grid,.membership-mobile-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
 .member-kpi{min-height:104px;}
 .member-profile-head{grid-template-columns:58px minmax(0,1fr);}
 .member-profile-head .member-status{grid-column:2;justify-self:start;}
 .member-quick-actions a{min-height:76px;font-size:10px;}
}
@media(max-width:350px){.member-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));}.member-class-hero-grid,.membership-mobile-stats{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.member-portal-shell *, .member-login-page *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}
