/* FISSH Invest · pantalla «BP nuevo» (ficha 0009, fase 3.5-3.6), dirección C «Sala de datos».
   Solo componentes de esta pantalla; los tokens --sd-* y la base .sd-* están en sala-datos.css.
   Regla: ningún HEX ni rgba() aquí (todo color va por token). Se carga DESPUÉS de estilos.css. */

/* ===== 1. Pestaña y marco ===== */
.pestana .sd-insignia{margin-left:2px;padding:0 6px;font-size:10px;line-height:1.5}
.sd-pantalla{padding-bottom:var(--sd-e6)}
.sd-pantalla-cargando,.sd-esqueleto-caja{display:flex;flex-direction:column;gap:var(--sd-e3)}
.sd-esqueleto-caja{width:100%}
.sd-estado-mal{color:var(--sd-error-texto)}
.sd-estado-aviso{color:var(--sd-aviso-texto)}
.sd-barra-estado [data-hueco]:empty{display:none}
.sd-barra .sd-segmentado button{font-size:var(--sd-t-m)}
.sd-avisos{display:flex;flex-direction:column;gap:var(--sd-e2)}
.sd-avisos:empty{display:none}
.sd-aviso ul,.sd-lista-conflictos{margin:var(--sd-e2) 0 0;padding-left:var(--sd-e5)}
.sd-aviso p+p{margin-top:var(--sd-e1)}

/* ===== 2. Campos sueltos y ayuda plegable ===== */
.sd-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:var(--sd-e3)}
.sd-campos:empty{display:none}
.sd-campo .sd-input{max-width:100%}
.sd-ayuda-pleg{display:inline-block;vertical-align:middle;margin-left:var(--sd-e1)}
.sd-ayuda-pleg>summary{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--sd-borde-control);border-radius:50%;color:var(--sd-texto-2);font-size:var(--sd-t-xs);font-weight:800;cursor:pointer;list-style:none}
.sd-ayuda-pleg>summary::-webkit-details-marker{display:none}
.sd-ayuda-pleg>summary:hover{background:var(--sd-acento-suave);color:var(--sd-acento-fuerte)}
.sd-ayuda-pleg[open]>summary{background:var(--sd-acento-suave);border-color:var(--sd-acento);color:var(--sd-acento-fuerte)}
.sd-ayuda-pleg .sd-ayuda{display:block;max-width:26rem;margin-top:var(--sd-e1);font-weight:500;white-space:normal}

/* ===== 3. Tablas: filas, atajos y marcas ===== */
.sd-fila-titulo{display:inline}
.sd-tabla th[scope="row"]{white-space:normal;min-width:11rem;max-width:16rem}
.sd-tabla th[scope="row"] .sd-insignia{margin-left:var(--sd-e1)}
.sd-tabla .sd-input{min-width:4.6rem}
.sd-mensual{min-width:64rem}
.sd-mensual td,.sd-lineas td{padding:4px 4px}
.sd-lineas{min-width:24rem}
.sd-tabla td.sd-atajos{display:table-cell;text-align:left;white-space:normal;min-width:11rem}
.sd-atajos .sd-btn{margin:2px 4px 2px 0}
.sd-tabla tfoot th,.sd-tabla tfoot td{border-top:1px solid var(--sd-borde);border-bottom:0;background:var(--sd-tarjeta-alt);font-size:var(--sd-t-s)}
.sd-tabla tfoot td{text-align:center}
.sd-bloque{display:flex;flex-direction:column;gap:var(--sd-e2)}

/* ===== 4. Panel de mercado ===== */
.sd-panel-mercado{min-width:56rem}
.sd-panel-mercado td{padding:5px 8px;color:var(--sd-texto)}
.sd-panel-mercado td .sd-marca{margin-left:4px}
.sd-marca{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--sd-acento);border-radius:var(--sd-radio-s);background:var(--sd-acento-suave);color:var(--sd-acento-fuerte);font-size:var(--sd-t-xs);font-weight:800;line-height:1;vertical-align:middle}
.sd-marca--1{border-color:var(--sd-coral);background:var(--sd-coral-suave);color:var(--sd-coral-texto)}
.sd-marca--2{border-color:var(--sd-aviso-borde);background:var(--sd-aviso-fondo);color:var(--sd-aviso-texto)}
.sd-marca--3{border-color:var(--sd-borde-control);background:var(--sd-segmento);color:var(--sd-texto-2)}
.sd-fuentes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sd-e1);font-size:var(--sd-t-s);color:var(--sd-texto-2)}
.sd-fuentes li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sd-e2)}

