:root {
    --olive: #929f18;
    --olive-dark: #6f7a0d;
    --gold: #c7a528;
    --ink: #17181b;
    --soft: #f3f5f6;
    --muted: #6b7078;
    --line: rgba(23, 24, 27, .12);
    --danger: #bd3128;
    --success: #187b4b;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button, input, select { font: inherit; }

.auth-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, 44%) 1fr;
}

.auth-brand-panel {
    position: relative;
    min-height: 100vh;
    padding: 54px clamp(34px, 6vw, 96px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 78% 15%, rgba(199, 165, 40, .34), transparent 26%),
        radial-gradient(circle at 12% 88%, rgba(146, 159, 24, .28), transparent 30%),
        linear-gradient(145deg, #111214 0%, #22252a 56%, #141517 100%);
}

.auth-brand-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent);
}

.auth-brand,
.auth-brand-content { position: relative; z-index: 1; }
.auth-brand {
    width: 128px;
    padding: 13px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.auth-brand img { width: 100%; display: block; }
.auth-brand-content { max-width: 640px; padding-bottom: 7vh; }
.auth-brand-content > span,
.auth-eyebrow {
    color: #cbd559;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.auth-brand-content h1 {
    margin: 22px 0;
    max-width: 740px;
    font-size: clamp(42px, 5vw, 78px);
    line-height: .97;
    letter-spacing: -.055em;
}
.auth-brand-content p {
    max-width: 610px;
    margin: 0;
    color: rgba(255,255,255,.68);
    font-size: 17px;
    line-height: 1.75;
}

.auth-content-panel {
    min-height: 100vh;
    padding: 50px clamp(26px, 7vw, 110px);
    display: grid;
    place-items: center;
    overflow-y: auto;
    background:
        radial-gradient(circle at 100% 0, rgba(146,159,24,.1), transparent 24%),
        #fff;
}
.auth-content-inner { width: min(100%, 620px); }
.auth-card { width: 100%; }
.auth-card-heading { margin-bottom: 34px; }
.auth-card-heading h2 {
    margin: 10px 0 12px;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.03;
    letter-spacing: -.045em;
}
.auth-card-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.65;
}
.auth-form { display: grid; gap: 20px; }
.auth-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { display: grid; gap: 8px; }
.form-group label { font-size: 13px; font-weight: 760; }
.form-control {
    width: 100%;
    min-height: 54px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    outline: 0;
    color: var(--ink);
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.form-control:focus {
    border-color: var(--olive);
    box-shadow: 0 0 0 4px rgba(146,159,24,.13);
}
.password-field { position: relative; }
.password-field .form-control { padding-right: 80px; }
.password-field button {
    position: absolute;
    right: 9px;
    top: 9px;
    min-height: 36px;
    padding: 0 12px;
    border: 0;
    border-radius: 9px;
    color: var(--olive-dark);
    background: rgba(146,159,24,.12);
    font-weight: 800;
}
.field-hint,
.password-guidance { color: var(--muted); font-size: 12px; line-height: 1.5; }
.password-guidance {
    margin-top: -10px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--soft);
}
.auth-form-options {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 13px;
}
.auth-form-options a { color: var(--olive-dark); font-weight: 760; }
.checkbox-control {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}
.checkbox-control input { width: 17px; height: 17px; accent-color: var(--olive); }
.consent-control { padding: 4px 0; }
.button {
    min-height: 54px;
    padding: 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 800;
    cursor: pointer;
}
.button-primary { color: #fff; background: linear-gradient(135deg, var(--olive), var(--olive-dark)); }
.button-light { color: var(--ink); border-color: var(--line); background: #fff; }
.auth-submit { width: 100%; margin-top: 2px; }
.auth-divider {
    margin: 28px 0 18px;
    display: flex;
    align-items: center;
    gap: 16px;
    color: var(--muted);
    font-size: 12px;
}
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.auth-secondary-action { width: 100%; }
.auth-security-note,
.auth-return-link {
    margin-top: 24px;
    color: var(--muted);
    text-align: center;
    font-size: 12px;
}
.auth-return-link a { font-weight: 750; text-decoration: none; }
.system-alerts { margin-bottom: 18px; }
.alert {
    margin-bottom: 12px;
    padding: 14px 16px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-radius: 13px;
    font-size: 13px;
    line-height: 1.5;
}
.alert button { border: 0; color: inherit; background: transparent; font-size: 18px; }
.alert-success { color: #075532; background: #e7f7ef; }
.alert-error { color: #7d1e19; background: #fdecea; }
.alert-warning { color: #775900; background: #fff7dc; }
.alert-info { color: #164e7b; background: #e9f4fd; }

@media (max-width: 900px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-brand-panel { min-height: 390px; padding: 30px; }
    .auth-brand { width: 100px; }
    .auth-brand-content { padding: 30px 0 0; }
    .auth-brand-content h1 { font-size: 40px; }
    .auth-content-panel { padding: 46px 24px; }
}

@media (max-width: 560px) {
    .auth-form-grid { grid-template-columns: 1fr; }
    .auth-form-options { align-items: flex-start; flex-direction: column; }
}

/* Release 3.2.6 — candidate account recovery */
.auth-recovery-card{max-width:520px}.auth-recovery-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin:0 0 22px;background:#f0f3cf;color:#768500;font-size:22px;font-weight:800}.auth-recovery-card .auth-card-heading h2{font-size:clamp(1.75rem,3vw,2.35rem);letter-spacing:-.035em;margin-bottom:10px}.auth-recovery-card .auth-card-heading p{max-width:44ch;line-height:1.65}.auth-field-help{display:block;margin-top:8px;color:#6b716e;font-size:.79rem;line-height:1.5}.auth-security-note{display:flex;flex-direction:column;gap:4px;margin-top:22px;padding:16px 18px;border:1px solid #e1e5dc;border-radius:12px;background:#f7f8f5;color:#626965;font-size:.8rem;line-height:1.5}.auth-security-note strong{color:#202522;font-size:.82rem}.auth-back-link{display:inline-flex;margin-top:20px;color:#657300;font-weight:700;font-size:.86rem;text-decoration:none}.auth-back-link:hover{text-decoration:underline}.auth-recovery-card .auth-submit{margin-top:4px;min-height:50px}
