/* JDServer-Webs v6.3 — modules/air/air.css
 * Página de calidad del aire (AQI, PM2.5, PM10) con estética Aurora.
 */

#air h2.page-title{
  margin-bottom: 16px;
}

/* ===== Bloque actual ===== */

#air-now .air-now-grid{
  display: grid;
  gap: 14px;
}

@media (min-width: 880px){
  #air-now .air-now-grid{
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr);
    align-items: stretch;
  }
}

.air-card{
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-1);
  padding: 14px 16px;
}

.air-card h3,
.air-card h4{
  margin: 0 0 8px 0;
  font-weight: 600;
}

.air-main-kpi{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.air-main-kpi-header{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.air-aqi-value{
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
}

.air-aqi-category{
  font-weight: 600;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: .85rem;
  align-self: flex-start;
}

.air-aqi-desc{
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
}

.air-source{
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
}

/* Colores de categorías (se asignan via clase) */

.air-cat-good{    background: rgba(34,197,94,.12);  color: #16a34a; }
.air-cat-moderate{background: rgba(234,179,8,.12);  color: #ca8a04; }
.air-cat-unhealthy{background: rgba(248,113,113,.12); color:#dc2626;}
.air-cat-verybad{ background: rgba(148,27,27,.15);  color:#b91c1c; }

/* KPIs secundarios */

.air-kpis{
  display:grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap:10px;
}

@media (min-width: 640px){
  .air-kpis{ grid-template-columns: repeat(3,minmax(0,1fr)); }
}

.air-kpi{
  border-radius: 14px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--card) 80%, var(--brand-soft, #e0f2fe) 20%);
  padding: 10px 12px;
}

.air-kpi-label{
  font-size: .8rem;
  color: var(--muted);
}

.air-kpi-value{
  font-size: 1.1rem;
  font-weight: 600;
}

/* ===== Tendencias ===== */

#air-trends .air-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom: 10px;
}

#air-trends .air-head h3{
  margin:0;
}

.air-range{
  display:flex;
  gap:6px;
}

.air-range button{
  font-size:.8rem;
}

.air-range .is-active{
  background: var(--brand);
  color: #fff;
}

/* Grid de gráficas */

.air-charts{
  display:grid;
  gap: 12px;
}

@media (min-width: 880px){
  .air-charts{
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

.air-chart-card{
  border-radius: 16px;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: var(--shadow-1);
  padding: 10px 12px 12px;
}

.air-chart-card h4{
  margin:0 0 6px 0;
  font-size:.95rem;
}

.air-chart-meta{
  margin:0 0 6px 0;
  font-size:.78rem;
  color:var(--muted);
}

.air-chart-canvas{
  width:100%;
  height:160px;
  display:block;
}

/* ===== Resumen ===== */

#air-summary .air-summary-inner{
  border-radius: 16px;
  border: 1px dashed var(--border);
  padding: 12px 14px;
  background: color-mix(in srgb, var(--card) 88%, var(--brand-soft, #e0f2fe) 12%);
}

#air-summary h3{
  margin:0 0 6px 0;
  font-size:1rem;
}

#air-summary p{
  margin:4px 0;
  font-size:.85rem;
  color:var(--muted);
}

#air-summary ul{
  margin:6px 0 0 1.1rem;
  padding:0;
  font-size:.85rem;
  color:var(--muted);
}

/* Estado vacío / error */

.air-empty,
.air-error{
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(148,163,184,.08);
  font-size:.85rem;
  color:var(--muted);
}
