:root {
    --blue: #2460ef;
    --ink: #303b4c;
    --muted: #738097;
    --border: #d7dce5;
    --bg: #f4f7fb
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    background: radial-gradient(ellipse 410px 310px at 7% 10%, #deedff, transparent), radial-gradient(ellipse 600px 300px at 90% 10%, #e0f3fc, transparent), var(--bg);
    color: var(--ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.5
}

button,
input,
select,
textarea {
    font: inherit
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent
}

button,
a {
    touch-action: manipulation
}

button {
    cursor: pointer
}

a {
    color: var(--blue);
    text-decoration: none
}

button {
    border: 1px solid var(--border);
    background: #fff;
    color: #566175;
    border-radius: 7px;
    padding: 10px 19px;
    transition: background .15s, box-shadow .15s
}

button:hover {
    background: #f0f5ff
}

button:focus-visible,
a:focus-visible {
    outline: 3px solid #86b6ff;
    outline-offset: 3px
}

button.primary {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff
}

button.primary:hover {
    background: #194bd5
}

button:disabled {
    opacity: .55;
    cursor: not-allowed
}

.header {
    margin: 20px 2% 0;
    padding: 12px 30px;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: linear-gradient(100deg, #fff, #e8edff);
    border-bottom: 1px solid #e0e4ec
}

.brand {
    display: flex;
    flex-shrink: 0
}

.brand img {
    width: 200px;
    height: auto
}

.header nav {
    display: flex;
    align-items: center;
    gap: 12px
}

.header nav a {
    padding: 9px 17px;
    color: #697386;
    font-size: 17px;
    white-space: nowrap
}

.header nav a.active {
    background: #edf0ff;
    color: #2255ed;
    border-radius: 12px;
    font-weight: 600
}

main {
    padding: 22px 2% 72px;
    min-height: calc(100vh - 195px)
}

.upload-banner {
    border: 1px dashed #b7d6ff;
    border-radius: 9px;
    padding: 18px 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: #f8fbff;
    box-shadow: 0 2px 3px #26374b08;
    margin-bottom: 23px
}

.upload-copy {
    display: flex;
    gap: 12px
}

.upload-copy strong {
    color: #254bd5;
    font-size: 16px
}

.upload-copy p {
    margin: 2px 0 0;
    color: #858d9e;
    font-size: 14px
}

.bolt {
    color: #ffb400;
    font-size: 23px
}

.button-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap
}

.upload-banner .button-row {
    flex-shrink: 0
}

.workspace {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 28px;
    margin: 0 3% 0 2%
}

.steps {
    list-style: none;
    padding: 0;
    margin: 0
}

.steps li {
    position: relative;
    min-height: 61px
}

.steps li:not(:last-child):before {
    content: '';
    position: absolute;
    left: 18px;
    top: 38px;
    width: 2px;
    height: 25px;
    background: #9ac8ff
}

.step {
    display: flex;
    align-items: center;
    gap: 29px;
    width: 100%;
    border: 0;
    padding: 0;
    text-align: left;
    background: transparent;
    min-height: 40px;
    font-size: 16px;
    font-weight: 500
}

.step:hover {
    background: transparent;
    color: var(--blue)
}

.step-number {
    width: 37px;
    height: 37px;
    flex-shrink: 0;
    border: 1.5px solid #cedbea;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-items: center;
    color: #70829d;
    font-weight: 600
}

.step.active {
    color: var(--blue);
    font-weight: 600
}

.step.active .step-number {
    background: var(--blue);
    color: white;
    border-color: var(--blue);
    box-shadow: 0 0 0 5px #dceaff
}

.panel {
    background: #fff;
    border: 1px solid #e0e4e9;
    border-radius: 11px;
    padding: 32px 34px;
    box-shadow: 0 2px 3px #24324908;
    min-width: 0
}

.panel.personal {
    min-height: 725px;
    padding: 22px
}

.panel h1,
.panel h2 {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .55px;
    margin: 0 0 30px;
    display: flex;
    align-items: center;
    gap: 13px;
    text-transform: uppercase
}

.panel h1:before,
.panel h2:before {
    content: '';
    width: 7px;
    height: 21px;
    background: #244de4;
    border-radius: 5px;
    flex-shrink: 0
}

.fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 30px
}

.field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
    color: #5d6779;
    font-size: 14px
}

.field.full {
    grid-column: 1/-1
}

.required {
    color: #ef5664
}

input:not([type=checkbox]),
select,
textarea {
    width: 100%;
    min-width: 0;
    border: 1.5px solid var(--border);
    border-radius: 7px;
    padding: 11px 15px;
    min-height: 44px;
    background: #fff;
    color: #414c5e;
    outline: none
}

input::placeholder,
textarea::placeholder {
    color: #8a93a3
}

input:focus,
select:focus,
textarea:focus {
    border-color: #4386ff;
    box-shadow: 0 0 0 1px #4386ff
}

textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.7
}

.actions {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
    margin-top: 20px
}

.actions button {
    padding: 12px 25px;
    font-weight: 600
}

.actions .primary {
    min-width: 121px
}

.form-column {
    display: flex;
    flex-direction: column;
    min-height: 795px
}

.form-column .actions {
    margin-top: auto;
    padding-top: 20px
}

.muted {
    color: #858d9e;
    font-size: 14px
}

.chips {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 22px 0 15px
}

.chip {
    border-radius: 30px;
    padding: 8px 18px
}

.chip.selected {
    background: #244ce0;
    border-color: #244ce0;
    color: white
}

.chip b {
    display: inline-grid;
    place-items: center;
    width: 21px;
    height: 21px;
    background: white;
    color: var(--blue);
    border-radius: 50%;
    margin-left: 7px;
    font-size: 12px
}

.inner-card {
    border: 1px solid #dfe3eb;
    border-radius: 9px;
    padding: 24px;
    margin-bottom: 24px
}

.inner-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    color: #2c50dc;
    font-size: 14px;
    font-weight: 600
}

.remove {
    background: #fff2f3;
    color: #f35660;
    border: 0;
    font-size: 13px;
    padding: 8px 15px
}

