:root {
    --student-primary: #138a46;
    --student-primary-dark: #0f6f39;
    --student-accent: #0ea5a3;
    --student-bg: #f6f8fb;
    --student-surface: #ffffff;
    --student-surface-soft: #f0fdf4;
    --student-text: #132033;
    --student-muted: #64748b;
    --student-border: #dbe4ee;
    --student-danger: #dc2626;
    --student-warning: #ca8a04;
    --student-shadow: 0 16px 42px rgba(15, 23, 42, .08);
    --student-radius: 8px;
}

html {
    min-width: 0;
    scroll-behavior: smooth;
}

body {
    min-width: 0;
    overflow-x: hidden;
    color: var(--student-text);
    background:
        radial-gradient(circle at top left, rgba(19, 138, 70, .09), transparent 34rem),
        linear-gradient(180deg, #f9fbfd 0%, var(--student-bg) 100%) !important;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

a {
    color: inherit;
}

header {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px;
    width: 100%;
    padding: 10px 14px !important;
    background: rgba(255, 255, 255, .94) !important;
    border-bottom: 1px solid rgba(19, 138, 70, .22) !important;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .06) !important;
    backdrop-filter: blur(12px);
}

.logo {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-width: 0;
    flex: 1 1 190px;
}

.logo img,
header > img {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px;
    object-fit: cover;
    border-radius: 8px;
    margin: 0 !important;
}

.logo h2,
header h2 {
    margin: 0;
    color: var(--student-primary) !important;
    font-size: clamp(13px, 4vw, 17px) !important;
    line-height: 1.22;
    letter-spacing: 0;
}

.logo span,
header span {
    color: var(--student-muted) !important;
    font-size: 11px !important;
}

.user-area {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end;
    gap: 8px !important;
    min-width: 0;
    flex: 0 1 auto;
}

.user-area img {
    width: 36px !important;
    height: 36px !important;
    border: 2px solid rgba(19, 138, 70, .25) !important;
    border-radius: 50%;
    object-fit: cover;
}

.user-area > span {
    max-width: 9rem;
    overflow: hidden;
    color: var(--student-text) !important;
    font-size: 12px !important;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.logout-btn,
.green-btn,
button[type="submit"],
input[type="submit"],
.btn {
    min-height: 42px;
    border: 0;
    border-radius: var(--student-radius) !important;
    background: linear-gradient(135deg, var(--student-primary), var(--student-accent)) !important;
    color: #fff !important;
    font-weight: 700 !important;
    letter-spacing: 0;
    box-shadow: 0 10px 20px rgba(19, 138, 70, .18) !important;
}

.logout-btn {
    min-height: 36px;
    padding: 8px 11px !important;
    font-size: 12px !important;
}

.logout-icon {
    font-family: Arial, sans-serif;
}

.main-nav {
    position: sticky;
    top: 59px;
    z-index: 999;
    width: 100%;
    padding: 8px 10px !important;
    overflow-x: auto;
    background: var(--student-primary) !important;
    box-shadow: 0 12px 24px rgba(19, 138, 70, .14) !important;
    scrollbar-width: thin;
}

.student-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(19, 138, 70, .18);
    border-radius: var(--student-radius);
    background: #ffffff;
    color: var(--student-primary);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
    cursor: pointer;
}

.student-menu-toggle i {
    font-size: 18px;
}

.nav-menu {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 6px !important;
    width: max-content;
    min-width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-menu > li {
    position: relative;
    flex: 0 0 auto;
}

.nav-menu a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center;
    gap: 7px !important;
    min-height: 40px;
    padding: 9px 12px !important;
    border-radius: var(--student-radius) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
}

.nav-menu a:hover,
.nav-menu a:focus-visible,
.nav-menu a.active {
    background: rgba(255, 255, 255, .17) !important;
}

.dropdown-menu {
    position: fixed !important;
    top: auto !important;
    left: 10px !important;
    right: 10px !important;
    z-index: 2000 !important;
    width: auto !important;
    max-height: min(72vh, 520px);
    overflow-y: auto !important;
    padding: 8px !important;
    border: 1px solid var(--student-border);
    border-radius: var(--student-radius) !important;
    background: var(--student-surface) !important;
    box-shadow: var(--student-shadow) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(8px) scale(.98) !important;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.dropdown.active > .dropdown-menu,
.dropdown:focus-within > .dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
    pointer-events: auto;
}

.dropdown-menu a {
    justify-content: flex-start;
    width: 100%;
    color: var(--student-primary-dark) !important;
}

.dropdown-menu a:hover {
    background: var(--student-surface-soft) !important;
}

.student-managed-dropdown:not(.active):not(:hover):not(:focus-within) > .dropdown-menu {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.container,
main,
.content,
.wrapper {
    width: min(100%, 1040px) !important;
    margin-inline: auto !important;
    padding: 12px 10px !important;
}

.card,
.form-card,
.summary-card,
.section,
.panel {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid rgba(219, 228, 238, .82) !important;
    border-radius: var(--student-radius) !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: var(--student-shadow) !important;
}

.card,
.form-card,
.summary-card,
.panel {
    padding: 13px !important;
}

h1,
h2,
h3 {
    color: var(--student-text);
    letter-spacing: 0;
}

h1 {
    font-size: clamp(20px, 6vw, 30px) !important;
    line-height: 1.12;
}

h2,
h3 {
    font-size: clamp(16px, 4.5vw, 21px) !important;
    line-height: 1.2;
}

form {
    min-width: 0;
}

.form-grid,
.grid,
.summary-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
}

label {
    display: inline-block;
    margin-bottom: 6px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 40px;
    padding: 8px 10px !important;
    border: 1px solid var(--student-border) !important;
    border-radius: var(--student-radius) !important;
    background: #fff !important;
    color: var(--student-text);
    font-size: 14px !important;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea {
    min-height: 110px;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--student-primary) !important;
    box-shadow: 0 0 0 4px rgba(19, 138, 70, .12) !important;
}

input[readonly],
select:disabled,
textarea[readonly] {
    background: #f8fafc !important;
    color: #64748b !important;
    cursor: not-allowed;
}

table {
    width: 100% !important;
    border-collapse: collapse;
}

th,
td {
    padding: 8px !important;
    font-size: 12px;
    vertical-align: top;
}

.table-responsive,
.result-table,
.summary-table,
table {
    overflow-x: auto;
}

footer {
    display: flex !important;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
    padding: 16px 12px !important;
    background: #0f6f39 !important;
    color: #fff !important;
    font-size: 12px !important;
    line-height: 1.45;
    text-align: center;
}

.portal-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: min(100% - 24px, 1120px);
    margin: 14px auto 0;
    padding: 13px 14px;
    border: 1px solid var(--student-border);
    border-radius: var(--student-radius);
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
}

