/* ============================================================
   CYBER INTELLIGENCEX — Painel do Cliente (gate criptografado)
   ============================================================ */
:root{
  --ink:#070b11; --ink-2:#0a0f17; --surface:#0d1620; --surface-2:#101b27;
  --line:rgba(122,168,205,.10); --line-2:rgba(122,168,205,.18); --line-3:rgba(122,168,205,.30);
  --fg:#e8eef5; --fg-dim:#a3b3c3; --fg-faint:#62717f;
  --accent:#1fd0ea; --accent-soft:rgba(31,208,234,.14); --amber:#f5b13d;
  --danger:#ff5d6c; --ok:#4ade80; --on-accent:#04222a;
  --f-display:'Chakra Petch','Saira',system-ui,sans-serif;
  --f-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'Courier New',monospace;
  --radius:5px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--f-sans);background:var(--ink);color:var(--fg);line-height:1.6;
  min-height:100svh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 30%,transparent 90%);
  mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 30%,transparent 90%);}

/* Barra superior */
.auth-topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:15px clamp(16px,4vw,32px);border-bottom:1px solid var(--line)}
.tb-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg);
  font-family:var(--f-display);font-weight:700;font-size:14px;letter-spacing:.05em}
.tb-brand b{color:var(--accent);font-weight:700}
.tb-brand img{filter:drop-shadow(0 0 6px rgba(31,208,234,.3))}
.tb-back{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--fg-dim);
  font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;padding:8px 13px;
  border:1px solid var(--line-2);border-radius:var(--radius);transition:color .2s var(--ease),border-color .2s var(--ease)}
.tb-back:hover{color:var(--accent);border-color:var(--accent)}
.tb-back svg{transition:transform .2s var(--ease)}
.tb-back:hover svg{transform:translateX(-3px)}

.auth{position:relative;z-index:1;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:32px 20px}

.auth-card{position:relative;width:100%;max-width:440px;
  background:linear-gradient(180deg,var(--surface),var(--ink-2));
  border:1px solid var(--line-2);border-radius:var(--radius);
  padding:clamp(26px,5vw,40px);box-shadow:0 40px 90px -34px #000;}
.auth-card::before,.auth-card::after{content:"";position:absolute;width:16px;height:16px}
.auth-card::before{top:-1px;left:-1px;border-top:2px solid var(--accent);border-left:2px solid var(--accent)}
.auth-card::after{bottom:-1px;right:-1px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent)}

.auth-head{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{filter:drop-shadow(0 0 8px rgba(31,208,234,.35))}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--f-display);font-weight:700;font-size:16px;letter-spacing:.05em}
.accent{color:var(--accent)}
.brand-sub{font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;color:var(--fg-faint);margin-top:4px}
.conn{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--ok);
  border:1px solid var(--line-2);border-radius:3px;padding:6px 10px;align-self:flex-start}

.auth-title{font-family:var(--f-display);font-weight:600;font-size:clamp(22px,4vw,28px);margin-bottom:6px}
.auth-sub{color:var(--fg-dim);font-size:14px;margin-bottom:26px}

.field{margin-bottom:18px}
.field label{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:8px}
.input-wrap{position:relative;display:flex;align-items:center}
.input-wrap .ic{position:absolute;left:13px;width:18px;height:18px;color:var(--fg-faint);pointer-events:none}
.input-wrap input{width:100%;background:rgba(7,11,17,.6);border:1px solid var(--line-2);border-radius:var(--radius);
  color:var(--fg);font-size:15px;font-family:var(--f-sans);padding:14px 14px 14px 42px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.input-wrap input::placeholder{color:#46535f}
.input-wrap input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.toggle{position:absolute;right:8px;background:transparent;border:0;color:var(--fg-faint);cursor:pointer;padding:6px;display:flex;border-radius:4px;transition:color .2s}
.toggle:hover{color:var(--accent)}
.toggle.on{color:var(--accent)}
.capslock{margin-top:8px;font-size:12px;color:var(--amber);font-family:var(--f-mono);letter-spacing:.04em}

.row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 20px;flex-wrap:wrap}
.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--fg-dim);cursor:pointer;user-select:none}
.check input{accent-color:var(--accent);width:15px;height:15px}
.link-min{font-size:12.5px;color:var(--fg-faint);text-decoration:none;font-family:var(--f-mono)}
.link-min:hover{color:var(--accent)}

