/* ==========================================================
   GHOST CONSULTA — Cyber UI  •  v3.0 (Pro Edition)
   Paleta original preservada — visual reforçado, neon e responsivo
   ========================================================== */
:root{
  --bg-dark:#0a0e14;
  --bg-panel:#131b26;
  --bg-elev:#0f1620;
  --highlight:#00d9ff;
  --highlight-hover:#00b3d6;
  --highlight-rgb:0,217,255;
  --danger-bright:#ff334b;
  --danger-rgb:255,51,75;
  --ok:#00ff9d;
  --ok-rgb:0,255,157;
  --warn:#ffb020;
  --warn-rgb:255,176,32;
  --text-main:#ffffff;
  --text-sub:#aab2c0;
  --border-color:#2a3b55;
  --radius:12px;
  --radius-sm:8px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --header-h:64px;
}

*{margin:0;padding:0;box-sizing:border-box;outline:none!important;-webkit-tap-highlight-color:transparent;}
html{-webkit-text-size-adjust:100%;}
html,body{min-height:100%;}
body{
  background:var(--bg-dark);
  background-image:
    radial-gradient(circle at 15% -10%, rgba(0,217,255,.10) 0%, transparent 45%),
    radial-gradient(circle at 100% 10%, rgba(255,51,75,.06) 0%, transparent 40%),
    radial-gradient(circle at top center,#1a2639 0%,var(--bg-dark) 80%);
  background-attachment:fixed;
  color:var(--text-main);
  font-family:'JetBrains Mono','Courier New',monospace;
  min-height:100vh;font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* grid técnico de fundo */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(0,217,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,217,255,.035) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 85%);
  -webkit-mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 85%);
}
/* scanline sutil — assinatura visual exclusiva */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0px,rgba(255,255,255,.012) 1px,transparent 1px,transparent 3px);
  opacity:.5;
  mix-blend-mode:overlay;
}

a{color:var(--highlight);text-decoration:none;transition:color .2s;}
a:hover{text-decoration:underline;}
button,input,select,textarea{font-family:inherit;font-size:inherit;}
svg{display:block;}
::selection{background:rgba(var(--highlight-rgb),.3);color:#fff;}

/* ---------- TOP LOADING BAR ---------- */
.top-loader{
  position:fixed;top:0;left:0;height:2.5px;width:0%;z-index:9999;
  background:linear-gradient(90deg,var(--highlight),#7cf7ff,var(--highlight));
  box-shadow:0 0 10px rgba(var(--highlight-rgb),.9),0 0 22px rgba(var(--highlight-rgb),.5);
  transition:width .35s ease, opacity .3s ease;
  opacity:0;
}
.top-loader.is-active{opacity:1;}
.top-loader.is-done{opacity:0;transition:width .2s ease, opacity .4s ease .15s;}

/* ---------- LOADING OVERLAY (pop-up) ---------- */
.loading-overlay{
  position:fixed;inset:0;z-index:9998;
  background:rgba(6,9,14,.72);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  animation:fadeIn .2s ease;
}
.loading-overlay[hidden]{display:none!important;}
.loading-card{
  background:var(--bg-panel);border:1px solid var(--border-color);
  border-top:2px solid var(--highlight);border-radius:var(--radius);
  padding:1.8rem 2.2rem;text-align:center;min-width:220px;
  box-shadow:0 0 50px rgba(var(--highlight-rgb),.15),0 20px 60px rgba(0,0,0,.6);
  animation:popIn .35s var(--ease);
}
@keyframes popIn{from{opacity:0;transform:scale(.9) translateY(6px);}to{opacity:1;transform:scale(1) translateY(0);}}
.loading-spinner{
  width:46px;height:46px;margin:0 auto 1rem;position:relative;
}
.loading-spinner::before,.loading-spinner::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:2.5px solid transparent;
}
.loading-spinner::before{
  border-top-color:var(--highlight);border-right-color:rgba(var(--highlight-rgb),.25);
  animation:spin .9s linear infinite;
}
.loading-spinner::after{
  inset:8px;border-bottom-color:var(--danger-bright);
  animation:spin 1.3s linear infinite reverse;
  opacity:.7;
}
.loading-card .loader-txt{font-size:.68rem;letter-spacing:.2em;color:var(--highlight);text-transform:uppercase;animation:pulseText 1.6s ease-in-out infinite;}
@keyframes pulseText{0%,100%{opacity:.6;}50%{opacity:1;}}

/* ---------- AUTH ---------- */
.auth-screen{
  position:relative;z-index:2;min-height:100vh;
  display:flex;align-items:center;justify-content:center;padding:1rem;
}
.auth-screen::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:
    radial-gradient(circle at 20% 20%, rgba(var(--highlight-rgb),.10), transparent 35%),
    radial-gradient(circle at 85% 80%, rgba(var(--danger-rgb),.08), transparent 35%);
  animation:driftGlow 14s ease-in-out infinite alternate;
}
@keyframes driftGlow{0%{opacity:.7;}100%{opacity:1;transform:scale(1.05);}}