.portal-banner strong,
.portal-banner span {
    display: block;
}

.portal-banner strong {
    color: var(--student-text);
    font-size: 14px;
}

.portal-banner span {
    margin-top: 3px;
    color: var(--student-muted);
    font-size: 12px;
    line-height: 1.4;
}

.portal-banner i {
    flex: 0 0 auto;
    font-size: 24px;
}

.portal-banner.is-open {
    border-color: rgba(19, 138, 70, .24);
    background: #f0fdf4;
}

.portal-banner.is-open i {
    color: var(--student-primary);
}

.portal-banner.is-closed {
    border-color: rgba(220, 38, 38, .24);
    background: #fef2f2;
}

.portal-banner.is-closed i {
    color: var(--student-danger);
}

.student-inline-alert,
.error,
.success,
.message,
.alert {
    margin: 0 0 14px;
    padding: 12px 14px !important;
    border-radius: var(--student-radius) !important;
    font-weight: 650;
}

.student-inline-alert.is-error,
.error {
    border: 1px solid rgba(220, 38, 38, .2);
    background: #fef2f2 !important;
    color: #991b1b !important;
}

.student-inline-alert.is-success,
.success {
    border: 1px solid rgba(19, 138, 70, .22);
    background: #f0fdf4 !important;
    color: #166534 !important;
}

.swal2-popup.student-swal {
    border-radius: 14px;
    font-family: "Segoe UI", Tahoma, sans-serif;
}

.swal2-popup.student-swal .swal2-confirm {
    border-radius: 8px !important;
    background: var(--student-primary) !important;
}

