@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root {
    --navy: #0a1a32;
    --navy-soft: #17304f;
    --blue: #286697;
    --blue-pale: #e9f2f8;
    --gold: #d5ad40;
    --ink: #1c2c3e;
    --muted: #647386;
    --line: #dce5ec;
    --paper: #fff;
    --canvas: #f5f8fa;
    --portal-section-gap: 16px;
    --portal-panel-gutter: 20px;
    --portal-field-gap: 16px;
    --portal-control-height: 44px;
    font-family: 'Poppins', Arial, sans-serif;
    color: var(--ink);
    background: var(--canvas);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
}

@media (max-width: 680px) {
    :root {
        --portal-panel-gutter: 16px;
    }
}

button,
input,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

a {
    color: var(--blue);
    text-decoration: none;
}

img {
    max-width: 100%;
}

.site-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-width {
    width: min(100% - 48px, 1180px);
    margin-inline: auto;
}

.utility-bar {
    background: var(--navy);
    color: #d8e6ef;
    font-size: 12px;
}

.utility-inner {
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.utility-bar a {
    color: #f4f7fa;
}

.brand-header {
    background-color: #dfedf6;
    background-image: radial-gradient(circle at 15% 20%, #fff9 0 1px, transparent 2px), radial-gradient(circle at 85% 70%, #fff8 0 1px, transparent 2px), linear-gradient(95deg, #d5e9f4, #edf5fa 55%, #dcebf5);
    background-size: 82px 82px, 116px 116px, auto;
    border-bottom: 1px solid #cddde8;
}

.brand-inner {
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.brand-link {
    display: flex;
    align-items: center;
    gap: 17px;
    color: var(--navy);
}

.brand-link:hover {
    text-decoration: none;
}

.brand-logo {
    width: 104px;
    height: auto;
    object-fit: contain;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.brand-copy strong {
    font: 700 clamp(21px, 2.5vw, 29px)/1.14 'Poppins', Arial, sans-serif;
    letter-spacing: -.03em;
}

.brand-copy>span {
    color: var(--blue);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.brand-location {
    color: #426079;
    font-size: 13px;
    white-space: nowrap;
}

.site-nav {
    background: var(--navy);
    color: #fff;
}

.nav-inner,
.nav-links {
    display: flex;
    align-items: stretch;
}

.nav-inner {
    justify-content: space-between;
    gap: 20px;
}

.nav-links {
    flex-wrap: wrap;
}

.nav-links a,
.nav-logout {
    display: inline-flex;
    align-items: center;
    min-height: 47px;
    padding: 0 21px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    border-left: 1px solid #ffffff20;
}

.nav-links a:last-child {
    border-right: 1px solid #ffffff20;
}

.nav-links a:hover,
.nav-links a.is-active,
.nav-logout:hover {
    background: #203b5c;
    text-decoration: none;
}

.nav-links a.is-active {
    box-shadow: inset 0 -3px var(--gold);
}

.nav-inner form {
    margin: 0;
}

.nav-logout {
    gap: 11px;
    border: 0;
    background: none;
}

.site-footer {
    margin-top: auto;
    background: var(--navy);
    color: #c7d4e2;
    font-size: 12px;
}

.footer-inner {
    min-height: 57px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.auth-stage {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 540px);
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    background: var(--paper);
}

.auth-visual {
    position: relative;
    min-height: 620px;
    display: flex;
    align-items: flex-end;
    isolation: isolate;
    overflow: hidden;
    background: var(--navy);
    color: #fff;
}

.auth-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('iicc-centre.jpg') center/cover no-repeat;
}

.auth-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, #08162a05 28%, #071626e8 100%);
}

.auth-visual-content {
    padding: 46px clamp(30px, 5vw, 74px) 52px;
    max-width: 680px;
}

.auth-visual .eyebrow {
    color: #e7c363;
}

.auth-visual h2 {
    font: 600 clamp(30px, 3.7vw, 50px)/1.12 'Poppins', Arial, sans-serif;
    letter-spacing: -.04em;
    margin: 0 0 15px;
}

.auth-visual p:last-child {
    max-width: 440px;
    margin: 0;
    color: #e6ebf1;
    line-height: 1.65;
}

.auth-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px clamp(26px, 4vw, 68px);
}

.auth-form-wrap {
    width: min(100%, 425px);
}

.eyebrow {
    margin: 0 0 13px;
    color: var(--blue);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.heading {
    font: 600 clamp(29px, 3.2vw, 39px)/1.16 'Poppins', Arial, sans-serif;
    letter-spacing: -.04em;
    color: var(--navy);
    margin: 0;
}

.subheading {
    color: var(--muted);
    line-height: 1.65;
    margin: 12px 0 0;
    font-size: 14px;
}

.auth-intro {
    margin-bottom: 30px;
}

.field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 19px;
}

.field label {
    font-size: 12px;
    font-weight: 700;
    color: #23344b;
}

.field input,
.field select {
    width: 100%;
    min-height: var(--portal-control-height);
    border: 1px solid #d8e1e8;
    border-radius: 7px;
    background: #fafbfc;
    color: #182c41;
    padding: 10px 14px;
    outline: none;
}

.field input:not([type="checkbox"]):not([type="radio"]),
.field select:not([multiple]) {
    height: var(--portal-control-height);
}

select:not([multiple]):has(> option:only-child) {
    -webkit-appearance: none;
    appearance: none;
    background-image: none;
}

.field input:focus,
.field select:focus,
.role-form select:focus {
    border-color: #286697;
    background: #fff;
    box-shadow: 0 0 0 3px #28669720;
}

.field input::placeholder,
.field textarea::placeholder {
    color: #9ba7b3;
}

.field-error {
    color: #ab3030;
    font-size: 12px;
}

.check {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: 13px;
    margin: 0 0 24px;
}

.check input {
    width: 16px;
    height: 16px;
    accent-color: var(--blue);
}

.btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    min-height: 47px;
    border: 1px solid var(--navy);
    border-radius: 4px;
    background: var(--navy);
    color: #fff;
    padding: 11px 19px;
    font-weight: 700;
    font-size: 14px;
    transition: background .18s, border-color .18s;
}

.btn:hover {
    color: #fff;
    background: #1d4268;
    border-color: #1d4268;
    text-decoration: none;
}

.btn:focus-visible,
a:focus-visible,
.nav-logout:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

.btn-secondary {
    background: #fff;
    color: var(--navy);
    border-color: #b8c9d7;
}

.btn-secondary:hover {
    color: var(--navy);
    background: #edf4f8;
    border-color: var(--navy);
}

.btn-small {
    min-height: 37px;
    padding: 7px 13px;
    font-size: 12px;
}

.full {
    width: 100%;
}

.auth-footer {
    padding-top: 24px;
    margin: 27px 0 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
    text-align: center;
}

.auth-footer a {
    font-weight: 700;
}

.auth-status,
.portal-login-status {
    padding: 12px 14px;
    border: 1px solid #b8d8e9;
    border-radius: 6px;
    background: #edf7fb;
    color: #174361;
    font-size: 13px;
    line-height: 1.5;
}

.auth-status {
    margin: 0 0 22px;
}

.page-main {
    flex: 1;
    padding: 39px 0 72px;
}

.page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
}

.page-head .subheading {
    max-width: 600px;
}

.dashboard-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--navy);
    color: #fff;
    padding: 38px 43px;
    margin-bottom: 27px;
    min-height: 207px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.dashboard-hero::before {
    content: '';
    position: absolute;
    z-index: -2;
    inset: 0;
    background: url('iicc-centre.jpg') center 55%/cover no-repeat;
    opacity: .4;
}

.dashboard-hero::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, #0a1a32f5, #0a1a32c9 55%, #0a1a3270);
}

.dashboard-hero .eyebrow {
    color: #e7c363;
}

.dashboard-hero .heading {
    color: #fff;
}

.dashboard-hero p:last-child {
    margin: 12px 0 0;
    color: #e0e8ef;
}

.role-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    background: #edf4f9;
    color: #1e5578;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    white-space: nowrap;
}

.role-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.role-badge.admin {
    background: #fff3cf;
    color: #69500c;
}

.dashboard-hero .role-badge {
    background: #fff;
    color: var(--navy);
}

.dashboard-hero .role-badge.admin {
    background: #fff2c9;
    color: #69500c;
}

.section-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 16px;
}

.section-title {
    font: 600 21px/1.25 'Poppins', Arial, sans-serif;
    letter-spacing: -.025em;
    color: var(--navy);
    margin: 0;
}

.section-note {
    color: var(--muted);
    font-size: 13px;
}

.grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
}

.card {
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 4px 16px #0a1a3208;
}

.card-pad {
    padding: 25px 27px;
}

.stat-card {
    border-top: 3px solid var(--blue);
}

.stat-card:nth-child(2) {
    border-top-color: var(--gold);
}

.stat-label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.stat-value {
    color: var(--navy);
    font: 600 38px/1.1 'Poppins', Arial, sans-serif;
    margin: 13px 0 6px;
}

.muted {
    color: var(--muted);
}

.card .muted {
    font-size: 13px;
    line-height: 1.6;
}

.action-card .section-title {
    margin-bottom: 9px;
}

.action-card p {
    margin: 0 0 16px;
}

.account-card {
    max-width: 750px;
}

.account-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    border-top: 1px solid var(--line);
    padding: 14px 0;
    font-size: 14px;
}

.account-row:first-of-type {
    margin-top: 16px;
}

.account-row>span:first-child {
    color: var(--muted);
}

.account-row>strong {
    text-align: right;
    overflow-wrap: anywhere;
}

.alert {
    padding: 13px 16px;
    margin-bottom: 18px;
    border-left: 3px solid;
    font-size: 13px;
}

.alert-success {
    color: #246042;
    border-color: #45966a;
    background: #edf8f0;
}

.alert-error {
    color: #923030;
    border-color: #c85454;
    background: #fff0f0;
}

.table-wrap {
    overflow-x: auto;
}

.table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.table th {
    background: #e9f2f8;
    color: var(--navy);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 15px 20px;
}

.table td {
    border-top: 1px solid #e7edf2;
    padding: 15px 20px;
    font-size: 13px;
}

.table tr:first-child td {
    border-top: 0;
}

.role-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.role-form select {
    min-width: 98px;
    border: 1px solid #cbd8e3;
    border-radius: 4px;
    padding: 8px;
    background: #fff;
    color: var(--ink);
    outline: none;
}

.pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 17px 20px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
}

.pagination-actions {
    display: flex;
    gap: 8px;
}

.pagination a,
.pagination span {
    display: inline-block;
    border: 1px solid #cbd8e3;
    padding: 7px 11px;
    color: var(--blue);
}

.pagination span {
    color: #99a6b3;
}

.applications-list-footer {
    flex-wrap: wrap;
    padding: 16px var(--portal-panel-gutter);
    border-top-color: #e5eaf1;
    background: #fafbfd;
}

.applications-list-page-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.applications-list-footer .pagination-actions {
    flex-wrap: wrap;
}

.applications-list-page-controls p,
.applications-list-count {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.applications-list-count {
    max-width: 100%;
    margin-left: auto;
    font-size: 12px;
    font-weight: 400;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.applications-list-count strong {
    color: inherit;
    font-weight: inherit;
    white-space: nowrap;
}

.applications-list-page-controls > p {
    color: var(--navy-soft);
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.applications-list-footer .pagination-actions a,
.applications-list-footer .pagination-actions span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #d8e2ec;
    border-radius: 8px;
    background: #fff;
    color: var(--navy-soft);
    font-size: 12px;
    font-weight: 600;
}

.applications-list-footer .pagination-actions a:hover {
    border-color: var(--navy-soft);
    background: var(--navy-soft);
    color: #fff;
}

.applications-list-footer .pagination-actions span {
    border-color: #e5eaf0;
    background: #f1f4f8;
    color: #8592a3;
}

.applications-list-serial {
    width: 64px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.workspace-main .applications-list-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(156px, 1fr);
    gap: var(--portal-field-gap);
}

.applications-list-filters .applications-list-search {
    grid-column: span 2;
}

.applications-list-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.applications-list-filter-actions .btn {
    flex: 1 1 0;
    white-space: nowrap;
}

@media (max-width: 999px) {
    .workspace-main .applications-list-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .applications-list-filters .applications-list-search {
        grid-column: auto;
    }

    .applications-list-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 600px) {
    .workspace-main .applications-list-filters {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 900px) {
    .brand-location {
        display: none;
    }

    .auth-stage {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 1fr);
    }

    .auth-visual-content {
        padding: 35px;
    }

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

    .grid .action-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 680px) {
    .site-width {
        width: min(100% - 32px, 1180px);
    }

    .utility-bar {
        font-size: 10px;
    }

    .brand-inner {
        min-height: 82px;
    }

    .brand-logo {
        width: 68px;
    }

    .brand-link {
        gap: 10px;
    }

    .brand-copy strong {
        font-size: clamp(15px, 4vw, 20px);
    }

    .brand-copy>span {
        font-size: 10px;
        letter-spacing: .09em;
    }

    .nav-inner {
        gap: 4px;
    }

    .nav-links a,
    .nav-logout {
        min-height: 44px;
        padding: 0 11px;
        font-size: 12px;
    }

    .auth-stage {
        display: flex;
        flex-direction: column;
    }

    .auth-visual {
        min-height: 205px;
    }

    .auth-visual-content {
        padding: 26px 24px;
    }

    .auth-visual h2 {
        font-size: 25px;
        margin-bottom: 7px;
    }

    .auth-visual p:last-child {
        font-size: 12px;
    }

    .auth-panel {
        padding: 38px 24px 47px;
    }

    .footer-inner {
        flex-wrap: wrap;
        padding-block: 15px;
        min-height: 0;
    }

    .page-main {
        padding: 28px 0 50px;
    }

    .page-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-hero {
        padding: 29px 25px;
        align-items: flex-start;
        flex-direction: column;
    }

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

    .grid .action-card {
        grid-column: auto;
    }

    .card-pad {
        padding: 22px;
    }

    .role-form {
        flex-wrap: wrap;
    }
}

@media (max-width: 390px) {
    .utility-inner span {
        display: none;
    }

    .utility-inner {
        justify-content: flex-end;
    }

    .brand-copy strong {
        font-size: 15px;
    }

    .nav-links a,
    .nav-logout {
        padding-inline: 8px;
        font-size: 11px;
    }
}

/* ABS login */
.abs-login-page {
    background: #eef3f0;
}

.abs-login-page .site-shell {
    min-height: 100svh;
}

.abs-login {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100svh;
    padding: 40px 20px 24px;
    background: radial-gradient(circle at 50% 10%, #fff 0, #eef3f0 58%);
}

.abs-login-card {
    width: min(100%, 470px);
    padding: clamp(28px, 5vw, 44px);
    border: 1px solid #dde7e0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 20px 60px #163c2a12;
}

.abs-login-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 38px;
}

.abs-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 57px;
    height: 57px;
    flex: 0 0 57px;
    border-radius: 12px;
    background: #174b3b;
    color: #fff;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.11em;
    padding-right: 4px;
}

.abs-logo span {
    color: #e9c778;
    letter-spacing: 0;
}

.abs-brand-name {
    display: flex;
    flex-direction: column;
    color: #18372c;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.2;
}

.abs-brand-name span {
    margin-top: 3px;
    color: #6a7a70;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .025em;
}

.abs-login-intro {
    margin-bottom: 28px;
}

.abs-login-intro h1 {
    margin: 0;
    color: #173529;
    font: 600 clamp(27px, 5vw, 32px)/1.2 'Poppins', Arial, sans-serif;
    letter-spacing: -.035em;
}

.abs-login-intro p {
    margin: 10px 0 0;
    color: #6d7b73;
    font-size: 14px;
    line-height: 1.6;
}

.abs-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

.abs-field label {
    color: #283e33;
    font-size: 13px;
    font-weight: 700;
}

.abs-field input {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid #d3ded6;
    border-radius: 7px;
    outline: none;
    color: #173529;
    background: #fff;
    transition: border-color .18s, box-shadow .18s;
}

.abs-field input::placeholder {
    color: #9ba9a0;
}

.abs-field input:focus {
    border-color: #28765f;
    box-shadow: 0 0 0 4px #28765f1b;
}

.abs-field input[aria-invalid="true"] {
    border-color: #b84c4c;
}

.abs-field-error {
    color: #a33d3d;
    font-size: 12px;
    line-height: 1.4;
}

.abs-remember {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 1px 0 25px;
    color: #576a5f;
    font-size: 13px;
    cursor: pointer;
}

.abs-remember input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #174b3b;
}

.abs-submit {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 51px;
    padding: 11px 18px;
    border: 1px solid #174b3b;
    border-radius: 7px;
    background: #174b3b;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    transition: background .18s, border-color .18s;
}

.abs-submit:hover {
    background: #246b52;
    border-color: #246b52;
}

.abs-submit:focus-visible,
.abs-login a:focus-visible,
.abs-remember input:focus-visible {
    outline: 3px solid #d0a850;
    outline-offset: 3px;
}

.abs-submit span {
    font-size: 20px;
    line-height: 1;
}

.abs-register-prompt {
    margin: 27px 0 0;
    padding-top: 23px;
    border-top: 1px solid #edf1ed;
    color: #6b7a72;
    font-size: 13px;
    text-align: center;
}

.abs-register-prompt a {
    color: #195a45;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.abs-login-bottom {
    margin: 23px 0 0;
    color: #90a097;
    font-size: 11px;
    letter-spacing: .04em;
}

@media (max-width: 520px) {
    .abs-login {
        justify-content: flex-start;
        padding: 20px 14px;
    }

    .abs-login-card {
        padding: 28px 22px;
        border-radius: 11px;
    }

    .abs-login-brand {
        margin-bottom: 32px;
    }

    .abs-login-intro h1 {
        font-size: 27px;
    }
}

/* Scholarship portal login */
html:has(> body.portal-login-page) {
    scrollbar-gutter: stable;
}

.portal-login-page {
    background: #fff;
}

.portal-login-page .site-shell,
.portal-dashboard-page .site-shell {
    min-height: 100svh;
}

.portal-login {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 100svh;
}

.portal-login.portal-login-homepage {
    grid-template-columns: minmax(0, 6fr) minmax(0, 4fr);
}

.portal-login-homepage .portal-login-story .portal-login-submit {
    border-color: #fff;
}

.portal-login-story {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 40px 30px;
    color: #fff;
    background: linear-gradient(155deg, #0a1a32, #102e50 75%, #16446c);
    isolation: isolate;
}

.portal-login-story::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .35;
    background-image: radial-gradient(#b8d9ed 1px, transparent 1px);
    background-size: 19px 19px;
    mask-image: linear-gradient(90deg, #0008, #0003);
}

.portal-login-story::after {
    content: '';
    position: absolute;
    width: 310px;
    height: 310px;
    right: -130px;
    bottom: -165px;
    border: 42px solid #d5ad401c;
    border-radius: 50%;
}

.portal-login-story-inner {
    width: min(100%, 470px);
    text-align: center;
}

@media (min-width: 901px) {
    .portal-login-homepage .portal-login-story-inner {
        width: min(100%, 800px);
    }

    .portal-login-homepage .portal-login-description {
        max-width: 640px;
        line-height: 1.75;
    }

    .portal-login-homepage .portal-login-description + .portal-login-description {
        margin-top: 14px;
    }

    .portal-login-homepage .portal-login-story .portal-login-submit {
        width: min(100%, 300px);
        margin-inline: auto;
    }
}

.portal-login-emblem {
    width: 105px;
    height: 105px;
    display: grid;
    place-items: center;
    margin: 0 auto 22px;
    padding: 14px;
    border: 4px solid #d5ad40;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 12px 35px #0003;
}

.portal-login-emblem img {
    width: 100%;
    height: auto;
}

.portal-login-overline {
    display: table;
    margin: 0 auto 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #d5ad40;
    color: #f4d681;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.portal-login-story h1 {
    margin: 0 0 5px;
    font: 700 clamp(28px, 3vw, 42px)/1.16 'Poppins', Arial, sans-serif;
    letter-spacing: -.035em;
}

.portal-login-location {
    margin: 13px 0 21px;
    color: #f5d47a;
    font-size: 13px;
    font-weight: 700;
}

.portal-login-description {
    max-width: 395px;
    margin: 0 auto;
    color: #e0ebf2;
    font-size: 14px;
    line-height: 1.65;
}

.portal-login-guidelines {
    color: #7dd3fc;
    font-weight: 700;
    text-decoration: none;
}

.portal-login-guidelines:hover,
.portal-login-guidelines:focus-visible {
    color: #bae6fd;
    text-decoration: none;
}

.portal-login-guidelines:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
    border-radius: 2px;
}

.portal-login-highlights {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-top: 25px;
}

.portal-login-highlights>span {
    min-height: 50px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border: 1px solid #ffffff32;
    border-radius: 9px;
    background: #ffffff0d;
    font-size: 11px;
    font-weight: 600;
    text-align: left;
}

.portal-login-highlights>span span {
    color: #f5d47a;
    font-size: 18px;
}

.portal-login-story-footer {
    margin: 35px 0 0;
    color: #bacbd9;
    font-size: 11px;
}

.portal-login-homepage .portal-login-story p,
.portal-login-homepage .portal-login-story a {
    font-size: 14px;
}

.portal-login-homepage .portal-login-story h1,
.portal-login-homepage .portal-login-story .portal-login-institution {
    margin-bottom: 8px;
    font-size: clamp(24px, 2.4vw, 34px);
    line-height: 1.25;
    text-wrap: balance;
}

.portal-login-homepage .portal-login-institution {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    color: inherit;
    font-family: 'Poppins', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -.035em;
    text-transform: none;
    text-decoration: none;
}

.portal-login-homepage .portal-login-tagline {
    margin-bottom: 20px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.portal-login-panel {
    font-family: 'Poppins', Arial, sans-serif;
    display: grid;
    place-items: center;
    padding: 48px 32px;
    background: radial-gradient(circle at 90% 0, #f8f4e7, transparent 34%), #fff;
}

.portal-login-form-wrap {
    width: min(100%, 390px);
}

.portal-login-kicker {
    margin: 0 0 8px;
    color: #a47f23;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.portal-login-form-wrap h2 {
    margin: 0;
    color: #0a1a32;
    font: 700 clamp(25px, 2.4vw, 32px)/1.18 'Poppins', Arial, sans-serif;
    letter-spacing: -.035em;
}

.portal-login-subtitle {
    margin: 10px 0 28px;
    color: #677789;
    font-size: 13px;
    line-height: 1.5;
}

.portal-login-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: var(--portal-field-gap);
}

.portal-login-field label {
    color: #23344b;
    font-size: 12px;
    font-weight: 700;
}

.portal-login-input-wrap {
    position: relative;
}

.portal-login-input-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #66829b;
    font-size: 16px;
    font-weight: 700;
    pointer-events: none;
}

.portal-login-input-icon svg {
    display: block;
}

.portal-login-input-wrap input {
    width: 100%;
    height: 45px;
    padding: 10px 14px 10px 42px;
    border: 1px solid #d8e1e8;
    border-radius: 7px;
    background: #fafbfc;
    color: #182c41;
    outline: none;
}

.portal-login-input-wrap input:focus {
    border-color: #286697;
    background: #fff;
    box-shadow: 0 0 0 3px #28669720;
}

.portal-login-password-wrap input {
    padding-right: 48px;
}

.portal-login-password-toggle {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #66829b;
}

.portal-login-password-toggle:hover {
    color: #0a1a32;
}

.portal-login-password-toggle:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 2px;
}

.portal-login-eye-slash {
    display: none;
}

.portal-login-password-toggle[aria-pressed="true"] .portal-login-eye-slash {
    display: block;
}

.portal-login-input-wrap input[aria-invalid="true"] {
    border-color: #bb3c45;
}

.portal-login-input-wrap input::placeholder {
    color: #9ba7b3;
}

.portal-login-error {
    color: #a92f3d;
    font-size: 12px;
}

.portal-login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 6px 0 18px;
    font-size: 11px;
}

.portal-login-remember {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #283b50;
    font-weight: 700;
    cursor: pointer;
}

.portal-login-remember input {
    margin: 0;
    accent-color: #0a1a32;
}

.portal-login-forgot {
    color: #205c8c;
    font-weight: 700;
}

