/* Praxis Academy premium interface layer — aligned with the Praxis Studios portal. */
:root {
    --ink: #10273e;
    --muted: #64778d;
    --line: #d6e3ed;
    --paper: #eef5fa;
    --panel: #ffffff;
    --navy: #063556;
    --navy-2: #0879c2;
    --blue: #0879c2;
    --portal-deep-blue: #062f4d;
    --portal-deep-blue-2: #063556;
    --portal-deep-blue-3: #041d32;
    --portal-deep-surface: linear-gradient(180deg, #073b60 0%, #052945 58%, #041d32 100%);
    --cyan: #2aabd7;
    --green: #168447;
    --amber: #e97a22;
    --danger: #c83d35;
    --radius-xs: 8px;
    --radius-sm: 10px;
    --radius: 14px;
    --radius-lg: 20px;
    --shadow: 0 16px 42px rgba(8, 41, 71, .09);
    --shadow-soft: 0 7px 22px rgba(8, 41, 71, .065);
    --shadow-float: 0 24px 70px rgba(5, 33, 57, .16);
}

html { background: var(--paper); }
body {
    color: var(--ink);
    background:
        radial-gradient(circle at 88% -10%, rgba(8,121,194,.08), transparent 28rem),
        linear-gradient(180deg, #f7fbfe 0, var(--paper) 42rem);
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
}
body.portal-authenticated { background: var(--portal-deep-surface); }
::selection { background: rgba(8,121,194,.2); color: #052945; }

.app-shell { grid-template-columns: 264px minmax(0, 1fr); }
.app-shell.lesson-focus-shell { grid-template-columns: minmax(0, 1fr); }
.lesson-focus-shell .main { border-radius: 0; }
.sidebar {
    padding: 20px 14px;
    border-right: 1px solid rgba(255,255,255,.08);
    background:
        radial-gradient(circle at 10% 0, rgba(44,169,224,.16), transparent 19rem),
        var(--portal-deep-surface);
}
.brand {
    gap: 12px;
    min-height: 62px;
    padding: 8px 10px 20px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.brand-mark {
    width: 42px;
    height: 42px;
    box-shadow: 0 7px 20px rgba(0,0,0,.2);
}
.brand-mark img { width: 37px; height: 37px; }
.brand strong { color: #fff; font-size: 15px; letter-spacing: -.015em; }
.brand small {
    margin-top: 3px;
    color: #9bcce9;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.nav { gap: 3px; margin: 18px 0 28px; }
.nav a {
    min-height: 42px;
    padding: 10px 11px;
    border: 1px solid transparent;
    border-radius: var(--radius-xs);
    color: #c2d9e9;
    font-size: 13px;
    font-weight: 760;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.nav a:hover {
    color: #fff;
    background: rgba(255,255,255,.075);
    box-shadow: none;
    transform: translateX(2px);
}
.nav > a.active,
.nav-group.active > .nav-parent {
    border-color: rgba(112,202,244,.18);
    background: linear-gradient(90deg, #0879c2, #0a91d2);
    color: #fff;
    box-shadow: 0 9px 22px rgba(0,82,134,.26), inset 0 1px rgba(255,255,255,.15);
}
.nav-icon { width: 19px; height: 19px; }
.nav-submenu { gap: 2px; padding: 4px 0 6px 31px; }
.nav-submenu a { min-height: 33px; padding: 7px 10px; color: #a8c8dc; font-size: 12px; }
.nav-submenu a::before { color: #5db7e3; }
.nav-submenu a.active { color: #fff; background: rgba(255,255,255,.08); }
.nav-badge { background: #f26a1b; color: #fff; box-shadow: 0 3px 9px rgba(242,106,27,.3); }
.sidebar-card {
    padding: 15px;
    border-color: rgba(255,255,255,.11);
    border-radius: var(--radius-sm);
    background: rgba(255,255,255,.055);
    box-shadow: inset 0 1px rgba(255,255,255,.04);
}
.sidebar-card strong { margin: 3px 0; color: #fff; }

.main {
    min-width: 0;
    padding-bottom: 46px;
    border-radius: 22px 0 0 22px;
    background:
        radial-gradient(circle at 100% 0, rgba(8,121,194,.07), transparent 28rem),
        linear-gradient(180deg, #f8fbfe 0, #eef5fa 44rem);
}
.topbar {
    min-height: 88px;
    margin-bottom: 26px;
    padding: 17px 30px;
    border-bottom: 1px solid rgba(197,215,229,.85);
    background: rgba(255,255,255,.91);
    box-shadow: 0 7px 24px rgba(8,41,71,.035);
    backdrop-filter: blur(14px);
}
.topbar-title .eyebrow,
.eyebrow {
    color: #5e7489;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.topbar h1 { margin-top: 4px; color: #12304b; font-size: clamp(22px, 2vw, 28px); letter-spacing: -.035em; }
.top-actions { gap: 9px; }
.search input {
    min-height: 42px;
    border-color: #d7e3ed;
    border-radius: 10px;
    background: #f7fafc;
}
.notify-icon,
.admin-profile-menu > summary,
.student-profile-menu > summary {
    border: 1px solid #d7e3ed;
    background: #fff;
    box-shadow: 0 4px 13px rgba(8,41,71,.045);
}
.notify-icon { width: 40px; height: 40px; border-radius: 10px; font-size: 18px; }
.notification-panel,
.admin-profile-dropdown {
    border: 1px solid #cfdee9;
    border-radius: var(--radius);
    box-shadow: var(--shadow-float);
}
.cmd-palette-trigger { border-radius: 10px; }

.main > .flash,
.main > .alert,
.main > section,
.main > article,
.main > form { max-width: 1500px; margin-left: 30px; margin-right: 30px; }

.welcome,
.panel,
.stat,
.course-card,
.certificate-card,
.lesson-main,
.metric-card,
.ops-card,
.hostel-card {
    border: 1px solid rgba(207,221,232,.95);
    border-radius: var(--radius);
    background: rgba(255,255,255,.97);
    box-shadow: var(--shadow-soft);
}
.panel { padding: 22px; }
.panel:hover { border-color: #c5d9e7; }
.panel h2,
.panel h3 { color: #12304b; letter-spacing: -.025em; }

.admin-hero,
.student-hero,
.welcome,
.settings-hero,
.course-access-head {
    overflow: hidden;
    border: 1px solid #cbdde9;
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 100% 0, rgba(54,169,219,.14), transparent 22rem),
        #fff;
    box-shadow: var(--shadow);
}
.admin-hero h2,
.student-hero h2,
.welcome h2,
.settings-hero h2 { color: #0f304c; letter-spacing: -.045em; }
.admin-hero p,
.settings-hero p,
.student-hero p,
.course-access-head p { color: var(--muted); }
.admin-hero .btn:not(.primary),
.settings-hero .btn:not(.primary) { border-color: #cbdbe7; background: #fff; color: #173b59; }

/* Floating controls opened from a page header must be allowed to leave the rounded hero box.
   Keep the decorative header clipped while closed, then raise only the active header. */
.admin-hero:has(details[open]),
.admin-overview-hero:has(details[open]),
.settings-hero:has(details[open]),
.hostel-hero:has(details[open]),
.attendance-admin-hero:has(details[open]),
.certificate-admin-hero:has(details[open]) {
    position: relative;
    z-index: 50;
    overflow: visible;
}

img.is-broken {
    color: transparent;
    font-size: 0;
    background:
        linear-gradient(135deg, transparent 49.5%, rgba(255,255,255,.7) 50%, transparent 50.5%),
        radial-gradient(circle at 50% 44%, #0879c2 0 8%, transparent 8.4%),
        linear-gradient(145deg, #e2f0f8, #c9dce9);
    box-shadow: inset 0 0 0 1px #c9dbe7;
}
.course-list-title img.is-broken { border-radius: 9px; }
.course-detail-hero > img.is-broken,
.course-card > img.is-broken { border-radius: 11px; }

.metric-card,
.stat {
    position: relative;
    overflow: hidden;
    padding: 19px;
}
.metric-card::after,
.stat::after {
    content: "";
    position: absolute;
    inset: auto -22px -28px auto;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(8,121,194,.045);
}
.metric-card strong,
.stat strong { color: #113451; font-size: clamp(24px, 2.5vw, 34px); letter-spacing: -.045em; }
.metric-icon { border-radius: 11px; }

.btn {
    min-height: 40px;
    padding: 9px 14px;
    border-color: #cbdbe7;
    border-radius: 9px;
    background: #fff;
    color: #173b59;
    font-size: 13px;
    font-weight: 820;
    box-shadow: 0 2px 5px rgba(8,41,71,.025);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.btn:hover { border-color: #9fc3db; box-shadow: 0 6px 16px rgba(8,41,71,.09); transform: translateY(-1px); }
.btn.primary {
    border-color: #0879c2;
    background: linear-gradient(135deg, #0879c2, #096eac);
    color: #fff;
    box-shadow: 0 8px 18px rgba(8,121,194,.2);
}
.btn.primary:hover { box-shadow: 0 11px 23px rgba(8,121,194,.27); }
.btn.danger { border-color: #efc7c4; background: #fff6f5; color: #a92e27; }

input,
select,
textarea {
    min-height: 42px;
    border-color: #cfdee9;
    border-radius: 9px;
    background: #fff;
    color: #17344e;
    box-shadow: inset 0 1px 2px rgba(8,41,71,.025);
    transition: border-color .15s ease, box-shadow .15s ease;
}
input:hover,
select:hover,
textarea:hover { border-color: #aac8dc; }
input:focus,
select:focus,
textarea:focus {
    border-color: #208bc7;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(8,121,194,.12);
}
label { color: #294a64; font-weight: 750; }

.admin-table,
.student-directory-table,
.finance-table,
.attendance-table,
.course-admin-table {
    overflow: hidden;
    border: 1px solid #cfdee9;
    border-radius: 12px;
    background: #fff;
}
.admin-table-head,
.student-directory-head,
.table-head {
    background: #f1f6fa;
    color: #5f7489;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.admin-table-row,
.student-directory-row,
.table-row { border-color: #e0e9f0; }
.admin-table-row:hover,
.student-directory-row:hover,
.table-row:hover { background: #f8fbfd; }
.admin-table-foot { border-top-color: #dce7ef; background: #f9fbfd; }
.pager a,
.pager b {
    display: inline-grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    border: 1px solid #d2e0e9;
    border-radius: 8px;
    background: #fff;
}
.pager b { border-color: #0879c2; background: #0879c2; color: #fff; }

.status,
.badge,
.status-pill,
.tag,
.chip { border-radius: 999px; font-size: 10px; font-weight: 880; letter-spacing: .025em; }
.flash { border: 1px solid #b8dec8; border-radius: 10px; background: #eaf8f0; color: #17653b; box-shadow: var(--shadow-soft); }
.alert { border: 1px solid #efc2bd; border-radius: 10px; background: #fff0ee; color: #952e27; box-shadow: var(--shadow-soft); }

.course-card,
.certificate-card { overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.course-card:hover,
.certificate-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.course-card img { border-radius: 10px; }
.progress,
.progress-track { height: 7px; border-radius: 999px; background: #dce7ee; }
.progress span,
.progress-track span { background: linear-gradient(90deg, #f26a1b, #159b5a); }

.directory-heading { gap: 18px; }
.directory-heading > :first-child { min-width: 250px; }
.directory-toolbar { gap: 10px; flex-wrap: wrap; }
.directory-toolbar > form { min-width: 0; }
.admin-page-filterbar {
    padding: 12px;
    border: 1px solid #d4e1eb;
    border-radius: 12px;
    background: rgba(255,255,255,.72);
}
.course-list-toolbar { align-items: stretch; gap: 9px; }
.course-list-search-form { min-width: min(420px, 100%); }
.course-admin-table .table-row { transition: background .15s ease, transform .15s ease; }
.course-admin-table .table-row:hover { transform: translateX(2px); }
.course-editor-tabs,
.course-subnav,
.settings-tabs {
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}
.course-editor-tabs > *,
.course-subnav > *,
.settings-tabs > * { scroll-snap-align: start; }

.premium-player-frame:empty {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 42%, rgba(48,166,218,.18), transparent 12rem),
        linear-gradient(145deg, #0a2038, #0b3657);
}
.premium-player-frame:empty::before {
    content: "Lesson media will appear here";
    display: grid;
    place-items: center;
    width: 190px;
    height: 52px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    color: rgba(255,255,255,.84);
    background: rgba(255,255,255,.08);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .02em;
    backdrop-filter: blur(8px);
}

.auth-page.centered {
    min-height: 100vh;
    background:
        radial-gradient(circle at 18% 14%, rgba(255,255,255,.16), transparent 21rem),
        radial-gradient(circle at 85% 88%, rgba(31,157,212,.22), transparent 26rem),
        linear-gradient(135deg, #052b48 0%, #075984 56%, #063556 100%);
}
.auth-page.centered::after {
    content: "PRAXIS ACADEMY";
    position: fixed;
    right: 5vw;
    bottom: 3vh;
    color: rgba(255,255,255,.045);
    font-size: clamp(44px, 8vw, 120px);
    font-weight: 950;
    letter-spacing: -.06em;
    pointer-events: none;
}
.auth-nav { z-index: 2; }
.auth-back-link { border: 1px solid rgba(255,255,255,.22); background: rgba(5,31,52,.24); color: #fff; backdrop-filter: blur(12px); }
.auth-card {
    position: relative;
    z-index: 1;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 20px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 32px 90px rgba(0,20,38,.3);
}
.auth-card::before { height: 5px; background: linear-gradient(90deg, #f26a1b 0 18%, #0879c2 18% 72%, #168447 72%); }
.auth-card h1 { color: #102f4a; font-size: clamp(32px, 4vw, 43px); letter-spacing: -.05em; }
.auth-card p { color: #64778d; }
.auth-card .btn.primary { min-height: 46px; }

dialog { border: 0; border-radius: 18px; box-shadow: var(--shadow-float); }
dialog::backdrop { background: rgba(4,29,50,.62); backdrop-filter: blur(4px); }

@media (max-width: 980px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar {
        position: relative;
        height: auto;
        padding: 12px 18px 16px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.1);
    }
    .brand { min-height: 56px; padding-bottom: 12px; }
    .nav { gap: 7px; margin: 10px 0 0; }
    .nav a { min-height: 39px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.035); }
    .nav a:hover { transform: none; }
    .nav-submenu { flex: 1 1 100%; padding-left: 18px; }
    .main { border-radius: 0; }
    .topbar { min-height: 78px; padding: 15px 24px; }
    .main > .flash,
    .main > .alert,
    .main > section,
    .main > article,
    .main > form { margin-left: 22px; margin-right: 22px; }
}

@media (max-width: 620px) {
    body { font-size: 14px; }
    .sidebar { padding: 10px 14px; }
    .brand { border-bottom: 0; }
    .portal-admin .sidebar .nav,
    .portal-facilitator .sidebar .nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 5px;
        scrollbar-width: none;
    }
    .portal-admin .sidebar .nav::-webkit-scrollbar,
    .portal-facilitator .sidebar .nav::-webkit-scrollbar { display: none; }
    .portal-admin .nav > a,
    .portal-admin .nav > .nav-group,
    .portal-facilitator .nav > a { flex: 0 0 auto; }
    .portal-admin .nav-group { display: block; }
    .portal-admin .nav-group .nav-submenu { display: none; }
    .topbar { display: flex; align-items: center; min-height: 70px; margin-bottom: 18px; padding: 12px 16px; }
    .topbar-title .eyebrow { display: none; }
    .topbar h1 { font-size: 21px; }
    .top-actions { width: auto; margin-left: auto; flex-wrap: nowrap; }
    .cmd-palette-trigger { display: none; }
    .main > .flash,
    .main > .alert,
    .main > section,
    .main > article,
    .main > form { margin-left: 14px; margin-right: 14px; }
    .panel,
    .admin-hero,
    .student-hero,
    .welcome,
    .settings-hero,
    .course-access-head { padding: 18px; border-radius: 12px; }
    .admin-table,
    .student-directory-table,
    .finance-table,
    .attendance-table,
    .course-admin-table { overflow: visible; border: 0; background: transparent; }
    .admin-table-row,
    .student-directory-row,
    .table-row { border-radius: 10px; box-shadow: 0 5px 16px rgba(8,41,71,.055); }
    .auth-page.centered { padding: 86px 14px 28px; }
    .auth-card { padding: 28px 22px; border-radius: 16px; }
    .auth-card h1 { font-size: 32px; }
}

/* Unified portal tabs and module header actions */
.portal-authenticated :is(
    .assignment-tabs,
    .assessment-module-tabs,
    .assignment-ops-tabs,
    .course-subnav,
    .history-subnav,
    .finance-subnav,
    .settings-tabs,
    .course-editor-tabs
) {
    display: flex;
    width: 100%;
    max-width: 100%;
    min-height: 50px;
    align-items: center;
    gap: 5px;
    padding: 5px;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    border: 1px solid #d4e2ec;
    border-radius: 12px;
    background: linear-gradient(180deg,#ffffff 0%,#f7fafc 100%);
    box-shadow: 0 7px 20px rgba(8,41,71,.07);
    scrollbar-width: thin;
}
.portal-authenticated :is(
    .assignment-tabs,
    .assessment-module-tabs,
    .assignment-ops-tabs,
    .course-subnav,
    .history-subnav,
    .finance-subnav,
    .settings-tabs,
    .course-editor-tabs
) > a:not(.btn.primary) {
    display: inline-flex;
    min-height: 40px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 16px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #536d82;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
}
.portal-authenticated :is(
    .assignment-tabs,
    .assessment-module-tabs,
    .assignment-ops-tabs,
    .course-subnav,
    .history-subnav,
    .finance-subnav,
    .settings-tabs,
    .course-editor-tabs
) > a:not(.btn.primary):hover {
    background: #edf5fa;
    color: #075f96;
}
.portal-authenticated :is(
    .assignment-tabs,
    .assessment-module-tabs,
    .assignment-ops-tabs,
    .course-subnav,
    .history-subnav,
    .finance-subnav,
    .settings-tabs,
    .course-editor-tabs
) > a.active:not(.btn.primary) {
    background: #eaf4fb;
    color: #075f96;
    box-shadow: inset 0 -3px var(--praxis-orange),inset 0 0 0 1px #c8deec,0 4px 11px rgba(8,41,71,.07);
}
.portal-authenticated :is(.assignment-tabs,.assessment-module-tabs,.assignment-ops-tabs) .badge {
    border-color: #d7e5ee;
    background: #e9f0f5;
    color: #496477;
}
.portal-authenticated :is(.assignment-tabs,.assessment-module-tabs,.assignment-ops-tabs) a.active .badge {
    border-color: #f1d2c5;
    background: #fff3ed;
    color: #a84720;
}

.portal-admin :is(.course-editor-hero,.admin-hero,.hostel-hero,.attendance-admin-hero,.certificate-admin-hero,.forms-hero,.settings-hero) :is(.button-row,.hero-actions,.hostel-hero-actions) {
    display: flex;
    max-width: none;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px 2px 5px;
    scrollbar-width: thin;
}
.portal-admin :is(.course-editor-hero,.admin-hero,.hostel-hero,.attendance-admin-hero,.certificate-admin-hero,.forms-hero,.settings-hero) :is(.button-row,.hero-actions,.hostel-hero-actions) > * {
    flex: 0 0 auto;
}
.portal-admin :is(.course-editor-hero,.admin-hero,.hostel-hero,.attendance-admin-hero,.certificate-admin-hero,.forms-hero,.settings-hero) :is(.button-row,.hero-actions,.hostel-hero-actions) .btn {
    white-space: nowrap;
}
.portal-admin .course-editor-hero { grid-template-columns: minmax(280px,1fr) auto; }
.portal-admin .course-editor-hero .button-row { width: max-content; max-width: min(100%,760px); }

/* Strong blue text on white surfaces; pale cyan is reserved for dark hero panels. */
.portal-admin :is(.settings-hero,.forms-hero,.course-builder-hero,.course-editor-hero,.certificate-admin-hero,.hostel-hero,.attendance-admin-hero) .eyebrow,
.portal-admin .panel:not(.admin-overview-hero):not(.assignment-ops-hero) > .section-title .eyebrow {
    color: #08699f;
}
.hostel-history-tag.current { min-width: 27px; padding-inline: 7px; text-align: center; }

@media (max-width: 760px) {
    .portal-authenticated :is(.assignment-tabs,.assessment-module-tabs,.assignment-ops-tabs,.course-subnav,.history-subnav,.finance-subnav,.settings-tabs,.course-editor-tabs) {
        width: 100%;
        justify-content: flex-start;
    }
    .portal-admin .course-editor-hero { grid-template-columns: 1fr; }
    .portal-admin .course-editor-hero .button-row { width: 100%; max-width: 100%; justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Dashboard and student directory refinement */
.admin-overview { gap: 20px; }
.admin-overview-hero { min-height: 218px; padding: 28px 30px; border-radius: 18px; }
.admin-overview-hero h2 { max-width: 720px; margin: 10px 0 12px; font-size: clamp(34px, 3.5vw, 50px); }
.admin-overview-hero p { max-width: 680px; font-size: 14px; line-height: 1.65; }
.admin-hero-side { padding-left: 8px; }
.admin-hero-side .data-date-filter { padding: 9px; border-radius: 12px; }
.admin-hero-side .hero-actions { gap: 9px; }
.admin-overview .overview-metrics { gap: 12px; }
.admin-overview .overview-metric-card { position: relative; min-height: 118px; padding: 18px; border-radius: 14px; background: linear-gradient(145deg, #fff, #f9fcfe); box-shadow: 0 7px 22px rgba(8,41,71,.055); }
.admin-overview .overview-metric-card::after { content: ""; position: absolute; right: 14px; top: 14px; width: 6px; height: 6px; border-radius: 50%; background: #c9dce8; }
.admin-overview .overview-metric-card:hover { border-color: #9cc8e1; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(8,41,71,.1); }
.admin-overview .overview-metric-card small { color: #60758a; font-size: 10px; letter-spacing: .075em; text-transform: uppercase; }
.admin-overview .overview-metric-card strong { margin: 3px 0 2px; color: #102f4a; font-size: clamp(24px, 2vw, 31px); letter-spacing: -.035em; }
.admin-overview .overview-metric-card em { color: #71869a; font-size: 11px; }
.admin-overview .metric-icon { width: 46px; height: 46px; border-radius: 12px; }
.admin-command-strip { gap: 10px; }
.admin-command-card { min-height: 98px; padding: 16px; border-radius: 12px; }
.admin-command-card strong { font-size: 23px; }
.admin-overview .admin-data-card, .admin-overview .side-card { padding: 21px; border-radius: 15px; }
.admin-overview .section-title { padding-bottom: 13px; border-bottom: 1px solid #e4edf3; }
.admin-overview .section-title h3 { font-size: 16px; }
.admin-overview .admin-table { gap: 4px; }
.admin-overview .admin-table-head { background: #f3f7fa; }
.admin-overview .admin-table-row { min-height: 58px; background: #fff; }
.admin-overview .admin-table-row:hover { background: #f7fbfd; }
.admin-overview .admin-action-list { gap: 7px; }
.admin-overview .admin-action-list a { min-height: 43px; border: 1px solid #deebf3; border-radius: 9px; background: #fbfdfe; }

.student-directory-page { gap: 16px; }
.student-directory-page .directory-heading { align-items: center; padding: 20px 22px; border: 1px solid #d4e3ed; border-radius: 15px; background: linear-gradient(135deg, #fff, #f5fafd); box-shadow: 0 7px 22px rgba(8,41,71,.045); }
.student-directory-page .directory-heading h2 { margin-bottom: 6px; color: #102f4a; font-size: 25px; letter-spacing: -.025em; }
.student-directory-page .course-subnav { padding: 4px; border: 1px solid #d9e6ef; border-radius: 11px; background: #fff; }
.student-directory-page .course-subnav a { min-height: 38px; padding: 0 13px; border-radius: 8px; }
.student-directory-page .course-subnav .btn.primary { margin-left: 4px !important; }
.student-stats-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 0; }
.student-stats-strip a { position: relative; align-items: flex-start; min-width: 0; min-height: 92px; padding: 17px 18px; border: 1px solid #d6e4ed; border-radius: 13px; background: #fff; box-shadow: 0 5px 16px rgba(8,41,71,.04); }
.student-stats-strip a::after { content: ""; position: absolute; top: 17px; right: 17px; width: 7px; height: 7px; border-radius: 50%; background: #c7d7e2; }
.student-stats-strip a:hover { border-color: #8fc0dc; box-shadow: 0 9px 22px rgba(8,41,71,.08); transform: translateY(-1px); }
.student-stats-strip a.active { border-color: #208bc7; background: linear-gradient(145deg, #f2f9fd, #fff); box-shadow: inset 0 3px 0 #208bc7, 0 8px 20px rgba(8,121,194,.1); }
.student-stats-strip a.active::after { background: #f26a1b; }
.student-stats-strip a strong { color: #102f4a; font-size: 25px; letter-spacing: -.03em; }
.student-stats-strip a span { margin-top: 8px; color: #6a7f93; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.student-directory-page .directory-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto auto; align-items: center; gap: 9px; padding: 12px; border: 1px solid #d5e3ed; border-radius: 13px; background: #f8fbfd; }
.student-directory-page .directory-search { max-width: none; }
.student-directory-page .directory-search input { width: 100%; }
.student-directory-page .directory-filter-form select { min-width: 160px; }
.student-directory-page .toolbar-date-filter { padding: 5px; border-radius: 9px; background: #fff; }
.student-directory-page .directory-panel { padding: 0; border-radius: 15px; }
.student-directory-page .directory-bulk-form { padding: 12px 16px; background: #f7fafc; }
.student-directory-page .directory-bulk-form span { color: #4f667b; }
.student-directory-page .student-directory-table { border: 0; border-radius: 0; }
.student-directory-page .student-directory-head, .student-directory-page .student-directory-row { padding-left: 16px; padding-right: 16px; gap: 13px; }
.student-directory-page .student-directory-head { position: sticky; top: 0; z-index: 2; min-height: 46px; background: #edf4f8; color: #536b80; }
.student-directory-page .student-directory-row { min-height: 64px; }
.student-directory-page .student-directory-row:nth-child(odd) { background: #fbfdfe; }
.student-directory-page .student-person { color: #102f4a; }
.student-directory-page .directory-action { border: 1px solid #d8e5ed; background: #fff; color: #48637a; }
.student-directory-page .directory-foot { padding: 14px 16px; border-top: 1px solid #dce7ee; background: #f8fbfd; }
.student-directory-page .directory-foot a, .student-directory-page .directory-foot b { min-width: 32px; height: 32px; border-color: #d7e4ec; border-radius: 8px; background: #fff; }
.student-directory-page .directory-foot b { border-color: #0879c2; background: #0879c2; color: #fff; }

.lead-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #d6e4ed; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(8,41,71,.04); }
.lead-table { width: 100%; min-width: 860px; border-collapse: collapse; table-layout: fixed; }
.lead-table th, .lead-table td { padding: 15px 16px; text-align: left; vertical-align: middle; border-bottom: 1px solid #e3ecf2; overflow-wrap: anywhere; }
.lead-table th { background: #edf4f8; color: #536b80; font-size: 10px; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.lead-table td { color: #263855; font-size: 13px; line-height: 1.45; }
.lead-table tbody tr:last-child td { border-bottom: 0; }
.lead-table tbody tr:hover td { background: #f8fbfd; }
.lead-table th:nth-child(1), .lead-table td:nth-child(1) { width: 22%; }
.lead-table th:nth-child(2), .lead-table td:nth-child(2) { width: 17%; }
.lead-table th:nth-child(3), .lead-table td:nth-child(3) { width: 12%; }
.lead-table th:nth-child(4), .lead-table td:nth-child(4) { width: 16%; }
.lead-table th:nth-child(5), .lead-table td:nth-child(5) { width: 18%; }
.lead-table th:nth-child(6), .lead-table td:nth-child(6) { width: 15%; }
.lead-table td strong { color: #102f4a; }
.lead-table td small { display: inline-block; margin-top: 3px; color: #6a7f93; line-height: 1.35; }
.lead-automation-label { display: inline-flex; padding: 6px 9px; border-radius: 7px; background: #edf6ff; color: #1768a9; font-size: 11px; font-weight: 800; }
.lead-name-link { text-decoration: none; }
.lead-name-link:hover strong { color: #0879c2; }
.lead-detail-page { display: grid; gap: 18px; }
.lead-detail-heading { padding: 4px 0; }
.lead-back { display: inline-block; margin-bottom: 10px; color: #0879c2; font-size: 12px; font-weight: 800; text-decoration: none; }
.lead-detail-actions, .lead-detail-actions form { display: flex; align-items: center; gap: 9px; margin: 0; }
.lead-detail-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.lead-detail-main, .lead-detail-side { display: grid; gap: 18px; }
.lead-card { padding: 21px; border-radius: 14px; }
.lead-card > h3 { margin: 0 0 16px; font-size: 15px; }
.lead-stage-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px; align-items: end; }
.lead-stage-form label { display: grid; gap: 7px; color: #536b80; font-size: 11px; font-weight: 800; }
.lead-stage-form select { min-height: 42px; background: #fff; }
.lead-note-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; padding-bottom: 20px; border-bottom: 1px solid #e3ecf2; }
.lead-note-form textarea { min-height: 82px; resize: vertical; }
.lead-timeline { display: grid; gap: 0; margin-top: 6px; }
.lead-timeline-item { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 12px; padding: 15px 0; border-bottom: 1px solid #edf2f5; }
.lead-timeline-item:last-child { border-bottom: 0; }
.lead-timeline-item i { width: 9px; height: 9px; margin-top: 5px; border: 2px solid #fff; border-radius: 50%; background: #0879c2; box-shadow: 0 0 0 3px #dceefa; }
.lead-timeline-item strong { color: #17354f; font-size: 12px; }
.lead-timeline-item p { margin: 4px 0; color: #405970; font-size: 13px; }
.lead-timeline-item small { color: #8292a0; font-size: 10px; }
.lead-facts { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 12px 14px; margin: 0; }
.lead-facts dt { color: #7a8c9d; font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.lead-facts dd { min-width: 0; margin: 0; color: #263855; font-size: 12px; overflow-wrap: anywhere; }
.lead-consent { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf2f5; color: #405970; font-size: 12px; }
.lead-consent:last-child { border-bottom: 0; }
.lead-consent b { padding: 5px 8px; border-radius: 6px; font-size: 10px; text-transform: capitalize; }
.lead-consent b.granted { background: #e9f8ef; color: #168447; }
.lead-consent b.missing { background: #eef2f5; color: #687b8b; }
.automation-page { display: grid; gap: 18px; }
.automation-page { min-width:0; }
.automation-sequence-grid { display: grid; width:100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.automation-sequence-card { display: grid; width:100%; min-width:0; gap: 13px; padding: 21px; color: inherit; text-decoration: none; transition: .18s ease; }
.automation-sequence-card:hover { border-color: #8fc0dc; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(8,41,71,.08); }
.automation-sequence-card > div, .automation-sequence-card footer { display: flex; width:100%; min-width:0; align-items: center; justify-content: space-between; gap: 10px; }
.automation-sequence-card h3 { margin: 0; color: #102f4a; font-size: 16px; line-height: 1.35; }
.automation-sequence-card p, .automation-sequence-card small { margin: 0; color: #718597; font-size: 11px; }
.automation-sequence-card footer { padding-top: 14px; border-top: 1px solid #e3ecf2; color: #60778b; font-size: 11px; }
.automation-sequence-card footer span { display: grid; gap: 2px; }
.automation-sequence-card footer strong { color: #17354f; font-size: 16px; }
.email-report-strip { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.email-report-strip article { padding:14px 16px; border-top:3px solid #1b8bc8; }
.email-report-strip article.risk { border-top-color:#e56a4b; }
.email-report-strip span { display:block; color:#718597; font-size:10px; font-weight:850; text-transform:uppercase; }
.email-report-strip strong { display:block; margin-top:6px; color:#17354f; font-size:23px; }
.ses-report-panel { padding:18px 20px; }
.ses-report-panel summary { color:#17354f; font-weight:850; cursor:pointer; }
.ses-setup { display:grid; grid-template-columns:1fr 2fr; gap:12px; margin:18px 0; padding:15px; border-radius:10px; background:#f4f8fb; }
.ses-setup div { display:grid; gap:5px; min-width:0; }
.ses-setup b { color:#526c80; font-size:10px; text-transform:uppercase; }
.ses-setup code { overflow-wrap:anywhere; color:#1768a9; }
.ses-setup p { grid-column:1/-1; margin:0; color:#60778b; font-size:11px; line-height:1.55; }
.automation-sequence-card footer b { margin-left: auto; color: #0879c2; }
.automation-editor-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.automation-steps-card, .automation-add-card { padding: 21px; }
.automation-add-card > h3 { margin-top: 0; }
.automation-step { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 13px; align-items: center; padding: 16px 0; border-bottom: 1px solid #e3ecf2; }
.automation-step:last-child { border-bottom: 0; }
.automation-step > b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #0b1f38; color: #fff; font-size: 12px; }
.automation-step strong { color: #17354f; font-size: 12px; }
.automation-step p { margin: 4px 0 0; color: #718597; font-size: 11px; }
.automation-step form { margin: 0; }
.automation-add-card small { color: #718597; font-size: 10px; }
.automation-note { margin: 16px 0 0; padding: 12px; border-radius: 8px; background: #f3f8fb; color: #60778b; font-size: 11px; line-height: 1.55; }
.automation-owner-banner { margin-bottom: 20px; padding: 15px 16px; border: 1px solid #b8dfd0; border-radius: 10px; background: #edf9f4; }
.automation-owner-banner strong { color: #137657; font-size: 13px; }
.automation-owner-banner p { margin: 5px 0 0; color: #4e7568; font-size: 11px; line-height: 1.55; }
.message-template-page { display: grid; gap: 18px; }
.message-template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.message-template-card { display: grid; gap: 12px; padding: 20px; color: inherit; text-decoration: none; transition: .18s ease; }
.message-template-card:hover { border-color: #8fc0dc; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(8,41,71,.08); }
.message-template-card > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.message-template-card h3 { margin: 0; color: #102f4a; font-size: 15px; }
.message-template-card p { min-height: 34px; margin: 0; color: #60778b; font-size: 12px; line-height: 1.45; }
.message-template-card small { color: #8a99a6; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; overflow-wrap: anywhere; }
.message-channel { padding: 5px 8px; border-radius: 6px; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.message-channel.email { background: #edf6ff; color: #1768a9; }
.message-channel.whatsapp { background: #e9f8ef; color: #168447; }
.message-template-editor { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 18px; align-items: start; }
.message-template-editor > .panel { padding: 22px; }
.message-template-form code, .message-template-page code { padding: 2px 5px; border-radius: 4px; background: #edf4f8; color: #1768a9; font-size: 11px; }
.message-preview > span { color: #718597; font-size: 10px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.message-preview h3 { margin: 10px 0 16px; color: #102f4a; font-size: 18px; }
.message-preview div { padding: 17px; border-radius: 9px; background: #f5f9fc; color: #405970; font-size: 13px; line-height: 1.65; }
.workflow-canvas { position: relative; min-height: 430px; padding: 28px; border: 1px solid #dce6ed; border-radius: 14px; background-color: #f8fafc; background-image: linear-gradient(#e9eef2 1px,transparent 1px),linear-gradient(90deg,#e9eef2 1px,transparent 1px); background-size: 24px 24px; }
.visual-workflow-shell { overflow:hidden; border:1px solid #d7e2ea; border-radius:14px; background:#fff; }
.visual-workflow-toolbar { display:flex; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid #dce6ed; background:#fff; }
.visual-workflow-toolbar > div { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.visual-workflow-toolbar button { min-height:32px; padding:6px 10px; border:1px solid #d5e0e8; border-radius:7px; background:#fff; color:#31516b; font-size:11px; font-weight:800; cursor:pointer; }
.visual-workflow-toolbar button:hover { border-color:#1685c8; background:#eef7fd; color:#0874b5; }
.visual-workflow-toolbar [data-graph-zoom-label] { min-width:44px; color:#718597; font-size:10px; text-align:center; }
.visual-workflow-viewport { position:relative; height:580px; overflow:hidden; cursor:grab; background-color:#f8fbfd; background-image:radial-gradient(#9fc3dc 1.2px,transparent 1.2px); background-size:20px 20px; touch-action:none; }
.visual-workflow-world { position:absolute; inset:0; width:2400px; height:1200px; transform-origin:0 0; }
.visual-workflow-edges,.visual-workflow-nodes { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.visual-workflow-edges path { fill:none; stroke:#8eb7d0; stroke-width:2; }
.visual-workflow-edges .edge-hit { stroke:transparent; stroke-width:16; cursor:pointer; }
.visual-workflow-edges .edge-label { fill:#57758b; font-size:10px; font-weight:900; }
.visual-node { position:absolute; display:grid; grid-template-columns:14px 38px minmax(0,1fr) 18px; gap:8px; align-items:center; width:190px; min-height:108px; padding:13px 12px; border:1px solid #c9d9e4; border-radius:14px; background:#fff; box-shadow:0 5px 14px rgba(22,55,78,.08); cursor:move; user-select:none; }
.visual-node:hover,.visual-node.selected { border-color:#4c9dd0; box-shadow:0 0 0 3px rgba(22,133,200,.12),0 8px 20px rgba(22,55,78,.11); }
.visual-node.type-condition { border-color:#a88cdb; box-shadow:0 0 0 3px rgba(126,86,194,.09),0 5px 14px rgba(22,55,78,.08); }
.visual-node.type-exit { border-color:#8acbb0; }
.node-grip { color:#a1b2bf; font-size:14px; }
.node-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#eaf5fc; color:#1685c8; font-size:16px; }
.type-condition .node-icon { background:#f1ebfb; color:#7e56c2; }.type-exit .node-icon { background:#eaf8f1;color:#16885b; }.type-wait .node-icon { background:#edf6ff;color:#1778d4; }
.visual-node small { display:block; margin-bottom:4px; color:#8295a4; font-size:8px; font-weight:900; letter-spacing:.12em; }
.visual-node strong { display:block; color:#142c41; font-size:12px; line-height:1.45; }
.visual-node em { display:block; max-width:105px; margin-top:4px; overflow:hidden; color:#7b8d9a; font-size:8px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.node-delete { padding:2px; color:#a2afba; font-size:13px; cursor:pointer; }.node-delete:hover{color:#d94d4d;}
.node-input { position:absolute; left:-5px; top:50%; width:9px; height:9px; border:2px solid #fff; border-radius:50%; background:#76aeca; transform:translateY(-50%); }
.node-port { position:absolute; right:-8px; top:50%; display:grid; place-items:center; width:18px; height:18px; padding:0; border:2px solid #fff; border-radius:50%; background:#1685c8; color:#fff; font-size:10px; cursor:crosshair; transform:translateY(-50%); }
.node-port.yes,.node-port.no { right:-18px; width:34px; height:18px; border:0; border-radius:9px; font-size:8px; font-weight:900; }.node-port.yes{top:35%;background:#21a56b}.node-port.no{top:68%;background:#e07655}
.visual-workflow-help { padding:9px 13px; border-top:1px solid #dce6ed; color:#718597; font-size:10px; }
.visual-workflow-save { display:flex; justify-content:flex-end; padding:10px 12px; border-top:1px solid #eef2f5; }
.workflow-trigger,.workflow-action { position: relative; z-index: 1; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 14px; align-items: center; width: min(100%,540px); margin: 0 auto; padding: 17px 18px; border: 1px solid #cad6df; border-radius: 13px; background: #fff; box-shadow: 0 5px 14px rgba(19,46,70,.08); }
.workflow-action[draggable] { grid-template-columns: 18px 44px minmax(0,1fr) auto; cursor: grab; }
.workflow-action.dragging { opacity: .55; cursor: grabbing; }
.workflow-trigger.workflow-testing,.workflow-action.workflow-testing { border-color: #1778d4; box-shadow: 0 0 0 4px rgba(23,120,212,.15),0 10px 28px rgba(23,120,212,.18); transform: translateY(-2px); }
.workflow-trigger.workflow-tested,.workflow-action.workflow-tested { border-color: #20a96b; }
.workflow-drag { color: #9baab6; font-size: 18px; letter-spacing: -4px; }
.workflow-card-edit { display: grid; gap: 0; padding: 0; color: inherit; text-align: left; }
.workflow-trigger { border-top: 3px solid #13a067; }
.workflow-action.email { border-left: 4px solid #1778d4; }
.workflow-action.whatsapp { border-left: 4px solid #20a96b; }
.workflow-action.sendy { border-left: 4px solid #ef6c35; }
.workflow-condition { position: relative; z-index: 1; display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 13px; align-items: center; width: min(100%,480px); margin: 0 auto; padding: 13px 16px; border: 1px solid #d8cce9; border-left: 4px solid #7d5abd; border-radius: 12px; background: #fff; box-shadow: 0 5px 14px rgba(19,46,70,.06); }
.workflow-condition .workflow-icon { width: 38px; height: 38px; background: #f3eefb; color: #7050a8; }
.workflow-condition small { display:block; color:#806d99; font-size:9px; font-weight:900; letter-spacing:.08em; }
.workflow-condition strong { color:#382c4a; font-size:13px; }
.workflow-condition p { margin:4px 0 0; color:#71647f; font-size:10px; }
.workflow-condition > span:last-child { color:#7050a8; font-size:10px; font-weight:800; }
.workflow-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 11px; background: #edf6ff; color: #1768a9; font-size: 19px; font-style: normal; font-weight: 900; }
.workflow-icon.trigger { background: #e8f8ef; color: #158658; }
.workflow-action.sendy .workflow-icon { background: #fff0e9; color: #d95b27; }
.workflow-trigger small,.workflow-action small { display: block; margin-bottom: 4px; color: #7a8c9d; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.workflow-trigger strong,.workflow-action strong { color: #17354f; font-size: 14px; }
.workflow-trigger p,.workflow-action p { margin: 4px 0 0; color: #657b8e; font-size: 11px; }
.workflow-trigger > b,.workflow-action > b { color: #6e8293; font-size: 10px; }
.workflow-action form { margin: 0; }
.workflow-menu { padding: 7px; color: #8797a5; letter-spacing: 2px; }
.workflow-connector { position: relative; display: grid; place-items: center; height: 55px; }
.workflow-connector i { position: absolute; inset-block: 0; width: 2px; background: #b8c5cf; }
.workflow-connector span,.workflow-connector button { position: relative; z-index: 1; display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 2px solid #b8c5cf; border-radius: 50%; background: #fff; color: #557084; font-size: 17px; cursor: pointer; }
.workflow-connector button:hover { border-color: #1778d4; background: #edf6ff; color: #1778d4; transform: scale(1.08); }
.workflow-controls,.workflow-controls form,.workflow-editor-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.workflow-connector.short { height: 28px; }
.workflow-connector.end { height: 44px; }
.workflow-wait { position: relative; z-index: 1; width: max-content; margin: 0 auto; padding: 8px 13px; border: 1px solid #d5dee5; border-radius: 20px; background: #fff; color: #60778b; font-size: 11px; font-weight: 750; box-shadow: 0 3px 8px rgba(19,46,70,.05); }
.workflow-wait span { color: #e47a28; margin-right: 5px; }
.workflow-empty { width: min(100%,430px); margin: 0 auto; padding: 18px; border: 1px dashed #8cb4d6; border-radius: 11px; background: #f4faff; color: #60778b; text-align: center; font-size: 12px; }
.email-composer { overflow: hidden; border: 1px solid #cfd9e1; border-radius: 10px; background: #fff; }
.email-composer.fullscreen { position: fixed; inset: 16px; z-index: 10000; display: flex; flex-direction: column; box-shadow: 0 20px 70px rgba(0,0,0,.22); }
.email-composer.fullscreen .email-editor,.email-composer.fullscreen .email-source { flex: 1; min-height: 0; }
.email-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; padding: 9px; border-bottom: 1px solid #dbe3e9; background: linear-gradient(#fff,#f5f7f9); }
.email-toolbar > span { width: 1px; height: 28px; margin: 0 2px; background: #dce3e8; }
.email-toolbar button,.email-toolbar select,.composer-color { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 34px; min-height: 34px; padding: 6px 9px; border: 1px solid #d3dbe1; border-radius: 6px; background: #fff; color: #33475b; font-size: 12px; cursor: pointer; }
.email-toolbar button:hover,.email-toolbar button.active { border-color: #70a8d5; background: #edf6ff; color: #1768a9; }
.email-toolbar select { width: auto; min-width: 92px; }
.composer-color { position: relative; font-weight: 900; }
.composer-color input { position: absolute; inset: 0; width: 100%; min-height: 0; opacity: 0; cursor: pointer; }
.composer-color.fill { background: #37485b; color: #fff; }
.email-editor,.email-source { width: 100%; min-height: 390px; padding: 25px; border: 0; outline: 0; background: #fff; color: #24364b; font-family: Arial,sans-serif; font-size: 15px; line-height: 1.6; }
.email-editor:focus { box-shadow: inset 0 0 0 2px #8bc0ea; }
.email-source { display: block; resize: vertical; background: #162330; color: #d9edf9; font: 13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; }
.email-source[hidden],.email-editor[hidden] { display: none; }
.composer-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.composer-footer > span { color: #718597; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.composer-footer [data-token] { padding: 6px 8px; border: 1px solid #d5e2ea; border-radius: 6px; background: #f5f9fc; color: #1768a9; font: 10px ui-monospace,SFMono-Regular,Menlo,monospace; cursor: pointer; }
.composer-footer .btn { margin-left: auto; }
.message-preview iframe { width: 100%; min-height: 520px; margin-top: 15px; border: 1px solid #dce6ed; border-radius: 9px; background: #fff; }

@media (max-width: 1180px) {
    .email-report-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .student-stats-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .student-directory-page .directory-toolbar { grid-template-columns: minmax(240px, 1fr) auto; }
    .student-directory-page .toolbar-date-filter { grid-column: 1 / -1; }
    .lead-detail-grid { grid-template-columns: 1fr; }
    .lead-detail-side { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .automation-sequence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .automation-editor-grid { grid-template-columns: 1fr; }
    .message-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .message-template-editor { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .email-report-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ses-setup { grid-template-columns:1fr; }
    .ses-setup p { grid-column:auto; }
    html, body { max-width: 100%; overflow-x: hidden; }
    .app-shell, .main, .sidebar { min-width: 0; max-width: 100%; }
    .portal-admin .sidebar .nav, .portal-facilitator .sidebar .nav { width: 100%; max-width: 100%; overscroll-behavior-x: contain; }
    .admin-overview-hero { min-height: 0; padding: 22px; }
    .admin-hero-side { padding-left: 0; }
    .admin-overview .overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-overview .overview-metric-card { grid-template-columns: 40px minmax(0, 1fr); min-height: 106px; padding: 14px; gap: 11px; }
    .admin-overview .metric-icon { width: 40px; height: 40px; }
    .student-directory-page .directory-heading { align-items: stretch; padding: 17px; }
    .student-directory-page .course-subnav { width: 100%; overflow-x: auto; }
    .student-directory-page .course-subnav a { flex: 0 0 auto; }
    .student-stats-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .student-directory-page .directory-toolbar { grid-template-columns: 1fr; align-items: stretch; }
    .student-directory-page .directory-toolbar > *, .student-directory-page .directory-search-form, .student-directory-page .directory-filter-form { width: 100%; min-width: 0; }
    .student-directory-page .directory-filter-form { display: grid; grid-template-columns: 1fr 1fr; }
    .student-directory-page .directory-filter-form select { width: 100%; min-width: 0; }
    .student-directory-page .toolbar-date-filter { grid-column: auto; }
    .lead-table { min-width: 760px; }
    .lead-table th, .lead-table td { padding: 12px; }
    .lead-detail-heading, .lead-detail-actions { align-items: stretch; flex-direction: column; }
    .lead-detail-actions form, .lead-detail-actions .btn { width: 100%; }
    .lead-stage-form, .lead-note-form, .lead-detail-side { grid-template-columns: 1fr; }
    .automation-sequence-grid { grid-template-columns: 1fr; }
    .automation-step { grid-template-columns: 30px minmax(0, 1fr); }
    .automation-step form { grid-column: 2; }
    .message-template-grid { grid-template-columns: 1fr; }
    .workflow-canvas { min-height: 360px; padding: 18px 12px; }
    .workflow-trigger,.workflow-action,.workflow-action[draggable] { grid-template-columns: 38px minmax(0,1fr); gap: 11px; padding: 14px; }
    .workflow-action[draggable] .workflow-drag { display: none; }
    .workflow-condition { grid-template-columns: 38px minmax(0,1fr); }
    .workflow-condition > span:last-child { grid-column: 2; }
    .workflow-icon { width: 38px; height: 38px; }
    .workflow-trigger > b,.workflow-action > b,.workflow-action form { grid-column: 2; justify-self: start; }
    .workflow-action form { margin-top: -4px; }
    .email-toolbar { flex-wrap: nowrap; overflow-x: auto; }
    .email-toolbar button,.email-toolbar select,.composer-color { flex: 0 0 auto; }
    .email-editor,.email-source { min-height: 330px; padding: 18px; }
    .composer-footer .btn { width: 100%; margin-left: 0; }
    .message-preview iframe { min-height: 400px; }
}

/* Attendance premium visual pass */
.admin-attendance-page { gap: 18px; }
.attendance-admin-hero {
    position: relative;
    grid-template-columns: minmax(0,1fr) auto;
    min-height: 205px;
    overflow: hidden;
    border-top: 5px solid var(--praxis-orange);
    background:
        radial-gradient(circle at 86% 15%, rgba(31,145,221,.30), transparent 31%),
        linear-gradient(135deg,#082b4b 0%,#0b4d7c 58%,#073454 100%);
    box-shadow: 0 18px 38px rgba(8,41,71,.17);
}
.attendance-admin-hero::after { content: ""; position: absolute; right: -55px; bottom: -105px; width: 300px; height: 300px; border: 1px solid rgba(255,255,255,.10); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.02); pointer-events: none; }
.attendance-admin-hero > * { position: relative; z-index: 1; }
.attendance-admin-hero .eyebrow { color: #ffab71; }
.attendance-admin-hero h2 { color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.14); }
.attendance-admin-hero p { color: #d7e9f5; }
.attendance-admin-hero .button-row { align-self: center; }
.attendance-admin-hero .button-row .btn { min-height: 43px; border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.10); color: #fff; box-shadow: none; backdrop-filter: blur(8px); }
.attendance-admin-hero .button-row .btn:first-child { border-color: #f26a1b; background: #f26a1b; }
.attendance-admin-hero .button-row .btn:hover { border-color: #fff; background: #fff; color: #0a5b91; }
.attendance-filter-card { border: 1px solid #d5e4ed; border-left: 4px solid var(--praxis-orange); background: #fff; box-shadow: 0 8px 24px rgba(8,41,71,.055); }
.attendance-filter-bar label { color: #587185; }
.attendance-filter-bar input,.attendance-filter-bar select { min-height: 46px; border-color: #d2e1e9; background: #f9fbfd; }
.attendance-filter-bar input:focus,.attendance-filter-bar select:focus { border-color: #168bcf; background: #fff; box-shadow: 0 0 0 3px rgba(22,139,207,.11); outline: 0; }
.attendance-filter-bar > .btn { min-height: 46px; background: linear-gradient(135deg,#0879c2,#0968a3); box-shadow: 0 8px 18px rgba(8,121,194,.20); }
.attendance-stat-card { overflow: hidden; border: 1px solid #d9e6ed; box-shadow: 0 9px 24px rgba(8,41,71,.06); }
.attendance-stat-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #168bcf; }
.attendance-stat-card.green::before { background: #23a66a; }
.attendance-stat-card.amber::before { background: #f26a1b; }
.attendance-stat-card.purple::before { background: #7b61c9; }
.attendance-stat-card > span { box-shadow: inset 0 0 0 1px rgba(8,41,71,.035); }
.attendance-session-register { border: 1px solid #d5e3eb; box-shadow: 0 12px 30px rgba(8,41,71,.07); }
.attendance-session-register > .section-title h3 { max-width: 700px; color: #103653; font-size: 20px; line-height: 1.35; }
.attendance-session-register > .section-title .badge { background: #eaf4fa; color: #1677ae; }
.attendance-roster-search input { min-height: 46px; border-color: #d4e3eb; background: #f7fafc; }
.attendance-bulk-actions { border-color: #d5e4ed; background: linear-gradient(90deg,#f5f9fc,#fff9f4); }
.attendance-bulk-actions .btn { min-height: 36px; border-color: #cbdce6; background: #fff; color: #31546d; }
.attendance-bulk-actions .btn:hover { border-color: #168bcf; color: #0879c2; }
.attendance-roster-table { gap: 0; border-color: #d7e4ec; background: #fff; }
.attendance-roster-row { border: 0; border-bottom: 1px solid #e2ebf0; border-radius: 0; }
.attendance-roster-row:last-child { border-bottom: 0; }
.attendance-roster-row:hover { background: #f4f9fc; }
.attendance-roster-row.unmarked { border-color: #f1dfca; background: #fffaf4; }
.attendance-save-row .btn { min-height: 44px; padding-inline: 24px; background: linear-gradient(135deg,#f26a1b,#dd5510); box-shadow: 0 8px 18px rgba(242,106,27,.22); }
.attendance-mark-card { border: 1px solid #d8e5ed; box-shadow: 0 8px 23px rgba(8,41,71,.055); }
.attendance-mark-card > .section-title h3 { color: #123854; }
.attendance-calendar-day.selected { color: #fff; background: var(--praxis-blue); box-shadow: 0 5px 12px rgba(8,121,194,.24); }
.attendance-calendar-day.has-records:not(.selected) { background: #eaf7ef; color: #168447; }
.attendance-calendar-day.has-session:not(.selected) { background: #fff1e7; color: #c65310; }
.attendance-dispute-item[open] { border-color: #f0b98f; box-shadow: 0 8px 20px rgba(183,79,16,.08); }
.attendance-risk-row a strong { color: #173b59; }

.attendance-page { display: grid; gap: 16px; }
.student-attendance-hero { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; min-height: 180px; overflow: hidden; padding: 27px 29px; border-top: 5px solid var(--praxis-orange); border-radius: 17px; background: radial-gradient(circle at 82% 20%,rgba(38,159,226,.30),transparent 32%),linear-gradient(135deg,#082b4b,#0b4d7c 60%,#073454); color: #fff; box-shadow: 0 16px 34px rgba(8,41,71,.15); }
.student-attendance-hero::after { content: ""; position: absolute; right: -55px; bottom: -115px; width: 280px; height: 280px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 38px rgba(255,255,255,.035),0 0 0 76px rgba(255,255,255,.02); }
.student-attendance-hero > * { position: relative; z-index: 1; }
.student-attendance-hero .eyebrow { color: #ffad76; }
.student-attendance-hero h2 { margin: 8px 0 9px; color: #fff; font-size: clamp(30px,4vw,44px); letter-spacing: -.04em; }
.student-attendance-hero p { max-width: 650px; margin: 0; color: #d6e8f4; font-size: 14px; line-height: 1.6; }
.student-attendance-hero-score { display: grid; justify-items: end; min-width: 190px; padding: 16px 18px; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; background: rgba(255,255,255,.09); backdrop-filter: blur(8px); }
.student-attendance-hero-score span { color: #cfe5f2; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.student-attendance-hero-score strong { margin: 3px 0; color: #fff; font-size: 34px; letter-spacing: -.05em; }
.student-attendance-hero-score small { color: #cfe5f2; font-size: 10px; }
.attendance-course-switcher { padding: 5px; border: 1px solid #d5e3eb; border-radius: 11px; background: #f2f7fa; }
.attendance-page > .assignment-tabs { gap: 6px; padding: 5px; border: 1px solid #d6e4ec; border-radius: 11px; background: #f4f8fa; }
.attendance-page > .assignment-tabs a { min-height: 39px; padding: 0 15px; border-radius: 8px; }
.attendance-page > .assignment-tabs a.active { background: #fff; color: var(--praxis-blue); box-shadow: inset 0 -3px var(--praxis-orange),0 4px 12px rgba(8,41,71,.07); }
.student-attendance-board { gap: 14px; }
.student-attendance-board > .panel,#attendance-history { border: 1px solid #d7e4ec; border-radius: 14px; box-shadow: 0 9px 25px rgba(8,41,71,.055); }
.attendance-overview { background: linear-gradient(155deg,#fff,#f5fbf8); }
.attendance-month-card { background: linear-gradient(155deg,#fff,#fff9f4); }
.attendance-history-card { background: linear-gradient(155deg,#fff,#f4f9fd); }
.attendance-score { filter: drop-shadow(0 7px 13px rgba(22,132,71,.12)); }
.attendance-score::before { background: conic-gradient(#168447 calc(var(--score) * 1%),#dfeae5 0); }
.attendance-month-card .summary-list > div { border: 1px solid #e0e8ed; border-radius: 10px; background: rgba(255,255,255,.82); }
.attendance-history-card .table-row,#attendance-history .table-row { border-color: #dce7ed; border-radius: 10px; background: #fff; }
#attendance-history { overflow: visible; }

@media (max-width: 980px) {
    .attendance-admin-hero,.student-attendance-hero { grid-template-columns: 1fr; }
    .attendance-admin-hero .button-row { justify-content: flex-start; }
    .student-attendance-hero-score { justify-items: start; width: min(100%,280px); }
    .attendance-filter-bar { grid-template-columns: 1fr 1fr; }
    .attendance-filter-bar > .btn { width: 100%; }
}
@media (max-width: 760px) {
    .attendance-admin-hero,.student-attendance-hero { min-height: 0; padding: 22px; }
    .attendance-admin-hero .button-row { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .attendance-admin-hero .button-row .btn:first-child { grid-column: 1 / -1; }
    .attendance-filter-bar { grid-template-columns: 1fr; }
    .student-attendance-hero-score { width: 100%; }
    .student-attendance-board { grid-template-columns: 1fr; }
    .attendance-page > .assignment-tabs { display: grid; grid-template-columns: 1fr 1fr; }
    .student-dispute-form form { position: fixed; top: 50%; right: 14px; left: 14px; width: auto; transform: translateY(-50%); }
}
@media (max-width: 480px) {
    .admin-overview .overview-metrics { grid-template-columns: 1fr; }
    .student-stats-strip { grid-template-columns: 1fr 1fr; gap: 8px; }
    .student-stats-strip a { min-height: 82px; padding: 14px; }
    .student-stats-strip a strong { font-size: 22px; }
    .student-directory-page .directory-filter-form { grid-template-columns: 1fr; }
}

/* Remaining admin modules: forms, certificates, live training, settings and people */
.forms-admin-page, .certificate-admin-page, .admin-live-page, .admin-notifications-page { display: grid; gap: 16px; }
.admin-notifications-page { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.admin-notifications-page > .admin-overview-hero,
.admin-notifications-page > .action-centre-summary,
.admin-notifications-page > .announcement-composer,
.admin-notifications-page > .delivery-health-panel { grid-column: 1 / -1; }
.action-centre-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.action-centre-summary a { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 15px; border: 1px solid #d7e5ed; border-radius: 12px; background: #fff; color: #456074; text-decoration: none; box-shadow: 0 5px 16px rgba(8,41,71,.04); }
.action-centre-summary a:hover { border-color: #ff9b52; transform: translateY(-1px); }
.action-centre-summary span { font-size: 11px; font-weight: 800; line-height: 1.35; }
.action-centre-summary strong { color: #123854; font-size: 23px; }
.admin-notifications-page > .panel { min-width: 0; }
.admin-notifications-page .summary-list > div { gap: 10px; }
.admin-notifications-page .enrollment-row-actions { flex-wrap: wrap; justify-content: flex-end; }
.announcement-composer { scroll-margin-top: 90px; }
.announcement-form { margin-top: 16px; }
.announcement-form [hidden] { display: none !important; }
.announcement-channels { display: flex; flex-wrap: wrap; gap: 12px 22px; margin: 0; padding: 14px 16px; border: 1px solid #d9e5ed; border-radius: 11px; }
.announcement-channels legend { padding: 0 6px; color: #536b7d; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.announcement-channels label { display: flex; align-items: center; gap: 8px; font-weight: 800; }
.delivery-health-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.delivery-health-stats span { display: grid; gap: 3px; padding: 13px; border-radius: 11px; background: #f4f8fb; }
.delivery-health-stats strong { color: #123854; font-size: 24px; }
.delivery-health-stats small { color: #6c8091; font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.forms-hero, .certificate-admin-hero { min-height: 194px; padding: 27px 29px; border-radius: 17px; background: linear-gradient(135deg, #fff, #f3f9fc); box-shadow: 0 10px 30px rgba(8,41,71,.07); }
.forms-hero h2, .certificate-admin-hero h2 { margin: 8px 0 10px; color: #102f4a; font-size: clamp(31px, 3.4vw, 46px); letter-spacing: -.04em; }
.forms-hero p, .certificate-admin-hero p { max-width: 740px; color: #60768a; font-size: 14px; line-height: 1.65; }
.forms-admin-page .panel, .certificate-admin-page .panel, .admin-live-page .panel, .admin-notifications-page .panel { border-radius: 14px; }
.forms-admin-page .panel > .section-title, .certificate-admin-page .panel > .section-title, .admin-live-page .panel > .section-title, .admin-notifications-page .panel > .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }

.forms-admin-page .admin-page-filterbar { margin: 0; padding: 11px; border-radius: 12px; background: #f7fafc; }
.forms-table { overflow: hidden; border: 1px solid #d6e4ec; border-radius: 12px; }
.forms-table-head { min-height: 43px; background: #edf4f8; color: #526a7e; font-size: 9px; letter-spacing: .085em; }
.forms-table-row { min-height: 63px; padding-top: 10px; padding-bottom: 10px; }
.forms-table-row:nth-child(odd) { background: #fbfdfe; }
.forms-table-row:hover { background: #f3f9fc; }
.forms-table-row .btn { min-height: 33px; padding: 6px 10px; }
.forms-detail-page > .panel, .forms-detail-page > aside { padding: 21px; border-radius: 14px; }
.forms-category-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.forms-category-strip a { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; border: 1px solid #d8e5ed; border-radius: 13px; background: #fff; color: #38546a; text-decoration: none; box-shadow: 0 5px 18px rgba(8,41,71,.045); }
.forms-category-strip a:hover { transform: translateY(-1px); border-color: #a9c9df; }
.forms-category-strip a.active { border-color: #ff7a1a; background: linear-gradient(135deg, #fff8f2, #fff); box-shadow: inset 4px 0 #ff7a1a, 0 7px 22px rgba(232,96,15,.1); }
.forms-category-strip span { font-size: 12px; font-weight: 800; }
.forms-category-strip strong { color: #123854; font-size: 24px; }
.status-pill.form-status-new { background: #e8f2ff; color: #1768bb; }
.status-pill.form-status-in-progress { background: #fff2d7; color: #9a5a00; }
.status-pill.form-status-replied { background: #e8f8ee; color: #168447; }
.status-pill.form-status-closed { background: #eaf0f4; color: #4e6577; }
.status-pill.form-status-archived { background: #f1ecfa; color: #6d46a2; }
.paid-form-converted { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; align-items: center; }
.paid-form-converted p, .paid-form-converted .status-pill { grid-column: 1 / -1; }
.form-file-list { min-width: 0; }
.form-file-list .btn { display: block; width: 100%; max-width: 100%; overflow-wrap: anywhere; white-space: normal; text-align: left; }

@media (max-width: 760px) {
    .admin-notifications-page { grid-template-columns: 1fr; }
    .admin-notifications-page > .admin-overview-hero, .admin-notifications-page > .action-centre-summary, .admin-notifications-page > .announcement-composer, .admin-notifications-page > .delivery-health-panel { grid-column: auto; }
    .action-centre-summary { grid-template-columns: 1fr 1fr; }
    .forms-category-strip { grid-template-columns: 1fr 1fr; }
    .forms-category-strip a { min-height: 64px; padding: 12px 14px; }
    .forms-table { overflow: visible; border: 0; }
    .forms-table-head { display: none; }
    .forms-table-row { display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: 12px 16px; padding: 16px; }
    .forms-table-row > span { min-width: 0; overflow-wrap: anywhere; }
    .forms-table-row > span::before { content: attr(data-label); display: block; margin-bottom: 4px; color: #708397; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
    .forms-table-row > span[data-label="Summary"], .forms-row-actions { grid-column: 1 / -1; }
    .forms-row-actions .btn, .forms-row-actions form { flex: 1; }
    .forms-row-actions button { width: 100%; }
}

@media (max-width: 430px) {
    .action-centre-summary { grid-template-columns: 1fr; }
    .forms-category-strip { grid-template-columns: 1fr; }
    .forms-category-strip a { min-height: 56px; }
}

.certificate-admin-stats { gap: 10px; }
.certificate-admin-stats > div { position: relative; min-height: 98px; padding: 16px 17px; border-radius: 12px; background: linear-gradient(145deg, #fff, #f9fcfe); box-shadow: 0 6px 18px rgba(8,41,71,.045); }
.certificate-admin-stats > div::after { content: ""; position: absolute; top: 15px; right: 15px; width: 7px; height: 7px; border-radius: 50%; background: #168447; }
.certificate-admin-stats strong { color: #102f4a; font-size: 25px; letter-spacing: -.035em; }
.certificate-admin-stats span { color: #61778b; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.certificate-admin-list { gap: 10px; }
.certificate-admin-row { padding: 15px 17px; border: 1px solid #d7e4ec; border-radius: 11px; background: #fff; }
.certificate-admin-row:nth-child(even) { background: #fbfdfe; }
.certificate-admin-main h3 { color: #173b59; }

.admin-live-layout { gap: 16px; }
.admin-live-layout > .panel { padding: 21px; }
.admin-live-focus { padding: 20px; border-radius: 13px; background: linear-gradient(135deg, #092d49, #075984); box-shadow: 0 12px 28px rgba(6,56,88,.18); }
.admin-live-focus > strong { color: #fff; }
.admin-live-focus > span, .admin-live-focus > small { color: #d8edf8; }
.live-session-list { gap: 10px; }
.live-session-card { padding: 15px; border: 1px solid #d7e4ec; border-radius: 11px; background: #fff; }
.live-session-card:nth-child(even) { background: #fbfdfe; }
.live-session-date { border-radius: 10px; background: #edf6fb; }
.live-session-copy h3 { color: #173b59; }
.live-session-actions { justify-content: flex-end; }
.admin-live-edit-panel { padding: 20px; border-radius: 14px; }

.settings-grid { gap: 16px; }
.settings-hero { min-height: 190px; padding: 27px 29px; border-radius: 17px; }
.settings-hero h2 { margin: 8px 0 10px; font-size: clamp(31px, 3.4vw, 45px); letter-spacing: -.04em; }
.settings-hero p { max-width: 720px; font-size: 14px; line-height: 1.65; }
.settings-tabs { gap: 5px; padding: 5px; overflow-x: auto; border: 1px solid #d5e3eb; border-radius: 12px; background: #f5f9fb; }
.settings-tabs a { flex: 0 0 auto; min-height: 39px; padding: 0 15px; border: 0; border-radius: 8px; }
.settings-tabs a.active { border: 0; background: #fff; color: #0879c2; box-shadow: 0 4px 13px rgba(8,41,71,.075), inset 0 0 0 1px #bfd9e8; }
.settings-grid > .panel, .settings-grid > form.panel { padding: 21px; border-radius: 14px; }
.settings-grid .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.template-card { border-radius: 12px; box-shadow: 0 5px 16px rgba(8,41,71,.045); }
.template-card[hidden] { display: none !important; }
.template-search { display: grid; grid-template-columns: auto minmax(220px, 420px); gap: 12px; align-items: center; margin: 15px 0 10px; color: #536b7d; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.template-card { display: block; padding: 0; overflow: hidden; }
.template-card > summary { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 17px; cursor: pointer; list-style: none; }
.template-card > summary::-webkit-details-marker { display: none; }
.template-card > summary span { display: grid; gap: 4px; min-width: 0; }
.template-card > summary strong { color: #173b59; font-size: 14px; }
.template-card > summary small { overflow: hidden; color: #708397; text-overflow: ellipsis; white-space: nowrap; }
.template-card > summary em { color: #0879c2; font-size: 11px; font-style: normal; font-weight: 900; text-transform: uppercase; }
.template-card[open] > summary { border-bottom: 1px solid #dce7ee; background: #f5fafd; }
.template-card-body { display: grid; gap: 14px; padding: 16px; }

.notification-list-panel { overflow: hidden; border: 1px solid #d7e4ec; border-radius: 12px; }
.notification-list-item { min-height: 67px; padding: 13px 15px; border-color: #e0e9ef; }
.notification-list-item:nth-child(even) { background: #fbfdfe; }
.notification-list-item.unread { border-left: 3px solid #0879c2; background: #f2f9fd; }
.notification-list-item > span { border-radius: 10px; }
.notification-recipient-list { overflow: hidden; border: 1px solid #d9e6ed; border-radius: 11px; }
.notification-recipient-row { padding: 12px 14px; }
.notification-recipient-row:nth-child(even) { background: #fbfdfe; }

.portal-admin .admin-layout > .panel, .portal-admin .admin-layout > aside.panel { border-radius: 14px; }
.portal-admin .admin-layout > .panel > .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.portal-admin .admin-layout .summary-list { gap: 7px; }
.portal-admin .admin-layout .summary-list > div { padding: 11px 12px; border-radius: 9px; background: #f8fbfd; }
.portal-admin .admin-layout .table { overflow: hidden; border: 1px solid #d8e5ed; border-radius: 11px; }
.portal-admin .admin-layout .table-row { min-height: 59px; }
.portal-admin .admin-layout .table-row:nth-child(even) { background: #fbfdfe; }
.student-directory-page .enrollment-add-form { padding: 13px; border: 1px solid #d8e5ed; border-radius: 11px; background: #f7fafc; }
.enrollment-row-actions { justify-content: flex-end; }

.course-admin-page .category-card, .course-admin-page .timetable-card { border-radius: 12px; }
.course-admin-page .reset-form { margin: 0 24px 22px; }

@media (max-width: 1080px) {
    .forms-hero, .certificate-admin-hero, .settings-hero { min-height: 0; }
    .certificate-admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .forms-hero, .certificate-admin-hero, .settings-hero { padding: 21px; }
    .forms-table { overflow-x: auto; }
    .forms-table-head, .forms-table-row { min-width: 820px; }
    .certificate-admin-row, .live-session-card { grid-template-columns: 1fr; }
    .certificate-admin-row .btn, .live-session-actions .btn { width: 100%; }
    .live-session-actions { justify-content: stretch; }
    .settings-tabs { flex-wrap: nowrap; }
    .portal-admin .admin-layout > .panel, .portal-admin .admin-layout > aside.panel { padding: 17px; }
}
@media (max-width: 480px) {
    .certificate-admin-stats { grid-template-columns: 1fr; }
    .notification-list-item { padding: 12px; }
}

/* Hostel, attendance and assignments refinement */
.hostel-page, .admin-attendance-page, .assignment-ops-page { display: grid; gap: 16px; }
.hostel-hero, .attendance-admin-hero { min-height: 184px; padding: 26px 28px; border-radius: 17px; background: linear-gradient(135deg, #fff, #f3f9fc); box-shadow: 0 10px 30px rgba(8,41,71,.07); }
.hostel-hero h2, .attendance-admin-hero h2 { margin: 8px 0 10px; color: #102f4a; font-size: clamp(32px, 3.5vw, 46px); letter-spacing: -.04em; }
.hostel-hero p, .attendance-admin-hero p { max-width: 730px; color: #60768a; font-size: 14px; line-height: 1.65; }
.hostel-hero-actions, .attendance-admin-hero .button-row { align-self: end; justify-content: flex-end; }
.attendance-admin-hero .button-row .btn { border-color: #c7dce9; background: #fff; color: #0b6fae; box-shadow: 0 6px 15px rgba(8,41,71,.07); }
.attendance-admin-hero .button-row .btn:hover { border-color: #f26a1b; color: #b94c0d; }

.hostel-stats, .attendance-admin-stats { gap: 10px; }
.hostel-stat-card, .attendance-stat-card { position: relative; min-height: 108px; padding: 17px; border-radius: 13px; background: linear-gradient(145deg, #fff, #f9fcfe); box-shadow: 0 6px 19px rgba(8,41,71,.05); }
.hostel-stat-card::after, .attendance-stat-card::after { content: ""; position: absolute; top: 15px; right: 15px; width: 7px; height: 7px; border-radius: 50%; background: #c7d9e5; }
.hostel-stat-card strong, .attendance-stat-card strong { color: #102f4a; font-size: 25px; letter-spacing: -.035em; }
.hostel-stat-card small, .attendance-stat-card small { color: #60758a; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.hostel-stat-card em, .attendance-stat-card em { color: #7a8ea0; font-size: 11px; }
.hostel-stat-card > span, .attendance-stat-card > span { width: 46px; height: 46px; border-radius: 12px; }
.hostel-grid { grid-template-columns: 1fr; gap: 14px; }
.hostel-card { padding: 20px 22px; overflow: visible; border-radius: 14px; box-shadow: 0 7px 22px rgba(8,41,71,.055); }
.hostel-card-head { grid-template-columns: 46px minmax(0, 1fr) auto; }
.hostel-rate { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 7px 12px; margin: 16px 0 12px; padding: 12px 14px; background: #f5f9fb; }
.hostel-plan-subtotal { margin: 0; text-align: right; }
.hostel-directory-table { overflow: hidden; border: 1px solid #d9e6ee; border-radius: 11px; }
.hostel-directory-table .student-directory-head, .hostel-directory-table .student-directory-row { grid-template-columns: minmax(220px, 1.4fr) minmax(110px, .6fr) 90px 90px 58px; gap: 13px; padding: 0 13px; }
.hostel-directory-table .student-directory-head { min-height: 42px; background: #edf4f8; color: #536b80; }
.hostel-directory-table .student-directory-row { min-height: 61px; }
.hostel-directory-table .student-directory-row:nth-child(odd) { background: #fbfdfe; }
.hostel-room-heading { padding: 9px 13px; border-bottom: 1px solid #dfe9ef; background: #f5f9fb; color: #294a64; }
.hostel-flagged-panel { padding: 20px 22px; border-left: 4px solid #e4534b; }
.hostel-dialog { border-radius: 17px; }
.hostel-issue-form { padding: 25px; }

.attendance-filter-card { padding: 14px; border-radius: 13px; background: #f7fafc; }
.attendance-filter-bar { grid-template-columns: minmax(180px,1.2fr) minmax(125px,.65fr) minmax(180px,1fr) minmax(145px,.8fr) auto; align-items: end; gap: 9px; }
.attendance-filter-bar label { font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.attendance-filter-bar input, .attendance-filter-bar select { margin-top: 6px; font-size: 13px; letter-spacing: normal; text-transform: none; }
.attendance-control-layout { gap: 16px; }
.attendance-session-register { padding: 20px; border-radius: 14px; }
.attendance-session-register > .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.attendance-roster-search { margin: 12px 0; }
.attendance-roster-search input { width: 100%; background: #f8fbfd; }
.attendance-bulk-actions { padding: 10px; border: 1px solid #d9e6ed; border-radius: 10px; background: #f5f9fb; }
.attendance-roster-table { overflow: hidden; border: 1px solid #d7e4ec; border-radius: 11px; }
.attendance-roster-head { min-height: 43px; background: #edf4f8; color: #536b80; font-size: 9px; letter-spacing: .08em; }
.attendance-roster-row { min-height: 70px; padding-top: 9px; padding-bottom: 9px; }
.attendance-roster-row:nth-child(odd) { background: #fbfdfe; }
.attendance-status-options { padding: 3px; border-radius: 9px; background: #f4f8fa; }
.attendance-status-options label span { border-radius: 7px; }
.attendance-save-row { position: sticky; bottom: 12px; z-index: 5; justify-content: flex-end; margin-top: 12px; padding: 10px; border: 1px solid #d4e2ea; border-radius: 11px; background: rgba(255,255,255,.94); box-shadow: 0 12px 28px rgba(8,41,71,.12); backdrop-filter: blur(10px); }
.attendance-side-stack { gap: 13px; }
.attendance-mark-card { padding: 18px; border-radius: 13px; }
.attendance-calendar-grid { gap: 4px; }
.attendance-calendar-day { border-radius: 7px; }
.attendance-risk-row { padding: 11px 0; }
.attendance-dispute-list { display: grid; gap: 9px; }
.attendance-dispute-item { overflow: hidden; border: 1px solid #d8e5ed; border-radius: 10px; background: #fff; }
.attendance-dispute-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; list-style: none; cursor: pointer; }
.attendance-dispute-item > summary::-webkit-details-marker { display: none; }
.attendance-dispute-item > summary strong, .attendance-dispute-item > summary small { display: block; }
.attendance-dispute-item > summary strong { color: #173b59; font-size: 12px; }
.attendance-dispute-item > summary small { margin-top: 3px; color: #728799; font-size: 10px; }
.attendance-dispute-item > div { padding: 12px; border-top: 1px solid #e0e9ef; background: #f8fbfd; }
.attendance-dispute-item p { margin: 0 0 5px; color: #34546c; font-size: 12px; }
.attendance-dispute-review { display: grid; gap: 8px; margin-top: 10px; }
.attendance-dispute-review textarea { width: 100%; }
.attendance-dispute-review > div { display: flex; gap: 7px; }
.attendance-empty-note { margin: 10px 0 0; color: #73889a; font-size: 12px; }
.student-dispute-form { position: relative; }
.student-dispute-form > summary { list-style: none; cursor: pointer; white-space: nowrap; }
.student-dispute-form > summary::-webkit-details-marker { display: none; }
.student-dispute-form form { position: absolute; right: 0; z-index: 20; display: grid; gap: 8px; width: min(310px,80vw); margin-top: 7px; padding: 12px; border: 1px solid #d5e3eb; border-radius: 10px; background: #fff; box-shadow: 0 16px 36px rgba(8,41,71,.16); }
.student-dispute-form textarea { width: 100%; }
.attendance-dispute-status { display: grid; gap: 4px; min-width: 120px; }
.attendance-dispute-status small { color: #657b8d; font-size: 10px; }
.student-history-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; margin-top: 14px; }
.student-history-pager a { display: grid; place-items: center; min-width: 34px; height: 34px; border: 1px solid #d4e2eb; border-radius: 8px; background: #fff; color: #456177; font-size: 12px; font-weight: 850; }
.student-history-pager a.active { border-color: #f26a1b; background: #fff4eb; color: #b94c0d; }

.assignment-ops-hero { min-height: 202px; padding: 27px 29px; border-radius: 17px; }
.assignment-ops-hero h2 { margin: 9px 0 11px; font-size: clamp(32px, 3.5vw, 48px); }
.assignment-ops-hero p { max-width: 720px; font-size: 14px; line-height: 1.65; }
.assignment-ops-stats { gap: 10px; }
.assignment-ops-stats .overview-metric-card { position: relative; min-height: 101px; padding: 16px 17px; border-radius: 13px; background: linear-gradient(145deg, #fff, #f9fcfe); box-shadow: 0 6px 18px rgba(8,41,71,.045); }
.assignment-ops-stats .overview-metric-card::after { content: ""; position: absolute; top: 15px; right: 15px; width: 7px; height: 7px; border-radius: 50%; background: #f26a1b; }
.assignment-ops-stats .overview-metric-card > span { color: #61778b; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.assignment-ops-stats .overview-metric-card strong { color: #102f4a; font-size: 26px; letter-spacing: -.035em; }
.assignment-ops-tabs { gap: 5px; padding: 5px; overflow-x: auto; border: 1px solid #d5e3eb; border-radius: 12px; background: #f5f9fb; }
.assignment-ops-tabs a { flex: 0 0 auto; min-height: 39px; padding: 0 15px; border: 0; border-radius: 8px; }
.assignment-ops-tabs a.active { border: 0; background: #fff; color: #0879c2; box-shadow: 0 4px 13px rgba(8,41,71,.075), inset 0 0 0 1px #bfd9e8; }
.assignment-ops-tabs .btn.primary { margin-left: auto; color: #fff; background: linear-gradient(135deg, #0879c2, #096eac); }
.assignment-ops-filter-card { padding: 12px; border-radius: 13px; background: #f7fafc; }
.assignment-filter-grid { gap: 10px; }
.assignment-ops-panel { padding: 21px; border-radius: 14px; }
.assignment-ops-panel > .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.assignment-ops-panel > .section-title h2 { color: #173b59; font-size: 21px; }
.assignment-inbox-list, .assignment-manage-grid, .assignment-missing-list { gap: 11px; }
.assignment-inbox-row { padding: 15px; border: 1px solid #d9e6ed; border-radius: 11px; background: #fff; }
.assignment-inbox-row:nth-child(even) { background: #fbfdfe; }
.assignment-inbox-row > div:first-child strong { color: #173b59; }
.inline-grade-form { padding: 10px; border: 1px solid #dce7ee; border-radius: 9px; background: #f6fafc; }
.score-correction-panel { grid-column: 1 / -1; width: 100%; border-top: 1px solid #e2ebf1; padding-top: 9px; }
.score-correction-panel > summary { width: max-content; margin-left: auto; list-style: none; cursor: pointer; }
.score-correction-panel > summary::-webkit-details-marker { display: none; }
.score-correction-panel[open] > summary { border-color: #ef7a3b; color: #a84720; background: #fff5ef; }
.score-correction-form { display: grid; grid-template-columns: minmax(150px,.7fr) minmax(150px,.7fr) minmax(240px,1.6fr) auto; gap: 10px; align-items: end; margin-top: 10px; padding: 13px; border: 1px solid #d9e6ee; border-radius: 10px; background: #f7fafc; }
.score-correction-form label { display: grid; gap: 6px; color: #526b7e; font-size: 11px; font-weight: 850; }
.score-correction-form textarea { min-height: 42px; resize: vertical; }
.score-correction-form .btn { min-height: 42px; white-space: nowrap; }
.submission-card:target { border-color: #ef7a3b; box-shadow: 0 0 0 3px rgba(242,106,27,.12),0 8px 22px rgba(8,41,71,.08); }
.assignment-manage-card { padding: 17px; border: 1px solid #d6e4ec; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(8,41,71,.045); }
.assignment-manage-head strong { color: #173b59; font-size: 15px; line-height: 1.35; }
.assignment-mini-grid { gap: 7px; }
.assignment-mini-grid > div { padding: 10px; border-radius: 9px; background: #f6f9fb; }
.assignment-progress-line { height: 6px; background: #dce8ef; }
.assignment-progress-line span { background: linear-gradient(90deg, #f26a1b, #168447); }
.assignment-missing-card { overflow: hidden; border-radius: 11px; }
.submission-card { padding: 17px; border-radius: 12px; }
.assignment-ops-hero { min-height: 0; }
.assignment-ops-page { grid-template-columns: minmax(0, 1fr); }
.assignment-ops-page > * { min-width: 0; max-width: 100%; }
.assignment-ops-hero { grid-template-columns: minmax(0, 1fr) auto; }
.assignment-hero-actions { align-items: center; align-self: center; }
.assignment-ops-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.assignment-ops-tabs a span { display: inline-grid; place-items: center; min-width: 22px; height: 20px; margin-left: 5px; padding: 0 6px; border-radius: 999px; background: #e5eef4; color: #5c7285; font-size: 9px; }
.assignment-ops-tabs a.active span { background: #fff0e5; color: #bd4f0c; }
.assignment-ops-filter-card { padding: 10px 12px; }
.assignment-filter-grid { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; }
.assignment-filter-grid .assignment-filter-bar { flex: 1 1 700px; min-width: 0; grid-template-columns: minmax(150px,1fr) minmax(125px,.65fr) minmax(160px,.9fr) auto; }
.assignment-clear-filters { flex: 0 0 auto; }
.assignment-review-item { overflow: visible; border: 1px solid #d7e4ec; border-radius: 12px; background: #fff; }
.assignment-review-item[open] { border-color: #9ec9e1; box-shadow: 0 13px 30px rgba(8,41,71,.09); }
.assignment-review-item > summary { display: grid; grid-template-columns: minmax(220px,1fr) auto auto auto; gap: 15px; align-items: center; min-height: 70px; padding: 14px 16px; list-style: none; cursor: pointer; }
.assignment-review-item > summary::-webkit-details-marker { display: none; }
.assignment-review-item > summary strong, .assignment-review-item > summary small { display: block; }
.assignment-review-item > summary strong { color: #173b59; font-size: 14px; }
.assignment-review-item > summary small, .assignment-review-item > summary > span:nth-child(2) { margin-top: 3px; color: #71879a; font-size: 11px; }
.assignment-review-item > summary > em { color: #0879c2; font-size: 11px; font-style: normal; font-weight: 900; }
.assignment-review-body { display: grid; gap: 14px; padding: 17px; border-top: 1px solid #dfe9ef; background: #f8fbfd; }
.assignment-student-note { padding: 12px 14px; border-left: 3px solid #f26a1b; border-radius: 8px; background: #fff; }
.assignment-student-note span { color: #6c8294; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.assignment-student-note p { margin: 5px 0 0; color: #294b64; font-size: 13px; }
.assignment-evidence-actions { justify-content: flex-start; }
.assignment-review-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 15px; border: 1px solid #d8e5ed; border-radius: 10px; background: #fff; }
.assignment-review-form label { display: grid; gap: 6px; color: #526a7e; font-size: 11px; font-weight: 850; }
.assignment-review-form .full { grid-column: 1 / -1; }
.score-input-wrap { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid #d2e0e9; border-radius: 9px; background: #fff; }
.score-input-wrap input { border: 0 !important; box-shadow: none !important; }
.score-input-wrap em { padding-right: 12px; color: #6d8193; font-size: 12px; font-style: normal; font-weight: 850; }
.assignment-review-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.assignment-review-actions small { color: #73889b; }
.assignment-card-menu { position: relative; margin-left: auto; }
.assignment-card-menu > summary { list-style: none; cursor: pointer; }
.assignment-card-menu > summary::-webkit-details-marker { display: none; }
.assignment-card-menu > div { position: absolute; right: 0; bottom: calc(100% + 7px); z-index: 35; display: grid; min-width: 175px; padding: 6px; border: 1px solid #d6e3ec; border-radius: 10px; background: #fff; box-shadow: 0 16px 36px rgba(8,41,71,.16); }
.assignment-card-menu a, .assignment-card-menu button { width: 100%; padding: 10px; border: 0; border-radius: 7px; background: transparent; color: #31516a; text-align: left; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.assignment-card-menu a:hover, .assignment-card-menu button:hover { background: #edf6fb; }
.assignment-card-menu .danger-text { color: #b5352f; }
.assignment-form-section { display: flex; align-items: center; gap: 11px; margin-top: 7px; padding: 12px 14px; border-radius: 10px; background: #edf6fb; }
.assignment-form-section > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #0879c2; color: #fff; font-size: 11px; font-weight: 900; }
.assignment-form-section strong, .assignment-form-section small { display: block; }
.assignment-form-section strong { color: #173b59; font-size: 13px; }
.assignment-form-section small { margin-top: 2px; color: #6d8294; }
.student-assignment-status-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.student-assignment-status-strip > div { padding: 11px; border: 1px solid #d8e5ed; border-radius: 9px; background: #f8fbfd; }
.student-assignment-status-strip span, .student-assignment-status-strip strong, .student-assignment-status-strip small { display: block; }
.student-assignment-status-strip span { color: #708597; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.student-assignment-status-strip strong { margin-top: 3px; color: #173b59; font-size: 12px; }
.student-assignment-status-strip small { margin-top: 2px; color: #b45309; font-size: 10px; }
.student-assignment-feedback { padding: 13px 15px; border-left: 4px solid #f26a1b; border-radius: 9px; background: #fff8f0; }
.student-assignment-feedback span { color: #a94d12; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.student-assignment-feedback p { margin: 5px 0 0; color: #493827; font-size: 13px; }

@media (max-width: 1080px) {
    .hostel-hero, .attendance-admin-hero { min-height: 0; }
    .hostel-stats, .attendance-admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hostel-rate { grid-template-columns: auto 1fr; }
    .hostel-plan-subtotal { text-align: left; }
}
@media (max-width: 760px) {
    .hostel-hero, .attendance-admin-hero, .assignment-ops-hero { padding: 21px; }
    .hostel-hero-actions, .attendance-admin-hero .button-row { justify-content: flex-start; }
    .hostel-card { padding: 16px; overflow-x: auto; }
    .hostel-directory-table { min-width: 690px; }
    .hostel-issue-grid { grid-template-columns: 1fr; }
    .attendance-filter-card { padding: 11px; }
    .attendance-filter-bar { grid-template-columns: 1fr; }
    .attendance-control-layout { grid-template-columns: minmax(0, 1fr); }
    .attendance-session-register, .attendance-side-stack { width: 100%; min-width: 0; }
    .attendance-session-register, .assignment-ops-panel { padding: 17px; }
    .attendance-roster-table { width: 100%; max-width: 100%; overflow: visible; border: 0; }
    .attendance-roster-head { display: none; }
    .attendance-roster-row { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; min-width: 0; margin-bottom: 10px; padding: 13px; border: 1px solid #d8e5ed; border-radius: 11px; }
    .attendance-roster-row > * { min-width: 0; }
    .attendance-row-check { grid-column: 1; grid-row: 1; }
    .attendance-student-cell { grid-column: 2; grid-row: 1; }
    .attendance-meta-cell, .attendance-status-options, .attendance-note-field, .attendance-rate-pill { grid-column: 1 / -1; width: 100%; }
    .attendance-status-options { display: grid; grid-template-columns: 1fr 1fr; }
    .attendance-status-options label, .attendance-status-options label span { width: 100%; min-width: 0; }
    .assignment-ops-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .assignment-ops-tabs .btn.primary { margin-left: 0 !important; }
    .assignment-filter-grid, .assignment-filter-bar { grid-template-columns: 1fr; }
    .assignment-inbox-row { grid-template-columns: 1fr; }
    .score-correction-form { grid-template-columns: 1fr; }
    .score-correction-panel > summary { margin-left: 0; }
    .assignment-filter-grid { align-items: stretch; flex-direction: column; }
    .assignment-clear-filters { width: 100%; }
    .assignment-review-item > summary { grid-template-columns: 1fr auto; }
    .assignment-review-item > summary > span:nth-child(2) { grid-column: 1; }
    .assignment-review-form, .student-assignment-status-strip { grid-template-columns: 1fr; }
    .assignment-review-actions { align-items: stretch; flex-direction: column; }
    .inline-grade-form { align-items: stretch !important; }
}
@media (max-width: 480px) {
    .hostel-stats, .attendance-admin-stats, .assignment-ops-stats { grid-template-columns: 1fr; }
    .hostel-rate { grid-template-columns: 1fr; }
    .hostel-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Finance module refinement */
.finance-page { gap: 16px; }
.finance-page > .admin-hero, .finance-page > .finance-hero { min-height: 190px; padding: 27px 29px; border-radius: 17px; }
.student-finance-overview { gap: 24px; }
.student-finance-totals { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 10px; min-width: min(100%, 480px); }
.student-finance-totals > div { padding: 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.09); }
.student-finance-totals span, .student-finance-totals strong { display: block; }
.student-finance-totals span { margin-bottom: 6px; color: rgba(255,255,255,.72); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.student-finance-totals strong { color: #fff; font-size: 18px; }
.student-finance-totals .is-balance { background: linear-gradient(135deg, rgba(255,122,24,.35), rgba(255,255,255,.1)); }
.student-finance-course-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 22px; padding: 22px 24px; border-left: 4px solid var(--brand-orange, #ff6b1a); }
.student-finance-course-head h2 { margin: 5px 0 4px; font-size: clamp(22px, 3vw, 30px); }
.student-finance-course-head p { margin: 0; }
.student-finance-course-head .finance-balance-card { min-width: 230px; }
.finance-transfer-review-note { margin: -2px 0 12px; padding: 10px 13px; border-radius: 10px; background: rgba(20,73,130,.06); color: var(--muted); font-size: 13px; }
.student-finance-course-nav { display: flex; align-items: center; gap: 8px; overflow-x: auto; margin: 13px 0 4px; padding: 9px; border: 1px solid #d7e4ec; border-radius: 12px; background: #fff; }
.student-finance-course-nav span { flex: 0 0 auto; padding-left: 5px; color: #64778d; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.student-finance-course-nav a { flex: 0 0 auto; max-width: 260px; overflow: hidden; padding: 9px 12px; border-radius: 8px; background: #edf6fc; color: #075a94; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.student-finance-course-head { scroll-margin-top: 78px; }
.document-tabs { display: flex; width: max-content; margin: 12px 0 18px; padding: 5px; border: 1px solid #d7e4ec; border-radius: 11px; background: #fff; }
.document-tabs a { min-width: 130px; padding: 10px 17px; border-radius: 7px; color: #587086; text-align: center; font-size: 12px; font-weight: 850; }
.document-tabs a.active { background: var(--navy); color: #fff; }
.finance-clear-state { display: flex; align-items: center; gap: 13px; padding: 19px; border: 1px solid #cce8d8; border-radius: 13px; background: #f2fbf6; color: #17633a; }
.finance-clear-state > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #168447; color: #fff; font-weight: 900; }
.finance-clear-state strong, .finance-clear-state p { display: block; margin: 0; }
.finance-clear-state p { margin-top: 3px; color: #5c7869; font-size: 12px; }
.finance-step { display: inline-flex; margin-bottom: 4px; padding: 4px 8px; border-radius: 999px; background: #fff2e8; color: #b94f08; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.finance-field-step { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 5px; border-radius: 50%; background: #0879c2; color: #fff; font-size: 10px; font-weight: 900; }
.payment-entry-card { border-top: 4px solid #ff6b1a; }
.payment-entry-card > .section-title { align-items: flex-start; }
.payment-entry-card .grid-form { padding-top: 6px; }
.finance-metric-link { color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.finance-metric-link:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(8,41,71,.11); }
.finance-page > .ops-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.accounting-page > .ops-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.finance-command-hero { min-height: 0 !important; padding-block: 22px !important; }
.finance-command-hero h2 { margin-block: 5px 7px !important; font-size: clamp(25px, 3vw, 36px) !important; }
.finance-command-hero p { margin: 0; }
.finance-command-hero .hero-actions { align-self: center !important; }
.finance-overview-period { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 15px; border: 1px solid #d7e4ec; border-radius: 12px; background: #fff; }
.finance-overview-period > div:first-child span, .finance-overview-period > div:first-child strong, .finance-overview-period > div:first-child small { display: block; }
.finance-overview-period > div:first-child span { color: #6b8092; font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.finance-overview-period > div:first-child strong { margin-top: 3px; color: #173b59; font-size: 14px; }
.finance-overview-period > div:first-child small { margin-top: 2px; color: #7a8fa1; }
.finance-overview-period .admin-date-filter { flex: 0 0 auto; }
.finance-overview-period .admin-date-filter > .data-date-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(480px, calc(100vw - 32px)); max-width: calc(100vw - 32px); }
.finance-overview-period .admin-date-filter > .data-date-filter > * { min-width: 0; }
.finance-overview-period .admin-date-filter > .data-date-filter .btn { width: 100%; }
.finance-overview-period .admin-date-filter .date-filter-close { top: 7px; right: 7px; }
.filter-context-label { color: #5f7487; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.finance-history-filter { align-items: center; justify-content: space-between; }
.finance-ledger-picker[hidden] { display: none !important; }
.payment-history-wide { grid-column: 1 / -1; }
.finance-workspace:not(.has-selected) .finance-balances-panel { grid-column: 1 / -1; }
#student-accounts, #transfer-reviews { scroll-margin-top: 82px; }
.finance-page > .admin-hero h2, .finance-page > .finance-hero h2 { max-width: 780px; margin: 8px 0 11px; font-size: clamp(31px, 3.5vw, 46px); letter-spacing: -.04em; }
.finance-page > .admin-hero p, .finance-page > .finance-hero p { max-width: 760px; font-size: 14px; line-height: 1.65; }
.finance-page > .admin-hero .hero-actions, .finance-page > .finance-hero .hero-actions { align-self: end; justify-content: flex-end; }
.finance-page .ops-grid { gap: 10px; }
.finance-page .ops-card { position: relative; min-height: 105px; padding: 17px 18px; border-radius: 13px; background: linear-gradient(145deg, #fff, #f8fbfd); box-shadow: 0 6px 18px rgba(8,41,71,.045); }
.finance-page .ops-card::after { content: ""; position: absolute; top: 16px; right: 16px; width: 7px; height: 7px; border-radius: 50%; background: #168447; }
.finance-page .ops-card.urgent::after { background: #f26a1b; }
.finance-page .ops-card span { color: #61778b; font-size: 10px; letter-spacing: .075em; text-transform: uppercase; }
.finance-page .ops-card strong { color: #102f4a; font-size: clamp(21px, 2vw, 28px); letter-spacing: -.035em; }
.finance-page .ops-card small { color: #7a8fa1; }
.finance-subnav { flex-wrap: nowrap; gap: 5px; padding: 5px; overflow-x: auto; border: 1px solid #d4e2eb; border-radius: 12px; background: #f5f9fb; }
.finance-subnav a { flex: 1 0 auto; justify-content: center; min-height: 39px; border: 0; border-radius: 8px; background: transparent; }
.finance-subnav a.active { border: 0; background: #fff; color: #0879c2; box-shadow: 0 4px 13px rgba(8,41,71,.075), inset 0 0 0 1px #bfd9e8; }
.finance-page > .admin-page-filterbar { justify-content: flex-end; margin: 0; padding: 9px; border-radius: 11px; background: #f8fbfd; }
.finance-page .toolbar-date-filter { width: auto; margin-left: auto; }

.finance-ledger-picker { margin: 0; padding: 20px 22px; border-radius: 14px; background: linear-gradient(135deg, #fff, #f6fafc); }
.finance-ledger-picker h3 { color: #173b59; font-size: 18px; }
.ledger-picker-search-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 8px; }
.finance-filter-note { grid-column: 1 / -1; padding: 9px 11px; border: 1px solid #f3d3a3; border-radius: 8px; background: #fff8ea; color: #8a5918; font-size: 12px; font-weight: 750; }
.finance-workspace { gap: 16px; }
.finance-page .panel { border-radius: 14px; }
.finance-page .panel > .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.finance-page .panel > .section-title h3 { font-size: 17px; }
.finance-balances-panel { padding: 20px; }
.finance-balances-panel .compact-toolbar { margin: 0 0 12px; padding: 0; border: 0; background: transparent; }
.finance-balances-panel .directory-search { max-width: 470px; }
.finance-page .finance-table { border-radius: 12px; }
.finance-page .finance-table .table-row { gap: 13px; min-height: 62px; padding: 11px 14px; }
.finance-page .finance-table .table-row:not(.table-head):nth-child(odd), .finance-payment-register .table-row:not(.table-head):nth-child(odd), .receipt-register-table .table-row:not(.table-head):nth-child(odd) { background: #fbfdfe; }
.finance-page .table-row.table-head { min-height: 42px; background: #edf4f8; color: #526a7e; font-size: 9px; font-weight: 900; letter-spacing: .085em; text-transform: uppercase; }
.finance-table .table-row > div strong, .finance-payment-register .table-row > div strong, .receipt-register-table .table-row > div strong { color: #173b59; }
.finance-table .table-row > div span, .finance-payment-register .table-row > div span, .receipt-register-table .table-row > div span { display: block; margin-top: 4px; color: #73889b; font-size: 11px; line-height: 1.45; }
.finance-table .inline-actions { justify-content: flex-end; flex-wrap: nowrap; }
.finance-table .inline-actions .btn { min-height: 33px; padding: 6px 10px; }
.selected-finance-panel { position: static; top: auto; padding: 20px; }
.finance-balance-card { border-radius: 12px; background: linear-gradient(135deg, #092d49, #075984); box-shadow: 0 12px 28px rgba(6,56,88,.2); }
.compact-balance strong { font-size: 26px; letter-spacing: -.04em; }
.ledger-summary-list { gap: 7px; }
.ledger-summary-list div { padding: 11px 12px; border-radius: 9px; background: #f8fbfd; }
.finance-document-actions.compact-actions { gap: 7px; }
.finance-action-panel { padding: 20px; }
.finance-danger-zone { background: #fffafa; }

.accounting-page .admin-layout { gap: 16px; }
.accounting-page .invoice-builder-card, .accounting-page .payment-entry-card { padding: 21px; }
.accounting-page .bank-detail-card { padding: 21px; background: linear-gradient(145deg, #f9fcfe, #fff); }
.accounting-page .bank-detail-card > h3 { margin: 8px 0 16px; color: #173b59; line-height: 1.35; }
.accounting-page .finance-action-form { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e0e9ef; }
.accounting-page .span-2 { padding: 21px; }
.finance-payment-register .table-row { grid-template-columns: minmax(0, 1fr) 150px auto; gap: 14px; min-height: 61px; padding: 11px 14px; }
.receipt-register-table .table-row { grid-template-columns: minmax(240px, 1fr) minmax(150px, .55fr) minmax(140px, .5fr) 120px; gap: 14px; min-height: 61px; padding: 11px 14px; }
.receipt-register-table .btn { justify-self: end; }
.finance-page .admin-status-tabs { padding: 4px; border: 1px solid #dce7ee; border-radius: 10px; background: #f7fafc; }
.finance-page .pager { padding-top: 14px; }
.transfer-review-item { border-radius: 11px; background: #fbfdfe; }

@media (max-width: 1080px) {
    .finance-page > .admin-hero, .finance-page > .finance-hero { min-height: 0; }
    .selected-finance-panel { position: static; }
    .finance-ledger-picker { grid-template-columns: 1fr; align-items: stretch; }
}
@media (max-width: 760px) {
    .finance-page > .admin-hero, .finance-page > .finance-hero { padding: 21px; }
    .finance-page > .admin-hero .hero-actions, .finance-page > .finance-hero .hero-actions { justify-content: flex-start; }
    .finance-page .ops-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finance-subnav a { flex: 0 0 auto; padding-inline: 16px; }
    .finance-page > .admin-page-filterbar { justify-content: stretch; }
    .finance-page .toolbar-date-filter { width: 100%; margin-left: 0; }
    .ledger-picker-search-form { grid-template-columns: 1fr; }
    .finance-balances-panel, .accounting-page .invoice-builder-card, .accounting-page .payment-entry-card, .accounting-page .span-2 { padding: 17px; }
    .finance-page .finance-table .table-head, .finance-payment-register .table-head, .receipt-register-table .table-head { display: none; }
    .finance-page .finance-table .table-row, .finance-payment-register .table-row, .receipt-register-table .table-row { grid-template-columns: 1fr; min-width: 0; padding: 15px; border: 1px solid #dce7ee; border-radius: 11px; }
    .finance-table .inline-actions { justify-content: flex-start; }
    .receipt-register-table .btn { justify-self: stretch; }
}
@media (max-width: 480px) {
    .finance-page .ops-grid { grid-template-columns: 1fr; }
    .finance-page .ops-card { min-height: 91px; }
    .finance-page .data-date-filter { grid-template-columns: 1fr; }
}

/* Courses module refinement */
.course-admin-page > .panel { padding: 0; overflow: hidden; border-radius: 16px; }
.course-admin-page > .panel > .section-title { align-items: center; margin: 0; padding: 22px 24px; border-bottom: 1px solid #dce7ee; background: linear-gradient(135deg, #fff, #f5fafd); }
.course-admin-page > .panel > .section-title h2 { margin: 0 0 6px; color: #102f4a; font-size: 26px; letter-spacing: -.03em; }
.course-admin-page > .panel > .section-title .muted-copy { max-width: 650px; line-height: 1.55; }
.course-admin-page .course-subnav { padding: 4px; border: 1px solid #d7e4ed; border-radius: 11px; background: #fff; }
.course-admin-page .course-subnav a { min-height: 37px; border: 0; border-radius: 8px; background: transparent; }
.course-admin-page .course-subnav a.active { background: #edf6fb; box-shadow: inset 0 0 0 1px #acd1e6; }
.course-admin-page .course-subnav .btn.primary { margin-left: 4px !important; color: #fff; background: linear-gradient(135deg, #0879c2, #096eac); }

.course-portfolio-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px 24px 0; }
.course-portfolio-strip > div { position: relative; display: grid; gap: 7px; min-height: 86px; padding: 16px 17px; border: 1px solid #d8e5ed; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(8,41,71,.04); }
.course-portfolio-strip > div::after { content: ""; position: absolute; top: 16px; right: 16px; width: 7px; height: 7px; border-radius: 50%; background: #f26a1b; }
.course-portfolio-strip strong { color: #102f4a; font-size: 25px; line-height: 1; letter-spacing: -.035em; }
.course-portfolio-strip span { color: #647b8f; font-size: 10px; font-weight: 850; letter-spacing: .065em; text-transform: uppercase; }
.course-admin-page .course-list-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: center; gap: 10px; margin: 16px 24px 14px; padding: 11px; border: 1px solid #d9e5ed; border-radius: 12px; background: #f7fafc; }
.course-admin-page .course-list-search-form { min-width: 0; }
.course-admin-page .course-list-filter-form select { min-width: 150px; }
.course-admin-page .course-admin-table { margin: 0 24px 22px; border-radius: 12px; }
.course-admin-page .course-admin-table .table-row { grid-template-columns: minmax(260px, 1.5fr) minmax(125px, .58fr) minmax(110px, .48fr) minmax(100px, .44fr) minmax(120px, .52fr) 92px 66px; gap: 13px; min-width: 1050px; min-height: 72px; padding: 10px 14px; }
.course-admin-page .course-admin-table .course-admin-table-head { min-height: 42px; background: #edf4f8; color: #526a7e; font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.course-admin-page .course-admin-table .table-row:not(.table-head):nth-child(odd) { background: #fbfdfe; }
.course-admin-page .course-admin-table .table-row:not(.table-head):hover { background: #f3f9fc; transform: none; }
.course-list-title { grid-template-columns: 82px minmax(0, 1fr); gap: 13px; }
.course-list-title img { width: 82px; height: 56px; border-radius: 9px; }
.course-list-title strong { display: block; margin-bottom: 4px; color: #102f4a; font-size: 13px; line-height: 1.3; }
.course-list-title span { display: -webkit-box; overflow: hidden; color: #6c8194; font-size: 11px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.course-admin-table .table-row > span { min-width: 0; color: #29475f; font-size: 12px; font-weight: 750; }
.course-admin-table .table-row > span small { display: block; overflow: hidden; margin-top: 4px; color: #8192a2; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.course-admin-table .table-row > .badge { justify-self: start; }
.course-admin-table .table-row > .btn { min-height: 34px; padding: 6px 11px; }

.course-builder-page, .course-editor-page { gap: 16px; }

.playlist-module-group { border-bottom: 1px solid #e3ebf1; }
.playlist-module-group > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.playlist-module-group > summary::-webkit-details-marker { display: none; }
.playlist-module-group > summary::after { content: '⌄'; color: #f26a1b; font-size: 1rem; transition: transform .2s ease; }
.playlist-module-group[open] > summary::after { transform: rotate(180deg); }
.playlist-module-group > summary small { margin-left: auto; color: #718096; font-weight: 600; }
.course-builder-hero, .course-editor-hero { padding: 24px 26px; border-radius: 16px; background: linear-gradient(135deg, #fff, #f4f9fc); }
.course-builder-hero h2, .course-editor-hero h2 { color: #102f4a; letter-spacing: -.035em; }
.course-editor-hero h2 { margin: 7px 0 8px; font-size: clamp(27px, 3vw, 38px); }
.course-editor-hero .button-row { justify-content: flex-end; max-width: 620px; }
.course-editor-tabs { gap: 5px; padding: 5px; border: 1px solid #d7e4ed; border-radius: 12px; background: #f5f9fb; }
.course-editor-tabs a { min-height: 40px; padding: 10px 16px; border: 0; border-radius: 8px; color: #587086; font-weight: 820; }
.course-editor-tabs a.active { border: 0; background: #fff; color: #0879c2; box-shadow: 0 4px 14px rgba(8,41,71,.08), inset 0 0 0 1px #bfd9e8; }
.course-editor-page > .panel:not(.course-editor-hero), .course-builder-form > .panel { padding: 22px; border-radius: 15px; }
.course-editor-page .grid-form .section-title.full { padding-bottom: 12px; border-bottom: 1px solid #e1eaf0; }
.course-editor-page .grid-form .section-title.full h3, .builder-section .section-title h3 { color: #173b59; font-size: 17px; }
.course-builder-modules { gap: 14px; }
.builder-module-card { padding: 18px; border: 1px solid #d6e4ed; border-radius: 13px; background: #f8fbfd; }
.builder-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.builder-card-actions strong, .builder-card-actions span { color: #173b5b; font-weight: 800; }
.course-creator-start { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,300px) auto; align-items: end; gap: 18px; border-top: 5px solid #f26a1b; }
.course-creator-start h3 { margin: 3px 0 5px; color: #123552; }
.course-creator-steps { position: sticky; top: 10px; z-index: 12; display: grid; grid-template-columns: repeat(4,1fr); padding: 8px; border: 1px solid #d7e4ed; border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: 0 12px 28px rgba(15,47,73,.09); backdrop-filter: blur(10px); }
.course-creator-steps button { border: 0; border-radius: 11px; padding: 10px 12px; background: transparent; color: #60758a; font: inherit; font-weight: 750; cursor: pointer; }
.course-creator-steps button span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-right: 8px; border-radius: 50%; background: #e9f0f5; color: #31526d; }
.course-creator-steps button.active { background: #123a5c; color: #fff; }
.course-creator-steps button.active span { background: #f26a1b; color: #fff; }
.builder-productivity-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.bulk-outline-panel { margin-top: 14px; padding: 16px; border: 1px dashed #afc5d5; border-radius: 13px; background: #f7fafc; }
.bulk-outline-panel textarea { width: 100%; margin-top: 7px; }
.mode-not-required { opacity: .48; }
.mode-not-required::after { content: 'Optional for online courses'; display: block; margin-top: 10px; color: #536b7e; font-weight: 700; }
.creator-readiness-score { padding: 9px 13px; border-radius: 999px; background: #e9f4fb; color: #123a5c; }
.creator-readiness-bar { height: 9px; margin-bottom: 20px; overflow: hidden; border-radius: 999px; background: #e4ebf0; }
.creator-readiness-bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg,#f26a1b,#16a36a); transition: width .25s ease; }
.creator-review-summary { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 16px; border-radius: 13px; background: #123a5c; color: #fff; }
.creator-review-summary span { color: #d9e8f2; }
.creator-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 18px; }
.creator-checklist div { display: flex; align-items: center; gap: 9px; padding: 11px 12px; border-radius: 10px; font-weight: 700; }
.creator-checklist div span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; }
.creator-checklist .ready { background: #e9f8f1; color: #176a4c; }.creator-checklist .ready span { background: #1c9a68; color: #fff; }
.creator-checklist .missing { background: #fff2e9; color: #984a18; }.creator-checklist .missing span { background: #f26a1b; color: #fff; }
.course-preview-dialog { width: min(960px,calc(100vw - 30px)); max-height: 90vh; padding: 0; border: 0; border-radius: 18px; box-shadow: 0 30px 80px rgba(6,28,46,.3); }
.course-preview-dialog::backdrop { background: rgba(7,28,44,.68); backdrop-filter: blur(4px); }
.course-preview-head { display: flex; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid #dce6ed; }
.course-preview-head h3 { margin: 2px 0 0; }
.course-preview-frame { width: 100%; padding: 28px; background: #edf3f7; transition: width .2s ease; }
.course-preview-frame.mobile { width: 390px; max-width: 100%; margin: auto; }
.course-preview-frame article { max-width: 760px; margin: auto; padding: 24px; border-radius: 17px; background: #fff; box-shadow: 0 14px 34px rgba(16,52,79,.12); }
.course-preview-cover { height: 220px; margin-bottom: 16px; border-radius: 13px; background: #dce8ef center/cover no-repeat; }
.course-preview-frame.mobile .course-preview-cover { height: 150px; }
.course-preview-frame [data-preview-curriculum] { display: grid; gap: 8px; margin-top: 18px; }
.course-preview-frame [data-preview-curriculum] section { display: flex; justify-content: space-between; padding: 11px; border: 1px solid #e0e9ef; border-radius: 9px; }
@media (max-width: 760px) {
    .course-creator-start { grid-template-columns: 1fr; align-items: stretch; }
    .course-creator-steps { top: 6px; overflow-x: auto; grid-template-columns: repeat(4,minmax(120px,1fr)); }
    .creator-checklist { grid-template-columns: 1fr; }
    .creator-review-summary, .course-preview-head { flex-direction: column; }
}
.builder-lesson-card { padding: 15px; border-color: #dce7ee; border-radius: 11px; background: #fff; }
.builder-actions { position: sticky; bottom: 12px; z-index: 6; padding: 12px; border: 1px solid #d4e2eb; border-radius: 13px; background: rgba(255,255,255,.94); box-shadow: 0 15px 35px rgba(8,41,71,.14); backdrop-filter: blur(12px); }
.module-editor { gap: 18px; }
.module-editor-item { padding: 18px; border: 1px solid #d2e2ec; border-radius: 14px; background: #f8fbfd; box-shadow: 0 7px 20px rgba(8,41,71,.045); }
.module-editor-head { padding-bottom: 14px; border-bottom: 1px solid #dfe9ef; }
.module-editor-head img { width: 92px; height: 60px; border-radius: 9px; object-fit: cover; }
.module-edit-form { margin-top: 14px; padding: 12px; border: 1px solid #dbe7ee; border-radius: 11px; background: #fff; }
.lesson-stack { gap: 12px; margin-top: 14px; }
.lesson-admin-card { padding: 15px; border: 1px solid #d9e6ee; border-radius: 12px; background: #fff; }
.lesson-builder-tools { border-radius: 10px; background: #f5f9fb; }
.module-editor-item > .lesson-form { padding: 16px; border: 1px dashed #9fc6dc; border-radius: 12px; background: #f1f8fc; }

@media (max-width: 1080px) {
    .course-portfolio-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .course-admin-page .course-list-toolbar { grid-template-columns: 1fr; }
    .course-admin-page .course-list-filter-form select { flex: 1 1 0; }
}
@media (max-width: 760px) {
    .course-admin-page > .panel > .section-title { align-items: stretch; padding: 18px; }
    .course-admin-page .course-subnav { width: 100%; flex-wrap: nowrap; overflow-x: auto; }
    .course-admin-page .course-subnav a { flex: 0 0 auto; }
    .course-portfolio-strip { padding: 14px 18px 0; }
    .course-admin-page .course-list-toolbar { margin: 14px 18px; }
    .course-admin-page .course-list-search-form, .course-admin-page .course-list-filter-form { width: 100%; }
    .course-admin-page .course-list-filter-form { display: grid; grid-template-columns: 1fr 1fr; }
    .course-admin-page .course-admin-table { margin: 0 18px 18px; }
    .course-builder-hero, .course-editor-hero { padding: 20px; }
    .course-editor-hero .button-row { justify-content: flex-start; }
    .course-editor-tabs { overflow-x: auto; }
    .course-editor-tabs a { flex: 0 0 auto; }
    .course-editor-page > .panel:not(.course-editor-hero), .course-builder-form > .panel { padding: 18px; }
    .module-editor-item { padding: 14px; }
}
@media (max-width: 480px) {
    .course-portfolio-strip { grid-template-columns: 1fr 1fr; gap: 8px; }
    .course-portfolio-strip > div { min-height: 78px; padding: 14px; }
    .course-portfolio-strip strong { font-size: 22px; }
    .course-admin-page .course-list-search-form { display: grid; grid-template-columns: 1fr auto; }
    .course-admin-page .course-list-search-form input { grid-column: 1 / -1; }
    .course-admin-page .course-list-filter-form { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .portal-admin .admin-layout.attendance-control-layout { grid-template-columns: minmax(0, 1fr); }
    .portal-admin .attendance-control-layout > .attendance-session-register,
    .portal-admin .attendance-control-layout > .attendance-side-stack { width: 100%; min-width: 0; grid-column: 1; }
}

/* Praxis Studios parity layer — authoritative visual system */
:root {
    --praxis-navy: #063556;
    --praxis-deep: #082947;
    --praxis-blue: #0879c2;
    --praxis-orange: #f26a1b;
    --praxis-sky: #eff7fc;
    --praxis-white: #fff;
    --ink: #10243a;
    --muted: #5f7388;
    --line: #dbe8f2;
    --paper: #edf6fc;
    --shadow: 0 14px 40px rgba(8,41,71,.08);
    --shadow-soft: 0 8px 24px rgba(8,41,71,.065);
}
body { color: var(--ink); font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: 15px; line-height: 1.5; }
.main { background: linear-gradient(180deg, #f8fcff 0, #edf6fc 42rem); }
.main > .flash, .main > .alert, .main > section, .main > article, .main > form { max-width: 1500px; }

.sidebar { background: linear-gradient(180deg, #062f4d 0%, #051e36 100%); }
.brand strong { font-size: 17px; font-weight: 900; letter-spacing: .01em; text-transform: uppercase; }
.brand small { color: #9ed4f7; font-size: 10px; letter-spacing: .13em; }
.nav a { min-height: 44px; color: #cde6f8; font-size: 14px; font-weight: 780; }
.nav > a.active, .nav-group.active > .nav-parent { background: linear-gradient(90deg, #0879c2, #0a95dc); box-shadow: 0 10px 24px rgba(0,82,134,.3), inset 0 1px rgba(255,255,255,.18); }
.nav-submenu a { color: #abcbe1; font-size: 13px; }
.nav-submenu a::before { color: var(--praxis-orange); }
.nav-badge { background: var(--praxis-orange); box-shadow: 0 4px 10px rgba(242,106,27,.32); }
.sidebar-card .eyebrow { color: #ffbf8d; }

.topbar { min-height: 84px; background: rgba(255,255,255,.94); box-shadow: 0 7px 24px rgba(8,41,71,.04); }
.topbar h1 { color: #102f4a; font-size: clamp(24px,2.2vw,30px); font-weight: 900; }
.topbar-title .eyebrow, .eyebrow { color: var(--praxis-orange); font-size: 10px; font-weight: 950; letter-spacing: .14em; }
.search input { min-height: 44px; background: #fff; }
.notify-icon, .admin-profile-menu > summary, .student-profile-menu > summary { min-height: 42px; border-color: var(--line); background: #fff; box-shadow: 0 5px 15px rgba(8,41,71,.055); }

h1, h2, h3, h4, strong { text-rendering: optimizeLegibility; }
h2 { letter-spacing: -.035em; }
.section-title h2 { font-size: 25px; }
.section-title h3, .panel h3 { font-size: 18px; }
.muted-copy { color: var(--muted); font-size: 13px; line-height: 1.6; }

.panel, .overview-metric-card, .metric-card, .ops-card, .single-stat-card, .hostel-card, .assignment-manage-card, .certificate-admin-row, .live-session-card {
    border-color: var(--line);
    background: #fff;
    box-shadow: var(--shadow-soft);
}
.panel { padding: 24px; }
.panel:hover { border-color: #bdd6e7; }
.section-title { gap: 16px; }
.section-title > a:not(.btn) { color: var(--praxis-blue); font-size: 13px; font-weight: 900; }

.btn {
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--praxis-navy);
    font-size: 13px;
    font-weight: 850;
    box-shadow: 0 4px 12px rgba(8,41,71,.045);
}
.btn:hover { border-color: #9ec4dc; background: #fff; color: var(--praxis-blue); box-shadow: 0 8px 20px rgba(8,41,71,.09); }
.btn.primary {
    border-color: var(--praxis-blue);
    background: linear-gradient(135deg, #0879c2, #086ead);
    color: #fff;
    box-shadow: 0 9px 20px rgba(8,121,194,.24);
}
.btn.primary:hover { border-color: #0767a4; background: linear-gradient(135deg, #0a86d1, #0768a5); color: #fff; box-shadow: 0 12px 26px rgba(8,121,194,.3); }
.course-subnav .btn.primary,
.assignment-ops-tabs .btn.primary,
.hostel-hero-actions .btn.primary,
.course-builder-page .builder-actions .btn.primary {
    border-color: var(--praxis-orange);
    background: linear-gradient(135deg, #f26a1b, #df5510);
    color: #fff;
    box-shadow: 0 9px 20px rgba(242,106,27,.24);
}
.course-subnav .btn.primary:hover,
.assignment-ops-tabs .btn.primary:hover,
.hostel-hero-actions .btn.primary:hover,
.course-builder-page .builder-actions .btn.primary:hover { background: linear-gradient(135deg, #ff7828, #d94d09); color: #fff; box-shadow: 0 12px 26px rgba(242,106,27,.3); }
.course-admin-page .course-subnav .btn.primary,
.student-directory-page .course-subnav .btn.primary,
.assignment-ops-page .assignment-ops-tabs .btn.primary {
    border-color: var(--praxis-orange);
    background: linear-gradient(135deg, #f26a1b, #df5510);
    color: #fff;
    box-shadow: 0 9px 20px rgba(242,106,27,.24);
}
.btn.subtle { background: #fff; color: var(--praxis-navy); }
.btn.danger { border-color: #f3c4bf; background: #fff5f3; color: #b53128; }

input, select, textarea {
    min-height: 44px;
    padding: 10px 13px;
    border: 1px solid #d3e1eb;
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 14px;
}
textarea { line-height: 1.55; }
label { color: #29485f; font-size: 13px; font-weight: 800; }
label small, .field-hint { font-size: 11px; line-height: 1.45; }
input:focus, select:focus, textarea:focus { border-color: var(--praxis-blue); box-shadow: 0 0 0 4px rgba(8,121,194,.1); }

.admin-overview-hero, .forms-hero, .assignment-ops-hero { border-top: 5px solid var(--praxis-orange); }
.admin-hero, .hostel-hero, .attendance-admin-hero, .certificate-admin-hero, .course-builder-hero, .course-editor-hero, .settings-hero { border-top: 5px solid var(--praxis-blue); }
.admin-overview-hero h2, .admin-hero h2, .hostel-hero h2, .attendance-admin-hero h2, .certificate-admin-hero h2, .forms-hero h2, .assignment-ops-hero h2, .settings-hero h2 { color: #0d3454; }
.admin-overview-hero:not(.forms-hero) h2 { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.16); }
.admin-overview-hero:not(.forms-hero) p { color: #dbeaf7; }
.admin-overview-hero:not(.forms-hero) .eyebrow { color: #ff9a5f; }
.admin-overview-hero:not(.forms-hero) .admin-hero-summary strong { color: #fff; }
.admin-overview-hero:not(.forms-hero) .admin-hero-summary small { color: #d6e7f5; }

.overview-metric-card small, .ops-card > span, .hostel-stat-card small, .attendance-stat-card small, .student-stats-strip a span, .course-portfolio-strip span, .certificate-admin-stats span { font-size: 11px; }
.overview-metric-card em, .ops-card small, .hostel-stat-card em, .attendance-stat-card em { font-size: 12px; }
.overview-metric-card::after, .ops-card::after, .hostel-stat-card::after, .attendance-stat-card::after, .assignment-ops-stats .overview-metric-card::after, .course-portfolio-strip > div::after { background: var(--praxis-orange); }
.metric-icon.orange { background: #fff0e7; color: var(--praxis-orange); }

.course-subnav, .finance-subnav, .assignment-ops-tabs, .settings-tabs, .course-editor-tabs { border-color: var(--line); background: #f2f8fc; }
.course-subnav a, .assignment-ops-tabs a, .settings-tabs a, .course-editor-tabs a { color: #4f687e; font-size: 13px; font-weight: 850; }
.course-subnav a.active, .finance-subnav a.active, .assignment-ops-tabs a.active, .settings-tabs a.active, .course-editor-tabs a.active { color: var(--praxis-blue); background: #fff; box-shadow: inset 0 -3px var(--praxis-orange), 0 5px 14px rgba(8,41,71,.07); }

.admin-table-head, .student-directory-head, .table-head, .forms-table-head, .attendance-roster-head {
    background: #f1f7fb;
    color: #526a7e;
    font-size: 10px;
    letter-spacing: .08em;
}
.admin-table-row, .student-directory-row, .table-row, .forms-table-row { color: #203c54; font-size: 13px; }
.admin-table-row, .student-directory-row, .table-row { min-height: 62px; }
.student-person { font-size: 13px; }
.student-person small, .table-row small { font-size: 11px; }
.badge, .status-pill, .mode-pill, .tag, .chip { min-height: 23px; padding-inline: 9px; font-size: 11px; }
.progress span, .progress-track span, .assignment-progress-line span { background: linear-gradient(90deg, var(--praxis-blue), var(--praxis-orange)); }

@media (max-width: 760px) {
    body { font-size: 15px; }
    .topbar { min-height: 72px; }
    .main > .flash, .main > .alert, .main > section, .main > article, .main > form { margin-left: 14px; margin-right: 14px; }
    .panel { padding: 18px; }
    .btn { min-height: 43px; }
    input, select, textarea { font-size: 16px; }
}

/* Shared compact date-range control */
.admin-date-filter { position: relative; z-index: 20; width: max-content; max-width: 100%; }
.admin-date-filter > summary {
    display: grid;
    grid-template-columns: 34px minmax(110px, 1fr) 18px;
    align-items: center;
    gap: 10px;
    min-width: 190px;
    min-height: 46px;
    padding: 6px 10px;
    border: 1px solid #d5e3ec;
    border-radius: 10px;
    background: #fff;
    color: var(--praxis-navy);
    box-shadow: 0 5px 16px rgba(8,41,71,.07);
    cursor: pointer;
    list-style: none;
}
.admin-date-filter > summary::-webkit-details-marker { display: none; }
.admin-date-filter > summary:hover { border-color: #99c3dc; box-shadow: 0 8px 20px rgba(8,41,71,.11); }
.admin-date-filter > summary > span:nth-child(2) { display: grid; gap: 1px; }
.admin-date-filter > summary small { color: #6d8193; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.admin-date-filter > summary strong { color: #163b59; font-size: 13px; line-height: 1.2; }
.admin-date-filter > summary > i { color: var(--praxis-orange); font-size: 16px; font-style: normal; font-weight: 900; transition: transform .18s ease; }
.admin-date-filter[open] > summary { border-color: var(--praxis-blue); box-shadow: 0 0 0 3px rgba(8,121,194,.1); }
.admin-date-filter[open] > summary > i { transform: rotate(180deg); }
.admin-date-filter-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #edf7fc; color: var(--praxis-blue); font-size: 18px; }
.admin-date-filter > .data-date-filter {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 50;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
    width: min(480px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    padding: 14px;
    border: 1px solid #cfdee9;
    border-radius: 12px;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 24px 60px rgba(5,33,57,.2);
}
.admin-date-filter .date-filter-close { position: absolute; top: 7px; right: 7px; z-index: 2; display: grid; place-items: center; width: 28px; height: 28px; min-height: 28px; padding: 0; border: 1px solid #d5e2eb; border-radius: 50%; background: #fff; color: #526a7e; font-size: 18px; font-weight: 800; box-shadow: 0 5px 14px rgba(8,41,71,.14); cursor: pointer; }
.admin-date-filter .date-filter-close:hover { border-color: #f2b18b; color: var(--praxis-orange); }
.admin-date-filter > .data-date-filter label { display: grid; gap: 5px; width: auto; color: #526a7e; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.admin-date-filter > .data-date-filter select,
.admin-date-filter > .data-date-filter input { width: 100%; min-width: 0; min-height: 42px; border-color: #d3e1eb; background: #fff; color: var(--ink); font-size: 13px; }
.admin-date-filter > .data-date-filter .btn { width: 100%; min-width: 0; min-height: 42px; }
.admin-date-filter > .data-date-filter > * { min-width: 0; }
.admin-hero-side .admin-date-filter { justify-self: end; }
.admin-page-filterbar .admin-date-filter { margin-left: auto; }

@media (max-width: 700px) {
    .admin-date-filter { width: 100%; }
    .admin-date-filter > summary { width: 100%; }
    .admin-date-filter[open]::before { content: ""; position: fixed; inset: 0; z-index: 55; background: rgba(5,29,50,.46); backdrop-filter: blur(3px); }
    .admin-date-filter > .data-date-filter { position: fixed; top: 50%; right: 14px; left: 14px; z-index: 60; grid-template-columns: 1fr 1fr; width: auto; max-height: calc(100vh - 40px); overflow-y: auto; transform: translateY(-50%); }
    .admin-date-filter > .data-date-filter .date-range-preset,
    .admin-date-filter > .data-date-filter .btn { grid-column: 1 / -1; }
    .admin-date-filter > .data-date-filter .btn { width: 100%; }
}

/* Admin dashboard operations centre */
.dashboard-legacy-content { display: none !important; }
.dashboard-create-menu { position: relative; }
.dashboard-create-menu > summary { list-style: none; cursor: pointer; }
.dashboard-create-menu > summary::-webkit-details-marker { display: none; }
.dashboard-create-menu > .btn.primary { border-color: var(--praxis-orange); background: linear-gradient(135deg,#f26a1b,#df5510); box-shadow: 0 9px 20px rgba(242,106,27,.24); }
.dashboard-create-menu > div { position: absolute; top: calc(100% + 9px); right: 0; z-index: 60; display: grid; grid-template-columns: 1fr 1fr; gap: 4px; width: 360px; padding: 8px; border: 1px solid #cfdee9; border-radius: 12px; background: #fff; box-shadow: 0 24px 60px rgba(5,33,57,.22); }
.dashboard-create-menu > div a { min-height: 42px; padding: 11px 12px; border-radius: 8px; color: #173b59; font-size: 13px; font-weight: 850; }
.dashboard-create-menu > div a:hover { background: #edf7fc; color: var(--praxis-blue); }
.dashboard-operations-grid, .dashboard-insight-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.72fr); gap: 16px; align-items: start; }
.dashboard-operations-grid > .panel, .dashboard-insight-grid > .panel { padding: 21px; border-radius: 14px; }
.dashboard-operations-grid .section-title, .dashboard-insight-grid .section-title { padding-bottom: 13px; border-bottom: 1px solid #e0eaf0; }
.dashboard-operations-grid .section-title h3, .dashboard-insight-grid .section-title h3 { margin: 3px 0 2px; font-size: 20px; }
.dashboard-attention-list, .dashboard-today-list, .dashboard-activity-list, .dashboard-course-list { display: grid; gap: 8px; }
.dashboard-attention-list > a { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 62px; padding: 9px 11px; border: 1px solid #dbe7ef; border-radius: 10px; background: #fff; }
.dashboard-attention-list > a:hover { border-color: #efb28d; background: #fffaf7; transform: translateX(2px); }
.attention-count { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: #fff0e7; color: #c94f0d; font-size: 16px; font-weight: 950; }
.dashboard-attention-list strong, .dashboard-activity-list strong, .dashboard-today-list strong, .dashboard-course-list strong { display: block; color: #173b59; font-size: 13px; }
.dashboard-attention-list small, .dashboard-activity-list small, .dashboard-today-list small, .dashboard-course-list small { display: block; margin-top: 3px; color: #6d8295; font-size: 11px; }
.dashboard-attention-list em { color: var(--praxis-blue); font-size: 11px; font-style: normal; font-weight: 900; }
.dashboard-today-list > a { display: grid; gap: 3px; padding: 12px 13px; border-left: 4px solid var(--praxis-blue); border-radius: 9px; background: #f5fafd; }
.dashboard-today-list > a.orange { border-left-color: var(--praxis-orange); background: #fff8f3; }
.dashboard-today-list > a.green { border-left-color: #168447; background: #f3faf6; }
.dashboard-today-list > a > span { color: var(--praxis-orange); font-size: 10px; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-clear-day { display: grid; justify-items: center; gap: 5px; padding: 25px 14px; border: 1px dashed #bfd5e3; border-radius: 11px; background: #f7fbfd; text-align: center; }
.dashboard-clear-day > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #e9f8ef; color: #168447; font-size: 18px; font-weight: 950; }
.dashboard-clear-day strong { color: #173b59; }
.dashboard-clear-day small { color: #71869a; }
.dashboard-activity-list > a { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 60px; padding: 9px 10px; border-bottom: 1px solid #e3ebf1; }
.dashboard-activity-list > a:last-child { border-bottom: 0; }
.dashboard-activity-list > a:hover { border-radius: 9px; background: #f5fafd; }
.activity-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #edf7fc; color: var(--praxis-blue); font-size: 16px; font-weight: 950; }
.activity-icon.payment { background: #e9f8ef; color: #168447; }
.activity-icon.assignment { background: #fff0e7; color: #d55711; }
.activity-icon.form { background: #f2ecff; color: #7147ad; }
.dashboard-activity-list time { color: #7a8ea0; font-size: 10px; font-weight: 750; white-space: nowrap; }
.dashboard-course-list > div { display: grid; gap: 8px; padding: 10px 0; border-bottom: 1px solid #e3ebf1; }
.dashboard-enrollment-chart { margin: 4px 0 14px; padding: 14px 0 17px; border-bottom: 1px solid #e1eaf0; }
.dashboard-enrollment-chart .pie-donut-frame { width: 132px; height: 132px; }
.dashboard-enrollment-chart .pie-donut-center strong { font-size: 25px; }
.dashboard-enrollment-chart .pie-legend { min-width: 0; }
.dashboard-course-list > div:last-child { border-bottom: 0; }
.dashboard-course-list em { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #e2ecf2; }
.dashboard-course-list em i { display: block; width: var(--course-share); height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--praxis-blue),var(--praxis-orange)); }

@media (max-width: 980px) {
    .dashboard-operations-grid, .dashboard-insight-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .dashboard-create-menu, .dashboard-create-menu > summary { width: 100%; }
    .dashboard-create-menu > div { position: fixed; top: 50%; right: 14px; left: 14px; z-index: 70; width: auto; transform: translateY(-50%); }
    .dashboard-attention-list > a { grid-template-columns: 40px minmax(0,1fr); }
    .dashboard-attention-list em { grid-column: 2; }
    .dashboard-activity-list > a { grid-template-columns: 38px minmax(0,1fr); }
    .dashboard-activity-list time { grid-column: 2; }
}

/* Timetable intelligence and presentation */
.timetable-progress-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; padding: 19px 20px 16px; border: 1px solid #cfe0ea; border-left: 5px solid var(--praxis-orange); border-radius: 14px; background: linear-gradient(135deg,#fff8f2 0%,#fff 42%,#eef8ff 100%); box-shadow: 0 10px 25px rgba(8,41,71,.06); }
.timetable-next-session { display: grid; gap: 4px; }
.timetable-next-session strong { color: #123854; font-size: 17px; line-height: 1.35; }
.timetable-next-session small { color: #63798d; font-size: 12px; }
.timetable-progress-counts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.timetable-progress-counts > span { display: grid; justify-items: center; min-width: 88px; padding: 10px; border: 1px solid #d9e6ed; border-radius: 10px; background: #fff; }
.timetable-progress-counts strong { color: #123854; font-size: 21px; }
.timetable-progress-counts small { color: #71869a; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.timetable-progress-track { grid-column: 1 / -1; height: 7px; overflow: hidden; border-radius: 99px; background: #dce8ef; }
.timetable-progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--praxis-orange),#ff9b4a 38%,var(--praxis-blue)); }
.timetable-view-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 13px 15px; border: 1px solid #d7e4ec; border-radius: 12px 12px 0 0; background: #f7fafc; }
.timetable-view-toolbar > div:first-child { display: grid; gap: 2px; }
.timetable-view-toolbar strong { color: #123854; font-size: 15px; }
.timetable-view-toolbar small { color: #71869a; font-size: 11px; }
.timetable-view-switch { display: inline-flex; gap: 4px; padding: 4px; border-radius: 10px; background: #e7eff4; }
.timetable-view-switch button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: #597085; font: inherit; font-size: 11px; font-weight: 900; cursor: pointer; }
.timetable-view-switch button.active { background: #fff; color: var(--praxis-blue); box-shadow: 0 3px 10px rgba(8,41,71,.1); }
.physical-timetable { overflow: hidden; border: 1px solid #d7e4ec; border-radius: 12px; gap: 0; }
.timetable-view-toolbar + .physical-timetable { border-top: 0; border-radius: 0 0 12px 12px; }
.physical-timetable-head { min-height: 44px; padding: 0 14px; background: #edf4f8; }
.physical-timetable-row { position: relative; min-height: 72px; padding: 12px 14px; border: 0; border-bottom: 1px solid #e0e9ef; border-radius: 0; box-shadow: none; }
.physical-timetable-row:last-child { border-bottom: 0; }
.physical-timetable-row.is-completed { background: #f8fafb; opacity: .72; }
.physical-timetable-row.is-today { background: #fff8f2; box-shadow: inset 5px 0 var(--praxis-orange); }
.physical-timetable-row.is-upcoming { background: #fff; }
.physical-timetable-row.is-no-class { background: #f5f7f9; }
.timetable-state-pill { display: inline-flex; width: max-content; min-height: 20px; margin-top: 6px; padding: 2px 7px; border-radius: 99px; background: #e8f5ec; color: #168447; font-size: 9px; font-style: normal; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.is-today .timetable-state-pill { background: #fff0e5; color: #c9500e; }
.is-completed .timetable-state-pill { background: #e8edf1; color: #64798a; }
.is-no-class .timetable-state-pill { background: #eef1f4; color: #6d7d8b; }

.course-builder-page .admin-form, .course-editor-page .admin-form, .builder-section { min-width: 0; }
.physical-timetable-editor { position: relative; width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; padding: 8px 0 6px; contain: inline-size; }
.physical-timetable-editor-head, .physical-timetable-editor-row { min-width: 1420px; }
.physical-timetable-editor-head { position: sticky; top: 0; z-index: 3; min-height: 44px; padding: 0 13px; border-radius: 9px; background: #edf4f8; }
.physical-timetable-editor-row { position: relative; gap: 10px; padding: 13px; border-color: #d8e5ed; border-left: 4px solid #b8d5e6; box-shadow: 0 4px 13px rgba(8,41,71,.035); }
.physical-timetable-editor-row::before { content: "Session " attr(data-session-number); position: absolute; top: -8px; left: 12px; padding: 2px 7px; border-radius: 99px; background: var(--praxis-blue); color: #fff; font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.physical-timetable-editor-row > label { display: block; min-width: 0; }
.physical-timetable-editor-row > label > span { display: none; }
.physical-timetable-editor-row input { min-height: 44px; font-size: 13px; }
.physical-timetable-editor-row .timetable-remove-row { border-color: #efcbc6; background: #fff5f3; color: #a8372f; }
.timetable-editor-actions { position: sticky; bottom: 12px; z-index: 5; width: max-content; max-width: 100%; padding: 10px; border: 1px solid #d5e3ec; border-radius: 11px; background: rgba(255,255,255,.94); box-shadow: 0 12px 28px rgba(8,41,71,.11); backdrop-filter: blur(10px); }

@media (max-width: 760px) {
    .timetable-progress-summary { grid-template-columns: 1fr; }
    .timetable-view-toolbar { align-items: stretch; flex-direction: column; }
    .timetable-view-switch { display: grid; grid-template-columns: repeat(3,1fr); }
    .timetable-progress-counts { width: 100%; }
    .physical-timetable { overflow: visible; border: 0; }
    .physical-timetable-head { display: none; }
    .physical-timetable-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; min-width: 0; margin-bottom: 10px; padding: 15px; border: 1px solid #d7e4ec; border-radius: 11px; }
    .physical-timetable-row > :first-child, .physical-timetable-row > div { grid-column: 1 / -1; }
    .physical-timetable-row > span { padding: 7px 0; }
    .physical-timetable-editor { overflow: visible; }
    .physical-timetable-editor-head { display: none; }
    .physical-timetable-editor-row { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; min-width: 0; padding: 19px 13px 13px; }
    .physical-timetable-editor-row > label > span { display: block; margin-bottom: 5px; color: #5f7487; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
    .physical-timetable-editor-row > label:nth-child(5), .physical-timetable-editor-row > label:nth-child(8), .physical-timetable-editor-row .timetable-remove-row { grid-column: 1 / -1; }
    .timetable-editor-actions { width: 100%; }
    .student-finance-totals { grid-template-columns: 1fr; width: 100%; min-width: 0; }
    .student-finance-course-head { align-items: stretch; flex-direction: column; }
    .student-finance-course-head .finance-balance-card { min-width: 0; }
    .document-tabs { width: 100%; }
    .document-tabs a { flex: 1; min-width: 0; }
    .finance-page > .ops-grid { grid-template-columns: 1fr 1fr; }
    .accounting-page > .ops-grid { grid-template-columns: 1fr 1fr; }
    .finance-overview-period { align-items: stretch; flex-direction: column; }
    .finance-overview-period .admin-date-filter { width: 100%; }
}

/* Keep attendance visual overrides after the shared premium layer. */
.admin-attendance-page .attendance-admin-hero { position: relative; grid-template-columns: minmax(0,1fr) auto; min-height: 205px; overflow: hidden; border-top: 5px solid var(--praxis-orange); background: radial-gradient(circle at 86% 15%,rgba(31,145,221,.30),transparent 31%),linear-gradient(135deg,#082b4b 0%,#0b4d7c 58%,#073454 100%); box-shadow: 0 18px 38px rgba(8,41,71,.17); }
.admin-attendance-page .attendance-admin-hero::after { content: ""; position: absolute; right: -55px; bottom: -105px; width: 300px; height: 300px; border: 1px solid rgba(255,255,255,.10); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.02); pointer-events: none; }
.admin-attendance-page .attendance-admin-hero > * { position: relative; z-index: 1; }
.admin-attendance-page .attendance-admin-hero .eyebrow { color: #ffab71; }
.admin-attendance-page .attendance-admin-hero h2 { color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.14); }
.admin-attendance-page .attendance-admin-hero p { color: #d7e9f5; }
.admin-attendance-page .attendance-admin-hero .button-row { align-self: center; }
.admin-attendance-page .attendance-admin-hero .button-row .btn { min-height: 43px; border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.10); color: #fff; box-shadow: none; backdrop-filter: blur(8px); }
.admin-attendance-page .attendance-admin-hero .button-row .btn:first-child { border-color: #f26a1b; background: #f26a1b; }
.admin-attendance-page .attendance-filter-card { border: 1px solid #d5e4ed; border-left: 4px solid var(--praxis-orange); background: #fff; box-shadow: 0 8px 24px rgba(8,41,71,.055); }
.admin-attendance-page .attendance-filter-bar { grid-template-columns: minmax(180px,1.2fr) minmax(125px,.65fr) minmax(180px,1fr) minmax(145px,.8fr) auto; }
.admin-attendance-page .attendance-filter-bar input,.admin-attendance-page .attendance-filter-bar select { min-height: 46px; border-color: #d2e1e9; background: #f9fbfd; }
.admin-attendance-page .attendance-filter-bar > .btn { min-height: 46px; background: linear-gradient(135deg,#0879c2,#0968a3); box-shadow: 0 8px 18px rgba(8,121,194,.20); }
.admin-attendance-page .attendance-stat-card { overflow: hidden; border: 1px solid #d9e6ed; box-shadow: 0 9px 24px rgba(8,41,71,.06); }
.admin-attendance-page .attendance-stat-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #168bcf; }
.admin-attendance-page .attendance-stat-card.green::before { background: #23a66a; }
.admin-attendance-page .attendance-stat-card.amber::before { background: #f26a1b; }
.admin-attendance-page .attendance-stat-card.purple::before { background: #7b61c9; }
.admin-attendance-page .attendance-session-register { border: 1px solid #d5e3eb; box-shadow: 0 12px 30px rgba(8,41,71,.07); }
.admin-attendance-page .attendance-bulk-actions { border-color: #d5e4ed; background: linear-gradient(90deg,#f5f9fc,#fff9f4); }
.admin-attendance-page .attendance-save-row .btn { min-height: 44px; padding-inline: 24px; background: linear-gradient(135deg,#f26a1b,#dd5510); box-shadow: 0 8px 18px rgba(242,106,27,.22); }
.admin-attendance-page .attendance-mark-card { border: 1px solid #d8e5ed; box-shadow: 0 8px 23px rgba(8,41,71,.055); }
@media (max-width:980px) { .admin-attendance-page .attendance-admin-hero { grid-template-columns:1fr; } .admin-attendance-page .attendance-admin-hero .button-row { justify-content:flex-start; } .admin-attendance-page .attendance-filter-bar { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .admin-attendance-page .attendance-admin-hero { min-height:0; padding:22px; } .admin-attendance-page .attendance-admin-hero .button-row { display:grid; grid-template-columns:1fr 1fr; width:100%; } .admin-attendance-page .attendance-admin-hero .button-row .btn:first-child { grid-column:1/-1; } .admin-attendance-page .attendance-filter-bar { grid-template-columns:1fr; } }

/* Certificate integrity workflow */
.certificate-admin-page { grid-template-columns: minmax(0,1fr); }
.certificate-admin-page > * { min-width:0; max-width:100%; }
.certificate-admin-hero { min-height: 220px; padding: 25px 28px; }
.certificate-admin-hero h2 { max-width: 610px; font-size: clamp(30px,3.2vw,43px); }
.certificate-status-form { display: grid; grid-template-columns: minmax(125px,.75fr) minmax(190px,1.25fr) auto; gap: 8px; align-items: center; }
.certificate-admin-list { min-width:0; }
.certificate-admin-list > .history-subnav { max-width:100%; overflow-x:auto; }
.certificate-admin-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; }
.certificate-admin-row > .certificate-admin-main { grid-column:1; }
.certificate-admin-row > .certificate-blockers { grid-column:2; }
.certificate-admin-row > .certificate-status-form { grid-column:1 / 3; grid-row:2; }
.certificate-admin-row > a.btn { grid-column:3; grid-row:2; }
.certificate-status-form input,.certificate-status-form select { min-height: 42px; border: 1px solid #d4e2eb; border-radius: 9px; background: #fff; }
.certificate-issued-note { display: grid; gap: 5px; padding: 14px 15px; border: 1px solid #cfe7d8; border-left: 4px solid #168447; border-radius: 10px; background: #f1faf4; }
.certificate-issued-note strong { color: #126d3d; font-size: 13px; }
.certificate-issued-note span { color: #547364; font-size: 11px; }
.certificate-locked-preview { padding: 28px; border-left: 4px solid #f26a1b; text-align: center; }
@media (max-width:760px) { .certificate-admin-row { grid-template-columns:1fr; } .certificate-admin-row > *,.certificate-admin-row > .certificate-admin-main,.certificate-admin-row > .certificate-blockers,.certificate-admin-row > .certificate-status-form,.certificate-admin-row > a.btn { grid-column:1; grid-row:auto; } .certificate-status-form { grid-template-columns: 1fr; width:100%; } .certificate-status-form .btn { width:100%; } }

/* Student experience and multi-course enrollment release */
.portal-student .content { font-size: 15px; }
.portal-student .panel { min-width: 0; border-color: #d7e4ec; border-radius: 15px; box-shadow: 0 7px 24px rgba(8,41,71,.055); }
.portal-student .section-title { gap: 14px; }
.portal-student .section-title h2 { color: #0e3352; font-size: clamp(27px,3vw,38px); letter-spacing: -.035em; }
.portal-student .section-title h3 { color: #153c5b; font-size: 19px; letter-spacing: -.015em; }
.portal-student .muted-copy { color: #5d7387; line-height: 1.6; }
.portal-student .btn { min-height: 40px; border-radius: 9px; font-weight: 850; }
.portal-student .btn.primary { border-color: #f26a1b; background: linear-gradient(135deg,#ff7a1a,#e85d0b); box-shadow: 0 7px 16px rgba(232,93,11,.2); }
.portal-student .btn:not(.primary):not(.danger) { border-color: #cbdde8; background: #fff; color: #0d6fae; }
.portal-student .table, .portal-student .table-wrap, .portal-student .notification-list-panel { border: 1px solid #d7e4ec; border-radius: 12px; }
.portal-student .table-row:nth-child(even) { background: #f9fcfe; }
.portal-student .empty { padding: 28px 20px; color: #63798c; }

.student-course-portfolio { margin-top: 18px; padding: 21px; border: 1px solid #d5e4ed; border-top: 4px solid #f26a1b; border-radius: 15px; background: linear-gradient(145deg,#fff,#f7fbfd); box-shadow: 0 8px 25px rgba(8,41,71,.06); }
.student-course-portfolio > .section-title { margin-bottom: 15px; }
.student-course-portfolio > .section-title h3 { margin: 4px 0; }
.student-course-portfolio-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 11px; }
.student-course-portfolio-card { display: grid; min-width: 0; gap: 7px; padding: 15px; border: 1px solid #d8e5ed; border-radius: 12px; background: #fff; color: #153b58; text-decoration: none; transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.student-course-portfolio-card:hover { transform: translateY(-2px); border-color: #9fc8df; box-shadow: 0 9px 22px rgba(8,69,108,.09); }
.student-course-portfolio-card .mode-pill { justify-self: start; }
.student-course-portfolio-card > strong { overflow-wrap: anywhere; font-size: 15px; line-height: 1.35; }
.student-course-portfolio-card > small { color: #667d90; }
.student-course-portfolio-progress,.admin-enrollment-progress { height: 6px; overflow: hidden; border-radius: 999px; background: #e5edf2; }
.student-course-portfolio-progress i,.admin-enrollment-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#0879c2,#18a26b); }
.student-course-portfolio-card > em { display: flex; justify-content: space-between; gap: 8px; color: #61788b; font-size: 11px; font-style: normal; font-weight: 750; }
.student-course-portfolio-card > em b { color: #0879c2; }

.admin-enrollment-cards { display: grid; gap: 10px; margin-top: 13px; }
.admin-enrollment-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; padding: 15px 16px; border: 1px solid #d6e4ec; border-left: 4px solid #168447; border-radius: 12px; background: #fff; }
.admin-enrollment-card.is-pending { border-left-color: #f2a51b; background: #fffdf8; }
.admin-enrollment-copy { display: grid; min-width: 0; gap: 6px; }
.admin-enrollment-copy > strong { color: #123854; font-size: 15px; overflow-wrap: anywhere; }
.admin-enrollment-copy > small { color: #657c8e; }
.admin-enrollment-copy > em { color: #587084; font-size: 11px; font-style: normal; font-weight: 800; }
.admin-enrollment-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-enrollment-progress { max-width: 460px; }
.admin-enrollment-card .enrollment-row-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.admin-enrollment-card .enrollment-row-actions form { margin: 0; }
.admin-additional-enrollment-form { margin-top: 14px; padding: 17px !important; background: linear-gradient(145deg,#f5fafd,#fff) !important; }
.enrollment-form-intro { display: grid; gap: 3px; padding-bottom: 11px; border-bottom: 1px solid #dce7ed; }
.enrollment-form-intro strong { color: #123854; font-size: 16px; }
.enrollment-form-intro span { color: #647b8e; font-size: 12px; }

.portal-student .finance-page,.portal-student .attendance-page,.portal-student .assignments-page,.portal-student .notifications-page,.portal-student .certificate-center-page { display: grid; gap: 16px; }
.portal-student .finance-hero,.portal-student .student-attendance-hero,.portal-student .certificate-hero-panel { border-top: 5px solid #f26a1b; border-radius: 17px; box-shadow: 0 12px 32px rgba(7,47,77,.12); }
.portal-student .student-finance-overview { grid-template-columns: minmax(0,1fr) minmax(0,480px); min-width: 0; }
.portal-student .student-finance-overview > * { min-width: 0; }
.portal-student .student-finance-totals { grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; min-width: 0; }
.portal-student .student-finance-totals strong { overflow-wrap: anywhere; }
.portal-student .student-finance-course-head { border-left: 4px solid #0879c2; }
.portal-student .assignment-tabs,.portal-student .course-subnav,.portal-student .student-finance-course-nav { max-width: 100%; overflow-x: auto; scrollbar-width: thin; }
.portal-student .assignment-tabs a,.portal-student .course-subnav a { flex: 0 0 auto; }
.portal-student .profile-panel { border-top: 5px solid #0879c2; }
.portal-student .profile-head { padding-bottom: 18px; border-bottom: 1px solid #dce7ed; }

@media (max-width:760px) {
    .student-course-portfolio { padding: 17px; }
    .student-course-portfolio > .section-title { align-items: stretch; }
    .student-course-portfolio > .section-title .btn { width: 100%; }
    .student-course-portfolio-grid { grid-template-columns: 1fr; }
    .admin-enrollment-card { grid-template-columns: 1fr; }
    .admin-enrollment-card .enrollment-row-actions { justify-content: stretch; }
    .admin-enrollment-card .enrollment-row-actions > * { flex: 1; }
    .admin-enrollment-card .enrollment-row-actions .btn { width: 100%; }
    .portal-student .section-title { align-items: stretch; }
    .portal-student .student-finance-overview { grid-template-columns: 1fr; }
    .portal-student .student-finance-totals { grid-template-columns: 1fr; }
}
.profile-controlled-field {
    display: grid;
    gap: .3rem;
    align-content: start;
    padding: .85rem 1rem;
    border: 1px solid var(--color-border, #d8e2ee);
    border-radius: 12px;
    background: #f7fafe;
}
.profile-controlled-field > span {
    color: var(--color-muted, #64748b);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.profile-controlled-field > small { color: var(--color-muted, #64748b); }
.hostel-stay-pill {
    display: inline-flex;
    width: fit-content;
    margin-top: .25rem;
    padding: .18rem .45rem;
    border-radius: 999px;
    background: #e8f7ef;
    color: #167047;
    font-size: .68rem;
    font-style: normal;
    font-weight: 800;
}
.hostel-stay-pill.expired,
.hostel-stay-pill.unscheduled,
.hostel-stay-pill.invalid { background: #fff0ed; color: #b43c2d; }
.hostel-stay-pill.upcoming { background: #edf4ff; color: #245da8; }
.hostel-tenure small { display: block; margin-top: .2rem; color: var(--color-muted, #64748b); }
.student-hostel-summary {
    margin: 1rem 0;
    padding: 1.1rem;
    border: 1px solid #cfe0f3;
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fbff, #fff8f3);
}
.hostel-history-tag {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin: .2rem 0 0 .35rem;
    padding: .16rem .45rem;
    border: 1px solid #f2c498;
    border-radius: 999px;
    background: #fff5e9;
    color: #a44b0b;
    font-size: .64rem;
    font-style: normal;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .025em;
    vertical-align: middle;
    white-space: nowrap;
}
.hostel-history-tag.current {
    border-color: #a9d8c0;
    background: #eaf8f0;
    color: #146b43;
}

/* Assessments — shared premium visual language */
.system-health-warning { position: sticky; top: 0; z-index: 10000; padding: 10px 18px; border-bottom: 1px solid #f1b47e; background: #fff1e5; color: #823b0b; font-size: 13px; text-align: center; box-shadow: 0 4px 14px rgba(80,35,5,.09); }
.brand > span:last-child { min-width: 0; flex: 1 1 auto; }
.brand strong {
    display: block;
    max-width: 100%;
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: 0;
    white-space: nowrap;
}

.assessment-module-tabs,
.physical-tests-page > .assignment-tabs,
.assignments-page > .assignment-tabs:first-of-type {
    width: fit-content;
    max-width: 100%;
    gap: 5px;
    padding: 5px;
    overflow-x: auto;
    border: 1px solid #d6e5ef;
    border-radius: 12px;
    background: #edf6fc;
    box-shadow: inset 0 1px rgba(255,255,255,.9);
}
.assessment-module-tabs a,
.physical-tests-page > .assignment-tabs a,
.assignments-page > .assignment-tabs:first-of-type a {
    min-height: 40px;
    padding: 0 17px;
    border-radius: 8px;
    color: #506b81;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}
.assessment-module-tabs a.active,
.physical-tests-page > .assignment-tabs a.active,
.assignments-page > .assignment-tabs:first-of-type a.active {
    color: var(--praxis-blue);
    background: #fff;
    box-shadow: inset 0 -3px var(--praxis-orange), 0 6px 16px rgba(8,41,71,.09);
}
.assessment-module-tabs a::after,
.physical-tests-page > .assignment-tabs a::after,
.assignments-page > .assignment-tabs:first-of-type a::after { display: none; }

.physical-tests-page { gap: 16px; }
.physical-tests-page > .section-title {
    position: relative;
    min-height: 180px;
    margin: 0;
    padding: 28px 30px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.09);
    border-top: 5px solid var(--praxis-orange);
    border-radius: 17px;
    background:
        radial-gradient(circle at 88% 15%, rgba(20,151,218,.34), transparent 18rem),
        linear-gradient(135deg, #073556, #082947 70%);
    box-shadow: 0 18px 38px rgba(8,41,71,.18);
}
.physical-tests-page > .section-title::after {
    content: "";
    position: absolute;
    right: 6%;
    bottom: -62px;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
}
.physical-tests-page > .section-title h2 { margin: 8px 0 9px; color: #fff; font-size: clamp(32px,3.5vw,46px); }
.physical-tests-page > .section-title .muted-copy { max-width: 670px; color: #d6e9f6; font-size: 14px; }
.physical-tests-page > .section-title .badge { position: relative; z-index: 1; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.11); color: #fff; }

.physical-tests-page > .panel {
    border-radius: 15px;
    box-shadow: 0 10px 28px rgba(8,41,71,.07);
}
.physical-tests-page > .panel > .section-title { padding-bottom: 14px; border-bottom: 1px solid #e0eaf1; }
.physical-tests-page details.admin-section {
    border: 1px solid #d9e8f1;
    border-radius: 12px;
    background: linear-gradient(145deg,#fff,#f7fbfe);
}
.physical-tests-page details.admin-section > summary { color: #123d5d; font-size: 15px; }
.physical-tests-page .admin-list-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: end;
    margin: 15px 0 18px;
    padding: 13px;
    border: 1px solid #dce9f1;
    border-radius: 12px;
    background: #f5f9fc;
}
.physical-tests-page .admin-list-toolbar label { flex: 1 1 190px; }
.physical-tests-page table thead th { background: #eef6fb; color: #526d81; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.physical-tests-page table tbody tr { transition: background .16s ease; }
.physical-tests-page table tbody tr:hover { background: #f8fcff; }
.physical-tests-page table td strong { color: #123653; }
.physical-tests-page #score-sheet { border-top: 5px solid var(--praxis-blue); }
.physical-tests-page #score-sheet .assignment-ops-stats { margin: 18px 0; }
.physical-tests-page #score-sheet .row-actions { padding-top: 15px; border-top: 1px solid #e1ebf1; }

.assignments-page > .assignment-heading {
    padding: 22px 24px;
    border-top: 5px solid var(--praxis-orange);
    border-radius: 15px;
    background: linear-gradient(135deg,#073556,#0a4770);
    box-shadow: 0 14px 34px rgba(8,41,71,.16);
}
.assignments-page > .assignment-heading h2 { margin: 5px 0 0; color: #fff; font-size: clamp(28px,3vw,38px); }
.assignments-page > .assignment-heading .badge { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.12); color: #fff; }
.assignment-status-tabs { padding-left: 4px; }

@media (max-width: 620px) {
    .brand strong { font-size: 14px; }
    .physical-tests-page > .section-title { min-height: 155px; padding: 22px 20px; align-items: flex-start; }
    .physical-tests-page > .section-title h2 { font-size: 31px; }
    .physical-tests-page > .section-title .badge { align-self: flex-start; }
    .physical-tests-page .admin-list-toolbar { display: grid; grid-template-columns: 1fr; }
    .physical-tests-page .admin-list-toolbar label,
    .physical-tests-page .admin-list-toolbar .btn { width: 100%; }
}

/* Student assignments: contain long content at tablet and mobile widths. */
.portal-student .assignments-page,
.portal-student .assignments-page > *,
.portal-student .assignment-list,
.portal-student .assignment-item,
.portal-student .assignment-copy {
    min-width: 0;
    max-width: 100%;
}
.portal-student .assignment-item { width: 100%; overflow: hidden; }
.portal-student .assignment-copy h3,
.portal-student .assignment-copy p,
.portal-student .assignment-copy small {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
}
.portal-student .assignment-status-tabs { width: 100%; }
.portal-student .assessment-course-picker {
    display: flex;
    justify-content: flex-end;
    min-width: 0;
}
.portal-student .assessment-course-picker label { display: grid; gap: 6px; width: min(100%,360px); color: #526b80; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.portal-student .assessment-course-picker select { width: 100%; min-width: 0; background: #fff; }
.portal-student .assignment-copy { overflow: hidden; }
.portal-student .assignment-item { grid-template-columns: 52px minmax(0,1fr) auto auto auto; }
.portal-student .admin-layout.wide-left > * { min-width: 0; max-width: 100%; }
.portal-student .admin-layout.wide-left :is(input,select,textarea,.btn) { max-width: 100%; }
.physical-tests-page .physical-test-edit { margin: 16px 0; }

@media (max-width: 760px) {
    html, body, .app-shell, .main { max-width: 100%; overflow-x: clip; }
    .main > section, .main > article, .main > form { width: auto; max-width: none; }
    /* The two-class desktop selector beats app.css's generic mobile rule unless
       it is explicitly collapsed at the same breakpoint. */
    .portal-student .admin-layout.wide-left {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }
    .portal-student .admin-layout.wide-left > .panel,
    .portal-student .admin-layout.wide-left > aside.panel {
        width: 100%;
        min-width: 0;
    }
    .portal-student .admin-layout.wide-left .muted-copy,
    .portal-student .admin-layout.wide-left .notice-copy {
        width: 100%;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
    }
    .portal-student .lesson-assignment-panel,
    .portal-student .lesson-assignment-list,
    .portal-student .lesson-assignment-item,
    .portal-student .lesson-active-assignment,
    .portal-student .lesson-active-assignment > * {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
    .portal-student .lesson-active-assignment,
    .portal-student .lesson-assignment-form {
        grid-template-columns: minmax(0, 1fr);
    }
    .portal-student .lesson-active-assignment :is(p, h4, small),
    .portal-student .lesson-assignment-form :is(label, input, textarea) {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: break-word;
        word-break: normal;
    }
    .portal-student .score-sheet-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-student .score-card { min-width: 0; padding: 15px; }
    .portal-student .assignment-item {
        grid-template-columns: minmax(0,1fr);
        gap: 11px;
        padding: 16px;
    }
    .portal-student .assignment-item > * { min-width: 0; max-width: 100%; }
    .portal-student .assignment-item .assignment-icon { display: none; }
    .portal-student .assignment-item :is(h3,p,small) { width: 100%; overflow-wrap: anywhere; }
    .portal-student .assignment-item > :is(.badge,.score-pill) { max-width: 100%; white-space: normal; }
    .physical-tests-page .table-wrap { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .physical-tests-page table { min-width: 720px; }
    .physical-tests-page #score-sheet .row-actions { display: grid; grid-template-columns: 1fr; }
    .physical-tests-page #score-sheet .row-actions .btn { width: 100%; }
    .portal-student .assignment-item > .badge,
    .portal-student .assignment-item > .score-pill,
    .portal-student .assignment-item > .btn { justify-self: start; }
    .portal-student .assignment-item > .btn { width: 100%; }
    .portal-student .assignment-copy p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 5;
    }
}

@media (max-width: 620px) {
    .admin-preview-global-strip {
        gap: 12px !important;
        padding: 10px 14px !important;
        line-height: 1.35;
    }
    .admin-preview-global-strip > span { min-width: 0; }
    .admin-preview-global-strip > a {
        flex: 0 0 auto;
        text-align: center;
    }
}

@media (max-width: 390px) {
    .portal-student .score-sheet-summary { grid-template-columns: 1fr; }
}
