/* Bescala · panel interno (equipo). Hoja propia del panel (RNF-23); solo usa tokens del sistema de diseño.
   Tema claro por defecto y oscuro a elección (RNF-18). Usable en celular (RNF-15). */
[hidden] { display: none !important; }
html { scroll-padding-top: 96px; }
body.panel { min-height: 100vh; background: var(--superficie); color: var(--texto); font-size: 15px; line-height: 22px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.salto { position: absolute; left: var(--espacio-4); top: -80px; z-index: 60; }
.salto:focus { top: var(--espacio-4); }
a { color: var(--enlace); text-underline-offset: 3px; }

/* ---------- Estructura ---------- */
.n-app { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 100vh; }
.n-lado { position: fixed; inset: 0 auto 0 0; z-index: 40; width: min(280px, 86vw); box-sizing: border-box; display: flex; flex-direction: column; gap: var(--espacio-4); padding: var(--espacio-5) var(--espacio-3) var(--espacio-4); background: var(--superficie); border-right: 1px solid var(--linea); color: var(--texto); overflow-y: auto; transform: translateX(-102%); transition: transform .2s ease; }
.n-lado.es-abierto { transform: none; box-shadow: var(--sombra-flotante); }
.n-velo { position: fixed; inset: 0; z-index: 35; background: var(--velo); }
.n-lado__logo { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--espacio-2); }
.n-lado__logo a { display: inline-flex; border-radius: var(--radio-sm); }
.n-lado__logo svg { width: 157px; height: 30px; }
.n-lado__logo a:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.n-nav { display: flex; flex-direction: column; gap: 2px; }
.n-nav__grupo { margin: var(--espacio-3) var(--espacio-3) var(--espacio-1); font: 500 11px/16px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--texto-tenue); }
.n-nav a { display: flex; align-items: center; gap: var(--espacio-3); min-height: 40px; padding: 0 var(--espacio-3); border-radius: var(--radio-md); color: var(--texto-suave); text-decoration: none; font-weight: 600; font-size: 14px; }
.n-nav a svg { width: 18px; height: 18px; flex: none; color: var(--texto-tenue); }
.n-nav a:hover { background: var(--superficie-hover); color: var(--texto); }
.n-nav a[aria-current="page"] { background: var(--superficie-elevada); color: var(--texto); box-shadow: inset 3px 0 0 var(--marca-texto); }
.n-nav a[aria-current="page"] svg { color: var(--marca-texto); }
.n-nav a:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.n-nav__cuenta { margin-left: auto; min-width: 22px; padding: 0 6px; border-radius: var(--radio-full); background: var(--accion); color: var(--sobre-accion); font: 700 12px/20px var(--font-mono); text-align: center; }
.n-lado__pie { margin-top: auto; display: flex; flex-direction: column; gap: var(--espacio-2); padding: var(--espacio-3); border-top: 1px solid var(--linea); font-size: 13px; line-height: 18px; color: var(--texto-tenue); }
.n-lado__pie strong { color: var(--texto); font-size: 14px; }

.n-zona { min-width: 0; display: flex; flex-direction: column; }
.n-cab { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: var(--espacio-3); min-height: 64px; padding: var(--espacio-2) var(--espacio-4); background: var(--superficie); border-bottom: 1px solid var(--linea); }
.n-cab__menu { display: inline-flex; }
.n-cab__logo svg { width: 136px; height: 26px; }
.n-cab__buscar { flex: 1; max-width: 420px; margin-left: auto; display: flex; align-items: center; gap: var(--espacio-2); min-height: 40px; padding: 0 var(--espacio-3); border: 1px solid var(--borde-control); border-radius: var(--radio-md); background: var(--superficie-campo); color: var(--texto-tenue); font: 500 14px/20px var(--font-sans); cursor: pointer; text-align: left; }
.n-cab__buscar svg { width: 16px; height: 16px; flex: none; }
.n-cab__buscar kbd { margin-left: auto; font: 500 11px/16px var(--font-mono); padding: 1px 6px; border: 1px solid var(--linea); border-radius: 6px; color: var(--texto-tenue); }
.n-cab__buscar:focus-visible, .n-icono:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.n-cab__buscar span.n-cab__ph { display: none; }
.n-icono { width: 40px; height: 40px; flex: none; display: inline-grid; place-items: center; border: 1px solid transparent; border-radius: var(--radio-md); background: transparent; color: var(--texto); cursor: pointer; }
.n-icono:hover { background: var(--superficie-hover); }
.n-icono svg { width: 20px; height: 20px; }
.n-sesion { display: none; align-items: center; gap: var(--espacio-2); font-size: 13px; line-height: 18px; color: var(--texto-tenue); white-space: nowrap; }
.n-sesion b { color: var(--texto); }
.n-avatar { width: 32px; height: 32px; flex: none; border-radius: var(--radio-full); display: grid; place-items: center; background: var(--secundario); color: var(--sobre-secundario); font: 700 12px/1 var(--font-mono); }

