/*
 * StudentPortal.Client visual parity layer for the candidate portal.
 * It intentionally loads after the scoped bundle so legacy candidate pages
 * converge on the shared tenant-aware academic design without changing APIs.
 */

:root {
    --portal-bg: var(--color-page-bg);
    --portal-surface: var(--color-surface);
    --portal-surface-strong: var(--color-surface);
    --portal-surface-warm: var(--color-surface);
    --portal-border: var(--color-border);
    --portal-border-strong: var(--color-border-strong);
    --portal-text: var(--color-text-primary);
    --portal-muted: var(--color-text-secondary);
    --portal-accent: var(--color-brand-900);
    --portal-accent-strong: var(--color-brand-950);
    --portal-accent-soft: var(--color-brand-100);
    --portal-accent-glow: color-mix(in srgb, var(--color-brand-900) 18%, transparent);
    --portal-ink: var(--color-text-primary);
    --portal-gold: var(--color-accent-gold);
    --portal-success: var(--color-success);
    --portal-warning: var(--color-warning);
    --portal-danger: var(--color-danger);
    --portal-radius: var(--radius-lg);
    --portal-radius-soft: var(--radius-md);
    --portal-shadow: var(--shadow-card);
    --portal-shadow-soft: var(--shadow-card);
    --portal-shadow-tiny: var(--shadow-xs);
    --portal-sidebar-width: 240px;
    --portal-sidebar-mini-width: 78px;
    --portal-frame-gap: var(--space-2);
    --portal-section-gap: var(--space-4);
    --ui-scale: 0.94;
    --base-font-size: calc(16px * var(--ui-scale));
    --focus-ring: 0 10px 24px color-mix(in srgb, var(--color-brand-900) 11%, transparent);
}

html {
    font-size: var(--base-font-size);
}

html,
body {
    color: var(--color-text-primary);
    background: var(--color-page-bg);
    font-family: "Noto Sans Georgian", "Manrope", "Segoe UI", sans-serif;
}

body {
    overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: inherit;
    letter-spacing: -0.015em;
}

:where(button, a, input, select, textarea, [role="button"]):focus-visible {
    outline: 2px solid var(--color-brand-700);
    outline-offset: 2px;
}

/* Application frame */
.portal-shell {
    --portal-sidebar-current-width: var(--portal-sidebar-width);
    width: 100%;
    min-height: 100vh;
    display: grid;
    grid-template-columns: var(--portal-sidebar-current-width) minmax(0, 1fr);
    gap: var(--space-4);
    max-width: 1840px;
    margin: 0 auto;
    padding: var(--portal-frame-gap);
    align-items: start;
}

.portal-shell::before {
    background: var(--color-page-bg);
}

.portal-shell--drawer-collapsed {
    --portal-sidebar-current-width: var(--portal-sidebar-mini-width);
}

.portal-sidebar {
    top: var(--portal-frame-gap);
    height: calc(100vh - (var(--portal-frame-gap) * 2));
}

.portal-stage {
    min-width: 0;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 0;
    align-content: start;
}

.portal-content-shell {
    width: 100%;
    min-width: 0;
    display: grid;
    gap: var(--space-4);
    padding: var(--space-4) 0 var(--space-6);
    align-content: start;
}

.portal-panel {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
    backdrop-filter: none !important;
}

.portal-panel::before,
.portal-panel::after {
    display: none !important;
}

/* Drawer and tenant identity */
.portal-drawer {
    height: 100%;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.portal-drawer__inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-2) 6px;
}

.portal-drawer__mobile-close {
    display: flex;
    justify-content: flex-end;
}

.portal-drawer__mobile-close-button {
    width: 36px;
    height: 36px;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-secondary) !important;
    background: var(--color-surface-subtle) !important;
    box-shadow: none !important;
}

.portal-brand--feature {
    position: relative;
    min-height: 92px;
    display: block;
    padding: 10px 12px;
    overflow: hidden;
    border: 1px solid var(--color-brand-100);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface) 72%);
    box-shadow: var(--shadow-xs);
}

.portal-brand--feature::before {
    content: "";
    position: absolute;
    top: 0;
    left: 22px;
    right: 22px;
    height: 2px;
    border-radius: 0 0 var(--radius-pill) var(--radius-pill);
    background: linear-gradient(90deg, transparent, var(--color-accent-gold), var(--color-brand-900), transparent);
    opacity: 0.72;
    pointer-events: none;
}

.portal-brand--feature::after {
    content: "";
    position: absolute;
    top: -32px;
    right: -26px;
    width: 86px;
    height: 86px;
    display: block;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-brand-100) 44%, transparent);
    pointer-events: none;
}

.portal-drawer__footer-brand {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(102px, 0.95fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: center;
}

.portal-drawer__footer-logo--brand {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 3;
    display: grid;
    place-items: center;
    padding: 4px;
    border: 1px solid color-mix(in srgb, var(--color-brand-700) 72%, #fff);
    border-radius: var(--radius-md);
    background:
        radial-gradient(circle at 22% 12%, rgba(255, 255, 255, 0.16), transparent 38%),
        linear-gradient(145deg, var(--color-brand-900), var(--color-brand-950));
    box-shadow: 0 6px 14px color-mix(in srgb, var(--color-brand-900) 18%, transparent);
}

.portal-drawer__footer-logo-ring {
    position: absolute;
    inset: 3px;
    display: block;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 9px;
}

.portal-drawer__footer-logo-core {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}

.portal-drawer__footer-logo-core img {
    width: 90% !important;
    height: 90% !important;
    margin: auto !important;
    border-radius: 9px !important;
    object-fit: contain !important;
    object-position: center !important;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.18));
}

.portal-drawer__footer-brand-copy {
    position: relative;
    z-index: 1;
    min-width: 0;
    display: grid;
    gap: 5px;
}

.portal-drawer__footer-brand-label {
    overflow: hidden;
    color: var(--color-brand-900);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1.22;
    letter-spacing: -0.01em;
    text-transform: none;
    text-overflow: ellipsis;
}

.portal-drawer__footer-brand-meta {
    width: fit-content;
    min-height: 22px;
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 3px 8px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    color: var(--color-text-secondary);
    background: var(--color-surface);
    font-size: 0.58rem;
    font-weight: 700;
    line-height: 1;
}

.portal-drawer__section {
    padding-inline: 2px;
}

.portal-drawer__section-label {
    margin: 0 0 var(--space-1);
    color: var(--color-text-muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.portal-drawer .mud-divider {
    margin: 0;
    border-color: var(--color-border);
}

.portal-drawer__nav-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 2px 3px var(--space-3) 2px;
    margin-right: -2px;
    scrollbar-gutter: stable;
}

.portal-drawer__nav-scroll::-webkit-scrollbar {
    width: 5px;
}

.portal-drawer__nav-scroll::-webkit-scrollbar-thumb {
    border: 1px solid var(--color-surface);
    border-radius: var(--radius-pill);
    background: var(--color-border-strong);
}

.portal-nav-group + .portal-nav-group {
    position: relative;
    margin-top: var(--space-3);
    padding-top: var(--space-3);
}

.portal-nav-group + .portal-nav-group::before {
    content: "";
    position: absolute;
    top: 0;
    left: var(--space-2);
    right: var(--space-2);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-border-strong) 16%, var(--color-border-strong) 84%, transparent);
}

.portal-nav-group__label {
    margin: 0 var(--space-2) 6px;
    color: var(--color-text-muted);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-nav-group__items {
    display: grid;
    gap: 3px;
}

.portal-nav-link {
    position: relative;
    min-height: 40px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 4px 7px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 11px;
    color: var(--color-text-secondary) !important;
    background: transparent;
    box-shadow: none;
    text-decoration: none;
    transition: color var(--motion-fast), border-color var(--motion-fast), background-color var(--motion-fast);
}

.portal-nav-link:hover {
    transform: none;
    border-color: var(--color-border);
    color: var(--color-text-primary) !important;
    background: var(--color-surface-hover);
    box-shadow: none;
}

.portal-nav-link.active,
.portal-nav-link.active:hover {
    border-color: var(--color-brand-100);
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50);
    background-image: none;
    box-shadow: inset 3px 0 0 var(--color-brand-900), var(--shadow-xs);
}

.portal-nav-link__icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--color-text-muted);
    background: transparent;
}

.portal-nav-link__icon .mud-icon-root {
    font-size: 1.02rem;
}

.portal-nav-link:hover .portal-nav-link__icon {
    color: var(--color-text-primary);
    background: var(--color-surface-subtle);
}

.portal-nav-link.active .portal-nav-link__icon {
    color: var(--color-brand-900);
    background: color-mix(in srgb, var(--color-brand-100) 72%, var(--color-surface));
}

