/*! Si estás leyendo esto, te gustan los detalles. A nosotros también. interactive experience by digitis */

/* Tablero de lanzamientos · v3, dirección «Tienda», composición B.
   Identidad de Sony (rebranding 2025): rojo #f90000 en la franja y en los avisos, negro, blanco,
   Basic Commercial a dos escalas, filetes finos, sin sombras ni radios salvo la píldora del manual.
   Lectura, referencias y encuesta en 01 · Diseño/tablero-lanzamientos-referencias.md. */

@font-face { font-family: "BC"; src: url("fonts/BasicCommercialLTStd-Roman.otf") format("opentype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "BC"; src: url("fonts/BasicCommercialLTStd-Blk.otf") format("opentype"); font-weight: 900; font-display: swap; }

:root {
  --rojo: #f90000;          /* franja y planos; blanco encima solo a tamaño grande (3,9:1) */
  --aviso: #c70000;         /* texto de aviso sobre blanco */
  --tinta: #000; --suave: #595959; --fondo: #fff; --capa: #fff; --filete: #000; --filete-fino: #d6d6d6;
  --sel: #fff1f1;
  --dur: 180ms; --curva: cubic-bezier(.2, .7, .2, 1);
  --cara: 56px; --fila-pad: 10px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) { --tinta: #fff; --suave: #b3b3b3; --fondo: #000; --capa: #0d0d0d; --filete: #fff; --filete-fino: #333; --aviso: #ff5c5c; --sel: #2a0000; color-scheme: dark; }
}
:root[data-tema="oscuro"] { --tinta: #fff; --suave: #b3b3b3; --fondo: #000; --capa: #0d0d0d; --filete: #fff; --filete-fino: #333; --aviso: #ff5c5c; --sel: #2a0000; color-scheme: dark; }
@media (prefers-reduced-motion: reduce) { :root { --dur: 0ms; } }

* { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body { background: var(--fondo); color: var(--tinta); font: 400 16px/1.4 "BC", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea, a { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--rojo); outline-offset: 2px; }
[hidden] { display: none !important; }
h1, h2, h3, p { text-wrap: pretty; }
h1, h2 { text-wrap: balance; }
.vis { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.apagado { color: var(--suave); }
.rotulo { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); }
.nota { font-size: 14px; color: var(--suave); }
.envol { max-width: 1120px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
.saltar { position: absolute; left: -9999px; }
.saltar:focus { left: 16px; top: 8px; z-index: 50; background: var(--fondo); padding: 8px 12px; }
.sin-red { background: var(--tinta); color: var(--fondo); text-align: center; padding: 8px 16px; font-size: 14px; }

/* ---------- franja ---------- */
.franja { background: var(--rojo); color: #fff; padding-top: env(safe-area-inset-top); }
.barra { display: flex; align-items: center; gap: 16px; min-height: 56px; }
.logo { height: 32px; width: auto; filter: brightness(0) invert(1); display: block; }
.marca { display: flex; align-items: center; min-height: 44px; }
.vistas { display: flex; gap: 4px; margin-left: auto; }
.vistas a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 12px; text-decoration: none; border-bottom: 2px solid transparent; }
.vistas a[aria-current="page"] { border-bottom-color: #fff; font-weight: 900; }
.avatar { width: 44px; height: 44px; border: 1px solid #fff; background: transparent; color: #fff; border-radius: 50%; font-weight: 900; }

/* ---------- portada de la semana ---------- */
.portada-semana { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 16px; padding-top: 24px; padding-bottom: 20px; border-bottom: 3px solid var(--filete); }
.sem-nav { display: grid; grid-template-columns: 44px auto 44px auto; align-items: center; justify-content: start; gap: 8px; min-width: 0; }
.flecha-sem { width: 44px; height: 44px; flex: none; border: 1px solid var(--filete); background: transparent; font-size: 26px; line-height: 1; display: grid; place-items: center; }
.flecha-sem:disabled { opacity: .3; cursor: default; }
.sem-fecha { min-width: 0; border: 0; background: none; padding: 0 4px; display: flex; align-items: baseline; flex-wrap: wrap; column-gap: 14px; text-align: left; min-height: 44px; }
.sem-fecha:hover .dia { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 8px; }
.dia { font-weight: 900; font-size: clamp(40px, 7vw, 80px); line-height: .9; letter-spacing: -.02em; }
.mes { font-size: clamp(18px, 2.2vw, 24px); color: var(--suave); text-wrap: balance; }
.esta { margin-left: 8px; }
.contador { display: flex; gap: 32px; text-align: right; }
.contador p { display: flex; flex-direction: column; }
.contador b { font-weight: 900; font-size: clamp(32px, 5vw, 64px); line-height: .9; }
.contador b.rojo { color: var(--aviso); }
.contador small { font-size: 14px; color: var(--suave); }
.h-hist { font-weight: 900; font-size: clamp(40px, 7vw, 80px); line-height: .9; letter-spacing: -.02em; }
#cab-historico { display: block; }

/* calendario */
.calendario { position: absolute; z-index: 20; top: calc(100% - 8px); left: 16px; width: min(360px, calc(100vw - 32px)); background: var(--capa); color: var(--tinta); border: 1px solid var(--filete); padding: 16px; }
.cal-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.cal-cab b { font-weight: 900; font-size: 18px; }
.cal-rej { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.cal-rej .dow { font-size: 12px; color: var(--suave); padding: 4px 0; }
.cal-dia { height: 44px; display: grid; place-items: center; font-size: 14px; color: var(--suave); }
.cal-vie { border: 1px solid transparent; background: none; color: var(--tinta); font-weight: 900; height: 44px; position: relative; padding: 0; }
.cal-vie:hover { border-color: var(--filete); }
.cal-vie[aria-current="true"] { background: var(--tinta); color: var(--fondo); }
.cal-vie .punto { position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 8px; height: 8px; border-width: 1.5px; }
.cal-ley { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 12px; font-size: 13px; color: var(--suave); }
.cal-ley span { display: inline-flex; align-items: center; gap: 6px; }

/* círculo de estado: la funda es la carátula, el vinilo es el estado */
.punto { width: 12px; height: 12px; border-radius: 50%; display: inline-block; flex: none; border: 2px solid var(--tinta); }
.punto.publicado { background: var(--tinta); }
.punto.programado { background: transparent; }
.punto.pendiente, .punto.sin-ingestar { border-style: dashed; }
.punto.retirado, .punto.fuera { border-color: var(--suave); background: linear-gradient(135deg, transparent 42%, var(--suave) 42% 58%, transparent 58%); }
.punto.alerta { border-color: var(--aviso); background: var(--aviso); }
.cal-vie[aria-current="true"] .punto { border-color: var(--fondo); }
.cal-vie[aria-current="true"] .punto.publicado { background: var(--fondo); }
.cal-vie[aria-current="true"] .punto.alerta { border-color: var(--aviso); background: var(--aviso); }

/* ---------- herramientas ---------- */
.herramientas { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; padding-bottom: 12px; }
.fila-filtros, .chips { display: flex; gap: 8px; align-items: center; }
.fila-filtros { overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.chip { flex: none; min-height: 44px; padding: 0 18px 0 14px; border: 1px solid var(--filete); background: transparent; border-radius: 0 22px 22px 0; white-space: nowrap; }
.chip[aria-pressed="true"] { background: var(--tinta); color: var(--fondo); }
.chip .n { opacity: .7; margin-left: 4px; }
#solo-pend { margin-left: auto; }
#solo-pend[aria-pressed="true"] { background: var(--aviso); border-color: var(--aviso); color: #fff; }
.fila-acciones { display: flex; gap: 8px; align-items: stretch; }
.buscador { flex: 1; min-width: 0; }
.atajo { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 12px; border: 1px solid var(--filete-fino); padding: 2px 6px; color: var(--suave); }
.menu-ver { position: relative; }
.pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 280px; background: var(--capa); border: 1px solid var(--filete); padding: 16px; display: flex; flex-direction: column; gap: 8px; }

/* ---------- controles ---------- */
.btn { min-height: 44px; padding: 0 16px; border: 1px solid var(--filete); background: transparent; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; white-space: nowrap; }
.btn[aria-pressed="true"] { background: var(--tinta); color: var(--fondo); }
.btn.peq { padding: 0 12px; font-size: 14px; }
.btn.primario { background: var(--tinta); color: var(--fondo); border-color: var(--tinta); font-weight: 900; min-height: 52px; padding: 0 24px; }
.btn.ancho { width: 100%; }
.btn.inv { border-color: var(--fondo); color: var(--fondo); }
.btn:disabled { opacity: .4; cursor: default; }
.icono { width: 44px; height: 44px; border: 1px solid var(--filete); background: transparent; font-size: 24px; line-height: 1; }
.segmentado { display: flex; }
.segmentado button { flex: 1; min-height: 44px; border: 1px solid var(--filete); background: transparent; padding: 0 10px; font-size: 14px; }
.segmentado button + button { border-left: 0; }
.segmentado button[aria-pressed="true"] { background: var(--tinta); color: var(--fondo); }

/* campos: etiqueta flotante (diseno-formularios.md) */
.flot { position: relative; }
.flot input, .flot textarea { width: 100%; min-height: 52px; border: 1px solid var(--filete); background: var(--fondo); padding: 22px 14px 6px; border-radius: 0; font-size: 16px; }
.flot textarea { resize: vertical; min-height: 72px; }
.flot label { position: absolute; left: 14px; right: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; top: 16px; color: var(--suave); pointer-events: none; transition: all var(--dur) var(--curva); font-size: 16px; }
.flot input:focus + label, .flot input:not(:placeholder-shown) + label,
.flot textarea:focus + label, .flot textarea:not(:placeholder-shown) + label { top: 6px; font-size: 12px; }
.flot.invalido input, .flot.invalido textarea { border-color: var(--aviso); border-width: 2px; }
.buscador input { min-height: 44px; padding: 18px 40px 4px 14px; }
.buscador label { top: 12px; }
.buscador input:focus + label, .buscador input:not(:placeholder-shown) + label { top: 3px; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo > span { font-size: 14px; }
.campo select, .campo input { min-height: 52px; border: 1px solid var(--filete); background: var(--fondo); padding: 0 12px; border-radius: 0; font-size: 16px; }
.campo.invalido input { border-color: var(--aviso); border-width: 2px; }
.campo small { color: var(--suave); font-size: 13px; }
.error { color: var(--aviso); font-size: 14px; margin-top: -8px; }
.ayuda { font-size: 13px; color: var(--suave); margin-top: -8px; }
.check { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; }
.check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--tinta); flex: none; }
.check small { display: block; color: var(--suave); font-size: 13px; }
.dos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ---------- lista ---------- */
.grupo { margin-top: 20px; }
.grupo-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 6px; border-bottom: 1px solid var(--filete); }
.grupo-cab h2 { font-weight: 900; font-size: 18px; text-transform: uppercase; letter-spacing: .02em; }
.grupo-cab span { font-size: 14px; color: var(--suave); }
.filas { list-style: none; padding: 0; }
.fila { display: grid; grid-template-columns: var(--cara) minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: var(--fila-pad) 0; border-bottom: 1px solid var(--filete-fino); position: relative; }
.seleccionando .fila { grid-template-columns: 36px var(--cara) minmax(0, 1fr) auto auto; }
.fila .sel { display: none; }
.seleccionando .fila .sel { display: grid; place-items: center; width: 44px; height: 44px; margin-left: -4px; position: relative; z-index: 2; }
.sel input { width: 22px; height: 22px; accent-color: var(--tinta); }
.fila.marcada { background: var(--sel); }
.cara { width: var(--cara); height: var(--cara); display: block; background: var(--filete-fino); object-fit: cover; }
.cara.vacia { background: repeating-linear-gradient(45deg, var(--filete-fino) 0 2px, transparent 2px 8px); border: 1px solid var(--filete-fino); }
.abrir { all: unset; cursor: pointer; display: flex; flex-direction: column; min-width: 0; min-height: 44px; justify-content: center; }
.abrir::after { content: ""; position: absolute; inset: 0; }
.abrir:focus-visible { outline: none; }
.abrir:focus-visible::after { outline: 3px solid var(--rojo); outline-offset: -3px; }
.art { font-weight: 900; font-size: 16px; overflow-wrap: anywhere; }
.tit { font-size: 15px; color: var(--suave); overflow-wrap: anywhere; }
.meta { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 13px; color: var(--suave); margin-top: 2px; }
.meta .dia-off { color: var(--tinta); }
.pend { display: flex; flex-wrap: wrap; gap: 2px 12px; margin-top: 2px; font-size: 13px; }
.pend > span { display: inline; }
.pend .quien { margin-left: 4px; white-space: nowrap; }
.pend .vencido { color: var(--aviso); }
.pend .esperado { color: var(--suave); }
.quien { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; border: 1px solid currentColor; padding: 0 4px; }
.estado-txt { font-size: 13px; color: var(--suave); white-space: nowrap; display: inline-flex; gap: 6px; align-items: center; }
.copiar { position: relative; z-index: 1; }
/* v3.2 (5-oct-2026): pasos de cada lanzamiento y respuesta a «¿se puede mandar a medios?» */
.pasos { display: flex; flex-wrap: wrap; gap: 2px 12px; margin-top: 4px; font-size: 12px; color: var(--suave); }
.paso { display: inline-flex; gap: 4px; align-items: baseline; white-space: nowrap; }
.paso > span[aria-hidden] { font-weight: 900; width: 1em; text-align: center; }
.paso.ok { color: var(--tinta); }
.paso.falta { color: var(--aviso); font-weight: 700; }
.paso.na { opacity: .6; }
.veredicto .etq { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.veredicto .etq small { font-size: 12px; color: var(--suave); white-space: normal; text-align: right; max-width: 16ch; }
.veredicto.listo, .veredicto.listo-fecha { color: var(--tinta); font-weight: 700; }
.veredicto.falta { color: var(--aviso); font-weight: 700; }
.veredicto.falta .etq small { color: var(--aviso); font-weight: 400; }
.copiar[aria-disabled="true"] { opacity: .45; }
.pasos-f { list-style: none; padding: 0; display: grid; grid-template-columns: auto auto 1fr; gap: 8px 10px; align-items: baseline; }
.pasos-f li { display: contents; }
.pasos-f li > span[aria-hidden] { font-weight: 900; text-align: center; }
.pasos-f li > span:last-child { color: var(--suave); }
.pasos-f li.falta { color: var(--aviso); }
.pasos-f li.falta > span:last-child { color: var(--aviso); }
.pasos-f li.na { opacity: .6; }
.comprobado { font-size: 13px; color: var(--suave); }
.compacta .pasos { display: none; }
.fila.fuera-web .art, .fila.fuera-web .tit { color: var(--suave); }
.fila.fuera-web .cara { visibility: hidden; }
.compacta { --cara: 40px; --fila-pad: 4px; }
.compacta .meta, .compacta .pend .quien { display: none; }
.amplia { --cara: 80px; --fila-pad: 14px; }
.vacio { padding: 40px 0; color: var(--suave); }
.resultados-cab { padding: 16px 0 4px; }

/* cuadrícula */
.modo-rejilla .filas { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--col, 170px), 1fr)); gap: 20px 16px; padding-top: 12px; }
.modo-rejilla.compacta { --col: 124px; }
.modo-rejilla.amplia { --col: 230px; }
.modo-rejilla .fila, .seleccionando.modo-rejilla .fila { grid-template-columns: 1fr; border: 0; padding: 0; align-items: start; align-content: start; gap: 6px; }
.modo-rejilla .cara { width: 100%; height: auto; aspect-ratio: 1; }
.modo-rejilla .fila > .estado-txt { position: absolute; top: 8px; right: 8px; background: var(--fondo); padding: 4px 6px; }
.modo-rejilla .copiar { justify-self: start; }
.seleccionando.modo-rejilla .fila .sel { position: absolute; top: 4px; left: 4px; background: var(--fondo); margin: 0; }

/* ---------- paneles ---------- */
.velo { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 30; }
.panel { position: fixed; z-index: 31; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); background: var(--fondo); border-left: 1px solid var(--filete); overflow-y: auto; overscroll-behavior: contain; animation: entra var(--dur) var(--curva); padding-bottom: env(safe-area-inset-bottom); }
@keyframes entra { from { transform: translateX(24px); opacity: 0; } }
.panel-cab { position: sticky; top: 0; background: var(--fondo); z-index: 1; padding: 16px 72px 12px 20px; border-bottom: 1px solid var(--filete-fino); }
.panel-cab .cerrar { position: absolute; top: 12px; right: 12px; }
.panel-h { font-weight: 900; font-size: clamp(28px, 5vw, 40px); line-height: 1; margin-top: 4px; letter-spacing: -.01em; }
.correo-cab { font-size: 20px; overflow-wrap: anywhere; }
.panel-cuerpo { padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.ficha-cara { width: 100%; max-width: 360px; aspect-ratio: 1; object-fit: cover; display: block; }
.ficha-cara.vacia { background: repeating-linear-gradient(45deg, var(--filete-fino) 0 2px, transparent 2px 10px); border: 1px solid var(--filete-fino); display: grid; place-items: center; color: var(--suave); }
.bloque { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--filete-fino); padding-top: 14px; }
.datos { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; font-size: 15px; }
.datos dt { color: var(--suave); }
.enlace { display: flex; gap: 8px; align-items: center; }
.enlace code { flex: 1; min-width: 0; font-family: inherit; font-size: 14px; overflow-wrap: anywhere; border: 1px solid var(--filete-fino); padding: 12px; }
.pendientes-f { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pendientes-f li { border-left: 4px solid var(--suave); padding: 4px 0 4px 12px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pendientes-f li.vencido { border-left-color: var(--aviso); }
.pendientes-f .quien { color: var(--suave); }
.servicios { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.servicios li { border: 1px solid var(--filete); font-size: 14px; border-radius: 0 16px 16px 0; }
.servicios li > * { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px 0 10px; text-decoration: none; }
.servicios li.falta { border-style: dashed; color: var(--suave); }
.hecho { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.hecho li { padding-left: 18px; position: relative; }
.hecho li::before { content: ""; position: absolute; left: 0; top: .45em; width: 8px; height: 8px; border-radius: 50%; background: var(--tinta); }
.fila-botones { display: flex; flex-wrap: wrap; gap: 8px; }
.encontrado { border: 1px solid var(--filete); padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.cand { display: flex; gap: 12px; align-items: center; min-height: 44px; }
.cand img { width: 44px; height: 44px; object-fit: cover; }
.personas { list-style: none; padding: 0; display: flex; flex-direction: column; }
.personas li { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; border-bottom: 1px solid var(--filete-fino); overflow-wrap: anywhere; }
.fila-persona { display: flex; gap: 8px; }
.fila-persona .flot { flex: 1; }

/* ---------- acceso ---------- */
.acceso { min-height: 100vh; }
.acceso-cuerpo { max-width: 520px; margin: 0 auto; padding-top: 48px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 16px; }
.grande { font-weight: 900; font-size: clamp(48px, 10vw, 80px); line-height: .9; letter-spacing: -.02em; }
.entradilla { font-size: 18px; }
#form-acceso { display: flex; flex-direction: column; gap: 12px; }

/* ---------- selección, botón flotante, pie ---------- */
.barra-sel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--tinta); color: var(--fondo); padding-bottom: env(safe-area-inset-bottom); }
.barra-sel-in { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 10px; padding-bottom: 10px; }
.barra-sel .hueco { flex: 1; }
.barra-sel #sel-todos { border-color: var(--fondo); color: var(--fondo); }
.fab { white-space: nowrap; position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 24; min-height: 52px; padding: 0 20px; background: var(--tinta); color: var(--fondo); border: 0; font-weight: 900; }
body.sel .fab { display: none; }
.pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 24px; font-size: 13px; color: var(--suave); padding-top: 32px; padding-bottom: 96px; --firma-color: var(--suave); --firma-hover: var(--tinta); }
.pie-legal { display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: 20px; }
.pie-legal a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-underline-offset: 3px; }
.pie-legal a:hover { color: var(--tinta); }
.pie .importado { flex-basis: 100%; }
body.sel .pie { padding-bottom: 160px; }

/* ---------- toast: confirma lo que no se ve; los errores van junto al campo ---------- */
.toast { position: fixed; z-index: 40; left: 50%; transform: translateX(-50%); bottom: calc(84px + env(safe-area-inset-bottom)); width: max-content; max-width: calc(100vw - 32px); background: var(--tinta); color: var(--fondo); padding: 0 8px 0 16px; min-height: 48px; display: flex; align-items: center; gap: 12px; font-size: 15px; animation: sube var(--dur) var(--curva); }
.toast-acc { background: none; border: 0; color: var(--fondo); font-weight: 900; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; padding: 0 8px; }
@keyframes sube { from { opacity: 0; } }
body.sel .toast { bottom: calc(132px + env(safe-area-inset-bottom)); }
@media (min-width: 760px) {
  .toast { left: 24px; transform: none; bottom: 24px; }
  body.sel .toast { bottom: 88px; }
}

/* ---------- móvil ---------- */
@media (max-width: 640px) {
  .portada-semana { grid-template-columns: 1fr; padding-top: 16px; gap: 12px; }
  .contador { text-align: left; }
  .vistas a { padding: 0 8px; }
  .logo { height: 26px; }
  .fila .estado-txt:not(.veredicto) .etq { display: none; }
  .veredicto .etq small { display: none; }
  .fila .paso:not(.falta) { display: none; }
  /* v3.2: en móvil la fila va en dos pisos. Arriba la portada y el texto a todo el ancho, abajo el
     veredicto y «Copiar», para que el título no quede en una columna estrecha (Román, 5-oct). */
  .modo-lista .fila { grid-template-columns: var(--cara) minmax(0, 1fr) auto; row-gap: 6px; align-items: start; }
  .modo-lista .fila > .cara { grid-row: 1; grid-column: 1; }
  .modo-lista .fila > .abrir { grid-row: 1; grid-column: 2 / -1; justify-content: flex-start; }
  .modo-lista .fila > .estado-txt { grid-row: 2; grid-column: 2; align-self: center; }
  .modo-lista .fila > :last-child { grid-row: 2; grid-column: 3; }
  .seleccionando.modo-lista .fila { grid-template-columns: 36px var(--cara) minmax(0, 1fr) auto; }
  .seleccionando.modo-lista .fila > .sel { grid-row: 1; grid-column: 1; }
  .seleccionando.modo-lista .fila > .cara { grid-column: 2; }
  .seleccionando.modo-lista .fila > .abrir { grid-column: 3 / -1; }
  .seleccionando.modo-lista .fila > .estado-txt { grid-column: 3; }
  .seleccionando.modo-lista .fila > :last-child { grid-column: 4; }
  .modo-lista .fila .veredicto .etq { flex-direction: row; align-items: baseline; }
  .dos { grid-template-columns: 1fr; }
  .fab { left: 50%; right: auto; transform: translateX(-50%); }
  .atajo { display: none; }
  .barra-sel .hueco { display: none; }
  .sem-nav { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .sem-nav .esta { grid-column: 1 / -1; justify-self: start; margin-left: 0; }
  .sem-fecha { column-gap: 8px; }
  .fila-acciones { flex-wrap: wrap; }
  .fila-acciones .buscador { flex-basis: 100%; }
  .fila-acciones .btn, .fila-acciones .menu-ver { flex: 1; }
  .fila-acciones .menu-ver .btn { width: 100%; }
}

.modo-rejilla .abrir { justify-content: flex-start; }

/* ---------- v4: datos en vivo ---------- */
.mes-nav { margin-top: 12px; }
.mes-nombre { font-weight: 900; font-size: clamp(20px, 3vw, 28px); padding: 0 4px; }
.flot input:disabled, .flot textarea:disabled, .campo input:disabled, .campo select:disabled { opacity: .6; cursor: not-allowed; }
.check input:disabled + span { opacity: .7; }
.fab[aria-disabled="true"] { background: var(--suave); cursor: default; }
.vacio .btn { margin-top: 12px; }

/* Autoría en la pantalla de acceso (decisión de Román del 5-oct: estética de Sony, firma de Digitis) */
.acceso .autoria { margin-top: 32px; font-size: 13px; color: var(--suave); }
