/* Paleta própria da tela de login — baseada no arquivo de referência (referencia/login-fluxo.html).
   Segue o mesmo padrão de modo claro/escuro do resto do sistema (ver style.css): a escolha manual
   do usuário fica em localStorage/data-theme, e sem escolha manual ela acompanha o sistema operacional. */
:root {
    --pagina: #F6F6F7;
    --superficie: #FFFFFF;
    --superficie-2: #FAFAFA;
    --borda: #E5E5E8;
    --texto: #131316;
    --texto-medio: #6B6B72;
    --texto-fraco: #A0A0A6;
    --tinta: #131316;
    --tinta-contraste: #FFFFFF;
    --foco: #5B5BD6;
    --perigo: #D93B3B;
    --etapa-aberta: #9A9AA1;
    --etapa-sourcing: #2F6FED;
    --etapa-cliente: #C2790A;
    --etapa-documentacao: #7C5CFC;
    --etapa-concluida: #16A34A;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) {
        --pagina: #0E0E10;
        --superficie: #17171A;
        --superficie-2: #1C1C20;
        --borda: #28282C;
        --texto: #F4F4F5;
        --texto-medio: #A6A6AC;
        --texto-fraco: #707076;
        --tinta: #F4F4F5;
        --tinta-contraste: #131316;
        --foco: #8686F0;
        --etapa-aberta: #8C8C93;
        --etapa-sourcing: #5B8DEF;
        --etapa-cliente: #E3A63A;
        --etapa-documentacao: #9B82FF;
        --etapa-concluida: #3DDC84;
    }
}

html[data-theme="dark"] {
    --pagina: #0E0E10;
    --superficie: #17171A;
    --superficie-2: #1C1C20;
    --borda: #28282C;
    --texto: #F4F4F5;
    --texto-medio: #A6A6AC;
    --texto-fraco: #707076;
    --tinta: #F4F4F5;
    --tinta-contraste: #131316;
    --foco: #8686F0;
    --etapa-aberta: #8C8C93;
    --etapa-sourcing: #5B8DEF;
    --etapa-cliente: #E3A63A;
    --etapa-documentacao: #9B82FF;
    --etapa-concluida: #3DDC84;
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: var(--pagina);
    color: var(--texto);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 20px;
    transition: background-color .25s, color .25s;
}

.theme-toggle {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid var(--borda);
    background: var(--superficie);
    color: var(--texto-medio);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color .2s, color .2s;
}
.theme-toggle:hover { color: var(--texto); }
.theme-toggle:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.theme-toggle svg { width: 17px; height: 17px; }
.theme-toggle .lua { display: none; }
html[data-theme="dark"] .theme-toggle .sol { display: none; }
html[data-theme="dark"] .theme-toggle .lua { display: block; }

.wrap { width: 100%; max-width: 420px; }

/* ---------- mini esteira de vagas ---------- */
.pipeline {
    position: relative;
    background: var(--superficie);
    border: 1px solid var(--borda);
    border-radius: 14px;
    padding: 22px 20px 16px;
    margin-bottom: 16px;
    transition: background-color .25s, border-color .25s;
}
.pipeline-label { font-size: 12px; color: var(--texto-fraco); margin: 0 0 10px; }
/* Faixa própria pros chips animados — reservando a altura deles em vez de posicionar com um
   valor fixo em pixels contra o card inteiro (isso é o que fazia o chip encostar na descrição
   "Vagas em andamento" acima). Com a faixa, o espaçamento fica garantido pelo próprio layout,
   não por um número "chutado". */
.chips-faixa { position: relative; height: 24px; margin-bottom: 12px; }
.stage-row { position: relative; display: flex; justify-content: space-between; }
.stage-track { position: absolute; left: 14px; right: 14px; top: 14px; height: 1px; background: var(--borda); }
.stage { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 56px; }
.stage-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--superficie);
    border: 2px solid var(--borda);
    transition: border-color .5s;
}
.stage-name { font-size: 10.5px; color: var(--texto-fraco); text-align: center; line-height: 1.25; }
.chip {
    position: absolute;
    top: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px 4px 7px;
    border-radius: 20px;
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    transition: left .85s cubic-bezier(.4, 0, .2, 1), opacity .3s, background-color .5s;
    white-space: nowrap;
}
.chip-check { opacity: 0; transform: scale(.5); transition: opacity .3s, transform .3s; font-size: 11px; }
.chip.arrived .chip-check { opacity: 1; transform: scale(1); }

/* ---------- card de login ---------- */
.card {
    background: var(--superficie);
    border: 1px solid var(--borda);
    border-radius: 14px;
    padding: 32px 28px;
    transition: background-color .25s, border-color .25s;
}
.brand { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.brand-mark {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--superficie-2);
    border: 1px solid var(--borda);
    display: flex;
    align-items: center;
    justify-content: center;
}
.brand-mark svg { width: 16px; height: 16px; stroke: var(--texto); }
.brand-name { font-weight: 600; font-size: 15px; }

.card h1 { font-size: 20px; font-weight: 600; margin: 0 0 6px; }
.card .lead { color: var(--texto-medio); font-size: 13.5px; margin: 0 0 24px; }

.card form { display: flex; flex-direction: column; gap: 16px; }
.field label { display: block; font-size: 13px; color: var(--texto-medio); margin-bottom: 6px; }
.field input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--borda);
    background: var(--pagina);
    color: var(--texto);
    font-size: 14px;
    font-family: inherit;
    transition: border-color .15s, box-shadow .15s, background-color .25s;
}
.field input::placeholder { color: var(--texto-fraco); }
.field input:focus { outline: none; border-color: var(--foco); box-shadow: 0 0 0 3px rgba(91, 91, 214, .15); }

.pass-wrap { position: relative; }
.pass-wrap input { padding-right: 40px; }
.toggle-pass {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--texto-fraco);
    cursor: pointer;
    padding: 6px;
    display: flex;
    align-items: center;
    border-radius: 6px;
}
.toggle-pass:hover { color: var(--texto); }
.toggle-pass:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }

.row-between { display: flex; align-items: center; justify-content: space-between; font-size: 13px; margin-top: -4px; }
.remember { display: flex; align-items: center; gap: 8px; color: var(--texto-medio); cursor: pointer; }
.remember input { width: 15px; height: 15px; accent-color: var(--foco); }

#form-error { display: none; color: var(--perigo); font-size: 12.5px; margin: -6px 0 0; }
#form-error.mostrar { display: block; }

button.submit {
    margin-top: 4px;
    position: relative;
    overflow: hidden;
    border: none;
    border-radius: 8px;
    padding: 11px 16px;
    background: var(--tinta);
    color: var(--tinta-contraste);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .25s, transform .1s;
}
button.submit:active { transform: scale(.98); }
button.submit:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; }
button.submit .bar {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 2px;
    width: 0%;
    background: var(--tinta-contraste);
    opacity: .4;
    transition: width 1.1s linear;
}
button.submit .label { display: inline-flex; align-items: center; gap: 8px; }

.footnote { margin-top: 22px; font-size: 12.5px; color: var(--texto-fraco); text-align: center; }
.creditos { margin-top: 6px; font-size: 11px; color: var(--texto-fraco); text-align: center; opacity: .6; }

@media (prefers-reduced-motion: reduce) {
    .chip { transition: none; }
}
