/* ── Dashboard ── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-4);
  margin-bottom: var(--sp-6);
}
.kpi-card {
  background: var(--neutral-900); border: var(--border-subtle);
  border-radius: var(--radius-lg); padding: var(--sp-4) var(--sp-5);
  display: flex; flex-direction: column; gap: var(--sp-3);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.kpi-card:hover { border-color: var(--neutral-600); box-shadow: var(--shadow-sm); }
.kpi-top { display:flex; align-items:center; justify-content:space-between; }
.kpi-label { font-size: var(--text-xs); font-weight:600; color: var(--neutral-500); text-transform:uppercase; letter-spacing:.08em; }
.kpi-icon {
  width:32px; height:32px; border-radius: var(--radius-md);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.kpi-value { font-family: var(--font-display); font-size: var(--text-2xl); font-weight:700; color: var(--neutral-50); line-height:1; }
.kpi-sub   { font-size: var(--text-xs); color: var(--neutral-500); }

.kpi-teal  .kpi-icon { background: rgba(45,212,191,.12); color: var(--brand-accent); }
.kpi-green .kpi-icon { background: rgba(34,197,94,.12);  color: var(--success); }
.kpi-blue  .kpi-icon { background: rgba(56,189,248,.12); color: var(--info); }
.kpi-gold  .kpi-icon { background: rgba(212,168,83,.12); color: var(--brand-gold); }

.dash-main-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: var(--sp-4);
  margin-bottom: var(--sp-4);
}
.dash-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--sp-4);
}

/* Agenda */
.agenda-list { display:flex; flex-direction:column; gap: var(--sp-2); }
.turno-row {
  display:flex; align-items:center; gap: var(--sp-3);
  padding: var(--sp-3); border-radius: var(--radius-md);
  background: var(--neutral-850); border: var(--border-subtle);
  transition: border-color var(--t-fast);
}
.turno-row:hover { border-color: var(--neutral-600); }
.turno-hora { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--brand-accent); font-weight:600; min-width:42px; }
.turno-color { width:3px; height:36px; border-radius:2px; flex-shrink:0; }
.turno-datos { flex:1; min-width:0; }
.turno-paciente { font-size: var(--text-sm); font-weight:500; color: var(--neutral-100); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.turno-tipo     { font-size: var(--text-xs); color: var(--neutral-500); }
.turno-estado {
  display:inline-block; padding:2px 8px; border-radius: var(--radius-full);
  font-size:10px; font-weight:600; letter-spacing:.04em; white-space:nowrap;
}
.estado-confirmado { background:rgba(34,197,94,.12);  color: var(--success); }
.estado-pendiente  { background:rgba(245,158,11,.12); color: var(--warning); }
.estado-en_curso   { background:rgba(56,189,248,.12); color: var(--info); }
.estado-finalizado { background:rgba(90,120,115,.15); color: var(--neutral-400); }

/* Actividad */
.act-list { display:flex; flex-direction:column; }
.act-row {
  display:flex; gap: var(--sp-3); padding: var(--sp-3) 0;
  border-bottom: var(--border-subtle); align-items:flex-start;
}
.act-row:last-child { border-bottom:none; }
.act-dot { width:8px; height:8px; border-radius:50%; margin-top:5px; flex-shrink:0; }
.act-texto  { font-size: var(--text-sm); color: var(--neutral-200); flex:1; line-height:1.4; }
.act-sub    { font-size: var(--text-xs); color: var(--neutral-500); margin-top:2px; }
.act-tiempo { font-size: var(--text-xs); color: var(--neutral-600); white-space:nowrap; }

/* Stock */
.stock-list { display:flex; flex-direction:column; gap: var(--sp-2); }
.stock-row {
  display:flex; justify-content:space-between; align-items:center;
  padding: var(--sp-3); background: var(--neutral-850);
  border-radius: var(--radius-md); border-left:3px solid var(--warning);
}
.stock-nombre { font-size: var(--text-sm); color: var(--neutral-200); }
.stock-actual { font-size: var(--text-sm); font-weight:600; color: var(--warning); }
.stock-min    { font-size:10px; color: var(--neutral-600); }

/* Inventario */
.inv-list { display:flex; flex-direction:column; gap: var(--sp-4); }
.inv-row  { display:flex; flex-direction:column; gap: var(--sp-2); }
.inv-top  { display:flex; justify-content:space-between; }
.inv-label { font-size: var(--text-sm); color: var(--neutral-300); }
.inv-count { font-size: var(--text-sm); font-weight:600; }
.inv-bar   { height:6px; background: var(--neutral-800); border-radius:3px; overflow:hidden; }
.inv-fill  { height:100%; border-radius:3px; transition: width .6s ease; }

/* Plan */
.plan-card { display:flex; flex-direction:column; gap: var(--sp-3); }
.plan-feature { display:flex; align-items:center; gap: var(--sp-2); font-size: var(--text-sm); color: var(--neutral-300); }
.plan-feature-check { color: var(--success); font-size:12px; }
.plan-upgrade {
  margin-top: var(--sp-2); padding: var(--sp-2) var(--sp-4);
  background: rgba(45,212,191,.1); border:1px solid rgba(45,212,191,.3);
  border-radius: var(--radius-md); color: var(--brand-accent);
  font-size: var(--text-xs); font-weight:600; cursor:pointer;
  font-family: var(--font-body); letter-spacing:.04em;
}