.portal-login-forgot:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 3px;
}

.portal-login-status {
    margin: -12px 0 20px;
}

.portal-login-protected {
    color: #778696;
}

.portal-login-submit {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    width: 100%;
    height: 46px;
    border: 1px solid #0a1a32;
    border-radius: 7px;
    background: #0a1a32;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 9px 18px #0a1a3226;
}

.portal-login-submit:hover {
    background: #173b60;
    border-color: #173b60;
}

.portal-login-submit:focus-visible,
.portal-login-remember input:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 3px;
}

.portal-login-register {
    margin: 22px 0 0;
    color: #647587;
    font-size: 12px;
    text-align: center;
}

.portal-login-register a,
.portal-login-home {
    color: #205c8c;
    font-weight: 700;
}

.portal-login-home {
    display: table;
    margin: 17px auto 0;
    font-size: 12px;
}

.portal-login-copyright {
    margin: 29px 0 0;
    color: #9ba7b0;
    font-size: 11px;
    text-align: center;
}

.portal-register-body .site-shell {
    min-height: 100svh;
}

.register-page {
    min-height: 100svh;
    padding: 28px 22px 22px;
    background: #f4f6f8;
    color: #102238;
    font-family: 'Poppins', Arial, sans-serif;
}

.register-shell {
    width: min(100%, 1040px);
    margin: 0 auto;
}

.register-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.register-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: #102238;
    text-decoration: none;
}

.register-brand img {
    width: 46px;
    height: 46px;
    padding: 4px;
    border: 1px solid #e0d1a8;
    border-radius: 50%;
    background: #fff;
}

.register-brand span {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.register-brand strong {
    font-size: 13px;
    line-height: 1.3;
}

.register-brand small {
    color: #718196;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .025em;
}

.register-topbar p {
    margin: 0;
    color: #687a8c;
    font-size: 12px;
}

.register-topbar a:not(.register-brand),
.register-footer a {
    color: #174d78;
    font-weight: 700;
}

.register-surface {
    overflow: hidden;
    border: 1px solid #dce4eb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 17px 40px #14294310;
}

.register-heading {
    position: relative;
    padding: 28px 38px 24px;
    border-bottom: 1px solid #e8edf1;
}

.register-heading::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #caa142 0 22%, #173453 22%);
}

.register-eyebrow {
    margin: 0 0 8px;
    color: #9c792b;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .15em;
}

.register-heading h1 {
    margin: 0;
    color: #102238;
    font-size: clamp(25px, 3vw, 31px);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.2;
}

.register-heading>p:last-child {
    margin: 8px 0 0;
    color: #627488;
    font-size: 12px;
    line-height: 1.55;
}

.register-form {
    padding: 28px 38px 32px;
}

.register-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #dce5ec;
    border-radius: 10px;
}

.register-channel {
    min-width: 0;
    padding: var(--portal-panel-gutter);
}

.register-channel+.register-channel {
    border-left: 1px solid #dce5ec;
    background: #fbfcfd;
}

.register-channel-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 29px;
    margin-bottom: 17px;
}

.register-channel-heading>div {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.register-channel-number {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: #f8f0dc;
    color: #946e1d;
    font-size: 10px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.register-channel-heading h2,
.register-details-heading h2 {
    margin: 0;
    color: #102238;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}

.register-channel-status {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    background: #eef2f5;
    color: #697b8d;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.register-channel-status.is-pending {
    background: #fff4dc;
    color: #866419;
}

.register-channel-status.is-verified {
    background: #e8f6ed;
    color: #267248;
}

.register-channel .portal-login-field {
    margin-bottom: 0;
}

.register-page .portal-login-field label,
.register-otp-panel label {
    color: #294057;
    font-size: 11px;
    font-weight: 700;
}

.register-input-row,
.register-otp-row {
    display: flex;
    gap: 8px;
}

.register-input-row .portal-login-input-wrap {
    flex: 1;
    min-width: 0;
}

.register-country-code {
    position: absolute;
    inset: 1px auto 1px 1px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    border-right: 1px solid #d3dee7;
    border-radius: 6px 0 0 6px;
    background: #f3f6f9;
    color: #294057;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    pointer-events: none;
}

.register-page .portal-login-input-wrap input,
.register-otp-row input {
    height: 44px;
    border-color: #d3dee7;
    background: #fff;
    font-size: 12px;
}

.register-page .portal-login-input-wrap input:focus,
.register-otp-row input:focus {
    border-color: #34739c;
    box-shadow: 0 0 0 3px #34739c18;
}

.register-page .register-phone-input input {
    padding-left: 66px;
}

.register-send-button,
.register-otp-button {
    flex: 0 0 auto;
    min-width: 92px;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid #173453;
    border-radius: 7px;
    background: #173453;
    color: #fff;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

.register-send-button:hover:not(:disabled),
.register-otp-button:hover:not(:disabled) {
    border-color: #245d89;
    background: #245d89;
}

.register-send-button:focus-visible,
.register-otp-button:focus-visible,
.register-page a:focus-visible {
    outline: 3px solid #d3a845;
    outline-offset: 3px;
}

.register-send-button:disabled:not(.is-verified),
.register-otp-button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.register-send-button.is-verified {
    border-color: #d4eadc;
    background: #e8f6ed;
    color: #267248;
    cursor: default;
}

.register-feedback {
    min-height: 29px;
    margin: 7px 0 0;
    color: #728295;
    font-size: 10px;
    line-height: 1.4;
}

.register-feedback.is-error,
.portal-register-field-error {
    color: #ae3037;
}

.register-feedback.is-success {
    color: #287348;
}

.portal-register-field-error {
    margin: 3px 0 0;
    font-size: 10px;
    line-height: 1.4;
}

.register-otp-panel {
    padding-top: 14px;
    border-top: 1px dashed #d9e2e9;
}

.register-otp-panel label {
    display: block;
    margin-bottom: 7px;
}

.register-otp-row input {
    flex: 1;
    width: 100%;
    min-width: 0;
    padding: 9px 12px;
    border: 1px solid #d3dee7;
    border-radius: 7px;
    outline: none;
    font-family: inherit;
    letter-spacing: .045em;
}

.register-otp-row input:disabled {
    background: #f2f5f7;
    color: #8798a7;
}

.register-otp-button {
    min-width: 93px;
    border-color: #cedbe5;
    background: #eaf2f7;
    color: #1b567e;
}

.register-otp-button:hover:not(:disabled) {
    border-color: #b8d1e1;
    background: #dfeef6;
}

.register-otp-panel>p {
    margin: 7px 0 0;
    color: #8795a2;
    font-size: 10px;
}

.register-otp-panel.is-ready {
    border-top-color: #b8cddc;
}

.register-otp-panel.is-verified {
    opacity: .65;
}

.register-details-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 25px 0 16px;
}

.register-details-heading p {
    margin: 2px 0 0;
    color: #7c8b9b;
    font-size: 10px;
}

.register-details-grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr;
    gap: var(--portal-field-gap);
}

.register-details-grid .portal-login-field {
    min-width: 0;
    margin-bottom: 0;
}

.register-details-grid .portal-login-input-wrap input {
    padding-left: 14px;
}

.register-details-grid .portal-login-password-wrap input {
    padding-right: 55px;
}

.register-details-grid .portal-login-password-toggle {
    right: 5px;
    width: 43px;
    color: #235779;
    font-size: 10px;
    font-weight: 700;
}

.register-form-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid #e8edf1;
}

.register-form-footer p {
    max-width: 390px;
    margin: 0;
    color: #748597;
    font-size: 11px;
    line-height: 1.5;
}

.register-submit {
    flex: 0 0 auto;
    width: 230px;
    height: 47px;
    box-shadow: none;
}

.register-footer {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 2px 0;
    color: #8a99a6;
    font-size: 10px;
}

@media (max-width: 800px) {
    .register-contact-grid {
        grid-template-columns: 1fr;
    }

    .register-channel+.register-channel {
        border-left: 0;
        border-top: 1px solid #dce5ec;
    }

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

    .register-details-grid .portal-login-field:first-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 580px) {
    .register-page {
        padding: 14px 10px;
    }

    .register-topbar {
        margin: 0 4px 15px;
    }

    .register-topbar p {
        font-size: 0;
    }

    .register-topbar p a {
        font-size: 11px;
        white-space: nowrap;
    }

    .register-brand strong {
        max-width: 160px;
        font-size: 11px;
    }

    .register-brand small {
        font-size: 10px;
    }

    .register-brand img {
        width: 39px;
        height: 39px;
    }

    .register-heading {
        padding: 25px 20px 21px;
    }

    .register-form {
        padding: 20px 15px 24px;
    }

    .register-channel {
        padding: var(--portal-panel-gutter);
    }

    .register-details-grid {
        grid-template-columns: 1fr;
        gap: var(--portal-field-gap);
    }

    .register-details-grid .portal-login-field:first-child {
        grid-column: auto;
    }

    .register-form-footer {
        align-items: stretch;
        flex-direction: column;
        gap: 15px;
    }

    .register-submit {
        width: 100%;
    }

    .register-footer {
        flex-direction: column;
        align-items: center;
        gap: 8px;
        text-align: center;
    }
}

@media (max-width: 600px) {
    .register-phone-row {
        flex-wrap: wrap;
    }

    .register-phone-row .portal-login-input-wrap {
        flex-basis: 100%;
    }

    .register-phone-row .register-send-button {
        flex-basis: 100%;
    }
}

@keyframes account-panel-enter {
    from { opacity: 0; transform: translateY(-6px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes workspace-dialog-enter {
    from { opacity: 0; transform: translateY(10px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes workspace-backdrop-enter {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes dashboard-rise {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes dashboard-seal-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

.portal-toast {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 10000;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: min(360px, calc(100vw - 32px));
    padding: 14px 14px 14px 16px;
    overflow: hidden;
    border: 1px solid #f0d3d6;
    border-left: 4px solid #bb3c45;
    border-radius: 9px;
    background: #fff;
    color: #23344b;
    font-family: 'Poppins', Arial, sans-serif;
    box-shadow: 0 16px 38px #0a1a3229;
    animation: portal-toast-in .35s ease-out;
}

.portal-toast.is-leaving {
    opacity: 0;
    transform: translateX(24px);
    transition: opacity .25s ease, transform .25s ease;
}

.portal-toast-icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #fbeced;
    color: #a92f3d;
}

.portal-toast-body {
    flex: 1;
    min-width: 0;
}

.portal-toast-body strong {
    display: block;
    color: #0a1a32;
    font-size: 13px;
}

.portal-toast-body ul {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    color: #5b6b7d;
    font-size: 12px;
    line-height: 1.5;
}

.portal-toast-message {
    margin: 4px 0 0;
    color: #5b6b7d;
    font-size: 12px;
    line-height: 1.5;
}

.portal-toast-close {
    flex: none;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #8493a2;
}

.portal-toast-close:hover {
    background: #f1f4f7;
    color: #0a1a32;
}

.portal-toast-close:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 2px;
}

.portal-toast-progress {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: #bb3c45;
    transform-origin: left;
    animation: portal-toast-progress 8s linear forwards;
}

.portal-toast.is-success {
    border-color: #cfe6d7;
    border-left-color: #45966a;
}

.portal-toast.is-success .portal-toast-icon {
    background: #edf8f0;
    color: #2f7a52;
}

.portal-toast.is-success .portal-toast-progress {
    animation-duration: 3s;
    background: #45966a;
}

.portal-toast.is-success:hover .portal-toast-progress {
    animation-play-state: running;
}

.portal-toast+.portal-toast {
    top: 112px;
}

.portal-toast.is-error .portal-toast-progress {
    animation-duration: 3s;
}

.portal-toast[popover] {
    margin: 0;
    left: auto;
    bottom: auto;
}

.portal-toast[popover]:not(:popover-open) {
    display: none;
}

.portal-toast::backdrop {
    background: transparent;
    pointer-events: none;
}

.workspace-dialog .field-error {
    display: none;
}

.portal-toast-body ul {
    max-height: 180px;
    overflow-y: auto;
}

@keyframes portal-toast-in {
    from {
        opacity: 0;
        transform: translateX(24px);
    }
}

@keyframes portal-toast-progress {
    to {
        transform: scaleX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-toast {
        animation: none;
    }
}

.workspace-topbar .workspace-topbar-title strong {
    position: relative;
    padding-left: 12px;
    color: #0a1a32;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: -.035em;
}

.workspace-topbar .workspace-topbar-title strong::before {
    content: '';
    position: absolute;
    top: 3px;
    bottom: 3px;
    left: 0;
    width: 3px;
    border-radius: 999px;
    background: #d5ad40;
}

.workspace-topbar .workspace-topbar-title span {
    margin-top: 5px;
    padding-left: 12px;
    color: #74849a;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .005em;
}

@media (max-width: 400px) {
    .workspace-topbar .workspace-topbar-title strong {
        font-size: 15px;
    }

    .workspace-topbar .workspace-topbar-title span {
        display: block;
        max-width: 170px;
        font-size: 10px;
    }
}

@media (max-width: 900px) {
    .portal-login {
        grid-template-columns: 45% 55%;
    }

    .portal-login-highlights {
        flex-wrap: wrap;
    }
}

@media (max-width: 680px) {
    .portal-login {
        display: flex;
        flex-direction: column;
    }

    .portal-login-story {
        padding: 32px 20px;
    }

    .portal-login-emblem {
        width: 72px;
        height: 72px;
        margin-bottom: 15px;
    }

    .portal-login-story h1 {
        font-size: 26px;
    }

    .portal-login-description,
    .portal-login-story-footer,
    .portal-login-highlights {
        display: none;
    }

    .portal-login-location {
        margin-bottom: 0;
    }

    .portal-login-panel {
        flex: 1;
        padding: 42px 24px;
    }
}

/* Scholarship portal workspace */
.workspace-icon-library {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.workspace-icon {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.workspace-shell {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    min-height: 100svh;
    background: #f4f6fb;
    color: #0a1a32;
}

.workspace-sidebar {
    position: sticky;
    z-index: 100;
    top: 0;
    display: flex;
    flex-direction: column;
    height: 100svh;
    min-width: 0;
    border-right: 1px solid #e2e8f0;
    background: #fff;
}

.workspace-brand {
    flex-shrink: 0;
    min-height: 94px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 20px 18px;
    border-bottom: 1px solid #e8edf2;
    color: #0a1a32;
}

.workspace-brand:hover {
    color: #0a1a32;
    text-decoration: none;
}

.workspace-brand img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.workspace-brand strong,
.workspace-brand small {
    display: block;
}

.workspace-brand strong {
    font-size: 18px;
    line-height: 1.15;
    letter-spacing: .01em;
}

.workspace-brand small {
    margin-top: 4px;
    color: #a47f23;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .12em;
}

.workspace-navigation {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #a6b3c4 #f4f6fb;
    padding: 18px 11px;
}

.workspace-menu-label {
    margin: 2px 12px 11px;
    color: #8a99aa;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.workspace-nav-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 5px;
    padding: 11px 14px;
    border-radius: 8px;
    color: #52647a;
    font-size: 13px;
    font-weight: 600;
}

.workspace-nav-link:hover {
    background: #edf3f8;
    color: #0a1a32;
    text-decoration: none;
}

.workspace-nav-link.is-active {
    background: #0a1a32;
    color: #fff;
    box-shadow: 0 6px 15px #0a1a3220;
}

.workspace-nav-link.is-active:hover {
    background: #173b60;
    color: #fff;
}

.workspace-sidebar-logout {
    flex-shrink: 0;
    padding: 15px 12px 20px;
    border-top: 1px solid #e8edf2;
}

.workspace-nav-branch {
    position: relative;
}

.workspace-nav-toggle {
    width: 100%;
    border: 0;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    background: transparent;
}

.workspace-nav-chevron {
    margin-left: auto;
    font-size: 19px;
    line-height: 1;
    transition: transform .16s ease;
}

.workspace-nav-toggle[aria-expanded="true"] > .workspace-nav-chevron {
    transform: rotate(90deg);
}

.workspace-nav-submenu {
    padding: 4px 0 8px 13px;
}

.workspace-nav-branch[data-nav-pinned="false"] > .workspace-nav-submenu:not([hidden]) {
    position: absolute;
    top: 0;
    left: 100%;
    z-index: 110;
    width: 280px;
    padding: 8px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px #0a1a3220;
}

.workspace-nav-child {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    border-radius: 6px;
    color: #52647a;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    white-space: normal;
}

.workspace-nav-child:hover,
.workspace-nav-child:focus-visible {
    color: #0a1a32;
    background: #edf3f8;
}

.workspace-nav-child.is-active {
    color: #0a1a32;
    background: #f6f0df;
    font-weight: 700;
}

.workspace-nav-parent {
    padding-right: 43px;
}

.workspace-nav-trigger {
    position: absolute;
    top: 0;
    right: 3px;
    width: 36px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    color: #52647a;
}

.workspace-nav-trigger.is-active {
    color: #fff;
}

.workspace-nav-trigger .workspace-nav-chevron {
    margin: 0;
}

.application-category-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: var(--portal-section-gap);
}

.application-category-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    border: 1px solid #dce3ec;
    border-radius: 8px;
    background: #fff;
    color: #52647a;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
}

.application-category-tab:hover,
.application-category-tab:focus-visible {
    border-color: #c7a64b;
    color: #0a1a32;
}

.application-category-tab.is-active {
    border-color: #0a1a32;
    border-bottom: 3px solid #c7a64b;
    background: #0a1a32;
    color: #fff;
}

@media (max-width: 1000px) {
    .application-category-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 681px) {
    .workspace-sidebar:has(.workspace-navigation > [data-nav-pinned="true"]) {
        overflow-y: auto;
    }
}

@media (max-width: 680px) {
    .workspace-nav-trigger {
        height: 37px;
    }

    .workspace-nav-child {
        font-size: 11px;
    }

    .workspace-navigation:has([data-nav-branch]) {
        flex-wrap: wrap;
        overflow: visible;
    }

    .workspace-navigation > .workspace-nav-branch:has(> [data-nav-toggle][aria-expanded="true"]) {
        flex-basis: 100%;
    }

    .workspace-nav-branch[data-nav-pinned="false"] > .workspace-nav-submenu:not([hidden]) {
        position: static;
        width: auto;
        box-shadow: none;
    }
}

.workspace-sidebar-logout button {
    width: 100%;
    min-height: 43px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid #dfc87d;
    border-radius: 7px;
    background: #fffaf0;
    color: #8d6918;
    font-size: 13px;
    font-weight: 700;
}

.workspace-sidebar-logout button:hover {
    background: #fbf0cd;
}

.workspace-content {
    position: relative;
    z-index: 0;
    min-width: 0;
}

.workspace-topbar {
    min-height: 94px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px clamp(22px, 2.4vw, 34px);
    border-bottom: 1px solid #e1e7ef;
    background: #fff;
}

.workspace-topbar-title {
    min-width: 0;
}

.workspace-topbar-title strong,
.workspace-topbar-title span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-topbar-title strong {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
}

.workspace-topbar-title span {
    margin-top: 3px;
    color: #8290a4;
    font-size: 12px;
}

.workspace-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.workspace-avatar {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border: 2px solid #d5ad40;
    border-radius: 50%;
    background: #e9f2f8;
    color: #0a1a32;
    font-size: 16px;
    font-weight: 700;
}

.workspace-profile strong,
.workspace-profile small {
    display: block;
    max-width: 185px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-profile strong {
    font-size: 12px;
}

.workspace-profile small {
    margin-top: 2px;
    color: #8592a4;
    font-size: 11px;
}

.workspace-mobile-logout {
    display: none;
}

.workspace-main {
    width: min(100%, 1600px);
    margin: 0 auto;
    padding: 24px;
}

.workspace-page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: var(--portal-section-gap);
}

.workspace-page-heading > div,
.workspace-card-heading > div,
.workspace-dialog-heading > div {
    min-width: 0;
}

.workspace-page-heading h1 {
    margin: 0;
    font-size: clamp(20px, 2vw, 25px);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.025em;
}

.workspace-page-heading p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin: 5px 0 0;
    color: #7e8ba0;
    font-size: 11px;
}

.workspace-page-heading p a {
    color: #7e8ba0;
}

.workspace-page-heading p a:hover {
    color: #286697;
}

.workspace-site-button {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 13px;
    border-radius: 7px;
    background: #d5ad40;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.workspace-site-button .workspace-icon {
    width: 16px;
    height: 16px;
}

.workspace-site-button:hover {
    background: #e7c363;
    color: #fff;
    text-decoration: none;
}

.workspace-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e0e7f0;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 20px #0a1a3208;
}

.workspace-card-heading {
    min-height: 59px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px var(--portal-panel-gutter);
    border-bottom: 1px solid #e7ebf1;
}

.workspace-card-heading h2 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
}

.workspace-card-heading h2 span {
    color: #a47f23;
}

.workspace-heading-tag {
    padding: 6px 9px;
    border: 1px solid #e0e7f0;
    border-radius: 5px;
    color: #65758b;
    font-size: 10px;
    white-space: nowrap;
}

.workspace-page-intro {
    margin: -8px 0 19px;
    color: #75859a;
    font-size: 12px;
}

.workspace-users-card .table th {
    background: #f2f5fa;
    color: #687a92;
}

.workspace-users-card .table td {
    color: #52647b;
}

.workspace-users-card .table td strong {
    color: #0a1a32;
}

.workspace-users-card .role-form {
    flex-wrap: wrap;
}

.workspace-admin-create-card,
.workspace-admins-card {
    margin-bottom: 20px;
}

.workspace-admin-create-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--portal-field-gap) var(--portal-panel-gutter);
    padding: var(--portal-panel-gutter);
}

.workspace-admin-create-form .field {
    min-width: 0;
    margin-bottom: 0;
}

.workspace-admin-create-form .btn {
    justify-self: start;
}

button.workspace-site-button {
    border: 0;
}

.master-setting-card {
    width: 100%;
    max-width: 960px;
    overflow: hidden;
}

.verification-document-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
}

.verification-document-tabs a {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 9px 14px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: white;
    color: #405670;
}

.verification-document-tabs a small {
    font-size: 10px;
    opacity: .8;
}

.verification-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    grid-column: 1 / -1;
}

.verification-document-panel .document-review-form {
    grid-template-columns: minmax(0, 1fr);
}

.verification-document-tabs a.is-active {
    color: white;
    background: #315f96;
    border-color: #315f96;
}

.verification-document-panel {
    padding: 20px;
}

.admin-document-review-list {
    display: grid;
    gap: 16px;
    margin-top: 16px;
}

.admin-document-review-list .document-review-card {
    min-width: 0;
    margin: 0;
}

.admin-document-review-list .admin-document-file {
    margin: 12px 0;
}

.verification-photo {
    display: block;
    width: 350px;
    max-width: 100%;
    height: auto;
    margin: 0 auto 16px;
}

.verification-pdf {
    width: 100%;
    height: 650px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
}

@media print {
    body:has(.application-details-user) .workspace-sidebar,
    body:has(.application-details-user) .workspace-topbar,
    body:has(.application-details-user) .application-page-actions,
    body:has(.application-details-user) dialog,
    body:has(.application-details-user) .portal-toast {
        display: none !important;
    }

    body:has(.application-details-user) .workspace-shell {
        display: block;
    }

    body:has(.application-details-user) .workspace-main {
        padding: 0;
    }

    .application-details-user .workspace-card {
        box-shadow: none;
        break-inside: avoid;
    }
}

.master-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--portal-section-gap);
    max-width: 960px;
}

.master-settings-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 24px;
    color: inherit;
    text-decoration: none;
    transition: border-color .2s, box-shadow .2s;
}

.master-settings-link:hover,
.master-settings-link:focus-visible {
    text-decoration: none;
    border-color: #80a4d1;
    box-shadow: 0 6px 20px rgb(30 65 110 / 8%);
}

.master-settings-link-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: #315f96;
    background: #edf4fc;
}

.master-settings-link h2 {
    margin: 0;
    font-size: 18px;
}

.master-settings-link p {
    margin: 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.6;
}

.master-settings-link-action {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin-top: auto;
    padding-top: 14px;
    color: #315f96;
    font-size: 13px;
    font-weight: 600;
}

