:root{color:#17202a;font-synthesis:none;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh;display:flex}aside{color:#fff;z-index:10;background:#111827;flex-direction:column;width:250px;padding:24px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-2px;margin:4px 10px 28px;font-size:28px;font-weight:900}.brand small{letter-spacing:2px;color:#9ca3af;margin-top:-3px;font-size:8px;display:block}.profile{background:#1f2937;border-radius:14px;align-items:center;gap:10px;margin-bottom:20px;padding:12px;display:flex}.profile span,.member-row span,.booking-row span,.pay-row span{color:#9ca3af;margin-top:3px;font-size:12px;display:block}.avatar{background:#374151;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.avatar.sm{width:40px;height:40px}.profile b{font-size:13px}nav{gap:6px;display:grid}nav button,.logout,.menu{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:11px;padding:12px 13px;font-weight:700;display:flex}nav button.active,nav button:hover{color:#111827;background:#fff}.logout{color:#cbd5e1;margin-top:auto}.logout:hover{background:#1f2937}main{flex:1;min-width:0;margin-left:250px}header{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:12px;height:92px;padding:0 34px;display:flex}.eyebrow{color:#9ca3af;letter-spacing:.08em;font-size:10px;font-weight:700}h1{letter-spacing:-.04em;margin:3px 0 0;font-size:25px}.content{max-width:1000px;margin:auto;padding:30px 34px}.hero{color:#fff;background:#111827;border-radius:22px;justify-content:space-between;align-items:center;padding:28px;display:flex;overflow:hidden}.hero h2{margin:10px 0;font-size:30px}.hero p{color:#cbd5e1;max-width:520px}.pill{letter-spacing:.15em;color:#a7f3d0;font-size:10px;font-weight:900}.hero-icon{font-size:70px}.section-title{justify-content:space-between;align-items:center;margin:28px 0 14px;display:flex}.section-title h2{margin:0;font-size:18px}.section-title span{color:#9ca3af;letter-spacing:.15em;font-size:9px;font-weight:900}.cards{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.class-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;justify-content:space-between;align-items:center;padding:18px;display:flex;box-shadow:0 3px 14px #00000005}.class-card span{color:#64748b;font-size:12px;font-weight:800}.class-card h3{margin:4px 0;font-size:17px}.class-card small{color:#94a3b8}.class-card button,.primary{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:11px;align-items:center;gap:6px;padding:11px 14px;font-weight:800;display:flex}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:20px;margin-bottom:18px;padding:22px}.panel .section-title{margin-top:0}label{color:#475569;margin:14px 0;font-size:12px;font-weight:800;display:block}input,select{width:100%;font:inherit;background:#fff;border:1px solid #dbe1e8;border-radius:10px;margin-top:7px;padding:12px}.primary{justify-content:center;width:100%;margin-top:20px}.notice{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;margin-top:14px;padding:11px;font-size:13px;font-weight:700}.muted{color:#64748b;font-size:13px}.stats{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.stats>div{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:20px}.stats span{color:#64748b;font-size:12px;font-weight:700}.stats strong{margin-top:5px;font-size:35px;display:block}.stats small{color:#64748b;margin-left:4px;font-size:13px}.row,.pay-row,.booking-row,.member-row{border-bottom:1px solid #eef0f3;justify-content:space-between;align-items:center;padding:15px 0;display:flex}.row:last-child,.pay-row:last-child,.booking-row:last-child,.member-row:last-child{border-bottom:0}.booking-row div,.pay-row div,.member-row>div:nth-child(2){flex-direction:column;display:flex}.booking-row em{background:#f1f5f9;border-radius:999px;padding:6px 9px;font-size:11px;font-style:normal}.rank{border-bottom:1px solid #eef0f3;grid-template-columns:38px 1fr auto;align-items:center;padding:13px 0;display:grid}.rank b{color:#94a3b8}.pay-row strong{font-size:17px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.menu{color:#111827;display:none}.loading{text-align:center;color:#64748b;padding:70px}.login{background:#111827;place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border-radius:24px;width:min(480px,100%);padding:28px}.brand.big{color:#111827;margin-bottom:15px;margin-left:0}.login-card h1{margin:0}.login-card>p{color:#64748b;font-size:13px}.login-btn{cursor:pointer;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:14px;align-items:center;gap:12px;width:100%;margin:9px 0;padding:13px;display:flex}.login-btn:hover{border-color:#111827}.login-btn div{flex:1}.login-btn small{color:#94a3b8;margin-top:3px;display:block}.login-btn svg{color:#94a3b8}.member-row{justify-content:flex-start;gap:12px}.member-row svg{color:#94a3b8;margin-left:auto}@media (width<=720px){aside{width:270px;transition:all .2s;transform:translate(-100%)}aside.open{transform:none}main{margin-left:0}header{height:76px;padding:0 18px}.menu{margin-right:3px;padding:8px;display:flex}.content{padding:18px}.cards{grid-template-columns:1fr}.hero{padding:22px}.hero h2{font-size:25px}.hero-icon{font-size:50px}.stats strong{font-size:30px}.panel{padding:18px}.login{place-items:center;min-height:100dvh;padding:16px}.login-card{border-radius:20px;width:100%;max-width:380px;padding:26px 22px}.login-card .brand.big{margin-bottom:20px;margin-left:0;font-size:30px}.login-card h1{font-size:26px;line-height:1.25}.login-card>p{margin:12px 0 20px;font-size:14px;line-height:1.6}.login-card label{margin-top:16px;font-size:14px}.login-card input,.login-card select{min-height:50px;padding:13px 14px;font-size:16px}.login-card .primary{min-height:50px;margin-top:20px;font-size:16px}.login-card .login-btn{min-height:50px;padding:14px;font-size:15px}.app>aside{z-index:1200;padding-top:max(24px, env(safe-area-inset-top));overflow:hidden}.app>aside>.brand{flex-shrink:0;height:auto;margin-top:4px;margin-bottom:24px;overflow:visible}.app>aside>.brand small{overflow-wrap:anywhere;margin-top:5px;line-height:1.65}.app>aside>nav{min-height:0;overflow-y:auto}.mobile-menu-backdrop{z-index:1100;cursor:pointer;background:#1118276b;border:0;border-radius:0;padding:0;position:fixed;inset:0}}@media (width>=721px){.mobile-menu-backdrop{display:none}}
