/* ═══════════════════════════════════════════════════════════════════════════
   BITÁCORA DE GESTIÓN — rediseño 1-oct-2026 (bitacora.js). Identidad SGS (variables --x-* de informes.css):
   petróleo #22414a, verde #3fa981, crema #f5f2ea, menta #8fc4b1, títulos en serif.
   Celular primero (375 px): cabecera de una línea con el menú «Ver ▾», tarjetas compactas, una etapa a la vez,
   tira de días, acción principal en el botón flotante. PC (≥1000 px): columnas lado a lado y semana del calendario.
   Prefijos: .bt-* (vistas) y .bf-* (ficha de la actividad, dentro de #sgxHoja).
   ═══════════════════════════════════════════════════════════════════════════ */
.sgx.bt-pane, #sgxHoja {
  --bt-sombra: 0 1px 2px rgba(34,65,74,.06), 0 4px 14px rgba(34,65,74,.06);
  --bt-sombra-h: 0 2px 4px rgba(34,65,74,.08), 0 10px 26px rgba(34,65,74,.12);
  --bt-prog:#7d8f94; --bt-curso:#0e7f9e; --bt-rev:#b8741f; --bt-ok:#2e8b69; --bt-tarde:#b3261e;
}
.sgx.bt-pane [hidden], #sgxHoja [hidden] { display:none !important; }   /* las clases con display ganaban al atributo hidden */
.sgx.bt-pane { padding-bottom: 8px; }
@media (max-width:760px){ .sgx.bt-pane { padding-bottom: 96px; } }   /* el botón flotante no tapa la última tarjeta */

/* ── Cabecera: título = menú de vistas ───────────────────────────────────────── */
.bt-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.bt-tit { position:relative; min-width:0; flex:1 1 auto; }
.bt-ver { display:inline-flex; align-items:center; gap:10px; max-width:100%; border:0; background:none; padding:4px 8px 4px 0; margin:0; cursor:pointer;
  font-family:var(--x-serif); font-size:26px; font-weight:600; color:var(--x-navy); line-height:1.15; border-radius:12px; text-align:left; }
