:root {
    --edu-primary-950: #17244f;
    --edu-primary-800: #243b95;
    --edu-primary-700: #3157d5;
    --edu-primary-100: #e8edff;
    --edu-primary-50: #f5f7ff;
    --edu-ink: #172033;
    --edu-ink-soft: #33415c;
    --edu-muted: #64748b;
    --edu-muted-light: #94a3b8;
    --edu-surface: #ffffff;
    --edu-surface-subtle: #f8faff;
    --edu-background: #f5f7fb;
    --edu-border: #e4e9f2;
    --edu-border-strong: #d5ddea;
    --edu-danger: #c24155;
    --edu-danger-soft: #fff0f2;
    --edu-warning: #a66b08;
    --edu-warning-soft: #fff8e7;
    --edu-success: #16805c;
    --edu-success-soft: #eaf8f2;
    --edu-excellent: #7252b8;
    --edu-excellent-soft: #f2edff;
    --edu-shadow-sm: 0 0.35rem 1.25rem rgba(23, 32, 51, 0.05);
    --edu-shadow-md: 0 0.75rem 2.25rem rgba(23, 32, 51, 0.08);
    --edu-radius-sm: 0.75rem;
    --edu-radius: 1.25rem;
    --edu-radius-lg: 1.75rem;
    --edu-space-1: 0.25rem;
    --edu-space-2: 0.5rem;
    --edu-space-3: 0.75rem;
    --edu-space-4: 1rem;
    --edu-space-5: 1.5rem;
    --edu-space-6: 2rem;
    --edu-space-7: 3rem;
}

body {
    background: var(--edu-background);
    color: var(--edu-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: -0.01em;
}

.student-card-print-wrap {
    display: flex;
    justify-content: center;
}

.student-card {
    width: min(100%, 760px);
    overflow: hidden;
    color: #172033;
    background: #fff;
    border: 1px solid #d5ddea;
    border-radius: 1.25rem;
    box-shadow: var(--edu-shadow-md);
}

.student-card-header,
.student-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    color: #fff;
    background: var(--edu-primary-950);
}