.swal2-popup.student-swal .swal2-cancel {
    border-radius: 8px !important;
}

@media (max-width: 420px) {
    .user-area {
        width: 100%;
        justify-content: space-between;
    }

    .user-area > span {
        max-width: calc(100vw - 142px);
    }

    .green-btn,
    button[type="submit"],
    input[type="submit"] {
        width: 100%;
    }

    .main-nav {
        display: none;
        position: sticky;
        top: 111px;
        max-height: calc(100vh - 112px);
        overflow-y: auto;
        overflow-x: hidden;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    body.student-menu-open .main-nav,
    .main-nav.is-open {
        display: block;
    }

    .nav-menu {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
        min-width: 0;
    }

    .nav-menu > li,
    .nav-menu a {
        width: 100%;
    }

    .nav-menu a {
        justify-content: flex-start;
    }

    .dropdown-menu {
        position: static !important;
        display: none !important;
        width: 100% !important;
        max-height: none;
        margin-top: 6px;
        box-shadow: inset 0 0 0 1px rgba(19, 138, 70, .08) !important;
    }

    .dropdown.active > .dropdown-menu {
        display: block !important;
    }
}

@media (max-width: 699px) {
    .main-nav {
        display: none;
        position: sticky;
        top: 111px;
        max-height: calc(100vh - 112px);
        overflow-y: auto;
        overflow-x: hidden;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }

    body.student-menu-open .main-nav,
    .main-nav.is-open {
        display: block;
    }

    .nav-menu {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100%;
        min-width: 0;
    }

    .nav-menu > li,
    .nav-menu a {
        width: 100%;
    }

    .nav-menu a {
        justify-content: flex-start;
    }

    .dropdown-menu {
        position: static !important;
        display: none !important;
        width: 100% !important;
        max-height: none;
        margin-top: 6px;
        box-shadow: inset 0 0 0 1px rgba(19, 138, 70, .08) !important;
    }

    .dropdown.active > .dropdown-menu {
        display: block !important;
    }

    .student-managed-dropdown:hover > .dropdown-menu {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .student-managed-dropdown.active > .dropdown-menu {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

@media (min-width: 700px) {
    .student-menu-toggle {
        display: none;
    }

    header {
        padding: 12px 26px !important;
    }

    .main-nav {
        top: 63px;
        padding-inline: 24px !important;
    }

    .dropdown-menu {
        position: absolute !important;
        top: calc(100% + 8px) !important;
        left: 0 !important;
        right: auto !important;
        width: 260px !important;
    }

    .dropdown:hover > .dropdown-menu,
    .dropdown.active > .dropdown-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) scale(1) !important;
        pointer-events: auto;
    }

    .container,
    main,
    .content,
    .wrapper {
        padding: 18px !important;
    }

    .form-grid,
    .grid,
    .summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    footer {
        flex-direction: row;
        justify-content: space-between;
        padding-inline: 30px !important;
        text-align: left;
    }
}

@media (min-width: 1024px) {
    .form-grid,
    .grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .card,
    .form-card,
    .summary-card,
    .panel {
        padding: 16px !important;
    }
}

@media print {
    header,
    .main-nav,
    footer,
    .logout-btn {
        display: none !important;
    }

    body {
        background: #fff !important;
    }

    .container,
    main,
    .content,
    .wrapper {
        width: 100% !important;
        padding: 0 !important;
    }

    .card,
    .form-card,
    .summary-card,
    .panel {
        border: 0 !important;
        box-shadow: none !important;
    }
}

.student-managed-dropdown:not(.active):hover > .dropdown-menu,
.student-managed-dropdown:not(.active):focus-within > .dropdown-menu {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(8px) scale(.98) !important;
    pointer-events: none !important;
}

.student-managed-dropdown.active > .dropdown-menu {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
    pointer-events: auto !important;
}

@media (max-width: 699px) {
    .student-managed-dropdown.active > .dropdown-menu {
        display: block !important;
    }
}

/* Production menu overrides: no internal menu scrollers, click-controlled dropdowns. */
.student-managed-nav {
    overflow: visible !important;
    scrollbar-width: none !important;
}

.student-managed-nav::-webkit-scrollbar {
    display: none;
}

.student-managed-nav .nav-menu {
    width: 100% !important;
    min-width: 0 !important;
    flex-wrap: wrap !important;
}

.student-managed-nav .nav-menu > li {
    min-width: max-content;
}

.student-managed-dropdown > .dropdown-menu {
    max-height: none !important;
    overflow: visible !important;
}

.student-managed-dropdown:not(.active) > .dropdown-menu,
.student-managed-dropdown:not(.active):hover > .dropdown-menu,
.student-managed-dropdown:not(.active):focus-within > .dropdown-menu {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.student-managed-dropdown.active > .dropdown-menu {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

@media (min-width: 700px) {
    .student-managed-nav {
        position: sticky !important;
        overflow: visible !important;
    }

    .student-managed-dropdown {
        position: relative !important;
    }

    .student-managed-dropdown.active > .dropdown-menu {
        position: absolute !important;
        top: calc(100% + 8px) !important;
        left: 0 !important;
        right: auto !important;
        width: max-content !important;
        min-width: 260px !important;
        max-width: min(420px, calc(100vw - 32px)) !important;
    }
}

@media (max-width: 699px) {
    .student-managed-nav {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
    }

    body.student-menu-open .student-managed-nav,
    .student-managed-nav.is-open {
        display: block !important;
    }

    .student-managed-nav .nav-menu {
        flex-wrap: nowrap !important;
    }

    .student-managed-nav .nav-menu > li {
        min-width: 0;
    }

    .student-managed-dropdown.active > .dropdown-menu {
        position: static !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }
}

/* Student portal sidebar layout */
body.student-sidebar-layout {
    background:
        radial-gradient(circle at top left, rgba(19, 138, 70, .08), transparent 34rem),
        linear-gradient(180deg, #f8fafc 0%, #eef6f2 100%) !important;
}

.student-sidebar-layout .student-managed-nav {
    display: block !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: var(--student-text);
    border-right: 1px solid rgba(19, 138, 70, .14);
    box-shadow: 16px 0 38px rgba(15, 23, 42, .12) !important;
}

.student-sidebar-profile {
    padding: 18px 12px 14px;
    text-align: center;
    border-bottom: 1px solid rgba(19, 138, 70, .14);
    background: linear-gradient(180deg, #f0fdf4, #ffffff);
}

.student-sidebar-profile img {
    width: 74px !important;
    height: 82px !important;
    object-fit: cover;
    border-radius: 8px;
    border: 3px solid #ffffff;
    box-shadow: 0 10px 22px rgba(19, 138, 70, .16);
}

.student-sidebar-name {
    margin-top: 10px;
    color: var(--student-text);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
}

.student-sidebar-app {
    margin-top: 5px;
    color: var(--student-primary-dark);
    font-size: 12px;
    line-height: 1.35;
}

.student-sidebar-layout .student-standard-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 12px 10px 18px !important;
}

.student-menu-section {
    display: grid;
    gap: 6px;
}

.student-menu-label {
    padding: 0 8px;
    color: var(--student-primary-dark);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.student-menu-list {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.student-menu-list > li {
    width: 100%;
    min-width: 0;
}

.student-sidebar-layout .student-standard-menu a {
    position: relative;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100%;
    min-height: 44px;
    padding: 8px 10px !important;
    border-radius: 8px !important;
    color: #334155 !important;
    font-size: 13px !important;
    font-weight: 750 !important;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}

.student-sidebar-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 42px;
    padding: 8px 10px !important;
    border: 0;
    border-radius: 8px !important;
    background: #f0fdf4 !important;
    color: var(--student-primary-dark) !important;
    font-size: 13px;
    font-weight: 800;
    box-shadow: none !important;
    cursor: pointer;
}

.student-sidebar-toggle > span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.student-toggle-caret {
    font-size: 11px;
    transition: transform .18s ease;
}

.student-menu-section.has-dropdown:not(.open) .student-toggle-caret {
    transform: rotate(-90deg);
}

.student-menu-section.has-dropdown .student-menu-list {
    overflow: hidden;
    max-height: 420px;
    transition: max-height .22s ease, opacity .18s ease;
}

.student-menu-section.has-dropdown:not(.open) .student-menu-list {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
}

.student-sidebar-layout .student-standard-menu a:hover,
.student-sidebar-layout .student-standard-menu a.active {
    background: var(--student-primary) !important;
    color: #fff !important;
}

.student-sidebar-layout .student-standard-menu a:hover {
    transform: translateX(2px);
}

.student-sidebar-layout .student-standard-menu a.active::before {
    content: "";
    position: absolute;
    left: -12px;
    top: 8px;
    bottom: 8px;
    width: 4px;
    border-radius: 999px;
    background: #a7f3d0;
}

.student-menu-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 8px;
    background: #f0fdf4;
    color: var(--student-primary-dark);
}

.student-sidebar-layout .student-standard-menu a.active .student-menu-icon,
.student-sidebar-layout .student-standard-menu a:hover .student-menu-icon {
    background: #fff;
    color: var(--student-primary);
}

.student-menu-icon i {
    font-size: 14px;
}

.student-menu-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.student-process-cards {
    margin-bottom: 14px;
    padding: 12px;
    border: 1px solid rgba(219, 228, 238, .9);
    border-radius: 8px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .07);
}

.student-process-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.student-process-heading h3 {
    margin: 0;
    font-size: 16px !important;
}

.student-process-heading span {
    color: var(--student-muted);
    font-size: 12px;
    font-weight: 700;
}

.student-process-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 8px;
}

.student-process-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    gap: 12px;
    align-items: start;
}

.student-process-card {
    display: grid;
    gap: 4px;
    min-height: 82px;
    padding: 9px;
    border: 1px solid var(--student-border);
    border-radius: 8px;
    background: #fff;
    color: var(--student-text);
    text-decoration: none;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.student-process-card:hover,
.student-process-card.active {
    transform: translateY(-2px);
    border-color: rgba(19, 138, 70, .34);
    box-shadow: 0 12px 24px rgba(19, 138, 70, .12);
}

.student-process-card i {
    color: var(--student-primary);
    font-size: 17px;
}

.student-process-card strong {
    font-size: 13px;
}

.student-process-card span {
    color: var(--student-muted);
    font-size: 11px;
    line-height: 1.35;
}

.student-progress-panel {
    padding: 12px;
    border: 1px solid rgba(19, 138, 70, .18);
    border-radius: 8px;
    background: linear-gradient(180deg, #f0fdf4, #ffffff);
}

.student-progress-top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: start;
}

.student-progress-top strong {
    display: block;
    color: var(--student-primary-dark);
    font-size: 22px;
    line-height: 1;
}

.student-progress-top span,
.student-progress-top small {
    color: var(--student-muted);
    font-size: 11px;
    font-weight: 700;
}

.student-progress-track {
    height: 8px;
    margin: 12px 0;
    overflow: hidden;
    border-radius: 999px;
    background: #dbeafe;
}

.student-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--student-primary), #22c55e);
    transition: width .35s ease;
}

.student-progress-steps {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.student-progress-steps li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #64748b;
    font-size: 12px;
}

.student-progress-steps li span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #cbd5e1;
}