.add {
    width: 100%;
    border: 1px dashed #b5d4ff;
    color: #2659f8;
    background: #f7faff;
    font-weight: 600
}

.software-row {
    display: grid;
    grid-template-columns: 1fr 180px auto;
    gap: 14px;
    margin-bottom: 15px
}

.notice {
    padding: 12px 15px;
    border: 1px solid #f7d366;
    border-radius: 7px;
    background: #fffbeb;
    color: #bd6909;
    font-size: 14px;
    margin: 22px 0
}

.check {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 16px 0;
    color: #5a6577
}

.check input {
    accent-color: #2453e5;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin: 0
}

.declaration .fields {
    margin-top: 32px
}

.page-stack {
    display: grid;
    gap: 20px;
    margin-top: 18px
}

.intro {
    padding: 18px 24px;
    background: #e7edf5;
    border-radius: 15px;
    border: 1px solid #e0e7f0;
    color: #526176
}

.job {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 19px;
    padding: 28px;
    border-radius: 19px
}

.company-mark {
    background: #121725;
    color: #fff;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 10px
}

.job h2 {
    font-size: 18px;
    text-transform: none;
    letter-spacing: 0;
    margin: 0
}

.job h2:before {
    display: none
}

.company {
    color: #8291aa;
    margin: 0
}

.pills {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 14px 0
}

.pill {
    font-size: 13px;
    background: #f2f5f9;
    border: 1px solid #e4eaf2;
    color: #6b7a90;
    padding: 5px 15px;
    border-radius: 25px
}

.pill.deadline {
    background: #ebf5ff;
    border-color: #d4e7ff;
    color: #2680ec
}

.job ul {
    list-style: none;
    padding: 0 18px;
    color: #68788f;
    line-height: 2.2
}

.job .button-row .primary {
    flex: 1
}

.records {
    padding: 0;
    overflow: hidden;
    margin-top: 35px
}

.records header {
    padding: 24px 34px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #edf0f6
}

.records h1 {
    margin: 0;
    font-size: 21px
}

.records h1:before {
    display: none
}

.empty {
    text-align: center;
    padding: 130px 20px;
    color: #728097;
    font-size: 18px
}

.records-note {
    padding: 24px 34px;
    border-top: 1px solid #edf0f6;
    color: #728097
}

.record-row {
    padding: 25px 34px;
    border-bottom: 1px solid #edf0f6;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center
}

.course-list {
    max-height: 280px;
    overflow: auto
}

.course-button {
    display: block;
    width: 100%;
    border: 0;
    text-align: left;
    padding: 12px 10px
}

.course-button.selected {
    color: #2853e0;
    background: #f0f6ff
}

.resume-paper {
    max-width: 960px;
    margin: auto;
    border: 1px solid #dfe3eb;
    border-radius: 9px;
    padding: 40px;
    color: #4d586b;
    background: #fff
}

.resume-paper h1 {
    font-size: 30px;
    letter-spacing: 0;
    text-transform: none;
    margin-bottom: 5px
}

.resume-paper h1:before {
    display: none
}

.resume-paper h2 {
    font-size: 14px;
    border-bottom: 1px solid #ccd3df;
    padding-bottom: 6px;
    margin: 28px 0 12px
}

.resume-paper h2:before {
    display: none
}

.resume-paper p {
    white-space: pre-line
}

.resume-controls {
    max-width: 960px;
    margin: 25px auto 0;
    display: grid;
    gap: 10px
}

.resume-paper.serif {
    font-family: Georgia, serif
}

footer {
    padding: 12px 4%;
    border-top: 1px solid #e1edff;
    background: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    color: #7d879b
}

footer p {
    margin: 0
}

.social {
    display: flex;
    gap: 22px;
    color: #98a7be;
    font-size: 22px
}

.skip-link {
    position: fixed;
    top: -100px;
    background: white;
    padding: 10px;
    z-index: 20
}

.skip-link:focus {
    top: 5px
}

.proof {
    margin-top: 20px
}

.proof input {
    font-size: 13px
}

@media(min-width:1800px) {
    body {
        font-size: 17px
    }

    .header {
        min-height: 90px
    }

    .workspace {
        grid-template-columns: 360px 1fr
    }

    .steps li {
        min-height: 68px
    }

    .steps li:not(:last-child):before {
        height: 32px
    }

    .field {
        font-size: 16px
    }

    input:not([type=checkbox]),
    select {
        min-height: 48px
    }

    .panel.personal {
        min-height: 810px
    }

    .fields {
        gap: 24px 32px
    }

    .form-column {
        min-height: 890px
    }
}

@media(max-width:1150px) {
    .header {
        padding: 12px 20px
    }

    .header nav {
        gap: 0
    }

    .header nav a {
        font-size: 14px;
        padding: 10px 12px
    }

    .brand img {
        width: 175px
    }

    .workspace {
        grid-template-columns: 265px minmax(0, 1fr);
        gap: 20px;
        margin: 0 1%
    }

    .step {
        gap: 15px;
        font-size: 14px
    }

    .upload-banner {
        align-items: flex-start;
        flex-direction: column
    }

    .panel {
        padding: 25px
    }

    .fields {
        gap: 20px
    }

    .software-row {
        grid-template-columns: 1fr 135px auto
    }
}

