*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1d23;background:#f5f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-shell{flex-direction:column;min-height:100vh;display:flex}.header{color:#fff;z-index:10;background:#1a1d23;position:sticky;top:0}.header-inner{flex-wrap:wrap;align-items:center;gap:32px;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.brand{letter-spacing:1px;align-items:baseline;gap:6px;font-weight:800;display:flex}.brand-mark{color:#ff6b35;font-size:1.3rem}.brand-sub{color:#aaa;letter-spacing:3px;font-size:.85rem}.nav{flex:1;gap:8px;display:flex}.nav-link{color:#c7c9cf;border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:600;text-decoration:none}.nav-link.active{color:#1a1d23;background:#ff6b35}.nav-link:hover:not(.active){color:#fff}.member-switcher{color:#aaa;align-items:center;gap:8px;font-size:.85rem;display:flex}.member-switcher select{color:#fff;background:#2a2e36;border:1px solid #3a3f48;border-radius:8px;padding:6px 10px;font-weight:600}.main-content{flex:1}.page{max-width:1200px;margin:0 auto;padding:32px 24px 64px}.page-hero h1{font-size:2rem;font-weight:800}.page-hero p{color:#666;margin-top:6px}.filter-row{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.filter-chip{cursor:pointer;color:#444;background:#fff;border:1px solid #e0e0e4;border-radius:999px;padding:8px 18px;font-weight:600}.filter-chip.active{color:#fff;background:#1a1d23;border-color:#1a1d23}.day-section{margin-bottom:36px}.day-heading{color:#1a1d23;border-left:4px solid #ff6b35;margin-bottom:14px;padding-left:10px;font-size:1.1rem;font-weight:700}.class-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.class-card{background:#fff;border-radius:14px;flex-direction:column;gap:8px;padding:18px;display:flex;box-shadow:0 2px 10px #0000000f}.class-card-top{justify-content:space-between;align-items:center;display:flex}.category-pill{color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.class-time{color:#1a1d23;font-weight:700}.class-name{font-size:1.15rem;font-weight:800}.class-instructor{color:#777;font-size:.88rem}.capacity-bar{background:#eee;border-radius:999px;height:7px;margin-top:4px;overflow:hidden}.capacity-fill{border-radius:999px;height:100%;transition:width .3s}.class-card-footer{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.spots-text{color:#666;font-size:.85rem;font-weight:600}.btn{cursor:pointer;border:none;border-radius:999px;padding:9px 20px;font-size:.9rem;font-weight:700}.btn-primary{color:#fff;background:#ff6b35}.btn-primary:hover{background:#e85a28}.btn-primary:disabled{color:#999;cursor:not-allowed;background:#ddd}.btn-booked{color:#2e7d32;background:#e8f5e9}.btn-danger{color:#c0392b;background:#fdecea}.btn-danger:hover{background:#fadbd8}.empty-state{color:#888;text-align:center;padding:40px 0}.booking-list{flex-direction:column;gap:12px;margin-top:20px;display:flex}.booking-row{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;box-shadow:0 2px 8px #0000000d}.booking-row h3{font-size:1.05rem;font-weight:700}.admin-form{background:#fff;border-radius:14px;flex-direction:column;gap:12px;margin:24px 0 32px;padding:20px;display:flex;box-shadow:0 2px 10px #0000000f}.form-row{flex-wrap:wrap;gap:10px;display:flex}.form-row input,.form-row select{border:1px solid #ddd;border-radius:8px;flex:1;min-width:140px;padding:10px 12px;font-size:.92rem}.admin-list{flex-direction:column;gap:10px;display:flex}.admin-row{background:#fff;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex;box-shadow:0 2px 8px #0000000d}.admin-row-info{flex-direction:column;gap:2px;display:flex}.admin-row-info span{color:#777;font-size:.85rem}.admin-row-controls{align-items:center;gap:14px;display:flex}.admin-row-controls label{color:#666;align-items:center;gap:6px;font-size:.8rem;display:flex}.admin-row-controls input{border:1px solid #ddd;border-radius:6px;width:60px;padding:6px 8px}.toast{color:#fff;z-index:50;background:#1a1d23;border-radius:999px;padding:12px 22px;font-size:.9rem;font-weight:600;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000040}@media (width<=640px){.header-inner{gap:14px}.nav{order:3;justify-content:center;width:100%}}
