@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap";:root{font-family:Inter,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#e8eaed;background-color:#09090c;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 50% at -10% -10%,rgba(41,208,111,.09),transparent),radial-gradient(ellipse 60% 60% at 110% 80%,rgba(41,208,111,.04),transparent),#09090c}:root[data-theme=light]{color:#111318;background-color:#f4f6f8}:root[data-theme=light] body{background:linear-gradient(135deg,#f0f5f1,#f4f6f8)}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;letter-spacing:-.02em}button{font-family:inherit}#root{min-height:100vh}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000001a}.app{display:grid;grid-template-columns:272px 1fr;min-height:100vh;gap:0}.sidebar{background:#0a0b0ff7;border-right:1px solid rgba(255,255,255,.06);padding:26px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;overflow-y:auto}.sidebar-footer{margin-top:auto;display:flex}.settings-button{width:100%;justify-content:center}.brand{display:flex;align-items:center;gap:13px;padding:2px 6px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:linear-gradient(145deg,#1a2518,#0f1a0f);color:#29d06f;font-weight:700;font-size:13px;letter-spacing:.04em;box-shadow:0 0 0 1px #29d06f33,0 4px 12px #0006}.brand-title{font-size:1.05rem;font-weight:700;margin:0;color:#eef0f2;font-family:Fraunces,serif;letter-spacing:-.02em}.brand-gym{color:#eef0f2}.brand-nexus{color:#29d06f}.brand-subtitle{margin:2px 0 0;color:#e8eaed73;font-size:.78rem;letter-spacing:.01em}.nav{display:flex;flex-direction:column;gap:3px}.nav-link{position:relative;text-align:left;background:transparent;border:1px solid transparent;padding:9px 13px;border-radius:10px;font-weight:500;font-size:.88rem;color:#e8eaed8c;cursor:pointer;transition:color .18s ease,background .18s ease;letter-spacing:.01em}.nav-link:hover{background:#ffffff0d;color:#e8eaede6}.nav-link.active{background:#29d06f1a;border-color:#29d06f26;color:#29d06f;font-weight:600}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;background:#29d06f;border-radius:0 3px 3px 0}.sidebar-card{margin-top:auto;padding:16px 18px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);color:#e8eaed;display:grid;gap:8px}.sidebar-card h4{margin:0;font-size:1rem}.main{padding:36px 44px 64px;display:flex;flex-direction:column;gap:22px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.topbar h1{margin:4px 0 0;font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:-.03em;line-height:1.15;color:#f0f2f4}.topbar-actions{display:flex;gap:10px;align-items:center}.content{display:flex;flex-direction:column;gap:20px;animation:fadeUp .38s ease}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stats-grid.compact{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{padding:18px 20px;border-radius:14px;background:#101218e6;border:1px solid rgba(255,255,255,.07);box-shadow:0 1px 3px #0000004d,0 8px 24px #0003;transition:border-color .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,#29d06f,transparent);opacity:.5}.stat-card:hover{border-color:#29d06f26;box-shadow:0 1px 3px #0000004d,0 12px 32px #00000040}.stat-card h2{margin:8px 0 4px;font-size:1.85rem;color:#f0f2f4;letter-spacing:-.03em}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.panel{background:#0e1016eb;border-radius:16px;padding:20px 22px;border:1px solid rgba(255,255,255,.07);box-shadow:0 1px 2px #0000004d,0 12px 36px #00000038;display:flex;flex-direction:column;gap:14px}.panel.compact-panel{padding:14px 16px;gap:10px}.panel.wide{width:100%}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.chip{background:#ffffff12;color:#e8eaed99;padding:4px 10px;border-radius:999px;font-size:.73rem;font-weight:600;letter-spacing:.02em}.list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.list-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.04);transition:background .15s ease,border-color .15s ease}.list-row:hover{background:#ffffff0e;border-color:#ffffff14}.list-title{font-weight:600;margin:0;color:#f0f2f4;font-size:.9rem}.time{font-weight:500;color:#e8eaed80;font-size:.82rem;font-variant-numeric:tabular-nums}.bars{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:140px 1fr 60px;align-items:center;gap:12px}.bar{height:7px;border-radius:999px;background:#ffffff14;position:relative;overflow:hidden}.bar span{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#29d06f,#1aaa58);border-radius:inherit;transition:width .4s ease}.table{display:grid;gap:6px}.table-row{display:grid;grid-template-columns:1.4fr .8fr .8fr .8fr;align-items:center;padding:10px 13px;border-radius:10px;background:#ffffff08;font-size:.88rem;border:1px solid rgba(255,255,255,.04);transition:background .15s ease,border-color .15s ease}.table-row:not(.table-head):hover{background:#ffffff0e;border-color:#ffffff14}.table-head{background:transparent;border-color:transparent;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:#e8eaed66;font-weight:600}.pill{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em}.members-row .pill{display:inline-block;padding:2px 6px;font-size:.71rem;max-width:70px;text-align:center;line-height:1.1;white-space:normal;word-break:break-word}.pill.inline{margin-left:8px}.pill.active{background:#29d06f2e;color:#5de38f;border:1px solid rgba(41,208,111,.2)}.pill.past-due{background:#ef943c2e;color:#f3b36c;border:1px solid rgba(239,148,60,.2)}.pill.canceled{background:#e8525229;color:#ff9a9a;border:1px solid rgba(232,82,82,.2)}.pill.paused{background:#aaaaaa24;color:#d2d2d2;border:1px solid rgba(170,170,170,.15)}.pill.unknown{background:#ffffff14;color:#c0c4ca;border:1px solid rgba(255,255,255,.1)}.placeholder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.placeholder-card{padding:18px;border-radius:14px;border:1px dashed rgba(255,255,255,.15);background:#10121899}.trend-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;min-height:180px}.chart-tabs{display:flex;flex-wrap:wrap;gap:6px}.chart-tab{border-radius:999px;padding:5px 13px;font-size:.75rem;font-weight:500;border:1px solid rgba(232,234,237,.15);background:transparent;color:#e8eaed8c;cursor:pointer;transition:all .15s ease}.chart-tab:hover{border-color:#e8eaed4d;color:#e8eaedcc}.chart-tab.active{border-color:#29d06f80;background:#29d06f1f;color:#29d06f;font-weight:600}.chart-legend{display:flex;gap:14px;align-items:center;font-size:.75rem;color:#e8eaed99}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:999px;background:#29d06f}.legend-dot.canceled{background:#ff8a65}.metric-chart{display:grid;grid-auto-flow:column;gap:12px;align-items:end;min-height:180px;overflow-x:auto;padding-bottom:4px}.metric-column{display:grid;gap:6px;justify-items:center;min-width:44px}.metric-bars{display:flex;gap:6px;align-items:flex-end;height:120px}.metric-bars.dual{gap:4px}.metric-bar{width:12px;border-radius:6px 6px 4px 4px;background:#29d06f;transition:opacity .15s ease}.metric-bar:hover{opacity:.8}.metric-bar.purchased{background:#29d06f}.metric-bar.canceled{background:#ff8a65}.metric-value{font-weight:600;font-size:.78rem;font-variant-numeric:tabular-nums}.metric-value.dual{display:flex;gap:4px;align-items:center}.metric-value.purchased{color:#7fe0a4}.metric-value.canceled{color:#ffb199}.metric-divider{color:#e8eaed66}.metric-label{font-size:.64rem;color:#e8eaed80;text-align:center;line-height:1.1}.trend-bar-item{display:grid;gap:6px;justify-items:center}.trend-bar{height:120px;width:100%;border-radius:10px;background:#ffffff0f;position:relative;overflow:hidden;display:flex;align-items:end}.trend-bar span{display:block;width:100%;background:linear-gradient(180deg,#29d06f,#1aaa58);border-radius:10px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;font-weight:700;color:#e8eaed66;margin:0}.muted{color:#e8eaed80;margin:0;font-size:.88rem}.primary,.ghost{border-radius:10px;padding:9px 18px;font-weight:600;font-size:.88rem;border:1px solid transparent;cursor:pointer;transition:all .18s ease;display:inline-flex;align-items:center;gap:6px}.primary{background:linear-gradient(135deg,#2ed872,#22b85e);color:#071410;box-shadow:0 2px 8px #29d06f40,0 0 #29d06f00}.primary:hover{box-shadow:0 4px 16px #29d06f59,0 0 #29d06f00;transform:translateY(-1px)}.primary:active{transform:translateY(0)}.ghost{background:transparent;border-color:#e8eaed2e;color:#e8eaedbf}.ghost:hover{background:#ffffff0f;border-color:#e8eaed4d;color:#e8eaed;transform:translateY(-1px)}.ghost:active{transform:translateY(0)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);background:#0e1016f5;border-radius:18px;padding:30px;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 4px #0006,0 24px 64px #00000080;display:grid;gap:18px}.auth-card.loading{text-align:center}.auth-header h2{margin:8px 0}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px;font-weight:500;font-size:.88rem;color:#e8eaedb3}.auth-form input{border-radius:10px;border:1px solid rgba(232,234,237,.14);padding:11px 13px;font-size:.95rem;background:#080a0ecc;color:#e8eaed;transition:border-color .15s ease,box-shadow .15s ease}.auth-form input:focus{outline:none;border-color:#29d06f80;box-shadow:0 0 0 3px #29d06f14}.auth-message{margin:0;color:#ff9b70e6;font-weight:500;font-size:.88rem}.auth-switch{justify-self:center}.data-error{color:#ff9b70e6;font-weight:500}.member-form{display:grid;gap:12px}.member-form label{display:grid;gap:6px;font-weight:500;font-size:.88rem;color:#e8eaedb3}.member-form input,.member-form select,.member-search{border-radius:10px;border:1px solid rgba(232,234,237,.14);padding:10px 12px;font-size:.92rem;background:#080a0ecc;color:#e8eaed;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.member-form input:focus,.member-form select:focus,.member-search:focus{outline:none;border-color:#29d06f73;box-shadow:0 0 0 3px #29d06f12}.member-form.grid-two{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px 18px;align-items:start}.member-form.grid-two button,.member-form.grid-two .ghost{justify-self:start}@media(max-width:960px){.member-form.grid-two{grid-template-columns:1fr}}.member-search{width:100%}.members-head,.members-row{grid-template-columns:1.2fr 1fr .8fr .8fr .8fr .8fr .9fr .7fr .9fr 1.2fr .9fr;align-items:start}.checkins-head,.checkins-row{grid-template-columns:1.6fr .8fr 1fr .9fr;column-gap:14px}.members-row>span,.members-row .list-title,.members-row .contract-field{min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.plans-head,.plans-row{grid-template-columns:1.2fr .8fr .8fr .9fr .8fr .8fr 1fr}.staff-head,.staff-row{grid-template-columns:1.2fr 1.6fr 1.1fr .8fr 1.4fr;column-gap:14px;align-items:start}.staff-row>span{min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.audit-head,.audit-row{grid-template-columns:1.1fr 1fr 1fr 1fr}.audit-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.audit-controls input{border-radius:10px;border:1px solid rgba(232,234,237,.14);padding:8px 10px;background:#080a0ecc;color:#e8eaed;font-size:.88rem;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.audit-controls input:focus{outline:none;border-color:#29d06f73;box-shadow:0 0 0 3px #29d06f12}.members-row select,.inline-actions select{border-radius:9px;border:1px solid rgba(232,234,237,.14);padding:7px 9px;background:#080a0ecc;color:#e8eaed;font-size:.88rem;font-family:inherit;transition:border-color .15s ease}.members-row select:focus,.inline-actions select:focus{outline:none;border-color:#29d06f73}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row-action{padding:6px 12px;font-size:.82rem;border-radius:8px}.row-action-group{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.row-action.danger{border-color:#ff64644d;color:#ff9a9a}.row-action.danger:hover{background:#ff64641a;border-color:#ff646480}.settings-panel{gap:18px}.settings-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.settings-card{background:#ffffff08;border-radius:14px;padding:16px 18px;border:1px solid rgba(255,255,255,.07);display:grid;gap:8px}.settings-actions{display:flex;justify-content:flex-start}.stacked-line{display:block;line-height:1.1}.auth-link{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.auth-link input{border-radius:9px;border:1px solid rgba(232,234,237,.14);padding:8px 10px;background:#080a0ecc;color:#e8eaed;font-size:.85rem;font-family:inherit}.checkin-summary{display:grid;gap:4px;margin-bottom:12px}.checkin-summary h2{margin:0;font-size:2.2rem;letter-spacing:-.04em}.checkin-timeline{display:grid;grid-auto-flow:column;gap:6px;align-items:end;height:120px}.checkin-bar{width:10px;border-radius:5px 5px 3px 3px;background:linear-gradient(180deg,#29d06f,#1aaa58);transition:height .25s ease,opacity .15s ease}.checkin-bar:hover{opacity:.75}.checkin-bar-wrap{display:grid;gap:4px;align-items:end;justify-items:center;font-size:.64rem;color:#e8eaed8c}.checkin-count{font-weight:600}.checkin-hour{font-variant-numeric:tabular-nums}.checkin-hour,.checkin-count,.checkin-summary h2,.panel-header h3,.topbar h1,.list-title,.stat-card h2{color:#f0f2f4}.checkin-meridiem{margin-left:2px;font-size:.58rem;text-transform:uppercase}.scroll-list{max-height:260px;overflow:hidden}.scroll-list .scroll-body{max-height:160px;overflow-y:auto;padding-right:6px}.search-results{display:grid;gap:6px;padding:4px 0 6px;max-height:160px;overflow-y:auto}.search-result{display:grid;gap:2px;text-align:left;padding:8px 11px;border-radius:10px;border:1px solid rgba(232,234,237,.1);background:#101218d9;cursor:pointer;transition:all .15s ease}.search-result:hover{background:#101218f2;border-color:#e8eaed33}.search-result.active{border-color:#e8eaed4d;box-shadow:0 4px 14px #0000004d}:root[data-theme=light] .sidebar{background:#fffffff7;border-right:1px solid rgba(0,0,0,.07)}:root[data-theme=light] .brand-mark{background:linear-gradient(145deg,#1a2518,#0f1a0f)}:root[data-theme=light] .brand-title,:root[data-theme=light] .brand-gym,:root[data-theme=light] .checkin-hour,:root[data-theme=light] .checkin-count,:root[data-theme=light] .checkin-summary h2,:root[data-theme=light] .panel-header h3,:root[data-theme=light] .topbar h1,:root[data-theme=light] .list-title,:root[data-theme=light] .stat-card h2{color:#111318}:root[data-theme=light] .brand-subtitle{color:#11131873}:root[data-theme=light] .nav-link{color:#1113188c}:root[data-theme=light] .nav-link:hover{background:#0000000a;color:#111318e0}:root[data-theme=light] .nav-link.active{background:#29d06f1a;border-color:#29d06f33;color:#1a8c4a}:root[data-theme=light] .nav-link.active:before{background:#1a8c4a}:root[data-theme=light] .stat-card,:root[data-theme=light] .panel,:root[data-theme=light] .auth-card{background:#fffffff2;border:1px solid rgba(0,0,0,.07);box-shadow:0 1px 3px #0000000f,0 8px 24px #0000000f}:root[data-theme=light] .stat-card:before{opacity:.35}:root[data-theme=light] .chip{background:#00000012;color:#11131899}:root[data-theme=light] .table-row,:root[data-theme=light] .list-row{background:#00000006;border-color:#0000000d}:root[data-theme=light] .table-row:not(.table-head):hover,:root[data-theme=light] .list-row:hover{background:#0000000b;border-color:#00000014}:root[data-theme=light] .table-head,:root[data-theme=light] .eyebrow,:root[data-theme=light] .muted,:root[data-theme=light] .time{color:#11131880}:root[data-theme=light] .member-form input,:root[data-theme=light] .member-form select,:root[data-theme=light] .member-search,:root[data-theme=light] .auth-form input,:root[data-theme=light] .audit-controls input,:root[data-theme=light] .members-row select,:root[data-theme=light] .inline-actions select,:root[data-theme=light] .auth-link input{background:#fff;color:#111318;border:1px solid rgba(0,0,0,.15)}:root[data-theme=light] .ghost{border-color:#0000002e;color:#111318bf}:root[data-theme=light] .ghost:hover{background:#0000000d;border-color:#0000004d;color:#111318}:root[data-theme=light] .placeholder-card,:root[data-theme=light] .settings-card{background:#ffffffbf;border-color:#0000001f}:root[data-theme=light] .bar{background:#00000014}:root[data-theme=light] .trend-bar{background:#00000012}:root[data-theme=light] .search-result{background:#fff;border-color:#0000001a}:root[data-theme=light] .search-result:hover,:root[data-theme=light] .search-result.active{border-color:#0003;box-shadow:0 4px 12px #00000012}:root[data-theme=light] .chart-tab{border-color:#00000026;color:#11131899}:root[data-theme=light] .chart-tab:hover{border-color:#00000047;color:#111318}:root[data-theme=light] .chart-tab.active{border-color:#29d06f80;background:#29d06f1f;color:#1a7a41}:root[data-theme=light] .chart-legend,:root[data-theme=light] .metric-label{color:#1113188c}:root[data-theme=light] .metric-value.purchased{color:#1f7a4d}:root[data-theme=light] .metric-value.canceled{color:#c05434}:root[data-theme=light] .metric-divider{color:#11131866}:root[data-theme=light] .preview-selector select{background:#fff;color:#111318;border-color:#00000026}:root[data-theme=light] .role-pill{border-color:#0000002e;color:#1113188c}:root[data-theme=light] .role-pill:hover{border-color:#00000052;color:#111318}.preview-selector{display:flex;align-items:center;gap:8px}.preview-label{font-size:.78rem;color:#e8eaed80;white-space:nowrap}.preview-selector select{border-radius:9px;border:1px solid rgba(232,234,237,.18);padding:6px 10px;background:#080a0ecc;color:#e8eaed;font-size:.84rem;cursor:pointer;font-family:inherit;transition:border-color .15s ease}.preview-selector select:focus{outline:none;border-color:#29d06f73}.preview-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:11px 18px;border-radius:10px;background:#f6c56c14;border:1px solid rgba(246,197,108,.28);color:#f6c56c;font-size:.88rem}.preview-banner strong{font-weight:700}.preview-banner-dismiss{flex-shrink:0;font-size:.78rem;padding:3px 9px;border-color:#f6c56c59;color:#f6c56c;border-radius:8px}.role-filter-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.role-pill{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid rgba(232,234,237,.14);background:transparent;color:#e8eaed80;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease}.role-pill:hover{border-color:#e8eaed4d;color:#e0e4e8}.role-pill.active{background:#29d06f;border-color:#29d06f;color:#071410}.role-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:999px;background:#ffffff26;font-size:.72rem;font-weight:700;padding:0 4px}.role-pill.active .role-pill-count{background:#0000002e}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:relative}}@media(max-width:680px){.main{padding:24px 18px 44px}.table-row{grid-template-columns:1fr;gap:6px}.bar-row{grid-template-columns:1fr}}
