/* ═══════════════════════════════════════════════════════════════════════════
   GESTIÓN DOCUMENTAL + MUDANZAS (5-oct-2026). Complementa bitacora.css (.bt-*/.bf-*) e informes.css (.x-*, tokens --x-*).
   Prefijos propios: .ge-* (módulos de gestión) y .mz-* (mudanzas). Celular primero; sin tablas anchas.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Cabecera de vista ── */
.ge-tit { display:flex; align-items:center; gap:10px; min-width:0; }
.ge-tit h2 { margin:0; font-family:var(--x-serif); font-size:22px; font-weight:600; color:var(--x-navy); line-height:1.2; overflow-wrap:anywhere; }
.ge-buscar input { border:0 !important; box-shadow:none !important; background:none; font:inherit; font-size:16px; padding:0; min-height:24px; width:100%; color:var(--x-texto); }
.ge-buscar input:focus { outline:none; }
.ge-buscar::after { display:none; }
.ge-chips { display:flex; flex-wrap:nowrap; gap:6px; overflow-x:auto; padding:2px 2px 8px; margin-bottom:6px; scrollbar-width:none; }
.ge-chips::-webkit-scrollbar { display:none; }
.ge-chips .x-chip { flex:none; }
.ge-n { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; margin-left:4px; border-radius:999px; background:var(--x-al); color:#fff; font-size:11.5px; font-weight:700; }
.x-chip.activo .ge-n { background:#fff; color:var(--x-navy); }
.ge-sep { flex:none; width:1px; background:var(--x-linea); margin:6px 2px; }
.ge-reint { margin-top:12px; }

/* ── Tarjetas ── */
.ge-card.ge-al::before { background:var(--x-al) !important; }
.ge-card.ge-cr::before { background:var(--x-cr) !important; }
.est-ge-no { background:var(--x-ne-bg); color:var(--x-ne); }
.est-ge-ok { background:#e7efec; color:var(--x-navy2); }
.ge-vig { height:5px; border-radius:3px; background:#eef0ec; overflow:hidden; }
.ge-vig span { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg, var(--x-menta), var(--x-verde)); }
.ge-vig.al span { background:linear-gradient(90deg, #f0c674, var(--x-al)); }
.ge-vig.cr span { background:var(--x-cr); width:100% !important; }
.ge-ics { display:flex; flex-wrap:wrap; gap:4px 12px; font-size:12.5px; color:var(--x-gris); min-width:0; }
.ge-ics > span { white-space:nowrap; }
.ge-falta { color:var(--x-al); font-weight:600; }
.ge-resumen { margin:0; font-size:13.5px; line-height:1.45; color:var(--x-texto); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.ge-resumen em { color:var(--x-gris); }
.ge-fecha-b { width:38px; height:38px; flex:none; border-radius:10px; background:var(--x-navy); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
.ge-fecha-b b { font-size:16px; } .ge-fecha-b small { font-size:10px; text-transform:uppercase; letter-spacing:.04em; opacity:.85; margin-top:2px; }
.ge-tags { display:flex; flex-wrap:wrap; gap:4px; }
.ge-tags span { font-size:11.5px; padding:3px 8px; border-radius:999px; background:var(--x-crema); color:var(--x-navy2); font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ge-estr { color:#c9822b; font-size:13px; letter-spacing:1px; flex:none; }
/* Ingresos vs gastos en la tarjeta del estado financiero */
.ge-ig { display:flex; flex-direction:column; gap:6px; }
.ge-ig > div { display:grid; grid-template-columns:62px minmax(0,1fr) auto; gap:8px; align-items:center; font-size:12.5px; }
.ge-ig span { color:var(--x-gris); font-weight:600; }
.ge-ig i { display:block; height:8px; border-radius:4px; background:#0e7f9e; min-width:3px; }
.ge-ig .g i { background:#c9822b; }
.ge-ig b { font-variant-numeric:tabular-nums; color:var(--x-navy); white-space:nowrap; }

/* ── Formulario por pasos ── */
#sgxHoja .ge-caja .x-cuerpo { display:flex; flex-direction:column; gap:14px; }
.ge-pasos { list-style:none; margin:0; padding:0; display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; }
.ge-pasos::-webkit-scrollbar { display:none; }
.ge-pasos li { flex:1 1 0; min-width:64px; }
.ge-pasos button { width:100%; border:0; background:none; padding:4px 2px; display:flex; flex-direction:column; align-items:center; gap:4px; font:inherit; color:var(--x-gris); cursor:pointer; }
.ge-pasos button:disabled { cursor:default; }
.ge-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; font-style:normal; font-size:13px; font-weight:700; }
.ge-pasos .hecho i { background:var(--x-verde); border-color:var(--x-verde); color:#fff; }
.ge-pasos .actual i { border-color:var(--x-navy); background:var(--x-navy); color:#fff; box-shadow:0 0 0 4px rgba(34,65,74,.12); }
.ge-pasos span { font-size:11.5px; font-weight:600; text-align:center; line-height:1.2; }
.ge-pasos .actual span { color:var(--x-navy); font-weight:700; }
.ge-paso { display:flex; flex-direction:column; gap:12px; min-width:0; }
.ge-paso .x-campo { min-width:0; }
.ge-paso .x-campo em, .ge-cifra em { font-style:normal; font-weight:400; color:var(--x-gris2); }
.ge-fichas { display:flex; flex-wrap:wrap; gap:6px; }
.ge-fichas .x-chip { min-height:44px; white-space:normal; text-align:left; line-height:1.25; padding:6px 14px; }
.ge-tipos .ge-fichas { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); }
.ge-nit { display:grid; grid-template-columns:minmax(0,1fr) 70px; gap:10px; }
.ge-3c { display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:560px){ .ge-3c { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.ge-rapidos { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:12.5px; color:var(--x-gris); margin-top:-4px; }
.ge-rapidos .x-chip { min-height:34px; font-size:12.5px; }
.ge-cifra input { font-variant-numeric:tabular-nums; }
.ge-quitar { color:var(--x-cr) !important; align-self:flex-start; }
.ge-decf, .ge-polf { display:flex; flex-direction:column; gap:10px; padding:12px; border:1px solid var(--x-linea); border-radius:14px; background:var(--x-fondo); }
.ge-decf + .ge-decf, .ge-polf + .ge-polf { margin-top:10px; }

/* ── Archivos ── */
.ge-archs { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.ge-archs li { display:flex; gap:6px; align-items:stretch; }
.ge-arch { flex:1; min-width:0; display:flex; align-items:center; gap:10px; padding:8px 12px; min-height:52px; border:1px solid var(--x-linea); border-radius:12px; background:#fff; font:inherit; text-align:left; cursor:pointer; color:var(--x-texto); }
.ge-arch:hover { border-color:var(--x-navy2); }
.ge-arch-i { font-size:22px; flex:none; }
.ge-arch-t { display:flex; flex-direction:column; min-width:0; }
.ge-arch-t b { font-size:13.5px; font-weight:600; color:var(--x-navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ge-arch-t small { font-size:12px; color:var(--x-gris); }
.ge-arch-x { flex:none; width:44px; border-radius:12px; border:1px solid var(--x-linea); background:#fff; color:var(--x-cr); font-size:20px; cursor:pointer; }
.ge-arch-x.confirmar { background:var(--x-cr); color:#fff; font-size:14px; }
.ge-subir { margin-top:2px; }
.ge-ver { display:flex; flex-direction:column; gap:6px; padding:10px 12px; border:1px dashed var(--x-linea); border-radius:12px; }
.ge-ver > div:first-child { display:flex; flex-direction:column; gap:2px; }
.ge-ver b { font-size:13.5px; color:var(--x-navy); } .ge-ver small { font-size:12px; color:var(--x-gris); }
.ge-hist { border-top:1px solid var(--x-linea); padding-top:10px; font-size:13px; color:var(--x-gris); }
.ge-hist summary { cursor:pointer; font-weight:600; color:var(--x-navy2); min-height:36px; display:flex; align-items:center; }
.ge-hist ol { margin:6px 0 0; padding-left:18px; display:flex; flex-direction:column; gap:6px; }
.ge-hist b { color:var(--x-texto); font-weight:600; }

/* ── Actas ── */
.ge-temas { margin:0; padding-left:20px; display:flex; flex-direction:column; gap:4px; font-size:14px; }
.ge-dec { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.ge-dec li { background:#fff; border:1px solid var(--x-linea); border-radius:14px; padding:10px 12px; display:flex; flex-direction:column; gap:8px; }
.ge-dec p { margin:0; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.ge-dec small { color:var(--x-gris); font-size:12.5px; }
.ge-dec-c { display:flex; align-items:center; gap:8px; flex-wrap:wrap; border:0; background:var(--x-fondo); border-radius:10px; padding:8px 10px; font:inherit; font-size:12.5px; color:var(--x-gris); text-align:left; cursor:pointer; min-height:44px; }
.ge-dec-c b { margin-left:auto; color:var(--x-navy); }
.ge-dec-c:hover { background:#eef5f2; }
.ge-ir { align-self:flex-start; }

/* ── Estados financieros ── */
.ge-cifras { 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; }
.ge-cifras > div { background:#fff; padding:10px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.ge-cifras span { font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--x-gris); }
.ge-cifras b { font-size:16px; font-variant-numeric:tabular-nums; color:var(--x-navy); overflow-wrap:anywhere; }
.ge-cifras .neg b { color:var(--x-al); }
.ge-cifras > div:nth-child(3) { grid-column:1 / -1; background:#f4f8f6; }

/* ── Proveedores ── */
.ge-pago { display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:14px; background:var(--x-navy); color:#fff; }
.ge-pago > div { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ge-pago small { font-size:12px; color:#cfe3dc; overflow-wrap:anywhere; }
.ge-pago b { font-size:20px; letter-spacing:.04em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.ge-pago .x-btn { flex:none; background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.ge-docs { display:flex; flex-direction:column; gap:6px; }
.ge-doc { border:1px solid var(--x-linea); border-radius:12px; background:#fff; padding:8px 10px; display:flex; flex-direction:column; gap:6px; }
.ge-doc-h { display:flex; align-items:center; gap:8px; min-height:32px; }
.ge-doc-h b { flex:1; min-width:0; font-size:13.5px; color:var(--x-navy); }
.ge-doc-h small { font-size:11.5px; font-weight:700; color:var(--x-al); }
.ge-doc-i { width:24px; height:24px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; background:var(--x-ne-bg); color:var(--x-ne); }
.ge-doc.ok .ge-doc-i { background:var(--x-ok-bg); color:var(--x-ok); }
.ge-doc.falta .ge-doc-i { background:var(--x-al-bg); color:var(--x-al); }
.ge-doc-sub { flex:none; width:40px; height:40px; border-radius:10px; border:1px solid var(--x-linea); display:flex; align-items:center; justify-content:center; font-size:18px; color:var(--x-navy); cursor:pointer; background:var(--x-fondo); }
.ge-doc-sub:hover { border-color:var(--x-navy2); }
.ge-doc .bt-vacio-s:empty { display:none; }
.ge-mini { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.ge-mini button { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 8px; align-items:center; text-align:left; border:1px solid var(--x-linea); border-radius:12px; background:#fff; padding:8px 12px; font:inherit; cursor:pointer; min-height:52px; }
.ge-mini b { font-size:13.5px; color:var(--x-navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ge-mini small { grid-column:1; font-size:12px; color:var(--x-gris); }
.ge-mini .bt-est { grid-row:1 / span 2; grid-column:2; }

/* ── Contratos: pólizas ── */
.ge-pol { border:1px solid var(--x-linea); border-left:4px solid var(--x-verde); border-radius:12px; background:#fff; padding:10px 12px; display:flex; flex-direction:column; gap:4px; }
.ge-pol.al { border-left-color:var(--x-al); } .ge-pol.cr { border-left-color:var(--x-cr); }
.ge-pol-h { display:flex; align-items:center; gap:8px; justify-content:space-between; flex-wrap:wrap; }
.ge-pol-h b { font-size:14px; color:var(--x-navy); }
.ge-pol small { font-size:12.5px; color:var(--x-gris); overflow-wrap:anywhere; }
.ge-pol-b { display:flex; gap:6px; flex-wrap:wrap; margin-top:4px; }
.ge-pol-b .bf-subir { flex:1 1 160px; min-height:40px; }
.ge-pol-b .x-btn { flex:none; }

/* ── Agenda de vencimientos ── */
.ge-res { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:640px){ .ge-res { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.ge-res3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ge-auto-linea { font-size:13px; color:var(--x-gris); margin:-4px 0 10px; line-height:1.5; }
.ge-ag { display:flex; flex-direction:column; gap:6px; margin-bottom:6px; }
.ge-ag-i { display:grid; grid-template-columns:46px minmax(0,1fr) auto; gap:10px; align-items:center; width:100%; text-align:left; border:1px solid var(--x-linea); border-left:4px solid var(--x-verde); border-radius:14px; background:#fff; padding:10px 12px; font:inherit; cursor:pointer; min-height:64px; }
.ge-ag-i:hover { box-shadow:0 6px 16px rgba(34,65,74,.08); }
.ge-ag-i.al { border-left-color:var(--x-al); } .ge-ag-i.cr { border-left-color:var(--x-cr); }
.ge-ag-d { display:flex; flex-direction:column; align-items:center; line-height:1; color:var(--x-navy); }
.ge-ag-d b { font-family:var(--x-serif); font-size:22px; } .ge-ag-d small { font-size:11px; text-transform:uppercase; color:var(--x-gris); margin-top:3px; }
.ge-ag-t { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ge-ag-t b { font-size:14px; color:var(--x-navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ge-ag-t small { font-size:12px; color:var(--x-gris); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ge-ag-s { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.ge-ag-s small { font-size:13px; }
@media (max-width:420px){ .ge-ag-i { grid-template-columns:40px minmax(0,1fr); } .ge-ag-s { grid-column:2; flex-direction:row; align-items:center; justify-content:flex-start; } }
.ge-auto { border:1px solid var(--x-linea); border-radius:14px; background:#fff; padding:12px 14px; display:flex; flex-direction:column; gap:6px; }
.ge-auto-h { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ge-auto-h b { font-size:15px; color:var(--x-navy); }
.ge-auto-h em { font-style:normal; font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; background:var(--x-al-bg); color:var(--x-al); }
.ge-auto p { margin:0; font-size:13px; line-height:1.45; color:var(--x-texto); }
.ge-auto p b { color:var(--x-navy2); }

/* ── Mudanzas ── */
.ge-aviso { font-size:13px; padding:10px 12px; border-radius:12px; background:var(--x-ok-bg); color:var(--x-ok); }
.ge-aviso.al { background:var(--x-al-bg); color:var(--x-al); } .ge-aviso.cr { background:var(--x-ne-bg); color:var(--x-ne); }
.mz-check { display:flex; flex-direction:column; gap:6px; }
.mz-ck { display:flex; align-items:flex-start; gap:12px; width:100%; text-align:left; padding:12px 14px; min-height:56px; border:1px solid var(--x-linea); border-radius:14px; background:#fff; font:inherit; cursor:pointer; color:var(--x-texto); }
.mz-ck:disabled { cursor:default; }
.mz-ck i { width:26px; height:26px; flex:none; border-radius:8px; border:2px solid var(--x-linea); background:#fff; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.mz-ck.ok { border-color:#bfdccf; background:#f3faf6; }
.mz-ck.ok i { background:var(--x-verde); border-color:var(--x-verde); }
.mz-ck.ok i::after { content:''; width:6px; height:12px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:translateY(-1px) rotate(45deg); }
.mz-ck span { display:flex; flex-direction:column; gap:3px; min-width:0; }
.mz-ck b { font-size:14px; font-weight:600; color:var(--x-navy); }
.mz-ck small { font-size:12.5px; color:var(--x-gris); line-height:1.4; }
.mz-ck small.al { color:var(--x-al); font-weight:600; } .mz-ck small.ok { color:var(--x-ok); font-weight:600; }
.mz-fr .x-chip { display:flex; flex-direction:column; align-items:flex-start; gap:1px; }
.mz-fr .x-chip small { font-size:11.5px; opacity:.8; }
.mz-cfg { display:flex; flex-direction:column; gap:12px; max-width:860px; }
.mz-dias { display:grid; grid-template-columns:1fr; gap:8px; margin-top:10px; }
@media (min-width:760px){ .mz-dias { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.mz-dia { border:1px solid var(--x-linea); border-radius:12px; padding:10px 12px; display:flex; flex-direction:column; gap:6px; background:var(--x-fondo); }
.mz-dia > b { font-size:14px; color:var(--x-navy); }
.mz-frf, .mz-clf { display:flex; align-items:center; gap:6px; margin-bottom:6px; min-width:0; }
.mz-frf input { flex:1 1 0; min-width:0; min-height:44px; border:1px solid var(--x-linea); border-radius:10px; padding:4px 8px; font:inherit; font-size:16px; background:#fff; }
.mz-clf input { flex:1; min-width:0; min-height:44px; border:1px solid var(--x-linea); border-radius:10px; padding:4px 12px; font:inherit; font-size:16px; background:#fff; }
.mz-frf span { color:var(--x-gris); font-size:13px; }
.mz-frf button, .mz-clf button { flex:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--x-linea); background:#fff; color:var(--x-cr); font-size:20px; cursor:pointer; }
.mz-reglas { display:grid; grid-template-columns:1fr; gap:12px; margin-top:10px; }
@media (min-width:640px){ .mz-reglas { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.mz-reglas input { width:100%; min-height:44px; border:1px solid var(--x-linea); border-radius:10px; padding:8px 12px; font:inherit; font-size:16px; }
.mz-cl { list-style:none; margin:10px 0 8px; padding:0; display:flex; flex-direction:column; gap:6px; }
.mz-cl li.fijo { font-size:14px; color:var(--x-navy2); padding:10px 12px; background:var(--x-fondo); border-radius:10px; }
.mz-cfg textarea { width:100%; border:1px solid var(--x-linea); border-radius:10px; padding:10px 12px; font:inherit; font-size:16px; margin-top:8px; }
.mz-guardar { position:sticky; bottom:12px; display:flex; justify-content:flex-end; }
.mz-guardar .x-btn { min-height:52px; padding:0 26px; box-shadow:0 10px 26px rgba(34,65,74,.3); }

/* ── Globo «Requiere atención» en las tarjetas del Inicio ── */
.home-card .hc-badge.ge-badge { position:absolute; top:10px; right:10px; min-width:24px; height:24px; padding:0 7px; border-radius:999px; background:#c9822b; color:#fff; font-size:12px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.home-card .hc-badge.ge-badge.cr { background:#b3261e; }

/* Íconos de las fichas: algunos emojis (🏛 📣) son más anchos que la letra; la casilla se adapta. */
.bf-dato span i { flex:none; display:inline-block; min-width:1.4em; text-align:center; }

/* ── Comunicados (26-oct-2026, comunicados.js): prefijo .cm-* ── */
.cm-global { background:#e3eef3; color:#0e5f7a; }
.cm-asunto { margin-top:2px; }
.cm-texto { max-height:50vh; overflow:auto; overflow-wrap:anywhere; }