.n-cuerpo { box-sizing: border-box; width: 100%; max-width: 1240px; margin: 0 auto; padding: var(--espacio-5) var(--espacio-4) var(--espacio-8); display: flex; flex-direction: column; gap: var(--espacio-5); }
.n-titulo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--espacio-3); }
.n-titulo h1 { margin: 0; font: 800 26px/32px var(--font-sans); letter-spacing: -.01em; }
.n-titulo__sub { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: var(--texto-tenue); }
.n-titulo__acciones { display: flex; flex-wrap: wrap; gap: var(--espacio-2); }
.n-migas { margin: 0 0 4px; font: 500 12px/16px var(--font-mono); letter-spacing: .04em; color: var(--texto-tenue); }
.n-migas a { color: var(--texto-tenue); }

@media (min-width: 1024px) {
  .n-app { grid-template-columns: 248px minmax(0, 1fr); }
  .n-lado { position: sticky; top: 0; height: 100vh; width: auto; transform: none; transition: none; }
  .n-velo, .n-cab__menu, .n-cab__logo, .n-lado__cerrar { display: none !important; }
  .n-cab { padding: var(--espacio-2) var(--espacio-6); }
  .n-cuerpo { padding: var(--espacio-6) var(--espacio-6) var(--espacio-8); }
  .n-sesion { display: inline-flex; }
}
@media (min-width: 600px) { .n-cab__buscar span.n-cab__ph { display: inline; } }
@media (prefers-reduced-motion: reduce) { .n-lado { transition: none; } }

/* ---------- Piezas comunes ---------- */
.n-sec { display: flex; flex-direction: column; gap: var(--espacio-3); }
.n-sec__t { margin: 0; font: 700 18px/24px var(--font-sans); }
.n-fila { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2) var(--espacio-3); }
.n-fila--entre { justify-content: space-between; }
.n-fila > .crece { flex: 1; min-width: 0; }
.n-rejilla { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .n-rejilla--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .n-rejilla--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .n-rejilla--lado { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } }
.n-nota { margin: 0; font-size: 13px; line-height: 18px; color: var(--texto-tenue); }
.n-tarjeta { gap: var(--espacio-3); }
.n-tarjeta h2, .n-tarjeta h3 { margin: 0; font: 700 17px/24px var(--font-sans); }
.n-tarjeta > p { font-size: 15px; line-height: 22px; }
.n-tarjeta--toca { border: 2px solid var(--borde-destacado); padding: 23px; }
.n-ante { font: 500 12px/16px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--marca-texto); }
.mono, .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.n-monto { font: 700 24px/30px var(--font-mono); font-variant-numeric: tabular-nums; }
.n-monto--grande { font-size: 32px; line-height: 38px; }
.bs-btn--chico { min-height: 36px; padding: 0 var(--espacio-3); font-size: 14px; border-radius: var(--radio-sm); }
.bs-btn--chico svg { width: 16px; height: 16px; }
.bs-btn--texto.bs-btn--chico { padding: 0 var(--espacio-2); }
.n-kv { margin: 0; display: flex; flex-direction: column; }
.n-kv > div { display: grid; grid-template-columns: minmax(110px, 40%) minmax(0, 1fr); gap: var(--espacio-3); padding: var(--espacio-2) 0; border-bottom: 1px solid var(--linea); }
.n-kv > div:last-child { border-bottom: 0; }
.n-kv dt { font-size: 13px; line-height: 20px; color: var(--texto-tenue); }
.n-kv dd { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }

/* Listas de filas */
.n-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.n-lista > li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2) var(--espacio-3); padding: var(--espacio-3) 0; border-bottom: 1px solid var(--linea); }
.n-lista > li:last-child { border-bottom: 0; }
.n-lista__txt { flex: 1; min-width: 180px; display: flex; flex-direction: column; }
.n-lista__txt strong { font-size: 15px; line-height: 22px; }
.n-lista__txt span { font-size: 13px; line-height: 18px; color: var(--texto-tenue); }
.n-vacio { display: flex; flex-direction: column; align-items: center; gap: var(--espacio-2); padding: var(--espacio-6) var(--espacio-4); border: 1px dashed var(--borde-control); border-radius: var(--radio-md); text-align: center; color: var(--texto-tenue); font-size: 14px; }
.n-vacio strong { color: var(--texto); font-size: 15px; }

