/* Login — identidade K&O (grafite + dourado), 17/09/2026. Tokens = os do static/base.css / selecao_ko.css.
   Esta tela não tem ÁREA: a ação é o dourado da MARCA, com texto grafite (cor clara → texto grafite).
   O bloco do logo é SEMPRE grafite, nos dois temas — o logo oficial é branco. */
:root {
    --bg-dark: #17181c; --card-dark: #202126; --text-primary: #ececec; --text-secondary: #9c9da3;
    --border: #32333a; --input-bg: #26272d;
    --ouro: #eebe48; --on-ouro: #1f2024; --bad: #e5605f; --ok: #4caf6e;
    --accent: #eebe48;   /* legado: o overlay de bloqueio e o mobile.css ainda leem --accent */
}
[data-theme="light"] {
    --bg-dark: #f4f3ef; --card-dark: #ffffff; --text-primary: #1f2024; --text-secondary: #65666c;
    --border: #e1dfd8; --input-bg: #fff;
    --ouro: #e3b341; --bad: #c53b3b; --ok: #2e7d4f;
}

body {
    background-color: var(--bg-dark); color: var(--text-primary);
    font-family: 'Segoe UI', system-ui, sans-serif; margin: 0;
    display: flex; align-items: center; justify-content: center;
    height: 100vh; overflow: hidden; transition: background-color 0.3s, color 0.3s;
}

.login-card {
    background-color: var(--card-dark); border-radius: 16px; border: 1px solid var(--border);
    width: 100%; max-width: 400px; box-shadow: 0 20px 50px rgba(0,0,0,0.3);
    text-align: center; position: relative; overflow: hidden;
}
.login-marca { background: #1f2024; padding: 30px 40px 22px; position: relative; border-bottom: 2px solid #eebe48; }
.login-marca img { display: block; width: 100%; max-width: 250px; height: auto; margin: 0 auto; }
.logo-sub { color: #eebe48; font-size: 0.72em; font-weight: 700; text-transform: uppercase; letter-spacing: 3px; margin-top: 14px; display: block; }
.login-corpo { padding: 30px 40px 28px; }

/* ⚠ a regra global `button` abaixo (largura total, dourado) alcança este botão: ele declara tudo o que difere */
.login-tema { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; padding: 0; margin: 0; display: grid; place-items: center;
              background: none; border: 0; border-radius: 7px; color: #eebe48; cursor: pointer; }
.login-tema:hover { background: #2a2b31; color: #fff; transform: none; box-shadow: none; filter: none; }
.login-tema svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.form-group { text-align: left; margin-bottom: 18px; }
label { display: block; font-size: 0.76em; color: var(--text-secondary); margin-bottom: 7px; font-weight: 700; letter-spacing: .5px; }
input { background-color: var(--input-bg); color: var(--text-primary); border: 1px solid var(--border); padding: 13px 14px; border-radius: 8px; width: 100%; box-sizing: border-box; font-size: 1em; font-family: inherit; }
input:focus { border-color: var(--ouro); outline: 2px solid var(--ouro); outline-offset: -1px; }
input::placeholder { color: var(--text-secondary); opacity: .55; }

button { background-color: var(--ouro); color: var(--on-ouro); border: none; padding: 14px; border-radius: 8px; width: 100%; font-weight: 700; font-size: 1em; letter-spacing: 1px; font-family: inherit; cursor: pointer; margin-top: 8px; transition: filter .15s, transform .15s; }
button:hover { filter: brightness(1.06); transform: translateY(-1px); }
button:focus-visible { outline: 2px solid var(--text-primary); outline-offset: 2px; }

.error-msg { background-color: color-mix(in srgb, var(--bad) 12%, transparent); color: var(--bad); padding: 12px; border-radius: 8px; font-size: 0.9em; margin-bottom: 20px; border: 1px solid color-mix(in srgb, var(--bad) 35%, transparent); }

.footer-login { margin-top: 28px; color: var(--text-secondary); font-size: 0.75em; }

@media (max-width: 480px) { .login-marca { padding: 26px 24px 20px; } .login-corpo { padding: 24px 22px 22px; } }
/* ⚠ o mobile.css dá `.login-card{padding:25px !important}` abaixo de 768 px — o bloco grafite do logo ficava
   "flutuando" dentro do cartão em vez de ir até a borda. Só um !important vence outro. */
@media (max-width: 768px) { .login-card { padding: 0 !important; } }

/* Recuperar senha (03/11/2026, templates/recuperar_senha.html) */
.login-titulo { font-size: 1.15em; margin: 0 0 10px; color: var(--text-primary); }
.login-texto { font-size: 0.9em; color: var(--text-secondary); line-height: 1.45; margin: 0 0 18px; }
.ok-msg { background-color: color-mix(in srgb, var(--ok) 12%, transparent); color: var(--ok); padding: 12px; border-radius: 8px; font-size: 0.9em; margin-bottom: 16px; border: 1px solid color-mix(in srgb, var(--ok) 35%, transparent); line-height: 1.45; }
.login-link { display: block; margin-top: 16px; font-size: 0.85em; color: var(--text-secondary); text-align: center; }
.login-link:hover { color: var(--text-primary); }
