/* Harvest — Cadastro de candidatos.
   Usa apenas os tokens do design system (hv-tokens.css); o tema escuro vem de :root[data-theme="dark"]. */

.cad-body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--hv-bg);
    color: var(--hv-text);
}

.cad-skip {
    position: absolute;
    left: -9999px;
    top: var(--hv-space-2);
    z-index: 1000;
    padding: var(--hv-space-2) var(--hv-space-3);
    background: var(--hv-surface);
    color: var(--hv-primary);
    border-radius: var(--hv-radius-sm, 6px);
}
.cad-skip:focus { left: var(--hv-space-2); }

/* ---------- Hero ---------- */
.cad-hero {
    position: relative;
    color: #fff;
    background:
        radial-gradient(circle at 85% 15%, rgba(var(--hv-accent-rgb), .35), transparent 45%),
        linear-gradient(135deg, var(--hv-secondary) 0%, var(--hv-primary) 65%, rgba(var(--hv-accent-rgb), .9) 130%);
    padding: var(--hv-space-4) var(--hv-space-4) calc(var(--hv-space-8) + var(--hv-space-6));
    overflow: hidden;
}
.cad-hero-inner,
.cad-hero-text {
    max-width: 960px;
    margin: 0 auto;
}
.cad-hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--hv-space-3);
}
.cad-brand img {
    display: block;
    width: 132px;
    height: auto;
}
.cad-hero-text {
    margin-top: var(--hv-space-6);
}
.cad-hero-text h1 {
    color: #fff;
    font-size: clamp(1.6rem, 4.5vw, 2.4rem);
    font-weight: var(--hv-fw-bold, 700);
    margin: 0 0 var(--hv-space-2);
    letter-spacing: -.01em;
}
.cad-hero-text p {
    margin: 0;
    max-width: 640px;
    color: rgba(255, 255, 255, .85);
    font-size: var(--hv-fs-md, 1rem);
}

.cad-theme-toggle {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .08);
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
}
.cad-theme-toggle:hover,
.cad-theme-toggle:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .18);
}
.cad-icon-dark { display: none; }
:root[data-theme="dark"] .cad-icon-light { display: none; }
:root[data-theme="dark"] .cad-icon-dark { display: inline; }

/* ---------- Conteúdo ---------- */
.cad-main {
    flex: 1;
    margin-top: calc(-1 * (var(--hv-space-8) + var(--hv-space-4)));
    padding: 0 var(--hv-space-3) var(--hv-space-6);
    position: relative;
}
.cad-main:focus { outline: none; }

.cad-container {
    max-width: 960px;
    margin: 0 auto;
}
.cad-narrow { max-width: 720px; }

.cad-form {
    display: flex;
    flex-direction: column;
    gap: var(--hv-space-4);
}

.cad-section {
    background: var(--hv-surface);
    border: 1px solid var(--hv-border, rgba(0, 0, 0, .08));
    border-radius: var(--hv-radius-lg, 14px);
    box-shadow: var(--hv-shadow-md, 0 8px 24px rgba(5, 11, 44, .08));
    padding: var(--hv-space-4);
}

.cad-section-header {
    display: flex;
    align-items: center;
    gap: var(--hv-space-3);
    margin-bottom: var(--hv-space-4);
    padding-bottom: var(--hv-space-3);
    border-bottom: 1px solid var(--hv-border, rgba(0, 0, 0, .08));
}
.cad-section-header h2 {
    margin: 0;
    font-size: var(--hv-fs-lg, 1.15rem);
    font-weight: var(--hv-fw-semibold, 600);
}
.cad-section-icon {
    flex: none;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--hv-radius, 10px);
    color: var(--hv-primary);
    background: rgba(var(--hv-primary-rgb), .1);
    font-size: 1.1rem;
}
:root[data-theme="dark"] .cad-section-icon {
    color: var(--hv-accent);
    background: rgba(var(--hv-accent-rgb), .14);
}