.portal-nav-link__title {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font-size: 0.77rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.005em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-nav-link.active .portal-nav-link__title {
    font-weight: 700;
}

.portal-nav-link__badge {
    min-width: 19px;
    height: 19px;
    display: inline-grid;
    place-items: center;
    padding-inline: 5px;
    border: 2px solid var(--color-surface);
    border-radius: var(--radius-pill);
    color: #fff;
    background: var(--color-danger);
    font-size: 0.6rem;
    font-weight: 750;
}

.portal-shell--drawer-collapsed .portal-brand--feature {
    min-height: 56px;
    display: grid;
    place-items: center;
    padding: var(--space-2);
}

.portal-shell--drawer-collapsed .portal-brand--feature::before,
.portal-shell--drawer-collapsed .portal-brand--feature::after,
.portal-shell--drawer-collapsed .portal-drawer__footer-brand,
.portal-shell--drawer-collapsed .portal-drawer__section,
.portal-shell--drawer-collapsed .portal-nav-group__label {
    display: none;
}

.portal-shell--drawer-collapsed .portal-brand__seal {
    display: block;
}

.portal-shell--drawer-collapsed .portal-drawer__footer-logo--compact {
    position: relative;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(145deg, var(--color-brand-900), var(--color-brand-950));
}

.portal-shell--drawer-collapsed .portal-nav-group + .portal-nav-group {
    margin-top: var(--space-2);
    padding-top: var(--space-2);
}

.portal-shell--drawer-collapsed .portal-nav-link {
    width: 40px;
    min-height: 40px;
    grid-template-columns: 1fr;
    justify-items: center;
    margin-inline: auto;
    padding: 4px;
}

.portal-shell--drawer-collapsed .portal-nav-link.active {
    box-shadow: inset 0 -3px 0 var(--color-brand-900);
}

/* Compact StudentPortal top bar */
.portal-topbar {
    min-height: 64px;
    margin: 0;
    padding: var(--space-2) var(--space-3) !important;
    overflow: visible;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: color-mix(in srgb, var(--color-surface) 98%, transparent) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
    backdrop-filter: blur(14px);
}

.portal-topbar::before,
.portal-topbar::after {
    display: none !important;
}

.portal-topbar__row {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.portal-topbar__lead {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.portal-topbar__menu {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border: 1px solid var(--color-brand-100) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
    box-shadow: none !important;
}

.portal-topbar__titleblock {
    min-width: 0;
    display: grid;
    gap: 1px;
}

.portal-topbar__eyebrow {
    overflow: hidden;
    margin: 0 !important;
    color: var(--color-brand-800) !important;
    font-size: 0.6rem !important;
    font-weight: 700 !important;
    line-height: 1.2;
    letter-spacing: 0.075em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.portal-topbar__title {
    overflow: hidden;
    margin: 0 !important;
    color: var(--color-text-primary) !important;
    font-size: 0.9rem !important;
    font-weight: 750 !important;
    line-height: 1.22;
    letter-spacing: -0.01em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-topbar__actions {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    overflow: visible;
}

.portal-topbar__lang {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
    box-shadow: none;
}

.portal-topbar__lang-option {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: var(--color-text-secondary);
    background: transparent;
    box-shadow: none;
    transition: color var(--motion-fast), border-color var(--motion-fast), background-color var(--motion-fast);
}

.portal-topbar__lang-option:hover {
    color: var(--color-text-primary);
    background: var(--color-surface-hover);
}

.portal-topbar__lang-option--active {
    border-color: var(--color-brand-100);
    color: var(--color-brand-900);
    background: var(--color-brand-50);
    box-shadow: inset 0 -2px 0 var(--color-brand-900);
}

.portal-topbar__lang-code {
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.075em;
}

.portal-topbar__lang-label {
    font-size: 0.63rem;
    font-weight: 650;
}

.portal-topbar__mail,
.portal-topbar__profile {
    min-height: 40px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: none !important;
}

.portal-topbar__mail {
    padding: 3px 10px 3px 4px !important;
}

.portal-topbar__mail:hover,
.portal-topbar__profile:hover {
    transform: none !important;
    border-color: var(--color-border-strong) !important;
    background: var(--color-surface-hover) !important;
}

.portal-topbar__mail-icon-wrap,
.portal-topbar__profile-avatar {
    position: relative;
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--color-brand-100);
    border-radius: 9px;
    color: var(--color-brand-900);
    background: var(--color-brand-50);
    box-shadow: none;
}

.portal-topbar__mail-copy,
.portal-topbar__profile-copy {
    display: grid;
    gap: 1px;
    line-height: 1.05;
}

.portal-topbar__mail-kicker,
.portal-topbar__profile-label {
    color: var(--color-text-muted);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.07em;
}

.portal-topbar__mail-label,
.portal-topbar__profile-name {
    overflow: hidden;
    max-width: 10rem;
    color: var(--color-text-primary);
    font-size: 0.75rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-topbar__profile-menu {
    position: relative;
}

.portal-topbar__profile {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 3px 5px 3px 4px !important;
}

.portal-topbar__profile-indicator {
    width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-muted);
    background: var(--color-surface-subtle);
}

.portal-topbar__mail-count {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 17px;
    height: 17px;
    display: inline-grid;
    place-items: center;
    padding-inline: 4px;
    border: 2px solid var(--color-surface);
    border-radius: var(--radius-pill);
    color: #fff;
    background: var(--color-danger);
    font-size: 0.58rem;
    font-weight: 750;
}

.portal-topbar__mail-title-row {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.portal-topbar__mail-total {
    min-width: 18px;
    height: 18px;
    display: inline-grid;
    place-items: center;
    border-radius: var(--radius-pill);
    color: var(--color-brand-900);
    background: var(--color-brand-50);
    font-size: 0.6rem;
    font-weight: 750;
}

.portal-topbar__profile-backdrop {
    position: fixed;
    inset: 0;
    z-index: 18;
    border: 0;
    background: transparent;
}

.portal-topbar__profile-dropdown {
    position: absolute;
    top: calc(100% + var(--space-2));
    right: 0;
    z-index: 19;
    width: min(17.5rem, calc(100vw - 1.5rem));
    display: grid;
    gap: var(--space-2);
    padding: 0.48rem;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0, hsla(var(--brand-accent-h, 40), 60%, 56%, 0.12), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.995), rgba(252, 249, 247, 0.985));
    box-shadow: 0 22px 54px rgba(36, 24, 28, 0.16);
}

.portal-topbar__profile-dropdown-head {
    display: grid;
    grid-template-columns: 2.15rem minmax(0, 1fr);
    gap: 0.58rem;
    align-items: center;
    padding: 0.34rem 0.38rem 0.5rem;
    border-bottom: 1px solid rgba(76, 18, 22, 0.08);
}

.portal-topbar__profile-dropdown-avatar {
    width: 2.15rem;
    height: 2.15rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(128, 0, 0, 0.12);
    border-radius: 12px;
    color: var(--tenant-primary, var(--color-brand-900));
    background: rgba(128, 0, 0, 0.055);
}

.portal-topbar__profile-dropdown-copy {
    display: grid;
    min-width: 0;
    line-height: 1.15;
}

.portal-topbar__profile-dropdown-copy small {
    color: var(--color-text-muted);
    font-size: 0.58rem;
    font-weight: 650;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.portal-topbar__profile-dropdown-copy strong {
    margin-top: 0.1rem;
    overflow: hidden;
    color: var(--color-text-primary);
    font-size: 0.78rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-topbar__profile-dropdown-actions {
    display: grid;
    gap: 0.18rem;
}

.portal-topbar__profile-menu-item {
    min-height: 44px;
    width: 100%;
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.58rem;
    padding: 0.34rem 0.46rem;
    border: 0;
    border-radius: 13px;
    color: var(--color-text-primary);
    background: transparent;
    font: inherit;
    text-align: left;
    transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}

.portal-topbar__profile-menu-item:hover {
    color: var(--color-brand-900);
    background: var(--color-brand-50);
    transform: translateX(1px);
}

.portal-topbar__profile-menu-icon {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    color: var(--tenant-primary, var(--color-brand-900));
    background: rgba(255, 255, 255, 0.78);
}

.portal-topbar__profile-menu-copy {
    display: grid;
    min-width: 0;
    gap: 0.04rem;
}

.portal-topbar__profile-menu-copy strong {
    color: inherit;
    font-size: 0.75rem;
    font-weight: 720;
}

.portal-topbar__profile-menu-copy small {
    color: var(--color-text-muted);
    font-size: 0.61rem;
    font-weight: 550;
}

.portal-topbar__profile-menu-arrow {
    color: var(--color-text-muted);
    font-size: 1rem !important;
}

.portal-topbar__profile-menu-item--danger {
    color: var(--color-danger);
}

.portal-topbar__profile-menu-item--danger .portal-topbar__profile-menu-icon {
    color: var(--color-danger);
    border-color: rgba(180, 35, 65, 0.12);
    background: var(--color-danger-soft);
}

.portal-topbar__profile-menu-item--danger:hover {
    color: var(--color-danger);
    background: var(--color-danger-soft);
}

/* Login parity: same compact tenant welcome composition as StudentPortal.Client */
.portal-auth:not(.portal-auth--register) {
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: var(--space-4);
    background:
        radial-gradient(circle at 14% 12%, color-mix(in srgb, var(--color-brand-900) 11%, transparent), transparent 29rem),
        radial-gradient(circle at 86% 78%, color-mix(in srgb, var(--color-accent-gold) 8%, transparent), transparent 25rem),
        linear-gradient(135deg, #f7f8fb, #eef2f7 55%, #f8f6f2);
}

.portal-auth:not(.portal-auth--register) .portal-auth__experience {
    position: relative;
    z-index: 1;
    width: min(62rem, calc(100vw - 2rem)) !important;
    min-height: min(35rem, calc(100vh - 2rem)) !important;
    display: grid;
    grid-template-columns: minmax(23rem, 0.92fr) minmax(27rem, 1.08fr) !important;
    gap: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, 0.92) !important;
    border-radius: 28px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 34px 90px color-mix(in srgb, var(--color-brand-950) 17%, transparent), var(--shadow-card) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity {
    position: relative;
    min-height: 100% !important;
    padding: 2rem 2.35rem !important;
    overflow: hidden;
    background:
        radial-gradient(circle at 6% 4%, rgba(255, 255, 255, 0.17), transparent 26%),
        radial-gradient(circle at 92% 86%, color-mix(in srgb, var(--color-accent-gold) 16%, transparent), transparent 30%),
        linear-gradient(145deg, var(--color-brand-950), color-mix(in srgb, var(--color-brand-900) 82%, #101727) 58%, var(--color-brand-800)) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity::before {
    inset: 0 !important;
    border-radius: 0 !important;
    opacity: 0.68 !important;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.055) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.045) 1px, transparent 1px),
        linear-gradient(118deg, transparent 0 67%, rgba(255,255,255,0.1) 67% 67.12%, transparent 67.12%) !important;
    background-size: 4.6rem 4.6rem, 4.6rem 4.6rem, 100% 100% !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity::after {
    top: 9% !important;
    right: 0 !important;
    bottom: 9% !important;
    left: auto !important;
    width: 1px !important;
    height: auto !important;
    background: linear-gradient(180deg, transparent, rgba(255,255,255,0.28), color-mix(in srgb, var(--color-accent-gold) 52%, transparent), transparent) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-eyebrow {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-logo {
    position: absolute !important;
    top: 2rem !important;
    left: 2.35rem !important;
    width: max-content !important;
    max-width: min(13.5rem, 72%) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-logo img {
    width: auto !important;
    height: 3rem !important;
    max-width: 100% !important;
    object-fit: contain !important;
    filter: drop-shadow(0 13px 22px rgba(0, 0, 0, 0.28)) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-copy {
    position: absolute !important;
    top: clamp(10.5rem, 29vh, 12.2rem) !important;
    left: 2.35rem !important;
    max-width: 23rem !important;
    display: grid !important;
    gap: 0.62rem !important;
    padding: 0.42rem 0.45rem 0.5rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: linear-gradient(90deg, rgba(255,255,255,0.07), transparent 82%) !important;
    box-shadow: none !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-copy::before {
    content: "";
    position: absolute;
    top: 0.32rem;
    bottom: 0.32rem;
    left: 0;
    width: 2px;
    border-radius: var(--radius-pill);
    background: linear-gradient(180deg, color-mix(in srgb, var(--color-accent-gold) 68%, #fff), rgba(255,255,255,0.28));
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-title,
.portal-auth.portal-auth--register .portal-auth__identity-title {
    max-width: 18ch !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: "Manrope", "Segoe UI", sans-serif !important;
    font-size: clamp(1.38rem, 2vw, 1.72rem) !important;
    line-height: 1.16 !important;
    font-weight: 900 !important;
    letter-spacing: -0.025em !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__identity-slogan,
.portal-auth.portal-auth--register .portal-auth__identity-slogan {
    max-width: 34ch !important;
    margin: 0 !important;
    color: rgba(255,255,255,0.76) !important;
    font-family: "Manrope", "Segoe UI", sans-serif !important;
    font-size: 0.8rem !important;
    line-height: 1.55 !important;
    font-weight: 650 !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__access {
    display: grid;
    place-items: center;
    padding: 1.75rem 2rem !important;
    background:
        radial-gradient(circle at 92% 7%, color-mix(in srgb, var(--color-accent-gold) 8%, transparent), transparent 28%),
        linear-gradient(180deg, #fff, #f8f9fb) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__access-card {
    width: min(28rem, 100%) !important;
    display: grid;
    gap: 0.8rem !important;
    padding: 1.22rem !important;
    overflow: visible !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,0.9) !important;
    box-shadow: 0 22px 52px rgba(16, 24, 40, 0.1), inset 0 1px 0 #fff !important;
    backdrop-filter: blur(16px) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__badge {
    min-height: 2rem !important;
    padding: 0.32rem 0.62rem !important;
    border-radius: 11px !important;
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
    box-shadow: none !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__language {
    padding: 0.2rem !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 13px !important;
    background: var(--color-surface-subtle) !important;
    box-shadow: none !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__language-option {
    min-height: 1.85rem !important;
    padding: 0.28rem 0.55rem !important;
    border-radius: 9px !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__language-option--active {
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
    box-shadow: inset 0 0 0 1px var(--color-brand-100) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__headline {
    color: var(--color-text-primary) !important;
    font-family: inherit !important;
    font-size: clamp(1.22rem, 1.55vw, 1.42rem) !important;
    font-weight: 900 !important;
    letter-spacing: -0.025em !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__subcopy {
    margin-top: 0.28rem !important;
    color: var(--color-text-secondary) !important;
    font-size: 0.76rem !important;
}

.portal-auth .portal-auth-input {
    min-height: 3.28rem !important;
    display: grid !important;
    grid-template-columns: 2.3rem minmax(0, 1fr) auto;
    align-items: center !important;
    gap: var(--space-2);
    padding: 0.45rem 0.56rem !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 14px !important;
    background: var(--color-surface) !important;
    box-shadow: var(--shadow-xs) !important;
}

.portal-auth .portal-auth-input:focus-within {
    border-color: var(--color-brand-700) !important;
    box-shadow: 0 12px 26px color-mix(in srgb, var(--color-brand-900) 11%, transparent) !important;
}

.portal-auth .portal-auth-input__icon {
    width: 2.3rem !important;
    height: 2.3rem !important;
    display: grid;
    place-items: center;
    border-radius: 11px !important;
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
}

.portal-auth .portal-auth-input__body {
    position: relative !important;
    display: block !important;
    min-height: 2.36rem !important;
}

.portal-auth .portal-auth-input__label {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    z-index: 2 !important;
    max-width: 100% !important;
    overflow: hidden;
    transform: translateY(-50%) !important;
    color: var(--color-text-secondary) !important;
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    padding: 0.08rem 0.04rem 0.12rem 0 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
    transition: top var(--motion-fast), transform var(--motion-fast), color var(--motion-fast), font-size var(--motion-fast);
}

.portal-auth .portal-auth-input:focus-within .portal-auth-input__label,
.portal-auth .portal-auth-input--filled .portal-auth-input__label {
    top: 0.12rem !important;
    transform: translateY(0) !important;
    color: var(--color-text-muted) !important;
    font-size: 0.62rem !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
}

/* Register citizenship selector: premium, compact popover shared by desktop and mobile. */
.register-lookup-select__popover {
    margin-top: 0.42rem !important;
    overflow: hidden !important;
    border: 1px solid rgba(116, 19, 25, 0.12) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.985) !important;
    box-shadow: 0 22px 55px rgba(16, 34, 65, 0.2), 0 4px 12px rgba(16, 34, 65, 0.08) !important;
    backdrop-filter: blur(18px);
}

.register-lookup-select__list {
    padding: 0.42rem !important;
    background: linear-gradient(180deg, #fff, #fcfafb) !important;
}

.register-lookup-select__item {
    min-height: 2.65rem !important;
    margin: 0.08rem 0 !important;
    padding: 0.58rem 0.78rem !important;
    border-radius: 12px !important;
    color: #233753 !important;
    font-size: 0.88rem !important;
    font-weight: 750 !important;
    transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease !important;
}

.register-lookup-select__item:hover,
.register-lookup-select__item.mud-selected-item {
    color: #741319 !important;
    background: linear-gradient(135deg, rgba(116, 19, 25, 0.09), rgba(116, 19, 25, 0.035)) !important;
    transform: translateX(2px);
}

.portal-auth .portal-auth-input__control {
    width: 100%;
    height: 2.36rem !important;
    padding: 0.58rem 0 0 !important;
    border: 0 !important;
    outline: 0 !important;
    color: var(--color-text-primary) !important;
    background: transparent !important;
    font: inherit;
    font-size: 0.94rem !important;
    font-weight: 750 !important;
}

.portal-auth .portal-auth-input--empty:not(:focus-within) .portal-auth-input__control {
    color: transparent !important;
    caret-color: transparent !important;
}

.portal-auth .portal-auth-input__control::placeholder {
    color: transparent !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__submit {
    min-height: 2.9rem !important;
    border-radius: 13px !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow: 0 14px 28px color-mix(in srgb, var(--color-brand-900) 20%, transparent) !important;
}

.portal-auth:not(.portal-auth--register) .portal-auth__text-link {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

/* Registration keeps its wider form while sharing the tenant treatment. */
.portal-auth--register {
    background:
        radial-gradient(circle at 14% 12%, color-mix(in srgb, var(--color-brand-900) 11%, transparent), transparent 29rem),
        linear-gradient(135deg, #f7f8fb, #eef2f7 55%, #f8f6f2) !important;
}

.portal-auth--register .portal-auth__identity {
    background:
        radial-gradient(circle at 92% 86%, color-mix(in srgb, var(--color-accent-gold) 16%, transparent), transparent 30%),
        linear-gradient(145deg, var(--color-brand-950), var(--color-brand-900) 62%, var(--color-brand-800)) !important;
}

.portal-auth--register .portal-auth__access {
    background: linear-gradient(180deg, #fff, #f8f9fb) !important;
}

.portal-auth--register .portal-auth__access-card {
    border-color: var(--color-border) !important;
    background: rgba(255,255,255,0.92) !important;
    box-shadow: var(--shadow-card) !important;
}

.portal-auth--register .portal-auth__student-pass {
    border-color: color-mix(in srgb, var(--color-brand-100) 82%, rgba(255,255,255,0.24)) !important;
}

.portal-auth--register .portal-auth__submit {
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
}

/* Shared page rhythm and surfaces */
.portal-content-shell .portal-page {
    width: 100%;
    min-width: 0;
    display: grid;
    gap: var(--space-4);
    color: var(--color-text-primary);
}

.portal-content-shell .portal-page > * {
    min-width: 0;
}

.portal-content-shell .portal-page .portal-panel {
    margin: 0;
    padding: var(--space-4) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-page__loading,
.candidate-application__loading,
.candidate-workspace-loading,
.candidate-workspace-empty {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    color: var(--color-text-secondary) !important;
    background: var(--color-surface) !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-hero,
.candidate-workspace-hero,
.candidate-application__hero {
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-1) var(--space-4) var(--space-2) !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--color-text-primary);
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

.candidate-hero h1,
.candidate-workspace-hero h1,
.candidate-application__hero h1 {
    margin: 0 !important;
    color: var(--color-text-primary) !important;
    font-family: inherit !important;
    font-size: clamp(1.55rem, 2vw, 1.75rem) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.02em !important;
}

.candidate-hero p,
.candidate-workspace-hero p,
.candidate-application__hero p {
    max-width: 90ch;
    margin: var(--space-1) 0 0 !important;
    color: var(--color-text-secondary) !important;
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

.candidate-eyebrow,
.candidate-workspace-eyebrow,
.candidate-application__eyebrow,
.candidate-application__section-head > div:not(.candidate-application__status-strip) > span {
    margin-bottom: var(--space-1);
    color: var(--color-brand-800) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase;
}

.candidate-status,
.candidate-workspace-chip,
.candidate-application__pill,
.candidate-application__scope-chip {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 4px 9px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    color: var(--color-text-secondary);
    background: var(--color-surface-subtle);
    font-size: 0.7rem;
    font-weight: 700;
    white-space: nowrap;
}

.candidate-status--success,
.candidate-workspace-chip--success,
.candidate-application__document.is-complete {
    border-color: color-mix(in srgb, var(--color-success) 18%, var(--color-border)) !important;
    color: var(--color-success) !important;
    background: var(--color-success-soft) !important;
}

.candidate-status--warning,
.candidate-workspace-chip--warning {
    border-color: color-mix(in srgb, var(--color-warning) 18%, var(--color-border)) !important;
    color: var(--color-warning) !important;
    background: var(--color-warning-soft) !important;
}

.candidate-status--danger,
.candidate-workspace-chip--danger,
.candidate-application__document.is-required:not(.is-complete) {
    border-color: color-mix(in srgb, var(--color-danger) 18%, var(--color-border)) !important;
    color: var(--color-danger) !important;
    background: var(--color-danger-soft) !important;
}

.candidate-status--info,
.candidate-workspace-chip--info,
.candidate-workspace-chip--muted,
.candidate-placeholder-icon {
    border-color: color-mix(in srgb, var(--color-info) 16%, var(--color-border)) !important;
    color: var(--color-info) !important;
    background: var(--color-info-soft) !important;
}

/* Candidate overview */
.candidate-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: var(--space-3) !important;
}

.candidate-kpis .portal-kpi-card {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-notices {
    display: grid;
    gap: var(--space-2);
}

.candidate-notice {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
}

.candidate-notice--success {
    border-left: 3px solid var(--color-success) !important;
}

.candidate-notice--warning {
    border-left: 3px solid var(--color-warning) !important;
}

.candidate-notice--error {
    border-left: 3px solid var(--color-danger) !important;
}

.candidate-notice--info {
    border-left: 3px solid var(--color-info) !important;
}

.candidate-notice span {
    color: var(--color-text-secondary) !important;
}

.candidate-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) !important;
}

.candidate-panel {
    padding: var(--space-4) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-section-head,
.candidate-workspace-section-head,
.candidate-application__section-head {
    gap: var(--space-3) !important;
    margin-bottom: var(--space-3) !important;
}

.candidate-section-head h2,
.candidate-workspace-section-head h2,
.candidate-workspace-card h2,
.candidate-application__section-head h2 {
    margin: 0 !important;
    color: var(--color-text-primary) !important;
    font-family: inherit !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.candidate-list-item,
.candidate-process,
.candidate-empty-mini {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    background: var(--color-surface-subtle) !important;
    box-shadow: none !important;
}

.candidate-list-item__rank,
.candidate-workspace-rank {
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
}

.candidate-list-item strong,
.candidate-process strong {
    color: var(--color-text-primary) !important;
}

.candidate-list-item span,
.candidate-list-item small,
.candidate-process span,
.candidate-process small,
.candidate-empty-mini span {
    color: var(--color-text-secondary) !important;
}

.candidate-process.is-open {
    border-color: color-mix(in srgb, var(--color-success) 18%, var(--color-border)) !important;
    background: var(--color-success-soft) !important;
}

.candidate-process__dot,
.candidate-workspace-process__dot {
    background: var(--color-text-muted) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-text-muted) 10%, transparent) !important;
}

.candidate-process.is-open .candidate-process__dot,
.candidate-workspace-process.is-open .candidate-workspace-process__dot {
    background: var(--color-success) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-success) 12%, transparent) !important;
}

/* Shared schedule, result and message workspaces */
.candidate-workspace-page {
    gap: var(--space-4) !important;
}

.candidate-workspace-panel,
.candidate-exam-result-card,
.candidate-message-list,
.candidate-message-detail {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-workspace-panel {
    padding: var(--space-4) !important;
}

.candidate-workspace-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3) !important;
}

.candidate-workspace-kpis article {
    min-height: 88px;
    padding: var(--space-4) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-lg) !important;
    background: var(--color-surface) !important;
    background-image: none !important;
    box-shadow: var(--shadow-card) !important;
}

.candidate-workspace-kpis span,
.candidate-workspace-kpis small {
    color: var(--color-text-secondary) !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
}

.candidate-workspace-kpis strong {
    color: var(--color-text-primary) !important;
    font-size: 1.45rem !important;
    font-weight: 700 !important;
}

.candidate-workspace-card-grid {
    gap: var(--space-3) !important;
}

.candidate-workspace-card,
.candidate-workspace-mini-list div,
.candidate-workspace-document,
.candidate-workspace-message,
.candidate-workspace-process,
.candidate-exam-result-mark,
.candidate-message-list__item,
.candidate-message-open,
.candidate-message-thread__item,
.candidate-message-compose {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary);
    background: var(--color-surface-subtle) !important;
    background-image: none !important;
    box-shadow: none !important;
}

.candidate-workspace-card p,
.candidate-workspace-card small,
.candidate-workspace-message p,
.candidate-workspace-process p,
.candidate-workspace-process small,
.candidate-message-list__item small,
.candidate-message-list__item em,
.candidate-message-open header p,
.candidate-message-thread__item span {
    color: var(--color-text-secondary) !important;
}

.candidate-workspace-table,
.candidate-table {
    overflow: auto;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    background: var(--color-surface) !important;
}

.candidate-workspace-table__head,
.candidate-table__head {
    color: var(--color-text-secondary) !important;
    background: var(--color-surface-subtle) !important;
    font-weight: 700 !important;
}

.candidate-workspace-table__row,
.candidate-table__row {
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
    border-color: var(--color-border) !important;
}

.candidate-schedule-table__row.is-pending {
    background: var(--color-warning-soft) !important;
}

.candidate-schedule-table__row a {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

.candidate-exam-result-card {
    padding: var(--space-4) !important;
}

.candidate-exam-result-card.is-success,
.candidate-exam-result-mark.is-success,
.candidate-exam-result-card__message.is-success {
    border-color: color-mix(in srgb, var(--color-success) 20%, var(--color-border)) !important;
}

.candidate-exam-result-card.is-danger,
.candidate-exam-result-mark.is-danger,
.candidate-exam-result-card__message.is-danger {
    border-color: color-mix(in srgb, var(--color-danger) 20%, var(--color-border)) !important;
}

.candidate-exam-result-card.is-warning,
.candidate-exam-result-mark.is-warning,
.candidate-exam-result-card__message.is-warning {
    border-color: color-mix(in srgb, var(--color-warning) 20%, var(--color-border)) !important;
}

.candidate-exam-result-card__summary > div {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    background: var(--color-surface-subtle) !important;
}

.candidate-exam-result-card__summary span,
.candidate-exam-result-mark__scores small {
    color: var(--color-text-secondary) !important;
}

.candidate-exam-result-card__summary strong,
.candidate-exam-result-mark__scores strong {
    color: var(--color-text-primary) !important;
}

.candidate-exam-result-card__summary strong.is-success,
.candidate-exam-result-mark.is-success .candidate-exam-result-mark__scores strong {
    color: var(--color-success) !important;
}

.candidate-exam-result-card__summary strong.is-danger,
.candidate-exam-result-mark.is-danger .candidate-exam-result-mark__scores strong {
    color: var(--color-danger) !important;
}

/* Messages master-detail parity */
.candidate-message-tabs {
    display: flex;
    gap: var(--space-2) !important;
    padding: var(--space-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-subtle);
}

.candidate-message-tab {
    min-height: 38px !important;
    border: 1px solid transparent !important;
    border-radius: var(--radius-sm) !important;
    color: var(--color-text-secondary) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.candidate-message-tab:hover,
.candidate-message-tab.is-active {
    border-color: var(--color-brand-100) !important;
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
}

.candidate-message-tab b {
    color: var(--color-brand-900) !important;
    background: color-mix(in srgb, var(--color-brand-100) 72%, var(--color-surface)) !important;
}

.candidate-message-layout {
    gap: var(--space-3) !important;
}

.candidate-message-list,
.candidate-message-detail {
    padding: var(--space-3) !important;
}

.candidate-message-list__item:hover,
.candidate-message-list__item.is-active {
    border-color: var(--color-brand-100) !important;
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
}

.candidate-message-list__item.is-unread {
    box-shadow: inset 3px 0 0 var(--color-brand-900) !important;
}

.candidate-message-list__item b {
    color: var(--color-danger) !important;
    background: var(--color-danger-soft) !important;
}

.candidate-message-compose .mud-input-control {
    background: var(--color-surface) !important;
}

/* Application workspace */
.candidate-application {
    gap: var(--space-4) !important;
}

.candidate-application__layout {
    gap: var(--space-3) !important;
}

.candidate-application__card {
    padding: var(--space-4) !important;
}

.candidate-application__grid,
.candidate-application__question-grid,
.candidate-application__document-inputs,
.candidate-application__document-fields {
    gap: var(--space-3) !important;
}

.candidate-application__field {
    color: var(--color-text-primary);
}

.candidate-application__field > span {
    color: var(--color-text-secondary) !important;
    font-size: 0.74rem !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.candidate-application__control,
.candidate-application__date,
.candidate-application__field .mud-input-control {
    min-height: 42px;
    border-color: var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
    box-shadow: none !important;
}

.candidate-application__control:focus {
    border-color: var(--color-brand-700) !important;
    box-shadow: var(--focus-ring) !important;
}

.candidate-application__control[readonly] {
    color: var(--color-text-secondary) !important;
    background: var(--color-surface-subtle) !important;
}

.candidate-application__field.is-invalid .candidate-application__control {
    border-color: var(--color-danger) !important;
    background: var(--color-danger-soft) !important;
}

.candidate-application__program-toolbar,
.candidate-application__program-tile,
.candidate-application__requirements,
.candidate-application__program-selected-detail,
.candidate-application__document-group,
.candidate-application__document,
.candidate-application__document-editor {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary);
    background: var(--color-surface-subtle) !important;
    background-image: none !important;
    box-shadow: none !important;
}

.candidate-application__program-tile:hover {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
}

.candidate-application__program-rank {
    color: var(--color-brand-900) !important;
    background: var(--color-brand-50) !important;
}

.candidate-application__program-copy strong,
.candidate-application__document-row > strong,
.candidate-application__document-editor-head strong {
    color: var(--color-text-primary) !important;
}

.candidate-application__program-copy span,
.candidate-application__program-copy small,
.candidate-application__document-row > small,
.candidate-application__document-row > em,
.candidate-application__document-editor-head span,
.candidate-application__empty {
    color: var(--color-text-secondary) !important;
}

.candidate-application__program-action {
    border-color: var(--color-border) !important;
    color: var(--color-brand-900) !important;
    background: var(--color-surface) !important;
}

.candidate-application__program-action.is-delete {
    color: var(--color-danger) !important;
}

.candidate-application__document-message {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--color-text-primary) !important;
    background: var(--color-surface) !important;
}

.candidate-application__document-message.is-warning {
    border-left: 3px solid var(--color-warning) !important;
}

.candidate-application__document-message.is-success {
    border-left: 3px solid var(--color-success) !important;
}

.candidate-application__document-message.is-danger {
    border-left: 3px solid var(--color-danger) !important;
}

.candidate-application__save,
.candidate-application__add-program,
.candidate-workspace-action,
.candidate-action {
    border-radius: var(--radius-md) !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* Responsive parity */
@media (min-width: 993px) and (max-width: 1600px),
       (min-width: 993px) and (max-height: 900px) {
    :root {
        --ui-scale: 0.875;
        --portal-sidebar-width: 220px;
        --portal-sidebar-mini-width: 68px;
        --portal-frame-gap: 6px;
    }

    .portal-shell {
        gap: var(--space-2);
    }

    .portal-content-shell {
        padding: var(--space-3) 0 var(--space-4);
    }

    .portal-topbar {
        min-height: 56px;
    }

    .portal-nav-link {
        min-height: 38px;
        grid-template-columns: 28px minmax(0, 1fr) auto;
        padding: 2px 6px;
    }
}

@media (max-width: 1100px) {
    .candidate-grid,
    .candidate-message-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 992px) {
    :root {
        --portal-frame-gap: var(--space-2);
    }

    .portal-shell {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding: var(--portal-frame-gap);
    }

    .portal-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 60;
        width: min(19rem, calc(100vw - 3rem));
        height: 100svh;
        padding: var(--space-2);
        transform: translateX(-105%);
        transition: transform var(--motion-fast);
    }

    .portal-shell--mobile-open .portal-sidebar {
        transform: translateX(0);
    }

    .portal-shell--mobile-open .portal-drawer {
        border-radius: var(--radius-lg) !important;
    }

    .portal-sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 50;
        display: none;
        border: 0;
        background: rgba(16, 24, 40, 0.36);
        backdrop-filter: blur(2px);
    }

    .portal-shell--mobile-open .portal-sidebar-backdrop {
        display: block;
    }

    .portal-stage {
        min-height: calc(100vh - (var(--portal-frame-gap) * 2));
    }

    .portal-shell.portal-shell--mobile-open .portal-brand--feature {
        min-height: 92px;
        display: block;
        padding: 10px 12px;
    }

    .portal-shell.portal-shell--mobile-open .portal-drawer__footer-brand {
        display: grid;
    }

    .portal-shell.portal-shell--mobile-open .portal-nav-group__label {
        display: block;
    }

    .portal-shell.portal-shell--mobile-open .portal-nav-link {
        width: 100%;
        min-height: 44px;
        grid-template-columns: 32px minmax(0, 1fr) auto;
        justify-items: stretch;
        margin-inline: 0;
        padding: 4px 8px;
    }
}

@media (max-width: 720px) {
    .portal-topbar {
        min-height: 0;
        padding: var(--space-2) !important;
    }

    .portal-topbar__row {
        min-height: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-2);
    }

    .portal-topbar__lead {
        width: 100%;
    }

    .portal-topbar__actions {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--space-1);
    }

    .portal-topbar__lang {
        grid-column: 1 / -1;
        width: 100%;
    }

    .portal-topbar__lang-option {
        flex: 1 1 0;
        justify-content: center;
    }

    .portal-topbar__profile-menu {
        grid-column: 1;
        grid-row: 2;
        width: 100%;
    }

    .portal-topbar__profile {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-topbar__mail {
        grid-column: 2;
        grid-row: 2;
        width: 40px;
        min-width: 40px;
        padding: 0 !important;
    }

    .portal-topbar__mail-copy {
        display: none;
    }

    .portal-content-shell {
        padding-top: var(--space-3);
    }

    .candidate-hero,
    .candidate-workspace-hero,
    .candidate-application__hero,
    .candidate-section-head,
    .candidate-workspace-section-head,
    .candidate-application__section-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .candidate-kpis,
    .candidate-workspace-kpis,
    .candidate-grid,
    .candidate-workspace-card-grid {
        grid-template-columns: 1fr !important;
    }

    .candidate-hero,
    .candidate-workspace-hero,
    .candidate-application__hero {
        padding-inline: var(--space-2) !important;
    }

    .portal-auth:not(.portal-auth--register) {
        padding: var(--space-1);
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__experience {
        width: min(38rem, calc(100vw - 0.5rem)) !important;
        min-height: calc(100svh - 0.5rem) !important;
        grid-template-columns: 1fr !important;
        grid-template-rows: auto 1fr;
        border-radius: 22px !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity {
        min-height: 11.5rem !important;
        padding: 1.1rem 1.2rem 1.45rem !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity-logo {
        top: 1.15rem !important;
        left: 1.2rem !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity-logo img {
        height: 1.8rem !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity-copy {
        top: 5.3rem !important;
        left: 1.2rem !important;
        max-width: calc(100% - 2.4rem) !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity-title,
    .portal-auth.portal-auth--register .portal-auth__identity-title {
        font-size: 1.08rem !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__identity-slogan,
    .portal-auth.portal-auth--register .portal-auth__identity-slogan {
        max-width: 52ch !important;
        font-size: 0.72rem !important;
        line-height: 1.42 !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__access {
        padding: 0.85rem !important;
    }

    .portal-auth:not(.portal-auth--register) .portal-auth__access-card {
        padding: 0.82rem !important;
        border-radius: 18px !important;
    }

    .candidate-message-tabs {
        overflow-x: auto;
    }

    .candidate-message-tab {
        flex: 0 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-shell *,
    .portal-auth * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/*
 * Final tenant-colour ownership.
 * These selectors intentionally outrank the older scoped candidate styles,
 * some of which still carry the former fixed-blue palette with !important.
 */
html body .portal-auth .portal-auth__beam {
    background: linear-gradient(
        90deg,
        transparent,
        color-mix(in srgb, var(--color-brand-900) 24%, transparent),
        color-mix(in srgb, var(--color-accent-gold) 30%, transparent),
        transparent
    ) !important;
}

html body .portal-auth .portal-auth__ring {
    border-color: color-mix(in srgb, var(--color-brand-900) 14%, transparent) !important;
}

html body .portal-auth .portal-auth__badge {
    border: 1px solid var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--color-brand-900) 8%, transparent) !important;
}

html body .portal-auth .portal-auth__language-option:hover,
html body .portal-auth .portal-auth__language-option:focus-visible {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

html body .portal-auth .portal-auth__language-option.portal-auth__language-option--active {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
    box-shadow:
        inset 0 0 0 1px var(--color-brand-100),
        0 10px 20px color-mix(in srgb, var(--color-brand-900) 9%, transparent) !important;
}

html body .portal-auth .portal-auth-input:hover {
    border-color: var(--color-brand-100) !important;
    box-shadow: var(--shadow-xs) !important;
}

html body .portal-auth .portal-auth-input:focus-within {
    border-color: var(--tenant-action, var(--color-brand-900)) !important;
    box-shadow: 0 12px 26px color-mix(in srgb, var(--color-brand-900) 11%, transparent) !important;
}

html body .portal-auth .portal-auth-input .portal-auth-input__icon {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
}

html body .portal-auth .portal-auth-input .portal-auth-input__action {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-auth .portal-auth-input .portal-auth-input__action:hover,
html body .portal-auth .portal-auth-input .portal-auth-input__action:focus-visible {
    color: var(--tenant-action-text, var(--color-brand-950)) !important;
    background: var(--color-brand-100) !important;
}

html body .portal-auth .portal-auth__remember-input:checked + .portal-auth__remember-indicator {
    border-color: var(--color-brand-700) !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
}

html body .portal-auth .portal-auth__text-link,
html body .portal-auth .portal-auth__cancel,
html body .portal-auth .portal-auth__inline-action,
html body .portal-auth .mud-button-text.mud-button-text-primary {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    text-decoration-color: color-mix(in srgb, var(--color-brand-900) 30%, transparent) !important;
}

html body .portal-auth .portal-auth__text-link:hover,
html body .portal-auth .portal-auth__cancel:hover,
html body .portal-auth .portal-auth__inline-action:hover,
html body .portal-auth .mud-button-text.mud-button-text-primary:hover {
    color: var(--color-brand-950) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-auth .portal-auth__access-card .mud-button-filled.mud-button-filled-primary.portal-auth__submit,
html body .portal-auth .portal-auth__access-card .mud-button-filled.mud-button-filled-primary.portal-auth__submit--register {
    border-color: transparent !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        0 18px 34px color-mix(in srgb, var(--color-brand-900) 28%, transparent) !important;
}

html body .portal-auth .portal-auth__access-card .mud-button-filled.mud-button-filled-primary.portal-auth__submit:not(:disabled):hover,
html body .portal-auth .portal-auth__access-card .mud-button-filled.mud-button-filled-primary.portal-auth__submit--register:not(:disabled):hover {
    filter: saturate(1.04) brightness(0.96);
}

html body .portal-auth.portal-auth--register .portal-auth__access-card
    .mud-button-filled.mud-button-filled-primary.portal-auth__submit--register.is-incomplete {
    border-color: rgba(96, 105, 119, 0.16) !important;
    color: #7d8795 !important;
    background: linear-gradient(180deg, #f0f2f5 0%, #e3e7ec 100%) !important;
    background-image: none !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82) !important;
    filter: saturate(0.12);
    opacity: 0.76;
    cursor: not-allowed !important;
    transform: none !important;
}

html body .portal-auth.portal-auth--register .portal-auth__access-card
    .mud-button-filled.mud-button-filled-primary.portal-auth__submit--register.is-incomplete::before {
    display: none;
}

html body .portal-auth.portal-auth--register .portal-auth__access {
    background:
        radial-gradient(circle at 14% 12%, color-mix(in srgb, var(--color-brand-900) 8%, transparent), transparent 25%),
        radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--color-accent-gold) 13%, transparent), transparent 24%),
        linear-gradient(180deg, #fff, #f8f9fb) !important;
}

html body .portal-auth.portal-auth--register .portal-auth__access-card::after,
html body .portal-auth.portal-auth--register .portal-auth__mobile-connector span,
html body .portal-auth.portal-auth--register .portal-auth__mobile-finish-line {
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--color-brand-900) 22%, transparent),
        color-mix(in srgb, var(--color-accent-gold) 62%, transparent),
        color-mix(in srgb, var(--color-brand-900) 18%, transparent)
    ) !important;
}

html body .portal-auth.portal-auth--register .portal-auth__mobile-finish-dots span {
    background: color-mix(in srgb, var(--color-brand-900) 22%, transparent) !important;
}

html body .portal-auth.portal-auth--register .portal-auth__mobile-finish-dots span:nth-child(2) {
    background: color-mix(in srgb, var(--color-accent-gold) 34%, transparent) !important;
}

/* MudBlazor actions use the same contrast-safe tenant action colour everywhere. */
html body .portal-content-shell .portal-page .mud-button-filled.mud-button-filled-primary,
html body .portal-dialog-shell .mud-button-filled.mud-button-filled-primary,
html body .portal-card-dialog-shell .mud-button-filled.mud-button-filled-primary,
html body .portal-button--primary {
    border-color: transparent !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--color-brand-900) 22%, transparent) !important;
}

html body .portal-content-shell .portal-page .mud-button-outlined.mud-button-outlined-primary,
html body .portal-dialog-shell .mud-button-outlined.mud-button-outlined-primary,
html body .portal-card-dialog-shell .mud-button-outlined.mud-button-outlined-primary {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .portal-page .mud-button-text.mud-button-text-primary,
html body .portal-dialog-shell .mud-button-text.mud-button-text-primary,
html body .portal-card-dialog-shell .mud-button-text.mud-button-text-primary {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

/* Brand-like information states are tenant-coloured; semantic states stay green/amber/red. */
html body .portal-content-shell .candidate-status--info,
html body .portal-content-shell .candidate-workspace-chip--info,
html body .portal-content-shell .candidate-placeholder-icon {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .candidate-workspace-chip--muted {
    border-color: var(--color-border) !important;
    color: var(--color-text-secondary) !important;
    background: var(--color-surface-subtle) !important;
}

html body .portal-content-shell .candidate-workspace-document--info,
html body .portal-content-shell .candidate-workspace-message--info {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .candidate-notice--info {
    border-left-color: var(--color-brand-900) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

/* Candidate application chips, edit affordances, and uploads are brand actions. */
html body .portal-content-shell .candidate-application__pill,
html body .portal-content-shell .candidate-application__scope-chip:not(.is-program),
html body .portal-content-shell .candidate-application__requirements span,
html body .portal-content-shell .candidate-application__program-selected-detail {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .candidate-application__empty--action {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .candidate-application__program-action.is-edit,
html body .portal-content-shell .candidate-application__document-editor-head .mud-icon-root,
html body .portal-content-shell .candidate-application__document-editor-head button,
html body .portal-content-shell .candidate-application__document-group-head > span {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

html body .portal-content-shell .candidate-application__program-action.is-edit,
html body .portal-content-shell .candidate-application__document-editor-head button {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-content-shell .candidate-application__document-attachment,
html body .portal-content-shell .candidate-application__file-trigger {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

/* Application selection dialogs are outside .portal-page, so theme them explicitly. */
html body .portal-dialog-shell .portal-dialog__action-close:hover,
html body .portal-dialog-shell .portal-dialog__action-close:focus-visible {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-card-dialog-shell .portal-card-dialog__note {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
}

html body .portal-card-dialog-shell .portal-card-dialog__selector-chip:hover {
    border-color: var(--color-brand-100) !important;
}

html body .portal-card-dialog-shell .portal-card-dialog__selector-chip--active {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
    box-shadow:
        inset 0 0 0 1px var(--color-brand-100),
        0 10px 20px color-mix(in srgb, var(--color-brand-900) 12%, transparent) !important;
}

/* Shared field focus state follows the tenant instead of the legacy blue ring. */
:root {
    --portal-field-border-focus: var(--color-brand-700);
    --portal-field-shadow-focus: var(--focus-ring);
}

html body .portal-field-control .mud-input-adornment-start {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

html body .portal-content-shell .portal-page .mud-input.mud-input-outlined:focus-within,
html body .portal-content-shell .portal-page .mud-input-root:focus-within,
html body .portal-content-shell .portal-page .mud-select:focus-within {
    box-shadow: var(--focus-ring) !important;
}

/* Registration card/pass details must inherit the same tenant palette. */
html body .portal-auth.portal-auth--register .portal-auth__access-card::before {
    background:
        radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--color-brand-900) 12%, transparent), transparent 28%),
        radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--color-accent-gold) 13%, transparent), transparent 24%),
        linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.46) 42%, transparent 64%) !important;
}

html body .portal-auth.portal-auth--register .portal-auth__pass-mark {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: color-mix(in srgb, var(--color-brand-50) 88%, #fff) !important;
    background-image: none !important;
}

html body .portal-auth.portal-auth--register .portal-auth__pass-track span {
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--color-brand-900) 22%, transparent),
        color-mix(in srgb, var(--color-accent-gold) 58%, transparent)
    ) !important;
}

/* Document upload dialog */
html body .candidate-document-attach .candidate-document-attach__title-icon,
html body .candidate-document-messages .candidate-document-messages__title-icon {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
    box-shadow: 0 16px 32px color-mix(in srgb, var(--color-brand-900) 14%, transparent) !important;
}

html body .candidate-document-attach .candidate-document-attach__upload,
html body .candidate-document-attach .candidate-document-attach__saved-file {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--color-brand-900) 10%, transparent) !important;
}

html body .candidate-document-attach .candidate-document-attach__upload:hover {
    border-color: var(--color-brand-700) !important;
    box-shadow: 0 16px 30px color-mix(in srgb, var(--color-brand-900) 14%, transparent) !important;
}

html body .candidate-document-attach .candidate-document-attach__field input:focus,
html body .candidate-document-messages .candidate-document-messages__reply textarea:focus {
    border-color: var(--color-brand-700) !important;
    box-shadow: var(--focus-ring) !important;
}

html body .candidate-document-messages .candidate-document-messages__message.is-candidate {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
}

html body .candidate-document-messages .candidate-document-messages__chip.is-candidate,
html body .candidate-document-messages .candidate-document-messages__chip.is-agent {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

/* Program picker dialog */
html body .candidate-program-picker .mud-dialog {
    background:
        radial-gradient(circle at 94% 4%, color-mix(in srgb, var(--color-brand-900) 10%, transparent), transparent 24%),
        radial-gradient(circle at 3% 18%, color-mix(in srgb, var(--color-brand-900) 7%, transparent), transparent 26%),
        linear-gradient(180deg, #fff, #f8f9fb) !important;
}

html body .candidate-program-picker .candidate-program-picker__title-icon {
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow: 0 15px 28px color-mix(in srgb, var(--color-brand-900) 18%, transparent) !important;
}

html body .candidate-program-picker .candidate-program-picker__eyebrow,
html body .candidate-program-picker .candidate-program-picker__language {
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
}

html body .candidate-program-picker .candidate-program-picker__row.is-selected {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
}

html body .candidate-program-picker .candidate-program-picker__mark,
html body .candidate-program-picker .candidate-program-picker__index,
html body .candidate-program-picker .candidate-program-picker__chip:not(.is-warning) {
    border-color: var(--color-brand-100) !important;
    color: var(--tenant-action-text, var(--color-brand-900)) !important;
    background: var(--color-brand-50) !important;
}

html body .candidate-program-picker .candidate-program-picker__filters select:focus,
html body .candidate-program-picker .candidate-program-picker__filters input:focus,
html body .candidate-program-picker .candidate-program-picker__requirement-field select:focus,
html body .candidate-program-picker .candidate-program-picker__requirement-field input:focus {
    border-color: var(--color-brand-700) !important;
    box-shadow: var(--focus-ring) !important;
}

html body .candidate-program-picker .mud-button-filled.mud-button-filled-primary,
html body .candidate-document-attach .mud-button-filled.mud-button-filled-primary,
html body .candidate-document-messages .mud-button-filled.mud-button-filled-primary {
    border-color: transparent !important;
    color: var(--tenant-on-action, #fff) !important;
    background: var(--tenant-action, var(--color-brand-900)) !important;
    background-image: none !important;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--color-brand-900) 22%, transparent) !important;
}

html body .candidate-document-attach .mud-button-filled.mud-button-filled-primary:disabled,
html body .candidate-document-attach .mud-button-filled.mud-button-filled-primary.mud-disabled {
    border-color: var(--color-border, #dbe2ea) !important;
    color: var(--color-text-muted, #8290a3) !important;
    background: var(--color-surface-muted, #eef2f6) !important;
    box-shadow: none !important;
    opacity: 0.72 !important;
    cursor: not-allowed !important;
}

html body .portal-content-shell .candidate-message-thread__item.is-outgoing {
    border-color: var(--color-brand-100) !important;
    background: var(--color-brand-50) !important;
    background-image: none !important;
}

/* The register page has a more specific desktop grid; collapse it explicitly on small screens. */
@media (max-width: 980px) {
    html body .portal-auth.portal-auth--register {
        display: block !important;
        min-height: 100svh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__experience.portal-auth__experience--register {
        width: min(42rem, calc(100vw - 0.8rem)) !important;
        min-width: 0 !important;
        min-height: calc(100svh - 0.8rem) !important;
        height: auto !important;
        margin-inline: auto !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        overflow: hidden !important;
        background: var(--color-surface) !important;
        background-image: none !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__identity,
    html body .portal-auth.portal-auth--register .portal-auth__access {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__identity {
        min-height: 10.2rem !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__identity::after {
        background: linear-gradient(
            90deg,
            transparent,
            color-mix(in srgb, var(--color-accent-gold) 66%, transparent),
            color-mix(in srgb, var(--color-brand-700) 52%, transparent),
            transparent
        ) !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__access {
        min-height: 0 !important;
    }

    html body .portal-auth.portal-auth--register .portal-auth__access-card.portal-auth__access-card--register {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* Premium compact candidate navigation */
.portal-shell {
    --candidate-nav-accent: var(--tenant-action, var(--color-brand-900));
    --candidate-nav-accent-strong: var(--color-brand-950);
    --candidate-nav-soft: color-mix(in srgb, var(--color-brand-100) 52%, var(--color-surface));
}

.portal-shell .portal-drawer {
    overflow: hidden;
    border-color: color-mix(in srgb, var(--candidate-nav-accent) 10%, var(--color-border)) !important;
    background:
        radial-gradient(circle at 12% 4%, color-mix(in srgb, var(--candidate-nav-accent) 8%, transparent), transparent 24%),
        linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 98%, var(--color-brand-50)), var(--color-surface)) !important;
    background-image:
        radial-gradient(circle at 12% 4%, color-mix(in srgb, var(--candidate-nav-accent) 8%, transparent), transparent 24%),
        linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 98%, var(--color-brand-50)), var(--color-surface)) !important;
}

.portal-shell .portal-drawer__inner {
    gap: 6px;
    padding: 8px;
}

.portal-shell .portal-brand--feature {
    min-height: 78px;
    padding: 8px;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--candidate-nav-accent) 12%, var(--color-border));
    border-radius: 17px;
    background:
        radial-gradient(circle at 90% 6%, color-mix(in srgb, var(--candidate-nav-accent) 11%, transparent), transparent 34%),
        linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-brand-50) 42%, var(--color-surface)));
    box-shadow: var(--shadow-xs), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.portal-shell .portal-brand--feature::before {
    position: absolute;
    top: 0;
    right: 16px;
    left: 16px;
    height: 2px;
    border-radius: 0 0 var(--radius-pill) var(--radius-pill);
    background: linear-gradient(90deg, var(--color-accent-gold), var(--candidate-nav-accent), transparent);
    content: "";
}

.portal-shell .portal-brand--feature::after {
    position: absolute;
    top: -42px;
    right: -34px;
    width: 104px;
    height: 104px;
    border: 1px solid color-mix(in srgb, var(--candidate-nav-accent) 8%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, var(--candidate-nav-accent) 3%, transparent);
    content: "";
    pointer-events: none;
}

.portal-shell .portal-drawer__footer-brand {
    position: relative;
    z-index: 1;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 8px;
}

.portal-shell .portal-drawer__footer-logo--brand {
    width: 74px;
    height: 56px;
    aspect-ratio: auto;
    padding: 3px;
    border-radius: 13px;
    box-shadow: 0 9px 18px color-mix(in srgb, var(--candidate-nav-accent) 18%, transparent);
}

.portal-shell .portal-drawer__footer-brand-copy {
    min-width: 0;
    gap: 4px;
}

.portal-shell .portal-drawer__footer-brand-label {
    display: -webkit-box;
    overflow: hidden;
    color: var(--candidate-nav-accent-strong);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: 0;
    overflow-wrap: anywhere;
    text-transform: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.portal-shell .portal-drawer__footer-brand-meta {
    display: block;
    width: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    color: var(--color-text-muted);
    background: transparent;
    font-size: 0.54rem;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-shell .portal-drawer__section {
    display: none;
}

.portal-shell .portal-drawer__nav-scroll {
    margin-right: -2px;
    padding: 4px 2px 8px;
}

.portal-shell .portal-nav-group + .portal-nav-group {
    margin-top: 10px;
    padding-top: 10px;
}

.portal-shell .portal-nav-group__label {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 7px 5px;
    color: color-mix(in srgb, var(--candidate-nav-accent) 58%, var(--color-text-muted));
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.09em;
}

.portal-shell .portal-nav-group__label::after {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--candidate-nav-accent) 16%, transparent), transparent);
    content: "";
}

.portal-shell .portal-nav-group__items {
    gap: 2px;
}

.portal-shell .portal-nav-link {
    position: relative;
    min-height: 38px;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 7px;
    padding: 4px 7px;
    border-radius: 12px;
}

.portal-shell .portal-nav-link::before {
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 3px;
    width: 3px;
    border-radius: var(--radius-pill);
    background: transparent;
    content: "";
}

.portal-shell .portal-nav-link:hover {
    border-color: color-mix(in srgb, var(--candidate-nav-accent) 10%, transparent);
    background: color-mix(in srgb, var(--candidate-nav-accent) 4%, var(--color-surface));
}

.portal-shell .portal-nav-link.active {
    border-color: color-mix(in srgb, var(--candidate-nav-accent) 13%, transparent);
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--candidate-nav-accent) 9%, var(--color-surface)),
            color-mix(in srgb, var(--candidate-nav-accent) 3%, var(--color-surface)));
    box-shadow: 0 7px 16px color-mix(in srgb, var(--candidate-nav-accent) 7%, transparent);
}

.portal-shell .portal-nav-link.active::before {
    background: linear-gradient(180deg, var(--color-accent-gold), var(--candidate-nav-accent));
}

.portal-shell .portal-nav-link__icon {
    width: 28px;
    height: 28px;
    border-radius: 10px;
}

.portal-shell .portal-nav-link__icon .mud-icon-root {
    font-size: 0.98rem;
}

.portal-shell .portal-nav-link:hover .portal-nav-link__icon,
.portal-shell .portal-nav-link.active .portal-nav-link__icon {
    color: var(--candidate-nav-accent);
    background: color-mix(in srgb, var(--candidate-nav-accent) 7%, var(--color-surface));
}

.portal-shell .portal-nav-link__title {
    font-size: 0.74rem;
    font-weight: 550;
}

.portal-shell .portal-nav-link.active .portal-nav-link__title {
    font-weight: 700;
}

.portal-shell .portal-nav-link__badge {
    min-width: 18px;
    height: 18px;
}

.portal-shell .portal-drawer__candidate {
    display: grid;
    min-height: 48px;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 7px;
    align-items: center;
    padding: 6px 7px;
    border: 1px solid color-mix(in srgb, var(--candidate-nav-accent) 10%, var(--color-border));
    border-radius: 14px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--candidate-nav-accent) 5%, var(--color-surface)),
        var(--color-surface));
    box-shadow: var(--shadow-xs);
}

.portal-shell .portal-drawer__candidate-avatar {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 10px;
    color: var(--candidate-nav-accent);
    background: color-mix(in srgb, var(--candidate-nav-accent) 8%, var(--color-surface));
}

.portal-shell .portal-drawer__candidate-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.portal-shell .portal-drawer__candidate-copy strong,
.portal-shell .portal-drawer__candidate-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-shell .portal-drawer__candidate-copy strong {
    color: var(--color-text);
    font-size: 0.66rem;
    font-weight: 700;
}

.portal-shell .portal-drawer__candidate-copy small {
    color: var(--color-text-muted);
    font-size: 0.53rem;
    font-weight: 550;
}

.portal-shell .portal-drawer__candidate-state {
    width: 7px;
    height: 7px;
    border: 2px solid var(--color-surface);
    border-radius: 50%;
    background: var(--color-success-600, #198754);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-success-600, #198754) 13%, transparent);
}

.portal-shell--drawer-collapsed .portal-drawer__inner {
    padding: 6px 4px;
}

.portal-shell--drawer-collapsed .portal-brand--feature {
    min-height: 50px;
    padding: 6px;
    border-radius: 14px;
}

.portal-shell--drawer-collapsed .portal-drawer__footer-logo--compact {
    width: 36px;
    height: 36px;
}

.portal-shell--drawer-collapsed .portal-nav-group + .portal-nav-group {
    margin-top: 7px;
    padding-top: 7px;
}

.portal-shell--drawer-collapsed .portal-nav-link {
    width: 38px;
    min-height: 38px;
    border-radius: 12px;
}

.portal-shell--drawer-collapsed .portal-nav-link::before {
    top: auto;
    right: 10px;
    bottom: 2px;
    left: 10px;
    width: auto;
    height: 3px;
}

.portal-shell--drawer-collapsed .portal-nav-link.active {
    box-shadow: 0 6px 14px color-mix(in srgb, var(--candidate-nav-accent) 8%, transparent);
}

.portal-shell--drawer-collapsed .portal-drawer__candidate {
    display: none;
}

@media (min-width: 1601px) {
    :root {
        --portal-sidebar-width: 244px;
    }
}

@media (min-width: 993px) and (max-width: 1600px),
       (min-width: 993px) and (max-height: 900px) {
    :root {
        --portal-sidebar-width: 232px;
        --portal-sidebar-mini-width: 66px;
    }

    .portal-shell .portal-brand--feature {
        min-height: 74px;
    }

    .portal-shell .portal-drawer__footer-brand {
        grid-template-columns: 68px minmax(0, 1fr);
    }

    .portal-shell .portal-drawer__footer-logo--brand {
        width: 68px;
        height: 52px;
    }
}

@media (max-width: 992px) {
    .portal-shell .portal-sidebar {
        width: min(18rem, calc(100vw - 2rem));
        padding: 6px;
    }

    .portal-shell .portal-brand--feature {
        min-height: 76px;
        padding: 8px;
    }

    .portal-shell .portal-drawer__footer-brand {
        grid-template-columns: 74px minmax(0, 1fr);
    }

    .portal-shell .portal-nav-link {
        min-height: 40px;
        grid-template-columns: 28px minmax(0, 1fr) auto;
    }
}

/* Student portal typography and compact page hierarchy */
html body,
html body .mud-typography,
html body button,
html body input,
html body select,
html body textarea {
    font-family: "Noto Sans Georgian", "Manrope", "Segoe UI", sans-serif !important;
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6 {
    font-family: inherit !important;
    letter-spacing: -0.015em !important;
}

html body .portal-page .candidate-hero h1,
html body .portal-page .candidate-workspace-hero h1,
html body .portal-page .candidate-application__hero h1 {
    font-size: clamp(1.22rem, 1.42vw, 1.42rem) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
}

html body .portal-page .candidate-hero p,
html body .portal-page .candidate-workspace-hero p,
html body .portal-page .candidate-application__hero p {
    margin-top: 0.18rem !important;
    font-size: 0.78rem !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
}

html body .portal-page .candidate-section-head h2,
html body .portal-page .candidate-workspace-section-head h2,
html body .portal-page .candidate-workspace-card h2,
html body .portal-page .candidate-application__section-head h2 {
    font-size: 0.92rem !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

html body .portal-page .candidate-eyebrow,
html body .portal-page .candidate-workspace-eyebrow,
html body .portal-page .candidate-application__eyebrow,
html body .portal-page .candidate-application__section-title > div > span {
    font-size: 0.65rem !important;
    font-weight: 650 !important;
    letter-spacing: 0.055em !important;
}

html body .portal-page .candidate-kpis strong,
html body .portal-page .candidate-workspace-kpis strong {
    font-size: 1.18rem !important;
    font-weight: 700 !important;
}

/* Compact page heroes shared by every authenticated candidate page. */
html body .portal-page :is(
    .candidate-hero,
    .candidate-workspace-hero,
    .candidate-application__hero,
    .candidate-overview-hero,
    .candidate-schedule-hero,
    .candidate-results-hero,
    .candidate-enrollment-results-hero) {
    min-height: 4.8rem !important;
    gap: 0.68rem !important;
    padding: 0.58rem 0.78rem 0.58rem 0.92rem !important;
}

html body .portal-page :is(
    .candidate-overview-hero__identity,
    .candidate-schedule-hero__identity,
    .candidate-results-hero__identity,
    .candidate-enrollment-results-hero__identity,
    .candidate-application__hero-main) {
    gap: 0.58rem !important;
}

html body .portal-page :is(
    .candidate-overview-hero__icon,
    .candidate-schedule-hero__icon,
    .candidate-results-hero__icon,
    .candidate-enrollment-results-hero__icon,
    .candidate-application__hero-mark) {
    width: 2.5rem !important;
    height: 2.5rem !important;
    border-radius: 0.76rem !important;
}

html body .portal-page :is(
    .candidate-overview-hero__icon,
    .candidate-schedule-hero__icon,
    .candidate-results-hero__icon,
    .candidate-enrollment-results-hero__icon,
    .candidate-application__hero-mark) .mud-icon-root {
    font-size: 1.25rem !important;
}

html body .portal-page :is(
    .candidate-hero,
    .candidate-workspace-hero,
    .candidate-application__hero,
    .candidate-overview-hero,
    .candidate-schedule-hero,
    .candidate-results-hero,
    .candidate-enrollment-results-hero) h1 {
    margin-top: 0.02rem !important;
    font-size: clamp(1.05rem, 1.18vw, 1.24rem) !important;
    font-weight: 680 !important;
    line-height: 1.18 !important;
    letter-spacing: -0.018em !important;
}

html body .portal-page :is(
    .candidate-hero,
    .candidate-workspace-hero,
    .candidate-application__hero,
    .candidate-overview-hero,
    .candidate-schedule-hero,
    .candidate-results-hero,
    .candidate-enrollment-results-hero) p {
    margin-top: 0.12rem !important;
    font-size: 0.69rem !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
}

html body .portal-page :is(
    .candidate-eyebrow,
    .candidate-workspace-eyebrow,
    .candidate-application__eyebrow) {
    margin-bottom: 0.08rem !important;
    font-size: 0.59rem !important;
    font-weight: 650 !important;
    letter-spacing: 0.045em !important;
}

html body .portal-page :is(
    .candidate-overview-status,
    .candidate-schedule-status,
    .candidate-results-status,
    .candidate-enrollment-results-status,
    .candidate-workspace-chip) {
    min-height: 1.95rem !important;
    padding: 0.32rem 0.58rem !important;
    font-size: 0.66rem !important;
}

html body .portal-content-shell .portal-page .candidate-application__hero {
    min-height: 4.8rem !important;
    gap: 0.68rem !important;
    padding: 0.58rem 0.78rem 0.58rem 0.92rem !important;
    border: 1px solid color-mix(in srgb, var(--tenant-action-bg, var(--color-brand-700)) 14%, var(--color-border)) !important;
    border-radius: 1.35rem !important;
    background:
        radial-gradient(circle at 86% 4%, color-mix(in srgb, var(--tenant-action-bg, var(--color-brand-700)) 9%, transparent) 0, transparent 31%),
        linear-gradient(135deg, var(--color-surface) 0%, color-mix(in srgb, var(--color-surface-subtle) 82%, white) 100%) !important;
    background-image:
        radial-gradient(circle at 86% 4%, color-mix(in srgb, var(--tenant-action-bg, var(--color-brand-700)) 9%, transparent) 0, transparent 31%),
        linear-gradient(135deg, var(--color-surface) 0%, color-mix(in srgb, var(--color-surface-subtle) 82%, white) 100%) !important;
    box-shadow: 0 16px 40px rgba(24, 33, 52, 0.07) !important;
}

@media (max-width: 720px) {
    html body .portal-page :is(
        .candidate-hero,
        .candidate-workspace-hero,
        .candidate-application__hero,
        .candidate-overview-hero,
        .candidate-schedule-hero,
        .candidate-results-hero,
        .candidate-enrollment-results-hero) {
        min-height: 0 !important;
        padding: 0.62rem 0.68rem 0.62rem 0.78rem !important;
    }

    html body .portal-content-shell .portal-page .candidate-application__hero {
        min-height: 0 !important;
        padding: 0.62rem 0.68rem 0.62rem 0.78rem !important;
    }
}