@media (max-width: 680px) {
    .master-settings-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--portal-section-gap);
    }
}

.master-setting-card .workspace-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 18px 24px;
    background: #fbfcfe;
    border-bottom: 1px solid #e9edf3;
}

.master-setting-card .field {
    display: grid;
    gap: 8px;
    margin: 0;
}

.master-setting-card .application-hint {
    line-height: 1.6;
}

.master-setting-card textarea {
    width: 100%;
    min-height: 150px;
    padding: 12px 14px;
    resize: vertical;
    line-height: 1.7;
}

.master-setting-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #dce9f8;
    border-radius: 10px;
    background: #f3f8ff;
    color: #405670;
}

.master-setting-note .workspace-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.master-setting-note p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
}

.rejected-course-settings-form {
    display: grid;
    gap: 14px;
    padding: 20px 24px;
}

.rejected-course-settings-form .application-number-settings-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 0;
}

@media (max-width: 680px) {
    .master-setting-card .workspace-card-heading,
    .master-setting-card .rejected-course-settings-form {
        padding: 16px;
    }
}

.merit-filter-summary {
    margin: 12px 20px;
}

.scholarship-payment-page .scholarship-student-strip {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 20px;
    margin-bottom: 18px;
    border-left: 4px solid #235c93;
    background: linear-gradient(115deg, #f0f6fc, #ffffff 75%);
}

.scholarship-student-avatar {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #235c93;
    color: #fff;
    font-size: 23px;
    font-weight: 700;
}

.scholarship-student-content {
    min-width: 0;
    flex: 1;
}

.scholarship-student-content > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    margin-bottom: 9px;
    font-size: 13px;
    overflow-wrap: anywhere;
    color: #40546e;
}

.scholarship-student-content > div:last-child {
    margin-bottom: 0;
}

.scholarship-student-identity > strong {
    font-size: 17px;
    color: #183652;
}

.scholarship-student-number {
    padding: 4px 8px;
    border: 1px solid #cddff0;
    border-radius: 6px;
    background: #fff;
    color: #235c93;
    font-size: 12px;
    font-weight: 700;
}

.scholarship-student-label {
    color: #6b7c91;
    margin-right: 4px;
    font-size: 12px;
}

.scholarship-student-contact > span,
.scholarship-student-meta > span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.scholarship-student-score {
    padding: 4px 9px;
    border-radius: 6px;
    background: #e5f3ef;
    color: #17644e;
}

.scholarship-details-content {
    display: flex;
    align-items: stretch;
    gap: var(--portal-section-gap);
    padding: var(--portal-panel-gutter);
}

.scholarship-details-amount {
    display: grid;
    align-content: center;
    gap: 6px;
    flex-shrink: 0;
    min-width: 190px;
    padding: 14px 18px;
    border: 1px solid #dcece6;
    border-radius: 10px;
    background: #f1f8f5;
    color: #386b59;
    font-size: 12px;
}

.scholarship-details-amount strong {
    color: #165c45;
    font-size: 24px;
}

.scholarship-details-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex: 1;
    gap: 14px 24px;
    margin: 0;
    min-width: 0;
}

.scholarship-details-values dt {
    font-size: 12px;
    color: #6b7c91;
    margin-bottom: 4px;
}

.scholarship-details-values.is-online {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 12px;
}

.scholarship-details-values dd {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #23344b;
    overflow-wrap: anywhere;
}

.workspace-main .application-summary-card.scholarship-details-card {
    border: 1px solid #dbe8e3;
    border-top: 3px solid #25866a;
    background: #fff;
    overflow: hidden;
}

.workspace-main .application-summary-card.scholarship-details-card > .workspace-card-heading {
    background: linear-gradient(110deg, #f0f8f5, #fff);
    border-bottom: 1px solid #e1ede7;
    padding: 14px var(--portal-panel-gutter);
    gap: 12px;
}

.scholarship-details-type {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e3f2eb;
    color: #246951;
    font-size: 12px;
    font-weight: 600;
}

.scholarship-details-values > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f7f9fc;
    border: 1px solid #edf1f5;
}

@media (max-width: 700px) {
    .scholarship-payment-page .scholarship-student-strip {
        padding: 16px;
        gap: 12px;
    }

    .scholarship-student-avatar {
        width: 36px;
        height: 36px;
        border-radius: 10px;
        font-size: 18px;
    }

    .scholarship-details-content {
        flex-direction: column;
        gap: var(--portal-section-gap);
        padding: var(--portal-panel-gutter);
    }

    .scholarship-details-amount,
    .scholarship-details-values {
        width: 100%;
    }
}

.scholarship-payment-form {
    display: grid;
    gap: var(--portal-field-gap);
    padding: var(--portal-panel-gutter);
}

.scholarship-payment-form > .field {
    max-width: 380px;
}

.scholarship-payment-choice,
.scholarship-cheque-fields {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.scholarship-payment-choice legend,
.scholarship-cheque-fields legend {
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 8px;
}

.scholarship-payment-options {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.scholarship-payment-options label {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    font-size: 14px;
}

.scholarship-cheque-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.scholarship-payment-actions {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 700px) {
    .scholarship-cheque-grid {
        grid-template-columns: 1fr;
    }

    .scholarship-payment-form {
        padding: var(--portal-panel-gutter);
    }
}

.workspace-row-menu {
    display: inline-block;
}

.workspace-row-menu summary {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid #dce5ec;
    border-radius: 7px;
    background: #fff;
    color: #52647a;
    cursor: pointer;
    list-style: none;
}

.workspace-row-menu summary::-webkit-details-marker {
    display: none;
}

.workspace-row-menu summary:hover,
.workspace-row-menu[open] summary {
    background: #edf3f8;
    color: #0a1a32;
}

.workspace-row-menu summary:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 2px;
}

.workspace-row-menu-list {
    position: fixed;
    z-index: 200;
    min-width: 140px;
    max-width: calc(100vw - 16px);
    max-height: min(50vh, 320px);
    overflow-y: auto;
    padding: 6px;
    border: 1px solid #e0e7f0;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 14px 34px #0a1a3224;
}

.workspace-row-menu-list form {
    margin: 0;
}

.workspace-row-menu-list button,
.workspace-row-menu-list a {
    display: block;
    width: 100%;
    padding: 9px 12px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #23344b;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.workspace-row-menu-list button:hover,
.workspace-row-menu-list a:hover {
    background: #edf3f8;
}

.workspace-row-menu-list button.is-danger {
    color: #a92f3d;
}

.workspace-row-menu-list button.is-danger:hover {
    background: #fff0f0;
}

.workspace-access-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.workspace-access-actions form {
    margin: 0;
}

.workspace-permission-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.workspace-permission-tag {
    padding: 5px 9px;
    border-radius: 4px;
    background: #edf4f9;
    color: #1e5578;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.btn-danger {
    background: #fff;
    color: #a92f3d;
    border-color: #e3b9be;
}

.btn-danger:hover {
    background: #fff0f0;
    color: #a92f3d;
    border-color: #a92f3d;
}

.workspace-dialog {
    width: min(100% - 32px, 460px);
    padding: 0;
    border: 0;
    border-radius: 13px;
    background: #fff;
    color: #0a1a32;
    box-shadow: 0 24px 60px #0a1a3240;
}

.workspace-confirm-dialog {
    width: min(100% - 32px, 400px);
}

.workspace-confirm-dialog .workspace-dialog-body {
    padding: 26px 24px 22px;
    text-align: center;
}

.workspace-confirm-icon {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: #fbeced;
    color: #a92f3d;
}

.workspace-confirm-dialog h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.workspace-confirm-dialog p {
    margin: 8px 0 0;
    color: #6b7d90;
    font-size: 13px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.workspace-confirm-icon.is-success {
    background: #edf8f0;
    color: #2f7a52;
}

.workspace-dialog-countdown {
    display: block;
    height: 3px;
    background: #45966a;
    transform-origin: left;
    animation: portal-toast-progress 5s linear forwards;
}

.btn-danger-solid {
    background: #b3323f;
    border-color: #b3323f;
}

.btn-danger-solid:hover {
    background: #972835;
    border-color: #972835;
}

.workspace-dialog-wide {
    width: min(100% - 32px, 720px);
}

.workspace-dialog::backdrop {
    background: #0a1a3299;
}

.workspace-dialog-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #e7ebf1;
}

.workspace-dialog-heading h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

.workspace-dialog-close {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #8493a2;
}

.workspace-dialog-close:hover {
    background: #f1f4f7;
    color: #0a1a32;
}

.workspace-dialog-body {
    padding: 20px;
}

.permission-grid-title {
    margin: 4px 0 10px;
    color: #23344b;
    font-size: 13px;
    font-weight: 600;
}

.permission-grid {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.permission-grid thead th {
    padding: 11px 12px;
    background: #f2f5fa;
    color: #23344b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.permission-grid tbody th,
.permission-grid tbody td {
    padding: 13px 12px;
    border-top: 1px solid #e7ebf1;
    font-size: 13px;
    vertical-align: middle;
}

.permission-grid tbody th {
    color: #0a1a32;
    font-weight: 600;
    white-space: nowrap;
}

.permission-grid th:first-child,
.permission-grid td:first-child {
    width: 38px;
}

.permission-grid input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #0a1a32;
    cursor: pointer;
}

.permission-grid-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(88px, 1fr));
    gap: 8px 14px;
}

.permission-grid-options .check {
    margin: 0;
    color: #23344b;
    font-weight: 600;
    cursor: pointer;
}

.permission-grid-note {
    margin: 12px 0 0;
    color: #7e8ba0;
    font-size: 12px;
}

.workspace-permission-tag strong {
    font-weight: 700;
}

.workspace-permission-list {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    border: 0;
}

.workspace-permission-list legend {
    margin-bottom: 11px;
    padding: 0;
    color: #23344b;
    font-size: 12px;
    font-weight: 700;
}

.workspace-permission-list .check {
    margin: 0;
    color: #52647b;
    cursor: pointer;
}

.workspace-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    padding: 14px 20px;
    border-top: 1px solid #e7ebf1;
    background: #f8fafc;
}

.portal-home-application {
    grid-column: 1 / -1;
    min-height: 0;
}

.status-badge {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 999px;
    background: #edf1f6;
    color: #52647a;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    vertical-align: middle;
}

.status-badge.is-in_progress {
    background: #e9f2f8;
    color: #1e5578;
}

.status-badge.is-needs_changes {
    background: #fff1d6;
    color: #80520a;
}

.status-badge.is-selected {
    background: #e3f3e9;
    color: #2f7a52;
}

.status-badge.is-rejected {
    background: #fbeced;
    color: #a92f3d;
}

.merit-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--portal-section-gap);
    margin-bottom: var(--portal-section-gap);
}

.scholarship-report-cycle {
    margin-bottom: var(--portal-section-gap);
}

.scholarship-report-filters {
    border-bottom: 0;
}

.scholarship-report-filters .field {
    flex: 0 1 420px;
}

.merit-summary.scholarship-report-summary>div {
    border-top: 3px solid var(--gold);
}

.scholarship-report-card .workspace-card-heading {
    flex-wrap: wrap;
    gap: 10px;
}

.scholarship-report-table td {
    padding-top: 16px;
    padding-bottom: 16px;
}

.scholarship-report-name {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--navy);
    font-size: 13px;
}

.scholarship-report-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 8px;
    background: var(--blue-pale);
    color: var(--blue);
}

.scholarship-report-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}

.workspace-card-heading > .scholarship-report-actions {
    padding-left: 0;
}

.workspace-main .scholarship-list-page > .workspace-page-heading {
    padding: 18px var(--portal-panel-gutter);
    margin-bottom: 14px;
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    background: #fff;
}

.workspace-main .scholarship-list-page > .workspace-page-heading h1 {
    font-size: 24px;
    line-height: 1.3;
}

.workspace-main .scholarship-list-page .merit-summary > div {
    padding: 15px 17px;
    border-radius: 12px;
}

.workspace-main .scholarship-list-page .merit-summary strong {
    font-size: 18px;
}

.workspace-main .scholarship-list-page .merit-summary span,
.workspace-main .scholarship-list-page .workspace-filters label {
    color: #65758b;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.workspace-main .scholarship-list-page .workspace-filters select {
    min-height: 42px;
    font-size: 12px;
}

.workspace-main .scholarship-list-page > .workspace-page-intro {
    color: #5f7187;
    font-size: 13px;
    line-height: 1.7;
}

.workspace-main .scholarship-list-page .workspace-card-heading {
    align-items: center;
    gap: 14px 24px;
}

.workspace-main .scholarship-list-page .workspace-card-heading h2 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 15px;
}

.workspace-main .scholarship-list-page .workspace-filters {
    display: grid;
    grid-template-columns: minmax(140px, .7fr) minmax(220px, 1.1fr) minmax(240px, 1.3fr) auto auto;
    gap: 14px;
    padding: 18px var(--portal-panel-gutter);
    background: #f8fafc;
    border-bottom: 1px solid #e3e8ef;
}

.workspace-main .scholarship-list-page .workspace-filters .field {
    min-width: 0;
    margin: 0;
}

.scholarship-list-scroll:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: -2px;
}

.workspace-main .scholarship-list-page .scholarship-list-table {
    min-width: 1500px;
    table-layout: fixed;
    border-collapse: collapse;
}

.workspace-main .scholarship-list-page .scholarship-list-table th,
.workspace-main .scholarship-list-page .scholarship-list-table td {
    padding: 12px 10px;
    border: 1px solid #dce3ec;
    white-space: pre-line;
    overflow-wrap: anywhere;
    line-height: 1.55;
    font-size: 12px;
    vertical-align: top;
}

.workspace-main .scholarship-list-page .scholarship-list-table th {
    color: #fff;
    background: #17314f;
    border-color: #344b66;
    text-transform: none;
    letter-spacing: 0;
    text-align: center;
    vertical-align: middle;
    font-weight: 600;
}

.workspace-main .scholarship-list-page .scholarship-list-table td {
    background: #fff;
    white-space: normal;
}

.scholarship-list-table td > span {
    white-space: pre-line;
}

.workspace-main .scholarship-list-page .scholarship-list-table th.scholarship-list-bank { width: 170px; }
.workspace-main .scholarship-list-page .scholarship-list-table th.scholarship-list-amount { width: 150px; }
.workspace-main .scholarship-list-page .scholarship-list-table td.scholarship-list-amount { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }

.workspace-main .scholarship-list-page .scholarship-list-table thead > tr:first-child > th:first-child {
    width: 60px;
}

.workspace-main .scholarship-list-page .scholarship-list-table tbody tr:nth-child(even) > td {
    background: #f8fafc;
}

.workspace-main .scholarship-list-page .scholarship-list-table tbody tr:hover > td {
    background: #fffaf0;
}

.scholarship-list-number {
    text-align: center;
    font-weight: 700;
}

.scholarship-list-name > span {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

.workspace-main .merit-list-page .scholarship-list-table tbody tr:not(.is-scholarship-saved) > td {
    background: #fff;
}

.workspace-main .scholarship-list-page .scholarship-list-table tbody tr.is-scholarship-saved > td {
    background: #bbf7d0;
}

.workspace-main .scholarship-list-page .scholarship-list-table tbody tr.is-scholarship-saved:hover > td {
    background: #bbf7d0;
}

.workspace-main .scholarship-list-page .scholarship-list-table .scholarship-list-actions {
    position: sticky;
    right: 0;
    z-index: 2;
    width: 80px;
    text-align: center;
    box-shadow: -5px 0 8px -5px rgba(23, 49, 79, .25);
}

.workspace-main .scholarship-list-page .scholarship-list-table th.scholarship-list-actions {
    z-index: 3;
}

.workspace-main .scholarship-list-page .scholarship-list-table td.scholarship-list-actions:has(.workspace-row-menu[open]) {
    z-index: 4;
}

.scholarship-list-identity-meta {
    display: block;
    margin-bottom: 8px;
    color: #65758b;
    font-size: 11px;
    line-height: 1.5;
}

.scholarship-list-empty {
    padding: 48px 20px;
    text-align: center;
    color: #65758b;
}

@media (max-width: 1100px) {
    .workspace-main .scholarship-list-page .workspace-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .workspace-main .scholarship-list-page .workspace-filters {
        grid-template-columns: minmax(0, 1fr);
    }
    .workspace-main .scholarship-list-page .scholarship-report-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

.scholarship-report-table th:last-child {
    text-align: right;
}

.scholarship-report-actions .btn {
    min-height: 34px;
    gap: 6px;
    border-radius: 6px;
    font-size: 11px;
    white-space: nowrap;
}

.scholarship-report-actions .btn:hover {
    border-color: var(--gold);
    background: #fff7e3;
}

@media (max-width: 680px) {
    .scholarship-report-filters .field {
        flex-basis: 100%;
    }

    .scholarship-report-table,
    .scholarship-report-table tbody,
    .scholarship-report-table tr,
    .scholarship-report-table td {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .scholarship-report-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
    }

    .scholarship-report-table td:first-child {
        padding-bottom: 8px;
        border-bottom: 0;
    }

    .scholarship-report-table td:last-child {
        padding-top: 0;
    }

    .scholarship-report-actions {
        justify-content: flex-start;
        padding-left: 48px;
    }
}

.merit-summary>div {
    min-width: 0;
    padding: 15px 18px;
    border: 1px solid #e0e7f0;
    border-radius: 12px;
    background: #fff;
}

.merit-summary span {
    display: block;
    color: #7e8ba0;
    font-size: 11px;
    font-weight: 600;
}

.merit-summary strong {
    display: block;
    margin-top: 5px;
    color: #0a1a32;
    font-size: 17px;
}

.merit-seat-tag {
    color: #2f7a52;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.merit-iicc-tag {
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 4px;
    background: #fff3cf;
    color: #69500c;
    font-size: 10px;
    font-weight: 700;
}

.workspace-users-card .table tr.is-within-seats td:first-child {
    box-shadow: inset 3px 0 #45966a;
}

.selection-decision-applicant {
    margin: 0 0 16px;
    color: #0a1a32;
    font-size: 14px;
    font-weight: 600;
}

.selection-decision-note {
    margin: 0;
    color: #7e8ba0;
    font-size: 12px;
}

.workspace-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid #e7ebf1;
}

.workspace-filters .field {
    flex: 1 1 220px;
    min-width: 0;
    margin: 0;
}

.workspace-filters .btn {
    min-height: var(--portal-control-height);
}

.application-detail-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: var(--portal-section-gap);
    padding: 20px var(--portal-panel-gutter);
    border: 1px solid #e0e7f0;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 20px #0a1a3208;
}

.application-detail-header img {
    width: 84px;
    height: 84px;
    flex: 0 0 auto;
    border: 3px solid #d5ad40;
    border-radius: 12px;
    object-fit: cover;
}

.application-detail-header h2 {
    margin: 0;
    color: #0a1a32;
    font-size: 19px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.application-detail-header p {
    margin: 4px 0 0;
    color: #6b7d90;
    font-size: 12px;
}

.application-shell {
    flex: 1;
    min-height: 100svh;
    background: #f4f6fb;
    color: #0a1a32;
}

.application-header {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid #e1e7ef;
    background: #fff;
}

.application-header-inner {
    width: min(100% - 32px, 1040px);
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-inline: auto;
}

.application-header .workspace-brand {
    min-height: 0;
    padding: 0;
    border: 0;
}

.application-header .workspace-brand img {
    width: 44px;
    height: 44px;
}

.application-header-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.application-header-actions form {
    margin: 0;
}

.application-header-user {
    max-width: 190px;
    overflow: hidden;
    color: #52647a;
    font-size: 12px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.application-main {
    width: min(100% - 32px, 1040px);
    margin-inline: auto;
    padding: 26px 0 56px;
}

[hidden] {
    display: none !important;
}

.btn:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.field textarea {
    width: 100%;
    border: 1px solid #d8e1e8;
    border-radius: 7px;
    background: #fafbfc;
    color: #182c41;
    padding: 10px 14px;
    font: inherit;
    outline: none;
    resize: vertical;
}

.field textarea:focus {
    border-color: #286697;
    background: #fff;
    box-shadow: 0 0 0 3px #28669720;
}

.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] {
    border-color: #bb3c45;
}

.field input[type="file"] {
    padding: 9px 10px;
    font-size: 13px;
}

.field input[readonly] {
    background: #f2f5fa;
    color: #52647b;
}

.application-steps {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 var(--portal-section-gap);
    padding: 0;
    list-style: none;
}

.application-steps li>a,
.application-steps li>span {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 12px 6px;
    border: 1px solid #e0e7f0;
    border-radius: 10px;
    background: #fff;
    color: #8290a4;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
}

.application-steps li>a:hover {
    border-color: #b8c9d7;
    text-decoration: none;
}

.application-step-number {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #edf1f6;
    color: #65758b;
    font-size: 12px;
    font-weight: 700;
}

.application-steps li.is-done>a,
.application-steps li.is-done>span {
    color: #2f7a52;
}

.application-steps li.is-done .application-step-number {
    background: #e3f3e9;
    color: #2f7a52;
}

.application-steps li.is-current>span {
    border-color: #0a1a32;
    color: #0a1a32;
    box-shadow: 0 6px 16px #0a1a3214;
}

.application-steps li.is-current .application-step-number {
    background: #0a1a32;
    color: #f2d376;
}

.application-form-body {
    padding: var(--portal-panel-gutter);
}

.application-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--portal-field-gap) var(--portal-panel-gutter);
    align-items: start;
}

.application-grid > .field,
.application-grid > .application-choice {
    min-width: 0;
    margin-bottom: 0;
}

.application-grid > .application-section-title {
    margin: 0;
}

.field-error:empty {
    display: none;
}

.application-phone-row {
    position: relative;
    min-width: 0;
}

.application-phone-code {
    position: absolute;
    inset: 1px auto 1px 1px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    border-right: 1px solid #dce5ec;
    border-radius: 8px 0 0 8px;
    background: #f3f6f9;
    color: #182c41;
    font-size: 13px;
    font-weight: 600;
    pointer-events: none;
}

.application-phone-row input[type="tel"] {
    display: block;
    width: 100%;
    min-width: 0;
    padding-left: 66px;
}

.application-field-wide {
    grid-column: 1 / -1;
}

.application-section-title {
    margin: 0 0 var(--portal-field-gap);
    padding-bottom: 9px;
    border-bottom: 1px solid #e7ebf1;
    color: #0a1a32;
    font-size: 14px;
    font-weight: 600;
}

.application-grid+.application-section-title {
    margin-top: var(--portal-section-gap);
}

.application-section-note {
    margin: 0 0 var(--portal-section-gap);
    color: #6b7d90;
    font-size: 12px;
    line-height: 1.6;
}

.application-optional {
    color: #8a99aa;
    font-weight: 500;
}

.application-required {
    margin-left: 1px;
    color: #d92d3a;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    vertical-align: top;
}

.application-hint,
.application-uploaded {
    color: #6b7d90;
    font-size: 12px;
    line-height: 1.5;
}

.application-uploaded {
    color: #2f7a52;
}

.application-file-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: 70%;
    max-width: 100%;
    padding: 5px 6px 5px 10px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--canvas);
    vertical-align: middle;
}

.application-file-icon {
    width: 17px;
    height: 19px;
    flex-shrink: 0;
    color: var(--blue);
}

.application-file-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--navy-soft);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.application-file-link .application-file-button {
    flex: 0 0 auto;
    margin-left: auto;
    min-height: 30px;
    padding: 5px 10px;
    border-color: var(--line);
    border-radius: 5px;
    font-size: 11px;
    white-space: nowrap;
}

.application-file-link .application-file-button:hover {
    border-color: var(--gold);
    background: #fff7e3;
}

.application-uppercase {
    text-transform: uppercase;
}

.application-uppercase::placeholder {
    text-transform: none;
}

.application-choice {
    min-width: 0;
    margin: 0 0 19px;
    padding: 0;
    border: 0;
}

