:root {
    --swasti-navy: #071f4f;
    --swasti-navy-2: #0b2d65;
    --swasti-saffron: #c47a10;
    --swasti-gold: #d8a23a;
    --swasti-maroon: #7f1d1d;
    --swasti-cream: #fffaf0;
    --swasti-ivory: #fffdf7;
    --swasti-mist: #f6efe1;
    --swasti-text: #17223b;
    --swasti-muted: #697386;
    --swasti-border: rgba(7,31,79,.12);
    --swasti-shadow: 0 22px 55px rgba(7,31,79,.12);
}

html { font-size: 14px; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }

body {
    margin: 0;
    min-height: 100vh;
    color: var(--swasti-text);
    font-family: Inter, "Noto Sans Devanagari", "Nirmala UI", "Segoe UI", sans-serif;
    background:
        radial-gradient(circle at top left, rgba(216,162,58,.22), transparent 30rem),
        linear-gradient(135deg, #fffaf0 0%, #f8f1e3 48%, #eef4ff 100%);
}

.devanagari, .swasti-content { font-family: "Noto Sans Devanagari", "Nirmala UI", Mangal, sans-serif; }
.swasti-content { line-height: 1.8; word-break: break-word; }
.swasti-content img { max-width: 100%; height: auto; }

a { color: var(--swasti-navy-2); }
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-select:focus, .form-check-input:focus {
    box-shadow: 0 0 0 .18rem rgba(196,122,16,.22) !important;
    border-color: rgba(196,122,16,.55) !important;
}

.swasti-header, .swasti-admin-navbar {
    background: rgba(255,253,247,.88);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(196,122,16,.18);
}
.swasti-navbar .nav-link, .swasti-admin-menu .nav-link {
    color: var(--swasti-navy) !important;
    font-weight: 700;
    border-radius: 999px;
    padding: .55rem .95rem !important;
}
.swasti-navbar .nav-link:hover, .swasti-admin-menu .nav-link:hover {
    background: rgba(196,122,16,.12);
    color: var(--swasti-maroon) !important;
}
.swasti-brand, .swasti-admin-brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: var(--swasti-navy) !important;
    text-decoration: none;
}
.swasti-brand-logo, .swasti-admin-brand img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 50%;
    filter: drop-shadow(0 8px 16px rgba(7,31,79,.14));
}
.swasti-admin-brand img { width: 48px; height: 48px; }
.swasti-brand strong, .swasti-admin-brand strong {
    display: block;
    font-family: "Noto Sans Devanagari", sans-serif;
    font-size: 1.35rem;
    line-height: 1;
}
.swasti-brand small, .swasti-admin-brand small {
    display: block;
    color: var(--swasti-saffron);
    font-size: .78rem;
    font-weight: 800;
    margin-top: .18rem;
}
.swasti-toggler { border: 1px solid rgba(7,31,79,.18); border-radius: 14px; }

