/* BALANCE DE CARGAS (REV-49) — sección `cargas` de INGENIERÍA. Usa las variables de tema de styles.css. */
.bc-head{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.bc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 12px}
.bc-grid label{margin:4px 0 0;font-size:11px}
.bc-grid input,.bc-grid select{padding:6px 8px;font-size:13px;margin-top:2px}
/* REV-58: la planilla entera en pantalla, sin scroll lateral desde 1366 px. Contenedor ancho como la memoria;
   tabla de anchos fijos (colgroup) donde Servicio se lleva lo que sobra; encabezados en dos líneas; celdas
   compactas. ponytail: el overflow-x queda solo de respaldo por debajo del min-width (pantallas < ~1150 px). */
.container:has(#sec-cargas){max-width:1700px}
/* REV-93 (revisión): la sección (no el container: el título, las pestañas y las tarjetas no se mueven al pasar de una sección a otra) se
   ensancha hasta 12 px de cada borde de la ventana: 12 px más por lado a 1366 (con la tira, la planilla sigue en el ancho de antes) y, en
   pantallas anchas, lo que el tope de 1700 deja libre, hasta 1880 px (a 1920 el contenido pasa los 1430 px de Observaciones ancha y el chip
   largo de REV-84 con la barra abierta). 117 = 76 de la barra de la app + 17 de la barra de desplazamiento + 2 × 12. En pantalla completa
   el navegador fija el margen en 0. */
#sec-cargas{margin-inline:max(calc((100% - 1880px) / 2),min(-12px,calc((100% - 100vw + 117px) / 2)))}
.bc-wrap{overflow-x:auto}
table.bc-tbl{table-layout:fixed;min-width:1080px}
table.bc-tbl.bc-ro{min-width:980px}
table.bc-tbl.bc-ro td{padding:3px 5px}
table.bc-tbl th{white-space:normal;line-height:1.2;padding:5px 3px;font-size:9.5px;letter-spacing:.02em;vertical-align:bottom}
table.bc-tbl td{white-space:nowrap;padding:2px 2px}
table.bc-tbl input,table.bc-tbl select{padding:3px 3px;font-size:12px}
table.bc-tbl select{padding-right:0}
table.bc-tbl input[type=number]{text-align:right;-moz-appearance:textfield;appearance:textfield}
table.bc-tbl input[type=number]::-webkit-inner-spin-button,table.bc-tbl input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
table.bc-tbl input:disabled{opacity:.75;cursor:not-allowed}
table.bc-tbl input[data-f=servicio],table.bc-tbl input[data-f=tag],table.bc-tbl input[data-f=obs],table.bc-tbl td.bc-txt{text-overflow:ellipsis;overflow:hidden}
table.bc-tbl .bc-ctr{text-align:center}
table.bc-tbl input.bc-ctr:invalid{outline:2px solid var(--warn);outline-offset:-2px}   /* REV-69: sin N° de circuito el unifilar vinculado no lo trae */
table.bc-tbl td.num{text-align:right;font-family:var(--font-num);font-size:12px;white-space:nowrap;overflow:hidden}
table.bc-tbl td.bc-tot{font-weight:700;font-size:13px;color:var(--accent)}
table.bc-tbl col.bc-c-grip{width:22px}
table.bc-tbl col.bc-c-tag{width:58px}
table.bc-tbl col.bc-c-barra{width:86px}   /* REV-84 (revisión): vuelve a 86 («NORMAL» se cortaba a 78); los 8 px salen de Fase y Acciones */
table.bc-tbl col.bc-c-clase{width:58px}
table.bc-tbl col.bc-c-cant{width:48px}
table.bc-tbl col.bc-c-w{width:60px}
table.bc-tbl col.bc-c-cos{width:48px}
table.bc-tbl col.bc-c-va{width:62px}
table.bc-tbl col.bc-c-dpm{width:56px}
table.bc-tbl col.bc-c-coef{width:48px}
table.bc-tbl col.bc-c-dpms{width:52px}
table.bc-tbl col.bc-c-u{width:56px}
table.bc-tbl col.bc-c-ip{width:50px}
table.bc-tbl col.bc-c-fase{width:62px}   /* REV-84 (revisión): 66 → 62 (select 40 + 3 + casilla 14 + 4 de padding = 61) */
table.bc-tbl col.bc-c-f{width:48px}
table.bc-tbl col.bc-c-acc{width:80px}   /* REV-84: «Alimenta a…» + ↑ ↓ quitar (4 × 19 + 4 de padding = 80, justo) */
/* REV-79: Observaciones angosta a 1366 (Servicio sigue en ≥ 140 px); con pantalla ancha se lleva más */
table.bc-tbl col.bc-c-obs{width:66px}   /* REV-84: 76 → 66 a 1366 (Servicio sigue en ≥ 140 px) */
@container bcmain (min-width:1430px){table.bc-tbl col.bc-c-obs{width:170px}}   /* REV-93: por el ancho del contenido (antes, ventana ≥ 1600 px), que la barra lateral achica */
table.bc-tbl .bc-fc{display:flex;align-items:center;gap:3px}
table.bc-tbl .bc-fc select{width:40px}
table.bc-tbl .bc-fc input[type=checkbox]{width:14px;height:14px;margin:0;flex:none}
table.bc-tbl td.bc-acc{text-align:right}
/* REV-89: reservas (RES / ESP): fila tenue, «—» donde el dato no aplica y el calibre en la columna de la potencia */
table.bc-tbl tr.bc-res td{background:var(--panel2)}
table.bc-tbl tr.bc-res input[data-f=servicio]{font-style:italic}
table.bc-tbl .bc-na{display:block;text-align:center;color:var(--muted)}
table.bc-tbl select[data-f=cal]{width:100%}
/* reubicar filas: asa de arrastre, línea de destino y flechas chicas */
.bc-grip{display:inline-flex;cursor:grab;color:var(--muted);padding:2px;border-radius:4px}
.bc-grip:hover{color:var(--txt)}
.bc-grip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
table.bc-tbl tr.bc-arrastrando{opacity:.45}
table.bc-tbl tr.bc-drop-arriba td{box-shadow:inset 0 3px 0 var(--accent)}
table.bc-tbl tr.bc-drop-abajo td{box-shadow:inset 0 -3px 0 var(--accent)}
.bc-mini{background:transparent;border:1px solid transparent;color:var(--muted);border-radius:4px;padding:2px 2px;cursor:pointer;line-height:0;vertical-align:middle}
.bc-mini:hover:not(:disabled){border-color:var(--line);color:var(--txt)}
.bc-mini:disabled{opacity:.25;cursor:default}
.bc-mini svg{width:13px;height:13px}
.bc-ayuda{font-size:11.5px}
.bc-ayuda svg{width:12px;height:12px;vertical-align:-2px}
/* pantalla completa: se agranda la sección (queda estable aunque el balance se re-pinte) */
#sec-cargas:fullscreen{background:var(--bg);overflow:auto;padding:12px}
#sec-cargas:fullscreen .bc-app{margin:0}
#sec-cargas:fullscreen .bc-side{max-height:calc(100vh - 26px)}   /* REV-93 (revisión): los 12 px de padding arriba y abajo (+ el borde): la barra pegada no se pasa del borde de abajo */
.bc-foot{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:14px;margin-top:12px;align-items:start}
@media (max-width:900px){.bc-foot{grid-template-columns:1fr}}
.bc-fases{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:8px}
.bc-fase{display:grid;grid-template-columns:52px 1fr 64px;align-items:center;gap:8px;font-size:12px}
.bc-fase b{text-align:right;font-family:var(--font-num);font-size:14px}
.bc-bar{height:12px;background:var(--bg);border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.bc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--cu2));border-radius:6px}
.bc-tots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.bc-tots div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.bc-tots div span{display:block;font-size:11px;color:var(--muted)}
.bc-tots div b{font-family:var(--font-num);font-size:16px}
.bc-tots div.hl{border-color:var(--accent)}
/* revisiones guardadas (REV-58) */
.bc-revs{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.bc-revs b svg{vertical-align:-2px}
table.bc-revs-tbl{margin-top:8px}
table.bc-revs-tbl td.bc-rev-acc{text-align:right;white-space:nowrap}
table.bc-revs-tbl tr.bc-rev-on{background:rgba(31,111,178,.10)}
.bc-ro-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.45);border-radius:10px;padding:8px 12px;margin-bottom:10px}
.bc-ro-banner>svg{width:20px;height:20px;color:#f59e0b;flex:none}
.bc-ro-head{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px}

/* Indicador de guardado: ancho fijo (no mueve la fila) + punto que late / spinner / check que aparece */
.bc-est{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;min-width:140px;font-size:12px;color:var(--muted);white-space:nowrap;transition:color .25s}
.bc-est::before{content:'';flex:none;box-sizing:border-box;width:10px;height:10px;border-radius:50%}
.bc-est.dirty{color:var(--warn)}
.bc-est.dirty::before{background:var(--warn);transform:scale(.7);animation:bc-late 1.6s ease-in-out infinite}
.bc-est.saving{color:var(--accent)}
.bc-est.saving::before{border:2px solid var(--line);border-top-color:var(--accent);animation:bc-gira .7s linear infinite}
.bc-est.ok{color:var(--eco)}
.bc-est.ok::before{width:12px;height:12px;border-radius:0;background:var(--eco);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/contain no-repeat;animation:bc-ok .45s cubic-bezier(.34,1.56,.64,1)}
.bc-est.ok{animation:bc-fade .6s ease-out}
@keyframes bc-late{0%,100%{transform:scale(.7);opacity:.6}50%{transform:scale(1);opacity:1}}
@keyframes bc-gira{to{transform:rotate(360deg)}}
@keyframes bc-ok{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes bc-fade{from{opacity:.4}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.bc-est,.bc-est::before{animation:none!important;transition:none}}
/* REV-69: indicador de unifilar vinculado en la pestaña de cada tablero (el title dice cuál) */
.bc-uni{display:inline-flex;vertical-align:-2px;margin-left:5px;opacity:.8}
.bc-uni svg{width:13px;height:13px}
.bc-uni-txt{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}   /* un nombre de unifilar largo no parte la cabecera: entero en el title */
/* REV-79: aviso del diálogo Duplicar (nombre repetido, sin nombre) */
.bc-dup-err{color:var(--dem);font-size:12px;min-height:16px;margin:8px 0 6px}
/* REV-84: alimentación a tableros vinculada. Chip «→ TS-PB (barra) · estado» en Servicio (abre el selector); por debajo de 1600 px el
   corto «→ TS-PB (E)» (.bc-chip-c: Servicio tiene ~140 px a 1366): la marca del estado y la barra quedan siempre y se corta el nombre
   (.bc-chip-n). REV-84 (revisión): el texto va en --txt (con --eco / --warn / --dem el contraste quedaba entre 2 y 4,1:1); el estado,
   en la marca, el borde y el fondo. Campos bloqueados con el disabled de siempre */
.bc-sv{display:flex;align-items:center;gap:3px;min-width:0}
.bc-sv input{flex:1 1 0;min-width:0}
.bc-chip{flex:0 1 auto;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:11px;font-weight:600;line-height:1.6;padding:0 6px;border-radius:9px;border:1px solid var(--eco);color:var(--txt);background:rgba(46,158,91,.12);cursor:pointer}
.bc-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.bc-chip.act{border-color:var(--accent);background:rgba(56,140,210,.14)}
.bc-chip.doble{border-color:var(--warn);background:rgba(224,165,58,.22)}
.bc-chip.roto{border-color:var(--dem);border-style:dashed;background:rgba(214,69,62,.12)}
.bc-chip.ro{cursor:default;border-color:var(--line);color:var(--muted);background:transparent;margin-right:2px}
table.bc-alim-tbl{margin:4px 0 10px}
table.bc-alim-tbl td.num{text-align:right;font-family:var(--font-num)}
table.bc-alim-tbl tr.bc-alim-no td{opacity:.55}
table.bc-alim-tbl label{margin:0;cursor:pointer}
.bc-alim-aviso{color:var(--txt);font-size:12px;min-height:16px;margin:6px 0}
.bc-alim-aviso:not(:empty){border-left:3px solid var(--warn);padding-left:8px}   /* REV-84 (revisión): texto en --txt (con --warn, 2:1) */
.bc-aviso{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.45);border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:12.5px}
.bc-chip .bc-chip-c{display:none}
@container bcmain (max-width:1429.98px){.bc-chip .bc-chip-l{display:none}.bc-chip .bc-chip-c{display:flex;gap:3px}}   /* REV-93: ídem */
.bc-chip-c>span{flex:none}
.bc-chip-c>.bc-chip-n{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
table.bc-alim-tbl td:nth-child(2){white-space:nowrap}
/* REV-91: marca Horno / Anafe de un TUE u OCE, al principio de Servicio (donde va el chip de REV-84): select chico, sin la flecha nativa
   (una chica de fondo), que mide lo que su opción elegida (field-sizing; sin soporte, lo que «Anafe»); marcada se lee como un chip.
   Notas generales del pie, debajo de los totales */
table.bc-tbl select.bc-eq{flex:none;width:auto;field-sizing:content;min-width:0;max-width:56px;-webkit-appearance:none;appearance:none;font-size:10.5px;line-height:1.5;padding:0 11px 0 5px;border:1px solid var(--line);border-radius:9px;color:var(--muted);cursor:pointer;
  background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238a96a6' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 3px center/7px 5px}
table.bc-tbl select.bc-eq.on{color:var(--txt);font-weight:600;border-color:var(--warn);background-color:rgba(224,165,58,.20)}
table.bc-tbl select.bc-eq:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.bc-chip.ro.bc-eq-ro{border-color:var(--warn);color:var(--txt);background:rgba(224,165,58,.18)}
.bc-notas{margin-top:12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.bc-notas-h{gap:8px;align-items:baseline;flex-wrap:wrap}
.bc-notas-l{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.bc-notas-l li{display:flex;align-items:center;gap:6px}
.bc-nota-n{flex:none;width:64px;margin:0;font-size:12px;font-weight:700;font-family:var(--font-num);color:var(--muted)}
.bc-notas-l input{flex:1 1 auto;min-width:0;padding:4px 6px;font-size:12.5px}
.bc-nota-t{font-size:12.5px}
/* REV-93: formato de las herramientas (Unifilar / SPCR): barra lateral (Vista general, buscador, árbol por alimentación o por piso, acciones
   de la sección) + contenido. El verde de las herramientas solo en la navegación (lo abierto: borde izquierdo, fondo y título); el resto
   con los colores del tema de SIPRECE, claro u oscuro. La barra queda pegada arriba al bajar la página (sticky) y el árbol tiene su propio
   scroll. .rail = tira de 40 px con íconos (plegada a mano, o la sección angosta con una planilla a la vista); .cajon = la lista abierta por
   encima del contenido. El contenido es un contenedor (bcmain): los anchos de la planilla que antes iban por la ventana van por él. */
.bc-app{--bc-h2:#4ade80;--bc-acc2:#22c55e;--bc-hover:rgba(34,197,94,.10);--bc-sel:rgba(34,197,94,.16);--bc-nav:256px;--bc-sub:#a9b6c8;
  display:grid;grid-template-columns:var(--bc-nav) minmax(0,1fr);align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;position:relative}
html.light .bc-app{--bc-h2:#1f7a34;--bc-acc2:#3dcd58;--bc-hover:rgba(61,205,88,.10);--bc-sel:#e7f6ea;--bc-sub:var(--muted)}
/* REV-93 (revisión): --bc-sub = el gris del texto chico sobre --panel2 y sobre lo abierto (--bc-sel): en el oscuro, --muted daba 4,0–4,3:1;
   con este, ≥ 4,5:1 (en el claro, --muted ya pasa) */
.bc-app .bc-tots div span,.bc-nav[aria-current="page"] small,.bc-ti.on>.bc-tr .bc-tc{color:var(--bc-sub)}
.bc-app.rail,.bc-app.cajon{--bc-nav:40px}
.bc-side{position:sticky;top:0;width:var(--bc-nav);max-height:calc(100vh - 2px);display:flex;flex-direction:column;min-width:0;background:var(--panel);border-right:1px solid var(--line);border-radius:var(--radius) 0 0 var(--radius);z-index:20}
.bc-side-h{display:flex;align-items:center;gap:9px;padding:10px 10px 9px;border-bottom:1px solid var(--line)}
.bc-side-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.bc-side-t b{font-size:15px;font-weight:600;white-space:nowrap}
.bc-side-t small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-ico{flex:none;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}
.bc-ico:hover{background:var(--bc-hover);color:var(--txt)}
.bc-ico svg{width:16px;height:16px}
.bc-nav{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-left:4px solid transparent;color:var(--txt);padding:9px 12px 9px 10px;cursor:pointer;font:inherit;line-height:1.25}
.bc-nav svg{width:18px;height:18px;flex:none;color:var(--muted)}
.bc-nav .bc-lbl{display:flex;flex-direction:column;min-width:0;font-size:14px;font-weight:500}
.bc-nav small{font-size:11.5px;color:var(--muted);font-weight:400;margin-top:1px}
.bc-nav:hover{background:var(--bc-hover)}
.bc-nav[aria-current="page"]{border-left-color:var(--bc-acc2);background:var(--bc-sel)}
.bc-nav[aria-current="page"] .bc-lbl,.bc-nav[aria-current="page"] svg{color:var(--bc-h2)}
.bc-nav[aria-current="page"] .bc-lbl{font-weight:600}
.bc-solo-rail{display:none}
.bc-app.ver #bc_vg,.bc-app.ver #bc_new,.bc-app.ver #bc_imp,.bc-app.ver #bc_xls,.bc-app.ver #bc_pdf{display:none}   /* viendo una revisión: solo sus tableros (su PDF va en el cartel de la revisión) */
.bc-app.ver .bc-fa3{grid-template-columns:1fr}   /* REV-93 (revisión): ahí queda sola Pantalla completa: a todo el ancho, no en un tercio */
.bc-busca{padding:8px 10px 6px;border-top:1px solid var(--line)}
.bc-busca input{padding:6px 9px;font-size:13px}
.bc-modo{display:grid;grid-template-columns:1fr 1fr;margin-top:6px;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.bc-modo button{background:transparent;border:0;color:var(--muted);font:inherit;font-size:12px;padding:4px 6px;cursor:pointer}
.bc-modo button+button{border-left:1px solid var(--line)}
.bc-modo button:hover{background:var(--bc-hover);color:var(--txt)}
.bc-modo button[aria-pressed="true"]{background:var(--bc-sel);color:var(--bc-h2);font-weight:600}
.bc-cuenta{margin:5px 0 0;font-size:11.5px;color:var(--muted)}
.bc-cuenta:empty{display:none}
.bc-tree-w{flex:1 1 auto;min-height:72px;overflow:auto;overscroll-behavior:contain;padding:4px 0 8px;border-top:1px solid var(--line)}
.bc-tree,.bc-tree ul{list-style:none;margin:0;padding:0}
.bc-ti,.bc-tg{outline:none}
.bc-tr{display:flex;align-items:center;gap:5px;min-width:0;padding:4px 10px 4px calc(4px + var(--n,0) * 14px);border-left:4px solid transparent;cursor:pointer;font-size:13px;line-height:1.35}
.bc-tr:hover{background:var(--bc-hover)}
.bc-tw{flex:none;width:14px;height:14px;display:grid;place-items:center;color:var(--muted)}
.bc-tw svg{width:12px;height:12px;transition:transform .12s}
[aria-expanded="true"]>.bc-tr .bc-tw svg{transform:rotate(90deg)}
[aria-expanded="false"]>ul{display:none}
.bc-tn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bc-tc{flex:none;min-width:18px;text-align:right;font-family:var(--font-num);font-size:12.5px;color:var(--muted)}
.bc-ti.on>.bc-tr{border-left-color:var(--bc-acc2);background:var(--bc-sel)}
.bc-ti.on>.bc-tr .bc-tn{color:var(--bc-h2);font-weight:600}
.bc-ti.ctx>.bc-tr .bc-tn{color:var(--muted);font-style:italic}
.bc-tgr{padding-top:7px;font-size:11.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.bc-ti:focus-visible>.bc-tr,.bc-tg:focus-visible>.bc-tr,.bc-nav:focus-visible,.bc-ico:focus-visible,.bc-fa:focus-visible,.bc-modo button:focus-visible,.bc-rt:focus-visible,.bc-ord:focus-visible,.bc-vg-a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
table.bc-vg-tbl .bc-ord:focus-visible{outline-color:currentColor;outline-offset:-4px}   /* REV-93 (revisión): sobre el encabezado oscuro, el color de su texto (con --accent, 2,6:1 en el claro y pegado al borde de abajo) */
.bc-tr .bc-uni{flex:none;margin-left:0}
/* REV-93 (revisión): unifilar desactualizado = el ícono con «↻» en un recuadro como «2×» (no solo el color: en el claro, --warn daba 2:1) */
.bc-uni.des{align-items:center;gap:1px;padding:0 3px;border:1px solid var(--warn);border-radius:7px;background:rgba(224,165,58,.20);color:var(--txt);opacity:1}
.bc-uni-d{font-size:10.5px;font-weight:700;line-height:1.4}
.bc-mk{flex:none;font-size:10.5px;font-weight:700;line-height:1.4;padding:0 4px;border-radius:7px;border:1px solid var(--line);color:var(--txt)}
.bc-mk.roto{border-color:var(--dem);border-style:dashed;background:rgba(214,69,62,.12)}
.bc-mk.doble{border-color:var(--warn);background:rgba(224,165,58,.20)}
.bc-vacio{margin:8px 12px;font-size:12px;color:var(--muted)}
.bc-side-f{border-bottom:1px solid var(--line);padding:8px 10px;display:flex;flex-direction:column;gap:6px}   /* REV-93 (revisión): arriba, debajo del título: al entrar se ven aunque la barra empiece a mitad de pantalla (el árbol es lo que se recorta) */
.bc-nuevo{width:100%}
.bc-nuevo svg{width:14px;height:14px}
.bc-fa3{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}   /* REV-94: Importar · Excel · PDF · Pantalla completa */
/* REV-94: «Qué exportar» en la carátula del PDF (el tablero abierto o todos; la memoria entera o la pestaña abierta) */
.car-alc{display:flex;flex-wrap:wrap;gap:2px 20px;border:1px solid var(--line);border-radius:8px;padding:2px 12px 7px;margin:4px 0 8px}   /* revisión: las opciones en un renglón si entran */
.car-alc legend{font-size:12px;color:var(--muted);padding:0 4px}
.car-alc label{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-size:13px;color:var(--txt);cursor:pointer}
/* revisión de REV-94: Cancelar / Guardar quedan pegados abajo del modal (a 1366 × 768, con «Qué exportar», quedaban fuera de la vista) */
.car-pie{position:sticky;bottom:-22px;z-index:1;justify-content:flex-end;gap:8px;margin:14px -22px -22px;padding:12px 22px 22px;background:var(--panel);border-top:1px solid var(--line)}
.car-alc input[type=radio]{width:16px;height:16px;flex:none;margin:0;padding:0;accent-color:var(--accent)}
.bc-fa{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 5px;font:inherit;font-size:11px;line-height:1.15;text-align:center;background:var(--panel2);border:1px solid var(--line);border-radius:7px;color:var(--txt);cursor:pointer}
.bc-fa:hover:not(:disabled){border-color:var(--bc-acc2);background:var(--bc-hover)}
.bc-fa:disabled{opacity:.45;cursor:default}
.bc-fa svg{width:17px;height:17px}
/* tira de íconos: los textos quedan para el lector de pantalla y el title */
.bc-app.rail .bc-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bc-app.rail .bc-busca,.bc-app.rail .bc-tree-w{display:none}
.bc-app.rail .bc-side-h{justify-content:center;padding:8px 0}
.bc-app.rail .bc-nav{justify-content:center;padding:9px 0;border-left-width:3px}
.bc-app.rail .bc-solo-rail{display:flex}
.bc-app.rail .bc-solo-rail[hidden]{display:none}
.bc-app.rail .bc-side-f{padding:8px 4px}
.bc-app.rail .bc-fa3{grid-template-columns:1fr}
.bc-app.rail .bc-nuevo,.bc-app.rail .bc-fa{padding:7px 0}
.bc-app.cajon .bc-side{width:272px;border-radius:var(--radius);box-shadow:0 12px 32px rgba(0,0,0,.35)}
/* contenido (alturas de línea fijas en el encabezado: que la carga de las fuentes no corra la planilla) */
.bc-main{min-width:0;padding:12px 8px 16px 12px;container:bcmain/inline-size}
.bc-th{margin-bottom:10px}
.bc-ruta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 3px;min-width:0;margin-bottom:2px;font-size:12px;line-height:18px;color:var(--muted)}
.bc-rt{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;border-radius:4px;padding:1px 3px;font:inherit;color:var(--accent);cursor:pointer}
button.bc-rt:hover{text-decoration:underline}
.bc-rt.on{color:var(--txt);font-weight:600;cursor:default}
.bc-rs{color:var(--muted)}
.bc-th-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.bc-th-f h2,.bc-vg-h h2{margin:0;font-size:20px;line-height:28px;font-weight:600;color:var(--bc-h2);min-width:0;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}
.bc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.bc-kpi{min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px 12px}
.bc-kpi>span{display:block;font-size:11px;line-height:15px;color:var(--bc-sub);text-transform:uppercase;letter-spacing:.3px;font-weight:600}
.bc-kpi>b{display:block;font-family:var(--font-num);font-size:22px;line-height:26px;height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-kpi>b i{font-style:normal;font-size:13px;color:var(--bc-sub)}
.bc-kpi>small{display:block;font-size:11px;line-height:15px;color:var(--bc-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* vista general */
.bc-vg-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.bc-vg-p{margin:4px 0 10px}
table.bc-vg-tbl{width:100%}
table.bc-vg-tbl th{padding:0}
.bc-ord{display:flex;align-items:center;gap:4px;width:100%;padding:7px 6px;background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer}
th.num .bc-ord{justify-content:flex-end}
.bc-ord-i{font-size:9px;opacity:.5}
th[aria-sort] .bc-ord-i{opacity:1}
table.bc-vg-tbl tbody tr[data-vg]{cursor:pointer}
table.bc-vg-tbl td{padding:5px 6px;font-size:13px;vertical-align:middle}
table.bc-vg-tbl td.num{text-align:right;font-family:var(--font-num);font-size:14px}
table.bc-vg-tbl td.bc-txt{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.bc-vg-tbl tfoot td{font-weight:700;border-top:2px solid var(--line)}
.bc-vg-a{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--txt);text-align:left;cursor:pointer}
.bc-vg-a:hover{color:var(--accent);text-decoration:underline}
.bc-vg-nom small{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted)}
.bc-est-p{display:inline-block;padding:1px 8px;border:1px solid var(--line);border-radius:9px;font-size:11px;font-weight:600;color:var(--txt);white-space:nowrap}
.bc-est-p.ok{border-color:var(--eco);background:rgba(46,158,91,.12)}
.bc-est-p.warn,.bc-est-p.doble{border-color:var(--warn);background:rgba(224,165,58,.20)}
.bc-est-p.roto{border-color:var(--dem);border-style:dashed;background:rgba(214,69,62,.12)}
@media (prefers-reduced-motion:reduce){.bc-tw svg{transition:none}}
/* REV-97: Importar con IA (botón y vista previa) */
.bc-ia{width:100%;margin-top:5px;display:flex;align-items:center;justify-content:center;gap:6px}
.bc-ia svg{width:15px;height:15px}
.modal.bcia-modal{width:min(1100px,96vw)}
.bcia h3{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.bcia h3 svg{width:18px;height:18px}
.bcia-av{margin:6px 0 8px 18px;padding:0;font-size:12.5px;color:var(--warn,#9a6700)}
.bcia-sel{margin:6px 0;font-size:13px}
.bcia-lista{display:flex;flex-direction:column;gap:4px;max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px}
.bcia-t{border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.bcia-t.warn{border-left:3px solid var(--warn,#d29922)}
.bcia-t summary{display:flex;align-items:center;gap:10px;cursor:pointer;flex-wrap:wrap;font-size:13px}
.bcia-nom{width:200px;font:inherit;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit}
.bcia-t .num{font-variant-numeric:tabular-nums}
.bcia-c{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0}
.bcia-c th,.bcia-c td{border-bottom:1px solid var(--line);padding:2px 6px;text-align:left}
.bcia-c td.num{text-align:right}
.bcia-pie{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:13px;flex-wrap:wrap}
.bcia input[type=checkbox]{width:auto;margin:0;flex:none}
.bcia-sel label,.bcia-pie label{display:inline-flex;align-items:center;gap:6px}
.bcia-t summary .bcia-org{cursor:pointer}
/* Revisión de seguridad de REV-97: «Recomendaciones de la IA» en la propuesta de Importar con IA */
.bcia-rec{border:1px solid var(--line);border-radius:8px;padding:4px 10px;margin:6px 0 8px;font-size:13px}
.bcia-rec.warn{border-left:3px solid var(--warn,#d29922)}
.bcia-rec>summary{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;padding:2px 0}
.bcia-rec>summary svg{width:16px;height:16px;flex:none}
.bcia-rec>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.bcia-rec-g{margin:4px 0 2px}
.bcia-rec-g .bcia-av{margin-top:2px}
.bcia-rec .bcia-uso{margin:6px 0 4px;font-size:12px}