/* ===== 5. Panel de supuestos ===== */
.sd-formulario{display:flex;flex-direction:column;gap:var(--sd-e3);min-width:0}
.sd-formulario>.sd-chips{position:static}
.sd-acordeon{scroll-margin-top:calc(var(--sd-topbar) + var(--sd-alto-barra) + var(--sd-fijo-mercado,0px) + var(--sd-e4))}
.sd-acordeon-titulo{flex:1 1 10rem;min-width:0}
.sd-acordeon>summary .sd-insignia{margin-left:0}
.sd-acordeon-cuerpo .sd-scroll{max-width:100%}
.sd-acordeon .sd-matriz{min-width:32rem}
.sd-acordeon .sd-tabla th[scope="row"]{min-width:9rem}

/* ===== 6. Gestor de centros ===== */
.sd-centros{display:flex;flex-direction:column;gap:var(--sd-e3)}
.sd-centros-lista{display:flex;flex-direction:column;gap:var(--sd-e2)}
.sd-centro{margin:0;min-width:0;padding:var(--sd-e3);border:1px solid var(--sd-borde);border-radius:var(--sd-radio-m);background:var(--sd-tarjeta-alt);display:flex;flex-direction:column;gap:var(--sd-e3)}
.sd-centro-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:var(--sd-e2)}
.sd-centro-campos .sd-campo:first-child{grid-column:1/-1}
.sd-centro-acciones{display:flex;flex-wrap:wrap;gap:var(--sd-e2);align-items:center}
.sd-centro-botones{display:flex;flex-wrap:wrap;gap:var(--sd-e2)}
.sd-confirmar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sd-e2);padding:var(--sd-e2) var(--sd-e3);border:1px solid var(--sd-error-borde);border-radius:var(--sd-radio-s);background:var(--sd-error-fondo);color:var(--sd-error-texto);font-weight:600}
.sd-centro-nuevo{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sd-e2)}
.sd-centro-nuevo .sd-etiqueta{flex-basis:100%}
.sd-centro-nuevo .sd-input{flex:1 1 10rem;width:auto;font-weight:500}
.sd-centro .sd-input[data-ruta$=".nombre"]{font-weight:700}

/* ===== 7. Adaptación ===== */
@media (max-width:820px){
 .sd-campos{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}
 .sd-input{min-height:var(--sd-alto-control)}
 .sd-tabla th[scope="row"]{min-width:8rem}
 .sd-centro-botones .sd-btn,.sd-confirmar .sd-btn{flex:1}
 .sd-mensual,.sd-panel-mercado{min-width:48rem}
}
@media (prefers-reduced-motion:reduce){
 .sd-esqueleto{animation:none}
}

/* ===== 8. Resultado en vivo, «Qué falta», historial (3.7-3.8) ===== */
[data-ruta]{scroll-margin-top:calc(var(--sd-topbar) + var(--sd-alto-barra) + var(--sd-fijo-mercado,0px) + var(--sd-e6));scroll-margin-left:12rem}
.sd-calculo{font-weight:700;color:var(--sd-texto-2)}
.sd-calculo:empty{display:none}
#bpn-recuento{color:var(--sd-texto-3)}
.sd-resultado{min-width:0}
.sd-resultado td{padding:5px 10px}
.sd-resultado th[scope="row"]{min-width:12rem;max-width:18rem}
.sd-resultado td.sd-falta{cursor:help}
.sd-atenuado{opacity:.55;transition:opacity .15s}
.sd-faltan-lista{margin:0;padding:var(--sd-e2) var(--sd-e4) var(--sd-e4);list-style:none;display:flex;flex-direction:column;gap:var(--sd-e2);max-height:18rem;overflow-y:auto}
.sd-faltan-lista li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--sd-e2);padding:var(--sd-e1) 0;border-bottom:1px solid var(--sd-borde)}
.sd-faltan-lista li:last-child{border-bottom:0}
.sd-faltan-lista li:target{background:var(--sd-aviso-fondo)}
.sd-historial{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sd-e3)}
.sd-historial-item{padding-bottom:var(--sd-e3);border-bottom:1px solid var(--sd-borde)}
.sd-historial-item:last-child{border-bottom:0}
.sd-historial-item ul{margin:var(--sd-e1) 0 0;padding-left:var(--sd-e5);font-size:var(--sd-t-s)}