.login-container{width:100%;max-width:420px;animation:fadeInUp .7s var(--ease);position:relative;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.panel-module{
  background:linear-gradient(180deg, rgba(19,27,38,.96), rgba(15,22,32,.98));
  border:1px solid var(--border-color);
  border-top:3px solid var(--highlight);border-radius:var(--radius);
  padding:2.1rem 1.85rem;box-shadow:0 10px 40px rgba(0,0,0,.65),0 0 60px rgba(var(--highlight-rgb),.05);
  position:relative;overflow:hidden;
  backdrop-filter:blur(10px);
}
.panel-module::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:2px;
  background:linear-gradient(90deg,transparent,var(--highlight),transparent);
  animation:sweep 4s linear infinite;
}
@keyframes sweep{0%{left:-60%}100%{left:120%}}
/* borda de canto neon */
.panel-module::before{
  content:'';position:absolute;top:-1px;left:-1px;width:26px;height:26px;
  border-top:2px solid var(--highlight);border-left:2px solid var(--highlight);
  border-radius:var(--radius) 0 0 0;pointer-events:none;opacity:.9;
}

.brand{display:flex;align-items:center;gap:.9rem;margin-bottom:1.9rem;}
.brand-mark, .mark{
  width:48px;height:48px;flex:0 0 48px;border-radius:13px;
  display:grid;place-items:center;font-size:1.3rem;color:#000;font-weight:800;
  background:linear-gradient(135deg,var(--highlight),#0088aa);
  box-shadow:0 0 22px rgba(var(--highlight-rgb),.45), inset 0 0 12px rgba(255,255,255,.15);
  position:relative;overflow:hidden;
  animation:markPulse 3.2s ease-in-out infinite;
}
@keyframes markPulse{
  0%,100%{box-shadow:0 0 18px rgba(var(--highlight-rgb),.4), inset 0 0 12px rgba(255,255,255,.15);}
  50%{box-shadow:0 0 30px rgba(var(--highlight-rgb),.65), inset 0 0 14px rgba(255,255,255,.2);}
}
/* Logo do usuário — se adapta automaticamente a qualquer proporção */
.brand-mark img.logo-img, .mark img.logo-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;padding:15%;
  filter:drop-shadow(0 0 6px rgba(0,0,0,.4));
}
.brand-name{font-size:1.08rem;font-weight:800;letter-spacing:.14em;line-height:1.1;position:relative;}
.brand-name span{color:var(--highlight);}
.brand-sub{font-size:.62rem;color:var(--text-sub);letter-spacing:.22em;text-transform:uppercase;margin-top:.25rem;}

/* efeito glitch sutil ao passar o mouse na marca (desktop) */
@media(hover:hover){
  .brand-name:hover{animation:glitch .35s steps(2,end) 1;}
}
@keyframes glitch{
  0%{ text-shadow: 2px 0 var(--highlight), -2px 0 var(--danger-bright); transform:translateX(0);}
  25%{ text-shadow: -2px 0 var(--highlight), 2px 0 var(--danger-bright); transform:translateX(-1px);}
  50%{ text-shadow: 2px 0 var(--danger-bright), -2px 0 var(--highlight); transform:translateX(1px);}
  100%{ text-shadow:none; transform:translateX(0);}
}

