body[data-platform="medical"] { --candidate-auth-primary: #0f4c8f; --candidate-auth-accent: #b9782c; }
body[data-platform="inc"] { --candidate-auth-primary: #b9782c; --candidate-auth-accent: #174f86; }
.candidate-auth-overlay[hidden] { display: none; }
.candidate-auth-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; overflow-y: auto; background: rgba(7, 24, 45, .62); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: auth-overlay-in .2s ease-out; }
.candidate-auth-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; cursor: default; }
.candidate-auth-card { position: relative; z-index: 1; width: min(100%, 460px); max-height: min(760px, calc(100dvh - 36px)); overflow-y: auto; overscroll-behavior: contain; padding: 30px 34px 22px; border: 1px solid rgba(255,255,255,.7); border-radius: 18px; background: linear-gradient(145deg, #fff 0%, #f8fbff 100%); box-shadow: 0 30px 90px rgba(5, 27, 53, .32); animation: auth-card-in .35s cubic-bezier(.2,.8,.2,1); scrollbar-width: thin; scrollbar-color: #cbd7e5 transparent; }
.candidate-auth-close { position: absolute; top: 12px; right: 16px; width: 36px; height: 36px; border-radius: 50%; color: #66768a; font-size: 28px; line-height: 1; transition: color .2s, background .2s; }
.candidate-auth-close:hover { color: #0b2b4c; background: #eaf0f7; }
.candidate-auth-brand { display: flex; align-items: center; gap: 10px; color: #183451; font: 700 11px/1 Inter, sans-serif; letter-spacing: .17em; }
.candidate-auth-brand b { color: #b9782c; }
.candidate-auth-mark { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; color: white; background: linear-gradient(135deg, var(--candidate-auth-primary, #0f4c8f), color-mix(in srgb, var(--candidate-auth-primary, #0f4c8f) 76%, white)); font-size: 15px; }
.candidate-auth-heading { margin-top: 22px; text-align: center; }
.candidate-auth-kicker { color: var(--candidate-auth-accent, #b9782c); font: 700 10px/1.4 Inter, sans-serif; letter-spacing: .22em; }
.candidate-auth-heading h2 { margin-top: 5px; color: #12325f; font: 700 30px/1.15 'Playfair Display', Georgia, serif; letter-spacing: -.025em; }
.candidate-auth-heading > p:last-child { margin-top: 8px; color: #65758a; font: 400 13px/1.5 Inter, sans-serif; }
.candidate-auth-social { display: grid; gap: 9px; margin-top: 20px; }
.candidate-auth-social-button { display: flex; min-height: 43px; align-items: center; justify-content: center; gap: 10px; border: 1px solid #d8e0e9; border-radius: 8px; color: #607086; background: #f7f9fc; font: 600 12px/1 Inter, sans-serif; cursor: not-allowed; }
.social-google-mark { color: #8a95a5; font: 700 16px/1 Arial, sans-serif; }
.social-linkedin-mark { color: #8a95a5; font-size: 17px; }
.candidate-auth-provider-note { color: #8793a1; text-align: center; font: 400 10px/1.45 Inter, sans-serif; }
.candidate-auth-divider { display: flex; align-items: center; gap: 12px; margin: 16px 0 13px; color: #95a1af; font: 500 10px/1 Inter, sans-serif; }
.candidate-auth-divider::before, .candidate-auth-divider::after { height: 1px; flex: 1; background: #e5eaf0; content: ''; }
.candidate-auth-status { margin: 0 0 12px; padding: 9px 11px; border-radius: 8px; color: #33587a; background: #edf5fc; font: 500 11px/1.45 Inter, sans-serif; }
.candidate-auth-status[data-state="error"] { color: #993b3b; background: #fff1f0; }
.candidate-auth-status[data-state="success"] { color: #22664b; background: #eaf7f0; }
.candidate-auth-panels { position: relative; perspective: 1100px; }
.candidate-auth-panel { display: none; transform-origin: center center; }
.candidate-auth-panel.is-active { display: grid; gap: 11px; animation: auth-panel-in .28s cubic-bezier(.2,.8,.2,1); }
.candidate-auth-panel label { display: grid; gap: 5px; color: #33475c; font: 600 11px/1.35 Inter, sans-serif; }
.candidate-auth-panel-form { display: grid; gap: 11px; }
.candidate-auth-panel label small, .candidate-auth-optional { color: #8a96a4; font: 400 9px/1.35 Inter, sans-serif; }
.candidate-auth-input { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid #dce4ed; border-radius: 7px; outline: none; color: #21364d; background: white; font: 400 12px/1.4 Inter, sans-serif; transition: border-color .2s, box-shadow .2s; }
.candidate-auth-input:focus { border-color: var(--candidate-auth-primary, #397db2); box-shadow: 0 0 0 3px color-mix(in srgb, var(--candidate-auth-primary, #397db2) 14%, transparent); }
.candidate-auth-captcha { display: block; min-height: 65px; }

.candidate-auth-submit { display: flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; margin-top: 2px; border-radius: 7px; color: white; background: linear-gradient(110deg, color-mix(in srgb, var(--candidate-auth-primary, #0f4c8f) 84%, #183451), var(--candidate-auth-primary, #0f4c8f)); box-shadow: 0 8px 18px color-mix(in srgb, var(--candidate-auth-primary, #0f4c8f) 20%, transparent); font: 700 12px/1 Inter, sans-serif; transition: transform .2s, box-shadow .2s, filter .2s; }
.candidate-auth-submit:hover { transform: translateY(-1px); box-shadow: 0 11px 22px rgba(15,76,143,.25); filter: brightness(1.05); }
.candidate-auth-submit:disabled { opacity: .6; cursor: wait; transform: none; }
.candidate-auth-links { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 1px; color: #8390a0; font: 400 10px/1.4 Inter, sans-serif; }
.candidate-auth-links button, .candidate-auth-back-link { color: #17558b; font: 700 10px/1.4 Inter, sans-serif; text-decoration: none; }
.candidate-auth-links button:hover, .candidate-auth-back-link:hover { text-decoration: underline; }
.candidate-auth-back-link { justify-self: start; margin-top: 2px; }
.candidate-auth-panel-copy { margin-bottom: 2px; color: #687b90; font: 400 11px/1.5 Inter, sans-serif; }
.candidate-auth-resend { display: grid; gap: 6px; margin-top: 3px; color: #7a8999; font: 500 10px/1.4 Inter, sans-serif; }
.candidate-auth-resend form { display: grid; gap: 6px; }
.candidate-auth-name-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.candidate-auth-file { width: 100%; color: #66768a; font: 400 10px/1.4 Inter, sans-serif; }
.candidate-auth-file::file-selector-button { margin-right: 8px; padding: 7px 9px; border: 1px solid #dce4ed; border-radius: 6px; color: #31526f; background: #f7f9fc; font: 600 10px Inter, sans-serif; }
.candidate-auth-footer { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 18px; color: #98a3af; font: 400 9px/1.4 Inter, sans-serif; }
.candidate-auth-footer i { color: #4d9477; }
.candidate-auth-preview-link { display: block; margin-top: 8px; color: var(--candidate-auth-primary, #17558b); font: 700 10px/1.4 Inter, sans-serif; text-align: center; text-decoration: underline; }
body.auth-modal-open { overflow: hidden; }
@keyframes auth-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes auth-card-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes auth-panel-in { from { opacity: .3; transform: rotateX(-8deg) translateY(8px); } to { opacity: 1; transform: rotateX(0) translateY(0); } }
@media (max-width: 520px) { .candidate-auth-overlay { padding: 12px; } .candidate-auth-card { max-height: calc(100dvh - 24px); padding: 24px 20px 18px; border-radius: 15px; } .candidate-auth-heading { margin-top: 16px; } .candidate-auth-heading h2 { font-size: 27px; } .candidate-auth-social { grid-template-columns: 1fr 1fr; gap: 7px; } .candidate-auth-social-button { gap: 6px; padding: 0 6px; font-size: 10px; } .candidate-auth-provider-note { grid-column: 1 / -1; } }
@media (prefers-reduced-motion: reduce) { .candidate-auth-overlay, .candidate-auth-card, .candidate-auth-panel.is-active { animation: none; } *, *::before, *::after { scroll-behavior: auto !important; } }
