:root{--bg:#0a0c10;--panel:#0e1116;--field:#12151b;--fg:#e8e4d9;--muted:#9a968a;--dim:#8a8676;--gold:#c4a46a;--line:#232730;--line-2:#323743;--err:#e07a7a;--ok:#7fc79a;
--serif:'Playfair Display',Georgia,serif;--sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'DM Mono',ui-monospace,Consolas,monospace;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;background:var(--bg);color:var(--fg);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--fg);text-decoration:underline;text-decoration-color:rgba(196,164,106,.5);text-underline-offset:3px}
a:hover{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
[hidden]{display:none!important}
.label{display:block;font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding:clamp(28px,4vw,56px);border-right:1px solid var(--line);background:var(--bg)}
.brand__body{max-width:460px}
.wordmark{font:400 clamp(44px,5.4vw,76px)/1 var(--serif);letter-spacing:-.02em;color:var(--fg);margin-bottom:22px}
.brand__lede{font-size:17px;line-height:1.55;color:#cfcabd;max-width:34ch;margin-bottom:28px}
.brand__classes{list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px;padding-top:18px;border-top:1px solid var(--line)}
.brand__classes li{font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.brand__foot p{margin-top:8px;color:var(--muted);font-size:13px;max-width:36ch}

.panel{display:flex;align-items:center;justify-content:center;padding:clamp(28px,5vw,72px) clamp(16px,5vw,72px);background:var(--panel)}
.panel__in{width:100%;max-width:440px}
.tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:36px}
.tabs button{background:none;border:0;border-bottom:1px solid transparent;margin-bottom:-1px;color:var(--muted);font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:14px 0;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease)}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected="true"]{color:var(--gold);border-bottom-color:var(--gold)}

h1{font:400 32px/1.15 var(--serif);letter-spacing:-.01em;margin-bottom:8px}
.hint{color:var(--muted);font-size:14px;margin-bottom:28px}
.field{margin-bottom:18px}
.field__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.field label{display:block;font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input{width:100%;height:48px;padding:0 14px;background:var(--field);border:1px solid var(--line-2);border-radius:0;color:var(--fg);font:16px var(--sans);transition:border-color .2s var(--ease)}
.field input:hover{border-color:#454b58}
.field input:focus{outline:0;border-color:var(--gold)}
.field input[aria-invalid="true"],.field input[aria-invalid="true"]:focus,.check input[aria-invalid="true"]{border-color:var(--err)}
.field__help{margin-top:6px;font-size:12.5px;color:var(--dim)}
.field__help.ok{color:var(--ok)}
.pass{position:relative}
.pass input{padding-right:84px}
.reveal{position:absolute;right:1px;top:1px;bottom:1px;width:78px;background:none;border:0;border-left:1px solid var(--line-2);color:var(--muted);font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.reveal:hover{color:var(--fg)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.check{display:flex;gap:12px;align-items:flex-start;margin:6px 0 24px;font-size:14px;color:#cfcabd;cursor:pointer}
.check input{appearance:none;flex:none;width:18px;height:18px;margin-top:2px;border:1px solid var(--line-2);background:var(--field);display:grid;place-content:center;cursor:pointer}
.check input:checked{border-color:var(--gold);background:var(--gold)}
.check input:checked::after{content:"";width:9px;height:5px;border:solid var(--bg);border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}
.btn{width:100%;height:50px;background:var(--gold);color:var(--bg);border:1px solid var(--gold);font:600 14px var(--sans);letter-spacing:.02em;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.btn:hover{background:#d3b67f}
.btn:disabled{opacity:.55;cursor:progress}
.btn--ghost{background:none;color:var(--fg);border-color:var(--line-2)}
.btn--ghost:hover{background:none;border-color:var(--gold);color:var(--gold)}
.link{background:none;border:0;color:var(--muted);font:13px var(--sans);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;cursor:pointer;padding:0}
.link:hover{color:var(--gold)}
.back{display:block;margin:18px auto 0}
.done .label{color:var(--gold);margin-bottom:12px}
.done p{color:#cfcabd;margin:4px 0 28px}
.msg{min-height:1.5em;margin-top:18px;font-size:14px;padding-left:12px;border-left:1px solid transparent}
.msg.err{color:var(--err);border-left-color:var(--err)}
.msg.ok{color:var(--ok);border-left-color:var(--ok)}
.msg:empty{padding:0;border:0}
.legal{display:flex;gap:20px;margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px}
.legal a{color:var(--muted)}

/* paginas de mensagem e aprovacao do admin */
.card{max-width:460px;margin:12vh auto;padding:40px clamp(20px,5vw,40px);border:1px solid var(--line);background:var(--panel)}
.card h1{margin-bottom:14px}
.card p{margin-bottom:16px;color:#cfcabd}
.card .ok{color:var(--ok)}.card .err{color:var(--err)}
.card button{width:100%;height:50px;background:var(--gold);color:var(--bg);border:0;font:600 14px var(--sans);cursor:pointer}

@media (max-width:900px){
  .auth{grid-template-columns:minmax(0,1fr)}
  .brand{border-right:0;border-bottom:1px solid var(--line);gap:20px;padding:24px 16px}
  .brand__foot,.brand__lede,.brand__classes{display:none}
  .wordmark{font-size:36px;margin:0}
  .panel{align-items:flex-start;padding:32px 16px 48px}
}
@media (max-width:480px){.grid2{grid-template-columns:minmax(0,1fr)}h1{font-size:28px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}