.application-choice legend {
    margin-bottom: 10px;
    padding: 0;
    color: #23344b;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

.application-choice-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.application-choice-options .check {
    margin: 0;
    padding: 10px 14px;
    border: 1px solid #d8e1e8;
    border-radius: 7px;
    background: #fafbfc;
    color: #23344b;
    cursor: pointer;
}

.application-choice-options .check:has(input:checked) {
    border-color: #286697;
    background: #fff;
    box-shadow: 0 0 0 3px #28669720;
    font-weight: 600;
}

.application-choice .field-error {
    display: block;
    margin-top: 8px;
}

.application-final-checklist {
    margin-top: 28px;
}

.application-final-checklist ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.application-final-checklist .check {
    align-items: flex-start;
    margin: 0;
    line-height: 1.5;
    cursor: pointer;
}

.application-final-checklist .check input {
    flex-shrink: 0;
    margin-top: 3px;
}

.application-checklist-all {
    margin-top: 6px;
    padding: 14px 16px;
    border: 1px solid #d5dfeb;
    border-radius: 8px;
    background: #eef3f9;
    color: #193653;
    font-weight: 700;
}

.application-declaration {
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #e6d9ae;
    border-radius: 9px;
    background: #fffaf0;
}

.application-declaration p {
    margin: 0 0 12px;
    color: #4a3d16;
    font-size: 13px;
    line-height: 1.65;
}

.application-declaration .check {
    margin: 0;
    color: #23344b;
    font-weight: 600;
    cursor: pointer;
}

.application-declaration .field-error {
    display: block;
    margin-top: 8px;
}

.application-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px var(--portal-panel-gutter);
    border-top: 1px solid #e7ebf1;
    background: #f8fafc;
}

.application-submitted-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    padding: 20px 22px;
    border: 1px solid #cfe6d7;
    border-radius: 13px;
    background: #edf8f0;
}

.application-submitted-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #45966a;
    color: #fff;
}

.application-submitted-banner h2 {
    margin: 0;
    color: #1d5237;
    font-size: 17px;
    font-weight: 600;
}

.application-submitted-banner p {
    margin: 4px 0 0;
    color: #3d6b52;
    font-size: 13px;
}

.application-summary-card {
    margin-bottom: var(--portal-section-gap);
}

.application-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
    margin: 0;
    padding: 8px 20px 14px;
}

.application-summary>div {
    min-width: 0;
    padding: 11px 0;
    border-bottom: 1px solid #eef2f6;
}

.application-summary dt {
    color: #7e8ba0;
    font-size: 11px;
    font-weight: 600;
}

.application-summary dd {
    margin: 4px 0 0;
    color: #0a1a32;
    font-size: 13px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.workspace-shell a:focus-visible,
.workspace-shell button:focus-visible,
.workspace-shell select:focus-visible,
.application-shell a:focus-visible,
.application-shell button:focus-visible {
    outline: 3px solid #d5ad40;
    outline-offset: 2px;
}

/* Dashboard home */
.portal-home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 180px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 22px clamp(24px, 3vw, 38px);
    border-radius: 17px;
    background: radial-gradient(circle at 82% 18%, #28669788, transparent 34%), linear-gradient(120deg, #081a33, #123b5c);
    color: #fff;
    box-shadow: 0 16px 38px #0a1a321f;
}

.portal-home-hero::before {
    content: '';
    position: absolute;
    z-index: -1;
    width: 420px;
    height: 420px;
    right: -80px;
    bottom: -250px;
    border: 1px solid #ffffff38;
    border-radius: 50%;
    box-shadow: 0 0 0 54px #ffffff08, 0 0 0 110px #ffffff07;
}

.portal-home-hero-content {
    min-width: 0;
    max-width: 630px;
}

.portal-home-eyebrow {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 8px;
    color: #f1d985;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.portal-home-eyebrow span {
    color: #8fa9bb;
}

.portal-home-hero h1 {
    margin: 0;
    font-size: clamp(22px, 3.2vw, 34px);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
}

.portal-home-hero-description {
    max-width: 490px;
    margin: 9px 0 0;
    color: #d5e1ec;
    font-size: 13px;
    line-height: 1.7;
}

.portal-home-hero-seal {
    width: 96px;
    height: 96px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    padding: 14px;
    border: 4px solid #d5ad40;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 14px 42px #0004;
}

.portal-home-hero-seal img {
    width: 100%;
    height: auto;
}

.portal-home-section {
    padding-top: 0;
}

.dashboard-metrics + .portal-home-section {
    padding-top: var(--portal-section-gap);
}

.portal-home-section-heading {
    margin-bottom: 17px;
}

.portal-home-section-heading>p {
    margin: 0 0 5px;
    color: #a47f23;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}

.portal-home-section-heading h2 {
    margin: 0;
    color: #0a1a32;
    font-size: clamp(19px, 2vw, 24px);
    font-weight: 600;
    letter-spacing: -.025em;
}

.portal-home-path-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.portal-home-path-card {
    min-width: 0;
    min-height: 300px;
    overflow: hidden;
    border: 1px solid #e0e7f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px #0a1a320b;
}

.portal-home-management {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 27px 29px;
    background: radial-gradient(circle at 100% 0, #e9f2f8, transparent 42%), #fff;
}

.portal-home-path-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin-bottom: 19px;
    border-radius: 11px;
    background: #0a1a32;
    color: #f2d376;
}

.portal-home-path-icon .workspace-icon {
    width: 23px;
    height: 23px;
}

.portal-home-card-kicker {
    margin: 0 0 7px;
    color: #a47f23;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.portal-home-path-card h3 {
    margin: 0;
    color: #0a1a32;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.025em;
}

.portal-home-path-card p:not(.portal-home-card-kicker) {
    max-width: 370px;
    margin: 9px 0 18px;
    color: #6b7d90;
    font-size: 12px;
    line-height: 1.65;
}

.portal-home-path-card a,
.portal-home-path-card button {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: auto;
    padding: 8px 13px;
    border: 1px solid #0a1a32;
    border-radius: 6px;
    background: #0a1a32;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.portal-home-path-card a:hover,
.portal-home-path-card button:hover {
    background: #173b60;
    color: #fff;
    text-decoration: none;
}

.portal-home-path-card a .workspace-icon,
.portal-home-path-card button .workspace-icon {
    width: 15px;
    height: 15px;
}

.portal-home-management form {
    margin-top: auto;
}

.portal-home-centre {
    display: flex;
    flex-direction: column;
}

.portal-home-centre>img {
    width: 100%;
    height: 142px;
    object-fit: cover;
    object-position: center 48%;
}

.portal-home-centre>div {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 26px 24px;
}

.portal-home-centre p:not(.portal-home-card-kicker) {
    margin-bottom: 15px;
}

@media (max-width: 860px) {
    .application-steps {
        display: flex;
        overflow-x: auto;
        padding-bottom: 4px;
    }

    .application-steps li {
        flex: 0 0 118px;
    }
}

@media (max-width: 920px) {
    .workspace-shell {
        grid-template-columns: 205px minmax(0, 1fr);
    }

    .workspace-brand {
        padding-inline: 11px;
    }

    .workspace-brand img {
        width: 40px;
        height: 40px;
    }

    .workspace-brand strong {
        font-size: 16px;
    }

    .workspace-nav-link {
        padding-inline: 10px;
    }

    .portal-home-hero-seal {
        width: 78px;
        height: 78px;
        padding: 11px;
        border-width: 3px;
    }

    .portal-home-path-grid {
        grid-template-columns: 1fr;
    }

    .portal-home-path-card {
        min-height: 0;
    }
}

@media (max-width: 680px) {
    .workspace-admin-create-form {
        grid-template-columns: 1fr;
    }

    .application-grid,
    .application-summary {
        grid-template-columns: 1fr;
    }

    .merit-summary {
        grid-template-columns: 1fr;
    }

    .permission-grid-options {
        grid-template-columns: repeat(2, minmax(88px, 1fr));
    }

    .application-header-inner {
        min-height: 62px;
    }

    .application-header-user {
        display: none;
    }

    .application-main {
        padding: 20px 0 42px;
    }

    .application-form-body {
        padding: var(--portal-panel-gutter);
    }

    .application-form-actions {
        padding: 16px var(--portal-panel-gutter);
    }

    .application-form-actions .btn {
        flex: 1;
    }

    .workspace-shell {
        display: flex;
        flex-direction: column;
    }

    .workspace-sidebar {
        position: static;
        height: auto;
        border-right: 0;
    }

    .workspace-brand {
        min-height: 63px;
        padding: 9px 16px;
    }

    .workspace-brand img {
        width: 38px;
        height: 38px;
    }

    .workspace-navigation {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 8px 14px;
        border-top: 1px solid #e8edf2;
    }

    .workspace-menu-label,
    .workspace-sidebar-logout {
        display: none;
    }

    .workspace-nav-link {
        flex: 0 0 auto;
        min-height: 37px;
        margin: 0;
        padding: 8px 11px;
        font-size: 11px;
    }

    .workspace-nav-link .workspace-icon,
    .workspace-nav-child .workspace-icon {
        width: 15px;
        height: 15px;
    }

    .workspace-topbar {
        min-height: 64px;
        padding: 10px 16px;
    }

    .workspace-main {
        padding: 21px 14px 72px;
    }

    .workspace-profile strong,
    .workspace-profile small {
        max-width: 115px;
    }

    .workspace-avatar {
        width: 34px;
        height: 34px;
        font-size: 13px;
    }

    .workspace-profile>span:nth-child(2) {
        display: none;
    }

    .workspace-mobile-logout {
        display: block;
    }

    .workspace-mobile-logout button {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        padding: 0;
        border: 1px solid #dfc87d;
        border-radius: 7px;
        background: #fffaf0;
        color: #8d6918;
    }

    .workspace-page-heading {
        align-items: flex-start;
    }

    .workspace-page-heading h1 {
        font-size: 20px;
    }

    .workspace-site-button {
        padding: 8px 10px;
        font-size: 0;
    }

    .workspace-site-button .workspace-icon {
        width: 18px;
        height: 18px;
    }

    .portal-home-hero {
        min-height: 0;
        padding: 21px 20px;
    }

    .portal-home-hero-seal {
        display: none;
    }

    .portal-home-eyebrow {
        flex-wrap: wrap;
        line-height: 1.5;
    }

    .portal-home-hero {
        border-radius: 13px;
    }

    .portal-home-section {
        padding-top: 0;
    }

    .portal-home-management {
        padding: 22px 20px;
    }

    .portal-home-centre>div {
        padding: 18px 20px 22px;
    }

    .portal-home-path-card h3 {
        font-size: 19px;
    }

    .portal-home-path-card a,
    .portal-home-path-card button,
    .portal-home-management form {
        width: 100%;
    }

    .portal-home-centre>img {
        height: 170px;
    }
}

@media (max-width: 400px) {
    .workspace-brand strong {
        font-size: 15px;
    }

    .workspace-topbar-title span {
        display: none;
    }

    .workspace-main {
        padding-inline: 12px;
    }

    .portal-home-hero {
        padding: 19px 17px;
    }

    .portal-home-centre>img {
        height: 140px;
    }
}

/* =========================================================
       STATUS BADGES
    ========================================================= */

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    padding: 5px 12px;

    border-radius: 999px;

    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;

    white-space: nowrap;
}


/* =========================================================
       SUCCESS / VERIFIED / APPROVED
    ========================================================= */

.status-badge.is-selected,
.status-badge.status-badge-review,
.status-badge.status-badge-success {
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 700;
}

.status-badge-success {
    color: #2f7a52;
    background-color: #e3f3e9;
    border: 0;
}


/* =========================================================
       PENDING
    ========================================================= */

.status-badge-pending {
    color: #92400e;
    background-color: #fef3c7;
    border: 1px solid #fcd34d;
}


/* =========================================================
       STATUS ICON
    ========================================================= */

.status-badge-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 12px;
    height: 12px;

    border-radius: 50%;

    color: #ffffff;

    font-size: 8px;
    font-weight: 700;

    line-height: 1;
}


/* =========================================================
       SUCCESS ICON
    ========================================================= */

.status-badge-success .status-badge-icon {
    background-color: #2f7a52;
}


/* =========================================================
       PENDING ICON
    ========================================================= */

.status-badge-pending .status-badge-icon {
    background-color: #f59e0b;
}


/* =========================================================
       SUCCESS BADGE HOVER
    ========================================================= */

.status-badge-success:hover {
    background-color: #e3f3e9;
}


/* =========================================================
       PENDING BADGE HOVER
    ========================================================= */

.status-badge-pending:hover {
    background-color: #fde68a;
    border-color: #fbbf24;
}


/* =========================================================
       DOCUMENT VERIFICATION
    ========================================================= */

.document-review-list {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.document-review-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
}

.document-review-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.document-review-heading h3 {
    margin: 0;
    color: var(--navy);
    font-size: 13px;
    font-weight: 600;
}

.document-review-heading .status-badge {
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 700;
}

.document-review-remarks {
    margin: 12px 0 0;
    padding: 9px 12px;
    border-left: 3px solid var(--gold);
    border-radius: 0 5px 5px 0;
    background: var(--canvas);
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.document-review-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 14px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.document-review-form .field {
    min-width: 0;
    margin: 0;
}

.document-review-form select,
.document-review-form textarea {
    height: 46px;
    min-height: 46px;
    padding: 11px 12px;
    font-size: 12px;
    line-height: 22px;
}

.document-review-form textarea {
    resize: vertical;
}

.document-review-form .btn {
    grid-column: 1 / -1;
    justify-self: end;
    min-height: 40px;
    white-space: nowrap;
}

@media (max-width: 680px) {
    .document-review-form {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .document-review-form .btn {
        justify-self: end;
    }
}

@media (max-width: 680px) {
    .document-review-list {
        padding: 14px;
    }

    .document-review-card {
        padding: 14px;
    }
}

.application-summary-card .workspace-admin-create-form p {
    line-height: 1.6;
}


/* =========================================================
       MOBILE
    ========================================================= */

@media (max-width: 768px) {

    .status-badge {
        padding: 4px 10px;
        font-size: 12px;
    }

    .status-badge-icon {
        width: 12px;
        height: 12px;
        font-size: 8px;
    }
}

.guidelines-page {
    color: var(--ink);
}

.guidelines-document {
    max-width: 850px;
    margin-inline: auto;
    padding: 48px 64px;
    background: #fff;
    color: #000;
    font-family: "Aptos", "Calibri", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.16;
    overflow-wrap: anywhere;
}

.guidelines-document .guidelines-document-scholarship {
    margin-bottom: 16px;
    font-size: 18.667px;
    text-align: center;
}

.guidelines-document h1,
.guidelines-document h2 {
    margin: 16px 0 8px;
    color: #000;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: normal;
}

.guidelines-document p {
    margin: 0 0 8px;
    text-align: justify;
}

.guidelines-document ol,
.guidelines-document ul {
    margin: 0 0 8px;
    padding-left: 32px;
}

.guidelines-document li {
    margin: 0;
    text-align: justify;
}

.guidelines-document h2 + ol li,
.guidelines-document h2 + p + ol li {
    margin-bottom: 8px;
}

.guidelines-document strong {
    color: inherit;
    font-weight: 700;
}

.guidelines-document .guidelines-document-checklist {
    padding-left: 26px;
    list-style: none;
}

.guidelines-document-checklist li {
    position: relative;
    margin-bottom: 4px;
}

.guidelines-document-checklist li > span {
    position: absolute;
    left: -20px;
}

@media (max-width: 600px) {
    .guidelines-document {
        padding: 24px 20px;
    }

    .guidelines-document p,
    .guidelines-document li {
        text-align: left;
    }
}

@media print {
    body:has(.guidelines-document) .application-header,
    body:has(.guidelines-document) .guidelines-topbar {
        display: none;
    }

    body:has(.guidelines-document) .application-main,
    .guidelines-document {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .guidelines-document h1,
    .guidelines-document h2 {
        break-after: avoid;
    }
}

.guidelines-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 17px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.guidelines-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--navy);
}

.guidelines-back-link span {
    font-size: 18px;
    line-height: 1;
}

.guidelines-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    align-items: end;
    gap: 30px;
    overflow: hidden;
    padding: 35px 38px;
    border: 1px solid var(--navy-soft);
    border-left: 5px solid var(--gold);
    border-radius: 14px;
    background: var(--navy);
    color: #fff;
}

.guidelines-eyebrow {
    color: #f0cf77;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.guidelines-eyebrow span {
    padding-inline: 6px;
    color: #91a8bd;
}

.guidelines-hero h1 {
    max-width: 590px;
    margin: 13px 0 12px;
    font-size: clamp(25px, 3.5vw, 34px);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.2;
}

.guidelines-hero > div:only-child {
    grid-column: 1 / -1;
}

.application-step-label {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.guidelines-hero p {
    max-width: 570px;
    margin: 0;
    color: #d1dce8;
    font-size: 13px;
    line-height: 1.75;
}

.guidelines-at-a-glance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid #ffffff30;
    border-radius: 9px;
    background: #ffffff30;
}

.guidelines-at-a-glance div {
    min-width: 0;
    padding: 14px 11px;
    background: #ffffff0b;
}

.guidelines-at-a-glance strong {
    display: block;
    margin-bottom: 5px;
    color: #f0cf77;
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
}

.guidelines-at-a-glance span {
    display: block;
    color: #d1dce8;
    font-size: 9px;
    line-height: 1.4;
}

.guidelines-layout {
    display: grid;
    grid-template-columns: 218px minmax(0, 1fr);
    align-items: start;
    gap: 27px;
    margin-top: 27px;
}

.guidelines-sidebar {
    position: sticky;
    top: 84px;
}

.guidelines-navigation {
    padding: 19px 14px 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
}

.guidelines-navigation p {
    margin: 0 10px 12px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.guidelines-navigation a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 9px 10px;
    border-radius: 7px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.45;
}

.guidelines-navigation a:hover,
.guidelines-navigation a:focus-visible {
    background: var(--blue-pale);
    color: var(--navy);
    text-decoration: none;
}

.guidelines-navigation a span {
    flex: 0 0 auto;
    color: #ab8229;
    font-size: 10px;
    font-weight: 700;
}

.guidelines-sidebar-note {
    margin: 15px 13px 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.6;
}

.guidelines-content {
    min-width: 0;
}

.guidelines-group {
    margin-bottom: 18px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
}

.guidelines-group[id] {
    scroll-margin-top: 20px;
}

.guidelines-group-heading {
    padding: 22px 28px 19px;
    border-bottom: 1px solid var(--line);
    background: #f9fbfd;
}

.guidelines-group-heading span {
    display: block;
    margin-bottom: 5px;
    color: #a47f23;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.guidelines-group-heading h2 {
    margin: 0;
    color: var(--navy);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.025em;
}

.guidelines-section {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 17px;
    padding: 22px 28px;
}

.guidelines-section + .guidelines-section {
    border-top: 1px solid #e9eef2;
}

.guidelines-section-number {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid #eadcb8;
    border-radius: 7px;
    background: #fff9e9;
    color: #987420;
    font-size: 11px;
    font-weight: 700;
}

.guidelines-section h3 {
    margin: 2px 0 9px;
    color: var(--navy);
    font-size: 14px;
    font-weight: 700;
}

.guidelines-section p,
.guidelines-section li {
    color: #52647a;
    font-size: 12px;
    line-height: 1.8;
}

.guidelines-section p {
    margin: 0;
}

.guidelines-section p + p,
.guidelines-section ul + p {
    margin-top: 12px;
}

.guidelines-section ul {
    margin: 0;
    padding-left: 18px;
}

.guidelines-section li + li {
    margin-top: 6px;
}

.guidelines-section li::marker {
    color: #bb9537;
}

.guidelines-section strong {
    color: var(--navy);
}

.guidelines-finish {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 26px;
    border-radius: 11px;
    background: #e9f2f8;
}

.guidelines-finish span {
    color: var(--navy);
    font-size: 13px;
    font-weight: 700;
}

.guidelines-finish p {
    margin: 4px 0 0;
    color: #52647a;
    font-size: 11px;
}

.guidelines-finish .btn {
    flex: 0 0 auto;
}

.guidelines-finish .btn span {
    color: inherit;
}

@media (max-width: 850px) {
    .guidelines-hero {
        grid-template-columns: 1fr;
        gap: 23px;
    }

    .guidelines-at-a-glance {
        max-width: 460px;
    }

    .guidelines-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .guidelines-sidebar {
        position: static;
    }

    .guidelines-navigation {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
        padding: 8px;
    }

    .guidelines-navigation p,
    .guidelines-sidebar-note {
        display: none;
    }
}

@media (max-width: 560px) {
    .guidelines-topbar > span {
        display: none;
    }

    .guidelines-hero {
        padding: 25px 21px;
    }

    .guidelines-at-a-glance div {
        padding: 11px 8px;
    }

    .guidelines-at-a-glance strong {
        font-size: 17px;
    }

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

    .guidelines-group-heading {
        padding: 19px 17px 17px;
    }

    .guidelines-section {
        grid-template-columns: 29px minmax(0, 1fr);
        gap: 11px;
        padding: 19px 17px;
    }

    .guidelines-section-number {
        width: 27px;
        height: 27px;
        font-size: 10px;
    }

    .guidelines-finish {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Shared portal surfaces */
.portal-dashboard-page {
    background: #f3f5f9;
}

.workspace-topbar {
    position: relative;
    z-index: 40;
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid #e5eaf1;
}

.workspace-main {
    max-width: 1600px;
}

.workspace-page-heading h1 {
    font-size: clamp(24px, 3vw, 32px);
    letter-spacing: -.035em;
}

.workspace-card {
    border: 1px solid #e4e9f1;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(10, 26, 50, .04);
}

.workspace-card-heading {
    gap: 14px;
    flex-wrap: wrap;
    border-bottom-color: #e9edf3;
}

.workspace-main .table-wrap {
    overflow-x: auto;
    scrollbar-width: thin;
}

.workspace-main .table {
    width: 100%;
    min-width: 640px;
    border-collapse: separate;
    border-spacing: 0;
}

.workspace-main .table th {
    padding: 14px var(--portal-panel-gutter);
    background: #f5f7fb;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
    white-space: nowrap;
    border-bottom: 1px solid #e5eaf1;
}

.workspace-main .table td {
    padding: 16px var(--portal-panel-gutter);
    color: #334155;
    font-size: 13px;
    line-height: 1.6;
    vertical-align: middle;
    border-bottom: 1px solid #edf0f5;
}

.workspace-main .table tbody tr:last-child td {
    border-bottom: 0;
}

.workspace-main .table tbody tr:hover td {
    background: #f8fafc;
}

.workspace-main .table td strong {
    color: #0a1a32;
    font-weight: 650;
}

.workspace-main .workspace-filters {
    padding: 16px var(--portal-panel-gutter);
    gap: var(--portal-field-gap);
    background: #fbfcfe;
    border-bottom: 1px solid #e9edf3;
}

.workspace-main [aria-labelledby="applications-heading"] > .workspace-filters {
    border-bottom: 0;
}

.workspace-dialog {
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    box-shadow: 0 30px 90px rgba(10, 26, 50, .25);
    color: #23344b;
}

.workspace-dialog::backdrop {
    background: rgba(8, 20, 38, .58);
    backdrop-filter: blur(5px);
}

.workspace-dialog-heading {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
    padding: 22px 26px;
    border-bottom: 1px solid #e7ecf3;
}

.workspace-dialog-body {
    padding: 24px 26px;
}

.workspace-dialog-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: #f8fafc;
    padding: 18px 26px;
    border-top: 1px solid #e7ecf3;
}

.workspace-dialog .check {
    align-items: flex-start;
    line-height: 1.6;
}

.workspace-dialog .check input {
    flex-shrink: 0;
    margin-top: 4px;
}

.workspace-dialog .field input,
.workspace-dialog .field select,
.workspace-dialog .field textarea,
.account-settings-card .field input,
.correction-card .field input {
    border-radius: 9px;
    border-color: #dce3ed;
    background-color: #fff;
}

.field [aria-invalid="true"] {
    border-color: #c74949;
    box-shadow: 0 0 0 3px rgba(199, 73, 73, .07);
}

.workspace-main .application-summary {
    gap: 0;
}

.application-summary dd {
    overflow-wrap: anywhere;
}

.workspace-main .application-summary > div {
    padding: 16px 22px;
    border-bottom: 1px solid #edf0f5;
}

.workspace-main .application-summary > div:last-child {
    border-bottom: 0;
}

.workspace-main .application-summary dt {
    color: #718096;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.workspace-main .application-summary dd {
    margin-top: 4px;
    color: #162b45;
    font-weight: 500;
}

.workspace-main .status-badge {
    font-size: 11px;
    padding: 5px 10px;
    line-height: 1.5;
}

.status-badge.is-verified,
.status-badge.is-selected {
    color: #176748;
    background: #e8f5ed;
    border: 1px solid #cce9d8;
}

.status-badge.is-pending,
.status-badge.is-in_progress {
    color: #315d94;
    background: #edf3fc;
    border: 1px solid #d8e5f6;
}

.status-badge.is-needs_changes {
    color: #946317;
    background: #fff6e4;
    border: 1px solid #f2dfb3;
}

.status-badge.is-rejected {
    color: #ab3642;
    background: #fff0f1;
    border: 1px solid #f1d1d6;
}

.account-menu {
    position: relative;
}

.account-menu summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 7px 10px;
    cursor: pointer;
    list-style: none;
    border-radius: 12px;
    border: 1px solid transparent;
    transition: background .15s ease, border-color .15s ease;
}

.account-menu summary:hover,
.account-menu[open] summary {
    border-color: #e2e8f0;
    background: #f5f7fb;
}

.account-menu .workspace-avatar {
    width: 40px;
    height: 40px;
    border: 1px solid #dbe5ef;
    background: #edf3f9;
    color: #24476b;
    overflow: hidden;
}

.account-menu .workspace-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
}

