:root {
    --ink: #172033;
    --muted: #667085;
    --line: #d9e0ea;
    --surface: #ffffff;
    --soft: #f5f7fb;
    --brand: #1879b9;
    --brand-dark: #105e91;
    --danger: #b42318;
    --success: #067647;
    --warning: #b54708;
    --radius: 16px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
    background: var(--soft);
}
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.5; }
a { color: var(--brand); }
.container { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.site-header { color: white; background: linear-gradient(120deg, #12275f, #1d4ed8); padding: 42px 0; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-header h1 { margin: 4px 0; font-size: clamp(1.8rem, 4vw, 2.8rem); }
.site-header p { margin: 0; color: #dbe6ff; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 800; color: #bcd0ff; }
.admin-link { color: white; border: 1px solid rgba(255,255,255,.45); padding: 10px 16px; border-radius: 999px; text-decoration: none; white-space: nowrap; }
.page-space { padding: 34px 0 60px; }
.form-card, .panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 14px 40px rgba(19,35,74,.07); overflow: hidden; }
.form-section { padding: 30px; border-bottom: 1px solid var(--line); }
.section-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 22px; }
.section-heading > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--brand); font-weight: 800; flex: 0 0 auto; }
.section-heading h2 { margin: 0 0 3px; font-size: 1.3rem; }
.section-heading p { margin: 0; color: var(--muted); }
.grid { display: grid; gap: 20px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label { display: grid; gap: 7px; font-weight: 650; }
label b { color: var(--danger); }
label small, .form-actions p { color: var(--muted); font-weight: 400; }
input, textarea, select { width: 100%; border: 1px solid #b9c3d1; border-radius: 10px; padding: 12px 13px; font: inherit; color: var(--ink); background: white; }
textarea { min-height: 118px; resize: vertical; }
input:focus, textarea:focus, select:focus { outline: 3px solid rgba(24,121,185,.15); border-color: var(--brand); }
.inline-check { display: flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 500; }
.inline-check input, .consent-label input { width: auto; }
.upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.upload-box { border: 1px dashed #9caec5; border-radius: 12px; padding: 15px; background: #fbfcfe; }
.upload-box em { color: var(--muted); font-size: .8rem; margin-left: 4px; }
.upload-box input { padding: 9px; background: white; }
.consent-box { padding: 24px 30px; background: #f8faff; border-bottom: 1px solid var(--line); }
.consent-label { display: flex; align-items: flex-start; gap: 12px; font-weight: 500; }
.consent-label input { margin-top: 5px; transform: scale(1.15); }
.form-actions { padding: 24px 30px; display: flex; align-items: center; gap: 18px; }
.button { border: 0; border-radius: 10px; padding: 12px 18px; font: inherit; font-weight: 750; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.button-primary { background: var(--brand); color: white; }
.button-primary:hover { background: var(--brand-dark); }
.button-secondary { background: #e9eef8; color: #213455; }
.button-danger { background: #fee4e2; color: var(--danger); }
.button:disabled { opacity: .6; cursor: wait; }
.alert { border-radius: 12px; padding: 16px 18px; margin-bottom: 20px; }
.alert ul { margin-bottom: 0; }
.alert-error { background: #fef3f2; border: 1px solid #fecdca; color: #7a271a; }
.alert-success { background: #ecfdf3; border: 1px solid #abefc6; color: #05603a; }
.field-error { color: var(--danger); }
.field-success { color: var(--success); }
.success-card { max-width: 680px; margin: 40px auto; padding: 42px; text-align: center; }
.reference { font-size: 1.3rem; font-weight: 800; letter-spacing: .04em; background: var(--soft); padding: 14px; border-radius: 10px; }
.admin-shell { min-height: 100vh; }
.admin-topbar { background: #101828; color: white; padding: 16px 0; }
.admin-topbar .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.admin-topbar a { color: white; text-decoration: none; }
.admin-nav { display: flex; gap: 16px; align-items: center; }
.login-wrap { width: min(460px, calc(100% - 32px)); margin: 70px auto; }
.login-card { padding: 28px; }
.login-card h1 { margin-top: 0; }
.stack { display: grid; gap: 18px; }
.toolbar { display: flex; gap: 12px; flex-wrap: wrap; padding: 20px; border-bottom: 1px solid var(--line); }
.toolbar input, .toolbar select { width: auto; min-width: 190px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 13px 15px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: #f8fafc; font-size: .82rem; color: #475467; text-transform: uppercase; letter-spacing: .04em; }
.status { display: inline-flex; border-radius: 999px; padding: 4px 9px; font-size: .78rem; font-weight: 750; text-transform: capitalize; }
.status-submitted { background: #e9eef8; color: #344054; }
.status-under_review { background: #fff7e6; color: var(--warning); }
.status-approved { background: #ecfdf3; color: var(--success); }
.status-rejected { background: #fef3f2; color: var(--danger); }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.detail-item { border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.detail-item dt { color: var(--muted); font-size: .82rem; font-weight: 700; margin-bottom: 4px; }
.detail-item dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.panel-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: 24px; border-bottom: 1px solid var(--line); }
.panel-body { padding: 24px; }
.document-list { display: grid; gap: 10px; }
.document-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 12px; }
.muted { color: var(--muted); }
.pagination { padding: 18px; display: flex; justify-content: space-between; }
@media (max-width: 760px) {
    .header-inner, .form-actions, .panel-header { align-items: stretch; flex-direction: column; }
    .grid-2, .upload-grid, .detail-grid { grid-template-columns: 1fr; }
    .form-section, .consent-box, .form-actions { padding: 22px 18px; }
    .admin-link { align-self: flex-start; }
}


/* UPHILLS ACADEMY branding */
.academy-banner {
    background: #ffffff;
    border-bottom: 1px solid #c8d8e5;
    padding: 14px 0 0;
}
.banner-art {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
    background: #fff;
    border-radius: 14px 14px 0 0;
}
.banner-lower {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    color: white;
    background: linear-gradient(105deg, #0f5f93 0%, #1879b9 58%, #65a91c 100%);
    padding: 22px 28px;
}
.banner-lower h1 { margin: 3px 0; font-size: clamp(1.55rem, 4vw, 2.45rem); }
.banner-lower p { margin: 0; color: #edf7ff; }
.academy-address {
    display: block;
    font-style: normal;
    text-align: center;
    background: #0d1e2a;
    color: #f7fafc;
    padding: 11px 18px;
    font-size: .92rem;
    border-radius: 0 0 14px 14px;
}
.site-footer {
    background: #0d1e2a;
    color: #e8f1f6;
    padding: 24px 0;
}
.site-footer .container { display: grid; gap: 4px; text-align: center; }
.brand-mini { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand-mini img { width: 44px; height: 44px; border-radius: 8px; background: #fff; object-fit: contain; }
.brand-mini span { display: grid; line-height: 1.2; }
.brand-mini small { color: #a7c5d7; font-size: .72rem; letter-spacing: .05em; }
.login-brand { text-align: center; margin-bottom: 20px; }
.login-brand img { width: 128px; max-width: 40%; height: auto; }
.login-brand strong { display: block; font-size: 1.1rem; margin-top: 8px; }
.login-brand small { display: block; color: var(--muted); letter-spacing: .08em; font-size: .7rem; }
.upload-photo { grid-column: 1 / -1; background: #f5fbff; border-color: #5aa5d1; }
.photo-preview { width: 150px; height: 180px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); background: white; margin-top: 8px; }
.employee-photo-wrap { display: flex; gap: 22px; align-items: flex-start; }
.employee-photo { width: 150px; height: 180px; object-fit: cover; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.document-row-photo { background: #f5fbff; border-color: #9cc9e3; }

@media (max-width: 760px) {
    .banner-lower { align-items: stretch; flex-direction: column; padding: 18px; }
    .banner-art { border-radius: 10px 10px 0 0; }
    .academy-address { border-radius: 0 0 10px 10px; }
    .employee-photo-wrap { flex-direction: column; }
}

/* Rich institutional theme and local icon system */
:root {
    --navy-950: #07182d;
    --navy-900: #0b2342;
    --navy-800: #12365d;
    --royal-blue: #146ba1;
    --royal-blue-dark: #0c527f;
    --royal-gold: #d7a62f;
    --royal-gold-soft: #fff5d7;
    --emerald: #16846c;
    --emerald-dark: #0d6654;
    --sky-soft: #edf7ff;
    --surface-tint: #f8fbff;
    --shadow-soft: 0 16px 44px rgba(7, 32, 60, .09);
    --shadow-rich: 0 22px 70px rgba(6, 29, 55, .15);
}

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 0%, rgba(20, 107, 161, .10), transparent 30rem),
        radial-gradient(circle at 92% 16%, rgba(22, 132, 108, .09), transparent 27rem),
        linear-gradient(180deg, #f5f9fd 0%, #eef4f9 100%);
}

.icon {
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 auto;
    vertical-align: -0.2em;
}
.icon-sm { width: .95rem; height: .95rem; }
.icon-lg { width: 1.45rem; height: 1.45rem; }
.icon-xl { width: 2.15rem; height: 2.15rem; }

.academy-banner {
    position: relative;
    border-bottom: 0;
    padding: 18px 0 0;
    background:
        linear-gradient(135deg, rgba(7, 24, 45, .98), rgba(18, 54, 93, .97)),
        #07182d;
}
.academy-banner::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 4px;
    background: linear-gradient(90deg, var(--royal-gold), #f3cf68, var(--emerald));
}
.banner-art {
    box-shadow: 0 12px 34px rgba(0, 0, 0, .22);
    border: 1px solid rgba(255, 255, 255, .25);
}
.banner-lower {
    position: relative;
    background:
        radial-gradient(circle at 88% 22%, rgba(255, 255, 255, .15), transparent 18rem),
        linear-gradient(115deg, var(--navy-900) 0%, var(--royal-blue) 58%, var(--emerald) 100%);
    padding: 26px 30px 24px;
}
.banner-lower::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--royal-gold), rgba(255,255,255,.55), var(--royal-gold));
}
.banner-copy { display: grid; gap: 5px; }
.banner-copy h1 { display: flex; align-items: center; gap: 10px; }
.banner-copy .icon { color: #ffe09a; }
.hero-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.admin-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255,255,255,.55);
    background: rgba(7, 24, 45, .24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.admin-link:hover { transform: translateY(-1px); background: rgba(255,255,255,.13); border-color: #fff; }
.academy-address {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--navy-950);
    color: #eaf4fb;
    padding: 12px 18px 14px;
}

.trust-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 22px;
}
.trust-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 14px 16px;
    border: 1px solid rgba(20, 107, 161, .16);
    border-radius: 15px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 8px 24px rgba(7, 32, 60, .05);
}
.trust-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 12px;
    color: var(--royal-blue);
    background: var(--sky-soft);
}
.trust-item:nth-child(2) .trust-icon { color: var(--emerald); background: #eafaf5; }
.trust-item:nth-child(3) .trust-icon { color: #9a6a00; background: var(--royal-gold-soft); }
.trust-item strong { display: block; color: var(--navy-900); }
.trust-item small { display: block; color: var(--muted); }

.form-progress {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 20px;
}
.progress-step {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 12px;
    border-radius: 12px;
    border: 1px solid #dce7f1;
    background: rgba(255,255,255,.84);
    color: #40556f;
    font-size: .84rem;
    font-weight: 750;
}
.progress-step .step-icon {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #eaf3fb;
    color: var(--royal-blue);
}
.progress-step:nth-child(3) .step-icon,
.progress-step:nth-child(5) .step-icon { color: var(--emerald); background: #e8f7f2; }
.progress-step:nth-child(4) .step-icon { color: #9a6a00; background: var(--royal-gold-soft); }

.form-card, .panel {
    border: 1px solid rgba(142, 165, 188, .38);
    box-shadow: var(--shadow-rich);
}
.form-card { position: relative; }
.form-card::before {
    content: "";
    display: block;
    height: 5px;
    background: linear-gradient(90deg, var(--royal-blue), var(--royal-gold), var(--emerald));
}
.form-section {
    position: relative;
    padding: 32px;
    background: linear-gradient(180deg, #fff, #fcfdff);
}
.form-section:nth-of-type(even) { background: linear-gradient(180deg, #fbfdff, #f7fbff); }
.section-heading { align-items: center; }
.section-heading > span {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--royal-blue), var(--royal-blue-dark));
    box-shadow: 0 8px 18px rgba(20, 107, 161, .24);
}
.section-heading > span .icon { width: 1.35rem; height: 1.35rem; }
.section-heading h2 { color: var(--navy-900); font-size: 1.38rem; }
.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
    color: var(--royal-blue);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.field-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--navy-900);
}
.field-label .icon { color: var(--royal-blue); }
input, textarea, select {
    border-color: #b8c7d8;
    background: linear-gradient(180deg, #fff, #fcfdff);
    box-shadow: inset 0 1px 2px rgba(7, 32, 60, .025);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
input:hover, textarea:hover, select:hover { border-color: #8da8c1; }
input:focus, textarea:focus, select:focus {
    outline: 0;
    border-color: var(--royal-blue);
    box-shadow: 0 0 0 4px rgba(20,107,161,.13), 0 5px 15px rgba(7,32,60,.05);
}

.upload-grid { gap: 16px; }
.upload-box {
    position: relative;
    border: 1px dashed #8ca9c3;
    border-radius: 15px;
    padding: 17px;
    background: linear-gradient(145deg, #fff, #f6faff);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.upload-box:hover {
    transform: translateY(-2px);
    border-color: var(--royal-blue);
    box-shadow: 0 10px 26px rgba(7, 32, 60, .08);
}
.upload-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 3px;
    color: var(--navy-900);
}
.upload-title .icon { color: var(--royal-blue); }
.required-badge, .optional-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: .68rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.required-badge { color: #8b1e14; background: #ffebe8; }
.optional-badge { color: #566678; background: #edf1f5; }
.upload-photo {
    background: linear-gradient(135deg, #eff9ff 0%, #f2fff9 100%);
    border-color: #66a9ce;
}
.upload-photo .upload-title .icon { color: var(--emerald); }
.photo-preview { box-shadow: 0 10px 24px rgba(7, 32, 60, .12); }

.consent-box {
    background: linear-gradient(90deg, #f0f8ff, #effbf7);
    border-left: 4px solid var(--emerald);
}
.form-actions {
    justify-content: space-between;
    background: #fff;
}
.form-actions-copy { display: flex; align-items: center; gap: 9px; }

.button {
    gap: 8px;
    min-height: 44px;
    border-radius: 11px;
    box-shadow: 0 5px 14px rgba(7, 32, 60, .07);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(7, 32, 60, .12); }
.button-primary {
    background: linear-gradient(135deg, var(--royal-blue), var(--royal-blue-dark));
}
.button-primary:hover { background: linear-gradient(135deg, #177bb8, #0b4a72); }
.button-gold { color: #392900; background: linear-gradient(135deg, #f6d979, var(--royal-gold)); }
.button-emerald { color: #fff; background: linear-gradient(135deg, #1a9479, var(--emerald-dark)); }
.button-secondary { background: #edf3f9; color: var(--navy-800); }

.alert { box-shadow: 0 8px 20px rgba(7, 32, 60, .06); }
.alert-title { display: flex; align-items: center; gap: 8px; }

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 12px 0;
    background: linear-gradient(105deg, var(--navy-950), var(--navy-800));
    border-bottom: 3px solid var(--royal-gold);
    box-shadow: 0 10px 30px rgba(6, 25, 47, .18);
}
.brand-mini img { width: 50px; height: 50px; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.admin-nav { gap: 10px; }
.admin-user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 11px;
    border-radius: 10px;
    background: rgba(255,255,255,.08);
}
.admin-signout {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
}

.dashboard-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 18px;
}
.dashboard-title { display: flex; align-items: center; gap: 13px; }
.dashboard-title-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(145deg, var(--royal-blue), var(--emerald));
    box-shadow: 0 10px 24px rgba(20,107,161,.23);
}
.dashboard-title h1 { margin: 0; color: var(--navy-900); }

.stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.stat-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 105px;
    padding: 18px;
    border: 1px solid rgba(142,165,188,.32);
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    box-shadow: var(--shadow-soft);
}
.stat-card::after {
    content: "";
    position: absolute;
    width: 76px;
    height: 76px;
    right: -25px;
    bottom: -28px;
    border-radius: 50%;
    background: currentColor;
    opacity: .06;
}
.stat-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: currentColor;
}
.stat-icon .icon { color: #fff; }
.stat-card strong { display: block; color: var(--navy-900); font-size: 1.55rem; line-height: 1.05; }
.stat-card span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.stat-all { color: var(--royal-blue); }
.stat-review { color: #b97808; }
.stat-approved { color: var(--emerald); }
.stat-rejected { color: #b42318; }

.panel-header-rich { background: linear-gradient(180deg, #fff, #f8fbfe); }
.panel-title { display: flex; align-items: center; gap: 10px; }
.panel-title .icon { color: var(--royal-blue); }
.toolbar {
    align-items: center;
    background: #f9fbfd;
}
.search-control { position: relative; min-width: min(340px, 100%); flex: 1; }
.search-control .icon {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #71869c;
    pointer-events: none;
}
.search-control input { width: 100%; padding-left: 40px; }
.table-wrap { background: #fff; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: #f5faff; }
th { background: #f1f6fa; color: var(--navy-800); }
.reference-cell { display: flex; align-items: center; gap: 8px; }
.review-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 750; text-decoration: none; }

.detail-item {
    position: relative;
    padding: 15px 15px 15px 48px;
    background: linear-gradient(145deg, #fff, #f9fbfd);
}
.detail-icon {
    position: absolute;
    left: 14px;
    top: 15px;
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--royal-blue);
    background: #eaf3fb;
}
.detail-icon .icon { width: .9rem; height: .9rem; }
.document-row { background: linear-gradient(145deg, #fff, #f8fbfe); }
.document-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.document-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 11px;
    color: var(--royal-blue);
    background: #eaf3fb;
}
.document-row-photo .document-icon { color: var(--emerald); background: #e7f8f2; }

.login-wrap { margin: 52px auto; }
.login-card {
    position: relative;
    padding: 34px;
    border-top: 5px solid var(--royal-gold);
    background:
        radial-gradient(circle at 100% 0, rgba(20,107,161,.09), transparent 18rem),
        #fff;
}
.login-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin: 0 auto 14px;
    border-radius: 17px;
    color: #fff;
    background: linear-gradient(145deg, var(--royal-blue), var(--emerald));
    box-shadow: 0 12px 26px rgba(20,107,161,.24);
}
.login-card h1 { text-align: center; color: var(--navy-900); }
.login-card > .muted { text-align: center; }
.login-help {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 12px;
    border-radius: 11px;
    color: #496176;
    background: #f1f7fb;
    font-size: .84rem;
}

.success-card {
    position: relative;
    overflow: hidden;
    border-top: 5px solid var(--emerald);
    background:
        radial-gradient(circle at 15% 5%, rgba(215,166,47,.13), transparent 18rem),
        radial-gradient(circle at 95% 15%, rgba(22,132,108,.12), transparent 18rem),
        #fff;
}
.success-icon {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    margin: 15px auto;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #25a487, var(--emerald-dark));
    box-shadow: 0 16px 35px rgba(22,132,108,.25);
}
.reference {
    color: var(--navy-900);
    border: 1px dashed #9bb4c9;
    background: linear-gradient(135deg, #f5faff, #f2fbf8);
}

.site-footer {
    margin-top: 12px;
    background:
        radial-gradient(circle at 85% 10%, rgba(215,166,47,.13), transparent 20rem),
        linear-gradient(120deg, var(--navy-950), var(--navy-900));
    border-top: 3px solid var(--royal-gold);
}
.footer-rich {
    display: grid !important;
    grid-template-columns: 1.15fr 1.85fr;
    align-items: center;
    gap: 22px !important;
    text-align: left !important;
}
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand img { width: 52px; height: 52px; object-fit: contain; border-radius: 10px; background: #fff; }
.footer-brand span { display: grid; }
.footer-brand small { color: #afc5d5; }
.footer-details { display: grid; gap: 6px; justify-items: end; }
.footer-line { display: flex; align-items: flex-start; justify-content: flex-end; gap: 8px; color: #dbe8f1; }

@media (max-width: 900px) {
    .form-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-rich { grid-template-columns: 1fr; text-align: center !important; }
    .footer-brand { justify-content: center; }
    .footer-details { justify-items: center; }
    .footer-line { justify-content: center; }
}

@media (max-width: 760px) {
    .trust-strip { grid-template-columns: 1fr; }
    .form-progress { grid-template-columns: 1fr; }
    .progress-step { min-height: 52px; }
    .banner-lower { padding: 21px 18px; }
    .hero-actions { align-items: stretch; }
    .admin-link { justify-content: center; }
    .academy-address { align-items: flex-start; text-align: left; }
    .form-section { padding: 24px 18px; }
    .form-actions-copy { align-items: flex-start; }
    .stat-grid { grid-template-columns: 1fr; }
    .dashboard-heading { align-items: stretch; flex-direction: column; }
    .admin-topbar .container { align-items: flex-start; }
    .admin-nav { align-items: stretch; flex-direction: column; }
    .toolbar input, .toolbar select, .toolbar .button { width: 100%; }
    .search-control { min-width: 100%; }
    .document-row { align-items: stretch; flex-direction: column; }
    .document-row .button { width: 100%; }
}

/* v1.2.0 production controls */
.break-all {
    overflow-wrap: anywhere;
    word-break: break-word;
}
code.break-all,
.break-all code {
    display: block;
    white-space: normal;
}
textarea[readonly],
input[readonly] {
    background: #f6f8fc;
    color: #17233f;
}

.admin-nav-form { margin: 0; }
.admin-signout-button { border: 0; font: inherit; cursor: pointer; }
.privacy-content { line-height: 1.7; }
.privacy-content h2 { margin-top: 1.6rem; color: #0b2d53; }
.privacy-content p { max-width: 90ch; }
