/* Estilos tomados del artefacto «Portal de informes financieros» (Sumas Iguales). */
:root { color-scheme: light; --marca:#3d4045; --marca2:#6e7277; --fondo:#f4f5f7; --sup:#fff; --t1:#0b0b0b; --t2:#52514e; --t3:#7a7975; --linea:#e4e3df; --error:#b42318; --error-f:#fef3f2; --aviso:#8a5a00; --aviso-f:#fff8e6; --ok:#0b7a0b; }
* { box-sizing: border-box; }
#vista .inf2 { border-radius:16px; overflow:clip; }
body { margin:0; background:var(--fondo); color:var(--t1); font:14px/1.5 "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.app-top { background:linear-gradient(120deg,var(--marca),var(--marca2)); color:#fff; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.app-top img { height:48px; }
.app-top .t { font-size:18px; font-weight:700; }
.app-top .s { font-size:12.5px; opacity:.85; }
.badge { background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:4px 12px; font-size:12px; font-weight:600; letter-spacing:.03em; }
.app { max-width:1120px; margin:0 auto; padding:20px; }
.panel { background:var(--sup); border:1px solid var(--linea); border-radius:14px; padding:20px 22px; margin-bottom:16px; }
.panel h2 { margin:0 0 4px; font-size:17px; color:var(--marca); }
.panel p.ayuda { margin:0 0 16px; color:var(--t2); font-size:13px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.campo { margin-bottom:12px; }
.campo label { display:block; font-weight:600; font-size:13px; margin-bottom:4px; }
.campo .nota { color:var(--t3); font-size:12px; margin-top:3px; }
.campo input[type=text], .campo input[type=month] { width:100%; padding:9px 11px; border:1px solid #cfcdc6; border-radius:8px; font:inherit; background:#fff; }
.campo input:focus { outline:2px solid #2a78d6; outline-offset:1px; border-color:#2a78d6; }
.archivo { border:1.5px dashed #c4c2bb; border-radius:10px; padding:12px 14px; background:#fafaf8; display:flex; align-items:center; gap:12px; transition:border-color .15s, background .15s; }
.archivo.lleno { border-style:solid; border-color:#2a78d6; background:#f2f7fe; }
.archivo.arrastre { border-color:#2a78d6; background:#eaf2fd; }
.archivo input { display:none; }
.ia-panel h2 { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ia-emp { font-size:12px; font-weight:600; color:#5d646c; background:#f0f1f2; border-radius:999px; padding:2px 10px; }
.ia-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:22px; }
.chat { border:1px solid #e3e1da; border-radius:12px; background:#fafaf8; padding:10px; height:230px; overflow-y:auto; display:flex; flex-direction:column; gap:8px; }
.chat .vacio { color:#8a8f96; font-size:12.5px; text-align:center; margin:auto; padding:10px; }
.msgc { max-width:88%; padding:8px 11px; border-radius:12px; font-size:13px; line-height:1.45; white-space:pre-wrap; }
.msgc small { display:block; font-size:10.5px; opacity:.65; margin-top:3px; }
.msgc.contador { align-self:flex-end; background:#3d4045; color:#fff; border-bottom-right-radius:4px; }
.msgc.ia { align-self:flex-start; background:#fff; border:1px solid #e3e1da; color:#24272b; border-bottom-left-radius:4px; }
.chat-in { display:flex; gap:8px; margin-top:8px; align-items:flex-end; }
.chat-in textarea, #comTexto { flex:1; width:100%; padding:9px 11px; border:1px solid #cfcdc6; border-radius:10px; font:inherit; font-size:13.5px; resize:vertical; background:#fff; box-sizing:border-box; }
.sel-cc { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:#4b4f55; }
.sel-cc select { padding:7px 10px; border:1px solid #cfcdc6; border-radius:8px; font:inherit; background:#fff; }
@media (max-width:820px) { .ia-grid { grid-template-columns:1fr; } }

.lectura { margin-top:8px; padding-top:8px; border-top:1px dashed rgba(0,0,0,.12); font-size:12.5px; line-height:1.55; color:#4b4f55; }
.estados { display:grid; grid-template-columns:1fr 1fr; gap:7px 14px; padding:10px 12px; border:1px solid var(--linea, #e3e1da); border-radius:10px; background:#fafaf8; }
.chk { display:flex !important; gap:8px; align-items:center; font-size:13px; font-weight:400 !important; margin:0 !important; cursor:pointer; }
.chk input { width:16px; height:16px; accent-color:#3d4045; margin:0; }
.chk input:disabled { opacity:.6; }
.archivo .btn-sec { flex:none; }
.archivo .nom { color:var(--t2); font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.archivo.lleno .nom { color:var(--t1); font-weight:600; }
.btn { appearance:none; border:0; border-radius:9px; padding:10px 18px; font:600 14px/1 inherit; font-family:inherit; cursor:pointer; background:var(--marca); color:#fff; }
.btn:hover { filter:brightness(1.1); }
.btn:disabled { opacity:.55; cursor:default; filter:none; }
.btn-sec { background:#fff; color:var(--marca); border:1px solid #c9d3e0; padding:8px 14px; font-size:13px; }
.acciones { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.estado { font-size:13px; color:var(--t2); }
.msg { border-radius:10px; padding:12px 14px; margin-top:14px; font-size:13.5px; display:none; }
.msg.error { display:block; background:var(--error-f); color:var(--error); border:1px solid #fecdca; }
.msg.aviso { display:block; background:var(--aviso-f); color:var(--aviso); border:1px solid #fbe3a6; }
.msg.ok { display:block; background:#effaf0; color:var(--ok); border:1px solid #c6ebc9; }
.msg ul { margin:6px 0 0 18px; padding:0; }
.barra-res { display:none; position:sticky; top:0; z-index:5; background:var(--sup); border:1px solid var(--linea); border-radius:12px; padding:12px 16px; margin-bottom:14px; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; box-shadow:0 4px 14px rgba(0,0,0,.06); }
.barra-res.visible { display:flex; }
.barra-res b { font-size:14px; }
.privacidad { color:var(--t3); font-size:12px; margin-top:10px; }
@media (max-width:820px) { .grid2 { grid-template-columns:1fr; } }
.fila-prot { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
.protegido input#protClave { font:700 16px/1.2 ui-monospace, Consolas, monospace; letter-spacing:.05em; }
.revision h2 .int { font-size:12px; font-weight:600; color:var(--t3); margin-left:6px; text-transform:uppercase; letter-spacing:.04em; }
.hallazgos { list-style:none; margin:0; padding:0; }
.hallazgos li { display:grid; grid-template-columns:96px 1fr; gap:12px; padding:10px 0; border-top:1px solid var(--linea); }
.hallazgos li:first-child { border-top:0; }
.hallazgos .ht { font-weight:600; } .hallazgos .hd { color:var(--t2); font-size:13px; } .hallazgos .ha { color:var(--t1); font-size:13px; margin-top:2px; }
.hallazgos .area { color:var(--t3); font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; }
.pill { display:inline-flex; align-items:center; gap:5px; justify-content:center; border-radius:999px; padding:3px 9px; font-size:12px; font-weight:700; height:24px; white-space:nowrap; }
.pill.critico { background:#fdecec; color:#a32020; } .pill.critico::before { content:"\26D4"; font-size:11px; }
.pill.revisar { background:#fff4d6; color:#7a5200; } .pill.revisar::before { content:"\26A0"; font-size:12px; }
.pill.info { background:#eef2f7; color:#3d4b5c; } .pill.info::before { content:"\2139"; font-size:12px; }
.sin { color:var(--ok); font-weight:600; padding:6px 0; }
.ia { margin-top:16px; border-top:2px solid var(--linea); padding-top:14px; }
.ia-cab { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:8px; }
.ia-cab .estado { max-width:720px; }
.confirma { display:flex; gap:10px; align-items:flex-start; margin-top:14px; padding:12px 14px; border-radius:10px; background:#fdecec; color:#7a1a1a; font-weight:600; font-size:13.5px; cursor:pointer; }
.confirma input { margin-top:3px; }
@media (max-width:820px) { .hallazgos li { grid-template-columns:1fr; gap:4px; } .ia-cab { flex-direction:column; align-items:flex-start; } }

.reporte { --marca:#3d4045; --marca2:#6e7277; --sup:#ffffff; --t1:#0b0b0b; --t2:#52514e; --t3:#7a7975; --linea:#e4e3df; --suave:#f7f7f5;
  color:var(--t1); font:14px/1.5 "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width:1080px; margin:0 auto; }
.reporte * { box-sizing:border-box; }
.reporte header.top { background:linear-gradient(120deg,var(--marca),var(--marca2)); color:#fff; border-radius:16px 16px 0 0; padding:20px 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.reporte header.top img { height:72px; max-width:340px; object-fit:contain; display:block; }
.reporte .clogo { background:#fff; border-radius:12px; padding:8px 14px; display:flex; align-items:center; min-height:72px; }
.reporte .lt { font-weight:700; font-size:18px; } .reporte .lt.dark { color:var(--t1); }
.reporte .titulo { background:var(--sup); border-radius:0 0 16px 16px; padding:20px 28px; border:1px solid var(--linea); border-top:0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.reporte .titulo h1 { margin:0; font-size:24px; } .reporte .titulo .sub { color:var(--t2); }
.reporte .meta { text-align:right; color:var(--t2); font-size:13px; } .reporte .meta b { color:var(--t1); }
.reporte .kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin:18px 0 0; }
.reporte .kpi { background:var(--sup); border:1px solid var(--linea); border-radius:12px; padding:14px 16px; }
.reporte .kl { color:var(--t2); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.reporte .kv { font-size:20px; font-weight:700; margin:4px 0 2px; white-space:nowrap; }
.reporte .kd { color:var(--t2); font-size:12px; }
.reporte .card { background:var(--sup); border:1px solid var(--linea); border-radius:14px; padding:20px 22px; margin:12px 0 0; }
.reporte .pdf-bloque { padding-bottom:4px; }
.reporte h2 { font-size:18px; margin:28px 0 4px; color:var(--marca); }
.reporte p.nota { margin:0 0 4px; color:var(--t2); font-size:13px; }
.reporte h3 { font-size:16px; margin:0 0 12px; }
.reporte .cw { position:relative; height:280px; margin-bottom:16px; } .reporte .cw.sm { height:240px; margin:0; }
.reporte table.fin { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.reporte table.fin th { text-align:right; font-size:12px; color:var(--t2); font-weight:600; padding:8px 10px; border-bottom:2px solid var(--linea); }
.reporte table.fin th:first-child { text-align:left; }
.reporte table.fin td { padding:7px 10px; border-bottom:1px solid var(--linea); text-align:right; white-space:nowrap; }
.reporte table.fin td:first-child { text-align:left; white-space:normal; }
.reporte tr.h td { background:var(--suave); font-weight:700; color:var(--marca); padding-top:10px; }
.reporte tr.t td { font-weight:700; } .reporte tr.T td { font-weight:800; border-top:2px solid var(--t1); background:var(--suave); }
.reporte tr.m td { color:var(--t2); font-style:italic; }
.reporte .ig { display:grid; grid-template-columns:1.15fr 1fr; gap:20px; align-items:center; }
.reporte .in { display:block; font-weight:600; } .reporte .fo { display:block; color:var(--t3); font-size:11.5px; }
.reporte .notas { color:var(--t2); font-size:12.5px; } .reporte .notas li { margin:3px 0; }
.reporte .ok { color:#0b7a0b; font-weight:600; }
.reporte footer { margin-top:22px; color:var(--t3); font-size:12px; display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--linea); padding-top:12px; }
.reporte.modo-pdf { width:1000px; max-width:none; background:#fff; padding:4px; }
@media screen and (max-width:820px) {
  .reporte .kpis { grid-template-columns:repeat(2,1fr); } .reporte .ig { grid-template-columns:1fr; }
  .reporte header.top { flex-direction:column; align-items:flex-start; } .reporte .meta { text-align:left; }
  .reporte table.fin td, .reporte table.fin th { padding:6px; font-size:12px; }
  .reporte.modo-pdf .kpis { grid-template-columns:repeat(5,1fr); } .reporte.modo-pdf .ig { grid-template-columns:1.15fr 1fr; }
  .reporte.modo-pdf header.top { flex-direction:row; align-items:center; } .reporte.modo-pdf .meta { text-align:right; }
  .reporte.modo-pdf table.fin td, .reporte.modo-pdf table.fin th { padding:7px 10px; font-size:14px; }
}
@page { size:A4; margin:12mm; }
@media print {
  .reporte { font-size:10.5px; max-width:none; }
  .reporte .kpi, .reporte header.top, .reporte .titulo, .reporte .card.ind, .reporte .notas, .reporte .cw, .reporte tr { break-inside:avoid; }
  .reporte h2, .reporte p.nota { break-after:avoid; }
  .reporte .card { padding:14px 16px; } .reporte table.fin td { padding:3px 6px; }
  .reporte .cw { height:185px; } .reporte .cw.sm { height:175px; } .reporte .salto { break-before:page; }
  .reporte * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}

[hidden] { display:none !important; }
.tabs[hidden] { display:none; }
.tabs { display:flex; gap:6px; margin:0 0 16px; flex-wrap:wrap; }
.tab { appearance:none; border:1px solid var(--linea); background:#fff; color:var(--t2); border-radius:999px; padding:8px 16px; font:600 13.5px/1 inherit; font-family:inherit; cursor:pointer; }
.tab[aria-selected="true"] { background:var(--marca); border-color:var(--marca); color:#fff; }
.vista-sec[hidden] { display:none !important; }
.login { max-width:440px; margin:24px auto; }
.login h2 { font-size:20px; }
.fila-acc { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.chips { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 2px; }
.chip { appearance:none; border:1px solid #c9d3e0; background:#fff; color:var(--marca); border-radius:999px; padding:6px 14px; font:600 13px/1 inherit; font-family:inherit; cursor:pointer; }
.chip[aria-pressed="true"] { background:var(--marca); color:#fff; border-color:var(--marca); }
.cab-cliente { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.cab-cliente h2 { margin:0; }
table.lista { width:100%; border-collapse:collapse; font-size:13.5px; }
table.lista th { text-align:left; color:var(--t2); font-size:12px; font-weight:600; padding:8px; border-bottom:2px solid var(--linea); }
table.lista td { padding:8px; border-bottom:1px solid var(--linea); vertical-align:middle; }
.clave { font:700 20px/1.2 ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing:.06em; background:#f2f7fe; border:1px dashed #2a78d6; border-radius:10px; padding:12px 16px; display:inline-block; margin:6px 0; }
.campo select { width:100%; padding:9px 11px; border:1px solid #cfcdc6; border-radius:8px; font:inherit; background:#fff; }
.campo input[type=password], .campo input[type=email] { width:100%; padding:9px 11px; border:1px solid #cfcdc6; border-radius:8px; font:inherit; background:#fff; }
.pequeno { font-size:12.5px; color:var(--t3); }
.btn-peligro { background:#fff; color:#a32020; border:1px solid #f0c4c4; padding:6px 12px; font-size:12.5px; }
.cargando { color:var(--t2); padding:30px 0; text-align:center; }
.lnkb { background:none; border:0; color:var(--marca); font:600 12.5px/1 inherit; font-family:inherit; cursor:pointer; padding:8px 0 0; text-decoration:underline; }
.nueva { background:#f7f7f5; border:1px solid var(--linea); border-radius:10px; padding:12px 14px; margin:-4px 0 12px; }
#vista { margin-top:8px; }
#vista .inf2 { border-radius:16px; overflow:clip; }
/* Vista del cliente a pantalla completa */
body.modo-informe { background:#0e0f11; }
body.modo-informe .app-top, body.modo-informe #tabs { display:none !important; }
body.modo-informe .app { max-width:none; padding:0; }
.barra-cli { background:#0a0b0c; border-bottom:1px solid rgba(255,255,255,.08); color:#f2f3f5; padding:10px 28px; display:flex; align-items:center; justify-content:space-between; gap:12px 20px; flex-wrap:wrap; font-family:"Jost","Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
.bc-izq { display:flex; align-items:center; gap:12px; min-width:0; }
.bc-n { font-size:14px; font-weight:500; letter-spacing:.02em; }
.bc-i { font-size:11.5px; color:#8b929a; letter-spacing:.04em; }
.bc-der { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bc-sel { display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#8b929a; margin-right:6px; }
.bc-sel select { background:#17191c; color:#f2f3f5; border:1px solid rgba(255,255,255,.16); border-radius:9px; padding:7px 30px 7px 11px; font:400 13px/1.2 inherit; font-family:inherit; letter-spacing:.02em; text-transform:none; cursor:pointer; }
.bc-btn { background:transparent; color:#d5d9de; border:1px solid rgba(255,255,255,.16); border-radius:9px; padding:7px 13px; font:400 12.5px/1.2 inherit; font-family:inherit; cursor:pointer; letter-spacing:.02em; }
.bc-btn:hover { background:rgba(255,255,255,.07); color:#fff; }
.bc-btn.prim { background:#e8ebee; color:#121315; border-color:#e8ebee; font-weight:500; }
.bc-btn.prim:hover { background:#fff; }
.bc-btn:disabled { opacity:.5; cursor:default; }
.bc-nota { font-size:12px; color:#8b929a; margin:0 6px; }
.bc-est { flex-basis:100%; font-size:12px; color:#aeb4bb; min-height:0; }
.bc-est:empty { display:none; }
@media (max-width:720px) { .barra-cli { padding:10px 14px; } .bc-sel span { display:none; } }
.fila-prot { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
.protegido input#protClave { font:700 16px/1.2 ui-monospace, Consolas, monospace; letter-spacing:.05em; }