.portal-ui-icon {
    display: inline-block;
    flex: 0 0 auto;
    vertical-align: middle;
}

.account-menu-chevron {
    width: 16px;
    height: 16px;
    color: #718096;
    transition: transform .15s ease;
}

.account-menu[open] .account-menu-chevron {
    transform: rotate(180deg);
}

.account-menu-item {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.account-menu-panel button > .portal-ui-icon {
    width: 15px;
    height: 15px;
    color: #8a99ab;
}

.account-menu-panel form {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid #e9edf3;
}

.account-menu summary::-webkit-details-marker {
    display: none;
}

.account-menu summary:focus-visible {
    outline: 2px solid #bc963b;
    outline-offset: 4px;
}

.account-menu-identity strong,
.account-menu-identity small {
    display: block;
    max-width: 170px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-menu-identity strong {
    color: #18324f;
    font-size: 13px;
}

.account-menu-identity small {
    margin-top: 3px;
    color: #718096;
    font-size: 11px;
}

.account-menu-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 100;
    width: min(290px, calc(100vw - 32px));
    padding: 8px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 16px 48px rgba(10, 26, 50, .16);
}

.account-menu-panel p {
    margin: 0 0 6px;
    padding: 12px;
    border-bottom: 1px solid #e9edf3;
}

.account-menu-panel p strong,
.account-menu-panel p span {
    display: block;
    overflow-wrap: anywhere;
}

.account-menu-panel p strong {
    color: #18324f;
    font-size: 13px;
}

.account-menu-panel p span {
    margin-top: 5px;
    color: #718096;
    font-size: 12px;
}

.account-menu-panel a,
.account-menu-panel form button {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #23344b;
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
    text-decoration: none;
}

.account-menu-panel a:hover,
.account-menu-panel button:hover {
    background: #f3f6fa;
}

.account-menu-panel button {
    color: #ad3844;
}

.account-settings-grid,
.status-overview-grid,
.rules-grid,
.document-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.account-settings-card form {
    display: grid;
    gap: 20px;
    padding: 26px;
}

.account-settings-card .field,
.correction-card .field {
    margin: 0;
}

.account-settings-card input[readonly] {
    background: #f5f7fb;
    color: #718096;
}

.account-settings-card .btn {
    justify-self: start;
}

.dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: var(--portal-section-gap);
}

.dashboard-metrics > a {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 23px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    color: #17314f;
    box-shadow: 0 4px 18px rgba(10, 26, 50, .035);
    text-decoration: none;
}

.dashboard-metrics > a:hover {
    border-color: #bda361;
}

.dashboard-metrics span {
    font-size: 12px;
    color: #718096;
}

.dashboard-metrics strong {
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: -.04em;
}

.dashboard-metrics strong.dashboard-metric-text {
    font-size: 21px;
    letter-spacing: -.02em;
}

.dashboard-metrics small {
    color: #8d702b;
    font-size: 11px;
    font-weight: 600;
}

.portal-action-banner,
.merit-policy-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 24px 0;
    padding: 24px 28px;
    background: linear-gradient(115deg, #fffaf0, #fffdf8);
    border: 1px solid #eadbb5;
    border-radius: 14px;
}

.portal-action-banner h2 {
    margin: 12px 0 8px;
    color: #17314f;
    font-size: 20px;
}

.portal-action-banner p,
.merit-policy-banner p {
    max-width: 900px;
    margin: 6px 0 0;
    color: #75664a;
    font-size: 13px;
    line-height: 1.75;
}

.portal-action-banner .btn,
.merit-policy-banner .btn {
    flex-shrink: 0;
}

.document-review-grid {
    padding: var(--portal-panel-gutter);
}

.correction-form .document-review-grid {
    padding: 0;
}

.document-review-card {
    min-width: 0;
    padding: 22px;
    border: 1px solid #e5eaf2;
    border-radius: 12px;
    background: #fbfcfe;
    scroll-margin-top: 24px;
}

.document-review-card.needs-attention {
    border-color: #e9d6ab;
    background: #fffdf7;
}

.document-review-card-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.document-review-card-heading h3 {
    flex: 1 1 120px;
    line-height: 1.5;
}

.document-review-file-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 42px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #edf2f8;
    color: #42648a;
}

.document-review-card.is-verified {
    border-color: #d5e8de;
    background: #fcfefd;
}

.document-review-card.is-verified .document-review-file-icon {
    background: #e9f5ee;
    color: #277953;
}

.document-verification-note {
    margin: 12px 0 8px;
    color: #377154;
    font-size: 13px;
    line-height: 1.65;
}

.document-review-card h3 {
    margin: 0;
    font-size: 14px;
    color: #17314f;
}

.document-review-card .status-badge {
    white-space: normal;
}

.document-review-reason {
    margin: 10px 0;
    padding: 10px 12px;
    background: #fff5df;
    border-left: 3px solid #c8a34c;
    color: #75613c;
    font-size: 13px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.document-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.document-current-link {
    display: block;
    margin: 10px 0;
    font-size: 12px;
    color: #315d94;
}

.correction-form {
    padding: 26px;
}

.correction-bank-section {
    margin-top: 28px;
}

.correction-form-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #e9edf3;
}

.portal-error-summary {
    margin: 20px 24px;
    padding: 16px 20px;
    border: 1px solid #f0cdd2;
    border-radius: 10px;
    background: #fff3f4;
    color: #9d3442;
    font-size: 13px;
    line-height: 1.6;
}

.workspace-dialog .portal-error-summary {
    margin: 0 0 18px;
}

.upload-selection {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 12px;
    border-radius: 9px;
    background: #edf3fa;
    font-size: 12px;
}

.upload-selection[hidden] {
    display: none;
}

.upload-file-info {
    display: flex;
    flex: 1 1 100%;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.upload-file-info > span {
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
    color: #315d94;
}

.upload-cancel {
    padding: 5px 9px;
    background: #fff;
    border: 1px solid #dce5f1;
    border-radius: 6px;
    color: #17314f;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}

.upload-cancel:hover {
    border-color: #bc963b;
}

.upload-cancel:focus-visible,
.upload-input-selected:focus-visible + .upload-selection {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

input[type="file"].upload-input-selected {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.decision-score-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 18px 0;
}

.decision-score-grid > div {
    padding: 12px;
    background: #f2f5fa;
    border-radius: 9px;
}

.decision-score-grid span,
.decision-score-grid strong {
    display: block;
}

.decision-score-grid span {
    margin-bottom: 7px;
    font-size: 10px;
    color: #718096;
}

.decision-score-grid strong {
    font-size: 14px;
    color: #17314f;
}

.decision-eligibility {
    margin-bottom: 20px;
    padding: 16px;
    border: 1px solid #eadbb5;
    border-radius: 10px;
    background: #fffaf0;
}

.decision-eligibility .check {
    margin: 0;
}

.rules-card {
    margin-bottom: 20px;
    overflow: hidden;
}

.rules-card > p {
    padding: 0 24px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.75;
}

.rules-card .table {
    min-width: 0;
}

.rules-card .table th {
    white-space: normal;
}

.selection-rule-sequence {
    padding: 10px 28px 10px 48px;
    color: #334155;
    font-size: 13px;
    line-height: 1.8;
}

.selection-rule-sequence li {
    margin-bottom: 16px;
    padding-left: 6px;
}

.selection-rule-sequence li::marker {
    color: #a38338;
    font-weight: 700;
}

@media (max-width: 900px) {
    .account-settings-grid,
    .status-overview-grid,
    .rules-grid {
        grid-template-columns: 1fr;
    }

    .portal-action-banner,
    .merit-policy-banner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    .account-menu-identity {
        display: none;
    }

    .document-review-grid {
        grid-template-columns: 1fr;
        padding: var(--portal-panel-gutter);
    }

    .dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--portal-section-gap);
    }

    .dashboard-metrics > a {
        padding: 16px;
    }

    .dashboard-metrics strong.dashboard-metric-text {
        font-size: 17px;
    }

    .workspace-dialog {
        width: calc(100% - 24px);
        max-height: calc(100dvh - 24px);
    }

    .workspace-dialog-body,
    .workspace-dialog-heading,
    .workspace-dialog-actions,
    .correction-form,
    .account-settings-card form {
        padding: 20px;
    }

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

    .workspace-main .application-summary > div {
        padding: 16px;
    }
}

.workspace-dialog:has([data-selection-form]) {
    width: min(680px, calc(100% - 32px));
}

.merit-summary {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.merit-summary > div {
    padding: 20px 22px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
}

.merit-summary strong {
    font-size: 22px;
    line-height: 1.35;
    letter-spacing: -.025em;
}

.permission-grid {
    border: 1px solid #e3e9f1;
    border-radius: 10px;
    overflow: hidden;
}

.permission-grid thead th {
    padding: 14px 16px;
    background: #f2f5fa;
    color: #63758d;
    border-bottom: 1px solid #e3e9f1;
}

.permission-grid tbody th,
.permission-grid tbody td {
    padding: 16px;
    border-bottom: 1px solid #edf1f6;
}

.permission-grid tbody tr:last-child th,
.permission-grid tbody tr:last-child td {
    border-bottom: 0;
}

.permission-grid tbody tr:hover {
    background: #fbfcfe;
}

.permission-grid input[type="checkbox"] {
    accent-color: #17314f;
}

dialog.workspace-dialog.role-permissions-dialog {
    width: min(960px, calc(100% - 32px));
    max-width: calc(100% - 24px);
    max-height: 90dvh;
    padding: 0;
    overflow: hidden;
}

dialog.workspace-dialog.role-permissions-dialog > form {
    display: flex;
    flex-direction: column;
    min-width: 0;
    max-height: calc(90dvh - 2px);
}

dialog.workspace-dialog.role-permissions-dialog .workspace-dialog-heading,
dialog.workspace-dialog.role-permissions-dialog .workspace-dialog-actions {
    flex-shrink: 0;
}

dialog.workspace-dialog.role-permissions-dialog .workspace-dialog-body {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

dialog.workspace-dialog.role-permissions-dialog .table-wrap {
    min-width: 0;
    max-width: 100%;
    overflow: visible;
}

.role-permissions-dialog .permission-grid {
    table-layout: fixed;
    min-width: 0;
    width: 100%;
}

.role-permissions-dialog .role-permission-select-column {
    width: 40px;
}

.role-permissions-dialog .role-permission-module-column {
    width: 43%;
}

.role-permissions-dialog .permission-grid th,
.role-permissions-dialog .permission-grid td {
    padding: 12px 8px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.role-permissions-dialog .permission-grid-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    min-width: 0;
}

.role-permissions-dialog .permission-grid-options .check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: normal;
    font-size: 12px;
}

.applications-list-checkbox {
    width: 42px;
    text-align: center;
}

.applications-list-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
    accent-color: #0a1a32;
    cursor: pointer;
}

.applications-list-bulk-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px var(--portal-panel-gutter);
    border-top: 1px solid #e7ebf1;
}

.applications-list-bulk-actions .application-hint {
    flex: 1 1 240px;
    margin: 0;
}

.application-submitted-banner {
    gap: 22px;
    align-items: flex-start;
    padding: clamp(20px, 3vw, 30px);
    background: linear-gradient(120deg, #f0f9f4, #fbfdfc);
    border-radius: 16px;
}

.application-submitted-banner > .status-badge {
    margin-left: auto;
    flex: 0 0 auto;
}

.application-submitted-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: #e0f1e7;
    color: #28774f;
    border: 1px solid #c9e5d6;
}

.application-submitted-icon .portal-ui-icon {
    width: 28px;
    height: 28px;
}

.application-submitted-copy {
    flex: 1;
    min-width: 0;
}

.application-submitted-eyebrow {
    display: block;
    margin-bottom: 6px;
    color: #498164;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.application-submitted-banner h2 {
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.4;
}

.application-submitted-reference,
.application-submitted-date {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    line-height: 1.65;
}

.application-submitted-banner .application-submitted-date {
    margin-top: 14px;
}

.application-submitted-date .portal-ui-icon {
    width: 16px;
    height: 16px;
}

.application-submitted-banner .application-submitted-note {
    margin-top: 8px;
    color: #6c7e73;
    font-size: 12px;
    line-height: 1.65;
}

.portal-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    color: #8390a2;
    font-size: 12px;
}

.portal-breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #63758d;
    text-decoration: none;
}

.portal-breadcrumb .portal-ui-icon {
    width: 14px;
    height: 14px;
}

.portal-breadcrumb [aria-current] {
    color: #324e6c;
    font-weight: 500;
}

.account-dialog {
    width: min(520px, calc(100% - 32px));
}

.account-dialog-title {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.account-dialog-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border: 1px solid #dce7f2;
    border-radius: 12px;
    background: #edf3fa;
    color: #345a82;
}

.account-dialog-title p {
    margin: 5px 0 0;
    color: #78879a;
    font-size: 12px;
    line-height: 1.5;
}

.account-dialog .workspace-dialog-body {
    display: grid;
    gap: 20px;
}

.account-dialog .field {
    margin: 0;
}

.account-dialog input[readonly] {
    background: #f5f7fa;
    color: #65768b;
    border-color: #e6ebf2;
}

.account-profile-summary {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border: 1px solid #e0e8f2;
    border-radius: 14px;
    background: linear-gradient(120deg, #f1f5fb, #fbfcfe);
}

.account-profile-avatar {
    display: grid;
    place-items: center;
    width: 88px;
    height: 108px;
    flex: 0 0 auto;
    border-radius: 16px;
    background: #213f61;
    color: #fff;
    font-size: 23px;
    font-weight: 600;
    overflow: hidden;
    border: 3px solid #fff;
    box-shadow: 0 3px 12px #17314f12;
}

.account-profile-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
}

.account-profile-summary > div {
    min-width: 0;
}

.account-profile-summary strong,
.account-profile-summary span:not(.account-profile-avatar) {
    display: block;
    overflow-wrap: anywhere;
}

.account-profile-summary strong {
    color: #223b59;
    font-size: clamp(17px, 3vw, 21px);
    line-height: 1.5;
}

.account-profile-summary div > span {
    margin-top: 4px;
    color: #718096;
    font-size: 12px;
    line-height: 1.5;
}

.account-profile-summary small {
    display: inline-block;
    margin-top: 9px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #e3ebf6;
    color: #385879;
    font-size: 10px;
    font-weight: 600;
}

.account-security-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f6f8fb;
    color: #697b90;
    font-size: 12px;
    line-height: 1.65;
}

.account-security-note .portal-ui-icon {
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid #426991;
    outline-offset: 3px;
}

.status-badge .portal-ui-icon {
    width: 14px;
    height: 14px;
}

.workspace-card-heading h2,
.workspace-page-heading > div,
.workspace-dialog-heading > div {
    min-width: 0;
    overflow-wrap: anywhere;
}

.workspace-page-heading p {
    flex-wrap: wrap;
    line-height: 1.6;
}

.workspace-dialog-heading h2 {
    line-height: 1.4;
}

.workspace-dialog-close {
    flex: 0 0 auto;
}

@media (prefers-reduced-motion: reduce) {
    .account-menu summary,
    .account-menu-chevron {
        transition: none;
    }
}

.workspace-main .application-summary-card > .btn {
    margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
}

@media (max-width: 600px) {
    .merit-summary {
        grid-template-columns: 1fr;
    }

    .workspace-dialog:has([data-selection-form]) {
        width: calc(100% - 24px);
    }

    .application-submitted-banner > .status-badge {
        margin-left: 0;
    }

    .application-submitted-banner {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 14px;
    }

    .application-submitted-icon {
        width: 40px;
        height: 40px;
        border-radius: 11px;
    }

    .application-submitted-banner > .status-badge {
        grid-column: 2;
        justify-self: start;
    }

    .account-menu summary {
        gap: 8px;
        padding: 6px;
    }

    .workspace-page-heading {
        flex-wrap: wrap;
    }

    .workspace-site-button {
        font-size: 12px;
    }

    .workspace-card-heading {
        flex-wrap: wrap;
        gap: 12px;
    }

    .account-menu-identity strong,
    .account-menu-identity small {
        max-width: 100px;
    }

    .account-profile-summary {
        padding: 16px;
        gap: 12px;
    }

    .account-dialog .workspace-dialog-actions {
        display: flex;
        flex-wrap: wrap;
    }

    .account-dialog .workspace-dialog-actions .btn {
        flex: 1;
    }

    .document-review-grid {
        padding: var(--portal-panel-gutter);
        gap: var(--portal-section-gap);
    }

    .document-review-card {
        padding: 18px;
    }

    .workspace-main .workspace-filters {
        padding: 16px var(--portal-panel-gutter);
    }
}

.account-menu-panel {
    width: min(320px, calc(100vw - 32px));
    padding: 10px;
    border-radius: 20px;
    border-color: #e6ebf2;
    box-shadow: 0 24px 64px rgba(10, 26, 50, .2), 0 4px 12px rgba(10, 26, 50, .06);
    animation: account-panel-enter .18s ease-out both;
    transform-origin: top right;
}

.account-menu-panel p {
    margin: 0 0 8px;
    padding: 13px 12px 15px;
    border-bottom-color: #edf1f6;
}

.account-menu-panel p strong {
    color: #102744;
    font-size: 13px;
    font-weight: 600;
}

.account-menu-panel p span {
    margin-top: 4px;
    color: #74849a;
    font-size: 11px;
}

.account-menu-panel > button,
.account-menu-panel form button {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #233a56;
    font: inherit;
    font-size: 12px;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.account-menu-panel > button:hover,
.account-menu-panel form button:hover {
    background: #f1f5f9;
    color: #102744;
    transform: translateX(2px);
}

.account-menu-panel .account-menu-item {
    gap: 11px;
}

.account-menu-panel .account-menu-item .portal-ui-icon {
    width: 18px;
    height: 18px;
    color: #8a702d;
}

.account-menu-panel > button > .portal-ui-icon {
    color: #9aa7b7;
}

.account-menu-panel form {
    margin-top: 8px;
    padding-top: 8px;
    border-top-color: #edf1f6;
}

.account-menu-panel form button {
    color: #a13b46;
}

.account-menu-panel form button:hover {
    background: #fff1f1;
    color: #922d39;
}

.workspace-dialog {
    border-radius: 24px;
    border-color: rgba(226, 232, 240, .9);
    box-shadow: 0 36px 100px rgba(5, 18, 36, .32), 0 8px 24px rgba(5, 18, 36, .12);
}

.workspace-dialog[open] {
    animation: workspace-dialog-enter .22s cubic-bezier(.2, .8, .2, 1) both;
}

.workspace-dialog::backdrop {
    background: rgba(5, 18, 36, .62);
    backdrop-filter: blur(7px);
    animation: workspace-backdrop-enter .2s ease-out both;
}

.workspace-dialog-heading {
    padding: 22px 26px;
}

.workspace-dialog-close {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f4f6f9;
    color: #63748a;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.workspace-dialog-heading {
    border-radius: 23px 23px 0 0;
    background-clip: padding-box;
}

.workspace-dialog-actions {
    border-radius: 0 0 23px 23px;
    background-clip: padding-box;
}

.workspace-dialog-close:hover {
    background: #e9eef4;
    color: #172f4c;
    transform: rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {
    .account-menu-panel,
    .account-menu-panel > button,
    .account-menu-panel form button,
    .workspace-dialog[open],
    .workspace-dialog::backdrop,
    .workspace-dialog-close,
    .portal-home-hero,
    .portal-home-hero-seal,
    .dashboard-metrics > a,
    .portal-home-path-card {
        animation: none;
        transition: none;
    }
}

/* Premium dashboard cards and application details */
.workspace-card {
    border-radius: 16px;
    border-color: #e1e8f0;
    box-shadow: 0 8px 24px rgba(10, 26, 50, .055);
}

.workspace-card-heading {
    padding: 14px var(--portal-panel-gutter);
    background: #fff;
}

.workspace-site-button,
.btn {
    border-radius: 10px;
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.workspace-site-button:hover,
.btn:hover {
    transform: translateY(-1px);
}

.field input,
.field select,
.field textarea {
    border-radius: 9px;
    border-color: #dce5ec;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: #286697;
    box-shadow: 0 0 0 3px rgba(40, 102, 151, .12);
}

.workspace-main .table-wrap {
    overflow-x: auto;
    border: 1px solid #e3e9f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(10, 26, 50, .045);
}

.workspace-main .status-badge,
.application-status-page .status-badge,
.application-details-page .status-badge {
    border-radius: 999px;
}

.portal-toast {
    border-radius: 13px;
}

.portal-home-hero {
    animation: dashboard-rise .55s cubic-bezier(.2, .8, .2, 1) both;
}

.portal-home-hero-seal {
    animation: dashboard-seal-float 5s ease-in-out .5s infinite;
}

.dashboard-metrics > a,
.portal-home-path-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(10, 26, 50, .065);
    animation: dashboard-rise .55s cubic-bezier(.2, .8, .2, 1) both;
    transition: none;
}

.dashboard-metrics > a:nth-child(2),
.portal-home-path-card:nth-child(2) { animation-delay: .08s; }

.dashboard-metrics > a:nth-child(3),
.portal-home-path-card:nth-child(3) { animation-delay: .16s; }

.dashboard-metrics > a:nth-child(4),
.portal-home-path-card:nth-child(4) { animation-delay: .24s; }

.dashboard-metrics > a:nth-child(5),
.portal-home-path-card:nth-child(5) {
    animation-delay: .32s;
}

.dashboard-metrics > a:nth-child(6),
.portal-home-path-card:nth-child(6) {
    animation-delay: .4s;
}

.admin-dashboard-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: minmax(62px, auto);
    gap: 12px;
}

.admin-dashboard-metrics > .dashboard-total-metric {
    grid-row: span 2;
}

.admin-dashboard-metrics > .dashboard-category-metric {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-content: center;
    align-items: center;
    gap: 4px 10px;
    min-height: 62px;
    padding: 9px 15px;
}

.admin-dashboard-metrics .dashboard-category-name {
    grid-column: 1;
    grid-row: 1;
    color: #17314f;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.admin-dashboard-metrics .dashboard-category-metric > strong {
    grid-column: 2;
    grid-row: 1 / 3;
    justify-self: end;
    color: var(--navy);
    font-size: 22px;
    line-height: 1;
}

.admin-dashboard-metrics .dashboard-category-metric > small {
    grid-column: 1;
    grid-row: 2;
}

@media (max-width: 900px) {
    .admin-dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: auto;
    }

    .admin-dashboard-metrics > .dashboard-total-metric {
        grid-row: auto;
    }

    .admin-dashboard-metrics > .dashboard-category-metric {
        min-height: 68px;
    }
}

.portal-action-banner {
    animation: dashboard-rise .55s cubic-bezier(.2, .8, .2, 1) .2s both;
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(10, 26, 50, .07);
}

.application-details-page {
    display: flow-root;
}