.student-progress-steps li.complete {
    color: var(--student-primary-dark);
}

.student-progress-steps li.complete span {
    background: var(--student-primary);
    box-shadow: 0 0 0 4px rgba(19, 138, 70, .12);
}

@media (min-width: 900px) {
    body.student-sidebar-layout {
        padding-left: 240px;
    }

    .student-sidebar-layout .student-menu-toggle {
        display: none !important;
    }

    .student-sidebar-layout .student-managed-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 240px !important;
        height: 100vh;
        overflow: visible !important;
        z-index: 1500;
    }

    .student-sidebar-layout header {
        position: sticky !important;
        top: 0;
        z-index: 1000;
    }

    .student-sidebar-layout .user-area img,
    .student-sidebar-layout .user-area > span {
        display: none !important;
    }
}

@media (max-width: 899px) {
    .student-sidebar-layout .student-managed-nav {
        display: none !important;
        position: static !important;
        width: 100% !important;
        height: auto;
        overflow: visible !important;
    }

    body.student-menu-open .student-managed-nav,
    .student-sidebar-layout .student-managed-nav.is-open {
        display: block !important;
    }

    .student-sidebar-profile {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: center;
        column-gap: 12px;
        text-align: left;
    }

    .student-sidebar-profile img {
        grid-row: span 2;
        width: 58px !important;
        height: 64px !important;
    }

    .student-sidebar-name {
        margin-top: 0;
    }

    .student-sidebar-layout .student-standard-menu {
        gap: 10px !important;
        padding: 12px !important;
    }

    .student-menu-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .student-sidebar-layout .student-standard-menu a {
        min-height: 42px;
    }

    .student-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .student-process-body {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .student-menu-list {
        grid-template-columns: 1fr;
    }

    .student-process-grid {
        grid-template-columns: 1fr;
    }
}

/* Compact content scale overrides for legacy student pages. */
.student-sidebar-layout .card,
.student-sidebar-layout .form-card,
.student-sidebar-layout .summary-card,
.student-sidebar-layout .panel,
.student-sidebar-layout .password-card {
    padding: 12px !important;
    border-radius: 8px !important;
}

.student-sidebar-layout .container {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
}

.student-sidebar-layout .dashboard-grid,
.student-sidebar-layout .form-grid,
.student-sidebar-layout .grid {
    gap: 10px !important;
}

.student-sidebar-layout .dash-card,
.student-sidebar-layout .dashboard-card {
    min-height: auto !important;
    padding: 11px !important;
    border-radius: 8px !important;
}

.student-sidebar-layout .dash-card i,
.student-sidebar-layout .dashboard-card i {
    font-size: 20px !important;
}

.student-sidebar-layout .dash-card h3,
.student-sidebar-layout .dashboard-card h3 {
    font-size: 13px !important;
}

.student-sidebar-layout .dash-card p,
.student-sidebar-layout .dashboard-card p {
    font-size: 18px !important;
}

.student-sidebar-layout label {
    font-size: 12px !important;
}

.student-sidebar-layout .green-btn,
.student-sidebar-layout button[type="submit"],
.student-sidebar-layout input[type="submit"] {
    min-height: 38px;
    padding: 8px 12px !important;
    font-size: 12px !important;
}

/* Harmonized document/status/payment pages. */
.student-sidebar-layout .a4,
.student-sidebar-layout .print-container {
    max-width: min(100%, 920px) !important;
    width: min(100%, 920px) !important;
    min-height: auto !important;
    height: auto !important;
    margin: 14px auto !important;
    padding: 18px !important;
    border: 1px solid rgba(19, 138, 70, .16);
    border-radius: 8px;
    background: #fff !important;
    box-shadow: 0 16px 42px rgba(15, 23, 42, .08);
}

.student-sidebar-layout .a4 .card {
    height: auto !important;
    min-height: 0 !important;
    border: 1px solid rgba(19, 138, 70, .24) !important;
    border-radius: 8px;
}

.student-sidebar-layout .header {
    border-bottom-color: var(--student-primary) !important;
}

.student-sidebar-layout .header h2,
.student-sidebar-layout .header h3 {
    color: var(--student-primary-dark) !important;
}

.student-sidebar-layout .back-button,
.student-sidebar-layout .back-btn {
    position: static !important;
    width: min(100%, 920px);
    margin: 12px auto 0;
}

.student-sidebar-layout .back-button a,
.student-sidebar-layout .back-btn a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px !important;
    border-radius: 8px !important;
    background: var(--student-primary) !important;
}