/* Semáforo de actividad (RF-101): color + forma + texto, nunca solo color */
.semaforo { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; line-height: 18px; color: var(--texto-suave); white-space: nowrap; }
.semaforo::before { content: ""; width: 10px; height: 10px; flex: none; border-radius: var(--radio-full); }
.semaforo--verde::before { background: var(--estado-ok); }
.semaforo--amarillo::before { background: var(--estado-atencion-texto); border-radius: 2px; transform: rotate(45deg); width: 9px; height: 9px; }
.semaforo--rojo::before { background: var(--estado-error-texto); border-radius: 2px; }
.semaforo--gris::before { background: transparent; box-shadow: inset 0 0 0 2px var(--borde-control); }

/* Pestañas */
.n-pestanas { display: flex; gap: 2px; overflow-x: auto; border-bottom: 1px solid var(--linea); scrollbar-width: thin; }
.n-pestanas [role="tab"] { flex: none; min-height: 44px; padding: 0 var(--espacio-4); border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--texto-tenue); font: 600 14px/20px var(--font-sans); cursor: pointer; white-space: nowrap; }
.n-pestanas [role="tab"]:hover { color: var(--texto); }
.n-pestanas [role="tab"][aria-selected="true"] { color: var(--texto); border-bottom-color: var(--marca-texto); }
.n-pestanas [role="tab"]:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.n-pestanas--sub { border-bottom: 0; gap: var(--espacio-2); }
.n-pestanas--sub [role="tab"] { min-height: 36px; border: 1px solid var(--linea); border-radius: var(--radio-full); padding: 0 var(--espacio-3); }
.n-pestanas--sub [role="tab"][aria-selected="true"] { background: var(--secundario); color: var(--sobre-secundario); border-color: var(--secundario); }
[role="tabpanel"] { display: flex; flex-direction: column; gap: var(--espacio-4); }
[role="tabpanel"]:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); border-radius: var(--radio-sm); }

/* Tablas del panel */
.n-tabla td .bs-btn { white-space: nowrap; }
.n-tabla td strong { font-weight: 700; }
.n-tabla--compacta { min-width: 0; }
.n-tabla tr.es-sel td { background: var(--superficie-hover); }

/* Formularios */
.n-campos { display: grid; gap: var(--espacio-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .n-campos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .n-campos--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.n-campos .bs-campo--todo { grid-column: 1 / -1; }
select.bs-entrada { appearance: auto; }
.bs-entrada--chica { min-height: 36px; padding: 6px 10px; font-size: 14px; line-height: 20px; }
.n-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 2px; border: 1px solid var(--linea); border-radius: var(--radio-md); background: var(--superficie-campo); }
.n-seg button { min-height: 36px; padding: 0 var(--espacio-3); border: 0; border-radius: var(--radio-sm); background: transparent; color: var(--texto-suave); font: 600 14px/20px var(--font-sans); cursor: pointer; }
.n-seg button[aria-pressed="true"] { background: var(--secundario); color: var(--sobre-secundario); }
.n-seg button:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.n-cheque { display: flex; gap: var(--espacio-3); align-items: center; min-height: 36px; font-size: 14px; line-height: 20px; }
.n-cheque input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--marca-texto); }
.n-cheques { display: flex; flex-direction: column; gap: 2px; }

/* Texto listo para WhatsApp */
.n-wa { margin: 0; white-space: pre-wrap; padding: var(--espacio-4); border-radius: var(--radio-md); background: var(--superficie); border: 1px solid var(--linea); font: 400 14px/22px var(--font-sans); }

/* ---------- Diálogos y cajón ---------- */
dialog.n-dialogo { box-sizing: border-box; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--linea); border-radius: var(--radio-lg); background: var(--superficie-elevada); color: var(--texto); box-shadow: var(--sombra-flotante); }
dialog.n-dialogo--ancho { width: min(760px, calc(100vw - 32px)); }
dialog.n-dialogo::backdrop, dialog.n-cajon::backdrop { background: var(--velo); }
.n-dialogo__caja { display: flex; flex-direction: column; gap: var(--espacio-4); padding: var(--espacio-5); }
.n-dialogo__cab { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--espacio-3); }
.n-dialogo__cab h2 { margin: 0; font: 700 20px/28px var(--font-sans); }
.n-dialogo__pie { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--espacio-2); padding-top: var(--espacio-2); }
dialog.n-cajon { position: fixed; inset: 0 0 0 auto; margin: 0; height: 100%; max-height: none; width: min(560px, 100vw); padding: 0; border: 0; border-left: 1px solid var(--linea); background: var(--superficie-elevada); color: var(--texto); box-shadow: var(--sombra-flotante); }
dialog.n-cajon[open] { display: flex; flex-direction: column; }
.n-cajon .bs-panel-lateral__cuerpo { min-height: 0; }

