:root{
  --pylo-green:#16a34a;
  --pylo-red:#dc2626;
  --pylo-blue:#2563eb;
  --pylo-gray:#f3f4f6;
  --pylo-text:#111827;
  --pylo-muted:#6b7280;
  --pylo-card-bg:#ffffff;
  --pylo-radius:12px;
  --pylo-gap:16px;
}

.pylo-dashboard{
  display:grid;
  grid-template-columns: 280px 1fr;
  gap: var(--pylo-gap);
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--pylo-text);
}

.dashboard-main{
  display:flex;
  flex-direction:column;
  gap: calc(var(--pylo-gap) * 1.5);
}

.dashboard-cards{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pylo-gap);
}

.dashboard-trends{
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--pylo-gap);
}

.dashboard-rankings{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--pylo-gap);
}

.dashboard-footer{
  margin: 8px 0 24px;
  text-align:right;
}
.btn-reports{
  background: var(--pylo-blue);
  color:#fff; padding:10px 14px; border-radius:10px;
  text-decoration:none; display:inline-block;
}
.btn-reports:hover{ filter: brightness(1.06); }

@media (max-width: 1100px){
  .pylo-dashboard{ grid-template-columns: 1fr; }
  .dashboard-rankings{ grid-template-columns: 1fr; }
  .dashboard-cards{ grid-template-columns: repeat(2, 1fr); }
}

/* estado vazio */
.empty{ padding:8px; color:#6b7280; font:500 13px var(--pylo-font); }

/* skeleton */
.skel{ position:relative; background:#f3f4f6; border-radius:8px; overflow:hidden; }
.skel::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  transform:translateX(-100%); animation:shimmer 1.2s infinite;
}
@keyframes shimmer{ 100%{ transform:translateX(100%); } }

