:root{
  --bg:#050916; --bd:#1c2c52; --bd2:#263a68;
  --txt:#eaf1ff; --muted:#8fa6d0; --muted2:#63789f;
  --cyan:#22d3ee; --blue:#3b82f6; --violet:#8b5cf6; --magenta:#ec4899;
  --green:#2ee6a8; --red:#ff5b8a;
  --grid:rgba(120,160,220,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1100px 620px at 12% -8%, rgba(59,130,246,.20), transparent 60%),
    radial-gradient(900px 520px at 92% 0%, rgba(139,92,246,.16), transparent 62%),
    radial-gradient(800px 500px at 60% 108%, rgba(34,211,238,.10), transparent 60%),
    var(--bg);
  color:var(--txt);
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
.mark{
  width:52px;height:52px;border-radius:15px;flex:0 0 auto;
  background:linear-gradient(145deg,var(--cyan),var(--blue) 45%,var(--violet));
  box-shadow:0 0 34px rgba(34,211,238,.42);
  display:grid;place-items:center;font-size:25px
}

/* ---------- barra superior ---------- */
.topo{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  border-bottom:1px solid var(--bd);background:rgba(8,14,30,.86);
  padding:12px 26px;position:sticky;top:0;z-index:50;backdrop-filter:blur(8px)
}
.topo .mark{width:38px;height:38px;border-radius:11px;font-size:18px}
.topo h1{margin:0;font-size:16px;font-weight:700;letter-spacing:-.2px}
.topo .cresce{flex:1}
.quem{font-size:12px;color:var(--muted);text-align:right;line-height:1.45}
.quem b{color:var(--txt);display:block;font-size:13px}
.tag{
  display:inline-block;font-size:9.5px;letter-spacing:1.1px;text-transform:uppercase;
  font-weight:800;padding:2px 7px;border-radius:5px;margin-top:3px
}
.tag.admin{background:rgba(139,92,246,.22);color:#c4b5fd}
.tag.consulta{background:rgba(34,211,238,.16);color:var(--cyan)}

/* ---------- botoes ---------- */
.btn{
  background:rgba(59,130,246,.12);border:1px solid var(--bd2);color:var(--muted);
  border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:.15s;text-decoration:none;display:inline-block;white-space:nowrap
}
.btn:hover{border-color:var(--cyan);color:var(--txt)}
.btn.primario{
  background:linear-gradient(135deg,var(--cyan),var(--blue));border-color:transparent;color:#04101f
}
.btn.primario:hover{filter:brightness(1.1);color:#04101f}
.btn.perigo{background:rgba(255,91,138,.12);border-color:rgba(255,91,138,.4);color:var(--red)}
.btn.perigo:hover{background:rgba(255,91,138,.2);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.mini{padding:5px 10px;font-size:11.5px}

/* ---------- formularios ---------- */
label{display:block;font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--muted2);font-weight:800;margin-bottom:7px}
input,select{
  width:100%;background:#0a1226;color:var(--txt);border:1px solid var(--bd2);
  border-radius:10px;padding:11px 13px;font-size:14.5px;font-family:inherit;font-weight:600;outline:none
}
input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.18)}
.campo{margin-bottom:16px}
.dica{font-size:11.5px;color:var(--muted2);margin-top:6px;font-weight:500;line-height:1.5}

/* ---------- avisos ---------- */
.aviso{border-radius:10px;padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:16px;line-height:1.5}
.aviso.erro{background:rgba(255,91,138,.13);color:var(--red);border:1px solid rgba(255,91,138,.3)}
.aviso.ok{background:rgba(46,230,168,.13);color:var(--green);border:1px solid rgba(46,230,168,.3)}
.aviso.info{background:rgba(59,130,246,.12);color:#9ec5ff;border:1px solid rgba(59,130,246,.3)}
.aviso:empty{display:none}

/* ---------- paineis / tabelas ---------- */
.painel{
  border:1px solid var(--bd);border-radius:18px;padding:20px 22px;margin-bottom:16px;
  background:linear-gradient(180deg,rgba(16,27,54,.86),rgba(8,14,30,.86));
  box-shadow:0 16px 40px rgba(0,0,0,.34)
}
.painel h2{margin:0 0 4px;font-size:15.5px;font-weight:700}
.painel .sub{font-size:11.5px;color:var(--muted2);margin-bottom:16px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:10px 12px;color:var(--muted2);font-size:10.5px;letter-spacing:1.2px;
  text-transform:uppercase;border-bottom:1px solid var(--bd2);white-space:nowrap;font-weight:800}
td{padding:11px 12px;border-bottom:1px solid rgba(28,44,82,.5);font-weight:600;vertical-align:middle}
tbody tr:hover{background:rgba(59,130,246,.07)}
.pilula{display:inline-block;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px;
  letter-spacing:.6px;text-transform:uppercase}
.pilula.ativo{background:rgba(46,230,168,.15);color:var(--green)}
.pilula.inativo{background:rgba(140,160,200,.14);color:var(--muted2)}
.pilula.online{background:rgba(34,211,238,.16);color:var(--cyan)}

/* ---------- modal ---------- */
.fundo{
  position:fixed;inset:0;background:rgba(3,7,18,.78);backdrop-filter:blur(4px);
  display:none;align-items:center;justify-content:center;z-index:100;padding:20px
}
.fundo.aberto{display:flex}
.modal{
  width:100%;max-width:440px;border:1px solid var(--bd2);border-radius:18px;padding:24px;
  background:linear-gradient(165deg,rgba(19,32,63,.98),rgba(9,15,32,.98));
  box-shadow:0 30px 70px rgba(0,0,0,.6);max-height:90vh;overflow-y:auto
}
.modal h3{margin:0 0 6px;font-size:17px}
.modal .sub{font-size:12px;color:var(--muted);margin-bottom:20px;line-height:1.5}
.acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.senha-gerada{
  font-family:'Consolas','Courier New',monospace;font-size:20px;font-weight:700;letter-spacing:2px;
  background:#0a1226;border:1px dashed var(--cyan);border-radius:10px;padding:14px;
  text-align:center;color:var(--cyan);margin:12px 0;user-select:all;word-break:break-all
}