/* Aviso flotante */
.n-tostada { position: fixed; left: 50%; bottom: var(--espacio-5); z-index: 80; transform: translateX(-50%); max-width: min(520px, calc(100vw - 32px)); padding: 12px 18px; border-radius: var(--radio-md); background: var(--secundario); color: var(--sobre-secundario); font-size: 14px; line-height: 20px; box-shadow: var(--sombra-flotante); }
[data-theme="noche"] .n-tostada, :root:not([data-theme]) .n-tostada { background: var(--marca-nube); color: var(--marca-noche); }

/* Nota de maquetado: solo en el prototipo */
.nota-maquetado { margin: 0; font: 500 12px/16px var(--font-mono); color: var(--texto-tenue); border: 1px dashed var(--borde-control); border-radius: var(--radio-sm); padding: 6px 10px; }
.n-demo { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2); padding: var(--espacio-2) var(--espacio-3); border: 1px dashed var(--borde-control); border-radius: var(--radio-md); font: 500 12px/16px var(--font-mono); color: var(--texto-tenue); }
.n-demo button, .n-demo select { min-height: 30px; padding: 0 10px; border: 1px solid var(--linea); border-radius: var(--radio-sm); background: var(--superficie-elevada); color: var(--texto); font: 500 12px/16px var(--font-mono); cursor: pointer; }
.n-demo button[aria-pressed="true"] { background: var(--secundario); color: var(--sobre-secundario); border-color: var(--secundario); }

/* Búsqueda global (Ctrl+K) */
.n-busqueda__res { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; max-height: 50vh; overflow: auto; }
.n-busqueda__res a { display: flex; flex-direction: column; padding: var(--espacio-2) var(--espacio-3); border-radius: var(--radio-sm); color: var(--texto); text-decoration: none; }
.n-busqueda__res a:hover, .n-busqueda__res a:focus-visible { background: var(--superficie-hover); outline: none; }
.n-busqueda__res small { color: var(--texto-tenue); font-size: 12px; }

/* ---------- Acceso ---------- */
.n-acceso { min-height: 100vh; display: grid; place-items: center; padding: var(--espacio-5) var(--espacio-4); box-sizing: border-box; }
.n-acceso__caja { width: min(400px, 100%); display: flex; flex-direction: column; gap: var(--espacio-4); }
.n-acceso__logo svg { width: 189px; height: 36px; }
.n-acceso h1 { margin: 0; font: 800 26px/32px var(--font-sans); }
.n-codigo { font: 700 28px/36px var(--font-mono); letter-spacing: .4em; text-align: center; }
.n-acceso details summary { cursor: pointer; font-weight: 600; color: var(--texto-suave); min-height: 44px; display: flex; align-items: center; }

/* ---------- Ficha del cliente ---------- */
.n-ficha-cab { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--espacio-3); }
.n-ficha-cab h1 { margin: 0; font: 800 26px/32px var(--font-sans); }
.n-flujo .bs-ruta__nombre { font-size: 13px; line-height: 17px; }
.n-flujo .bs-ruta__estado { font-size: 10px; line-height: 14px; }
.n-flujo .bs-ruta__nota { font-size: 11px; line-height: 14px; }
.n-flujo .bs-ruta--vertical .bs-ruta__nombre { font-size: 15px; line-height: 20px; }
.n-flujo .bs-ruta { --ruta-fondo: var(--superficie-elevada); }
@media (max-width: 1100px) and (min-width: 720px) { .n-flujo .bs-ruta:not(.bs-ruta--vertical) { display: none; } .n-flujo .bs-ruta--vertical { display: grid; } }
.n-contacto { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2) var(--espacio-3); padding: var(--espacio-3); border: 1px solid var(--linea); border-radius: var(--radio-md); }
.n-plan { display: flex; flex-direction: column; gap: var(--espacio-2); }
.n-plan__fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-2); }
.n-plan__fila strong { font-size: 16px; }

/* Constructor de planes */
.n-bloques { display: flex; flex-direction: column; gap: 2px; max-height: 340px; overflow: auto; padding-right: 4px; }
.n-bloque { border: 1px solid var(--linea); border-radius: var(--radio-sm); }
.n-bloque summary { display: flex; align-items: center; gap: var(--espacio-2); padding: 6px var(--espacio-2); cursor: pointer; list-style: none; font-size: 14px; line-height: 20px; }
.n-bloque summary::-webkit-details-marker { display: none; }
.n-bloque summary input { width: 18px; height: 18px; margin: 0; accent-color: var(--marca-texto); flex: none; }
.n-bloque summary .crece { flex: 1; min-width: 0; }
.n-bloque p { margin: 0; padding: 0 var(--espacio-3) var(--espacio-2) 34px; font-size: 13px; line-height: 18px; color: var(--texto-tenue); }
.n-suma { display: flex; flex-direction: column; gap: 4px; padding: var(--espacio-3) var(--espacio-4); border-radius: var(--radio-md); background: var(--superficie); border: 1px solid var(--linea); }
.n-suma > div { display: flex; justify-content: space-between; gap: var(--espacio-3); font-size: 14px; line-height: 20px; }
.n-suma .es-interno span:first-child::after { content: " · interno"; color: var(--marca-texto); font: 500 11px/1 var(--font-mono); }
.n-cuotas { display: flex; flex-direction: column; gap: var(--espacio-2); }
.n-cuota { display: grid; grid-template-columns: minmax(0, 1fr) 72px 96px; align-items: center; gap: var(--espacio-2); font-size: 14px; }
.n-cuota input { text-align: right; }

