:root {
  /* ===== Marca MI VECINO: verde profundo + dorado ===== */
  --green: #0E4D38;
  --green-2: #176B4D;
  --green-deep: #0A3527;
  --green-soft: #DCEBE2;
  --gold: #C9A227;
  --gold-soft: #FAF1D4;
  --blue: #1668B0;
  --blue-soft: #E5F0FA;
  --violet: #6A4BB0;
  --violet-soft: #F0EBFA;
  --red: #A62834;
  --red-soft: #F6D7DA;
  --amber: #8A6D00;
  --amber-soft: #FBEFC8;
  --bg: #F6F4EE;
  --card: #FFFFFF;
  --ink: #192620;
  --muted: #5E6E66;
  --line: #E5E1D6;
  --shadow: 0 1px 2px rgba(10,53,39,.06), 0 4px 14px rgba(10,53,39,.10);
  --shadow-lg: 0 18px 50px rgba(10,53,39,.28);
  --radius: 14px;
  --font-brand: 'Sora', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Saira Semi Condensed', 'Oswald', 'Sora', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
/* ===== Modo TV (oscuro) para proyectar de noche: solo reasigna variables ===== */
:root[data-tv='dark'] {
  --bg: #0B1A13;
  --card: #12251C;
  --ink: #F2F5F0;
  --muted: #9FB3A8;
  --line: #1E3A2C;
  --green-soft: #143A2A;
  --gold-soft: #2A2410;
  --blue-soft: #102234;
  --violet-soft: #1E1733;
  --amber-soft: #2A2410;
  --amber: #E8C766;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.5);
}
/* Modo TV oscuro: arreglar textos de color que sobre fondos -soft oscuros perderian contraste */
:root[data-tv='dark'] .acum-resumen, :root[data-tv='dark'] .acum-resumen b { color: #E8C766; }
:root[data-tv='dark'] .acum-resumen.bono { color: #B79BE8; }
:root[data-tv='dark'] table.pozos tr.gan td { color: #fff; }
:root[data-tv='dark'] table.pozos tr.total-ganador td { color: #5FD6A0; }
:root[data-tv='dark'] .tabla-pos tr.lead td { color: #E8C766; }
:root[data-tv='dark'] .tabla-pos td.pts { color: #fff; }
:root[data-tv='dark'] .head-cols .hcol.g { color: #5FD6A0; background: #143A2A; }
:root[data-tv='dark'] .head-cols .hcol.p { color: #6FB8F0; background: #102234; }
:root[data-tv='dark'] .tot .v.win { color: #5FD6A0; }
:root[data-tv='dark'] .subasta2-head { background: var(--card); }

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.4;
}
/* Numeros tabulares: los montos/puntos/pozos no "bailan" al refrescar */
.srow2 input.i, .tabla-pos td.pts, table.pozos td, .acum-resumen b, .tot .v, .det-gan { font-variant-numeric: tabular-nums; }
/* Foco dorado en toda la app (la captura es 100% teclado) */
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--gold-soft), 0 0 0 1px var(--gold); }
/* Tipografia de marca (Sora) en titulos, encabezados de subasta y numeros grandes (NO en inputs de captura) */
h1, h2 { font-family: var(--font-brand); letter-spacing: .01em; }
.head-grupo .hg, .head-grupo .hp { font-family: var(--font-brand); }
table.pozos tr.gan td, table.pozos th.g, table.pozos th.p { font-family: var(--font-brand); }
.tabla-pos td.pts, .tabla-pos th.pts { font-family: var(--font-brand); }
.loading { padding: 40px; text-align: center; color: var(--muted); }

/* ---------- Layout ---------- */
.topbar {
  position: sticky; top: 0; z-index: 20;
  background: linear-gradient(180deg, var(--green), var(--green-deep)); color: #fff;
  display: flex; align-items: center; gap: 12px;
  padding: 8px 18px; border-bottom: 2px solid var(--gold);
  box-shadow: 0 2px 12px rgba(10,53,39,.28);
}
.topbar .brand { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.brand-text { display: flex; flex-direction: column; line-height: 1.04; }
.brand-text b { font-family: var(--font-brand); font-weight: 800; font-size: 1.12rem; letter-spacing: .04em; }
.brand-text small { font-size: .56rem; letter-spacing: .22em; color: var(--gold); font-weight: 700; }
.topbar .spacer { flex: 1; }
.topcrumbs { color: rgba(255,255,255,.92); font-size: .92rem; margin-left: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topcrumbs a { color: #fff; cursor: pointer; opacity: .85; }
.topcrumbs a:hover { text-decoration: underline; opacity: 1; }
.user-chip { display: inline-flex; align-items: center; gap: 7px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 3px 11px 3px 3px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.user-chip .uc-ini { width: 24px; height: 24px; border-radius: 999px; background: var(--gold); color: var(--green-deep); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: .82rem; }
.topbar button { background: rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.16); }
.topbar button:hover { background: rgba(255,255,255,.26); }

.container { max-width: 960px; margin: 0 auto; padding: 16px; padding-bottom: 80px; }
/* Pantalla de carrera a ANCHO COMPLETO: Posiciones pegado a la izquierda y Resumen a la derecha,
   el centro (Grande/Pequena) usa todo el espacio que queda. */
.container.wide { max-width: none; padding-left: 10px; padding-right: 10px; padding-top: 6px; padding-bottom: 82px; }


.crumbs { display:flex; align-items:center; gap:6px; flex-wrap:wrap; color: var(--muted); font-size:.9rem; margin-bottom: 12px; }
.crumbs a { color: var(--green-2); text-decoration: none; cursor: pointer; }
.crumbs a:hover { text-decoration: underline; }

h1 { font-size: 1.4rem; margin: 4px 0 16px; }
h2 { font-size: 1.1rem; margin: 0 0 10px; }

/* ---------- Cards ---------- */
.card { background: var(--card); border:1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px; margin-bottom: 16px; }
.card.pad0 { padding: 0; overflow: hidden; }

.row-between { display:flex; align-items:center; justify-content:space-between; gap: 10px; }
.list { display: flex; flex-direction: column; gap: 10px; }

.jornada-item, .carrera-item { display:flex; align-items:center; gap:12px; padding:14px 16px; border:1px solid var(--line); border-radius: var(--radius); background:#fff; cursor:pointer; transition: .12s; }
.jornada-item:hover, .carrera-item:hover { border-color: var(--green-2); transform: translateY(-1px); }
.jornada-item .meta, .carrera-item .meta { flex:1; min-width:0; }
.jornada-item .title { font-weight:600; }
.jornada-item .sub, .carrera-item .sub { color: var(--muted); font-size:.85rem; }
.badge { font-size:.72rem; font-weight:700; padding:3px 8px; border-radius:999px; white-space:nowrap; }
.badge.green { background: var(--green-soft); color: var(--green); }
.badge.amber { background: var(--amber-soft); color: var(--amber); }
.badge.red { background: var(--red-soft); color: var(--red); }
.badge.gray { background:#eef1ef; color: var(--muted); }

/* Detalle por carrera (control privado de la jornada) */
.carrera-wrap { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.carrera-wrap .carrera-item { border: none; border-radius: 0; background: transparent; }
.carrera-wrap .carrera-item:hover { transform: none; background: var(--bg); }
.carrera-wrap.casa-win { border-color: #caa300; box-shadow: 0 0 0 2px #f7e6b8 inset; }
.chev { display:inline-block; color: var(--muted); font-size:.8rem; width:1em; }
.carrera-det { padding: 6px 14px 12px; border-top: 1px dashed var(--line); }
table.pozos.det { font-size: .82rem; }
table.pozos.det th, table.pozos.det td { padding: 4px 6px; }
.det-gan { margin-top: 8px; font-size: .9rem; }
.det-gan.muted { color: var(--muted); }
.det-gan.casa { background: #fff3cd; border: 1px solid #e8d27a; color: #6b5500; border-radius: 8px; padding: 8px 10px; font-weight: 600; }

/* ---------- Buttons ---------- */
button, .btn {
  font: inherit; font-weight: 600; cursor: pointer;
  border: 1px solid transparent; border-radius: 10px;
  padding: 10px 16px; background: var(--green); color: #fff;
  transition: .12s; display:inline-flex; align-items:center; gap:8px; justify-content:center;
}
button:hover, .btn:hover { background: var(--green-2); }
button:disabled { opacity: .5; cursor: not-allowed; }
.btn-light { background:#fff; color: var(--green); border-color: var(--line); }
.btn-light:hover { background: #f0f5f2; }
.btn-ghost { background: transparent; color: var(--green); }
.btn-ghost:hover { background: var(--green-soft); }
.btn-danger { background: var(--red); }
.btn-danger:hover { background: #8b1f29; }
.btn-sm { padding: 6px 10px; font-size: .85rem; border-radius: 8px; }
.btn-block { width: 100%; }
.icon-btn { background:transparent; color: var(--muted); padding:6px; border-radius:8px; }
.icon-btn:hover { background:#eef1ef; color: var(--red); }

/* ---------- Forms ---------- */
label { display:block; font-size:.85rem; color: var(--muted); margin-bottom: 4px; font-weight:600; }
input, select {
  font: inherit; width: 100%; padding: 10px 12px;
  border: 1px solid var(--line); border-radius: 10px; background:#fff; color: var(--ink);
}
input:focus, select:focus { outline: none; border-color: var(--green-2); box-shadow: 0 0 0 3px var(--green-soft); }
input:disabled { background:#f3f5f4; color: var(--muted); }
.field { margin-bottom: 12px; }
.grid2 { display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ---------- Subasta table ---------- */
.subasta-head, .subasta-row { display:grid; grid-template-columns: 52px 1fr 1.3fr 110px 86px 36px; gap: 8px; align-items:center; }
.subasta-head { font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; color: var(--muted); padding: 4px 4px 8px; font-weight:700; }
.subasta-row { padding: 6px 4px; border-top: 1px solid var(--line); }
.subasta-row.win { background: var(--green-soft); border-radius: 8px; }
.subasta-row input { padding: 8px 9px; }
.casa-comp { display:flex; align-items:center; gap:6px; }
.casa-chk { display:flex; align-items:center; margin:0; cursor:pointer; color: var(--muted); font-size:.85rem; padding:0 2px; flex:none; }
.casa-pill { display:inline-flex; align-items:center; gap:6px; background: var(--amber-soft); color: var(--amber); border-radius:8px; padding:8px 10px; font-weight:600; font-size:.85rem; width:100%; justify-content:center; cursor:pointer; }

/* ---------- Subasta combinada: grande + pequena en una sola hoja (proyectable en TV) ---------- */
.subasta2 { overflow-x: auto; }
.srow2 {
  display: grid;
  grid-template-columns: 44px minmax(320px,330px) minmax(250px,272px) 160px 40px minmax(250px,272px) 160px 30px;
  gap: 6px; align-items: center; min-width: 890px; padding: 3px 10px; justify-content: center;
}
.c2-gap { min-width: 0; display: flex; align-items: center; justify-content: center; }
.c2-nombre { min-width: 0; }
.c2-nombre input { text-align: center; letter-spacing: 0.005em; padding-left: 4px; padding-right: 4px; color: var(--ink); font-family: var(--font-display); }
.copy1 { width: 30px; height: 30px; border: 1px solid #b7d3ef; border-radius: 7px; background: #fff; color: var(--blue); cursor: pointer; font-weight: 800; line-height: 1; padding: 0; }
.copy1:hover { background: var(--blue); color: #fff; }
.copy-all { width: 36px; height: 30px; border: none; border-radius: 7px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 800; line-height: 1; padding: 0; }
.copy-all:hover { background: #084a8c; }
.sub-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 4px 0 10px; padding: 9px 12px; background: #eaf2fc; border: 1px solid #cfe2fb; border-radius: 10px; }
.sub-toolbar .tb-label { font-weight: 800; color: var(--blue); }
.sub-toolbar #fillHalf { background: var(--blue); color: #fff; border-color: var(--blue); font-weight: 700; }

/* ---------- Posiciones del dia + acumulado + resultado ---------- */
.standings-bar { background: #fff8e6; border: 1px solid #f0d98a; border-radius: 10px; padding: 8px 12px; margin: 6px 0 10px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pos-chip { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; font-size: .9rem; white-space: nowrap; }
.pos-chip.lead { background: var(--green-soft); border-color: var(--green-2); color: var(--green); font-weight: 800; }
.acum-chip { margin-left: auto; background: var(--green); color: #fff; border-radius: 999px; padding: 5px 12px; font-weight: 700; white-space: nowrap; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.admin-acum { border-left: 4px solid #caa300; background: #fffdf4; }
.tabla-pos { width: 100%; border-collapse: collapse; }
.tabla-pos th, .tabla-pos td { padding: 7px 10px; border-bottom: 1px solid var(--line); text-align: left; }
.tabla-pos td.pts { text-align: right; font-weight: 800; }
.tabla-pos tr.lead td { background: var(--green-soft); font-weight: 700; }
/* Secciones plegables del admin (Posiciones / Acumulados): encabezado clickeable con flecha */
.sec-collapse > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 9px; user-select: none; padding: 2px 0; }
.sec-collapse > summary::-webkit-details-marker { display: none; }
.sec-collapse > summary::before { content: '▸'; color: var(--green-2); font-size: .95em; transition: transform .15s ease; }
.sec-collapse[open] > summary::before { transform: rotate(90deg); }
.sec-collapse > summary .sec-title { font-family: var(--font-brand); font-weight: 800; font-size: 1.1rem; }
.sec-collapse > summary:hover .sec-title { color: var(--green-2); }
.sec-collapse > .sec-body { margin-top: 10px; }
/* Seccion "juntar jornadas en serie": acento dorado para que se note la funcion */
.serie-assign { border-left: 3px solid var(--gold); }
/* Panel "Acumular jornadas": lista de jornadas con casillas */
.acum-jlist { max-height: 340px; overflow-y: auto; border: 1px solid var(--line); border-radius: 10px; }
.acum-jitem { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); cursor: pointer; }
.acum-jitem:last-child { border-bottom: none; }
.acum-jitem:hover { background: var(--green-soft); }
.acum-jitem input { width: 18px; height: 18px; accent-color: var(--green); flex: none; }
.acum-jlabel { font-weight: 600; }
/* ===== Moneda dual: $ protagonista + Bs de referencia (los datos viven en Bs) ===== */
.dual-bs { font-weight: 700; color: var(--ink); font-size: 1em; white-space: nowrap; }
.pozos .dc b { display: block; line-height: 1.1; }
.pozos .dc small { display: block; font-size: .8em; font-weight: 700; color: var(--ink); line-height: 1.15; margin-top: 2px; white-space: nowrap; }
table.pozos tr.gan .dc small { color: var(--green-deep); }
/* Bs de referencia debajo del monto en la tabla de captura */
.monto-bs { font-family: var(--font-body); font-size: 1.15rem; font-weight: 700; color: var(--ink); text-align: center; line-height: 1.1; margin-top: 1px; white-space: nowrap; }
.tasa-row { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tasa-row input { font-weight: 700; }
/* ===== 3ra tabla "La Bolivariana" (vista aparte, opcional por carrera, sin puntos): identidad DORADA ===== */
.srow2.boli { grid-template-columns: 44px minmax(320px,330px) minmax(250px,272px) 160px 30px; }
.head-grupo .hb { grid-column: span 2; text-align: center; font-weight: 800; border-radius: 8px; padding: 6px; background: var(--gold); color: var(--green-deep); font-family: var(--font-brand); font-size: 1.55rem; }
.head-grupo .hb .hb-sub { font-size: .62em; font-weight: 600; opacity: .8; margin-left: 6px; }
.head-cols .hcol.b { color: var(--amber); background: var(--gold-soft); }
.cc-comp.b, .cc-monto.b { background: color-mix(in srgb, var(--gold-soft) 60%, transparent); }
.cc-comp.b input, .cc-monto.b input { background: #fff; }
.cc-comp.b  { border:1px solid color-mix(in srgb, var(--gold) 30%, transparent); border-right:0; border-radius:8px 0 0 8px; padding-left:6px; }
.cc-monto.b { border:1px solid color-mix(in srgb, var(--gold) 30%, transparent); border-left:0;  border-radius:0 8px 8px 0; }
.cc-monto.b input.i { color: var(--amber); font-weight: 700; }
table.pozos th.b { color: var(--amber); }
/* Resumen con 3 tablas (5 columnas en panel angosto): compactar un poco la fila Premio */
table.pozos.tres tr.gan td { font-size: 1.3rem; padding: 10px 4px; }
table.pozos.tres th, table.pozos.tres td { padding-left: 3px; padding-right: 3px; }
:root[data-tv='dark'] .head-cols .hcol.b { color: #E8C766; background: #2A2410; }
:root[data-tv='dark'] .cc-monto.b input.i { color: #E8C766; }
:root[data-tv='dark'] .cc-comp.b input, :root[data-tv='dark'] .cc-monto.b input { background: var(--card); }
:root[data-tv='dark'] table.pozos th.b { color: #E8C766; }
/* ===== RESUMEN DE TABLAS: las 2 o 3 subastas completas en UNA pantalla (taquilla / TV, para el cliente) ===== */
.rt-overlay { position: fixed; inset: 0; z-index: 200; background: var(--bg); overflow: auto; padding: 14px 18px 40px; }
.rt-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; font-size: 1.2rem; font-family: var(--font-brand); }
.rt-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(430px, 1fr)); align-items: start; }
.rt-table { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 10px 12px 12px; }
.rt-title { margin: 0 0 8px; font-family: var(--font-brand); font-weight: 800; font-size: 1.35rem; text-align: center; border-radius: 8px; padding: 7px; color: #fff; }
.rt-title.g { background: var(--green-2); }
.rt-title.p { background: var(--blue); }
.rt-title.b { background: var(--gold); color: var(--green-deep); }
.rt-table table { width: 100%; border-collapse: collapse; font-family: var(--font-display); font-weight: 700; font-size: 1.4rem; }
.rt-table th { font-family: var(--font-body); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); text-align: left; padding: 4px 6px; border-bottom: 1px solid var(--line); }
.rt-table td { padding: 6px 6px; border-bottom: 1px solid var(--line); }
.rt-table td.rt-num { width: 42px; color: var(--muted); }
.rt-table td.rt-monto { text-align: right; white-space: nowrap; }
.rt-table td.rt-comp { color: var(--ink); }
.rt-table tr.win td { background: var(--green-soft); box-shadow: inset 3px 0 0 var(--gold); }
.rt-tot { display: flex; gap: 14px; justify-content: space-between; margin-top: 10px; flex-wrap: wrap; }
.rt-tot > div { display: flex; flex-direction: column; }
.rt-tot span { font-size: .78rem; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.rt-tot b { font-size: 1.15rem; }
.rt-tot .rt-premio b { color: var(--green); font-size: 1.45rem; }
body.rt-open { overflow: hidden; }
/* Tabla de TOTALES (pozo / comision / premio / en casa) de las 2 o 3 subastas */
.rt-totales { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 8px 14px 6px; margin-bottom: 14px; }
.rt-pozos { font-size: 1.45rem; }
.rt-pozos th { font-size: 1.05rem; }
.rt-pozos th, .rt-pozos td { padding: 8px 10px; }
.rt-pozos tr.gan td { font-size: 1.8rem; }
.rt-pozos tr.casa td { font-size: 1.05rem; color: var(--amber); font-weight: 700; border-bottom: 0; }
/* Caballos EN CASA en el resumen: se ven distinto y se pueden AGARRAR desde ahi */
.rt-ncasa { font-family: var(--font-body); font-weight: 700; font-size: .8rem; opacity: .9; margin-left: 6px; }
.rt-table tr.casa td { background: var(--gold-soft, #fbf3d6); }
.rt-table tr.win.casa td { background: var(--green-soft); }
.rt-casa { color: var(--amber); font-size: .95em; }
.rt-take { font: inherit; font-family: var(--font-body); font-weight: 700; font-size: .78rem; padding: 3px 9px; margin-left: 6px; border-radius: 999px; border: 1px solid var(--amber); background: #fff; color: var(--amber); cursor: pointer; vertical-align: middle; }
.rt-take:hover { background: var(--amber); color: #fff; }
:root[data-tv='dark'] .rt-table tr.casa td { background: rgba(232, 199, 102, .14); }
:root[data-tv='dark'] .rt-casa, :root[data-tv='dark'] .rt-pozos tr.casa td { color: #E8C766; }
:root[data-tv='dark'] .rt-take { background: transparent; color: #E8C766; border-color: #E8C766; }
/* Franja de PREMIOS en grande (lo primero que ve el cliente) */
.rt-premios { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 14px; }
.rt-pc { border-radius: 14px; padding: 12px 14px 10px; text-align: center; color: #fff; box-shadow: var(--shadow); }
.rt-pc.g { background: linear-gradient(180deg, var(--green-2), var(--green)); }
.rt-pc.p { background: linear-gradient(180deg, var(--blue), #0f4f8a); }
.rt-pc.b { background: linear-gradient(180deg, var(--gold), #a8861c); color: var(--green-deep); }
.rt-pc-lbl { font-family: var(--font-brand); font-weight: 800; font-size: 1.05rem; letter-spacing: .03em; opacity: .95; }
.rt-pc-val { font-family: var(--font-brand); font-weight: 800; font-size: 2.3rem; line-height: 1.15; margin: 4px 0 2px; }
.rt-pc-val b { color: inherit; }
.rt-pc-val .dual-bs { color: inherit; opacity: .85; font-size: .55em; font-weight: 700; display: block; }
.rt-pc-sub { font-size: .8rem; opacity: .85; }
:root[data-tv='dark'] .rt-tot .rt-premio b { color: #5FD6A0; }
:root[data-tv='dark'] .monto-bs, :root[data-tv='dark'] .dual-bs, :root[data-tv='dark'] .pozos .dc small { color: var(--ink); }
:root[data-tv='dark'] table.pozos tr.gan .dc small { color: #5FD6A0; }
.acum-resumen { background: var(--green-soft); color: var(--green); border-radius: 8px; padding: 9px 12px; margin: 8px 0; font-size: 1.02rem; overflow-wrap: anywhere; line-height: 1.25; }
.acum-resumen b { white-space: nowrap; }
.acum-resumen.pendiente { background: #fff8e6; color: #6b5500; }
:root[data-tv='dark'] .acum-resumen.pendiente { background: var(--gold-soft); color: #E8C766; }
.acum-resumen.bono { background: #f3eefc; color: #5b3ea8; }
.acum-admin { margin: 8px 0; padding: 9px 11px; border: 1px dashed #caa300; border-radius: 8px; background: #fffdf4; }
.acum-edit-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.acum-edit-row input { width: 150px; text-align: right; font-weight: 700; padding: 6px 9px; }
.btn-publicar { background: var(--green); color: #fff; border-color: var(--green); font-weight: 700; }
.btn-publicar:hover { background: var(--green-2); }
.empate { font-weight: 400; font-size: .88rem; opacity: .9; }

/* Layout de la pantalla de carrera: izquierda posiciones, centro subastas, derecha resumen */
.carrera-3col { display: flex; gap: 14px; align-items: flex-start; }
/* Paneles laterales responsivos: anchos comodos en pantalla grande, se ACHICAN con el zoom (vw) */
.col-left { flex: 0 1 clamp(230px, 15vw, 285px); }
.col-center { flex: 1 1 auto; min-width: 0; }
.col-right { flex: 0 1 clamp(250px, 15vw, 295px); }
.acum-toggle { display: block; cursor: pointer; user-select: none; font-size: .9rem; color: var(--ink); }
.pos-card .tabla-pos td.pts { font-size: 1.08rem; }
.col-left, .col-right { position: sticky; top: 8px; }
.pos-card .tabla-pos th, .pos-card .tabla-pos td { padding: 6px 6px; font-size: 1.15rem; }

@media (max-width: 620px) { .grid3 { grid-template-columns: 1fr; } }
input.nombre-lock[readonly] { cursor: default; background: transparent; }
input.nombre-lock:not([readonly]) { background: #fff7d6; outline: 2px solid var(--amber); border-radius: 6px; }
.subasta2-head { position: sticky; top: 0; background: #fff; z-index: 2; border-bottom: 1px solid var(--line); }
.head-grupo { padding-top: 10px; }
.head-grupo .hg, .head-grupo .hp { grid-column: span 2; text-align: center; font-weight: 800; border-radius: 8px; padding: 4px; }
.head-grupo .hg { background: var(--green-soft); color: var(--green); }
.head-grupo .hp { background: #e4f0fb; color: var(--blue); }
.head-cols { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding-top: 4px; padding-bottom: 8px; }
.head-cols > div { text-align: center; }
.srow2.fila { border-top: 1px solid var(--line); padding-top: 2px; padding-bottom: 2px; }
/* Cebra calida MI VECINO (basada en --ink para que viva en claro y en TV oscuro) */
.srow2.fila:nth-child(even) { background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
.srow2.fila.win, .srow2.fila.win:nth-child(even) { background: var(--green-soft); }
/* Fila ganadora: franja dorada de marca a la izquierda, inconfundible */
.srow2.fila.win { box-shadow: inset 3px 0 0 var(--gold); }
/* Caballo = TITULAR de la fila en OSWALD negrita, mucho mas grande; el # un poco mas chico */
.c2-nombre input, .c2-num input { font-weight: 700; font-family: var(--font-display); }
.c2-nombre input { font-size: 1.8rem; color: var(--ink); }
.c2-num input { font-size: 1.45rem; color: var(--muted); }
/* Toda la fila en OSWALD 700 (marcador hipico). COMPRADOR y MONTO destacan por TAMANO (mas grandes)
   y el MONTO ademas por COLOR; el caballo/# quedan un escalon mas chicos */
.srow2 input.i { width: 100%; min-width: 0; padding: 3px 6px; line-height: 1.1; font-weight: 700; color: var(--ink); text-transform: uppercase; font-family: var(--font-display); }
.cc-comp input.i { font-weight: 700; color: var(--ink); letter-spacing: .005em; font-size: 1.9rem; text-transform: uppercase; }
.srow2 input.i::placeholder { font-weight: 400; color: var(--muted); opacity: 1; }
/* El MONTO es el dato #1: el mas grande de la fila. Se expande segun el numero (field-sizing) y la
   columna (max-content) lo sigue; min para que no quede angosto */
.cc-monto input.i { font-size: 2rem; width: 100%; font-family: var(--font-display); letter-spacing: 0; font-weight: 700; }
/* MONTO coloreado por bloque: el ojo lo localiza por color ademas de tamano (verde GRANDE / azul PEQUEÑA) */
.cc-monto.g input.i { color: var(--green-deep); font-weight: 700; }
.cc-monto.p input.i { color: var(--blue); font-weight: 700; }
.cc-monto.g input.i::placeholder, .cc-monto.p input.i::placeholder { color: var(--muted); }
.c2-num input, .cc-comp input, .cc-monto input { text-align: center; }
.cc-monto { text-align: center; } /* centrar el input de monto (ancho variable) dentro de su celda */
.cc-comp { display: flex; align-items: center; gap: 3px; min-width: 0; }
.cc-comp.encasa { justify-content: center; }
.cc-comp.encasa .casa-pill { width: 100%; padding: 6px; font-size: 1rem; }
/* GRANDE vs PEQUEÑA: tinte de bloque casi imperceptible (velo ~50% de los -soft). La
   delimitacion la dan geometria y peso, no color saturado. Inputs blancos flotan nitidos. */
.cc-comp.g, .cc-monto.g { background: color-mix(in srgb, var(--green-soft) 50%, transparent); }
.cc-comp.p, .cc-monto.p { background: color-mix(in srgb, var(--blue-soft)  50%, transparent); }
.cc-comp.g input, .cc-monto.g input, .cc-comp.p input, .cc-monto.p input { background: #fff; }
/* Encajonar cada par comprador|monto con un filo de marca tenue (14%) y radio que une el par */
.cc-comp.g  { border:1px solid color-mix(in srgb, var(--green) 14%, transparent); border-right:0; border-radius:8px 0 0 8px; padding-left:6px; }
.cc-monto.g { border:1px solid color-mix(in srgb, var(--green) 14%, transparent); border-left:0;  border-radius:0 8px 8px 0; }
.cc-comp.p  { border:1px solid color-mix(in srgb, var(--blue) 14%, transparent);  border-right:0; border-radius:8px 0 0 8px; padding-left:6px; }
.cc-monto.p { border:1px solid color-mix(in srgb, var(--blue) 14%, transparent);  border-left:0;  border-radius:0 8px 8px 0; }
/* Eje central: la unica linea "fuerte" que parte GRANDE | PEQUEÑA; hilo dorado en las filas */
.srow2 .c2-gap, .head-grupo .c2-gap, .head-cols .c2-gap { border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.srow2 .c2-gap { position: relative; }
.srow2.fila .c2-gap::before {
  content: ""; position: absolute; top: -2px; bottom: -2px; left: 50%;
  width: 2px; transform: translateX(-50%); border-radius: 2px;
  background: color-mix(in srgb, var(--gold) 32%, transparent);
}
/* Caballo en casa: monto EDITABLE con tinte ambar + filo dorado fino; pill sobria de marca */
.cc-monto.encasa-monto input { background: var(--amber-soft); border: 1px solid color-mix(in srgb, var(--amber) 35%, transparent); border-radius: 6px; }
.cc-comp.encasa .casa-pill { background: var(--amber-soft); color: var(--amber); border: 1px solid color-mix(in srgb, var(--amber) 30%, transparent); }
/* Modo TV oscuro: inputs de captura no deslumbran (caja oscura + texto claro) en vez de blanco */
:root[data-tv='dark'] .srow2 input.i { background: var(--card); color: var(--ink); }
:root[data-tv='dark'] .cc-comp.g input, :root[data-tv='dark'] .cc-monto.g input,
:root[data-tv='dark'] .cc-comp.p input, :root[data-tv='dark'] .cc-monto.p input { background: var(--card); }
/* Modo TV oscuro: el monto coloreado sobrevive con tonos claros de marca; comprador en tinta clara plena */
:root[data-tv='dark'] .cc-monto.g input.i { color: #5FD6A0; }
:root[data-tv='dark'] .cc-monto.p input.i { color: #6FB8F0; }
:root[data-tv='dark'] .cc-comp input.i { color: var(--ink); font-weight: 800; }
/* Modo TV oscuro: reforzar cebra y filos de bloque (los var --green/--blue no se reasignan en oscuro) */
:root[data-tv='dark'] .srow2.fila:nth-child(even) { background: color-mix(in srgb, var(--ink) 7%, transparent); }
:root[data-tv='dark'] .cc-comp.g, :root[data-tv='dark'] .cc-monto.g { border-color: color-mix(in srgb, #5FD6A0 30%, transparent); }
:root[data-tv='dark'] .cc-comp.p, :root[data-tv='dark'] .cc-monto.p { border-color: color-mix(in srgb, #6FB8F0 30%, transparent); }
.head-cols .hcol.g { color: var(--green); background: #edf7f1; }
.head-cols .hcol.p { color: var(--blue); background: #ecf3fc; }
.head-grupo .hg { background: var(--green-2); color: #fff; }
.head-grupo .hp { background: var(--blue); color: #fff; }
.c2-win { text-align: center; }
.c2-win input { width: 20px; height: 20px; accent-color: var(--green); }
.c2-del { text-align: center; }
@media (min-width: 1100px) {
  .srow2 { font-size: 1.32rem; gap: 7px; padding: 2px 10px; }
  .srow2 input.i { padding: 4px 9px; }
  .cc-comp input.i { font-size: 2.05rem; }                      /* comprador grande a distancia */
  .cc-monto input.i { font-size: 2.15rem; }                     /* monto = pico de tamano, primero que se ve */
  .c2-nombre input { font-size: 2.2rem; }                       /* caballo = titular, mucho mas grande al proyectar */
  .c2-num input { font-size: 1.6rem; }
  .head-cols { font-size: 1.2rem; }
  .head-grupo .hg, .head-grupo .hp { font-size: 1.55rem; padding: 6px; }
}
.win-pick { text-align:center; }
.win-pick input { width: 20px; height: 20px; accent-color: var(--green); }

/* ---------- Totals ---------- */
.totals { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap: 10px; }
.tot { background:#fff; border:1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.tot .k { font-size:.75rem; color: var(--muted); font-weight:600; }
.tot .v { font-size:1.25rem; font-weight:700; margin-top: 2px; }
.tot.accent { background: var(--green); color:#fff; border-color: var(--green); }
.tot.accent .k { color: rgba(255,255,255,.8); }
.tot.win .v { color: var(--green); }
.tot.loss .v { color: var(--red); }
.tot.pending .v { color: var(--amber); }
/* En tarjetas con fondo verde (accent), el valor SIEMPRE en blanco (si no, verde sobre verde = invisible) */
.tot.accent .v { color: #fff !important; }

.money { font-variant-numeric: tabular-nums; }
.neg { color: var(--red); }
.pos { color: var(--green); }

/* ---------- Login ---------- */
.login-wrap { min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 20px; background: radial-gradient(120% 80% at 82% 8%, rgba(201,162,39,.20), transparent 55%), linear-gradient(155deg, var(--green), var(--green-deep)); }
.login-card { background:var(--card); border-radius: 18px; padding: 30px 26px; width: 100%; max-width: 372px; box-shadow: var(--shadow-lg); border-top: 3px solid var(--gold); text-align: center; }
.login-card .logo { display:flex; justify-content:center; margin-bottom: 8px; }
.login-card h1 { font-family: var(--font-brand); font-weight: 800; letter-spacing: .05em; text-align:center; font-size: 1.5rem; margin: 6px 0 2px; color: var(--ink); }
.login-card .sub { text-align:center; font-size: .64rem; letter-spacing: .26em; color: var(--gold); font-weight: 700; margin-bottom: 20px; }
.login-card .field { text-align: left; }
.login-card .err { background: var(--red-soft); color: var(--red); padding:10px; border-radius:10px; font-size:.85rem; margin-bottom: 12px; }

/* ---------- Misc ---------- */
.empty { text-align:center; color: var(--muted); padding: 30px 16px; }
.empty .big { font-size: 2.4rem; }
.hint { font-size:.8rem; color: var(--muted); }
.fab { position: fixed; right: 18px; bottom: 18px; z-index: 15; border-radius: 999px; padding: 14px 18px; box-shadow: 0 8px 22px rgba(15,81,50,.35); font-size:.95rem; }
hr.sep { border:none; border-top:1px solid var(--line); margin: 16px 0; }
.formula-note { background: var(--green-soft); color: var(--green); border-radius:10px; padding:10px 12px; font-size:.84rem; margin-top: 10px; }

.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(120%); background: var(--ink); color:#fff; padding: 12px 18px; border-radius: 12px; box-shadow: 0 8px 22px rgba(0,0,0,.3); z-index: 50; transition: transform .25s; font-size:.9rem; max-width: 90vw; }
.toast.show { transform: translateX(-50%) translateY(0); }
.toast.err { background: var(--red); }

/* ---------- Responsive ---------- */
@media (max-width: 620px) {
  .grid2 { grid-template-columns: 1fr; }
  .subasta-head { display:none; }
  .subasta-row {
    grid-template-columns: 44px 1fr 36px;
    grid-template-areas: "num nombre win" "comp comp comp" "monto monto del";
    gap: 6px; padding: 10px 4px;
  }
  .subasta-row .c-num { grid-area: num; }
  .subasta-row .c-nombre { grid-area: nombre; }
  .subasta-row .c-comp { grid-area: comp; }
  .subasta-row .c-monto { grid-area: monto; }
  .subasta-row .c-win { grid-area: win; }
  .subasta-row .c-del { grid-area: del; }
  .subasta-row .lbl-m { display:inline; }
}
.lbl-m { display:none; font-size:.7rem; color:var(--muted); }

/* ---------- Importar gaceta ---------- */
.import-card { border-left: 4px solid var(--green-2); }
.import-card.done { border-left-color: var(--green); background: var(--green-soft); }
.import-loading {
  background: var(--amber-soft); color: var(--amber);
  border-radius: 10px; padding: 14px; margin: 10px 0; font-weight: 600;
}
.import-carreras { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.imp-carrera { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: #fafcfb; }
.imp-carrera-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.imp-carrera-head .spacer { flex: 1; }
.imp-carrera-head label { font-weight: 700; color: var(--green); font-size: .9rem; }
.imp-carnum { width: 52px; text-align: center; font-weight: 700; }
.imp-cabs { display: flex; flex-direction: column; gap: 4px; }
.imp-cab { display: grid; grid-template-columns: 56px 1fr 34px; gap: 6px; align-items: center; }
.imp-cab .imp-num { text-align: center; }
input.imp-num, input.imp-nom, input.imp-carnum { padding: 7px 8px; }

/* ---------- Subasta doble (grande / pequena) ---------- */
.sub-tabs { display: flex; gap: 8px; margin: 6px 0 8px; }
.sub-tab { flex: 1; background: var(--card); color: var(--ink); border: 2px solid var(--line); border-radius: 12px; padding: 10px; font-weight: 700; cursor: pointer; }
.sub-tab.active.g { border-color: var(--green-2); background: var(--green-soft); color: var(--green); }
.sub-tab.active.p { border-color: var(--blue); background: #e4f0fb; color: var(--blue); }
.sub-modo { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.sub-modo label { font-size: .9rem; color: var(--muted); }
.sub-modo select { padding: 6px 8px; }
.card.sub-grande { border-top: 3px solid var(--green-2); }
.card.sub-pequena { border-top: 3px solid var(--blue); }
table.pozos { width: 100%; border-collapse: collapse; font-size: 1.24rem; }
table.pozos th, table.pozos td { padding: 6px 4px; text-align: right; border-bottom: 1px solid var(--line); }
table.pozos th:first-child, table.pozos td:first-child { text-align: left; color: var(--muted); font-weight: 600; }
table.pozos th.g { color: var(--green); }
table.pozos th.p { color: var(--blue); }
table.pozos th { white-space: nowrap; }
table.pozos th.g, table.pozos th.p { border-bottom: 3px solid currentColor; padding-bottom: 5px; }
table.pozos tr.accent td { font-weight: 700; }
/* Premio RESALTADO: recuadro verde para ubicar rapido Grande / Pequena / Total */
table.pozos tr.gan td { font-size: 1.66rem; font-weight: 800; border-bottom: none; padding: 14px 8px; background: var(--green-soft); color: var(--green); }
table.pozos tr.gan td:first-child { border-radius: 9px 0 0 9px; box-shadow: inset 4px 0 0 var(--gold); }
table.pozos tr.gan td:last-child { border-radius: 0 9px 9px 0; }
table.pozos tr.bono-row td { color: #5b3ea8; font-weight: 700; }
table.pozos tr.total-ganador td { color: var(--green); }
/* Resultado (1°/2°/3°) movido al panel derecho: se apila en el panel angosto, en fila si hay ancho */
.resultado-card .grid3 { grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 8px; }
.resultado-card .field { margin-bottom: 0; }
.resultado-card h2 { font-size: 1rem; }
.pos { color: var(--green-2); }
.neg { color: var(--red); }
.muted { color: var(--muted); font-weight: 400; }
.acc-right { display: inline-flex; gap: 8px; align-items: center; }
.user-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.user-row:last-child { border-bottom: none; }
.recovered-banner { background: var(--green-soft); color: var(--green); border: 1px solid color-mix(in srgb, var(--green) 22%, transparent); border-radius: 10px; padding: 9px 12px; margin: 8px 0; font-size: .92rem; max-width: 760px; }
.recovered-banner a { color: var(--green-2); cursor: pointer; text-decoration: underline; font-weight: 600; }
:root[data-tv='dark'] .recovered-banner { color: #5FD6A0; }
/* 📡 Fase 3: sin conexion, sesion vencida y choque entre taquillas (2026-10-07) */
.conexion-box { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 9000; max-width: min(760px, calc(100vw - 24px)); background: #8a2b1e; color: #fff; border-radius: 10px; padding: 9px 14px; font-size: .92rem; box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.sesion-box { position: fixed; left: 50%; transform: translateX(-50%); top: calc(10px + env(safe-area-inset-top, 0px)); z-index: 9001; max-width: min(760px, calc(100vw - 24px)); background: var(--card, #fff); color: var(--ink, #1b2a22); border: 2px solid #b8891d; border-radius: 12px; padding: 12px 14px; box-shadow: 0 6px 24px rgba(0,0,0,.3); }
.sesion-box form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sesion-box input { min-width: 0; flex: 1 1 140px; }
.conflicto-banner { background: color-mix(in srgb, #c0392b 12%, transparent); border: 1px solid color-mix(in srgb, #c0392b 45%, transparent); border-radius: 10px; padding: 10px 12px; margin: 8px 0; font-size: .95rem; }
.conflicto-acc { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
/* 🔒 Jornada cerrada / de un dia anterior: aviso y captura de solo lectura (2026-10-07) */
.cerrada-banner { background: color-mix(in srgb, var(--gold, #b8891d) 14%, transparent); border: 1px solid color-mix(in srgb, var(--gold, #b8891d) 45%, transparent); border-radius: 10px; padding: 9px 12px; margin: 8px 0; font-size: .95rem; }
.solo-lectura .col-center input, .solo-lectura .col-center select, .solo-lectura .col-center button,
.solo-lectura .resultado-card select { pointer-events: none; }
.solo-lectura .col-center input, .solo-lectura .resultado-card select { opacity: .7; }
:root[data-tv='dark'] .recovered-banner a { color: #8FE6BF; }

@media print {
  .topbar, .fab, .no-print, button { display:none !important; }
  .card { box-shadow:none; border:1px solid #ccc; }
  body { background:#fff; }
}

/* ===== Modo TV / Vista publica (vecinos por QR) ===== */
.pub-wrap { max-width: 1500px; margin: 0 auto; padding: 14px; }
.pub-top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 6px 14px; border-bottom: 2px solid var(--gold); margin-bottom: 16px; }
.pub-top .pub-meta { font-family: var(--font-brand); font-weight: 700; font-size: 1.3rem; }
.pub-top .pub-live { margin-left: auto; color: #ff5a5a; font-weight: 800; letter-spacing: .04em; animation: pubpulse 1.4s ease-in-out infinite; }
@keyframes pubpulse { 0%,100%{opacity:1} 50%{opacity:.35} }
@media (prefers-reduced-motion: reduce) { .pub-top .pub-live { animation: none; } }
.pub-grid { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(360px, 1.25fr); gap: 16px; align-items: start; }
@media (max-width: 820px) { .pub-grid { grid-template-columns: 1fr; } }
.pub-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; box-shadow: var(--shadow); }
.pub-card h2 { margin: 0 0 10px; font-size: 1.4rem; }
.pub-pos .tabla-pos td, .pub-pos .tabla-pos th { font-size: 1.25rem; padding: 9px 8px; }
.pub-pos .tabla-pos td.pts { font-family: var(--font-brand); font-weight: 800; }
.pub-carrera-list { display: flex; flex-direction: column; gap: 8px; }
.pub-carrera { display: flex; align-items: center; gap: 14px; padding: 11px 12px; border-radius: 12px; border: 1px solid var(--line); }
.pub-carrera.corrida { border-left: 4px solid var(--gold); }
.pub-carrera .pc-num { font-family: var(--font-brand); font-weight: 800; font-size: 1.5rem; width: 40px; text-align: center; color: var(--gold); }
.pub-carrera .pc-info { flex: 1; min-width: 0; }
.pub-carrera .pc-win { font-size: 1.15rem; }
.pub-carrera .pc-comp { color: var(--muted); font-size: .95rem; }
.pub-carrera .pc-pend { color: var(--muted); }
.pub-carrera .pc-premio { font-family: var(--font-brand); font-size: 1.35rem; text-align: right; white-space: nowrap; color: #5FD6A0; }
.pub-foot { text-align: center; color: var(--muted); padding: 18px; display: flex; align-items: center; justify-content: center; gap: 8px; }

/* ===== Modal compartir (QR) ===== */
.modal-ov { position: fixed; inset: 0; background: rgba(8,18,13,.62); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; z-index: 200; padding: 16px; }
.modal-card { background: var(--card); color: var(--ink); border-radius: 18px; border-top: 4px solid var(--gold); padding: 22px; width: 100%; max-width: 420px; box-shadow: var(--shadow-lg); }
.qr-box { display: flex; justify-content: center; margin: 14px 0; color: var(--muted); }
.qr-box img { border-radius: 12px; border: 6px solid #fff; background: #fff; }
.share-link { display: flex; gap: 8px; margin-top: 6px; }
.share-link input { flex: 1; font-size: .9rem; padding: 8px 10px; }
.btn-gold { background: var(--gold); color: var(--green-deep); border: 1px solid var(--gold); font-weight: 700; }
.btn-gold:hover { background: #b9941f; }

/* Recuadro del GANADOR debajo del Resumen */
.ganador-card { margin-top: 12px; border-top: 3px solid var(--gold); text-align: center; }
.ganador-card .gc-label { font-size: .72rem; letter-spacing: .14em; color: var(--muted); font-weight: 700; }
.ganador-card .gc-name { font-family: var(--font-brand); font-weight: 800; font-size: 1.7rem; color: var(--green); margin: 5px 0 2px; line-height: 1.05; }
.ganador-card .gc-comp { font-size: 1.15rem; }
:root[data-tv='dark'] .ganador-card .gc-name { color: #5FD6A0; }

/* ===== 💳 COBROS: panel PRIVADO (cajero/admin) encima de la pantalla actual. Nunca en TV/publico ===== */
.cb-overlay { position: fixed; inset: 0; z-index: 210; background: var(--bg); overflow: auto; padding: 14px 18px 40px; }
body.cb-open { overflow: hidden; }
.cb-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; font-size: 1.15rem; font-family: var(--font-brand); }
.cb-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.cb-tab { background: #fff; color: var(--green); border: 1px solid var(--line); padding: 7px 12px; border-radius: 999px; font-size: .9rem; }
.cb-tab:hover { background: #f0f5f2; }
.cb-tab.on, .cb-tab.on:hover { background: var(--green); color: #fff; border-color: var(--green); }
.cb-strip { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 12px; }
.cb-kpi { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.cb-kpi span { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.cb-kpi b { font-size: 1.5rem; font-family: var(--font-brand); line-height: 1.2; }
.cb-kpi b .dual-bs { font-size: .55em; }
.cb-kpi small { color: var(--muted); }
.cb-kpi.ok b { color: var(--green); }
.cb-kpi.bad b { color: var(--red); }
.cb-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.cb-tools input { width: min(320px, 100%); padding: 8px 10px; font-size: 1rem; }
.cb-tablewrap { overflow-x: auto; }
.cb-table { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.cb-table th, .cb-sub th { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); font-weight: 700; }
.cb-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); font-size: 1.05rem; }
.cb-row { cursor: pointer; }
.cb-row:hover td { background: #f3f7f4; }
.cb-row.debe .cb-nombre { font-weight: 800; }
.cb-row.debe .cb-pend b { color: var(--red); }
.cb-row.ok .cb-nombre { color: var(--muted); }
.cb-nombre { font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; white-space: nowrap; }
.cb-det td { background: #fbfcfb; padding: 6px 10px 12px 26px; }
.cb-sub { width: 100%; border-collapse: collapse; }
.cb-sub td { padding: 6px 8px; border-bottom: 1px dashed var(--line); vertical-align: top; }
.cb-sub tr.tot td { border-top: 2px solid var(--line); font-weight: 800; }
.cb-sub tr.huer td { background: var(--amber-soft); }
.cb-sub .r, .cb-table .r, th.r { text-align: right; white-space: nowrap; }
.red { color: var(--red); }
.cb-acts { white-space: nowrap; text-align: right; }
.cb-pill { font-size: .72rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; color: #fff; white-space: nowrap; }
.cb-pill.g { background: var(--green-2); }
.cb-pill.p { background: var(--blue); }
.cb-pill.b { background: var(--gold); color: var(--green-deep); }
.cb-car { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 8px 12px 10px; margin-bottom: 10px; }
.cb-car h3 { margin: 4px 0 6px; font-family: var(--font-brand); }
.cb-grid2 { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.cb-warn { background: var(--amber-soft); color: var(--amber); border-radius: 8px; padding: 9px 12px; margin-bottom: 10px; font-weight: 600; }
.cb-count { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 6px; border-radius: 999px; background: var(--red); color: #fff; font-size: .72rem; line-height: 18px; text-align: center; font-weight: 800; }
.cb-count:empty { display: none; }
/* modal (abonar / dividir) */
.cb-modal { position: fixed; inset: 0; z-index: 220; background: rgba(0, 0, 0, .45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.cb-dialog { background: var(--card); color: var(--ink); border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.35); width: min(560px, 100%); max-height: 92vh; overflow: auto; padding: 16px 18px; }
.cb-dialog h3 { margin: 0 0 8px; font-family: var(--font-brand); }
.cb-metodos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.cb-metodos button { background: #fff; color: var(--ink); border: 2px solid var(--line); padding: 10px 6px; font-weight: 700; border-radius: 10px; }
.cb-metodos button:hover { background: #f0f5f2; }
.cb-metodos button.on, .cb-metodos button.on:hover { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.cb-field { margin: 10px 0; }
.cb-field label { display: block; font-size: .78rem; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 4px; font-weight: 700; }
.cb-field input { width: 100%; padding: 9px 10px; font-size: 1.15rem; font-weight: 700; box-sizing: border-box; }
#cbmMonto { font-size: 1.6rem; font-family: var(--font-display); }
.cb-equiv { color: var(--muted); font-weight: 600; margin-top: 4px; }
.cb-quick { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.cb-dialog .acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.cb-parte { display: grid; grid-template-columns: 1fr 140px 40px; gap: 6px; margin-bottom: 6px; }
.cb-parte input { padding: 8px; font-weight: 700; min-width: 0; box-sizing: border-box; }
.cb-lista { background: #f7faf8; border-radius: 8px; padding: 8px 10px; margin: 6px 0; font-size: .98rem; line-height: 1.4; }
@media (max-width: 640px) { .cb-metodos { grid-template-columns: 1fr; } .cb-parte { grid-template-columns: 1fr 110px 36px; } }
:root[data-tv='dark'] .cb-tab, :root[data-tv='dark'] .cb-metodos button { background: var(--card); color: var(--ink); }
:root[data-tv='dark'] .cb-row:hover td { background: rgba(255, 255, 255, .04); }
:root[data-tv='dark'] .cb-det td, :root[data-tv='dark'] .cb-lista { background: rgba(255, 255, 255, .04); }
:root[data-tv='dark'] .cb-kpi.ok b { color: #5FD6A0; }

.cobro-aviso { background: var(--amber-soft); color: var(--amber); border-radius: 8px; padding: 7px 10px; margin: 6px 0 8px; font-weight: 700; font-size: .95rem; }
.cobro-aviso a { color: var(--green); cursor: pointer; text-decoration: underline; }
.cobro-aviso:empty { display: none; }

/* ===== 📺 TELEVISOR (/tv): la carrera que se esta cantando, EN VIVO, llenando la pantalla ===== */
body.tv { overflow: hidden; }
.tv-wrap { height: 100vh; display: flex; flex-direction: column; padding: 10px 18px 12px; box-sizing: border-box; gap: 8px; }
.tv-top { display: flex; align-items: center; gap: 18px; padding: 4px 6px 8px; border-bottom: 2px solid var(--gold); flex: 0 0 auto; }
.tv-top .brand-text b { font-size: 1.05rem; }
.tv-car { font-family: var(--font-brand); font-weight: 800; font-size: 2.2rem; color: var(--gold); letter-spacing: .02em; white-space: nowrap; }
.tv-car small { font-family: var(--font-body); font-weight: 600; font-size: 1rem; color: var(--muted); margin-left: 8px; }
.tv-meta { font-family: var(--font-brand); font-weight: 700; font-size: 1.15rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-live { margin-left: auto; font-weight: 800; letter-spacing: .05em; font-size: 1.2rem; color: var(--muted); white-space: nowrap; }
.tv-live.on { color: #ff5a5a; animation: pubpulse 1.4s ease-in-out infinite; }
.tv-main { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.tv-tabla { width: 100%; border-collapse: collapse; table-layout: fixed; font-family: var(--font-display); font-weight: 700; font-size: var(--tv-fs); }
.tv-tabla th { font-family: var(--font-brand); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; font-size: calc(var(--tv-fs) * .55); color: var(--muted); padding: 3px 8px; border-bottom: 2px solid var(--line); text-align: center; }
.tv-tabla th.g { color: #5FD6A0; } .tv-tabla th.p { color: #7CC4FF; } .tv-tabla th.b { color: #E8C766; }
.tv-tabla tr.sub th { font-size: calc(var(--tv-fs) * .42); border-bottom: 3px solid var(--line); padding-top: 0; }
.tv-tabla th.n, .tv-tabla td.n { width: 5%; }
.tv-tabla th.cab, .tv-tabla td.cab { width: 27%; }
.tv-tabla.tres th.cab, .tv-tabla.tres td.cab { width: 19%; }
.tv-tabla td { height: var(--tv-rh); padding: 0 8px; border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.05; }
.tv-tabla tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .035); }
.tv-tabla td.n { text-align: center; color: var(--muted); font-size: calc(var(--tv-fs) * .8); }
.tv-tabla td.cab { color: var(--ink); text-align: center; letter-spacing: .005em; }
.tv-tabla td.c { text-align: center; color: var(--ink); font-size: calc(var(--tv-fs) * .95); }
.tv-tabla td.m { text-align: center; font-variant-numeric: tabular-nums; }
.tv-tabla td.m b { display: block; font-size: var(--tv-fs); line-height: 1; }
.tv-tabla td.m small { display: block; font-size: calc(var(--tv-fs) * .42); color: var(--muted); font-weight: 700; line-height: 1.1; }
.tv-tabla td.m.g b { color: #5FD6A0; } .tv-tabla td.m.p b { color: #7CC4FF; } .tv-tabla td.m.b b { color: #E8C766; }
.tv-tabla td.g { background: rgba(31, 122, 78, .10); } .tv-tabla td.p { background: rgba(20, 90, 150, .12); } .tv-tabla td.b { background: rgba(200, 160, 40, .10); }
.tv-tabla td.casa { color: var(--muted); }
.tv-casa { font-family: var(--font-body); font-weight: 800; font-size: calc(var(--tv-fs) * .6); color: var(--muted); }
.tv-tabla tr.win td { background: var(--green-soft) !important; box-shadow: inset 4px 0 0 var(--gold); }
.tv-bottom { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 14px; align-items: stretch; }
.tv-pozos-box { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 4px 12px; }
.tv-pozos { width: 100%; font-size: 1.35rem; }
.tv-pozos th { font-size: 1rem; }
.tv-pozos th, .tv-pozos td { padding: 3px 8px; }
.tv-pozos tr.gan td { font-size: 1.7rem; }
.tv-side { display: flex; gap: 12px; min-width: 0; }
.tv-gan { flex: 1 1 50%; background: linear-gradient(180deg, var(--green-2), var(--green)); color: #fff; border-radius: 12px; padding: 8px 12px; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.tv-gan .gc-label { font-size: .85rem; letter-spacing: .08em; opacity: .9; }
.tv-gan .gc-name { font-family: var(--font-display); font-weight: 800; font-size: 2rem; line-height: 1.05; }
.tv-gan .gc-comp { font-size: 1.15rem; opacity: .95; }
.tv-pos { flex: 1 1 50%; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 6px 12px; min-width: 0; }
.tv-pos-t { font-family: var(--font-brand); font-weight: 800; font-size: .95rem; color: var(--gold); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-pos-r { display: flex; justify-content: space-between; gap: 8px; font-size: 1.05rem; line-height: 1.35; }
.tv-pos-r span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tv-pos-r b { font-family: var(--font-brand); color: #5FD6A0; white-space: nowrap; }
.tv-msg { height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 8px; padding: 20px; }
.tv-msg h1 { margin: 0; font-family: var(--font-brand); }
.tv-msg p { font-size: 1.4rem; margin: 0; }
/* modal Modo TV: caja del televisor */
.tv-box { background: var(--gold-soft); border: 1px solid var(--gold); border-radius: 10px; padding: 10px 12px; margin: 8px 0 10px; font-size: .95rem; line-height: 1.4; }
.tv-url { font-family: var(--font-brand); font-weight: 800; font-size: 1.15rem; color: var(--green); background: #fff; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
:root[data-tv='dark'] .tv-url { background: var(--card); color: #5FD6A0; }

/* TV: resumen compacto; posiciones siempre visibles (2 columnas si hay mas de 4) */
.tv-pozos { font-size: 1.2rem; }
.tv-pozos th { font-size: .9rem; }
.tv-pozos th, .tv-pozos td { padding: 2px 8px; }
.tv-pozos tr.gan td { font-size: 1.5rem; }
.tv-tabla td { box-sizing: border-box; }
.tv-pos.dos .tv-pos-l { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
.tv-pos .hint { font-size: .95rem; }

/* TV: boton de pantalla completa (se oculta cuando ya esta en pantalla completa) */
.tv-fs-btn { background: transparent; color: var(--muted); border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; font-size: .9rem; font-weight: 700; white-space: nowrap; }
.tv-fs-btn:hover, .tv-fs-btn:focus-visible { background: var(--card); color: var(--ink); border-color: var(--gold); }
:root:fullscreen .tv-fs-btn, :root:-webkit-full-screen .tv-fs-btn { display: none; }

/* ===== TV: pantalla RESUMEN (el cajero abrio F2): premios grandes + totales + las 2-3 subastas ===== */
.tv-res { height: 100%; display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.tv-premios { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); flex: 0 0 auto; }
.tv-premios.n3 { grid-template-columns: repeat(3, 1fr); }
.tv-pc { border-radius: 14px; padding: 8px 14px 8px; text-align: center; color: #fff; }
.tv-pc.g { background: linear-gradient(180deg, var(--green-2), var(--green)); }
.tv-pc.p { background: linear-gradient(180deg, var(--blue), #0f4f8a); }
.tv-pc.b { background: linear-gradient(180deg, var(--gold), #a8861c); color: var(--green-deep); }
.tv-pc-l { font-family: var(--font-brand); font-weight: 800; font-size: 1.2rem; letter-spacing: .03em; opacity: .95; }
.tv-pc-v { font-family: var(--font-brand); font-weight: 800; font-size: 3rem; line-height: 1.1; margin: 2px 0; }
.tv-pc-v b { color: inherit; }
.tv-pc-v .dual-bs { color: inherit; opacity: .85; font-size: .5em; font-weight: 700; display: block; }
.tv-pc-s { font-size: .9rem; opacity: .9; }
.tv-tot { flex: 0 0 auto; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; }
.tv-rt-pozos { width: 100%; font-size: 1.25rem; }
.tv-rt-pozos th { font-size: .95rem; }
.tv-rt-pozos th, .tv-rt-pozos td { padding: 3px 10px; }
.tv-rt-pozos tr.gan td { font-size: 1.6rem; }
.tv-rt-pozos tr.casa td { font-size: 1rem; color: var(--amber); font-weight: 700; border-bottom: 0; }
.tv-rt-grid { flex: 1 1 auto; min-height: 0; display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); overflow: hidden; }
.tv-rt-grid.n3 { grid-template-columns: repeat(3, 1fr); }
.tv-rt { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 6px 10px; min-width: 0; overflow: hidden; }
.tv-rt h3 { margin: 0 0 4px; font-family: var(--font-brand); font-weight: 800; font-size: 1.25rem; text-align: center; border-radius: 8px; padding: 5px; color: #fff; }
.tv-rt h3.g { background: var(--green-2); } .tv-rt h3.p { background: var(--blue); } .tv-rt h3.b { background: var(--gold); color: var(--green-deep); }
.tv-rt-t { width: 100%; border-collapse: collapse; table-layout: fixed; font-family: var(--font-display); font-weight: 700; font-size: var(--tv-fs, 22px); }
.tv-rt-t td { height: var(--tv-rh, 36px); padding: 0 6px; border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.05; box-sizing: border-box; }
.tv-rt-t td.n { width: 9%; color: var(--muted); text-align: center; font-size: calc(var(--tv-fs, 22px) * .8); }
.tv-rt-t td.cab { width: 36%; color: var(--ink); }
.tv-rt-t td.c { width: 33%; color: var(--ink); text-align: center; font-size: calc(var(--tv-fs, 22px) * .95); }
.tv-rt-t td.m { width: 22%; text-align: right; font-variant-numeric: tabular-nums; }
.tv-rt-t td.m b { display: block; line-height: 1; }
.tv-rt-t td.m small { display: block; font-size: calc(var(--tv-fs, 22px) * .42); color: var(--muted); line-height: 1.1; }
.tv-rt-t td.m.g b { color: #5FD6A0; } .tv-rt-t td.m.p b { color: #7CC4FF; } .tv-rt-t td.m.b b { color: #E8C766; }
.tv-rt-t tr.win td { background: var(--green-soft); box-shadow: inset 4px 0 0 var(--gold); }
.tv-rt-t tr.casa td { color: var(--muted); }
.tv-rt-t td.hint { font-family: var(--font-body); font-weight: 400; text-align: center; }

/* Cobros: caballo dividido -> una linea por persona */
.cb-partes { margin-top: 4px; font-size: .9rem; color: var(--muted); }
.cb-parte-r { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 3px; color: var(--ink); }
.cb-parte-r .btn-sm { padding: 3px 8px; font-size: .78rem; }

/* Cobros: personas de un caballo dividido, para elegir quien paga */
.cb-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.cb-chip { background: #fff; color: var(--ink); border: 2px solid var(--line); border-radius: 10px; padding: 6px 12px; display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.cb-chip small { font-size: .75rem; color: var(--muted); font-weight: 600; }
.cb-chip.on, .cb-chip.on:hover { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.cb-chip:hover { background: #f0f5f2; }
:root[data-tv='dark'] .cb-chip { background: var(--card); color: var(--ink); }

/* Cobros por carrera: una fila por caballo, tablas en columnas */
.cb-grid th.g { color: var(--green); } .cb-grid th.p { color: var(--blue); } .cb-grid th.b { color: var(--amber); }
.cb-grid td { padding: 3px 6px; vertical-align: middle; }
.cb-grid td.cb-h { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; white-space: nowrap; width: 1%; padding-right: 12px; }
.cb-cc.vacio { color: var(--muted); text-align: center; }
.cb-cc-in { display: flex; align-items: center; gap: 6px; white-space: nowrap; min-width: 0; }
.cb-cc-n { font-family: var(--font-display); font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; max-width: 170px; }
.cb-cc-m { color: var(--muted); font-weight: 700; font-size: .92rem; }
.cb-cc-b { margin-left: auto; display: flex; gap: 4px; }
.cb-grid .btn-sm.ico { padding: 2px 7px; font-size: .85rem; line-height: 1.3; }
.cb-div { font-size: .72rem; font-weight: 800; color: #7a5cc0; background: #efe9ff; padding: 1px 6px; border-radius: 999px; cursor: help; }
.cb-cc.g { background: color-mix(in srgb, var(--green-soft) 40%, transparent); }
.cb-cc.p { background: color-mix(in srgb, var(--blue-soft) 40%, transparent); }
.cb-cc.b { background: color-mix(in srgb, var(--gold-soft) 40%, transparent); }
:root[data-tv='dark'] .cb-div { background: var(--violet-soft); color: #c9b8ff; }

/* ===== 📱 EN VIVO TELEFONO: vertical, pestañas grandes, tarjeta por caballo ===== */
body.ph { overflow-y: auto; }
.ph-wrap { max-width: 640px; margin: 0 auto; padding: 0 0 24px; }
.ph-sticky { position: sticky; top: 0; z-index: 5; background: var(--bg); }
.ph-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 14px 4px; }
.ph-carbar { font-family: var(--font-brand); font-weight: 800; font-size: 1.6rem; color: var(--gold); text-align: center; letter-spacing: .04em; padding: 2px 10px 6px; border-bottom: 2px solid var(--gold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-carbar small { font-family: var(--font-body); font-weight: 600; font-size: .9rem; color: var(--muted); letter-spacing: 0; }
.ph-top .brand-text b { font-size: .95rem; }
.ph-car { font-family: var(--font-brand); font-weight: 800; font-size: 1.35rem; color: var(--gold); margin-left: auto; white-space: nowrap; }
.ph-live { font-weight: 800; font-size: .85rem; color: var(--muted); white-space: nowrap; }
.ph-live.on { color: #ff5a5a; animation: pubpulse 1.4s ease-in-out infinite; }
.ph-banner { background: var(--gold-soft); color: var(--amber); padding: 8px 12px; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-weight: 700; }
.ph-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 8px 8px; background: var(--bg); }
.ph-tabs::-webkit-scrollbar { display: none; }
.ph-tab { flex: 0 0 auto; background: var(--card); color: var(--ink); border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; font-size: .95rem; font-weight: 700; white-space: nowrap; }
.ph-tab.on { background: var(--gold); color: var(--green-deep); border-color: var(--gold); }
.ph-main { padding: 6px 10px; display: flex; flex-direction: column; gap: 8px; }
.ph-horse { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; }
.ph-horse.win { background: var(--green-soft); box-shadow: inset 4px 0 0 var(--gold); }
.ph-horse.casa { border-color: var(--gold); background: color-mix(in srgb, var(--gold-soft) 70%, var(--card)); }
.ph-num { font-family: var(--font-brand); font-weight: 800; font-size: 1.5rem; color: var(--muted); text-align: center; }
.ph-name { font-family: var(--font-display); font-weight: 700; font-size: 1.45rem; line-height: 1.1; color: var(--ink); overflow-wrap: anywhere; }
.ph-buyer { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--ink); margin-top: 2px; }
.ph-horse.casa .ph-buyer { color: var(--amber); }
.ph-libre { color: var(--muted); font-weight: 400; font-family: var(--font-body); font-size: .95rem; }
.ph-amt { text-align: right; font-variant-numeric: tabular-nums; }
.ph-amt b { display: block; font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; line-height: 1; }
.ph-amt small { display: block; color: var(--muted); font-weight: 700; font-size: .85rem; }
.ph-horse.g .ph-amt b { color: #5FD6A0; } .ph-horse.p .ph-amt b { color: #7CC4FF; } .ph-horse.b .ph-amt b { color: #E8C766; }
.ph-empty { text-align: center; color: var(--muted); padding: 30px 10px; font-size: 1.1rem; }
.ph-pool { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 8px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; margin-top: 4px; position: sticky; bottom: 0; }
.ph-pool > div { display: flex; flex-direction: column; }
.ph-pool span { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.ph-pool b { font-size: 1.05rem; }
.ph-pool b .dual-bs { display: block; font-size: .75em; }
.ph-pool .prem b { color: #5FD6A0; font-size: 1.25rem; }
.ph-premios { display: grid; gap: 8px; grid-template-columns: 1fr; }
.ph-pc { border-radius: 14px; padding: 10px 14px; text-align: center; color: #fff; }
.ph-pc.g { background: linear-gradient(180deg, var(--green-2), var(--green)); }
.ph-pc.p { background: linear-gradient(180deg, var(--blue), #0f4f8a); }
.ph-pc.b { background: linear-gradient(180deg, var(--gold), #a8861c); color: var(--green-deep); }
.ph-pc-l { font-family: var(--font-brand); font-weight: 800; font-size: 1rem; letter-spacing: .03em; opacity: .95; }
.ph-pc-v { font-family: var(--font-brand); font-weight: 800; font-size: 2.1rem; line-height: 1.1; margin: 2px 0; }
.ph-pc-v b { color: inherit; }
.ph-pc-v .dual-bs { color: inherit; opacity: .85; font-size: .5em; font-weight: 700; display: block; }
.ph-pc-s { font-size: .8rem; opacity: .9; }
.ph-pozos { width: 100%; font-size: 1rem; }
.ph-pozos th { font-size: .78rem; }
.ph-pozos tr.gan td { font-size: 1.2rem; }
.ph-pozos tr.casa td { font-size: .9rem; color: var(--amber); font-weight: 700; border-bottom: 0; }
.pub-carrera.live { border-color: #ff5a5a; box-shadow: inset 4px 0 0 #ff5a5a; }
.pub-carrera { cursor: pointer; }

/* Cobros: premios */
.cb-prem { color: var(--green); }
.cb-premios { background: var(--green-soft); border-radius: 8px; padding: 6px 10px; margin-top: 6px; font-size: .95rem; }
.cb-premios .cb-pill { font-size: .68rem; }

/* Cobros por carrera: carreras plegables + selector */
.cb-car-h { cursor: pointer; user-select: none; }
.cb-car-h:hover { color: var(--green); }
.cb-car.closed { padding-bottom: 6px; }
.cb-carsel { gap: 6px; }
.cb-carsel .cb-tab { padding: 5px 11px; font-size: .9rem; }
.cb-carsel .cb-tab.debe:not(.on) { border-color: var(--red); color: var(--red); }

.cb-neto { font-size: .85rem; color: var(--green); font-weight: 600; }

/* Telefono: etiqueta del resultado junto al caballo */
.ph-tag { display: inline-block; vertical-align: middle; font-family: var(--font-brand); font-weight: 800; font-size: .72rem; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: var(--line); color: var(--ink); margin-left: 4px; }
.ph-tag.win { background: var(--gold); color: var(--green-deep); }

/* ===== TEMA BANDERA (elegido por Heberg 2026-09-22): Grande AMARILLO · Pequeña AZUL · Bolivariana ROJO. Ganador en verde marca. ===== */
:root { --sg: #8A6D00; --sg-bg: #F5C518; --sg-ink: #1A1400; --sg-soft: #FBF1C7; --sp: #0F5FA8; --sp-bg: #1668B0; --sp-soft: #E5F0FA; --sb: #B4232B; --sb-bg: #C62828; --sb-soft: #FBE0E2; --win: #15803D; --win-soft: #DCEBE2; }
:root[data-tv='dark'] { --sg: #FFD23F; --sg-bg: #FFD23F; --sg-ink: #1A1400; --sg-soft: #2A2410; --sp: #4EA8FF; --sp-bg: #1D6FCF; --sp-soft: #102234; --sb: #FF5A5F; --sb-bg: #C62828; --sb-soft: #331416; --win: #3DD68C; --win-soft: #143A2A; }
.head-cols .hcol.g { color: var(--sg); background: var(--sg-soft); }
:root[data-tv='dark'] .head-cols .hcol.g { color: var(--sg); background: var(--sg-soft); }
.head-cols .hcol.p { color: var(--sp); background: var(--sp-soft); }
:root[data-tv='dark'] .head-cols .hcol.p { color: var(--sp); background: var(--sp-soft); }
.head-cols .hcol.b { color: var(--sb); background: var(--sb-soft); }
:root[data-tv='dark'] .head-cols .hcol.b { color: var(--sb); background: var(--sb-soft); }
.head-grupo .hg { background: var(--sg-bg); color: var(--sg-ink); }
:root[data-tv='dark'] .head-grupo .hg { background: var(--sg-bg); color: var(--sg-ink); }
.head-grupo .hp { background: var(--sp-bg); color: #fff; }
:root[data-tv='dark'] .head-grupo .hp { background: var(--sp-bg); color: #fff; }
.head-grupo .hb { background: var(--sb-bg); color: #fff; }
:root[data-tv='dark'] .head-grupo .hb { background: var(--sb-bg); color: #fff; }
.cc-monto.g input.i { color: var(--sg); }
:root[data-tv='dark'] .cc-monto.g input.i { color: var(--sg); }
.cc-monto.p input.i { color: var(--sp); }
:root[data-tv='dark'] .cc-monto.p input.i { color: var(--sp); }
.cc-monto.b input.i { color: var(--sb); }
:root[data-tv='dark'] .cc-monto.b input.i { color: var(--sb); }
.cc-comp.g, .cc-monto.g { background: color-mix(in srgb, var(--sg-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sg) 30%, transparent); }
:root[data-tv='dark'] .cc-comp.g, :root[data-tv='dark'] .cc-monto.g { background: color-mix(in srgb, var(--sg-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sg) 30%, transparent); }
.cc-comp.p, .cc-monto.p { background: color-mix(in srgb, var(--sp-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sp) 30%, transparent); }
:root[data-tv='dark'] .cc-comp.p, :root[data-tv='dark'] .cc-monto.p { background: color-mix(in srgb, var(--sp-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sp) 30%, transparent); }
.cc-comp.b, .cc-monto.b { background: color-mix(in srgb, var(--sb-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sb) 30%, transparent); }
:root[data-tv='dark'] .cc-comp.b, :root[data-tv='dark'] .cc-monto.b { background: color-mix(in srgb, var(--sb-soft) 60%, transparent); border-color: color-mix(in srgb, var(--sb) 30%, transparent); }
table.pozos th.g { color: var(--sg); }
:root[data-tv='dark'] table.pozos th.g { color: var(--sg); }
table.pozos th.p { color: var(--sp); }
:root[data-tv='dark'] table.pozos th.p { color: var(--sp); }
table.pozos th.b { color: var(--sb); }
:root[data-tv='dark'] table.pozos th.b { color: var(--sb); }
.sub-tab.active.g { border-color: var(--sg); background: var(--sg-soft); color: var(--sg); }
:root[data-tv='dark'] .sub-tab.active.g { border-color: var(--sg); background: var(--sg-soft); color: var(--sg); }
.sub-tab.active.p { border-color: var(--sp); background: var(--sp-soft); color: var(--sp); }
:root[data-tv='dark'] .sub-tab.active.p { border-color: var(--sp); background: var(--sp-soft); color: var(--sp); }
.srow2.fila.win { box-shadow: inset 3px 0 0 var(--win); }
:root[data-tv='dark'] .srow2.fila.win { box-shadow: inset 3px 0 0 var(--win); }
.rt-title.g { background: var(--sg-bg); color: var(--sg-ink); }
:root[data-tv='dark'] .rt-title.g { background: var(--sg-bg); color: var(--sg-ink); }
.rt-title.p { background: var(--sp-bg); color: #fff; }
:root[data-tv='dark'] .rt-title.p { background: var(--sp-bg); color: #fff; }
.rt-title.b { background: var(--sb-bg); color: #fff; }
:root[data-tv='dark'] .rt-title.b { background: var(--sb-bg); color: #fff; }
.rt-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
:root[data-tv='dark'] .rt-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
.rt-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
:root[data-tv='dark'] .rt-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
.rt-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
:root[data-tv='dark'] .rt-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
.rt-table tr.win td { box-shadow: inset 3px 0 0 var(--win); }
:root[data-tv='dark'] .rt-table tr.win td { box-shadow: inset 3px 0 0 var(--win); }
.cb-pill.g { background: var(--sg-bg); color: var(--sg-ink); }
:root[data-tv='dark'] .cb-pill.g { background: var(--sg-bg); color: var(--sg-ink); }
.cb-pill.p { background: var(--sp-bg); color: #fff; }
:root[data-tv='dark'] .cb-pill.p { background: var(--sp-bg); color: #fff; }
.cb-pill.b { background: var(--sb-bg); color: #fff; }
:root[data-tv='dark'] .cb-pill.b { background: var(--sb-bg); color: #fff; }
.cb-grid th.g { color: var(--sg); }
:root[data-tv='dark'] .cb-grid th.g { color: var(--sg); }
.cb-grid th.p { color: var(--sp); }
:root[data-tv='dark'] .cb-grid th.p { color: var(--sp); }
.cb-grid th.b { color: var(--sb); }
:root[data-tv='dark'] .cb-grid th.b { color: var(--sb); }
.cb-cc.g { background: color-mix(in srgb, var(--sg-soft) 55%, transparent); }
:root[data-tv='dark'] .cb-cc.g { background: color-mix(in srgb, var(--sg-soft) 55%, transparent); }
.cb-cc.p { background: color-mix(in srgb, var(--sp-soft) 55%, transparent); }
:root[data-tv='dark'] .cb-cc.p { background: color-mix(in srgb, var(--sp-soft) 55%, transparent); }
.cb-cc.b { background: color-mix(in srgb, var(--sb-soft) 55%, transparent); }
:root[data-tv='dark'] .cb-cc.b { background: color-mix(in srgb, var(--sb-soft) 55%, transparent); }
.tv-tabla th.g { color: var(--sg); }
:root[data-tv='dark'] .tv-tabla th.g { color: var(--sg); }
.tv-tabla th.p { color: var(--sp); }
:root[data-tv='dark'] .tv-tabla th.p { color: var(--sp); }
.tv-tabla th.b { color: var(--sb); }
:root[data-tv='dark'] .tv-tabla th.b { color: var(--sb); }
.tv-tabla td.m.g b { color: var(--sg); }
:root[data-tv='dark'] .tv-tabla td.m.g b { color: var(--sg); }
.tv-tabla td.m.p b { color: var(--sp); }
:root[data-tv='dark'] .tv-tabla td.m.p b { color: var(--sp); }
.tv-tabla td.m.b b { color: var(--sb); }
:root[data-tv='dark'] .tv-tabla td.m.b b { color: var(--sb); }
.tv-tabla td.g { background: color-mix(in srgb, var(--sg) 9%, transparent); }
:root[data-tv='dark'] .tv-tabla td.g { background: color-mix(in srgb, var(--sg) 9%, transparent); }
.tv-tabla td.p { background: color-mix(in srgb, var(--sp) 10%, transparent); }
:root[data-tv='dark'] .tv-tabla td.p { background: color-mix(in srgb, var(--sp) 10%, transparent); }
.tv-tabla td.b { background: color-mix(in srgb, var(--sb) 9%, transparent); }
:root[data-tv='dark'] .tv-tabla td.b { background: color-mix(in srgb, var(--sb) 9%, transparent); }
.tv-tabla tr.win td { background: var(--win-soft) !important; box-shadow: inset 4px 0 0 var(--win); }
:root[data-tv='dark'] .tv-tabla tr.win td { background: var(--win-soft) !important; box-shadow: inset 4px 0 0 var(--win); }
.tv-rt h3.g { background: var(--sg-bg); color: var(--sg-ink); }
:root[data-tv='dark'] .tv-rt h3.g { background: var(--sg-bg); color: var(--sg-ink); }
.tv-rt h3.p { background: var(--sp-bg); color: #fff; }
:root[data-tv='dark'] .tv-rt h3.p { background: var(--sp-bg); color: #fff; }
.tv-rt h3.b { background: var(--sb-bg); color: #fff; }
:root[data-tv='dark'] .tv-rt h3.b { background: var(--sb-bg); color: #fff; }
.tv-rt-t td.m.g b { color: var(--sg); }
:root[data-tv='dark'] .tv-rt-t td.m.g b { color: var(--sg); }
.tv-rt-t td.m.p b { color: var(--sp); }
:root[data-tv='dark'] .tv-rt-t td.m.p b { color: var(--sp); }
.tv-rt-t td.m.b b { color: var(--sb); }
:root[data-tv='dark'] .tv-rt-t td.m.b b { color: var(--sb); }
.tv-rt-t tr.win td { background: var(--win-soft); box-shadow: inset 4px 0 0 var(--win); }
:root[data-tv='dark'] .tv-rt-t tr.win td { background: var(--win-soft); box-shadow: inset 4px 0 0 var(--win); }
.tv-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
:root[data-tv='dark'] .tv-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
.tv-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
:root[data-tv='dark'] .tv-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
.tv-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
:root[data-tv='dark'] .tv-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
.ph-horse.g .ph-amt b { color: var(--sg); }
:root[data-tv='dark'] .ph-horse.g .ph-amt b { color: var(--sg); }
.ph-horse.p .ph-amt b { color: var(--sp); }
:root[data-tv='dark'] .ph-horse.p .ph-amt b { color: var(--sp); }
.ph-horse.b .ph-amt b { color: var(--sb); }
:root[data-tv='dark'] .ph-horse.b .ph-amt b { color: var(--sb); }
.ph-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
:root[data-tv='dark'] .ph-pc.g { background: linear-gradient(180deg, var(--sg-bg), #C9A227); color: var(--sg-ink); }
.ph-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
:root[data-tv='dark'] .ph-pc.p { background: linear-gradient(180deg, var(--sp-bg), #0f4f8a); color: #fff; }
.ph-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
:root[data-tv='dark'] .ph-pc.b { background: linear-gradient(180deg, var(--sb-bg), #8E1B1B); color: #fff; }
.ph-horse.win { background: var(--win-soft); box-shadow: inset 4px 0 0 var(--win); }
:root[data-tv='dark'] .ph-horse.win { background: var(--win-soft); box-shadow: inset 4px 0 0 var(--win); }
.ph-tab.on { background: var(--green-2); color: #fff; border-color: var(--green-2); }
:root[data-tv='dark'] .ph-tab.on { background: var(--green-2); color: #fff; border-color: var(--green-2); }
.ph-tag.win { background: var(--win); color: #06281A; }
:root[data-tv='dark'] .ph-tag.win { background: var(--win); color: #06281A; }

/* TV: legibilidad a distancia (Bs mas claros y grandes, compradores mas pesados, cuadro de totales con aire) */
.tv-tabla td.m small, .tv-rt-t td.m small { color: #D6E0DA; font-size: calc(var(--tv-fs, 22px) * .46); font-weight: 700; }
.tv-tabla td.c { font-weight: 800; }
.tv-tabla td.c.casa, .tv-tabla td.m.casa { color: #B7C4BC; }
.tv-casa { color: #B7C4BC; }
.tv-pozos th, .tv-pozos td { padding: 6px 10px; border-bottom: 1px solid rgba(255, 255, 255, .10); }
.tv-pozos tr:last-child td { border-bottom: 0; }
.tv-pozos .dc small, .tv-rt-pozos .dc small { color: #D6E0DA; }
.tv-pozos tr.gan td { padding-top: 8px; padding-bottom: 8px; }
.tv-pozos-box { padding: 6px 14px; }

/* Cuadro del ganador: quien lo tenia en cada subasta */
.gc-ganadores { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.gc-ganadores .gw { display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.gc-ganadores .gw small { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; opacity: .85; font-weight: 700; }
.gc-ganadores .gw b { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; }
.tv-gan .gc-ganadores .gw b { font-size: 1.3rem; }
.tv-gan .gc-ganadores .gw small { font-size: .72rem; }

/* TV a distancia: Bolivariana vacia angosta; con muchos caballos, sin Bs chico en las filas */
.tv-tabla th.b.vacia, .tv-tabla td.b.vacia { width: 7%; text-align: center; color: var(--muted); font-size: calc(var(--tv-fs) * .5); }
.tv-tabla.bvacia th.cab, .tv-tabla.bvacia td.cab { width: 25%; }
.tv-main.compacto .tv-tabla td.m small { display: none; }
.tv-main.compacto .tv-tabla td { line-height: 1; }

/* EN VIVO: el caballo que se esta cantando (donde esta el cursor del cajero) */
@keyframes focoPulse { 0%, 100% { box-shadow: inset 0 0 0 3px var(--sg); } 50% { box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--sg) 35%, transparent); } }
.tv-tabla tr.foco td { background: color-mix(in srgb, var(--sg) 14%, transparent) !important; }
.tv-tabla tr.foco td:first-child { box-shadow: inset 4px 0 0 var(--sg); }
.tv-tabla tr.foco { animation: focoPulse 1.6s ease-in-out infinite; }
.ph-horse.foco { border-color: var(--sg); box-shadow: 0 0 0 2px var(--sg); }
.ph-tag.foco { background: var(--sg); color: var(--sg-ink); }
@media (prefers-reduced-motion: reduce) { .tv-tabla tr.foco { animation: none; } }
/* TV: cuadro inferior (totales, ganador, posiciones) proporcional a la altura de la pantalla */
.tv-pozos { font-size: clamp(1.1rem, 2.5vh, 2.1rem); }
.tv-pozos th { font-size: clamp(.9rem, 1.8vh, 1.4rem); }
.tv-pozos th, .tv-pozos td { padding: clamp(4px, .7vh, 10px) 12px; }
.tv-pozos tr.gan td { font-size: clamp(1.4rem, 3.6vh, 3rem); }
.tv-pozos .dc small, .tv-rt-pozos .dc small { font-size: clamp(.8rem, 1.7vh, 1.3rem); }
.tv-gan .gc-label { font-size: clamp(.8rem, 1.6vh, 1.2rem); }
.tv-gan .gc-name { font-size: clamp(1.6rem, 3.8vh, 3.2rem); }
.tv-gan .gc-ganadores .gw b { font-size: clamp(1.1rem, 2.5vh, 2.1rem); }
.tv-gan .gc-ganadores .gw small { font-size: clamp(.7rem, 1.4vh, 1rem); }
.tv-pos-t { font-size: clamp(.9rem, 1.9vh, 1.5rem); }
.tv-pos-r { font-size: clamp(1rem, 2.3vh, 1.9rem); line-height: 1.3; }
.tv-rt-pozos { font-size: clamp(1.1rem, 2.4vh, 2rem); }
.tv-rt-pozos tr.gan td { font-size: clamp(1.4rem, 3.4vh, 2.8rem); }
.tv-pc-v { font-size: clamp(2rem, 5vh, 4rem); }

/* TV: el cuadro de abajo nunca se come la tabla */
.tv-bottom { max-height: 30vh; overflow: hidden; }
.tv-pozos tr.gan td { font-size: clamp(1.3rem, 3vh, 2.6rem); }
.tv-gan .gc-name { font-size: clamp(1.5rem, 3.2vh, 2.8rem); }
.tv-pos-r { font-size: clamp(.95rem, 2vh, 1.7rem); }
/* TV: posiciones del dia dentro de su cuadro (dos columnas que se encogen, nombres con puntos suspensivos) */
.tv-bottom { grid-template-columns: minmax(0, 1.35fr) minmax(360px, 1.25fr); }
.tv-side { min-width: 0; }
.tv-pos { min-width: 0; overflow: hidden; }
.tv-pos.dos .tv-pos-l { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 10px; }
.tv-pos-r { min-width: 0; gap: 6px; }
.tv-pos.dos .tv-pos-r { font-size: clamp(.85rem, 1.65vh, 1.35rem); }
.tv-pos-r span { flex: 1 1 auto; min-width: 0; }
.tv-pos-r b { flex: 0 0 auto; }
/* Avisos (toast): totalmente oculto cuando no hay aviso (asomaba un borde blanco abajo en el TV); siempre oscuro con letra blanca */
.toast { visibility: hidden; opacity: 0; transform: translateX(-50%) translateY(200%); background: #192620; color: #fff; transition: transform .25s, opacity .25s, visibility 0s linear .25s; }
.toast.show { visibility: visible; opacity: 1; transform: translateX(-50%) translateY(0); transition: transform .25s, opacity .25s, visibility 0s; }
.toast.err { background: var(--red); }
/* Resaltado del caballo en subasta: fijo, sin latido (el latido hacia parecer que toda la pantalla se movia) */
.tv-tabla tr.foco { animation: none; box-shadow: inset 0 0 0 3px var(--sg); }

/* TV entre carreras: resultados + posiciones */
.tv-entre { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 14px; overflow: hidden; }
.tv-entre .tv-rt { display: flex; flex-direction: column; min-height: 0; }
.tv-rt h3.ec { background: var(--card); color: var(--gold); border: 1px solid var(--line); }
.tv-ec { width: 100%; border-collapse: collapse; table-layout: fixed; font-family: var(--font-display); font-weight: 700; font-size: var(--tv-fs, 26px); }
.tv-ec th { font-family: var(--font-brand); font-size: calc(var(--tv-fs, 26px) * .5); text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 4px 8px; border-bottom: 2px solid var(--line); text-align: center; }
.tv-ec th.g { color: var(--sg); } .tv-ec th.p { color: var(--sp); } .tv-ec th.b { color: var(--sb); }
.tv-ec td { height: var(--tv-rh, 40px); padding: 0 8px; border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; box-sizing: border-box; }
.tv-ec td.n { width: 7%; color: var(--muted); }
.tv-ec td.cab { width: 36%; color: var(--ink); text-align: left; }
.tv-ec td.c { font-size: calc(var(--tv-fs, 26px) * .85); }
.tv-ec td.c.g { color: var(--sg); } .tv-ec td.c.p { color: var(--sp); } .tv-ec td.c.b { color: var(--sb); }
.tv-entre .tv-pos-l.dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 16px; }
.tv-entre .tv-pos-r { font-size: clamp(1.1rem, 2.6vh, 2.2rem); line-height: 1.45; }
.tv-acum { font-family: var(--font-brand); font-weight: 800; color: #5FD6A0; font-size: clamp(1rem, 2.4vh, 1.9rem); margin: 4px 0 8px; }
.tv-acum small { font-size: .7em; color: var(--muted); font-weight: 600; }
.tv-acum.hint { color: var(--muted); font-weight: 600; }
/* TV entre carreras: anchos de columna desde la cabecera (table-layout fixed los toma de la primera fila) */
.tv-ec th.n { width: 6%; }
.tv-ec th.cab { width: 40%; }

/* TV modo POCOS CABALLOS (hasta 8): una celda ancha por subasta, comprador arriba y monto abajo */
.tv-tabla.pocos th.cab, .tv-tabla.pocos td.cab { width: 30%; }
.tv-tabla.pocos th.n, .tv-tabla.pocos td.n { width: 5%; }
.tv-tabla.pocos th { font-size: calc(var(--tv-fs) * .5); padding: 6px 8px; }
.tv-tabla.pocos th.b.vacia small { display: block; font-size: .7em; font-weight: 600; color: var(--muted); text-transform: none; letter-spacing: 0; }
.tv-tabla.pocos td.gp { text-align: center; padding: 0 10px; line-height: 1; }
.tv-tabla.pocos td.gp .nm { font-size: calc(var(--tv-fs) * .92); color: var(--ink); font-weight: 800; line-height: 1.05; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-tabla.pocos td.gp .am { margin-top: .12em; white-space: nowrap; }
.tv-tabla.pocos td.gp .am b { display: inline; font-size: var(--tv-fs); line-height: 1; }
.tv-tabla.pocos td.gp .am small { display: inline; margin-left: .35em; font-size: calc(var(--tv-fs) * .42); color: #D6E0DA; font-weight: 700; }
.tv-tabla.pocos td.gp.g .am b { color: var(--sg); } .tv-tabla.pocos td.gp.p .am b { color: var(--sp); } .tv-tabla.pocos td.gp.b .am b { color: var(--sb); }
.tv-tabla.pocos td.gp.g { background: color-mix(in srgb, var(--sg) 9%, transparent); }
.tv-tabla.pocos td.gp.p { background: color-mix(in srgb, var(--sp) 10%, transparent); }
.tv-tabla.pocos td.gp.b { background: color-mix(in srgb, var(--sb) 9%, transparent); }
.tv-tabla.pocos td.gp.casa .nm { color: #B7C4BC; }
.tv-tabla.pocos td.cab { font-size: calc(var(--tv-fs) * 1.05); }
.tv-libre { color: var(--muted); }
/* TV pocos caballos: filas mas llenas, celdas sin venta con guion tenue, separadores finos entre subastas */
.tv-tabla.pocos td.gp { border-left: 1px solid rgba(255, 255, 255, .08); }
.tv-tabla.pocos td.gp.libre .nm { color: var(--muted); opacity: .5; font-size: calc(var(--tv-fs) * .8); }
.tv-tabla.pocos td.gp .nm { letter-spacing: .01em; }
.tv-tabla.pocos td.gp .am { margin-top: .08em; }
.tv-tabla.pocos td.gp .am small { font-size: calc(var(--tv-fs) * .38); }
.tv-tabla.pocos td.cab { font-size: calc(var(--tv-fs) * 1.0); }

/* Telefono: tamaño de letra y aviso de instalar */
.ph-zoom { display: inline-flex; gap: 4px; margin-left: auto; margin-right: 10px; }
.ph-zoom button { background: var(--card); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; padding: 4px 9px; font-size: .85rem; font-weight: 800; line-height: 1.2; }
.ph-zoom button:active { background: var(--green-2); color: #fff; }
.ph-live { margin-left: 0; }
.ph-install { margin: 8px 10px 0; background: var(--card); border: 1px solid var(--gold); border-radius: 12px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: .95rem; }
.ph-install-b { display: flex; gap: 6px; }

/* TV abajo: sin cuadro del ganador; totales y puntos mas grandes */
.tv-bottom { grid-template-columns: minmax(0, 1.25fr) minmax(380px, 1fr); max-height: 34vh; }
.tv-pozos { font-size: clamp(1.2rem, 2.9vh, 2.4rem); }
.tv-pozos th { font-size: clamp(1rem, 2vh, 1.6rem); }
.tv-pozos tr.gan td { font-size: clamp(1.5rem, 3.6vh, 3rem); }
.tv-pozos .dc small { font-size: clamp(.85rem, 1.9vh, 1.45rem); }
.tv-pos-t { font-size: clamp(1rem, 2.2vh, 1.7rem); }
.tv-pos-acum { font-family: var(--font-brand); font-weight: 800; color: #5FD6A0; font-size: clamp(.95rem, 2vh, 1.5rem); margin: 0 0 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-pos.dos .tv-pos-r { font-size: clamp(1rem, 2.3vh, 1.8rem); line-height: 1.35; }

.cb-neto.neg { color: var(--red); }

.cb-metodos { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 640px) { .cb-metodos { grid-template-columns: 1fr 1fr; } }

/* Auditoria */
.aud td { font-size: .92rem; vertical-align: top; }
.aud .aud-ts { white-space: nowrap; font-variant-numeric: tabular-nums; }
.aud .aud-det { max-width: 560px; overflow-wrap: anywhere; }
.aud tr.aud-alerta td { background: var(--red-soft); }
:root[data-tv='dark'] .aud tr.aud-alerta td { background: rgba(166, 40, 52, .25); }
/* Telefono: letra mas grande para gente mayor (base) y A+ hasta 2.2x */
.ph-name { font-size: 1.7rem; }
.ph-buyer { font-size: 1.35rem; }
.ph-amt b { font-size: 2rem; }
.ph-amt small { font-size: .95rem; }
.ph-num { font-size: 1.6rem; }
.ph-tab { padding: 10px 14px; font-size: 1.05rem; }
.ph-pool span { font-size: .8rem; } .ph-pool b { font-size: 1.15rem; } .ph-pool .prem b { font-size: 1.4rem; }
.ph-carbar { font-size: 1.8rem; }

/* Auditoria */
.aud td { font-size: .92rem; vertical-align: top; }
.aud .aud-ts { white-space: nowrap; font-variant-numeric: tabular-nums; }
.aud .aud-det { max-width: 560px; overflow-wrap: anywhere; }
.aud tr.aud-alerta td { background: var(--red-soft); }
:root[data-tv='dark'] .aud tr.aud-alerta td { background: rgba(166, 40, 52, .25); }
/* Telefono: letra mas grande para gente mayor (base) y A+ hasta 2.2x */
.ph-name { font-size: 1.7rem; }
.ph-buyer { font-size: 1.35rem; }
.ph-amt b { font-size: 2rem; }
.ph-amt small { font-size: .95rem; }
.ph-num { font-size: 1.6rem; }
.ph-tab { padding: 10px 14px; font-size: 1.05rem; }
.ph-pool span { font-size: .8rem; } .ph-pool b { font-size: 1.15rem; } .ph-pool .prem b { font-size: 1.4rem; }
.ph-carbar { font-size: 1.8rem; }

/* TV entre carreras: columna derecha con puntos + proxima carrera + QR */
.tv-entre-der { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.tv-entre-der > .tv-rt { flex: 0 1 auto; min-height: 0; overflow: hidden; }
.tv-next-l { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
.tv-next-r { display: flex; gap: 8px; align-items: baseline; font-family: var(--font-display); font-weight: 700; font-size: clamp(1rem, 2.3vh, 1.9rem); line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-next-r .n { color: var(--muted); min-width: 1.6em; text-align: right; }
.tv-next-r .nm { overflow: hidden; text-overflow: ellipsis; }
.tv-qr { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.tv-qr img { width: clamp(90px, 14vh, 150px); height: auto; border-radius: 10px; background: #fff; padding: 4px; flex: 0 0 auto; }
.tv-qr b { font-family: var(--font-brand); font-size: clamp(1rem, 2.2vh, 1.6rem); }
.tv-qr .hint { font-size: clamp(.85rem, 1.6vh, 1.2rem); }
.tv-rt h3.ec small { font-family: var(--font-body); font-weight: 600; font-size: .75em; color: var(--muted); }
/* TV entre carreras: la tabla de resultados arranca arriba (no se centra en el alto) */
.tv-entre .tv-rt { justify-content: flex-start; }
.tv-ec { margin-bottom: auto; }

/* Pequeña automatica: interruptor en la cabecera */
.head-grupo .hp .auto-p { font-family: var(--font-body); font-weight: 700; font-size: .72rem; margin-left: 10px; cursor: pointer; user-select: none; opacity: .9; }
.head-grupo .hp .auto-p input { width: auto; vertical-align: middle; margin: 0 3px 0 0; accent-color: #fff; }
/* "EN CASA" con el color de su subasta (amarillo Grande, azul Pequeña, rojo Bolivariana) */
.tv-tabla td.g .tv-casa, .tv-tabla td.gp.g.casa .nm .tv-casa, .tv-tabla td.gp.g.casa .nm { color: var(--sg); }
.tv-tabla td.p .tv-casa, .tv-tabla td.gp.p.casa .nm .tv-casa, .tv-tabla td.gp.p.casa .nm { color: var(--sp); }
.tv-tabla td.b .tv-casa, .tv-tabla td.gp.b.casa .nm .tv-casa, .tv-tabla td.gp.b.casa .nm { color: var(--sb); }
.tv-tabla td.c.casa { opacity: .85; }
.tv-rt.g .tv-casa { color: var(--sg); } .tv-rt.p .tv-casa { color: var(--sp); } .tv-rt.b .tv-casa { color: var(--sb); }
.tv-rt-t tr.casa td { color: var(--ink); opacity: .85; }
.ph-horse.casa.g { border-color: var(--sg); background: color-mix(in srgb, var(--sg) 12%, var(--card)); } .ph-horse.casa.g .ph-buyer { color: var(--sg); }
.ph-horse.casa.p { border-color: var(--sp); background: color-mix(in srgb, var(--sp) 12%, var(--card)); } .ph-horse.casa.p .ph-buyer { color: var(--sp); }
.ph-horse.casa.b { border-color: var(--sb); background: color-mix(in srgb, var(--sb) 12%, var(--card)); } .ph-horse.casa.b .ph-buyer { color: var(--sb); }

/* 📥 Reservas desde el celular */
.ph-res { color: #C9B8FF; font-weight: 800; }
.ph-horse.reservada { border-color: #7a5cc0; background: color-mix(in srgb, #7a5cc0 14%, var(--card)); }
.ph-horse.reservada .ph-buyer { color: #C9B8FF; }
.ph-pedir { margin-left: 8px; vertical-align: middle; padding: 6px 12px; font-size: .95rem; }
.ph-form { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.ph-form input { flex: 1 1 140px; min-width: 0; padding: 10px; font-size: 1.1rem; font-weight: 700; }
.ph-form .hint { flex-basis: 100%; }
.tv-casa.res { color: #C9B8FF !important; }
.sol-item { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, 1fr); gap: 12px; align-items: center; background: var(--card); border: 1px solid #7a5cc0; border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; }
.sol-q { font-size: 1.05rem; line-height: 1.35; }
.sol-a { display: flex; flex-direction: column; gap: 6px; }
.sol-met { grid-template-columns: repeat(4, 1fr); }
.sol-met button { padding: 5px 4px; font-size: .78rem; }
.sol-btns { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.sol-hist summary { cursor: pointer; color: var(--muted); font-size: .9rem; margin-top: 6px; }
@media (max-width: 760px) { .sol-item { grid-template-columns: 1fr; } }
/* Telefono: el campo del nombre en la reserva siempre legible (fondo blanco, letra oscura) */
.ph-form input, .ph-form input:focus { background: #fff !important; color: #192620 !important; border: 2px solid var(--sg); caret-color: #192620; }
.ph-form input::placeholder { color: #6b7a72; opacity: 1; }
/* Estabilidad total: nada parpadea ni late en TV ni en telefono (indicadores EN VIVO fijos) */
.tv-live.on, .ph-live.on, .pub-top .pub-live { animation: none !important; }
.ph-horse, .ph-tab, .tv-tabla td, .tv-tabla tr { transition: none !important; }
/* ===== TAQUILLA (laptop): la tabla de captura se adapta SIEMPRE al ancho disponible y con filas mas bajas.
   Antes estaba dimensionada para proyectarse al TV; ahora el TV y el telefono tienen sus propias paginas. ===== */
.srow2 { grid-template-columns: 38px minmax(0, 1.25fr) minmax(0, 1fr) minmax(78px, .6fr) 32px minmax(0, 1fr) minmax(78px, .6fr) 26px; min-width: 0; justify-content: stretch; gap: 5px; padding: 2px 8px; }
.srow2.boli { grid-template-columns: 38px minmax(0, 1.4fr) minmax(0, 1fr) minmax(78px, .6fr) 26px; }
.subasta2 { overflow-x: hidden; }
.srow2 input.i { padding: 2px 6px; line-height: 1.1; }
.c2-nombre input { font-size: clamp(1rem, 1.15vw, 1.5rem); }
.c2-num input { font-size: clamp(.85rem, .95vw, 1.2rem); }
.cc-comp input.i { font-size: clamp(.95rem, 1.15vw, 1.5rem); }
.cc-monto input.i { font-size: clamp(1rem, 1.2vw, 1.55rem); }
.monto-bs { font-size: clamp(.66rem, .72vw, .85rem); margin-top: 0; }
.head-grupo .hg, .head-grupo .hp, .head-grupo .hb { font-size: clamp(.85rem, 1vw, 1.2rem); padding: 4px; }
.head-cols .hcol, .head-cols > div { font-size: clamp(.66rem, .75vw, .9rem); }
.cc-comp input.i::placeholder { font-size: clamp(.75rem, .9vw, 1.1rem); }
.casa-pill { padding: 5px 8px; font-size: .8rem; }
.casa-chk { font-size: .8rem; }
.srow2.fila { padding-top: 1px; padding-bottom: 1px; }


/* 📡 Lector de carreras (pruebas) */
.lec-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
@media (max-width: 900px) { .lec-grid { grid-template-columns: 1fr; } }
.lec-fuentes { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.lec-min { width: 70px; padding: 4px 6px; }
.lec-prev-wrap { background: #000; border-radius: 10px; overflow: hidden; }
.lec-prev-wrap canvas { display: block; width: 100%; height: auto; cursor: crosshair; touch-action: none; }
.lec-estado { margin-top: 8px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.lec-estado .badge { font-size: .9rem; padding: 4px 10px; }
.lec-mov { display: flex; gap: 8px; align-items: center; margin-top: 8px; font-size: .8rem; color: var(--muted); }
.lec-bar { flex: 1; height: 8px; background: var(--line); border-radius: 999px; overflow: hidden; }
.lec-bar i { display: block; height: 100%; width: 0; background: var(--green-2); }
.lec-stats { margin-top: 8px; font-size: .9rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.lec-eventos { display: flex; flex-direction: column; gap: 6px; max-height: 70vh; overflow-y: auto; }
.lec-ev { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 10px; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; background: var(--card); }
.lec-ev-t { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--muted); }
.lec-ev img { width: 140px; height: auto; border-radius: 6px; display: block; }
.lec-ev.escena { opacity: .75; }
.lec-ev.escena img { width: 90px; }
.lec-ev.inicio { border-color: var(--green-2); background: var(--green-soft); }
.lec-ev.resultado { border-color: var(--gold); background: var(--gold-soft); }
.lec-ev.lectura_dudosa, .lec-ev.inicio_descartado { border-style: dashed; }
.lec-prueba { padding: 8px 10px; border-bottom: 1px solid var(--line); cursor: pointer; font-size: .92rem; }
.lec-prueba:hover { background: var(--green-soft); }

.lec-chip { position: fixed; left: 14px; bottom: 14px; z-index: 60; background: #192620; color: #fff; border: 1px solid var(--gold); border-radius: 999px; padding: 7px 14px; font-size: .85rem; font-weight: 700; cursor: pointer; box-shadow: var(--shadow); }
.lec-chip:hover { background: var(--green); }

.lec-srv { border-left: 4px solid var(--gold); }
.lec-srv-sesion { font-size: .95rem; }
.lec-srv-sesion a { cursor: pointer; }

.lec-barra { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.lec-barra input[type=range] { flex: 1; width: auto; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; height: 28px; accent-color: var(--gold); cursor: pointer; }
.lec-barra input[type=range]:disabled { cursor: default; opacity: .45; }
.lec-barra .hint { min-width: 44px; text-align: center; font-variant-numeric: tabular-nums; }

/* TV sin cabecera (Heberg 2026-09-26): todo el alto para caballos y compradores; carrera pequeña en la tabla de pozos */
.tv-wrap.sin-cab { padding-top: 8px; }
.tv-fs-flota { position: fixed; top: 6px; right: 8px; z-index: 5; opacity: .18; padding: 2px 9px; font-size: 1rem; }
.tv-fs-flota:hover, .tv-fs-flota:focus-visible { opacity: 1; }
.tv-carnum { color: var(--gold); font-family: var(--font-brand); font-weight: 800; white-space: nowrap; text-align: left; }

/* 📺 Quien proyecta: aviso pequeño fijo (no cambia el tamaño de la captura) */
.tv-ctl-chip { position: fixed; left: 12px; bottom: 12px; z-index: 55; background: var(--card, #fff); color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; font-size: .8rem; box-shadow: 0 2px 8px rgba(0,0,0,.12); max-width: calc(100vw - 24px); }
.tv-ctl-chip.otro { border-color: var(--gold); color: var(--ink); }
.tv-ctl-chip a { cursor: pointer; font-weight: 700; color: var(--green); text-decoration: underline; }

/* 🔥 TV: caballos de la CASA disponibles (Heberg 2026-09-26): bloque lleno del color de su subasta, precio grande, SIN animacion */
.tv-tabla td.g.disp { background: linear-gradient(180deg, #ffd84d, #e0a800) !important; }
.tv-tabla td.p.disp { background: linear-gradient(180deg, #4aa3ff, #1565d8) !important; }
.tv-tabla td.b.disp { background: linear-gradient(180deg, #ff6b6b, #c62828) !important; }
.tv-tabla td.disp, .tv-tabla td.disp * { color: #fff !important; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.tv-tabla td.g.disp, .tv-tabla td.g.disp * { color: #1a1300 !important; text-shadow: none; }
.tv-tabla td.disp .tv-casa { font-weight: 900; letter-spacing: .04em; }
.tv-tabla td.m.disp, .tv-tabla td.disp .am { font-weight: 900; }

/* Bolivariana: ↘ el mismo comprador de la Pequeña, DENTRO de la casilla (no cambia anchos) */
.cc-comp.b { position: relative; }
.cc-comp.b .copy-p2b { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); z-index: 2; border: 1px solid color-mix(in srgb, var(--gold) 55%, transparent); background: var(--card, #fff); color: var(--ink); border-radius: 6px; padding: 0 6px; font-size: 1.05rem; line-height: 1.6; cursor: pointer; opacity: .8; }
.cc-comp.b .copy-p2b:hover { opacity: 1; background: var(--gold-soft, #fff4c2); }
.cc-comp.b:has(.copy-p2b) input.i { padding-right: 30px; }

/* CASA fluido: casilla del comprador visible aunque este en casa (escribir el nombre la saca de casa) */
.cc-comp.casa-comp.encasa { justify-content: flex-start; }
.cc-comp.casa-comp.encasa .casa-pill { width: auto; flex: none; padding: 4px 7px; font-size: .95rem; }
.cc-comp.encasa input.en-casa-input { background: var(--amber-soft) !important; }
.cc-comp.encasa input.en-casa-input::placeholder { color: var(--amber); font-weight: 800; opacity: 1; }

/* el aviso de proyeccion (pantalla de jornada) queda abajo a la izquierda; en la captura va dentro de la barra */
.tv-ctl-chip { bottom: 14px; }

/* 🎁 Acumulados en juego antes de subastar (TV entre carreras y celular) */
.tv-bono, .ph-bono { font-weight: 800; }
.tv-bono .bn, .ph-bono .bn { white-space: nowrap; }
.ph-bono { margin: 0 0 10px; }

/* Cobros: aviso fuerte al pagar premio en efectivo a alguien que debe (27-sep: se pagaron premios sin compensar) */
.cb-aviso-deuda { margin-top: 10px; padding: 10px 12px; border-radius: 10px; border: 2px solid var(--red, #b3261e); background: color-mix(in srgb, var(--red, #b3261e) 10%, transparent); color: var(--ink, #111); line-height: 1.5; }
.cb-aviso-deuda button { margin-top: 8px; }

/* TV/celular SIN CONEXION: franja roja fija arriba (27-sep: el TV se quedo con puntos viejos sin que nadie lo notara) */
#tvOffline { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; background: #b3261e; color: #fff; font-weight: 800; font-size: clamp(16px, 2.6vw, 34px); text-align: center; padding: 10px 14px; box-shadow: 0 3px 12px rgba(0,0,0,.45); }

/* COBROS v2: saldo unico por persona + un boton; cuentas del modal; numero de partes al dividir */
.cb-saldo { white-space: nowrap; font-size: 1.02rem; }
.cb-saldo.debe { color: var(--red, #b3261e); }
.cb-saldo.paga { color: var(--green, #0E4D38); }
.cb-saldo.ok { color: var(--green, #0E4D38); font-weight: 700; }
.cb-go { min-width: 118px; }
.cb-kpi.warn b { color: var(--amber, #b26a00); }
.cb-math { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 4px 0 12px; }
.cb-math > div { background: var(--card-2, rgba(0,0,0,.04)); border-radius: 8px; padding: 6px 8px; display: flex; flex-direction: column; }
.cb-math span { font-size: .8rem; color: var(--muted, #666); }
.cb-math b { font-size: 1.05rem; }
.cb-math .tot.debe { background: color-mix(in srgb, var(--red, #b3261e) 14%, transparent); }
.cb-math .tot.paga { background: color-mix(in srgb, var(--green, #0E4D38) 14%, transparent); }
.cb-math .tot b { font-size: 1.25rem; }
.cb-ncount button { min-width: 48px; font-size: 1.1rem; font-weight: 800; }
@media (max-width: 640px) { .cb-math { grid-template-columns: repeat(2, 1fr); } }

/* Dividir el caballo completo (todas sus tablas) */
.cb-divall { margin-top: 4px; font-size: .82rem; padding: 2px 8px; }

/* Cobros: una linea por caballo con sus tablas como etiquetas */
.cb-pills { white-space: nowrap; }
.cb-pills .cb-pill + .cb-pill { margin-left: 3px; }

/* Cobros: selector de dia */
.cb-jsel { width: auto; display: inline-block; padding: 4px 8px; font-weight: 700; font-size: .95rem; }

/* Importar gaceta: hora de cada carrera */
.imp-hora { width: 92px; }

/* ===================== 2026-10-08 REDISEÑO TAQUILLA (laptop 1366 / 1280) =====================
   Antes, por debajo de 1810 px se apilaba todo (Posiciones -> tabla -> Resumen) y la tabla empezaba en y=1013.
   Ahora: tabla al centro, carril derecho angosto (Resumen + Ganador + Posiciones plegadas) y barra fija abajo. */
:root { --top-h: 52px; --head-h: 72px; --bar-h: 52px; }
.carrera-3col { display: flex; flex-direction: row; gap: 12px; align-items: flex-start; }
.col-center { flex: 1 1 auto; min-width: 0; }
.col-left { flex: 0 0 clamp(220px, 13vw, 270px); position: sticky; top: calc(var(--top-h) + 8px); }
.col-right { flex: 0 0 clamp(250px, 15vw, 300px); min-width: 0; position: sticky; top: calc(var(--top-h) + 8px); max-height: calc(100vh - var(--top-h) - var(--bar-h) - 16px); overflow-y: auto; scrollbar-width: thin; }
.pos-rail { display: none; }
@media (max-width: 1500px) {
  .col-left { display: none; }
  .pos-rail { display: block; }
  .col-right { flex-basis: 250px; }
}
@media (max-width: 1280px) { .col-right { flex-basis: 232px; } }
@media (max-width: 1000px) {
  .carrera-3col { flex-direction: column; }
  .col-right { position: static; max-height: none; overflow: visible; width: 100%; flex-basis: auto; }
}
.container.wide { padding-bottom: calc(var(--bar-h) + 16px); }
.avisos-carrera .recovered-banner, .avisos-carrera .cerrada-banner { max-width: none; margin: 2px 0 8px; padding: 7px 12px; }
.avisos-carrera .conflicto-banner { margin: 2px 0 8px; }
.tc-hora { background: rgba(255,255,255,.16); border-radius: 6px; padding: 1px 6px; font-size: .8rem; margin-left: 4px; font-weight: 700; }

/* Cabecera de la tabla PEGADA de verdad: overflow clip (no hidden) para que sticky funcione */
.card.pad0.subasta2 { overflow: clip; }
.subasta2-head { position: sticky; top: var(--top-h); z-index: 6; box-shadow: 0 3px 8px rgba(10,53,39,.07); }
.sub-pie { padding: 8px 12px; }

/* Fila en la que se esta escribiendo: se ve sola, sin buscar el cursor */
.srow2.fila:focus-within, .srow2.fila:focus-within:nth-child(even) { background: color-mix(in srgb, var(--gold-soft) 92%, transparent); box-shadow: inset 4px 0 0 var(--gold); }
:root[data-tv='dark'] .srow2.fila:focus-within { background: #2A2410; }
/* 1°, 2°, 3° marcados en la propia fila */
.c2-num { position: relative; }
.srow2.fila.l2 { box-shadow: inset 3px 0 0 #5d7286; }
.srow2.fila.l3 { box-shadow: inset 3px 0 0 #8a6d3b; }
.srow2.fila.win .c2-num::after, .srow2.fila.l2 .c2-num::after, .srow2.fila.l3 .c2-num::after { position: absolute; top: -4px; left: -5px; z-index: 1; font: 800 .62rem/1.35 var(--font-body); padding: 0 4px; border-radius: 6px; pointer-events: none; color: #fff; }
.srow2.fila.win .c2-num::after { content: '1°'; background: var(--green); }
.srow2.fila.l2 .c2-num::after { content: '2°'; background: #5d7286; }
.srow2.fila.l3 .c2-num::after { content: '3°'; background: #8a6d3b; }

/* Teclas en botones */
.carrera-bar kbd, .sub-pie kbd, .rail-h kbd, .mm-atajos kbd { font: 700 .66rem/1.3 var(--font-body); background: rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.14); border-bottom-width: 2px; border-radius: 4px; padding: 0 4px; color: inherit; opacity: .85; }
.btn-gold kbd { background: rgba(255,255,255,.35); }
:root[data-tv='dark'] .carrera-bar kbd, :root[data-tv='dark'] .mm-atajos kbd { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); }

/* Barra fija de abajo: opaca (antes era transparente y tapaba la ultima fila) */
.carrera-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; align-items: center; gap: 8px; padding: 6px 12px; min-height: 52px; background: var(--card); border-top: 2px solid var(--gold); box-shadow: 0 -4px 14px rgba(10,53,39,.12); }
.carrera-bar .btn-sm { padding: 7px 10px; }
.bar-hint { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; color: var(--muted); }
.bar-acc { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.btn-guardar { padding: 8px 14px; font-weight: 800; }
@media (max-width: 1320px) { .carrera-bar kbd { display: none; } .carrera-bar { gap: 6px; padding: 6px 8px; } }
/* Llegada 1-2-3 por numero de caballo */
.lleg-grupo { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); font-weight: 800; flex: none; }
.lleg-f { display: inline-flex; align-items: center; gap: 3px; margin: 0; font-weight: 800; color: var(--muted); cursor: text; }
.lleg-f span { font-family: var(--font-brand); font-size: .9rem; }
.lleg-f.l1 span { color: var(--green); }
input.lleg { width: 46px; height: 34px; padding: 2px 4px; text-align: center; font: 800 1.25rem var(--font-display); border: 2px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
.lleg-f.l1 input.lleg { border-color: color-mix(in srgb, var(--green) 45%, transparent); }
input.lleg:focus { border-color: var(--gold); outline: none; box-shadow: 0 0 0 3px var(--gold-soft); }
input.lleg.mal { border-color: var(--red); background: var(--red-soft); }
input.lleg[readonly] { opacity: .7; }
:root[data-tv='dark'] input.lleg { background: var(--card); }
/* Aviso de quien proyecta, dentro de la barra */
.tv-ctl-chip.en-barra { position: static; box-shadow: none; padding: 4px 9px; font-size: .76rem; white-space: nowrap; max-width: none; }
.tv-ctl-slot:empty { display: none; }
/* Menu (Limpiar / Eliminar / atajos), lejos de Guardar */
.mas-menu { position: relative; }
.mas-menu > summary { list-style: none; cursor: pointer; width: 38px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; font-weight: 900; font-size: 1.2rem; background: var(--card); color: var(--ink); user-select: none; }
.mas-menu > summary::-webkit-details-marker { display: none; }
.mas-menu[open] > summary { background: var(--gold-soft); border-color: var(--gold); }
.mas-pop { position: absolute; right: 0; bottom: calc(100% + 8px); z-index: 70; background: var(--card); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); padding: 8px; width: 310px; display: flex; flex-direction: column; gap: 6px; }
.mas-pop button { width: 100%; justify-content: flex-start; }
.mas-pop .mm-peligro { background: var(--red-soft); color: var(--red); border: 1px solid color-mix(in srgb, var(--red) 30%, transparent); }
.mas-pop .mm-peligro:hover { background: var(--red); color: #fff; }
.mm-atajos { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 7px; margin-top: 2px; }
.mm-atajos b { color: var(--ink); }

/* Carril derecho: Resumen volteado (una fila por subasta), Ganador con 2° y 3°, Posiciones plegadas */
.col-right .card { padding: 11px 12px; margin-bottom: 10px; }
.rail-h { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; margin: 0 0 4px; font-size: 1rem; }
.rail-f2 { font: 600 .76rem var(--font-body); color: var(--green-2); cursor: pointer; white-space: nowrap; }
table.rail-pozos { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rail-pozos th, .rail-pozos td { padding: 5px 3px; border-bottom: 1px solid var(--line); text-align: right; vertical-align: top; }
.rail-pozos td { font-weight: 700; font-size: .95rem; }
.rail-pozos thead th { font-size: .7rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; padding-top: 0; }
.rail-pozos tbody th { text-align: left; font-size: .84rem; white-space: nowrap; font-weight: 700; }
.rail-pozos tr.g th { color: var(--green); }
.rail-pozos tr.p th { color: var(--blue); }
.rail-pozos tr.b th { color: var(--amber); }
.rail-pozos .dc b { display: block; font-size: 1rem; line-height: 1.12; }
.rail-pozos .dc small { display: block; font-size: .7rem; font-weight: 700; color: var(--muted); white-space: nowrap; }
.rail-pozos td.rp-premio, .rail-pozos td.rp-premio .dc b { color: var(--green); font-weight: 800; }
.rail-pozos td.rp-premio .dc b { font-size: 1.1rem; }
.rail-pozos .rp-bono { display: block; font-size: .68rem; color: #5b3ea8; font-weight: 700; white-space: nowrap; }
.rail-pozos tr.tot th, .rail-pozos tr.tot td { border-bottom: none; background: var(--green-soft); }
.rail-pozos tr.tot th { border-radius: 8px 0 0 8px; padding-left: 6px; }
.rail-pozos tr.tot td:last-child { border-radius: 0 8px 8px 0; padding-right: 6px; }
.rail-pozos tr.tot td.rp-premio .dc b { font-size: 1.22rem; }
:root[data-tv='dark'] .rail-pozos td.rp-premio, :root[data-tv='dark'] .rail-pozos td.rp-premio .dc b { color: #5FD6A0; }
:root[data-tv='dark'] .rail-pozos tr.g th { color: #5FD6A0; }
:root[data-tv='dark'] .rail-pozos tr.p th { color: #6FB8F0; }
.col-right .ganador-card { margin-top: 0; padding: 10px 12px; }
.col-right .ganador-card .gc-name { font-size: 1.35rem; }
.gc-lugares { display: flex; flex-direction: column; gap: 3px; margin-top: 8px; padding-top: 7px; border-top: 1px dashed var(--line); text-align: left; font-size: .86rem; }
.gc-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gc-l i { font-style: normal; font-weight: 800; display: inline-block; min-width: 24px; text-align: center; border-radius: 6px; color: #fff; background: #5d7286; margin-right: 3px; font-size: .78rem; }
.gc-l.l3 i { background: #8a6d3b; }
.gc-l.vacio { color: var(--muted); }
.lleg-pista { font-size: .84rem; color: var(--muted); border-left: 3px solid var(--gold); line-height: 1.35; }
.pos-rail > summary { cursor: pointer; font-weight: 800; font-family: var(--font-brand); font-size: .95rem; list-style: none; }
.pos-rail > summary::-webkit-details-marker { display: none; }
.pos-rail > summary::before { content: '▸ '; color: var(--green-2); }
.pos-rail[open] > summary::before { content: '▾ '; }
.pos-rail .tabla-pos th, .pos-rail .tabla-pos td { padding: 4px 5px; font-size: .88rem; }
.pos-rail .acum-resumen { font-size: .85rem; margin: 6px 0; }

/* Jornada del cajero (2026-10-08): carreras primero, HOY y la siguiente por correr resaltada */
.badge-hoy { display: inline-block; background: var(--gold); color: var(--green-deep); font: 800 .72em/1.2 var(--font-brand); letter-spacing: .06em; padding: 3px 8px; border-radius: 7px; vertical-align: middle; }
.jornada-item.hoy { border-color: var(--gold); box-shadow: inset 4px 0 0 var(--gold); }
.lista-cajero { gap: 8px; }
.carrera-item.cj { padding: 10px 14px; }
.cj-num { flex: none; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; font: 800 1.35rem var(--font-display); background: var(--bg); border: 1px solid var(--line); color: var(--ink); }
.carrera-item.cj .title { font-size: 1.05rem; font-weight: 700; }
.cj-hora { font-size: .82rem; font-weight: 700; color: var(--muted); background: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 0 6px; margin-left: 4px; }
.carrera-item.cj.corrida { opacity: .72; }
.carrera-item.cj.proxima { border: 2px solid var(--gold); background: color-mix(in srgb, var(--gold-soft) 70%, var(--card)); }
.carrera-item.cj.proxima .cj-num { background: var(--gold); color: var(--green-deep); border-color: var(--gold); }
.badge-prox { display: inline-block; background: var(--green); color: #fff; font: 800 .7rem/1.3 var(--font-body); letter-spacing: .05em; padding: 2px 7px; border-radius: 6px; margin-left: 6px; vertical-align: middle; }
:root[data-tv='dark'] .carrera-item.cj.proxima { background: #2A2410; }

/* Cabecera de la captura en UN renglon (2026-10-08): bloque amarillo Grande, azul Pequeña, rojo Bolivariana */
.head-uno { padding-top: 5px; padding-bottom: 5px; align-items: stretch; color: var(--muted); font: 700 clamp(.66rem, .75vw, .9rem)/1.15 var(--font-body); text-transform: uppercase; letter-spacing: .02em; }
.head-uno > div { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; white-space: nowrap; overflow: hidden; }
.head-uno .hu { border-radius: 8px; padding: 4px 6px; }
.head-uno .hu b { font: 800 clamp(.82rem, .98vw, 1.15rem)/1.1 var(--font-brand); letter-spacing: .03em; }
.head-uno .hu small { font-size: .85em; font-weight: 700; opacity: .85; text-transform: lowercase; overflow: hidden; text-overflow: ellipsis; }
.head-uno .hu.g { background: var(--sg-bg); color: var(--sg-ink); }
.head-uno .hu.p { background: var(--sp-bg); color: #fff; }
.head-uno .hu.b { background: var(--sb-bg); color: #fff; }
.head-uno.boli .hu-cab { justify-content: space-between; padding-left: 8px; }
.head-uno .auto-p { font: 700 .72rem var(--font-body); text-transform: none; cursor: pointer; user-select: none; display: inline-flex; align-items: center; gap: 3px; margin: 0 0 0 4px; opacity: .95; }
.head-uno .auto-p input { width: auto; margin: 0; accent-color: #fff; }
.head-uno .copy-all { height: 26px; }
.head-uno .c2-gap { border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
/* Fila de 45 px a 1366 (Heberg aprobo): sin cambiar el tamaño de letra, solo se quita aire muerto */
.cc-monto input.i { display: block; margin: 0 auto; padding-top: 3px; padding-bottom: 3px; }
.c2-del .icon-btn { padding: 2px 6px; }
.srow2.fila { padding-top: 2px; padding-bottom: 2px; }
/* Barra mas baja */
.carrera-bar { min-height: 48px; padding-top: 5px; padding-bottom: 5px; }
.lleg-grupo { padding: 2px 8px; }
input.lleg { height: 30px; font-size: 1.15rem; }
/* Resumen del carril: que quepa en 232-250 px */
.rail-pozos th, .rail-pozos td { padding: 4px 2px; }
.rail-pozos tbody th { font-size: .8rem; padding-left: 7px; }
.rail-pozos tr.g th { color: var(--sg); box-shadow: inset 3px 0 0 var(--sg-bg); }
.rail-pozos tr.p th { color: var(--sp); box-shadow: inset 3px 0 0 var(--sp-bg); }
.rail-pozos tr.b th { color: var(--sb); box-shadow: inset 3px 0 0 var(--sb-bg); }
.rail-pozos .dc b { font-size: .95rem; }
.rail-pozos .dc small { font-size: .66rem; }
.rail-pozos td.rp-premio .dc b { font-size: 1.02rem; }
.rail-pozos tr.tot td.rp-premio .dc b { font-size: 1.12rem; }
.rail-pozos .rp-bono { font-size: .64rem; }
.col-right { overflow-x: hidden; }
/* 14 caballos de 45 px a la vista en 1366x768 */
.container.wide { padding-top: 2px; }
.head-uno { padding-top: 4px; padding-bottom: 4px; }
.carrera-bar .btn-sm { padding-top: 6px; padding-bottom: 6px; }
.btn-guardar { padding: 6px 14px; }
/* retoques 2026-10-08 */
.head-uno .hu.p .auto-p, .head-uno .hu.b .auto-p { color: #fff; opacity: 1; }
:root[data-tv='dark'] .carrera-bar .btn-light, :root[data-tv='dark'] .mas-menu > summary { background: var(--card); color: var(--ink); border-color: var(--line); }
.carrera-item.cj.corrida { padding-top: 5px; padding-bottom: 5px; }
.carrera-item.cj.corrida .cj-num { width: 34px; height: 34px; font-size: 1.05rem; }
.carrera-item.cj.corrida .title { font-size: .95rem; }

/* ===================== 2026-10-08 REDISEÑO COBROS / RESERVAS ===================== */
/* Avisos por ENCIMA de Cobros y de la barra (antes z-index 50: dentro de Cobros no se veian) */
.toast { z-index: 9500; }
html:has(.carrera-bar) .toast { bottom: calc(var(--bar-h) + 12px); }
/* Deshacer (8 s) */
.cb-deshacer { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(var(--bar-h, 0px) + 70px); z-index: 9600; display: flex; align-items: center; gap: 12px; background: #192620; color: #fff; border: 2px solid var(--gold); border-radius: 12px; padding: 8px 10px 8px 16px; box-shadow: 0 10px 28px rgba(0,0,0,.35); font-weight: 600; max-width: calc(100vw - 24px); }
.cb-deshacer .btn-light { background: var(--gold); color: var(--green-deep); border-color: var(--gold); font-weight: 800; }
.cb-deshacer b { display: inline-block; min-width: 1.2em; text-align: center; }
/* Por persona: la persona de esta carrera, la primera (Enter) resaltada, trofeo */
.cb-aqui { font-weight: 400; margin-top: 1px; }
.cb-row.primero td { background: color-mix(in srgb, var(--gold-soft) 85%, transparent); }
.cb-row.primero .cb-nombre::after { content: '  ⏎ Enter'; font: 700 .7rem var(--font-body); color: var(--amber); }
.cb-trofeo { cursor: help; }
.cb-link { background: none; border: 0; padding: 0; color: inherit; font: inherit; font-weight: 800; cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.cb-link:hover { background: none; color: var(--green-2); }
.cb-tools input#cbFiltro { width: min(380px, 100%); font-size: 1.1rem; font-weight: 700; text-transform: uppercase; }
.cb-tools input#cbFiltro::placeholder { text-transform: none; font-weight: 400; }
/* Metodos con su letra */
.cb-metodos { grid-template-columns: repeat(4, 1fr); }
.cb-metodos button kbd { font: 700 .66rem/1.3 var(--font-body); background: rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.14); border-bottom-width: 2px; border-radius: 4px; padding: 0 4px; margin-left: 2px; }
@media (max-width: 640px) { .cb-metodos { grid-template-columns: 1fr 1fr; } }
.sol-met { grid-template-columns: repeat(2, 1fr); }
/* Casillas por caballo en Cobrar */
.cb-chks { display: flex; flex-direction: column; gap: 4px; max-height: 210px; overflow-y: auto; }
.cb-chk { display: flex; align-items: center; gap: 8px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; font-weight: 600; }
.cb-chk input { width: 18px; height: 18px; accent-color: var(--green); flex: none; }
.cb-chk span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-chk.on { border-color: var(--green-2); background: var(--green-soft); }
/* Caja / arqueo */
.cb-caja-sec { grid-column: 1 / -1; }
.cb-caja tr.gaveta td { font-weight: 700; }
.cb-arq { width: 110px; padding: 4px 6px; text-align: right; font-weight: 700; }
.cb-arq-dif { display: inline-block; min-width: 110px; text-align: left; font-size: .85rem; }
.cb-arq-dif .ok { color: var(--green); }
.cb-arq-dif .sobra { color: var(--amber); }
/* Reservas: tarjeta flotante (no tapa la captura) */
.sol-flota { position: fixed; right: 12px; bottom: calc(var(--bar-h, 0px) + 12px); z-index: 205; width: min(480px, calc(100vw - 24px)); max-height: min(62vh, 560px); overflow-y: auto; background: var(--card); border: 2px solid var(--gold); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 10px 12px 12px; }
html:not(:has(.carrera-bar)) .sol-flota { bottom: 14px; }
.sol-flota-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; font-size: 1rem; position: sticky; top: -10px; background: var(--card); padding-top: 2px; z-index: 1; }
.sol-flota .sol-item { grid-template-columns: 1fr; }
.sol-casilla { display: inline-block; margin-left: 4px; font-weight: 700; color: var(--muted); }
.sol-casilla.ok { color: var(--green); }
.sol-casilla.mal { color: var(--red); }
.cb-field .cb-chks label.cb-chk { display: flex; text-transform: none; letter-spacing: normal; font-size: .92rem; color: var(--ink); margin: 0; }
.cb-chk b { margin-left: auto; white-space: nowrap; padding-left: 8px; }

/* ===================== 2026-10-08 REDISEÑO TV (publico 30+ a 5-8 m) =====================
   Tabla: solo $ (sin Bs por fila), letra ~55 px con 14 caballos en 1080p, numero en pastilla blanca, cantando con
   marco dorado de 6 px en TODA la fila, ganador verde solido + 2°/3°, CASA azul/rojo mas oscuros (>= 7:1).
   Pie de ~11 % (antes 28 %): carrera + premios + top 5. F2 = banda de premios encima de la tabla. */
.tv-v2 .tv-main.compacto .tv-tabla td { line-height: 1.05; }
.tv-v2 .tv-tabla td.n { padding: 0 4px; }
.tv-num { display: inline-block; min-width: 1.5em; padding: .04em .22em; border-radius: .32em; background: #fff; color: #0B1A13; font: 900 calc(var(--tv-fs) * .78)/1.12 var(--font-display); text-align: center; }
.tv-v2 .tv-tabla td.cab { position: relative; font-weight: 800; }
.tv-v2 .tv-tabla td.m b { font-weight: 900; }
/* CANTANDO: marco dorado de 6 px en toda la fila (se declara despues de .disp para ganarle) + etiqueta; las demas filas un poco apagadas */
.tv-v2 .tv-tabla tr.foco { animation: none; box-shadow: none; }
.tv-v2 .tv-tabla tr.foco td { box-shadow: inset 0 6px 0 #FFD23F, inset 0 -6px 0 #FFD23F !important; }
.tv-v2 .tv-tabla tr.foco td:first-child { box-shadow: inset 6px 0 0 #FFD23F, inset 0 6px 0 #FFD23F, inset 0 -6px 0 #FFD23F !important; }
.tv-v2 .tv-tabla tr.foco td:last-child { box-shadow: inset -6px 0 0 #FFD23F, inset 0 6px 0 #FFD23F, inset 0 -6px 0 #FFD23F !important; }
.tv-v2 .tv-tabla tr.foco td:not(.disp) { background: color-mix(in srgb, #FFD23F 16%, transparent) !important; }
.tv-v2 .tv-tabla.hay-foco tbody tr:not(.foco) { opacity: .72; }
.tv-canta { position: absolute; left: 8px; top: 7px; z-index: 1; font: 900 max(11px, calc(var(--tv-fs) * .27))/1 var(--font-body); background: #FFD23F; color: #1A1400; padding: 3px 7px; border-radius: 6px; letter-spacing: .05em; }
/* Ganador: fila VERDE solida; 2° y 3° con su pastilla */
:root .tv-v2 .tv-tabla tr.win td, :root .tv-v2 .tv-tabla tr.win td.disp { background: #15803D !important; color: #fff !important; box-shadow: none; }
:root .tv-v2 .tv-tabla tr.win td *, :root .tv-v2 .tv-tabla tr.win td.m b { color: #fff !important; text-shadow: none; }
:root .tv-v2 .tv-tabla tr.win .tv-num { background: #FFD23F; color: #1A1400 !important; }
.tv-v2 .tv-tabla tr.l2 td:not(.disp) { background: rgba(192, 199, 206, .14) !important; }
.tv-v2 .tv-tabla tr.l3 td:not(.disp) { background: rgba(205, 127, 50, .14) !important; }
.tv-lug { display: inline-block; margin-left: .25em; padding: 0 .28em; border-radius: .3em; font: 900 calc(var(--tv-fs) * .55)/1.25 var(--font-brand); vertical-align: .12em; color: #1A1400 !important; }
.tv-lug.l1 { background: #FFD23F; }
.tv-lug.l2 { background: #C0C7CE; }
.tv-lug.l3 { background: #CD7F32; }
/* Retirado: apagado */
.tv-v2 .tv-tabla tr.ret td { opacity: .35; }
.tv-v2 .tv-tabla tr.ret td.cab { font-style: italic; letter-spacing: .06em; }
/* CASA disponible: azul y rojo mas oscuros (letra blanca >= 7:1) */
.tv-v2 .tv-tabla td.p.disp { background: linear-gradient(180deg, #1565d8, #0d47a1) !important; }
.tv-v2 .tv-tabla td.b.disp { background: linear-gradient(180deg, #c62828, #8e1b1b) !important; }
/* Pie: carrera + fichas de PREMIO + top 5 */
.tv-pie { flex: 0 0 auto; display: grid; grid-template-columns: auto minmax(0, 1.55fr) minmax(0, 1fr); gap: 12px; align-items: stretch; height: clamp(96px, 11.5vh, 160px); }
.tv-pie.n3 { grid-template-columns: auto minmax(0, 1.9fr) minmax(0, 1fr); }
.tv-pie-car { background: var(--gold); color: #0B1A13; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 clamp(10px, 1.2vw, 22px); font-family: var(--font-brand); }
.tv-pie-car small { font-size: clamp(.75rem, 1.4vh, 1.3rem); font-weight: 800; letter-spacing: .12em; }
.tv-pie-car b { font-size: clamp(2.2rem, 6vh, 5rem); line-height: .95; font-weight: 900; }
.tv-pie-premios { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.tv-pie-premios.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tv-pp { border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2px 8px; min-width: 0; overflow: hidden; }
.tv-pp.g { background: linear-gradient(180deg, #FFD23F, #C9A227); color: #1A1400; }
.tv-pp.p { background: linear-gradient(180deg, #1565d8, #0d47a1); color: #fff; }
.tv-pp.b { background: linear-gradient(180deg, #c62828, #8e1b1b); color: #fff; }
.tv-pp .l { font: 800 clamp(.75rem, 1.5vh, 1.4rem)/1.1 var(--font-brand); letter-spacing: .07em; opacity: .92; white-space: nowrap; }
.tv-pp .v { font: 900 clamp(2rem, 4.6vh, 4.4rem)/1 var(--font-brand); white-space: nowrap; }
.tv-pp small { font: 700 clamp(.75rem, 1.45vh, 1.3rem)/1.15 var(--font-body); opacity: .95; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.tv-pp .gano { font-weight: 900; }
.tv-pie-pts { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px; overflow: hidden; }
.tv-pie-pts .t { font: 800 clamp(.85rem, 1.8vh, 1.6rem)/1.15 var(--font-brand); color: var(--gold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-pie-pts .t .acum { color: #5FD6A0; font-size: .9em; }
.tv-pie-pts .l { display: flex; flex-wrap: wrap; gap: 0 clamp(10px, 1vw, 22px); font: 700 clamp(1rem, 2.6vh, 2.3rem)/1.2 var(--font-display); }
.tv-pie-pts .l span { white-space: nowrap; }
.tv-pie-pts .l b { color: #5FD6A0; }
/* Banda del Resumen (F2 en la taquilla): premios en grande encima de la tabla */
.tv-banda { flex: 0 0 auto; display: grid; grid-template-columns: auto repeat(2, minmax(0, 1fr)); gap: 12px; height: clamp(150px, 22vh, 300px); }
.tv-banda.n3 { grid-template-columns: auto repeat(3, minmax(0, 1fr)); }
.tv-banda .tv-pp .v { font-size: clamp(3rem, 9.5vh, 9rem); }
.tv-banda .tv-pp .l { font-size: clamp(1rem, 2.4vh, 2.2rem); }
.tv-banda .tv-pp small { font-size: clamp(.9rem, 2.1vh, 1.9rem); }
.tv-banda .tv-pie-car b { font-size: clamp(3rem, 9vh, 8rem); }
.tv-banda .tv-pie-car small { font-size: clamp(.9rem, 2vh, 1.7rem); }
/* Entre carreras: sin cabecera, letras mas grandes, CASA igual en todas las columnas */
.tv-v2 .tv-entre { gap: 12px; }
.tv-v2 .tv-rt h3.ec { font-size: clamp(1.1rem, 2.7vh, 2.4rem); padding: 4px 8px; }
.tv-v2 .tv-rt h3.ec small b { color: var(--gold); }
.tv-casa-u { color: #B7C4BC !important; font-family: var(--font-body); font-weight: 800; font-size: .7em; letter-spacing: .08em; }
.tv-v2 .tv-entre .tv-pos-r { font-size: clamp(1.2rem, 3.4vh, 2.8rem); line-height: 1.35; }
.tv-v2 .tv-acum { font-size: clamp(1.1rem, 2.9vh, 2.4rem); }
.tv-v2 .tv-next-r { font-size: clamp(1.1rem, 3vh, 2.5rem); }
.tv-next-r.ret { opacity: .38; font-style: italic; }
/* etiqueta CANTANDO a la izquierda, centrada en alto; el nombre se corre (no se tapan letras) */
.tv-v2 .tv-tabla tr.foco td.cab { padding-left: calc(var(--tv-fs) * 2.25); }
.tv-canta { top: 50%; transform: translateY(-50%); left: 6px; }
.tv-v2 .tv-tabla th { font-size: min(calc(var(--tv-fs) * .55), 30px); white-space: nowrap; }
.tv-v2 .tv-tabla.pocos th { font-size: min(calc(var(--tv-fs) * .5), 32px); }

/* ===================== 2026-10-08 REDISEÑO MOVIL (publico 30+) =====================
   Cabecera 1 renglon (44) + selector de subastas (48) arriba; barra de premio (56) + navegacion (56) abajo;
   tarjetas de 72 px (tomado) / ~120 px (disponible, con RESERVAR de 48 px del color de la subasta). Claro u oscuro segun el telefono. */
.ph2 { max-width: 640px; margin: 0 auto; padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
.ph2.con-barra { padding-bottom: calc(126px + env(safe-area-inset-bottom, 0px)); }
.ph2-fijo { position: sticky; top: 0; z-index: 20; background: var(--bg); box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.ph2-top { display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 10px; border-bottom: 2px solid var(--gold); }
.ph2-brand { flex: none; display: flex; }
.ph2-car { flex: 1 1 auto; min-width: 0; font: 800 1.35rem/1 var(--font-brand); color: var(--gold); letter-spacing: .03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph2-top .ph-live { flex: none; font-size: .8rem; }
.ph2-aa { flex: none; height: 36px; min-width: 52px; padding: 0 8px; border-radius: 10px; background: var(--card); color: var(--ink); border: 1px solid var(--line); font: 800 1rem/1 var(--font-brand); display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; }
.ph2-aa i { font-style: normal; font-size: .55rem; letter-spacing: 1px; color: var(--gold); line-height: 1; }
.ph2-seg { display: grid; gap: 6px; padding: 6px 8px; grid-template-columns: repeat(2, 1fr); }
.ph2-seg.n3 { grid-template-columns: repeat(3, 1fr); }
.ph2-seg button { height: 44px; border-radius: 12px; font: 800 1.05rem/1 var(--font-brand); background: var(--card); color: var(--ink); border: 2px solid var(--line); padding: 0 4px; }
.ph2-seg button.g.on { background: var(--sg-bg); color: var(--sg-ink); border-color: var(--sg-bg); }
.ph2-seg button.p.on { background: #1565d8; color: #fff; border-color: #1565d8; }
.ph2-seg button.b.on { background: #c62828; color: #fff; border-color: #c62828; }
.ph2-canta { display: flex; align-items: center; gap: 6px; width: 100%; border: 0; border-radius: 0; background: #FFD23F; color: #1A1400; padding: 8px 12px; font: 800 1rem/1.15 var(--font-body); text-align: left; justify-content: flex-start; }
.ph2-canta b { font-family: var(--font-display); font-size: 1.15rem; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ph2-canta span { font-weight: 700; font-size: .85rem; opacity: .8; }
.ph2-canta:hover { background: #FFD23F; }
.ph2-main { padding: 8px 10px; display: flex; flex-direction: column; gap: 8px; }
/* Tarjeta de caballo */
.ph2-card { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; grid-template-areas: "num info monto" "acc acc acc"; column-gap: 10px; row-gap: 8px; align-items: center; min-height: 72px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 8px 12px; }
.ph2-num { grid-area: num; width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center; background: #fff; color: #0B1A13; font: 900 1.45rem/1 var(--font-display); border: 1px solid var(--line); }
.ph2-info { grid-area: info; min-width: 0; }
.ph2-nom { font: 800 1.35rem/1.1 var(--font-display); color: var(--ink); overflow-wrap: anywhere; }
.ph2-comp { font: 700 1.1rem/1.2 var(--font-display); color: var(--ink); margin-top: 2px; }
.ph2-monto { grid-area: monto; text-align: right; font-variant-numeric: tabular-nums; }
.ph2-monto b { font: 900 1.7rem/1 var(--font-display); }
.ph2-card.g .ph2-monto b { color: var(--sg); } .ph2-card.p .ph2-monto b { color: var(--sp); } .ph2-card.b .ph2-monto b { color: var(--sb); }
.ph2-acc { grid-area: acc; }
.ph2-casa { font-weight: 800; }
.ph2-card.casa.g { border-color: var(--sg); background: color-mix(in srgb, var(--sg) 11%, var(--card)); } .ph2-card.casa.g .ph2-casa { color: var(--sg); }
.ph2-card.casa.p { border-color: var(--sp); background: color-mix(in srgb, var(--sp) 11%, var(--card)); } .ph2-card.casa.p .ph2-casa { color: var(--sp); }
.ph2-card.casa.b { border-color: var(--sb); background: color-mix(in srgb, var(--sb) 11%, var(--card)); } .ph2-card.casa.b .ph2-casa { color: var(--sb); }
.ph2-card.reservada { border-color: #7a5cc0; background: color-mix(in srgb, #7a5cc0 13%, var(--card)); }
.ph2-card.win { background: #15803D; border-color: #15803D; }
.ph2-card.win .ph2-nom, .ph2-card.win .ph2-comp, .ph2-card.win .ph2-monto b { color: #fff !important; }
.ph2-card.win .ph2-num { background: #FFD23F; }
.ph2-card.foco { border: 3px solid #FFD23F; box-shadow: 0 0 0 2px rgba(255, 210, 63, .25); }
.ph2-card.ret { opacity: .45; min-height: 56px; }
.ph2-card.ret .ph2-nom { font-style: italic; letter-spacing: .05em; }
.ph2-lug { display: inline-block; vertical-align: middle; font: 900 .8rem/1.3 var(--font-brand); padding: 1px 7px; border-radius: 999px; color: #1A1400; }
.ph2-lug.l1 { background: #FFD23F; } .ph2-lug.l2 { background: #C0C7CE; } .ph2-lug.l3 { background: #CD7F32; }
/* RESERVAR: ancho completo, 48 px, del color de su subasta */
.ph2-reservar { width: 100%; min-height: 48px; border-radius: 12px; font: 900 1.1rem/1.15 var(--font-brand); letter-spacing: .04em; border: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 6px 10px; }
.ph2-reservar small { font: 700 .82rem/1.2 var(--font-body); letter-spacing: 0; opacity: .95; }
.ph2-reservar.g { background: var(--sg-bg); color: var(--sg-ink); }
.ph2-reservar.p { background: #1565d8; color: #fff; }
.ph2-reservar.b { background: #c62828; color: #fff; }
.ph2-reservar b { font-weight: 900; }
.ph2-form { display: flex; flex-direction: column; gap: 8px; }
.ph2-form input { min-height: 48px; padding: 10px 12px; font: 800 1.15rem var(--font-display); text-transform: uppercase; background: #fff !important; color: #192620 !important; border: 2px solid var(--gold); border-radius: 12px; }
.ph2-form-l { display: flex; justify-content: space-between; gap: 8px; }
.ph2-link { background: none; border: 0; color: var(--muted); font-weight: 700; text-decoration: underline; padding: 6px 4px; }
.ph2-link:hover { background: none; color: var(--ink); }
.ph2-form .hint { font-size: .88rem; }
/* Ficha "instalar" chica */
.ph2-inst { display: flex; align-items: center; gap: 6px; align-self: flex-start; }
.ph2-inst-b { height: 34px; padding: 0 12px; border-radius: 999px; background: var(--card); color: var(--ink); border: 1px solid var(--gold); font-weight: 700; font-size: .9rem; }
.ph2-inst-x { width: 34px; height: 34px; padding: 0; border-radius: 999px; background: transparent; color: var(--muted); border: 1px solid var(--line); }
/* Abajo: barra de premio + navegacion */
.ph2-abajo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; flex-direction: column; align-items: stretch; background: var(--bg); padding-bottom: env(safe-area-inset-bottom, 0px); box-shadow: 0 -4px 14px rgba(0,0,0,.22); }
.ph2-abajo > * { width: 100%; max-width: 640px; margin: 0 auto; }
.ph2-pozo { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; min-height: 58px; padding: 6px 12px; border: 0; border-radius: 0; text-align: left; color: var(--ink); background: var(--card); border-top: 3px solid var(--gold); }
.ph2-pozo.g { border-top-color: var(--sg-bg); } .ph2-pozo.p { border-top-color: #1565d8; } .ph2-pozo.b { border-top-color: #c62828; }
.ph2-pozo:hover { background: var(--card); }
.ph2-pozo .k { display: flex; flex-direction: column; font: 700 .7rem/1.15 var(--font-body); text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.ph2-pozo .k b { font: 800 1.15rem/1.1 var(--font-brand); color: var(--ink); text-transform: none; letter-spacing: 0; }
.ph2-pozo .k.pr b { font-size: 1.5rem; color: var(--win, #15803D); }
.ph2-pozo .k small { font: 700 .78rem/1.1 var(--font-body); color: var(--muted); text-transform: none; letter-spacing: 0; }
.ph2-pozo .mas { font: 700 .85rem var(--font-body); color: var(--gold); white-space: nowrap; }
.ph2-nav { display: grid; grid-template-columns: repeat(3, 1fr); height: 60px; border-top: 1px solid var(--line); background: var(--bg); }
.ph2-nav button { background: transparent; border: 0; border-radius: 0; color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font: 700 .85rem var(--font-body); padding: 0; }
.ph2-nav button span { font-size: 1.35rem; line-height: 1; }
.ph2-nav button.on { color: var(--ink); box-shadow: inset 0 3px 0 var(--gold); }
.ph2-nav button:hover { background: transparent; }
/* Hoja de premios (Resumen) */
.ph2-hoja-fondo { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.55); }
.ph2-hoja { position: fixed; left: 0; right: 0; bottom: 0; z-index: 41; max-width: 640px; margin: 0 auto; max-height: 86vh; overflow-y: auto; background: var(--bg); border-radius: 18px 18px 0 0; padding: 10px 12px calc(16px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; gap: 10px; box-shadow: 0 -10px 30px rgba(0,0,0,.4); }
.ph2-hoja-h { display: flex; align-items: center; justify-content: space-between; font: 800 1.15rem var(--font-brand); }
.ph2-x { width: 44px; height: 44px; padding: 0; border-radius: 12px; background: var(--card); color: var(--ink); border: 1px solid var(--line); font-size: 1.1rem; }
.ph2-pr { border-radius: 14px; padding: 10px 14px; text-align: center; }
.ph2-pr.g { background: linear-gradient(180deg, #FFD23F, #C9A227); color: #1A1400; }
.ph2-pr.p { background: linear-gradient(180deg, #1565d8, #0d47a1); color: #fff; }
.ph2-pr.b { background: linear-gradient(180deg, #c62828, #8e1b1b); color: #fff; }
.ph2-pr .t { font: 800 .95rem var(--font-brand); letter-spacing: .05em; }
.ph2-pr .v { font: 900 2.4rem/1.05 var(--font-brand); }
.ph2-pr .bs { font: 700 .9rem var(--font-body); opacity: .95; }
.ph2-pr .sub { font: 600 .85rem var(--font-body); opacity: .9; margin-top: 2px; }
/* Tema CLARO del telefono: colores fijos que eran para fondo oscuro */
:root[data-tv='light'] .ph-res { color: #5b3ea8; }
:root[data-tv='light'] .pub-carrera .pc-premio { color: var(--green); }
:root[data-tv='light'] .ph2-fijo, :root[data-tv='light'] .ph2-abajo { box-shadow: 0 2px 10px rgba(10, 53, 39, .12); }
:root[data-tv='light'] .ph2-num { border-color: #cfd6d2; }
:root[data-tv='light'] .ph-live.on { color: #c62828; }
/* movil: mas caballos a la vista */
.ph2-seg { padding: 4px 8px; }
.ph2-seg button { height: 42px; }
.ph2-reservar { flex-direction: row; flex-wrap: wrap; gap: 4px 10px; min-height: 48px; padding: 4px 10px; }
.ph2-pozo { min-height: 52px; padding: 4px 12px; }
.ph2-nav { height: 56px; }
.ph2.con-barra { padding-bottom: calc(116px + env(safe-area-inset-bottom, 0px)); }
.ph2-card { row-gap: 6px; padding: 7px 12px; }

/* 🎟 Vales de subasta de Mi Vecino (2026-10-08) */
.cb-vale-btn { background: var(--gold-soft); border-color: var(--gold); color: var(--green-deep); font-weight: 800; }
:root[data-tv='dark'] .cb-vale-btn { color: #E8C766; }
.vale-nombre { font: 800 1.3rem var(--font-display); padding: 4px 0; }
.vale-info { border: 2px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 8px 0; }
.vale-info.ok { border-color: var(--green-2); background: var(--green-soft); }
.vale-info.no { border-color: var(--red); background: var(--red-soft); }
:root[data-tv='dark'] .vale-info.no { background: #331416; }
.vale-monto { font: 900 2rem/1.1 var(--font-brand); }
.vale-monto small { font: 700 .95rem var(--font-body); color: var(--muted); margin-left: 6px; }
.vale-datos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 12px; margin: 8px 0; font-size: .9rem; }
.vale-datos span { display: block; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; }
.vale-ok { font-weight: 600; }
.vale-no { font-weight: 800; color: var(--red); }
:root[data-tv='dark'] .vale-no { color: #ff8a8f; }

/* 2026-10-10: franja clara para poner el TV en pantalla completa (desaparece sola al entrar en pantalla completa) */
.tv-fs-barra { flex: 0 0 auto; width: 100%; height: 38px; display: flex; align-items: center; justify-content: center; gap: 12px; border-radius: 10px; border: 2px solid var(--gold); background: color-mix(in srgb, var(--gold) 20%, var(--card)); color: var(--ink); font: 800 1rem var(--font-brand); letter-spacing: .06em; cursor: pointer; padding: 0 10px; }
.tv-fs-barra small { font: 600 .8rem var(--font-body); letter-spacing: 0; color: var(--muted); }
.tv-fs-barra:hover, .tv-fs-barra:focus-visible { background: var(--gold); color: #1A1400; }
.tv-fs-barra:hover small, .tv-fs-barra:focus-visible small { color: #1A1400; }
:root:fullscreen .tv-fs-barra, :root:-webkit-full-screen .tv-fs-barra { display: none; }

/* 2026-10-11 (Heber): TOTAL de cada tabla, Grande+Pequena y las 3 juntas: franja fina en el TV, tira sobre la barra en el movil y tarjeta en la hoja */
.tv-totales { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; gap: clamp(10px, 1.6vw, 36px); height: clamp(30px, 4.6vh, 64px); padding: 0 14px; border-radius: 10px; background: var(--card, #123a2b); border: 1px solid rgba(201, 162, 39, .45); font: 700 clamp(.85rem, 2.3vh, 2rem) var(--font-body); white-space: nowrap; overflow: hidden; }
.tv-totales .tt-l { font: 900 clamp(.8rem, 2vh, 1.7rem) var(--font-brand); letter-spacing: .12em; color: var(--gold); }
.tv-totales .tt b { font: 900 1.12em var(--font-brand); margin-left: .35em; }
.tv-totales .tt.gp, .tv-totales .tt.todas { padding: 0 .7em; border-radius: 8px; background: rgba(201, 162, 39, .22); }
.tv-totales .tt.todas { background: var(--gold); color: #0B1A13; }
.ph2-tot { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 12px; padding: 4px 8px; font: 700 .72rem/1.25 var(--font-body); color: var(--muted); background: var(--bg); border-top: 1px solid rgba(201, 162, 39, .35); }
.ph2-tot b { font: 800 .9rem var(--font-brand); color: var(--ink); margin-left: 3px; }
.ph2-tot .gp b, .ph2-tot .todas b { color: var(--gold); }
.ph2.con-barra { padding-bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
.ph2-tots { border-radius: 14px; padding: 8px 14px; background: var(--card); border: 2px solid var(--gold); }
.ph2-tots .t { font: 800 .95rem var(--font-brand); letter-spacing: .05em; text-align: center; margin-bottom: 4px; }
.ph2-tots .r { display: flex; justify-content: space-between; align-items: baseline; padding: 3px 0; font: 700 1rem var(--font-body); }
.ph2-tots .r b { font: 900 1.25rem var(--font-brand); }
.ph2-tots .r.suma { border-top: 1px dashed rgba(201, 162, 39, .6); margin-top: 3px; padding-top: 5px; color: var(--gold); }
/* (11-oct, 2a version) solo las sumas: letra mas grande y centrada */
.tv-totales { gap: clamp(16px, 3vw, 70px); font-size: clamp(.95rem, 2.8vh, 2.4rem); }
.tv-totales .tt.gp { background: rgba(201, 162, 39, .22); }
.tv-totales .tt { padding: .05em .8em; border-radius: 8px; }
.ph2-tot { font-size: .8rem; gap: 2px 18px; padding: 5px 8px; }
.ph2-tot b { font-size: 1.05rem; }
.ph2.con-barra { padding-bottom: calc(140px + env(safe-area-inset-bottom, 0px)); }
/* acumulado dentro de las sumas (12-oct): se dice cuanto es */
.tv-totales .tt small.acu { margin-left: .7em; font: 700 .62em var(--font-body); color: #ffd23f; opacity: .95; }
.tv-totales .tt.todas small.acu { color: #0B1A13; }
.ph2-tot small.acu { display: block; font: 700 .68rem var(--font-body); color: var(--gold); }
.ph2-tots .r small { font-size: .75rem; opacity: .85; }
/* 12-oct 2a: la cuenta completa en el TV: subasta + acumulado = total */
.tv-totales { font-size: clamp(.8rem, min(2.8vh, 1.2vw), 2.4rem); gap: clamp(10px, 1.6vw, 40px); }
.tv-totales .tt { display: inline-flex; align-items: baseline; gap: .45em; }
.tv-totales .tt em { font-style: normal; font-weight: 800; }
.tv-totales .tt i { font-style: normal; font-weight: 700; opacity: .9; }
.tv-totales .tt .tt-mas { color: #ffd23f; }
.tv-totales .tt.todas .tt-mas { color: #3a2a00; }
.tv-totales .tt b { margin-left: 0; }
.tv-totales .tt .tt-tot { font-size: 1.2em; }
.ph2-tot small.acu { white-space: normal; }
.ph2-tots .r > span { display: flex; flex-direction: column; }

/* 2026-10-12 (Heber): resultado de cada jugador (ganó / perdió hoy) e histórico de jornadas en Cobros */
.cb-res { font-weight: 800; white-space: nowrap; }
.cb-res.gana { color: var(--green, #0E7A4A); }
.cb-res.pierde { color: #B42318; }
.cb-hist { margin: 4px 0 10px; padding: 8px 12px; border-radius: 10px; background: rgba(201, 162, 39, .10); border: 1px solid rgba(201, 162, 39, .35); }
.cb-hist-t { font-size: .92rem; }
.cb-hist-d { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cb-hdia { font: 700 .8rem var(--font-body); padding: 2px 8px; border-radius: 999px; background: rgba(0, 0, 0, .06); white-space: nowrap; }
.cb-hdia.gana { background: rgba(14, 122, 74, .14); color: var(--green, #0E7A4A); }
.cb-hdia.pierde { background: rgba(180, 35, 24, .12); color: #B42318; }
/* 12-oct (2a): columnas de Cobros agrupadas: cómo le fue / dinero ya movido / falta hoy */
.cb-leyenda { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 2px 2px 8px; font-size: .82rem; color: var(--muted); }
.cb-table thead tr.cb-grupo th { font-size: .7rem; letter-spacing: .08em; color: var(--muted); border-bottom: 0; padding-bottom: 0; }
.cb-table thead th.c { text-align: center; }
.cb-table td.cb-dinero { color: var(--muted); }
.cb-sub-n { display: block; font: 600 .74rem var(--font-body); color: var(--muted); white-space: nowrap; }

/* ===== 📱 TABLET DEL COBRADOR (/cobrar) — 2026-10-12 ===== */
body.tablet-cb { background: var(--bg); }
.tb { position: fixed; inset: 0; overflow-y: auto; overflow-x: hidden; background: var(--bg); padding: 0 16px 120px; -webkit-overflow-scrolling: touch; }
.tb-head { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; background: var(--bg); border-bottom: 1px solid var(--line); margin: 0 -16px 12px; padding: 10px 16px; }
.tb-brand { display: flex; align-items: center; gap: 8px; font-family: var(--font-brand); font-size: 1.15rem; }
.tb-head .cb-jsel { font-size: 1rem; min-height: 44px; max-width: 46vw; }
.tb-head .spacer { flex: 1; }
.tb-hbtn { min-height: 44px; font-weight: 700; }
.tb-pill { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; font-weight: 700; font-size: .9rem; white-space: nowrap; }
.tb-pill.ok { background: var(--green-soft); color: var(--green); }
.tb-pill.warn { background: var(--amber-soft); color: var(--amber); }
.tb-pill.bad { background: var(--red-soft); color: var(--red); }
.tb-buscar { display: flex; gap: 8px; }
.tb-buscar input { flex: 1; min-width: 0; height: 56px; font-size: 1.3rem; font-weight: 700; padding: 0 16px; border-radius: 14px; text-transform: uppercase; }
.tb-buscar button { min-width: 56px; }
.tb-chips { display: flex; gap: 8px; overflow-x: auto; padding: 10px 0 4px; scrollbar-width: none; }
.tb-chips::-webkit-scrollbar { display: none; }
.tb-chip { flex: none; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 2px solid var(--line); background: var(--card); color: var(--ink); font-weight: 700; }
.tb-chip.on { border-color: var(--green); background: var(--green-soft); color: var(--green); }
.tb-chip.car { min-width: 44px; padding: 0 10px; }
.tb-chips-sep { align-self: center; color: var(--muted); font-size: .85rem; font-weight: 700; padding-left: 6px; flex: none; }
.tb-resumen { color: var(--muted); margin: 6px 0 10px; }
.tb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
@media (max-width: 700px) { .tb-cards { grid-template-columns: 1fr; } }
.tb-card { background: var(--card); border: 1px solid var(--line); border-left: 6px solid var(--line); border-radius: 14px; padding: 12px 14px; box-shadow: var(--shadow); cursor: pointer; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "nom btn" "sal btn" "det det"; gap: 2px 12px; align-items: center; }
.tb-card.debe { border-left-color: var(--red); }
.tb-card.paga { border-left-color: var(--gold); }
.tb-card.ok { border-left-color: var(--green-2); opacity: .8; }
.tb-nom { grid-area: nom; font-weight: 800; font-size: 1.2rem; font-family: var(--font-brand); overflow-wrap: anywhere; }
.tb-sal { grid-area: sal; font-size: 1.15rem; }
.tb-card.debe .tb-sal b { color: var(--red); }
.tb-card.paga .tb-sal b { color: var(--amber); }
.tb-det { grid-area: det; color: var(--muted); font-size: .85rem; }
.tb-go { grid-area: btn; min-height: 56px; min-width: 120px; font-size: 1.1rem; font-weight: 800; border-radius: 12px; }
/* hojas que suben desde abajo (tambien Abonar, Dividir y Vale) */
.tablet-cb .cb-modal { align-items: flex-end; padding: 0; }
.tablet-cb .cb-dialog { width: min(760px, 100%); max-height: 94vh; border-radius: 20px 20px 0 0; padding: 14px 18px calc(18px + env(safe-area-inset-bottom)); box-sizing: border-box; }
.tb-sh-head { display: flex; align-items: center; gap: 10px; position: sticky; top: -14px; background: var(--card); padding: 4px 0 8px; z-index: 2; }
.tb-sh-head h3 { flex: 1; margin: 0; font-size: 1.3rem; overflow-wrap: anywhere; }
.tb-sh-head button { min-width: 48px; min-height: 48px; font-size: 1.2rem; }
.tb-sal.big { font-size: 1.6rem; font-weight: 800; margin: 4px 0 6px; }
.tb-sal.big.debe { color: var(--red); }
.tb-sal.big.paga { color: var(--amber); }
.tb-sal.big.ok { color: var(--green); }
.tb-cuenta { margin-bottom: 6px; }
.tablet-cb .cb-metodos { grid-template-columns: repeat(4, 1fr); }
.tablet-cb .cb-metodos button { min-height: 64px; font-size: 1rem; }
@media (max-width: 700px) { .tablet-cb .cb-metodos { grid-template-columns: 1fr 1fr; } .tablet-cb .cb-math { grid-template-columns: 1fr 1fr; } }
.tablet-cb .cb-field input { height: 56px; font-size: 1.5rem; }
.tablet-cb .cb-quick button, .tablet-cb .cb-dialog .btn-light, .tablet-cb .cb-dialog .btn-sm, .tablet-cb .cb-dialog .acts button { min-height: 48px; }
.tablet-cb .cb-chk { min-height: 48px; }
.tablet-cb .cb-chk input { width: 24px; height: 24px; }
.tb-big { display: block; width: 100%; min-height: 64px; font-size: 1.35rem; font-weight: 800; border-radius: 14px; margin-top: 12px; }
.tb-acts { display: flex; gap: 10px; flex-wrap: wrap; margin: 8px 0; }
.tb-acts .tb-big { flex: 1 1 260px; margin-top: 0; width: auto; }
.tb-acts .btn-light { min-height: 64px; font-weight: 700; }
.tablet-cb .cb-dialog h4 { margin: 14px 0 6px; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.tb-cab { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); flex-wrap: wrap; }
.tb-cab-i { flex: 1 1 240px; min-width: 0; }
.tb-cab-b { display: flex; gap: 8px; }
.tb-cab-b button { min-height: 48px; min-width: 110px; font-weight: 700; }
.tb-cab .ok { color: var(--green); }
.tb-mov { padding: 6px 0; border-top: 1px dashed var(--line); }
.tb-recibo { text-align: center; }
.tb-ok { font-size: 3rem; line-height: 1.1; }
.tb-recibo h3 { font-size: 1.6rem; }
.tb-ahora { font-size: 1.2rem; margin: 10px 0 4px; }
.tb-rec-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.tb-rec-acts .btn-light { min-height: 56px; font-size: 1.05rem; font-weight: 700; }
.tb-rec-acts .tb-big { grid-column: 1 / -1; margin-top: 0; }
.tb-nota { margin-top: 8px; }
/* sin conexion o datos viejos: los botones de dinero se apagan */
body.tb-viejo .tb-online { opacity: .4; pointer-events: none; filter: grayscale(1); }
/* envio seguro: guardando / no sabemos / no se guardo */
.cb-envio { margin: 10px 0 0; }
.cb-envio.info { background: var(--blue-soft); color: var(--blue); border-radius: 8px; padding: 9px 12px; font-weight: 600; }
.cb-pend-box { position: fixed; left: 50%; transform: translateX(-50%); top: 10px; z-index: 9700; width: min(760px, calc(100vw - 24px)); display: flex; flex-direction: column; gap: 6px; }
.cb-pend-it { background: #FFF4E5; color: #6B3E00; border: 2px solid #E8A33A; border-radius: 12px; padding: 10px 12px; box-shadow: 0 10px 28px rgba(0,0,0,.25); display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cb-pend-it > span:first-child { flex: 1 1 260px; }
.cb-pend-b { display: flex; gap: 6px; }
.cb-pend-b button { min-height: 40px; }
:root[data-tv='dark'] .cb-pend-it { background: #3A2A10; color: #F5D9A8; }
/* dividir: nombre nuevo o parecido + vista previa del servidor */
.cb-pn-hint { font-size: .85rem; margin: -2px 0 6px; }
.cb-pn-hint:empty { display: none; }
.cb-nuevo { color: var(--amber); font-weight: 600; }
.cb-prev { background: var(--card-2, rgba(0,0,0,.04)); border-radius: 10px; padding: 8px 10px; margin-top: 8px; }
.cb-prev-t { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); font-weight: 700; margin-bottom: 4px; }
.cb-imp { padding: 2px 0; }
.tablet-cb .cb-parte { grid-template-columns: 1fr 130px 48px; }
.tablet-cb .cb-parte input { height: 52px; font-size: 1.2rem; }
/* 🔒 pantalla de bloqueo con PIN (tablet del cobrador) */
.pin-box { position: fixed; inset: 0; z-index: 9800; background: var(--green-deep); display: flex; align-items: center; justify-content: center; padding: 16px; overflow-y: auto; }
.pin-card { background: var(--card); color: var(--ink); border-radius: 22px; padding: 22px 20px; width: min(380px, 100%); text-align: center; box-shadow: var(--shadow-lg); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pin-card h2 { margin: 6px 0 0; font-family: var(--font-brand); }
.pin-user { font-weight: 800; color: var(--green); font-size: 1.1rem; }
.pin-dots { display: flex; gap: 12px; margin: 10px 0 4px; }
.pin-dots span { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--green); }
.pin-dots span.on { background: var(--green); }
.pin-msg { min-height: 1.4em; color: var(--muted); font-weight: 600; }
.pin-msg.err { color: var(--red); }
.pin-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: 100%; margin-top: 6px; }
.pin-pad button { min-height: 68px; font-size: 1.6rem; font-weight: 800; border-radius: 16px; background: var(--bg); color: var(--ink); border: 2px solid var(--line); }
.pin-pad button.ok { background: var(--green); color: #fff; border-color: var(--green); font-size: 1.3rem; }
.pin-otro { margin-top: 10px; min-height: 44px; }
.tb-aviso-hoy { background: var(--gold-soft); color: var(--green-deep); border: 2px solid var(--gold); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; font-weight: 600; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tb-aviso-hoy button { min-height: 44px; font-weight: 800; }
/* 📴 sin conexion: lo guardado en la tablet */
.tb-cola-chip { border: 0; cursor: pointer; margin-left: 6px; }
.tb-sinsubir { grid-column: 1 / -1; color: var(--amber); font-weight: 700; font-size: .9rem; }
.tb-encola { background: var(--amber-soft); color: var(--amber); border-radius: 10px; padding: 8px 10px; margin: 6px 0; }
.tb-subido { color: var(--green); font-weight: 700; margin: 6px 0; }
.tb-cola-it { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--line); }
.tb-cola-it > div:first-child { flex: 1 1 260px; min-width: 0; }
.tb-cola-it.revisar { background: var(--red-soft); border-radius: 10px; padding: 10px; }
.tb-cola-b { display: flex; gap: 8px; }
.tb-cola-b button { min-height: 48px; }
/* 📱 tablet: en pantallas tactiles el "hover" se queda pegado despues de tocar; los chips NO cambian de color por eso
   (antes una carrera desmarcada seguia verde y parecia elegida). Verde = elegido, blanco = no. */
.tb-chip:hover, .tb-chip:focus { background: var(--card); color: var(--ink); }
.tb-chip.on, .tb-chip.on:hover, .tb-chip.on:focus { background: var(--green-soft); border-color: var(--green); color: var(--green); }
.tb-chip.car.on, .tb-chip.car.on:hover, .tb-chip.car.on:focus { background: var(--green); border-color: var(--green); color: #fff; }
.tb-viendo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0 2px; font-weight: 700; color: var(--muted); }
.tb-viendo.car { color: var(--green-deep); background: var(--green-soft); border-radius: 10px; padding: 6px 10px; }
.tb-viendo button { min-height: 40px; }
@media (hover: none) { .tablet-cb .btn-light:hover { background: #fff; } }
/* 👑 TITULAR / 🤝 SOCIO (divisiones, 12-oct): morado = socio, en todas las pantallas */
.cb-tag { display: inline-block; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 1px 8px; margin-left: 4px; vertical-align: middle; white-space: nowrap; background: var(--violet-soft); color: var(--violet); }
.cb-tag.div { border: 1px dashed var(--violet); }
.cb-tl { margin-top: 4px; font-size: .88rem; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; white-space: normal; }
.cb-soc, .cb-soc b { color: var(--violet); }
.cb-tit { margin-right: -2px; }
.cb-cc-in:has(.cb-cc-soc) { flex-wrap: wrap; }
.cb-cc-soc { flex-basis: 100%; margin-top: 2px; padding-top: 4px; border-top: 1px dashed color-mix(in srgb, var(--violet) 40%, transparent); font-size: .85rem; line-height: 1.8; white-space: normal; }
.cb-cc-soc .cb-link { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; }
.tb-cab.socio { border-left: 4px solid var(--violet); padding-left: 10px; }
.cb-socio-txt, .tb-socio-txt { background: var(--violet-soft); color: var(--violet); border-radius: 8px; padding: 6px 10px; margin: 6px 0; font-weight: 600; font-size: .9rem; }
.cb-fila-socio td { background: color-mix(in srgb, var(--violet-soft) 45%, transparent); }
.tb-ay { padding: 10px 0; border-top: 1px solid var(--line); }
.tb-ay b { font-size: 1.05rem; }
/* captura de la taquilla: distintivo del socio ARRIBA del campo del comprador (no cambia anchos de columnas) */
.cc-comp { position: relative; }
.cap-socios { position: absolute; top: -8px; right: 6px; z-index: 3; line-height: 1; pointer-events: auto; }
.cap-socios:empty { display: none; }
.cap-socio { display: inline-block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: var(--violet); color: #fff; font: 700 .64rem/1.55 var(--font-body); border-radius: 999px; padding: 0 7px; cursor: help; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
/* 💼 caja y cuadre (13-oct) */
.cb-caja-h td { background: var(--green-soft); padding: 8px 10px; }
.cb-caja-h .btn-sm { margin-left: 8px; }
.cb-caja-u + .cb-caja-u { border-top: 8px solid transparent; }
.cb-fondo-it { white-space: nowrap; }
.cb-arq-dif .sobra { color: var(--amber); }
#cbCajaAviso:empty { display: none; }
.tablet-cb .cb-caja .cb-arq { width: 150px; height: 48px; font-size: 1.1rem; }
.tb-bolsas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin: 6px 0 10px; }
.tb-bolsa { background: var(--card-2, rgba(0,0,0,.04)); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; }
.tb-bolsa.neg { border-color: var(--red); background: var(--red-soft); }
.tb-bolsa-t { font-weight: 800; }
.tb-bolsa-n { font-size: 1.7rem; font-weight: 800; font-family: var(--font-brand); margin: 2px 0; }
.tb-bolsa.neg .tb-bolsa-n { color: var(--red); }
.tb-bolsa-c { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.tb-bolsa-c .cb-arq { flex: 1 1 140px; min-width: 120px; height: 52px; font-size: 1.2rem; }
/* 🎫 combinar metodos, vuelto y tickets (13-oct) */
.cb-comb { border: 2px dashed var(--violet); border-radius: 12px; padding: 10px; margin: 10px 0; background: color-mix(in srgb, var(--violet-soft) 40%, transparent); }
.cb-comb-t { font-weight: 800; color: var(--violet); margin-bottom: 6px; }
.cb-lin { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 8px; margin-bottom: 8px; }
.cb-lin.vuelto { border-color: var(--amber); background: var(--amber-soft); }
.cb-lin-top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cb-lin-top select { flex: 1 1 180px; min-width: 0; font-size: 1rem; font-weight: 700; padding: 8px; }
.cb-vuelto { display: flex; align-items: center; gap: 4px; margin: 0; white-space: nowrap; font-weight: 700; }
.cb-vuelto input { width: 20px; height: 20px; }
.cb-lin-in { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.cb-lin-in input { flex: 1 1 140px; min-width: 0; padding: 8px 10px; font-size: 1.15rem; font-weight: 700; }
.cb-tkpick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cb-tk { background: var(--card); color: var(--ink); border: 2px solid var(--line); border-radius: 10px; padding: 8px 10px; font-weight: 600; min-height: 44px; }
.cb-tk.on { border-color: var(--violet); background: var(--violet-soft); color: var(--violet); }
.cb-comb-acts { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0; }
.cb-comb-suma { margin-top: 6px; font-weight: 600; }
.cb-comb-suma .ok { color: var(--green); }
.tb-comb { margin-top: 8px; min-height: 44px; }
.cb-tkgrupo { margin: 8px 0; }
.cb-tkrow { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding: 6px 0; border-top: 1px dashed var(--line); }
.tb-lineas { text-align: left; background: var(--card-2, rgba(0,0,0,.04)); border-radius: 10px; padding: 8px 10px; margin: 8px 0; }
.tablet-cb .cb-lin select, .tablet-cb .cb-lin-in input { min-height: 48px; }
.tablet-cb .cb-tkrow button { min-height: 44px; }
.cb-repetir { display: block; width: 100%; text-align: left; background: var(--violet-soft); color: var(--violet); border: 2px solid var(--violet); border-radius: 10px; padding: 10px 12px; margin: 6px 0 10px; font-weight: 600; white-space: normal; min-height: 48px; }
.cb-repetir:hover { background: var(--violet-soft); }
/* 👑 titular / 🤝 socio: la tarjeta cambia de color segun el papel (13-oct) */
.tb-rol { display: inline-block; font: 800 .62rem/1.5 var(--font-body); letter-spacing: .04em; border-radius: 999px; padding: 0 8px; margin-left: 4px; vertical-align: middle; white-space: nowrap; }
.tb-rol.tit { background: var(--gold-soft); color: var(--green-deep); border: 1px solid var(--gold); }
.tb-rol.soc { background: var(--violet); color: #fff; }
.tb-card.rol-soc { background: color-mix(in srgb, var(--violet-soft) 70%, var(--card)); border-top: 3px solid var(--violet); }
.tb-card.rol-soc .tb-nom { color: var(--violet); }
.tb-card.rol-mix { background: linear-gradient(135deg, var(--card) 55%, color-mix(in srgb, var(--violet-soft) 80%, var(--card))); border-top: 3px solid var(--gold); }
.tb-card.rol-tit { border-top: 3px solid var(--gold); }
.cb-row.rol-soc td { background: color-mix(in srgb, var(--violet-soft) 55%, transparent); }
.cb-row.rol-soc .cb-nombre { color: var(--violet); }
.cb-comb-t { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.cb-comb-volver { background: var(--card); color: var(--violet); border: 2px solid var(--violet); border-radius: 10px; font-weight: 800; min-height: 44px; padding: 6px 12px; }
.cb-comb-volver:hover { background: var(--violet-soft); }
/* 🏦 pagar por banco (AUTOPAGOS, 13-oct) */
.ap-boton { display: block; width: 100%; margin: 8px 0; min-height: 52px; font-size: 1.05rem; font-weight: 800; background: #123d6b; color: #fff; border: 0; border-radius: 12px; }
.ap-boton:hover { filter: brightness(1.1); }
.ap-dialog .cb-metodos button { min-height: 48px; }
.ap-tipo, .ap-via { margin: 8px 0; }
.ap-ced { display: flex; gap: 8px; }
.ap-ced select { flex: 0 0 64px; font-size: 1.1rem; font-weight: 700; }
.ap-ced input { flex: 1; }
.ap-dialog input, .ap-dialog select { min-height: 46px; font-size: 1.1rem; }
.ap-bot { border-radius: 8px; padding: 6px 10px; font-weight: 600; margin: 6px 0; display: inline-block; }
.ap-bot.ok { background: var(--green-soft); color: var(--green-deep); }
.ap-bot.no { background: var(--red-soft); color: var(--red); display: block; }
.ap-resumen { font-size: 1.2rem; margin: 6px 0 10px; }
.ap-pasos { display: flex; gap: 4px; margin: 8px 0 12px; flex-wrap: wrap; }
.ap-pasos span { flex: 1 1 80px; text-align: center; padding: 6px 4px; border-radius: 8px; background: var(--card-2, rgba(0,0,0,.05)); color: var(--muted); font-weight: 700; font-size: .85rem; }
.ap-pasos span.hecho { background: var(--green-soft); color: var(--green-deep); }
.ap-pasos span.ahora { background: #123d6b; color: #fff; animation: apLatido 1.4s ease-in-out infinite; }
@keyframes apLatido { 50% { opacity: .65; } }
@media (prefers-reduced-motion: reduce) { .ap-pasos span.ahora { animation: none; } }
.ap-ahora { font-size: 1.3rem; font-weight: 800; margin: 8px 0; }
.ap-ok { font-size: 1.3rem; color: var(--green-deep); margin: 8px 0; }
.ap-no { font-size: 1.2rem; color: var(--red); margin: 8px 0; }
.ap-img { display: block; max-width: 100%; max-height: 60vh; margin: 10px auto; border-radius: 10px; border: 1px solid var(--line); }
.ap-detener { margin-top: 8px; min-height: 46px; }
.ap-ficha { margin: 10px 0; }
.ap-fila { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding: 8px 10px; border-radius: 8px; margin: 4px 0; cursor: pointer; background: var(--card-2, rgba(0,0,0,.04)); }
.ap-fila.abierto { background: #e6eef8; border-left: 4px solid #123d6b; }
.ap-fila.ok { border-left: 4px solid var(--green); }
.ap-fila.no { border-left: 4px solid var(--red); opacity: .8; }
.cb-tag.ap { background: #e6eef8; color: #123d6b; }
.cb-tag.ap.ok { background: var(--green-soft); color: var(--green-deep); }
.cb-tag.ap.abierto { animation: apLatido 1.6s ease-in-out infinite; }
.ap-abierto td { background: #e6eef8; }
.ap-ajustes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 10px; }
tr[data-apver] { cursor: pointer; }
:root[data-tv='dark'] .ap-fila.abierto, :root[data-tv='dark'] .cb-tag.ap, :root[data-tv='dark'] .ap-abierto td { background: #1b2a3d; color: #b9d3f2; }

/* ===== 📱 TELEFONO (≤ 600 px) — /cobrar compacto: cabecera en 2 filas, boton principal siempre a la vista, formularios apretados ===== */
@media (max-width: 600px) {
  .tb { padding: 0 12px 100px; }
  .tb-head { margin: 0 -12px 8px; padding: 8px 12px; gap: 6px 8px; }
  .tb-brand b { display: none; }
  .tb-head .cb-jsel { flex: 1 1 calc(100% - 56px); min-width: 0; max-width: none; font-size: .95rem; }
  .tb-head .spacer { display: none; }
  .tb-pill { font-size: .8rem; padding: 4px 10px; }
  .tb-hbtn { flex: 1 1 0; min-width: 0; padding: 0 6px; }
  .tb-head > .tb-hbtn { order: 3; }
  .tb-lbl { display: none; }
  #tbPill { order: 2; }
  .tb-buscar input { height: 50px; font-size: 1.15rem; }
  .tb-resumen { font-size: .9rem; margin: 4px 0 8px; }
  .tb-viendo { font-size: .85rem; }
  .tb-cards { gap: 10px; }
  .tb-card { padding: 12px; }
  .tb-nom { font-size: 1.1rem; }
  .tb-go { min-height: 52px; min-width: 104px; font-size: 1rem; }
  /* hojas: casi toda la pantalla, con el boton de pagar SIEMPRE visible abajo */
  .tablet-cb .cb-dialog { max-height: 96vh; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; }
  .tb-sh-head { top: -10px; }
  .tb-sh-head h3 { font-size: 1.15rem; }
  .tb-sal.big { font-size: 1.4rem; }
  .tablet-cb .cb-dialog > .tb-big:last-child, .tablet-cb .cb-dialog > #apPagar, .tablet-cb .cb-dialog > .acts:last-child {
    position: sticky; bottom: calc(-12px - env(safe-area-inset-bottom)); z-index: 4; margin-bottom: 0; box-shadow: 0 -14px 12px 6px var(--card);
  }
  .tablet-cb .cb-dialog > .acts:last-child { background: var(--card); padding: 8px 0 4px; }
  .tb-big { min-height: 58px; font-size: 1.2rem; }
  .tablet-cb .cb-metodos button { min-height: 56px; font-size: .95rem; padding: 4px 6px; }
  .tablet-cb .cb-ncount { grid-template-columns: repeat(5, 1fr); }
  .tablet-cb .cb-ncount button { min-height: 52px; }
  .tablet-cb .cb-field input { height: 52px; font-size: 1.3rem; }
  .tablet-cb .cb-field label { font-size: .75rem; }
  .tablet-cb .cb-dialog .hint { font-size: .8rem; }
  .tb-cab { gap: 6px; }
  .tb-cab-i { flex: 1 1 100%; }
  .tb-cab-b { width: 100%; }
  .tb-cab-b button { flex: 1; }
  .tb-acts .tb-big { flex: 1 1 100%; }
  .tb-rec-acts { grid-template-columns: 1fr; }
  .tb-bolsas { grid-template-columns: 1fr; }
  .tb-bolsa-n { font-size: 1.5rem; }
  .cb-comb { padding: 8px; }
  .cb-lin-top select { flex: 1 1 100%; }
  .ap-pasos span { flex: 1 1 60px; font-size: .75rem; padding: 5px 2px; }
  .ap-resumen { font-size: 1.05rem; }
  .ap-img { max-height: 45vh; }
  .tablet-cb .cb-parte { grid-template-columns: 1fr 104px 44px; }
}
@media (max-width: 380px) {
  .tb-card { grid-template-columns: 1fr; grid-template-areas: "nom" "sal" "det" "btn"; }
  .tb-go { width: 100%; }
  .tablet-cb .cb-math { grid-template-columns: 1fr 1fr; }
}
/* 🏦 banco (el bot paga) vs pago movil / transf. (a mano) */
.cb-metodos small { font-weight: 600; opacity: .75; display: block; font-size: .72em; }
.ap-guardar-btn { margin: 8px 0; min-height: 44px; }
.ap-inline { border-top: 2px dashed #123d6b; margin-top: 10px; padding-top: 6px; }
.ap-manual { border: 2px dashed var(--line); border-radius: 12px; padding: 8px 10px; margin: 8px 0; background: var(--card-2, rgba(0,0,0,.03)); }
.ap-manual .ap-inline { border-top: 0; margin-top: 0; padding-top: 0; }
.cb-comb-suma .abono { color: var(--amber); }
/* ✏️ corregir el método de un cobro (17-oct) */
.cb-corr { margin-left: 6px; padding: 2px 8px; font-size: .82em; vertical-align: middle; }
.cb-pago-it { white-space: nowrap; }
/* 🧾 ficha clara del cliente (18-oct): JUGÓ · GANÓ · CUENTA + carrera por carrera */
.fx-ficha { margin: 6px 0 10px; }
.fx-res { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.fx-box { background: var(--card-2, rgba(0,0,0,.05)); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; }
.fx-box span { font-size: .72rem; letter-spacing: .04em; color: var(--muted, #666); font-weight: 700; }
.fx-box b { font-size: 1.15rem; }
.fx-box.debe { background: rgba(190, 40, 40, .12); } .fx-box.debe b { color: #a32020; }
.fx-box.paga { background: rgba(200, 150, 20, .16); } .fx-box.paga b { color: #8a6500; }
.fx-box.ok b { color: #1d6b3d; }
.fx-frase { margin: 8px 0 2px; font-size: 1rem; }
.fx-sub { font-size: .9rem; color: var(--muted, #555); line-height: 1.5; }
.fx-tit { font-weight: 700; margin: 6px 0 4px; }
.fx-car { list-style: none; margin: 0 0 6px; padding: 0; }
.fx-fila { display: flex; gap: 8px; align-items: baseline; padding: 6px 4px; border-bottom: 1px dashed var(--line, #ddd); }
.fx-fila .fx-c { min-width: 2.4em; }
.fx-fila .fx-d { flex: 1; }
.fx-fila.gana { background: rgba(30, 140, 70, .07); }
.fx-fila.pierde .fx-c { color: #a32020; }
@media (max-width: 640px) { .fx-box b { font-size: 1rem; } }
/* ⭐ método "lo usual" de la persona: marcado pero hay que tocarlo (18-oct) */
.cb-metodos button.sug { border-color: var(--gold, #c9a227); box-shadow: 0 0 0 2px rgba(201, 162, 39, .35); }
.cb-usual { display: block; font-weight: 600; color: #8a6500; }
.cb-metodos button[disabled] { opacity: .6; }
.cbc-parte { border: 1px solid var(--line, #ddd); border-radius: 10px; padding: 8px 10px; margin: 8px 0; }
.cbc-fila { display: flex; gap: 8px; align-items: center; }
.cbc-fila input { flex: 1; }
/* (18-oct) tickets de dias anteriores sin recoger: plegados, aparte de los de la jornada */
.cb-tkant { margin: 8px 0; padding: 6px 10px; border: 1px dashed var(--line, #cfd6cf); border-radius: 10px; opacity: .9; }
.cb-tkant > summary { cursor: pointer; font-weight: 700; }
/* (18-oct) cuenta con la banca dentro de Caja */
.cb-banca-box { margin: 10px 0; padding: 8px 10px; border: 1px solid var(--line, #cfd6cf); border-radius: 10px; background: var(--surface-2, rgba(0,0,0,.02)); }
.cb-banca-box h4 { margin: 0 0 4px; }
.cb-banca-tot { font-size: 1.05em; margin: 2px 0 6px; }
/* (20-oct) FICHA DEL CLIENTE rediseñada (3 expertos): estado y botones fijos, recibo de 3 lineas, una linea por carrera desplegable */
.fx2-fijo { position: sticky; top: 40px; z-index: 3; background: var(--card); padding: 4px 0; margin: 4px 0; }
.fx2-rec { background: var(--card-2, rgba(0,0,0,.05)); border-radius: 12px; padding: 10px 12px; margin: 6px 0 12px; }
.fx2-l1 { display: flex; justify-content: space-between; gap: 10px; font-size: 1.05rem; }
.fx2-l1 b { font-size: 1.25rem; }
.fx2-l2 { margin-top: 5px; line-height: 1.35; }
.fx2-ult { margin-top: 8px; padding-top: 6px; border-top: 1px dashed var(--line, #cfd6cf); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.fx2-tit { font-weight: 800; margin: 10px 0 2px; }
details.fx2-car { border-bottom: 1px solid var(--line, #e2e6e2); }
details.fx2-car > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 6px; min-height: 48px; }
details.fx2-car > summary::-webkit-details-marker { display: none; }
details.fx2-car > summary::after { content: '▾'; margin-left: auto; color: var(--muted, #777); }
details.fx2-car[open] > summary::after { content: '▴'; }
.fx2-cab { font-weight: 700; flex: 1 1 130px; overflow-wrap: anywhere; }
.fx2-m { font-size: .95rem; }
.fx2-ok { font-size: 1.1rem; }
details.fx2-car.gana { background: rgba(40, 160, 80, .07); border-radius: 8px; }
.fx2-det { padding: 0 6px 10px; }
.fx2-como { margin: 2px 0 8px; font-size: .95rem; }
details.fx2-sec { margin: 10px 0; }
details.fx2-sec > summary { cursor: pointer; font-weight: 800; padding: 10px 2px; min-height: 44px; }

/* (20-oct) lista de tickets compacta: el boton va en la MISMA linea y la lista vieja viene plegada en el modo "se recoge" */
.cb-tkrow { flex-wrap: nowrap; }
.cb-tkrow > span { flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
.cb-tkrow button { flex: none; white-space: nowrap; }
.tablet-cb .cb-tkrow button { min-height: 40px; padding: 4px 10px; }
details.cb-tkold { margin: 8px 0; }
details.cb-tkold > summary { cursor: pointer; font-weight: 800; padding: 10px 2px; min-height: 44px; }

/* (20-oct) bloques de puntos y banca plegables */
details.cb-blk > summary { cursor: pointer; padding: 4px 0; line-height: 1.4; }
details.cb-blk[open] > summary { margin-bottom: 6px; }

/* (20-oct) vuelto visible al cobrar de mas */
.cb-vuelto-box { margin: 8px 0; padding: 10px 12px; border-radius: 12px; background: rgba(200, 150, 20, .14); border: 1px solid rgba(200, 150, 20, .45); }
.cb-vuelto-t { font-size: 1.1rem; margin-bottom: 4px; }

/* 20-oct: caballo DIVIDIDO ordenado: un encabezado por tabla y debajo una persona por renglon (persona · monto · estado) */
.cb-dv { display: grid; grid-template-columns: minmax(0, 1fr) max-content max-content; gap: 4px 14px; align-items: center; margin-top: 8px; font-size: .92rem; }
.cb-dv-h { grid-column: 1 / -1; margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); }
.cb-dv-h:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.cb-dv-n { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 6px; }
.cb-dv-m { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cb-dv-e { white-space: nowrap; min-width: 4.5em; }

/* 20-oct: en la ficha, la carrera con caballo DIVIDIDO (o parte de socio) se distingue con una franja violeta */
.fx2-car.dv > summary { border-left: 4px solid var(--violet); padding-left: 8px; }
.fx2-cab .cb-tag { margin-left: 4px; white-space: nowrap; }

/* 20-oct: ABONO en la hoja de cobrar/pagar: dice cuanto queda y deja pagar el resto por otra forma en un toque */
.cb-resto-box { margin: 8px 0; padding: 10px 12px; border-radius: 12px; background: rgba(40, 120, 200, .10); border: 1px solid rgba(40, 120, 200, .40); }
.cb-resto-t { margin-bottom: 4px; }

.cb-table th[data-cbord]:hover { background: rgba(0, 0, 0, .05); }
.cb-table th.ord-on { color: var(--green-deep); }

/* ===================== 📱 VISTA TÁCTIL de la captura (25-oct-2026): teléfonos y tablets, vertical y horizontal =====================
   Todo vive bajo html.tq (la pone app.js solo en pantallas táctiles o si se fuerza en el menú ⋯): la PC no cambia ni un pixel.
   Tres formatos, segun el ANCHO:
   · chico  (< 700 px, teléfono vertical): una tarjeta por caballo y la subasta se elige con pestañas Grande / Pequeña / Bolivariana
   · medio  (700-1099, tablet vertical)   : tarjetas con la Grande y la Pequeña lado a lado
   · ancho  (>= 1100 o teléfono horizontal): la cuadrícula de la PC con letra y botones de dedo */
.tq-premios, .tq-tool, .tq-acc, .tq-leg { display: none; }
html.tq { --kb: 0px; }
html.tq body { -webkit-text-size-adjust: 100%; }

/* --- franja de PREMIOS (lo que se canta) --- */
html.tq .tq-premios { display: flex; gap: 6px; padding: 6px 8px; background: var(--card); }
@media (min-width: 1000px) { html.tq:not(.tq-corto) .tq-premios { display: none; } }
.tq-pr { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4px 4px 3px; border-radius: 10px; line-height: 1.05; }
.tq-pr small { font: 700 .6rem var(--font-body); text-transform: uppercase; letter-spacing: .05em; opacity: .92; white-space: nowrap; }
.tq-pr b { font: 800 1.3rem var(--font-display); font-variant-numeric: tabular-nums; }
.tq-pr.g { background: var(--sg-bg); color: var(--sg-ink); }
.tq-pr.p { background: var(--sp-bg); color: #fff; }
.tq-pr.b { background: var(--sb-bg); color: #fff; }

/* --- barra de arriba: en pantalla chica solo monograma, inicial y botones (también jornadas y carreras) --- */
@media (max-width: 700px) {
  .topbar { padding: 6px 10px; gap: 8px; }
  .topbar .brand .brand-text { display: none; }
  .topbar .spacer { flex: 0 0 0; }
  .topcrumbs { flex: 1 1 auto; font-size: .85rem; margin-left: 2px; }
  .user-chip { font-size: 0; gap: 0; padding: 3px; }
  .user-chip .uc-ini { font-size: .82rem; }
  .topbar button.btn-sm { padding: 0; width: 38px; height: 38px; flex: none; font-size: 1rem; }
}

/* --- comunes a toda la vista táctil: dedos --- */
html.tq .srow2 input.i { min-height: 46px; padding: 4px 8px; }
html.tq .cc-comp input.i::placeholder { font-size: .95rem; }
html.tq .monto-bs { font-size: .74rem; }
html.tq .c2-del .icon-btn { min-width: 40px; min-height: 40px; }
/* el interruptor de "en casa" (la casilla 🏠): un botón grande en vez de una casilla chiquita */
html.tq .casa-chk, html.tq .casa-pill, html.tq .cc-comp.encasa .casa-pill {
  position: relative; flex: none; display: grid; place-items: center; width: 46px; height: 46px; margin: 0; padding: 0;
  border-radius: 12px; border: 2px solid var(--line); background: var(--card); font-size: 1.35rem; line-height: 1; cursor: pointer; color: inherit;
}
html.tq .casa-chk input, html.tq .casa-pill input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
html.tq .casa-chk { filter: grayscale(1); opacity: .75; }
html.tq .casa-pill, html.tq .cc-comp.encasa .casa-pill { background: var(--amber-soft); border-color: var(--amber); filter: none; opacity: 1; }
html.tq .cc-comp { gap: 6px; flex-wrap: wrap; }
html.tq .cc-comp input.i { flex: 1 1 0; width: auto; min-width: 0; }
html.tq .cc-comp .cap-socios:empty { display: none; }
html.tq .cc-comp .cap-socios { flex-basis: 100%; }
html.tq .cc-comp.encasa input.i { text-align: center; background: var(--amber-soft); border-color: color-mix(in srgb, var(--amber) 45%, transparent); }
html.tq .cc-comp.encasa input.i::placeholder { color: var(--amber); font-weight: 800; opacity: 1; letter-spacing: .06em; }
html.tq .copy-p2b { min-width: 44px; min-height: 44px; }
html.tq .sub-pie .btn-sm { min-height: 44px; padding: 8px 14px; }

/* --- barra de abajo --- */
html.tq .carrera-bar { bottom: var(--kb); }
html.tq .carrera-bar .btn-sm, html.tq .btn-guardar, html.tq .mas-menu > summary { min-height: 44px; }
html.tq input.lleg { width: 54px; height: 44px; font-size: 1.35rem; }
html.tq .lleg-grupo { padding: 3px 8px; gap: 8px; }
html.tq .mas-pop { width: min(330px, calc(100vw - 16px)); }
html.tq .mas-pop button { min-height: 46px; font-size: .95rem; }
html.tq.tq-teclea .carrera-bar { display: none; }
html.tq.tq-teclea .container.wide { padding-bottom: calc(var(--kb) + 120px); }
html.tq .toast { bottom: auto; top: calc(env(safe-area-inset-top, 0px) + 66px); transform: translateX(-50%) translateY(-260%); }
html.tq .toast.show { transform: translateX(-50%) translateY(0); }
html.tq .cb-deshacer { bottom: calc(var(--bar-h, 0px) + var(--kb) + 70px); }
/* dos renglones (teléfono y tablet vertical): arriba la llegada 1-2-3, abajo los botones */
html:is(.tq-chico, .tq-medio) .carrera-bar { flex-wrap: wrap; gap: 6px; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
html:is(.tq-chico, .tq-medio) .bar-acc { display: contents; }
html:is(.tq-chico, .tq-medio) .carrera-bar::before { content: ''; order: 3; flex: 0 0 100%; height: 0; }
html:is(.tq-chico, .tq-medio) .lleg-grupo { order: 1; flex: 0 0 auto; }
html:is(.tq-chico, .tq-medio) .bar-hint { order: 2; flex: 1 1 0; min-width: 0; font-size: .8rem; text-align: right; }
html:is(.tq-chico, .tq-medio) .carrera-bar > .btn-light:first-child { order: 4; }
html:is(.tq-chico, .tq-medio) .sol-btn { order: 5; }
html:is(.tq-chico, .tq-medio) .bar-acc > .btn-light { order: 6; }
html:is(.tq-chico, .tq-medio) .btn-guardar { order: 8; }
html:is(.tq-chico, .tq-medio) .mas-menu { order: 9; flex: 0 0 auto; }
html:is(.tq-chico, .tq-medio) .carrera-bar > .btn-light, html:is(.tq-chico, .tq-medio) .bar-acc > .btn-light, html:is(.tq-chico, .tq-medio) .btn-guardar { flex: 1 1 0; min-width: 0; padding-left: 6px; padding-right: 6px; font-size: .88rem; white-space: nowrap; justify-content: center; }
html:is(.tq-chico, .tq-medio) .btn-guardar { flex-grow: 1.5; }
html:is(.tq-chico, .tq-medio) .carrera-bar kbd { display: none; }
html:is(.tq-chico, .tq-medio) .mas-menu > summary { width: 46px; height: 46px; }
/* teléfono vertical: los botones se apilan (icono arriba, nombre abajo) */
html.tq-chico .carrera-bar > .btn-light, html.tq-chico .bar-acc > .btn-light, html.tq-chico .btn-guardar { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; height: 54px; padding: 4px 2px; line-height: 1.1; position: relative; }
html.tq-chico .bi { display: block; font-size: 1.3rem; line-height: 1; }
html.tq-chico .bl { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .01em; }
html.tq-chico .cb-count:not(:empty) { position: absolute; top: 2px; right: 4px; min-width: 18px; height: 18px; padding: 0 4px; font-size: .68rem; line-height: 18px; }
html.tq-chico .mas-menu > summary { height: 54px; width: 48px; }
/* ancho de dedos (tablet horizontal y teléfono girado): una sola fila */
html.tq-ancho .carrera-bar { gap: 6px; }
html.tq-corto .topbar { position: static; }
html.tq-corto .brand-text { display: none; }
html.tq-corto .carrera-bar { flex-wrap: nowrap; min-height: 0; padding-top: 4px; padding-bottom: 4px; }
html.tq-corto .bar-hint, html.tq-corto .tv-ctl-slot { display: none; }
html.tq-corto .carrera-bar > .btn-light:first-child { padding: 0 12px; }
html.tq-corto .tq-premios { padding-top: 3px; padding-bottom: 3px; }
html.tq-corto .tq-pr b { font-size: 1.05rem; }
html.tq-corto .srow2 input.i { min-height: 42px; }

/* --- barra de atajos sobre el teclado (iOS no trae Enter en el teclado de números) --- */
html.tq .tq-acc.on { display: flex; position: fixed; left: 0; right: 0; bottom: var(--kb); z-index: 75; gap: 8px; padding: 8px; background: var(--card); border-top: 2px solid var(--gold); box-shadow: 0 -6px 16px rgba(10, 53, 39, .16); }
.tq-acc button { flex: 1 1 0; min-width: 0; height: 50px; border-radius: 13px; font: 800 1rem var(--font-body); border: 2px solid var(--line); background: var(--card); color: var(--green); }
.tq-acc .tq-acc-casa { display: none; background: var(--amber-soft); color: var(--amber); border-color: color-mix(in srgb, var(--amber) 55%, transparent); }
html.tq .tq-acc.es-comp .tq-acc-casa { display: block; }
.tq-acc .tq-acc-sig { flex: 1.7 1 0; background: var(--green); color: #fff; border-color: var(--green); }
.tq-acc button:active { filter: brightness(.92); transform: translateY(1px); }

/* ============ FORMATO ANCHO: la cuadrícula de la PC con letra y botones de dedo ============ */
html.tq-ancho .srow2 { grid-template-columns: 42px minmax(0, 1.2fr) minmax(0, 1fr) minmax(92px, .64fr) 36px minmax(0, 1fr) minmax(92px, .64fr) 36px; gap: 6px; padding: 5px 8px; }
html.tq-ancho .srow2.boli { grid-template-columns: 42px minmax(0, 1.4fr) minmax(0, 1fr) minmax(92px, .64fr) 40px; }
html.tq-ancho .c2-nombre input { font-size: clamp(1.05rem, 2vw, 1.5rem); }
html.tq-ancho .c2-num input { font-size: clamp(1rem, 1.6vw, 1.3rem); }
html.tq-ancho .cc-comp input.i { font-size: clamp(1.05rem, 1.9vw, 1.4rem); }
html.tq-ancho .cc-monto input.i { font-size: clamp(1.15rem, 2.1vw, 1.65rem); }
html.tq-ancho .head-uno { font-size: .8rem; }
html.tq-ancho .head-uno .hu b { font-size: 1rem; }
html.tq-ancho .head-uno .auto-p { font-size: .8rem; }
html.tq-ancho .head-uno .auto-p input { width: 20px; height: 20px; }
html.tq-ancho .head-uno .copy-all, html.tq-ancho .copy1 { width: 36px; height: 36px; }

/* ============ TARJETAS (chico y medio): una por caballo ============ */
html:is(.tq-chico, .tq-medio) .container.wide { padding-left: 0; padding-right: 0; }
html:is(.tq-chico, .tq-medio) .avisos-carrera { padding: 0 8px; }
html:is(.tq-chico, .tq-medio) .card.pad0.subasta2 { background: transparent; border: 0; box-shadow: none; border-radius: 0; overflow: visible; }
html:is(.tq-chico, .tq-medio) .subasta2-head { background: var(--card); box-shadow: 0 4px 10px rgba(10, 53, 39, .12); border-bottom: 1px solid var(--line); }
html:is(.tq-chico, .tq-medio) #rows { display: flex; flex-direction: column; gap: 10px; padding: 10px 8px 4px; }
html:is(.tq-chico, .tq-medio) .srow2.fila:nth-child(n) {
  --tqc: var(--sg-bg); --tqink: var(--sg);
  display: grid; align-items: center; min-width: 0; position: relative;
  background: var(--card); border: 1px solid var(--line); border-left: 7px solid var(--tqc); border-radius: 14px; box-shadow: var(--shadow);
}
html:is(.tq-chico, .tq-medio) .srow2.fila:focus-within:nth-child(n) { background: color-mix(in srgb, var(--gold-soft) 85%, var(--card)); box-shadow: 0 0 0 2px var(--gold), var(--shadow); }
html:is(.tq-chico, .tq-medio) .srow2.fila.win:nth-child(n) { background: var(--win-soft); border-color: var(--win); border-left-color: var(--win); }
html:is(.tq-chico, .tq-medio) .srow2.fila.l2:nth-child(n) { border-left-color: #5d7286; }
html:is(.tq-chico, .tq-medio) .srow2.fila.l3:nth-child(n) { border-left-color: #8a6d3b; }
html:is(.tq-chico, .tq-medio) .c2-gap { display: none; }
html:is(.tq-chico, .tq-medio) .cc-comp.g, html:is(.tq-chico, .tq-medio) .cc-comp.p, html:is(.tq-chico, .tq-medio) .cc-comp.b { background: transparent; border: 0; padding: 0; border-radius: 0; align-self: start; }
html:is(.tq-chico, .tq-medio) .cc-monto.g, html:is(.tq-chico, .tq-medio) .cc-monto.p, html:is(.tq-chico, .tq-medio) .cc-monto.b { background: transparent; border: 0; padding: 0; border-radius: 0; align-self: start; }
html:is(.tq-chico, .tq-medio) .c2-num input { width: 44px; height: 44px; min-height: 0; padding: 0; border-radius: 50%; background: var(--bg); border: 0; font: 800 1.15rem var(--font-display); color: var(--muted); text-align: center; }
html:is(.tq-chico, .tq-medio) .srow2.fila.win .c2-num input { background: var(--win); color: #fff; }
html:is(.tq-chico, .tq-medio) .srow2.fila .c2-num::after { top: -10px; left: -14px; font-size: .7rem; padding: 1px 6px; }
html:is(.tq-chico, .tq-medio) .c2-nombre input { text-align: left; background: transparent; border: 0; padding: 0 2px; font: 800 1.25rem/1.1 var(--font-display); text-overflow: ellipsis; }
html:is(.tq-chico, .tq-medio) .cc-comp input.i { height: 52px; border: 2px solid var(--line); border-radius: 13px; background: var(--card); text-align: left; padding: 0 12px; font: 700 1.3rem var(--font-display); }
html:is(.tq-chico, .tq-medio) .cc-monto input.i { height: 52px; border: 2px solid color-mix(in srgb, var(--tqc) 70%, transparent); border-radius: 13px; background: var(--card); text-align: center; padding: 0 6px; font: 800 1.6rem var(--font-display); color: var(--tqink); }
html:is(.tq-chico, .tq-medio) .cc-monto.encasa-monto input.i { background: var(--amber-soft); }
html:is(.tq-chico, .tq-medio) .cc-comp input.i:focus, html:is(.tq-chico, .tq-medio) .cc-monto input.i:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
html:is(.tq-chico, .tq-medio) .casa-chk, html:is(.tq-chico, .tq-medio) .casa-pill, html:is(.tq-chico, .tq-medio) .cc-comp.encasa .casa-pill { width: 52px; height: 52px; border-radius: 13px; }
html:is(.tq-chico, .tq-medio) .monto-bs { font-size: .78rem; color: var(--muted); margin-top: 2px; text-align: center; }
html:is(.tq-chico, .tq-medio) .sub-pie { padding: 4px 8px 14px; }
html:is(.tq-chico, .tq-medio) .sub-pie .btn-light { width: 100%; min-height: 50px; justify-content: center; font-size: 1rem; border-style: dashed; }
html:is(.tq-chico, .tq-medio) #btnVista { display: none; }
html:is(.tq-chico, .tq-medio) .col-right .card { margin-bottom: 10px; }
.tq-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 6px 8px 8px; }
.tq-tabs.dos { grid-template-columns: 1.5fr 1fr; }
.tq-tab { border: 2px solid var(--line); background: var(--bg); color: var(--ink); font: 800 .92rem var(--font-brand); border-radius: 12px; min-height: 46px; padding: 0 4px; cursor: pointer; white-space: nowrap; }
.tq-tab.g.on { background: var(--sg-bg); border-color: var(--sg-bg); color: var(--sg-ink); }
.tq-tab.p.on { background: var(--sp-bg); border-color: var(--sp-bg); color: #fff; }
.tq-tab.b.on { background: var(--sb-bg); border-color: var(--sb-bg); color: #fff; }
html[data-tqv="p"] .tq-tool.p, html[data-tqv="gp"] .tq-tool.p, html[data-tqv="b"] .tq-tool.b { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 10px 8px; font-size: .82rem; color: var(--muted); }
.tq-tool .auto-p { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 700 .85rem var(--font-body); color: var(--ink); cursor: pointer; }
.tq-tool .auto-p input { width: 22px; height: 22px; accent-color: var(--sp-bg); margin: 0; }
.tq-tool .copy-all { width: auto; height: 38px; padding: 0 12px; font-size: .85rem; white-space: nowrap; }
html.tq .tq-tool.b .copy-all { background: var(--sb-bg); }

/* ---- chico: una subasta a la vez ---- */
html.tq-chico .carrera-3col { flex-direction: column; gap: 6px; }
html.tq-chico .col-center { width: 100%; }
html.tq-chico .col-right { position: static; max-height: none; overflow: visible; width: 100%; flex-basis: auto; padding: 0 8px; }
html.tq-chico .tq-premios { padding: 6px 8px 2px; }
html.tq-chico .srow2.fila:nth-child(n) { grid-template-columns: 44px minmax(0, 1fr) 84px 40px; grid-template-areas: "num nom bs del" "cmp cmp mon mon"; gap: 6px 8px; padding: 9px 10px 10px 10px; }
html[data-tqv="p"].tq-chico .srow2.fila:nth-child(n) { --tqc: var(--sp-bg); --tqink: var(--sp); }
html[data-tqv="b"].tq-chico .srow2.fila:nth-child(n) { --tqc: var(--sb-bg); --tqink: var(--sb); }
html.tq-chico .c2-num { grid-area: num; }
html.tq-chico .c2-nombre { grid-area: nom; }
html.tq-chico .c2-del { grid-area: del; justify-self: end; }
html.tq-chico .cc-comp { grid-area: cmp; }
html.tq-chico .cc-monto { display: contents; }
html.tq-chico .cc-monto input.i { grid-area: mon; align-self: start; width: 100%; }
html.tq-chico .monto-bs { grid-area: bs; justify-self: end; align-self: center; margin: 0; white-space: nowrap; font-size: .8rem; font-weight: 700; }
html[data-tqv="g"].tq-chico :is(.cc-comp.p, .cc-monto.p), html[data-tqv="p"].tq-chico :is(.cc-comp.g, .cc-monto.g) { display: none; }

/* ---- medio: la Grande y la Pequeña lado a lado en cada tarjeta ---- */
html.tq-medio .srow2.fila:nth-child(n) { grid-template-columns: minmax(0, 1fr) 112px 14px minmax(0, 1fr) 112px; column-gap: 8px; row-gap: 8px; padding: 10px 12px 10px 14px; }
html.tq-medio .c2-num { grid-column: 1; grid-row: 1; justify-self: start; }
html.tq-medio .c2-nombre { grid-column: 1 / 5; grid-row: 1; margin-left: 54px; }
html.tq-medio .c2-del { grid-column: 5; grid-row: 1; justify-self: end; }
html.tq-medio .cc-comp.g { grid-column: 1; grid-row: 2; }
html.tq-medio .cc-monto.g { grid-column: 2; grid-row: 2; }
html.tq-medio .cc-comp.p { grid-column: 4; grid-row: 2; }
html.tq-medio .cc-monto.p { grid-column: 5; grid-row: 2; }
html.tq-medio .cc-comp.p input.i { border-left: 5px solid var(--sp-bg); }
html.tq-medio .cc-comp.g input.i { border-left: 5px solid var(--sg-bg); }
html.tq-medio .cc-monto.p input.i { border-color: color-mix(in srgb, var(--sp-bg) 70%, transparent); color: var(--sp); }
html.tq-medio .cc-monto.g input.i { border-color: color-mix(in srgb, var(--sg-bg) 85%, transparent); color: var(--sg); }
html.tq-medio .srow2.boli.fila:nth-child(n) { --tqc: var(--sb-bg); --tqink: var(--sb); }
html.tq-medio .cc-comp.b { grid-column: 1 / 4; grid-row: 2; }
html.tq-medio .cc-monto.b { grid-column: 4 / 6; grid-row: 2; }
html.tq-medio .cc-comp.b input.i { border-left: 5px solid var(--sb-bg); }
html.tq-medio .cc-monto.b input.i { border-color: color-mix(in srgb, var(--sb-bg) 70%, transparent); color: var(--sb); }
.tq-leg { padding: 0 calc(8px + 13px) 6px calc(8px + 21px); gap: 8px; grid-template-columns: minmax(0, 1fr) 112px 14px minmax(0, 1fr) 112px; }
html.tq-medio .tq-leg { display: grid; }
.tq-leg span { font: 800 .8rem var(--font-brand); letter-spacing: .06em; text-align: center; border-radius: 8px; padding: 4px 0; }
.tq-leg .g { grid-column: 1 / 3; background: var(--sg-bg); color: var(--sg-ink); }
.tq-leg .p { grid-column: 4 / 6; background: var(--sp-bg); color: #fff; }
@media (prefers-reduced-motion: reduce) { .tq-acc button:active { transform: none; } }

/* --- retoques tras la primera ronda de capturas --- */
.topcrumbs .tc-hora { white-space: nowrap; }
html.tq-chico .topcrumbs a { opacity: 1; font-size: 1.05rem; }
html.tq-chico .topcrumbs a b { font-weight: 800; }
html.tq-medio .tq-tabs { padding-bottom: 6px; }
html.tq-medio .tq-tab { min-height: 44px; }
html.tq-medio .tq-leg { padding-bottom: 4px; }
html[data-tqv="gp"] .tq-tool.p { padding-bottom: 6px; }
html.tq-medio .tq-tool .copy-all { height: 36px; }
/* teléfono girado: la cabecera se desliza (no se pega) para dejar sitio a los caballos, y sin los rótulos chicos */
html.tq-corto .subasta2-head { position: static; }
html.tq-corto .head-uno .hu b + small { display: none; }
html.tq-corto .carrera-bar .btn-sm, html.tq-corto .btn-guardar { min-height: 44px; }

/* --- pantallas de alrededor en teléfono (jornadas, carreras, Resumen que se le enseña al cliente) --- */
@media (max-width: 700px) {
  .container > .row-between { flex-wrap: wrap; }
  .container > .row-between > span[style*="display:flex"] { flex: 1 1 100%; }
  .container > .row-between > h1 { font-size: 1.5rem; flex: 1 1 100%; }
  .container > .row-between button { min-height: 42px; }
  .rt-overlay { padding: 10px 10px 90px; }
  .rt-head { font-size: 1.05rem; align-items: flex-start; }
  .rt-grid { grid-template-columns: 1fr; }
  .rt-premios { grid-template-columns: 1fr; gap: 8px; }
  .rt-pc { padding: 8px 12px 6px; }
  .rt-pc-val { font-size: 2.1rem; margin: 2px 0; }
  .rt-table table { font-size: 1.1rem; }
  .rt-totales { padding: 6px 8px 4px; }
  .rt-pozos { font-size: .98rem; }
  .rt-pozos th { font-size: .82rem; }
  .rt-pozos th, .rt-pozos td { padding: 6px 3px; }
  .rt-pozos tr.gan td { font-size: 1.2rem; }
  .rt-pozos tr.casa td { font-size: .9rem; }
}
@media (max-width: 700px) {
  .rt-pozos { table-layout: fixed; width: 100%; }
  .rt-pozos th { font-size: .7rem; white-space: normal; line-height: 1.1; letter-spacing: 0; text-align: center; }
  .rt-pozos td:first-child { width: 21%; font-size: .85rem; white-space: normal; }
  .rt-pozos tr.gan td { font-size: 1.1rem; }
  .rt-pozos tr.gan td:first-child { font-size: .9rem; }
  .rt-pozos .dc small { font-size: .62rem; }
  .rt-pozos tr.casa td { font-size: .78rem; }
}
@media (max-width: 400px) {
  .rt-pozos th { font-size: .62rem; }
  .rt-pozos tr.gan td { font-size: 1rem; }
  .rt-pozos td:first-child { width: 19%; }
}

/* 📺 "proyectar aquí" en la vista táctil: franja con botón dorado cuando el TV lo controla OTRO equipo (siempre también en el menú ⋯) */
.tv-ctl-menu:empty { display: none; }
html.tq .tv-ctl-slot:empty { display: none; }
html:is(.tq-chico, .tq-medio) .tv-ctl-slot { order: 0; flex: 0 0 100%; display: block; }
html:is(.tq-chico, .tq-medio) .tv-ctl-chip.en-barra:not(.otro) { display: none; }
html:is(.tq-chico, .tq-medio) .tv-ctl-chip.en-barra { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 4px 6px 4px 12px; border-radius: 12px; font-size: .84rem; white-space: normal; }
html.tq .tv-ctl-chip.otro.en-barra { background: var(--gold-soft); }
html.tq .tv-ctl-chip.en-barra a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 10px; background: var(--gold); color: var(--green-deep); text-decoration: none; font-weight: 800; white-space: nowrap; }
html:is(.tq-chico, .tq-medio) .tv-ctl-chip.en-barra { font-size: 0; }
html:is(.tq-chico, .tq-medio) .tv-ctl-chip.en-barra > span { font-size: .88rem; font-weight: 700; color: var(--ink); }
html:is(.tq-chico, .tq-medio) .tv-ctl-chip.en-barra a { font-size: .92rem; }
html.tq-ancho .tv-ctl-chip.en-barra { display: inline-flex; align-items: center; gap: 6px; padding: 3px 4px 3px 10px; white-space: nowrap; }
html.tq-ancho .tv-ctl-chip.en-barra a { min-height: 34px; padding: 0 10px; font-size: .8rem; }
/* modo oscuro: que el nombre y el número del caballo no hereden la caja oscura de la tabla */
html:is(.tq-chico, .tq-medio) .srow2.fila .c2-nombre input.i { background: transparent; }
html:is(.tq-chico, .tq-medio) .srow2.fila .c2-num input.i { background: var(--bg); }
html:is(.tq-chico, .tq-medio) .srow2.fila.win .c2-num input.i { background: var(--win); color: #fff; }
/* el aviso flotante de proyección (jornada) con botón dorado, fácil de tocar */
@media (max-width: 700px) {
  .tv-ctl-chip:not(.en-barra) { display: flex; align-items: center; justify-content: space-between; gap: 8px; left: 8px; right: 8px; max-width: none; padding: 6px 6px 6px 12px; border-radius: 14px; font-size: .84rem; }
  .tv-ctl-chip:not(.en-barra).otro { background: var(--gold-soft); }
  .tv-ctl-chip:not(.en-barra) a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 10px; background: var(--gold); color: var(--green-deep); text-decoration: none; font-weight: 800; white-space: nowrap; }
}

/* ↩ Devolver por caballo retirado (25-oct): aviso en Cobros (PC y tablet) */
.cb-dev { margin-bottom: 10px; }
.cb-dev-it { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-top: 1px solid rgba(0,0,0,.08); font-weight: 500; }
.cb-dev-it:first-of-type { margin-top: 6px; }
.tb .cb-dev { margin: 8px 10px; }
.tb .cb-dev-it button { min-height: 46px; font-size: 1rem; padding: 0 16px; }

/* 📲 Pago móvil del día (Cierre y Mi caja) */
.cb-pm-res{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0 8px;font-size:15px}
.cb-pm-res b{font-size:17px}
.cb-pm tr.cb-pm-sale td{background:rgba(180,40,40,.05)}
.cb-pm td,.cb-pm th{white-space:nowrap}
.cb-pm td:nth-child(3){white-space:normal}

/* ===== 🧾 Cierre rediseñado (26-oct): franja de cifras + chips + zonas; Mi caja con botones fijos abajo ===== */
.cb-cie { display: grid; gap: 12px; }
.cb-cie-z { display: grid; gap: 10px; scroll-margin-top: 150px; }
.cb-cie-z > .cb-car, .cb-cie-z > .cb-banca-box { margin: 0; }
.cb-cie-top { position: sticky; top: -14px; z-index: 5; background: var(--bg); padding: 8px 0 6px; display: grid; gap: 8px; }
.cb-cie-strip { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.cb-cie-nav { display: flex; gap: 6px; flex-wrap: wrap; }
.cb-cie-chip { background: var(--card); color: var(--green); border: 1px solid var(--line); padding: 6px 12px; border-radius: 999px; font-size: .88rem; cursor: pointer; }
.cb-cie-chip:hover { background: var(--card-2, rgba(0,0,0,.05)); }
.cb-cie-2 { grid-template-columns: 1fr 1fr; align-items: start; }
@media (max-width: 1099px) { .cb-cie-2 { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .cb-cie-top { position: static; } .cb-cie-strip { grid-template-columns: 1fr 1fr; } .cb-kpi b { font-size: 1.25rem; } }
.cb-foot { position: sticky; bottom: calc(-12px - env(safe-area-inset-bottom)); z-index: 4; display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 12px; padding: 10px 0 4px; background: var(--card); box-shadow: 0 -12px 10px 4px var(--card); }
.cb-foot.dos { grid-template-columns: 2fr 1fr; }
.cb-foot .tb-big { margin-top: 0; }
.cb-foot .tb-big-l { min-height: 58px; font-weight: 700; }
@media (max-width: 480px) { .cb-foot.dos { grid-template-columns: 1fr; } .cb-foot .tb-big-l { min-height: 46px; } }
.tablet-cb .cb-blk > summary { min-height: 48px; padding: 6px 0; cursor: pointer; }

/* ===== 📜 MOVIMIENTOS del día (27-oct): una lista con todo + buscador. PC: tabla; tablet/teléfono: tarjetas ===== */
.cb-movs .tb-buscar input { height: 46px; font-size: 1.05rem; }
.cb-mv-chips { padding: 8px 0 6px; }
.cb-mv tr.in td:nth-child(5) b { color: var(--green-deep, var(--green)); }
.cb-mv tr.out td { background: rgba(180,40,40,.04); }
.cb-mv tr.nil td { color: var(--muted); }
.cb-mv td:nth-child(4) { max-width: 320px; }
.cb-mv-card { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); margin-bottom: 8px; }
.cb-mv-card.in { border-left: 4px solid var(--green); }
.cb-mv-card.out { border-left: 4px solid var(--red); }
.cb-mv-card.nil { border-left: 4px solid var(--line); color: var(--muted); }
.cb-mv-l { min-width: 0; flex: 1; }
.cb-mv-t { font-size: 1.02rem; overflow-wrap: anywhere; }
.cb-mv-t [data-tbpersona] { text-decoration: underline dotted; cursor: pointer; }
.cb-mv-r { text-align: right; white-space: nowrap; font-size: 1.05rem; }
.cb-mv-r b.ok { color: var(--green-deep, var(--green)); }
.tablet-cb .cb-dialog-movs { width: min(900px, 100%); max-height: 96vh; }
.tablet-cb .cb-dialog-movs .tb-chip { min-height: 40px; padding: 0 12px; font-size: .92rem; }
@media (max-width: 700px) { .cb-mv-card { padding: 8px 10px; } .cb-mv-t { font-size: .98rem; } .cb-mv-r { font-size: 1rem; } }

/* ===== 📱 COBROS DE TABLET DENTRO DE LA TAQUILLA · 📐 PANTALLA FIJA · ⌨ TECLEAR EN TABLET (28-oct-2026) ===== */
/* la pantalla del cobrador va POR ENCIMA de la barra de abajo, la de atajos y las reservas de la captura (igual que el panel de la PC: 210) */
body.tb-embebido .tb { z-index: 210; }
.tb-volver { background: var(--gold-soft, #fff3c4); border-color: var(--gold); color: var(--green-deep, #0a3527); white-space: nowrap; }
@media (max-width: 600px) { .tb-head .tb-volver { order: -1; flex: 0 0 auto; padding: 0 12px; } }
/* menu ⋯ → Pantalla: Auto / Horizontal / Vertical */
.mm-orient { display: flex; flex-direction: column; gap: 6px; padding: 8px 4px 2px; border-top: 1px solid var(--line); }
.mm-or-btns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.mas-pop .or-btn { min-height: 46px; padding: 0 4px; font-size: .8rem; font-weight: 800; white-space: nowrap; border: 2px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); }
.mas-pop .or-btn.on { background: var(--green); border-color: var(--green); color: #fff; }
/* tablet horizontal MIENTRAS SE TECLEA: la barra de arriba y la cabecera de la tabla se deslizan con la pantalla (mas filas a la vista sobre el teclado) */
html.tq.tq-ancho.tq-teclea .topbar, html.tq.tq-ancho.tq-teclea .subasta2-head { position: static; }
/* cabecera de Cobros en tablet (<= 1300 px): Movimientos y el usuario quedan solo con su icono para que los botones no salten a otra fila */
@media (max-width: 1300px) { .tablet-cb [data-tbmovs] .tb-lbl, .tablet-cb [data-tbsalir] .tb-lbl { display: none; } }
/* tablet horizontal tecleando: el Resumen de la derecha se esconde y el nombre del comprador y el monto ganan ~40 % de ancho (vuelve al cerrar el teclado) */
html.tq.tq-ancho.tq-teclea .col-right { display: none; }
/* (28-oct, Heber: "que salga ARRIBA Siguiente, Listo y Casa; abajo se esconde y el Enter del teclado es muy pequeño"):
   la barra de atajos va ARRIBA de lo que se ve (ningun teclado la tapa), con botones mas grandes; la barra de arriba se desliza
   mientras se teclea y la cabecera de la tabla (pestañas) queda pegada justo debajo de la barra */
html.tq .tq-acc.on { top: var(--vvtop, 0px); bottom: auto; border-top: 0; border-bottom: 2px solid var(--gold); box-shadow: 0 6px 16px rgba(10, 53, 39, .18); }
html.tq .tq-acc button { height: 58px; font-size: 1.12rem; }
html.tq.tq-teclea .topbar { position: static; }
html.tq.tq-teclea .subasta2-head { top: var(--acc-h, 0px); }
/* (28-oct, Heber: "si arriba tengo los premios, no veo necesidad del Resumen abajo"): donde se ve la franja de premios
   (teléfono, tablet vertical, teléfono girado) se quita la tarjeta Resumen de abajo; queda el 📊 Resumen de la barra (F2) */
@media (max-width: 999.98px) { html.tq .rail-card:not(:has(#bonoLine *)) { display: none; } html.tq .rail-card:has(#bonoLine *) .rail-h, html.tq .rail-card:has(#bonoLine *) #totales { display: none; } }
html.tq.tq-corto .rail-card:not(:has(#bonoLine *)) { display: none; }
html.tq.tq-corto .rail-card:has(#bonoLine *) .rail-h, html.tq.tq-corto .rail-card:has(#bonoLine *) #totales { display: none; }
/* (28-oct, Heber: "le doy monto, Siguiente, brinca al nombre pero hace un salto porque sale Casa"): el botón Casa SIEMPRE ocupa su
   lugar (en el monto queda invisible), asi la barra no cambia de forma al pasar del monto al nombre */
html.tq .tq-acc .tq-acc-casa { display: block; visibility: hidden; }
html.tq .tq-acc.es-comp .tq-acc-casa { visibility: visible; }
/* 🚫 RETIRADO / INVALIDADO (28-oct): la fila apagada, sin casillas de venta, montos en 0; boton "↩ Quitar" por si fue un error */
.srow2.fila.ret { background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(120, 120, 120, .07) 10px 20px); }
.srow2.fila.ret .c2-nombre input { text-decoration: line-through; opacity: .65; }
.ret-cell { display: flex; align-items: center; gap: 8px; min-height: 40px; }
.ret-tag { font: 800 .82rem var(--font-body); letter-spacing: .04em; color: #8a2b1e; background: #fbe9e6; border: 1px solid #e7b8b0; border-radius: 8px; padding: 4px 8px; white-space: nowrap; }
.ret-cero { display: block; width: 100%; text-align: center; font-weight: 800; color: var(--muted); }
.ret-quitar { white-space: nowrap; }
html.tq .ret-cell { min-height: 46px; }
html.tq .ret-quitar { min-height: 44px; }

/* 🚫 carrera que NO SE SUBASTÓ (31-oct) */
.cerrada-banner.anulada-banner { background: #FDECEA; border-color: #E8B4AE; color: #8A1F14; }
.cerrada-banner.anulada-banner .btn-sm { margin-left: 8px; }
.pub-carrera.anulada { opacity: .6; border-left: 4px solid #B3261E; }
.pub-carrera.anulada .pc-pend { color: #B3261E; font-weight: 700; }

/* 💱 Cambio de moneda (31-oct) */
.cb-tab-cambio { margin-left: auto; font-weight: 700; }
.cb-tr-prev { background: #F1F6F3; border: 1px solid #CFE0D6; border-radius: 10px; padding: 8px 10px; margin: 6px 0; }

/* ⚠ La caja no alcanza: pide explicación (1-nov) */
.cb-falta { z-index: 240; }
.cb-falta .tb-metodos button { font-size: .95rem; }

/* 🚫 carrera que NO SE SUBASTO en la lista de la jornada (1-nov) */
.carrera-item.anulada { opacity: .65; border-left: 4px solid #B3261E; }
.carrera-item.anulada .title { text-decoration: line-through; text-decoration-color: #B3261E; }
.badge.red { background: #FDECEA; color: #B3261E; border: 1px solid #E8B4AE; }

/* 📊 Mi ganancia y mi caja (1-nov): la cuenta del cierre a la ganancia */
.cb-puente-t td { padding: 7px 8px; } .cb-puente-t tr.tot td { border-top: 2px solid #cfd6df; font-size: 1.05em; } .cb-puente-t tr.gan td { background: #eef7ee; }
.cb-puente-st { margin: 8px 0; padding: 10px 12px; border-radius: 10px; font-size: 1.02em; }
.cb-puente-st.ok { background: #e6f4ea; border: 1px solid #a8d5b5; color: #14532d; } .cb-puente-st.mal { background: #FDECEA; border: 1px solid #E8B4AE; color: #8a1c14; } .cb-puente-st.parc { background: #fff6e0; border: 1px solid #ecd28a; color: #6b4e00; }

.cb-puente-ex { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #f3f8ff; border: 1px solid #c3d6ee; } .cb-puente-ex ul { margin: 6px 0 0 18px; padding: 0; } .cb-puente-ex li { margin: 3px 0; }

/* 🎁 Cartel del acumulado de cada subasta en la carrera que lo recibe (1-nov): cantador (carril derecho) y TV */
.tv-bonob { display: flex; align-items: stretch; gap: 1vh; margin: .4vh 1vh; padding: .5vh 1vh; border-radius: 14px; background: linear-gradient(180deg, #ffe08a, #e0b23c); border: .35vh solid #fff3c4; }
.tv-bonob .t { align-self: center; font: 900 clamp(1.1rem, 3.2vh, 3rem)/1 var(--font-brand); color: #2b1d00; letter-spacing: .06em; white-space: nowrap; padding: 0 1vh; }
.tv-bonob .bb { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 10px; padding: .4vh 1vh; color: #fff; min-width: 0; }
.tv-bonob .bb span { font: 800 clamp(.8rem, 1.9vh, 1.8rem)/1.1 var(--font-brand); letter-spacing: .08em; white-space: nowrap; }
.tv-bonob .bb b { font: 900 clamp(1.5rem, 4.2vh, 4rem)/1.05 var(--font-brand); white-space: nowrap; }
.tv-bonob .bb.g { background: #a37c0e; } .tv-bonob .bb.p { background: #0d47a1; } .tv-bonob .bb.b { background: #8e1b1b; }

.tq-pr .tq-ac { display: block; font-style: normal; font-weight: 800; font-size: .72em; margin-top: 1px; white-space: nowrap; }

.cb-acum-lista { margin: 4px 0 12px; padding: 10px 12px; border-radius: 10px; background: #fff8e6; border: 1px solid #f0d98a; } .cb-acum-lista table td { padding: 6px 8px; vertical-align: top; } .cb-acum-lista tr.tot td { border-top: 2px solid #d9b13b; }

.tv-tabla th .th-ac { display: inline-block; margin-left: .5em; padding: 0 .6em; border-radius: 999px; background: #FFE08A; color: #2b1d00; font-weight: 900; font-size: 1em; line-height: 1; vertical-align: baseline; white-space: nowrap; letter-spacing: 0; text-transform: none; }

/* 1-nov: en la tablet los premios van AL FINAL de la lista de caballos (arriba queda despejado para siguiente / listo / casa) */
html.tq .tq-premios.tq-abajo { margin: 8px 0 4px; }
/* acumulado en la taquilla: discreto (el grande va en la TV y en el movil) */
.bono-banner { margin-top: 6px; padding: 5px 8px; border-radius: 8px; background: #fff6d6; border: 1px solid #e3c766; color: #3a2a00; font-size: .85em; text-align: left; }
.bono-banner .bb { display: inline; background: none; border: 0; padding: 0; color: inherit; white-space: nowrap; }
.bono-banner .bb b { display: inline; font-size: 1em; font-weight: 800; }
.tq-pr .tq-ac { font-size: .62em; font-weight: 700; opacity: .9; }

/* 1-nov: tabla + acumulado = total (TV): en cada premio y en la franja de sumas */
.tv-pp small.ac { font: 800 clamp(.8rem, 1.75vh, 1.6rem)/1.15 var(--font-body); opacity: 1; white-space: nowrap; }
.tv-pp small.ac i { font-style: normal; font-weight: 900; background: #FFE08A; color: #2b1d00; border-radius: 999px; padding: 0 .55em; margin-left: .25em; }
.tv-banda .tv-pp small.ac { font-size: clamp(1rem, 2.4vh, 2.2rem); }
.tv-totales .tt .tt-ac { background: #FFE08A; color: #2b1d00; border-radius: 999px; padding: 0 .55em; font-size: 1.05em; }
.tv-totales .tt .tt-mas { font-weight: 900; }
.tv-totales .tt.todas .tt-ac { background: #0B1A13; color: #FFE08A; }
.tv-totales .tt.gp .tt-mas { color: #8a5a00; }
:root[data-tv='dark'] .tv-totales .tt.gp .tt-mas { color: #ffd23f; }

/* premio con acumulado (TV): TOTAL grande a la izquierda y a la derecha "TABLA x" + "🎁 ACUMULADO y" bien visible */
.tv-pp.con-ac .ac-fila { display: flex; align-items: center; justify-content: center; gap: .7em; min-width: 0; max-width: 100%; }
.tv-pp.con-ac .ac-fila .v { flex: 0 1 auto; }
.tv-pp.con-ac .ac-det { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font: 800 clamp(.68rem, 1.5vh, 1.4rem)/1.1 var(--font-body); white-space: nowrap; }
.tv-pp.con-ac .ac-det b { font: 900 1.12em var(--font-brand); }
.tv-pp.con-ac .ac-det .a { background: #FFE08A; color: #2b1d00; border-radius: 999px; padding: 1px .55em; }
.tv-banda .tv-pp.con-ac .ac-det { font-size: clamp(1rem, 2.4vh, 2.2rem); }

.tv-pp small.ac { font: 800 clamp(.75rem, 1.7vh, 1.6rem)/1.15 var(--font-body); max-width: 100%; overflow: visible; text-overflow: clip; }
.tv-pp small.ac b { font: 900 1.08em var(--font-brand); }
.tv-pp.con-ac .v { font-size: clamp(1.9rem, 4.2vh, 4rem); }
.tv-banda .tv-pp.con-ac .v { font-size: clamp(3rem, 8.5vh, 8rem); }

.cb-puente-ult { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #eef7ee; border: 1px solid #b6d9b9; }

/* 🧾 Cierre ordenado (1-nov, Heber): ganancia grande a la vista, la cuenta completa plegada */
.cb-gan { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 6px 0; }
.cb-gan-n { display: flex; flex-direction: column; } .cb-gan-n span { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.cb-gan-n b { font-size: 2rem; font-family: var(--font-brand); line-height: 1.15; } .cb-gan-n b.ok { color: var(--green); } .cb-gan-n b.red { color: var(--red); }
.cb-gan-st { flex: 1 1 260px; } .cb-gan-st .cb-puente-st { margin: 0; }
.cb-redondeo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #f3f8ff; border: 1px solid #c3d6ee; }
.cb-redondeo small { display: block; } .cb-redondeo b { font-size: 1.2em; white-space: nowrap; } .cb-redondeo b.red { color: var(--red); } .cb-redondeo b.ok { color: var(--green); }
.cb-venta { margin: 0 0 8px; }
.tablet-cb .cb-puente-t td { padding: 12px 10px; min-height: 48px; } .tablet-cb .cb-gan-n b { font-size: 2.3rem; }
