/* Marbellup × YES AI. Encima de base.css (el sistema de heart.turbineh.com / turbineh.com/accounting). */

/* Marca */
.marca { align-items: center; gap: 14px; }
.marca-txt { font-size: 17px; letter-spacing: -.01em; color: var(--fg, var(--negro)); white-space: nowrap; }
.marca-txt i { font-style: normal; color: var(--azul); margin: 0 2px; }
.nav .marca-txt { color: var(--fg); }
@media (max-width: 520px) { .marca-txt { font-size: 15px; } .marca { gap: 10px; } }
.nav-acceder { text-transform: uppercase; letter-spacing: .04em; font-size: 15px !important; }
.eyebrow { font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--azul); margin-bottom: 16px; }
.tenue { color: var(--tenue); }
.d1 em, .s-t em { font-style: normal; color: var(--azul); }
.boton { text-transform: none; }
.s-mini { padding: 6px 12px; font-size: 14px; box-shadow: inset 0 0 0 1px var(--linea2); background: #fff; color: var(--negro); }
.s-mini:hover { box-shadow: inset 0 0 0 1px var(--negro); }
.s-mini.azul { background: var(--azul); color: #fff; box-shadow: none; }

/* Portada: texto a la izquierda, formulario a la derecha */
.mup-portada { padding-bottom: clamp(64px, 9vw, 120px); }
.mup-portada::after { display: none; }
.mup-hero { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1040px) { .mup-hero { grid-template-columns: minmax(0, 1fr) 460px; gap: 72px; } }
.mup-hero-txt { position: relative; z-index: 1; }
.mup-hero .d1 { font-size: clamp(44px, 6.4vw, 104px); }
.mup-hero .sub { margin-top: 24px; max-width: 620px; color: var(--gris-osc); font-size: clamp(18px, 1.5vw, 22px); }
.chip-mup { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; margin-bottom: 28px; font-size: 15px; background: rgba(237, 244, 255, .1); color: var(--hielo); backdrop-filter: blur(16px); }
.claims { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 24px; font-size: 18px; color: var(--hielo); }
.claims li { display: flex; align-items: center; gap: 8px; }
.claims svg { width: 18px; height: 18px; color: var(--azul); }
.hechos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 40px; max-width: 640px; background: var(--linea-osc); box-shadow: 0 0 0 1px var(--linea-osc); }
.hechos li { display: flex; gap: 12px; padding: 16px; background: var(--negro); }
.hechos svg { width: 20px; height: 20px; color: var(--azul); flex: none; margin-top: 2px; }
.hechos b { display: block; font-weight: 400; color: var(--hielo); }
.hechos span { font-size: 14px; color: var(--gris-osc); line-height: 1.4; }
.solo-movil { margin-top: 32px; }
@media (min-width: 1040px) { .solo-movil { display: none; } }
@media (max-width: 720px) { .mup-hero .sub, .claims, .hechos { background: var(--negro); } }

/* Formulario */
.form-caja { position: relative; z-index: 1; background: #fff; color: var(--negro); padding: 32px 28px 28px; scroll-margin-top: 96px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
@media (max-width: 600px) { .form-caja { padding: 28px 20px 22px; } }
.f-pre { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--azul); }
.f-t { margin-top: 8px; font-weight: 400; font-size: clamp(28px, 3vw, 36px); letter-spacing: -.03em; line-height: 1.05; }
.form-caja .campo { margin-top: 16px; }
.f-enviar { width: 100%; justify-content: center; margin-top: 4px; text-transform: uppercase; letter-spacing: .04em; }
.f-enviar[disabled] { opacity: .6; cursor: default; }
.campo.error input { border-color: var(--azul) !important; box-shadow: 0 0 0 3px rgba(25, 118, 254, .18); }
.form-caja.brilla { animation: brilla 1s ease; }
@keyframes brilla { 30% { box-shadow: 0 0 0 4px var(--azul), 0 30px 80px rgba(0, 0, 0, .35); } }
.f-ok-sello { display: grid; place-items: center; width: 48px; height: 48px; background: var(--azul); color: #fff; }
.f-ok-sello svg { width: 26px; height: 26px; }
.f-ok .f-t { margin-top: 20px; }
.f-ok-p { margin-top: 10px; color: var(--tenue); }
.f-token { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; margin-top: 22px; padding: 18px 18px 16px; background: var(--negro); color: var(--hielo); }
.f-token small { grid-column: 1 / -1; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gris-osc); }
.f-token b { font: 400 26px/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: .05em; }
.f-ok-nota { margin-top: 12px; font-size: 14px; color: var(--tenue); }
.f-ok-nota b { font-weight: 500; color: var(--negro); }
.f-ok .botones { margin-top: 22px; }

/* Manifiesto */
.manifiesto { padding: clamp(72px, 9vw, 128px) 0; border-bottom: 1px solid var(--linea); }
.mani-1 { font-size: clamp(18px, 1.6vw, 22px); color: var(--tenue); }
.mani-2 { margin-top: 12px; max-width: 1100px; font: 400 clamp(36px, 4.8vw, 76px)/1.04 var(--serif); letter-spacing: -.03em; text-wrap: balance; }

/* La sesión */
.lleva { display: grid; gap: 12px; margin-top: 56px; }
@media (min-width: 800px) { .lleva { grid-template-columns: 1fr 1fr; } }
.lleva-c { background: var(--suave); padding: 32px 28px; min-height: 240px; display: flex; flex-direction: column; }
.lleva-c .num { font: 400 64px/1 var(--serif); letter-spacing: -.04em; color: var(--azul); }
.lleva-c h3 { margin-top: auto; padding-top: 28px; font-size: clamp(22px, 2vw, 28px); font-weight: 400; letter-spacing: -.02em; line-height: 1.15; }
.lleva-c p { margin-top: 8px; color: var(--tenue); max-width: 480px; }
.agenda-bloque { display: grid; gap: 32px; margin-top: 96px; }
@media (min-width: 1000px) { .agenda-bloque { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; } }
.agenda-bloque .sub { max-width: 420px; }
.agenda { counter-reset: a; border-top: 1px solid var(--negro); }
.agenda li { counter-increment: a; display: grid; grid-template-columns: 56px minmax(0, 1fr); padding: 18px 0; border-bottom: 1px solid var(--linea); font-size: clamp(19px, 1.6vw, 23px); letter-spacing: -.02em; }
.agenda li::before { content: counter(a, decimal-leading-zero); font-size: 15px; color: var(--azul); padding-top: 5px; font-variant-numeric: tabular-nums; }
.donde { display: grid; gap: 32px; margin-top: 96px; padding-top: 40px; border-top: 1px solid var(--negro); }
@media (min-width: 900px) { .donde { grid-template-columns: 1fr 1fr auto; align-items: end; } }
.donde h3 { font-size: clamp(22px, 2vw, 28px); font-weight: 400; letter-spacing: -.02em; }
.donde p:not(.eyebrow) { margin-top: 8px; color: var(--tenue); }
.donde .enlace { margin-top: 16px; font-size: 16px; }

/* Sesiones (genérico) + histórico */
.suave { background: var(--suave); }
.dos-col { display: grid; gap: 48px; }
@media (min-width: 1000px) { .dos-col { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 80px; align-items: end; } }
.principios { border-top: 1px solid var(--negro); }
.principios li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--linea2); }
.principios b { font-weight: 400; font-size: 19px; letter-spacing: -.02em; }
.principios span { color: var(--tenue); }
@media (max-width: 520px) { .principios li { grid-template-columns: 1fr; gap: 4px; } }
.historico { margin-top: 96px; }
.h-lista { border-top: 1px solid var(--negro); }
.h-lista li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--linea2); }
.h-n { color: var(--azul); font-variant-numeric: tabular-nums; }
.h-lista b { display: block; font-weight: 400; font-size: clamp(18px, 1.5vw, 21px); letter-spacing: -.02em; }
.h-lista small { color: var(--tenue); font-size: 14px; }
.h-lista time { color: var(--tenue); font-size: 14px; white-space: nowrap; }
.h-tag { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; padding: 4px 8px; background: var(--azul); color: #fff; }
.h-tag.gris { background: rgba(23, 23, 23, .08); color: var(--tenue); }
.h-lista .vacio { display: block; color: var(--tenue); }
.h-nota { margin-top: 14px; font-size: 14px; color: var(--tenue); }
@media (max-width: 640px) { .h-lista li { grid-template-columns: 40px minmax(0, 1fr); } .h-lista time, .h-lista .h-tag { grid-column: 2; justify-self: start; } }

/* Cierre */
.cierre-nota { margin-top: 20px; color: var(--gris-osc); }

/* YES AI */
.yesai { border-top: 1px solid var(--linea); }
.yesai-fila { display: grid; gap: 48px; }
@media (min-width: 1000px) { .yesai-fila { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 80px; align-items: end; } }
.yesai .sub { margin-top: 20px; max-width: 620px; }
.yesai .sub b { font-weight: 500; color: var(--negro); }
.yesai .botones { margin-top: 32px; }
.yesai .boton svg { width: 14px; height: 14px; }
.yesai-datos { border-top: 1px solid var(--negro); }
.yesai-datos li { padding: 18px 0; border-bottom: 1px solid var(--linea); }
.yesai-datos b { display: block; font-weight: 400; font-size: 19px; letter-spacing: -.02em; }
.yesai-datos span { color: var(--tenue); }

/* Barra fija en móvil con el único CTA */
.barra-movil { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 45; display: flex; justify-content: center; align-items: center; gap: 10px; padding: 16px; background: var(--azul); color: #fff; font-size: 17px; text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); transform: translateY(140%); transition: transform .25s ease; }
.barra-movil svg { width: 18px; height: 18px; }
.barra-movil.ver { transform: none; }
.barra-movil[hidden] { display: none; }
@media (min-width: 1040px) { .barra-movil { display: none; } }

/* Vídeo «Quiénes somos» */
.modal-video { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; }
.modal-video[hidden] { display: none; }
.mv-fondo { position: absolute; inset: 0; background: rgba(23, 23, 23, .82); }
.mv-caja { position: relative; width: min(1100px, 100%); }
.mv-marco { aspect-ratio: 16 / 9; background: #000; }
.mv-marco iframe { width: 100%; height: 100%; border: 0; display: block; }
.mv-x { position: absolute; right: 0; top: -48px; width: 44px; height: 44px; font-size: 30px; color: #fff; }

/* ---------- /acceso ---------- */
.pag-acceso { background: var(--negro); }
.acceso { position: relative; min-height: 100vh; display: grid; place-items: center; padding: 120px 16px 48px; overflow: hidden; color: var(--negro); }
.acceso-caja { position: relative; z-index: 1; width: 100%; max-width: 480px; background: #fff; padding: 36px 32px 28px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
@media (max-width: 600px) { .acceso-caja { padding: 28px 20px 22px; } }
.a-ayuda { margin-top: 10px; color: var(--tenue); }
.a-ayuda b { font-weight: 500; color: var(--negro); }
.campo input.a-token { font: 400 22px/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace !important; letter-spacing: .08em; text-transform: uppercase; }
.a-pie { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 20px; }
.a-link { font-size: 15px; color: var(--tenue); text-decoration: underline; text-underline-offset: 3px; }
.a-link:hover { color: var(--azul); }
#a-ya .f-enviar { margin-top: 24px; }
#a-ya .a-link { display: block; margin: 16px auto 0; }
.a-ok { color: var(--azul) !important; }

/* ---------- /sesion ---------- */
.pag-sesion { background: #fff; }
.nav.fija { position: sticky; top: 0; inset: auto; padding: 12px 0; background: rgba(255, 255, 255, .9); backdrop-filter: blur(16px); border-bottom: 1px solid var(--linea); }
.nav.fija .sello { width: 48px; height: 48px; } .nav.fija .sello svg { width: 36px; height: 36px; }
.nav.fija .boton { font-size: 15px; padding: 10px 14px; color: var(--negro); background: none; box-shadow: inset 0 0 0 1px var(--linea2); }
.s-hola { margin-right: 14px; color: var(--tenue); }
@media (max-width: 600px) { .s-hola { display: none; } }
.s-main { padding-top: 28px; padding-bottom: 40px; }
.s-meta { font-size: 15px; color: var(--tenue); } .s-meta b { font-weight: 500; color: var(--azul); }
.s-t { margin-top: 8px; font: 400 clamp(30px, 3.6vw, 52px)/1.02 var(--serif); letter-spacing: -.03em; }
.s-grid { display: grid; gap: 20px; margin-top: 28px; }
@media (min-width: 1000px) { .s-grid { grid-template-columns: 320px minmax(0, 1fr); gap: 28px; } }
.s-lado { display: grid; gap: 12px; align-content: start; }
.s-kahoot { background: var(--negro); color: var(--hielo); padding: 20px; display: grid; gap: 8px; }
.s-kahoot small { color: var(--gris-osc); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.s-kahoot b { font: 400 44px/1 ui-monospace, Menlo, monospace; letter-spacing: .06em; }
.s-kahoot .boton { justify-content: center; margin-top: 6px; font-size: 16px; }
.s-agenda { counter-reset: a; background: var(--suave); padding: 8px 18px; }
.s-agenda li { counter-increment: a; display: grid; grid-template-columns: 30px 1fr; padding: 9px 0; border-bottom: 1px solid var(--linea); font-size: 15px; }
.s-agenda li:last-child { border: 0; }
.s-agenda li::before { content: counter(a, decimal-leading-zero); color: var(--azul); font-size: 13px; padding-top: 2px; }
.s-lleva { padding: 16px 18px; box-shadow: inset 0 0 0 1px var(--linea); display: grid; gap: 8px; font-size: 15px; }
.s-lleva small { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--tenue); }
.s-lleva p { display: flex; gap: 8px; } .s-lleva svg { width: 16px; height: 16px; flex: none; color: var(--azul); margin-top: 3px; }
.s-pasos { min-width: 0; box-shadow: inset 0 0 0 1px var(--linea); }
.s-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--linea); }
.s-tabs button { display: flex; align-items: flex-start; gap: 10px; padding: 16px; text-align: left; font-size: 15px; line-height: 1.25; color: var(--tenue); border-right: 1px solid var(--linea); transition: background-color .15s, color .15s; }
.s-tabs button:last-child { border-right: 0; }
.s-tabs button span { display: grid; place-items: center; width: 24px; height: 24px; flex: none; font-size: 13px; box-shadow: inset 0 0 0 1px var(--linea2); }
.s-tabs button[aria-selected="true"] { background: var(--suave); color: var(--negro); box-shadow: inset 0 -2px 0 var(--azul); }
.s-tabs button[aria-selected="true"] span { background: var(--azul); color: #fff; box-shadow: none; }
@media (max-width: 760px) { .s-tabs { grid-template-columns: 1fr 1fr; } .s-tabs button:nth-child(2) { border-right: 0; } .s-tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--linea); } }
.s-pasos [role="tabpanel"] { padding: 22px; }
.s-desc { font-size: 17px; max-width: 760px; }
.s-pasos .botones { margin-top: 16px; }
.s-pasos .boton { font-size: 16px; padding: 10px 16px; }
.s-code { margin-top: 18px; box-shadow: inset 0 0 0 1px var(--linea); }
.s-code-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 10px 8px 14px; border-bottom: 1px solid var(--linea); font-size: 13px; color: var(--tenue); background: var(--suave); }
.s-code-bar div { display: flex; gap: 6px; }
.s-code pre { max-height: min(46vh, 440px); overflow: auto; padding: 16px; font: 13px/1.55 ui-monospace, "SFMono-Regular", Menlo, monospace; white-space: pre-wrap; word-break: break-word; }
.s-code mark { background: rgba(25, 118, 254, .16); color: var(--azul); padding: 0 3px; font-weight: 600; }
.s-pie { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-top: 20px; padding: 18px 20px; background: var(--suave); }
.s-pie p { max-width: 640px; color: var(--tenue); } .s-pie b { font-weight: 500; color: var(--negro); }
.s-pie .boton { font-size: 16px; padding: 10px 16px; }

/* Móvil: nada se sale de la pantalla */
.mup-hero { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1040px) { .mup-hero { grid-template-columns: minmax(0, 1fr) 460px; } }
.chip-mup { max-width: 100%; flex-wrap: wrap; line-height: 1.35; }
@media (max-width: 560px) { .hechos { grid-template-columns: 1fr; } .chip-mup { font-size: 14px; } .nav-acceder { padding: 10px 12px !important; } }
.nav-acceder, [data-cta], .barra-movil { text-transform: uppercase; letter-spacing: .04em; }
.chip-mup { display: inline-block; }
.chip-mup .v-vivo { display: inline-block; margin-right: 8px; vertical-align: middle; }

/* Logo de Marbellup: verde claro sobre negro, verde oscuro sobre claro */
.logo-mup { height: 26px; width: auto; display: block; }
.logo-mup.oscuro { display: none; }
.nav.claro .logo-mup.claro, .nav.fija .logo-mup.claro { display: none; }
.nav.claro .logo-mup.oscuro, .nav.fija .logo-mup.oscuro { display: block; }
@media (max-width: 520px) { .logo-mup { height: 20px; } }
.mv-marco video { width: 100%; height: 100%; display: block; background: #000; }

/* ---------- Sesión v2: guía + código, demo ---------- */
.s-tabs button { font-size: 14.5px; }
.ley-n { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; flex: none; font-size: 12px; font-weight: 500; background: var(--azul); color: #fff; }
/* Paso 1 */
.check { display: grid; gap: 8px; margin-top: 16px; }
.check li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 16px; background: var(--suave); }
.check b { display: block; font-weight: 500; } .check small { color: var(--tenue); font-size: 14px; }
.check .boton { font-size: 15px; padding: 9px 14px; }
@media (max-width: 640px) { .check li { grid-template-columns: auto 1fr; } .check .boton { grid-column: 2; justify-self: start; } }
.setup-email { max-width: 520px; margin-top: 20px; } .setup-email em { font-style: normal; color: var(--azul); }
/* Prompt y script: guía a la izquierda, código a la derecha */
.g-grid { display: grid; gap: 18px; }
@media (min-width: 1180px) { .g-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; } .g-grid > .s-code { position: sticky; top: 90px; margin-top: 0; } }
.g-col { display: grid; gap: 14px; align-content: start; }
.g-col .s-desc { font-size: 15.5px; color: var(--tenue); }
.g-antes { background: var(--suave); padding: 12px 16px; }
.g-antes summary { cursor: pointer; font-weight: 500; display: flex; gap: 8px; align-items: baseline; }
.g-antes summary small { font-weight: 400; color: var(--azul); font-size: 13px; }
.g-antes ol { counter-reset: g; margin-top: 8px; display: grid; gap: 6px; }
.g-antes li { counter-increment: g; display: grid; grid-template-columns: 22px 1fr; font-size: 14px; line-height: 1.45; }
.g-antes li::before { content: counter(g) "."; color: var(--azul); }
.g-ley-t { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.g-ley-s { font-size: 13.5px; color: var(--tenue); margin-top: 2px; }
.g-cuenta { margin-left: auto; font-size: 12px; font-weight: 400; padding: 2px 8px; background: rgba(23, 23, 23, .07); color: var(--tenue); }
.g-cuenta.ok { background: var(--azul); color: #fff; }
.ley-lista { display: grid; gap: 6px; margin-top: 10px; }
.ley { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 10px 12px; box-shadow: inset 0 0 0 1px var(--linea); transition: box-shadow .15s, background-color .15s; }
.ley:hover, .ley:focus-within { box-shadow: inset 0 0 0 1px var(--azul); background: #fbfdff; }
.ley.lleno .ley-n { background: var(--negro); }
.ley-txt b { display: block; font-weight: 500; font-size: 14px; font-family: ui-monospace, Menlo, monospace; letter-spacing: 0; }
.ley-txt small { display: block; font-size: 13px; color: var(--tenue); line-height: 1.4; margin-top: 2px; }
.ley-in { width: 100%; margin-top: 8px; font: 14px ui-monospace, Menlo, monospace; padding: 8px 10px; border: 1px solid var(--linea2); outline: none; }
.ley-in:focus { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(25, 118, 254, .15); }
.g-extra .s-code { margin-top: 8px; } .g-extra .s-code pre { max-height: 110px; }
.g-tip { font-size: 14px; padding: 12px 14px; background: #fff8e6; box-shadow: inset 3px 0 0 #f2b33d; }
.g-tip b { font-weight: 500; margin-right: 4px; }
.g-grid .s-code pre { max-height: calc(100vh - 230px); min-height: 380px; }
mark.ph { position: relative; cursor: pointer; background: rgba(25, 118, 254, .14); color: var(--azul); padding: 1px 3px; font-weight: 600; transition: background-color .2s; }
mark.ph::before { content: attr(data-n); position: relative; top: -.55em; margin-right: 3px; font-size: 9px; padding: 0 3px; background: var(--azul); color: #fff; }
mark.ph.lleno { background: rgba(23, 23, 23, .08); color: var(--negro); }
mark.ph.foco { background: var(--azul); color: #fff; } mark.ph.foco::before { background: #fff; color: var(--azul); }
[data-code]:fullscreen, [data-code].proyecta { background: #fff; padding: 20px; overflow: auto; }
[data-code]:fullscreen pre, [data-code].proyecta pre { max-height: none; font-size: 22px; line-height: 1.5; }
[data-code].proyecta { position: fixed; inset: 0; z-index: 80; }
/* Demo: flujo de pasos */
.flujo { margin-top: 16px; display: grid; }
.fp { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; position: relative; padding-bottom: 18px; opacity: .45; transition: opacity .3s; }
.fp::before { content: ""; position: absolute; left: 16px; top: 34px; bottom: 0; width: 2px; background: var(--linea); }
.fp:last-child::before { display: none; }
.fp.activo, .fp.trabajando, .fp.hecho { opacity: 1; }
.fp-n { display: grid; place-items: center; width: 34px; height: 34px; font-size: 14px; box-shadow: inset 0 0 0 1.5px var(--linea2); background: #fff; position: relative; z-index: 1; }
.fp.activo .fp-n { box-shadow: inset 0 0 0 2px var(--azul); color: var(--azul); }
.fp.trabajando .fp-n { background: var(--azul); color: #fff; box-shadow: none; animation: late 1s ease-in-out infinite; }
.fp.hecho .fp-n { background: var(--azul); color: transparent; box-shadow: none; }
.fp.hecho .fp-n::after { content: ""; position: absolute; left: 12px; top: 8px; width: 7px; height: 13px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.fp.hecho::before { background: var(--azul); }
.fp h4 { font-size: 18px; font-weight: 400; letter-spacing: -.01em; padding-top: 5px; }
.fp-res { margin-top: 10px; }
.demo-envio { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.demo-envio input { flex: 1 1 260px; font: inherit; padding: 11px 14px; border: 1px solid var(--linea2); outline: none; }
.demo-envio input:focus { border-color: var(--azul); }
.demo-envio .boton { font-size: 16px; padding: 11px 16px; }
.fp-ok { display: flex; align-items: center; gap: 8px; } .fp-ok svg { width: 18px; height: 18px; color: var(--azul); }
.mini-fras { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin-top: 10px; }
.mini-fras div { padding: 12px; background: var(--suave); display: grid; gap: 2px; }
.mini-fras small { color: var(--tenue); font: 12px ui-monospace, Menlo, monospace; } .mini-fras b { font-weight: 500; font-size: 14px; } .mini-fras span { font: 400 22px/1.2 var(--serif); color: var(--azul); }
.barra { height: 6px; background: var(--suave); overflow: hidden; } .barra i { display: block; height: 100%; width: 0; background: var(--azul); }
.log { margin-top: 10px; display: grid; gap: 6px; font-size: 14px; }
.log li { display: flex; gap: 10px; align-items: center; animation: entra .3s ease both; }
.log li i { width: 14px; height: 14px; flex: none; border: 2px solid var(--azul); border-right-color: transparent; border-radius: 50%; animation: gira .8s linear infinite; }
.log li.ok i { border: 0; border-radius: 0; animation: none; background: var(--azul); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; }
@keyframes gira { to { transform: rotate(360deg); } }
@keyframes entra { from { opacity: 0; transform: translateY(4px); } }
.asientos { display: grid; gap: 10px; }
.as { box-shadow: inset 0 0 0 1px var(--linea); animation: entra .4s ease both; }
.as:nth-child(2) { animation-delay: .15s; } .as:nth-child(3) { animation-delay: .3s; }
.as header { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 12px 14px; background: var(--suave); }
.as header b { display: block; font-weight: 500; } .as header small { color: var(--tenue); font-size: 13px; }
.as-n { font-size: 12px; padding: 3px 8px; background: var(--negro); color: #fff; white-space: nowrap; }
.as table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.as th { text-align: left; font-weight: 400; color: var(--tenue); font-size: 12px; padding: 8px 14px; border-bottom: 1px solid var(--linea); }
.as td { padding: 7px 14px; border-bottom: 1px solid var(--linea); }
.as th:nth-child(n+3), .as td:nth-child(n+3) { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.as tfoot td { color: var(--tenue); font-size: 12.5px; border: 0; } .as tfoot td:nth-child(n+3) { color: var(--negro); font-weight: 500; }
.mono { font-family: ui-monospace, Menlo, monospace; font-size: 12.5px; }
.alta { font-style: normal; font-size: 11px; padding: 1px 6px; background: rgba(25, 118, 254, .12); color: var(--azul); margin-left: 4px; }
.as details { padding: 8px 14px 10px; font-size: 13px; } .as summary { cursor: pointer; color: var(--azul); }
.as details pre { margin-top: 8px; padding: 10px; background: var(--suave); font: 12px/1.5 ui-monospace, Menlo, monospace; overflow: auto; }
@media (max-width: 640px) { .as td:nth-child(2), .as th:nth-child(2) { display: none; } }
.aprobar { margin-top: 14px; font-size: 17px; padding: 14px 22px; } .aprobar svg { width: 18px; height: 18px; } .aprobar[disabled] { opacity: .5; }
.fin p { font-size: 18px; } .fin b { font-weight: 500; color: var(--azul); } .fin .boton { margin-top: 12px; font-size: 15px; padding: 9px 14px; }
/* Réplica de Aplifisa (aspecto de aplicación de escritorio Windows) */
.apli { margin-top: 12px; font: 12.5px/1.35 "Segoe UI", Tahoma, Arial, sans-serif; color: #1b1b1b; background: #f0f0f0; box-shadow: 0 0 0 1px #9aa4b1, 0 12px 30px rgba(0, 0, 0, .15); animation: entra .3s ease both; }
.apli-tit { display: flex; align-items: center; gap: 6px; padding: 7px 10px; background: linear-gradient(#2f6db5, #1f5596); color: #fff; font-weight: 600; }
.apli-tit span { margin-right: auto; } .apli-tit i { width: 12px; height: 12px; background: rgba(255, 255, 255, .35); }
.apli-menu { display: flex; gap: 2px; padding: 3px 6px; background: #fafafa; border-bottom: 1px solid #c9ced6; }
.apli-menu span { padding: 3px 9px; } .apli-menu span.on { background: #cce4f7; box-shadow: inset 0 0 0 1px #99c9ef; }
.apli-ruta { padding: 5px 10px; color: #4a5562; background: #e9edf2; border-bottom: 1px solid #c9ced6; }
.apli-cuerpo { position: relative; min-height: 200px; padding: 14px; background: #fff; }
.apli-dlg { max-width: 460px; margin: 10px auto; background: #f0f0f0; box-shadow: 0 0 0 1px #8a96a3, 0 10px 24px rgba(0, 0, 0, .2); }
.apli-dlg-t { padding: 6px 10px; background: #fff; border-bottom: 1px solid #d5d9de; font-weight: 600; }
.apli-dlg-c { padding: 14px 16px; display: grid; gap: 6px; }
.apli-dlg-c.ok { grid-template-columns: auto 1fr; gap: 14px; align-items: start; }
.apli-ok { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #1e9e4a; color: #fff; } .apli-ok svg { width: 20px; height: 20px; }
.apli-barra { height: 16px; background: #e6e6e6; box-shadow: inset 0 0 0 1px #bcbcbc; margin-top: 6px; }
.apli-barra i { display: block; height: 100%; width: 0; background: repeating-linear-gradient(90deg, #06b025 0 10px, #23c443 10px 12px); transition: width 2.1s ease; }
.apli-est { color: #4a5562; }
.apli-dlg-b { display: flex; justify-content: flex-end; padding: 8px 12px 12px; }
.apli-dlg-b button { min-width: 84px; padding: 4px 12px; background: #e1e1e1; box-shadow: inset 0 0 0 1px #0078d7; font: inherit; }
.apli-diario { width: 100%; border-collapse: collapse; font-size: 12px; animation: entra .3s ease both; }
.apli-diario th { background: #e9edf2; text-align: left; padding: 5px 8px; border: 1px solid #c9ced6; font-weight: 600; }
.apli-diario td { padding: 4px 8px; border: 1px solid #e1e4e8; }
.apli-diario td:nth-child(n+5), .apli-diario th:nth-child(n+5) { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.apli-diario tbody tr:nth-child(odd) { background: #f7f9fc; }

/* Paso 2 y 3: nada se solapa. Las columnas ceden; 2 columnas solo si hay sitio, si no, apiladas. */
.s-pasos, .s-pasos [role="tabpanel"], .g-grid > *, .g-col > *, .ley-txt, .g-extra .s-code { min-width: 0; }
.g-grid { grid-template-columns: minmax(0, 1fr) !important; }
@media (min-width: 1360px) { .g-grid { grid-template-columns: minmax(0, 360px) minmax(0, 1fr) !important; gap: 24px; } }
@media (max-width: 1359px) { .g-grid > .s-code { position: static; } .ley-lista { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } }
.s-code-bar { flex-wrap: wrap; }
.s-code-bar > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 140px; }
.s-code-bar div { flex: none; flex-wrap: wrap; }
.s-code pre { overflow-wrap: anywhere; }
.ley-in { max-width: 100%; text-overflow: ellipsis; }
.ley-txt small { overflow-wrap: anywhere; }
.g-antes li { overflow-wrap: anywhere; }
.g-col { gap: 16px; }
/* Script: etiquetas en texto normal (en el prompt siguen en mono porque son los [MARCADORES]) */
#p-script .ley-txt b { font-family: var(--texto); letter-spacing: -.01em; }
@media (max-width: 640px) { .s-pasos [role="tabpanel"] { padding: 16px; } .s-code-bar .s-mini { padding: 6px 9px; font-size: 13px; } }
