/* White header, slate blue sidebar and pastel panels from the approved reference.
   Keep print layout and semantic success/error indicators in their own stylesheets. */
:root {
    --navy: #101538;
    --blue: #1952c5;
    --teal: #087fa5;
    --ink: #101538;
    --muted: #50627a;
    --line: #e3ddeb;
    --bg: #f2eaf8;
    --award-cyan: #2dc9e4;
    --award-gold: #e2ac21;
    --award-gold-ink: #8b5306;
    --award-primary: #1952c5;
    --award-sidebar: #526791;
    --award-pastel: linear-gradient(105deg, #8de3e9 0%, #c7b9f4 53%, #ffc1bf 100%);
    --award-selection: linear-gradient(100deg, #aaf6f3, #ead1ff);
}

body.portal, body.login-page {
    background: var(--bg);
    color: var(--ink);
    min-height: 100vh;
}

/* One government identity across the public page and authenticated workspace. */
.topbar, .login-page .topbar {
    background: #fff;
    color: var(--ink);
    border-bottom: 1px solid #dfdbe6;
    box-shadow: 0 3px 16px #174da00a;
}
.topbar > div > strong, .login-page .topbar > div > strong {
    color: var(--ink) !important;
    background: transparent;
    padding: 0;
}
.topbar small, .login-page .topbar small { color: #343c59 !important; }
.brand, .login-page .brand {
    background: #fff;
    border: 1px solid #e0e3e8;
    box-shadow: none;
}
.top-button, .year-chip, .login-page .year-chip {
    background: #fff;
    border-color: #d0d2dc;
    color: var(--navy);
}
.top-button:hover { background: #e0edff; color: var(--navy); }
.user-avatar { background: #e2eeff; color: #1952c5; }
.language-picker select { border-color: #ccddf3; color: var(--navy); background-color: #fff; }

/* Public navigation keeps its existing destinations and mobile menu. */
.login-page .public-navigation-refreshed {
    background: var(--award-sidebar);
    border-bottom: 3px solid var(--award-gold);
    box-shadow: 0 4px 16px #0755cf18;
}
.login-page .public-navigation-refreshed a,
.login-page .public-navigation-refreshed button { color: #fff; }
.public-navigation-refreshed .public-nav-icon { color: #fff; }
.login-page .public-navigation-refreshed .public-home,
.login-page .public-navigation-refreshed .public-questionnaire {
    background: #455a82;
    border-color: #91a1be;
}
.login-page .public-navigation-refreshed .public-menu > a:hover,
.login-page .public-navigation-refreshed .public-menu > .dropdown > button:hover,
.login-page .public-navigation-refreshed .public-menu > .dropdown > button[aria-expanded=true],
.login-page .public-navigation-refreshed .public-home:hover {
    background: #3d5076;
    color: #fff;
    box-shadow: inset 0 -2px #dba72f;
}
.login-page .public-menu-toggle { background: #455a82; border-color: #91a1be; }
.login-page .public-navigation a:focus-visible,
.login-page .public-navigation button:focus-visible { outline-color: #ffe18c; }
.login-page .public-navigation-refreshed .dropdown-item { color: var(--ink); }
.login-page .public-navigation-refreshed .dropdown-item:hover,
.login-page .public-navigation-refreshed .dropdown-item:focus {
    background: #edf2fa;
    color: #304363;
}
.login-page .public-navigation-refreshed .dropdown-item:focus-visible { outline-color: #526791; }
.public-navigation-refreshed .public-file-type { background: #ffe18c; color: #593900; }
.login-page .public-navigation .public-login {
    background: linear-gradient(110deg, #ffe07c, #ffc52f);
    color: #3d3008;
    box-shadow: 0 3px 12px #16397920;
}
.login-page .public-navigation .public-login:hover { background: #ffe292; color: #3d3008; }
.login-page .award-portal-label { color: var(--navy); }
.login-page .award-portal-link { background: #fff; border-color: #cbdcf5; color: var(--navy); }
.login-page .award-portal-link:hover { background: #eaf5ff; border-color: #759bd5; color: var(--navy); }
.login-page .award-portal-link.current {
    background: #fff8df;
    border-color: #e4b840;
    color: #62400b;
    box-shadow: inset 0 -2px #edbd3b;
}

/* The sign-in introduction repeats the dashboard's pastel banner. */
.login-page .login-wrap {
    background: #fff;
    border: 1px solid #d8e4f3;
    box-shadow: 0 18px 55px #163c7620;
    margin-bottom: 36px;
}
.login-page .login-art {
    background: var(--award-pastel);
    border-top: 4px solid var(--award-gold);
    color: var(--ink);
    padding: 40px;
}
.login-page .login-art h1 {
    font-size: clamp(27px, 2.6vw, 36px) !important;
    color: var(--ink) !important;
    line-height: 1.55;
    font-weight: 750;
    margin: 22px 0 16px;
}
.login-page .login-art h1 em { color: #1747a9 !important; }
.login-page .login-art .eyebrow.light {
    color: #634805 !important;
    background: #fff8dd;
    border: 1px solid #e9d99e;
    border-radius: 6px;
    display: inline-block;
    padding: 6px 10px;
    line-height: 1.6;
}
.login-page .login-art > p { color: #253754 !important; font-size: 14px; }
.login-page .login-stats {
    border-color: #687aa64a;
    gap: 24px;
    padding: 20px 0;
    margin-top: 24px;
}
.login-page .login-stats strong { color: #1747a9; font-weight: 750; }
.login-page .login-stats span { color: #253754 !important; font-size: 12px; }
.login-page .journey-art > path { stroke: #617caf; }
.login-page .journey-art g { fill: #253754; }
.login-page .journey-art g[stroke] { fill: #ffffff80; stroke: #617caf; }
.login-page .login-trust { color: #253754 !important; font-size: 12px; line-height: 1.8; }
.login-page .login-form { background: #fff; border-top: 4px solid #5fc5e0; padding: 40px; }
.login-page .login-symbol {
    background: #fff6d8;
    color: #a56809;
    border: 1px solid #efdaa0;
    border-radius: 14px;
    width: 54px;
    height: 54px;
    margin-bottom: 20px;
}
.login-page .login-form h2 { color: var(--navy) !important; font-size: 24px !important; }
.login-page .access-note { border-color: var(--line); }
.login-page .login-form .btn-main, .btn-main {
    background: var(--award-primary);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 12px #0755cf1a;
}
.login-page .login-form .btn-main:hover, .btn-main:hover {
    color: #fff;
    filter: brightness(.94);
}
.form-control:focus, .form-select:focus, .login-page .login-form .form-control:focus {
    border-color: #578be1;
    box-shadow: 0 0 0 .2rem #0755cf1c;
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline-color: #0755cf;
}

/* Authenticated pages share the same palette without changing form dimensions. */
.sidebar { background: var(--award-sidebar); border-right-color: var(--award-sidebar); }
.sidebar .nav-label { color: #fff !important; letter-spacing: .05em; }
.sidebar .nav-item { border: 1px solid transparent; color: #fff !important; border-radius: 28px; }
.sidebar .nav-item > span { color: #fff; }
.sidebar .nav-item:hover { background: #455a82; color: #fff !important; }
.sidebar .nav-item.active {
    background: #edf2fa;
    border-color: #d7e1f0;
    box-shadow: none;
    color: #304363 !important;
}
.sidebar .nav-item.active > span { color: #304363; }
.sidebar .nav-item.active i { background: #304363; }
.sidebar .nav-item:focus-visible { outline-color: #fff; }
.cardx, .metric-card { border-color: var(--line); background: #fff; box-shadow: 0 4px 10px #37224e14; }
.metric-card { border-top: 4px solid var(--award-cyan); }
.metric-card:nth-child(6n+2) { border-top-color: #1952c5; }
.metric-card:nth-child(6n+3) { border-top-color: #ff7515; }
.metric-card:nth-child(6n+4) { border-top-color: #e2ac21; }
.metric-card:nth-child(6n+5) { border-top-color: #bf83e8; }
.metric-card:nth-child(6n) { border-top-color: var(--award-cyan); }
.cardx h2, .metric-card > strong { color: var(--ink) !important; }
.overview-banner {
    background: var(--award-pastel);
    border: 0;
    border-left: 8px solid var(--award-gold);
    color: var(--ink);
}
.overview-banner h2 { background: transparent; padding: 0; color: var(--ink) !important; }
.workspace .overview-banner p { color: #253754 !important; }
.overview-banner .eyebrow { color: #263d64 !important; }
.overview-banner a { background: var(--award-primary); border-color: #1952c5; color: #fff; }
.overview-banner a:hover { background: #1244ac; color: #fff; }
.overview-banner:after { display: none; }
.portal-toolbar .export-actions .btn { background: #fff; border: 1px solid #d0d2dc; color: var(--ink); }
.question-head, .history-heading { background: linear-gradient(105deg, #eaf3ff, #f1f9fc); }
.question-head strong, .history-heading { color: var(--navy) !important; }
.question-card { border-color: var(--line); }
.award-table thead th, .summary-table thead th { background: #edf5ff; color: #214b7b !important; }
.award-table tbody tr:hover { background: #f5faff; }
.gp-step-link.active { background: #e8f5ff; border-color: #75a8e3; }
.gp-step-link.active > span:first-child { background: #0755cf; color: #fff; }
.btn-outline-secondary { background: #f5f9ff; border-color: #c5d8f1; color: #24538b; }
.btn-outline-secondary:hover { background: #e5f0ff; border-color: #8bafdF; color: #173f78; }
.table-action { background: var(--award-primary); border-color: #0755cf; color: #fff; }
.table-action:hover, .table-action:focus-visible, .table-action:active {
    background: #064bb6;
    border-color: #064bb6;
    color: #fff;
}
#specialist-questions .btn-main, #specialist-questions .btn-main span { color: #fff !important; }
.page-footer { border-top: 1px solid #dce5f1; padding-top: 16px; }

@media (max-width: 950px) {
    .login-page .login-art, .login-page .login-form { padding: 30px; }
    .topbar { flex-wrap: wrap; }
}
@media (max-width: 600px) {
    .login-page .login-wrap { margin: 18px 12px 28px; }
    .login-page .login-art, .login-page .login-form { padding: 24px 20px; }
    .login-page .login-art h1 { font-size: 27px !important; }
    .login-page .login-stats { gap: 16px; flex-wrap: wrap; }
    .login-page .login-stats > div { flex: 1 1 70px; }
    .login-page .login-trust span { display: block; margin-left: 0; }
    .overview-banner { padding: 20px; }
}