@media(max-width:767.98px) {
    .header {
        margin: 12px 14px 0;
        flex-wrap: wrap;
        padding: 12px 16px
    }

    .brand img {
        width: 170px
    }

    .header nav {
        display: flex;
        width: 100%;
        flex-wrap: wrap;
        gap: 5px
    }

    .header nav a {
        flex: 1;
        text-align: center
    }

    .upload-banner {
        padding: 16px;
        margin-bottom: 17px
    }

    .upload-copy strong {
        font-size: 14px
    }

    .upload-copy p {
        font-size: 12px
    }

    .upload-banner .button-row {
        gap: 7px
    }

    .upload-banner button {
        padding: 9px 11px;
        font-size: 12px
    }

    main {
        padding: 18px 14px 35px
    }

    .workspace {
        display: block;
        margin: 0
    }

    .steps {
        display: flex;
        overflow: auto;
        gap: 10px;
        padding: 5px 4px 17px;
        margin-bottom: 5px;
        scrollbar-width: thin
    }

    .steps li {
        min-height: auto;
        flex-shrink: 0
    }

    .steps li:before {
        display: none
    }

    .step {
        gap: 8px;
        border: 1px solid #e1e6ef;
        border-radius: 25px;
        padding: 5px 12px 5px 5px;
        background: #fff;
        font-size: 12px
    }

    .step-number {
        width: 28px;
        height: 28px;
        font-size: 12px
    }

    .step.active .step-number {
        box-shadow: none
    }

    .panel,
    .panel.personal {
        padding: 22px 18px;
        min-height: 0
    }

    .panel h1,
    .panel h2 {
        font-size: 14px;
        margin-bottom: 24px
    }

    .fields {
        grid-template-columns: 1fr;
        gap: 18px
    }

    .field {
        font-size: 13px
    }

    .form-column {
        min-height: 550px
    }

    .form-column .actions {
        padding-top: 22px
    }

    .actions button {
        padding: 11px 18px;
        font-size: 14px
    }

    .inner-card {
        padding: 17px;
        margin-bottom: 18px
    }

    .software-row {
        grid-template-columns: 1fr 120px;
        gap: 8px
    }

    .software-row .remove {
        grid-column: 2;
        justify-self: end
    }

    .job {
        grid-template-columns: 40px 1fr;
        padding: 20px 16px;
        gap: 12px
    }

    .company-mark {
        width: 40px;
        height: 40px;
        font-size: 13px
    }

    .job h2 {
        font-size: 16px;
        margin-bottom: 3px
    }

    .job ul {
        padding: 0;
        font-size: 14px;
        line-height: 1.8
    }

    .job .button-row {
        flex-direction: column;
        align-items: stretch
    }

    .company {
        font-size: 13px
    }

    .pill {
        font-size: 11px;
        padding: 4px 10px
    }

    .intro {
        font-size: 13px
    }

    .records header {
        padding: 20px;
        gap: 10px
    }

    .records h1 {
        font-size: 16px;
        margin: 0
    }

    .records-note {
        font-size: 13px;
        padding: 20px
    }

    .record-row {
        padding: 20px;
        align-items: flex-start;
        flex-direction: column
    }

    .resume-paper {
        padding: 23px
    }

    .resume-paper h1 {
        font-size: 25px
    }

    .empty {
        padding: 100px 15px
    }

    footer {
        flex-wrap: wrap;
        justify-content: center;
        padding: 12px 15px;
        gap: 8px
    }

    footer img {
        width: 130px
    }

    footer p {
        font-size: 12px;
        order: 3;
        width: 100%;
        text-align: center
    }

    .social {
        font-size: 18px;
        margin-left: 25px
    }
}

@media print {
    body {
        background: #fff;
        font-size: 11px
    }

    .header,
    footer,
    .steps,
    .upload-banner,
    .actions,
    .resume-controls {
        display: none !important;
    }

    main {
        padding: 0;
        min-height: 0
    }

    .workspace {
        display: block
    }

    .panel {
        padding: 0;
        border: 0;
        box-shadow: none
    }

    .resume-paper {
        border: 0;
        padding: 0;
        max-width: none
    }

    .resume-paper h2 {
        break-after: avoid
    }

    .resume-paper section {
        break-inside: avoid
    }

    .form-column {
        min-height: 0
    }

    @page {
        size: A4;
        margin: 15mm
    }
}

.actions button {
    white-space: nowrap
}

.source {
    display: inline-block;
    border: 1px solid #dce5f0;
    border-radius: 8px;
    padding: 11px 20px;
    color: #68778e;
    text-align: center
}

.source:hover {
    background: #f2f6ff
}

.cv-file-status { flex: 0 1 300px; max-width: 420px; margin: 0; font-size: 12px; color: #626f82; overflow-wrap: anywhere; }

@media (min-width: 992px) {
    .upload-banner .button-row { flex-shrink: 1; min-width: 0; }
    .upload-banner .button-row.d-flex { flex-wrap: nowrap !important; }
    .upload-banner .button-row button { flex-shrink: 0; white-space: nowrap; }
}

/* Faculty styles */
.faculty-page {
    background: #eff4fa;
    color: #182033;
    font-size: 14px
}

:where(.faculty-page) .faculty-header {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 10px 2.5%;
    background: white;
    border-bottom: 1px solid #e0e7f0
}

:where(.faculty-page) .portal-label {
    color: #a74a0a;
    background: #fffbeb;
    border: 1px solid #ffdc79;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap
}

:where(.faculty-page) .faculty-header nav {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-wrap: wrap
}

:where(.faculty-page) .faculty-header nav a {
    color: #57657c;
    padding: 9px 10px;
    white-space: nowrap
}

:where(.faculty-page) .faculty-header nav [aria-current] {
    color: #2460ef;
    background: #eff6ff;
    border: 1px solid #dbe9ff;
    border-radius: 6px;
    font-weight: bold
}

:where(.faculty-page) .reviewer {
    display: flex;
    align-items: center;
    gap: 12px;
    border-left: 1px solid #e0e7f0;
    padding-left: 14px;
    white-space: nowrap;
    font-size: 12px;
    text-align: right
}

:where(.faculty-page) .reviewer small {
    display: block;
    color: #72839f
}

:where(.faculty-page) .avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    background: #dceaff;
    color: #2457df;
    border-radius: 50%;
    font-size: 20px;
    font-weight: 700
}

:where(.faculty-page) .reviewer-avatar {
    width: 38px;
    height: 38px;
    background: #2460ef;
    color: white;
    font-size: 14px
}

:where(.faculty-page) .faculty-main {
    max-width: 1600px;
    margin: auto;
    padding: 34px 2.5% 66px
}

:where(.faculty-page) .surface {
    background: white;
    border: 1px solid #dfe7f1;
    border-radius: 14px
}

