:root {
    --ed-primary:#5038a5;
    --ed-primary-dark:#382779;
    --ed-secondary:#f2efff;
    --ed-accent:#f2b84b;
    --ed-success:#2e8b68;
    --ed-danger:#c94a5b;
    --ed-ink:#232238;
    --ed-muted:#737187;
    --ed-border:#e7e5ee;
    --ed-bg:#f7f7fb;
    --ed-radius:18px;
    --ed-shadow:0 14px 40px rgba(40,31,82,.08)
}
html,body {
    min-height:100%
}
body {
    font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
    color:var(--ed-ink);
    background:var(--ed-bg)
}
a {
    color:var(--ed-primary);
    text-decoration:none
}
a:hover {
    color:var(--ed-primary-dark)
}
.navbar-brand {
    font-weight:800;
    letter-spacing:-.03em
}
.brand-mark {
    display:inline-grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:12px;
    background:var(--ed-primary);
    color:#fff;
    margin-right:.55rem
}
.topbar {
    background:#fff;
    border-bottom:1px solid var(--ed-border)
}
.nav-link {
    font-weight:600;
    color:#555269
}
.nav-link:hover,.nav-link.active {
    color:var(--ed-primary)
}
.btn {
    border-radius:12px;
    font-weight:700;
    padding:.7rem 1rem
}
.btn-primary {
    background:var(--ed-primary);
    border-color:var(--ed-primary)
}
.btn-primary:hover {
    background:var(--ed-primary-dark);
    border-color:var(--ed-primary-dark)
}
.btn-soft {
    background:var(--ed-secondary);
    color:var(--ed-primary);
    border:0
}
.btn-soft:hover {
    background:#e7e1ff;
    color:var(--ed-primary-dark)
}
.hero {
    padding:5.5rem 0 4.5rem;
    background:radial-gradient(circle at 85% 15%,#efe8ff 0,transparent 35%),linear-gradient(180deg,#fff 0,#f7f7fb 100%)
}
.hero h1 {
    font-weight:850;
    letter-spacing:-.045em;
    font-size:clamp(2.5rem,5vw,4.7rem);
    line-height:1.02
}
.hero .lead {
    color:var(--ed-muted);
    max-width:700px;
    font-size:1.18rem
}
.eyebrow {
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.45rem .75rem;
    border-radius:999px;
    background:var(--ed-secondary);
    color:var(--ed-primary);
    font-size:.82rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em
}
.section-title {
    font-weight:800;
    letter-spacing:-.03em
}
.content-card,.club-card,.dash-card {
    background:#fff;
    border:1px solid var(--ed-border);
    border-radius:var(--ed-radius);
    box-shadow:var(--ed-shadow)
}
.club-card {
    overflow:hidden;
    height:100%;
    transition:transform .18s ease,box-shadow .18s ease
}
.club-card:hover {
    transform:translateY(-3px);
    box-shadow:0 18px 48px rgba(40,31,82,.12)
}
.club-cover {
    height:185px;
    background:linear-gradient(135deg,#eee9ff,#fff3d9);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--ed-primary);
    font-size:3rem
}
.club-cover img {
    width:100%;
    height:100%;
    object-fit:cover
}
.club-card .card-body {
    padding:1.35rem
}
.meta {
    color:var(--ed-muted);
    font-size:.92rem
}
.price {
    font-size:1.3rem;
    font-weight:800
}
.schedule-pill {
    display:inline-flex;
    padding:.38rem .65rem;
    border-radius:9px;
    background:#f6f5fa;
    color:#555269;
    font-size:.86rem;
    margin:.15rem .15rem .15rem 0
}
.page-head {
    padding:2.8rem 0 2rem;
    background:#fff;
    border-bottom:1px solid var(--ed-border)
}
.page-head h1 {
    font-weight:850;
    letter-spacing:-.035em
}
.dashboard-shell {
    padding:2rem 0 4rem
}
.sidebar-card {
    position:sticky;
    top:90px;
    padding:.75rem
}
.sidebar-card .nav-link {
    border-radius:11px;
    padding:.72rem .8rem
}
.sidebar-card .nav-link:hover {
    background:var(--ed-secondary)
}
.stat {
    padding:1.25rem
}
.stat-label {
    color:var(--ed-muted);
    font-size:.88rem;
    font-weight:700
}
.stat-value {
    font-size:1.8rem;
    font-weight:850;
    letter-spacing:-.03em
}
.avatar {
    display:inline-grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--ed-secondary);
    color:var(--ed-primary);
    font-weight:800
}
.empty-state {
    text-align:center;
    padding:3rem 1.5rem;
    color:var(--ed-muted)
}
.auth-shell {
    min-height:calc(100vh - 150px);
    display:flex;
    align-items:center;
    padding:3rem 0
}
.auth-card {
    max-width:520px;
    margin:auto;
    padding:2rem
}
.form-control,.form-select {
    border-radius:12px;
    border-color:var(--ed-border);
    padding:.78rem .9rem
}
.form-control:focus,.form-select:focus {
    border-color:#a99bea;
    box-shadow:0 0 0 .2rem rgba(80,56,165,.1)
}
.attendance-row {
    padding:1rem 0;
    border-bottom:1px solid var(--ed-border)
}
.attendance-row:last-child {
    border-bottom:0
}
.attendance-actions .btn {
    min-width:105px
}
.message-note {
    background:#faf9ff;
    border-left:4px solid var(--ed-primary);
    padding:1rem;
    border-radius:0 12px 12px 0
}
.footer {
    background:#fff;
    border-top:1px solid var(--ed-border);
    color:var(--ed-muted)
}
.badge-soft-success {
    background:#eaf7f1;
    color:var(--ed-success)
}
.badge-soft-warning {
    background:#fff5df;
    color:#9a6710
}
.badge-soft-danger {
    background:#fdecef;
    color:var(--ed-danger)
}
@media(max-width:991.98px) {
    .hero {
        padding:3.5rem 0
    }
    .sidebar-card {
        position:static
    }
    .attendance-actions .btn {
        min-width:0
    }
    .navbar-collapse {
        padding-top:1rem
    }
}