.tabs{display:flex;gap:.35rem;background:#0a0e14;border:1px solid var(--border-color);border-radius:9px;padding:.3rem;margin-bottom:1.6rem;}
.tab{flex:1;padding:.65rem;border:none;background:transparent;color:var(--text-sub);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-radius:7px;cursor:pointer;transition:.25s;}
.tab.active{background:rgba(var(--highlight-rgb),.14);color:var(--highlight);box-shadow:0 0 15px rgba(var(--highlight-rgb),.18), inset 0 0 0 1px rgba(var(--highlight-rgb),.25);}
.tab:hover:not(.active){color:#fff;}

.form-group{margin-bottom:1.15rem;position:relative;}
.form-control{
  width:100%;background:#0a0e14;color:var(--text-main);
  border:1px solid var(--border-color);border-radius:7px;
  padding:13px 15px 13px 45px;font-size:16px;transition:all .3s ease;
}
.form-control.no-icon{padding-left:15px;}
.form-control:focus{border-color:var(--highlight);box-shadow:0 0 0 3px rgba(var(--highlight-rgb),.12),0 0 15px rgba(var(--highlight-rgb),.18);}
.input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-sub);transition:.3s;width:18px;height:18px;pointer-events:none;}
.form-control:focus + .input-icon,.form-control:not(:placeholder-shown) + .input-icon{color:var(--highlight);}
.form-control::placeholder{color:#4a5d7a;}
label.field-label{font-size:.6rem;letter-spacing:.16em;color:var(--text-sub);text-transform:uppercase;margin-bottom:.4rem;display:block;font-weight:600;}

.btn-login,.btn-cyber{
  background:rgba(var(--highlight-rgb),.1);color:var(--highlight);
  border:1px solid var(--highlight);width:100%;padding:14px;
  font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;
  border-radius:7px;margin-top:.8rem;cursor:pointer;transition:all .3s ease;
  position:relative;overflow:hidden;
}
.btn-login::before,.btn-cyber::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.25),transparent);
  transform:translateX(-120%);transition:transform .5s ease;
}
.btn-login:hover::before,.btn-cyber:hover:not(:disabled)::before{transform:translateX(120%);}
.btn-login:hover,.btn-cyber:hover:not(:disabled){background:var(--highlight);color:#000;box-shadow:0 0 28px rgba(var(--highlight-rgb),.5);transform:translateY(-2px);}
.btn-login:active,.btn-cyber:active{transform:translateY(0);}
.btn-cyber{width:auto;padding:12px 1.6rem;margin-top:0;display:inline-block;text-align:center;}
.btn-cyber:disabled{opacity:.5;cursor:wait;}
.btn-ghost{
  background:transparent;color:var(--text-sub);border:1px solid var(--border-color);
  border-radius:7px;padding:.55rem .9rem;font-size:.63rem;letter-spacing:.12em;
  text-transform:uppercase;cursor:pointer;transition:.25s;font-weight:600;
  display:inline-block;text-align:center;text-decoration:none;
}
.btn-ghost:hover{border-color:var(--highlight);color:var(--highlight);text-decoration:none;box-shadow:0 0 12px rgba(var(--highlight-rgb),.15);}

.alert{padding:12px 14px;border-radius:7px;font-size:.72rem;text-align:center;margin-top:1.3rem;letter-spacing:.05em;animation:slideDown .3s var(--ease);}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
.alert.err{background:rgba(var(--danger-rgb),.1);border:1px solid var(--danger-bright);color:var(--danger-bright);box-shadow:0 0 18px rgba(var(--danger-rgb),.12);}
.alert.ok{background:rgba(var(--ok-rgb),.08);border:1px solid var(--ok);color:var(--ok);box-shadow:0 0 18px rgba(var(--ok-rgb),.12);}
.alert.warn{background:rgba(var(--warn-rgb),.08);border:1px solid var(--warn);color:var(--warn);}

.footer-text{text-align:center;margin-top:1.6rem;font-size:.62rem;color:var(--text-sub);opacity:.65;letter-spacing:.1em;line-height:1.7;}

/* ---------- APP LAYOUT ---------- */
.app{position:relative;z-index:2;display:flex;flex-direction:column;min-height:100vh;}
.topbar{
  flex:0 0 auto;height:var(--header-h);display:flex;align-items:center;gap:1rem;padding:0 1.1rem;
  background:rgba(19,27,38,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:40;
}
.topbar::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--highlight-rgb),.5),transparent);}
.topbar-brand{font-size:.85rem;font-weight:800;letter-spacing:.14em;display:flex;align-items:center;gap:.6rem;white-space:nowrap;}
.topbar-brand .mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--highlight),#0088aa);color:#000;font-size:.75rem;font-weight:800;box-shadow:0 0 14px rgba(var(--highlight-rgb),.5);}
.topbar-brand span{color:var(--highlight);}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.7rem;}
.user-chip{display:flex;align-items:center;gap:.6rem;}
.avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:rgba(var(--highlight-rgb),.1);border:1px solid rgba(var(--highlight-rgb),.35);
  color:var(--highlight);font-weight:800;font-size:.8rem;}