:where(.faculty-page) .student-banner {
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 21px;
    margin-bottom: 25px
}

:where(.faculty-page) .student-info {
    flex: 1
}

:where(.faculty-page) .student-title {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap
}

:where(.faculty-page) .student-title h1 {
    font-size: 22px;
    font-weight: 700;
    margin: 0
}

:where(.faculty-page) .student-title code {
    background: #f1f5f9;
    color: #536078;
    padding: 2px 7px;
    border: 1px solid #e0e7ef;
    border-radius: 4px;
    font-size: 12px
}

:where(.faculty-page) .student-info p {
    color: #72839f;
    margin: 4px 0 0
}

:where(.faculty-page) .status {
    font-size: 12px;
    border-radius: 20px;
    padding: 3px 10px
}

:where(.faculty-page) .pending {
    background: #fff2c5;
    color: #a34d0a
}

:where(.faculty-page) .approved {
    background: #e5fbf3;
    color: #007a58
}

:where(.faculty-page) .revision {
    background: #fff0f2;
    color: #c71944
}

:where(.faculty-page) .subtle-button {
    display: inline-block;
    padding: 8px 13px;
    background: #f1f5f9;
    border-radius: 8px;
    color: #596a84;
    font-size: 12px
}

:where(.faculty-page) .review-layout {
    display: grid;
    grid-template-columns: 32% minmax(0, 1fr);
    gap: 32px;
    align-items: start
}

:where(.faculty-page) .workflow {
    padding: 21px
}

:where(.faculty-page) .section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e5ebf3;
    margin-bottom: 18px
}

:where(.faculty-page) .section-heading h2 {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .35px;
    color: #8c9fbb;
    font-weight: 700;
    margin: 0
}

:where(.faculty-page) .complete {
    color: #009b76;
    background: #ecfdf5;
    padding: 2px 8px;
    border-radius: 14px;
    font-size: 12px;
    white-space: nowrap;
    font-weight: bold
}

:where(.faculty-page) .workflow ol {
    list-style: none;
    padding: 0;
    margin: 0
}

:where(.faculty-page) .workflow li {
    position: relative;
    padding-bottom: 16px
}

:where(.faculty-page) .workflow li:last-child {
    padding-bottom: 0
}

:where(.faculty-page) .workflow li:not(:last-child):before {
    content: "";
    position: absolute;
    top: 32px;
    left: 17px;
    bottom: 0;
    width: 2px;
    background: #d3ddea
}

:where(.faculty-page) .workflow a {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #56657e
}

:where(.faculty-page) .workflow a span {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border: 2px solid #d0dbea;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold
}

:where(.faculty-page) .workflow li:first-child a {
    color: #2460ef;
    font-weight: bold
}

:where(.faculty-page) .workflow li:first-child span {
    background: #2460ef;
    border-color: #e5eeff;
    color: white;
    box-shadow: 0 0 0 4px #eff5ff
}

:where(.faculty-page) .review-content {
    min-width: 0
}

:where(.faculty-page) .preview-panel {
    padding: 32px
}

:where(.faculty-page) .validation {
    font-size: 12px;
    color: #7587a3;
    white-space: nowrap
}

:where(.faculty-page) .validation>span:first-child {
    color: #11b789
}

:where(.faculty-page) .faculty-paper {
    border: 1px solid #dfe7f1;
    border-radius: 12px;
    padding: 40px 32px;
    color: #56657e;
    font-size: 12px;
    line-height: 1.5
}

:where(.faculty-page) .faculty-paper section+section {
    margin-top: 34px
}

:where(.faculty-page) .faculty-paper h3 {
    font-size: 14px;
    color: #182033;
    font-weight: bold;
    margin: 0 0 4px
}

:where(.faculty-page) .faculty-paper .tools {
    color: #72839f;
    margin-bottom: 8px
}

:where(.faculty-page) .faculty-paper ul {
    list-style: none;
    padding-left: 16px;
    margin: 0
}

:where(.faculty-page) .faculty-paper li+li {
    margin-top: 10px
}

:where(.faculty-page) .faculty-paper p {
    margin-bottom: 0
}

:where(.faculty-page) .faculty-paper .resume-section-title {
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    border-bottom: 1px solid #e0e7ef;
    padding-bottom: 9px;
    margin-bottom: 9px
}

:where(.faculty-page) .experience-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px
}

:where(.faculty-page) .experience-title span {
    color: #92a4bf
}

:where(.faculty-page) .template-info {
    background: #fafcff;
    border: 1px solid #dfe7f1;
    border-radius: 12px;
    padding: 24px 20px;
    margin-top: 16px;
    font-size: 12px;
    color: #56657e
}

:where(.faculty-page) .template-info strong {
    color: #303b4c
}

:where(.faculty-page) .template-info>div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px 20px;
    margin-top: 8px
}

:where(.faculty-page) .download-button {
    display: block;
    width: 100%;
    background: #2460ef;
    color: white;
    border: 0;
    border-radius: 10px;
    margin-top: 16px;
    font-weight: bold
}

:where(.faculty-page) .download-button:hover {
    background: #194bd5
}

:where(.faculty-page) .edit-details {
    display: block;
    text-align: center;
    margin: 18px 0 4px;
    color: #72839f;
    font-size: 12px
}

:where(.faculty-page) .approval-panel {
    margin-top: 25px;
    padding: 32px;
    border: 2px solid #cfe2ff;
    box-shadow: 0 2px 4px #00000012
}

:where(.faculty-page) .approval-panel h2 {
    color: #182033;
    font-size: 16px;
    letter-spacing: 0;
    text-transform: none
}

:where(.faculty-page) .approval-panel h2 span {
    color: #2460ef;
    margin-right: 6px
}

:where(.faculty-page) .required-tag {
    font-size: 12px;
    font-weight: bold;
    background: #f1f5f9;
    padding: 4px 10px;
    white-space: nowrap;
    color: #43526b
}

:where(.faculty-page) .approval-panel label {
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: .4px;
    font-weight: bold;
    color: #536078
}

:where(.faculty-page) .approval-panel label span {
    font-weight: normal;
    color: #91a2bb
}

