/* Plantilla Portfolio · ficha (plantilla Portfolio; estilo de Portfolio IA). Prefijo de la app: dm. */

/* Stepper encima de las pestañas (como Portfolio IA): acciones de estado a la derecha. */
#ficha-contenido > .stepper { margin-bottom: 12px; }
.ficha-stepper-acciones { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.ficha-stepper-acciones .form-select { width: auto; min-width: 150px; }
/* Tablas de la ficha a todo el ancho de su tarjeta. */
.ficha-pestana .card-body-flush { padding: 0; }
.ficha-pestana .card-body-flush > .table-wrap { margin: 0; border: 0; border-radius: 0; }
.ficha-pestana > .section-card + .section-card { margin-top: 12px; }
.ficha-pestana > .stat-grid { margin-bottom: 12px; }
#ficha-contenido > .detail-historial { margin-top: 12px; }


/* ── Costes (réplica de la pestaña Costes de Portfolio IA: apps/portfolio-ia/css/views/detail.css
   y evaluacion.css, mismas clases). Dispersión estimado vs real + «Fuera del Business Case». ── */
.coste-bc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; margin-bottom: 16px; }
.coste-bc-grid > .card { min-width: 0; margin-bottom: 0; }
.coste-bc-scatter-wrap { display: flex; flex-direction: column; gap: 14px; }
.coste-bc-scatter-wrap .coste-bc-scatter { height: 240px; min-width: 0; }
.coste-bc-stats { display: flex; flex-direction: row; gap: 10px; padding: 12px 0 0; border-top: 1px solid var(--border); }
.coste-bc-stat { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; flex: 1; min-width: 0; gap: 4px; }
.coste-bc-stat-label { font-size: 12px; color: var(--text2); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; line-height: 1.3; min-height: 2.6em; }
.coste-bc-stat-value { font-family: var(--font-display); font-size: clamp(15px, 1.6vw, 22px); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; font-weight: 700; line-height: 1.1; color: var(--text); }
.coste-bc-stat-value-inline { font-size: clamp(15px, 1.5vw, 20px); }
.coste-bc-stat[data-kind="bc"] .coste-bc-stat-value { color: var(--text2); }
.coste-bc-stat[data-kind="real"] .coste-bc-stat-value { color: var(--capex); }
.coste-bc-stat [data-tone="over"] { color: var(--red); }
.coste-bc-stat [data-tone="under"] { color: var(--green); }
.coste-fuera-card .ev-costes-mes { height: 200px; min-width: 0; }
.ev-fuera-lista { margin-top: 12px; border-top: 1px solid var(--border); }
.ev-fuera-fila .info-label { display: inline-flex; align-items: center; gap: 8px; }
.ev-fuera-valor { display: inline-flex; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.ev-fuera-valor .text-muted { font-size: 12px; min-width: 88px; text-align: right; }
.ev-fuera-total .info-label, .ev-fuera-total b { font-weight: 700; }
.ev-fuera-fila .info-label[data-tono] { --ev-tono: var(--view-12); color: var(--ev-tono); font-weight: 600; }
.ev-fuera-fila .info-label[data-tono="licencias"] { --ev-tono: var(--view-7); }
.ev-fuera-fila .info-label[data-tono="consumo"] { --ev-tono: var(--view-3); }
.ev-fuera-fila .info-label[data-tono="mantenimiento"] { --ev-tono: var(--view-9); }
.ev-fuera-punto { width: 10px; height: 10px; border-radius: 3px; flex: none; background: var(--ev-tono, var(--view-12)); }
.evm-nota { margin-top: 12px; padding: 8px 12px; border-radius: var(--radius-sm); background: var(--warning-soft); color: var(--text); font-size: 12px; }
@media (max-width: 880px) { .coste-bc-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .coste-bc-stats { flex-wrap: wrap; } .coste-bc-stat { flex-basis: 100%; } }