.student-sidebar-layout .details-passport,
.student-sidebar-layout .content {
    gap: 14px;
}

.student-sidebar-layout .passport {
    width: 112px !important;
    height: 130px !important;
    border-radius: 8px;
    border-color: var(--student-primary) !important;
}

.student-sidebar-layout .fee-box,
.student-sidebar-layout #paymentSummary,
.student-sidebar-layout .modal-content {
    border-radius: 8px !important;
}

@media (max-width: 760px) {
    .student-sidebar-layout .details-passport,
    .student-sidebar-layout .content {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .student-sidebar-layout .passport-box {
        width: 100% !important;
        text-align: left !important;
    }
}

/* Responsive form harmonization for biodata/contact/O-Level/A-Level/passport pages. */
.student-sidebar-layout form {
    width: 100%;
}

.student-sidebar-layout .form-grid {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
    align-items: start;
}

.student-sidebar-layout .form-row {
    display: grid;
    gap: 8px;
}

.student-sidebar-layout .sitting-card,
.student-sidebar-layout .upload-card {
    width: min(100%, 900px) !important;
    margin: 12px auto !important;
}

.student-sidebar-layout .upload-container {
    display: grid !important;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: center;
}

.student-sidebar-layout .preview-box,
.student-sidebar-layout .preview-box img,
.student-sidebar-layout #previewImage {
    width: 150px !important;
    height: 170px !important;
    object-fit: cover;
    border-radius: 8px;
}