:where(.faculty-page) .approval-panel textarea {
    width: 100%;
    display: block;
    resize: vertical;
    margin-top: 9px;
    padding: 12px;
    border: 1px solid #cbd7e7;
    border-radius: 12px;
    min-height: 90px
}

:where(.faculty-page) .approval-panel textarea::placeholder {
    color: #8d9fbb
}

:where(.faculty-page) .approval-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 26px
}

:where(.faculty-page) .approval-actions a {
    font-size: 12px;
    text-decoration: underline;
    margin-right: auto
}

:where(.faculty-page) .approval-actions button {
    font-weight: bold;
    border-radius: 12px;
    padding: 10px 20px
}

:where(.faculty-page) .revision-button {
    color: #d51442;
    border-color: #ffacbb;
    background: #fff4f5
}

:where(.faculty-page) .approve-button {
    background: #009c75;
    color: white;
    border-color: #009c75
}

:where(.faculty-page) .approve-button:hover {
    background: #007e5e
}

:where(.faculty-page) .local-note {
    font-size: 12px;
    color: #75849b;
    margin: 16px 0 0
}

:where(.faculty-page) .decision-message {
    font-size: 13px;
    margin: 12px 0 0;
    color: #43526b
}

:where(.faculty-page) .documents {
    margin-top: 24px;
    padding: 22px;
    color: #56657e
}

:where(.faculty-page) .documents summary {
    font-weight: bold;
    color: #303b4c;
    cursor: pointer
}

:where(.faculty-page) .documents label {
    display: block;
    font-weight: bold;
    margin: 16px 0 8px
}

:where(.faculty-page) .documents input {
    max-width: 100%
}

:where(.faculty-page) .documents p {
    font-size: 13px;
    margin-top: 12px
}

:where(.faculty-page) .faculty-footer {
    display: block;
    background: white;
    border-top: 1px solid #e0e7ef;
    text-align: center;
    color: #72839f;
    font-size: 12px;
    padding: 24px;
    margin: 0
}

:where(.faculty-page) #uploaded-preview {
    width: 100%;
    height: 750px;
    border: 1px solid #dfe7f1;
    border-radius: 12px
}

:where(.faculty-page) [hidden] {
    display: none !important
}

:where(.faculty-page) :target {
    scroll-margin-top: 20px
}

:where(.faculty-page) input:focus-visible,
:where(.faculty-page) textarea:focus-visible,
:where(.faculty-page) summary:focus-visible {
    outline: 3px solid #86b6ff;
    outline-offset: 3px
}

@media(min-width:1500px) {
:where(.faculty-page) .faculty-paper {
        font-size: 14px
    }

:where(.faculty-page) .faculty-paper h3 {
        font-size: 16px
    }


}
@media(max-width:1200px) {
:where(.faculty-page) .faculty-header {
        flex-wrap: wrap;
        gap: 14px
    }

:where(.faculty-page) .faculty-header nav {
        order: 3;
        width: 100%;
        margin: 0
    }

:where(.faculty-page) .reviewer {
        margin-left: auto
    }

:where(.faculty-page) .review-layout {
        grid-template-columns: 30% minmax(0, 1fr);
        gap: 22px
    }

:where(.faculty-page) .workflow {
        padding: 18px
    }

:where(.faculty-page) .workflow .section-heading {
        flex-wrap: wrap
    }

:where(.faculty-page) .preview-panel,
:where(.faculty-page) .approval-panel {
        padding: 24px
    }

:where(.faculty-page) .faculty-paper {
        padding: 28px 22px
    }


}
@media(max-width:991px) {
:where(.faculty-page) .faculty-main {
        padding: 20px 16px 36px
    }

:where(.faculty-page) .student-banner {
        flex-wrap: wrap;
        padding: 18px
    }

:where(.faculty-page) .student-info {
        min-width: 180px
    }

:where(.faculty-page) .student-title h1 {
        font-size: 20px
    }

:where(.faculty-page) .review-layout {
        grid-template-columns: 1fr
    }

:where(.faculty-page) .workflow ol {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px
    }

:where(.faculty-page) .workflow li {
        padding: 0
    }

:where(.faculty-page) .workflow li:before {
        display: none
    }

:where(.faculty-page) .workflow a {
        font-size: 12px;
        gap: 8px
    }

:where(.faculty-page) .workflow a span {
        width: 28px;
        height: 28px
    }

:where(.faculty-page) .preview-panel,
:where(.faculty-page) .approval-panel {
        padding: 20px
    }

:where(.faculty-page) .section-heading {
        flex-wrap: wrap
    }

:where(.faculty-page) .faculty-paper {
        padding: 24px 18px
    }

:where(.faculty-page) .template-info>div {
        grid-template-columns: 1fr
    }

:where(.faculty-page) .experience-title {
        flex-direction: column;
        gap: 2px
    }

:where(.faculty-page) .approval-actions a {
        width: 100%;
        margin-bottom: 6px
    }

:where(.faculty-page) .approval-actions button {
        flex: 1;
        padding: 10px
    }

:where(.faculty-page) .reviewer {
        border: 0;
        padding: 0
    }

:where(.faculty-page) .faculty-header {
        padding: 12px 16px
    }

:where(.faculty-page) .faculty-header nav {
        gap: 2px
    }

:where(.faculty-page) .faculty-header nav a {
        font-size: 12px;
        padding: 8px
    }

:where(.faculty-page) .portal-label {
        font-size: 11px
    }

:where(.faculty-page) .faculty-header>a img {
        width: 145px
    }

:where(.faculty-page) .reviewer>div {
        display: none
    }


}
@media print {
:where(.faculty-page) .faculty-header,
:where(.faculty-page) .student-banner,
:where(.faculty-page) .workflow,
:where(.faculty-page) .preview-panel>.section-heading,
:where(.faculty-page) .template-info,
:where(.faculty-page) .download-button,
:where(.faculty-page) .edit-details,
:where(.faculty-page) .approval-panel,
:where(.faculty-page) .documents,
:where(.faculty-page) .faculty-footer,
:where(.faculty-page) .skip-link,
:where(.faculty-page) #open-pdf {
        display: none !important
    }

