:root{color-scheme:light;--ink:#102c3a;--muted:#5e7480;--line:rgba(16,44,58,.14);--cyan:#1ca9a4;--cyan-dark:#087f7b;--blue:#2d79ff;--surface:#f9fcfd;--danger:#a22626;--success:#087f5b}*{box-sizing:border-box}body{margin:0;min-height:100vh;padding:24px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 16% 8%,rgba(45,121,255,.30),transparent 38%),radial-gradient(circle at 88% 82%,rgba(69,215,208,.19),transparent 42%),#061722}.auth-shell{width:min(100%,1080px);min-height:calc(100vh - 48px);margin:auto;display:grid;grid-template-columns:minmax(330px,.82fr) minmax(400px,1.18fr);overflow:hidden;border:1px solid rgba(255,255,255,.42);border-radius:30px;background:rgba(249,252,253,.98);box-shadow:0 32px 100px rgba(0,0,0,.38)}.intro{padding:44px 42px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(155deg,#fff 0%,#eef8f8 100%)}.brand{display:block;width:min(100%,270px);max-height:118px;object-fit:contain;margin:0 auto 28px}.eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:var(--cyan-dark);font-size:.78rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.eyebrow-badge{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:10px;background:rgba(28,169,164,.13)}h1{font-size:clamp(2rem,4.7vw,3.45rem);line-height:1.03;margin:0 0 17px;color:#0d2a39;letter-spacing:-.035em}.lead{font-size:1.02rem;line-height:1.7;color:var(--muted);margin:0 0 24px}.security-list{display:grid;gap:12px;margin-top:8px}.security-item{display:flex;gap:11px;align-items:flex-start;font-size:.9rem;line-height:1.45;color:#385564}.security-item span:first-child{flex:0 0 28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#fff;color:var(--cyan-dark);box-shadow:0 5px 18px rgba(16,44,58,.09)}.panel{padding:42px;display:flex;flex-direction:column;justify-content:center;background:#fff}.step{width:100%;max-width:560px;margin:auto}.hidden{display:none!important}.field{margin:0 0 18px}.field label{display:block;margin:0 0 9px;font-size:.9rem;font-weight:850;color:#173847}.field input[type=email],.field input[type=text]{width:100%;height:56px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#13303e;font:700 1rem Inter,system-ui,sans-serif;outline:none;box-shadow:inset 0 1px 2px rgba(16,44,58,.04)}.field input:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(28,169,164,.14)}.consent{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f7fbfb;color:#405c69;font-size:.88rem;line-height:1.5;margin:0 0 17px}.consent input{margin-top:3px;accent-color:var(--cyan-dark)}.btn{width:100%;min-height:56px;padding:13px 18px;border:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--cyan-dark),var(--cyan));font-weight:900;font-size:1rem;cursor:pointer;box-shadow:0 12px 28px rgba(8,127,123,.22)}.btn:hover{filter:brightness(1.04)}.btn:disabled{cursor:not-allowed;filter:grayscale(.6);opacity:.62}.btn.secondary{margin-top:10px;background:#eef5f6;color:#244451;box-shadow:none}.notice{padding:13px 14px;margin:0 0 17px;border:1px solid rgba(45,121,255,.18);border-radius:13px;background:#f2f7ff;color:#315474;font-size:.9rem;line-height:1.5}.error{padding:13px 14px;margin:0 0 17px;border:1px solid rgba(177,36,36,.22);border-radius:13px;background:#fff1f1;color:var(--danger);font-weight:750;text-align:center}.success{padding:13px 14px;margin:0 0 17px;border:1px solid rgba(8,127,91,.2);border-radius:13px;background:#effbf6;color:var(--success);font-weight:750;text-align:center}.camera-wrap{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:22px;background:#071820;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 22px 48px rgba(7,24,32,.20)}video,canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}canvas{pointer-events:none}.face-guide{position:absolute;left:50%;top:50%;width:54%;height:72%;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.70);border-radius:48% 48% 44% 44%;box-shadow:0 0 0 999px rgba(2,13,19,.27);pointer-events:none}.camera-badge{position:absolute;top:14px;left:14px;display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;background:rgba(2,13,19,.72);color:#fff;font-size:.76rem;font-weight:850;backdrop-filter:blur(10px)}.camera-dot{width:8px;height:8px;border-radius:50%;background:#62e6c9;box-shadow:0 0 0 5px rgba(98,230,201,.13)}.scanner-status{text-align:center;margin:17px 0 13px}.scanner-status strong{display:block;font-size:1.05rem;color:#173847}.scanner-status span{display:block;margin-top:5px;color:var(--muted);font-size:.88rem}.actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:13px}.action{min-height:60px;padding:10px;border:1px solid var(--line);border-radius:13px;background:#f8fbfc;color:#607681;display:grid;place-items:center;text-align:center;font-size:.76rem;font-weight:850}.action.active{border-color:var(--cyan);background:#effaf9;color:var(--cyan-dark);box-shadow:0 0 0 3px rgba(28,169,164,.10)}.action.done{border-color:rgba(8,127,91,.22);background:#effbf6;color:var(--success)}.privacy-note{margin:16px 0 0;color:#738892;font-size:.78rem;line-height:1.5;text-align:center}.admin-link{display:inline-block;margin-top:19px;color:#627d89;font-size:.78rem;text-decoration:none}.admin-link:hover{color:var(--cyan-dark)}@media(max-width:860px){body{padding:14px}.auth-shell{min-height:calc(100vh - 28px);grid-template-columns:1fr;border-radius:24px}.intro{padding:30px 25px 25px}.brand{width:min(100%,225px);margin-bottom:20px}.security-list{display:none}.panel{padding:25px}.lead{margin-bottom:0}.eyebrow{justify-content:center}.intro{text-align:center}h1{font-size:2.25rem}.camera-wrap{border-radius:18px}}@media(max-width:520px){body{padding:0;background:#fff}.auth-shell{min-height:100vh;border:0;border-radius:0;box-shadow:none}.intro{padding:24px 20px 20px}.panel{padding:20px}.brand{max-height:90px}.actions{gap:5px}.action{padding:7px 5px;font-size:.68rem;min-height:64px}.camera-wrap{aspect-ratio:3/4}.face-guide{width:68%;height:58%}}

/* Scanner em tela dedicada: todas as instruções permanecem visíveis sem rolagem. */
.scanner-status{position:absolute;left:14px;right:14px;bottom:14px;z-index:6;margin:0;padding:12px 14px;border:1px solid rgba(255,255,255,.16);border-radius:15px;background:rgba(2,18,25,.80);color:#fff;backdrop-filter:blur(12px);box-shadow:0 10px 28px rgba(0,0,0,.24)}
.scanner-status strong{color:#fff;font-size:1rem}
.scanner-status span{color:rgba(255,255,255,.82);font-size:.84rem}
.device-required{text-align:center;padding:18px;font-size:.96rem}
body.scanner-active{height:100dvh;min-height:100dvh;overflow:hidden;padding:0;background:#061722}
body.scanner-active .auth-shell{width:100%;height:100dvh;min-height:100dvh;display:block;margin:0;border:0;border-radius:0;background:#061722;box-shadow:none;overflow:hidden}
body.scanner-active .intro{display:none!important}
body.scanner-active .panel{width:100%;height:100dvh;min-height:100dvh;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:center;background:#061722}
body.scanner-active #scanner-step{width:min(100%,520px);max-width:520px;height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));margin:0;display:flex!important;flex-direction:column;justify-content:center;gap:8px}
body.scanner-active .camera-wrap{flex:1 1 auto;width:100%;min-height:0;max-height:calc(100dvh - 154px);aspect-ratio:auto;border-radius:20px}
body.scanner-active .actions{flex:0 0 auto;margin:0;grid-template-columns:1fr}
body.scanner-active .action{min-height:48px;padding:8px 12px;font-size:.82rem}
body.scanner-active .btn.secondary{flex:0 0 auto;min-height:48px;margin:0}
body.scanner-active .privacy-note{display:none}
body.scanner-active #message-box{position:absolute;z-index:20;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(calc(100% - 24px),500px);margin:0;box-shadow:0 12px 32px rgba(0,0,0,.25)}
@media(max-width:520px){
  body.scanner-active .panel{padding:8px}
  body.scanner-active #scanner-step{height:calc(100dvh - 16px);gap:7px}
  body.scanner-active .camera-wrap{max-height:calc(100dvh - 126px);border-radius:17px}
  body.scanner-active .face-guide{width:70%;height:64%}
  body.scanner-active .camera-badge{top:10px;left:10px}
  body.scanner-active .scanner-status{left:10px;right:10px;bottom:10px;padding:10px 12px}
  body.scanner-active .scanner-status strong{font-size:.96rem}
  body.scanner-active .scanner-status span{font-size:.79rem}
  body.scanner-active .action{min-height:44px}
  body.scanner-active .btn.secondary{min-height:44px}
}

/* Métodos de autenticação adaptativos */
.device-summary{display:flex;flex-direction:column;gap:4px;text-align:left}.device-summary strong{font-size:.98rem}.device-summary span{font-size:.84rem;color:#557080}.method-grid{display:grid;gap:12px}.method-grid form{margin:0}.method-button{width:100%;min-height:76px;display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:#173847;text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(16,44,58,.07);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.method-button:hover{transform:translateY(-1px);border-color:rgba(28,169,164,.55);box-shadow:0 12px 28px rgba(16,44,58,.11)}.method-button:disabled{cursor:not-allowed;opacity:.58;transform:none}.method-button.passkey{border-color:rgba(28,169,164,.34);background:linear-gradient(135deg,#effaf9,#fff)}.method-button.face{border-color:rgba(45,121,255,.25);background:linear-gradient(135deg,#f3f7ff,#fff)}.method-button.email{border-color:rgba(16,44,58,.15);background:linear-gradient(135deg,#f7fafb,#fff)}.method-icon{flex:0 0 46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#e8f7f5;color:var(--cyan-dark);font-size:1.45rem;font-weight:900}.method-button.face .method-icon{background:#edf3ff;color:#2d66c7}.method-button.email .method-icon{background:#eef3f5;color:#385664}.method-button span:last-child{display:flex;flex-direction:column;gap:4px}.method-button strong{font-size:.98rem}.method-button small{font-size:.78rem;line-height:1.35;color:#69808b}.email-panel{padding:18px;border:1px solid var(--line);border-radius:17px;background:#f8fbfc}.email-panel>p{margin:0 0 14px;color:#506b78;line-height:1.55}.text-button{display:block;width:100%;margin-top:12px;padding:8px;border:0;background:transparent;color:var(--cyan-dark);font-weight:800;cursor:pointer}.otp-input{text-align:center!important;font-size:1.55rem!important;letter-spacing:.28em!important;font-variant-numeric:tabular-nums}.notice.notice{word-break:normal}

/* Cadastro opcional de Passkey */
.security-shell{width:min(100%,760px);min-height:calc(100vh - 48px);margin:auto;display:grid;place-items:center}.security-card{width:100%;padding:42px;border:1px solid rgba(255,255,255,.45);border-radius:28px;background:#fff;box-shadow:0 32px 100px rgba(0,0,0,.35)}.security-brand{display:block;width:min(100%,260px);max-height:110px;object-fit:contain;margin:0 auto 26px}.security-card h1{font-size:clamp(2rem,5vw,3.2rem)}.security-explainer{display:grid;gap:11px;margin:24px 0}.security-explainer>div{display:flex;align-items:flex-start;gap:12px;padding:13px;border-radius:14px;background:#f6fafb}.security-explainer span{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#e4f6f3;color:var(--cyan-dark);font-weight:900}.security-explainer p{margin:3px 0 0;color:#4b6673;line-height:1.48}.registered-passkeys{display:flex;flex-direction:column;gap:6px;margin:0 0 18px;padding:15px;border:1px solid rgba(8,127,91,.16);border-radius:14px;background:#effbf6;color:#315e51}.registered-passkeys span{font-size:.82rem}.continue-link{display:block;margin-top:16px;text-align:center;color:#496774;font-weight:800;text-decoration:none}.continue-link:hover{color:var(--cyan-dark)}
@media(max-width:520px){.method-button{min-height:70px;padding:12px}.method-icon{flex-basis:42px;height:42px}.security-shell{min-height:100vh}.security-card{min-height:100vh;padding:26px 20px;border:0;border-radius:0;box-shadow:none}.security-brand{max-height:88px}.security-card h1{font-size:2.1rem}}
.method-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#8698a1;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.method-divider::before,.method-divider::after{content:"";height:1px;flex:1;background:var(--line)}.method-divider span{flex:0 0 auto}.email-panel+.method-button{margin-top:12px}
.skip-passkey-form{margin:0}.skip-passkey-form .continue-link{width:100%;border:0;background:transparent;cursor:pointer;font:inherit}

/* Orientação por voz do scanner facial */
.voice-toggle{position:absolute;top:14px;right:14px;z-index:8;min-height:36px;padding:8px 11px;border:1px solid rgba(255,255,255,.20);border-radius:999px;background:rgba(2,13,19,.72);color:#fff;font:850 .76rem Inter,system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(10px);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.voice-toggle:hover{background:rgba(5,35,44,.88)}
.voice-toggle:focus-visible{outline:3px solid rgba(98,230,201,.48);outline-offset:2px}
.voice-toggle[aria-pressed="false"]{background:rgba(62,74,80,.78);color:rgba(255,255,255,.86)}
@media(max-width:520px){.voice-toggle{top:10px;right:10px;min-height:34px;padding:7px 9px;font-size:.7rem}}
