.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.1rem;font-family:inherit;font-size:.9rem;font-weight:500;border:none;border-radius:.5rem;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:var(--bg);background:var(--accent)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px var(--accent-dim)}.btn-secondary{color:var(--text);background:var(--surface);border:1px solid #2a3544}.btn-secondary:hover:not(:disabled){background:#243040}.btn-ghost{color:var(--muted);background:transparent}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface)}.btn-danger{color:#fecaca;background:#7f1d1d55;border:1px solid #991b1b}.field{display:flex;flex-direction:column;gap:.35rem}.field-label{font-size:.8rem;font-weight:500;color:var(--muted)}.field-input{padding:.65rem .75rem;font-family:inherit;font-size:.95rem;color:var(--text);background:var(--surface);border:1px solid #2a3544;border-radius:.5rem}.field-input:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}.field-textarea{min-height:5rem;resize:vertical}.card{padding:1.25rem;background:var(--surface);border:1px solid #243040;border-radius:.75rem}.badge{display:inline-block;padding:.2rem .55rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:999px}.badge-default{color:var(--muted);background:#243040}.badge-accent{color:var(--accent);background:var(--accent-dim)}.badge-warn{color:#fcd34d;background:#78350f44}.badge-success{color:#6ee7b7;background:#064e3b44}.empty-state{padding:3rem 1rem;text-align:center;color:var(--muted)}.empty-state h3{margin:0 0 .5rem;color:var(--text);font-family:var(--font-display)}.empty-state p{margin:0 0 1.25rem}.loading{padding:3rem;text-align:center;color:var(--muted)}.form-stack{display:flex;flex-direction:column;gap:1rem}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.page-header{margin-bottom:1.75rem}.page-header h1{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.page-header p{margin:0;color:var(--muted);font-size:.95rem}.grid-2{display:grid;gap:1rem}@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr}}.stack{display:flex;flex-direction:column;gap:1rem}.inline-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.85rem;color:var(--muted)}.error-banner{padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem;color:#fecaca;background:#7f1d1d44;border:1px solid #991b1b;border-radius:.5rem}.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.filter-btn{padding:.4rem .85rem;font-family:inherit;font-size:.85rem;color:var(--muted);background:transparent;border:1px solid #2a3544;border-radius:999px;cursor:pointer}.filter-btn.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{padding:1rem;background:var(--surface);border:1px solid #243040;border-radius:.75rem}.stat-card .value{font-family:var(--font-display);font-size:1.75rem;font-weight:600}.stat-card .label{font-size:.8rem;color:var(--muted)}.progress-bar{height:6px;margin-top:.5rem;background:#243040;border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);border-radius:999px}.shell{display:flex;flex-direction:column;min-height:100dvh;max-width:56rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.header{margin-bottom:2rem}.header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.logo{font-family:var(--font-display);font-weight:600;font-size:1.1rem;letter-spacing:-.02em;color:var(--text);text-decoration:none}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-name{font-size:.85rem;color:var(--muted)}.nav-link{font-size:.9rem;color:var(--muted);text-decoration:none}.nav-link:hover{color:var(--text)}.btn-sm{padding:.5rem .9rem;font-size:.85rem}.view-toggle{display:flex;padding:.2rem;background:var(--surface);border:1px solid #2a3544;border-radius:.5rem}.view-toggle button{padding:.35rem .75rem;font-family:inherit;font-size:.8rem;font-weight:500;color:var(--muted);background:transparent;border:none;border-radius:.35rem;cursor:pointer}.view-toggle button.active{color:var(--bg);background:var(--accent)}.nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--surface)}.nav-item{padding:.45rem .85rem;font-size:.85rem;font-weight:500;color:var(--muted);text-decoration:none;border-radius:999px;transition:background .15s ease,color .15s ease}.nav-item:hover{color:var(--text);background:var(--surface)}.nav-item.active{color:var(--bg);background:var(--accent)}.main{flex:1}.page{display:flex;flex-direction:column;flex:1}.hero{flex:1}.eyebrow{margin:0 0 1rem;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.hero h1{margin:0 0 1.25rem;font-family:var(--font-display);font-size:clamp(2.25rem,8vw,3rem);font-weight:600;line-height:1.15;letter-spacing:-.03em}.lead{margin:0 0 2rem;font-size:1.05rem;line-height:1.6;color:var(--muted);max-width:38ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.cta{display:inline-block;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;text-decoration:none;color:var(--bg);background:var(--accent);border-radius:.5rem;transition:transform .15s ease,box-shadow .15s ease}.cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px var(--accent-dim)}.cta-secondary{display:inline-block;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid #2a3544;border-radius:.5rem}.cta-secondary:hover{background:#243040}.categories-preview{display:flex;gap:.75rem}.category-chip{padding:.5rem 1rem;font-size:.9rem;background:var(--surface);border:1px solid #243040;border-radius:999px}.features{display:grid;gap:1rem;margin-top:3rem}@media(min-width:640px){.features{grid-template-columns:1fr 1fr}}.feature{padding:1.25rem;background:var(--surface);border:1px solid #243040;border-radius:.75rem}.feature h3{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.1rem}.feature p{margin:0;font-size:.9rem;line-height:1.5;color:var(--muted)}.footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--surface)}.footer p{margin:0;font-size:.85rem;color:var(--muted)}.class-card-top{display:flex;gap:.5rem;margin-bottom:.75rem}.class-card-title{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.15rem}.class-card-desc{margin:0 0 .75rem;font-size:.9rem;line-height:1.5;color:var(--muted)}.class-card-meta{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;font-size:.82rem;color:var(--muted)}.class-card-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.75rem;border-top:1px solid #243040}.class-price{font-weight:600;color:var(--accent)}.class-spots{font-size:.85rem;color:var(--muted)}.feed-post{margin-bottom:0}.feed-post-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.feed-post-author{font-weight:600}.feed-post-time{font-size:.8rem;color:var(--muted)}.feed-post-content{margin:0;line-height:1.55}.booking-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.booking-info h4{margin:0 0 .25rem;font-size:1rem}.booking-info p{margin:0;font-size:.85rem;color:var(--muted)}.booking-actions{display:flex;flex-wrap:wrap;gap:.5rem}*,*:before,*:after{box-sizing:border-box}:root{--bg: #0f1419;--surface: #1a222d;--text: #e8edf4;--muted: #8b9aab;--accent: #5eead4;--accent-dim: #2dd4bf33;--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif}html{font-size:18px;-webkit-font-smoothing:antialiased}body{margin:0;min-height:100dvh;font-family:var(--font-sans);color:var(--text);background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% -20%,var(--accent-dim),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,#3b82f622,transparent)}#root{min-height:100dvh}