.faculty-page {
        background: white
    }

:where(.faculty-page) .faculty-main,
:where(.faculty-page) .preview-panel,
:where(.faculty-page) .faculty-paper {
        padding: 0;
        margin: 0;
        border: 0
    }

:where(.faculty-page) .review-layout {
        display: block
    }

:where(.faculty-page) .faculty-paper {
        font-size: 11px
    }

:where(.faculty-page) .faculty-paper section {
        break-inside: avoid
    }


}

/* Approved styles */
.approved-page {
    background: #f7f9fc
}

:where(.approved-page) .approved-main {
    max-width: 1800px;
    margin: 0 auto;
    padding: 38px 28px 60px
}

:where(.approved-page) .eyebrow {
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 700;
    color: #92a2bb;
    letter-spacing: .4px;
    margin-bottom: 8px
}

:where(.approved-page) .eyebrow span {
    color: #2460ef;
    margin-left: 12px
}

:where(.approved-page) .dashboard-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px
}

:where(.approved-page) .dashboard-heading h1 {
    font-size: 34px;
    letter-spacing: -1px;
    font-weight: 750;
    margin: 0 0 5px
}

:where(.approved-page) .dashboard-heading p {
    color: #7385a1;
    font-size: 16px;
    margin: 0
}

:where(.approved-page) .export-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0
}

:where(.approved-page) .export-actions button {
    font-weight: 600;
    white-space: nowrap;
    padding: 10px 16px;
    background: white;
    border-radius: 9px
}

:where(.approved-page) .export-actions i {
    margin-right: 7px
}

:where(.approved-page) .export-actions .bulk-button {
    background: #2460ef;
    color: white;
    border-color: #2460ef;
    opacity: .65
}

:where(.approved-page) .demo-note,
:where(.approved-page) .selection-note {
    font-size: 12px;
    color: #73839a;
    margin: 14px 0 0
}

:where(.approved-page) .stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 30px 0 36px
}

:where(.approved-page) .stat {
    padding: 24px;
    color: #71829e
}

:where(.approved-page) .stat>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .5px;
    font-weight: 700
}

:where(.approved-page) .stat p {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 18px 0 0;
    font-size: 13px
}

:where(.approved-page) .stat p strong {
    font-size: 36px;
    color: #172033;
    line-height: 1.1
}

:where(.approved-page) .stat-tag {
    text-transform: none;
    letter-spacing: 0;
    background: #ecfdf5;
    color: #008c69;
    border-radius: 20px;
    padding: 3px 9px;
    font-size: 12px
}

:where(.approved-page) .stat-tag.amber {
    background: #fffaeb;
    color: #c36b04
}

:where(.approved-page) .stat p .amber-text {
    color: #db7b00
}

:where(.approved-page) .stat p .green-text,
:where(.approved-page) .stat i {
    color: #009b76
}

:where(.approved-page) .ratio {
    color: #2460ef;
    text-transform: none;
    letter-spacing: 0
}

:where(.approved-page) .filters {
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px
}

:where(.approved-page) .filters input,
:where(.approved-page) .filters select {
    border: 1px solid #cdd8e8;
    border-radius: 8px;
    padding: 12px;
    color: #43526b;
    background: #fff;
    min-width: 0
}

:where(.approved-page) .search-field {
    position: relative;
    flex: 1.3;
    min-width: 220px
}

:where(.approved-page) .search-field input {
    padding-left: 40px;
    width: 100%;
    height: 54px
}

:where(.approved-page) .search-field i {
    position: absolute;
    left: 14px;
    top: 17px;
    color: #94a5bf
}

:where(.approved-page) .filters #course {
    flex: 1.5
}

:where(.approved-page) .filters select {
    max-width: 100%
}

:where(.approved-page) .filters .reset-button {
    border: 0;
    color: #2460ef;
    background: transparent;
    padding: 10px 6px;
    font-weight: 600
}

:where(.approved-page) .records-panel {
    overflow: hidden
}

:where(.approved-page) .table-scroll {
    overflow-x: auto
}

:where(.approved-page) table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 1160px
}

:where(.approved-page) thead {
    background: #f8fafe
}

:where(.approved-page) th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .6px;
    font-weight: 700;
    color: #6f809d;
    padding: 20px 14px;
    text-align: left;
    border-bottom: 1px solid #e0e7f1
}

:where(.approved-page) td {
    padding: 28px 14px;
    border-bottom: 1px solid #e7edf5;
    vertical-align: middle;
    color: #354157
}

:where(.approved-page) th:first-child,
:where(.approved-page) td:first-child {
    padding-left: 18px;
    width: 50px
}

:where(.approved-page) td:nth-child(2) {
    width: 29%
}

:where(.approved-page) td:nth-child(3) {
    width: 13%
}

:where(.approved-page) td:nth-child(4) {
    width: 10%
}

:where(.approved-page) td:nth-child(5) {
    width: 12%
}

:where(.approved-page) td:nth-child(6) {
    width: 12%
}

:where(.approved-page) td:last-child {
    padding-right: 20px
}

:where(.approved-page) .student-cell {
    display: flex;
    align-items: center;
    gap: 14px
}

:where(.approved-page) .student-cell strong {
    display: block;
    font-size: 16px;
    color: #172033;
    margin-bottom: 5px
}

:where(.approved-page) .student-cell .avatar {
    width: 45px;
    height: 45px;
    font-size: 16px
}

:where(.approved-page) .student-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: #7586a2;
    font-size: 12px
}

:where(.approved-page) .student-meta code {
    color: #516079;
    background: #f1f5f9;
    padding: 3px 6px;
    border-radius: 3px
}

:where(.approved-page) .role-tag {
    display: table;
    padding: 3px 9px;
    border-radius: 4px;
    margin: 4px 0;
    line-height: 1.35
}

:where(.approved-page) .blue {
    color: #2457df;
    background: #dceaff
}

:where(.approved-page) .purple {
    color: #8224d7;
    background: #f3e8ff
}