/* ===== 9. Cabeceras de grupo de las tablas: a la izquierda y pegadas, visibles aunque la tabla sea más ancha que su caja ===== */
.sd-pantalla .sd-tabla .sd-grupo th{text-align:left;position:sticky;left:0;z-index:1}

/* ===== 10. Móvil (390 px): una columna, barra compacta, primera columna pegada ===== */
@media (max-width:820px){
 :root{--sd-alto-barra:88px}
 /* Efecto fuera de .sd-*: sin esto la fila de pestañas de la oportunidad (con «BP nuevo» y su insignia) desborda la página. */
 .pestanas{overflow-x:auto;max-width:100%}
 .sd-pantalla #bpn-excel-barra{display:none} /* en móvil la barra va justa: queda la tarjeta «Excel para el cliente» */
 .pestanas .pestana{white-space:nowrap;flex:none}
 .sd-pantalla .sd-barra{gap:var(--sd-e1) var(--sd-e2);padding:var(--sd-e1) var(--sd-e2)}
 .sd-pantalla .sd-barra .sd-segmentado{order:1;flex:1 1 100%}
 .sd-pantalla .sd-barra .sd-segmentado button{flex:1;min-height:32px}
 .sd-pantalla .sd-barra-estado{order:2;flex:1 1 0;min-width:0;flex-basis:0;overflow:hidden;font-size:var(--sd-t-xs);gap:var(--sd-e1)}
 .sd-pantalla .sd-barra-estado>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.15;min-width:0}
 .sd-pantalla .sd-barra-acciones{order:3;width:auto;margin-left:auto;flex-wrap:nowrap;gap:var(--sd-e1)}
 .sd-pantalla .sd-barra-acciones .sd-btn{flex:none;min-height:34px;padding:0 var(--sd-e3);font-size:var(--sd-t-s)}
 .sd-resultado th[scope="row"],.sd-tabla th[scope="row"]{min-width:6.5rem;max-width:9rem}
 .sd-faltan-lista{max-height:14rem}
 .sd-centro-campos{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sd-chip{min-height:40px}
 .sd-ayuda-pleg>summary{width:28px;height:28px}
}

/* ===== 11. Excel para el cliente (fase 4.5) ===== */
.sd-excel-hojas{margin:0;padding:0;border:0;min-width:0}
.sd-excel-hojas legend{padding:0;margin-bottom:var(--sd-e1)}
.sd-excel-opciones{display:flex;flex-wrap:wrap;gap:var(--sd-e1) var(--sd-e5)}
.sd-excel-opcion{display:inline-flex;align-items:center;gap:var(--sd-e2);min-height:var(--sd-alto-control);color:var(--sd-texto)}
.sd-excel-opcion input{width:18px;height:18px;margin:0;accent-color:var(--sd-acento)}
.sd-excel-opcion label{font-weight:600;cursor:pointer}
.sd-excel-opcion input:disabled+label{color:var(--sd-texto-3);cursor:not-allowed}
.sd-excel .sd-campo .sd-input{max-width:28rem;font-weight:500}
.sd-excel-acciones{display:flex;flex-wrap:wrap;gap:var(--sd-e2)}
.sd-excel-aviso{margin:0;min-height:1.45em;font-weight:600;color:var(--sd-texto-2);overflow-wrap:anywhere}
@media (max-width:820px){
 .sd-excel-acciones .sd-btn{flex:1 1 100%}
 .sd-excel-opcion{flex-basis:100%}
}

