/* ================= SiViRP · pantalla de taller ==================================================
   Tema oscuro propio, a pantalla completa, para el televisor del taller. Todas las clases van
   prefijadas .tb*, así que no se cruza con el resto del tablero.

   Estaba inyectado como <style> desde sivirp.js. Se movió acá para que valga una sola regla en todo
   el proyecto: el CSS vive en styles/, sin excepciones. Antes había seis bloques repartidos en
   cuatro archivos de JavaScript y dos de ellos se pisaban entre sí sin que se notara. */
.tb{background:#0b1220;border-radius:14px;padding:16px 20px;color:#e8eef5;min-height:calc(100vh - 200px)}
.tb-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;border-bottom:2px solid #1e2a3f;padding-bottom:10px;margin-bottom:12px}
.tb-title{font-size:24px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:11px;margin:0}
.tb-live{width:12px;height:12px;border-radius:50%;background:#3ddc84;box-shadow:0 0 12px #3ddc84;animation:tbpulse 1.5s ease-in-out infinite}
@keyframes tbpulse{0%,100%{opacity:1}50%{opacity:.25}}
.tb-sub{font-size:14px;color:#c3d2e6;letter-spacing:.03em;text-align:right}
.tb-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
@media(max-width:760px){.tb-kpis{grid-template-columns:repeat(2,1fr)}}
.tb-tile{background:#131d30;border-radius:10px;padding:8px 16px;border-left:6px solid #444}
.tb-tile .l{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#b9c8de}
.tb-tile .n{font-size:38px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}
.tb-tile .s{font-size:13px;color:#b9c8de}
.tb-lt{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#b9c8de;margin:2px 0 6px}
.tb .tscroll{background:transparent!important;border:none!important;box-shadow:none!important}
.tb-tbl{width:100%;border-collapse:collapse;font-size:16px;table-layout:fixed;background:transparent}
.tb-tbl th{text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#aebfd6;padding:5px 8px;border-bottom:2px solid #24344f;position:sticky;top:0;background:#0b1220!important}
.tb-tbl td{padding:6px 8px;border-bottom:1px solid #1b2740;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eaf1fb;background:transparent!important;text-align:left}
.tb-tbl tbody tr:nth-child(even) td{background:rgba(255,255,255,.03)!important}
.tb-tbl td.d{font-weight:800;font-variant-numeric:tabular-nums;font-size:21px;text-align:right}
.tb-tbl td.soc{font-weight:700;color:#ffffff;font-size:16px}
.tb-chip{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.tb-blink{animation:tbblink 1.4s ease-in-out infinite}
@keyframes tbblink{50%{opacity:.4}}
.tb-tk{background:#12233a;border:1px solid #294066;border-radius:10px;margin:0 0 14px;overflow:hidden;display:flex;align-items:center}
.tb-tk-lbl{flex:none;width:215px;box-sizing:border-box;padding:9px 16px;font-weight:800;color:#0b1220;background:#3ddc84;letter-spacing:.06em;font-size:14px;align-self:stretch;display:flex;align-items:center;gap:7px}
.tb-tk-wrap{flex:1;overflow:hidden;position:relative}
.tb-tk-track{display:inline-flex;white-space:nowrap;animation:tbmarq 40s linear infinite}
.tb-tk:hover .tb-tk-track{animation-play-state:paused}
@keyframes tbmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tb-tk-item{display:inline-flex;align-items:center;gap:8px;padding:9px 26px;font-size:16px;color:#dfe8f5;border-right:1px solid #24344f}
.tb-tk-item .s{color:#4aa3ff;font-weight:700}
.tb-tk-item b{color:#fff}
.tb-tk-item .h{color:#8fa3bf;font-size:14px}
.tb-tk-none{padding:9px 16px;color:#8fa3bf;font-size:16px}
