/* ============================================================
   PYM360 · MODULE — Dashboard
   Capa 3 — específico de la vista dashboard.
   Solo se usan estas clases dentro de #pym-view-dashboard.
   Cambios aquí NO afectan otras vistas.
   ============================================================ */

#pym-view-dashboard{
  padding:var(--pym-space-6) var(--pym-space-8);
  max-width:var(--pym-content-max-w);
  margin:0 auto;
}
@media (max-width:980px){
  #pym-view-dashboard{padding:var(--pym-space-4) var(--pym-space-4)}
}

/* ============================================================
   HELLO HERO — saludo + fecha + acciones
   ============================================================ */
.dash-hello{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:var(--pym-space-6);
  gap:var(--pym-space-4);
  flex-wrap:wrap;
}
.dash-hello-text h2{
  font-size:var(--pym-fs-3xl);
  font-weight:var(--pym-fw-semibold);
  letter-spacing:-.02em;
  color:var(--pym-color-text);
  line-height:1.2;
  margin:0;
}
.dash-hello-text h2 .dash-hello-name{
  background:linear-gradient(135deg,var(--pym-color-accent-2),var(--pym-color-purple));
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  font-weight:var(--pym-fw-bold);
}
.dash-hello-text p{
  font-size:var(--pym-fs-md);
  color:var(--pym-color-text-muted);
  margin-top:var(--pym-space-1);
  font-family:var(--pym-font-sans);
}

/* ============================================================
   ALERT BANNER — para alertas del home
   ============================================================ */
.dash-alerts{
  display:flex;
  flex-direction:column;
  gap:var(--pym-space-2);
  margin-bottom:var(--pym-space-5);
}
.dash-alert-row{
  display:flex;
  align-items:center;
  gap:var(--pym-space-3);
  padding:var(--pym-space-3) var(--pym-space-4);
  background:var(--pym-color-surface);
  border:1px solid var(--pym-color-border);
  border-left:3px solid var(--pym-color-accent-2);
  border-radius:var(--pym-radius-md);
  cursor:pointer;
  transition:transform var(--pym-trans-fast),border-color var(--pym-trans-fast);
}
.dash-alert-row:hover{transform:translateX(3px);border-left-color:var(--pym-color-accent)}
.dash-alert-row--warning{border-left-color:var(--pym-color-warning)}
.dash-alert-row--danger{border-left-color:var(--pym-color-danger)}
.dash-alert-row--info{border-left-color:var(--pym-color-info)}
.dash-alert-icon{font-size:18px;flex-shrink:0}
.dash-alert-body{flex:1;min-width:0}
.dash-alert-title{font-size:var(--pym-fs-md);color:var(--pym-color-text);font-weight:var(--pym-fw-semibold)}
.dash-alert-detail{font-size:var(--pym-fs-sm);color:var(--pym-color-text-muted);margin-top:2px}
.dash-alert-action{font-size:var(--pym-fs-sm);color:var(--pym-color-accent-2);font-weight:var(--pym-fw-medium);flex-shrink:0}

/* ============================================================
   BRIEFING ROW — items del briefing de Jarvis
   ============================================================ */
.dash-brief{display:flex;flex-direction:column}
.dash-brief-row{
  padding:var(--pym-space-3) var(--pym-space-4);
  display:flex;
  align-items:center;
  gap:var(--pym-space-3);
  cursor:pointer;
  border-bottom:1px solid var(--pym-color-border);
  transition:background var(--pym-trans-fast);
}
.dash-brief-row:last-child{border-bottom:none}
.dash-brief-row:hover{background:rgba(255,255,255,.02)}
[data-theme="light"] .dash-brief-row:hover{background:rgba(0,0,0,.02)}

.dash-brief-pri{
  width:3px;
  align-self:stretch;
  border-radius:var(--pym-radius-xs);
  flex-shrink:0;
  background:var(--pym-color-text-subtle);
}
.dash-brief-pri--alta{background:var(--pym-color-danger)}
.dash-brief-pri--media{background:var(--pym-color-warning)}
.dash-brief-pri--baja{background:var(--pym-color-accent-2)}

.dash-brief-icon{font-size:20px;flex-shrink:0;line-height:1}

.dash-brief-body{flex:1;min-width:0}
.dash-brief-title{
  font-size:var(--pym-fs-md);
  color:var(--pym-color-text);
  font-weight:var(--pym-fw-medium);
  margin-bottom:2px;
}
.dash-brief-title b{font-weight:var(--pym-fw-semibold);color:var(--pym-color-text)}
.dash-brief-detail{
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-text-muted);
}
.dash-brief-cta{
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-accent-2);
  font-weight:var(--pym-fw-medium);
  padding:4px 10px;
  border-radius:var(--pym-radius-sm);
  background:var(--pym-color-accent-dim);
  border:1px solid rgba(73,124,251,.16);
  flex-shrink:0;
  transition:all var(--pym-trans-fast);
}
.dash-brief-row:hover .dash-brief-cta{
  background:rgba(73,124,251,.18);
  border-color:rgba(73,124,251,.3);
}

.dash-brief-summary{
  padding:var(--pym-space-2) var(--pym-space-4);
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-text-muted);
  border-bottom:1px solid var(--pym-color-border);
  background:rgba(73,124,251,.03);
}
.dash-brief-summary b{color:var(--pym-color-text);font-weight:var(--pym-fw-semibold)}
.dash-brief-summary .pri-alta{color:var(--pym-color-danger)}
.dash-brief-summary .pri-media{color:var(--pym-color-warning)}