.bt-ver:hover .bt-chev, .bt-ver[aria-expanded="true"] .bt-chev { background:var(--x-navy); }
.bt-ver:hover .bt-chev::after, .bt-ver[aria-expanded="true"] .bt-chev::after { border-color:#fff; }
.bt-ver:focus-visible { outline:2px solid var(--x-menta); outline-offset:2px; }
.bt-ver-i { width:40px; height:40px; flex:none; border-radius:12px; background:var(--x-crema); display:flex; align-items:center; justify-content:center; font-size:20px; }
.bt-ver-t { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-chev { width:28px; height:28px; flex:none; border-radius:50%; background:#e7efec; position:relative; transition:background .15s; }
.bt-chev::after { content:''; position:absolute; left:50%; top:45%; width:7px; height:7px; border:solid var(--x-navy); border-width:0 2px 2px 0; transform:translate(-50%,-50%) rotate(45deg); transition:transform .15s; }
.bt-ver[aria-expanded="true"] .bt-chev::after { transform:translate(-50%,-20%) rotate(-135deg); }
.bt-sub { color:var(--x-gris); font-size:13px; margin-top:4px; line-height:1.4; }
@media (max-width:600px){ .bt-ver { font-size:22px; } .bt-ver-i { width:36px; height:36px; font-size:18px; } .bt-sub { font-size:12.5px; } }

.bt-menu { position:absolute; z-index:60; top:calc(100% + 2px); left:0; width:min(340px, calc(100vw - 24px)); background:#fff; border:1px solid var(--x-linea);
  border-radius:16px; box-shadow:0 18px 48px rgba(20,30,34,.22); padding:6px; animation:btPop .14s ease-out; }
@keyframes btPop { from { opacity:0; transform:translateY(-6px) scale(.98); } to { opacity:1; transform:none; } }
.bt-mi { display:flex; align-items:center; gap:12px; width:100%; min-height:56px; padding:8px 10px; border:0; background:none; border-radius:12px; cursor:pointer; text-align:left; font:inherit; color:var(--x-texto); }
.bt-mi:hover, .bt-mi:focus-visible { background:var(--x-fondo); outline:none; }
.bt-mi.activo { background:#eef5f2; }
.bt-mi-i { width:38px; height:38px; border-radius:10px; background:var(--x-crema); display:flex; align-items:center; justify-content:center; font-size:18px; flex:none; }
.bt-mi.activo .bt-mi-i { background:var(--x-navy); }
.bt-mi-t { display:flex; flex-direction:column; min-width:0; flex:1; }
.bt-mi-t b { font-size:15px; color:var(--x-navy); }
.bt-mi-t small { font-size:12.5px; color:var(--x-gris); }
.bt-mi-ok { color:var(--x-verde); font-weight:700; }

.bt-acc { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; flex:none; }
.bt-acc .x-btn { border-radius:12px; }
.bt-ejec { gap:8px; }
.bt-n { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 7px; border-radius:999px; background:var(--x-ok-bg); color:var(--x-ok); font-size:12px; font-weight:700; }
.bt-n:empty { display:none; }
@media (max-width:760px){ .bt-acc .bt-nuevo { display:none; } .bt-acc .x-btn { min-height:40px; padding:0 12px; font-size:13px; } }

/* ── Barra: copropiedad + filtros ────────────────────────────────────────────── */
.bt-barra { display:flex; gap:8px; align-items:stretch; margin-bottom:10px; }
.bt-sel { position:relative; display:flex; flex-direction:column; justify-content:center; flex:1 1 auto; min-width:0; background:#fff; border:1px solid var(--x-linea);
  border-radius:14px; padding:6px 38px 6px 14px; min-height:54px; box-shadow:var(--bt-sombra); cursor:pointer; }
.bt-sel > span { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--x-gris); }
.bt-sel select, .sgx .bt-sel select { border:0 !important; box-shadow:none !important; border-radius:0; height:auto; outline:none; appearance:none; -webkit-appearance:none; border:0; background:transparent; padding:0; margin:0; font:inherit; font-size:16px; font-weight:600;
  color:var(--x-navy); width:100%; min-height:24px; cursor:pointer; text-overflow:ellipsis; outline:none; }
.bt-sel::after { content:''; position:absolute; right:16px; top:50%; width:8px; height:8px; border:solid var(--x-gris); border-width:0 2px 2px 0; transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.bt-sel:focus-within { border-color:var(--x-verde); box-shadow:0 0 0 3px rgba(143,196,177,.35); }
/* 19-oct-2026: con un select, el select ocupa TODA la caja (en el celular tocar el rótulo o el borde no abría la lista).
   Solo cajas con select (:has); las de búsqueda (input) quedan como estaban. Sin :has el navegador ignora todo esto. */
.bt-sel:has(> select) { padding:0; }
.bt-sel:has(> select) > span { position:absolute; left:14px; right:38px; top:7px; pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bt-sel:has(> select) > select, .sgx .bt-sel:has(> select) > select { min-height:52px; padding:24px 38px 7px 14px; border-radius:14px; white-space:nowrap; overflow:hidden; }
.bt-filtrar { flex:none; display:flex; align-items:center; gap:8px; min-height:54px; padding:0 14px; border-radius:14px; border:1px solid var(--x-linea); background:#fff;
  box-shadow:var(--bt-sombra); font:inherit; font-size:14px; font-weight:600; color:var(--x-navy); cursor:pointer; position:relative; }
.bt-filtrar.abierto { background:var(--x-navy); color:#fff; border-color:var(--x-navy); }
.bt-filtrar-i { width:18px; height:14px; flex:none; background:linear-gradient(currentColor,currentColor) 0 0/18px 2px no-repeat, linear-gradient(currentColor,currentColor) 3px 6px/12px 2px no-repeat, linear-gradient(currentColor,currentColor) 6px 12px/6px 2px no-repeat; }
.bt-filtrar b { position:absolute; top:-6px; right:-6px; min-width:20px; height:20px; border-radius:999px; background:var(--x-verde); color:#fff; font-size:11.5px; display:flex; align-items:center; justify-content:center; padding:0 5px; border:2px solid #fff; }
@media (max-width:420px){ .bt-filtrar-t { display:none; } .bt-filtrar { width:54px; justify-content:center; padding:0; } }
.bt-filtros { background:#fff; border:1px solid var(--x-linea); border-radius:14px; padding:10px; margin-bottom:12px; box-shadow:var(--bt-sombra); animation:btPop .14s ease-out; }
.bt-filtros-g { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:8px; }
.bt-filtros .bt-sel { box-shadow:none; background:var(--x-fondo); }

/* ── Estados y vacíos ────────────────────────────────────────────────────────── */
.bt-cargando { display:flex; justify-content:center; gap:6px; padding:40px 0; }
.bt-cargando span { width:9px; height:9px; border-radius:50%; background:var(--x-menta); animation:btPunto 1s infinite ease-in-out; }
.bt-cargando span:nth-child(2) { animation-delay:.15s; } .bt-cargando span:nth-child(3) { animation-delay:.3s; }
@keyframes btPunto { 0%,80%,100% { transform:scale(.6); opacity:.4; } 40% { transform:scale(1); opacity:1; } }
.bt-vacio { background:#fff; border:1px dashed #d6d0c2; border-radius:16px; padding:34px 18px; text-align:center; color:var(--x-gris); font-size:14px; line-height:1.5; }
.bt-vacio-i { display:block; font-size:30px; margin-bottom:8px; }
.bt-vacio-s { color:var(--x-gris); font-size:13px; line-height:1.45; text-align:center; padding:6px 4px; }
.bt-alerta { display:flex; gap:10px; align-items:center; width:100%; text-align:left; background:var(--x-al-bg); border:1px solid #f0d6a4; color:#6d4300; border-radius:14px;
  padding:10px 14px; font:inherit; font-size:13.5px; line-height:1.4; margin-bottom:12px; }
.bt-alerta > span:first-child { font-size:18px; flex:none; }
.bt-alerta > span:nth-child(2) { flex:1; }
.bt-alerta-b { cursor:pointer; } .bt-alerta-b:hover { border-color:#e3b968; }

.bt-est { flex:none; display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 9px; border-radius:999px; font-size:11.5px; font-weight:700; letter-spacing:.02em; white-space:nowrap;
  background:var(--x-ne-bg); color:var(--x-ne); }
.bt-est::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.est-en_curso, .est-c-en_curso { background:#e3f1f5; color:var(--bt-curso); }
.est-en_revision, .est-c-pendiente, .est-v-al { background:var(--x-al-bg); color:var(--x-al); }
.est-realizada, .est-c-cumplido, .est-v-ok { background:var(--x-ok-bg); color:var(--x-ok); }
.est-v-cr { background:var(--x-cr-bg); color:var(--x-cr); }

/* ── Tarjeta de actividad ────────────────────────────────────────────────────── */
.bt-card { position:relative; background:#fff; border:1px solid var(--x-linea); border-radius:16px; padding:12px 14px; display:flex; flex-direction:column; gap:6px;
  box-shadow:var(--bt-sombra); cursor:pointer; transition:box-shadow .15s, transform .15s, border-color .15s; outline:none; }
.bt-card::before { content:''; position:absolute; left:-1px; top:14px; bottom:14px; width:3px; border-radius:0 3px 3px 0; background:var(--c, var(--x-verde)); }
.bt-card:hover { box-shadow:var(--bt-sombra-h); border-color:#d9d2c3; }
.bt-card:focus-visible { box-shadow:0 0 0 3px rgba(143,196,177,.5), var(--bt-sombra); }
.bt-card.atrasada::before { background:var(--bt-tarde); }
.bt-card.apagada { opacity:.7; }
.bt-card-top { display:flex; align-items:center; gap:8px; min-height:24px; }
.bt-fr { width:26px; height:26px; border-radius:8px; background:var(--x-crema); display:flex; align-items:center; justify-content:center; font-size:14px; flex:none; }
.bt-card-cop { flex:1; min-width:0; font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--x-gris); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-card-t { font-family:var(--x-serif); font-size:16.5px; font-weight:600; color:var(--x-navy); line-height:1.3; margin:0; overflow-wrap:anywhere;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.bt-meta { display:flex; flex-wrap:wrap; gap:4px 12px; font-size:13px; color:var(--x-gris); }
.bt-meta > span { display:inline-flex; align-items:center; gap:5px; min-width:0; }
.bt-fecha::before { content:''; width:12px; height:12px; flex:none; border:1.6px solid currentColor; border-radius:3px; border-top-width:3px; opacity:.75; }
.bt-fecha.tarde { color:var(--bt-tarde); font-weight:600; }
.bt-resp::before { content:''; width:12px; height:12px; flex:none; border-radius:50%; background:radial-gradient(circle at 50% 35%, currentColor 0 3px, transparent 3.5px), radial-gradient(circle at 50% 115%, currentColor 0 6px, transparent 6.5px); opacity:.7; }
.bt-resp { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.bt-avance { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.bt-avance > div { height:6px; background:#eef0ec; border-radius:3px; overflow:hidden; }
.bt-avance > div span { display:block; height:100%; background:linear-gradient(90deg, var(--x-menta), var(--x-verde)); border-radius:3px; }
.bt-avance b { font-size:12px; color:var(--x-navy); font-variant-numeric:tabular-nums; }
.bt-card-pie { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-top:2px; }
.bt-card-pie .bt-meta { flex:1 1 auto; min-width:0; padding-bottom:6px; }
.bt-ic-n { font-size:12.5px; }
.bt-ics { display:flex; gap:10px; font-size:12.5px; color:var(--x-gris); min-width:0; }
.bt-mv { display:flex; gap:6px; flex:none; }
.bt-mvb { min-height:36px; min-width:36px; padding:0 12px; border-radius:10px; border:1px solid var(--x-linea); background:#fff; font:inherit; font-size:13px; font-weight:600; color:var(--x-navy2); cursor:pointer; white-space:nowrap; }
.bt-mvb:hover { border-color:var(--x-navy2); }
.bt-mvb.sig { background:var(--x-navy); border-color:var(--x-navy); color:#fff; }
.bt-mvb.sig:hover { background:#1a343b; }
.bt-ult { font-size:12.5px; color:var(--x-gris); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Manija de arrastre (puntos dibujados con CSS) */
.bt-manija { width:30px; height:30px; flex:none; margin:-4px -6px -4px 0; border-radius:8px; cursor:grab; touch-action:none; user-select:none;
  background:radial-gradient(circle, var(--x-gris2) 1.6px, transparent 2px) 0 0/8px 8px; background-origin:content-box; padding:7px 9px; opacity:.8; }
.bt-manija:hover { background-color:var(--x-fondo); opacity:1; }
@media (pointer:fine){ .bt-movible, .bt-cc[data-id] { cursor:grab; } }
.bt-fantasma { position:fixed !important; left:0; top:0; z-index:2000; pointer-events:none; box-shadow:0 18px 40px rgba(20,30,34,.3) !important; opacity:.96; margin:0; }
.bt-origen { opacity:.3; }
body.bt-arrastrando, body.bt-arrastrando * { cursor:grabbing !important; user-select:none; }

/* ── Tablero ─────────────────────────────────────────────────────────────────── */
.bt-resumen { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-bottom:12px; }
/* «Ejecutadas»: en el celular es la 4.ª ficha (el botón de la cabecera robaba ancho al título); en PC va arriba. */
@media (max-width:899px){ .bt-acc .bt-ejec { display:none; } .bt-resumen .bt-kpi { padding:9px 8px 10px; } .bt-resumen .bt-kpi b { font-size:21px; } .bt-resumen .bt-kpi span { font-size:11px; letter-spacing:-.01em; } }
@media (min-width:900px){ .bt-resumen { display:none; } }   /* en PC las columnas ya dicen cuántas hay */
.bt-kpi { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-height:64px; padding:10px 12px; border-radius:14px; border:1px solid var(--x-linea);
  background:#fff; font:inherit; cursor:pointer; text-align:left; box-shadow:var(--bt-sombra); overflow:hidden; transition:background .15s, border-color .15s; }
.bt-kpi::after { content:''; position:absolute; left:12px; right:12px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:var(--c); opacity:.35; }
.bt-kpi b { font-family:var(--x-serif); font-size:24px; line-height:1; color:var(--x-navy); font-variant-numeric:tabular-nums; }
.bt-kpi span { font-size:12px; color:var(--x-gris); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.bt-kpi.activo { border-color:var(--c); box-shadow:inset 0 0 0 1px var(--c), var(--bt-sombra); }
.bt-kpi.activo::after { opacity:1; }
.bt-kpi.drop, .bt-ejec.drop { background:#e7efec; border-color:var(--x-verde); }
@media (min-width:900px){ .bt-kpi { cursor:default; } .bt-kpi.activo { border-color:var(--x-linea); box-shadow:var(--bt-sombra); } .bt-kpi::after { opacity:1; } }

.bt-pipe { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
@media (max-width:899px){
  .bt-pipe { grid-template-columns:1fr; }
  .bt-pipe .bt-col { display:none; }
  .bt-pipe[data-movil="pendiente_atencion"] [data-col="pendiente_atencion"], .bt-pipe[data-movil="programada"] [data-col="programada"], .bt-pipe[data-movil="en_curso"] [data-col="en_curso"], .bt-pipe[data-movil="en_revision"] [data-col="en_revision"] { display:block; }
  .bt-col { background:transparent !important; }
  .bt-col-h { display:none !important; }
  .bt-col-b { padding:0 !important; }
}
.bt-col { background:#f2efe7; border-radius:18px; min-width:0; transition:box-shadow .15s, background .15s; }
.bt-col.drop { background:#e5eee9; box-shadow:inset 0 0 0 2px var(--c); }
.bt-col-h { display:flex; align-items:center; gap:8px; padding:14px 14px 10px; }
.bt-col-h .pt { width:9px; height:9px; border-radius:50%; background:var(--c); }
.bt-col-h .t { font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--x-texto); }
.bt-col-s { font-size:11.5px; color:var(--x-gris); }
.bt-col-h .n { margin-left:auto; background:#fff; border-radius:999px; padding:2px 9px; font-size:12px; font-weight:700; color:var(--x-gris); box-shadow:0 1px 2px rgba(0,0,0,.08); }
.bt-col-b { display:flex; flex-direction:column; gap:10px; padding:0 10px 12px; min-height:90px; }
.bt-col-b .bt-card { --c:var(--cc); }
[data-col="programada"] { --cc:var(--bt-prog); } [data-col="en_curso"] { --cc:var(--bt-curso); } [data-col="en_revision"] { --cc:var(--bt-rev); }
.bt-col-vacia { text-align:center; color:var(--x-gris); font-size:13px; line-height:1.45; padding:22px 12px; border:1.5px dashed #d3cbbb; border-radius:14px; }
.bt-link { border:0; background:none; font:inherit; font-size:13px; font-weight:600; color:var(--x-navy2); cursor:pointer; padding:10px 4px; text-align:center; border-radius:10px; }
.bt-link:hover { background:rgba(255,255,255,.7); }

.bt-mes { display:flex; align-items:center; gap:8px; font-family:var(--x-serif); color:var(--x-navy); font-size:18px; margin:18px 0 10px; }
.bt-mes > span::first-letter { text-transform:uppercase; }
.bt-mes > span { display:inline-block; }
.bt-mes::after { content:''; flex:1; height:1px; background:var(--x-linea); }
.bt-mes small { font-family:inherit; font-size:12px; color:var(--x-gris); background:var(--x-crema); border-radius:999px; padding:2px 9px; }
.bt-grid { display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:700px){ .bt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1200px){ .bt-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.bt-grid .bt-card { --c:var(--x-verde); }

/* Panel genérico (servicios públicos) */
.bt-panel { background:#fff; border:1px solid var(--x-linea); border-radius:16px; padding:14px; margin-bottom:12px; box-shadow:var(--bt-sombra); }
.bt-panel-h { display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; }
.bt-panel-h h3 { font-size:17px; margin:0; } .bt-panel-h small { font-family:system-ui, sans-serif; font-size:12.5px; color:var(--x-gris); font-weight:400; }

/* ── Botón flotante (celular) ────────────────────────────────────────────────── */
.bt-fab { display:none; }
@media (max-width:760px){
  .bt-fab { display:flex; align-items:center; gap:8px; position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:50; height:56px; padding:0 22px 0 18px;
    border-radius:18px; border:0; background:var(--x-navy); color:#fff; font:inherit; font-size:15px; font-weight:700; box-shadow:0 10px 26px rgba(34,65,74,.38); cursor:pointer; }
  .bt-fab span { font-size:24px; line-height:1; font-weight:400; }
  .bt-fab:active { transform:scale(.97); }
  .pane.hidden .bt-fab { display:none; }
}

/* ── Interruptor (botón role=switch) ─────────────────────────────────────────── */
.bt-toggle { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:12px 14px; border-radius:14px; border:1px solid var(--x-linea); background:var(--x-fondo);
  font:inherit; color:var(--x-texto); cursor:pointer; transition:background .15s, border-color .15s; }
.bt-toggle:hover { border-color:#d3cbbb; }
.bt-toggle:focus-visible { outline:2px solid var(--x-menta); outline-offset:2px; }
.bt-toggle[aria-checked="true"] { background:#eef6f2; border-color:#bfdccf; }
.bt-tg-i { width:38px; height:38px; flex:none; border-radius:10px; background:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.bt-tg-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.bt-tg-t b { font-size:14.5px; color:var(--x-navy); }
.bt-tg-t small { font-size:12.5px; color:var(--x-gris); line-height:1.35; }
.bt-tg-sw { width:52px; height:32px; flex:none; border-radius:999px; background:#c6cfcd; position:relative; transition:background .18s; }
.bt-tg-sw i { position:absolute; top:3px; left:3px; width:26px; height:26px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .18s cubic-bezier(.3,.7,.4,1); }
.bt-toggle[aria-checked="true"] .bt-tg-sw { background:var(--x-verde); }
.bt-toggle[aria-checked="true"] .bt-tg-sw i { transform:translateX(20px); }
.bt-toggle[aria-checked="true"] .bt-tg-sw i::after { content:''; position:absolute; left:9px; top:6px; width:6px; height:11px; border:solid var(--x-verde); border-width:0 2px 2px 0; transform:rotate(45deg); }

/* ── Formulario ──────────────────────────────────────────────────────────────── */
#sgxHoja .x-campo > span em { font-style:normal; font-weight:500; color:var(--x-gris2); }
#sgxHoja .x-campo select { appearance:none; -webkit-appearance:none; padding-right:38px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236c7a7c' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center; }
#sgxHoja .x-campo input, #sgxHoja .x-campo select, #sgxHoja .x-campo textarea { border-radius:12px; min-height:48px; }
.bt-2c { display:grid; grid-template-columns:1fr; gap:12px; }
@media (min-width:520px){ .bt-2c { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.bt-mas { border:1px solid var(--x-linea); border-radius:14px; background:#fff; }
.bt-mas summary { list-style:none; cursor:pointer; min-height:48px; display:flex; align-items:center; gap:10px; padding:0 14px; font-weight:600; font-size:14.5px; color:var(--x-navy); }
.bt-mas summary::-webkit-details-marker { display:none; }
.bt-mas summary::after { content:''; margin-left:auto; width:8px; height:8px; border:solid var(--x-gris); border-width:0 2px 2px 0; transform:rotate(45deg); transition:transform .15s; }
.bt-mas[open] summary::after { transform:rotate(-135deg); }
.bt-mas[open] summary { border-bottom:1px solid var(--x-linea); }
.bt-mas-c { display:flex; flex-direction:column; gap:12px; padding:12px 14px 14px; }
.x-btn.confirmar { background:var(--x-cr) !important; border-color:var(--x-cr) !important; color:#fff !important; }

/* ── Ficha (hoja) ────────────────────────────────────────────────────────────── */
#sgxHoja .x-caja.bf { max-width:680px; }
/* .x-cuerpo es flex en columna con scroll: sin esto los bloques con overflow:hidden (datos) se aplastaban a 2 px. */
#sgxHoja .x-cuerpo > * { flex-shrink:0; }
#sgxHoja .bf-sec > div > .bit-fotos, #sgxHoja .bf-reg .bit-fotos { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
#sgxHoja .x-caja.bf .x-cuerpo { gap:16px; background:linear-gradient(#fbfaf7, #fff 160px); }
.bf-cab { display:flex; flex-direction:column; gap:6px; }
.bf-chips { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.bf-chip { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 10px; border-radius:999px; background:var(--x-crema); font-size:12.5px; font-weight:600; color:var(--x-navy2); }
.bf-candado { display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:999px; font-size:11.5px; font-weight:700; background:#eceff0; color:var(--x-gris); }
.bf-candado.abierto { background:var(--x-al-bg); color:var(--x-al); }
.bf-tit { font-family:var(--x-serif); font-size:22px; font-weight:600; line-height:1.25; color:var(--x-navy); overflow-wrap:anywhere; }
.bf-cop { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--x-gris); }

.bf-pasos { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); position:relative; }
.bf-pasos li { position:relative; }
.bf-pasos li + li::before { content:''; position:absolute; top:13px; right:50%; width:100%; height:2px; background:var(--x-linea); }
.bf-pasos li + li:has(.hecho, .actual)::before { background:var(--x-verde); }
.bf-pasos button { position:relative; z-index:1; width:100%; border:0; background:none; padding:0; display:flex; flex-direction:column; align-items:center; gap:6px; font:inherit; cursor:pointer; color:var(--x-gris); }
.bf-pasos button:disabled { cursor:default; }
.bf-pasos button:not(:disabled):hover i { border-color:var(--x-navy2); }
.bf-pasos i { width:28px; height:28px; border-radius:50%; border:2px solid var(--x-linea); background:#fff; display:flex; align-items:center; justify-content:center; transition:.15s; }
.bf-pasos .hecho i { background:var(--x-verde); border-color:var(--x-verde); }
.bf-pasos .hecho i::after { content:''; width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0; transform:translateY(-1px) rotate(45deg); }
.bf-pasos .actual i { border-color:var(--x-navy); box-shadow:0 0 0 4px rgba(34,65,74,.12); }
.bf-pasos .actual i::after { content:''; width:10px; height:10px; border-radius:50%; background:var(--x-navy); }
.bf-pasos span { font-size:11.5px; font-weight:600; text-align:center; line-height:1.2; }
.bf-pasos .actual span { color:var(--x-navy); font-weight:700; }

.bf-datos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--x-linea); border:1px solid var(--x-linea); border-radius:14px; overflow:hidden; }
.bf-dato { background:#fff; padding:10px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.bf-dato span { display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--x-gris); }
.bf-dato span i { font-style:normal; font-size:13px; letter-spacing:0; }
.bf-dato b { font-size:14px; font-weight:600; color:var(--x-texto); overflow-wrap:anywhere; }
.bf-dato:first-child { grid-column:1 / -1; }
.bf-dato:last-child:nth-child(even) { grid-column:1 / -1; }   /* el primero ocupa la fila: si quedan impares, el último también */
.bf-desc { white-space:pre-wrap; font-size:14.5px; line-height:1.55; background:#fff; border:1px solid var(--x-linea); border-radius:14px; padding:12px 14px; }
.bf-nota { background:#eef3f1; border:1px solid #cfdcd8; border-radius:14px; padding:12px 14px; font-size:13.5px; color:var(--x-navy2); line-height:1.45; }

.bf-sec { display:flex; flex-direction:column; gap:10px; }
.bf-sec-h { display:flex; align-items:center; gap:8px; }
.bf-sec-h h5 { margin:0; font-family:var(--x-serif); font-size:16px; font-weight:600; color:var(--x-navy); }
.bf-sec-h::after { content:''; flex:1; height:1px; background:var(--x-linea); order:3; }
.bf-sec-h .bt-n { order:2; background:var(--x-crema); color:var(--x-navy2); }

/* Línea de tiempo de avances */
.bf-linea { list-style:none; margin:0; padding:0 0 0 18px; position:relative; display:flex; flex-direction:column; gap:12px; }
.bf-linea::before { content:''; position:absolute; left:5px; top:8px; bottom:8px; width:2px; background:linear-gradient(var(--x-menta), var(--x-linea)); border-radius:2px; }
.bf-reg { position:relative; background:#fff; border:1px solid var(--x-linea); border-radius:14px; padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.bf-reg::before { content:''; position:absolute; left:-18px; top:14px; width:12px; height:12px; border-radius:50%; background:#fff; border:3px solid var(--x-verde); }
.bf-reg-h { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.bf-reg-h b { font-size:13.5px; color:var(--x-navy); }
.bf-reg-h span { font-size:12.5px; color:var(--x-gris); }
.bf-reg-ed { margin-left:auto; border:0; background:none; font:inherit; font-size:12.5px; font-weight:600; color:var(--x-navy2); cursor:pointer; padding:6px 8px; border-radius:8px; }
.bf-reg-ed:hover { background:var(--x-fondo); }
.bf-reg p { margin:0; white-space:pre-wrap; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.bf-reg .bit-fotos { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.bf-linea > .bf-reg:has(.bf-comp) { padding:0; border:0; background:none; }
.bf-add { display:flex; align-items:center; justify-content:center; gap:8px; min-height:50px; width:100%; border-radius:14px; border:1.5px dashed #b9d6ca; background:#f4faf7;
  font:inherit; font-size:14.5px; font-weight:700; color:var(--x-ok); cursor:pointer; }
.bf-add span { font-size:20px; font-weight:400; }
.bf-add:hover { background:#eaf5f0; border-color:var(--x-verde); }
.bf-subir { display:flex; align-items:center; justify-content:center; gap:6px; min-height:46px; border-radius:12px; border:1px solid var(--x-linea); background:#fff; font-size:14px; font-weight:600; color:var(--x-navy2); cursor:pointer; padding:0 12px; text-align:center; }
.bf-subir:hover { border-color:var(--x-navy2); }

/* Compositor de avances */
.bf-comp { display:flex; flex-direction:column; gap:12px; background:#fff; border:1px solid #bfdccf; border-radius:16px; padding:14px; box-shadow:0 0 0 4px rgba(143,196,177,.2); }
.bf-comp-h { font-family:var(--x-serif); font-size:16px; font-weight:600; color:var(--x-navy); }
.bf-camara { display:flex; align-items:center; gap:12px; min-height:58px; padding:8px 14px; border-radius:14px; background:var(--x-navy); color:#fff; cursor:pointer; }
.bf-camara > span:first-child { font-size:24px; }
.bf-camara > span:nth-child(2) { display:flex; flex-direction:column; }
.bf-camara b { font-size:14.5px; } .bf-camara small { font-size:12px; color:#cfe3dc; }
.bf-prev { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.bf-prev:empty { display:none; }
.bf-prev-i { position:relative; aspect-ratio:1; border-radius:10px; background:#e9ecea center/cover no-repeat; border:1px solid var(--x-linea); }
.bf-prev-i button { position:absolute; top:3px; right:3px; width:26px; height:26px; border-radius:50%; border:0; background:rgba(20,30,34,.72); color:#fff; font-size:15px; cursor:pointer; }
.bf-comp-b { display:flex; gap:8px; flex-wrap:wrap; }
.bf-comp-b .x-btn { flex:1 1 auto; }

/* Programadas atrasadas */
.bt-at { display:flex; flex-direction:column; gap:8px; padding:12px; border:1px solid var(--x-linea); border-radius:14px; background:#fff; }
.bt-at-t { display:flex; flex-direction:column; gap:2px; cursor:pointer; }
.bt-at-t b { font-size:14.5px; color:var(--x-navy); } .bt-at-t small { font-size:12.5px; color:var(--x-gris); }
.bt-at-b { display:flex; gap:8px; } .bt-at-b .x-btn { flex:1; }

/* ── Calendario ──────────────────────────────────────────────────────────────── */
.bt-cal-nav { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.bt-cal-r { flex:1; text-align:center; font-family:var(--x-serif); font-size:17px; color:var(--x-navy); font-weight:600; }
.bt-ic { width:44px; height:44px; flex:none; border-radius:12px; border:1px solid var(--x-linea); background:#fff; font-size:22px; line-height:1; color:var(--x-navy); cursor:pointer; box-shadow:var(--bt-sombra); }
.bt-ic:hover { border-color:var(--x-navy2); }
.bt-cal-nav .x-btn.mini { min-height:44px; border-radius:12px; }

/* Celular: tira de 14 días */
.bt-tira { display:flex; gap:6px; overflow-x:auto; scroll-snap-type:x proximity; padding:4px 2px 10px; margin:0 -2px 6px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.bt-tira::-webkit-scrollbar { display:none; }
.bt-td { flex:0 0 calc((100% - 36px) / 7); min-width:44px; scroll-snap-align:start; display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 0 7px;
  border-radius:14px; border:1px solid var(--x-linea); background:#fff; font:inherit; cursor:pointer; color:var(--x-texto); transition:background .15s, border-color .15s; }
.bt-td .dw { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--x-gris); }
.bt-td .dn { font-family:var(--x-serif); font-size:19px; font-weight:600; line-height:1.1; color:var(--x-navy); }
.bt-td .pt { min-width:18px; height:18px; border-radius:999px; font-size:10.5px; font-weight:700; display:flex; align-items:center; justify-content:center; color:transparent; }
.bt-td .pt.si { background:var(--x-menta); color:var(--x-navy); padding:0 5px; }
.bt-td.hoy { border-color:var(--x-verde); }
.bt-td.hoy .dw { color:var(--x-verde); }
.bt-td.pasado:not(.activo) { background:#f7f6f2; }
.bt-td.pasado:not(.activo) .dn { color:var(--x-gris2); }
.bt-td.activo { background:var(--x-navy); border-color:var(--x-navy); box-shadow:0 6px 16px rgba(34,65,74,.25); }
.bt-td.activo .dw, .bt-td.activo .dn { color:#fff; }
.bt-td.activo .pt.si { background:#fff; }
.bt-td.drop { background:#e5eee9; border-color:var(--x-verde); box-shadow:inset 0 0 0 2px var(--x-verde); }
.bt-dia-sel { display:flex; flex-direction:column; gap:10px; }
.bt-dia-sel-h { display:flex; align-items:baseline; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.bt-dia-sel-h h3 { margin:0; font-size:19px; }
.bt-dia-sel-h span { font-size:12.5px; color:var(--x-gris); }

/* Grupo por copropiedad + tarjeta del calendario */
.bt-cg { display:flex; flex-direction:column; gap:6px; }
.bt-cg-h { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--x-gris); padding:2px 2px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-cc { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; background:#fff; border:1px solid var(--x-linea); border-left:3px solid var(--bt-prog);
  cursor:pointer; box-shadow:0 1px 2px rgba(34,65,74,.05); transition:box-shadow .15s; min-width:0; }
.bt-cc:hover { box-shadow:var(--bt-sombra-h); }
.bt-cc.venc { border-left-color:var(--bt-rev); background:#fffaf1; }
.bt-cc-i { font-size:17px; flex:none; }
.bt-cc-t { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.bt-cc-t b { font-size:14px; font-weight:600; color:var(--x-navy); line-height:1.3; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.bt-cc-t small { font-size:12px; color:var(--x-gris); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-cc .bt-manija { margin:0 -4px 0 0; }

/* PC: semana en columnas */
.bt-semana { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; align-items:stretch; }
.bt-dia { background:#f2efe7; border-radius:16px; min-height:320px; display:flex; flex-direction:column; transition:background .15s, box-shadow .15s; min-width:0; }
.bt-dia.pasado { background:#f6f5f1; }
.bt-dia.pasado .bt-dia-h .dn { color:var(--x-gris2); }
.bt-dia.hoy { background:#e9f3ee; box-shadow:inset 0 0 0 2px var(--x-verde); }
.bt-dia.drop { background:#dfece6; box-shadow:inset 0 0 0 2px var(--x-navy2); }
.bt-dia-h { display:flex; align-items:center; gap:6px; padding:10px 10px 8px; position:relative; }
.bt-dia-h .dw { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--x-gris); }
.bt-dia-h .dn { font-family:var(--x-serif); font-size:20px; font-weight:600; color:var(--x-navy); }
.bt-dia.hoy .dw { color:var(--x-verde); }
.bt-dia-h .bt-n { background:#fff; color:var(--x-navy2); }
.bt-dia-mas { margin-left:auto; width:30px; height:30px; border-radius:9px; border:0; background:#fff; color:var(--x-navy); font-size:18px; cursor:pointer; opacity:0; transition:opacity .15s; box-shadow:0 1px 2px rgba(0,0,0,.08); }
.bt-dia:hover .bt-dia-mas, .bt-dia-mas:focus-visible { opacity:1; }
@media (hover:none){ .bt-dia-mas { opacity:1; } }
.bt-dia-b { display:flex; flex-direction:column; gap:8px; padding:0 8px 10px; flex:1; }
.bt-dia .bt-cc { padding:8px 9px; gap:7px; }
.bt-dia .bt-cc-i { font-size:14px; }
.bt-dia .bt-cc-t b { font-size:13px; -webkit-line-clamp:3; }
.bt-dia .bt-cc .bt-manija { display:none; }
.bt-dia .bt-cg-h { font-size:10.5px; }

/* Servicios públicos: barras reutilizadas de informes.css */
.bt-pane .bit-barras { height:140px; }

/* ── Calendario: selector Semana | Mes y vista de mes (1-oct-2026) ─────────────── */
.bt-cal-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.bt-cal-bar .bt-cal-nav { flex:1 1 320px; margin:0; }
.bt-seg { display:grid; grid-template-columns:1fr 1fr; background:#fff; border:1px solid var(--x-linea); border-radius:14px; padding:4px; gap:4px; box-shadow:var(--bt-sombra); flex:0 0 auto; min-width:200px; }
.bt-seg button { min-height:38px; border:0; border-radius:10px; background:transparent; font:inherit; font-size:14px; font-weight:600; color:var(--x-gris); cursor:pointer; padding:0 16px; }
.bt-seg button.activo { background:var(--x-navy); color:#fff; box-shadow:0 2px 6px rgba(34,65,74,.25); }
@media (max-width:640px){ .bt-seg { flex:1 1 100%; } .bt-cal-bar .bt-cal-nav { flex-basis:100%; } }
.bt-tira .bt-td { flex:1 1 0; }
.bt-mes-dw { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin-bottom:6px; }
.bt-mes-dw span { text-align:center; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--x-gris); }
.bt-mes-g { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin-bottom:14px; }
/* Celular: celdas compactas */
.bt-mes-g:not(.pc) .bt-mc { aspect-ratio:1 / 1.05; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:12px;
  border:1px solid var(--x-linea); background:#fff; font:inherit; cursor:pointer; padding:0; transition:background .15s, border-color .15s; }
.bt-mes-g:not(.pc) .bt-mc .dn { font-family:var(--x-serif); font-size:16px; font-weight:600; color:var(--x-navy); line-height:1; }
.bt-mes-g:not(.pc) .bt-mc .pt { min-width:16px; height:16px; border-radius:999px; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; color:transparent; }
.bt-mes-g:not(.pc) .bt-mc .pt.si { background:var(--x-menta); color:var(--x-navy); padding:0 4px; }
.bt-mes-g .bt-mc.fuera { opacity:.38; }
.bt-mes-g:not(.pc) .bt-mc.pasado:not(.activo) { background:#f7f6f2; }
.bt-mes-g:not(.pc) .bt-mc.hoy { border-color:var(--x-verde); box-shadow:inset 0 0 0 1px var(--x-verde); }
.bt-mes-g:not(.pc) .bt-mc.activo { background:var(--x-navy); border-color:var(--x-navy); box-shadow:0 6px 14px rgba(34,65,74,.25); }
.bt-mes-g:not(.pc) .bt-mc.activo .dn { color:#fff; }
.bt-mes-g:not(.pc) .bt-mc.activo .pt.si { background:#fff; }
.bt-mes-g .bt-mc.drop { background:#e5eee9 !important; border-color:var(--x-verde) !important; box-shadow:inset 0 0 0 2px var(--x-verde) !important; }
/* PC: celdas con contenido */
.bt-mes-g.pc .bt-mc { background:#f2efe7; border-radius:14px; min-height:132px; display:flex; flex-direction:column; min-width:0; transition:background .15s, box-shadow .15s; }
.bt-mes-g.pc .bt-mc.pasado { background:#f6f5f1; }
.bt-mes-g.pc .bt-mc.hoy { background:#e9f3ee; box-shadow:inset 0 0 0 2px var(--x-verde); }
.bt-mc-h { display:flex; align-items:center; gap:6px; padding:8px 8px 4px; }
.bt-mc-h .dn { font-family:var(--x-serif); font-size:17px; font-weight:600; color:var(--x-navy); }
.bt-mes-g.pc .bt-mc.hoy .dn { color:var(--x-verde); }
.bt-mes-g.pc .bt-mc:hover .bt-dia-mas { opacity:1; }
.bt-mc-b { display:flex; flex-direction:column; gap:5px; padding:0 6px 8px; flex:1; min-width:0; }
.bt-mc-b .bt-cc { padding:6px 7px; gap:6px; border-radius:9px; }
.bt-mc-b .bt-cc-i { font-size:13px; }
.bt-mc-b .bt-cc-t b { font-size:12.5px; -webkit-line-clamp:2; }
.bt-mc-b .bt-cc-t small, .bt-mc-b .bt-cc .bt-manija { display:none; }
.bt-mc-mas { border:0; background:none; font:inherit; font-size:12px; font-weight:700; color:var(--x-navy2); cursor:pointer; text-align:left; padding:2px 4px; border-radius:6px; }
.bt-mc-mas:hover { background:#fff; }
/* 6-oct-2026: etapa «Pendiente de atención» (correos del buzón pqrs@ sin unidad). */
.est-pendiente_atencion { background:#f8e9ef; color:#9b3f62; }
.bt-card-de { font-size:12px; color:var(--x-gris); margin:-2px 0 6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-resumen.bt-res5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
@media (min-width:900px){ .bt-pipe.bt-pipe4 { grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* ── Resumen con semáforo (26-oct-2026, compactado el mismo día por pedido de Juan): filas densas tipo tabla ── */
.bt-pane { --sem-verde:#2e8b69; --sem-amarillo:#d1a12a; --sem-naranja:#e0782a; --sem-rojo:#c0392b; --sem-cerrada:#9aa8a6; }
.bt-sem-res { gap:6px; margin-bottom:8px; }
.bt-sem-res .bt-kpi { min-height:0; padding:7px 10px 8px; border-radius:10px; gap:1px; }
.bt-sem-res .bt-kpi b { font-size:19px; }
.bt-sem-res .bt-kpi.s-verde { --c:var(--sem-verde); } .bt-sem-res .bt-kpi.s-amarillo { --c:var(--sem-amarillo); }
.bt-sem-res .bt-kpi.s-naranja { --c:var(--sem-naranja); } .bt-sem-res .bt-kpi.s-rojo { --c:var(--sem-rojo); }
.bt-sem-k b { display:flex; align-items:center; gap:6px; }
.bt-sem-k b::before { content:''; width:9px; height:9px; border-radius:50%; background:var(--c); flex:none; }
.bt-sem-k span { font-size:11.5px; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:560px){ .bt-sem-res { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.bt-sem-fil { font-size:13px; color:var(--x-gris); margin:0 0 4px; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
/* Encabezado de fecha: una línea baja, sin la tipografía grande de los meses */
.bt-sr-dia { display:flex; align-items:center; gap:8px; margin:12px 2px 4px; font-size:12.5px; font-weight:700; color:var(--x-navy); }
.bt-sr-dia small { font-size:11px; font-weight:700; color:var(--x-gris); background:var(--x-crema); border-radius:999px; padding:1px 7px; }
.bt-sr-dia::after { content:''; flex:1; height:1px; background:var(--x-linea); }
.bt-sr-sec { display:flex; align-items:center; gap:8px; margin:22px 2px 0; padding-top:12px; border-top:2px solid var(--x-linea); font-family:var(--x-serif); font-size:16px; color:var(--x-navy); }
.bt-sr-sec small { font-family:inherit; font-size:11.5px; font-weight:700; color:var(--x-gris); background:var(--x-crema); border-radius:999px; padding:1px 8px; }
/* Lista = una tarjeta; cada fila una línea (PC) separada por un filete */
.bt-sr-lista { background:#fff; border:1px solid var(--x-linea); border-radius:10px; overflow:hidden; }
.bt-sr { --c:var(--sem-verde); display:grid; grid-template-columns:10px minmax(0,1.5fr) minmax(0,1fr) auto 7.2em; align-items:center; gap:10px;
  width:100%; min-height:38px; padding:5px 12px 5px 10px; border:0; border-top:1px solid var(--x-linea); border-left:4px solid var(--c);
  background:none; text-align:left; font:inherit; color:var(--x-texto); cursor:pointer; min-width:0; }
.bt-sr:first-child { border-top:0; }
.bt-sr:hover { background:#f7f6f2; }
.bt-sr:focus-visible { outline:2px solid var(--c); outline-offset:-2px; }
.bt-sr.s-amarillo { --c:var(--sem-amarillo); } .bt-sr.s-naranja { --c:var(--sem-naranja); }
.bt-sr.s-rojo { --c:var(--sem-rojo); background:#fdf7f6; } .bt-sr.s-rojo:hover { background:#fbefed; }
.bt-sr.s-cerrada { --c:var(--sem-cerrada); }
.bt-sr-luz { width:9px; height:9px; border-radius:50%; background:var(--c); }
.bt-sr.s-cerrada .bt-sr-luz { background:none; width:auto; height:auto; color:var(--sem-cerrada); font-size:11px; font-weight:700; line-height:1; }
.bt-sr.s-cerrada .bt-sr-luz::before { content:'✓'; }
.bt-sr-t { font-size:13.5px; font-weight:600; color:var(--x-navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bt-sr.s-cerrada .bt-sr-t { color:#4d5d61; font-weight:500; }
.bt-sr-m { font-size:12px; color:var(--x-gris); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bt-sr-e .bt-est { height:20px; padding:0 7px; font-size:10.5px; }
.bt-sr-c { font-size:12px; font-weight:700; color:var(--c); text-align:right; white-space:nowrap; }
.bt-sr.s-verde .bt-sr-c, .bt-sr.s-cerrada .bt-sr-c { color:var(--x-gris); font-weight:600; }
.bt-sr-mas { display:block; margin:10px auto 0; }
/* Celular: dos líneas (título + fecha arriba; detalle + estado abajo) */
@media (max-width:700px){
  .bt-sr { grid-template-columns:10px minmax(0,1fr) auto; grid-template-areas:'luz t c' 'luz m e'; row-gap:2px; min-height:0; padding:7px 10px 7px 8px; }
  .bt-sr-luz { grid-area:luz; align-self:start; margin-top:5px; } .bt-sr-t { grid-area:t; } .bt-sr-m { grid-area:m; }
  .bt-sr-e { grid-area:e; justify-self:end; } .bt-sr-c { grid-area:c; }
}