.swasti-hero {
    position: relative;
    overflow: hidden;
    padding: 5.2rem 0 4.6rem;
}
.swasti-hero:before {
    content: "";
    position: absolute;
    inset: 1rem;
    pointer-events: none;
    border-radius: 38px;
    border: 1px solid rgba(196,122,16,.18);
}
.swasti-kicker {
    display: inline-flex;
    font-family: "Noto Sans Devanagari", sans-serif;
    font-weight: 800;
    color: var(--swasti-maroon);
    background: rgba(196,122,16,.14);
    border: 1px solid rgba(196,122,16,.20);
    padding: .58rem 1rem;
    border-radius: 999px;
    margin-bottom: 1.4rem;
}
.swasti-hero-title {
    font-family: "Noto Sans Devanagari", "Playfair Display", serif;
    font-size: clamp(4.2rem, 12vw, 9rem);
    line-height: .9;
    color: var(--swasti-navy);
    font-weight: 800;
    letter-spacing: -.08em;
    margin: 0;
    text-shadow: 0 18px 40px rgba(7,31,79,.12);
}
.swasti-hero-subtitle {
    margin-top: 1.35rem;
    color: #46516b;
    font-size: clamp(1.25rem, 2.5vw, 2.1rem);
    font-weight: 700;
}
.swasti-hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }
.swasti-btn-primary, .btn-primary {
    border: 0 !important;
    color: #fff !important;
    font-weight: 800;
    border-radius: 999px;
    padding: .7rem 1.15rem;
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-navy-2) 58%, var(--swasti-saffron)) !important;
    box-shadow: 0 14px 26px rgba(7,31,79,.20);
}
.swasti-btn-ghost, .swasti-btn-outline, .btn-outline-primary, .btn-outline-secondary, .btn-outline-dark, .btn-outline-success, .btn-outline-warning, .btn-outline-danger {
    border-radius: 999px !important;
    font-weight: 800 !important;
    border-color: rgba(7,31,79,.18) !important;
    color: var(--swasti-navy) !important;
    background: rgba(255,255,255,.68) !important;
}
.swasti-btn-ghost:hover, .swasti-btn-outline:hover, .btn-outline-primary:hover, .btn-outline-secondary:hover, .btn-outline-dark:hover, .btn-outline-success:hover, .btn-outline-warning:hover, .btn-outline-danger:hover {
    background: var(--swasti-navy) !important;
    color: #fff !important;
}
.swasti-logo-medallion {
    width: min(420px, 86vw);
    aspect-ratio: 1;
    margin-inline: auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient(circle, #fffdf7 0%, #fff8e5 62%, rgba(216,162,58,.18) 100%);
    box-shadow: var(--swasti-shadow);
    border: 1px solid rgba(196,122,16,.22);
}
.swasti-logo-medallion img { width: 88%; height: 88%; object-fit: contain; }
.swasti-feature-band { padding: 0 0 4rem; }
.swasti-feature-card {
    min-height: 150px;
    padding: 1.5rem;
    border-radius: 28px;
    border: 1px solid rgba(196,122,16,.18);
    background: rgba(255,253,247,.82);
    box-shadow: 0 16px 36px rgba(7,31,79,.08);
}
.swasti-feature-card span {
    display: block;
    font-family: "Noto Sans Devanagari", sans-serif;
    color: var(--swasti-saffron);
    font-size: 1.5rem;
    font-weight: 800;
}
.swasti-feature-card strong { display:block; margin-top:.5rem; font-size:1.35rem; color:var(--swasti-navy); }
.swasti-footer {
    padding: 1.2rem 0;
    color: #fff;
    background: linear-gradient(135deg, var(--swasti-navy), #061737);
}

.swasti-admin-body {
    background:
        radial-gradient(circle at 10% 0%, rgba(216,162,58,.18), transparent 22rem),
        linear-gradient(135deg, #f9f0df 0%, #f6f8fc 58%, #eef3ff 100%);
}
.swasti-admin-shell { padding: 1.6rem; }
.swasti-admin-shell .container, .swasti-admin-shell .container-fluid { max-width: 1500px; }
.swasti-admin-shell h1, .swasti-admin-shell h2, .swasti-admin-shell h3 {
    color: var(--swasti-navy);
    font-weight: 850;
    letter-spacing: -.02em;
}
.card, .swasti-panel {
    border: 1px solid rgba(7,31,79,.09) !important;
    border-radius: 26px !important;
    background: rgba(255,253,247,.88) !important;
    box-shadow: 0 14px 38px rgba(7,31,79,.08) !important;
}
.card-header {
    background: linear-gradient(135deg, rgba(255,250,240,.96), rgba(255,246,223,.92)) !important;
    border-bottom: 1px solid rgba(196,122,16,.16) !important;
    border-radius: 26px 26px 0 0 !important;
}
.table { color: var(--swasti-text); }
.table thead th {
    background: #fff6df;
    color: var(--swasti-navy);
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(196,122,16,.18);
    white-space: nowrap;
}
.table tbody tr:hover { background: rgba(196,122,16,.06); }
.badge.bg-dark { background: var(--swasti-navy) !important; }
.badge.bg-secondary { background: #6b7280 !important; }
.badge.bg-success, .btn-success { background: #1f7a4d !important; border-color: #1f7a4d !important; }
.badge.bg-warning { background: var(--swasti-gold) !important; color: var(--swasti-navy) !important; }
.form-control, .form-select {
    border-radius: 16px;
    border-color: rgba(7,31,79,.14);
    padding: .72rem .9rem;
}
textarea.form-control { min-height: 110px; }
.alert { border-radius: 22px; border: 1px solid rgba(196,122,16,.20); }
.swasti-stat-card {
    padding: 1.2rem;
    min-height: 145px;
    border-radius: 28px;
    color: #fff;
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-navy-2));
    box-shadow: 0 18px 40px rgba(7,31,79,.18);
}
.swasti-stat-card.gold { background: linear-gradient(135deg, #9a5c07, var(--swasti-saffron)); }
.swasti-stat-card.maroon { background: linear-gradient(135deg, #641818, var(--swasti-maroon)); }
.swasti-stat-card span { display:block; opacity:.85; font-weight:700; }
.swasti-stat-card strong { display:block; font-size:2.25rem; line-height:1; margin-top:.7rem; }

@media (max-width: 991.98px) {
    .swasti-navbar .navbar-collapse, .swasti-admin-navbar .navbar-collapse {
        margin-top: 1rem;
        padding: .9rem;
        background: rgba(255,253,247,.96);
        border: 1px solid rgba(196,122,16,.18);
        border-radius: 22px;
        box-shadow: 0 16px 36px rgba(7,31,79,.10);
    }
    .swasti-admin-shell { padding: 1rem; }
    .swasti-brand small { max-width: 210px; white-space: normal; }
}

@media (max-width: 575.98px) {
    .swasti-brand-logo, .swasti-admin-brand img { width: 44px; height: 44px; }
    .swasti-brand strong, .swasti-admin-brand strong { font-size: 1.1rem; }
    .swasti-brand small, .swasti-admin-brand small { font-size: .68rem; }
    .swasti-hero { padding: 3.5rem 0 3rem; }
    .swasti-hero:before { inset: .55rem; border-radius: 24px; }
    .swasti-hero-actions .btn { width: 100%; }
    .table-responsive { border-radius: 20px; }
}

.swasti-dropdown {
    border: 1px solid rgba(196,122,16,.20);
    border-radius: 20px;
    padding: .55rem;
    background: rgba(255,253,247,.98);
    box-shadow: 0 22px 45px rgba(7,31,79,.14);
}
.swasti-dropdown .dropdown-item {
    border-radius: 14px;
    color: var(--swasti-navy);
    font-weight: 700;
    padding: .62rem .85rem;
}
.swasti-dropdown .dropdown-item:hover,
.swasti-dropdown .dropdown-item:focus {
    color: #fff;
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-saffron));
}
.swasti-dropdown .dropdown-item.disabled {
    color: #98a1b3;
    background: transparent;
}
.swasti-dropdown .dropdown-header {
    color: var(--swasti-saffron);
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.swasti-admin-userbox {
    padding-left: .6rem;
}
.swasti-user-pill {
    display: inline-flex;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    align-items: center;
    min-height: 34px;
    padding: .35rem .8rem;
    border-radius: 999px;
    color: var(--swasti-navy);
    font-weight: 800;
    background: rgba(196,122,16,.12);
    border: 1px solid rgba(196,122,16,.18);
}

@media (min-width: 1200px) {
    .swasti-admin-menu .dropdown:hover > .dropdown-menu {
        display: block;
        margin-top: 0;
    }
}

@media (max-width: 1199.98px) {
    .swasti-admin-userbox {
        align-items: flex-start !important;
        padding-left: 0;
        margin-top: .75rem;
        flex-direction: column;
    }
    .swasti-dropdown {
        box-shadow: none;
        margin: .35rem 0 .65rem;
    }
}

/* Student online exam engine */
.swasti-card {
    border: 1px solid rgba(196,122,16,.15);
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 40px rgba(7,31,79,.08);
}
.swasti-stat {
    border-radius: 18px;
    padding: 1rem;
    background: linear-gradient(135deg, rgba(196,122,16,.10), rgba(7,31,79,.06));
    border: 1px solid rgba(196,122,16,.16);
}
.swasti-stat span { display:block; color:#687386; font-size:.82rem; font-weight:700; }
.swasti-stat strong { display:block; color:var(--swasti-navy); font-size:1.15rem; }
.swasti-exam-shell {
    display: grid;
    grid-template-columns: 310px 1fr;
    min-height: calc(100vh - 72px);
    background: #fffaf0;
}
.swasti-exam-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 1.25rem;
    background: linear-gradient(180deg, #fffdf7, #fff3da);
    border-right: 1px solid rgba(196,122,16,.20);
    overflow-y: auto;
}
.swasti-exam-brand { font-family: 'Noto Sans Devanagari', sans-serif; font-size: 1.8rem; font-weight: 900; color: var(--swasti-navy); }
.swasti-exam-timer {
    margin: 1rem 0 .35rem;
    padding: .9rem 1rem;
    border-radius: 20px;
    background: var(--swasti-navy);
    color: white;
    font-size: 1.7rem;
    font-weight: 900;
    text-align: center;
    letter-spacing: .06em;
}
.swasti-palette { display:grid; grid-template-columns: repeat(5, 1fr); gap:.5rem; }
.palette-btn {
    border: 1px solid rgba(7,31,79,.15);
    border-radius: 14px;
    min-height: 42px;
    font-weight: 900;
    background: #fff;
    color: var(--swasti-navy);
}
.palette-btn.current { outline: 3px solid rgba(196,122,16,.25); }
.palette-btn.answered { background: #e8f7ef; border-color: #60b883; }
.palette-btn.review { background: #fff0cc; border-color: #d79c1f; }
.legend { display:flex; flex-direction:column; gap:.35rem; }
.dot { display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:.35rem; background:#ddd; }
.dot.answered { background:#60b883; }
.dot.review { background:#d79c1f; }
.swasti-exam-main { padding: 1.5rem; }
.exam-question-card {
    display: none;
    max-width: 980px;
    margin: 0 auto;
    background: white;
    border-radius: 26px;
    border: 1px solid rgba(196,122,16,.16);
    box-shadow: 0 20px 45px rgba(7,31,79,.10);
    padding: 1.5rem;
}
.exam-question-card.active { display:block; }
.question-text { color: var(--swasti-navy); line-height: 1.65; font-family: 'Noto Sans Devanagari', 'Inter', sans-serif; }
.passage-box, .assertion-box {
    border-radius: 20px;
    background: #fff8e8;
    border: 1px solid rgba(196,122,16,.18);
    padding: 1rem;
    line-height: 1.7;
}
.question-image { max-width: 100%; max-height: 360px; border-radius: 18px; border: 1px solid rgba(7,31,79,.10); margin-top: .75rem; }
.options-list { display:flex; flex-direction:column; gap:.8rem; }
.exam-option {
    display:flex;
    gap:.85rem;
    align-items:flex-start;
    padding: 1rem;
    border: 1px solid rgba(7,31,79,.12);
    border-radius: 20px;
    cursor:pointer;
    background: #fff;
    transition: all .15s ease;
}
.exam-option:hover { border-color: rgba(196,122,16,.45); box-shadow:0 10px 20px rgba(7,31,79,.06); }
.exam-option input { margin-top:.35rem; transform:scale(1.15); }
.option-content { flex:1; line-height:1.65; }
.option-content img { display:block; max-width:260px; max-height:180px; border-radius:14px; margin-top:.5rem; border:1px solid rgba(7,31,79,.10); }

@media (max-width: 991.98px) {
    .swasti-exam-shell { grid-template-columns: 1fr; }
    .swasti-exam-sidebar { position: relative; height: auto; }
    .swasti-palette { grid-template-columns: repeat(8, 1fr); }
}
@media (max-width: 575.98px) {
    .swasti-palette { grid-template-columns: repeat(5, 1fr); }
    .swasti-exam-main { padding: .75rem; }
    .exam-question-card { padding: 1rem; border-radius: 20px; }
}

/* Auth and user management polish */
.swasti-auth-wrap{min-height:calc(100vh - 170px);display:flex;align-items:center;justify-content:center;padding:3rem 1rem;background:radial-gradient(circle at top left,rgba(185,103,29,.13),transparent 32%),linear-gradient(135deg,#fffdf8,#f7efe3)}
.swasti-auth-card,.swasti-form-card,.swasti-filter-card,.swasti-table-card{background:rgba(255,255,255,.94);border:1px solid rgba(120,72,18,.16);box-shadow:0 18px 45px rgba(57,36,10,.12);border-radius:24px}
.swasti-auth-card{width:min(100%,480px);padding:2rem}
.swasti-auth-logo{width:84px;height:84px;object-fit:contain;margin-bottom:1rem}
.swasti-form-card{padding:1.5rem}
.swasti-filter-card{padding:1rem}
.swasti-table-card{overflow:hidden}
.swasti-page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;margin:1rem 0 1.25rem}
.swasti-page-heading h1{font-weight:800;margin:0;color:#3b250b}
.swasti-page-heading p{margin:.35rem 0 0;color:#78685b}
.swasti-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:#a35e11}
.swasti-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;padding:1rem;border:1px solid rgba(120,72,18,.14);border-radius:18px;background:#fffaf2}
.swasti-role-grid .form-check{margin:0;padding:.6rem .75rem .6rem 2.2rem;border-radius:14px;background:white;border:1px solid rgba(120,72,18,.08)}
.swasti-btn-primary{background:linear-gradient(135deg,#8d4e08,#c78323);border:0;color:#fff;font-weight:700;border-radius:999px;padding:.65rem 1.2rem}
.swasti-btn-primary:hover{color:#fff;filter:brightness(.96)}
.swasti-btn-outline{border:1px solid rgba(141,78,8,.35);color:#78430a;background:#fff;border-radius:999px;font-weight:700;padding:.6rem 1.05rem}
.swasti-btn-outline:hover{background:#fff5e6;color:#5c3207}
@media (max-width: 767px){.swasti-page-heading{align-items:flex-start;flex-direction:column}.swasti-form-card{padding:1rem}}

/* Swasti role-sensitive menu bar update */
.swasti-shell-header {
    background: rgba(255,253,247,.94);
    border-bottom: 1px solid rgba(196,122,16,.18);
    box-shadow: 0 10px 28px rgba(7,31,79,.08);
    backdrop-filter: blur(18px);
}
.swasti-top-strip {
    color: #fff;
    font-size: .84rem;
    font-weight: 800;
    background: linear-gradient(135deg, var(--swasti-maroon), var(--swasti-saffron));
    padding: .35rem 0;
}
.swasti-top-strip.admin-strip {
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-maroon));
}
.swasti-role-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .18rem .65rem;
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.24);
    white-space: nowrap;
}
.swasti-menubar {
    min-height: 74px;
    padding: .45rem 0;
    background: linear-gradient(135deg, rgba(255,253,247,.96), rgba(255,246,225,.92));
}
.swasti-admin-menubar {
    background: linear-gradient(135deg, rgba(255,253,247,.98), rgba(240,245,255,.94));
}
.swasti-main-menu {
    gap: .35rem;
    align-items: center;
}
.swasti-main-menu .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    min-height: 42px;
    color: var(--swasti-navy) !important;
    font-weight: 850;
    border-radius: 999px;
    padding: .56rem .95rem !important;
    border: 1px solid transparent;
    transition: all .16s ease;
}
.swasti-main-menu .nav-link span {
    line-height: 1;
    opacity: .92;
}
.swasti-main-menu .nav-link:hover,
.swasti-main-menu .nav-link:focus,
.swasti-main-menu .show > .nav-link {
    color: #fff !important;
    border-color: rgba(255,255,255,.32);
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-saffron));
    box-shadow: 0 12px 22px rgba(7,31,79,.18);
}
.swasti-user-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-left: .75rem;
}
.swasti-login-btn,
.swasti-logout-btn {
    border: 0 !important;
    color: #fff !important;
    font-weight: 900 !important;
    border-radius: 999px !important;
    padding: .55rem 1rem !important;
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-saffron)) !important;
    box-shadow: 0 12px 22px rgba(7,31,79,.15);
}
.swasti-logout-btn {
    background: linear-gradient(135deg, var(--swasti-maroon), var(--swasti-saffron)) !important;
}
.swasti-hamburger {
    width: 48px;
    height: 44px;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    border: 1px solid rgba(7,31,79,.16) !important;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 12px 24px rgba(7,31,79,.10);
}
.swasti-hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: var(--swasti-navy);
}
.swasti-mega-menu {
    min-width: 250px;
}
.swasti-admin-menu .dropdown:hover > .dropdown-menu {
    margin-top: .15rem;
}
.swasti-admin-brand img,
.swasti-brand-logo {
    background: rgba(255,255,255,.80);
    padding: .18rem;
}
@media (min-width: 1200px) {
    .swasti-mega-item:hover > .dropdown-menu {
        display: block;
    }
    .swasti-admin-menubar .container-fluid,
    .swasti-menubar .container-fluid {
        flex-wrap: nowrap;
    }
}
@media (max-width: 1199.98px) {
    .swasti-menubar .navbar-collapse {
        margin-top: .85rem;
        padding: .85rem;
        background: rgba(255,253,247,.98);
        border: 1px solid rgba(196,122,16,.18);
        border-radius: 24px;
        box-shadow: 0 18px 38px rgba(7,31,79,.12);
        max-height: calc(100vh - 122px);
        overflow-y: auto;
    }
    .swasti-main-menu {
        align-items: stretch;
        gap: .45rem;
    }
    .swasti-main-menu .nav-link {
        justify-content: flex-start;
        width: 100%;
        border-radius: 16px;
        background: rgba(255,255,255,.72);
        border-color: rgba(7,31,79,.08);
    }
    .swasti-dropdown,
    .swasti-mega-menu {
        width: 100%;
        border-radius: 18px;
        margin: .35rem 0 .7rem;
        box-shadow: none;
    }
    .swasti-user-actions,
    .swasti-admin-userbox {
        width: 100%;
        padding-left: 0;
        margin-top: .75rem;
        align-items: stretch !important;
        flex-direction: column;
    }
    .swasti-user-actions .btn,
    .swasti-user-actions form,
    .swasti-user-actions button {
        width: 100%;
    }
    .swasti-user-pill {
        max-width: none;
        justify-content: center;
        width: 100%;
    }
}
@media (max-width: 575.98px) {
    .swasti-top-strip .container-fluid {
        font-size: .72rem;
    }
    .swasti-role-chip {
        padding: .15rem .45rem;
    }
    .swasti-menubar {
        min-height: 66px;
    }
    .swasti-brand,
    .swasti-admin-brand {
        max-width: calc(100vw - 88px);
    }
    .swasti-brand small,
    .swasti-admin-brand small {
        max-width: 190px;
        white-space: normal;
        line-height: 1.15;
    }
    .swasti-admin-shell {
        padding: .85rem;
    }
}

/* Swasti collapsible sidebar shell */
.swasti-sidebar-body {
    min-height: 100vh;
    overflow-x: hidden;
}

.swasti-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 292px;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    padding: 1rem .9rem;
    color: #fff;
    background:
        radial-gradient(circle at 20% 0%, rgba(216,162,58,.32), transparent 18rem),
        linear-gradient(180deg, #071f4f 0%, #09265a 48%, #061737 100%);
    box-shadow: 18px 0 42px rgba(7,31,79,.18);
    border-right: 1px solid rgba(255,255,255,.10);
}

.swasti-public-sidebar {
    background:
        radial-gradient(circle at 25% 0%, rgba(216,162,58,.30), transparent 18rem),
        linear-gradient(180deg, #071f4f 0%, #0b2d65 55%, #641818 100%);
}

.swasti-sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem .3rem .95rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.swasti-sidebar-logo-wrap {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #fff !important;
    text-decoration: none;
    min-width: 0;
}

.swasti-sidebar-logo {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    object-fit: contain;
    border-radius: 50%;
    background: rgba(255,253,247,.96);
    padding: .22rem;
    filter: drop-shadow(0 12px 20px rgba(0,0,0,.20));
}

.swasti-sidebar-logo-wrap strong {
    display: block;
    font-family: "Noto Sans Devanagari", sans-serif;
    font-size: 1.38rem;
    line-height: 1;
    letter-spacing: -.02em;
}

.swasti-sidebar-logo-wrap small {
    display: block;
    max-width: 170px;
    margin-top: .22rem;
    color: #ffd98c;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1.2;
}

.swasti-sidebar-icon-btn,
.swasti-sidebar-toggle {
    border: 0;
    background: rgba(255,255,255,.14);
    color: #fff;
    border-radius: 14px;
}

.swasti-sidebar-icon-btn {
    width: 38px;
    height: 38px;
    font-size: 1.65rem;
    line-height: 1;
}

.swasti-sidebar-role-card {
    margin: 1rem .15rem;
    padding: 1rem;
    border-radius: 24px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.swasti-sidebar-role-card span,
.swasti-sidebar-role-card small {
    display: block;
    color: rgba(255,255,255,.72);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.swasti-sidebar-role-card strong {
    display: block;
    margin: .18rem 0 .25rem;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 850;
}

.swasti-sidebar-nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: .2rem .15rem 1rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.35) transparent;
}

.swasti-sidebar-nav::-webkit-scrollbar { width: 7px; }
.swasti-sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.25);
    border-radius: 999px;
}

.swasti-nav-section {
    margin: 1rem .55rem .45rem;
    color: #ffd98c;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.swasti-side-link {
    display: flex;
    align-items: center;
    gap: .72rem;
    min-height: 43px;
    padding: .62rem .72rem;
    margin: .18rem 0;
    color: rgba(255,255,255,.86) !important;
    text-decoration: none;
    border-radius: 16px;
    border: 1px solid transparent;
    transition: background .18s ease, transform .18s ease, border-color .18s ease;
}

.swasti-side-link span {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(255,255,255,.12);
}

.swasti-side-link b {
    min-width: 0;
    font-size: .94rem;
    font-weight: 800;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.swasti-side-link:hover,
.swasti-side-link.active {
    color: #fff !important;
    background: rgba(255,255,255,.15);
    border-color: rgba(255,255,255,.16);
    transform: translateX(2px);
}

.swasti-side-link:hover span,
.swasti-side-link.active span {
    background: linear-gradient(135deg, var(--swasti-gold), var(--swasti-saffron));
    color: #071f4f;
}

.swasti-main-frame {
    min-height: 100vh;
    margin-left: 292px;
    display: flex;
    flex-direction: column;
}

.swasti-app-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .8rem 1.25rem;
    background: rgba(255,253,247,.86);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(196,122,16,.16);
    box-shadow: 0 12px 28px rgba(7,31,79,.06);
}

.swasti-sidebar-toggle {
    width: 46px;
    height: 44px;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    background: linear-gradient(135deg, var(--swasti-navy), var(--swasti-navy-2));
}

.swasti-sidebar-toggle span {
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}

.swasti-topbar-title {
    min-width: 0;
    flex: 1;
}

.swasti-topbar-title span {
    display: block;
    color: var(--swasti-saffron);
    font-weight: 850;
    line-height: 1.05;
}

.swasti-topbar-title strong {
    display: block;
    color: var(--swasti-navy);
    font-size: 1.22rem;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.swasti-topbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
}

.swasti-content-shell {
    width: 100%;
    flex: 1;
}

.swasti-public-shell {
    padding: 0;
}

.swasti-frame-footer {
    margin-top: auto;
}

.swasti-mobile-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1035;
    background: rgba(7,31,79,.48);
    backdrop-filter: blur(3px);
}

.swasti-sidebar-open .swasti-mobile-backdrop {
    display: block;
}

@media (max-width: 991.98px) {
    .swasti-sidebar {
        width: min(306px, 88vw);
        transform: translateX(-104%);
        transition: transform .22s ease;
    }

    .swasti-sidebar-open .swasti-sidebar {
        transform: translateX(0);
    }

    .swasti-main-frame {
        margin-left: 0;
    }

    .swasti-sidebar-toggle {
        display: inline-flex;
    }

    .swasti-app-topbar {
        min-height: 66px;
        padding: .65rem .9rem;
    }

    .swasti-admin-shell {
        padding: 1rem;
    }

    .swasti-topbar-actions .btn {
        padding: .5rem .75rem;
        font-size: .86rem;
    }
}

@media (max-width: 575.98px) {
    .swasti-topbar-title strong {
        font-size: 1rem;
    }

    .swasti-topbar-title span {
        font-size: .82rem;
    }

    .swasti-topbar-actions {
        gap: .35rem;
    }

    .swasti-topbar-actions .swasti-login-btn {
        display: none;
    }

    .swasti-app-topbar {
        gap: .65rem;
    }
}
