/**
 * Admin + student panel shell (sidebar, topnav, main column, collapse, chrome).
 * Load after app-ui-shell.css, before student-layout.css (student-only widgets).
 */

:root {
    --app-panel-accent-border: 2px solid rgb(115 103 240 / 0.35);
    --student-accent-border: var(--app-panel-accent-border);
}

.dark {
    --app-panel-accent-border: 2px solid rgb(158 149 245 / 0.45);
    --student-accent-border: var(--app-panel-accent-border);
}

/* Content column tokens (used by admin + student main) */
.student-content {
    --student-primary: #2563eb;
    --student-primary-dark: #1d4ed8;
    --student-card-radius: var(--ee-radius, 5px);
    --student-btn-radius: var(--ee-radius, 5px);
}

/* ----- Sidebar (class name shared by admin + student markup) ----- */
.student-sidebar {
    width: min(16rem, calc(100vw - 2.5rem));
    max-width: 100%;
    box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.05);
    background: #f9fafb;
}
@media (min-width: 640px) {
    .student-sidebar {
        width: 16rem;
    }
}
.dark .student-sidebar {
    box-shadow: 1px 0 0 0 rgba(255, 255, 255, 0.06);
    background: #2a2d42;
}
.student-sidebar .sidebar-link {
    border-radius: var(--ee-radius, 5px);
    transition: color 0.15s ease;
    background: transparent;
}
.student-sidebar .sidebar-link:hover {
    background-color: transparent;
}
.dark .student-sidebar .sidebar-link:hover {
    background-color: transparent;
}
.student-sidebar .sidebar-user-block img {
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Sidebar: strip default <button> frame (Bootstrap / UA “buttonborder”) — reads as thick black ring */
#admin-body .student-sidebar .sidebar-link,
#student-body .student-sidebar .sidebar-link,
#admin-body .student-sidebar button.sidebar-link,
#student-body .student-sidebar button.sidebar-link {
    border: none !important;
    border-width: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
}

#admin-body .student-sidebar button.sidebar-link,
#student-body .student-sidebar button.sidebar-link {
    background-color: transparent !important;
    background-image: none !important;
}

#admin-body .student-sidebar button.sidebar-link:hover,
#student-body .student-sidebar button.sidebar-link:hover {
    box-shadow: none !important;
}

#admin-body .student-sidebar button.sidebar-link:active,
#student-body .student-sidebar button.sidebar-link:active {
    border: none !important;
    box-shadow: none !important;
}

/* IDs beat Bootstrap / UA button chrome when class-only selectors tie */
#admin-sidebar button.sidebar-link,
#student-sidebar button.sidebar-link {
    border: none !important;
    border-width: 0 !important;
    border-style: none !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
}

#admin-sidebar button.sidebar-link:focus-visible,
#student-sidebar button.sidebar-link:focus-visible {
    outline: 2px solid var(--app-focus, #7367f0);
    outline-offset: 2px;
}

#admin-sidebar button.sidebar-link:hover,
#student-sidebar button.sidebar-link:hover {
    box-shadow: none !important;
}

.student-sidebar .ee-sidebar-scroll {
    min-height: 0;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.student-sidebar .ee-sidebar-scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

/*
 * Mobile drawer: do not rely on Tailwind translate utilities (may be absent from built CSS).
 * Closed = off-canvas left; open = ee-sidebar-mobile-open.
 */
@media (max-width: 1023px) {
    #admin-sidebar.student-sidebar,
    #student-sidebar.student-sidebar {
        transition: transform 0.3s ease-out, width 0.3s ease, box-shadow 0.2s ease;
    }

    #admin-sidebar.student-sidebar:not(.ee-sidebar-mobile-open),
    #student-sidebar.student-sidebar:not(.ee-sidebar-mobile-open) {
        transform: translate3d(-100%, 0, 0) !important;
        pointer-events: none;
    }

@media (max-width: 1023px) {
    #admin-sidebar.ee-sidebar-mobile-open,
    #student-sidebar.ee-sidebar-mobile-open {
        transform: translate3d(0, 0, 0) !important;
        pointer-events: auto;
        z-index: 45;
        box-shadow: 4px 0 24px rgba(47, 43, 61, 0.12);
    }

    html.dark #admin-sidebar.ee-sidebar-mobile-open,
    html.dark #student-sidebar.ee-sidebar-mobile-open {
        box-shadow: 4px 0 28px rgba(0, 0, 0, 0.45);
    }
}

    /* Footer collapse: desktop-only (topnav has a separate collapse control) */
    .ee-sidebar-footer [data-admin-sidebar-toggle="collapse"],
    .ee-sidebar-footer [data-student-sidebar-toggle="collapse"],
    .ee-sidebar-footer [data-panel-sidebar-toggle="collapse"] {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    #admin-sidebar.student-sidebar,
    #student-sidebar.student-sidebar {
        transform: translate3d(0, 0, 0) !important;
        pointer-events: auto;
    }
}

