/* =====================================================================
 * ARAANT · mapa de financiación, compatibilidad y panel de inteligencia
 * Sistema Letters: cielo solo en la cabecera, tarjetas blancas de 18 px
 * con sombra azulada, botones negros en píldora, azul #1C3B30 solo en
 * iconos y detalles. Ancho completo.
 * ===================================================================== */
:root {
  --fin-si: #1f8a5b; --fin-si-f: #e3f5ec;
  --fin-rev: #855400; --fin-rev-f: #fdf3df;
  --fin-no: #b3261e; --fin-no-f: #fdecea;
  --fin-filete: rgba(7,7,9,.08);
  --fin-sub: #1C3B30; --fin-eu: #6E7A64; --fin-pre: #102721; --fin-ava: #7bbd6f; --fin-fis: #8A8578;
}

/* --- Ancho completo ----------------------------------------------------- */
body:not(#_) main.fin > .section > .container.fin-ancho {
  display: block !important; max-width: 112rem !important; width: 100%;
  margin-inline: auto !important; padding-inline: clamp(1rem, 3vw, 3rem) !important;
}
body:not(#_) main.fin > .section > .container.fin-ancho > * { grid-column: auto !important; max-width: none !important; }
body:not(#_) main.fin > .section:not(.page-hero) { padding-block: clamp(2.5rem, 5vw, 4.5rem) !important; }
main.fin, main.fin * { min-width: 0; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --- Cabecera ---------------------------------------------------------- */
body:not(#_) main.fin > section.fin-hero { min-height: 0 !important; padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 5vw, 5rem) !important; }
body:not(#_) main.fin > section.fin-hero h1 { max-width: 15ch; }
.fin-hero .lead { max-width: 44rem; }
.fin-hero__panel { justify-self: start; }
.fin-hero__nota { margin-top: .75rem; font-size: .875rem; }
.fin-aviso { display: inline-block; margin-top: 1rem; padding: .6rem 1rem; border-radius: 100px; background: rgba(255,255,255,.85) !important; color: var(--obsidiana) !important; font-size: .9rem; }

.fin-filtros {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: .5rem; align-items: end;
  margin-top: 1.6rem; padding: .55rem; border-radius: 24px; max-width: 46rem;
  background: #fff; box-shadow: rgba(20, 18, 15,.10) 0 20px 50px -18px, rgba(20, 18, 15,.06) 0 4px 10px;
}
.fin-filtros label { display: grid; gap: .15rem; padding: .35rem .7rem; border-right: 1px solid #edf2ec; }
.fin-filtros label span { font: 500 .6875rem 'Open Runde', sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--carbon); }
.fin-filtros select { border: 0; background: transparent; font: 500 .95rem 'Open Runde', sans-serif; color: var(--obsidiana); padding: .1rem 0; width: 100%; }
.fin-filtros .btn { height: 3rem; padding-inline: 1.4rem; white-space: nowrap; }

.fin-resumen .hp__cuerpo { padding: 1.2rem 1.3rem 1.3rem; }
.fin-resumen__lista { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .45rem; }
.fin-resumen__lista a { display: grid; grid-template-columns: 2.2rem 1fr auto; gap: .8rem; align-items: center; padding: .6rem .8rem; border: 1px solid var(--fin-filete); border-radius: 14px; color: var(--obsidiana); text-decoration: none; transition: border-color .25s, background .25s; }
.fin-resumen__lista a:hover { border-color: rgba(28, 59, 48,.4); background: #f8faf8; }
.fin-resumen__nom { display: grid; font-weight: 500; font-size: .95rem; line-height: 1.25; }
.fin-resumen__nom small { font-weight: 400; font-size: .75rem; color: var(--carbon); }
.fin-resumen__lista b { font: 600 1.35rem/1 'Open Runde', sans-serif; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.fin-resumen__pie { margin: .9rem 0 0; font-size: .78rem; color: var(--carbon); line-height: 1.4; }
.fin-resumen__ico, .fin-bloque__ico { position: relative; display: block; width: 2.2rem; height: 2.2rem; border-radius: 10px; background: #f3f6f2; }
.fin-resumen__ico::after, .fin-bloque__ico::after { content: ''; position: absolute; inset: .55rem; border-radius: 50%; border: 2px solid var(--azul); }
.fin-resumen__f--europeo .fin-resumen__ico::after, .fin-bloque__ico--europeo::after { border-color: var(--fin-eu); border-style: dotted; border-width: 3px; }
.fin-resumen__f--prestamo .fin-resumen__ico::after, .fin-bloque__ico--prestamo::after { border-radius: 4px; border-color: var(--fin-pre); }
.fin-resumen__f--aval .fin-resumen__ico::after, .fin-bloque__ico--aval::after { border-radius: 50% 50% 4px 4px; border-color: var(--fin-ava); }
.fin-resumen__f--fiscal .fin-resumen__ico::after { border-radius: 2px; transform: rotate(45deg); border-color: var(--fin-fis); inset: .65rem; }

/* --- Cabecera de sección ------------------------------------------------ */
.fin-cab { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 1rem 4rem; align-items: end; margin-bottom: 2rem; }
.fin-cab h2 { margin: .6rem 0 0 !important; }
.fin-cab__txt { margin: 0; color: var(--carbon); font-size: .95rem; line-height: 1.55; }
.fin-cab__txt b { color: var(--obsidiana); font-weight: 600; }

/* --- Carriles (vista visual) ------------------------------------------ */
.fin-carriles { padding: clamp(1rem, 2vw, 1.75rem); border-radius: 28px; background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.95); box-shadow: var(--sombra-s), var(--sombra-xl); }
.fin-carriles svg { display: block; width: 100%; height: auto; overflow: visible; }
.fin-carriles__movil { display: none; }
.fin-carriles__banda--0 { fill: #f7f9f7; } .fin-carriles__banda--1 { fill: #fff; }
.fin-carriles__grid { stroke: rgba(16, 39, 33,.10); stroke-dasharray: 3 5; }
.fin-carriles__eje { fill: var(--carbon); font-family: 'Open Runde', sans-serif; }
.fin-carriles__nombre { fill: var(--obsidiana); font-family: 'Open Runde', sans-serif; font-weight: 600; }
.fin-carriles__vacio { fill: var(--pizarra); font-family: 'Open Runde', sans-serif; font-style: italic; }
.fin-punto { fill: rgba(28, 59, 48,.55); stroke: #fff; stroke-width: 1.5; transition: r .2s, fill .2s; cursor: pointer; }
.fin-punto--si { fill: rgba(31,138,91,.75); }
.fin-punto--revisar { fill: rgba(28, 59, 48,.55); }
.fin-punto--neutro { fill: rgba(16, 39, 33,.45); }
.fin-punto--bases { stroke: var(--obsidiana); stroke-width: 1.6; }
.fin-punto__a:hover .fin-punto, .fin-punto__a:focus .fin-punto { fill: var(--obsidiana); }
.fin-leyenda { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: 1rem 0 0; padding: 0; font-size: .8rem; color: var(--carbon); }
.fin-leyenda li { display: inline-flex; align-items: center; gap: .45rem; }
.fin-leyenda__p { width: .8rem; height: .8rem; border-radius: 50%; display: inline-block; }
.fin-leyenda__p--si { background: rgba(31,138,91,.75); } .fin-leyenda__p--revisar { background: rgba(28, 59, 48,.55); }
.fin-leyenda__p--neutro { background: rgba(16, 39, 33,.45); } .fin-leyenda__p--bases { background: #fff; border: 2px solid var(--obsidiana); }

/* --- Bloques y tablas -------------------------------------------------- */
.fin-bloque { margin-bottom: 2.25rem; scroll-margin-top: 6rem; }
.fin-bloque__cab { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; margin-bottom: 1rem; }
.fin-bloque__cab h3 { margin: 0 0 .3rem; font-size: 1.45rem; display: flex; align-items: center; gap: .6rem; }
.fin-bloque__cab p { margin: 0; color: var(--carbon); font-size: .92rem; max-width: 62rem; }
.fin-bloque__n { display: inline-grid; place-items: center; min-width: 2rem; padding: .1rem .55rem; border-radius: 100px; background: var(--obsidiana); color: #fff; font: 600 .78rem 'Open Runde', sans-serif; letter-spacing: 0; }
.fin-tabla__marco { overflow-x: auto; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); }
.fin-tabla { width: 100%; border-collapse: collapse; font-size: .875rem; }
.fin-tabla th { text-align: left; font: 500 .7rem 'Open Runde', sans-serif; text-transform: uppercase; letter-spacing: .05em; color: var(--carbon); padding: .85rem .9rem; background: #f9fbf9; border-bottom: 1px solid var(--fin-filete); white-space: nowrap; }
.fin-tabla td { padding: .85rem .9rem; border-bottom: 1px solid var(--fin-filete); vertical-align: top; line-height: 1.4; }
.fin-tabla tbody tr:last-child td { border-bottom: 0; }
.fin-tabla tbody tr { transition: background .2s; }
.fin-tabla tbody tr:hover, .fin-tabla tbody tr.is-elegida { background: #f8faf8; }
.fin-tabla__nom { min-width: 16rem; max-width: 30rem; }
.fin-tabla__nom a { color: var(--obsidiana); font-weight: 500; text-decoration: none; }
.fin-tabla__nom a:hover { text-decoration: underline; text-decoration-color: var(--azul); }
.fin-tabla__nom span { display: block; margin-top: .2rem; color: var(--carbon); font-size: .78rem; }
.fin-tabla__cond { min-width: 14rem; max-width: 24rem; color: #333c39; font-size: .82rem; }
.fin-tabla__sel { width: 2.5rem; text-align: center; }
.fin-tabla__sel input { width: 1.1rem; height: 1.1rem; accent-color: var(--obsidiana); }

.fin-coste, .fin-compat, .fin-esf, .fin-tag, .fin-plazo, .fin-verificar {
  display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .6rem; border-radius: 100px;
  font: 500 .74rem/1.3 'Open Runde', sans-serif; white-space: nowrap; border: 1px solid transparent;
}
.fin-coste--nr { background: #DEE6DC; color: #0a865a; }
.fin-coste--re { background: #eff3ee; color: #102721; }
.fin-coste--ga { background: #f2f5f1; color: #3f8864; }
.fin-coste--fi { background: #f2f4f2; color: #3c4642; }
.fin-compat--compatible { background: var(--fin-si-f); color: var(--fin-si); }
.fin-compat--incompatible { background: var(--fin-no-f); color: var(--fin-no); }
.fin-compat--revision { background: var(--fin-rev-f); color: var(--fin-rev); }
.fin-esf--bajo { background: var(--fin-si-f); color: var(--fin-si); }
.fin-esf--medio { background: var(--fin-rev-f); color: var(--fin-rev); }
.fin-esf--alto { background: var(--fin-no-f); color: var(--fin-no); }
.fin-esf--nd { background: transparent; color: var(--pizarra); border-color: #e5eae4; }
.fin-tag--si { background: var(--fin-si-f); color: var(--fin-si); }
.fin-tag--revisar { background: var(--fin-rev-f); color: var(--fin-rev); }
.fin-tag--no { background: var(--fin-no-f); color: var(--fin-no); }
.fin-tag--neutro { background: #f2f4f2; color: var(--carbon); }
.fin-plazo { background: #f5f7f4; color: #2b4039; }
.fin-plazo--urgente { background: var(--obsidiana); color: #fff; }
.fin-verificar { background: var(--fin-rev-f); color: var(--fin-rev); }
.fin-score { display: inline-grid; place-items: center; margin-left: .35rem; min-width: 2rem; height: 1.6rem; border-radius: 8px; background: #f5f7f4; font: 600 .8rem 'Open Runde', sans-serif; color: var(--obsidiana); }
.fin-mas { margin: .9rem 0 0; }
.fin-vacio { color: var(--carbon); font-size: .92rem; padding: 1rem 1.2rem; border-radius: 14px; background: rgba(255,255,255,.75); border: 1px dashed #cddfc9; margin: 0; }

.fin-selbar {
  position: sticky; bottom: 1rem; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  margin-top: 1rem; padding: .7rem .8rem .7rem 1.4rem; border-radius: 100px; background: rgba(11,23,36,.94); color: #fff;
  box-shadow: rgba(20, 18, 15,.25) 0 20px 50px -18px; backdrop-filter: blur(10px);
}
.fin-selbar p { margin: 0; font-size: .9rem; color: rgba(255,255,255,.85); }
.fin-selbar b { color: #F2E0D1; font-size: 1.05rem; }
body:not(#_) .fin-selbar .btn--filled { background: #fff !important; color: var(--obsidiana) !important; border-color: #fff !important; }
.fin-selbar .btn[disabled] { opacity: .45; cursor: not-allowed; }
.fin-selbar--fija { position: static; }

/* --- Fichas (fiscal y organismos) -------------------------------------- */
.fin-fiscal__rejilla, .fin-prog__rejilla, .cmp-gastos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); gap: 1rem; }
.fin-ficha { display: flex; flex-direction: column; gap: .55rem; padding: 1.5rem; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); }
.fin-ficha h3 { margin: 0; font-size: 1.25rem; }
.fin-ficha p { margin: 0; color: #333c39; font-size: .9rem; line-height: 1.5; }
.fin-ficha__norma { font: 500 .72rem 'Open Runde', sans-serif !important; text-transform: uppercase; letter-spacing: .05em; color: var(--azul) !important; display: flex; align-items: center; gap: .4rem; }
.fin-ficha__cita, .req__cita { display: block; margin: .2rem 0 0; padding: .55rem .8rem; border-left: 2px solid var(--azul); background: #f8faf8; border-radius: 0 10px 10px 0; font-size: .85rem; line-height: 1.45; color: #3a4440; quotes: '«' '»'; }
.fin-ficha__pie { margin-top: auto !important; padding-top: .6rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.fin-ficha__pie a { font-size: .85rem; font-weight: 500; color: var(--obsidiana); }
.fin-ficha__dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; margin: .3rem 0 0; }
.fin-ficha__dl div { padding: .55rem .6rem; border-radius: 10px; background: #f7f9f6; }
.fin-ficha__dl dt { font-size: .68rem; color: var(--carbon); text-transform: uppercase; letter-spacing: .04em; }
.fin-ficha__dl dd { margin: .15rem 0 0; font-weight: 600; }
.fin-ficha__nota { font-size: .78rem !important; color: var(--carbon) !important; }
.fin-ficha__lineas { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .85rem; }
.fin-ficha__lineas li { display: grid; gap: .1rem; padding: .5rem .6rem; border: 1px solid var(--fin-filete); border-radius: 10px; }
.fin-ficha__lineas a { color: var(--obsidiana); }
.fin-ficha__lineas span { font-size: .75rem; color: var(--carbon); }

/* =====================================================================
 * B · Motor de requisitos (componente reutilizable)
 * ===================================================================== */
.req { padding: clamp(1.1rem, 2.4vw, 1.9rem); border-radius: 22px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); }
.req__cab { display: flex; justify-content: space-between; gap: 1rem; align-items: start; flex-wrap: wrap; margin-bottom: 1.1rem; }
.req__tit { flex: 1 1 28rem; }
.req__eti { margin: 0 0 .35rem; font: 500 .7rem 'Open Runde', sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--azul); }
.req h3 { margin: 0 0 .5rem; font-size: 1.3rem; line-height: 1.2; }
.req h3 a { color: var(--obsidiana); text-decoration: none; }
.req__meta { margin: 0; display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; font-size: .8rem; color: var(--carbon); }
.req__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.req__fila { display: grid; grid-template-columns: 2rem 1fr; gap: .9rem; padding: .95rem 1rem; border-radius: 16px; border: 1px solid var(--fin-filete); background: #fdfdfd; }
.req__fila--cumple { border-left: 3px solid var(--fin-si); }
.req__fila--no { border-left: 3px solid var(--fin-no); background: #fffafa; }
.req__fila--pendiente { border-left: 3px solid #d0a24a; }
.req__ico { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9px; font-weight: 700; font-size: .9rem; }
.req__fila--cumple .req__ico { background: var(--fin-si-f); color: var(--fin-si); }
.req__fila--no .req__ico { background: var(--fin-no-f); color: var(--fin-no); }
.req__fila--pendiente .req__ico { background: var(--fin-rev-f); color: var(--fin-rev); border: 1px dashed rgba(168,106,0,.4); }
.req__texto { margin: 0; font-weight: 500; line-height: 1.4; }
.req__por { margin: .3rem 0 .6rem; font-size: .88rem; color: #3a4440; line-height: 1.45; }
.req__traza { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; margin: 0 0 .5rem; }
.req__traza div { padding: .45rem .6rem; border-radius: 10px; background: #f6f8f5; }
.req__traza dt { font-size: .66rem; text-transform: uppercase; letter-spacing: .05em; color: var(--carbon); }
.req__traza dd { margin: .1rem 0 0; font-size: .8rem; font-weight: 500; overflow-wrap: anywhere; }
.req__traza a { color: var(--obsidiana); }
.req__cita--sin { border-left-color: #d0a24a; background: #fffaf0; }
.req__cita--sin::after { content: ' · no localizada literal: compruébala'; font-size: .72rem; color: var(--fin-rev); }
.req__vacio { color: var(--carbon); }
.req__excl { margin-top: .9rem; padding: .8rem 1rem; border-radius: 14px; background: #fff7f6; border: 1px solid #f6d7d3; }
.req__excl summary { cursor: pointer; font-weight: 500; color: var(--fin-no); }
.req__excl ul { margin: .6rem 0 0; padding-left: 1.1rem; display: grid; gap: .5rem; font-size: .88rem; }
.req__bases { flex: 0 0 auto; }

/* =====================================================================
 * A · Compatibilidad
 * ===================================================================== */
.cmp-leyenda { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .5rem; }
.cmp-leyenda li { display: grid; grid-template-columns: 3.2rem 1fr auto; gap: .8rem; align-items: center; padding: .6rem .8rem; border: 1px solid var(--fin-filete); border-radius: 14px; }
.cmp-leyenda svg { width: 3.2rem; height: .7rem; }
.cmp-leyenda span { display: grid; font-size: .78rem; color: var(--carbon); line-height: 1.3; }
.cmp-leyenda b { font-weight: 600; color: var(--obsidiana); font-size: .9rem; }
.cmp-leyenda em { font: 600 1.3rem 'Open Runde', sans-serif; font-style: normal; letter-spacing: -0.04em; }

.cmp-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.25rem; }
.cmp-form__proy, .cmp-form__convs { padding: clamp(1.1rem, 2.4vw, 1.75rem); border-radius: 22px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); display: grid; gap: .8rem; align-content: start; }
body:not(#_) .cmp-form h2 { font-size: 1.35rem !important; margin: 0 !important; display: flex; align-items: center; gap: .6rem; }
.cmp-form label { display: grid; gap: .3rem; }
.cmp-form label > span { font: 500 .72rem 'Open Runde', sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--carbon); }
.cmp-form input:not([type=checkbox]), .cmp-form textarea { width: 100%; border: 1px solid #e1eadf; border-radius: 12px; padding: .7rem .85rem; font: 400 .95rem 'Open Runde', sans-serif; background: #fcfdfc; }
.cmp-form input:focus, .cmp-form textarea:focus { border-color: var(--azul); box-shadow: 0 0 0 4px rgba(28, 59, 48,.18); outline: 0; }
.cmp-form__inv { margin: 0; font-size: .82rem; color: var(--carbon); display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.cmp-form__inv a { padding: .2rem .6rem; border-radius: 100px; background: #f3f6f2; color: var(--obsidiana); text-decoration: none; }
.cmp-form__acc { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; align-items: center; }
.cmp-form__guardados { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: .85rem; color: var(--carbon); }
.cmp-form__guardados a { padding: .25rem .7rem; border-radius: 100px; border: 1px solid #e1eadf; background: #fff; color: var(--obsidiana); text-decoration: none; }
.cmp-guardar { margin-top: .8rem; }
.cmp-elegidas { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.cmp-elegidas li { display: grid; grid-template-columns: 1.8rem 1fr auto; gap: .7rem; align-items: center; padding: .55rem .7rem; border: 1px solid var(--fin-filete); border-radius: 12px; font-size: .9rem; }
.cmp-elegidas li a { color: var(--obsidiana); }
.cmp-elegidas__n, .cmp-motor__n { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--obsidiana); color: #fff; font: 600 .8rem 'Open Runde', sans-serif; flex: 0 0 auto; }
.cmp-elegidas__x { color: var(--carbon) !important; text-decoration: none; padding: .2rem .4rem; border-radius: 8px; }
.cmp-elegidas__x:hover { background: var(--fin-no-f); color: var(--fin-no) !important; }
.cmp-sug { border-radius: 14px; background: #f9fbf9; border: 1px solid var(--fin-filete); padding: .6rem .8rem; }
.cmp-sug summary { cursor: pointer; font-weight: 500; font-size: .9rem; }
.cmp-sug ul { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .3rem; max-height: 20rem; overflow-y: auto; }
.cmp-sug label { display: grid !important; grid-template-columns: 1.2rem 1fr; gap: .6rem; align-items: start; padding: .35rem .3rem; border-radius: 8px; cursor: pointer; }
.cmp-sug label:hover { background: #fff; }
.cmp-sug input { margin-top: .2rem; accent-color: var(--obsidiana); }
.cmp-sug label > span { display: grid !important; font: 400 .87rem/1.35 'Open Runde', sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--obsidiana) !important; }
.cmp-sug small { color: var(--carbon); font-size: .75rem; }

.cmp-lienzo { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; scroll-margin-top: 6rem; }
.cmp-grafo { position: relative; padding: 1rem; border-radius: 28px; background:
  radial-gradient(closest-side, rgba(255,255,255,1), rgba(255,255,255,.75) 70%, rgba(255,255,255,.55)),
  linear-gradient(rgba(16, 39, 33,.05) 1px, transparent 1px) 0 0 / 32px 32px,
  linear-gradient(90deg, rgba(16, 39, 33,.05) 1px, transparent 1px) 0 0 / 32px 32px, #f9fbf9;
  border: 1px solid rgba(255,255,255,.95); box-shadow: var(--sombra-s), var(--sombra-xl); }
.cmp-grafo__svg { display: block; width: 100%; height: auto; overflow: visible; }
.cmp-grafo__ayuda { margin: .2rem 0 0; text-align: center; font-size: .8rem; color: var(--carbon); }
.cmp-anillo { fill: none; stroke: rgba(28, 59, 48,.15); stroke-dasharray: 2 6; }
.cmp-arista { fill: none; stroke-width: 3.5; stroke-linecap: round; cursor: pointer; transition: stroke-width .2s, opacity .3s; }
.cmp-arista--compatible { stroke: var(--fin-si); }
.cmp-arista--incompatible { stroke: var(--fin-no); stroke-dasharray: 10 7; }
.cmp-arista--revision { stroke: #d0a24a; stroke-dasharray: 2 7; }
.cmp-arista:hover, .cmp-arista:focus, .cmp-arista.is-activa { stroke-width: 7; outline: 0; }
.cmp-grafo.is-foco .cmp-arista:not(.is-activa) { opacity: .25; }
.cmp-nodo { cursor: pointer; outline: 0; }
.cmp-nodo__halo { fill: rgba(28, 59, 48,.10); transition: r .25s; }
.cmp-nodo__c { fill: #fff; stroke: var(--obsidiana); stroke-width: 2; }
.cmp-nodo--europeo .cmp-nodo__c { stroke: var(--fin-eu); stroke-width: 3; }
.cmp-nodo--prestamo .cmp-nodo__c, .cmp-nodo--aval .cmp-nodo__c { stroke: var(--fin-pre); stroke-dasharray: 4 3; }
.cmp-nodo__n { font-family: 'Open Runde', sans-serif; font-weight: 600; fill: var(--obsidiana); }
.cmp-nodo__t { font-family: 'Open Runde', sans-serif; font-weight: 500; fill: #2b4039; paint-order: stroke; stroke: rgba(255,255,255,.9); stroke-width: 4px; }
.cmp-nodo:hover .cmp-nodo__halo, .cmp-nodo:focus .cmp-nodo__halo, .cmp-nodo.is-activa .cmp-nodo__halo { fill: rgba(28, 59, 48,.22); }
.cmp-nodo.is-activa .cmp-nodo__c { fill: var(--obsidiana); }
.cmp-nodo.is-activa .cmp-nodo__n { fill: #fff; }

.cmp-detalle { position: sticky; top: 6rem; }
.cmp-detalle__panel { padding: clamp(1.1rem, 2.4vw, 1.75rem); border-radius: 22px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); display: grid; gap: .7rem; }
.cmp-detalle__panel[hidden] { display: none !important; }
.cmp-detalle__panel h3 { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.cmp-detalle__panel h3 a { color: var(--obsidiana); }
.cmp-detalle__panel p { margin: 0; font-size: .9rem; line-height: 1.5; color: #333c39; }
.cmp-detalle__nota { font-size: .8rem !important; color: var(--carbon) !important; }
.cmp-cuentas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.cmp-cuentas li { display: grid; gap: .2rem; padding: .8rem; border-radius: 14px; background: #f7f9f6; }
.cmp-cuentas b { font: 600 1.8rem/1 'Open Runde', sans-serif; letter-spacing: -0.04em; }
.cmp-cuentas span { font-size: .74rem; color: var(--carbon); line-height: 1.25; }
.cmp-cuentas__compatible b { color: var(--fin-si); } .cmp-cuentas__incompatible b { color: var(--fin-no); } .cmp-cuentas__revision b { color: var(--fin-rev); }
.cmp-cita { padding: .8rem .9rem; border-radius: 14px; background: #f9fbf9; border: 1px solid var(--fin-filete); display: grid; gap: .4rem; }
.cmp-cita__t { font-weight: 600 !important; color: var(--obsidiana) !important; font-size: .85rem !important; }
.cmp-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin: 0; }
.cmp-dl div { padding: .5rem .65rem; border-radius: 10px; background: #f6f8f5; }
.cmp-dl dt { font-size: .66rem; text-transform: uppercase; letter-spacing: .05em; color: var(--carbon); }
.cmp-dl dd { margin: .1rem 0 0; font-size: .85rem; font-weight: 500; }

.cmp-alertas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; margin-top: 1.25rem; }
.cmp-alerta { padding: 1.2rem 1.3rem; border-radius: 18px; background: #fff; border: 1px solid var(--fin-filete); border-top: 3px solid var(--azul); box-shadow: var(--sombra-s); display: grid; gap: .5rem; align-content: start; }
.cmp-alerta--grave { border-top-color: var(--fin-no); background: #fffafa; }
.cmp-alerta--aviso { border-top-color: #d0a24a; }
.cmp-alerta p { margin: 0; font-size: .9rem; line-height: 1.5; }
.cmp-alerta ul { margin: 0; padding-left: 1.1rem; font-size: .85rem; display: grid; gap: .3rem; }
.cmp-alerta__t { font-weight: 600; font-size: 1rem !important; }
.cmp-aristas { margin-top: 1.5rem; }
.cmp-aristas h3 { font-size: 1.15rem; margin: 0 0 .7rem; }
.cmp-aristas ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr)); gap: .5rem; }
.cmp-aristas__b { width: 100%; display: grid; grid-template-columns: auto auto 1fr; gap: .7rem; align-items: center; text-align: left; padding: .65rem .8rem; border-radius: 14px; border: 1px solid var(--fin-filete); background: #fff; cursor: pointer; font: inherit; color: inherit; }
.cmp-aristas__b:hover { border-color: rgba(28, 59, 48,.4); }
.cmp-par { font: 600 .85rem 'Open Runde', sans-serif; white-space: nowrap; }
.cmp-aristas__n { font-size: .8rem; color: var(--carbon); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmp-matriz th { text-align: center; } .cmp-matriz td { text-align: center; }
.cmp-matriz td.fin-tabla__nom { text-align: left; }
.cmp-cob { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 10px; font-weight: 700; }
.cmp-cob--si { background: var(--fin-si-f); color: var(--fin-si); }
.cmp-cob--no { background: var(--fin-no-f); color: var(--fin-no); }
.cmp-cob--nd { background: #f2f4f2; color: var(--pizarra); }
.cmp-gastos { margin-top: 1.25rem; }
.cmp-gastos__l { margin: 0; padding-left: 1.1rem; font-size: .88rem; display: grid; gap: .35rem; }
.cmp-motor { position: relative; margin-bottom: 1.25rem; scroll-margin-top: 6rem; }
.cmp-motor__n { position: absolute; top: -.7rem; left: -.7rem; z-index: 1; width: 2.2rem; height: 2.2rem; }

/* =====================================================================
 * C · Panel de inteligencia
 * ===================================================================== */
.intel-hero__acc { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem; }
.intel-techo__cifra { margin: .2rem 0 .4rem; font: 600 clamp(2.4rem, 4vw, 3.6rem)/1 'Open Runde', sans-serif; letter-spacing: -0.05em; color: var(--obsidiana); font-variant-numeric: tabular-nums; }
.intel-techo__txt { margin: 0 0 1rem; font-size: .8rem; color: var(--carbon); line-height: 1.45; }
.intel-barras { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.intel-barras li { display: grid; grid-template-columns: 7rem 1fr 7.5rem; gap: .7rem; align-items: center; font-size: .82rem; }
.intel-barras b { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.intel-barra { -webkit-appearance: none; appearance: none; width: 100%; height: .55rem; border: 0; border-radius: 100px; background: #f1f5f0; overflow: hidden; }
.intel-barra::-webkit-progress-bar { background: #f1f5f0; border-radius: 100px; }
.intel-barra::-webkit-progress-value { background: linear-gradient(90deg, #102721, var(--azul)); border-radius: 100px; }
.intel-barra::-moz-progress-bar { background: linear-gradient(90deg, #102721, var(--azul)); border-radius: 100px; }
.intel-barra--europeo::-webkit-progress-value { background: linear-gradient(90deg, var(--azul), var(--fin-eu)); }
.intel-barra--europeo::-moz-progress-bar { background: linear-gradient(90deg, var(--azul), var(--fin-eu)); }

.intel-kpis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.intel-kpis li { display: grid; gap: .25rem; align-content: start; padding: 1.3rem 1.3rem 1.2rem; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); }
.intel-kpis li:first-child { background: var(--f-noche, #13211C); color: #fff; }
.intel-kpis li:first-child b { color: #F2E0D1; } .intel-kpis li:first-child small { color: rgba(255,255,255,.7); }
.intel-kpis b { font: 600 clamp(1.8rem, 2.6vw, 2.5rem)/1 'Open Runde', sans-serif; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; }
.intel-kpis span { font-weight: 500; font-size: .92rem; }
.intel-kpis small { font-size: .76rem; color: var(--carbon); line-height: 1.35; }

.intel-rejilla { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.intel-caja { padding: clamp(1.2rem, 2.4vw, 1.9rem); border-radius: 22px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); display: grid; gap: .9rem; align-content: start; scroll-margin-top: 6rem; }
.intel-caja__cab h2 { margin: 0 !important; font-size: clamp(1.3rem, 1.8vw, 1.6rem) !important; }
.intel-caja__pie { margin: 0; }
.intel-caja p { margin: 0; }
.intel-sub { font: 500 .72rem 'Open Runde', sans-serif; text-transform: uppercase; letter-spacing: .05em; color: var(--carbon); margin-top: .4rem !important; }

.intel-plazos { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.intel-plazos__i { display: grid; grid-template-columns: 3.4rem 1fr auto; gap: .9rem; align-items: center; padding: .6rem .7rem; border: 1px solid var(--fin-filete); border-radius: 14px; }
.intel-plazos__d { display: grid; place-items: center; align-content: center; height: 3.4rem; border-radius: 12px; background: #f3f6f2; line-height: 1; }
.intel-plazos__d b { font: 600 1.35rem 'Open Runde', sans-serif; letter-spacing: -0.04em; }
.intel-plazos__d small { font-size: .62rem; color: var(--carbon); text-transform: uppercase; }
.intel-plazos__i.is-urgente .intel-plazos__d { background: var(--obsidiana); color: #fff; }
.intel-plazos__i.is-urgente .intel-plazos__d small { color: #F2E0D1; }
.intel-plazos__t { display: grid; gap: .15rem; font-size: .9rem; line-height: 1.3; }
.intel-plazos__t a { color: var(--obsidiana); font-weight: 500; }
.intel-plazos__t small { font-size: .74rem; color: var(--carbon); }

.intel-decidir { position: relative; }
.intel-decidir summary { list-style: none; cursor: pointer; padding: .3rem .75rem; border-radius: 100px; border: 1px solid #d9e3d6; font-size: .78rem; font-weight: 500; white-space: nowrap; background: #fff; }
.intel-decidir summary::-webkit-details-marker { display: none; }
.intel-decidir[open] summary { background: var(--obsidiana); color: #fff; border-color: var(--obsidiana); }
.intel-decidir__f { position: absolute; right: 0; top: calc(100% + .4rem); z-index: 20; width: min(21rem, 80vw); padding: .9rem; border-radius: 16px; background: #fff; border: 1px solid var(--fin-filete); box-shadow: rgba(20, 18, 15,.18) 0 24px 50px -16px; display: grid; gap: .6rem; }
.intel-decidir__m { display: grid; gap: .25rem; }
.intel-decidir__m span { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--carbon); }
.intel-decidir__m input { width: 100%; border: 1px solid #e1eadf; border-radius: 10px; padding: .55rem .7rem; font: 400 .88rem 'Open Runde', sans-serif; }
.intel-decidir__b { display: flex; gap: .4rem; }
.intel-decidir__b .btn { flex: 1; padding: .55rem .8rem; font-size: .85rem; }
.match-card__actions .intel-decidir { display: inline-block; }

.intel-motivos { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.intel-motivos details { border: 1px solid var(--fin-filete); border-radius: 14px; padding: .55rem .8rem; background: #fdfdfd; }
.intel-motivos summary { cursor: pointer; display: grid; grid-template-columns: 4rem 1fr; gap: .8rem; align-items: center; font-size: .9rem; }
.intel-motivos summary b { font: 600 1.25rem 'Open Runde', sans-serif; letter-spacing: -0.04em; color: var(--fin-no); text-align: right; font-variant-numeric: tabular-nums; }
.intel-motivos ul { margin: .5rem 0 0 4.8rem; padding: 0; list-style: none; display: grid; gap: .35rem; font-size: .84rem; }
.intel-motivos li li { display: grid; gap: .1rem; }
.intel-motivos a { color: var(--obsidiana); }
.intel-motivos small, .intel-misdesc small { color: var(--carbon); font-size: .76rem; }
.intel-misdesc { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .88rem; }
.intel-misdesc li { display: grid; gap: .1rem; padding: .5rem .7rem; border-radius: 12px; background: #f8faf7; }
.intel-misdesc a { color: var(--obsidiana); }

.intel-otras { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: .85rem; color: var(--carbon); margin: 0 0 1rem; }
.intel-otras a { padding: .3rem .75rem; border-radius: 100px; border: 1px solid #d9e3d6; background: #fff; color: var(--obsidiana); text-decoration: none; }
.intel-motor__acc { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; justify-content: flex-end; margin-top: 1rem; }

.intel-proy { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.intel-proy li { display: grid; grid-template-columns: 1fr auto auto; gap: .9rem; align-items: center; padding: .7rem .85rem; border: 1px solid var(--fin-filete); border-radius: 14px; }
.intel-proy__t { display: grid; gap: .15rem; font-size: .9rem; font-weight: 500; }
.intel-proy__t a { color: var(--obsidiana); }
.intel-proy__t small { font-weight: 400; font-size: .75rem; color: var(--carbon); }
.intel-proy b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.intel-minimis { display: grid; gap: .45rem; padding: .9rem 1rem; border-radius: 14px; background: #f8faf8; }
.intel-minimis progress { -webkit-appearance: none; appearance: none; width: 100%; height: .6rem; border: 0; border-radius: 100px; background: #eaefe8; overflow: hidden; }
.intel-minimis progress::-webkit-progress-bar { background: #eaefe8; border-radius: 100px; }
.intel-minimis progress::-webkit-progress-value { background: linear-gradient(90deg, var(--azul), #102721); border-radius: 100px; }
.intel-minimis progress::-moz-progress-bar { background: linear-gradient(90deg, var(--azul), #102721); }
.intel-minimis p { font-size: .84rem; color: #333c39; }

.intel-linea { list-style: none; margin: 0; padding: 0 0 0 1.4rem; display: grid; gap: .7rem; position: relative; }
.intel-linea::before { content: ''; position: absolute; left: .4rem; top: .5rem; bottom: .5rem; width: 2px; background: linear-gradient(180deg, var(--azul), rgba(28, 59, 48,.1)); }
.intel-linea__i { position: relative; display: grid; grid-template-columns: auto auto 1fr; gap: .3rem .8rem; align-items: center; padding: .85rem 1rem; border-radius: 16px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s); }
.intel-linea__i::before { content: ''; position: absolute; left: -1.3rem; top: 1.15rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--fin-si); box-shadow: 0 0 0 3px #fff; }
.intel-linea__i--descartar::before { background: var(--fin-no); }
.intel-linea__i time { font-size: .76rem; color: var(--carbon); font-variant-numeric: tabular-nums; }
.intel-linea__i a { color: var(--obsidiana); font-weight: 500; font-size: .92rem; }
.intel-linea__i p { grid-column: 1 / -1; margin: 0; font-size: .85rem; color: #3a4440; }

.intel-herr__rejilla { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.intel-herr__c { position: relative; display: grid; gap: .45rem; align-content: start; padding: 1.4rem 1.4rem 2.6rem; border-radius: 18px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s), var(--sombra-xl); color: var(--obsidiana); text-decoration: none; transition: transform .25s, border-color .25s, box-shadow .25s; }
.intel-herr__c:hover { transform: translateY(-3px); border-color: rgba(28, 59, 48,.35); box-shadow: rgba(28, 59, 48,.12) 0 2px 4px, rgba(20, 18, 15,.10) 0 30px 60px -20px; }
.intel-herr__c b { font-size: 1.1rem; font-weight: 600; letter-spacing: -0.02em; }
.intel-herr__c > span:not(.intel-herr__ico) { font-size: .86rem; color: var(--carbon); line-height: 1.45; }
.intel-herr__c i { position: absolute; right: 1.2rem; bottom: 1rem; font-style: normal; color: var(--azul); font-size: 1.1rem; transition: transform .25s; }
.intel-herr__c:hover i { transform: translateX(4px); }
.intel-herr__ico { position: relative; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: #f3f6f2; margin-bottom: .3rem; }
.intel-herr__ico::before, .intel-herr__ico::after { content: ''; position: absolute; }
.intel-herr__ico--mapa::before { inset: .7rem; border: 2px solid var(--azul); border-radius: 50%; }
.intel-herr__ico--mapa::after { left: 50%; top: .5rem; bottom: .5rem; width: 2px; background: var(--azul); }
.intel-herr__ico--grafo::before { left: .55rem; top: .55rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--azul); box-shadow: .95rem .9rem 0 var(--azul), 0 1.05rem 0 rgba(28, 59, 48,.45); }
.intel-herr__ico--diag::before { left: .6rem; bottom: .6rem; width: .35rem; height: .7rem; border-radius: 2px; background: var(--azul); box-shadow: .5rem -.35rem 0 var(--azul), 1rem -.75rem 0 var(--azul); }
.intel-herr__ico--diag::after { left: .6rem; bottom: .6rem; width: 1.6rem; height: 1.45rem; clip-path: inset(0 0 0 0); }
.intel-herr__ico--calc::before { inset: .55rem; border: 2px solid var(--azul); border-radius: 5px; }
.intel-herr__ico--calc::after { left: .85rem; right: .85rem; top: .85rem; height: .35rem; background: var(--azul); border-radius: 2px; }
.intel-herr__ico--cal::before { inset: .6rem .55rem .55rem; border: 2px solid var(--azul); border-top-width: 5px; border-radius: 5px; }
.intel-herr__ico--prev::before { left: .55rem; right: .55rem; top: 50%; height: 2px; background: var(--azul); transform: rotate(-25deg); }
.intel-herr__ico--prev::after { right: .55rem; top: .6rem; width: .55rem; height: .55rem; border-top: 2px solid var(--azul); border-right: 2px solid var(--azul); }
.intel-herr__ico--ana::before { left: .7rem; top: .5rem; width: 1rem; height: 1.3rem; border: 2px solid var(--azul); border-radius: 3px; }
.intel-herr__ico--ana::after { right: .45rem; bottom: .45rem; width: .7rem; height: .7rem; border: 2px solid var(--azul); border-radius: 50%; background: #f3f6f2; }
.intel-herr__ico--ase::before { left: .6rem; top: .55rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--azul); box-shadow: .7rem 0 0 rgba(28, 59, 48,.5); }
.intel-herr__ico--ase::after { left: .45rem; right: .45rem; bottom: .5rem; height: .65rem; border-radius: .6rem .6rem .2rem .2rem; background: var(--azul); }

.intel-lista .panelbar { margin-bottom: 1rem; }
.intel-matches { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.intel-pie { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr)); gap: 1.25rem; margin-top: 2rem; }

/* --- Adaptación ------------------------------------------------------- */
@media (max-width: 1280px) {
  .intel-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .intel-herr__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .fin-cab, .cmp-form, .cmp-lienzo, .intel-rejilla { grid-template-columns: 1fr !important; }
  .cmp-detalle { position: static; }
  .intel-matches { grid-template-columns: 1fr; }
  .req__traza { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .fin-filtros { grid-template-columns: 1fr 1fr; border-radius: 20px; }
  .fin-filtros label { border-right: 0; border-bottom: 1px solid #edf2ec; }
  .fin-filtros .btn { grid-column: 1 / -1; }
  .fin-carriles__ancho { display: none; }
  .fin-carriles__movil { display: block; }
  .intel-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intel-kpis li:first-child { grid-column: 1 / -1; }
  .intel-herr__rejilla { grid-template-columns: 1fr; }
  .intel-barras li { grid-template-columns: 5.5rem 1fr 6.2rem; gap: .5rem; }
  .intel-plazos__i { grid-template-columns: 3rem 1fr; }
  .intel-plazos__i .intel-decidir { grid-column: 2; justify-self: start; }
  .intel-decidir__f { left: 0; right: auto; }
  .intel-proy li { grid-template-columns: 1fr auto; }
  .intel-proy li .srv__link { grid-column: 1 / -1; }
  .intel-motivos ul { margin-left: 0; }
  .fin-ficha__dl { grid-template-columns: 1fr; }
  .cmp-cuentas { grid-template-columns: 1fr 1fr 1fr; }
  .cmp-dl { grid-template-columns: 1fr; }
  .fin-selbar { border-radius: 20px; padding: .8rem 1rem; }
  .fin-selbar .btn { width: 100%; }
  /* Tablas en tarjetas */
  .fin-tabla__marco { overflow: visible; background: transparent; border: 0; box-shadow: none; }
  .fin-tabla:not(.cmp-matriz) thead { display: none; }
  .fin-tabla:not(.cmp-matriz), .fin-tabla:not(.cmp-matriz) tbody, .fin-tabla:not(.cmp-matriz) tr, .fin-tabla:not(.cmp-matriz) td { display: block; width: 100%; }
  .fin-tabla:not(.cmp-matriz) tr { position: relative; margin-bottom: .75rem; padding: .9rem 1rem; border-radius: 16px; background: #fff; border: 1px solid rgba(7,7,9,.06); box-shadow: var(--sombra-s); }
  .fin-tabla:not(.cmp-matriz) td { border: 0; padding: .3rem 0; display: grid; grid-template-columns: 7.5rem 1fr; gap: .6rem; align-items: start; max-width: none; min-width: 0; }
  .fin-tabla:not(.cmp-matriz) td::before { content: attr(data-l); font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--carbon); padding-top: .25rem; }
  .fin-tabla:not(.cmp-matriz) td.fin-tabla__nom { display: block; padding-right: 2rem; }
  .fin-tabla:not(.cmp-matriz) td.fin-tabla__nom::before { content: none; }
  .fin-tabla:not(.cmp-matriz) td.fin-tabla__sel { position: absolute; top: .8rem; right: .8rem; width: auto; display: block; padding: 0; }
  .fin-tabla:not(.cmp-matriz) td.fin-tabla__sel::before { content: none; }
  .fin-coste, .fin-compat, .fin-esf, .fin-tag, .fin-plazo { white-space: normal; justify-self: start; }
  .cmp-matriz th, .cmp-matriz td { padding: .5rem .35rem; }
  .cmp-matriz .fin-tabla__nom { min-width: 7rem; }
  .fin-tabla__marco:has(.cmp-matriz) { overflow-x: auto; background: #fff; border-radius: 16px; }
  .req__traza { grid-template-columns: 1fr 1fr; }
  .req__fila { grid-template-columns: 1.7rem 1fr; gap: .6rem; padding: .8rem; }
  .req__ico { width: 1.7rem; height: 1.7rem; }
  .intel-linea__i { grid-template-columns: 1fr auto; }
  .intel-linea__i a { grid-column: 1 / -1; }
  .cmp-aristas__b { grid-template-columns: auto 1fr; }
  .cmp-aristas__n { grid-column: 1 / -1; white-space: normal; }
  .intel-motor__acc { justify-content: stretch; }
  .intel-motor__acc .btn { flex: 1 1 auto; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .intel-herr__c, .cmp-arista, .fin-punto { transition: none; } }