.user-meta{display:none;line-height:1.15;}
.user-meta strong{font-size:.72rem;display:block;}
.user-meta small{font-size:.56rem;color:var(--highlight);letter-spacing:.14em;}
@media(min-width:560px){.user-meta{display:block;}}
.icon-btn{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;
  background:transparent;border:1px solid var(--border-color);color:var(--text-sub);cursor:pointer;transition:.25s;}
.icon-btn:hover{border-color:var(--danger-bright);color:var(--danger-bright);box-shadow:0 0 14px rgba(var(--danger-rgb),.2);}
.icon-btn svg{width:17px;height:17px;}

.app-body{flex:1;display:flex;min-height:0;}

/* ---------- SIDEBAR ---------- */
.sidebar{width:246px;flex:0 0 246px;border-right:1px solid var(--border-color);
  background:rgba(19,27,38,.55);padding:1.15rem .85rem;overflow-y:auto;}
.nav-label{font-size:.56rem;letter-spacing:.22em;color:#4a5d7a;text-transform:uppercase;margin:.9rem .5rem .5rem;}
.nav-item{display:flex;align-items:center;gap:.7rem;width:100%;padding:.7rem .85rem;margin-bottom:.28rem;
  border-radius:9px;border:1px solid transparent;background:none;color:var(--text-sub);
  font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:.22s;text-align:left;text-decoration:none;}
.nav-item svg{width:17px;height:17px;flex:0 0 17px;}
.nav-item:hover{color:#fff;background:rgba(var(--highlight-rgb),.06);text-decoration:none;}
.nav-item.active{color:var(--highlight);background:rgba(var(--highlight-rgb),.09);border-color:rgba(var(--highlight-rgb),.35);box-shadow:inset 2px 0 0 var(--highlight);}
.nav-item .badge{margin-left:auto;font-size:.55rem;padding:.15rem .4rem;border-radius:5px;
  background:rgba(var(--highlight-rgb),.15);color:var(--highlight);letter-spacing:.08em;}

/* ---------- CONTENT ---------- */
.content{flex:1;min-width:0;padding:1.6rem;overflow-x:hidden;}
.content::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:7px;}
.content::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:#243349;border-radius:9px;}

.view-head{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;margin-bottom:1.5rem;}
.view-title{font-size:1.05rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem;}
.view-title::before{content:'';width:4px;height:20px;border-radius:3px;background:var(--highlight);box-shadow:0 0 12px var(--highlight);}
.view-sub{font-size:.66rem;color:var(--text-sub);letter-spacing:.1em;margin-top:.35rem;}

/* ---------- CARDS ---------- */
.panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius);padding:1.3rem;position:relative;}
.panel-glow{border-top:2px solid var(--highlight);box-shadow:0 0 30px rgba(var(--highlight-rgb),.06);}

.stats-grid{display:grid;gap:.9rem;margin-bottom:1.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.stat{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius);padding:1.05rem;position:relative;overflow:hidden;transition:.25s;}
.stat:hover{border-color:rgba(var(--highlight-rgb),.4);transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.4);}
.stat::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--highlight),transparent);}
.stat-label{font-size:.56rem;letter-spacing:.18em;color:var(--text-sub);text-transform:uppercase;}
.stat-value{font-size:1.6rem;font-weight:800;margin:.4rem 0 .15rem;line-height:1;}
.stat-value.hl{color:var(--highlight);text-shadow:0 0 22px rgba(var(--highlight-rgb),.45);}
.stat-foot{font-size:.58rem;color:#4a5d7a;letter-spacing:.1em;}

/* ---------- MODULES ---------- */
.modules-grid{display:grid;gap:1.05rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));}
.module-card{
  background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius);
  padding:1.25rem;cursor:pointer;transition:.28s;position:relative;overflow:hidden;
  text-align:left;color:inherit;text-decoration:none;display:block;
}
.module-card::before{content:'';position:absolute;inset:0;opacity:0;transition:.28s;
  background:radial-gradient(circle at 20% 0%,rgba(var(--highlight-rgb),.14),transparent 65%);}