/* ===== 12. «Sin rellenar» (aviso suave, no error) e inflación con ajuste plegado ===== */
.sd-calculo--aviso{color:var(--sd-aviso-texto)}
.sd-faltan{border-color:var(--sd-aviso-borde)}
.sd-faltan-nota{padding:var(--sd-e2) var(--sd-e4) 0}
.sd-grupo-bloque{gap:var(--sd-e2)}
.sd-grupo-titulo{font-size:var(--sd-t-l);color:var(--sd-texto-2)}
.sd-grupo-ayuda{max-width:44rem}
.sd-acordeon--grupo{background:var(--sd-tarjeta-alt);box-shadow:none}
.sd-acordeon--grupo>summary{min-height:44px}

/* ===== 13. Diálogo de confirmación del Excel (<dialog>; respaldo en línea con [data-respaldo]) ===== */
.sd-dialogo{padding:0;border:1px solid var(--sd-borde-control);border-radius:var(--sd-radio-l);background:var(--sd-tarjeta);color:var(--sd-texto);box-shadow:var(--sd-sombra-2);width:min(36rem,calc(100vw - 2*var(--sd-e4)));max-height:calc(100vh - 2*var(--sd-e4));overflow:auto}
.sd-dialogo::backdrop{background:var(--sd-velo)}
.sd-dialogo:not([open]){display:none}
.sd-dialogo[data-respaldo]{position:fixed;inset:0;margin:auto;height:fit-content;z-index:60;box-shadow:0 0 0 100vmax var(--sd-velo)}
.sd-dialogo-caja{display:flex;flex-direction:column;gap:var(--sd-e3);padding:var(--sd-e5)}
.sd-dialogo-lista{margin:0;padding-left:var(--sd-e5);max-height:40vh;overflow:auto;color:var(--sd-texto-2)}
.sd-dialogo-acciones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sd-e2)}
@media (max-width:820px){.sd-dialogo-acciones .sd-btn{flex:1 1 100%}}

/* ===== 14. Panel de mercado fijo (sticky bajo la barra de acciones) y plegable en cualquier momento ===== */
/* Alturas: cabecera fija de una línea + cuerpo acotado. `--sd-fijo-mercado` (según `data-mercado` de #bpn) es lo que ocupa fijo el panel:
   lo suman el panel lateral y los scroll-margin de "Ir a la casilla", para que nada quede tapado. */
:root{--sd-alto-mercado-cab:44px;--sd-alto-mercado-cuerpo:min(40vh,22rem)}
.sd-pantalla[data-mercado="plegado"]{--sd-fijo-mercado:calc(var(--sd-alto-mercado-cab) + var(--sd-e2) + var(--sd-e1))}
.sd-pantalla[data-mercado="abierto"]{--sd-fijo-mercado:calc(var(--sd-alto-mercado-cab) + var(--sd-alto-mercado-cuerpo) + var(--sd-e2) + var(--sd-e1))}
.sd-mercado--fijo{position:sticky;top:calc(var(--sd-topbar) + var(--sd-alto-barra) + var(--sd-e2));z-index:15;box-shadow:var(--sd-sombra-2)}
.sd-mercado--fijo::before{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--sd-e2) - 1px);height:calc(var(--sd-e2) + 1px);background:var(--sd-fondo)} /* tapa el hueco entre la barra y el panel */
.sd-mercado-cab{flex-wrap:nowrap;height:var(--sd-alto-mercado-cab);padding:0 var(--sd-e4);gap:var(--sd-e3);border-bottom:0}
.sd-mercado:not(.sd-mercado--plegado) .sd-mercado-cab{border-bottom:1px solid var(--sd-borde)}
.sd-mercado-cab .sd-tarjeta-titulo{flex:none}
.sd-mercado-resumen{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sd-texto-3);font-size:var(--sd-t-s)}
.sd-mercado-cab .sd-btn{flex:none}
.sd-mercado-cuerpo{max-height:var(--sd-alto-mercado-cuerpo);gap:var(--sd-e2);padding:var(--sd-e2) var(--sd-e4) var(--sd-e3);overflow:hidden}
.sd-mercado-tabla{flex:1 1 auto;min-height:0;overscroll-behavior:contain}
.sd-mercado-pie{flex:none;max-height:7rem;overflow:auto}
.sd-mercado-pie>summary{cursor:pointer;color:var(--sd-texto-3);font-size:var(--sd-t-s);font-weight:600}
.sd-mercado-pie[open]>summary{margin-bottom:var(--sd-e1)}
.sd-mercado-pie .sd-fuentes{flex-direction:row;flex-wrap:wrap;gap:var(--sd-e1) var(--sd-e4)}
/* Portátil de poco alto (1366x768): cuerpo más bajo para que el formulario respire. */
@media (max-height:820px){:root{--sd-alto-mercado-cuerpo:min(30vh,16rem)}}
/* Móvil (390 px): misma cabecera fija (una línea) y cuerpo más bajo; el estado inicial plegado lo decide el estado. */
@media (max-width:820px){
 :root{--sd-alto-mercado-cuerpo:35vh}
 .sd-mercado-cab{padding:0 var(--sd-e3);gap:var(--sd-e2)}
 .sd-mercado-cuerpo{padding:var(--sd-e2) var(--sd-e3)}
}