.application-details-page > .workspace-page-heading {
    margin-bottom: var(--portal-section-gap);
    padding: 16px var(--portal-panel-gutter);
    border: 1px solid #e3eaf2;
    border-radius: 20px;
    background: linear-gradient(115deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 8px 22px rgba(10, 26, 50, .045);
}

.application-details-page .application-detail-header {
    position: relative;
    overflow: hidden;
    margin-bottom: 20px;
    padding: 25px 28px;
    border-color: #dfe7f0;
    border-radius: 22px;
    background: radial-gradient(circle at 100% 0, #edf4fa 0, transparent 43%), #fff;
    box-shadow: 0 12px 30px rgba(10, 26, 50, .065);
}

.application-details-page .application-detail-header img {
    width: 92px;
    height: 92px;
    border-radius: 18px;
    box-shadow: 0 8px 18px rgba(10, 26, 50, .12);
}

.application-details-page .application-detail-header h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: 7px;
    font-size: clamp(18px, 2vw, 22px);
}

.application-details-page .application-detail-header p {
    margin-top: 6px;
    color: #6b7d90;
    line-height: 1.55;
}

.application-details-page .application-summary-card {
    overflow: hidden;
    margin-bottom: var(--portal-section-gap);
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(10, 26, 50, .05);
    animation: dashboard-rise .45s ease both;
}

.application-details-page .application-summary-card:nth-of-type(2) {
    animation-delay: .06s;
}

.application-details-page .application-summary-card:nth-of-type(3) {
    animation-delay: .12s;
}

.application-details-page .workspace-card-heading {
    min-height: 64px;
    padding: 14px var(--portal-panel-gutter);
    background: linear-gradient(100deg, #fff, #fbfcfe);
}

.application-details-page .workspace-card-heading h2 {
    color: #17314f;
    font-size: 13px;
    letter-spacing: .035em;
}

.application-details-page .application-summary {
    padding: 4px var(--portal-panel-gutter) 12px;
}

.application-details-page .application-summary > div {
    padding: 12px 0;
    border-bottom-color: #edf1f6;
}

.application-details-page .application-summary dt {
    font-size: 10px;
    letter-spacing: .055em;
}

.application-details-page .application-summary dd {
    color: #1a3452;
    font-size: 13px;
    line-height: 1.65;
}

@media (prefers-reduced-motion: reduce) {
    .dashboard-metrics > a,
    .portal-home-path-card,
    .portal-action-banner,
    .application-details-page .application-summary-card {
        animation: none;
        transition: none;
    }
}

@media (max-width: 600px) {
    .application-details-page > .workspace-page-heading {
        align-items: flex-start;
        padding: 16px var(--portal-panel-gutter);
    }

    .application-details-page .application-detail-header {
        align-items: flex-start;
        gap: 14px;
        padding: 18px;
    }

    .application-details-page .application-detail-header img {
        width: 68px;
        height: 68px;
    }

    .application-details-page .application-summary {
        grid-template-columns: 1fr;
        padding-inline: var(--portal-panel-gutter);
    }
}

.admin-detail-file-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    gap: 8px;
    min-width: 0;
    margin: 0;
}

.application-details-admin .application-summary .admin-detail-with-document {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-content: center;
    gap: 4px 12px;
}

.application-details-admin .admin-detail-with-document > dt {
    grid-column: 1;
    grid-row: 1;
}

.application-details-admin .application-summary .admin-detail-entered-value {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
}

.application-details-admin .application-summary .admin-detail-file-actions {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    margin: 0;
}

.admin-document-trigger {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin: 0;
}

.admin-document-trigger > .btn {
    white-space: nowrap;
}

.admin-detail-entered-value {
    min-width: 0;
    overflow-wrap: anywhere;
}

.document-review-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.workspace-dialog.admin-document-viewer {
    width: min(1200px, calc(100vw - 32px));
    max-width: none;
    height: min(94svh, 1000px);
    max-height: calc(100svh - 24px);
    padding: 0;
    overflow: hidden;
    border: 1px solid #d9e2ed;
    border-radius: 16px;
    background: #fff;
}

.workspace-dialog.admin-document-viewer[open] {
    display: flex;
    flex-direction: column;
}

.document-viewer-header {
    position: relative;
    flex: 0 0 auto;
    padding: 18px 22px;
    border-bottom: 1px solid #dce4ee;
    background: #fff;
}

.document-viewer-header > .document-review-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin: 0 36px 14px 0;
}

.document-viewer-header > .workspace-dialog-close {
    position: absolute;
    top: 14px;
    right: 16px;
}

.document-viewer-details {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 20px;
    max-height: 25svh;
    overflow-y: auto;
    margin: 0;
    padding: 0;
}

.document-viewer-details dt {
    color: #64748b;
    font-size: 11px;
    font-weight: 600;
}

.document-viewer-details dd {
    margin: 3px 0 0;
    color: #17314f;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.document-viewer-header > .document-review-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin: 14px 0 0;
    padding: 0;
    border: 0;
}

.document-viewer-header > .document-review-remarks {
    max-height: 80px;
    overflow-y: auto;
}

.document-viewer-content {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    background: #e5eaf0;
}

.document-viewer-content iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 220px;
    border: 0;
}

.document-viewer-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 24px auto;
}

.document-viewer-fallback {
    display: block;
    padding: 10px 16px;
    color: #17314f;
    background: #fff;
    font-size: 12px;
    text-align: center;
}

.document-viewer-empty {
    padding: 36px 24px;
    text-align: center;
}

@media (max-width: 680px) {
    .document-viewer-details {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .document-viewer-header {
        padding: 16px;
    }
}

.application-history-activity {
    margin-top: var(--portal-section-gap);
}

.application-status-identity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    margin-top: 10px;
    color: #64748b;
    font-size: 13px;
}

.application-status-identity strong {
    color: #17314f;
}

.application-result-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 360px;
    min-height: 360px;
    gap: 16px;
    margin-bottom: var(--portal-section-gap);
    padding: 32px 24px;
    border: 1px solid #c7e5d6;
    border-radius: 22px;
    background: radial-gradient(ellipse at 50% 0, #e5f5ec, transparent 65%), #fff;
    box-shadow: 0 12px 32px #17314f08;
    text-align: center;
}

.application-result-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 25%;
    right: 25%;
    height: 3px;
    background: linear-gradient(90deg, transparent, #c6a454, transparent);
}

.application-result-card::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 280px;
    height: 280px;
    right: -140px;
    bottom: -150px;
    border: 1px solid #17314f0b;
    border-radius: 50%;
    box-shadow: 0 0 0 30px #17314f03, 0 0 0 60px #17314f03;
}

.application-result-card.is-rejected {
    border-color: #e4d8cf;
    background: linear-gradient(135deg, #fcf3eb, #fff 75%);
}

.application-result-card.is-in-progress {
    border-color: #d4e2ef;
    background: radial-gradient(ellipse at 50% 0, #e6effa, transparent 65%), #fff;
}

.is-in-progress .application-result-icon {
    background: #dce9f7;
    color: #315e89;
}

.application-result-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    margin: 0;
    border: 1px solid #ffffffd9;
    border-radius: 50%;
    background: #d9f0e3;
    color: #23724f;
    box-shadow: 0 0 0 9px #ffffffa6, 0 10px 26px #17314f12;
}

.is-rejected .application-result-icon {
    background: #f2e4d9;
    color: #916243;
}

.application-result-card h2 {
    max-width: 700px;
    min-height: 88px;
    display: grid;
    place-items: center;
    margin: 0;
    color: #17314f;
    font-size: clamp(23px, 3vw, 34px);
    line-height: 1.3;
    letter-spacing: -.035em;
}

.application-result-card > p:last-child {
    max-width: 560px;
    min-height: 48px;
    margin: 0 auto;
    color: #64748b;
    line-height: 1.7;
}

.application-status-page > .workspace-page-heading {
    margin-bottom: var(--portal-section-gap);
    padding: 16px var(--portal-panel-gutter);
    border: 1px solid #e3eaf2;
    border-radius: 20px;
    background: linear-gradient(115deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 8px 22px rgba(10, 26, 50, .045);
}

@media (max-width: 680px) {
    .application-result-card {
        height: 440px;
        min-height: 440px;
        border-radius: 16px;
    }

    .application-result-card h2 {
        min-height: 120px;
    }
}

.application-status-page .application-submitted-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    align-items: center;
    margin-bottom: 20px;
    border: 1px solid #cfe5d8;
    border-radius: 22px;
    background: radial-gradient(circle at 100% 0, #dff2e6 0, transparent 42%), linear-gradient(120deg, #f0f9f4, #fff 78%);
    box-shadow: 0 14px 32px rgba(32, 100, 67, .09);
    animation: dashboard-rise .5s cubic-bezier(.2, .8, .2, 1) both;
}

.application-status-page .application-submitted-banner::before {
    content: '';
    position: absolute;
    z-index: -1;
    top: -70px;
    right: -48px;
    width: 220px;
    height: 220px;
    border: 1px solid rgba(69, 150, 106, .14);
    border-radius: 50%;
    box-shadow: 0 0 0 28px rgba(69, 150, 106, .035), 0 0 0 58px rgba(69, 150, 106, .025);
}

.application-status-page .application-submitted-icon {
    flex: 0 0 54px;
    border-radius: 17px;
    box-shadow: 0 0 0 7px rgba(224, 241, 231, .7), 0 10px 22px rgba(40, 119, 79, .12);
}

.application-status-page .application-submitted-copy {
    position: relative;
}

.application-status-page .application-submitted-banner h2 {
    margin: 0;
    color: #173e2d;
    font-size: clamp(20px, 2.5vw, 26px);
    letter-spacing: -.025em;
}

.application-status-page .application-submitted-reference {
    margin: 10px 0 0;
    color: #4e685a;
    font-size: 12px;
}

.application-status-page .application-submitted-reference strong {
    color: #163d2b;
    font-size: 13px;
}

.application-status-page .application-submitted-date {
    color: #536e5f;
    font-size: 12px;
}

.application-status-page .application-submitted-note {
    width: fit-content;
    margin-top: 12px;
    padding: 8px 11px;
    border: 1px solid rgba(99, 140, 113, .16);
    border-radius: 10px;
    background: rgba(255, 255, 255, .72);
    color: #536e5f;
}

.application-status-page .application-submitted-banner > .status-badge {
    position: relative;
    z-index: 1;
    padding: 7px 12px;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(10, 26, 50, .06);
}

.application-status-page .status-overview-grid {
    align-items: stretch;
    gap: var(--portal-section-gap);
    margin: var(--portal-section-gap) 0;
}

.application-status-page .status-overview-grid > .application-summary-card {
    margin-bottom: 0;
}

.application-status-page .application-summary-card {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(10, 26, 50, .05);
    animation: dashboard-rise .45s ease both;
}

.application-status-page .status-overview-grid .application-summary-card:nth-child(2) {
    animation-delay: .08s;
}

.application-status-page .workspace-card-heading {
    min-height: 64px;
    padding: 14px var(--portal-panel-gutter);
    background: linear-gradient(100deg, #fff, #fbfcfe);
}

.application-status-page .application-summary {
    padding: 4px var(--portal-panel-gutter) 12px;
}

.application-status-page .application-summary > div {
    padding: 12px 0;
    border-bottom-color: #edf1f6;
}

.application-status-page .status-overview-grid .application-summary-card:first-child .application-summary > div {
    border-bottom: 0;
}

.application-status-page .application-summary dt {
    font-size: 10px;
    letter-spacing: .055em;
}

.application-status-page .application-summary dd {
    color: #1a3452;
    font-size: 13px;
    line-height: 1.65;
}

.application-status-page .document-review-card {
    border-radius: 16px;
    box-shadow: 0 5px 16px rgba(10, 26, 50, .035);
    transition: transform .2s ease, box-shadow .2s ease;
}

.application-status-page .document-review-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(10, 26, 50, .09);
}

.application-status-page .portal-action-banner {
    margin: 0 0 20px;
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(10, 26, 50, .07);
}

@media (max-width: 600px) {
    .application-status-page > .workspace-page-heading {
        align-items: flex-start;
        gap: 12px;
        padding: 16px var(--portal-panel-gutter);
    }

    .application-status-page .application-submitted-banner {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr);
        align-items: start;
        gap: 14px;
        padding: 18px;
    }

    .application-status-page .application-submitted-icon {
        flex-basis: 48px;
        width: 48px;
        height: 48px;
        min-width: 48px;
        border-radius: 15px;
    }

    .application-status-page .application-submitted-banner > .status-badge {
        grid-column: 2;
        justify-self: start;
        margin: 0;
    }

    .application-status-page .workspace-card-heading {
        padding: 14px var(--portal-panel-gutter);
    }

    .application-status-page .application-summary {
        grid-template-columns: 1fr;
        padding-inline: var(--portal-panel-gutter);
    }
}

@media (prefers-reduced-motion: reduce) {
    .application-status-page .application-submitted-banner,
    .application-status-page .application-summary-card,
    .application-status-page .document-review-card {
        animation: none;
        transition: none;
    }

    .dashboard-metrics > a:hover,
    .portal-home-path-card:hover,
    .application-status-page .document-review-card:hover {
        transform: none;
    }
}
/* Dashboard path cards: clear primary action with supporting destinations. */
.portal-home-submitted {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    min-height: 170px;
    padding: 24px 30px;
    border-color: rgba(197, 154, 69, .32);
    background: linear-gradient(105deg, #fff 0%, #f8fafc 72%, #fbf7ed 100%);
}

.portal-home-submitted .portal-home-path-icon {
    margin: 0;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .15), 0 8px 18px rgba(20, 44, 77, .12);
}

.portal-home-submitted-copy {
    min-width: 0;
}

.portal-home-submitted-copy .portal-home-card-kicker {
    margin: 0 0 7px;
    letter-spacing: .08em;
}

.portal-home-submitted-copy h3 {
    margin: 0 0 6px;
}

.portal-home-submitted-copy p:not(.portal-home-card-kicker) {
    margin: 0;
}

.portal-home-submitted > a {
    align-self: center;
    justify-self: end;
    margin-top: 0;
    white-space: nowrap;
}

.account-menu-panel {
    width: min(288px, calc(100vw - 32px));
    padding: 8px;
}

.account-menu-panel p {
    margin-bottom: 6px;
    padding: 10px 10px 12px;
}

.account-menu-panel > button,
.account-menu-panel form button {
    min-height: 39px;
    padding: 8px 10px;
}

.account-menu-panel form {
    margin-top: 5px;
    padding-top: 5px;
}

.application-status-page .workspace-page-heading h1 {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.portal-home-history {
    position: relative;
    isolation: isolate;
    background: linear-gradient(145deg, #fff 10%, #f4f7fb 100%);
}

.portal-home-history::after {
    position: absolute;
    z-index: -1;
    right: 18px;
    bottom: 15px;
    width: 68px;
    height: 68px;
    border: 1px solid rgba(197, 154, 69, .22);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 9px rgba(197, 154, 69, .045), 0 0 0 18px rgba(197, 154, 69, .025);
    pointer-events: none;
}

.portal-home-centre {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 290px;
    border-color: rgba(20, 44, 77, .14);
    background: #f8fafc;
}

.portal-home-centre > img {
    width: 100%;
    height: 100%;
    min-height: 290px;
    object-fit: cover;
}

.portal-home-centre > div {
    align-self: center;
    padding: 28px;
}

@media (max-width: 700px) {
    .portal-home-submitted {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 16px;
        padding: 22px;
    }

    .portal-home-submitted > a {
        grid-column: 2;
        justify-self: center;
    }

    .portal-home-centre {
        grid-template-columns: 1fr;
    }

    .portal-home-centre > img {
        height: 190px;
        min-height: 190px;
    }

    .portal-home-centre > div {
        padding: 22px;
    }
}

@media (max-width: 420px) {
    .portal-home-submitted {
        grid-template-columns: minmax(0, 1fr);
        justify-items: start;
    }

    .portal-home-submitted > a {
        grid-column: 1;
        justify-self: center;
    }
}

.application-details-user > .workspace-page-heading {
    align-items: center;
    margin-bottom: var(--portal-section-gap);
    padding: 16px var(--portal-panel-gutter);
    border-color: #e5eaf1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(10, 26, 50, .035);
}

.application-details-user > .workspace-page-heading h1 {
    margin: 0;
    color: #102744;
    font-size: clamp(22px, 2.6vw, 28px);
    letter-spacing: -.035em;
}

.application-details-user > .workspace-page-heading p {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 7px 0 0;
    color: #8390a2;
    font-size: 12px;
}

.application-details-user > .workspace-page-heading p a {
    color: #526780;
    text-decoration: none;
}

.application-details-user .application-detail-header {
    min-height: 132px;
    gap: 20px;
    margin-bottom: var(--portal-section-gap);
    padding: 20px var(--portal-panel-gutter);
    border-color: #e1e8f0;
    border-radius: 18px;
    background: linear-gradient(110deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 6px 20px rgba(10, 26, 50, .045);
}

.application-details-user .application-detail-header img {
    width: 78px;
    height: 78px;
    border: 2px solid #ead9a7;
    border-radius: 16px;
}

.application-details-user .application-detail-header p {
    font-size: 12px;
}

.application-details-user .application-summary-card {
    margin-bottom: var(--portal-section-gap);
    border-color: #e4e9f0;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(10, 26, 50, .035);
    animation: none;
}

.application-details-user .application-page-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 9px;
}

.application-details-user .application-export-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: var(--portal-control-height);
    padding: 9px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #24364b;
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    text-decoration: none;
}

.application-details-user .application-export-button:hover {
    border-color: #64748b;
    background: #f1f5f9;
    text-decoration: none;
}

.application-details-user .application-export-button:focus-visible {
    outline: 3px solid #28669755;
    outline-offset: 3px;
}

.application-details-user .application-export-button .workspace-icon {
    width: 17px;
    height: 17px;
}

.application-details-user > .application-summary-card:last-child {
    margin-bottom: 0;
}

.application-details-user .workspace-card-heading {
    min-height: 56px;
    padding: 14px var(--portal-panel-gutter);
    border-bottom: 1px solid #edf1f5;
    background: #fff;
}

.application-details-user .workspace-card-heading h2 {
    font-size: 12px;
    letter-spacing: .055em;
}

.application-details-user .application-summary {
    gap: 0 var(--portal-panel-gutter);
    padding: 4px var(--portal-panel-gutter) 12px;
}

.application-details-user .application-summary > div {
    padding: 12px 0;
}

.application-details-user .application-summary dd {
    line-height: 1.6;
}

#logout-confirm-dialog {
    width: min(100% - 32px, 410px);
    border: 1px solid #e4e9f0;
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(10, 26, 50, .22);
}

#logout-confirm-dialog .workspace-confirm-icon {
    width: 68px;
    height: 68px;
    margin-bottom: 18px;
    border: 2px solid #e8d79e;
    background: #fbf8ec;
    color: #8b6b1d;
}

#logout-confirm-dialog .workspace-confirm-icon .portal-ui-icon {
    display: block;
    width: 26px;
    height: 26px;
}

#logout-confirm-dialog .workspace-confirm-icon::before {
    content: none;
}

#logout-confirm-dialog .workspace-dialog-body {
    padding: 30px 28px 22px;
}

#logout-confirm-dialog h2 {
    color: #102744;
    font-size: 21px;
    font-weight: 650;
    letter-spacing: -.02em;
}

#logout-confirm-dialog p {
    margin-top: 9px;
    font-size: 13px;
}

#logout-confirm-dialog .workspace-dialog-actions {
    justify-content: center;
    gap: 12px;
    padding: 0 24px 26px;
    border-top: 0;
    background: #fff;
}

#logout-confirm-dialog .workspace-dialog-actions .btn {
    min-width: 116px;
    min-height: 40px;
    border-radius: 9px;
}

#logout-confirm-dialog #logout-confirm-accept {
    border-color: #0a1a32;
    background: #0a1a32;
    color: #fff;
}

#logout-confirm-dialog #logout-confirm-accept:hover {
    border-color: #173b60;
    background: #173b60;
}

.merit-list-page > .workspace-page-heading {
    margin-bottom: 12px;
    padding: 18px 22px;
    border: 1px solid #e5eaf1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(10, 26, 50, .035);
}

.merit-list-page > .workspace-page-heading h1 {
    margin: 0;
    color: #102744;
    font-size: clamp(23px, 2.6vw, 29px);
    letter-spacing: -.035em;
}

.merit-list-page > .workspace-page-heading p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 7px 0 0;
    color: #8290a3;
    font-size: 12px;
}

.merit-list-page > .workspace-page-intro {
    max-width: 960px;
    margin: 0 0 14px;
    color: #5f7187;
    font-size: 13px;
    line-height: 1.7;
}

.merit-list-page .merit-policy-banner {
    align-items: center;
    margin: 0 0 16px;
    padding: 17px 20px;
    border-color: #eadfbf;
    border-radius: 14px;
    background: #fbf8ef;
    box-shadow: none;
}

.merit-list-page .merit-policy-banner strong {
    color: #17314f;
    font-size: 13px;
}

.merit-list-page .merit-policy-banner p {
    margin-top: 5px;
    color: #65758a;
    font-size: 12px;
    line-height: 1.65;
}

.merit-list-page .merit-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.merit-list-page .merit-summary > div {
    padding: 15px 17px;
    border-color: #e4e9f0;
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(10, 26, 50, .025);
}

.merit-list-page .merit-summary span {
    color: #78879a;
    font-size: 10px;
    letter-spacing: .045em;
    line-height: 1.5;
    text-transform: uppercase;
}

.merit-list-page .merit-summary strong {
    color: #102744;
    font-size: 18px;
    line-height: 1.45;
}

.merit-list-page > .workspace-card {
    overflow: hidden;
    border: 1px solid #e3e9f1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 20px rgba(10, 26, 50, .04);
}

.merit-list-page > .workspace-card > .workspace-card-heading {
    min-height: 62px;
    padding: 16px 20px;
    background: #fff;
}

.merit-list-page .workspace-filters {
    align-items: end;
    gap: 12px;
    margin: 0;
    padding: 15px 20px;
    border: 0;
    border-bottom: 1px solid #e9edf3;
    background: #f8fafc;
}

.merit-list-page .workspace-filters .field {
    flex: 1 1 190px;
}

.merit-list-page .workspace-filters label {
    margin-bottom: 6px;
    color: #60728a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.merit-list-page .workspace-filters select {
    min-height: 40px;
    border-color: #dce4ee;
    border-radius: 9px;
    background-color: #fff;
}

.merit-list-page .workspace-filters > .btn {
    min-height: 40px;
    padding-inline: 20px;
    border-radius: 9px;
}

.merit-list-page .table {
    min-width: 900px;
}

.merit-list-page .table th {
    padding: 12px 13px;
    background: #f5f7fa;
    color: #67788e;
    font-size: 10px;
    letter-spacing: .055em;
    white-space: nowrap;
}

.merit-list-page .table td {
    padding: 13px;
    color: #344a63;
    vertical-align: middle;
}

.merit-list-page .table tbody tr:hover {
    background: #fbfcfe;
}

.merit-list-page .table td strong {
    color: #17314f;
}

.merit-list-page .pagination {
    padding: 14px 20px;
    border-top: 1px solid #edf1f5;
}

@media (max-width: 900px) {
    .merit-list-page .merit-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .merit-list-page > .workspace-page-heading {
        align-items: flex-start;
        padding: 16px;
    }

    .merit-list-page .merit-policy-banner {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
        padding: 16px;
    }

    .merit-list-page .merit-summary {
        grid-template-columns: 1fr;
    }

    .merit-list-page .merit-summary > div {
        padding: 13px 15px;
    }

    .merit-list-page .workspace-filters {
        padding: 14px;
    }

    .merit-list-page .workspace-filters > .btn {
        width: 100%;
    }

    .merit-list-page > .workspace-card > .workspace-card-heading {
        align-items: flex-start;
        padding: 15px;
    }
}

.selection-rules-page > .workspace-page-heading {
    margin-bottom: 16px;
    padding: 18px 22px;
    border: 1px solid #e5eaf1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(10, 26, 50, .035);
}

.selection-rules-page > .workspace-page-heading h1 {
    margin: 0;
    color: #102744;
    font-size: clamp(23px, 2.6vw, 29px);
    letter-spacing: -.035em;
}

.selection-rules-page > .workspace-page-heading p {
    margin: 7px 0 0;
    color: #78879a;
    font-size: 13px;
    line-height: 1.6;
}

