/* Telas de acesso — identidade Nexus (azul #0B5FFF, marinho #07172F) */
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;width:100%}
body{font:16px/1.5 var(--font-sans);color:#172b4d;background:#07172f;overflow-x:hidden}
.auth{min-height:100vh;min-height:100dvh;width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.auth-side{position:relative;overflow:hidden;background:radial-gradient(circle at 20% 15%,#1b4fd6 0,transparent 45%),radial-gradient(circle at 85% 90%,#0d9488 0,transparent 40%),linear-gradient(135deg,#07172f,#0c3271);color:#fff;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.auth-side img{width:min(320px,80%);height:auto}
.auth-side h2{font-size:34px;line-height:1.15;letter-spacing:-.5px;margin:42px 0 14px;max-width:460px}
.auth-side p{color:#c9d7f2;max-width:440px;margin:0}
.auth-side ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px;color:#e3ecff}
.auth-side li{display:flex;gap:10px;align-items:flex-start}
.auth-side li:before{content:"";flex:0 0 10px;height:10px;margin-top:7px;border-radius:50%;background:#5c9bff;box-shadow:0 0 0 4px rgba(92,155,255,.2)}
.auth-side small{color:#9fb3d9}
.auth-main{background:#f4f7fc;display:grid;place-items:center;padding:40px 24px;min-width:0}
.card{background:#fff;border-radius:22px;padding:38px 36px;width:min(420px,100%);box-shadow:0 25px 60px rgba(7,23,47,.12);border:1px solid #e3eaf5}
.card .mark{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px;letter-spacing:-.5px;color:#0b5fff}
.card .mark img{width:36px;height:36px}
.card .mark span{color:#172b4d}
.card h1{font-size:24px;margin:22px 0 4px;letter-spacing:-.3px}
.card p.lead{color:#5f6f87;margin:0 0 6px}
label{display:block;margin-top:18px;font-weight:650;font-size:14px;color:#22334b}
input[type=email],input[type=password],input[type=text]{display:block;width:100%;border:1px solid #b9c7dc;border-radius:11px;padding:13px 14px;margin-top:7px;font-size:16px;background:#fbfcff;color:#172b4d}
input:focus{border-color:#0b5fff;background:#fff}
.btn{display:block;width:100%;margin-top:24px;background:#0b5fff;border:0;color:#fff;font-size:16px;font-weight:700;padding:14px;border-radius:11px;min-height:48px;cursor:pointer;text-align:center;text-decoration:none}
.btn:hover{background:#0848c9}
.link{color:#0b5fff;font-weight:600;text-decoration:none}
.link:hover{text-decoration:underline}
.row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:14px}
.alert{border-radius:11px;padding:12px 14px;margin-top:18px;font-size:14px}
.alert.err{background:#fdecec;color:#8a1c1c;border:1px solid #f5c2c2}
.alert.ok{background:#e7f6ee;color:#145c36;border:1px solid #bfe5cf}
.alert.info{background:#e9f0ff;color:#173f8f;border:1px solid #c9d8ff}
.hint{font-size:13px;color:#68788e;margin-top:6px}
.foot{font-size:12px;color:#7a889c;text-align:center;margin-top:26px}
button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #e3ad22;outline-offset:2px}
.meter{height:6px;border-radius:6px;background:#e3eaf5;margin-top:8px;overflow:hidden}
.meter i{display:block;height:100%;width:0;background:#e15a5a;transition:width .2s,background .2s}
@media (max-width:1100px){
 .auth{grid-template-columns:1fr;grid-template-rows:auto auto}
 .auth-side{padding:28px 24px 22px}
 .auth-side img{width:min(280px,86%)}
 .auth-side h2{font-size:26px;margin:18px 0 10px}
 .auth-side ul,.auth-side small{display:none}
 .auth-main{place-items:start center;padding:0 16px 40px;background:linear-gradient(#0c3271 0,#0c3271 40px,#f4f7fc 40px)}
 .card{padding:28px 22px;border-radius:18px}
}
@media (max-width:520px){
 .auth-side{padding:22px 18px 16px}
 .auth-side img{width:min(220px,90%)}
 .auth-side h2{font-size:22px}
 .auth-main{padding:0 14px 32px}
}
/* operador */
.op{background:#f2f5fa;min-height:100vh;color:#1d304b}
.op header{background:linear-gradient(90deg,#07172f,#0c3271);color:#fff;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.op header img{height:34px}
.op header .who{font-size:14px;color:#c9d7f2;display:flex;gap:12px;align-items:center}
.op main{max-width:1180px;margin:32px auto;padding:0 20px}
.op h1{font-size:25px;margin:0 0 4px}
.op .sub{color:#6a7890;margin:0 0 20px}
.op .panel{background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(17,34,51,.08);padding:8px 0;overflow:auto}
.op table{width:100%;border-collapse:collapse;text-align:left;min-width:900px}
.op th,.op td{padding:14px 16px;border-bottom:1px solid #e5ebf3;vertical-align:top}
.op th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#61718a}
.op td small{display:block;color:#7a889c}
.pill{display:inline-block;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:600}
.pill.ativa{background:#e2f8e9;color:#176239}.pill.trial{background:#e9f0ff;color:#173f8f}.pill.bloqueada{background:#fdecec;color:#8a1c1c}
.op button{background:#0b5fff;border:0;color:#fff;border-radius:8px;padding:8px 11px;margin:2px;font-size:13px;cursor:pointer}
.op button.alt{background:#dbe5f7;color:#183456}.op button.danger{background:#fbe1e1;color:#8a1c1c}
.op .toast{position:fixed;right:20px;bottom:20px;background:#0b2348;color:#fff;padding:12px 16px;border-radius:10px;display:none;max-width:360px}
.op .sim{margin-top:22px;background:#fff;border-radius:14px;padding:18px;box-shadow:0 8px 24px rgba(17,34,51,.08)}
.op .sim input{display:inline-block;width:auto;min-width:220px;margin:6px 6px 0 0}
