/* ===========================
   THEME: InfoCo Dark Premium
   =========================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

:root{
  --bg: #0f172a;            /* fundo */
  --bg2:#111c33;            /* fundo secundário */
  --panel:#0b1220;          /* sidebar / caixas escuras */
  --card:#0f1b33;           /* cards */
  --card2:#0c1529;          /* cards hover */
  --text:#e5e7eb;           /* texto */
  --muted:#9ca3af;          /* texto fraco */
  --border:rgba(255,255,255,.08);

  --primary:#3b82f6;
  --primary2:#2563eb;

  --success:#22c55e;
  --warning:#f59e0b;
  --danger:#ef4444;
  --info:#06b6d4;

  --shadow: 0 12px 30px rgba(0,0,0,.35);
  --radius: 16px;
}

*{ box-sizing:border-box; font-family:'Poppins',sans-serif; }
html,body{ height:100%; }
body{
  margin:0;
  background: radial-gradient(1200px 600px at 10% 0%, rgba(59,130,246,.18), transparent 55%),
              radial-gradient(900px 500px at 90% 10%, rgba(34,197,94,.12), transparent 55%),
              var(--bg);
  color:var(--text);
}

/* Layout base */
.wrapper{ display:flex; min-height:100vh; }
.main-content{
  flex:1;
  padding:26px;
}

/* Sidebar */
.sidebar{
  width:260px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), transparent 35%), var(--panel);
  border-right:1px solid var(--border);
  padding:18px 14px;
}

.sidebar .logo{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; margin-bottom:14px;
  border-radius:14px;
}

.sidebar a{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px;
  border-radius:14px;
  color:var(--text);
  text-decoration:none;
  opacity:.9;
  margin:6px 0;
  transition:.18s;
}

.sidebar a:hover{
  background:rgba(255,255,255,.06);
  transform: translateX(2px);
}

.sidebar a.active{
  background: rgba(59,130,246,.18);
  border:1px solid rgba(59,130,246,.25);
}

/* Topbar / header interno */
.page-header{
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:18px 20px;
  margin-bottom:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.page-title{
  display:flex; align-items:center; gap:10px;
  font-size:24px; font-weight:700;
}

/* Cards */
.card{
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:18px;
}

.cards-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:16px;
}

.card.span-3{ grid-column: span 3; }
.card.span-4{ grid-column: span 4; }
.card.span-6{ grid-column: span 6; }
.card.span-12{ grid-column: span 12; }

@media (max-width: 1100px){
  .sidebar{ width:240px; }
  .card.span-3,.card.span-4{ grid-column: span 6; }
}
@media (max-width: 720px){
  .wrapper{ flex-direction:column; }
  .sidebar{ width:auto; }
  .card.span-3,.card.span-4,.card.span-6{ grid-column: span 12; }
}

/* Card KPI (numérico) */
.kpi{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
}
.kpi .meta{ display:flex; flex-direction:column; gap:4px; }
.kpi .label{ color:var(--muted); font-size:12px; font-weight:500; }
.kpi .value{ font-size:26px; font-weight:800; letter-spacing:.2px; }
.kpi .icon{
  width:44px; height:44px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(59,130,246,.15);
  border:1px solid rgba(59,130,246,.25);
}

/* Variantes de cor */
.kpi.success .icon{ background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.22); }
.kpi.warning .icon{ background:rgba(245,158,11,.16); border-color:rgba(245,158,11,.25); }
.kpi.danger  .icon{ background:rgba(239,68,68,.16); border-color:rgba(239,68,68,.25); }
.kpi.info    .icon{ background:rgba(6,182,212,.16); border-color:rgba(6,182,212,.25); }

/* Formulários */
input, select, textarea{
  width:100%;
  background: rgba(255,255,255,.04);
  color: var(--text);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 12px;
  outline:none;
  transition:.18s;
}

input:focus, select:focus, textarea:focus{
  border-color: rgba(59,130,246,.6);
  box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}

label{ color:var(--muted); font-size:13px; }

/* Botões */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  text-decoration:none;
  cursor:pointer;
  color:var(--text);
  background: rgba(255,255,255,.05);
  transition:.18s;
}

.btn:hover{ transform: translateY(-1px); background: rgba(255,255,255,.08); }

.btn.primary{
  background: linear-gradient(135deg, var(--primary), var(--primary2));
  border:1px solid rgba(59,130,246,.35);
}
.btn.primary:hover{ filter:brightness(1.08); }

.btn.danger{ background: rgba(239,68,68,.15); border-color: rgba(239,68,68,.25); }
.btn.success{ background: rgba(34,197,94,.15); border-color: rgba(34,197,94,.25); }

/* Tabelas */
table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius: var(--radius);
  border:1px solid var(--border);
  background: rgba(255,255,255,.03);
}

th, td{
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}

th{
  text-align:left;
  color:var(--muted);
  font-weight:600;
  background: rgba(255,255,255,.04);
}

tr:hover td{ background: rgba(255,255,255,.03); }