/* Sidebar: scrollable nav column + pinned footer */
#admin-sidebar.student-sidebar,
#student-sidebar.student-sidebar {
    overflow: hidden;
}

#admin-sidebar.student-sidebar > .ee-sidebar-scroll,
#student-sidebar.student-sidebar > .ee-sidebar-scroll {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
}

#admin-sidebar.student-sidebar > .ee-sidebar-footer,
#student-sidebar.student-sidebar > .ee-sidebar-footer {
    flex-shrink: 0;
}

.student-content {
    margin-left: 0;
    min-width: 0;
}

@media (min-width: 1024px) {
    .student-content {
        margin-left: 16rem;
    }
}

/* ---- Collapsed sidebar (desktop only) ---- */
@media (min-width: 1024px) {
    .student-sidebar.sidebar-collapsed {
        width: 5rem;
        overflow-x: hidden;
        transition: width 0.2s ease, box-shadow 0.2s ease;
    }

    body.sidebar-collapsed .student-content {
        margin-left: 5rem;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-submenu,
    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-submenu.is-collapsed {
        display: none !important;
        visibility: hidden !important;
        max-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        overflow: hidden !important;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-group-chevron {
        display: none !important;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-text {
        display: none !important;
        overflow: hidden;
        width: 0;
        opacity: 0;
        padding: 0;
        margin: 0;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-heading {
        display: none !important;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-user-block {
        justify-content: center;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-link {
        justify-content: center;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-link .fa-solid,
    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:not(:hover) .sidebar-link .fa-regular {
        margin: 0;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover {
        width: 16rem;
        z-index: 45;
        overflow-x: visible;
        overflow-y: auto;
        box-shadow: 4px 0 24px rgba(15, 23, 42, 0.12);
    }

    .dark body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover {
        box-shadow: 4px 0 28px rgba(0, 0, 0, 0.45);
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover .sidebar-text {
        display: block !important;
        width: auto !important;
        max-width: none !important;
        opacity: 1 !important;
        overflow: visible !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover .sidebar-user-block {
        justify-content: flex-start;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover .sidebar-link {
        justify-content: flex-start;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover .sidebar-group-chevron {
        display: inline-block !important;
    }

    body.sidebar-collapsed .student-sidebar.sidebar-collapsed:hover .sidebar-submenu {
        visibility: visible !important;
        max-height: none !important;
        overflow: visible !important;
        margin-top: 0.125rem;
    }
}

.sidebar-link:focus-visible,
header button:focus-visible {
    outline: 2px solid #6366f1;
    outline-offset: 2px;
}

body.sidebar-collapsed .student-sidebar-collapse-icon {
    transform: rotate(180deg);
}

@keyframes ee-skeleton-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.skeleton {
    border-radius: var(--ee-radius, 0.375rem);
    animation: ee-skeleton-pulse 1.2s ease-in-out infinite;
    background-color: #e5e7eb;
}

.dark .skeleton {
    background-color: #374151;
}

/* ----- Top nav (admin + student headers use .student-topnav) ----- */
.student-topnav {
    backdrop-filter: blur(12px);
    background-color: rgba(255, 255, 255, 0.92);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.dark .student-topnav {
    background-color: rgba(15, 23, 42, 0.95);
    border-bottom-color: rgba(255, 255, 255, 0.06);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

/* Header profile dropdown — no underlines; logout is a plain row (not a bordered CTA) */
#admin-profile-dropdown a,
#student-profile-dropdown a {
    text-decoration: none !important;
}

#admin-body #admin-profile-logout-btn.ee-compact-btn,
#student-body #student-profile-logout-btn.ee-compact-btn {
    border: none !important;
    border-width: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    -webkit-appearance: none;
    appearance: none;
    height: auto !important;
    min-height: 0 !important;
}

#admin-body #admin-profile-logout-btn.ee-compact-btn:hover,
#student-body #student-profile-logout-btn.ee-compact-btn:hover,
#admin-body #admin-profile-logout-btn.ee-compact-btn:focus:not(:focus-visible),
#student-body #student-profile-logout-btn.ee-compact-btn:focus:not(:focus-visible) {
    box-shadow: none !important;
    border: none !important;
}

#admin-body #admin-profile-logout-btn.ee-compact-btn:focus-visible,
#student-body #student-profile-logout-btn.ee-compact-btn:focus-visible {
    outline: 2px solid rgba(248, 113, 113, 0.55);
    outline-offset: 1px;
}

/* ----- In-content dropdowns / floating panels ----- */
.student-content [class*="rounded-xl"].shadow-lg.border {
    box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.04);
}
.dark .student-content [class*="rounded-xl"].shadow-lg.border {
    box-shadow: 0 10px 25px -5px rgb(0 0 0 / 0.35);
}

.student-content a.rounded-lg {
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.student-content a.rounded-lg:hover {
    border-color: rgb(115 103 240 / 0.3);
}
.dark .student-content a.rounded-lg:hover {
    border-color: rgb(115 103 240 / 0.4);
}

/* ----- Main column background (flat Materio page — admin + student) ----- */
.student-main-bg {
    background: var(--materio-page-bg, #f9fafb);
}
.dark .student-main-bg {
    background: var(--materio-page-bg, #25293c);
}

/* ----- Breadcrumb (admin): strip <ol> numerals; Bootstrap link underlines ----- */
nav[aria-label="Breadcrumb"] ol {
    list-style: none;
    list-style-type: none;
    padding-left: 0;
    margin-left: 0;
    margin-right: 0;
}

nav[aria-label="Breadcrumb"] ol > li {
    list-style: none;
}

/* ----- Panel top bar brand (aligned with public main nav: icon + bold wordmark) ----- */
#admin-body .student-topnav .student-topnav-brand,
#student-body .student-topnav .student-topnav-brand {
    text-decoration: none !important;
    color: var(--gray-900, #111827) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: var(--ee-radius, 5px);
    gap: 0.5rem;
    padding: 0.125rem 0.35rem 0.125rem 0.125rem;
}

.dark #admin-body .student-topnav .student-topnav-brand,
.dark #student-body .student-topnav .student-topnav-brand {
    color: #fff !important;
}

#admin-body .student-topnav .student-topnav-brand:hover,
#student-body .student-topnav .student-topnav-brand:hover {
    text-decoration: none !important;
    background: transparent !important;
}

.dark #admin-body .student-topnav .student-topnav-brand:hover,
.dark #student-body .student-topnav .student-topnav-brand:hover {
    background: transparent !important;
}

#admin-body .student-topnav .student-topnav-brand:focus-visible,
#student-body .student-topnav .student-topnav-brand:focus-visible {
    text-decoration: none !important;
    outline: 2px solid rgba(115, 103, 240, 0.45);
    outline-offset: 2px;
}

.dark #admin-body .student-topnav .student-topnav-brand:focus-visible,
.dark #student-body .student-topnav .student-topnav-brand:focus-visible {
    background: transparent !important;
}

#admin-body .student-topnav .student-topnav-brand span,
#student-body .student-topnav .student-topnav-brand span {
    text-decoration: none !important;
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: -0.02em;
    color: inherit;
}

#admin-body .student-topnav .student-topnav-brand img,
#student-body .student-topnav .student-topnav-brand img {
    background: transparent !important;
    vertical-align: middle;
}

/* Brand rail = sidebar width; collapse sits immediately after it */
#admin-body .student-topnav.ee-panel-topnav,
#student-body .student-topnav.ee-panel-topnav {
    padding-left: 0;
    padding-right: 0;
}

#admin-body .student-topnav .ee-topnav-bar,
#student-body .student-topnav .ee-topnav-bar {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 100%;
    min-width: 0;
}

#admin-body .student-topnav .ee-topnav-brand-rail,
#student-body .student-topnav .ee-topnav-brand-rail {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    height: 100%;
    min-width: 0;
    padding: 0 0.75rem;
    border-right: 1px solid rgba(47, 43, 61, 0.08);
    box-sizing: border-box;
    transition: width 0.2s ease, min-width 0.2s ease, max-width 0.2s ease, padding 0.2s ease;
}

.dark #admin-body .student-topnav .ee-topnav-brand-rail,
.dark #student-body .student-topnav .ee-topnav-brand-rail {
    border-right-color: rgba(255, 255, 255, 0.08);
}

#admin-body .student-topnav .ee-topnav-main,
#student-body .student-topnav .ee-topnav-main {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    gap: 0.5rem;
    padding: 0 0.75rem 0 0.25rem;
}

