/* Nexus liquid glass — páginas da nuvem (login, conta, dashboard, administração). Não é usado no painel do aparelho. */
@font-face{font-family:'Plus Jakarta Sans';src:url(/static/jakarta.woff2) format('woff2');font-weight:200 800;font-display:swap}
:root{--g-bg:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.03) 55%,rgba(255,255,255,.06));--g-line:rgba(255,255,255,.15);--g-hi:rgba(255,255,255,.30)}
body{font-family:'Plus Jakarta Sans','Segoe UI',-apple-system,'Helvetica Neue',Arial,sans-serif!important;background:#060d2b!important;position:relative;overflow-x:hidden}
.nx-blobs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.nx-blobs i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;will-change:transform}
.nx-blobs i:nth-child(1){width:46vmax;height:46vmax;left:-12vmax;top:-14vmax;background:#3b6cff;opacity:.16;animation:nxA 26s ease-in-out infinite}
.nx-blobs i:nth-child(2){width:50vmax;height:50vmax;right:-18vmax;top:10vmax;background:#2a4bd6;opacity:.18;animation:nxB 32s ease-in-out infinite}
.nx-blobs i:nth-child(3){width:38vmax;height:38vmax;left:20vmax;bottom:-20vmax;background:#7a3fd1;opacity:.12;animation:nxA 38s ease-in-out infinite reverse}
/* véu escuro: mantém a leitura de tabelas e listas */
.nx-blobs::after{content:"";position:absolute;inset:0;background:rgba(5,10,34,.55)}
@keyframes nxA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vmax,5vmax) scale(1.15)}}
@keyframes nxB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7vmax,4vmax) scale(.9)}}

/* superfícies de vidro */
.card,.kpi,.box,form,.detail,.sec{background:var(--g-bg)!important;border:1px solid var(--g-line)!important;
  -webkit-backdrop-filter:blur(18px) saturate(165%);backdrop-filter:blur(18px) saturate(165%);
  box-shadow:inset 0 1px 0 var(--g-hi),0 14px 38px rgba(0,0,0,.30)!important;position:relative;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s}
.card::before,.kpi::before,form::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,-30%),rgba(255,255,255,.14),transparent 60%);opacity:0;transition:opacity .3s}
.card:hover::before,.kpi:hover::before,form:hover::before{opacity:1}
.card:hover{transform:translateY(-3px);border-color:rgba(245,165,36,.45)!important}
.card>*,.kpi>*,form>*{position:relative}
#modal{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#modal .box{background:linear-gradient(135deg,rgba(14,24,70,.86),rgba(8,14,44,.92))!important}

/* cabeçalho, abas e botões */
header{padding:10px 16px;border-radius:999px;background:var(--g-bg);border:1px solid var(--g-line);
  -webkit-backdrop-filter:blur(18px) saturate(165%);backdrop-filter:blur(18px) saturate(165%);box-shadow:inset 0 1px 0 var(--g-hi),0 10px 30px rgba(0,0,0,.28)}
nav{border-bottom:0!important}
nav button{background:var(--g-bg)!important;border:1px solid var(--g-line)!important;color:#c3cdf2!important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:transform .25s,background .25s}
nav button:hover{transform:translateY(-1px)}
nav button.on{background:linear-gradient(180deg,#ffbd45,#f5a524)!important;color:#1a1200!important;border-color:transparent!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 8px 22px rgba(245,165,36,.35)}
.btn,button.sec{background:var(--g-bg)!important;border:1px solid var(--g-line)!important;border-radius:999px!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.btn:hover,button.sec:hover{border-color:var(--org)!important}
button:not(.sec):not(.del):not([class*=on]):not(nav button):not(.btn){background:linear-gradient(180deg,#ffbd45,#f5a524);border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 8px 20px rgba(245,165,36,.28);transition:transform .2s,box-shadow .2s}
button:not(.sec):not(.del):hover{transform:translateY(-1px)}
input,select{background:rgba(5,10,34,.55)!important;border:1px solid var(--g-line)!important;border-radius:12px!important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.35)}
input:focus,select:focus{border-color:var(--org)!important;box-shadow:0 0 0 3px rgba(245,165,36,.18)!important}
.pill{border-radius:999px!important;border:1px solid rgba(255,255,255,.12)}

/* títulos */
h1{background:linear-gradient(115deg,#ffd98a,#f5a524 45%,#fff1c9 55%,#f5a524);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;
  color:transparent!important;-webkit-text-fill-color:transparent;animation:nxText 8s ease-in-out infinite;filter:drop-shadow(0 6px 16px rgba(245,165,36,.3))}
h2{text-shadow:0 6px 18px rgba(245,165,36,.25)}
h3{text-shadow:0 1px 0 rgba(255,255,255,.1)}
@keyframes nxText{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.kpi b{text-shadow:0 8px 20px rgba(110,168,255,.3)}
table{border-collapse:separate;border-spacing:0}
th{color:#8b98c6}
tr:hover td{background:rgba(255,255,255,.04)}

/* login */
form{padding:30px!important;border-radius:24px!important}
@media (prefers-reduced-motion:reduce){.nx-blobs i,h1{animation:none!important}.card:hover{transform:none}}