.module-card:hover{border-color:var(--highlight);transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.5),0 0 34px rgba(var(--highlight-rgb),.14);text-decoration:none;}
.module-card:hover::before{opacity:1;}
.module-card.disabled{cursor:not-allowed;opacity:.45;pointer-events:none;}
.module-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:rgba(var(--highlight-rgb),.1);border:1px solid rgba(var(--highlight-rgb),.3);color:var(--highlight);margin-bottom:.95rem;position:relative;}
.module-ico svg{width:20px;height:20px;}
.module-card h3{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem;position:relative;color:#fff;}
.module-card p{font-size:.66rem;color:var(--text-sub);line-height:1.6;position:relative;}
.module-tag{position:absolute;top:1rem;right:1rem;font-size:.52rem;letter-spacing:.14em;
  padding:.2rem .5rem;border-radius:5px;background:rgba(var(--highlight-rgb),.1);color:var(--highlight);border:1px solid rgba(var(--highlight-rgb),.25);}
.module-tag.soon{background:rgba(170,178,192,.08);color:var(--text-sub);border-color:var(--border-color);}
.module-usage{margin-top:.95rem;position:relative;}
.usage-bar{height:4px;background:rgba(var(--highlight-rgb),.1);border-radius:2px;overflow:hidden;margin-top:.35rem;}
.usage-bar i{display:block;height:100%;background:var(--highlight);box-shadow:0 0 8px var(--highlight);transition:width .4s;}
.usage-bar.low i{background:var(--warn);box-shadow:0 0 8px var(--warn);}
.usage-bar.empty i{background:var(--danger-bright);box-shadow:0 0 8px var(--danger-bright);}
.usage-txt{font-size:.55rem;color:var(--text-sub);letter-spacing:.1em;}

/* ---------- TABELAS ---------- */
.table-wrap{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-panel);overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:.72rem;min-width:640px;}
th{text-align:left;padding:.8rem 1rem;white-space:nowrap;color:var(--highlight);
  font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;
  border-bottom:1px solid var(--border-color);background:rgba(var(--highlight-rgb),.045);}
td{padding:.75rem 1rem;border-bottom:1px solid rgba(42,59,85,.5);color:var(--text-sub);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:rgba(var(--highlight-rgb),.04);}
td.strong{color:#fff;font-weight:500;}

.badge{font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;padding:.32rem .62rem;
  border-radius:6px;border:1px solid;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;}
.badge.ok{color:var(--ok);border-color:rgba(var(--ok-rgb),.4);background:rgba(var(--ok-rgb),.08);}
.badge.bad{color:var(--danger-bright);border-color:rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.08);}
.badge.warn{color:var(--warn);border-color:rgba(var(--warn-rgb),.4);background:rgba(var(--warn-rgb),.08);}
.badge.neutral{color:var(--text-sub);border-color:var(--border-color);background:rgba(170,178,192,.05);}
.badge.hl{color:var(--highlight);border-color:rgba(var(--highlight-rgb),.4);background:rgba(var(--highlight-rgb),.08);}

.btn-sm{padding:.34rem .64rem;font-size:.58rem;border-radius:6px;border:1px solid var(--border-color);
  background:transparent;color:var(--text-sub);cursor:pointer;letter-spacing:.1em;
  text-transform:uppercase;transition:.22s;margin-right:.3rem;text-decoration:none;display:inline-block;font-weight:600;}
.btn-sm:hover{border-color:var(--highlight);color:var(--highlight);text-decoration:none;box-shadow:0 0 10px rgba(var(--highlight-rgb),.15);}
.btn-sm.danger:hover{border-color:var(--danger-bright);color:var(--danger-bright);box-shadow:0 0 10px rgba(var(--danger-rgb),.15);}
.btn-sm.ok:hover{border-color:var(--ok);color:var(--ok);box-shadow:0 0 10px rgba(var(--ok-rgb),.15);}

.actions-cell{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center;}
.actions-cell form{display:inline;margin:0;}

/* ---------- RESULTADO CPF ---------- */
.search-panel{background:var(--bg-panel);border:1px solid var(--border-color);border-top:2px solid var(--highlight);
  border-radius:var(--radius);padding:1.3rem;margin-bottom:1.5rem;}
.search-row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;}
.search-field{position:relative;flex:1 1 220px;}
.search-field .form-control{padding-left:45px;font-size:16px;letter-spacing:.08em;}
.hint{font-size:.6rem;color:#4a5d7a;letter-spacing:.08em;margin-top:.7rem;line-height:1.6;}

.result-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  background:linear-gradient(135deg,rgba(var(--highlight-rgb),.09),rgba(19,27,38,.4));
  border:1px solid var(--border-color);border-left:3px solid var(--highlight);
  border-radius:var(--radius);padding:1.15rem 1.25rem;margin-bottom:1.05rem;}