:where(.approved-page) .orange {
    color: #bb4513;
    background: #ffedd5
}

:where(.approved-page) .green {
    color: #00795b;
    background: #cefae7
}

:where(.approved-page) .indigo {
    color: #4a38d5;
    background: #e0e7ff
}

:where(.approved-page) .secondary {
    color: #43526b;
    background: #f1f5f9
}

:where(.approved-page) .credentials {
    color: #008b68
}

:where(.approved-page) .credentials div+div {
    margin-top: 5px
}

:where(.approved-page) .approver {
    font-size: 12px
}

:where(.approved-page) time {
    display: block;
    color: #8192ad;
    font-size: 12px;
    margin-top: 4px
}

:where(.approved-page) .approved-pill {
    display: inline-block;
    white-space: nowrap;
    border: 1px solid #a0eccd;
    background: #ecfdf5;
    color: #008b68;
    padding: 5px 10px;
    border-radius: 22px;
    font-size: 12px
}

:where(.approved-page) .view-cv {
    white-space: nowrap;
    padding: 5px 11px;
    border-radius: 5px;
    font-size: 12px;
    background: white;
    font-weight: 600
}

:where(.approved-page) input[type=checkbox] {
    appearance: auto;
    width: 18px;
    height: 18px;
    accent-color: #2460ef;
    cursor: pointer
}

:where(.approved-page) tr.selected {
    background: #fbfdff
}

:where(.approved-page) .table-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 28px;
    background: #fafcff;
    color: #53627a;
    font-size: 13px
}

:where(.approved-page) .pagination-controls {
    display: flex;
    gap: 5px
}

:where(.approved-page) .pagination-controls button {
    padding: 6px 12px;
    border-radius: 4px
}

:where(.approved-page) .pagination-controls .current-page {
    background: #2460ef;
    color: white;
    border-color: #2460ef
}

:where(.approved-page) .selection-bar {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #101829;
    color: white;
    border-radius: 13px;
    padding: 18px;
    margin-top: 26px;
    box-shadow: 0 6px 10px #10182915
}

:where(.approved-page) .selection-count {
    display: grid;
    place-items: center;
    background: #1b304f;
    border: 1px solid #305384;
    color: #62a1ff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    flex-shrink: 0
}

:where(.approved-page) .selection-bar strong {
    flex: 1;
    font-size: 14px
}

:where(.approved-page) .selection-bar button {
    background: #1e293b;
    color: #cbd5e1;
    border-color: #334155;
    font-size: 12px;
    font-weight: bold;
    padding: 8px 16px
}

:where(.approved-page) .placement-link {
    background: #2460ef;
    color: white;
    border-radius: 8px;
    padding: 10px 18px;
    font-size: 13px;
    font-weight: bold
}

:where(.approved-page) .placement-link:hover {
    background: #194bd5;
    color: white
}

:where(.approved-page) #empty-state {
    padding: 30px;
    text-align: center;
    color: #73839a
}

:where(.approved-page) dialog {
    width: min(560px, calc(100% - 32px));
    max-height: 85vh;
    overflow: auto;
    border: 1px solid #dfe7f1;
    border-radius: 14px;
    padding: 26px;
    color: #43526b
}

:where(.approved-page) dialog::backdrop {
    background: #10182980
}

:where(.approved-page) .dialog-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px
}

:where(.approved-page) .dialog-heading h2 {
    font-size: 22px;
    color: #172033;
    margin: 0
}

:where(.approved-page) .dialog-heading button {
    padding: 3px 11px;
    font-size: 22px
}

:where(.approved-page) #cv-details p {
    margin: 8px 0
}

:where(.approved-page) #action-message {
    color: #43526b;
    font-size: 13px
}

@media(max-width:1450px) {
:where(.approved-page) .dashboard-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px
    }

:where(.approved-page) .filters {
        flex-wrap: wrap
    }

:where(.approved-page) .search-field {
        flex: 1;
        min-width: 250px
    }

:where(.approved-page) .filters #course {
        flex: 1;
        min-width: 260px
    }

:where(.approved-page) .stat {
        padding: 20px
    }

:where(.approved-page) .stat>div {
        flex-wrap: wrap
    }


}
@media(max-width:800px) {
:where(.approved-page) .approved-main {
        padding: 26px 16px 40px
    }

:where(.approved-page) .dashboard-heading h1 {
        font-size: 28px
    }

:where(.approved-page) .dashboard-heading p {
        font-size: 14px
    }

:where(.approved-page) .stats {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin: 24px 0
    }

:where(.approved-page) .stat {
        padding: 18px
    }

:where(.approved-page) .stat p {
        flex-wrap: wrap
    }

:where(.approved-page) .stat p strong {
        font-size: 30px
    }

:where(.approved-page) .export-actions {
        flex-wrap: wrap
    }

:where(.approved-page) .export-actions button {
        font-size: 13px
    }

:where(.approved-page) .filters {
        gap: 10px
    }

:where(.approved-page) .search-field,
:where(.approved-page) .filters #course {
        flex-basis: 100%;
        min-width: 0
    }

:where(.approved-page) .filters select {
        flex: 1
    }

:where(.approved-page) .selection-bar {
        flex-wrap: wrap
    }

:where(.approved-page) .selection-bar strong {
        min-width: 180px
    }

:where(.approved-page) .selection-bar button,
:where(.approved-page) .placement-link {
        flex: 1;
        text-align: center
    }

:where(.approved-page) .table-footer {
        flex-wrap: wrap;
        gap: 16px;
        padding: 18px
    }

:where(.approved-page) .eyebrow {
        font-size: 11px
    }

:where(.approved-page) .eyebrow span {
        margin-left: 4px
    }


}
@media(max-width:420px) {
:where(.approved-page) .stat>div {
        font-size: 11px
    }

:where(.approved-page) .stat p {
        font-size: 12px
    }

:where(.approved-page) .stat-tag,
:where(.approved-page) .ratio {
        font-size: 10px
    }

:where(.approved-page) .filters select {
        width: 100%;
        flex-basis: 100%
    }

:where(.approved-page) .export-actions {
        width: 100%
    }

:where(.approved-page) .export-actions button {
        width: 100%
    }


}
:where(.approved-page) .table-scroll {
    position: relative
}

