/* Panel (dashboard) · bento, cifras enormes, gráficas SVG propias.
   24-oct: con la paleta Dre UI (azul Luz, negro y blanco); los colores de Liz (butter, marrón, rosado) ya no están. */

/* ── Armazón ───────────────────────────────────────────────────────────── */
.pn .admin-lateral { gap: 0; padding: 20px 14px 14px; }
.pn .pn-marca { padding: 2px 10px 6px; }
.pn .pn-marca .logo-liz::before { width: 24px; height: 24px; } /* 25-oct: la marca arriba mide lo mismo que la de Liz (38 px) */
.pn .admin-lateral .grupo { margin-top: 16px; }
.pn .admin-lateral a { gap: 11px; padding: 7px 10px; font-size: 14px; color: var(--texto-2); }
.pn .admin-lateral a:hover { color: var(--texto); }
.pn .admin-lateral a[aria-current="page"] { background: var(--amarillo); color: #121212; font-weight: 600; }
.pn .pn-ico { width: 18px; height: 18px; display: inline-grid; place-items: center; flex-shrink: 0; }
.pn .pn-ico svg { width: 18px; height: 18px; }
.pn-badge { margin-left: auto; min-width: 22px; height: 20px; padding: 0 7px; border-radius: 999px; display: inline-grid; place-items: center; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; background: var(--widget-2); color: var(--texto-2); box-shadow: inset 0 0 0 1px var(--linea); }
.pn .admin-lateral a[aria-current="page"] .pn-badge { background: rgba(255,255,255,.6); color: #121212; box-shadow: none; }
.pn-yo { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 16px 10px 4px; }
.pn-yo b { display: block; font-size: 13.5px; }
.pn-yo span { font-size: 12px; color: var(--texto-3); }
.pn-yo .avatar { color: #fff; } /* 24-oct: las iniciales «OU» blancas sobre el azul (la regla de arriba también pintaba el avatar) */
.pn-cabeza { height: 56px; }
.pn-muestra { font-size: 11px; padding: 3px 9px; letter-spacing: .02em; white-space: nowrap; }
.pn-logo-movil .logo-liz { font-size: 15px; }
.pn-avatar { width: 34px !important; height: 34px !important; object-fit: cover; }
.pn-punto { min-width: 9px !important; width: 9px; height: 9px !important; padding: 0 !important; top: 2px !important; right: 2px !important; background: var(--rosa) !important; }
.pn-secciones { gap: 6px; padding: 10px var(--margen); background: color-mix(in srgb, var(--suelo) 92%, transparent); position: sticky; top: calc(var(--alto-cinta) + 56px); z-index: 29; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.pn-secciones a { padding: 7px 13px; font-size: 13px; }
.pn-secciones a[aria-current="page"] { color: #121212 !important; background: var(--amarillo) !important; }
/* 25-oct (Omar: «hay un espacio en el dashboard que no entiendo»): en pantallas anchas el contenido ocupa el ancho que hay; pasado 1680 px
   se centra (antes se quedaba en 1280 px pegado a la izquierda y a la derecha quedaba una franja vacía hasta el borde). */
.pn-contenido { padding-top: 18px; max-width: 1680px; margin-inline: auto; }
@media (max-width: 1023px) { .pn-cabeza .redondo { width: 38px; height: 38px; } }
@media (max-width: 339px) { .pn-cabeza .tema-boton { display: none; } } /* 24-oct: en un celular normal sí cabe */

.pn-titulo { margin-bottom: 18px; align-items: center; }
.pn-titulo h1 { font-family: var(--letra); font-weight: 700; letter-spacing: -0.03em; font-size: 28px; }
@media (min-width: 768px) { .pn-titulo h1 { font-size: 34px; } }
.pn-acciones { gap: 8px; }
.pn-acciones .seg button { padding: 0 12px; min-height: 34px; font-size: 13px; }

/* ── Saludo y tira de estados ──────────────────────────────────────────── */
.pn-saludo { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.pn-saludo-foto { width: 52px; height: 52px; border-radius: 999px; object-fit: cover; object-position: center 20%; box-shadow: 0 0 0 3px var(--amarillo); }
.pn-saludo h1 { font-family: var(--letra); font-weight: 700; font-size: 26px; letter-spacing: -0.03em; line-height: 1.1; margin-top: 2px; }
@media (min-width: 768px) { .pn-saludo-foto { width: 60px; height: 60px; } .pn-saludo h1 { font-size: 34px; } }
.pn-tira { display: flex; flex-wrap: wrap; gap: 6px 0; margin-bottom: 16px; font-size: 12.5px; font-weight: 500; color: var(--texto-2); }
.pn-tira > span { display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; }
.pn-tira > span:first-child { padding-left: 0; }
.pn-tira > span + span { box-shadow: inset 1px 0 0 var(--linea); }
.pn-p { width: 7px; height: 7px; border-radius: 999px; display: inline-block; }
.pn-p.verde { background: #34C759; } .pn-p.ambar { background: #F2A93B; } .pn-p.lila { background: #9A80C9; } .pn-p.rojo { background: #FF453A; }

/* ── Bento ─────────────────────────────────────────────────────────────── */
.pn-bento { display: grid; gap: var(--hueco); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pn-bento > * { min-width: 0; }
.pn-bento > .pn-s2, .pn-bento > .pn-s4, .pn-bento > .pn-s4-m { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .pn-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pn-bento > .pn-s2 { grid-column: span 2; }
  .pn-bento > .pn-s4-m { grid-column: span 1; }
  .pn-bento > .pn-s4-m:nth-child(3n) { grid-column: span 2; }
}
.pn-bloque { margin-top: var(--hueco); }
/* Fila de 5 mosaicos del Resumen (17-oct: + lista de espera): 2+2+1 en celular, 3+2 en tableta, 5 en escritorio ancho */
.pn-bento > .pn-fila5 { grid-column: 1 / -1; }
.pn-fila5 { display: grid; gap: var(--hueco); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pn-fila5 > * { min-width: 0; }
.pn-fila5 > :last-child { grid-column: 1 / -1; }
@media (min-width: 768px) {
  .pn-fila5 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .pn-fila5 > * { grid-column: span 2; }
  .pn-fila5 > :nth-child(n+4) { grid-column: span 3; }
}
@media (min-width: 1280px) {
  .pn-fila5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .pn-fila5 > *, .pn-fila5 > :nth-child(n+4) { grid-column: auto; }
}

.pn-tile { display: flex; flex-direction: column; min-height: 150px; }
@media (min-width: 768px) { .pn-tile { min-height: 172px; } }
.pn-tope { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
.pn-tope .icono.sm { width: 34px; height: 34px; border-radius: 11px; }
.pn-flecha { width: 34px; height: 34px; border-radius: 999px; display: grid; place-items: center; flex-shrink: 0; color: var(--texto); background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); transition: transform .2s var(--curva), background .2s; }
.pn-flecha svg { width: 16px; height: 16px; }
.pn-flecha:hover { transform: rotate(45deg); }
.pn-rotulo { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texto-3); line-height: 1.35; display: flex; align-items: center; gap: 6px; }
.pn-cifra { margin-top: 6px; font-size: clamp(28px, 8.6vw, 46px); line-height: 1; font-weight: 700; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--texto); }
.pn-cifra.pn-m { font-size: clamp(24px, 6.6vw, 32px); }
.pn-tile .pn-cifra { margin-top: auto; padding-top: 6px; }
.pn-tile .pn-rotulo + .pn-cifra { margin-top: 6px; }
.pn-tile .pn-rotulo { margin-top: auto; }
.pn-tile .pn-tope + .pn-rotulo { margin-top: auto; }
@media (min-width: 1024px) { .pn-cifra { font-size: clamp(34px, 3.3vw, 50px); } .pn-s2 .pn-cifra:not(.pn-m) { font-size: clamp(44px, 4.6vw, 66px); } }
.pn-pie { margin-top: 8px; font-size: 12.5px; line-height: 1.4; color: var(--texto-2); }
.pn-pie b { color: var(--texto); }
.pn-delta { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; margin-right: 4px; }
.pn-delta.bien { color: #1F7A4C; background: rgba(52, 199, 89, .16); }
.pn-delta.mal { color: #B3261E; background: rgba(255, 69, 58, .14); }
:root[data-theme="dark"] .pn-delta.bien { color: #7BE3A4; }
:root[data-theme="dark"] .pn-delta.mal { color: #FF9C94; }
.pn-al-pie { margin-top: auto; padding-top: 14px; align-self: flex-start; }
.pn-tile .pn-pie + .pn-al-pie { margin-top: 0; }

/* El destacado: UNO por pantalla, en azul Luz con letra casi negra */
.pn-destacado { background: var(--amarillo) !important; color: #121212; box-shadow: 0 0 0 1px rgba(18, 18, 18, .08), 0 24px 48px -30px rgba(61, 155, 255, .45) !important; }
.pn-destacado .pn-rotulo { color: rgba(18, 18, 18, .8); }
.pn-destacado .pn-cifra, .pn-destacado .pn-pie b, .pn-destacado .pn-cuenta b { color: #121212; }
.pn-destacado .pn-pie, .pn-destacado .texto-2, .pn-destacado .pn-cuenta span { color: rgba(18, 18, 18, .72); }
.pn-destacado .pn-flecha { background: rgba(255, 255, 255, .55); color: #121212; box-shadow: none; }
.pn-destacado .pn-delta.bien { color: #1D6B43; background: rgba(255, 255, 255, .55); }
.pn-destacado .pn-delta.mal { color: #9B1F18; background: rgba(255, 255, 255, .55); }
.pn-ico-claro { background: rgba(255, 255, 255, .6) !important; color: #121212 !important; box-shadow: none !important; }
.pn-ico-claro svg { filter: none !important; }
.pn-ins-claro { background: rgba(255, 255, 255, .6) !important; color: #121212 !important; }
.pn-sub3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; padding-top: 14px; box-shadow: inset 0 1px 0 rgba(18, 18, 18, .12); }
.pn-sub3 span { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(18, 18, 18, .8); }
.pn-sub3 b { display: block; margin-top: 4px; font-size: clamp(16px, 4.6vw, 22px); font-weight: 700; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* 25-oct: las tarjetas de dinero (Ingresos del Resumen, Ingreso de Ventas) en negro con letra blanca, en claro y en oscuro.
   El «US$» y la variación van en verde si sube contra el periodo anterior, en rojo si baja y en gris sin con qué comparar.
   En oscuro, un filo de 1px la separa del fondo negro. Selectores con .pn-tile para ganarle a oscuro.css. */
.pn-tile.pn-dinero { --din-tono: rgba(255, 255, 255, .6); --din-fondo: rgba(255, 255, 255, .1); background: #0B0B0C !important; color: #FFFFFF; box-shadow: 0 0 0 1px rgba(0, 0, 0, .9), 0 24px 48px -30px rgba(0, 0, 0, .55) !important; }
:root[data-theme="dark"] .pn-tile.pn-dinero { background: #0E0E10 !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16) !important; }
.pn-tile.pn-dinero-sube { --din-tono: #34D46B; --din-fondo: rgba(52, 212, 107, .16); }
.pn-tile.pn-dinero-baja { --din-tono: #FF5A4F; --din-fondo: rgba(255, 90, 79, .16); }
.pn-tile.pn-dinero .pn-rotulo { color: rgba(255, 255, 255, .72); }
.pn-tile.pn-dinero .pn-cifra, .pn-tile.pn-dinero .pn-pie b, .pn-tile.pn-dinero .pn-sub3 b { color: #FFFFFF; }
.pn-tile.pn-dinero .pn-pie, .pn-tile.pn-dinero .texto-2, .pn-tile.pn-dinero .texto-3 { color: rgba(255, 255, 255, .7); }
.pn-tile.pn-dinero .pn-moneda { color: var(--din-tono); }
.pn-tile.pn-dinero .pn-var { display: inline-flex; align-items: center; padding: 2px 8px; margin-right: 2px; border-radius: 999px; font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--din-tono); background: var(--din-fondo); }
.pn-tile.pn-dinero .pn-flecha { background: rgba(255, 255, 255, .12); color: #FFFFFF; box-shadow: none; }
.pn-tile.pn-dinero .pn-flecha:hover { background: rgba(255, 255, 255, .2); }
.pn-tile.pn-dinero .pn-flecha:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }
.pn-ico-negro { background: rgba(255, 255, 255, .12) !important; color: #FFFFFF !important; box-shadow: none !important; }
.pn-ico-negro svg { filter: none !important; }
.pn-tile.pn-dinero .pn-sub3 { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14); }
.pn-tile.pn-dinero .pn-sub3 span { color: rgba(255, 255, 255, .68); }

/* ── KPI de F.panel.kpi (para las páginas de otros) ───────────────────── */
.pn-kpi { display: flex; flex-direction: column; min-height: 140px; }
.pn-kpi .pn-cifra { margin-top: 6px; }
.pn-kpi .pn-tope { margin-bottom: auto; padding-bottom: 12px; }

/* ── Cabeza de widget ──────────────────────────────────────────────────── */
.pn-wcabeza { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; min-height: 34px; }
.relleno-lista > .pn-wcabeza { padding-top: 14px; margin-bottom: 4px; }
.pn-wcabeza h2 { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; display: flex; align-items: center; gap: 8px; }
.pn-wcabeza .enlace { font-size: 13px; }
.pn-wcabeza .enlace svg { width: 14px; height: 14px; }
.pn-num-chip { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--widget-2); color: var(--texto-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pn-h2 { font-size: 15px; font-weight: 700; margin: 26px 0 12px; }
.pn-chico { font-size: 12.5px; }
.pn-fuerte { font-weight: 600; color: var(--texto); }
.pn-t-normal { font-weight: 500 !important; }
.pn-t-normal b { font-weight: 700; }
.pn-corta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.pn-peligro { color: var(--urgente) !important; }
.pn-codigo { font-family: ui-monospace, Menlo, monospace; letter-spacing: .04em; }

/* ── Gráfica de serie ──────────────────────────────────────────────────── */
.pn-grafica { position: relative; }
.pn-lienzo { position: relative; height: 190px; margin-top: 46px; touch-action: pan-y; cursor: crosshair; outline: none; user-select: none; -webkit-user-select: none; }
@media (min-width: 768px) { .pn-lienzo { height: 240px; } }
.pn-lienzo:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--acento) 40%, transparent); border-radius: 8px; }
.pn-lienzo svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.pn-rej { stroke: var(--linea); stroke-width: 1; }
.pn-trazo { fill: none; stroke: var(--acento); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
:root[data-theme="dark"] .pn-trazo { stroke: var(--luz); }
.pn-fantasma { fill: none; stroke: var(--texto-3); stroke-width: 1.5; stroke-dasharray: 4 5; opacity: .6; }
.pn-pin { position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 999px; background: var(--acento); box-shadow: 0 0 0 3px var(--widget), 0 2px 8px rgba(18, 18, 18, .3); pointer-events: none; }
:root[data-theme="dark"] .pn-pin { background: var(--luz); }
.pn-guia { position: absolute; top: 0; bottom: 0; width: 1px; background: color-mix(in srgb, var(--texto) 18%, transparent); pointer-events: none; opacity: 0; transition: opacity .15s; }
.pn-lienzo.activo .pn-guia { opacity: 1; }
.pn-globo { position: absolute; top: -46px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; padding: 5px 11px; border-radius: 12px; background: var(--texto); color: var(--suelo); white-space: nowrap; pointer-events: none; line-height: 1.2; }
.pn-globo b { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pn-globo span { font-size: 11px; opacity: .75; }
.pn-ejes { display: flex; justify-content: space-between; margin-top: 8px; font-size: 11.5px; color: var(--texto-3); font-variant-numeric: tabular-nums; }
.pn-leyenda { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 12px; color: var(--texto-2); }
.pn-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.pn-leyenda i { display: inline-block; width: 16px; height: 3px; border-radius: 3px; }
.pn-l-actual { background: var(--acento); }
:root[data-theme="dark"] .pn-l-actual { background: var(--luz); }
.pn-l-fantasma { background: repeating-linear-gradient(90deg, var(--texto-3) 0 4px, transparent 4px 8px) !important; }
.pn-l-clic { background: #22B8F0; }

/* Barras horizontales */
.pn-barras .barra-progreso { height: 10px; }
.pn-barras .barra-progreso > span { background: linear-gradient(90deg, #8EC8FF, #1473FF); }
:root[data-theme="dark"] .pn-barras .barra-progreso > span { background: linear-gradient(90deg, #1473FF, #8EC8FF); }
.pn-barras .linea-sup span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-right: 10px; }

/* Barra apilada (atribución, fuentes) */
.pn-apilada { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: var(--widget-2); gap: 2px; }
.pn-apilada > span { display: block; height: 100%; min-width: 2px; }
.pn-o-org { background: #BFE0FF; }
.pn-o-liza { background: #CBB8E8; }
.pn-o-pauta { background: #8EC8FF; }
.pn-f0 { background: #BFE0FF; } .pn-f1 { background: #1473FF; } .pn-f2 { background: #8EC8FF; } .pn-f3 { background: #3D9BFF; } .pn-f4 { background: #5E5CE6; }
.pn-cuadro { display: inline-block; width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.pn-origen { display: inline-flex; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; color: #121212; white-space: nowrap; }
.pn-at { display: grid; gap: 14px; grid-template-columns: 1fr; margin-top: 18px; }
@media (min-width: 640px) { .pn-at { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pn-at-item { padding: 14px; border-radius: var(--radio-panel); background: var(--widget-2); }
.pn-meses { margin-top: 10px; }

/* Anillo de cupos */
.pn-anillo-fila { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.pn-anillo { --p: 0; position: relative; width: 64px; height: 64px; flex-shrink: 0; border-radius: 999px; display: grid; place-items: center; background: conic-gradient(var(--luz) calc(var(--p) * 1%), var(--widget-2) 0); }
.pn-anillo::before { content: ""; position: absolute; inset: 7px; border-radius: inherit; background: var(--widget); }
.pn-anillo b { position: relative; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pn-anillo-fila .pn-cifra { margin-top: 0; }
.pn-anillo-fila .pn-pie { margin-top: 4px; }

/* Cuenta regresiva */
.pn-cuenta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: auto; padding-top: 8px; }
.pn-cuenta > div { display: flex; flex-direction: column; align-items: flex-start; }
.pn-cuenta b { font-size: clamp(30px, 9vw, 52px); line-height: 1; font-weight: 700; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; color: var(--texto); }
.pn-cuenta span { margin-top: 4px; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--texto-3); }

/* Pregúntale a LIZA */
.pn-liza { display: flex; flex-direction: column; }
.pn-liza-marca { width: 26px; height: 26px; border-radius: 9px; display: inline-grid; place-items: center; background: var(--lila); color: #121212; }
.pn-liza-marca svg { width: 15px; height: 15px; }
.pn-respuesta { display: flex; flex-direction: column; gap: 8px; }
.pn-respuesta:empty { display: none; }
.pn-burbuja { max-width: 88%; padding: 10px 14px; border-radius: 18px; font-size: 14px; line-height: 1.45; }
.pn-burbuja.yo { align-self: flex-end; background: var(--widget-2); border-bottom-right-radius: 6px; }
.pn-burbuja.liza { align-self: flex-start; background: color-mix(in srgb, var(--lila) 45%, var(--widget)); color: var(--texto); border-bottom-left-radius: 6px; }
.pn-sugerencias { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.pn-sugerencias .chip { cursor: pointer; border: 0; font-family: inherit; }
.pn-pregunta { display: flex; gap: 8px; margin-top: auto; }
.pn-pregunta .entrada { border-radius: 999px; min-height: 44px; }
.pn-pregunta .btn { width: 44px; min-height: 44px; padding: 0; border-radius: 999px; flex-shrink: 0; }
.pn-pregunta .btn svg { width: 18px; height: 18px; }

/* ── Filtros y tablas que se vuelven filas en el celular ───────────────── */
.pn-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.pn-filtros .buscador { flex: 1 1 220px; min-width: 0; }
.pn-select { min-height: 40px; padding: 0 30px 0 14px; border-radius: 999px; border: 0; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--texto); background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--texto-2) 50%), linear-gradient(135deg, var(--texto-2) 50%, transparent 50%); background-position: calc(100% - 16px) 18px, calc(100% - 11px) 18px; background-size: 5px 5px; background-repeat: no-repeat; }
.pn-pestanas { margin: 4px 0 6px; }
.pn-pestanas button { font-size: 13.5px; padding: 8px 13px; }
.pn-tabla td { vertical-align: middle; }
.pn-tabla .persona { display: flex; align-items: center; gap: 10px; min-width: 0; }
@media (max-width: 767px) {
  .pn-tabla, .pn-tabla tbody { display: block; width: 100%; }
  .pn-tabla thead { display: none; }
  .pn-tabla tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding: 12px 0; border-top: 1px solid var(--linea); }
  .pn-tabla tr:first-child { border-top: 0; }
  .pn-tabla td { display: block; padding: 0; border: 0; min-width: 0; }
  .pn-tabla .pn-c-oc { display: none; }
  .pn-tabla .pn-c-princ { grid-column: 1; grid-row: 1; }
  .pn-tabla .pn-c-monto, .pn-tabla .pn-c-est { grid-column: 2; grid-row: 1; text-align: right; }
  .pn-tabla .pn-c-sec { grid-column: 1; grid-row: 2; font-size: 12.5px; color: var(--texto-2); }
  .pn-tabla tr:has(.pn-c-est):has(.pn-c-monto) .pn-c-est { grid-row: 2; }
  .pn-tabla tr:has(.pn-c-est):has(.pn-c-monto) .pn-c-monto { grid-row: 1; }
}

/* ── Analíticas ────────────────────────────────────────────────────────── */
.pn-rango { width: 26px; height: 26px; border-radius: 9px; display: grid; place-items: center; flex-shrink: 0; font-size: 12px; font-weight: 700; background: var(--widget-2); color: var(--texto-2); font-variant-numeric: tabular-nums; }
.pn-embudo { display: flex; flex-direction: column; gap: 12px; }
.pn-e-linea { display: flex; justify-content: space-between; gap: 8px; font-size: 13.5px; margin-bottom: 6px; align-items: center; flex-wrap: wrap; }
.pn-e-linea .insignia { font-size: 11px; padding: 1px 7px; }
.pn-e-barra { height: 26px; border-radius: 9px; background: var(--widget-2); overflow: hidden; }
.pn-e-barra > span { display: block; height: 100%; border-radius: 9px; background: linear-gradient(90deg, #8EC8FF, #3D9BFF); }
.pn-e-barra.est > span { background: repeating-linear-gradient(135deg, #EAF3FF 0 8px, #BFE0FF 8px 16px); opacity: .8; }

/* ── Alumna (hoja) ─────────────────────────────────────────────────────── */
.pn-semanas-mini { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.pn-semanas-mini > div { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11.5px; color: var(--texto-2); font-variant-numeric: tabular-nums; }
.pn-sm-barra { width: 100%; height: 70px; border-radius: 10px; background: var(--widget-2); display: flex; align-items: flex-end; overflow: hidden; }
.pn-sm-barra span { display: block; width: 100%; background: linear-gradient(180deg, #8EC8FF, #1473FF); border-radius: 10px; }
.pn-semanas-mini b { font-size: 11px; color: var(--texto-3); }
.pn-cuota { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding: 16px; background: color-mix(in srgb, var(--amarillo) 40%, var(--widget)); flex-wrap: wrap; }
.pn-hoja-cifra { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* ── Curso ─────────────────────────────────────────────────────────────── */
.pn-semanas { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 8px; margin-top: var(--hueco); overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.pn-semanas::-webkit-scrollbar { display: none; }
@media (max-width: 767px) { .pn-semanas { grid-template-columns: repeat(5, 132px); margin-inline: calc(-1 * var(--margen)); padding-inline: var(--margen); scroll-padding-inline: var(--margen); } }
.pn-semana { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; border-radius: 18px; background: var(--widget); box-shadow: 0 0 0 1px var(--linea); }
.pn-semana b { font-size: 18px; letter-spacing: -0.02em; }
.pn-semana.abierta { background: color-mix(in srgb, var(--amarillo) 30%, var(--widget)); }
.pn-semana.actual { box-shadow: inset 0 0 0 2px var(--luz); }
.pn-semana .insignia svg { width: 12px; height: 12px; }
.pn-semana .btn svg { width: 14px; height: 14px; }
.pn-modulo { display: flex; align-items: center; gap: 12px; padding: 14px 0 6px; }
.pn-mod-n { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; flex-shrink: 0; font-weight: 700; font-size: 15px; background: var(--amarillo); color: #121212; font-variant-numeric: tabular-nums; }
.pn-cerrado .pn-mod-n { background: var(--widget-2); color: var(--texto-3); }
.pn-tarea-media { position: relative; margin: 14px 0 12px; border-radius: 18px; overflow: hidden; aspect-ratio: 9 / 12; max-height: 320px; width: 100%; background: var(--widget-2); }
.pn-tarea-media img { width: 100%; height: 100%; object-fit: cover; }
.pn-play { position: absolute; inset: 0; margin: auto; width: 56px; height: 56px; border-radius: 999px; display: grid; place-items: center; background: rgba(255, 255, 255, .85); color: #121212; }
.pn-play svg { width: 22px; height: 22px; }
.pn-hashtag { position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: rgba(255, 255, 255, .85); color: #121212; }

/* ── Masterclass ───────────────────────────────────────────────────────── */
.pn-seg-ancho { display: grid; width: 100%; }
.pn-boot-estado { grid-template-columns: 1fr 1fr; margin-bottom: 8px; }
.pn-oferta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: var(--radio-panel); background: color-mix(in srgb, var(--amarillo) 35%, var(--widget)); transition: opacity .2s; }
.pn-oferta.apagada { opacity: .45; }
.pn-oferta-precio { display: flex; flex-direction: column; align-items: flex-end; font-variant-numeric: tabular-nums; }
.pn-oferta-precio b { font-size: 24px; letter-spacing: -0.03em; }
.pn-cupon { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 10px; padding: 12px 14px; border-radius: var(--radio-panel); border: 1.5px dashed color-mix(in srgb, var(--texto) 25%, transparent); font-size: 13px; }
.pn-cupon > span:first-child { font-family: ui-monospace, Menlo, monospace; font-weight: 700; letter-spacing: .06em; }

/* ── Correos ───────────────────────────────────────────────────────────── */
.pn-subir { cursor: pointer; }
.pn-fila-diaria { display: flex; align-items: center; gap: 14px; }
.pn-camp { display: flex; flex-direction: column; gap: 14px; }
.pn-camp-fila { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
@media (min-width: 768px) { .pn-camp-fila { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) 110px; align-items: center; gap: 14px; } }
.pn-camp-t { font-size: 13.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pn-camp-b { position: relative; height: 12px; border-radius: 999px; background: var(--widget-2); overflow: hidden; }
.pn-camp-b span { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; }
.pn-camp-b .ap { background: var(--acento); opacity: .85; }
:root[data-theme="dark"] .pn-camp-b .ap { background: var(--luz); }
.pn-camp-b .cl { background: #22B8F0; }

/* ── Productos ─────────────────────────────────────────────────────────── */
.pn-prods { display: grid; gap: var(--hueco); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .pn-prods { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .pn-prods { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pn-prod { padding: 0; overflow: hidden; display: flex; flex-direction: column; transition: opacity .2s; }
.pn-prod.apagado { opacity: .62; }
.pn-prod-portada { position: relative; height: 110px; display: grid; place-items: center; overflow: hidden; border-radius: 0 !important; }
.pn-prod-portada img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pn-prod-ico { position: relative; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(255, 255, 255, .7); color: #121212; }
.pn-prod-portada img ~ .pn-prod-ico { display: none; }
.pn-prod-ico svg { width: 22px; height: 22px; }
.pn-prod-cuerpo { padding: var(--relleno-widget); display: flex; flex-direction: column; flex: 1; }
.pn-prod-datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.pn-prod-datos > div { padding: 10px; border-radius: 12px; background: var(--widget-2); min-width: 0; }
.pn-prod-datos span { display: block; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--texto-3); }
.pn-prod-datos b { display: block; margin-top: 3px; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-prod-pie { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }

/* ── Cobros ────────────────────────────────────────────────────────────── */
.pn-aviso-fijo { display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px; border-radius: 16px; background: color-mix(in srgb, var(--turquesa) 22%, var(--widget)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--turquesa) 55%, transparent); font-size: 13.5px; line-height: 1.45; color: var(--texto); }
.pn-aviso-fijo svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; color: #3E8C88; }
.pn-pasarela .pn-cifra { margin-top: 0; }
.pn-pasarela .pn-tope + .pn-cifra { margin-top: auto; }
.pn-pasos { display: flex; flex-direction: column; gap: 10px; }
.pn-paso { display: flex; align-items: center; gap: 12px; font-size: 14.5px; }
.pn-paso > span { width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center; flex-shrink: 0; font-weight: 700; font-size: 13px; background: var(--amarillo); color: #121212; }

/* ── Ajustes ───────────────────────────────────────────────────────────── */
.pn-dominio { font-size: clamp(18px, 5.4vw, 26px) !important; white-space: normal; word-break: break-all; margin: 0 0 12px; }
.pn-dns-pasos { margin: 0 0 12px; padding-left: 18px; font-size: 13.5px; line-height: 1.6; color: var(--texto-2); }
.pn-dns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pn-dns > div { padding: 10px 12px; border-radius: 12px; background: var(--widget-2); min-width: 0; }
.pn-dns span { display: block; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--texto-3); }
.pn-dns b { display: block; margin-top: 3px; font-family: ui-monospace, Menlo, monospace; font-size: 13px; overflow-wrap: anywhere; }
.pn-muestras { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.pn-muestras > div { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11px; color: var(--texto-2); min-width: 0; }
.pn-muestras span { width: 100%; aspect-ratio: 1; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--linea); }
.pn-letras { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 14px; font-size: 20px; color: var(--texto); }

.pn .vacio { padding: 28px 12px; }
@media (max-width: 767px) {
  .pn-filtros .buscador { flex: 1 1 100%; }
  .pn-filtros .pn-select { flex: 1 1 0; min-width: 0; padding-left: 12px; font-size: 13px; }
}

/* ── Auditoría de diseño 12-oct · tarjetas de dato a escuadra ─────────────
   Antes el contenido se empujaba hacia abajo (margin-top:auto), así que una
   tarjeta sin línea de detalle dejaba su rótulo y su cifra más abajo que sus
   vecinas. Ahora todo va arriba: ícono, rótulo, cifra y detalle caen a la
   misma altura en cada tarjeta de la fila, y el rótulo reserva dos líneas
   (pegado a la cifra) para que uno largo no descuadre al resto. */
.pn-tile .pn-rotulo, .pn-tile .pn-tope + .pn-rotulo { margin-top: 0; }
.pn-tile .pn-cifra { margin-top: 6px; padding-top: 0; }
.pn-kpi .pn-tope { margin-bottom: 14px; padding-bottom: 0; }
.pn-tile .pn-rotulo, .pn-kpi .pn-rotulo { min-height: calc(1.35em * 2); align-items: flex-end; }
.pn-tile .pn-pie, .pn-kpi .pn-pie { min-height: calc(1.4em); }
.pn-tile .pn-cuenta { margin-top: 6px; padding-top: 0; }
.pn-tile .pn-anillo-fila { margin-top: 6px; align-items: flex-start; }
.pn-tile .pn-anillo-fila .pn-cifra { margin-top: 0; }

/* Celular: «Datos de muestra» no cabe junto a la campana; la cinta de vista previa ya lo deja claro */
@media (max-width: 480px) { .pn-cabeza .pn-muestra { display: none; } }

/* ── 13-oct · Transferencias por confirmar ─────────────────────────────── */
.pn-transf { margin-bottom: var(--hueco); background: color-mix(in srgb, var(--amarillo) 26%, var(--widget)); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--luz) 55%, transparent); }
.pn-transf .pn-wcabeza h2 .icono { width: 28px; height: 28px; border-radius: 9px; }
.pn-transf .fila .derecha .btn { white-space: nowrap; }
.pn-transf .fila .derecha .btn svg { width: 15px; height: 15px; }
.pn-transf-mas { display: inline-flex; align-items: center; gap: 4px; padding: 4px 0 14px; font-size: 13px; }
.pn-transf-mas svg { width: 14px; height: 14px; }
.pn-transf .pn-transf-quitar { width: 36px; height: 36px; flex-shrink: 0; color: var(--urgente); background: color-mix(in srgb, var(--urgente) 14%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--urgente) 45%, transparent); } /* 29-oct: «No procedió» desde el aviso; en rojo porque la gris no se veía (Omar) */
.pn-transf .pn-transf-quitar:hover { background: color-mix(in srgb, var(--urgente) 24%, transparent); }
.pn-transf .pn-transf-quitar > svg { width: 16px; height: 16px; stroke-width: 2.4; }
.pn-comprobante { margin: 16px 0 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pn-comprobante > img { width: 100%; max-height: 420px; object-fit: contain; border-radius: 18px; background: var(--widget-2); }
.pn-recibo { width: 100%; max-width: 330px; padding: 20px 18px 16px; border-radius: 20px; background: #FFFFFF; color: #2A1A11; box-shadow: 0 0 0 1px rgba(18, 18, 18, .1), 0 18px 40px -26px rgba(18, 18, 18, .55); font-variant-numeric: tabular-nums; }
.pn-recibo-cab { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; }
.pn-recibo-ok { width: 26px; height: 26px; border-radius: 999px; display: grid; place-items: center; background: #34C759; color: #fff; }
.pn-recibo-ok svg { width: 15px; height: 15px; stroke-width: 3; }
.pn-recibo-monto { margin: 12px 0 14px; text-align: center; font-size: 34px; font-weight: 700; letter-spacing: -0.04em; }
.pn-recibo dl { margin: 0; display: flex; flex-direction: column; border-top: 1px dashed rgba(18, 18, 18, .2); }
.pn-recibo dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; font-size: 13px; border-bottom: 1px solid rgba(18, 18, 18, .07); }
.pn-recibo dl > div:last-child { border-bottom: 0; }
.pn-recibo dt { color: rgba(42, 26, 17, .55); }
.pn-recibo dd { margin: 0; font-weight: 600; text-align: right; min-width: 0; overflow-wrap: anywhere; }
.pn-confirmar { min-height: 52px; }

/* ── 13-oct · Importar compradoras ─────────────────────────────────────── */
.pn-soltar { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 22px 16px; border-radius: 20px; text-align: center; cursor: pointer; border: 1.5px dashed color-mix(in srgb, var(--texto) 22%, transparent); background: var(--widget); transition: background .2s, border-color .2s; }
.pn-soltar:hover { background: var(--widget-2); border-color: color-mix(in srgb, var(--texto) 35%, transparent); }
.pn-soltar b { font-size: 15px; margin-top: 4px; }
.pn-soltar > span:last-of-type { font-size: 13px; color: var(--texto-2); }
.pn-soltar:focus-within { box-shadow: 0 0 0 3px color-mix(in srgb, var(--acento) 40%, transparent); }
.pn-imp-correo { padding: 12px 14px; border-radius: 16px; background: var(--widget); box-shadow: inset 0 0 0 1px var(--linea); }
.pn-imp-archivo { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; min-width: 0; }
.pn-imp-archivo svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--texto-2); }
.pn-imp-archivo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pn-imp-datos { margin: 10px 0; }
.pn-imp-datos .ok { background: color-mix(in srgb, var(--amarillo) 45%, var(--widget)); }
.pn-imp-datos b { font-size: 20px; }
.pn-imp-lista { margin-top: 4px; }
.pn-imp-lista .fila { padding-block: 9px; }
.pn-imp-lista .t { font-size: 14px; }
.pn-imp-lista .s { font-size: 12.5px; }
#pn-imp-ok:disabled { opacity: .45; cursor: not-allowed; }

/* ── 13-oct · Funnels ──────────────────────────────────────────────────── */
.pn-fn-lista { display: grid; gap: var(--hueco); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1100px) { .pn-fn-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pn-fn { display: flex; flex-direction: column; gap: 16px; transition: opacity .2s; }
.pn-fn.pausado .pn-fn-cadena, .pn-fn.pausado .pn-fn-embudo { opacity: .55; }
.pn-fn-cabeza { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pn-fn-nombre { display: flex; align-items: center; gap: 12px; min-width: 0; color: inherit; text-decoration: none; }
.pn-fn-nombre > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.pn-fn-nombre b { font-size: 18px; letter-spacing: -0.02em; }
.pn-fn-nombre .pn-pie { margin-top: 2px; }
.pn-fn-nombre .icono.sm { width: 38px; height: 38px; border-radius: 12px; }
.pn-fn-estado { gap: 8px; flex-wrap: nowrap; flex-shrink: 0; }
.pn-fn-cadena { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 4px; }
.pn-fn-eslabon { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); max-width: 100%; }
.pn-fn-eslabon > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pn-fn-eslabon .icono.xs { width: 22px; height: 22px; border-radius: 999px; flex-shrink: 0; }
.pn-fn-eslabon .icono.xs svg { width: 12px; height: 12px; }
.pn-fn-flecha { display: inline-grid; place-items: center; color: var(--texto-3); }
.pn-fn-flecha svg { width: 14px; height: 14px; }
.pn-fn-embudo { gap: 10px; }
.pn-fn-embudo .pn-e-barra { height: 18px; border-radius: 7px; }
.pn-fn-embudo .pn-e-barra > span { border-radius: 7px; }
.pn-fn-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.pn-fn-pie .pn-pie { margin: 0; }

.pn-fn-control { display: flex; flex-direction: column; gap: 14px; }
.pn-fn-acciones { gap: 8px; }
.pn-fn-pasos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pn-fn-paso { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding-bottom: 14px; }
.pn-fn-paso:last-child { padding-bottom: 0; }
.pn-fn-riel { position: relative; display: flex; justify-content: center; }
.pn-fn-riel .icono.sm { position: relative; z-index: 1; width: 34px; height: 34px; border-radius: 11px; }
.pn-fn-paso:not(:last-child) .pn-fn-riel::after { content: ""; position: absolute; top: 38px; bottom: -10px; left: 50%; width: 2px; margin-left: -1px; border-radius: 2px; background: repeating-linear-gradient(180deg, var(--linea) 0 5px, transparent 5px 9px); }
.pn-fn-caja { min-width: 0; padding: 12px 14px; border-radius: var(--radio-panel); background: var(--widget-2); }
.pn-fn-tope { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pn-fn-tope .pn-rotulo { min-height: 0; }
.pn-fn-tope .insignia { font-size: 11.5px; padding: 2px 9px; white-space: nowrap; }
.pn-fn-titulo { margin-top: 6px; font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.pn-fn-caja .pn-pie { margin-top: 4px; }
.pn-fn-campos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pn-fn-campos > span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--widget); box-shadow: inset 0 0 0 1px var(--linea); }
.pn-fn-campos svg { width: 13px; height: 13px; color: #1F7A4C; }
.pn-fn-btns { display: flex; justify-content: flex-end; gap: 6px; margin-top: 10px; }
.pn-fn-b { width: 36px; height: 36px; border: 0; border-radius: 999px; display: grid; place-items: center; cursor: pointer; color: var(--texto); background: var(--widget); box-shadow: inset 0 0 0 1px var(--linea); transition: transform .15s var(--curva), background .2s; }
.pn-fn-b:hover { background: var(--suelo); }
.pn-fn-b:active { transform: scale(.92); }
.pn-fn-b svg { width: 16px; height: 16px; }
.pn-fn-agregar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; box-shadow: inset 0 1px 0 var(--linea); }
.pn-fn-agregar .pn-rotulo { min-height: 0; margin-right: 4px; }
.pn-fn-espera { display: flex; align-items: center; gap: 10px; }
.pn-fn-espera .entrada { width: 96px; flex-shrink: 0; text-align: center; }
.pn-fn-espera span { font-size: 13.5px; color: var(--texto-2); }
.pn-boton-peligro { background: var(--urgente) !important; color: #fff !important; }

/* ── Auditoría de diseño 13-oct ─────────────────────────────────────────── */
/* Cifras en dinero: «US$» más pequeño para que la cifra quepa en el mosaico (Ingreso se salía) */
.pn-moneda { font-size: .5em; font-weight: 700; letter-spacing: 0; margin-right: .08em; vertical-align: .55em; }
.pn-tile { container-type: inline-size; }
.pn-tile .pn-cifra:not(.pn-m) { font-size: min(clamp(28px, 8.6vw, 46px), 26cqi); }
@media (min-width: 1024px) { .pn-tile .pn-cifra:not(.pn-m) { font-size: min(clamp(34px, 3.3vw, 50px), 26cqi); } .pn-s2 .pn-tile .pn-cifra:not(.pn-m), .pn-tile.pn-s2 .pn-cifra:not(.pn-m) { font-size: min(clamp(44px, 4.6vw, 66px), 26cqi); } }
/* Productos: precio, ventas e ingreso a la misma altura en toda la fila; el ingreso ya no se corta */
.pn-prod-cuerpo > .pn-pie { margin-bottom: 14px; }
.pn-prod-datos { margin: auto 0 14px; }
.pn-prod-pie { margin-top: 0; }
.pn-prod-datos > div { padding: 10px 8px; }
.pn-prod-datos b .pn-moneda { display: inline; font-size: .72em; font-weight: 700; letter-spacing: 0; text-transform: none; color: inherit; vertical-align: 0; margin-right: 1px; }
/* Hoja de una venta: el valor (nombre + correo) se queda dentro de la tarjeta */
.fila .pn-valor { min-width: 0; flex-shrink: 1; }
.pn-valor > div { min-width: 0; overflow-wrap: anywhere; }
/* Editor de funnel: en escritorio los botones del paso van a la derecha, no en una fila vacía aparte */
@media (min-width: 768px) {
  .pn-fn-caja { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; }
  .pn-fn-caja > * { grid-column: 1; }
  .pn-fn-caja > .pn-fn-tope { grid-column: 1 / -1; }
  .pn-fn-caja > .pn-fn-btns { grid-column: 2; grid-row: 2 / span 3; align-self: end; margin-top: 0; }
}
/* Transferencias por confirmar (celular): el botón «Confirmar» ya no se sale por la derecha de la tarjeta */
.pn-transf .fila .cuerpo { min-width: 0; }
@media (max-width: 420px) { .pn-transf .fila .derecha .btn { padding-inline: 14px; } .pn-transf .fila .derecha .btn svg { display: none; } }

/* 14-oct · cursos de la academia y descuento por funnel */
.pn-cursos-sel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hueco, 12px); margin-bottom: var(--hueco, 12px); }
.pn-curso-tab { display: flex; align-items: center; gap: 12px; padding: 14px 16px; color: inherit; box-shadow: inset 0 0 0 1px var(--linea); }
.pn-curso-tab b { display: block; font-size: 15px; }
.pn-curso-tab.activo { box-shadow: inset 0 0 0 2px #121212; }
.pn-fechas { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.pn-fechas .entrada { min-height: 42px; font-size: 13.5px; }
.pn-fechas .campo .entrada + .entrada { margin-top: 6px; }
.pn-fn-precio { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0 2px; font-size: 14px; font-variant-numeric: tabular-nums; }
.pn-fn-precio s { color: var(--texto-3); }
@media (max-width: 720px) { .pn-fechas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pn-cursos-sel { grid-template-columns: 1fr; } }
/* ── 15-oct · Oferta de la masterclass y oferta por funnel ─────────────── */
.pn-oferta-que { margin-top: 8px; }
.pn-oferta-acciones { gap: 8px; margin-top: 12px; }
.pn-cupon .insignia { margin-left: auto; }
.pn-mc-cadena { padding: 2px 0 12px; }
.pn-fn-ofertas { display: flex; flex-direction: column; gap: 8px; }
.pn-fn-oferta { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radio-panel); background: color-mix(in srgb, var(--rosa) 22%, var(--widget)); font-size: 13.5px; font-variant-numeric: tabular-nums; }
.pn-fn-oferta .icono.xs { width: 26px; height: 26px; border-radius: 999px; flex-shrink: 0; }
.pn-fn-oferta .icono.xs svg { width: 13px; height: 13px; }
.pn-fn-oferta-t { flex: 1; min-width: 0; line-height: 1.45; }
.pn-fn-oferta-t .pn-rotulo { display: inline; margin-right: 4px; }
.pn-fn-oferta-t s { color: var(--texto-3); }
.pn-fn-oferta .btn-sec { flex-shrink: 0; }
.pn-cupon-mc { border: 0; cursor: pointer; font: inherit; font-family: var(--letra); font-size: 11px; letter-spacing: 0; margin-left: 6px; vertical-align: 1px; }
.pn-cupon-mc svg { width: 11px; height: 11px; }
@media (max-width: 520px) {
  .pn-fn-oferta { flex-wrap: wrap; }
  .pn-fn-oferta-t { flex-basis: calc(100% - 40px); }
  .pn-fn-oferta .btn-sec { margin-left: 36px; }
}
/* ── 17-oct · Copia de seguridad y medición ────────────────────────────── */
.pn-copia { display: flex; align-items: center; gap: 12px; margin-bottom: var(--hueco); padding: 14px 16px; background: color-mix(in srgb, #F2A93B 16%, var(--widget)); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, #F2A93B 50%, transparent); }
.pn-copia > .icono { flex-shrink: 0; }
.pn-copia-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.pn-copia-txt b { font-size: 15px; }
.pn-copia-txt span { font-size: 13px; color: var(--texto-2); }
.pn-copia .btn { flex-shrink: 0; white-space: nowrap; }
.pn-copia .btn svg { width: 15px; height: 15px; }
@media (max-width: 560px) {
  .pn-copia { flex-wrap: wrap; }
  .pn-copia-txt { flex-basis: calc(100% - 52px); }
  .pn-copia .btn { width: 100%; justify-content: center; }
}
.pn-copia-aj { display: flex; flex-direction: column; }
.pn-copia-aj .pn-cifra { margin-top: 4px; }
.pn-copia-aj .btn svg { width: 15px; height: 15px; }
.pn-origen-fuente { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pn-fuente { display: inline-flex; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 600; color: var(--texto-2); background: var(--widget-2); white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.pn-fuente-movil { display: none; }
@media (max-width: 767px) { .pn-fuente-movil { display: inline; } }
.pn-pixel { display: flex; align-items: center; gap: 8px; margin-top: 3px; min-width: 0; }
.pn-pixel .insignia { flex-shrink: 0; }
.pn-pixel-id { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Textos que llegan del público (origen, fuente) nunca empujan el ancho de la fila */
.relleno-lista .fila .derecha .pn-chico { display: inline-block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.pn-barras .linea-sup > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── 17-oct tarde: sesiones en vivo, formularios de la web, videos ───────── */
.pn-vivo { border: 0; margin: 0; padding: 14px 0 4px; border-top: 1px solid var(--linea); display: grid; gap: 10px; min-width: 0; }
.pn-vivo:first-of-type { border-top: 0; padding-top: 4px; }
.pn-vivo legend { padding: 0; margin-bottom: 4px; float: left; width: 100%; }
.pn-vivo legend + * { clear: both; }
.pn-vivo-fila { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
@media (max-width: 560px) { .pn-vivo-fila { grid-template-columns: 1fr 1fr; } .pn-vivo-fila > :first-child { grid-column: 1 / -1; } }
.pn-chips-leads { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.pn-chips-leads .chip { cursor: pointer; border: 0; font: inherit; font-size: 13px; font-weight: 600; }
.pn-chips-leads .chip.activo { background: var(--texto); color: var(--suelo); }
:root[data-theme="dark"] .pn-chips-leads .chip.activo { background: var(--luz); color: #0B0B0F; }
.pn-chips-leads .chip.activo .texto-3 { color: inherit; opacity: .7; }
.pn-fila-toque { cursor: pointer; }
@media (min-width: 1200px) { .pn-fila-toque:hover td { background: var(--widget-2); } }
.pn-lead-det { display: block; max-width: 340px; }
.pn-lead-fila .t { overflow-wrap: anywhere; }
.pn-codigo, .pn-correo { font-family: var(--letra); font-style: normal; letter-spacing: 0; }
.pn-codigo { font-size: .72em; font-weight: 600; font-variant-numeric: tabular-nums; vertical-align: .12em; }
.pn-correo { overflow-wrap: anywhere; word-break: normal; }
.lista.sin-icono .fila .derecha .pn-correo, .lista.sin-icono .pn-correo { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; max-width: 100%; vertical-align: bottom; }

/* A6 · Tablas de Ventas y Alumnas: formato en filas hasta 1199 px (a 768 y 1024 px desbordaban) */
@media (max-width: 1199px) {
  .pn-tabla, .pn-tabla tbody { display: block; width: 100%; }
  .pn-tabla thead { display: none; }
  .pn-tabla tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding: 12px 0; border-top: 1px solid var(--linea); }
  .pn-tabla tr:first-child { border-top: 0; }
  .pn-tabla td { display: block; padding: 0; border: 0; min-width: 0; }
  .pn-tabla .pn-c-oc { display: none; }
  .pn-tabla .pn-c-princ { grid-column: 1; grid-row: 1; }
  .pn-tabla .pn-c-monto, .pn-tabla .pn-c-est { grid-column: 2; grid-row: 1; text-align: right; }
  .pn-tabla .pn-c-sec { grid-column: 1; grid-row: 2; font-size: 12.5px; color: var(--texto-2); }
  .pn-tabla tr:has(.pn-c-est):has(.pn-c-monto) .pn-c-est { grid-row: 2; }
  .pn-tabla tr:has(.pn-c-est):has(.pn-c-monto) .pn-c-monto { grid-row: 1; }
}
/* A10 · Cupones (celular): «Oferta de la masterclass» quedaba debajo del lápiz */
.pn-cupon-mc { display: table; margin: 6px 0 2px; max-width: 100%; white-space: normal; text-align: left; }
/* M7 · Modo oscuro: contraste de ManyChat («LIZA conversa», «Lista para activar») y del precio tachado */
:root[data-theme="dark"] .crm-paso.destacado, :root[data-theme="dark"] .crm-pc-nueva { background: var(--widget-2); color: var(--texto); }
:root[data-theme="dark"] .crm-paso.destacado span:last-child { color: var(--texto-2); }
:root[data-theme="dark"] .crm-pc-nueva svg { color: var(--luz); }
:root[data-theme="dark"] .pn-oferta-precio s { color: var(--texto-2); }
/* 18-oct · Productos (portada y editar), cupones (borrar) y The Content Casa */
.pn-prod-btns { gap: 6px; flex-wrap: nowrap; margin-left: auto; }
.pn-prod-btns .btn-sec { white-space: nowrap; }
.pn-subiendo { opacity: .55; pointer-events: none; }
.pn-check { gap: 10px; flex-wrap: nowrap; font-size: 14.5px; min-height: 28px; cursor: pointer; }
.pn-check input { width: 18px; height: 18px; accent-color: var(--acento); flex-shrink: 0; }
.pn-slug { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pn-slug > span { flex-shrink: 0; font-size: 13.5px; }
.pn-slug .entrada { flex: 1; min-width: 0; }
.pn-peligro { color: #B3261E; }
.pn-peligro svg { color: currentColor; }
:root[data-theme="dark"] .pn-peligro { color: #F2B8B5; }
@media (max-width: 560px) {
  .pn-prod-pie { flex-direction: column; align-items: stretch; }
  .pn-prod-btns { margin-left: 0; }
  .pn-prod-btns > * { flex: 1; justify-content: center; }
}
/* 22-oct · Salud de la plataforma (lib/vigia.js): franja arriba del panel (la misma de la copia; en rojo si es grave) y tarjeta del Resumen */
.pn-salud-franja.es-rojo { background: color-mix(in srgb, #FF453A 11%, var(--widget)); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, #FF453A 45%, transparent); }
.pn-salud-franja .pn-copia-txt b { font-size: 14.5px; line-height: 1.4; }
.pn-salud-franja .btn svg { width: 14px; height: 14px; }
.pn-salud-mas { font-size: 13px; margin-top: 2px; align-self: flex-start; }
.pn-salud-lista { display: grid; grid-template-columns: 1fr; }
@media (min-width: 900px) { .pn-salud-lista { grid-template-columns: 1fr 1fr; column-gap: 28px; } }
.pn-salud-fila { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; box-shadow: inset 0 -1px 0 var(--linea); min-width: 0; }
.pn-salud-fila .pn-p { margin-top: 7px; flex-shrink: 0; }
.pn-salud-fila .cuerpo { min-width: 0; }
.pn-salud-fila .t { font-size: 14px; font-weight: 600; }
.pn-salud-fila .s { font-size: 13px; line-height: 1.45; color: var(--texto-2); overflow-wrap: anywhere; }
.pn-salud-hacer { margin-top: 6px; font-size: 13px; line-height: 1.45; }
.pn-salud-hacer .btn-sec { margin-top: 8px; }
.pn-salud-hacer svg { width: 14px; height: 14px; }
.pn-salud-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-top: 12px; font-size: 12.5px; color: var(--texto-3); }
.pn-salud-pie .enlace { font-size: 13px; }
.pn-salud-pie .enlace svg { width: 14px; height: 14px; }
.pn-p.gris { background: var(--texto-3); opacity: .45; }
/* 22-oct · Reembolsos a mano, disputas, corregir correo y enlace de cifras del equipo (admin.js) */
.pn-tachado { font-size: 12px; color: var(--texto-3); text-decoration: line-through; font-weight: 500; }
.pn-tachado-l { color: var(--texto-2); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--urgente) 60%, transparent); font-size: 14.5px; }
.pn-aviso-fijo.pn-aviso-ambar { background: color-mix(in srgb, #F2A93B 14%, var(--widget)); box-shadow: inset 0 0 0 1px color-mix(in srgb, #F2A93B 45%, transparent); }
.pn-aviso-fijo.pn-aviso-ambar svg { color: #B26B0E; }
.pn-reembolsos .fila .s { line-height: 1.45; overflow-wrap: anywhere; }
.pn-deshecho .t { color: var(--texto-3); text-decoration: line-through; }
.pn-disputa { margin-left: 4px; }
.pn-chip-sug { margin-top: 8px; }
.pn-enlace-cifras { display: flex; gap: 8px; align-items: center; min-width: 0; }
.pn-enlace-cifras .entrada { flex: 1; min-width: 0; font-size: 13px; text-overflow: ellipsis; }
.confirmar-botones .btn-sec.ancho { justify-content: center; }
@media (max-width: 560px) { .pn-c-est .pn-disputa { display: block; margin: 4px 0 0; width: max-content; } }
.confirmar-botones > :only-child { grid-column: 1 / -1; }
@media (min-width: 560px) { .confirmar-botones.pn-tres { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); grid-auto-flow: column; } }

/* 22-oct (PRODUCTOS): «Entrega» en Editar producto (el archivo que se entrega hoy y «Cambiar archivo») */
.hoja [hidden] { display: none !important; }
.campo > [data-entrega-caja], .pn-entrega-enlace { min-width: 0; } /* grid: que un nombre largo no empuje la hoja */
.pn-entrega { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); min-width: 0; }
.pn-entrega[aria-busy="true"] .pn-pie { animation: pn-latido 1.2s ease-in-out infinite; }
.pn-entrega-t { flex: 1; min-width: 0; }
.pn-entrega-t .pn-pie { margin-top: 2px; }
.pn-entrega-t .enlace { font-size: 12.5px; }
.pn-entrega-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pn-entrega-btns .pn-subir .giro { width: 14px; height: 14px; }
.pn-entrega-enlace { gap: 8px; flex-wrap: nowrap; justify-content: space-between; padding: 10px 12px 10px 14px; border-radius: 14px; background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); }
.pn-entrega-enlace > span { min-width: 0; font-size: 13.5px; }
.pn-entrega-enlace .btn-sec { flex-shrink: 0; }
@keyframes pn-latido { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .pn-entrega[aria-busy="true"] .pn-pie { animation: none; } }

/* 22-oct noche: el nombre del producto también abre el editor */
.pn-prod-nombre { display: block; width: 100%; margin-top: 8px; padding: 0; border: 0; background: none; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.pn-prod-nombre:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── Panel de Dreomar (24-oct-2026): Resumen, Alumnos multi-curso, Recursos, Comentarios, Mentorías, Leads y Sistema ──
   Solo con los tokens del tema (--acento, --widget, --widget-2, --texto*, --linea, --urgente, --ok): el color lo pone el agente del tema. */
.pn-avatar-dueno { display: inline-grid; place-items: center; flex-shrink: 0; border-radius: 999px; font-weight: 700; letter-spacing: .02em; color: #fff; background: var(--degradado-boton); }
.pn-avatar.pn-avatar-dueno { width: 34px; height: 34px; font-size: 12px; }
.pn-saludo-foto.pn-avatar-dueno { width: 52px; height: 52px; font-size: 18px; box-shadow: 0 0 0 3px var(--acento-suave); }
@media (min-width: 768px) { .pn-saludo-foto.pn-avatar-dueno { width: 60px; height: 60px; font-size: 20px; } }
.pn-cifra-fila { font-size: 22px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.pn-chips { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.pn-chip-curso { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.insignia.azul { color: var(--acento); background: color-mix(in srgb, var(--acento) 12%, transparent); }
.texto-rojo { color: var(--urgente); }
.pn-mono { font-family: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace; font-size: 12px; letter-spacing: 0; }
.pn-espacio { display: inline-block; margin-left: 2px; padding: 0 3px; border-radius: 4px; color: var(--urgente); background: color-mix(in srgb, var(--urgente) 10%, transparent); }
/* Recursos */
.pn-rec-portada { width: 40px; height: 40px; flex-shrink: 0; border-radius: 10px; object-fit: cover; background: var(--widget-2); }
.pn-rec-portada.lg { width: 72px; height: 72px; border-radius: 14px; }
.pn-rec-subida { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pn-rec-subida[aria-busy="true"] { opacity: .55; pointer-events: none; }
.pn-rec-subida .btn-sec { flex-shrink: 0; }
.redondo.chico { width: 34px; height: 34px; }
/* Comentarios */
.pn-com { align-items: flex-start; }
.pn-com-texto { margin-top: 6px; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--texto); }
.pn-com-resp { margin-top: 8px; padding: 8px 12px; border-radius: 12px; font-size: 13px; line-height: 1.45; background: var(--widget-2); overflow-wrap: anywhere; }
.pn-com-acciones { gap: 6px; margin-top: 10px; }
.pn-com-cita { padding: 12px 14px; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.pn-com-cita b { display: block; margin-bottom: 4px; }
/* Mentorías: la fila entera es un botón */
.pn-fila-boton { width: 100%; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pn-fila-boton:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; border-radius: 12px; }
@media (max-width: 767px) { .pn-chip-curso { max-width: 140px; } .pn-com-acciones .btn, .pn-com-acciones .btn-sec { flex: 1 1 auto; } }

/* ── Vista: etiqueta y salida de visitante (agente vista) ── */
/* comun.js · pintarDock(): #vista-dock abajo a la izquierda, en todas las zonas, por encima de la barra de compra, las pestañas
   del aula, las burbujas y los avisos. La píldora se ve de 36 px; cada botón mide 44 px de alto (zona táctil) y el fondo se
   dibuja 4 px adentro. Sube con --barra-abajo (liz.css: barra de compra, pago, pestañas del aula) y con el botón flotante. */
#vista-dock { position: fixed; z-index: 120; left: calc(12px + env(safe-area-inset-left)); bottom: calc(8px + var(--barra-abajo, 0px) + env(safe-area-inset-bottom)); display: flex; align-items: stretch; height: 44px; max-width: calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)); isolation: isolate; font-family: var(--letra); transition: bottom .35s var(--curva); }
#vista-dock::before { content: ''; position: absolute; inset: 4px 0; z-index: -1; border-radius: 999px; background: var(--texto); box-shadow: 0 0 0 1px var(--linea), 0 12px 28px -14px var(--sombra); pointer-events: none; }
#vista-dock button { position: relative; display: inline-flex; align-items: center; gap: 7px; min-width: 44px; height: 44px; margin: 0; padding: 0 14px; border: 0; border-radius: 999px; background: none; box-shadow: none; opacity: 1; color: var(--suelo); font: 600 13px/1 var(--letra); white-space: nowrap; cursor: pointer; -webkit-tap-highlight-color: transparent; }
#vista-dock button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
#vista-dock button:hover > span, #vista-dock button:focus-visible > span { text-decoration: underline; text-underline-offset: 3px; }
#vista-dock button:focus-visible { outline: 2px solid var(--acento); outline-offset: -4px; }
#vista-dock button + button::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 1px; background: var(--suelo); opacity: .3; }
#vista-dock .vista-chip { padding-right: 12px; }
#vista-dock .vista-chip svg { width: 12px; height: 12px; flex-shrink: 0; opacity: .7; transition: transform .2s var(--curva); }
#vista-dock .vista-chip[aria-expanded="true"] svg { transform: rotate(180deg); }
#vista-dock .vista-salir svg { width: 14px; height: 14px; flex-shrink: 0; }
#vista-dock .vista-punto { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: #0A84FF; box-shadow: 0 0 0 2px color-mix(in srgb, var(--suelo) 22%, transparent); }
#vista-dock[data-v="alumna"] .vista-punto { background: #30D158; }
#vista-dock[data-v="visitante"] .vista-punto { background: #FF9F0A; }
body.con-barra-compra #vista-dock { bottom: calc(14px + var(--barra-abajo, 0px) + env(safe-area-inset-bottom)); }
body:has(.flotantes-liz) #vista-dock { bottom: calc(82px + var(--barra-abajo, 0px) + env(safe-area-inset-bottom)); }
/* Panel en escritorio: la etiqueta se queda en la esquina, sobre el menú lateral (a la derecha tapaba las tarjetas del contenido).
   El menú lleva aire abajo para que «Copias» y «Dominio» suban por encima de la etiqueta al desplazarlo. */
@media (min-width: 1024px) { html[data-zona="admin"] .admin-lateral { padding-bottom: 72px; } }
/* 25-oct: el menú ya no se compacta en pantallas bajas (filas de 35 px, grupos a 16 px, como el de Liz): si no cabe, se desplaza, y admin.js deja
   la página activa por encima de la etiqueta «Admin». */
@media (min-width: 768px) {
  /* las pestañas del aula son solo del celular: en escritorio no hay que subir */
  body:has(.au-tabbar):not(.con-barra-compra) #vista-dock { bottom: calc(8px + env(safe-area-inset-bottom)); }
  body:has(.flotantes-liz) #vista-dock { left: 24px; bottom: calc(86px + env(safe-area-inset-bottom)); }
}
/* Celular: con una hoja abierta (sale desde abajo) la etiqueta sube arriba para no tapar sus botones; si no, los avisos salen
   justo encima de la etiqueta (sin taparse) */
@media (max-width: 767px) {
  body:has(> .velo) #vista-dock { top: calc(8px + env(safe-area-inset-top)); bottom: auto; }
  body:has(> #vista-dock):not(:has(> .velo)) .aviso { bottom: calc(76px + var(--barra-abajo, 0px) + env(safe-area-inset-bottom)); }
}
/* 25-oct: en la clase (celular y tableta) la píldora «Contenido» vive abajo a la izquierda, donde la etiqueta: la etiqueta sube encima
   de ella; con la hoja del contenido abierta, la etiqueta sube arriba, bajo la cinta, para no tapar sus clases */
@media (max-width: 1023px) {
  body:has(.au-pildora-contenido):not(.con-barra-compra) #vista-dock { bottom: calc(80px + var(--barra-abajo, 0px) + env(safe-area-inset-bottom)); }
  body:has(.au-hoja[data-abierto="true"]) #vista-dock { top: calc(8px + var(--alto-cinta, 0px) + env(safe-area-inset-top)); bottom: auto; } /* debajo de la cinta (queda encima de este velo) */
}
/* El menú que abre la etiqueta (comun.js · abrirMenuVista): fijo, encima o debajo de la etiqueta. Vivía en el aula.css de Liz;
   al rehacer el aula se perdió y el menú quedaba en el flujo de la página, fuera de la pantalla (no se podía elegir Alumno). */
.vista-menu { position: fixed; z-index: 121; width: 236px; max-width: calc(100vw - 16px); padding: 6px; border-radius: 18px; color: var(--texto); background: var(--widget); font-family: var(--letra); box-shadow: 0 0 0 1px var(--linea), 0 24px 48px -20px var(--sombra); animation: sube .2s var(--curva) both; }
.vista-menu button { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 8px 10px; border: 0; border-radius: 12px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.vista-menu button > svg { width: 18px; height: 18px; flex-shrink: 0; }
.vista-menu button > span { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.2; }
.vista-menu b { font-size: 14px; font-weight: 600; }
.vista-menu small { font-size: 12px; margin-top: 2px; }
.vista-menu button:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; }
@media (prefers-reduced-motion: reduce) { .vista-menu { animation: none; } }
.vista-menu button:hover, .vista-menu button:focus-visible { background: color-mix(in srgb, var(--texto) 6%, transparent); }
.vista-menu button[aria-checked="true"] { background: var(--acento-suave); }
.vista-menu small { color: var(--texto-2, inherit); opacity: 1; }
@media (prefers-reduced-motion: reduce) { #vista-dock, #vista-dock .vista-chip svg { transition: none; } }
@media print { #vista-dock, .vista-menu { display: none !important; } }

/* ── «Sin conectar» (25-oct): lo que Omar conecta después. Una tarjeta con qué falta, paso por paso; las cifras van en «—». ── */
.pn-p.gris { background: var(--texto-3); }
.pn-sc-insignia { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.pn-sc-que { margin: -6px 0 12px; font-size: 13.5px; line-height: 1.5; color: var(--texto-2); max-width: 62ch; }
.pn-sc-falta { list-style: none; margin: 0; padding: 0; counter-reset: sc; display: flex; flex-direction: column; }
.pn-sc-falta li { counter-increment: sc; display: flex; align-items: center; gap: 12px; padding: 11px 0; box-shadow: inset 0 -1px 0 var(--linea); }
.pn-sc-falta li:last-child { box-shadow: none; padding-bottom: 2px; }
.pn-sc-n { width: 26px; height: 26px; border-radius: 999px; flex-shrink: 0; display: grid; place-items: center; background: var(--widget-2); box-shadow: inset 0 0 0 1px var(--linea); }
.pn-sc-n::before { content: counter(sc); font-size: 12px; font-weight: 700; color: var(--texto-2); font-variant-numeric: tabular-nums; }
.pn-sc-falta .cuerpo { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pn-sc-falta .cuerpo b { font-size: 14px; font-weight: 600; }
.pn-sc-falta .cuerpo span { font-size: 13px; line-height: 1.45; color: var(--texto-2); }
.pn-sc-falta .btn-sec { flex-shrink: 0; }
.pn-tile-sc .pn-cifra { color: var(--texto-3); }
.pn-bloque-sc { margin-top: var(--hueco); }
/* Un control que existe en la pantalla de Liz pero que todavía no hace nada aquí: se ve, no se toca */
.pn-quieto { opacity: .5; pointer-events: none; }
@media (max-width: 639px) { .pn-sc-falta li { flex-wrap: wrap; row-gap: 8px; } .pn-sc-falta .cuerpo { flex-basis: calc(100% - 38px); } .pn-sc-falta .btn-sec { margin-left: 38px; } }
.pn-sc-linea { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin-bottom: 14px; font-size: 13px; color: var(--texto-2); }
/* Bandeja vacía y «Pregúntale a ANDREA»: la tarjeta de qué falta, centrada en el hueco de la conversación */
.crm-sc { width: 100%; max-width: 560px; margin: auto; padding: 24px; }
.crm-sc .pn-sc { box-shadow: 0 0 0 1px var(--linea); }
.lz-asist-sc { width: 100%; max-width: 560px; margin-top: 18px; text-align: left; }
.lz-asist-sc .pn-sc { box-shadow: 0 0 0 1px var(--linea); }
.lz-asist-msjs.lz-asist-quieto { height: auto; max-height: none; overflow: visible; }

/* 26-oct: la fila del Resumen con 6 mosaicos (+ «Comunidad gratis»): 2+2+2 en celular, 3+3 en tableta, 6 en escritorio ancho */
.pn-fila5.pn-fila6 > :last-child { grid-column: auto; }
@media (min-width: 768px) { .pn-fila5.pn-fila6 > *, .pn-fila5.pn-fila6 > :nth-child(n+4) { grid-column: span 2; } }
@media (min-width: 1280px) { .pn-fila5.pn-fila6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } .pn-fila5.pn-fila6 > *, .pn-fila5.pn-fila6 > :nth-child(n+4) { grid-column: auto; } }