.result-id{display:flex;align-items:center;gap:1rem;min-width:0;}
.result-avatar{width:52px;height:52px;flex:0 0 52px;border-radius:14px;display:grid;place-items:center;
  background:rgba(var(--highlight-rgb),.12);border:1px solid rgba(var(--highlight-rgb),.35);
  color:var(--highlight);font-weight:800;font-size:1.1rem;box-shadow:0 0 22px rgba(var(--highlight-rgb),.18);}
.result-name{font-size:1rem;font-weight:800;letter-spacing:.04em;line-height:1.3;word-break:break-word;}
.result-doc{font-size:.68rem;color:var(--text-sub);letter-spacing:.12em;margin-top:.25rem;}
.result-badges{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;}

.res-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.res-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius);
  padding:1.15rem;position:relative;overflow:hidden;animation:fadeIn .4s ease backwards;transition:.25s;}
.res-card:hover{border-color:rgba(var(--highlight-rgb),.35);}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.res-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--highlight),transparent 70%);}
.res-card h3{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--highlight);
  margin-bottom:.9rem;display:flex;align-items:center;gap:.5rem;}
.res-card h3 svg{width:14px;height:14px;}
.res-row{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;
  border-bottom:1px dashed rgba(42,59,85,.65);font-size:.72rem;}
