/* Tela avulsa: login do cliente (templates/auth/login.html).
   Nao carrega style.css; os tokens da marca chegam pelo parcial _cor_marca.html
   e as fontes pelo static/fonts/fonts.css. */
/* as cores da tela, com os valores de antes (R50: a cor crua fica só no :root) */
:root {
    --fundo: #EEF3FA;
    --texto: #0F172A;
    --branco: #fff;
    --borda: #E2E8F0;
    --sombra-cartao: 0 30px 70px -36px rgba(15,23,42,.5);
    --painel-bolha: rgba(255,255,255,.08);
    --painel-bolha-suave: rgba(255,255,255,.06);
    --painel-quadro: rgba(255,255,255,.18);
    --texto-secundario: #64748B;
    --texto-rotulo: #334155;
    --texto-icone: #94A3B8;
    --texto-suave: #475569;
    --borda-campo: #D8E0EC;
    --fundo-campo: #FAFBFD;
    --erro-fundo: #FEF2F2;
    --erro-texto: #B91C1C;
    --erro-borda: #FECACA;
    --aviso-fundo: #FFFBEB;
    --aviso-texto: #92400E;
    --aviso-borda: #FDE68A;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--fundo); color: var(--texto); min-height: 100vh;
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
button, input, select, textarea { font-family: inherit; }
h1, h2 { font-family: 'Sora', sans-serif; }
.wrap {
    display: grid; grid-template-columns: 1.05fr 1fr;
    width: 100%; max-width: 940px; min-height: 560px;
    background: var(--branco); border-radius: 22px; overflow: hidden;
    box-shadow: var(--sombra-cartao);
    border: 1px solid var(--borda);
}
.painel {
    background: linear-gradient(150deg, var(--cor-primaria) 0%, var(--cor-primaria-hover) 60%, var(--cor-primaria-escura) 100%);
    color: var(--branco); padding: 48px 44px; position: relative; overflow: hidden;
    display: flex; flex-direction: column; justify-content: space-between;
}
.painel::after {
    content: ""; position: absolute; right: -80px; bottom: -80px;
    width: 280px; height: 280px; border-radius: 50%;
    background: var(--painel-bolha);
}
.painel::before {
    content: ""; position: absolute; left: -60px; top: -60px;
    width: 180px; height: 180px; border-radius: 50%;
    background: var(--painel-bolha-suave);
}
.marca { display: flex; align-items: center; gap: 12px; position: relative; z-index: 1; }
.marca .quadro {
    width: 48px; height: 48px; border-radius: 13px;
    background: var(--painel-quadro); display: flex; align-items: center;
    justify-content: center; font-size: 26px;
}
.marca .nome { font-family: 'Sora', sans-serif; font-size: 17px; font-weight: 800; }
.marca .sub { font-size: 12px; opacity: .85; }
.painel-texto { position: relative; z-index: 1; }
.painel-texto h2 { font-size: 27px; line-height: 1.25; font-weight: 700; margin-bottom: 14px; }
.painel-texto p { font-size: 14.5px; opacity: .9; line-height: 1.6; max-width: 330px; }
.lista-itens { list-style: none; margin-top: 22px; display: grid; gap: 12px; position: relative; z-index: 1; }
.lista-itens li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; opacity: .95; }
.lista-itens li i { font-size: 18px; }

.form-lado { padding: 48px 44px; display: flex; flex-direction: column; justify-content: center; }
.form-cab { margin-bottom: 28px; }
.form-cab h1 { font-size: 23px; font-weight: 700; margin-bottom: 6px; }
.form-cab p { font-size: 14px; color: var(--texto-secundario); }

.campo { margin-bottom: 16px; }
.campo label {
    display: block; font-size: 12.5px; font-weight: 600;
    color: var(--texto-rotulo); margin-bottom: 6px;
}
.campo-input { position: relative; }
.campo-input > i {
    position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
    color: var(--texto-icone); font-size: 18px;
}
.campo input {
    width: 100%; height: 46px; padding: 0 14px 0 40px;
    border: 1px solid var(--borda-campo); border-radius: 11px;
    font-size: 14.5px; color: var(--texto); background: var(--fundo-campo);
    transition: border-color .15s, box-shadow .15s;
}
.campo input:focus {
    outline: none; border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px var(--cor-primaria-sombra); background: var(--branco);
}
.campo-input.com-olho input { padding-right: 48px; }
.ver-senha {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    background: none; border: none; cursor: pointer; color: var(--texto-icone);
    padding: 6px; font-size: 18px; line-height: 1;
}
.ver-senha:hover { color: var(--texto-suave); }

.btn-entrar {
    width: 100%; height: 48px; margin-top: 8px;
    background: var(--cor-primaria); color: var(--branco); border: none; border-radius: 11px;
    font-size: 15px; font-weight: 600; cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    transition: background .15s;
}
.btn-entrar:hover { background: var(--cor-primaria-hover); }

.alerta {
    display: flex; align-items: center; gap: 9px;
    padding: 11px 14px; border-radius: 10px; font-size: 13.5px;
    margin-bottom: 18px;
}
.alerta i { font-size: 18px; flex-shrink: 0; }
.alerta.erro { background: var(--erro-fundo); color: var(--erro-texto); border: 1px solid var(--erro-borda); }
.alerta.aviso { background: var(--aviso-fundo); color: var(--aviso-texto); border: 1px solid var(--aviso-borda); }

.rodape-form { margin-top: 24px; text-align: center; font-size: 12.5px; color: var(--texto-icone); }
.rodape-form a { color: var(--cor-primaria-texto); text-decoration: none; font-weight: 600; }
.rodape-form a:hover { text-decoration: underline; }

@media (max-width: 760px) {
    .wrap { grid-template-columns: 1fr; max-width: 420px; }
    .painel { display: none; }
    .form-lado { padding: 40px 30px; }
}

/* celular: input em 16px (iOS nao da zoom) e alvo de toque 44x44 (Responsividade_Sempre) */
@media (max-width: 720px) {
    .campo input { font-size: 16px; }
    .ver-senha {
        right: 2px; min-width: 44px; min-height: 44px;
        display: flex; align-items: center; justify-content: center;
    }
    .rodape-form a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; }
}
