/* ====== Variáveis base ====== */
:root{
  --bg:#0b1020; --panel:#11162a; --panel-2:#151b33;
  --text:#e6ebff; --muted:#9aa4c8;
  --primary:#5b7cfa; --primary-2:#375af4;
  --success:#22c55e; --danger:#ef4444; --warning:#f59e0b;
  --border:#26304f; --radius:12px; --shadow:0 8px 20px rgba(0,0,0,.35);
}

/* ====== Reset/estrutura ====== */
*{ box-sizing:border-box }
html,body{ height:100% }
body{
  margin:0; color:var(--text);
  font:16px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Noto Sans,Arial,sans-serif;
  background: radial-gradient(1200px 600px at 70% -200px, rgba(91,124,250,.15), transparent 60%), var(--bg);
}
a{ color:var(--primary); text-decoration:none }
a:hover{ color:var(--primary-2) }
:focus-visible{ outline:2px solid var(--primary); outline-offset:2px }

/* ====== Layout genérico ====== */
.container{ max-width:1120px; margin:0 auto; padding:16px }
.card{
  background:var(--panel); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:18px;
}
.grid{ display:grid; gap:16px }
.grid-2{ grid-template-columns:1fr }
@media (min-width:900px){ .grid-2{ grid-template-columns:1fr 1fr } }

.muted{ color:var(--muted) }
h1,h2,h3{ line-height:1.2; margin:0 0 10px }
h2{ font-size:1.4rem }
h3{ font-size:1.1rem; color:#c6cffd }

/* ====== Header/NAV ====== */
.site-header .nav{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:12px 16px; position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(1.2) blur(8px);
  background:linear-gradient(180deg, rgba(17,22,42,.85), rgba(17,22,42,.60));
  border-bottom:1px solid var(--border);
}
.nav .brand{ margin-right:auto; display:flex; align-items:center; gap:8px; font-weight:700; letter-spacing:.2px }
.brand-icon{ font-size:20px; line-height:1; display:inline-block }
.nav .nav-links{ display:flex; gap:12px; flex-wrap:wrap }
.nav .nav-auth{ display:flex; gap:8px; flex-wrap:wrap; margin-left:auto }
@media (max-width:680px){
  .site-header .nav{ gap:8px }
  .nav .nav-auth{ order:2; margin-left:0 }
  .nav .nav-links{ order:3; width:100%; justify-content:center }
}

/* ====== Botões/Badges ====== */
.badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:.25rem .6rem; border-radius:999px;
  background:var(--panel-2); border:1px solid var(--border); color:var(--muted);
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:.55rem .9rem; min-height:40px;
  border-radius:10px; border:1px solid var(--border);
  background:var(--panel); color:var(--text); cursor:pointer; transition:transform .15s ease;
}
.btn:hover{ transform:translateY(-1px) }
.btn-primary{ background:linear-gradient(180deg,var(--primary),var(--primary-2)); border-color:transparent }
.btn-success{ background:linear-gradient(180deg,#22c55e,#16a34a); border-color:transparent }
.btn-danger{ background:linear-gradient(180deg,#ef4444,#dc2626); border-color:transparent; color:#fff }

/* ====== Formulários ====== */
form label{ display:block; margin:12px 0 8px; color:#c6cffd }
input,select,textarea{
  width:100%; background:var(--panel-2); color:var(--text);
  border:1px solid var(--border); padding:.65rem .75rem; border-radius:10px; outline:0;
}
input:focus,select:focus,textarea:focus{ border-color:var(--primary) }

/* ====== Tabelas (responsivas) ====== */
/* Use .table-responsive OU .scroll-box como wrapper */
.table-responsive,
.scroll-box{
  width:100%; overflow:auto; -webkit-overflow-scrolling:touch;
  border:1px solid var(--border); border-radius:var(--radius);
}
.scroll-box{ max-height:420px }  /* ajuste por página se quiser */

table{
  width:100%; border-collapse:collapse; background:var(--panel);
  table-layout:fixed; /* evita “explodir” no mobile */
}
th,td{
  padding:12px 14px; border-bottom:1px solid var(--border);
  vertical-align:top; word-break:break-word;
}
thead th{
  position:sticky; top:0; z-index:1;
  background:linear-gradient(180deg,#1a2140,#141a33);
  text-align:left; color:#c6cffd;
}
td.actions{ white-space:nowrap } /* mantém botões lado a lado */
@media (max-width:520px){ th,td{ padding:10px; font-size:14px } }

/* ====== Utilitários de visibilidade ====== */
.only-desktop{ display:none }
.only-mobile{ display:block }
@media (min-width:900px){
  .only-desktop{ display:block }
  .only-mobile{ display:none }
}

/* ====== Footer ====== */
footer{ padding:30px; text-align:center; color:var(--muted) }