@media (min-width: 640px) {
    #admin-body .student-topnav .ee-topnav-main,
    #student-body .student-topnav .ee-topnav-main {
        padding: 0 1.5rem 0 0.375rem;
    }
}

@media (min-width: 1024px) {
    #admin-body .student-topnav .ee-topnav-brand-rail,
    #student-body .student-topnav .ee-topnav-brand-rail {
        width: 16rem;
        min-width: 16rem;
        max-width: 16rem;
        padding: 0 1.25rem;
    }

    #admin-body.sidebar-collapsed .student-topnav .ee-topnav-brand-rail,
    #student-body.sidebar-collapsed .student-topnav .ee-topnav-brand-rail {
        width: 5rem;
        min-width: 5rem;
        max-width: 5rem;
        padding: 0 0.5rem;
        justify-content: center;
    }

    #admin-body.sidebar-collapsed .student-topnav .ee-topnav-brand-text,
    #student-body.sidebar-collapsed .student-topnav .ee-topnav-brand-text {
        display: none !important;
    }
}

#admin-body .student-topnav .ee-topnav-actions,
#student-body .student-topnav .ee-topnav-actions {
    margin-left: auto;
}

/* Top title slot: collapse + optional pagetitle (do not rely on Tailwind sm:/lg: — may be missing from built CSS) */
#admin-body .student-topnav .ee-topnav-title-slot,
#student-body .student-topnav .ee-topnav-title-slot {
    display: none;
    align-items: center;
    min-width: 0;
    flex: 0 0 auto;
    border-left: none;
    padding-left: 0;
    margin-left: 0;
    gap: 0.25rem;
}