/* Grade mobile-first: uma coluna; 12 colunas a partir de 640px. */
.cad-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--hv-space-4) var(--hv-space-4);
}
@media (min-width: 640px) {
    .cad-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .cad-col-4 { grid-column: span 4; }
    .cad-col-6 { grid-column: span 6; }
    .cad-col-8 { grid-column: span 8; }
    .cad-col-12 { grid-column: span 12; }
}
.cad-conditional[hidden] { display: none !important; }
.cad-conditional {
    animation: cad-reveal .2s ease-out;
}
@keyframes cad-reveal {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: none; }
}
:root[data-animations="off"] .cad-conditional { animation: none; }
@media (prefers-reduced-motion: reduce) { .cad-conditional { animation: none; } }

.cad-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.cad-field .form-label,
.cad-field legend.form-label {
    font-weight: var(--hv-fw-medium, 500);
    font-size: var(--hv-fs-sm, .925rem);
    margin-bottom: var(--hv-space-1);
    float: none;
    width: auto;
    padding: 0;
}
.cad-field .form-control,
.cad-field .form-select {
    min-height: 2.75rem;
    font-size: 1rem; /* evita zoom automático no iOS */
}

.cad-req { color: var(--hv-danger, #dc3545); font-weight: 600; }
.cad-optional { color: var(--hv-text-muted); font-weight: 400; font-size: .85em; }
.cad-hint {
    margin: 0 0 var(--hv-space-2);
    font-size: var(--hv-fs-xs, .8rem);
    color: var(--hv-text-muted);
}
.cad-field .form-control + .cad-hint,
.cad-field .input-group + .cad-hint { margin: var(--hv-space-1) 0 0; }
.cad-legend-note { margin: 0; font-size: var(--hv-fs-xs, .8rem); color: #fff; text-align: right; }
.cad-muted { color: var(--hv-text-muted); }

.cad-error {
    margin-top: var(--hv-space-1);
    font-size: var(--hv-fs-xs, .8rem);
    color: var(--hv-danger, #dc3545);
    font-weight: 500;
}
.cad-error:empty { display: none; }
.cad-error::before {
    content: "\F33A"; /* bi-exclamation-circle */
    font-family: "bootstrap-icons";
    margin-right: .3em;
    vertical-align: -.1em;
}

/* Opções Sim/Não e canais de contato */
.cad-yesno-options,
.cad-check-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--hv-space-2);
}
.cad-choice {
    flex: 1 1 8rem;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border: 1px solid var(--hv-border-strong, var(--hv-border, rgba(0, 0, 0, .15)));
    background: var(--hv-surface);
    color: var(--hv-text);
    border-radius: var(--hv-radius, 10px);
    font-weight: 500;
}
@media (min-width: 640px) {
    .cad-choice { flex: 0 0 auto; min-width: 8rem; }
}
.cad-choice:hover { border-color: var(--hv-primary); color: var(--hv-text); }
.btn-check:checked + .cad-choice {
    background: var(--hv-primary);
    border-color: var(--hv-primary);
    color: #fff;
}
:root[data-theme="dark"] .btn-check:checked + .cad-choice {
    background: rgba(var(--hv-accent-rgb), .9);
    border-color: var(--hv-accent);
    color: var(--hv-secondary);
}
.btn-check:focus-visible + .cad-choice {
    outline: 3px solid rgba(var(--hv-accent-rgb), .55);
    outline-offset: 2px;
}
.cad-choice .bi { opacity: .7; }
.btn-check:checked + .cad-choice .bi { opacity: 1; }
.cad-yesno.is-invalid .cad-choice,
.cad-field.is-invalid .cad-choice { border-color: var(--hv-danger, #dc3545); }

/* Honeypot */
.cad-hp {
    position: absolute !important;
    left: -10000px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Privacidade / envio */
.cad-privacy-summary {
    background: rgba(var(--hv-primary-rgb), .05);
    border: 1px solid rgba(var(--hv-primary-rgb), .14);
    border-radius: var(--hv-radius, 10px);
    padding: var(--hv-space-3);
    font-size: var(--hv-fs-sm, .925rem);
    margin-bottom: var(--hv-space-3);
}
:root[data-theme="dark"] .cad-privacy-summary {
    background: rgba(var(--hv-accent-rgb), .06);
    border-color: rgba(var(--hv-accent-rgb), .2);
}
.cad-privacy-summary p { margin: 0; }
.cad-accept { display: flex; gap: var(--hv-space-2); align-items: flex-start; padding-left: 0; }
.cad-accept .form-check-input { flex: none; width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; float: none; }

.cad-captcha { margin-top: var(--hv-space-4); min-height: 1rem; }
.cad-pow {
    display: flex;
    align-items: center;
    gap: var(--hv-space-2);
    padding: var(--hv-space-2) var(--hv-space-3);
    border: 1px dashed var(--hv-border-strong, var(--hv-border, rgba(0, 0, 0, .15)));
    border-radius: var(--hv-radius, 10px);
    font-size: var(--hv-fs-xs, .8rem);
    color: var(--hv-text-muted);
}
.cad-pow-icon { font-size: 1.1rem; }
.cad-pow[data-state="ok"] { border-style: solid; border-color: var(--hv-success, #198754); color: var(--hv-success, #198754); }
.cad-pow[data-state="error"] { border-color: var(--hv-danger, #dc3545); color: var(--hv-danger, #dc3545); }

.cad-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--hv-space-2);
    margin-top: var(--hv-space-4);
}
.cad-actions-center { justify-content: center; }
.cad-submit { width: 100%; min-height: 3rem; }
@media (min-width: 640px) { .cad-submit { width: auto; min-width: 14rem; } }

.cad-alert { display: flex; gap: var(--hv-space-2); align-items: flex-start; margin: 0 0 var(--hv-space-3); }
/* Fica sobre o banner escuro: fundo sólido e texto branco garantem contraste nos dois temas. */
.cad-alert.alert-danger,
:root[data-theme="dark"] .cad-alert.alert-danger {
    --bs-alert-bg: #b02a37;
    --bs-alert-color: #fff;
    --bs-alert-border-color: rgba(255, 255, 255, .35);
    color: #fff;
    background: #b02a37;
    border-color: rgba(255, 255, 255, .35);
    border-left-color: #fff;
    box-shadow: var(--hv-shadow-md, 0 4px 12px rgba(0, 0, 0, .2));
    font-weight: 500;
}
.cad-alert.alert-danger::before { color: #fff; }
.cad-alert > .bi { display: none; }
.cad-alert[hidden] { display: none; }

/* Resultado (sucesso/erro) */
.cad-result { text-align: center; padding: var(--hv-space-6) var(--hv-space-4); }
.cad-result h1 { font-size: clamp(1.4rem, 4vw, 1.9rem); margin-bottom: var(--hv-space-3); }
.cad-result-icon { font-size: 3.5rem; line-height: 1; margin-bottom: var(--hv-space-3); }
.cad-result-ok { color: var(--hv-success, #198754); }
.cad-result-error { color: var(--hv-danger, #dc3545); }

.cad-prose h1 { font-size: clamp(1.3rem, 3.5vw, 1.7rem); }
.cad-prose h2 { font-size: var(--hv-fs-md, 1.05rem); margin-top: var(--hv-space-4); font-weight: 600; }
.cad-prose ul { padding-left: 1.2rem; }
.cad-prose li { margin-bottom: var(--hv-space-1); }

.cad-footer {
    text-align: center;
    padding: var(--hv-space-4) var(--hv-space-3) var(--hv-space-6);
    color: var(--hv-text-muted);
    font-size: var(--hv-fs-xs, .8rem);
}
.cad-footer p { margin: 0; }

@media (min-width: 640px) {
    .cad-section { padding: var(--hv-space-5, 1.5rem) var(--hv-space-6, 2rem); }
    .cad-hero { padding-left: var(--hv-space-6); padding-right: var(--hv-space-6); }
}
