:root{color-scheme:dark;--bg:#131313;--panel:#1c1c1c;--line:#323232;--muted:#aaa9a4;--text:#f5f3ee;--red:#fa353d;--green:#b5e3b6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,4vw,46px);letter-spacing:-1.7px;line-height:1.14}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:17px}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ff979b;outline-offset:3px}input,select{width:100%;padding:12px;border-radius:8px;border:1px solid #4a4a4a;background:#141414;color:var(--text)}label{display:grid;gap:6px;font-size:12px;font-weight:600}form{display:grid;gap:16px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--red);font-weight:800}.brand{font-size:24px;font-weight:900;letter-spacing:-1px;display:flex;align-items:center;gap:9px}.brand img{width:40px}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:3px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;background:var(--red);border:1px solid var(--red);border-radius:8px;font-weight:700;font-size:12px;text-decoration:none}.btn.secondary{background:#252525;border-color:#464646}.btn.quiet{background:transparent;border-color:var(--line);color:var(--muted)}.btn.danger{background:#fa353d16;color:#ff9498;border-color:#6b3538}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:15px}.panel{padding:24px;border:1px solid var(--line);background:var(--panel);border-radius:14px}.small{font-size:12px}.pill{display:inline-block;border-radius:5px;padding:4px 8px;background:#303030;color:#d0cfca;font-size:10px;font-weight:700}.pill.good{background:#b5e3b614;color:var(--green)}.pill.red{background:#fa353d18;color:#ff8d93}.pill.amber{background:#f0c77714;color:#f0c777}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;max-width:1440px;margin:auto}.auth-story{padding:50px 60px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);background:radial-gradient(ellipse at bottom left,#63252b44,transparent 60%)}.auth-story h1{font-size:clamp(45px,6vw,78px);max-width:580px;letter-spacing:-3px;margin:22px 0}.auth-story h1 span{color:var(--red)}.auth-story p{max-width:420px;color:var(--muted)}.auth-numbers{display:flex;gap:45px;margin-top:45px}.auth-numbers b{font-size:35px;display:block;line-height:1.2}.auth-numbers span{font-size:11px;color:var(--muted)}.auth-form{padding:60px 45px;display:flex;align-items:center;justify-content:center}.auth-form>div{max-width:400px;width:100%}.auth-form h2{font-size:29px;margin:15px 0 9px}.auth-form form{margin-top:28px}.notice{padding:15px 17px;border:1px solid #6a5937;background:#f0c7770a;border-radius:8px;color:#ebd8b4;font-size:12px;margin:18px 0}.error{color:#ff999f;font-size:12px;white-space:pre-line}.auth-switch{margin-top:22px;text-align:center}.auth-switch button{border:0;background:none;color:var(--muted);text-decoration:underline;padding:8px;font-size:12px}.app-shell{display:grid;grid-template-columns:215px minmax(0,1fr);min-height:100vh;max-width:1700px;margin:auto}.sidebar{padding:32px 22px;position:sticky;top:0;height:100vh;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#171717}.nav{display:grid;gap:7px;margin-top:55px}.nav button{border:0;background:none;color:var(--muted);padding:14px;border-radius:8px;text-align:left;font-weight:600}.nav button.active{color:var(--red);background:#fa353d14}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:20px}.side-bottom .btn{width:100%;margin-top:14px}.workspace{min-width:0}.topbar{padding:23px 38px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.content{padding:35px 38px 45px}.pagehead{margin-bottom:28px}.pagehead p{margin-top:10px;color:var(--muted);font-size:13px}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px}.weekbar{margin-bottom:16px}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:23px}.day{background:#1b1b1b;border:1px solid var(--line);border-radius:9px;padding:12px 3px;color:var(--muted);font-size:10px}.day b{display:block;font-size:23px;color:var(--text)}.day.active{background:var(--red);border-color:var(--red);color:white}.cards{display:grid;gap:12px}.class-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;grid-template-columns:65px minmax(0,1fr) auto;gap:17px;align-items:center;border-left:3px solid #4b4b4b}.class-card.booked{border-left-color:var(--green)}.class-card.canceled{opacity:.65}.time{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.8px}.time small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0}.class-card h3{margin:4px 0}.meter{height:4px;background:#353535;border-radius:3px;width:70px;overflow:hidden}.meter i{display:block;background:var(--red);height:100%}.capacity{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin-top:10px}.actions{display:grid;gap:7px}.balance{font-size:64px;font-weight:800;letter-spacing:-3px;line-height:1.2;margin:18px 0 5px}.rail{display:grid;gap:16px;align-content:start}.rail p{font-size:12px;color:var(--muted)}.rule-number{font-size:32px;font-weight:800}.divider{height:1px;background:var(--line);margin:18px 0}.empty{padding:45px 22px;border:1px dashed #434343;border-radius:12px;color:var(--muted);text-align:center}.ledger-line{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:16px 0}.ledger-line:last-child{border:0}.ledger-line b{font-variant-numeric:tabular-nums}.positive{color:var(--green)}.notifications article{border-bottom:1px solid var(--line);padding:20px 0}.notifications article:first-child{padding-top:0}.notifications p{font-size:13px;color:var(--muted);margin:7px 0}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px}th,td{padding:14px 10px;border-bottom:1px solid var(--line)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.mobile-nav{display:none}dialog{background:#202020;color:var(--text);border:1px solid #444;border-radius:15px;padding:26px;width:min(460px,calc(100% - 30px))}dialog::backdrop{background:#000b}dialog h2{margin-bottom:15px}dialog p{margin:12px 0 24px;color:var(--muted)}dialog .row{justify-content:flex-end}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);z-index:50;background:#dfebdc;color:#1c321b;border:1px solid #8da58b;padding:13px 20px;border-radius:9px;font-size:13px;box-shadow:0 7px 25px #0006}#toast:empty{display:none}#toast.error{background:#ffe0e0;color:#772127}.loading{padding:60px;text-align:center}.refresh-error{border:1px solid #a45457;background:#fa353d12;color:#ffc2c5;padding:14px;margin-bottom:18px;border-radius:8px}.footer{margin-top:28px;color:var(--muted);font-size:10px}.preview-banner{background:#40321b;color:#f5dcaa;text-align:center;padding:8px;font-size:12px}.pending{max-width:620px;margin:12vh auto;padding:28px}.pending h1{margin:24px 0 15px}
@media(max-width:1050px){.dashboard{grid-template-columns:1fr}.rail{grid-template-columns:1fr 1fr}.auth-story{padding:40px}.content,.topbar{padding-inline:25px}.app-shell{grid-template-columns:190px 1fr}.sidebar{padding-inline:16px}}
@media(max-width:700px){.auth{display:block}.auth-story{padding:26px 23px 30px;border-right:0;border-bottom:1px solid var(--line)}.auth-story h1{font-size:43px;margin:24px 0 14px}.auth-story .bottom-copy,.auth-numbers{display:none}.auth-form{padding:30px 23px 45px}.auth-form h2{font-size:25px}.app-shell{display:block}.sidebar{display:none}.topbar{padding:17px 20px;align-items:center}.topbar .desktop-only{display:none}.content{padding:26px 18px 110px}.dashboard{gap:20px}.class-card{padding:15px 12px;grid-template-columns:49px minmax(0,1fr) auto;gap:10px}.time{font-size:19px}.class-card h3{font-size:13px}.class-card .eyebrow{font-size:8px;letter-spacing:1px}.class-card .btn{padding:8px 10px;font-size:10px}.class-card .pill{font-size:9px}.capacity{font-size:9px;gap:5px}.meter{width:38px}.day{padding-block:10px}.day b{font-size:20px}.days{gap:5px}.panel{padding:18px}.rail{gap:12px}.balance{font-size:48px}.rail p{font-size:11px}.admin-grid{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:5;background:#1b1b1bf5;border-top:1px solid #3a3a3a;justify-content:space-around;padding:10px 3px max(10px,env(safe-area-inset-bottom))}.mobile-nav button{background:none;border:0;color:var(--muted);min-height:44px;min-width:52px;padding:5px;font-size:10px}.mobile-nav button.active{color:var(--red);font-weight:800}#toast{bottom:84px}.tablewrap .btn{padding:7px 9px}.brand{font-size:20px}.brand img{width:32px}.brand small{font-size:8px}.topbar .small{font-size:10px}.pending{margin:4vh auto}.weekbar h2{font-size:16px}.pagehead h1{font-size:32px}}
