/* =========================================================================
   Analizador de contratos (/analizar-contrato/) con el estilo nuevo (fase 2, área 4).
   Variables y componentes de base.css (.cabeza--herramienta, .boton, .pastilla, .aviso, .vacio…);
   aquí solo lo propio del analizador, con el prefijo «ac-» (y «tt-» para «Tacha tus datos»).
   Referencias de diseño: planning/analizar-contrato/MOBBIN.md y planning/estilo-nuevo/fase2/cuentas/MOBBIN.md
   Móvil: campos a 16 px (sin zoom al enfocar en iPhone) y todo lo que se toca, de 44 px o más.
   ========================================================================= */

/* ── Cabecera morada oscura de la herramienta (.cabeza--herramienta de base.css) ──────────────
   partials/contratos-cabeza.php: migas, etiqueta, título + Beta, nota beta, entradilla, tipos y lado (foto o icono 3D).
   --solapa: la herramienta se monta encima del borde inferior (.solapa de base.css). */
.ac-cabeza { padding-top: 0; }
.ac-cabeza .migas { padding-top: var(--e-4); margin-bottom: var(--e-4); }
.ac-cabeza .migas__lista, .ac-cabeza .migas__item a { color: rgb(255 255 255 / .78); }
.ac-cabeza .migas__item [aria-current] { color: #fff; }
.ac-cabeza .cabeza__titulo { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.4rem); max-width: 22ch; }
.ac-cabeza .cabeza__titulo span.pastilla--beta { display: inline-flex; vertical-align: .55em; margin-left: .3rem; font-size: 1rem; letter-spacing: .06em; color: var(--ambar-texto); text-shadow: none; -webkit-text-stroke: 0; }
.ac-cabeza .ac-beta-nota { margin: .6rem 0 0; color: #ffd970; }
.ac-cabeza .cabeza__entradilla { font-size: clamp(1rem, .95rem + .35vw, 1.2rem); }
.ac-cabeza__etiqueta { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; }
.ac-cabeza__etiqueta .pastilla { background: rgb(255 255 255 / .1); color: #fff; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .25); }
.ac-cabeza__lado { display: none; }
.ac-cabeza__lado img:not(.ico3d) { width: 100%; height: auto; border-radius: var(--r-4); box-shadow: var(--s-3); }
.ac-cabeza__lado .ico3d { --ico: var(--cabeza-ico); justify-self: end; margin-block: calc(var(--ico) * -.1); filter: drop-shadow(0 0 36px rgb(190 150 255 / .3)); }   /* como .cabeza__icono de base.css */
@media (min-width: 64rem) { .ac-cabeza__lado { display: grid; } }
.ac-cabeza--solapa { padding-bottom: clamp(5rem, 3rem + 5vw, 7.5rem); }
.ac-cabeza--compacta .cabeza__titulo { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem); }
.ac-cabeza .cabeza__meta { color: rgb(255 255 255 / .82); font-weight: 500; }
.ac-cabeza .ac-informe__acciones { margin-top: 1.2rem; }
/* Tipos de contrato bajo el título */
.ac-tipos { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.ac-tipos li { padding: .3rem .75rem; border-radius: 999px; background: rgb(255 255 255 / .1); border: 1px solid rgb(255 255 255 / .22); color: #fff; font-size: 1rem; font-weight: 600; }
.ac-cuerpo { padding-block: var(--e-6) var(--seccion); }
.ac-cuerpo--solapa { padding-top: 0; }

/* ── Componente (subir) ─────────────────────────────────────────────────── */
.ac { color: var(--tinta); margin: 0 0 2rem; }
.ac__caja { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); border-radius: 22px; background: #fff; border: 1px solid var(--borde); box-shadow: var(--s-2); overflow: hidden; }
.ac__caja--una { grid-template-columns: 1fr; }
.ac__caja--una > div { padding: clamp(1.2rem, 3vw, 2rem); }
.ac__principal { padding: clamp(1.2rem, 3vw, 2rem); }
.ac__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; margin-bottom: 1rem; }
.ac__cabeza h2 { margin: 0; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); color: var(--tinta); }
.ac__cupo { margin: 0; font-size: 1rem; font-weight: 600; color: var(--etiqueta); }
.ac__cupo:empty { display: none; }
.ac__error { display: flex; gap: .5rem; align-items: flex-start; margin: 0 0 1rem; padding: .75rem .9rem; border-radius: 12px; background: var(--rojo-fondo); color: var(--rojo-texto); font-weight: 600; }
.ac__nota { margin: .5rem 0; padding: .6rem .85rem; border-radius: 12px; background: var(--lila-50); color: var(--tinta-2); font-size: 1rem; }
.ac__cuenta, .ac__sin-cupo { margin: 0 0 1rem; padding: 1rem 1.1rem; border-radius: 14px; background: linear-gradient(170deg, var(--lila-50), #fff); border: 1px solid #d9c8fb; }
.ac__cuenta p, .ac__sin-cupo p { margin: 0 0 .6rem; }
.ac__botones { display: flex; flex-wrap: wrap; gap: .6rem; margin: .4rem 0 0; }
.ac__form[aria-disabled="true"] { opacity: .5; pointer-events: none; }

.ac__pestanas { display: inline-flex; gap: .25rem; padding: .25rem; margin-bottom: .9rem; border-radius: 12px; background: var(--lila-50); border: 1px solid var(--borde); }
.ac__pestana { min-height: 44px; padding: .5rem 1rem; border: 0; border-radius: 9px; background: none; font: 700 1rem var(--f); color: var(--tinta-2); cursor: pointer; }
.ac__pestana[aria-selected="true"] { background: #fff; color: var(--morado); box-shadow: var(--s-1); }

.ac__soltar { position: relative; display: grid; justify-items: center; gap: .35rem; padding: 1.8rem 1rem; border: 2px dashed #cbbcea; border-radius: 16px; background: #fcfaff; text-align: center; cursor: pointer; transition: border-color .2s, background-color .2s; }
.ac__soltar:hover, .ac__soltar.es-encima { border-color: var(--morado); background: var(--lila-50); }
.ac__soltar:focus-within { outline: 3px solid var(--morado); outline-offset: 2px; }
.ac__soltar-icono { display: grid; place-items: center; }
.ac__soltar-icono .ico3d { --ico: 56px; }
.ac__soltar-texto { font-size: 1rem; }
.ac__enlace { color: var(--morado); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.ac__soltar-nota { font-size: 1rem; color: var(--tinta-2); }
.ac__archivo-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.ac__elegido { display: flex; align-items: center; gap: .6rem; padding: .8rem 1rem; border-radius: 14px; background: var(--lila-50); border: 1px solid var(--borde); font-weight: 600; }
.ac__elegido .icono { color: var(--icono); }
.ac__quitar { margin-left: auto; min-height: 44px; padding: .3rem .8rem; border: 0; border-radius: 8px; background: none; color: var(--morado); font-weight: 700; cursor: pointer; }
.ac__texto { width: 100%; min-height: 12rem; padding: .8rem; border: 1.5px solid var(--borde-campo); border-radius: 12px; font: 1rem/1.5 var(--f); resize: vertical; }
.ac__fila { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1rem; }
.ac__campo { display: grid; gap: .3rem; }
.ac__etiqueta { font-size: 1rem; font-weight: 700; color: var(--tinta); }
.ac__etiqueta small { font-weight: 500; color: var(--tinta-2); }
.ac__campo select, .ac__campo input { width: 100%; min-height: 48px; padding: .55rem .75rem; border: 1.5px solid var(--borde-campo); border-radius: 10px; background: #fff; font: 600 1rem var(--f); color: var(--tinta); }
.ac__campo select:focus, .ac__campo input:focus, .ac__texto:focus, .ac-avisanos__form textarea:focus { outline: none; border-color: var(--morado); box-shadow: 0 0 0 4px rgb(122 18 242 / .16); }
.ac__check { display: flex; gap: .55rem; align-items: flex-start; margin: 1rem 0; font-size: 1rem; color: var(--tinta-2); }
.ac__check input { width: 1.25rem; height: 1.25rem; flex: none; margin-top: .1rem; accent-color: var(--morado); }
.ac__enviar { width: 100%; min-height: 56px; font-size: 1.05rem; }
.ac__estado-envio { margin: .6rem 0 0; text-align: center; font-weight: 600; color: var(--etiqueta); }
.ac__privado { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.1rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: 1rem; color: var(--tinta-2); }
.ac__privado li { display: inline-flex; align-items: center; gap: .3rem; }
.ac__privado .icono { color: var(--verde-texto); }

.ac__lado { padding: clamp(1.2rem, 3vw, 2rem); background: radial-gradient(22rem 14rem at 100% 0%, rgb(26 255 224 / .16), transparent 70%), linear-gradient(170deg, var(--cab-2), var(--cab-1)); color: #f1ecff; }
.ac__lado a { color: #fff; }
.ac__lado-titulo { margin: 0 0 .8rem; font-weight: 800; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; color: var(--turquesa); }
.ac__pasos { margin: 0; padding: 0; list-style: none; counter-reset: paso; display: grid; gap: .9rem; }
.ac__pasos li { counter-increment: paso; position: relative; min-height: 30px; padding-left: 2.6rem; font-size: 1rem; line-height: 1.45; }
.ac__pasos li::before { content: counter(paso); position: absolute; left: 0; top: -.1rem; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgb(255 255 255 / .1); border: 1px solid rgb(26 255 224 / .5); color: var(--turquesa); font-weight: 800; }
.ac__pasos strong { color: #fff; }
.ac__lado .ac__leyenda { margin-top: 1.4rem; }
.ac__lado .ac__leyenda li { color: #e5ddff; }
.ac__mis { margin: 1.4rem 0 0; font-size: 1rem; }
.ac__aviso { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: .9rem 0 0; font-size: 1rem; color: var(--tinta-2); }
.ac__aviso--arriba { display: block; padding: .75rem .9rem; border-radius: 12px; background: var(--ambar-fondo); color: var(--ambar-texto); margin-bottom: 1rem; }
/* Función beta (04-11-2026): pastilla .pastilla--beta de base.css junto al título + nota debajo */
.ac-beta-nota { margin: .2rem 0 .6rem; font-size: 1rem; color: var(--ambar-texto); font-weight: 700; }
.ac__aviso--beta { border: 1px solid var(--ambar-texto); }
.ac-solo-imprimir { display: none; }
.ac-avisanos { margin-top: 1.5rem; }
.ac-avisanos__caja summary { display: inline-flex; cursor: pointer; list-style: none; }
.ac-avisanos__caja summary::-webkit-details-marker { display: none; }
.ac-avisanos__form { display: grid; gap: .8rem; max-width: 640px; margin-top: .9rem; }
.ac-avisanos__form textarea { width: 100%; padding: .6rem .7rem; border: 1.5px solid var(--borde-campo); border-radius: 10px; font: 1rem/1.5 var(--f); }

/* Semáforo */
.ac-semaforo { display: inline-flex; align-items: center; gap: .3rem; padding: .18rem .6rem; border-radius: 999px; font-size: 1rem; font-weight: 800; white-space: nowrap; }
.ac-semaforo::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.ac-semaforo--bien { background: var(--verde-fondo); color: var(--verde-texto); }
.ac-semaforo--ojo { background: var(--ambar-fondo); color: var(--ambar-texto); }
.ac-semaforo--revisar { background: var(--rojo-fondo); color: var(--rojo-texto); }
.ac-semaforo--nada { background: #eeeaf5; color: var(--tinta-2); }
.ac__leyenda { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; font-size: 1rem; }
.ac__leyenda li { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }

/* ── Espera ─────────────────────────────────────────────────────────────── */
.ac-espera h1 { margin: .3rem 0 .6rem; }
.ac-espera__etiqueta { display: inline-flex; align-items: center; gap: .5rem; margin: 0; font-weight: 800; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--etiqueta); }
.ac-giro { width: 16px; height: 16px; border-radius: 50%; border: 3px solid var(--lila-100); border-top-color: var(--morado); animation: ac-giro 1s linear infinite; }
@keyframes ac-giro { to { transform: rotate(360deg); } }
.ac-espera__paso { margin: 0 0 .4rem; font-size: 1.15rem; font-weight: 700; }
.ac-progreso { height: 8px; margin: 1rem 0; border-radius: 8px; background: var(--lila-100); overflow: hidden; }
.ac-progreso span { display: block; width: 8%; height: 100%; border-radius: 8px; background: linear-gradient(90deg, var(--morado), var(--turquesa-2)); transition: width .8s ease; }
.ac-espera__nota { color: var(--tinta-2); }
@media (prefers-reduced-motion: reduce) { .ac-giro { animation: none; } .ac-progreso span { transition: none; } }

/* ── Informe ────────────────────────────────────────────────────────────── */
.ac-informe { padding-bottom: 3rem; }
.ac-informe__cabeza { margin: 1rem 0 1.2rem; }
.ac-informe__cabeza h1 { margin: .5rem 0 .4rem; }
.ac-informe__meta { margin: 0 0 .8rem; color: var(--tinta-2); font-size: 1rem; }
.ac-informe__acciones { display: flex; flex-wrap: wrap; gap: .5rem; }
.ac-informe__acciones form { margin: 0; }
.ac-veredicto { margin: 0 0 1.5rem; padding: 1.2rem 1.3rem; border-radius: 18px; background: linear-gradient(170deg, var(--cab-2), var(--cab-1)); color: #fff; box-shadow: var(--s-2); }
.ac-veredicto__texto { margin: 0 0 .9rem; font-size: clamp(1.1rem, 1rem + .6vw, 1.35rem); font-weight: 700; line-height: 1.35; }
.ac-veredicto__barra { display: flex; gap: 3px; height: 10px; margin-bottom: .9rem; border-radius: 10px; overflow: hidden; background: rgb(255 255 255 / .12); }
.ac-veredicto__tramo { flex: 1 1 0; }
.ac-veredicto__tramo--revisar { background: #ff6b88; }
.ac-veredicto__tramo--ojo { background: #ffc94d; }
.ac-veredicto__tramo--bien { background: var(--turquesa-2); }
.ac-veredicto__cuenta { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.ac-informe__indice { position: sticky; top: var(--cabecera-alto); z-index: 2; display: flex; gap: .3rem; overflow-x: auto; margin: 0 0 1.5rem; padding: .5rem; border-radius: 12px; background: rgb(255 255 255 / .95); border: 1px solid var(--borde); }
.ac-informe__indice a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: .4rem .75rem; border-radius: 8px; color: var(--tinta); font-size: 1rem; font-weight: 600; text-decoration: none; }
.ac-informe__indice a:hover { background: var(--lila-50); color: var(--morado); }
.ac-datos { margin-bottom: 2rem; }
.ac-datos__rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .6rem; margin: 0; }
.ac-datos__rejilla div { padding: .75rem .85rem; border-radius: 14px; background: #fff; border: 1px solid var(--borde); box-shadow: var(--s-1); }
.ac-datos__rejilla dt { font-size: 1rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--etiqueta); }
.ac-datos__rejilla dd { margin: .2rem 0 0; font-weight: 700; font-size: 1.02rem; overflow-wrap: anywhere; }
.ac-seccion { margin: 0 0 2.4rem; scroll-margin-top: calc(var(--cabecera-alto) + 4rem); }
.ac-grupo { margin-bottom: 1.2rem; }
.ac-grupo h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.05rem; margin: 0 0 .6rem; }
.ac-clausula { margin: 0 0 .6rem; padding: .85rem 1rem; border-radius: 14px; background: #fff; border: 1px solid var(--borde); border-left: 5px solid var(--borde); }
.ac-clausula--revisar { border-left-color: #e04565; }
.ac-clausula--ojo { border-left-color: #e8a917; }
.ac-clausula--bien { border-left-color: var(--turquesa-2); }
.ac-clausula summary { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; cursor: pointer; font-weight: 700; }
.ac-clausula[open] summary { margin-bottom: .6rem; }
.ac-clausula p { margin: .4rem 0; }
.ac-clausula__cita { margin: .4rem 0; padding: .55rem .8rem; border-left: 3px solid #d9c8fb; background: var(--lila-50); font-style: italic; color: var(--tinta-2); }
.ac-clausula__pedir { font-size: 1rem; }
.ac-clausula__fuentes { font-size: 1rem; color: var(--tinta-2); }
.ac-chip { padding: .1rem .5rem; border-radius: 999px; background: #eeeaf5; color: var(--tinta-2); font-size: 1rem; font-weight: 700; }
.ac-chip--ambar { background: var(--ambar-fondo); color: var(--ambar-texto); }
.ac-noconsta { padding: .8rem 1rem; border-radius: 14px; background: #faf8fd; border: 1px dashed var(--borde-campo); }
.ac-noconsta summary { cursor: pointer; font-weight: 700; }
.ac-tabla-envoltorio { overflow-x: auto; border-radius: 14px; border: 1px solid var(--borde); background: #fff; }
.ac-tabla { width: 100%; border-collapse: collapse; font-size: 1rem; }
.ac-tabla th, .ac-tabla td { padding: .65rem .8rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--borde); }
.ac-tabla thead th { background: var(--lila-50); font-size: 1rem; text-transform: uppercase; letter-spacing: .04em; color: var(--etiqueta); }
.ac-tabla tbody th { font-weight: 700; }
.ac-tabla tr:last-child th, .ac-tabla tr:last-child td { border-bottom: 0; }
.ac-tabla__nota { display: block; margin-top: .3rem; font-size: 1rem; font-weight: 500; color: var(--tinta-2); }
.ac-tabla__fuentes { margin: 0; padding-left: 1rem; }
.ac-tabla--comparar td ul { margin: 0 0 .4rem; padding-left: 1rem; }
.ac-preguntas { display: grid; gap: .6rem; padding-left: 1.3rem; }
.ac-preguntas span { display: block; color: var(--tinta-2); font-size: 1rem; }
.ac-guion { position: relative; margin: 0 0 .8rem; padding: 1rem 1.1rem; border-radius: 14px; background: var(--lila-50); border: 1px solid var(--borde); }
.ac-guion__titulo { margin: 0 0 .4rem; font-weight: 800; }
.ac-guion__texto { margin: 0 0 .6rem; white-space: pre-line; }
.ac-lista { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.ac-lista label { display: flex; gap: .6rem; align-items: flex-start; padding: .65rem .8rem; border-radius: 12px; background: #fff; border: 1px solid var(--borde); cursor: pointer; }
.ac-lista input { width: 20px; height: 20px; flex: none; margin-top: .2rem; accent-color: var(--morado); }
.ac-lista small { display: block; color: var(--tinta-2); }
.ac-informe__pie { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--borde); }
.ac-revisado { font-size: 1rem; color: var(--tinta-2); }

/* Mis análisis / comparar */
.ac-mis__lista { display: grid; gap: .6rem; margin: 1rem 0; padding: 0; list-style: none; }
.ac-mis__item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto; align-items: center; gap: .8rem; padding: .8rem 1rem; border-radius: var(--r-3); background: #fff; border: 1px solid var(--borde); box-shadow: var(--s-1); }
.ac-mis__item .ico3d { --ico: 40px; }
.ac-mis__item a { text-decoration: none; color: inherit; min-width: 0; }
.ac-mis__item a:hover .ac-mis__titulo { color: var(--morado); }
.ac-mis__item form { margin: 0; }
.ac-mis__titulo { display: block; font-weight: 700; color: var(--tinta); }
.ac-mis__meta { display: block; font-size: 1rem; color: var(--tinta-2); }
.ac-icono-boton { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 10px; background: none; color: var(--tinta-2); cursor: pointer; }
.ac-icono-boton:hover { background: var(--rojo-fondo); color: var(--rojo-texto); }
.ac-comparar__elegir { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem; margin: 0 0 1.2rem; }
.ac-pagina--simple h1 { margin: 1rem 0; }

/* Página de fuentes */
.ac-fuentes__tipo { margin: 2rem 0; }
.ac-fuentes__tipo h2 small { font-size: 1rem; font-weight: 500; color: var(--tinta-2); }

@media (max-width: 52rem) {
  .ac__caja { grid-template-columns: 1fr; }
  .ac__fila { grid-template-columns: 1fr; }
  .ac-mis__item { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .ac-mis__item .ac-semaforo { grid-column: 2; grid-row: 2; justify-self: start; }
  .ac-mis__item form { grid-column: 3; grid-row: 1 / span 2; }
}
@media print {
  .ac-informe__acciones, .ac-informe__indice, .ac-guion button, .cabecera, .pie, .franja-mercados, .ac-avisanos { display: none !important; }
  .ac__aviso--beta, .ac-solo-imprimir { display: block !important; background: #fff; color: #000; border: 2px solid #000; padding: .6rem .8rem; font-weight: 700; }
  .pastilla--beta { background: #fff !important; color: #000 !important; border: 1px solid #000; }
  .ac-clausula { break-inside: avoid; }
  .ac-veredicto { background: #fff; color: #000; border: 1px solid #999; box-shadow: none; }
}

/* ── Paso «Tacha tus datos» (contratos-tachar.js) ───────────────────────── */
.tt { border-radius: 22px; background: #fff; border: 1px solid var(--borde); box-shadow: var(--s-2); padding: clamp(1rem, 2.5vw, 1.8rem); color: var(--tinta); outline: none; }
.tt__cabeza h2 { margin: .2rem 0 .5rem; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); color: var(--tinta); }
.tt__paso { margin: 0; font-size: 1rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--etiqueta); }
.tt__intro { margin: 0 0 1rem; max-width: 62rem; color: var(--tinta-2); }
.tt__barra { position: sticky; top: var(--cabecera-alto); z-index: 3; display: flex; flex-wrap: wrap; align-items: end; gap: .6rem; padding: .7rem; margin: 0 0 .6rem; border-radius: 14px; background: var(--lila-50); border: 1px solid var(--borde); }
.tt__subrayador[aria-pressed="true"] { background: var(--morado); border-color: var(--morado); color: #fff; }
.tt__buscar { display: grid; gap: .2rem; margin: 0 0 0 auto; }
.tt__buscar label { font-size: 1rem; font-weight: 700; color: var(--tinta-2); }
.tt__buscar span { display: flex; gap: .35rem; }
.tt__buscar input { min-height: 44px; min-width: 12rem; padding: .4rem .6rem; border: 1.5px solid var(--borde-campo); border-radius: 10px; font: 1rem var(--f); }
.tt__buscar input:focus { outline: none; border-color: var(--morado); box-shadow: 0 0 0 4px rgb(122 18 242 / .16); }
.tt__resumen { flex-basis: 100%; margin: 0; font-size: 1rem; color: var(--tinta-2); }
.tt__ayuda-sub { margin: 0 0 .6rem; padding: .5rem .8rem; border-radius: 10px; background: var(--ambar-fondo); color: var(--ambar-texto); font-size: .9rem; font-weight: 600; }
.tt__cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 1.2rem; align-items: start; }
.tt__doc { max-height: 70vh; overflow: auto; padding: .4rem; border-radius: 14px; background: #f3eff9; border: 1px solid var(--borde); }
.tt__hoja { margin: 0 0 .8rem; padding: 1.2rem 1.4rem; border-radius: 6px; background: #fff; box-shadow: var(--s-1); }
.tt__num { margin: 0 0 .6rem; font-size: 1rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); user-select: none; }
.tt__texto { white-space: pre-wrap; overflow-wrap: anywhere; font: 1rem/1.65 var(--f); }
.tt__doc--subrayador .tt__texto { cursor: text; }
.tt__doc--subrayador .tt__texto ::selection { background: #2a1653; color: #fff; }
.tt-sug { background: #ffd970; color: var(--tinta); border-radius: 3px; padding: 0 .1em; box-shadow: 0 0 0 1px #e8b52b; cursor: pointer; }
.tt-sug:hover { box-shadow: 0 0 0 2px #c7920a; }
.tt-sug:focus-visible { outline: 3px solid var(--morado); outline-offset: 2px; }
.tt-x { background: var(--tinta); color: #b9b0d4; text-decoration: line-through; text-decoration-color: #fff; border-radius: 2px; }
.tt-sug--x { background: transparent; box-shadow: 0 0 0 1px var(--tinta); }
.tt-muestra { padding: 0 .3em; border-radius: 3px; font-weight: 700; }
.tt-muestra--sug { background: #ffd970; color: var(--tinta); box-shadow: 0 0 0 1px #e8b52b; }
.tt-muestra--x { background: var(--tinta); color: #b9b0d4; text-decoration: line-through; text-decoration-color: #fff; }
.tt__guia { position: sticky; top: calc(var(--cabecera-alto) + 1rem); padding: 1rem; border-radius: 16px; background: linear-gradient(170deg, var(--lila-50), #fff); border: 1px solid #d9c8fb; }
.tt__guia h3 { margin: 0 0 .4rem; font-size: 1.05rem; }
.tt__guia-intro, .tt__guia-no { margin: 0 0 .7rem; font-size: 1rem; color: var(--tinta-2); }
.tt__lista { margin: 0 0 .8rem; padding: 0; list-style: none; display: grid; gap: .45rem; }
.tt__lista label { display: grid; grid-template-columns: 20px 1fr; gap: .5rem; align-items: start; cursor: pointer; font-size: 1rem; }
.tt__lista input { width: 20px; height: 20px; margin-top: .15rem; accent-color: var(--morado); }
.tt__lista small { display: block; color: var(--tinta-2); font-size: 1rem; }
.tt__lista input:checked + span strong { text-decoration: line-through; color: var(--tinta-2); }
.tt__leyenda { margin: 0; padding: 0; list-style: none; display: grid; gap: .35rem; font-size: 1rem; }
.tt__pie { margin-top: 1rem; display: grid; gap: .8rem; }
.tt__nota { margin: 0; padding: .9rem 1rem; border-radius: 14px; background: var(--verde-fondo); color: var(--verde-texto); font-size: 1rem; line-height: 1.5; }
.tt__nota .icono { vertical-align: -.15em; }
.tt__quedan { padding: .9rem 1rem; border-radius: 14px; background: var(--ambar-fondo); color: var(--ambar-texto); border: 1px solid #f0cd6a; }
.tt__quedan p { margin: 0 0 .4rem; font-weight: 700; }
.tt__acciones { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; }
.tt__acciones [data-tt-analizar] { min-width: 16rem; font-size: 1.05rem; }
.tt__alternativa p { margin: 0 0 .5rem; }
@media (max-width: 52rem) {
  .tt__cuerpo { grid-template-columns: 1fr; }
  .tt__barra { position: static; }
  .tt__guia { position: static; order: -1; }
  .tt__doc { max-height: none; }
  .tt__hoja { padding: .9rem; }
  .tt__buscar { margin: 0; flex-basis: 100%; }
  .tt__buscar input { min-width: 0; flex: 1; }
  .tt__acciones .ac-boton { flex: 1; }
}

.ac-avisos { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; margin: 0 0 1rem; padding: .6rem .9rem; border-radius: 12px; background: var(--lila-50); border: 1px solid var(--borde); }
.ac-avisos .ac__check { margin: 0; }
.ac-clausula__sincita { margin: .4rem 0; font-size: 1rem; font-style: italic; color: var(--tinta-2); }
.ac-huella__codigo, .ac-informe__huella code { font: 1rem/1.4 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; }
.ac-huella--si { background: var(--verde-fondo); color: var(--verde-texto); font-weight: 700; }
.ac-huella--no { background: var(--rojo-fondo); color: var(--rojo-texto); font-weight: 700; }
.ac-informe__huella { font-size: 1rem; color: var(--tinta-2); }
.ac-informe__huella button { min-height: 44px; padding: 0 .3rem; border: 0; background: none; font: inherit; color: var(--morado); text-decoration: underline; cursor: pointer; }
.tt__repetido { margin: 0 0 .8rem; padding: .8rem 1rem; border-radius: 14px; background: var(--ambar-fondo); color: var(--ambar-texto); }
.tt__repetido p { margin: 0 0 .4rem; font-weight: 700; }

/* Página /analizar-contrato/: herramienta sobre la cabecera y, debajo, la guía con su columna (propio del área 4,
   para no depender del CSS de las calculadoras) */
.ac-pagina__widget { margin-bottom: var(--e-7); }
.ac-pagina__cuerpo { display: grid; gap: var(--e-6); padding-bottom: var(--seccion); }
@media (min-width: 64rem) {
  .ac-pagina__cuerpo { grid-template-columns: minmax(0, 1fr) 18rem; gap: var(--e-8); }
  .ac-pagina__cuerpo > aside > div { position: sticky; top: calc(var(--cabecera-alto) + 1.5rem); display: grid; gap: var(--e-5); }
}
.ac-pagina__cuerpo .prosa { max-width: 46rem; }

/* Titulares dentro de las pantallas del analizador (el h2 de base es el de portada, demasiado grande aquí) */
.ac-cuerpo h2:not(.vacio__titulo), .ac-informe h2:not(.vacio__titulo):not(.sr-only) { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.95rem); margin-top: 0; }
.ac-cuerpo h3 { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); }
.ac-fuentes__tipo h2 small { font-size: 1rem; font-weight: 500; color: var(--tinta-2); }
.ac-fuentes__intro { max-width: 46rem; }
/* Espera: tarjeta centrada con el icono de «cargando» */
.ac-espera__caja { display: grid; justify-items: center; text-align: center; }
.ac-espera__caja .ac-progreso { width: 100%; }
.ac-espera__caja .ac__privado { justify-content: center; }
.ac-espera__icono { --ico: 96px; margin-bottom: .4rem; }
@media (prefers-reduced-motion: no-preference) { .ac-espera__icono { animation: ac-latido 1.6s ease-in-out infinite; } }
@keyframes ac-latido { 50% { transform: scale(1.06); } }
/* Lado oscuro de la herramienta: enlaces y pastilla Pro legibles */
.ac__lado .pastilla--pro { box-shadow: inset 0 0 0 1px rgb(26 255 224 / .45); }
.ac__mis a { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; }
/* Índice y «Ponle números» de la página: filas de 44 px para tocarlas bien con el dedo */
.ac-pagina__cuerpo .indice a { display: flex; align-items: center; min-height: 44px; }
/* Móvil: botones pequeños, índice del informe y cláusulas plegables de 44 px como mínimo */
:is(.ac, .ac-cuerpo, .ac-cabeza, .tt) .boton--pequeno { min-height: 44px; }
.ac-informe__indice a { min-height: 44px; }
.ac-clausula summary, .ac-noconsta summary { min-height: 44px; }
.ac-informe__acciones .boton, .ac-cuerpo .boton { white-space: normal; }
/* «Tacha tus datos» con el dedo: más aire entre líneas y sugerencias más altas (el relleno agranda la zona que se toca) */
@media (max-width: 52rem), (pointer: coarse) {
  .tt__texto { font-size: 1rem; line-height: 2.15; }
  .tt-sug, .tt-x { padding: .32em .2em; }
}
/* Fondo del analizador (dibujo a la derecha): solo desde 64 rem, para que no quede debajo del texto en el móvil */
@media (max-width: 63.99rem) { .ac-cabeza { --cabeza-fondo: none; } }