:where(.approved-page) .filters {
    position: relative
}

.approved-page .filters {
    display: grid;
    grid-template-columns: minmax(220px, 1.1fr) minmax(260px, 1.7fr) minmax(150px, .7fr) minmax(185px, .85fr) auto
}

.approved-page .filters select {
    width: 100%
}

@media(max-width:1200px) {
.approved-page .filters {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr)
    }

.approved-page .filters #course,
.approved-page .search-field {
        min-width: 0
    }

.approved-page .filters .reset-button {
        justify-self: start
    }


}
@media(max-width:600px) {
.approved-page .filters {
        grid-template-columns: minmax(0, 1fr)
    }


}

/* Navigation styles */
/* Shared menu and account presentation for every portal page. */
.header.portal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 18px;
    margin: 0;
    padding: 12px 2%;
    min-height: 76px;
    background: #fff;
    border-bottom: 1px solid #e0e7f0;
}
.portal-brand { display: flex; flex-shrink: 0; }
.portal-brand img { width: 170px; height: auto; }
.header.portal-header .portal-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}
.header.portal-header .portal-nav a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 7px;
    color: #59677f;
    font-size: 16px;
    line-height: 1.5;
    white-space: nowrap;
    text-decoration: none;
}
.header.portal-header .portal-nav a:hover { background: #f5f8ff; color: #2460ef; }
.header.portal-header .portal-nav a[aria-current] {
    color: #2460ef;
    background: #eff6ff;
    border-color: #d9e6ff;
    font-weight: 700;
}
.portal-account {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-left: 18px;
    border-left: 1px solid #dfe6f0;
    flex-shrink: 0;
    text-align: right;
    line-height: 1.5;
}
.portal-account strong { display: block; color: #172033; font-size: 14px; }
.portal-account small { display: block; color: #7585a1; font-size: 12px; }
.portal-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #2460ef;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}
@media (max-width: 1350px) {
    .header.portal-header .portal-nav { order: 3; width: 100%; margin: 0; justify-content: flex-start; }
    .portal-account { margin-left: auto; }
}
@media (max-width: 600px) {
    .header.portal-header { padding: 12px 16px; gap: 12px; }
    .portal-brand img { width: 132px; }
    .portal-account { border: 0; padding-left: 0; gap: 8px; }
    .portal-account strong { font-size: 12px; }
    .portal-account small { font-size: 11px; }
    .portal-avatar { width: 36px; height: 36px; font-size: 14px; }
    .header.portal-header .portal-nav { gap: 4px; }
    .header.portal-header .portal-nav a { font-size: 13px; padding: 8px; }
}
@media (max-width: 360px) {
    .portal-brand img { width: 115px; }
    .portal-account { gap: 6px; }
}
@media print { .header.portal-header { display: none !important; } }

/* Without JavaScript, navigation remains visible. */
.header.portal-header .portal-menu-toggle { display: none; }
.portal-menu-icon { display: flex; flex-direction: column; gap: 4px; width: 19px; }
.portal-menu-icon span { display: block; height: 2px; width: 100%; background: currentColor; }
@media (max-width: 767px) {
    .header.portal-header.menu-ready {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto 44px;
        gap: 8px;
        min-height: 60px;
        padding: 8px 12px;
    }
    .menu-ready .portal-brand { grid-column: 1; grid-row: 1; min-width: 0; }
    .menu-ready .portal-brand img { width: 132px; max-width: 100%; height: auto; }
    .menu-ready .portal-account { gap: 6px; margin-left: 0; }
    .menu-ready .portal-account strong { font-size: 11px; }
    .menu-ready .portal-account small { font-size: 10px; }
    .menu-ready .portal-avatar { width: 28px; height: 28px; font-size: 12px; }
    .portal-menu-toggle > span:last-child { display: none; }
    .header.portal-header.menu-ready .portal-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        grid-column: 3;
        grid-row: 1;
        width: 44px;
        min-height: 44px;
        padding: 9px 12px;
        border: 1px solid #d9e6ff;
        border-radius: 7px;
        background: #eff6ff;
        color: #2460ef;
        font-size: 14px;
    }
    .menu-ready .portal-account {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        border: 0;
        padding: 0;
    }
    .header.portal-header.menu-ready .portal-nav {
        display: none;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        margin: 0;
        padding-top: 12px;
        border-top: 1px solid #e0e7f0;
    }
    .header.portal-header.menu-ready.menu-open .portal-nav { display: grid; grid-template-columns: minmax(0, 1fr); }
    .header.portal-header.menu-ready .portal-nav a { min-height: 44px; padding: 8px 10px; font-size: 14px; }
    .menu-open .portal-menu-icon span:first-child { transform: translateY(6px) rotate(45deg); }
    .menu-open .portal-menu-icon span:nth-child(2) { opacity: 0; }
    .menu-open .portal-menu-icon span:last-child { transform: translateY(-6px) rotate(-45deg); }
}

/* Shared page gutters align the header, banners, and page content. */
@media screen {
    main#main {
        width: 100%;
        max-width: 1600px;
        margin-inline: auto;
        padding: 28px 28px 40px;
        min-width: 0;
    }
    main#main .workspace { margin: 0; }
    .header.portal-header {
        padding-inline: max(28px, calc((100% - 1544px) / 2));
    }
    .header.portal-header .portal-nav a { flex: 0 0 auto; text-align: left; }
}
@media screen and (max-width: 767px) {
    main#main { padding: 20px 16px 32px; }
    .header.portal-header,
    .header.portal-header.menu-ready { padding-inline: 16px; }
}
/* Keep native select intrinsic widths inside the form on small WebKit viewports. */
main#main .field { min-width: 0; }
main#main .field .form-select { width: 100%; min-width: 0; max-width: 100%; }
main#main .field .form-select { overflow: hidden; text-overflow: ellipsis; }