/* Modern summary page. */
.student-sidebar-layout #printArea {
    width: min(100%, 920px) !important;
    margin: 12px auto 24px !important;
    padding: 16px !important;
    border: 1px solid rgba(19, 138, 70, .16) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 16px 42px rgba(15, 23, 42, .08) !important;
}

.student-sidebar-layout .school-header {
    padding: 14px !important;
    border-radius: 8px !important;
    background: linear-gradient(135deg, var(--student-primary), #22c55e) !important;
}

.student-sidebar-layout .user-avatar {
    width: 94px !important;
    height: 112px !important;
    object-fit: cover;
    border-radius: 8px !important;
    border: 3px solid #f0fdf4 !important;
}

.student-sidebar-layout .summary-table,
.student-sidebar-layout .result-table {
    overflow: hidden;
    border: 1px solid var(--student-border);
    border-radius: 8px;
    background: #fff;
}

.student-sidebar-layout .summary-table td:first-child {
    background: #f0fdf4 !important;
    color: var(--student-primary-dark);
}

.student-sidebar-layout h4 {
    color: var(--student-primary-dark) !important;
    font-size: 15px !important;
}

@media (max-width: 720px) {
    .student-sidebar-layout .form-grid {
        grid-template-columns: 1fr !important;
    }

    .student-sidebar-layout .upload-container {
        grid-template-columns: 1fr !important;
        justify-items: center;
    }

    .student-sidebar-layout .preview-box,
    .student-sidebar-layout .preview-box img,
    .student-sidebar-layout #previewImage {
        width: 132px !important;
        height: 150px !important;
    }
}

