:root{
  --ink:#0B1020;--ink-2:#121A31;--ink-3:#1B2748;--paper:#F3F6FB;--card:#FFFFFF;
  --muted:#667085;--line:#E5EAF2;--lime:#B7FF2A;--mint:#63F3E8;--cyan:#23D9C5;
  --violet:#7C5CFF;--violet-2:#5D3EF3;--coral:#FF7A59;--red:#F04438;--green:#12B76A;
  --shadow:0 14px 40px rgba(15,23,42,.08);--shadow-lg:0 24px 70px rgba(7,14,31,.18);
  --r:22px;--r-sm:14px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--paper)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.muted{color:var(--muted)}
.auth-body{min-height:100vh;background:#07101d;overflow-x:hidden}.auth-error{position:fixed;left:50%;top:22px;transform:translateX(-50%);z-index:20;background:#fff1f0;color:#8a1c13;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow-lg)}
.login-stage{min-height:100vh;display:grid;grid-template-columns:minmax(420px,.88fr) minmax(600px,1.12fr);position:relative;background:radial-gradient(circle at 16% 18%,rgba(124,92,255,.22),transparent 35%),#091121}
.login-panel{padding:58px clamp(44px,6vw,100px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:48px}.login-brand img{width:54px;height:54px}.login-brand strong{font-family:"Space Grotesk";font-size:26px;letter-spacing:.5px;color:#fff}.login-brand strong em{font-style:normal;color:var(--lime)}.login-brand small{display:block;color:#8e9bb2;font-size:10px;letter-spacing:2.2px;margin-top:1px}
.login-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--mint);font-size:12px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.login-kicker:before{content:"";width:22px;height:2px;background:var(--lime)}.login-copy h1{font-family:"Space Grotesk";font-size:clamp(42px,5vw,66px);line-height:.98;color:#fff;margin:16px 0 16px;letter-spacing:-2.2px}.login-copy h1 span{color:var(--lime)}.login-copy p{max-width:520px;color:#9BA9C0;font-size:16px;line-height:1.7;margin:0 0 34px}.login-form{max-width:520px}.field{margin-bottom:16px}.field label{display:flex;justify-content:space-between;color:#D7DEEA;font-size:13px;font-weight:700;margin-bottom:8px}.input-wrap{position:relative}.input-wrap input,.login-form input[type=email],.login-form input[type=password]{width:100%;border:1px solid #273350;background:#111B31;color:#fff;padding:15px 16px;border-radius:14px;outline:0;transition:.2s}.login-form input:focus{border-color:var(--mint);box-shadow:0 0 0 4px rgba(99,243,232,.1)}.remember-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0 20px;color:#9BA9C0;font-size:13px}.remember-row label{display:flex;align-items:center;gap:9px}.remember-row input{accent-color:var(--lime)}.signin-btn{width:100%;border:0;border-radius:14px;padding:15px 18px;background:linear-gradient(90deg,var(--lime),#d9ff72);color:#10190a;font-weight:900;cursor:pointer;box-shadow:0 14px 30px rgba(183,255,42,.16);transition:.2s}.signin-btn:hover{transform:translateY(-2px);filter:saturate(1.15)}.demo-credentials{margin-top:22px;padding:14px 16px;border:1px solid #22304c;border-radius:14px;background:rgba(255,255,255,.025);color:#91A0B8;font-size:12px;line-height:1.65}.demo-credentials strong{color:#fff}.demo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.demo-tag{padding:8px 10px;background:#101A2E;border-radius:10px}.demo-tag b{color:var(--mint);display:block;font-size:10px;text-transform:uppercase;letter-spacing:.7px}.login-visual{position:relative;padding:32px;display:flex;align-items:center;justify-content:center;overflow:hidden}.login-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#091121 0%,rgba(9,17,33,.15) 28%,rgba(9,17,33,0) 60%)}.hero-art{width:min(98%,900px);filter:drop-shadow(0 30px 90px rgba(0,0,0,.4));transform:rotate(1deg)}.visual-badge{position:absolute;right:7%;bottom:9%;padding:16px 18px;background:rgba(9,17,33,.8);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.13);border-radius:18px;color:#fff}.visual-badge strong{display:block;font-size:22px}.visual-badge span{font-size:12px;color:#aab7cb}
.app-body{min-height:100vh}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;background:linear-gradient(180deg,#0B1020 0%,#10172A 58%,#0A1020 100%);color:#fff;padding:24px 18px 18px;display:flex;flex-direction:column;z-index:30;border-right:1px solid rgba(255,255,255,.06)}.sidebar-brand{display:flex;justify-content:space-between;align-items:center;padding:0 7px 20px}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-lockup img{width:42px;height:42px}.brand-lockup span{font-family:"Space Grotesk";line-height:.9}.brand-lockup strong{font-size:19px}.brand-lockup em{font-size:19px;font-style:normal;color:var(--lime)}.brand-lockup small{display:block;color:#6f7d95;letter-spacing:2px;font:700 8px Manrope;margin-top:7px}.mobile-close{display:none;background:none;border:0;color:#fff;font-size:24px}.club-chip{display:flex;gap:10px;align-items:center;margin:4px 6px 23px;padding:12px;border-radius:14px;background:linear-gradient(90deg,rgba(124,92,255,.15),rgba(35,217,197,.06));border:1px solid rgba(124,92,255,.18)}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(183,255,42,.08)}.club-chip b{display:block;font-size:11px}.club-chip small{font-size:9px;color:#8998b0}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-label{text-transform:uppercase;letter-spacing:1.6px;color:#56647D;font-size:9px;font-weight:900;margin:17px 12px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:13px;color:#AEB9CA;font-size:13px;font-weight:700;transition:.2s;position:relative}.nav-item:hover{background:rgba(255,255,255,.055);color:#fff}.nav-item.active{color:#fff;background:linear-gradient(90deg,rgba(124,92,255,.24),rgba(124,92,255,.08));box-shadow:inset 0 0 0 1px rgba(124,92,255,.17)}.nav-item.active:after{content:"";position:absolute;right:10px;width:6px;height:6px;border-radius:50%;background:var(--lime)}.nav-icon{width:28px;height:28px;display:grid;place-items:center;background:rgba(255,255,255,.055);border-radius:9px;color:var(--mint);font-size:14px}.nav-item.active .nav-icon{background:var(--violet);color:#fff}.sidebar-footer{margin-top:auto;padding-top:18px}.mini-profile{display:flex;align-items:center;gap:10px;padding:12px 8px;border-top:1px solid rgba(255,255,255,.07)}.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--violet),var(--cyan));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 8px 20px rgba(124,92,255,.25)}.profile-copy{min-width:0;flex:1}.profile-copy strong{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy small{color:#71809a;font-size:9px}.logout-icon{border:0;background:#17223c;color:#91a0b8;width:30px;height:30px;border-radius:9px;cursor:pointer}.workspace{grid-column:2;min-width:0}.topbar{height:82px;position:sticky;top:0;z-index:20;background:rgba(243,246,251,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(222,229,239,.8);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.menu-button{display:none;border:0;background:#fff;border-radius:12px;padding:10px 12px}.topbar-title{display:flex;flex-direction:column}.topbar-title .eyebrow{font-size:8px;font-weight:900;letter-spacing:2px;color:#8d99ac}.topbar-title strong{font-family:"Space Grotesk";font-size:17px}.topbar-actions{display:flex;align-items:center;gap:10px}.role-pill{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;padding:8px 11px;border-radius:999px;background:#EDE9FF;color:#5e46d5}.top-avatar{width:34px;height:34px;border-radius:11px;font-size:12px}.content{padding:32px 34px 60px;max-width:1600px;margin:auto}.pagehead{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:24px}.pagehead h1,.content>h1{font-family:"Space Grotesk";font-size:clamp(30px,3vw,44px);letter-spacing:-1.3px;margin:0}.pagehead p{margin:7px 0 0}.page-kicker{font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:var(--violet);font-weight:900}.flash{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px 16px;border-radius:14px;box-shadow:var(--shadow);background:#fff}.flash>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-weight:900}.flash.success>span{background:#EAFBF2;color:var(--green)}.flash.error>span{background:#FFF0EE;color:var(--red)}.flash button{margin-left:auto;border:0;background:none;color:#98a2b3;font-size:18px}.flash ul{margin:6px 0 0;padding-left:18px}
.hero-banner{border-radius:28px;background:linear-gradient(120deg,#0D1428 0%,#131C36 56%,#21354A 100%);color:#fff;padding:28px 30px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);margin-bottom:24px;min-height:190px;display:flex;align-items:center}.hero-banner:before{content:"";position:absolute;width:340px;height:340px;border-radius:50%;right:-70px;top:-170px;background:radial-gradient(circle,var(--violet),transparent 66%);opacity:.55}.hero-banner:after{content:"";position:absolute;right:12%;bottom:-120px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,var(--cyan),transparent 66%);opacity:.22}.hero-copy{position:relative;z-index:2;max-width:670px}.hero-copy .tag{display:inline-flex;gap:7px;align-items:center;padding:7px 10px;border-radius:999px;background:rgba(183,255,42,.12);color:var(--lime);font-size:9px;font-weight:900;letter-spacing:1px}.hero-copy h1{color:#fff;font-size:40px;line-height:1.02;margin:14px 0 10px}.hero-copy p{color:#AAB6CA;max-width:580px;margin:0}.hero-actions{display:flex;gap:10px;margin-top:20px}.hero-stat{position:absolute;right:30px;bottom:26px;z-index:2;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:15px 18px;backdrop-filter:blur(10px)}.hero-stat b{font:700 27px "Space Grotesk";color:var(--lime);display:block}.hero-stat span{font-size:10px;color:#aab7c9}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:#27324a;padding:10px 14px;border-radius:12px;font-weight:800;font-size:12px;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.08)}.btn.primary{background:linear-gradient(135deg,var(--violet),var(--violet-2));color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(124,92,255,.22)}.btn.lime{background:var(--lime);color:#132008;border-color:transparent}.btn.dark{background:var(--ink);color:#fff;border-color:transparent}.btn.ghost{background:transparent}.btn.danger{background:#FFF1F0;color:#B42318;border-color:#FFD8D4}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.linkbtn{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 24px}.card{background:var(--card);border:1px solid #E7ECF3;border-radius:18px;padding:19px;box-shadow:0 5px 20px rgba(15,23,42,.04);position:relative;overflow:hidden}.card:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-27px;top:-28px;background:var(--accent,#7C5CFF);opacity:.08}.card b{display:block;font:700 28px "Space Grotesk";letter-spacing:-.8px}.card span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.card small{color:#98A2B3;font-size:9px}.card:nth-child(2n){--accent:#23D9C5}.card:nth-child(3n){--accent:#B7FF2A}.card:nth-child(4n){--accent:#FF7A59}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 24px}.metric-card{padding:18px;border-radius:18px;background:#fff;border:1px solid #e8edf5;box-shadow:0 5px 22px rgba(15,23,42,.045)}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#F0EDFF;color:var(--violet);font-weight:900}.metric-card b{font:700 27px "Space Grotesk";display:block;margin-top:15px}.metric-card span{font-size:11px;color:var(--muted)}.metric-trend{font-size:9px;font-weight:900;color:var(--green);background:#EAFBF2;padding:5px 7px;border-radius:999px}.metric-trend.neutral{color:#667085;background:#F2F4F7}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.panel{background:#fff;border:1px solid #E7ECF3;border-radius:20px;padding:20px;box-shadow:0 5px 24px rgba(15,23,42,.045)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.panel h2,.panel-head h2,.content>h2{font:700 18px "Space Grotesk";margin:0}.panel-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.bar-row{margin:13px 0}.bar-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:6px}.bar-track{height:8px;background:#EEF2F7;border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--violet),#9b86ff);min-width:3px}.bar-fill.alt{background:linear-gradient(90deg,var(--cyan),var(--lime))}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:9px;color:var(--muted)}.chart-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.table-wrap{background:#fff;border:1px solid #E5EAF2;border-radius:18px;overflow:auto;box-shadow:0 5px 22px rgba(15,23,42,.04);margin:14px 0 24px}table{width:100%;border-collapse:collapse;min-width:720px}thead{background:#F8FAFD}th{font-size:9px;text-transform:uppercase;letter-spacing:1.1px;color:#7D899C;text-align:left;padding:13px 15px}td{padding:14px 15px;border-top:1px solid #EEF1F5;font-size:11px;color:#344054}tbody tr{transition:.15s}tbody tr:hover{background:#FBFCFF}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;background:#F1F3F8;color:#667085}.badge.success{background:#EAFBF2;color:#067647}.badge.warning{background:#FFF8E7;color:#B54708}.badge.danger-badge,.badge.danger{background:#FFF0EE;color:#B42318}.badge.info{background:#EEECFF;color:#5D3EF3}.badge.mint{background:#E9FFFC;color:#08786E}.activity-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:10px;background:#F3F0FF;color:#6049D4;font-size:9px;font-weight:900}.activity-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet)}
.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:16px}.filters-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto auto}.filters input,.filters select,form input,form select,form textarea{border:1px solid #DDE3EC;background:#fff;color:#344054;padding:11px 12px;border-radius:11px;outline:0;transition:.2s}form input:focus,form select:focus,form textarea:focus{border-color:#9A88FF;box-shadow:0 0 0 4px rgba(124,92,255,.08)}form label{display:block;color:#475467;font-size:10px;font-weight:800;margin:12px 0 6px}form textarea{width:100%;min-height:90px}.form-card{background:#fff;border:1px solid #E6EBF2;border-radius:20px;padding:22px;box-shadow:var(--shadow);max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-actions{display:flex;gap:10px;margin-top:20px}.check{display:flex!important;align-items:center;gap:8px!important}.check input{width:auto!important}
.session-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.session-card{background:#fff;border:1px solid #E6EBF2;border-radius:21px;padding:20px;box-shadow:0 7px 24px rgba(15,23,42,.05);position:relative;overflow:hidden;transition:.2s}.session-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,42,.09)}.session-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--violet),var(--cyan),var(--lime))}.session-card .activity{display:inline-flex;padding:6px 9px;border-radius:999px;background:#EEECFF;color:#5D3EF3;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}.session-card h2{font:700 18px "Space Grotesk";margin:14px 0 9px}.session-card p{font-size:10px;color:#667085;margin:7px 0}.session-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.meta-box{background:#F8FAFD;border-radius:11px;padding:10px}.meta-box span{display:block;font-size:8px;text-transform:uppercase;color:#98A2B3;font-weight:900;letter-spacing:.8px}.meta-box b{font-size:11px}.occupancy{margin:13px 0}.occupancy-label{display:flex;justify-content:space-between;font-size:9px;color:#667085;margin-bottom:6px}.occupancy-track{height:7px;background:#EEF2F7;border-radius:999px;overflow:hidden}.occupancy-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--lime));border-radius:999px}
.empty-state{text-align:center;padding:46px 20px;color:#98A2B3}.empty-state .empty-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#F2F4F7;margin:0 auto 12px;font-size:22px}.empty-state strong{display:block;color:#344054;margin-bottom:4px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:26px 0 12px}.section-title h2{font:700 19px "Space Grotesk";margin:0}.section-title p{margin:3px 0 0;font-size:10px;color:var(--muted)}
.member-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;background:linear-gradient(135deg,#101833,#172748);border-radius:26px;color:#fff;padding:28px;margin-bottom:20px;overflow:hidden;position:relative}.member-hero:after{content:"";position:absolute;right:-60px;top:-100px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(183,255,42,.28),transparent 68%)}.member-hero h1{color:#fff;margin:0;font-size:34px}.member-hero p{color:#A7B2C7}.membership-pass{position:relative;z-index:2;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.075);padding:18px;backdrop-filter:blur(8px)}.membership-pass small{display:block;color:#94A3B8;font-size:9px;text-transform:uppercase;letter-spacing:1.4px}.membership-pass b{font:700 20px "Space Grotesk";display:block;margin:7px 0}.membership-pass span{font-size:10px;color:var(--mint)}
.coach-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#191635,#131f3a);border-radius:26px;color:#fff;padding:28px;margin-bottom:20px}.coach-hero h1{color:#fff;margin:0}.coach-pill{padding:10px 13px;border-radius:999px;background:rgba(99,243,232,.1);color:var(--mint);font-size:10px;font-weight:900}
.pagination{display:flex;gap:6px;list-style:none;padding:0}.pagination a,.pagination span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid #e4e9f1;font-size:10px}.pagination .active span{background:var(--violet);color:#fff;border-color:var(--violet)}
@media(max-width:1150px){.cards,.metric-grid{grid-template-columns:repeat(2,1fr)}.session-grid{grid-template-columns:repeat(2,1fr)}.login-stage{grid-template-columns:1fr}.login-visual{display:none}}
@media(max-width:860px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.25s}.app-shell.nav-open .sidebar{transform:translateX(0);box-shadow:20px 0 70px rgba(0,0,0,.35)}.workspace{margin-left:0}.menu-button,.mobile-close{display:block}.topbar{padding:0 18px}.content{padding:24px 18px 50px}.two-col,.member-hero{grid-template-columns:1fr}.filters-grid{grid-template-columns:1fr 1fr}.session-grid{grid-template-columns:1fr}.hero-stat{display:none}.hero-copy h1{font-size:32px}}
@media(max-width:560px){.cards,.metric-grid,.form-grid{grid-template-columns:1fr}.filters-grid{grid-template-columns:1fr}.login-panel{padding:38px 22px}.login-copy h1{font-size:42px}.demo-grid{grid-template-columns:1fr}.pagehead{align-items:flex-start;flex-direction:column}.hero-banner{padding:23px}.topbar-title .eyebrow{display:none}.role-pill{display:none}}
.inline{display:inline}.summary-strip{background:linear-gradient(90deg,#F0EDFF,#EBFFFB);border:1px solid #DCD7FF;border-radius:14px;padding:12px 15px;margin:12px 0 14px;font-size:11px;color:#4d3db4}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.plan{background:#fff;border:1px solid #E5EAF2;border-radius:22px;padding:22px;position:relative;overflow:hidden;box-shadow:0 8px 26px rgba(15,23,42,.05);transition:.2s}.plan:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(15,23,42,.09)}.plan:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--violet),var(--cyan),var(--lime))}.plan h2{font:700 20px "Space Grotesk";margin:4px 0 12px}.price{font:700 34px "Space Grotesk";letter-spacing:-1px}.plan p,.plan small{font-size:10px;color:#667085;line-height:1.6}.plan small{display:block;padding:10px 11px;background:#F8FAFD;border-radius:10px}.action-links{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.action-links a{color:#5D3EF3;font-weight:800}.data-person{display:flex;align-items:center;gap:9px}.data-person .avatar{width:30px;height:30px;border-radius:9px;font-size:10px}.data-person small{display:block;color:#98A2B3}.progress-ring{font-size:10px;font-weight:900;color:#5D3EF3}.membership-status{display:flex;align-items:center;gap:6px}.membership-status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
@media(max-width:1000px){.plan-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.plan-grid{grid-template-columns:1fr}}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-card>input,.form-card>select{width:100%}.form-card .two input,.form-card .two select{width:100%}.form-card>button{margin-top:20px}.form-card h2{font:700 18px "Space Grotesk"}.subtle-note{padding:12px 14px;border-radius:12px;background:#F8FAFD;color:#667085;font-size:10px;border:1px solid #E9EDF3}.danger{color:#B42318!important}@media(max-width:600px){.two{grid-template-columns:1fr}}


/* =========================================================
   PULSEFIT IMMERSIVE VISUAL SYSTEM — USER IMAGE EDITION
   ========================================================= */
:root{--acid:#c8ff36;--aqua:#54f2d2;--purple:#7c5cff;--night:#080d17;--night2:#111827;--paper:#f4f6fa;--card:#fff}
body{background:
radial-gradient(circle at 95% 3%,rgba(124,92,255,.07),transparent 25%),
radial-gradient(circle at 80% 80%,rgba(84,242,210,.05),transparent 26%),var(--paper)}
.ambient-orb{position:fixed;pointer-events:none;filter:blur(90px);opacity:.15;z-index:-1;border-radius:50%}.orb-one{width:420px;height:420px;background:#7c5cff;top:15%;right:-180px}.orb-two{width:380px;height:380px;background:#54f2d2;bottom:-160px;left:20%}
.sidebar{background:#080d17;padding-top:20px}.sidebar-photo{height:132px;border-radius:18px;margin:0 5px 18px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.08)}.sidebar-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.1)}.sidebar-photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 15%,rgba(8,13,23,.95))}.sidebar-photo-copy{position:absolute;left:14px;right:14px;bottom:12px}.sidebar-photo-copy b,.sidebar-photo-copy small{display:block}.sidebar-photo-copy b{font-size:11px}.sidebar-photo-copy small{color:#8b97aa;font-size:8px;margin-top:2px}.live-dot{display:inline-block;width:7px;height:7px;background:var(--acid);border-radius:50%;box-shadow:0 0 0 5px rgba(200,255,54,.09);margin-right:8px}
.topbar{height:86px;background:rgba(244,246,250,.76);box-shadow:0 1px 0 rgba(11,16,32,.04)}.topbar-left{display:flex;align-items:center;gap:12px}.command-search{display:flex;align-items:center;gap:8px;padding:9px 11px;background:rgba(255,255,255,.82);border:1px solid #e4e8ef;border-radius:14px;min-width:300px;box-shadow:0 8px 26px rgba(15,23,42,.05)}.command-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;font-size:12px}.command-search kbd{font:700 9px Manrope;color:#98a2b3;background:#f3f5f8;border:1px solid #e4e8ef;border-radius:6px;padding:4px 6px}
.photo-hero{min-height:365px;border-radius:32px;background-image:var(--hero);background-size:cover;background-position:center;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:38px;color:#fff;box-shadow:0 30px 75px rgba(6,12,24,.18);margin-bottom:28px;isolation:isolate}.photo-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,70%) var(--my,30%),rgba(200,255,54,.16),transparent 28%);z-index:-1;transition:.2s}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,16,.93) 0%,rgba(5,9,16,.68) 43%,rgba(5,9,16,.12) 80%),linear-gradient(0deg,rgba(5,9,16,.45),transparent 55%);z-index:-2}.photo-hero .hero-copy{max-width:740px}.photo-hero h1{font:700 clamp(38px,4.8vw,68px)/.98 "Space Grotesk";letter-spacing:-2.4px;margin:14px 0}.photo-hero p{color:#d3d9e3;font-size:15px;line-height:1.7;max-width:630px}.tag{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(8,13,23,.35);backdrop-filter:blur(12px);font-size:9px;font-weight:900;letter-spacing:1.3px;color:#fff}.tag i{width:7px;height:7px;background:var(--acid);border-radius:50%;box-shadow:0 0 0 5px rgba(200,255,54,.09)}.btn.glass{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important;backdrop-filter:blur(10px)}.hero-float{position:absolute;right:34px;bottom:30px;padding:18px 20px;border-radius:20px;background:rgba(8,13,23,.58);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(18px);min-width:220px}.hero-float small,.hero-float span{display:block;color:#aab4c3}.hero-float b{font:700 38px "Space Grotesk";color:var(--acid)}.membership-pass{position:absolute;right:30px;bottom:30px;width:260px;padding:22px;border-radius:22px;background:linear-gradient(145deg,rgba(10,16,29,.86),rgba(29,39,61,.72));border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px)}.membership-pass small,.membership-pass span,.membership-pass strong{display:block}.membership-pass b{font:700 23px "Space Grotesk";margin:5px 0}.membership-pass span{color:var(--acid);font-size:11px;font-weight:900;text-transform:uppercase}.membership-pass small{color:#9eabbc;margin-top:14px}.membership-pass strong{margin-top:3px}
.metric-card{position:relative;overflow:hidden}.metric-card:hover{transform:translateY(-5px) scale(1.008)}.metric-card small{display:block;margin-top:10px;color:#98a2b3;font-size:9px;line-height:1.5}.metric-glow{position:absolute;width:120px;height:120px;right:-50px;top:-60px;background:radial-gradient(circle,rgba(124,92,255,.18),transparent 70%)}
.facility-gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:210px 210px;gap:14px;margin-bottom:28px}.facility-tile{position:relative;border-radius:24px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 16px 45px rgba(15,23,42,.10);cursor:pointer;transition:.35s}.facility-tile.tall{grid-row:1/3}.facility-tile:nth-child(4){grid-column:2/4}.facility-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,9,16,.92),rgba(5,9,16,.05) 68%)}.facility-tile:hover{transform:translateY(-5px)}.facility-tile:hover:before{background:linear-gradient(0deg,rgba(5,9,16,.92),rgba(124,92,255,.08) 68%)}.facility-tile>div{position:absolute;left:20px;bottom:18px;color:#fff}.facility-tile span{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--acid);font-weight:900}.facility-tile h3{font:700 22px "Space Grotesk";margin:4px 0}.facility-tile small{color:#aeb8c7}
.dark-panel{background:#0d1422;color:#fff;border-color:#18243a}.dark-panel p,.dark-panel .bar-label span{color:#98a5b8}.dark-panel .bar-track{background:#1c2940}
.discover-banner{min-height:250px;border-radius:30px;background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end;justify-content:space-between;padding:30px;color:#fff;overflow:hidden;margin-bottom:20px}.discover-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,16,.92),rgba(5,9,16,.22)),linear-gradient(0deg,rgba(5,9,16,.5),transparent)}.discover-banner>div,.discover-banner>.badge{position:relative}.discover-banner h1{font:700 46px "Space Grotesk";letter-spacing:-1.5px;margin:6px 0}.discover-banner p{color:#d3d9e3}
.premium-filter{position:sticky;top:100px;z-index:12;backdrop-filter:blur(15px);background:rgba(255,255,255,.86);box-shadow:0 12px 34px rgba(15,23,42,.07)}
.visual-session{padding:0!important;overflow:hidden}.session-photo{height:190px;background-size:cover;background-position:center;position:relative}.session-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,9,16,.75),transparent 70%)}.session-photo .activity{position:absolute;left:14px;top:14px;background:rgba(8,13,23,.62);color:#fff;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px)}.session-photo-time{position:absolute;right:14px;bottom:12px;color:#fff;font:700 28px "Space Grotesk"}.session-body{padding:20px}.visual-session:hover .session-photo{background-size:108%}.session-photo{transition:background-size .4s}
.coach-photo-hero{min-height:330px}.coach-pill{position:absolute;right:32px;bottom:30px;padding:12px 16px;border-radius:999px;background:var(--acid);color:#182008;font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:1px}
.analytics-hero{min-height:290px;border-radius:30px;background-size:cover;background-position:center;position:relative;overflow:hidden;color:#fff;padding:34px;display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.analytics-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,16,.9),rgba(5,9,16,.25))}.analytics-hero>div{position:relative}.analytics-hero h1{font:700 50px "Space Grotesk";letter-spacing:-1.8px;margin:7px 0}.analytics-hero p{color:#d5dce5}
.analytics-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.login-stage{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#080d17;position:relative;overflow:hidden}.login-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.04);transition:opacity 1s ease,transform 7s ease}.login-bg.is-active{opacity:1;transform:scale(1.0)}.login-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,16,.95) 0%,rgba(5,9,16,.74) 46%,rgba(5,9,16,.42) 65%,rgba(5,9,16,.58) 100%),linear-gradient(0deg,rgba(5,9,16,.6),transparent 50%)}.login-story{position:relative;z-index:2;padding:48px clamp(36px,6vw,95px);display:flex;flex-direction:column;justify-content:space-between}.login-story-copy{max-width:720px}.login-story h1{font:700 clamp(52px,7vw,92px)/.9 "Space Grotesk";letter-spacing:-4px;color:#fff;margin:18px 0}.login-story h1 span{color:var(--acid)}.login-story p{font-size:16px;line-height:1.7;color:#c7d0dc;max-width:620px}.login-proof{display:flex;gap:34px;margin-top:32px}.login-proof div{border-left:1px solid rgba(255,255,255,.16);padding-left:14px}.login-proof b{display:block;color:#fff;font:700 28px "Space Grotesk"}.login-proof span{color:#9aa8ba;font-size:9px;text-transform:uppercase;letter-spacing:1.3px}.carousel-dots{display:flex;gap:8px}.carousel-dots button{width:26px;height:4px;border:0;border-radius:99px;background:rgba(255,255,255,.22);cursor:pointer;padding:0}.carousel-dots button.active{width:52px;background:var(--acid)}.login-card-wrap{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;padding:50px}.login-card{width:min(480px,100%);padding:34px;border-radius:30px;background:rgba(10,16,29,.84);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(28px);box-shadow:0 35px 90px rgba(0,0,0,.35)}.login-card-head h2{font:700 36px "Space Grotesk";color:#fff;margin:9px 0}.login-card-head p{color:#94a3b8;margin-bottom:25px}.login-card .input-wrap{display:flex;align-items:center}.login-card .input-wrap>span{position:absolute;left:15px;color:var(--aqua);z-index:1}.login-card input[type=email],.login-card input[type=password]{padding-left:42px}.demo-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px}.demo-title span{color:#75849b}.demo-tag{border:1px solid #25324a;cursor:pointer;text-align:left;color:#fff}.demo-tag span{display:block;color:#8795aa;font-size:8px;margin-top:3px}
.search-hidden{display:none!important}
@media(max-width:1200px){.analytics-metrics{grid-template-columns:repeat(3,1fr)}.command-search{min-width:220px}.facility-gallery{grid-template-columns:1fr 1fr}.facility-tile.tall{grid-row:auto}.facility-tile:nth-child(4){grid-column:auto}}
@media(max-width:900px){.login-stage{grid-template-columns:1fr}.login-story{min-height:52vh;padding-bottom:24px}.login-card-wrap{padding:25px}.login-story-copy h1{font-size:58px}.command-search{display:none}.photo-hero{min-height:430px}.hero-float,.membership-pass{position:relative;right:auto;bottom:auto;margin-left:auto;margin-top:24px}.facility-gallery{grid-template-columns:1fr;grid-template-rows:none}.facility-tile{height:240px}.facility-tile:nth-child(4){grid-column:auto}.analytics-hero{display:block}.analytics-hero .hero-actions{margin-top:20px}}
@media(max-width:620px){.login-story{padding:28px 24px}.login-proof{gap:15px}.login-card-wrap{padding:14px}.login-card{padding:24px;border-radius:24px}.login-story h1{font-size:46px;letter-spacing:-2px}.photo-hero{padding:24px;min-height:460px}.photo-hero h1{font-size:42px}.hero-float,.membership-pass{width:100%}.facility-gallery{gap:10px}.facility-tile{height:210px}.discover-banner{min-height:300px;padding:22px}.discover-banner h1{font-size:38px}.analytics-metrics{grid-template-columns:1fr 1fr}.premium-filter{position:static}}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}.reveal.revealed{opacity:1;transform:none}


/* =========================================================
   PULSEFIT READABILITY + MOBILE NAVIGATION PATCH
   ========================================================= */

/* Comfortable default reading size */
html { font-size: 16px; }
body {
    font-size: 15px;
    line-height: 1.55;
    color: #182033;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Sidebar readability */
.sidebar { width: 284px; padding-left: 18px; padding-right: 18px; overflow-y: auto; }
.app-shell { grid-template-columns: 284px 1fr; }
.workspace { grid-column: 2; }

.brand-lockup img { width: 48px; height: 48px; }
.brand-lockup strong,
.brand-lockup em { font-size: 21px; }
.brand-lockup small {
    font-size: 10px;
    letter-spacing: 2.2px;
    color: #8fa0bb;
    margin-top: 8px;
}

.sidebar-photo { height: 150px; margin-bottom: 20px; }
.sidebar-photo-copy b { font-size: 14px; line-height: 1.25; }
.sidebar-photo-copy small { font-size: 11px; line-height: 1.35; margin-top: 4px; color: #9dacbf; }

.nav-label {
    font-size: 10.5px;
    color: #8390a7;
    letter-spacing: 1.55px;
    margin: 20px 12px 8px;
}
.nav-item {
    min-height: 50px;
    gap: 13px;
    padding: 11px 13px;
    font-size: 14px;
    line-height: 1.25;
    color: #c4ccda;
}
.nav-icon {
    width: 32px;
    height: 32px;
    min-width: 32px;
    font-size: 15px;
}
.profile-copy strong { font-size: 12.5px; }
.profile-copy small { font-size: 11px; color: #91a0b7; }
.logout-icon { width: 34px; height: 34px; font-size: 16px; }

/* Top bar */
.topbar { height: 88px; }
.topbar-title .eyebrow { font-size: 10px; color: #6f7c92; }
.topbar-title strong { font-size: 19px; color: #111827; }
.role-pill { font-size: 11px; padding: 9px 12px; }
.command-search input { font-size: 13px; }

/* Page typography */
.page-kicker { font-size: 11px; }
.pagehead h1,
.content > h1 { font-size: clamp(32px, 3vw, 46px); }
.pagehead p,
.section-title p,
.panel-head p,
.muted { font-size: 13.5px; color: #667085; }

.metric-card > b {
    font-size: clamp(28px, 2.2vw, 38px);
    line-height: 1.05;
}
.metric-card > span { font-size: 13.5px; }
.metric-card small { font-size: 11.5px; line-height: 1.45; }
.metric-trend { font-size: 10px; }

.panel h2,
.section-title h2 { font-size: 24px; }
.bar-label { font-size: 13px; }
.badge { font-size: 11px; }

/* Forms */
input, select, textarea, button { font: inherit; }
input, select, textarea {
    min-height: 46px;
    font-size: 14px !important;
    color: #172033;
}
label { font-size: 13px; font-weight: 750; color: #2c3547; }
.btn {
    min-height: 43px;
    padding: 10px 15px;
    font-size: 13px;
    font-weight: 800;
}

/* Data tables need to be easy to scan */
.table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 20px;
}
table { min-width: 820px; }
th {
    font-size: 11px;
    letter-spacing: .65px;
    white-space: nowrap;
    color: #68758b;
}
td {
    font-size: 13.5px;
    line-height: 1.4;
    color: #273246;
}
.data-person b { font-size: 13.5px; }
.data-person small { font-size: 11.5px; color: #778399; }
.action-links a,
.linkbtn { font-size: 12.5px; }

/* Mobile navigation scrim */
.nav-scrim {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 39;
    padding: 0;
    border: 0;
    background: rgba(4, 8, 16, .62);
    backdrop-filter: blur(3px);
}

/* Prevent page moving while drawer is open */
body.nav-open { overflow: hidden; }

/* Correct selector: JS toggles nav-open on BODY, not .app-shell */
@media (max-width: 860px) {
    .app-shell { display: block; }
    .workspace { margin-left: 0; width: 100%; }

    .sidebar {
        display: flex !important;
        width: min(88vw, 330px);
        max-width: 330px;
        transform: translateX(-105%);
        transition: transform .26s cubic-bezier(.22,.61,.36,1);
        z-index: 40;
        box-shadow: none;
        padding-top: 18px;
    }
    body.nav-open .sidebar {
        transform: translateX(0);
        box-shadow: 24px 0 75px rgba(0,0,0,.42);
    }
    body.nav-open .nav-scrim { display: block; }

    .mobile-close {
        display: grid;
        place-items: center;
        width: 38px;
        height: 38px;
        border-radius: 11px;
        background: rgba(255,255,255,.08);
        font-size: 25px;
        cursor: pointer;
    }

    .menu-button {
        display: grid;
        place-items: center;
        width: 43px;
        height: 43px;
        font-size: 20px;
        cursor: pointer;
        color: #111827;
        box-shadow: 0 5px 18px rgba(15,23,42,.08);
    }

    .topbar {
        height: 76px;
        padding: 0 14px;
    }
    .topbar-title .eyebrow { display: none; }
    .topbar-title strong { font-size: 16px; }
    .topbar-actions .role-pill { display: none; }

    .content {
        padding: 18px 14px 46px;
        width: 100%;
        overflow: hidden;
    }

    .pagehead {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
        margin-bottom: 18px;
    }
    .pagehead .btn { width: 100%; }

    .filters,
    .filters-grid,
    .premium-filter {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px;
        width: 100%;
    }
    .filters .btn,
    .filters a.btn { width: 100%; }

    .metric-grid,
    .analytics-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px;
    }
    .metric-card { padding: 16px; border-radius: 17px; }
    .metric-card > b { font-size: 27px; }

    .two-col { grid-template-columns: 1fr !important; }
    .panel { padding: 18px; border-radius: 20px; }

    /* Tables remain usable with a visible horizontal scroll area */
    .table-wrap {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        overflow-x: auto !important;
        border-radius: 16px;
    }
    .table-wrap::after {
        content: "Swipe sideways to see all columns →";
        display: block;
        padding: 9px 12px;
        background: #f7f9fc;
        border-top: 1px solid #e7ebf1;
        color: #7b879a;
        font-size: 11px;
        font-weight: 700;
    }
    table { min-width: 760px; }
    th { font-size: 10.5px; padding: 12px; }
    td { font-size: 13px; padding: 12px; }

    .facility-gallery { grid-template-columns: 1fr !important; }
    .facility-tile { min-height: 220px; }
    .facility-tile.tall { grid-row: auto; }
    .facility-tile:nth-child(4) { grid-column: auto; }

    .photo-hero {
        min-height: 460px;
        padding: 24px 20px;
        border-radius: 24px;
        align-items: flex-end;
    }
    .photo-hero h1 { font-size: clamp(38px, 11vw, 52px); letter-spacing: -1.8px; }
    .photo-hero p { font-size: 14px; }
    .hero-actions { flex-wrap: wrap; }
    .hero-actions .btn { flex: 1 1 160px; }

    .hero-float,
    .membership-pass {
        position: relative !important;
        right: auto !important;
        bottom: auto !important;
        width: 100% !important;
        margin-top: 20px;
    }

    .discover-banner,
    .analytics-hero {
        min-height: 310px;
        padding: 22px 18px;
        border-radius: 24px;
    }
    .discover-banner h1,
    .analytics-hero h1 { font-size: 38px; }

    .session-grid { grid-template-columns: 1fr !important; }
    .session-photo { height: 210px; }
    .session-meta { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
    body { font-size: 15px; }
    .metric-grid,
    .analytics-metrics { grid-template-columns: 1fr 1fr !important; }
    .metric-card > b { font-size: 25px; }
    .metric-card > span { font-size: 12.5px; }
    .sidebar-photo { height: 132px; }
    .nav-item { font-size: 14.5px; min-height: 52px; }
    .nav-label { font-size: 10.5px; }
    .top-avatar { width: 36px; height: 36px; }
    .session-meta { grid-template-columns: 1fr; }
}

/* Desktop sidebar/list should no longer feel miniature */
@media (min-width: 861px) {
    .nav-list { gap: 6px; }
    .sidebar-footer { padding-bottom: 4px; }
}


/* =========================================================
   PULSEFIT FINAL STABILITY / RESPONSIVE / READABILITY PATCH
   ========================================================= */

/* The whole application must never create page-level horizontal overflow. */
html, body { width:100%; max-width:100%; overflow-x:hidden; }
*, *::before, *::after { box-sizing:border-box; }
img, svg { max-width:100%; }
.app-shell, .workspace, .content, .pagehead, .panel, .two-col, .metric-grid,
.report-list-grid, .table-wrap, .filters, .filters-grid, .session-grid {
    min-width:0;
    max-width:100%;
}
.workspace { width:100%; }
.content {
    width:100%;
    max-width:1540px;
    padding-left:clamp(18px,2.2vw,36px);
    padding-right:clamp(18px,2.2vw,36px);
}
.two-col > *, .metric-grid > *, .report-list-grid > * { min-width:0; }

/* Readable metric cards without accidental overflow. */
.metric-card { min-width:0; }
.metric-card > b {
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
    font-size:clamp(27px,2.15vw,36px);
}
.metric-icon {
    font-family:"Space Grotesk", Manrope, sans-serif;
    font-size:14px;
    font-weight:800;
    color:#5d4dde;
}
.member-metric-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.member-metric-grid .metric-card > b {
    font-size:clamp(25px,2vw,34px);
}

/* Default Laravel pagination is replaced entirely, so no giant SVG arrows. */
.pf-pagination {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:14px 2px 4px;
    margin:8px 0 24px;
}
.pf-pagination-summary {
    font-size:12.5px;
    color:#68758a;
}
.pf-pagination-controls {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
}
.pf-page {
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border:1px solid #dde4ee;
    border-radius:11px;
    background:#fff;
    color:#303b50;
    font-size:12px;
    font-weight:800;
    box-shadow:0 3px 12px rgba(15,23,42,.035);
}
.pf-page:hover { border-color:#b9acef; color:#5c43da; }
.pf-page.number { min-width:38px; padding:8px; }
.pf-page.active {
    background:linear-gradient(135deg,#7658f5,#5c43da);
    color:#fff;
    border-color:transparent;
}
.pf-page.disabled { opacity:.42; cursor:not-allowed; box-shadow:none; }
.pf-ellipsis { padding:0 3px; color:#98a2b3; }

/* Report lists: no nested wide tables, no clipping. */
.report-list-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-bottom:24px;
}
.report-list-panel { overflow:hidden; }
.stack-list { display:flex; flex-direction:column; gap:0; }
.stack-row {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:13px;
    padding:14px 0;
    border-top:1px solid #edf0f5;
}
.stack-row:first-child { border-top:0; }
.stack-avatar {
    width:40px; height:40px; border-radius:13px;
    display:grid; place-items:center;
    background:linear-gradient(135deg,#eeeaff,#e7fffa);
    color:#5b46d5; font-weight:900;
}
.stack-avatar.money { color:#08786e; }
.stack-main, .stack-meta { min-width:0; }
.stack-main strong, .stack-main span, .stack-meta strong, .stack-meta small { display:block; }
.stack-main strong { font-size:13.5px; color:#202b3f; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stack-main span { font-size:11.5px; color:#778399; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stack-meta { text-align:right; }
.stack-meta small { font-size:9.5px; color:#8d98aa; text-transform:uppercase; letter-spacing:.8px; }
.stack-meta strong { margin-top:3px; font-size:12.5px; color:#273246; }

/* Mobile-native list cards. */
.mobile-data-list { display:none; }
.mobile-data-card {
    background:#fff;
    border:1px solid #e4e9f1;
    border-radius:19px;
    padding:16px;
    box-shadow:0 8px 24px rgba(15,23,42,.055);
}
.mobile-card-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:14px;
    border-bottom:1px solid #edf0f5;
}
.mobile-card-head h3 {
    font:700 18px "Space Grotesk";
    color:#182236;
    margin:8px 0 0;
}
.mobile-card-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
    padding:15px 0;
}
.mobile-card-grid > div { min-width:0; }
.mobile-card-grid > div.wide { grid-column:1/-1; }
.mobile-card-grid small {
    display:block;
    font-size:9.5px;
    font-weight:850;
    letter-spacing:.75px;
    color:#8a96a8;
    text-transform:uppercase;
    margin-bottom:4px;
}
.mobile-card-grid strong {
    display:block;
    font-size:13px;
    color:#263249;
    overflow-wrap:anywhere;
}
.mobile-card-actions {
    display:flex;
    gap:9px;
    flex-wrap:wrap;
}
.mobile-card-actions > *, .mobile-card-actions form { flex:1 1 120px; }
.mobile-card-actions .btn { width:100%; }

/* Desktop table containment. */
.desktop-data-table { width:100%; overflow:auto; }
.desktop-data-table table { min-width:760px; max-width:none; }

/* On large desktops the dashboard still breathes, but never exceeds the viewport. */
@media (min-width:1200px) {
    .analytics-metrics { grid-template-columns:repeat(6,minmax(0,1fr)); }
}

/* Tablet: progressively simplify instead of allowing components to fight for width. */
@media (max-width:1100px) {
    .metric-grid, .analytics-metrics { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .member-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
    .report-list-grid { grid-template-columns:1fr; }
    .command-search { min-width:190px; width:min(290px,34vw); }
}

/* Proper mobile application layout. */
@media (max-width:860px) {
    html, body { overflow-x:hidden !important; }
    .app-shell { display:block !important; width:100% !important; }
    .workspace {
        display:block !important;
        width:100% !important;
        max-width:100vw !important;
        margin:0 !important;
        padding:0 !important;
    }
    .content {
        width:100% !important;
        max-width:100vw !important;
        padding:18px 14px 42px !important;
        overflow:visible !important;
    }

    /* Real drawer. */
    .sidebar {
        position:fixed !important;
        top:0; left:0; bottom:0;
        display:flex !important;
        width:min(86vw,320px) !important;
        max-width:320px !important;
        transform:translate3d(-105%,0,0) !important;
        transition:transform .24s ease !important;
        z-index:1000 !important;
        overflow-y:auto !important;
        overscroll-behavior:contain;
    }
    body.nav-open .sidebar { transform:translate3d(0,0,0) !important; }
    .nav-scrim { z-index:999 !important; }
    body.nav-open .nav-scrim { display:block !important; }

    .topbar {
        position:sticky;
        top:0;
        width:100%;
        height:72px;
        padding:0 13px !important;
        gap:10px;
    }
    .topbar-left { min-width:0; flex:1; }
    .topbar-title { min-width:0; }
    .topbar-title strong {
        font-size:15.5px;
        max-width:58vw;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .topbar-actions { gap:7px; }
    .command-search, .role-pill { display:none !important; }
    .menu-button {
        display:grid !important;
        flex:0 0 42px;
        width:42px; height:42px;
        padding:0 !important;
    }

    .photo-hero {
        width:100%;
        min-height:420px !important;
        border-radius:22px !important;
        padding:22px 18px !important;
        display:flex !important;
        flex-direction:column;
        align-items:flex-start !important;
        justify-content:flex-end;
    }
    .photo-hero .hero-copy { width:100%; }
    .photo-hero h1 {
        font-size:clamp(36px,10.5vw,48px) !important;
        line-height:.98 !important;
    }
    .hero-actions { width:100%; }
    .hero-actions .btn { flex:1 1 140px; }

    .hero-float, .membership-pass {
        width:100% !important;
        max-width:none !important;
        position:relative !important;
        right:auto !important;
        bottom:auto !important;
        margin:20px 0 0 !important;
    }

    .metric-grid, .analytics-metrics, .member-metric-grid {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        width:100%;
        gap:10px;
    }
    .metric-card { padding:15px; }
    .metric-card > b { font-size:26px !important; }
    .metric-card > span { font-size:12.5px; }

    .two-col, .report-list-grid { grid-template-columns:1fr !important; width:100%; }
    .panel { width:100%; overflow:hidden; }

    /* On phones, data becomes cards. No wide table inside the viewport. */
    .desktop-data-table { display:none !important; }
    .mobile-data-list {
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
        width:100%;
        margin:14px 0 8px;
    }

    /* Any remaining tables that are not CRUD list pages are contained. */
    .table-wrap:not(.desktop-data-table) {
        display:block;
        width:100%;
        max-width:100%;
        overflow-x:auto !important;
        -webkit-overflow-scrolling:touch;
    }
    .table-wrap:not(.desktop-data-table) table {
        min-width:680px;
    }

    .filters, .filters-grid, .premium-filter {
        grid-template-columns:1fr !important;
        width:100%;
    }
    .filters > *, .filters-grid > * { width:100%; min-width:0; }

    .pf-pagination {
        flex-direction:column;
        align-items:stretch;
        gap:10px;
    }
    .pf-pagination-summary { text-align:center; }
    .pf-pagination-controls { justify-content:center; }
    .pf-page { min-height:40px; }

    .analytics-hero, .discover-banner {
        width:100%;
        min-height:290px !important;
        padding:22px 18px !important;
    }
    .analytics-hero h1, .discover-banner h1 {
        font-size:clamp(34px,9vw,43px) !important;
    }
}

/* Narrow phones: one metric per row where necessary to preserve legibility. */
@media (max-width:430px) {
    .metric-grid, .analytics-metrics, .member-metric-grid {
        grid-template-columns:1fr !important;
    }
    .metric-card {
        display:grid;
        grid-template-columns:auto 1fr;
        grid-template-areas:
            "top top"
            "value label"
            "small small";
        column-gap:12px;
        align-items:end;
    }
    .metric-card .metric-top { grid-area:top; }
    .metric-card > b { grid-area:value; margin-top:13px; }
    .metric-card > span { grid-area:label; align-self:end; padding-bottom:2px; }
    .metric-card > small { grid-area:small; }
    .mobile-card-grid { grid-template-columns:1fr; }
    .mobile-card-grid > div.wide { grid-column:auto; }
    .mobile-card-actions { flex-direction:column; }
    .pf-pagination-controls .number,
    .pf-ellipsis { display:none; }
}
