:root {
  --ink:#171916;
  --ink-2:#252821;
  --paper:#f3f1e9;
  --card:#fbfaf6;
  --white:#ffffff;
  --acid:#c9f36c;
  --acid-2:#b8e856;
  --acid-soft:#eafac9;
  --coral:#ff7557;
  --violet:#a795ff;
  --blue:#8dc7ff;
  --amber:#ffca67;
  --line:#deddd5;
  --muted:#73766f;
  --shadow:0 18px 50px rgba(23,25,22,.07);
  --radius:26px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button{border:0}
.min-w-0{min-width:0}
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:var(--ink);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:1040}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px}
.brand-mark{width:42px;height:42px;border-radius:14px 14px 14px 4px;display:grid;place-items:center;background:var(--acid);color:var(--ink);font:700 22px "Space Grotesk"}
.brand-name{font:700 18px/1 "Space Grotesk";letter-spacing:.08em}
.brand-sub{font-size:11px;color:#8f9389;margin-top:4px;letter-spacing:.12em;text-transform:uppercase}
.coach-mini-card{display:flex;align-items:center;gap:10px;padding:12px;background:#21231f;border:1px solid #30332d;border-radius:18px;margin-bottom:20px}
.coach-avatar,.student-avatar{display:grid;place-items:center;flex:0 0 auto;font-weight:700}
.coach-avatar{width:38px;height:38px;border-radius:12px;background:#373b33;color:var(--acid);font-size:12px}
.coach-name{font-weight:600;font-size:13px}
.coach-plan{font-size:10px;color:#94988e;margin-top:2px}
.icon-button{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:transparent;color:#a8aca2;transition:.2s}
.icon-button:hover{background:#30332d;color:#fff}
.icon-button.light{background:#efeee8;color:var(--ink)}
.icon-button.light:hover{background:#e3e2dc}
.nav-stack{display:flex;flex-direction:column;gap:5px}
.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;color:#989c91;background:transparent;font-weight:600;font-size:14px;text-align:left;transition:.2s}
.nav-item i{font-size:18px}
.nav-item:hover{color:#fff;background:#21231f}
.nav-item.active{background:var(--acid);color:var(--ink)}
.nav-count{margin-left:auto;font-size:11px;background:rgba(255,255,255,.12);padding:3px 7px;border-radius:999px}
.nav-item.active .nav-count{background:rgba(23,25,22,.12)}
.alert-dot{width:7px;height:7px;border-radius:50%;background:var(--coral);margin-left:auto}
.sidebar-footer{margin-top:auto}
.tip-card{display:flex;gap:10px;padding:14px 12px;border-top:1px solid #30332d;border-bottom:1px solid #30332d;margin-bottom:12px}
.tip-icon{color:var(--acid);padding-top:2px}
.tip-title{font-size:11px;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.tip-copy{font-size:11px;line-height:1.4;color:#84887e;margin-top:4px}
.student-preview-btn{width:100%;display:flex;align-items:center;gap:10px;padding:12px;color:#cfd2c8;background:transparent;border-radius:14px;font-size:12px;font-weight:600}
.student-preview-btn:hover{background:#21231f;color:#fff}
.main-content{margin-left:270px;min-height:100vh;padding:0 38px 48px}
.topbar{height:118px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.page-kicker,.eyebrow,.mini-kicker{font-size:10px;font-weight:700;letter-spacing:.14em;color:#8b8e86;text-transform:uppercase}
.page-title{font:600 30px/1.1 "Space Grotesk";margin:6px 0 0;letter-spacing:-.035em}
.top-actions{display:flex;gap:10px;align-items:center}
.search-pill{height:44px;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.55);color:#84877f;font-size:12px;min-width:225px}
.search-pill kbd,.search-command kbd,.search-hints kbd{margin-left:auto;background:#e8e7e0;color:#777a72;border:1px solid #d9d8d1;box-shadow:none;border-radius:7px;font-size:10px;padding:3px 6px}
.notification-btn{position:relative;width:44px;height:44px;border-radius:14px;background:var(--white);border:1px solid var(--line);font-size:17px}
.notification-badge{position:absolute;right:-4px;top:-5px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;font-size:9px;font-weight:700;border:2px solid var(--paper)}
.btn-acid,.btn-dark-soft,.portal-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;padding:11px 16px;background:var(--acid);color:var(--ink);font-weight:700;font-size:13px;transition:.2s}
.btn-acid:hover,.portal-primary:hover{background:var(--acid-2);transform:translateY(-1px)}
.btn-dark-soft{background:var(--ink);color:#fff}
.btn-dark-soft:hover{background:#2b2e27}
.mobile-menu-btn{display:none;width:42px;height:42px;border-radius:13px;background:#fff;border:1px solid var(--line);font-size:20px}
.view{display:none;animation:viewIn .25s ease}
.view.active{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.hero-row{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,.75fr);gap:18px}
.hero-card{min-height:250px;background:var(--ink);color:#fff;border-radius:30px;padding:34px;display:flex;justify-content:space-between;overflow:hidden;position:relative}
.hero-card .eyebrow{color:#858a7e}
.hero-card h2{font:600 38px/1.04 "Space Grotesk";letter-spacing:-.045em;margin:18px 0 14px}
.hero-card h2 span{color:var(--acid)}
.hero-card p{color:#9fa39a;font-size:13px;line-height:1.6;max-width:460px;margin:0 0 22px}
.hero-card p strong{color:#fff}
.hero-link{padding:0;background:transparent;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;gap:8px}
.hero-link i{color:var(--acid)}
.hero-visual{width:220px;position:relative;display:grid;place-items:center;flex:0 0 auto}
.hero-ring{width:140px;height:140px;border:1px solid #4b4f45;border-radius:50%;display:grid;place-content:center;text-align:center;position:relative;z-index:2}
.hero-ring:before,.hero-ring:after{content:"";position:absolute;border:1px solid #30342c;border-radius:50%;inset:-20px}
.hero-ring:after{inset:-39px}
.hero-ring span{font:600 50px/1 "Space Grotesk";color:var(--acid)}
.hero-ring small{font-size:9px;color:#777c72;letter-spacing:.18em}
.orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.7}
.orb-1{width:90px;height:90px;background:#2b4a36;right:10px;top:8px}
.orb-2{width:74px;height:74px;background:#38451d;left:12px;bottom:3px}
.focus-card{background:var(--acid);border-radius:30px;padding:28px;min-height:250px;display:flex;flex-direction:column}
.focus-card .eyebrow{color:#617636}
.focus-card h3{font:600 22px "Space Grotesk";margin:5px 0}
.trend-badge{font-size:10px;font-weight:700;background:rgba(255,255,255,.5);padding:6px 9px;border-radius:999px}
.focus-number{font:600 62px/1 "Space Grotesk";letter-spacing:-.06em;margin:auto 0 12px}
.focus-number span{font-size:27px}
.thin-progress{height:6px;background:rgba(23,25,22,.13);border-radius:99px}
.thin-progress .progress-bar{background:var(--ink);border-radius:99px}
.focus-foot{font-size:11px;color:#5a6c32;margin-top:10px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.metric-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 1px 0 rgba(0,0,0,.01)}
.metric-icon{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;margin-bottom:22px;color:#65685f}
.metric-label{font-size:11px;color:var(--muted)}
.metric-value{font:600 28px "Space Grotesk";letter-spacing:-.04em;margin:3px 0}
.metric-note{font-size:10px;color:#8c8f87}
.positive{color:#5f8124!important}
.warning{color:#b55b3f!important}
.warning-card .metric-icon{color:var(--coral);background:#fff1ed;border-color:#ffe3db}
.content-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}
.bottom-grid{grid-template-columns:1.3fr .7fr}
.panel-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:25px}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}
.panel-head h3{font:600 20px "Space Grotesk";margin:4px 0 0;letter-spacing:-.03em}
.ghost-button{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);background:transparent;color:#676a62;border-radius:12px;font-size:11px;font-weight:700}
.ghost-button:hover{background:#efeee7;color:var(--ink)}
.timeline{margin-top:20px}
.time-row{display:grid;grid-template-columns:48px 1px 1fr;gap:13px;min-height:68px}
.time{font-size:10px;color:#94978f;padding-top:12px}
.time-line{position:relative;background:#deddd6}
.time-line:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--card);border:1px solid #b7bab2;left:50%;top:14px;transform:translateX(-50%)}
.time-row.next .time-line:before{width:9px;height:9px;background:var(--acid);border:2px solid var(--ink);box-shadow:0 0 0 4px var(--acid-soft)}
.session-card{height:56px;display:flex;align-items:center;gap:11px;padding:8px 12px;border-radius:15px;background:#f0efe9}
.time-row.next .session-card{background:#fff;border:1px solid #d8d7cf;box-shadow:0 10px 28px rgba(23,25,22,.07)}
.student-avatar{width:34px;height:34px;border-radius:11px;color:var(--ink);font-size:10px}
.avatar-lime{background:var(--acid)}
.avatar-purple{background:#dcd6ff}
.avatar-blue{background:#c9e5ff}
.avatar-amber{background:#ffe0a5}
.avatar-red{background:#ffd0c5}
.avatar-xl{width:52px;height:52px;border-radius:16px;font-size:13px}
.session-name{font-weight:700;font-size:12px}
.session-meta{font-size:10px;color:#8e9189;margin-top:2px}
.status-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:#e7e6df;color:#73766e;font-size:9px;font-weight:700;white-space:nowrap}
.status-chip.muted{background:transparent;color:#999c94}
.status-chip.success{background:#e8f7d0;color:#5e7a30}
.status-chip.danger{background:#ffe9e3;color:#b65038}
.live-dot{padding:3px 6px;background:var(--acid);border-radius:999px;font-size:7px;font-weight:800;letter-spacing:.09em}
.mini-action{padding:7px 10px;border-radius:10px;background:var(--ink);color:#fff;font-size:9px;font-weight:700}
.compact-select{width:auto;border-radius:10px;border-color:var(--line);font-size:10px}
.chart-wrap{height:225px;margin-top:22px}
.chart-summary{display:flex;gap:25px;border-top:1px solid var(--line);padding-top:14px;margin-top:10px;font-size:10px;color:#83867e}
.legend-dot{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:6px}
.legend-dot.acid{background:var(--acid)}
.legend-dot.dark{background:var(--ink)}
.attention-list{margin-top:14px}
.attention-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 0;background:transparent;border-bottom:1px solid #e6e4dd;color:inherit}
.attention-item:last-child{border:0}
.attention-name{font-size:12px;font-weight:700}
.attention-desc{font-size:10px;color:#8d9088;margin-top:2px}
.attention-tag{font-size:8px;font-weight:800;letter-spacing:.05em;background:var(--acid-soft);color:#6c843b;padding:5px 7px;border-radius:999px;text-transform:uppercase}
.attention-tag.danger{background:#ffe8e2;color:#bd5a41}
.attention-item>i{font-size:10px;color:#a9aca4}
.insight-card{background:#272a24;color:#fff;border-color:#272a24;display:flex;flex-direction:column}
.insight-top{display:flex;align-items:center;gap:8px;color:#9ca095;font-size:9px;font-weight:800;letter-spacing:.1em}
.insight-icon{width:30px;height:30px;display:grid;place-items:center;background:var(--acid);color:var(--ink);border-radius:10px}
.insight-card h3{font:600 24px/1.1 "Space Grotesk";letter-spacing:-.04em;margin:28px 0 10px}
.insight-card p{font-size:11px;color:#a7aaa2;line-height:1.5}
.insight-card p strong{color:var(--acid)}
.insight-button{margin-top:auto;display:flex;align-items:center;justify-content:space-between;background:transparent;color:#fff;border-top:1px solid #3c3f38;padding:14px 0 0;font-size:11px;font-weight:700}

/* Students */
.section-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.section-stat{font-size:13px;color:#777a72}.section-stat strong{color:var(--ink)}.section-stat span{padding:0 5px;color:#b2b4ae}
.toolbar-actions{display:flex;gap:10px}
.inline-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:0 12px;min-width:230px}
.inline-search i{color:#999c94;font-size:13px}
.inline-search input{border:0;outline:0;background:transparent;height:42px;width:100%;font-size:12px}
.filter-select{width:180px;border-radius:13px;border-color:var(--line);font-size:11px}
.students-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.student-card{background:var(--card);border:1px solid var(--line);border-radius:23px;padding:20px;transition:.2s;cursor:pointer}
.student-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c9c8c0}
.student-card-top{display:flex;align-items:flex-start;justify-content:space-between}
.student-avatar.large{width:44px;height:44px;border-radius:14px;font-size:12px}
.more-btn{background:transparent;color:#9b9e96}
.student-card h3{font:600 18px "Space Grotesk";margin:20px 0 3px}
.student-goal{font-size:10px;color:#8b8e86}
.student-card-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e4e3dc;margin-top:17px;padding-top:15px}
.student-card-stats span{display:block;font-size:9px;color:#999c94}
.student-card-stats strong{font-size:12px}
.student-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:17px}
.adherence-pill{font-size:9px;font-weight:700;padding:5px 8px;border-radius:999px;background:#edf7dd;color:#66803a}
.payment-state{font-size:9px;color:#84877f}
.payment-state.overdue{color:#b3543f}

/* Routines */
.routine-hero{background:#e8e5dc;border-radius:30px;padding:34px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:18px}
.routine-hero h2{font:600 38px/1 "Space Grotesk";letter-spacing:-.05em;margin:12px 0}
.routine-hero h2 span{color:#687b3d}
.routine-hero p{font-size:12px;color:#7a7d75;margin:0;max-width:480px}
.routine-layout{display:grid;grid-template-columns:280px 1fr;gap:18px}
.routine-library,.routine-detail{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.count-pill{padding:4px 8px;border-radius:999px;background:#ededE6;font-size:10px}
.template-list{display:flex;flex-direction:column;gap:7px}
.template-item{display:flex;align-items:center;gap:11px;padding:10px;border-radius:15px;background:transparent;color:inherit;text-align:left}
.template-item:hover,.template-item.active{background:#eeeee7}
.template-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#fff;border:1px solid var(--line)}
.template-item.active .template-icon{background:var(--acid);border-color:var(--acid)}
.template-item strong{display:block;font-size:11px}
.template-item small{display:block;color:#93968e;font-size:9px;margin-top:2px}
.routine-header{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.routine-badge{font-size:8px;font-weight:800;padding:5px 7px;border-radius:999px;background:var(--acid-soft);color:#6c823d}
.routine-header h2{font:600 28px "Space Grotesk";letter-spacing:-.04em;margin:8px 0 2px}
.routine-header p{font-size:10px;color:#8f928a;margin:0}
.exercise-list{margin-top:6px}
.exercise-row{display:grid;grid-template-columns:38px minmax(160px,1fr) repeat(4,minmax(70px,.35fr)) 25px;align-items:center;gap:10px;padding:14px 4px;border-bottom:1px solid #e7e5df}
.exercise-row:last-child{border:0}
.exercise-index{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#efeee8;font:600 10px "Space Grotesk"}
.exercise-main strong{display:block;font-size:12px}.exercise-main small{font-size:9px;color:#92958d}
.exercise-stat span{display:block;font-size:8px;color:#a1a49d;text-transform:uppercase;letter-spacing:.06em}.exercise-stat strong{font-size:11px}
.exercise-row>i{color:#b0b3ab}

/* Calendar */
.calendar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.week-switcher{display:flex;align-items:center;gap:12px}
.week-switcher>div{display:flex;flex-direction:column;text-align:center}
.week-switcher strong{font-size:13px}.week-switcher small{font-size:9px;color:#999c94}
.calendar-board{min-width:840px;display:grid;grid-template-columns:66px repeat(5,1fr);background:var(--card);border:1px solid var(--line);border-radius:25px;overflow:hidden}
.calendar-hours,.calendar-day{display:grid;grid-template-rows:66px repeat(10,58px)}
.calendar-hours>div:not(.day-spacer){font-size:9px;color:#9a9d95;padding:8px 10px;border-top:1px solid #eceae4}
.calendar-day{position:relative;border-left:1px solid #e4e2dc}
.calendar-day>div:not(.day-head):not(.cal-session):not(.now-line){border-top:1px solid #eceae4}
.day-head{display:flex;align-items:center;justify-content:center;gap:8px;background:#f8f7f2;border-bottom:1px solid #e4e2dc}
.day-head span{font-size:8px;color:#999c94;font-weight:700}.day-head strong{font:600 18px "Space Grotesk"}
.calendar-day.today .day-head{background:var(--ink);color:#fff}.calendar-day.today .day-head span{color:var(--acid)}
.cal-session{z-index:2;margin:5px 6px;padding:9px;border-radius:12px;align-self:stretch;font-size:10px;display:flex;flex-direction:column;gap:2px}
.cal-session strong{font-size:10px}.cal-session small{font-size:8px;opacity:.7}
.cal-session.s1{background:#eee9ff}.cal-session.s2{background:#fff0d1}.cal-session.s3{background:#dff0ff}.cal-session.s4{background:#ffe5df}.cal-session.accent{background:var(--acid);box-shadow:0 8px 20px rgba(107,133,52,.18)}
.now-line{position:absolute;height:1px;background:var(--coral);left:0;right:0;z-index:3}.now-line:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--coral);left:-3px;top:-3px}

/* Payments */
.payments-hero{background:var(--ink);color:#fff;border-radius:30px;padding:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px}
.payments-hero .eyebrow{color:#858a80}.revenue-total{font:600 48px "Space Grotesk";letter-spacing:-.05em;margin-top:8px}.revenue-sub{font-size:11px;color:#8d9187}.revenue-sub .positive{margin-left:8px;background:#2e3a22;padding:4px 7px;border-radius:999px}
.payment-breakdown{display:flex;gap:35px}.payment-breakdown div{display:flex;flex-direction:column}.payment-breakdown span{font-size:9px;color:#858a80}.payment-breakdown strong{font:500 14px "Space Grotesk";margin-top:4px}
.payment-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.payment-mini-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:19px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"label count" "sum count"}
.payment-mini-card span{grid-area:label;font-size:10px;color:#8a8d85}.payment-mini-card strong{grid-area:count;font:600 28px "Space Grotesk"}.payment-mini-card small{grid-area:sum;font-size:10px;font-weight:700;margin-top:3px}.payment-mini-card.overdue{background:#fff0ec;border-color:#ffd6cc}.payment-mini-card.overdue strong,.payment-mini-card.overdue small{color:#b65540}
.payments-table-card{padding-bottom:10px}
.custom-table{--bs-table-bg:transparent;font-size:11px;margin-top:14px}.custom-table th{font-size:8px;color:#999c94;letter-spacing:.06em;text-transform:uppercase;border-bottom-color:#dfddd7;font-weight:700}.custom-table td{border-bottom-color:#eceae5;padding:12px 8px;color:#6f726b}.table-person{display:flex;align-items:center;gap:9px}.table-person strong{color:var(--ink);font-size:11px}

/* Portal */
.student-portal{position:fixed;inset:0;background:#eeeae0;z-index:1100;opacity:0;pointer-events:none;transform:translateY(20px);transition:.3s ease;overflow:auto}
.student-portal.open{opacity:1;pointer-events:auto;transform:none}
.portal-shell{min-height:100vh}
.portal-topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,80px);border-bottom:1px solid #dbd8cf}
.portal-brand{display:flex;align-items:center;gap:14px;background:transparent;color:var(--ink);font:700 17px "Space Grotesk";letter-spacing:.08em}
.portal-brand i{font-size:15px}
.portal-user{display:flex;align-items:center;gap:10px;font-size:10px;color:#83867e}
.portal-content{padding:40px clamp(20px,6vw,80px) 70px;max-width:1500px;margin:auto}
.portal-greeting{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}
.portal-greeting h1{font:600 clamp(38px,5vw,64px)/1 "Space Grotesk";letter-spacing:-.06em;margin:8px 0}
.portal-greeting p{color:#7c7f77;margin:0;font-size:13px}
.streak-card{display:flex;align-items:center;gap:12px;padding:14px 17px;background:#fff;border-radius:18px;border:1px solid #ddd9d0}.streak-card i{color:var(--coral);font-size:21px}.streak-card strong,.streak-card span{display:block}.streak-card strong{font-size:13px}.streak-card span{font-size:9px;color:#8f928a}
.workout-hero{min-height:330px;background:var(--ink);border-radius:32px;color:#fff;display:grid;grid-template-columns:1.4fr .6fr;overflow:hidden;margin-bottom:18px}
.workout-hero-copy{padding:38px}.portal-pill{display:inline-block;background:var(--acid);color:var(--ink);font-size:8px;font-weight:800;letter-spacing:.08em;padding:6px 8px;border-radius:999px}.workout-hero h2{font:600 clamp(44px,6vw,78px)/.9 "Space Grotesk";letter-spacing:-.06em;margin:25px 0 18px}.workout-hero h2 span{color:var(--acid)}.workout-meta{display:flex;gap:20px;font-size:10px;color:#9ca096}.portal-primary{margin-top:24px;padding:13px 18px}
.workout-visual{position:relative;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at 50% 50%,#3b4528 0,#272b22 43%,#1c1f1b 70%)}.workout-visual:before,.workout-visual:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid #44483f}.workout-visual:after{width:300px;height:300px}.workout-number{font:600 118px/1 "Space Grotesk";color:var(--acid);z-index:1;letter-spacing:-.1em}.vertical-copy{position:absolute;right:20px;writing-mode:vertical-rl;font-size:8px;color:#777b72;letter-spacing:.18em}
.portal-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.portal-card{background:#f9f7f1;border:1px solid #dcd9d0;border-radius:26px;padding:24px}.portal-card-head{display:flex;justify-content:space-between;align-items:flex-start}.portal-card h3{font:600 21px "Space Grotesk";letter-spacing:-.03em;margin:4px 0}.portal-card-head>span,.portal-card-head>strong{font-size:10px;color:#777b72}.portal-progress{height:5px;background:#e2e0d8;border-radius:99px;margin:14px 0 8px;overflow:hidden}.portal-progress span{display:block;height:100%;width:0;background:var(--acid-2);transition:.3s}
.portal-exercise{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid #e4e1d9}.portal-exercise:last-child{border:0}.portal-exercise-index{width:30px;height:30px;border-radius:9px;background:#eceae2;display:grid;place-items:center;font-size:9px;font-weight:700}.portal-exercise strong{display:block;font-size:11px}.portal-exercise small{display:block;font-size:9px;color:#91948c;margin-top:2px}.portal-exercise .load{font-size:10px;font-weight:700}.exercise-check{appearance:none;width:22px;height:22px;border:1px solid #c9c7bf;border-radius:7px;display:grid;place-content:center;cursor:pointer}.exercise-check:checked{background:var(--acid);border-color:var(--acid)}.exercise-check:checked:after{content:"✓";font-size:12px;font-weight:900}
.portal-side{display:flex;flex-direction:column;gap:18px}.load-card{background:var(--acid)}.load-card .mini-kicker{color:#64793a}.load-card h3{max-width:270px;font-size:24px;margin:14px 0 25px}.load-stat strong{display:block;font:600 40px "Space Grotesk";letter-spacing:-.05em}.load-stat span{font-size:9px;color:#647a39}.mini-bars{height:82px;display:flex;align-items:flex-end;gap:7px;margin-top:15px}.mini-bars span{flex:1;max-width:22px;background:rgba(23,25,22,.65);border-radius:4px 4px 1px 1px}
.habit-row{display:grid;grid-template-columns:18px 25px 1fr;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid #e4e1d9;font-size:11px;cursor:pointer}.habit-row:last-child{border:0}.habit-row input{display:none}.custom-check{width:17px;height:17px;border:1px solid #c8c6be;border-radius:5px}.habit-row input:checked+.custom-check{background:var(--ink);border-color:var(--ink);position:relative}.habit-row input:checked+.custom-check:after{content:"✓";position:absolute;color:#fff;font-size:10px;left:3px;top:0}.habit-row i{color:#797d74}

/* Modal */
.custom-modal{border:0;border-radius:26px;background:#fbfaf6;box-shadow:0 25px 80px rgba(20,22,18,.23);padding:10px}.custom-modal .modal-header,.custom-modal .modal-body,.custom-modal .modal-footer{padding-left:20px;padding-right:20px}.custom-modal .modal-title{font:600 26px "Space Grotesk";letter-spacing:-.04em}.custom-modal .form-label{font-size:10px;font-weight:700;color:#73766e}.custom-modal .form-control,.custom-modal .form-select{border-radius:12px;border-color:#dcdad3;background:#fff;font-size:12px;min-height:43px}.custom-modal .form-control:focus,.custom-modal .form-select:focus{border-color:#a6b974;box-shadow:0 0 0 .2rem rgba(201,243,108,.25)}
.modal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.modal-summary div,.student-detail-stats div{background:#efeee7;border-radius:15px;padding:13px}.modal-summary span,.student-detail-stats span{display:block;font-size:8px;color:#92958d;text-transform:uppercase;letter-spacing:.06em}.modal-summary strong,.student-detail-stats strong{display:block;font-size:13px;margin-top:4px}.progression-compare{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.progression-compare>div{padding:18px;background:#efeee8;border-radius:17px}.progression-compare .suggested{background:var(--acid-soft)}.progression-compare span,.progression-compare small{display:block;font-size:8px;color:#85887f}.progression-compare strong{display:block;font:600 25px "Space Grotesk";margin:4px 0}.modal-note{font-size:11px;line-height:1.6;color:#777a72;margin:16px 0 0}.notification-list>div{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #e7e5df}.notification-list>div:last-child{border:0}.notification-list>div>i{width:30px;height:30px;border-radius:9px;background:#efeee7;display:grid;place-items:center}.notification-list p{font-size:10px;margin:0;line-height:1.45}.notification-list small{display:block;color:#a2a59d;margin-top:3px}
.search-modal{border:0;border-radius:20px;background:#fbfaf6;overflow:hidden;box-shadow:0 25px 80px rgba(20,22,18,.23)}.search-command{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid #e4e2dc}.search-command input{border:0;outline:0;background:transparent;flex:1;font-size:13px}.search-hints{padding:10px}.search-hints>span{display:block;padding:6px 8px;color:#9a9d95;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.search-hints button{width:100%;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;text-align:left;padding:9px;background:transparent;border-radius:12px}.search-hints button:hover{background:#efeee8}.search-hints button>i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#fff;border:1px solid var(--line)}.search-hints strong,.search-hints small{display:block}.search-hints strong{font-size:11px}.search-hints small{font-size:8px;color:#999c94}.student-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.student-progress-block{margin-top:20px;font-size:10px}.student-progress-block .thin-progress{margin-top:8px}.detail-note{display:flex;gap:12px;padding:15px;background:#f0efe9;border-radius:16px;margin-top:18px}.detail-note i{color:#777a72}.detail-note strong{font-size:10px}.detail-note p{font-size:10px;color:#7e8179;margin:4px 0 0;line-height:1.5}.builder-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:25px}.builder-exercises{border-left:1px solid var(--line);padding-left:25px}.builder-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.builder-row{display:grid;grid-template-columns:20px 1fr 55px 12px 55px;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e8e6e0;font-size:11px}.builder-row input{width:55px;border:1px solid var(--line);border-radius:8px;padding:6px;text-align:center}
.custom-toast{background:var(--ink);color:#fff;border:0;border-radius:14px;font-size:11px}.custom-toast i{color:var(--acid)}

/* responsive */
@media (max-width:1200px){
  .students-grid{grid-template-columns:repeat(3,1fr)}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .hero-card h2{font-size:33px}
  .hero-visual{width:180px}
}
@media (max-width:992px){
  .sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none;box-shadow:15px 0 40px rgba(0,0,0,.18)}
  .main-content{margin-left:0;padding:0 22px 40px}
  .mobile-menu-btn{display:grid;place-items:center}
  .hero-row,.content-grid,.bottom-grid,.portal-grid{grid-template-columns:1fr}
  .focus-card{min-height:200px}
  .students-grid{grid-template-columns:repeat(2,1fr)}
  .routine-layout{grid-template-columns:1fr}.template-list{display:grid;grid-template-columns:repeat(4,1fr)}.template-item{flex-direction:column;align-items:flex-start}
  #view-calendar{overflow-x:auto;padding-bottom:10px}
  .workout-hero{grid-template-columns:1fr}.workout-visual{display:none}
}
@media (max-width:700px){
  .main-content{padding:0 14px 30px}
  .topbar{height:96px}
  .page-title{font-size:23px}
  .top-actions{gap:7px}.notification-btn,.btn-acid{height:42px}.top-actions .btn-acid{width:42px;padding:0}
  .hero-card{padding:25px;min-height:310px}.hero-card h2{font-size:31px}.hero-visual{position:absolute;right:-45px;bottom:-65px;opacity:.7}
  .metric-grid{grid-template-columns:1fr 1fr}.metric-card{padding:16px}.metric-icon{margin-bottom:15px}.metric-value{font-size:24px}
  .students-grid{grid-template-columns:1fr}.section-toolbar,.toolbar-actions{align-items:stretch}.section-toolbar{flex-direction:column;gap:12px}.toolbar-actions{display:grid;grid-template-columns:1fr}.inline-search,.filter-select{width:100%;min-width:0}
  .routine-hero{padding:25px;align-items:flex-start;flex-direction:column}.routine-hero h2{font-size:31px}.routine-hero .btn-acid{width:100%}
  .template-list{grid-template-columns:1fr 1fr}.routine-header{flex-direction:column}.exercise-row{grid-template-columns:30px 1fr 60px}.exercise-stat:nth-of-type(n+3){display:none}.exercise-row>i{display:none}
  .payments-hero{align-items:flex-start;flex-direction:column}.revenue-total{font-size:40px}.payment-breakdown{width:100%;justify-content:space-between;gap:10px}.payment-cards{grid-template-columns:1fr 1fr}
  .portal-topbar{height:70px}.portal-content{padding-top:28px}.portal-greeting{align-items:flex-start;gap:20px}.portal-greeting h1{font-size:41px}.portal-greeting p{font-size:11px}.streak-card{padding:10px}.streak-card span{display:none}
  .workout-hero{min-height:300px}.workout-hero-copy{padding:28px}.workout-hero h2{font-size:55px}
  .portal-card{padding:18px}.portal-exercise{grid-template-columns:30px 1fr auto}.portal-exercise .load{display:none}
  .student-detail-stats{grid-template-columns:1fr 1fr}.builder-grid{grid-template-columns:1fr}.builder-exercises{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:20px}
}
@media (max-width:420px){
  .metric-grid{grid-template-columns:1fr}
  .hero-card{min-height:330px}
  .session-card{padding:8px}.status-chip{display:none}
  .attention-tag{display:none}
  .payment-cards{grid-template-columns:1fr}
  .template-list{grid-template-columns:1fr}
  .portal-greeting{flex-direction:column}
}

/* ===== Functional MVP additions ===== */
body.auth-body{min-height:100vh;background:#171916;display:grid;place-items:center;padding:20px}
.auth-wrap{width:min(1060px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#f3f1e9;border-radius:34px;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.28)}
.auth-art{min-height:620px;background:#20231d;padding:44px;color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:column}
.auth-art:before,.auth-art:after{content:"";position:absolute;border:1px solid #3d4238;border-radius:50%;width:420px;height:420px;right:-130px;bottom:-90px}.auth-art:after{width:280px;height:280px;right:-40px;bottom:-10px;border-color:#4f5b37}
.auth-art .brand{padding:0;position:relative;z-index:2}.auth-art h1{font:600 clamp(42px,6vw,68px)/.95 "Space Grotesk";letter-spacing:-.06em;margin:auto 0 20px;position:relative;z-index:2}.auth-art h1 span{color:var(--acid)}.auth-art p{max-width:430px;color:#9ba096;font-size:13px;line-height:1.65;position:relative;z-index:2}.auth-copy{padding:50px;display:flex;flex-direction:column;justify-content:center;background:#f9f7f1}.auth-copy .eyebrow{margin-bottom:8px}.auth-copy h2{font:600 34px "Space Grotesk";letter-spacing:-.05em;margin:0 0 8px}.auth-copy>p{font-size:12px;color:#82857d;margin-bottom:30px}.auth-form .form-label{font-size:10px;font-weight:700;color:#74776f}.auth-form .form-control{height:48px;border-radius:14px;border-color:#d9d7d0;background:#fff;font-size:12px}.auth-form .form-control:focus{border-color:#9daf6d;box-shadow:0 0 0 .2rem rgba(201,243,108,.25)}.auth-submit{width:100%;height:48px;margin-top:8px}.auth-foot{font-size:10px;color:#92958d;text-align:center;margin-top:18px}.auth-switch{margin-top:22px;border-top:1px solid #ddd9d0;padding-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#85887f}.auth-switch a{color:var(--ink);font-weight:700;text-decoration:none}
.install-shell{width:min(980px,100%);background:#fbfaf6;border-radius:28px;padding:32px;box-shadow:0 24px 80px rgba(0,0,0,.18)}.install-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.install-step{background:#f1efe7;border:1px solid #dedbd2;border-radius:20px;padding:20px}.install-step h3{font:600 19px "Space Grotesk";margin:0 0 14px}.install-step .form-label{font-size:10px;font-weight:700}.install-step .form-control{border-radius:12px;font-size:12px;min-height:42px}.install-note{font-size:10px;color:#82857d;line-height:1.55}.install-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:25px}.install-head h1{font:600 32px "Space Grotesk";letter-spacing:-.04em;margin:5px 0}.setup-badge{background:var(--acid);border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800}
.flash-wrap{position:fixed;top:18px;right:18px;z-index:2000;width:min(390px,calc(100vw - 36px))}.app-flash{background:#171916;color:#fff;border-radius:14px;padding:13px 15px;box-shadow:0 16px 45px rgba(0,0,0,.2);font-size:11px;display:flex;gap:9px;align-items:center}.app-flash.success i{color:var(--acid)}.app-flash.error i{color:#ff7557}
.admin-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px}.data-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:16px}.data-toolbar h2{font:600 24px "Space Grotesk";letter-spacing:-.04em;margin:0}.empty-state{padding:50px 20px;text-align:center;color:#8a8d85}.empty-state i{font-size:32px;color:#b0b3aa}.empty-state h3{font:600 20px "Space Grotesk";color:var(--ink);margin:12px 0 5px}.empty-state p{font-size:11px;margin:0 auto 16px;max-width:380px}.action-menu{display:flex;gap:6px;justify-content:flex-end}.action-menu .icon-button{background:#efeee8;color:#666a61}.action-menu .icon-button.danger{color:#b65440}.action-menu .icon-button:hover{background:#e4e3dd;color:var(--ink)}
.db-status{font-size:9px;padding:5px 8px;border-radius:999px;background:#dff3c2;color:#617b35;font-weight:800}.page-actions{display:flex;gap:9px}.topbar .page-actions .btn-acid{white-space:nowrap}
.student-detail-layout{display:grid;grid-template-columns:320px 1fr;gap:18px}.student-profile-card{background:#171916;color:#fff;border-radius:28px;padding:24px}.student-profile-card .student-avatar{width:60px;height:60px;border-radius:18px;font-size:16px}.student-profile-card h2{font:600 28px "Space Grotesk";letter-spacing:-.04em;margin:20px 0 4px}.student-profile-card p{color:#9ca096;font-size:11px}.profile-info{margin-top:25px;border-top:1px solid #343730}.profile-info div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #30332d;font-size:10px}.profile-info span{color:#84887e}.profile-info strong{font-weight:600}.tabs-clean{display:flex;gap:5px;background:#e9e7df;padding:5px;border-radius:14px;width:max-content;margin-bottom:18px}.tabs-clean a{padding:8px 11px;border-radius:10px;font-size:10px;font-weight:700;color:#73766e;text-decoration:none}.tabs-clean a.active{background:#fff;color:#171916;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.measurement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.measurement-card{background:#efeee8;border-radius:16px;padding:14px}.measurement-card span{display:block;font-size:8px;color:#92958d;text-transform:uppercase;letter-spacing:.06em}.measurement-card strong{display:block;font:600 20px "Space Grotesk";margin-top:4px}.subheading{font:600 18px "Space Grotesk";letter-spacing:-.03em;margin:0 0 12px}
.assign-card{background:#eef6dd;border:1px solid #dbe9be;border-radius:18px;padding:17px}.assign-card h4{font:600 16px "Space Grotesk";margin:0 0 10px}.inline-form{display:flex;gap:8px}.inline-form .form-select,.inline-form .form-control{font-size:11px;border-radius:11px;border-color:#d5d8cd}.inline-form .btn-acid{flex:0 0 auto}
.routine-admin-grid{display:grid;grid-template-columns:280px 1fr;gap:18px}.routine-list-admin{display:flex;flex-direction:column;gap:7px}.routine-list-admin a{text-decoration:none;color:inherit;padding:13px;border-radius:15px;border:1px solid transparent;display:block}.routine-list-admin a:hover,.routine-list-admin a.active{background:#efeee7;border-color:#e2e0d9}.routine-list-admin strong{display:block;font-size:12px}.routine-list-admin small{font-size:9px;color:#8e9189}.exercise-admin-row{display:grid;grid-template-columns:28px 1.5fr .8fr .45fr .6fr .6fr .5fr 72px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #e8e6df;font-size:10px}.exercise-admin-row.header{font-size:8px;color:#9a9d95;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.exercise-admin-row strong{font-size:11px}.exercise-admin-row .muted{color:#8f928a}.drag-dot{width:26px;height:26px;border-radius:8px;background:#eeece5;display:grid;place-items:center;color:#999c94}
.calendar-functional{background:#fbfaf6;border:1px solid var(--line);border-radius:25px;overflow:auto}.calendar-week-grid{min-width:970px;display:grid;grid-template-columns:70px repeat(7,1fr)}.calendar-time-col,.calendar-day-col{position:relative;height:850px;border-right:1px solid #e7e5de}.calendar-time-col{background:#f6f4ed}.cal-head-fixed{height:64px;border-bottom:1px solid #e4e2db;display:flex;align-items:center;justify-content:center;position:sticky;top:0;background:#f8f6f0;z-index:4}.calendar-day-col .cal-head-fixed{flex-direction:column}.calendar-day-col.today .cal-head-fixed{background:#171916;color:#fff}.calendar-day-col.today .cal-head-fixed small{color:var(--acid)}.cal-head-fixed strong{font:600 17px "Space Grotesk"}.cal-head-fixed small{font-size:8px;color:#979a92;font-weight:700;letter-spacing:.08em}.hour-label{position:absolute;left:10px;font-size:8px;color:#999c94;transform:translateY(-50%)}.hour-line{position:absolute;left:0;right:0;border-top:1px solid #eceae4}.session-block{position:absolute;left:6px;right:6px;border-radius:11px;padding:8px;overflow:hidden;font-size:9px;background:#e8e4ff;border:1px solid #d8d1ff;z-index:2;text-decoration:none;color:#292b27}.session-block:hover{filter:brightness(.98);color:#171916}.session-block.accent{background:#dff3b4;border-color:#c9e99a}.session-block.pending{background:#fff0d7;border-color:#f4dfb8}.session-block.cancelled{background:#f1efea;border-color:#e0ddd6;opacity:.65}.session-block strong{display:block;font-size:10px}.session-block span{font-size:8px;opacity:.7}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat-strip .metric-card{margin:0}.payment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.payment-summary-card{border-radius:22px;padding:20px;background:#fbfaf6;border:1px solid var(--line)}.payment-summary-card.dark{background:#171916;color:#fff;border-color:#171916}.payment-summary-card.alert{background:#fff0ec;border-color:#ffd9cf}.payment-summary-card span{font-size:9px;color:#85887f}.payment-summary-card strong{display:block;font:600 28px "Space Grotesk";letter-spacing:-.04em;margin-top:5px}.payment-summary-card.dark span{color:#8d9187}.payment-summary-card.alert strong{color:#b3543e}
.form-control,.form-select{border-radius:12px;border-color:#dcdad3;font-size:11px}.form-label{font-size:10px;font-weight:700;color:#73766e}.form-control:focus,.form-select:focus{border-color:#a6b974;box-shadow:0 0 0 .2rem rgba(201,243,108,.25)}
.modal-content.custom-modal{max-height:92vh;overflow:auto}.modal-section-title{font:600 16px "Space Grotesk";margin:4px 0 12px}.delete-form{display:inline}.money{font-variant-numeric:tabular-nums}
.portal-login-badge{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:700;padding:5px 8px;border-radius:999px;background:#e8f6cb;color:#63793b}.portal-topbar a{text-decoration:none;color:inherit}.portal-routine-list{display:flex;flex-direction:column;gap:10px}.portal-routine-item{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px;border:1px solid #e1ded6;border-radius:15px;background:#fff}.portal-routine-item strong{font-size:11px}.portal-routine-item small{display:block;font-size:9px;color:#92958d}.workout-form-row{display:grid;grid-template-columns:28px minmax(150px,1fr) 90px 85px 25px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #e4e1d9}.workout-form-row .form-control{height:35px;padding:5px 8px}.workout-form-row .exercise-check{width:22px;height:22px}.portal-flash{max-width:1380px;margin:18px auto -18px;padding:0 clamp(20px,6vw,80px)}.portal-flash .app-flash{position:static;box-shadow:none}.portal-empty{padding:30px;background:#efede6;border-radius:18px;text-align:center;color:#80837b;font-size:11px}.next-session-card{display:flex;align-items:center;gap:12px;padding:14px;background:#171916;color:#fff;border-radius:17px;margin-top:12px}.next-session-card .date-chip{width:46px;height:46px;border-radius:13px;background:var(--acid);color:#171916;display:grid;place-items:center;font:600 15px "Space Grotesk"}.next-session-card strong{font-size:11px;display:block}.next-session-card small{font-size:9px;color:#a0a49a}.portal-side .measurement-card{background:#fff}
@media(max-width:992px){.auth-wrap{grid-template-columns:1fr}.auth-art{min-height:320px}.auth-art h1{margin-top:90px}.install-grid,.student-detail-layout,.routine-admin-grid{grid-template-columns:1fr}.measurement-grid{grid-template-columns:repeat(2,1fr)}.exercise-admin-row{grid-template-columns:28px 1fr .5fr .6fr 65px}.exercise-admin-row>*:nth-child(3),.exercise-admin-row>*:nth-child(6),.exercise-admin-row>*:nth-child(7){display:none}.stat-strip{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.auth-copy{padding:30px 22px}.auth-art{padding:28px;min-height:270px}.auth-art h1{margin-top:60px}.install-shell{padding:20px}.install-head{flex-direction:column}.install-grid{gap:14px}.data-toolbar{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn-acid,.page-actions .ghost-button{flex:1}.measurement-grid,.stat-strip,.payment-summary{grid-template-columns:1fr}.inline-form{flex-direction:column}.workout-form-row{grid-template-columns:28px 1fr 25px}.workout-form-row .load-input,.workout-form-row .reps-input{grid-column:2 / span 2}.topbar{align-items:center}.topbar .page-actions .btn-acid span{display:none}}

/* ===== SaaS v2 ===== */
.db-status.success{background:#273321;color:var(--acid);border-color:#3d4e31}.db-status.trial{background:#343126;color:#f2cf6b;border-color:#514b36}.db-status.warning{background:#3a3021;color:#ffc96a;border-color:#59482e}.db-status.danger{background:#3b2824;color:#ff9a83;border-color:#5a3730}
.saas-auth-proof{margin-top:auto;padding:17px 0;border-top:1px solid #343731;display:flex;flex-direction:column;gap:4px}.saas-auth-proof strong{font-size:12px}.saas-auth-proof span{font-size:10px;color:#888d82}
.register-shell{width:min(1180px,calc(100% - 36px));margin:34px auto;display:grid;grid-template-columns:.8fr 1.2fr;min-height:calc(100vh - 68px);background:#171916;border-radius:32px;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.18)}
.register-copy{padding:46px;color:#fff;display:flex;flex-direction:column;background:radial-gradient(circle at 25% 70%,#384329 0,#22251f 38%,#171916 72%)}.register-copy h1{font:600 54px/.96 "Space Grotesk";letter-spacing:-.06em;margin:24px 0 18px}.register-copy h1 span{color:var(--acid)}.register-copy>p{max-width:430px;color:#9ea399;font-size:12px;line-height:1.65}.register-benefits{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.register-benefits li{font-size:10px;color:#c9cdc3}.register-benefits li:before{content:"✓";color:var(--acid);margin-right:8px;font-weight:800}.register-form-card{background:#f8f6ef;padding:46px;overflow:auto}.register-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.register-plan{cursor:pointer}.register-plan input{display:none}.register-plan-inner{display:flex;min-height:140px;flex-direction:column;padding:15px;border:1px solid #dcd9d0;border-radius:18px;background:#fff;transition:.18s}.register-plan-inner strong{font:600 15px "Space Grotesk"}.register-plan-inner b{font:600 23px "Space Grotesk";margin:18px 0 4px;letter-spacing:-.04em}.register-plan-inner b small{font:500 9px "DM Sans";color:#969990}.register-plan-inner>small{font-size:8px;color:#8c8f87;line-height:1.4}.register-plan input:checked+.register-plan-inner{border-color:#1f221d;box-shadow:inset 0 0 0 1px #1f221d;background:var(--acid-soft)}.form-legal{font-size:8px;color:#999c94;text-align:center;margin:12px 0 0}
.groups-layout{display:grid;grid-template-columns:285px 1fr;gap:18px}.group-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.group-hero h2{font:600 31px "Space Grotesk";letter-spacing:-.045em;margin:5px 0}.group-hero p{font-size:10px;color:#85887f;margin:0}.invite-box{display:flex;align-items:center;gap:14px;margin-top:22px;padding:14px;background:#eeeee7;border-radius:17px}.invite-box>div{min-width:0;flex:1}.invite-box span{display:block;font-size:8px;color:#93968e;font-weight:700;letter-spacing:.08em}.invite-box strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.group-settings-row{display:flex;align-items:center;gap:18px;margin-top:12px;font-size:9px;color:#7b7e76;flex-wrap:wrap}.group-settings-row span{display:flex;align-items:center;gap:6px}.qr-wrap{display:flex;justify-content:center;padding:14px;background:#fff;border:1px solid #e1ded6;border-radius:18px}.qr-wrap img,.qr-wrap canvas{max-width:100%;height:auto!important}.icon-button.success{color:#648033}.icon-button.success:hover{background:#e9f7d2;color:#506b26}
.billing-status-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.billing-main-card,.billing-usage-card{border-radius:27px;padding:26px;border:1px solid #dcd9d1}.billing-main-card{background:#171916;color:#fff}.billing-main-card.active{background:linear-gradient(135deg,#171916 0,#242a1e 100%)}.billing-main-card.blocked{background:linear-gradient(135deg,#291d1a,#171916)}.billing-main-card .eyebrow{color:#858a80}.billing-main-card h2{font:600 27px/1.06 "Space Grotesk";letter-spacing:-.04em;margin:5px 0 0}.billing-main-card p{font-size:10px;color:#a1a59c;line-height:1.6;margin:26px 0 0;max-width:650px}.billing-usage-card{background:#fbfaf6}.subscription-pill{font-size:8px;font-weight:800;padding:6px 9px;border-radius:999px;letter-spacing:.06em;white-space:nowrap}.subscription-pill.success{background:var(--acid);color:#171916}.subscription-pill.trial{background:#f7db79;color:#524618}.subscription-pill.warning{background:#ffc46c;color:#5b411d}.subscription-pill.danger{background:#ff846b;color:#4a1e17}.trial-meter,.usage-bar{height:6px;background:#363a32;border-radius:99px;overflow:hidden;margin-top:15px}.trial-meter span{display:block;height:100%;background:var(--acid);border-radius:99px}.usage-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-top:18px}.usage-row strong{font-size:12px}.usage-bar{background:#e6e4dc;margin-top:7px}.usage-bar span{display:block;height:100%;background:var(--ink);border-radius:99px}.saas-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--acid);border-radius:25px;padding:24px;margin-bottom:18px}.saas-welcome h2{font:600 27px "Space Grotesk";margin:4px 0}.saas-welcome p{font-size:10px;margin:0;color:#596b31}.saas-welcome>i{font-size:42px}.saas-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.saas-plan-card{background:#fbfaf6;border:1px solid #dcd9d1;border-radius:24px;padding:22px;position:relative}.saas-plan-card.current{border-color:#8b9c63;box-shadow:inset 0 0 0 1px #8b9c63}.saas-plan-card .panel-head h3{font-size:20px}.plan-price{font:600 33px "Space Grotesk";letter-spacing:-.05em;margin:22px 0 7px}.plan-price small{font:500 9px "DM Sans";color:#8d9088;margin-left:3px}.saas-plan-card>p{font-size:9px;color:#8b8e86;min-height:27px}.plan-feature-list{list-style:none;padding:0;margin:18px 0;display:flex;flex-direction:column;gap:8px}.plan-feature-list li{font-size:9px;color:#666a61}.plan-feature-list li:before{content:"✓";font-weight:900;color:#658134;margin-right:7px}.plan-limits{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:18px}.plan-limits span{background:#efeee8;border-radius:12px;padding:9px;font-size:8px;color:#91948c}.plan-limits strong{display:block;color:#171916;font-size:13px}.integration-notice{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;background:#fff3d9;border:1px solid #f3d59c;border-radius:17px;margin-top:16px}.integration-notice>i{font-size:19px;color:#ab7625}.integration-notice strong{display:block;font-size:10px}.integration-notice p{font-size:9px;color:#866b45;margin:3px 0 0}.integration-state{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;font-size:9px;font-weight:700;margin-top:12px}.integration-state.ok{background:#e6f5cf;color:#58742f}.integration-state.warn{background:#fff0d1;color:#8b672e}
.settings-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.brand-preview{background:#22251f;color:#fff}.brand-preview-card{margin-top:18px;border-radius:23px;background:#171916;padding:28px;text-align:center;border:1px solid #373b33}.brand-preview-logo{width:64px;height:64px;margin:0 auto 16px;border-radius:20px;display:grid;place-items:center;background:var(--tenant-primary);color:#171916;font:700 26px "Space Grotesk"}.brand-preview-card img{width:70px;height:70px;object-fit:contain;border-radius:18px;margin-bottom:16px;background:#fff}.brand-preview-card h3{font:600 22px "Space Grotesk"}.brand-preview-card p{font-size:10px;color:#9ba095}.brand-preview-card span{font-size:8px;color:#676b63}
.join-body{background:#eae7dd;min-height:100vh;padding:28px}.join-shell{max-width:1040px;min-height:calc(100vh - 56px);margin:auto;display:grid;grid-template-columns:1fr 1fr;background:#171916;border-radius:32px;overflow:hidden;box-shadow:0 28px 90px rgba(20,20,18,.2)}.join-brand-panel{padding:42px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 30% 70%,#3c452c 0,#252820 38%,#171916 72%)}.tenant-brand{display:flex;align-items:center;gap:12px;font:600 15px "Space Grotesk"}.tenant-brand img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:13px}.join-brand-panel h1{font:600 52px/.97 "Space Grotesk";letter-spacing:-.06em;margin:16px 0}.join-brand-panel h1 span{color:var(--acid)}.join-brand-panel p{font-size:11px;color:#a0a49a;line-height:1.6;max-width:430px}.join-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.join-meta span{font-size:9px;padding:7px 9px;border:1px solid #41453d;border-radius:999px}.join-brand-panel>small{font-size:8px;color:#666b61}.join-form-panel{padding:48px;background:#fbfaf6}.join-form-panel h2{font:600 31px "Space Grotesk";letter-spacing:-.04em;margin:5px 0}.join-form-panel>p{font-size:10px;color:#888b83;line-height:1.5;margin-bottom:22px}.join-success{padding:22px;background:#eaf6d7;border-radius:18px}.join-success strong{font:600 22px "Space Grotesk"}.join-success p{font-size:10px;color:#637446;margin:8px 0 14px}
@media(max-width:1100px){.saas-plan-grid{grid-template-columns:1fr 1fr}.register-shell{grid-template-columns:1fr}.register-copy{min-height:350px}.groups-layout,.billing-status-grid,.settings-layout{grid-template-columns:1fr}}
@media(max-width:700px){.register-shell{width:100%;margin:0;min-height:100vh;border-radius:0}.register-copy{padding:28px;min-height:300px}.register-copy h1{font-size:40px}.register-form-card{padding:28px 20px}.register-plan-grid,.saas-plan-grid{grid-template-columns:1fr}.join-body{padding:0}.join-shell{min-height:100vh;border-radius:0;grid-template-columns:1fr}.join-brand-panel{min-height:310px;padding:28px}.join-brand-panel h1{font-size:41px}.join-form-panel{padding:30px 22px}.group-hero{flex-direction:column}.invite-box{align-items:stretch;flex-direction:column}.group-settings-row form{margin-left:0!important;width:100%}}
