:root {
    --sapphire:#3635a8;
    --purple:#8251dc;
    --ink:#24213d;
    --muted:#77748b;
    --line:#e9e7f2;
    --surface:#fff;
    --canvas:#f6f5fb;
    --bs-primary:#6550c7;
    --bs-link-color:#6150b8;
    --bs-link-hover-color:#433191;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    background:var(--canvas);
    color:var(--ink);
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-size:1rem;
    line-height:1.6;
}

a {
    color:#6550b9;
    text-decoration:none;
}

a:hover {
    color:#433191;
}

button,a,input,select,textarea {
    touch-action:manipulation;
}

a:focus-visible,button:focus-visible,[tabindex]:focus-visible {
    outline:3px solid #a88bea;
    outline-offset:3px;
}

h1,h2,h3,h4,h5 {
    color:var(--ink);
    font-weight:650;
    letter-spacing:-.035em;
}

h1 {
    font-size:1.875rem;
}

h2 {
    font-size:1.438rem;
}

small,.text-muted {
    color:var(--muted)!important;
}

.skip-link {
    position:fixed;
    left:16px;
    top:-70px;
    z-index:2000;
    padding:12px;
    background:#fff;
}

.skip-link:focus {
    top:10px;
}

.sidebar {
    --bs-offcanvas-width:270px;
    width:270px;
    background:radial-gradient(ellipse at 10% 85%,#42306a 0,transparent 60%),linear-gradient(160deg,#252249,#1c1935)!important;
    color:#ddd8ed;
    display:flex;
    flex-direction:column;
    border:0!important;
}

.sidebar-brand {
    padding:34px 23px 30px;
    display:flex;
    align-items:center;
    gap:10px;
}

.brand-link {
    display:flex;
    align-items:center;
    gap:12px;
    color:#fff!important;
}

.brand-logo {
    display:grid;
    place-items:center;
    width:49px;
    height:49px;
    background:white;
    border-radius:14px;
    padding:5px;
    box-shadow:0 0 28px #b98af82b;
}

.brand-logo img {
    width:100%;
    height:100%;
    object-fit:contain;
}

.brand-link strong {
    display:block;
    font-size:1.125rem;
    letter-spacing:.13em;
}

.brand-link small {
    color:#b8afcb!important;
    font-size:1rem;
    letter-spacing:.18em;
}

.sidebar-body {
    padding:4px 18px;
    flex:1;
    overflow-y:auto;
}

.nav-caption {
    font-size:1rem;
    letter-spacing:.17em;
    font-weight:650;
    color:#a39ab9;
    margin:14px 15px;
}

.side-link {
    display:flex;
    align-items:center;
    gap:13px;
    width:100%;
    border:0;
    border-radius:9px;
    background:none;
    color:#d5cde5;
    padding:13px 14px;
    font-size:1rem;
    text-align:left;
    margin-bottom:5px;
}

.side-link:hover,.side-link:focus {
    color:white;
    background:#ffffff0c;
}

.side-link.active {
    color:#fff;
    background:linear-gradient(105deg,#6951c9,#8654ce);
    box-shadow:0 5px 22px #9760ea22;
}

.side-link>i:first-child {
    width:17px;
}

.chevron {
    margin-left:auto;
    font-size:1rem;
    transition:transform .2s;
}

.section-toggle[aria-expanded=true] .chevron {
    transform:rotate(180deg);
}

.submenu {
    margin:4px 0 8px 35px;
    border-left:1px solid #ffffff1c;
    padding-left:10px;
}

.submenu a,.submenu button {
    display:block;
    padding:9px 14px;
    font-size:1rem;
    color:#bfb5d4;
    border:0;
    background:none;
    width:100%;
    text-align:left;
    border-radius:6px;
}

.submenu a:hover,.submenu button:hover,.submenu .active {
    color:#fff;
    background:#ffffff0c;
}

.submenu .active {
    box-shadow:inset 2px 0 #b494ff;
}

.sidebar-note {
    margin:64px 12px 25px;
    border:1px solid #b793ee2b;
    border-radius:14px;
    padding:18px;
    background:linear-gradient(135deg,#bc8efb0f,#ffffff03);
}

.note-spark {
    font-size:1.562rem;
    color:#c8a6ff;
    display:block;
    margin-bottom:12px;
}

.sidebar-note strong {
    font-size:1rem;
    color:#e9e1f7;
}

.sidebar-note p {
    font-size:1rem;
    color:#a99aba;
    margin:7px 0 0;
}

.sidebar-user {
    padding:22px;
    display:flex;
    gap:12px;
    align-items:center;
    border-top:1px solid #ffffff10;
}

.avatar {
    flex-shrink:0;
    display:grid;
    place-items:center;
    width:37px;
    height:37px;
    border-radius:12px;
    background:#665094;
    color:white;
    font-weight:600;
    font-size:1rem;
}

.sidebar-user strong {
    font-size:1rem;
    display:block;
    overflow-wrap:anywhere;
}

.sidebar-user small {
    display:block;
    color:#a69ab9!important;
    font-size:1rem;
}

.avatar-light {
    background:#eee8fa;
    color:#7051af;
    width:34px;
    height:34px;
    border-radius:50%;
}

.app-shell {
    min-height:100vh;
    display:flex;
    flex-direction:column;
    min-width:0;
}

.topbar {
    height:78px;
    padding:0 38px;
    border-bottom:1px solid var(--line);
    background:#ffffffb3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.topbar-location {
    display:flex;
    align-items:center;
    color:#8a869a;
    font-size:1rem;
    gap:12px;
}

.topbar-location strong {
    font-weight:500;
    color:#514b67;
}

.breadcrumb-divider {
    padding:0 13px;
    color:#b9b3c9;
}

.topbar-meta {
    display:flex;
    align-items:center;
    gap:22px;
    font-size:1rem;
    color:#837b96;
}

.app-content {
    padding:34px 38px;
    flex:1;
    min-width:0;
}

.app-content>.container {
    max-width:none;
    padding:0;
}

.app-content>.container.mt-5 {
    margin-top:0!important;
}

.app-footer {
    padding:20px 38px;
    display:flex;
    justify-content:space-between;
    gap:15px;
    color:#928b9f;
    font-size:1rem;
    border-top:1px solid var(--line);
}

.menu-button {
    padding:7px;
    color:var(--sapphire);
}

.page-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:28px;
}

.eyebrow {
    font-size:1rem;
    font-weight:650;
    letter-spacing:.16em;
    color:#8c72b4;
    margin-bottom:6px;
}

.page-heading h1 {
    margin:0 0 5px;
}

.page-heading p {
    color:var(--muted);
    margin:0;
    font-size:1rem;
}

.heading-actions {
    display:flex;
    gap:9px;
    flex-shrink:0;
}

.btn {
    font-size:1rem;
    font-weight:600;
    border-radius:8px;
    padding:10px 16px;
    transition:background .18s,box-shadow .18s;
}

.btn-primary {
    --bs-btn-bg:#7251c4;
    --bs-btn-border-color:#7251c4;
    --bs-btn-hover-bg:#5f40ae;
    --bs-btn-hover-border-color:#5f40ae;
    --bs-btn-active-bg:#513594;
    --bs-btn-active-border-color:#513594;
    box-shadow:0 4px 12px #7251c422;
}

.btn-light,.btn-outline-primary {
    --bs-btn-color:#655583;
    --bs-btn-bg:#fff;
    --bs-btn-border-color:#e2dcec;
    --bs-btn-hover-bg:#f0eaf9;
    --bs-btn-hover-color:#513594;
    --bs-btn-hover-border-color:#d1bee9;
}

.btn-dark {
    background:#36305b;
    border-color:#36305b;
}

.btn i {
    margin-right:6px;
}

.form-control,.form-select {
    border-color:#e1dceb;
    border-radius:8px;
    font-size:1rem;
    min-height:42px;
    box-shadow:none;
}

.form-control:focus,.form-select:focus {
    border-color:#9872d3;
    box-shadow:0 0 0 3px #9c72df19;
}

.form-label,label {
    font-weight:500;
    color:#5f5571;
}

hr {
    border-color:#d9d2e7;
    opacity:.65;
}

.nav-tabs {
    border-color:#e2dbea;
    gap:5px;
    flex-wrap:wrap;
}

.nav-tabs .nav-link {
    color:#7d708f;
    border-radius:8px 8px 0 0;
    padding:12px 18px;
    font-size:1rem;
}

.nav-tabs .nav-link.active {
    color:#6b43b5;
    border-color:#e2dbea #e2dbea white;
    background:white;
    font-weight:650;
}

.tab-content {
    background:#fff;
    padding:24px;
    border:1px solid var(--line);
    border-top:0;
    border-radius:0 0 14px 14px;
}

.card {
    border:1px solid var(--line);
    border-radius:13px;
    box-shadow:0 3px 15px #3a225004;
}

.card-header {
    background:#f3effa;
    color:#564174;
    border-color:var(--line);
    padding:15px 20px;
}

.card-body {
    padding:22px;
}

.card-full {
    height:100%;
}

.table-responsive {
    max-width:100%;
    border-radius:10px;
}

.table {
    --bs-table-bg:#fff;
    --bs-table-striped-bg:#faf8fe;
    --bs-table-hover-bg:#f2edfb;
    font-size:1rem;
    vertical-align:middle;
    margin-bottom:0;
}

.table>:not(caption)>*>* {
    padding:13px 16px;
    border-bottom-color:#eeeaf5;
}

.table th {
    font-size:1rem;
    letter-spacing:.035em;
    font-weight:600;
    color:#83758f;
    background:#f7f4fb;
    white-space:nowrap;
}

.table td {
    color:#514763;
}

.page-link {
    color:#7853ba;
}

.active>.page-link {
    background:#7853ba;
    border-color:#7853ba;
}

.select-width {
    width:100%;
}

.card-value {
    font-size:1.625rem;
    color:#7251c4;
}

.is-invalid {
    border-color:#dc3545!important;
}

.welcome-banner {
    position:relative;
    overflow:hidden;
    background:radial-gradient(ellipse at 85% 40%,#8964d56b,transparent 50%),linear-gradient(110deg,#37305f,#514083);
    border-radius:16px;
    padding:26px 30px;
    margin-bottom:24px;
    color:white;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.welcome-banner:after {
    content:'';
    position:absolute;
    width:240px;
    height:240px;
    right:5%;
    border:1px solid #ffffff0e;
    border-radius:50%;
    pointer-events:none;
}

.welcome-banner h2 {
    color:#fff;
    font-size:1.375rem;
    margin-bottom:8px;
}

.welcome-banner p {
    color:#d0c5e5;
    font-size:1rem;
    max-width:500px;
    margin:0;
}

.welcome-icon {
    font-size:3.125rem;
    color:#ccb0ff;
    padding-right:20px;
    opacity:.8;
}

.stats-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
    margin-bottom:24px;
}

.stat-card {
    background:white;
    border:1px solid var(--line);
    border-radius:13px;
    padding:21px;
    position:relative;
}

.stat-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    color:#7d758d;
    font-size:1rem;
}

.stat-icon {
    display:grid;
    place-items:center;
    background:#f2edfc;
    color:#8761ca;
    width:34px;
    height:34px;
    border-radius:10px;
}

.stat-card:nth-child(2) .stat-icon {
    background:#edf1ff;
    color:#6879c5;
}

.stat-card:nth-child(3) .stat-icon {
    background:#fbeef7;
    color:#bb7aa3;
}

.stat-card:nth-child(4) .stat-icon {
    background:#eaf6f2;
    color:#57a68c;
}

.stat-value {
    font-size:1.938rem;
    font-weight:650;
    letter-spacing:-.05em;
    line-height:1.3;
    margin:9px 0;
}

.stat-caption {
    font-size:1rem;
    color:#90879e;
}

.dashboard-grid {
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
    gap:22px;
    margin-bottom:22px;
}

.panel {
    min-width:0;
    background:white;
    border:1px solid var(--line);
    border-radius:14px;
    padding:23px;
}

.panel-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    margin-bottom:22px;
}

.panel-heading h2 {
    font-size:1rem;
    letter-spacing:-.02em;
    margin:0 0 5px;
}

.panel-heading p {
    font-size:1rem;
    color:#93889e;
    margin:0;
}

.soft-badge {
    font-size:1rem;
    color:#8b72ab;
    background:#f5f0fb;
    padding:5px 9px;
    border-radius:6px;
    white-space:nowrap;
}

.trend-chart {
    width:100%;
    height:210px;
    display:block;
}

.chart-axis {
    display:flex;
    justify-content:space-between;
    font-size:1rem;
    color:#a298b1;
    margin-top:9px;
}

.chart-summary {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:1rem;
    color:#877998;
    margin-bottom:9px;
}

.legend-dot {
    width:7px;
    height:7px;
    background:#9369d3;
    border-radius:50%;
    display:inline-block;
}

.metric-row {
    margin:18px 0;
}

.metric-label {
    display:flex;
    justify-content:space-between;
    gap:15px;
    margin-bottom:7px;
    font-size:1rem;
    color:#7e708d;
}

.metric-label span {
    overflow-wrap:anywhere;
}

.metric-label strong {
    color:#56476b;
}

.metric-track {
    height:7px;
    background:#f4f0fa;
    border-radius:6px;
    overflow:hidden;
}

.metric-fill {
    height:100%;
    border-radius:6px;
    background:linear-gradient(90deg,#7b64c7,#b091e1);
}

.metric-row:nth-child(3n) .metric-fill {
    background:linear-gradient(90deg,#758ac9,#acb7ee);
}

.metric-row:nth-child(3n + 1) .metric-fill {
    background:linear-gradient(90deg,#b786bb,#dbb4df);
}

.empty-state {
    text-align:center;
    padding:40px 14px;
    color:#92839f;
    font-size:1rem;
}

.empty-state i {
    display:block;
    font-size:1.75rem;
    margin-bottom:15px;
    color:#c8b7de;
}

.panel-note {
    font-size:1rem;
    color:#9a8ba6;
    margin:16px 0 0;
}

.detail-summaries {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:22px;
}

.detail-summaries details {
    align-self:start;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:17px;
}

.detail-summaries summary {
    font-size:1rem;
    font-weight:600;
    color:#69547d;
    cursor:pointer;
}

.summary-row {
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:9px 0;
    border-bottom:1px solid #f0eaf5;
    font-size:1rem;
}

.summary-row span {
    overflow-wrap:anywhere;
}

.login-page {
    background:radial-gradient(ellipse at 20% 20%,#e5daf7,transparent 60%),var(--canvas);
}

.login-page .bg-light {
    background:white!important;
    border-color:var(--line)!important;
    border-radius:18px!important;
}

@media(min-width:992px) {
    .sidebar {
        position:fixed;
        inset:0 auto 0 0;
        height:100vh;
        z-index:1040;
    }
    .app-shell {
        margin-left:270px;
    }
}

@media(min-width:1600px) {
    .app-content {
        max-width:1600px;
        width:100%;
        margin:auto;
    }
}

@media(max-width:1199px) {
    .stats-grid {
        gap:12px;
    }
    .stat-card {
        padding:17px;
    }
    .app-content {
        padding:26px;
    }
    .topbar {
        padding:0 26px;
    }
    .detail-summaries {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:767px) {
    .topbar {
        height:65px;
        padding:0 16px;
    }
    .today-date {
        display:none;
    }
    .app-content {
        padding:22px 16px;
    }
    .page-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:15px;
    }
    .page-heading h1 {
        font-size:1.688rem;
    }
    .heading-actions {
        width:100%;
    }
    .heading-actions .btn {
        flex:1;
    }
    .welcome-banner {
        padding:23px;
    }
    .welcome-banner h2 {
        font-size:1.188rem;
    }
    .welcome-icon {
        display:none;
    }
    .stats-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
    }
    .stat-value {
        font-size:1.688rem;
    }
    .stat-top {
        font-size:1rem;
    }
    .stat-icon {
        width:28px;
        height:28px;
    }
    .dashboard-grid {
        grid-template-columns:1fr;
        gap:18px;
    }
    .detail-summaries {
        grid-template-columns:1fr;
    }
    .panel {
        padding:20px;
    }
    .app-footer {
        padding:18px 16px;
    }
    .app-footer span:last-child {
        display:none;
    }
    .tab-content {
        padding:16px;
    }
    .nav-tabs .nav-link {
        padding:10px;
        font-size:1rem;
    }
    .input-group {
        flex-wrap:wrap;
    }
    .input-group>.form-control {
        min-width:85px;
    }
    .app-content form .row {
        row-gap:10px;
    }
}

@media(prefers-reduced-motion:reduce) {
    *,*:before,*:after {
        transition:none!important;
        scroll-behavior:auto!important;
    }
}

@media print {
    .sidebar,.topbar,.app-footer,.heading-actions {
        display:none!important;
    }
    .app-shell {
        margin:0;
    }
    .app-content {
        padding:0;
    }
    body {
        background:white;
    }
    .panel,.stat-card {
        break-inside:avoid;
    }
}
.growth-filters { display:grid; grid-template-columns:1fr 1.2fr 1.2fr auto; gap:10px; align-items:end; margin-bottom:12px; }
.growth-filters > div { min-width:0; }
.growth-filters label { font-size:1rem; margin-bottom:5px; }
.growth-filters input { width:100%; min-width:0; }
.growth-presets { display:flex; flex-wrap:wrap; gap:12px; font-size:1rem; margin-bottom:22px; }
@media(max-width:767px) { .growth-filters { grid-template-columns:1fr 1fr; } }

.report-equal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.report-chart-scroll { overflow-x:auto; max-width:100%; padding-top:8px; }
.report-bars { display:flex; align-items:end; gap:16px; min-height:230px; border-bottom:1px solid var(--line); }
.report-bar-column { flex:1 0 56px; text-align:center; font-size:1rem; color:var(--muted); }
.report-bar-column strong { color:var(--sapphire); font-size:1rem; }
.report-bar-column span { display:block; white-space:nowrap; padding:12px 0; }
.report-bar-track { height:170px; display:flex; align-items:end; justify-content:center; }
.report-bar { width:65%; max-width:60px; min-height:3px; border-radius:6px 6px 0 0; background:linear-gradient(0deg,#6c50bd,#b795e7); }
.report-breakdown { max-height:330px; overflow-y:auto; padding-right:8px; }
.report-pagination { display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; margin-top:20px; color:var(--muted); font-size:1rem; }
@media(max-width:767px) { .report-equal-grid { grid-template-columns:1fr; } }

.student-status { display:inline-block; padding:4px 9px; border-radius:20px; background:#eee7fa; color:#704ca6; font-size:1rem; font-weight:600; white-space:nowrap; }
.status-success { background:#e7f5ee; color:#287450; }
.status-warning { background:#fff2d9; color:#8a6016; }
.status-muted { background:#f7e8ee; color:#9c4761; }
.student-actions { min-width:190px; }
.student-actions a { display:inline-flex; gap:5px; align-items:center; padding:8px; margin:2px; border:1px solid var(--line); border-radius:7px; background:#fff; font-size:1rem; }
.directory-panel .table td:first-child { min-width:180px; font-weight:600; }
.filter-summary { color:var(--sapphire); font-size:1rem; cursor:pointer; }
.profile-summary { display:flex; align-items:center; gap:20px; }
.profile-summary h2 { font-size:1.188rem; margin-bottom:5px; }
.profile-avatar { flex-shrink:0; height:72px; width:72px; display:grid; place-items:center; font-size:1.5rem; font-weight:600; color:#fff; background:linear-gradient(135deg,#5551ad,#a16bce); border-radius:20px; }
.profile-contact { margin-left:auto; font-size:1rem; overflow-wrap:anywhere; }
.profile-contact>div { margin:8px 0; }
.profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.profile-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0; }
.profile-fields dt { font-size:1rem; color:var(--muted); font-weight:500; margin-bottom:5px; }
.profile-fields dd { font-size:1rem; overflow-wrap:anywhere; white-space:pre-line; margin:0; }
@media(max-width:767px) { .profile-grid { grid-template-columns:1fr; } .profile-summary { flex-wrap:wrap; } .profile-contact { margin-left:0; width:100%; } .directory-panel { padding:14px; } .student-actions a { padding:10px; } .student-directory .pagination { flex-wrap:wrap; } }
.directory-table .student-actions { min-width:330px; }
.directory-table td { padding-top:14px; padding-bottom:14px; }
@media(max-width:767px) {
    .directory-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
    .directory-table,.directory-table tbody,.directory-table tr { display:block; width:100%; }
    .directory-table tr { border:1px solid var(--line); border-radius:12px; margin-bottom:16px; padding:12px; }
    .directory-table td { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border:0; min-width:0!important; font-size:1rem; }
    .directory-table td:before { content:attr(data-label); color:var(--muted); font-size:1rem; flex-shrink:0; }
    .directory-table td.student-actions { display:block; }
    .directory-table td.student-actions:before { display:block; margin-bottom:6px; }
}

.registration-progress { padding:18px 24px; font-size:1rem; }
.registration-progress progress { width:100%; height:7px; display:block; margin-top:14px; border:0; border-radius:8px; overflow:hidden; accent-color:var(--purple); }
.registration-progress progress::-webkit-progress-bar { background:#eee8f7; }
.registration-progress progress::-webkit-progress-value { background:linear-gradient(90deg,var(--sapphire),var(--purple)); }
.registration-page .nav-tabs { border:0; margin-bottom:16px; gap:8px; }
.registration-page .nav-tabs .nav-link { border:1px solid var(--line); border-radius:10px; background:#fff; display:flex; align-items:center; gap:8px; }
.registration-page .nav-tabs .nav-link.active { background:#eee7fa; border-color:#c5b1e5; }
.step-number { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:#f4effa; font-size:1rem; }
.active .step-number { background:var(--purple); color:white; }
.registration-page .tab-content { border:1px solid var(--line); border-radius:14px; }
.registration-actions { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:24px; }
.registration-page .tab-pane>br { display:none; }
.registration-page .invalid-feedback { font-size:1rem; }
@media(max-width:767px) { .registration-page .nav-tabs { display:grid; grid-template-columns:1fr 1fr; } .registration-page .nav-tabs .nav-link { text-align:left; font-size:1rem; padding:9px; } }

.attention-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.attention-card { display:flex; align-items:center; gap:12px; padding:18px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fcfaff; }
.attention-card:hover { background:#f1eafa; border-color:#d5c2ed; }
.attention-card>span:nth-child(2) { flex:1; min-width:0; }
.attention-card strong { display:block; font-size:1.5rem; line-height:1.2; }
.attention-card span span { display:block; font-size:1rem; margin-top:4px; }
.attention-card small { font-size:1rem; }
.attention-notice { background:#eee8fa; color:#62488c; font-size:1rem; }
@media(max-width:767px) { .attention-grid { grid-template-columns:1fr; } }

/* Keep all student actions visible while wide record columns scroll underneath. */
@media (min-width: 768px) {
    .directory-table th:last-child,
    .directory-table td.student-actions {
        position: sticky;
        right: 0;
        z-index: 2;
        width: 260px;
        min-width: 260px;
        max-width: 260px;
        background: #fff;
        box-shadow: -6px 0 10px -7px #5b477b66;
        border-left: 1px solid var(--line);
        white-space: normal;
    }
    .directory-table th:last-child {
        z-index: 3;
        background: #f7f4fb;
    }
    .directory-table .student-actions a {
        white-space: nowrap;
        padding: 8px;
    }
}

/* Readable secondary text and consistent keyboard navigation. */
:root { --muted:#686276; }
.required-marker { color:#76518e; font-size:1rem; font-weight:400; }
.app-content .panel-note,.app-content .stat-caption,.app-content .panel-heading p { color:#71677f; }
.app-content .metric-label,.app-content .chart-summary,.app-content .chart-axis { color:#71677f; }
.app-content .soft-badge { color:#70548a; }
summary:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible { outline:3px solid #9973d1; outline-offset:3px; }
summary { cursor:pointer; }
@media(forced-colors:active) { .student-status,.btn,.attention-card { border:1px solid ButtonText; } }