.selection-rules-page > .portal-action-banner {
    align-items: flex-start;
    margin: 0 0 18px;
    padding: 20px 23px;
    border-color: #eadfbf;
    border-radius: 15px;
    background: #fbf8ef;
    box-shadow: none;
}

.selection-rules-page > .portal-action-banner h2 {
    margin: 8px 0 6px;
    color: #17314f;
    font-size: clamp(18px, 2vw, 22px);
}

.selection-rules-page > .portal-action-banner p {
    max-width: 1000px;
    color: #65758a;
    font-size: 12px;
    line-height: 1.7;
}

.selection-rules-page .rules-grid {
    gap: 16px;
}

.selection-rules-page .rules-card {
    margin: 0;
    border: 1px solid #e3e9f1;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(10, 26, 50, .035);
}

.selection-rules-page .workspace-card-heading {
    min-height: 58px;
    padding: 15px 19px;
    border-bottom: 1px solid #edf1f5;
    background: #fff;
}

.selection-rules-page .workspace-card-heading h2 {
    color: #17314f;
    font-size: 15px;
    letter-spacing: .015em;
}

.selection-rules-page .workspace-heading-tag {
    border-radius: 999px;
    background: #f8f3e5;
    color: #83671f;
}

.selection-rules-page .rules-card .table th {
    padding: 11px 16px;
    background: #f6f8fb;
    color: #687990;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.selection-rules-page .rules-card .table td {
    padding: 11px 16px;
    color: #354b64;
    font-size: 13px;
    line-height: 1.6;
}

.selection-rules-page .rules-card > p {
    margin: 0;
    padding: 13px 19px 17px;
    color: #687990;
    font-size: 13px;
    line-height: 1.7;
}

.selection-rules-page .selection-rule-sequence {
    margin: 0;
    padding: 16px 22px 8px 44px;
    color: #43566d;
    font-size: 13px;
    line-height: 1.75;
}

.selection-rules-page .selection-rule-sequence li {
    margin-bottom: 12px;
    padding-left: 5px;
}

.selection-rules-page > .rules-card {
    margin-top: 16px;
}

@media (max-width: 600px) {
    .selection-rules-page > .workspace-page-heading {
        align-items: flex-start;
        padding: 16px;
    }

    .selection-rules-page > .portal-action-banner {
        padding: 17px;
    }

    .selection-rules-page .workspace-card-heading {
        padding: 14px 15px;
    }

    .selection-rules-page .rules-card > p {
        padding-inline: 15px;
    }
}

.selection-rules-page > .portal-action-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 170px;
    align-items: center;
    margin-bottom: 20px;
    padding: 26px 30px;
    border: 1px solid #213b5b;
    border-radius: 18px;
    background: linear-gradient(115deg, #0a1a32 0%, #173b60 100%);
    box-shadow: 0 14px 30px rgba(10, 26, 50, .12);
}

.selection-rules-page > .portal-action-banner::after {
    position: absolute;
    z-index: -1;
    top: -88px;
    right: -42px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(213, 173, 64, .3);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 22px rgba(213, 173, 64, .055), 0 0 0 50px rgba(255, 255, 255, .025);
    pointer-events: none;
}

.selection-rules-page > .portal-action-banner .workspace-heading-tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border: 1px solid rgba(213, 173, 64, .34);
    border-radius: 999px;
    background: rgba(213, 173, 64, .1);
    color: #f0d47f;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.selection-rules-page > .portal-action-banner h2 {
    margin: 13px 0 7px;
    color: #fff;
    font-size: clamp(22px, 2.8vw, 29px);
    letter-spacing: -.025em;
}

.selection-rules-page > .portal-action-banner p {
    max-width: 940px;
    color: #d6e0ec;
    font-size: 14px;
    line-height: 1.75;
}

.selection-rules-page .rules-grid {
    align-items: start;
    gap: 18px;
}

.selection-rules-page .rules-card {
    border-color: #e1e7ef;
    border-radius: 17px;
    box-shadow: 0 6px 20px rgba(10, 26, 50, .045);
}

.selection-rules-page .rules-card .workspace-card-heading {
    position: relative;
    min-height: 62px;
    padding: 17px 20px 15px 23px;
    background: linear-gradient(100deg, #fff, #fafbfd);
}

.selection-rules-page .rules-card .workspace-card-heading::before {
    position: absolute;
    top: 17px;
    bottom: 17px;
    left: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #d5ad40;
    content: "";
}

.selection-rules-page .rules-card .table tbody tr:last-child {
    background: #fbf8ef;
}

.selection-rules-page .rules-card .table tbody tr:last-child td {
    color: #17314f;
}

.selection-rules-page .selection-rule-sequence {
    display: grid;
    gap: 8px;
    padding: 17px 18px 12px;
    list-style: none;
    counter-reset: tie-break-step;
}

.selection-rules-page .selection-rule-sequence li {
    position: relative;
    min-height: 44px;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 10px 12px 10px 46px;
    border: 1px solid #edf0f4;
    border-radius: 11px;
    background: #fbfcfd;
    counter-increment: tie-break-step;
}

.selection-rules-page .selection-rule-sequence li::before {
    position: absolute;
    left: 12px;
    display: grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 50%;
    background: #f5eedb;
    color: #86681f;
    content: counter(tie-break-step);
    font-size: 11px;
    font-weight: 700;
}

.selection-rules-page > .rules-card {
    margin-top: 18px;
}

@media (max-width: 600px) {
    .selection-rules-page > .portal-action-banner {
        min-height: 0;
        margin-bottom: 16px;
        padding: 22px 19px;
    }

    .selection-rules-page > .portal-action-banner::after {
        right: -140px;
    }

    .selection-rules-page .rules-grid {
        gap: 14px;
    }
}

/* Shared modal system across account, admin and confirmation dialogs. */
dialog.workspace-dialog {
    max-height: min(90dvh, 900px);
    overflow: auto;
    overscroll-behavior: contain;
    border: 1px solid #e1e7ef;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(5, 18, 36, .26), 0 8px 24px rgba(5, 18, 36, .1);
    scrollbar-color: #cbd5e1 transparent;
    scrollbar-width: thin;
}

dialog.workspace-dialog::backdrop {
    background: rgba(5, 18, 36, .6);
    backdrop-filter: blur(6px);
}

dialog.workspace-dialog .workspace-dialog-heading {
    min-height: 68px;
    padding: 16px var(--portal-panel-gutter);
    border-bottom: 1px solid #edf0f4;
    border-radius: 19px 19px 0 0;
    background: #fff;
}

dialog.workspace-dialog .workspace-dialog-heading h2 {
    color: #102744;
    font-size: 16px;
    font-weight: 650;
    letter-spacing: -.015em;
}

dialog.workspace-dialog .workspace-dialog-body {
    padding: var(--portal-panel-gutter);
}

dialog.workspace-dialog .workspace-dialog-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    padding: 16px var(--portal-panel-gutter);
    border-top: 1px solid #edf0f4;
    border-radius: 0 0 19px 19px;
    background: #f9fafc;
}

dialog.workspace-dialog .workspace-dialog-actions .btn {
    min-height: 40px;
    border-radius: 9px;
}

dialog.workspace-dialog .workspace-dialog-close {
    width: 36px;
    height: 36px;
    border: 1px solid #e7ebf1;
    border-radius: 50%;
    background: #f8fafc;
    color: #60728a;
}

dialog.workspace-dialog .workspace-dialog-close:hover {
    border-color: #e7d59a;
    background: #fbf8ec;
    color: #715718;
    transform: none;
}

dialog.workspace-dialog .field input:focus,
dialog.workspace-dialog .field select:focus,
dialog.workspace-dialog .field textarea:focus {
    border-color: #c7a64b;
    box-shadow: 0 0 0 3px rgba(213, 173, 64, .16);
    outline: 0;
}

dialog.workspace-dialog .workspace-dialog-body > .field,
dialog.workspace-dialog .workspace-admin-create-form > .field {
    margin-bottom: var(--portal-field-gap);
}

dialog.workspace-dialog .field:last-child {
    margin-bottom: 0;
}

dialog.workspace-dialog .workspace-admin-create-form > .field,
.scholarship-payment-form > .field,
.scholarship-cheque-grid > .field {
    margin-bottom: 0;
}

@media (max-width: 600px) {
    dialog.workspace-dialog,
    dialog.workspace-dialog.workspace-dialog-wide,
    dialog.workspace-dialog.account-dialog,
    dialog.workspace-dialog.workspace-confirm-dialog {
        width: calc(100% - 24px);
        max-width: none;
        max-height: 92dvh;
        border-radius: 18px;
    }

    dialog.workspace-dialog .workspace-dialog-heading {
        min-height: 60px;
        padding: 16px var(--portal-panel-gutter);
        border-radius: 17px 17px 0 0;
    }

    dialog.workspace-dialog .workspace-dialog-body {
        padding: var(--portal-panel-gutter);
    }

    dialog.workspace-dialog .workspace-dialog-actions {
        gap: 8px;
        padding: 16px var(--portal-panel-gutter);
        border-radius: 0 0 17px 17px;
    }

    dialog.workspace-dialog .workspace-dialog-actions .btn {
        flex: 1 1 auto;
    }

    dialog.workspace-dialog .account-dialog-title {
        gap: 10px;
    }

    dialog.workspace-dialog .account-dialog-icon {
        width: 38px;
        height: 38px;
    }
}

dialog.workspace-dialog#profile-dialog {
    width: min(600px, calc(100vw - 24px));
    max-height: min(92dvh, 840px);
    padding: 0;
    overflow: hidden;
}

#profile-dialog > form {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: inherit;
    width: 100%;
}

#profile-dialog .workspace-dialog-heading,
#profile-dialog .workspace-dialog-actions {
    flex: 0 0 auto;
}

#profile-dialog .workspace-dialog-heading {
    background: #f8fafc;
    border-top: 3px solid var(--gold);
}

#profile-dialog .account-dialog-icon {
    background: #17314f;
    border-color: #17314f;
    color: #ead49c;
}

#profile-dialog .workspace-dialog-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    gap: 22px;
    padding: 24px;
}

#profile-dialog .account-profile-summary {
    background: radial-gradient(ellipse at top right, #e4eef8, transparent 75%), #f8fafc;
}

#profile-dialog .account-profile-avatar.is-default {
    height: 88px;
    border-radius: 50%;
    background: #edf3f9;
}

.account-profile-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
}

.account-profile-fields .field {
    min-width: 0;
    margin: 0;
}

.account-profile-name {
    grid-column: 1 / -1;
}

#profile-dialog .field input {
    min-height: 46px;
    border-radius: 10px;
}

#profile-dialog .workspace-dialog-actions .btn {
    min-width: 108px;
    min-height: 44px;
}

@media (max-width: 480px) {
    #profile-dialog .workspace-dialog-body {
        padding: 16px;
        gap: 18px;
    }

    .account-profile-fields {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    #profile-dialog .account-profile-summary {
        padding: 14px;
    }

    #profile-dialog .account-profile-avatar {
        width: 72px;
        height: 90px;
        border-radius: 12px;
    }

    #profile-dialog .account-profile-avatar.is-default {
        height: 72px;
    }
}

@media (max-width: 600px) {
    .application-details-user > .workspace-page-heading {
        gap: 14px;
        padding: 16px var(--portal-panel-gutter);
    }

    .application-details-user .application-detail-header {
        min-height: 0;
        padding: 20px var(--portal-panel-gutter);
    }

    .application-details-user .application-summary {
        padding: 4px var(--portal-panel-gutter) 12px;
    }

    .application-details-user .application-page-actions {
        width: 100%;
    }

    .application-details-user .application-page-actions > a {
        flex: 1 1 auto;
    }
}

/* Shared visual polish across public, student and administrator pages. */
:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid rgba(213, 173, 64, .65);
    outline-offset: 3px;
}

.workspace-main > .workspace-page-heading {
    min-height: 88px;
    margin-bottom: var(--portal-section-gap);
    padding: 16px var(--portal-panel-gutter);
    border: 1px solid #e4e9f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(10, 26, 50, .035);
}

.workspace-main > .workspace-page-heading h1 {
    margin: 0;
    color: #102744;
    font-size: clamp(22px, 2.5vw, 29px);
    line-height: 1.25;
    letter-spacing: -.035em;
}

.workspace-main > .workspace-page-heading p {
    margin: 7px 0 0;
    color: #78879a;
    font-size: 12px;
    line-height: 1.55;
}

.workspace-main > .workspace-page-intro {
    max-width: 880px;
    margin: 0 0 16px;
    color: #64768b;
    font-size: 13px;
    line-height: 1.7;
}

.workspace-main > .workspace-card {
    border-color: #e2e8f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(10, 26, 50, .035);
}

.workspace-main > .workspace-card > .workspace-card-heading {
    min-height: 60px;
    padding: 14px var(--portal-panel-gutter);
    border-bottom: 1px solid #edf0f4;
}

.workspace-main > .workspace-card > .workspace-card-heading h2 {
    color: #17314f;
    font-size: 13px;
    font-weight: 650;
    letter-spacing: .01em;
}

.workspace-main .workspace-filters {
    align-items: end;
    border-radius: 0;
}

.workspace-main .workspace-filters .field {
    margin: 0;
}

.workspace-main .field label {
    color: #526780;
    font-size: 11px;
    font-weight: 600;
}

.workspace-main .field input:not([type="checkbox"]):not([type="radio"]),
.workspace-main .field select,
.workspace-main .field textarea {
    min-height: var(--portal-control-height);
    border-radius: 9px;
    border-color: #d8e1eb;
    background-color: #fff;
}

.workspace-main .field textarea {
    min-height: 96px;
}

.workspace-main .btn,
.workspace-main .workspace-site-button {
    height: auto;
    min-height: var(--portal-control-height);
    border-radius: 9px;
    font-weight: 600;
}

.workspace-main .status-badge,
.workspace-main .role-badge,
.workspace-main .workspace-heading-tag {
    border-radius: 999px;
}

.workspace-main .table tbody tr:hover td {
    background: #f8fafc;
}

.workspace-main .table-wrap {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}

.workspace-sidebar .workspace-nav-link {
    transition: background-color .16s ease, color .16s ease;
}

.workspace-sidebar .workspace-nav-link:focus-visible,
.workspace-topbar a:focus-visible,
.workspace-topbar button:focus-visible {
    outline-offset: -2px;
}

.portal-login-field input:focus-visible,
.portal-login-input-wrap:focus-within {
    outline: 0;
    border-color: #c7a64b;
    box-shadow: 0 0 0 3px rgba(213, 173, 64, .16);
}

@media (max-width: 680px) {
    .workspace-main > .workspace-page-heading {
        min-height: 0;
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 12px;
        padding: 16px var(--portal-panel-gutter);
    }

    .workspace-main .workspace-filters > .btn {
        flex: 1 1 100%;
        justify-content: center;
    }

    .workspace-main > .workspace-page-heading > .workspace-site-button {
        margin-left: auto;
    }

    .workspace-main > .workspace-card > .workspace-card-heading {
        padding: 14px var(--portal-panel-gutter);
    }
}

@media (max-width: 420px) {
    .workspace-main > .workspace-page-heading > .workspace-site-button {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }
}

.application-number-settings-card {
    max-width: 760px;
}

.application-details-admin {
    --admin-section-spacing: var(--portal-section-gap);
}

.application-details-admin .workspace-page-heading {
    gap: 12px;
    margin-bottom: var(--admin-section-spacing);
}

.application-details-admin .workspace-page-heading p {
    flex-wrap: wrap;
    gap: 6px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.application-details-admin .application-detail-header {
    gap: 14px;
    margin-bottom: var(--admin-section-spacing);
    padding: 16px var(--portal-panel-gutter);
    border-radius: 8px;
    box-shadow: none;
}

.scholarship-profile-page .application-detail-header .application-detail-category {
    display: inline-block;
    max-width: 100%;
    margin: 4px 0 8px;
    padding: 6px 12px;
    border: 1px solid #d8b45b;
    border-radius: 999px;
    background: #fff4d6;
    color: #17314f;
    font-weight: 700;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.application-details-admin .application-detail-header > div {
    min-width: 0;
}

.application-details-admin .application-detail-header img {
    width: 64px;
    height: 72px;
    border-width: 2px;
    border-radius: 6px;
}

.application-details-admin .application-detail-header h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    font-size: 17px;
}

.application-details-admin .application-summary-card {
    margin-bottom: var(--admin-section-spacing);
    border-radius: 8px;
    box-shadow: none;
}

.application-details-admin .workspace-card-heading {
    min-height: 42px;
    padding: 14px var(--portal-panel-gutter);
    background: #f8fafc;
}

.application-details-admin .workspace-card-heading h2 {
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: .025em;
}

.application-details-admin .application-summary {
    gap: 0 var(--portal-panel-gutter);
    padding: 4px var(--portal-panel-gutter) 12px;
}

.application-details-admin .application-summary > div {
    padding: 12px 0;
}

.application-details-admin .application-summary dt {
    color: #64748b;
    line-height: 1.45;
}

.application-details-admin .application-summary dd {
    margin-top: 4px;
    line-height: 1.5;
}

.application-details-admin .merit-score-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 16px var(--portal-panel-gutter);
}

.application-details-admin .merit-score-summary > div {
    padding: 8px 10px;
    border: 1px solid #e5eaf2;
    border-radius: 6px;
    background: #f8fafc;
}

.application-details-admin .application-summary.merit-score-summary > div:last-child {
    border: 1px solid #e4d4a4;
    background: #fffbef;
}

.application-details-admin input:focus-visible,
.application-details-admin textarea:focus-visible {
    outline: 2px solid #c7a64b;
    outline-offset: 2px;
}

@media (min-width: 901px) {
    .application-details-admin .application-summary.admin-special-category-summary {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .application-details-admin .admin-special-category-summary > div {
        grid-column: auto;
        min-width: 0;
    }
}

.application-details-admin .admin-detail-review-section {
    scroll-margin-top: 24px;
}

.application-details-admin .admin-section-documents {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 0 var(--portal-panel-gutter) 12px;
}

.application-details-admin .admin-section-documents:has(> :only-child) {
    grid-template-columns: minmax(0, 1fr);
}

.application-details-admin .admin-section-documents:empty {
    display: none;
}

.application-details-admin .admin-section-documents .document-review-card {
    min-width: 0;
    margin: 0;
    padding: 10px;
    border-radius: 6px;
}

.application-details-admin .admin-document-file {
    margin-top: 6px;
}

.application-details-admin .admin-document-file .application-file-link {
    flex-wrap: wrap;
    gap: 6px;
    width: auto;
    padding: 3px 4px 3px 6px;
}

.application-details-admin .admin-section-documents .document-review-heading {
    gap: 6px;
}

.application-details-admin .admin-section-documents .document-review-heading h3 {
    font-size: 12px;
}

.application-details-admin .admin-section-documents .status-badge {
    padding: 3px 7px;
    font-size: 10px;
}

.application-details-admin .admin-section-documents .document-review-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: end;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
}

.application-details-admin .admin-section-documents .document-review-form label {
    margin-bottom: 3px;
    font-size: 11px;
}

.application-details-admin .admin-section-documents .document-review-form select,
.application-details-admin .admin-section-documents .document-review-form input[type="number"],
.application-details-admin .admin-section-documents .document-review-form textarea {
    height: 34px;
    min-height: 34px;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 20px;
}

.application-details-admin .admin-section-documents .document-review-form .btn {
    grid-column: auto;
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12px;
}

.application-details-admin .admin-section-documents .document-verification-note,
.application-details-admin .admin-section-documents .document-review-remarks,
.application-details-admin .admin-section-documents .application-hint {
    margin: 6px 0 0;
    font-size: 11px;
    line-height: 1.4;
}

.application-details-admin .admin-section-documents .document-review-remarks {
    padding: 5px 8px;
}

.application-details-admin .admin-inline-review-form {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.application-details-admin .admin-inline-review-form textarea {
    min-height: 76px;
    height: auto;
}

.application-details-admin .admin-document-review-list {
    gap: 8px;
    margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
}

.application-details-admin .admin-document-review-list .document-review-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(180px, .85fr);
    align-items: end;
    gap: 8px 16px;
    padding: 12px 14px;
    border-radius: 8px;
}

.application-details-admin .admin-document-review-list .document-review-heading {
    grid-column: 1;
    align-self: center;
    margin: 0;
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
}

.application-details-admin .admin-document-review-list .admin-document-file {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    min-width: 0;
}

.application-details-admin .admin-document-review-list .application-file-link {
    flex-wrap: nowrap;
    width: 100%;
    height: var(--portal-control-height);
    padding: 3px 4px 3px 8px;
}

.application-details-admin .admin-document-review-list .application-file-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.application-details-admin .admin-document-review-list .application-file-button {
    flex-shrink: 0;
    min-height: 36px;
    height: 36px;
}

.application-details-admin .admin-document-review-list .document-review-form {
    grid-column: 3;
    grid-row: 1;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}

.application-details-admin .admin-document-review-list .document-review-decision label {
    font-size: 10px;
    line-height: 16px;
    margin: 0;
}

.application-details-admin .admin-document-review-list .document-review-decision {
    gap: 6px;
    margin: 0;
}

.application-details-admin .admin-document-review-list .document-review-form select {
    height: var(--portal-control-height);
    min-height: var(--portal-control-height);
    padding: 8px 30px 8px 10px;
}

.application-details-admin .admin-document-review-list .document-review-reason-field,
.application-details-admin .admin-document-review-list .document-photo-confirmation,
.application-details-admin .admin-document-review-list .document-review-remarks {
    grid-column: 1 / -1;
}

.application-details-admin .admin-document-review-list .document-review-form textarea {
    min-height: 110px;
}

.application-details-admin .document-review-dialog {
    width: min(460px, calc(100vw - 32px));
    max-height: calc(100dvh - 40px);
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 80px #0f172a33;
    overflow-y: auto;
}