.erro{display:flex;align-items:center;gap:8px;background:rgba(255,93,108,.08);border:1px solid rgba(255,93,108,.35);
  color:var(--danger);border-radius:var(--radius);padding:11px 14px;font-size:13.5px;margin-bottom:18px;font-weight:500}
.erro[hidden]{display:none}      /* impede que o display:flex anule o atributo hidden */
.erro::before{content:"⨯";font-size:16px;font-weight:700;line-height:1}

.btn-entrar{position:relative;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--accent);color:var(--on-accent);border:0;border-radius:var(--radius);
  padding:15px;font-family:var(--f-mono);font-size:13.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;box-shadow:0 14px 36px -14px rgba(31,208,234,.55);
  transition:background .2s var(--ease),transform .2s var(--ease),opacity .2s}
.btn-entrar:hover:not(:disabled){background:#46ddf2;transform:translateY(-1px)}
.btn-entrar:disabled{opacity:.65;cursor:progress}
.btn-spin{display:none;width:16px;height:16px;border:2px solid rgba(4,34,42,.35);border-top-color:var(--on-accent);border-radius:50%;animation:spin .7s linear infinite}
.btn-entrar.loading .btn-spin{display:inline-block}
.btn-entrar.loading .btn-label{opacity:.85}
@keyframes spin{to{transform:rotate(360deg)}}

.legal{margin-top:18px;font-size:11px;color:var(--fg-faint);font-family:var(--f-mono);letter-spacing:.04em;text-align:center;line-height:1.5}

/* ====== Sucesso ====== */
#sucesso-view{text-align:center;animation:fade .5s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ok-badge{width:60px;height:60px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;color:var(--ok);background:rgba(74,222,128,.1);border:1.5px solid rgba(74,222,128,.4)}
#sucesso-view .auth-sub{margin-bottom:22px}
#sucesso-conteudo{text-align:left}
.reveal-link{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:15px;
  font-family:var(--f-mono);font-size:13.5px;font-weight:600;letter-spacing:.05em;text-decoration:none;
  box-shadow:0 14px 36px -14px rgba(31,208,234,.55);transition:transform .2s var(--ease),background .2s}
.reveal-link:hover{background:#46ddf2;transform:translateY(-2px)}
.reveal-note{background:rgba(7,11,17,.55);border:1px solid var(--line-2);border-radius:var(--radius);
  padding:14px 16px;color:var(--fg-dim);font-size:13.5px;margin-bottom:16px}
.reveal-raw{display:flex;align-items:center;gap:10px;margin-top:14px;
  background:rgba(7,11,17,.55);border:1px solid var(--line-2);border-radius:var(--radius);padding:10px 12px}
.reveal-raw code{flex:1;font-family:var(--f-mono);font-size:12px;color:var(--accent);word-break:break-all}
.copy-btn{background:transparent;border:1px solid var(--line-2);color:var(--fg-dim);border-radius:4px;
  padding:6px 10px;font-family:var(--f-mono);font-size:11px;cursor:pointer;transition:color .2s,border-color .2s;flex-shrink:0}
.copy-btn:hover{color:var(--accent);border-color:var(--accent)}

.auth-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:26px;padding-top:18px;
  border-top:1px solid var(--line);font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;color:var(--fg-faint)}
.auth-foot .cls{color:var(--amber)}

@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media (max-width:420px){.row{flex-direction:column;align-items:flex-start}}