/* Proyecto: hitos y archivos */
.n-hitos { list-style: none; margin: 0; padding: 0; }
.n-hitos li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto auto; gap: var(--espacio-3); align-items: center; padding: var(--espacio-2) 0; border-bottom: 1px solid var(--linea); font-size: 14px; }
.n-hitos li:last-child { border-bottom: 0; }
.n-hitos__marca { width: 14px; height: 14px; border-radius: 5px; border: 2px solid var(--escalon-pendiente); }
.n-hitos li.hecho .n-hitos__marca { background: var(--escalon-listo); border-color: var(--escalon-listo); }

/* Revisión de comprobantes */
.n-comprobante { display: flex; align-items: center; gap: var(--espacio-3); padding: var(--espacio-3); border: 1px solid var(--linea); border-radius: var(--radio-md); }
.n-comprobante__img { width: 64px; height: 64px; flex: none; border-radius: var(--radio-sm); background: repeating-linear-gradient(45deg, var(--linea) 0 6px, transparent 6px 12px); border: 1px solid var(--linea); display: grid; place-items: center; font: 700 11px/1 var(--font-mono); color: var(--texto-tenue); }

/* Métricas */
.n-indicadores { display: grid; gap: var(--espacio-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .n-indicadores { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.n-indicador { display: flex; flex-direction: column; gap: 2px; padding: var(--espacio-4); border: 1px solid var(--linea); border-radius: var(--radio-md); background: var(--superficie-elevada); }
.n-indicador span { font-size: 13px; line-height: 18px; color: var(--texto-tenue); }
.n-indicador strong { font: 700 24px/30px var(--font-mono); font-variant-numeric: tabular-nums; }
.n-indicador small { font-size: 12px; line-height: 16px; color: var(--texto-tenue); }
.n-barras { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--espacio-2); }
.n-barras li { display: grid; grid-template-columns: minmax(96px, 30%) minmax(0, 1fr) 56px; gap: var(--espacio-3); align-items: center; font-size: 14px; }
.n-barras__pista { height: 12px; border-radius: 4px; background: var(--escalon-pendiente); overflow: hidden; }
.n-barras__pista i { display: block; height: 100%; border-radius: 4px; background: var(--escalon-listo); }
.n-barras li > span:last-child { font-family: var(--font-mono); text-align: right; }
.n-limite { display: flex; flex-direction: column; gap: var(--espacio-2); }
.n-limite__pista { position: relative; height: 16px; border-radius: 6px; background: var(--escalon-pendiente); }
.n-limite__pista i { position: absolute; inset: 0 auto 0 0; border-radius: 6px; background: var(--escalon-listo); }

/* Ajustes: matriz y documentos */
.n-plantilla { margin: 0; white-space: pre-wrap; max-height: 220px; overflow: auto; padding: var(--espacio-3); border: 1px solid var(--linea); border-radius: var(--radio-md); font: 400 14px/22px var(--font-sans); background: var(--superficie); }
textarea.n-plantilla-edit { min-height: 260px; font: 400 13px/20px var(--font-mono); }
.n-vista-previa { position: relative; padding: var(--espacio-4); border: 1px solid var(--linea); border-radius: var(--radio-md); max-height: 55vh; overflow: auto; }
.n-vista-previa::before { content: "VISTA PREVIA"; position: absolute; inset: 0; display: grid; place-items: center; font: 700 40px/1 var(--font-mono); opacity: .07; transform: rotate(-20deg); pointer-events: none; }
.n-vista-previa pre { margin: 0; white-space: pre-wrap; font: inherit; }
.n-vista-previa mark { background: var(--estado-proceso-fondo); color: var(--texto); border-radius: 3px; padding: 0 2px; }
.n-pasos-cron { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: var(--espacio-2); font-size: 14px; }

/* Reuniones: rangos */
.n-rangos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--espacio-2); }
.n-rangos li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2); font-size: 14px; }
.n-rangos b { min-width: 150px; text-transform: capitalize; }
.n-rango { font: 500 13px/18px var(--font-mono); padding: 2px 8px; border-radius: var(--radio-sm); background: var(--estado-listo-fondo); color: var(--estado-listo-texto); }