@media (min-width: 640px) {
    #admin-body .student-topnav .ee-topnav-title-slot,
    #student-body .student-topnav .ee-topnav-title-slot {
        display: flex;
    }
}

#admin-body .student-topnav .ee-topnav-sidebar-collapse,
#student-body .student-topnav .ee-topnav-sidebar-collapse {
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: var(--ee-radius, 5px);
}

@media (min-width: 1024px) {
    #admin-body .student-topnav .ee-topnav-sidebar-collapse,
    #student-body .student-topnav .ee-topnav-sidebar-collapse {
        display: inline-flex;
    }
}

#admin-body .student-topnav .ee-topnav-sidebar-collapse:hover,
#student-body .student-topnav .ee-topnav-sidebar-collapse:hover,
#admin-body .student-topnav .ee-topnav-sidebar-collapse:focus:not(:focus-visible),
#student-body .student-topnav .ee-topnav-sidebar-collapse:focus:not(:focus-visible) {
    background: transparent !important;
}

/* Mobile sidebar toggle — do not rely on lg:hidden (may lose to .hidden !important) */
#admin-body [data-panel-sidebar-toggle="mobile"],
#student-body [data-panel-sidebar-toggle="mobile"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

@media (min-width: 1024px) {
    #admin-body [data-panel-sidebar-toggle="mobile"],
    #student-body [data-panel-sidebar-toggle="mobile"] {
        display: none !important;
    }

    #admin-body [data-panel-overlay],
    #student-body [data-panel-overlay] {
        display: none !important;
    }
}

.dark #admin-body .student-topnav .ee-topnav-sidebar-collapse:hover,
.dark #student-body .student-topnav .ee-topnav-sidebar-collapse:hover,
.dark #admin-body .student-topnav .ee-topnav-sidebar-collapse:focus:not(:focus-visible),
.dark #student-body .student-topnav .ee-topnav-sidebar-collapse:focus:not(:focus-visible) {
    background: transparent !important;
}

#admin-body .student-topnav .ee-topnav-pagetitle,
#student-body .student-topnav .ee-topnav-pagetitle {
    display: none;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(12rem, calc(100vw - 11rem));
}

@media (min-width: 640px) and (max-width: 1023px) {
    #admin-body .student-topnav .ee-topnav-pagetitle,
    #student-body .student-topnav .ee-topnav-pagetitle {
        display: inline-block;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    #admin-body .student-topnav .ee-topnav-pagetitle,
    #student-body .student-topnav .ee-topnav-pagetitle {
        max-width: 20rem;
    }
}

/* Top nav icon buttons: .ee-topnav-btn in app.css (excluded from universal 42px button rules) */