/* ============================================================
   GRID 2-col: briefing wide + activity narrow
   ============================================================ */
.dash-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:var(--pym-space-4);
  margin-bottom:var(--pym-space-6);
}
@media (max-width:980px){.dash-grid{grid-template-columns:1fr}}

/* ============================================================
   ACTIVITY LIST
   ============================================================ */
.dash-act-list{padding:var(--pym-space-1)}
.dash-act-item{
  display:grid;
  grid-template-columns:24px 1fr auto;
  gap:var(--pym-space-2);
  padding:var(--pym-space-2);
  border-radius:var(--pym-radius-sm);
  align-items:flex-start;
}
.dash-act-item:hover{background:rgba(255,255,255,.02)}
[data-theme="light"] .dash-act-item:hover{background:rgba(0,0,0,.02)}

.dash-act-avatar{
  width:22px;height:22px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--pym-color-accent),var(--pym-color-accent-2));
  color:#fff;
  font-size:var(--pym-fs-xs);
  font-weight:var(--pym-fw-semibold);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  margin-top:1px;
  text-transform:uppercase;
}
.dash-act-avatar--gold{background:linear-gradient(135deg,var(--pym-color-gold),var(--pym-color-gold-2))}
.dash-act-avatar--green{background:linear-gradient(135deg,var(--pym-color-success-strong),var(--pym-color-success))}
.dash-act-avatar--purple{background:linear-gradient(135deg,var(--pym-color-purple),var(--pym-color-accent-2))}

.dash-act-body{
  font-size:var(--pym-fs-base);
  color:var(--pym-color-text-dim);
  line-height:1.45;
  min-width:0;
}
.dash-act-body b{color:var(--pym-color-text);font-weight:var(--pym-fw-semibold)}
.dash-act-action{color:var(--pym-color-accent-2)}
.dash-act-detail{
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-text-muted);
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-act-time{
  font-size:var(--pym-fs-xs);
  color:var(--pym-color-text-subtle);
  font-family:var(--pym-font-mono);
  flex-shrink:0;
  margin-top:2px;
}

/* ============================================================
   SECTION SEPARATOR — para tiempo ahorrado / resumen del día
   ============================================================ */
.dash-section{margin-bottom:var(--pym-space-6)}
.dash-section-title{
  font-size:var(--pym-fs-md);
  font-weight:var(--pym-fw-semibold);
  color:var(--pym-color-text);
  margin-bottom:var(--pym-space-3);
  display:flex;
  align-items:center;
  gap:var(--pym-space-2);
  letter-spacing:-.005em;
}

/* ============================================================
   FOOT GRID — 2-col mini-cards (Resumen del día + Tasas hoy)
   Replicado del mockup variant C "Hybrid Refined"
   ============================================================ */
.dash-foot-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--pym-space-4);
  margin-bottom:var(--pym-space-6);
}
@media (max-width:780px){.dash-foot-grid{grid-template-columns:1fr}}
/* v6.5.47: variante de 1 sola col cuando se removió el segundo mini-card */
.dash-foot-grid--single{grid-template-columns:minmax(0, 420px);justify-content:start}

.dash-mini-card{
  background:var(--pym-color-surface);
  border:1px solid var(--pym-color-border);
  border-radius:var(--pym-radius-xl);
  padding:var(--pym-space-3) var(--pym-space-4);
}
.dash-mini-h{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:var(--pym-space-3);
}
.dash-mini-h h4{
  font-size:var(--pym-fs-base);
  font-weight:var(--pym-fw-semibold);
  color:var(--pym-color-text);
  margin:0;
  letter-spacing:-.005em;
}
.dash-mini-h .source{
  font-size:var(--pym-fs-xs);
  color:var(--pym-color-text-muted);
  font-family:var(--pym-font-mono);
}

.dash-mini-row{
  display:flex;
  justify-content:space-between;
  font-size:var(--pym-fs-base);
  padding:6px 0;
  border-bottom:1px dashed var(--pym-color-border);
}
.dash-mini-row:last-child{border-bottom:none}
.dash-mini-row .lbl{color:var(--pym-color-text-muted)}
.dash-mini-row .val{
  color:var(--pym-color-text);
  font-family:var(--pym-font-mono);
  font-weight:var(--pym-fw-medium);
  font-feature-settings:"tnum";
}
.dash-mini-row .val.up{color:var(--pym-color-success)}
.dash-mini-row .val.down{color:var(--pym-color-danger)}
.dash-mini-row--clickable{cursor:pointer;margin:0 calc(var(--pym-space-3) * -1);padding-left:var(--pym-space-3);padding-right:var(--pym-space-3);border-radius:var(--pym-radius-sm);transition:background var(--pym-transition-fast)}
.dash-mini-row--clickable:hover{background:var(--pym-color-surface-2)}
.dash-mini-row--clickable:hover .val{color:var(--pym-color-accent)}

/* Providers tag list (debajo de stats) */
.dash-providers{
  display:flex;
  gap:var(--pym-space-2);
  flex-wrap:wrap;
  margin-top:var(--pym-space-3);
}

/* ============================================================
   LOADING / EMPTY states
   ============================================================ */
.dash-loading{
  color:var(--pym-color-text-muted);
  font-size:var(--pym-fs-base);
  padding:var(--pym-space-4);
  text-align:center;
}