/* ---------- Calendario y rejilla para pintar (misma interacción que la página pública de reunión, C-89) ---------- */
.calendario { min-width: 0; max-width: 420px; }
.cal__cabeza { display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-3); margin-bottom: var(--espacio-3); }
.cal__mes { font: 700 16px/22px var(--font-sans); text-transform: capitalize; }
.cal__nav { display: flex; gap: var(--espacio-2); }
.cal__nav button { width: 40px; height: 40px; border-radius: var(--radio-md); border: 1px solid var(--borde-control); background: transparent; color: var(--texto); cursor: pointer; display: grid; place-items: center; }
.cal__nav button:disabled { opacity: .35; cursor: not-allowed; }
.cal__nav svg { width: 18px; height: 18px; }
.cal__rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal__dia-sem { font: 500 11px/16px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--texto-tenue); text-align: center; padding-bottom: 4px; }
.cal__dia { aspect-ratio: 1; min-height: 38px; border-radius: var(--radio-sm); border: 1px solid var(--borde-control); background: transparent; color: var(--texto); font: 500 14px/1 var(--font-mono); display: grid; place-items: center; position: relative; cursor: pointer; }
.cal__dia:hover { background: var(--superficie-hover); }
.cal__dia.con-horas::after { content: ""; position: absolute; bottom: 5px; width: 5px; height: 5px; border-radius: 2px; background: var(--escalon-listo); }
.cal__dia[aria-pressed="true"] { background: var(--secundario); color: var(--sobre-secundario); border-color: var(--secundario); font-weight: 700; }
.cal__dia[aria-pressed="true"]::after { background: var(--sobre-secundario); }
.cal__dia:disabled { cursor: default; text-decoration: line-through; opacity: .5; border-color: transparent; }
.cal__dia:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.cal__pie { margin-top: var(--espacio-2); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--espacio-2); font-size: 13px; color: var(--texto-tenue); }
.rejilla-vacia { display: flex; flex-direction: column; gap: 4px; padding: var(--espacio-6) var(--espacio-5); border: 1px dashed var(--borde-control); border-radius: var(--radio-md); text-align: center; color: var(--texto-tenue); font-size: 14px; }
.rejilla-vacia strong { color: var(--texto); font-size: 15px; }
.rejilla { display: grid; grid-template-columns: 56px repeat(var(--cols), minmax(64px, 1fr)); max-height: 520px; overflow: auto; border-radius: var(--radio-md); background: var(--superficie-campo); border: 1px solid var(--linea); touch-action: none; user-select: none; -webkit-user-select: none; }
.rejilla__esquina, .rejilla__col { position: sticky; top: 0; z-index: 2; background: var(--superficie-elevada); }
.rejilla__esquina { left: 0; z-index: 3; }
.rejilla__col { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 8px 4px; border-bottom: 1px solid var(--borde-control); }
.rejilla__col small { font: 700 11px/14px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--texto-tenue); }
.rejilla__col b { font: 800 20px/24px var(--font-sans); }
.rejilla__col em { font-style: normal; font-size: 12px; line-height: 16px; color: var(--texto-tenue); }
.rejilla__hora { position: sticky; left: 0; z-index: 1; background: var(--superficie-campo); padding-right: 8px; font: 500 11px/1 var(--font-mono); color: var(--texto-tenue); text-align: right; transform: translateY(-6px); white-space: nowrap; }
.casilla { height: 22px; padding: 0; border: 0; border-left: 1px solid var(--linea); border-top: 1px solid var(--linea); background: transparent; cursor: crosshair; }
.casilla.media { border-top: 1px dashed var(--linea); }
.casilla.ultima { border-right: 1px solid var(--linea); }
.casilla:hover:not([aria-disabled="true"]):not([aria-pressed="true"]) { background: var(--superficie-hover); }
.casilla[aria-pressed="true"] { background: var(--escalon-listo); }
.casilla.ocupada { cursor: not-allowed; background: repeating-linear-gradient(-45deg, var(--escalon-pendiente) 0 4px, transparent 4px 9px); }
.casilla:focus-visible { outline: 2px solid var(--texto); outline-offset: -2px; }
.rejilla__leyenda { margin: 0; display: flex; flex-wrap: wrap; gap: var(--espacio-2) var(--espacio-4); align-items: center; font-size: 13px; color: var(--texto-tenue); }
.rejilla__leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.rejilla__leyenda i { width: 14px; height: 14px; border-radius: 3px; border: 1px solid var(--linea); }
.l-sel { background: var(--escalon-listo); }
.l-ocu { background: repeating-linear-gradient(-45deg, var(--escalon-pendiente) 0 3px, transparent 3px 6px); }