/* Fixed student footer harmonization. */
body {
    padding-bottom: 58px;
}

footer {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1400;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 44px;
    margin: 0 !important;
    padding: 8px 16px !important;
    background: #ffffff !important;
    color: var(--student-primary-dark, #0f6f39) !important;
    border-top: 1px solid rgba(19, 138, 70, .18) !important;
    box-shadow: 0 -10px 28px rgba(15, 23, 42, .08) !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
}

footer * {
    color: inherit !important;
}

footer div:first-child {
    font-weight: 800;
}

footer div:last-child {
    color: #64748b !important;
    font-weight: 700;
}

body.student-sidebar-layout footer {
    left: 240px;
}

@media (max-width: 900px) {
    body.student-sidebar-layout footer {
        left: 0;
    }
}

@media (max-width: 640px) {
    body {
        padding-bottom: 72px;
    }

    footer {
        min-height: 58px;
        flex-direction: column !important;
        justify-content: center;
        gap: 3px;
        padding: 7px 10px !important;
        text-align: center;
    }
}

@media print {
    body {
        padding-bottom: 0;
    }

    footer {
        display: none !important;
    }
}

/* Compact buy form and payment trust panel. */
.student-sidebar-layout .buy-form-page {
    max-width: 980px !important;
}

.student-sidebar-layout .buy-form-page .forms-wrapper {
    display: grid !important;
    grid-template-columns: minmax(200px, 260px) minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: start !important;
}

.student-sidebar-layout .buy-form-page .forms-left {
    width: auto !important;
}

.student-sidebar-layout .buy-form-page .forms-card {
    max-width: 620px !important;
    padding: 16px !important;
    border: 1px solid rgba(19, 138, 70, .16) !important;
    border-radius: 8px !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .07) !important;
}

