/* Tela de login */
:root {
    --verde: #1E5B2F; --verde-forte: #163F21;
    --bg: #F6F8F6; --panel: #FFFFFF; --border: #DCE3DC; --border-forte: #C4CEC4;
    --text: #262B26; --muted: #5C6B5C; --erro: #D32F2F; --erro-bg: #F8EAEA;
    --fonte: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 24px;
       font-family: var(--fonte); background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; }
.cartao { width: 100%; max-width: 380px; background: var(--panel); border: 1px solid var(--border);
          border-radius: 10px; padding: 32px 28px; box-shadow: 0 2px 12px rgba(30, 91, 47, .06); }
.logo { display: block; width: 100%; max-width: 240px; height: auto; margin: 0 auto 18px; }
h1 { margin: 0 0 4px; font-size: 22px; letter-spacing: -.01em; text-align: center; }
.sub { margin: 0 0 22px; font-size: 13px; color: var(--muted); text-align: center; }
label { display: block; margin-bottom: 14px; font-size: 11px; font-weight: 600; color: var(--muted);
        text-transform: uppercase; letter-spacing: .03em; }
input[type=text], input[type=password] { display: block; width: 100%; margin-top: 4px; padding: 10px 11px;
        font: 14px var(--fonte); color: var(--text); background: var(--panel);
        border: 1px solid var(--border-forte); border-radius: 6px; text-transform: none; letter-spacing: 0; }
input:focus-visible, button:focus-visible { outline: 2px solid var(--verde); outline-offset: 2px; }
button { width: 100%; margin-top: 6px; padding: 11px 16px; border: none; border-radius: 6px; cursor: pointer;
         background: var(--verde); color: #fff; font: 600 14px var(--fonte); transition: background-color .15s ease; }
button:hover { background: var(--verde-forte); }
.erro { margin-bottom: 16px; padding: 10px 12px; border-radius: 6px; font-size: 13px; font-weight: 500;
        color: var(--erro); background: var(--erro-bg); }