/* Sidebar: avoid heavy focus ring on mouse click; keep keyboard focus-visible */
#admin-body .student-sidebar button.sidebar-link:focus,
#student-body .student-sidebar button.sidebar-link:focus {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}

.student-sidebar button.sidebar-link:focus-visible {
    outline: 2px solid rgba(99, 102, 241, 0.45);
    outline-offset: 2px;
}

/* ----- Sidebar submenu accordion ----- */
.d-none {
    display: none !important;
}

.sidebar-submenu {
    padding-left: 0.75rem;
    margin-left: 0.75rem;
    margin-top: 0.25rem;
    border-left: 1px solid rgba(115, 103, 240, 0.2);
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.sidebar-submenu.is-collapsed {
    display: none !important;
}

.ee-sidebar-nav-group {
    margin-bottom: 0.125rem;
}

:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-toggle,
:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle,
:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle:hover,
:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle:focus,
:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle:active {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle {
    color: #374151 !important;
    font-weight: 600;
}

html.dark :is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle {
    color: #d1d5db !important;
}

:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-group.is-open > .ee-sidebar-nav-toggle i:not(.sidebar-group-chevron) {
    color: inherit !important;
    opacity: 1 !important;
}

:is(#admin-sidebar, #student-sidebar) .ee-sidebar-nav-toggle {
    min-height: 42px;
}

:is(#admin-sidebar, #student-sidebar) .sidebar-submenu-link {
    min-height: 38px;
    border-radius: var(--ee-radius, 5px);
}

/* ----- Sidebar nav links ----- */
.student-sidebar a.sidebar-link,
.student-sidebar .sidebar-submenu a {
    text-decoration: none;
}

:is(#admin-sidebar, #student-sidebar) .sidebar-link,
:is(#admin-sidebar, #student-sidebar) .sidebar-submenu-link {
    font-family: var(--ee-font-sans);
    font-size: var(--ee-font-size-menu) !important;
}

:is(#admin-sidebar, #student-sidebar) .sidebar-submenu-link {
    font-size: var(--ee-font-size-menu-sub) !important;
}

:is(#admin-sidebar, #student-sidebar) .sidebar-user-block .font-semibold {
    font-family: var(--ee-font-sans);
    font-size: var(--ee-font-size-menu);
}

:is(#admin-sidebar, #student-sidebar) .sidebar-user-block .text-xs {
    font-family: var(--ee-font-sans);
    font-size: calc(0.75rem + 1px);
}

.student-sidebar a.sidebar-link:hover,
.student-sidebar .sidebar-submenu a:hover,
.student-sidebar a.sidebar-link:focus-visible,
.student-sidebar .sidebar-submenu a:focus-visible {
    text-decoration: none;
}

/* Submenu current page: bold only, same neutral text */
.student-sidebar .sidebar-submenu-link.sidebar-submenu-link--active {
    background: transparent;
    color: #374151;
    font-weight: 600;
    box-shadow: none;
}

.dark .student-sidebar .sidebar-submenu-link.sidebar-submenu-link--active {
    background: transparent;
    color: #d1d5db;
    box-shadow: none;
}

/* Extra breathing room below fixed topnav */
#admin-body .app-content-container,
#student-body .app-content-container {
    padding-top: max(0.75rem, var(--app-space-y, 0.75rem));
}

/* Logout confirm dialog (SweetAlert2) */
.swal2-container select.swal2-select {
    display: none !important;
}

.ee-logout-swal-popup {
    border-radius: var(--ee-radius, 5px) !important;
    padding: 1.75rem 1.5rem 1.25rem !important;
    max-width: 22rem !important;
}

.ee-logout-swal-popup .swal2-icon {
    margin: 0.25rem auto 1rem !important;
    transform: scale(0.92);
}

.ee-logout-swal-body {
    margin: 0 !important;
    padding: 0 0.25rem !important;
}

.ee-logout-swal-text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #64748b;
}

html.dark .ee-logout-swal-text {
    color: #94a3b8;
}

.ee-logout-swal-actions {
    gap: 0.625rem !important;
    margin-top: 1.25rem !important;
    width: 100%;
}

.ee-logout-swal-confirm,
.ee-logout-swal-cancel {
    border-radius: var(--ee-radius, 5px) !important;
    font-weight: 600 !important;
    padding: 0.625rem 1.125rem !important;
    font-size: 0.875rem !important;
    min-width: 7rem;
}

.ee-logout-swal-confirm:focus,
.ee-logout-swal-cancel:focus {
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25) !important;
}