.student-sidebar-layout .buy-form-page .card-title {
    margin-bottom: 12px !important;
    color: var(--student-primary-dark) !important;
    font-size: 16px !important;
}

.student-sidebar-layout .buy-form-page .form-row {
    gap: 12px !important;
}

.student-sidebar-layout .buy-form-page .form-group {
    gap: 5px !important;
    margin-bottom: 10px !important;
}

.student-sidebar-layout .buy-form-page .form-group input,
.student-sidebar-layout .buy-form-page .form-group select {
    min-height: 38px !important;
    padding: 8px 10px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
}

.student-sidebar-layout .buy-form-page .green-btn {
    width: auto !important;
    min-height: 38px !important;
    padding: 9px 18px !important;
    border-radius: 8px !important;
}

.paystack-secure-card {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 10px;
    padding: 15px;
    border: 1px solid rgba(19, 138, 70, .16);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff, #f0fdf4);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .07);
}

.paystack-secure-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 0%, rgba(20, 184, 166, .14) 45%, transparent 70%);
    transform: translateX(-110%);
    animation: paystackShine 3.6s ease-in-out infinite;
}

.paystack-secure-card > * {
    position: relative;
    z-index: 1;
}

.secure-lock {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: #dcfce7;
    color: var(--student-primary-dark);
    box-shadow: 0 0 0 6px rgba(19, 138, 70, .08);
    animation: securePulse 2.8s ease-in-out infinite;
}

.paystack-secure-card > span {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.paystack-logo {
    color: #0ba4db;
    font-size: 26px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
}

.payment-logos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}

.card-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 7px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(148, 163, 184, .28);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .05);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    animation: logoFloat 4s ease-in-out infinite;
}

.card-brand:nth-child(2) {
    animation-delay: .3s;
}

.card-brand:nth-child(3) {
    animation-delay: .6s;
}

.card-brand:nth-child(4) {
    animation-delay: .9s;
}

.mastercard {
    color: #eb001b;
}

.visa {
    color: #1a1f71;
    letter-spacing: .04em;
}

.verve {
    color: #008751;
}

.transfer {
    gap: 5px;
    color: var(--student-primary-dark);
}

.student-process-card {
    position: relative;
}

.student-card-status {
    position: absolute;
    top: 7px;
    right: 7px;
    display: none;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--student-primary);
    color: #fff !important;
    box-shadow: 0 0 0 4px rgba(19, 138, 70, .13);
}

.student-card-status i {
    color: inherit !important;
    font-size: 10px !important;
}

.student-process-card.complete {
    border-color: rgba(19, 138, 70, .34);
    background: linear-gradient(180deg, #ffffff, #f0fdf4);
}

.student-process-card.complete .student-card-status {
    display: grid;
}

.already-applied-card {
    align-items: flex-start !important;
}

.already-applied-card div {
    display: grid;
    gap: 3px;
}

.already-applied-card span {
    color: #475569;
    font-size: 12px;
}

@keyframes paystackShine {
    0%, 55% {
        transform: translateX(-110%);
    }
    100% {
        transform: translateX(110%);
    }
}

@keyframes securePulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.04);
    }
}

@keyframes logoFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-2px);
    }
}

@media (max-width: 820px) {
    .student-sidebar-layout .buy-form-page .forms-wrapper {
        grid-template-columns: 1fr !important;
    }

    .student-sidebar-layout .buy-form-page .forms-card {
        max-width: 100% !important;
    }

    .payment-logos {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .payment-logos {
        grid-template-columns: 1fr 1fr;
    }
}

/* JAMB result page. */
.student-sidebar-layout .jamb-page {
    max-width: 920px !important;
}

.student-sidebar-layout .jamb-card {
    max-width: 760px !important;
    margin: 0 auto !important;
}

.student-sidebar-layout .jamb-form {
    margin-top: 14px;
}

.student-sidebar-layout .jamb-form .form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.student-sidebar-layout .jamb-form .green-btn {
    width: auto !important;
    min-height: 38px;
    padding: 9px 18px !important;
    border-radius: 8px !important;
}

@media (max-width: 760px) {
    .student-sidebar-layout .jamb-form .form-grid {
        grid-template-columns: 1fr !important;
    }
}