/* Ajustes finos */
.panel .bs-btn--secundario.bs-btn--chico { background: transparent; color: var(--texto); border-color: var(--borde-control); }
.panel .bs-btn--secundario.bs-btn--chico:hover { background: var(--superficie-hover); }
.n-cuerpo > div[data-roles], .n-cuerpo > div[data-no-roles] { display: flex; flex-direction: column; gap: var(--espacio-5); }
.n-cuerpo > div[data-roles]:empty { display: none; }
[role="tabpanel"] { padding-top: var(--espacio-1); }
.n-ficha-cab > div:first-child { min-width: 0; }
.n-comprobante { flex-wrap: wrap; } .n-comprobante .n-lista__txt { min-width: 160px; }
/* Logo según el tema (en claro, la palabra va en Noche) */
.panel svg > g[fill="#D7FF3A"], .panel svg > g[fill="#D7FF3A"] path { fill: var(--escalon-listo); stroke: var(--escalon-listo); }
.panel svg svg g[stroke="#D7FF3A"] { stroke: var(--logo-tinta); }
.panel svg [fill="#0F1626"] { fill: var(--superficie); }
.n-cajon .bs-panel-lateral__cuerpo > * { flex-shrink: 0; }
.n-tabla .mono { white-space: nowrap; }

/* Parámetros de las reuniones: subtítulos dentro de la tarjeta */
.n-tarjeta h3.n-subt { margin-top: 8px; font: 600 15px/22px var(--font-sans); color: var(--texto-suave, var(--texto)); }
.n-tarjeta h3.n-subt:first-of-type { margin-top: 4px; }

/* Acceso a pantalla partida: imagen (por ahora el logo) en una mitad y el formulario en la otra (C-119) */
.n-acceso--partido { display: grid; grid-template-columns: minmax(0, 1fr); place-items: stretch; padding: 0; }
.n-acceso__marca { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--espacio-3); padding: var(--espacio-6) var(--espacio-4); background: var(--superficie); color: var(--texto); }
.n-acceso__marca svg { width: 240px; height: auto; }
.n-acceso__marca p { margin: 0; font: 500 13px/18px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave); }
.n-acceso__lado { display: grid; place-items: center; padding: var(--espacio-5) var(--espacio-4) var(--espacio-7); }
.n-acceso--partido .n-acceso__logo { display: none; }
@media (min-width: 900px) {
  .n-acceso--partido { grid-template-columns: 1fr 1fr; }
  .n-acceso__marca svg { width: 340px; }
  .n-acceso__lado { padding: var(--espacio-7) var(--espacio-6); }
}

