:root { color-scheme: light; font-family: "Avenir Next", Avenir, -apple-system, sans-serif; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: #f4f6f2; color: #17241d; line-height: 1.5; }
.login { width: min(100%, 24rem); padding: 2.25rem; background: #fff; border: 1px solid #e3e7df; border-radius: 16px; box-shadow: 0 12px 32px rgba(26, 63, 46, .08); }
.login img { display: block; border-radius: 22%; }
.marca { margin: 1rem 0 0; color: #5a685f; font-size: .9375rem; }
h1 { margin: 0 0 .25rem; font-size: 1.75rem; line-height: 1.2; }
p { margin: 0 0 1rem; }
label { display: block; margin: 1.25rem 0 .3rem; font-weight: 600; }
input { width: 100%; padding: .65rem .75rem; font: inherit; color: inherit; background: #fff; border: 1px solid #aab4ab; border-radius: 8px; }
button { width: 100%; margin-top: 1rem; padding: .7rem 1rem; font: inherit; font-weight: 600; color: #fff; background: #1a3f2e; border: 0; border-radius: 8px; cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
:focus-visible { outline: 3px solid #40d995; outline-offset: 2px; }
.erro { margin: .75rem 0 0; padding: .65rem .8rem; color: #7c2118; background: #f8e4df; border-radius: 8px; }
.caixa { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 0; font-weight: 400; }
.caixa input { width: auto; }
button.secundario { color: #1a3f2e; background: transparent; border: 1px solid #aab4ab; }
.dica { margin: .5rem 0 .25rem; color: #5a685f; font-size: .875rem; }
.passo { margin: 1.25rem 0 .5rem; }
.qr { display: block; width: 11rem; height: 11rem; padding: .5rem; background: #fff; border: 1px solid #e3e7df; border-radius: 8px; shape-rendering: crispEdges; }
.chave { display: block; padding: .5rem .65rem; overflow-wrap: anywhere; background: #f4f6f2; border-radius: 8px; font-size: .8125rem; }
.alerta { color: #7c2118; font-weight: 600; }
.codigos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem 1rem; margin: 0 0 .5rem; padding: .75rem; list-style: none; font-variant-numeric: tabular-nums; background: #f4f6f2; border-radius: 8px; font-size: .875rem; }