.student-card-label { font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.student-card-body { display: grid; grid-template-columns: auto 1fr auto; gap: 1.25rem; align-items: center; padding: 2rem 1.5rem; }
.student-card-avatar { display: grid; width: 5rem; height: 5rem; place-items: center; color: var(--edu-primary-700); background: var(--edu-primary-100); border-radius: 1rem; font-size: 1.25rem; font-weight: 700; }
.student-card-identity h2 { margin-bottom: 1rem; font-size: 1.65rem; }
.student-card-identity dl { display: flex; flex-direction: column; gap: .55rem; margin: 0; font-size: .9rem; }
.student-card-identity dl > div { min-width: 0; }
.student-card-identity dt { color: var(--edu-muted); }
.student-card-identity dd { margin: 0; font-weight: 600; }
.student-card-qr { text-align: center; }
.student-card-qr img { display: block; width: 150px; height: 150px; margin-bottom: .5rem; }
.student-card-qr small { color: var(--edu-muted); font-size: .7rem; }
.student-card-footer { color: #dbe4ff; background: var(--edu-primary-800); font-size: .72rem; }

.qr-scanner-frame { position: relative; overflow: hidden; min-height: 240px; background: #10182d; border-radius: 1rem; }
.qr-scanner-frame video { display: block; width: 100%; min-height: 240px; object-fit: cover; }
.qr-scanner-guide { position: absolute; inset: 18% 18%; border: 3px solid #fff; border-radius: 1rem; box-shadow: 0 0 0 999px rgba(16, 24, 45, .35); }

@media (max-width: 575.98px) {
    .student-card-body { grid-template-columns: auto 1fr; }
    .student-card-qr { grid-column: 1 / -1; justify-self: center; }
}

@media print {
    @page { size: A4 portrait; margin: 12mm; }
    body * { visibility: hidden !important; }
    .student-card, .student-card * { visibility: visible !important; }
    .student-card { position: absolute; top: 0; left: 0; }
    .no-print, nav, aside, header, footer { display: none !important; }
    body { background: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .student-card-print-wrap { display: block; }
    .student-card { width: 86mm; height: 54mm; box-shadow: none; border-radius: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .student-card-header, .student-card-footer, .student-card-avatar, .student-card-qr { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .student-card-header { padding: 2.5mm 4mm; }
    .student-card-header .edu-brand { font-size: .85rem !important; }
    .student-card-body { grid-template-columns: auto 1fr auto; padding: 4mm; gap: 3mm; }
    .student-card-avatar { display: grid; width: 12mm; height: 12mm; border-radius: 3mm; font-size: .7rem; }
    .student-card-identity h2 { margin-bottom: 2mm; font-size: 1rem; }
    .student-card-identity { min-width: 0; }
    .student-card-identity dl { gap: 2mm; font-size: .58rem; white-space: nowrap; }
    .student-card-identity dl > div { flex: 1 1 0; }
    .student-card-identity dt, .student-card-identity dd { white-space: nowrap; }
    .student-card-identity dd { overflow: hidden; text-overflow: ellipsis; }
    .student-card-identity p { font-size: .55rem; }
    .student-card-qr { justify-self: auto; }
    .student-card-qr img { width: 25mm; height: 25mm; margin-bottom: 1mm; }
    .student-card-qr small { font-size: .45rem; }
    .student-card-footer { padding: 1.5mm 4mm; font-size: .45rem; }
}

a {
    color: var(--edu-primary-700);
}

a:focus-visible,
button:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible {
    outline: 3px solid rgba(49, 87, 213, 0.3);
    outline-offset: 2px;
}

.edu-card {
    background: var(--edu-surface);
    border: 1px solid var(--edu-border);
    border-radius: var(--edu-radius);
    box-shadow: var(--edu-shadow-sm);
}

.edu-eyebrow {
    color: var(--edu-primary-700);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.edu-muted {
    color: var(--edu-muted);
}

.edu-icon {
    align-items: center;
    background: var(--edu-primary-soft);
    border-radius: var(--edu-radius-sm);
    color: var(--edu-primary-700);
    display: inline-flex;
    height: 2.75rem;
    justify-content: center;
    width: 2.75rem;
}

.edu-shell {
    min-height: 100vh;
}

.edu-home {
    background: #17244f;
    min-height: 100vh;
    overflow: hidden;
    position: relative;
}

.edu-home::before {
    background: #3157d5;
    content: "";
    height: 32rem;
    left: -14rem;
    opacity: 0.65;
    position: absolute;
    top: -17rem;
    transform: rotate(-14deg);
    width: 48rem;
}

.edu-home-glow {
    border-radius: 50%;
    filter: blur(2px);
    height: 18rem;
    opacity: 0.9;
    position: absolute;
    width: 18rem;
}

.edu-home-glow-one { background: #f15b4f; right: -8rem; top: 11rem; }
.edu-home-glow-two { background: #f5bf42; bottom: -12rem; left: 25%; }

.edu-home-eyebrow { color: #f5bf42; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.13em; position: relative; text-transform: uppercase; top: -0.8rem; }
.edu-home h1 { font-size: clamp(2.25rem, 4.4vw, 3.25rem); }
.edu-home h1 span { color: #f5bf42; white-space: nowrap; }
.edu-home-lead { color: rgba(255, 255, 255, 0.76); max-width: 42rem; }
.edu-btn-coral { background: #f15b4f; border: 0; box-shadow: 0 0.75rem 1.5rem rgba(241, 91, 79, 0.25); color: #fff; }
.edu-btn-coral:hover, .edu-btn-coral:focus-visible { background: #ff7669; color: #fff; }

.edu-ticker { align-items: center; background: #f5bf42; border-radius: 0.9rem; box-shadow: 0 0.65rem 1.5rem rgba(8, 16, 49, 0.2); color: #172033; display: flex; min-height: 3.2rem; overflow: hidden; position: relative; z-index: 1; }
.edu-ticker-label { align-items: center; background: #f15b4f; color: #fff; display: flex; flex: 0 0 auto; font-size: 0.78rem; font-weight: 800; height: 3.2rem; letter-spacing: 0.08em; padding: 0 1rem; text-transform: uppercase; }
.edu-ticker-window { flex: 1 1 auto; overflow: hidden; }
.edu-ticker-track { align-items: center; animation: edu-ticker-scroll 26s linear infinite; display: inline-flex; gap: 4rem; min-width: max-content; padding: 0 2rem; white-space: nowrap; }
.edu-ticker-track span::before { color: #f15b4f; content: "•"; font-size: 1.3rem; margin-right: 0.8rem; vertical-align: -0.1em; }
.edu-ticker-toggle { background: transparent; border: 0; color: #172033; flex: 0 0 auto; padding: 0.8rem 1rem; }
.edu-ticker-toggle:focus-visible { outline-color: #172033; }
.edu-ticker.is-paused .edu-ticker-track { animation-play-state: paused; }
@keyframes edu-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.edu-home-card { background: #fff; border: 0.35rem solid #f5bf42; border-radius: 1.75rem; box-shadow: 0 1.25rem 3rem rgba(8, 16, 49, 0.26); position: relative; }
.edu-home-card-top { align-items: flex-start; display: flex; justify-content: space-between; }
.edu-home-icon { align-items: center; background: #e8edff; border-radius: 1rem; color: #3157d5; display: inline-flex; height: 3.2rem; justify-content: center; width: 3.2rem; }
.edu-home-sticker { background: #f15b4f; border-radius: 99rem; color: #fff; font-size: 0.7rem; font-weight: 800; padding: 0.45rem 0.75rem; text-transform: uppercase; }
.edu-step-number { align-items: center; background: #17244f; border-radius: 50%; color: #f5bf42; display: inline-flex; font-size: 0.78rem; font-weight: 800; height: 1.7rem; justify-content: center; width: 1.7rem; }
.edu-home-quote { background: rgba(255, 255, 255, 0.1); border-left: 0.3rem solid #f5bf42; border-radius: 0 1rem 1rem 0; color: #fff; max-width: 48rem; padding: 1rem 1.25rem; position: relative; }
.edu-home-quote blockquote { font-size: clamp(1.05rem, 2vw, 1.35rem); font-style: italic; font-weight: 600; }
.edu-home-quote figcaption { color: #f5bf42; font-size: 0.82rem; font-weight: 750; }
.edu-home-quote-mark { color: #f15b4f; font-size: 2.5rem; line-height: 1; }
.edu-home-cover { background-image: url('https://images.unsplash.com/photo-1529390079861-591de354faf5?auto=format&fit=crop&w=900&q=85'); background-position: center; background-size: cover; border-radius: 1.15rem; height: 10.5rem; margin-left: -0.5rem; margin-right: -0.5rem; overflow: hidden; position: relative; }
.edu-home-cover::after { background: linear-gradient(180deg, transparent 35%, rgba(23, 36, 79, 0.75)); content: ""; inset: 0; position: absolute; }
.edu-home-cover figcaption { bottom: 0.8rem; color: #fff; font-size: 0.8rem; font-weight: 750; left: 1rem; position: absolute; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
    .edu-ticker-track { animation: none; }
}

@media (max-width: 575.98px) {
    .edu-ticker-label { font-size: 0.65rem; padding: 0 0.7rem; }
    .edu-ticker-track { gap: 2rem; padding: 0 1rem; }
    .edu-home h1 { font-size: 2.15rem; }
    .edu-home h1 span { white-space: normal; overflow-wrap: anywhere; }
}

.edu-app-shell {
    min-height: 100vh;
}

.edu-main {
    min-width: 0;
}

.edu-topbar {
    background: rgba(255, 255, 255, 0.92);
    border-bottom: 1px solid var(--edu-border);
    min-height: 4.5rem;
    position: sticky;
    top: 0;
    z-index: 10;
}

.edu-menu-toggle {
    align-items: center;
    background: var(--edu-primary-800);
    border: 0;
    border-radius: 0.7rem;
    color: #fff;
    display: inline-flex;
    font-size: 1.35rem;
    height: 2.75rem;
    justify-content: center;
    padding: 0;
    width: 2.75rem;
}

.edu-menu-toggle:hover { background: var(--edu-primary-700); color: #fff; }
.edu-menu-toggle:focus-visible { outline: 3px solid rgba(49, 87, 213, 0.35); outline-offset: 3px; }

.edu-brand {
    color: var(--edu-ink);
    font-weight: 800;
    letter-spacing: -0.04em;
    text-decoration: none;
}

.edu-brand-mark {
    align-items: center;
    background: var(--edu-primary-700);
    border-radius: 0.8rem;
    color: #fff;
    display: inline-flex;
    height: 2.25rem;
    justify-content: center;
    margin-right: 0.65rem;
    width: 2.25rem;
}

.edu-sidebar {
    background: var(--edu-primary-950);
    color: rgba(255, 255, 255, 0.72);
    min-height: 100vh;
    width: 17rem;
}

.edu-sidebar .edu-brand {
    color: #fff;
}

.edu-sidebar .edu-brand-mark {
    background: rgba(255, 255, 255, 0.14);
}

.edu-sidebar-label {
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    margin: 1.75rem 0 0.5rem;
    text-transform: uppercase;
}

.edu-sidebar-link {
    align-items: center;
    border-radius: 0.75rem;
    color: rgba(255, 255, 255, 0.68);
    display: flex;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    text-decoration: none;
    transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.edu-sidebar-link:hover,
.edu-sidebar-link:focus-visible,
.edu-sidebar-link.active {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    transform: translateX(2px);
}

.edu-sidebar-link i {
    font-size: 1.05rem;
    width: 1.25rem;
}

.edu-avatar {
    align-items: center;
    background: var(--edu-primary-100);
    border-radius: 50%;
    color: var(--edu-primary-800);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.8rem;
    font-weight: 800;
    height: 2.25rem;
    justify-content: center;
    width: 2.25rem;
}

.edu-page-header {
    align-items: flex-start;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
}

.edu-page-header h1 {
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 750;
    letter-spacing: -0.04em;
}

.edu-stat-card {
    height: 100%;
    padding: 1.25rem;
}

.edu-stat-value {
    font-size: 1.8rem;
    font-weight: 750;
    letter-spacing: -0.05em;
}

.edu-stat-label {
    color: var(--edu-muted);
    font-size: 0.86rem;
}

.edu-progress {
    background: #edf0f6;
    border-radius: 99rem;
    height: 0.55rem;
    overflow: hidden;
}

.edu-progress-bar {
    background: var(--edu-primary-700);
    border-radius: inherit;
    height: 100%;
}

.edu-progress-bar.success { background: var(--edu-success); }
.edu-progress-bar.warning { background: #d69b27; }
.edu-progress-bar.danger { background: var(--edu-danger); }
.edu-progress-bar.excellent { background: var(--edu-excellent); }

.edu-mastery-badge {
    align-items: center;
    border-radius: 99rem;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
}

.edu-mastery-badge.danger { background: var(--edu-danger-soft); color: var(--edu-danger); }
.edu-mastery-badge.warning { background: var(--edu-warning-soft); color: var(--edu-warning); }
.edu-mastery-badge.success { background: var(--edu-success-soft); color: var(--edu-success); }
.edu-mastery-badge.excellent { background: var(--edu-excellent-soft); color: var(--edu-excellent); }

.edu-empty-state {
    background: var(--edu-surface-subtle);
    border: 1px dashed var(--edu-border-strong);
    border-radius: var(--edu-radius);
    padding: 2.5rem 1.5rem;
    text-align: center;
}

.edu-empty-state .edu-icon {
    margin-bottom: 1rem;
}

.edu-toolbar {
    background: var(--edu-surface);
    border: 1px solid var(--edu-border);
    border-radius: var(--edu-radius);
    padding: 0.85rem;
}

.edu-alert {
    border: 0;
    border-left: 4px solid currentColor;
    border-radius: var(--edu-radius-sm);
}

.edu-alert.info { background: var(--edu-primary-50); color: var(--edu-primary-800); }
.edu-alert.warning { background: var(--edu-warning-soft); color: var(--edu-warning); }
.edu-alert.danger { background: var(--edu-danger-soft); color: var(--edu-danger); }
.edu-alert.success { background: var(--edu-success-soft); color: var(--edu-success); }

.table.edu-table {
    --bs-table-bg: transparent;
    color: var(--edu-ink);
    margin-bottom: 0;
}

.edu-table th {
    color: var(--edu-muted);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.edu-table > :not(caption) > * > * {
    border-bottom-color: var(--edu-border);
    padding: 1rem 0.75rem;
}

.edu-table tbody tr:hover {
    background: var(--edu-primary-50);
}

.edu-form-card .form-label {
    color: var(--edu-ink-soft);
    font-size: 0.86rem;
    font-weight: 650;
}

.edu-form-card > .mb-3,
.edu-form-card > .mb-4,
.edu-form-card > .form-group {
    margin-bottom: 1.15rem !important;
}

.edu-form-card .form-text {
    color: var(--edu-muted);
    font-size: 0.78rem;
    margin-top: 0.4rem;
}

.edu-form-card .invalid-feedback,
.edu-form-card .form-error-message {
    color: var(--edu-danger);
    display: block;
    font-size: 0.8rem;
    margin-top: 0.4rem;
}

.edu-form-intro {
    align-items: center;
    background: var(--edu-primary-50);
    border: 1px solid var(--edu-primary-100);
    border-radius: var(--edu-radius-sm);
    display: flex;
    gap: 0.85rem;
    padding: 1rem;
}

.edu-form-badge {
    align-items: center;
    background: var(--edu-primary-700);
    border-radius: 0.7rem;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.edu-confirm-modal { border: 0; border-radius: var(--edu-radius); box-shadow: 0 1.25rem 3rem rgba(23, 32, 51, 0.2); }
.edu-confirm-icon { align-items: center; background: var(--edu-primary-100); border-radius: 0.85rem; color: var(--edu-primary-700); display: inline-flex; font-size: 1.35rem; height: 3rem; justify-content: center; width: 3rem; }
.edu-confirm-modal .modal-footer { gap: 0.6rem; }

.edu-form-card input[type="color"] {
    background: var(--edu-surface);
    cursor: pointer;
    height: 3rem;
    padding: 0.3rem;
    width: 5rem;
}

.form-control,
.form-select {
    border-color: var(--edu-border-strong);
    border-radius: 0.75rem;
    min-height: 2.75rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--edu-primary-700);
    box-shadow: 0 0 0 0.2rem rgba(49, 87, 213, 0.12);
}

.btn {
    border-radius: 0.75rem;
    font-weight: 650;
}

.btn-primary {
    --bs-btn-bg: var(--edu-primary-700);
    --bs-btn-border-color: var(--edu-primary-700);
    --bs-btn-hover-bg: var(--edu-primary-800);
    --bs-btn-hover-border-color: var(--edu-primary-800);
    --bs-btn-active-bg: var(--edu-primary-950);
    --bs-btn-active-border-color: var(--edu-primary-950);
}

.status-dot {
    display: inline-block;
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    vertical-align: .08rem;
}

/* Each workspace has a quiet visual signature on its information cards. */
.edu-app-shell[data-space="administration"] .card,
.edu-app-shell[data-space="administration"] .edu-card {
    --edu-card-accent: var(--edu-primary-700);
}

.edu-app-shell[data-space="student"] .card,
.edu-app-shell[data-space="student"] .edu-card {
    --edu-card-accent: #168f91;
}

.edu-app-shell[data-space="parent"] .card,
.edu-app-shell[data-space="parent"] .edu-card {
    --edu-card-accent: #d46b5e;
}

.edu-app-shell[data-space="teacher"] .card,
.edu-app-shell[data-space="teacher"] .edu-card {
    --edu-card-accent: var(--edu-excellent);
}

.edu-app-shell[data-space="administration"] .card,
.edu-app-shell[data-space="administration"] .edu-card,
.edu-app-shell[data-space="student"] .card,
.edu-app-shell[data-space="student"] .edu-card,
.edu-app-shell[data-space="parent"] .card,
.edu-app-shell[data-space="parent"] .edu-card,
.edu-app-shell[data-space="teacher"] .card,
.edu-app-shell[data-space="teacher"] .edu-card {
    border: 1px solid color-mix(in srgb, var(--edu-card-accent) 22%, var(--edu-border)) !important;
    border-left: 4px solid var(--edu-card-accent) !important;
}

.edu-app-shell[data-space="administration"] .edu-card,
.edu-app-shell[data-space="student"] .edu-card,
.edu-app-shell[data-space="parent"] .edu-card,
.edu-app-shell[data-space="teacher"] .edu-card {
    border-left-width: 4px;
}

.edu-app-shell[data-space="administration"] .card:nth-child(4n + 2),
.edu-app-shell[data-space="student"] .card:nth-child(4n + 2),
.edu-app-shell[data-space="teacher"] .card:nth-child(4n + 2),
.edu-app-shell[data-space="parent"] .card:nth-child(4n + 2) {
    border-left-color: var(--edu-excellent) !important;
}

.edu-app-shell[data-space="administration"] .card:nth-child(4n + 3),
.edu-app-shell[data-space="student"] .card:nth-child(4n + 3),
.edu-app-shell[data-space="teacher"] .card:nth-child(4n + 3),
.edu-app-shell[data-space="parent"] .card:nth-child(4n + 3) {
    border-left-color: var(--edu-warning) !important;
}

/* Grid cards receive a second accent so a dashboard remains easy to scan. */
.edu-app-shell[data-space] .row > :nth-child(4n + 2) > .card,
.edu-app-shell[data-space] .d-grid > .card:nth-child(4n + 2),
.edu-app-shell[data-space] .d-grid > article:nth-child(4n + 2) {
    border-left-color: var(--edu-excellent) !important;
}

.edu-app-shell[data-space] .row > :nth-child(4n + 3) > .card,
.edu-app-shell[data-space] .d-grid > .card:nth-child(4n + 3),
.edu-app-shell[data-space] .d-grid > article:nth-child(4n + 3) {
    border-left-color: var(--edu-warning) !important;
}

.edu-app-shell[data-space] .row > :nth-child(4n + 4) > .card,
.edu-app-shell[data-space] .d-grid > .card:nth-child(4n + 4),
.edu-app-shell[data-space] .d-grid > article:nth-child(4n + 4) {
    border-left-color: var(--edu-success) !important;
}

/* The cockpit uses a dense filter-and-indicator layout, so its card edge is intentionally stronger. */
.edu-app-shell[data-route="app_school_cockpit"] .card {
    border: 1px solid rgba(49, 87, 213, 0.24) !important;
    border-left: 3px solid var(--edu-primary-700) !important;
    box-shadow: inset 3px 0 0 var(--edu-primary-700), var(--edu-shadow-sm) !important;
}

.edu-app-shell[data-route="app_school_cockpit"] .row > :nth-child(4n + 2) > .card {
    border-left-color: var(--edu-excellent) !important;
    box-shadow: inset 3px 0 0 var(--edu-excellent), var(--edu-shadow-sm) !important;
}

.edu-app-shell[data-route="app_school_cockpit"] .row > :nth-child(4n + 3) > .card {
    border-left-color: var(--edu-warning) !important;
    box-shadow: inset 3px 0 0 var(--edu-warning), var(--edu-shadow-sm) !important;
}

.btn-light {
    --bs-btn-bg: var(--edu-surface);
    --bs-btn-border-color: var(--edu-border);
    --bs-btn-hover-bg: var(--edu-primary-50);
    --bs-btn-hover-border-color: var(--edu-border-strong);
}

.edu-auth-shell {
    background: linear-gradient(135deg, #eef2ff 0%, var(--edu-background) 52%, #fff 100%);
    min-height: 100vh;
}

.edu-auth-cover { background: #17244f url('https://images.unsplash.com/photo-1497633762265-9d179a990aa6?auto=format&fit=crop&w=1000&q=85') center / cover; border-radius: var(--edu-radius-lg) 0 0 var(--edu-radius-lg); color: #fff; min-height: 36rem; overflow: hidden; padding: 2.5rem; position: relative; }
.edu-auth-cover-overlay { background: linear-gradient(145deg, rgba(23, 36, 79, 0.93), rgba(49, 87, 213, 0.68) 55%, rgba(241, 91, 79, 0.55)); inset: 0; position: absolute; }
.edu-auth-cover-content { align-self: flex-end; display: flex; flex-direction: column; height: 100%; justify-content: center; position: relative; z-index: 1; }
.edu-auth-cover-kicker { color: #f5bf42; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.13em; margin-bottom: 0.75rem; padding-top: 0.25rem; text-transform: uppercase; }
.edu-auth-cover-content h1 { letter-spacing: -0.04em; }
.edu-auth-cover-content p { color: rgba(255, 255, 255, 0.78); font-size: 1.05rem; line-height: 1.6; }
.edu-auth-cover-note { align-items: center; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 0.9rem; display: flex; gap: 0.7rem; margin-top: 1.25rem; padding: 0.85rem 1rem; }
.edu-auth-cover-note i { color: #f5bf42; font-size: 1.25rem; }

.edu-auth-panel {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(228, 233, 242, 0.85);
    border-radius: var(--edu-radius-lg);
    box-shadow: var(--edu-shadow-md);
}

.edu-kicker {
    color: var(--edu-muted);
    font-size: 0.9rem;
}

@media (max-width: 991.98px) {
    .edu-page-header {
        display: block;
    }

    .edu-page-header .btn-group,
    .edu-page-header > .btn {
        margin-top: 1rem;
    }
}

@media (max-width: 575.98px) {
    .edu-topbar {
        min-height: 4rem;
    }

    .edu-page-header h1 {
        font-size: 1.55rem;
    }

    .edu-stat-card {
        padding: 1rem;
    }
}
.btn-primary {
    --bs-btn-bg: var(--edu-primary-700);
    --bs-btn-border-color: var(--edu-primary-700);
    --bs-btn-hover-bg: var(--edu-primary-800);
    --bs-btn-hover-border-color: var(--edu-primary-800);
}