.application-details-admin [id^="document-review-"],
.application-details-admin #bank-verification,
.application-details-admin #final-review { scroll-margin-block: 100px; }
.application-details-admin [id^="document-review-"]:focus,
.application-details-admin #bank-verification:focus { outline: 2px solid #b99a54; outline-offset: 5px; border-radius: 6px; }
.verification-reminder { padding: 10px 12px; border-left: 3px solid #b99a54; border-radius: 6px; background: #fff8e8; color: #6c521b; font-size: 13px; }

.application-details-admin .document-review-dialog::backdrop {
    background: #0f172a80;
    backdrop-filter: blur(3px);
}

.application-details-admin .document-review-dialog .workspace-dialog-heading {
    align-items: flex-start;
    gap: 16px;
    padding: 16px var(--portal-panel-gutter);
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.application-details-admin .document-review-dialog .workspace-dialog-heading h2 {
    margin: 0;
    font-size: 17px;
    line-height: 1.4;
}

.application-details-admin .document-review-dialog .workspace-dialog-body {
    padding: var(--portal-panel-gutter);
}

.application-details-admin .document-review-dialog .workspace-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px var(--portal-panel-gutter);
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
}

.application-details-admin .document-review-dialog .workspace-dialog-close {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: #fff;
    font-size: 22px;
    line-height: 1;
}

.application-details-admin .document-review-dialog .workspace-dialog-body textarea {
    width: 100%;
    min-height: 120px;
    padding: 12px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    line-height: 1.6;
    resize: vertical;
}

.application-details-admin .document-review-dialog .workspace-dialog-heading p {
    margin: 5px 0 0;
    color: #64748b;
    font-size: 12px;
}

.application-details-admin .document-review-dialog .workspace-dialog-body .field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

@media (max-width: 1000px) {
    .application-details-admin .admin-document-review-list .document-review-card {
        grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr);
    }

    .application-details-admin .admin-document-review-list .document-review-heading {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
    }

    .application-details-admin .admin-document-review-list .admin-document-file {
        grid-column: 1;
        grid-row: 2;
    }

    .application-details-admin .admin-document-review-list .document-review-form {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (max-width: 600px) {
    .application-details-admin .admin-document-review-list .document-review-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .application-details-admin .admin-document-review-list .document-review-form {
        grid-column: 1;
        grid-row: auto;
    }

    .application-details-admin .admin-document-review-list .admin-document-file {
        grid-row: auto;
    }
}

.application-details-admin .admin-bank-review .document-review-heading {
    gap: 6px;
}

.application-details-admin .admin-bank-review .document-review-heading h3 {
    font-size: 12px;
}

.application-details-admin .admin-bank-review .status-badge {
    padding: 3px 7px;
    font-size: 10px;
}

.application-details-admin .admin-bank-review .document-review-form {
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 8px;
    margin-top: 8px;
    padding-top: 8px;
}

.application-details-admin .admin-bank-review .document-review-action-buttons > .btn {
    grid-column: auto;
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12px;
}

.application-details-admin .admin-bank-review .document-review-remarks {
    margin-top: 6px;
    padding: 5px 8px;
    font-size: 11px;
    line-height: 1.4;
}

.application-details-admin .admin-reserve-quota,
.application-details-admin .admin-bank-review {
    margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
    padding: 20px;
    border: 1px solid #dfe7ef;
    border-radius: 12px;
    background: #f8fafc;
}

.application-details-admin .admin-review-subheading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.application-details-admin .admin-bank-review {
    margin-bottom: var(--portal-section-gap);
    padding: 10px;
    border-radius: 6px;
}

.application-details-admin .admin-review-subheading h3 {
    margin: 0;
    color: #17314f;
    font-size: 14px;
    font-weight: 600;
}

.application-details-admin .admin-reserve-quota {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 8px 16px;
    margin-bottom: var(--portal-section-gap);
    padding: 10px;
    border-radius: 6px;
}

.application-details-admin .admin-reserve-quota .admin-review-subheading {
    justify-content: flex-start;
    gap: 6px;
    margin: 0;
    min-height: 32px;
}

.application-details-admin .admin-reserve-quota .admin-review-subheading h3 {
    font-size: 12px;
}

.application-details-admin .admin-reserve-quota .workspace-heading-tag {
    padding: 3px 6px;
    font-size: 10px;
}

.application-details-admin .admin-reserve-quota-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
}

.application-details-admin .admin-reserve-quota > .application-summary {
    grid-column: 1 / -1;
    padding: 0;
}

.application-details-admin .admin-reserve-quota-choice {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.application-details-admin .admin-reserve-quota-choice legend {
    float: left;
    margin: 7px 8px 0 0;
    color: #526780;
    font-size: 12px;
    font-weight: 600;
}

.application-details-admin .admin-reserve-quota-options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.application-details-admin .admin-reserve-quota-options label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 4px 8px;
    border: 1px solid #d8e1eb;
    border-radius: 5px;
    background: #fff;
    color: #17314f;
    cursor: pointer;
    font-size: 12px;
}

.application-details-admin .admin-reserve-quota-options label:has(input:checked) {
    border-color: #c7a64b;
    background: #fffaf0;
}

.application-details-admin .admin-reserve-quota-options input {
    accent-color: #a47f23;
}

.application-details-admin .admin-reserve-quota-fields {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.application-details-admin .admin-reserve-quota-fields[hidden] {
    display: none;
}

.application-details-admin .admin-reserve-quota-fields .field {
    min-width: 0;
    margin: 0;
}

.application-details-admin .admin-reserve-quota-fields label {
    margin-bottom: 3px;
    font-size: 11px;
}

.application-details-admin .admin-reserve-quota-fields input {
    width: 100%;
    height: 34px;
    min-height: 34px;
    padding: 6px 8px;
    font-size: 12px;
}

.application-details-admin .admin-reserve-quota-actions {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
    margin: 0;
}

.application-details-admin .admin-reserve-quota-actions .btn {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 12px;
}

.application-details-admin .admin-final-decision-form {
    margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
    padding-top: var(--portal-section-gap);
    border-top: 1px solid var(--line);
}

.application-details-admin .admin-final-decision-form .admin-review-subheading {
    margin-bottom: 12px;
}

.application-details-admin .admin-final-decision-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--portal-field-gap) var(--portal-panel-gutter);
    align-items: start;
}

.application-details-admin .admin-final-decision-fields .field {
    min-width: 0;
    margin: 0;
    gap: 6px;
}

.application-details-admin .admin-final-decision-fields .selection-decision-note,
.application-details-admin .admin-final-decision-fields .portal-error-summary,
.application-details-admin .admin-final-decision-fields .admin-final-decision-notes,
.application-details-admin .admin-final-decision-fields .decision-eligibility {
    grid-column: 1 / -1;
    margin: 0;
}

.application-details-admin .admin-final-decision-fields [hidden] {
    display: none;
}

.application-details-admin .admin-final-decision-fields label {
    font-size: 12px;
    line-height: 1.5;
    margin: 0;
}

.application-details-admin .admin-final-decision-fields select,
.application-details-admin .admin-final-decision-fields textarea {
    min-height: var(--portal-control-height);
    padding: 8px 10px;
    font-size: 12px;
}

.application-details-admin .admin-final-decision-fields textarea {
    min-height: 96px;
    line-height: 1.6;
}

.application-details-admin .admin-final-decision-form .selection-decision-note {
    margin: 0;
    line-height: 1.7;
}

.application-details-admin .admin-final-decision-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: var(--portal-section-gap);
    padding-top: var(--portal-section-gap);
    border-top: 1px solid var(--line);
}

.application-details-admin .admin-final-decision-actions .btn {
    flex-shrink: 0;
    margin-left: auto;
}

@media (max-width: 900px) {
    .application-details-admin .merit-score-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .application-details-admin .admin-reserve-quota {
        grid-template-columns: minmax(0, 1fr);
    }

    .application-details-admin .admin-section-documents {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .application-details-admin .application-detail-header {
        align-items: flex-start;
        padding: 16px var(--portal-panel-gutter);
    }

    .application-details-admin .workspace-card-heading {
        padding-inline: 16px;
    }

    .application-details-admin .application-summary,
    .application-details-admin .merit-score-summary {
        padding-inline: 16px;
    }

    .application-details-admin .admin-bank-review .document-review-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .application-details-admin .admin-final-decision-form {
        margin-inline: var(--portal-panel-gutter);
    }

    .application-details-admin .admin-final-decision-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .application-details-admin .admin-reserve-quota-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .application-details-admin .admin-section-documents {
        padding: 0 var(--portal-panel-gutter) 12px;
    }

    .application-details-admin .admin-section-documents .document-review-form {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .application-details-admin .admin-section-documents .document-review-form .field:first-of-type {
        grid-column: 1 / -1;
    }

    .application-details-admin .admin-bank-review {
        margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
        padding: 10px;
    }

    .application-details-admin .admin-reserve-quota {
        margin: 0 var(--portal-panel-gutter) var(--portal-section-gap);
        padding: 10px;
    }
}

.application-number-settings-card .workspace-card-heading {
    flex-wrap: wrap;
    gap: 12px 20px;
}

.application-number-settings-card .workspace-heading-tag {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    line-height: 1.5;
    white-space: normal;
}

.application-number-settings-card .workspace-heading-tag strong {
    overflow-wrap: anywhere;
}

.application-number-settings-card .application-number-settings-form {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: var(--portal-field-gap);
    padding: var(--portal-panel-gutter);
}

.application-number-settings-form .field {
    gap: 8px;
    margin: 0;
}

.application-number-settings-form .field label {
    line-height: 16px;
}

.application-number-settings-form .field input {
    height: 44px;
}

.application-number-settings-actions {
    padding-top: 24px;
}

.dashboard-overview {
    --overview-navy: #17314f;
    --overview-gold: #b99a54;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e1e7ef;
    border-radius: 14px;
    background: #fff;
    color: var(--overview-navy);
    box-shadow: 0 8px 28px #17314f0a, 0 1px 3px #17314f04;
}
.dashboard-overview-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 16px 20px; background: linear-gradient(110deg, #fff 65%, #faf8f3); }
.dashboard-overview-header p { margin: 0 0 4px; color: #9b7b35; font-size: 10px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-overview-header h1 { margin: 0; color: #102744; font-size: 22px; font-weight: 650; letter-spacing: -.035em; line-height: 1.3; }
.dashboard-cycle-label { max-width: 100%; padding: 8px 13px; border: 1px solid #e8dfcd; border-radius: 20px; background: #fffdf8; color: #806936; font-size: 11px; font-weight: 500; overflow-wrap: anywhere; }
.dashboard-overview-table-wrap { overflow-x: auto; border-top: 1px solid #e7ecf2; }
.dashboard-overview-table { width: 100%; min-width: 800px; margin: 0; table-layout: fixed; border-collapse: collapse; font-size: 12px; }
.dashboard-overview-summary-column { width: 20%; }
.dashboard-overview-category-column { width: 32%; }
.dashboard-overview-table th, .dashboard-overview-table td { padding: 8px 14px; border-bottom: 1px solid #e9edf3; text-align: center; vertical-align: middle; }
.dashboard-overview-table tr:last-child > * { border-bottom: 0; }
.dashboard-overview-columns > th[scope="col"] { padding: 12px 10px; border-right: 1px solid #ffffff12; border-bottom: 2px solid #c5aa70; background: var(--overview-navy); color: #eef2f7; font-size: 12px; font-weight: 600; line-height: 1.5; }
.dashboard-overview-columns > th[scope="col"]:nth-child(2) { text-align: left; }
.dashboard-overview-columns > th[scope="col"]:last-child { border-right: 0; }
.dashboard-overview-table .dashboard-overview-submitted { width: 20%; min-width: 165px; padding: 16px 12px; border-right: 1px solid #ffffff1a; border-bottom: 0; background: var(--overview-navy); color: #fff; }
.dashboard-overview-submitted a { display: flex; flex-direction: column; align-items: center; gap: 8px; width: fit-content; max-width: 100%; margin: auto; color: inherit; }
.dashboard-overview-submitted a > span { max-width: 130px; color: #e0e8f2; font-size: 13px; font-weight: 500; line-height: 1.5; text-align: center; }
.dashboard-overview-submitted strong { color: #fff; font-size: 32px; font-weight: 650; line-height: 1.1; letter-spacing: -.035em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.dashboard-overview-submitted small { display: flex; justify-content: center; align-items: center; gap: 7px; margin-top: 3px; padding: 7px 9px; border: 1px solid #ffffff30; border-radius: 6px; background: #ffffff08; color: #ead197; font-size: 11px; font-weight: 500; }
.dashboard-overview-submitted a:hover small { border-color: #b99a54; background: #ffffff12; color: #f5dfae; }
.dashboard-overview-table th[scope="row"] { text-align: left; font-size: 13px; font-weight: 500; line-height: 1.5; }
.dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):nth-child(odd) > th, .dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):nth-child(odd) > td { background: #fafbfd; }
.dashboard-overview-category { display: flex; justify-content: space-between; align-items: center; gap: 10px; color: #304b69; }
.dashboard-overview-category > span:last-child { display: grid; place-items: center; flex: 0 0 auto; width: 23px; height: 23px; border-radius: 6px; color: #a1aebe; font-size: 13px; }
.dashboard-overview-category:hover { color: #315b8c; }
.dashboard-overview-table td { border-left: 1px solid #f0f3f7; }
.dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):is(:hover, :focus-within) > th, .dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):is(:hover, :focus-within) > td { background: #f0f4f9; }
.dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):is(:hover, :focus-within) > th { box-shadow: inset 3px 0 #b99a54; }
.dashboard-overview-table tr:is([data-dashboard-category], [data-dashboard-state]):is(:hover, :focus-within) .dashboard-overview-category > span:last-child { background: #e4ebf4; color: #315b8c; }
.dashboard-overview-number { display: inline-grid; place-items: center; min-width: 36px; min-height: 28px; padding: 4px 9px; border: 1px solid #e8edf3; border-radius: 7px; background: #f5f7fa; color: #4b617b; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.dashboard-overview-number.is-total { border-color: #254565; background: #17314f; color: #fff; font-weight: 700; box-shadow: 0 2px 5px #17314f12; }
.dashboard-overview-cell-management .dashboard-overview-number { border-color: #eee3cd; background: #fbf6eb; color: #8d702b; }
.dashboard-overview a:focus-visible, .dashboard-overview-table-wrap:focus-visible { outline: 3px solid var(--overview-gold); outline-offset: -3px; }
.dashboard-overview + .portal-home-section { padding-top: var(--portal-section-gap); }

.dashboard-demographics { margin: var(--portal-section-gap) 0; padding: var(--portal-panel-gutter); background: #fff; border: 1px solid #e1e7ef; border-radius: 14px; }
.dashboard-demographics-scroll { overflow-x: auto; }
.dashboard-demographics-scroll:focus-visible { outline: 3px solid #c5aa70; outline-offset: 3px; }
.dashboard-demographics-table { width: 100%; min-width: 1000px; margin: 0; border-collapse: collapse; color: #111; font-size: 13px; line-height: 1.4; }
.dashboard-demographics-table th, .dashboard-demographics-table td { padding: 5px 7px; border: 1px solid #777; background: #fff; text-align: center; font-weight: 400; }
.dashboard-demographics-table th { background: #17314f; color: #eef2f7; border-color: #ffffff30; font-weight: 600; }
.dashboard-demographics-table th[rowspan], .dashboard-demographics-table th[scope="row"] { text-align: left; }
.dashboard-demographics-table th[scope="rowgroup"] { width: 75px; vertical-align: top; }
.dashboard-demographics-table thead th { white-space: nowrap; }

.dashboard-state-card {
    --overview-navy: #17314f;
    --overview-gold: #b99a54;
    margin: var(--portal-section-gap) 0;
    border: 1px solid #e1e7ef;
    border-radius: 14px;
    background: #fff;
    color: #17314f;
    overflow: hidden;
}
.dashboard-state-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: var(--portal-panel-gutter); border-bottom: 1px solid #e8edf3; }
.dashboard-state-heading h2 { margin: 0; font-size: 18px; }
.dashboard-state-heading p { margin: 5px 0 0; color: #64748b; font-size: 12px; }
.dashboard-state-total { flex-shrink: 0; padding: 6px 10px; border: 1px solid #d8c89f; border-radius: 20px; font-size: 12px; font-weight: 600; }
.dashboard-state-scroll { max-height: 300px; overflow: auto; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-color: #b8c4d2 #f4f6f9; }
.dashboard-state-scroll:focus-visible { outline: 2px solid #b99a54; outline-offset: -2px; }
.dashboard-state-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 9px var(--portal-panel-gutter); border-top: 1px solid #e8edf3; background: #fafbfd; color: #64748b; font-size: 11px; }
.dashboard-state-table { min-width: 650px; }
.dashboard-state-table th:first-child { width: 40%; }
.dashboard-state-table .dashboard-overview-columns > th:first-child { text-align: left; }
.dashboard-state-table .dashboard-overview-columns > th:nth-child(2) { text-align: center; }
.dashboard-state-table a:focus-visible { outline: 2px solid var(--overview-gold); outline-offset: 2px; }
.dashboard-state-table thead { position: sticky; top: 0; z-index: 1; }
.dashboard-state-empty { margin: 0; padding: var(--portal-panel-gutter); color: #64748b; font-size: 13px; }
@media (max-width: 620px) { .dashboard-state-heading { align-items: flex-start; flex-direction: column; gap: 10px; } .dashboard-state-scroll { max-height: 240px; } }
@media (max-width: 620px) {
    .dashboard-overview-header { padding: 16px; gap: 12px; }
    .dashboard-overview-table th, .dashboard-overview-table td { padding: 8px 12px; }
}

.application-compression-help a {
    color: #315b8c;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.merit-score-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}

.merit-score-editor {
    width: min(560px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
}

.merit-score-editor .workspace-dialog-heading {
    align-items: flex-start;
    border-top: 4px solid #bb963f;
}

.merit-score-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #8b6b28;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.4px;
}

.merit-score-editor .workspace-dialog-heading p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.merit-score-editor .workspace-dialog-body {
    display: grid;
    gap: 20px;
}

.merit-score-preview {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 14px;
    padding: 22px;
    border: 1px solid #e1e7ef;
    border-radius: 12px;
    background: #f6f8fc;
}

.merit-score-preview div > span {
    display: block;
    margin-bottom: 8px;
    color: #64748b;
    font-size: 12px;
}

.merit-score-preview strong {
    color: #172b4d;
    font-size: 32px;
    font-variant-numeric: tabular-nums;
}

.merit-score-preview strong small {
    color: #64748b;
    font-size: 13px;
    font-weight: 400;
}

.merit-score-arrow { color: #94a3b8; font-size: 24px; }
.merit-score-change {
    grid-column: 1 / -1;
    justify-self: start;
    padding: 5px 10px;
    border-radius: 20px;
    background: #e8edf4;
    color: #475569;
    font-size: 12px;
    font-weight: 600;
}
.merit-score-change.is-increase { color: #166534; background: #dcfce7; }
.merit-score-change.is-decrease { color: #9a3412; background: #ffedd5; }
.merit-score-input-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.merit-score-input-heading label { margin: 0; }
.merit-score-reset { padding: 0; border: 0; background: none; color: #315b8c; font: inherit; font-size: 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.merit-score-editor-note { margin: 0; color: #64748b; font-size: 12px; line-height: 1.7; }
.merit-score-last-update { padding: 12px 14px; border-left: 3px solid #b99a54; border-radius: 6px; background: #faf8f2; overflow-wrap: anywhere; }
.merit-score-last-update strong { display: block; color: #806936; font-size: 11px; font-weight: 600; }
.merit-score-last-update p { margin: 5px 0 0; color: #53677f; font-size: 12px; line-height: 1.6; }

@media (max-width: 480px) {
    .merit-score-preview { gap: 12px; padding: 16px; }
    .merit-score-preview strong { font-size: 28px; }
    .merit-score-heading-actions { gap: 8px; }
}

.master-setting-card .application-number-settings-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 16px;
    border-top: 1px solid #e9edf3;
}

.application-number-settings-actions .btn {
    height: 44px !important;
    margin: 0;
    padding-inline: 24px;
    white-space: nowrap;
}

@media (max-width: 680px) {
    .application-number-settings-card .workspace-card-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .application-number-settings-card .application-number-settings-form {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--portal-field-gap);
        padding: var(--portal-panel-gutter);
    }

    .application-number-settings-actions {
        padding-top: 0;
    }

    .application-number-settings-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

.registration-window { text-align: center; padding: 40px 24px; }
.registration-window h1 { color: #17314f; margin: 12px 0; }
.registration-window h2 { font-size: 18px; margin: 12px 0; }
.registration-window p { margin: 16px auto; max-width: 640px; line-height: 1.7; }
.registration-countdown { display: flex; justify-content: center; gap: 12px; margin: 28px 0; }
.registration-countdown > div { background: #17314f; color: white; border-radius: 12px; padding: 18px 12px; min-width: 70px; }
.registration-countdown strong { display: block; font-size: clamp(24px, 5vw, 40px); }
.registration-countdown span { color: #e8d49e; font-size: 12px; }
.registration-window-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
@media (max-width: 480px) { .registration-countdown { gap: 6px; } .registration-countdown > div { min-width: 0; flex: 1; padding: 14px 6px; } }

.cycle-switch-track { display: inline-block; vertical-align: middle; width: 30px; height: 18px; border-radius: 12px; background: #adb7c2; margin-right: 6px; padding: 3px; }
.cycle-switch-track::after { content: ''; display: block; width: 12px; height: 12px; border-radius: 50%; background: white; }
[aria-checked="true"] .cycle-switch-track { background: #23764b; }
[aria-checked="true"] .cycle-switch-track::after { transform: translateX(12px); }

/* Scholarship cycle schedule and single-row management table. */
.cycle-table { min-width: 1080px; }
.cycle-table thead th { background: #17314f; color: #fff; padding: 14px 16px; font-size: 12px; white-space: nowrap; }
.cycle-table tbody td { padding: 16px; vertical-align: middle; white-space: nowrap; font-size: 13px; }
.cycle-table tbody tr:nth-child(even) { background: #f6f8fb; }
.cycle-table tbody tr:hover { background: #edf3f9; }
.cycle-table .cycle-actions { flex-wrap: nowrap; gap: 8px; }
.cycle-actions .btn { white-space: nowrap; min-height: 36px; }
.cycle-schedule-fields { grid-column: 1 / -1; display: grid; gap: 14px; }
.cycle-date-row { min-width: 0; margin: 0; padding: 14px 16px 16px; border: 1px solid #dbe3ec; border-radius: 12px; background: #f6f8fb; }
.cycle-date-row legend { color: #17314f; font-size: 14px; font-weight: 700; padding: 0 6px; }
.cycle-date-row legend span { font-weight: 400; font-size: 12px; color: #64748b; margin-left: 8px; }
.cycle-date-controls { display: grid; grid-template-columns: minmax(140px, 2fr) repeat(3, minmax(65px, 1fr)); gap: 12px; align-items: end; }
.cycle-date-controls label { display: block; font-size: 12px; color: #526174; margin-bottom: 6px; }
.cycle-date-controls input, .cycle-date-controls select { width: 100%; min-width: 0; height: 44px; background: white; }
@media (max-width: 480px) { .cycle-date-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .cycle-date-controls > div:first-child { grid-column: 1 / -1; } }

.scholarship-payment-columns { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 28px; align-items: start; }
.scholarship-payment-main, .scholarship-disbursement-panel { display: grid; gap: 18px; min-width: 0; }
.scholarship-disbursement-panel { background: #f4f7fb; border: 1px solid #dbe3ed; border-radius: 12px; padding: 20px; }
.scholarship-disbursement-panel h3 { margin: 0; color: #17314f; font-size: 16px; }
.scholarship-disbursement-panel textarea { resize: vertical; min-height: 120px; }
@media (max-width: 800px) { .scholarship-payment-columns { grid-template-columns: 1fr; } }

.course-picker { min-width: 0; }
.workspace-card:has([data-course-picker] [aria-expanded="true"]) { overflow: visible; }
.course-picker > .application-grid { margin: 0; }
.course-picker .field { position: relative; min-width: 0; }
.course-search { position: relative; min-width: 0; }
.course-search input { width: 100%; padding-right: 44px; text-overflow: ellipsis; }
.course-search:has(.course-search-toggle[hidden]) input { padding-right: 14px; }
.course-search input:focus { outline: 2px solid #b28a45; outline-offset: 2px; }
.course-search-toggle { position: absolute; inset: 1px 1px 1px auto; display: flex; align-items: center; justify-content: center; width: 40px; border: 0; border-radius: 0 8px 8px 0; background: transparent; color: #193653; cursor: pointer; }
.course-search-toggle svg { flex: none; transition: transform .15s ease; }
.course-search:has([aria-expanded="true"]) .course-search-toggle svg { transform: rotate(180deg); }
.course-search-toggle:hover { background: #19365308; }
.course-search-toggle:disabled { cursor: default; opacity: .45; }
.course-search-list { position: absolute; z-index: 80; top: calc(100% + 6px); left: 0; right: 0; max-height: min(360px, 50vh); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #cad5e3; border-radius: 10px; background: #fff; box-shadow: 0 12px 28px #17314f26; padding: 5px; }
.course-search-list[hidden], .course-picker [hidden] { display: none; }
.course-search-option { padding: 10px; border-radius: 5px; color: #24374b; font-size: 13px; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.course-search-option:hover, .course-search-option.is-active { background: #edf3fa; box-shadow: inset 3px 0 #b28a45; }
.course-search-option[aria-selected="true"] { font-weight: 700; background: #edf3fa; }
.course-search-other { color: #765719; background: #faf5e9; margin-top: 5px; font-weight: 700; }
.course-search-empty { padding: 10px; color: #66758a; font-size: 12px; }
.course-search-native, .course-search-status { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
.course-reference-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; padding: 0; list-style: none; }
.course-reference-chip { display: flex; align-items: center; gap: 8px; max-width: 100%; padding: 8px 10px; background: #eef3f9; border: 1px solid #d5dfeb; border-radius: 8px; font-size: 13px; overflow-wrap: anywhere; }
.course-reference-chip button { flex: 0 0 28px; height: 28px; border: 0; border-radius: 50%; background: #fff; color: #8a2930; font-size: 20px; cursor: pointer; }
.course-reference-error { color: #b42318; font-size: 13px; }
@media (max-width: 680px) { .course-picker > .application-grid { grid-template-columns: minmax(0, 1fr); } .course-search-option { min-height: 44px; } }