/* Producto del cliente arriba de las pestañas (RF-141) y descuento por portafolio (RF-142) */
.n-producto { display: grid; gap: var(--espacio-3); grid-template-columns: minmax(0, 1fr); align-items: end; padding: var(--espacio-4); margin-bottom: var(--espacio-4); border: 1px solid var(--linea); border-radius: var(--radio-lg); background: var(--superficie-elevada); }
.n-producto .bs-campo { margin: 0; }
.n-producto__desc { display: flex; flex-direction: column; gap: 4px; }
.n-producto__nota, #prod-aviso { grid-column: 1 / -1; margin: 0; }
@media (min-width: 900px) { .n-producto { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; } }
.n-portafolio { display: flex; flex-direction: column; gap: var(--espacio-2); padding: var(--espacio-3); border: 1px dashed var(--borde-control); border-radius: var(--radio-md); }
.n-portafolio .n-nota { margin: 0; }
/* Ronda de comentarios del prototipo (CU-28, C-130) */
.rd { display: flex; flex-direction: column; gap: var(--espacio-4); }
.rd h2 { margin: 0; font-size: 18px; line-height: 24px; }
.rd-leyenda { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto-suave); }
.rd-leyenda i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-left: 6px; }
.rd-grid { display: grid; gap: var(--espacio-4); }
@media (min-width: 1100px) { .rd-grid { grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); align-items: start; } .rd-lista { max-height: min(78vh, 820px); overflow: auto; } }
.rd-marco { border: 1px solid var(--linea); border-radius: var(--radio-md); overflow: hidden; background: #fff; }
.rd-marco iframe { display: block; width: 100%; height: min(78vh, 820px); border: 0; }
.rd-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--espacio-3); }
.rd-item { display: flex; flex-direction: column; gap: var(--espacio-2); padding: var(--espacio-3); border: 1px solid var(--linea); border-radius: var(--radio-md); transition: box-shadow .2s; }
.rd-item p { margin: 0; }
.rd-item--foco { box-shadow: 0 0 0 3px #6C8CFF; }
.rd-item .n-fila--entre { align-items: center; }
.rd-donde { flex: 1; min-width: 0; font-size: 14px; line-height: 20px; }
.rd-n { display: inline-grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; color: #fff; font: 700 13px/1 var(--font-sans); }
.rd-n--enviado { background: #6C8CFF; color: #0F1626; } .rd-n--resuelto { background: #1E8E4E; } .rd-n--no_resuelto { background: #C2410C; }
.rd-form, .rd-hecho { display: flex; flex-direction: column; gap: var(--espacio-2); }
.rd-form .bs-campo { margin: 0; }
.rd-form textarea { min-height: 64px; }
@media (min-width: 1100px) { .rd-grid--todos { grid-template-columns: 1fr; } .rd-grid--todos .rd-lista { max-height: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); } }
.rd-hecho .bs-btn, .rd-form .n-fila .bs-btn { align-self: flex-start; }
/* Ronda en pestaña nueva (RF-154) */
.rd-der { margin-left: auto; }
.rd-sug { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-3); padding: var(--espacio-3) var(--espacio-4); border: 1px solid var(--linea); border-left: 4px solid #6C8CFF; border-radius: var(--radio-md); }
.rd-sug p { flex: 1 1 280px; margin: 0; font-size: 14px; line-height: 20px; color: var(--texto-suave); }
.rd-sug p strong { color: var(--texto); }
.rd-sug .n-icono { margin-left: auto; }
@media (max-width: 1023px), (hover: none) { [data-solo-pc] { display: none !important; } }
.n-completo-cab { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: var(--espacio-4); padding: var(--espacio-2) var(--espacio-4); background: #0F1626; color: #E8ECF3; }
.n-completo-cab__logo svg { width: 136px; height: 26px; display: block; }
.n-completo-cab__t { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 14px; line-height: 20px; }
.n-completo-cab__t span { color: #A9B3C7; font-size: 13px; }
.n-completo-cab .n-icono { color: #E8ECF3; }
.n-completo-cab .bs-btn--secundario { color: #E8ECF3; border-color: rgba(232,236,243,.4); background: transparent; }
.n-completo { display: block; padding: var(--espacio-3) var(--espacio-4) var(--espacio-4); }
.rd--completo { border: 0; padding: 0; background: transparent; box-shadow: none; }
.rd-lado { display: flex; flex-direction: column; gap: var(--espacio-3); min-width: 0; }
@media (min-width: 1024px) {
  .rd--completo .rd-grid { grid-template-columns: minmax(0, 1fr) 380px; }
  .rd--completo .rd-marco iframe { height: calc(100vh - 190px); }
  .rd--completo .rd-lado { position: sticky; top: 64px; max-height: calc(100vh - 190px); overflow: auto; }
  .rd--completo .rd-lista { max-height: none; overflow: visible; }
  .rd--sin-lado .rd-grid { grid-template-columns: minmax(0, 1fr); }
  .rd--sin-lado .rd-lado { display: none; }
}
@media (max-width: 640px) { .n-completo-cab { flex-wrap: wrap; gap: var(--espacio-2) var(--espacio-3); } .n-completo-cab__logo { display: none; } .n-completo-cab__t span { display: none; } }
/* Referencia del cliente en la lista de la ronda (C-136) */
.rd-ref { display: flex; align-items: center; gap: var(--espacio-3); width: 100%; padding: var(--espacio-2); border: 1px solid var(--linea); border-radius: var(--radio-md); background: var(--superficie-campo); color: inherit; font: inherit; text-align: left; cursor: zoom-in; }
.rd-ref img { width: 72px; height: 54px; flex: none; object-fit: cover; border-radius: var(--radio-sm); }
.rd-ref > span { display: flex; flex-direction: column; min-width: 0; }
.rd-ref .n-nota { margin: 0; }
.rd-ref:focus-visible { outline: 2px solid transparent; box-shadow: var(--anillo-foco); }
.rd-ref-enlace { margin: 0; font-size: 14px; line-height: 20px; overflow-wrap: anywhere; }
.rd-ref-enlace .mono { display: block; color: var(--texto-suave); font-size: 13px; }
.rd-visor { display: block; width: 100%; max-height: 70vh; object-fit: contain; border-radius: var(--radio-md); background: var(--superficie-campo); }
/* Descargar para corregir (RF-155) */
.cr-prev summary { cursor: pointer; font-weight: 600; min-height: 36px; line-height: 36px; }
.cr-md { max-height: 320px; overflow: auto; margin: var(--espacio-2) 0 0; padding: var(--espacio-3); border: 1px solid var(--linea); border-radius: var(--radio-md); background: var(--superficie-campo); font: 13px/20px var(--font-mono, monospace); white-space: pre-wrap; overflow-wrap: anywhere; }
.v-quitados { margin-top: var(--espacio-2); }