/* ===== 14. Importar el competitive set de STR (diálogo; usa .sd-dialogo) ===== */
.sd-campo{display:flex;flex-direction:column;gap:var(--sd-e1)}
.sd-compset-previa{display:flex;flex-direction:column;gap:var(--sd-e2)}
.sd-compset-previa ul{margin:0;padding-left:var(--sd-e5)}
.sd-compset-tabla{max-height:min(16rem,35vh)}
.sd-propuesta{margin:0 0 var(--sd-e2)}.sd-propuesta .sd-btn{margin-left:var(--sd-e2)}

/* ===== 15. Business plan por pasos (rediseño 2026-10-21) ===== */
/* Una sola barra fija; debajo, índice de pasos | paso activo | resultado. Un solo scroll (el de la página).
   La barra puede ocupar dos líneas (variante, mercado, estado y botones): el índice y los títulos se colocan por debajo. */
:root{--sd-alto-barra-pasos:112px}
@media (min-width:1600px){:root{--sd-alto-barra-pasos:64px}}
.sd-pantalla--pasos .sd-barra{gap:var(--sd-e2) var(--sd-e3)}
.sd-pasos-rejilla{display:grid;grid-template-columns:12.5rem minmax(0,1fr) minmax(0,22rem);gap:var(--sd-e4);align-items:start;margin-top:var(--sd-e4)}
.sd-indice{position:sticky;top:calc(var(--sd-topbar) + var(--sd-alto-barra-pasos) + var(--sd-e3));display:flex;flex-direction:column;gap:2px}
.sd-indice-et{margin:0 0 var(--sd-e1);padding:0 var(--sd-e2);font-size:var(--sd-t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sd-texto-3)}
.sd-paso{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--sd-e2);align-items:start;width:100%;padding:var(--sd-e2);border:1px solid transparent;border-radius:var(--sd-radio-s);background:transparent;text-align:left;cursor:pointer;color:var(--sd-texto)}
.sd-paso:hover{background:var(--sd-tarjeta-alt)}
.sd-paso[aria-current="step"]{background:var(--sd-tarjeta);border-color:var(--sd-borde-control)}
.sd-paso-num{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--sd-borde-control);background:var(--sd-tarjeta);color:var(--sd-texto-2);font-size:var(--sd-t-s);font-weight:800}
.sd-paso--hecho .sd-paso-num{background:var(--sd-acento);border-color:var(--sd-acento);color:var(--sd-sobre-acento)}
.sd-paso-txt{display:flex;flex-direction:column;min-width:0}
.sd-paso-nombre{font-weight:700;font-size:var(--sd-t-m)}
.sd-paso-estado{font-size:var(--sd-t-s);color:var(--sd-texto-3)}
.sd-paso--pendiente .sd-paso-estado{color:var(--sd-aviso-texto)}
.sd-paso--sucio .sd-paso-estado{color:var(--sd-coral-texto);font-weight:700}
.sd-paso-activo{display:flex;flex-direction:column;gap:var(--sd-e4);min-width:0}
.sd-paso-cab{display:flex;flex-direction:column;gap:2px}
.sd-paso-cab .sd-indice-et{padding:0}
.sd-paso-titulo{margin:0;font-size:var(--sd-t-h2);font-weight:800;scroll-margin-top:calc(var(--sd-topbar) + var(--sd-alto-barra-pasos) + var(--sd-e4))}
.sd-pantalla--pasos [data-ruta]{scroll-margin-top:calc(var(--sd-topbar) + var(--sd-alto-barra-pasos) + var(--sd-e6))}
.sd-paso-titulo:focus{outline:none}
.sd-paso-pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sd-e3);padding:var(--sd-e3) var(--sd-e5);background:var(--sd-tarjeta-alt)}
.sd-paso-pie-txt{margin:0;flex:1 1 16rem;color:var(--sd-texto-3);font-size:var(--sd-t-s);font-weight:600}
.sd-paso-pie-acciones{display:flex;flex-wrap:wrap;gap:var(--sd-e2)}
.sd-seccion .sd-tarjeta-cab h3{font-size:var(--sd-t-h3)}
.sd-paso-activo .sd-mensual{min-width:0}
/* Columna del resultado */
.sd-columna-resumen{gap:var(--sd-e3)}
.sd-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sd-e2)}
.sd-kpis--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sd-kpi{display:flex;flex-direction:column;gap:2px;min-width:0;padding:var(--sd-e2) var(--sd-e3);border:1px solid var(--sd-borde);border-radius:var(--sd-radio-m);background:var(--sd-tarjeta-alt)}
.sd-kpi-et{font-size:var(--sd-t-s);color:var(--sd-texto-3)}
.sd-kpi-v{font-size:20px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.sd-kpi-d{font-size:var(--sd-t-s);color:var(--sd-texto-2)}
.sd-resumen5{min-width:0;width:100%}
.sd-resumen5 th,.sd-resumen5 td{padding:5px 6px;font-size:var(--sd-t-s)}
.sd-resumen5 th[scope="row"]{min-width:0}
.sd-resumen5 .sd-total td,.sd-resumen5 .sd-total th{font-weight:800}
.sd-historial-caja>summary{list-style:none;display:inline-flex;cursor:pointer}
.sd-historial-caja>summary::-webkit-details-marker{display:none}
.sd-historial-caja[open]>summary{margin-bottom:var(--sd-e2)}
.sd-faltan-lista{max-height:none;overflow:visible}
/* Barra: resumen del mercado que abre el panel lateral */
.sd-mercado-chip{display:inline-flex;align-items:center;gap:var(--sd-e2);max-width:min(30rem,100%);min-height:var(--sd-alto-control);padding:0 var(--sd-e3);border:1px solid var(--sd-borde-control);border-radius:var(--sd-radio-pill);background:var(--sd-tarjeta-alt);color:var(--sd-texto-2);font-size:var(--sd-t-s);font-weight:700;cursor:pointer}
.sd-mercado-chip:hover{background:var(--sd-acento-suave);color:var(--sd-acento-fuerte)}
.sd-mercado-chip-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Fuentes por color (punto + nombre para lectores de pantalla) */
.sd-punto{display:inline-block;flex:none;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--sd-borde-control);vertical-align:1px}
.sd-fuente--cs{background:var(--sd-coral)}
.sd-fuente--sub{background:var(--sd-acento)}
.sd-fuente--mer{background:var(--sd-aviso-borde)}
.sd-fuente--ine,.sd-fuente--otra{background:var(--sd-borde-control)}
.sd-leyenda{display:flex;flex-wrap:wrap;gap:var(--sd-e1) var(--sd-e4);margin:0;padding:0;list-style:none;font-size:var(--sd-t-s);color:var(--sd-texto-2)}
.sd-leyenda li{display:inline-flex;align-items:center}
.sd-muestra-ventana{display:inline-block;width:14px;height:10px;margin-right:6px;border:1.5px dashed var(--sd-acento);border-radius:3px}
.sd-panel-mercado td.sd-en-ventana{outline:1.5px dashed var(--sd-acento);outline-offset:-3px;border-radius:4px}
.sd-panel-mercado .sd-fila-propuesta th,.sd-panel-mercado .sd-fila-propuesta td{background:var(--sd-acento-suave);font-weight:800;border-bottom:0}
.sd-panel-mercado{min-width:48rem}
.sd-mercado-herramientas{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sd-e3)}
.sd-fuentes-caja{display:flex;flex-direction:column;gap:var(--sd-e2)}
.sd-fuentes-otras>summary{cursor:pointer;color:var(--sd-texto-3);font-size:var(--sd-t-s);font-weight:600}
/* Capas: panel lateral del mercado y ventana del Excel */
.sd-cajon,.sd-ventana{position:fixed;inset:0;z-index:50}
.sd-velo{position:absolute;inset:0;background:var(--sd-velo)}
.sd-cajon-caja{position:absolute;top:0;right:0;bottom:0;width:min(52rem,100%);display:flex;flex-direction:column;background:var(--sd-tarjeta);border-left:1px solid var(--sd-borde);box-shadow:var(--sd-sombra-2)}
.sd-cajon-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sd-e3);padding:var(--sd-e4) var(--sd-e5);border-bottom:1px solid var(--sd-borde)}
.sd-cajon-cab p{margin:2px 0 0}
.sd-cajon-cuerpo{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--sd-e4);padding:var(--sd-e4) var(--sd-e5)}
.sd-ventana{display:grid;place-items:center;padding:var(--sd-e4)}
.sd-ventana-caja{position:relative;width:min(36rem,100%);max-height:calc(100vh - 2*var(--sd-e4));overflow-y:auto;display:flex;flex-direction:column;background:var(--sd-tarjeta);border:1px solid var(--sd-borde);border-radius:var(--sd-radio-l);box-shadow:var(--sd-sombra-2)}
.sd-ventana-caja>.sd-tarjeta{border:0;box-shadow:none}
.sd-ventana-pie{display:flex;justify-content:flex-end;padding:var(--sd-e3) var(--sd-e5);border-top:1px solid var(--sd-borde)}
@media (prefers-reduced-motion:no-preference){.sd-cajon:not([hidden]) .sd-cajon-caja{animation:sd-entra .18s ease-out}@keyframes sd-entra{from{transform:translateX(24px);opacity:.6}}}
/* Entre 821 y 1280 px el resultado baja bajo el paso, en su misma columna: si ocupara también la del índice, el índice (sticky) se le montaría encima al hacer scroll. */
@media (max-width:1280px){.sd-pasos-rejilla{grid-template-columns:12rem minmax(0,1fr)}.sd-columna-resumen{grid-column:2}}
@media (max-width:820px){
 .sd-pasos-rejilla{grid-template-columns:minmax(0,1fr)}
 .sd-columna-resumen{grid-column:auto}
 .sd-indice{position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}
 .sd-indice-et{grid-column:1/-1}
 .sd-kpis--3{grid-template-columns:minmax(0,1fr)}
 .sd-mercado-chip{order:2;flex:1 1 100%;max-width:100%}
 .sd-pantalla--pasos #bpn-excel-barra{display:inline-flex} /* en esta pantalla la barra es el único acceso al Excel */
 .sd-indice{position:static}
}
/* Año 1 con los meses en filas */
.sd-paso-activo .sd-mensual-v{min-width:0;width:auto}
.sd-mensual-v thead th{vertical-align:bottom;text-align:left;white-space:normal;min-width:6.5rem;max-width:10rem;font-size:var(--sd-t-s)}
.sd-mensual-v thead th:first-child{min-width:4rem}
.sd-mensual-v .sd-col-cab{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sd-e1)}
.sd-mensual-v .sd-atajos{display:flex;flex-wrap:wrap;gap:2px var(--sd-e1);margin-top:var(--sd-e1)}
.sd-mensual-v .sd-atajos .sd-btn{margin:0;min-height:26px;padding:0 var(--sd-e2);font-size:var(--sd-t-xs);white-space:normal;text-align:left}
.sd-mensual-v tbody th[scope="row"]{min-width:4rem;font-weight:700}
.sd-mensual-v td{padding:3px 4px}
.sd-mensual-v td .sd-input{width:100%;min-width:4.5rem}
/* «Guardar todo» deshabilitado se ve apagado (no verde claro) */
.sd-pantalla--pasos .sd-btn--primario:disabled{background:var(--sd-segmento);border-color:var(--sd-borde);color:var(--sd-texto-3)}