.res-row:last-child{border-bottom:none;padding-bottom:0;}
.res-row .k{color:var(--text-sub);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;flex:0 0 auto;padding-top:.15rem;}
.res-row .v{color:#fff;text-align:right;word-break:break-word;font-weight:500;}
.res-row .v.empty{color:#3d4d66;font-weight:400;}

.vehicle-item{border:1px solid var(--border-color);border-radius:9px;padding:.72rem .88rem;
  margin-bottom:.6rem;background:rgba(10,14,20,.5);}
.vehicle-title{font-size:.62rem;letter-spacing:.16em;color:var(--highlight);text-transform:uppercase;margin-bottom:.45rem;}

.empty-state{text-align:center;padding:2.6rem 1rem;color:var(--text-sub);
  border:1px dashed var(--border-color);border-radius:var(--radius);background:rgba(19,27,38,.4);}
.empty-state svg{width:38px;height:38px;margin:0 auto .9rem;color:#2a3b55;}
.empty-state p{font-size:.7rem;letter-spacing:.1em;line-height:1.7;}

.loader-box{text-align:center;padding:2.5rem 1rem;}
.loader{width:44px;height:44px;margin:0 auto 1rem;border-radius:50%;
  border:2px solid rgba(var(--highlight-rgb),.15);border-top-color:var(--highlight);animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.loader-txt{font-size:.66rem;letter-spacing:.2em;color:var(--highlight);text-transform:uppercase;}

/* ---------- BOTÃO COPIAR ---------- */
.btn-copy{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.42rem .78rem;border-radius:7px;
  background:rgba(var(--highlight-rgb),.08);
  border:1px solid rgba(var(--highlight-rgb),.4);
  color:var(--highlight);
  font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:.25s;
  font-family:inherit;
}
.btn-copy:hover{
  background:var(--highlight);color:#000;
  box-shadow:0 0 18px rgba(var(--highlight-rgb),.45);
  transform:translateY(-1px);
}
.btn-copy.copied{
  background:var(--ok);border-color:var(--ok);color:#000;
  box-shadow:0 0 18px rgba(var(--ok-rgb),.5);
}
.btn-copy svg{flex:0 0 auto;width:13px;height:13px;}

/* ---------- TABS ---------- */
.tabs-line{display:flex;gap:.4rem;margin-bottom:1.2rem;flex-wrap:wrap;border-bottom:1px solid var(--border-color);padding-bottom:.7rem;}
.tab-btn{padding:.5rem .95rem;border-radius:8px;border:1px solid transparent;background:transparent;
  color:var(--text-sub);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:.22s;text-decoration:none;display:inline-block;}
.tab-btn:hover{color:#fff;text-decoration:none;}
.tab-btn.active{color:var(--highlight);background:rgba(var(--highlight-rgb),.09);border-color:rgba(var(--highlight-rgb),.3);}

.cfg-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.cfg-grid .form-control{padding-left:15px;font-size:.8rem;}

/* ---------- LOGO NAS CONFIGURAÇÕES (admin) ---------- */
.logo-preview{
  width:64px;height:64px;border-radius:14px;display:grid;place-items:center;
  background:rgba(var(--highlight-rgb),.08);border:1px solid rgba(var(--highlight-rgb),.3);
  overflow:hidden;position:relative;flex:0 0 64px;
}
.logo-preview img{width:100%;height:100%;object-fit:contain;padding:12%;}

/* ---------- MODAL ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:100;
  display:flex;align-items:center;justify-content:center;
  padding:1rem;backdrop-filter:blur(6px);
}
.modal-overlay[hidden]{display:none !important;}
.modal-box{
  background:var(--bg-panel);border:1px solid var(--border-color);
  border-top:3px solid var(--highlight);border-radius:var(--radius);
  padding:1.55rem;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.7);
  animation:fadeInUp .3s ease;
}
.modal-box::-webkit-scrollbar{width:6px;}
.modal-box::-webkit-scrollbar-thumb{background:#243349;border-radius:9px;}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem;gap:.6rem;}
.modal-head h3{font-size:.9rem;}
.modal-close{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--border-color);
  background:transparent;color:var(--text-sub);cursor:pointer;font-size:1rem;
  display:grid;place-items:center;transition:.22s;padding:0;line-height:1;
}
.modal-close:hover{border-color:var(--danger-bright);color:var(--danger-bright);}

/* ---------- BOTTOM NAV ---------- */
.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(15,22,32,.97);backdrop-filter:blur(14px);
  border-top:1px solid var(--border-color);padding:.35rem .3rem calc(.35rem + env(safe-area-inset-bottom));}
.bn-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.22rem;
  padding:.48rem .15rem;border:none;background:none;cursor:pointer;color:var(--text-sub);
  font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;border-radius:10px;
  transition:.22s;text-decoration:none;}
.bn-item svg{width:19px;height:19px;}
.bn-item.active{color:var(--highlight);background:rgba(var(--highlight-rgb),.09);}
.bn-item:hover{text-decoration:none;}

/* ---------- TOAST (opcional, usado via JS) ---------- */
.toast-wrap{position:fixed;top:14px;right:14px;z-index:9997;display:flex;flex-direction:column;gap:.5rem;max-width:calc(100vw - 28px);}
.toast{
  background:var(--bg-panel);border:1px solid var(--border-color);border-left:3px solid var(--highlight);
  border-radius:9px;padding:.7rem 1rem;font-size:.68rem;letter-spacing:.04em;
  box-shadow:0 10px 30px rgba(0,0,0,.5);animation:slideDown .3s var(--ease);max-width:320px;
}

/* ==========================================================
   RESPONSIVO — mobile-first refinado
   ========================================================== */
@media(max-width:1024px){
  .sidebar{width:210px;flex:0 0 210px;}
}
@media(max-width:900px){
  .sidebar{display:none;}
  .content{padding:1.1rem;padding-bottom:calc(100px + env(safe-area-inset-bottom));}
  .bottom-nav{display:flex;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .res-grid{grid-template-columns:1fr;}
  .search-row{flex-direction:column;align-items:stretch;}
  .search-row .btn-cyber,.search-row .btn-ghost{width:100%;}
  .result-badges{width:100%;}
  .view-head{gap:.6rem;}
  table{min-width:560px;}
}
@media(max-width:640px){
  .topbar{padding:0 .8rem;gap:.7rem;}
  .topbar-brand{font-size:.72rem;letter-spacing:.1em;}
  .view-title{font-size:.92rem;}
  .panel,.panel-module,.search-panel,.result-head,.res-card,.stat{border-radius:10px;}
}
@media(max-width:480px){
  body{font-size:13px;}
  .btn-copy span{display:none;}
  .btn-copy{padding:.42rem .58rem;}
  .content{padding:.9rem;}
  .panel-module{padding:1.8rem 1.35rem;}
  .stat{padding:.85rem;}
  .stat-value{font-size:1.35rem;}
  .modal-box{padding:1.2rem;}
  .result-head{padding:1rem;}
  .result-avatar{width:44px;height:44px;flex:0 0 44px;font-size:.95rem;}
  .loading-card{padding:1.4rem 1.6rem;min-width:180px;}
}
@media(max-width:400px){
  .stats-grid{grid-template-columns:1fr;}
  .panel-module{padding:1.6rem 1.15rem;}
  .brand-mark,.mark{width:42px;height:42px;flex:0 0 42px;}
  .brand-name{font-size:.95rem;}
}
@media(max-width:360px){
  .tab{font-size:.6rem;padding:.55rem .3rem;}
  .view-title{font-size:.85rem;}
  .user-meta{display:none!important;}
}

/* ==========================================================
   TEMAS — paletas alternativas (mesma estrutura, cores diferentes)
   ========================================================== */
:root[data-theme="violet"]{--highlight:#9d5cff;--highlight-rgb:157,92,255;--highlight-hover:#8340e6;}
:root[data-theme="emerald"]{--highlight:#00e08a;--highlight-rgb:0,224,138;--highlight-hover:#00c278;}
:root[data-theme="amber"]{--highlight:#ffb020;--highlight-rgb:255,176,32;--highlight-hover:#e6980f;}
:root[data-theme="rose"]{--highlight:#ff3d81;--highlight-rgb:255,61,129;--highlight-hover:#e62070;}

.theme-picker{display:flex;gap:.5rem;justify-content:center;margin-top:1.5rem;}
.theme-dot{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.15);
  background:var(--dot);cursor:pointer;padding:0;transition:.2s;box-shadow:0 0 0 0 rgba(0,0,0,0);}
.theme-dot:hover{transform:scale(1.18);}
.theme-dot.active{border-color:#fff;box-shadow:0 0 12px var(--dot);}

.admin-link{font-size:.62rem;opacity:.75;letter-spacing:.06em;}

/* ==========================================================
   BOTÃO FLUTUANTE WHATSAPP
   ========================================================== */
.wa-float{
  position:fixed;right:20px;bottom:24px;z-index:70;
  width:56px;height:56px;border-radius:50%;
  background:#1fb855;color:#fff;display:grid;place-items:center;
  box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 0 rgba(31,184,85,.6);
  text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s;
  animation:waPulse 2.6s ease-out infinite;
}
.wa-float:hover{transform:scale(1.08);text-decoration:none;box-shadow:0 10px 28px rgba(0,0,0,.5);}
.wa-float svg{width:28px;height:28px;}
@keyframes waPulse{
  0%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 0 rgba(31,184,85,.55);}
  70%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 14px rgba(31,184,85,0);}
  100%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 0 rgba(31,184,85,0);}
}
@media(max-width:900px){
  .wa-float{right:16px;bottom:calc(74px + env(safe-area-inset-bottom));width:52px;height:52px;}
  .wa-float svg{width:26px;height:26px;}
}

/* ==========================================================
   EFEITOS EXCLUSIVOS — spotlight, tilt, textura, revelação
   ========================================================== */
/* spotlight que segue o cursor (desktop) */
@media(hover:hover) and (pointer:fine){
  .panel-module, .module-card, .stat, .panel-glow{
    background-image:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), rgba(var(--highlight-rgb),.08), transparent 70%);
  }
  .module-card{transform-style:preserve-3d;will-change:transform;}
}

/* textura de ruído sutil para dar profundidade premium */
.panel-module::before{ /* mantém canto neon existente */ }
body{position:relative;}
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.025;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* revelação suave ao rolar */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease),transform .55s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

/* cursor personalizado sutil (desktop, não intrusivo) */
@media(hover:hover) and (pointer:fine){
  .cursor-dot{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;
    background:var(--highlight);pointer-events:none;z-index:9996;mix-blend-mode:difference;
    transform:translate(-50%,-50%);transition:width .18s,height .18s,opacity .18s;opacity:0;}
  .cursor-ring{position:fixed;top:0;left:0;width:32px;height:32px;border-radius:50%;
    border:1px solid rgba(var(--highlight-rgb),.5);pointer-events:none;z-index:9996;
    transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .25s,border-color .25s;opacity:0;}
  body.cursor-ready .cursor-dot,body.cursor-ready .cursor-ring{opacity:1;}
  body.cursor-ready .cursor-ring.grow{width:52px;height:52px;border-color:var(--highlight);}
}

/* ==========================================================
   RESPONSIVO EXTRA (ajustes finos)
   ========================================================== */
@media(max-width:900px){
  .theme-picker{margin-top:1.2rem;}
}
@media(max-width:480px){
  .wa-float{width:50px;height:50px;right:14px;}
  .wa-float svg{width:24px;height:24px;}
}

/* reduz animações para quem prefere */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
  .wa-float{animation:none;}
}
@media(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none;}
}
