:root{--marca: #164166;--acento: #0c6ca5;--texto: #1f2937;--suave: #566573;--borde: #dbe3ea;--fondo: #f5f7fa;--panel: #ffffff;--ok: #2e7d32;--alerta: #b26a00;--error: #b42318;--titulos: "Segoe UI Variable Display", "Aptos Display", "Segoe UI Semibold", "Segoe UI", system-ui, sans-serif;--c-configura: #b26a00;--c-registra: #2e7d32;--c-consulta: #0c6ca5;--c-imprime: #7c4dbe;--b-configura: #f0b357;--b-registra: #76c882;--b-consulta: #6fc2f0;--b-imprime: #bda0e8}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;color:var(--texto);background:var(--fondo);font-size:15px}.cargando,.vacio{color:var(--suave);padding:24px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--marca),#0b2b45)}.login form{background:var(--panel);padding:32px;border-radius:12px;width:min(380px,92vw);box-shadow:0 12px 40px #00000040}.login svg{display:block;margin:0 auto 10px}.login h1{margin:0 0 4px;font-family:var(--titulos);font-size:27px;font-weight:650;letter-spacing:.02em;color:var(--marca)}.login p.sub{margin:0 0 24px;color:var(--suave);font-size:14px}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}input{width:100%;padding:10px 12px;border:1px solid var(--borde);border-radius:6px;font-size:15px;margin-bottom:16px;font-family:inherit}input:focus{outline:2px solid var(--acento);outline-offset:1px;border-color:var(--acento)}button{font-family:inherit;font-size:15px;padding:10px 18px;border-radius:6px;border:1px solid transparent;background:var(--marca);color:#fff;cursor:pointer}button:hover:not(:disabled){background:var(--acento)}button:disabled{opacity:.55;cursor:not-allowed}button.secundario{background:transparent;color:var(--marca);border-color:var(--borde)}button.enlace{background:none;color:var(--acento);border:none;padding:0;text-decoration:underline}.problema{background:#fdf2f2;border:1px solid #f5c6c6;color:var(--error);padding:10px 12px;border-radius:6px;margin-bottom:16px;font-size:14px}.problema code{display:block;margin-top:6px;font-size:11px;color:var(--suave)}header{background:var(--marca);color:#fff;padding:12px 24px;display:flex;align-items:center;gap:16px}header .marca{font-weight:700;letter-spacing:.5px}header .empresa{opacity:.75;font-size:13px}header .usuario{margin-left:auto;font-size:13px;display:flex;align-items:center;gap:12px}header button{background:#ffffff24;border-color:#ffffff40;padding:6px 12px;font-size:13px}main{padding:24px;max-width:1100px}h2{margin:0 0 6px;font-family:var(--titulos);font-size:23px;font-weight:650;letter-spacing:-.016em;line-height:1.2;color:var(--marca);text-wrap:balance}h3{font-family:var(--titulos);font-weight:650;letter-spacing:-.008em}.migas{color:var(--suave);font-size:13px;margin-bottom:20px}.migas button{margin-right:6px}.panel{background:var(--panel);border:1px solid var(--borde);border-radius:10px;overflow:hidden;margin-bottom:20px}.panel h3{margin:0;padding:14px 18px;font-family:var(--titulos);font-size:15px;letter-spacing:-.006em;border-bottom:1px solid var(--borde);background:#fbfcfd}table{width:100%;border-collapse:collapse}th,td{padding:11px 18px;text-align:left;border-bottom:1px solid var(--borde)}th{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--suave);font-weight:600}tbody tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.clicable{cursor:pointer}tr.clicable:hover{background:#f0f6fb}.estado{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;border:1px solid}.estado.DRAFT{color:var(--alerta);border-color:#f0d5a8;background:#fff8ec}.estado.APPROVED,.estado.IN_PROGRESS{color:var(--ok);border-color:#bcdcbe;background:#f1f8f1}.estado.OBSOLETE,.estado.CLOSED{color:var(--suave);border-color:var(--borde);background:#f6f8fa}.totales{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.totales div{padding:16px 18px;border-right:1px solid var(--borde)}.totales div:last-child{border-right:none}.totales .etiqueta{font-size:12px;color:var(--suave);margin-bottom:4px}.totales .valor{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.totales .valor.destacado{color:var(--marca)}.acciones{padding:14px 18px;display:flex;gap:10px;align-items:center}.acciones .nota{color:var(--suave);font-size:13px}.pestanas{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--borde);flex-wrap:wrap}.pestanas button{background:none;color:var(--suave);border:none;border-bottom:3px solid transparent;border-radius:0;padding:10px 16px;margin-bottom:-2px;font-weight:600;font-size:14px}.pestanas button:hover{background:none;color:var(--marca)}.pestanas button.activa{color:var(--marca);border-bottom-color:var(--acento)}.grupos-pantalla{margin-bottom:20px;border-bottom:2px solid var(--borde)}.grupo-pantalla{display:flex;align-items:baseline;gap:10px}.grupo-pantalla .grupo-nombre{display:flex;align-items:center;gap:6px;min-width:118px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:10px 0}.grupo-pantalla[data-grupo=Maestros] .grupo-nombre{color:var(--c-configura)}.grupo-pantalla[data-grupo=Ingreso] .grupo-nombre{color:var(--c-registra)}.grupo-pantalla[data-grupo=Consultas] .grupo-nombre{color:var(--c-consulta)}.grupo-pantalla[data-grupo=Reportes] .grupo-nombre{color:var(--c-imprime)}.grupo-pantalla .grupo-nombre svg{flex:none;opacity:.9}.grupo-pantalla .pestanas{margin-bottom:0;border-bottom:none;flex:1}.grupo-pantalla .pestanas button{padding:6px 14px}.grupo-pantalla+.grupo-pantalla{border-top:1px solid var(--borde)}.estado.BLOCKING,.estado.BLOCKED{color:var(--error);border-color:#f0c2c2;background:#fdf3f3}.estado.WARNING,.estado.SUBMITTED,.estado.OPEN{color:var(--alerta);border-color:#f0d5a8;background:#fff8ec}.estado.PUBLISHED,.estado.ELIGIBLE{color:var(--ok);border-color:#bcdcbe;background:#f1f8f1}.estado.INFO{color:var(--acento);border-color:#bcd8ea;background:#f1f7fb}.documentos{margin-bottom:20px}.documentos .barra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--borde);border-radius:10px;padding:10px 14px}.documentos .titulo{font-size:13px;color:var(--suave);margin-right:auto}.documentos .boton{font-family:inherit;font-size:13px;padding:6px 12px;border-radius:6px;border:1px solid var(--borde);background:#fff;color:var(--marca);cursor:pointer;text-decoration:none;display:inline-block}.documentos .boton:hover{background:#eef5fb;border-color:var(--acento)}.documentos ul.adjuntos{list-style:none;margin:8px 0 0;padding:0}.documentos ul.adjuntos li{display:flex;gap:12px;align-items:baseline;padding:6px 14px;font-size:13px;border-bottom:1px solid var(--borde)}.documentos ul.adjuntos li:last-child{border-bottom:none}.documentos ul.adjuntos a{color:var(--acento)}.documentos ul.adjuntos span{color:var(--suave);font-size:12px;margin-left:auto}tr.clicable.activa{background:#e8f1f9;box-shadow:inset 3px 0 0 var(--acento)}.celda{width:6.5rem;padding:3px 6px;border:1px solid #cbd5e0;border-radius:4px;font:inherit;text-align:right}.celda.ancha{width:14rem;text-align:left}.acciones input,.acciones select{padding:6px 9px;border:1px solid #cbd5e0;border-radius:5px;font:inherit}nav.areas{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 0}nav.areas button{background:#eef3f8;border:1px solid #d8e2ec;border-radius:6px 6px 0 0;padding:8px 14px;font:inherit;font-weight:600;color:#566573;cursor:pointer}nav.areas button:hover{background:#e2ecf5;color:var(--marca)}nav.areas button.activa{background:var(--marca);border-color:var(--marca);color:#fff}.resumen-area{margin:0 0 4px;padding:8px 12px;background:#f7fafc;border-left:3px solid var(--acento);color:#566573;font-size:13px}.alta{margin-top:12px;padding:14px;background:#f7fafc;border:1px solid #dbe3ea;border-radius:6px}.alta h4{margin:0 0 10px;color:var(--marca);font-size:14px}.alta .campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 14px}.alta label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#566573}.alta label.largo{grid-column:span 2}.alta label>span em{color:#b03a2e;font-style:normal}.alta input[type=text],.alta input[type=number],.alta input[type=date],.alta select{padding:7px 9px;border:1px solid #cbd5e0;border-radius:5px;font:inherit;color:#1f2937;background:#fff}.alta input[type=checkbox]{width:18px;height:18px;margin-top:4px}.alta small{color:#8899a6;font-size:11px}.alta .acciones{margin-top:12px}.aviso{margin:10px 0;padding:9px 12px;background:#fdf6e3;border:1px solid #e6d9a8;border-left:3px solid #c9a227;border-radius:5px;color:#7a5c00;font-size:13px}#root{display:grid;grid-template-columns:236px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"modulos cabecera" "modulos contenido";min-height:100vh}aside.modulos{grid-area:modulos}header{grid-area:cabecera}main{grid-area:contenido}aside.modulos{background:linear-gradient(180deg,#123655 0%,var(--marca) 55%,#10395c 100%);color:#fff;padding-bottom:18px;box-shadow:2px 0 12px #1029422e;z-index:2}aside.modulos .logotipo{display:flex;align-items:center;gap:11px;padding:16px 18px 15px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:14px}aside.modulos .logotipo svg{flex:none}aside.modulos .logotipo .texto{display:flex;flex-direction:column;min-width:0}aside.modulos .logotipo .marca{display:block;font-family:var(--titulos);font-weight:700;font-size:17px;letter-spacing:2.2px;line-height:1.1}aside.modulos .logotipo .sub{display:block;font-size:11px;color:#ffffff73;margin-top:2px}aside.modulos .titulo{padding:0 20px 10px;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#ffffff61}aside.modulos .modulo{display:flex;align-items:center;gap:11px;padding:10px 20px;margin:1px 10px;border-radius:8px;cursor:default;transition:background .12s ease}aside.modulos .modulo svg{flex:0 0 auto;opacity:.8}aside.modulos .modulo .texto{display:flex;flex-direction:column;gap:1px;min-width:0}aside.modulos .modulo .nombre{font-size:13.5px;line-height:1.25}aside.modulos .modulo .nota{font-size:10.5px;color:#ffffff57;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}aside.modulos .modulo .chevron{margin-left:auto;font-size:18px;opacity:.8}aside.modulos .modulo.activo{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a;font-weight:600}aside.modulos .modulo.activo svg{opacity:1;color:#7ec8f2}aside.modulos .modulo.activo .nota{color:#ffffffad;font-weight:400}aside.modulos .modulo.porta,aside.modulos .modulo.pendiente,aside.modulos .modulo.parcial{color:#ffffff70}aside.modulos .modulo.parcial{color:#ffffff94}aside.modulos .modulo:not(.activo) svg{opacity:.45}aside.modulos .modulo.clicable{cursor:pointer}aside.modulos .modulo.clicable:hover{background:#ffffff12}aside.modulos .modulo.abierto{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a}aside.modulos .modulo.abierto .nombre{font-weight:600}aside.modulos .modulo.abierto svg{opacity:1;color:#7ec8f2}aside.modulos .modulo.abierto .nota{color:#ffffffad}aside.modulos .grupo{display:flex;flex-direction:column}aside.modulos .modulo .chevron{transition:transform .15s ease}aside.modulos .modulo .chevron.abajo{transform:rotate(90deg)}aside.modulos .opciones{display:flex;flex-direction:column;padding:2px 10px 8px}aside.modulos .opciones button{all:unset;box-sizing:border-box;padding:7px 14px 7px 46px;border-radius:7px;font-size:13px;line-height:1.3;color:#ffffff9e;cursor:pointer;transition:background .12s ease,color .12s ease}aside.modulos .opciones button:hover{background:#ffffff0f;color:#fff}aside.modulos .opciones button.activa{background:#ffffff21;color:#fff;font-weight:600}aside.modulos .tramo{display:flex;flex-direction:column}aside.modulos .tramo+.tramo{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.09)}aside.modulos .tramo-nombre{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;padding:5px 14px 5px 16px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff85;cursor:pointer;border-radius:7px;transition:color .12s ease,background .12s ease}aside.modulos .tramo-nombre:hover{color:#ffffffb8;background:#ffffff0d}aside.modulos .tramo-nombre svg{flex:none;opacity:1}aside.modulos .tramo[data-grupo=Maestros] .tramo-nombre svg{color:var(--b-configura)}aside.modulos .tramo[data-grupo=Ingreso] .tramo-nombre svg{color:var(--b-registra)}aside.modulos .tramo[data-grupo=Consultas] .tramo-nombre svg{color:var(--b-consulta)}aside.modulos .tramo[data-grupo=Reportes] .tramo-nombre svg{color:var(--b-imprime)}aside.modulos .tramo.abierto[data-grupo=Maestros] .tramo-nombre{color:var(--b-configura)}aside.modulos .tramo.abierto[data-grupo=Ingreso] .tramo-nombre{color:var(--b-registra)}aside.modulos .tramo.abierto[data-grupo=Consultas] .tramo-nombre{color:var(--b-consulta)}aside.modulos .tramo.abierto[data-grupo=Reportes] .tramo-nombre{color:var(--b-imprime)}aside.modulos .tramo-nombre .chevron{display:inline-block;font-size:13px;line-height:1;transition:transform .15s ease}aside.modulos .tramo.abierto .tramo-nombre .chevron{transform:rotate(90deg)}aside.modulos .tramo-nombre .cuantas{margin-left:auto;font-size:10px;font-weight:600;letter-spacing:0;color:#ffffff47}aside.modulos .tramo.abierto .tramo-nombre .cuantas{opacity:0}.estado.ya{color:var(--ok);border-color:#bcdcbe;background:#f1f8f1}.estado.parcial{color:var(--alerta);border-color:#f0d5a8;background:#fff8ec}.estado.porta{color:#2b6cb0;border-color:#bcd4ee;background:#f0f6fd}.estado.falta-pantalla{color:var(--alerta);border-color:#f0d5a8;background:#fff8ec}.estado.definir{color:var(--suave);border-color:var(--borde);background:#f6f8fa}@media (max-width: 900px){#root{grid-template-columns:1fr;grid-template-areas:"cabecera" "contenido"}aside.modulos{display:none}}#root:has(.login){display:block}header{background:#fff;color:var(--texto);border-bottom:1px solid var(--borde);padding:0 24px;height:56px;display:flex;align-items:center;gap:14px}header .empresa{font-weight:600;color:var(--marca);font-size:15px;opacity:1}header .usuario{margin-left:auto;font-size:13px;color:var(--suave);display:flex;align-items:center;gap:12px}header button{background:#fff;color:var(--suave);border:1px solid var(--borde);padding:6px 14px;font-size:13px;border-radius:6px}header button:hover{background:var(--fondo);color:var(--marca);border-color:#c3d2e0}main{padding:22px 24px 40px;max-width:1180px;margin:0}nav.areas{margin-top:2px}.campana{position:relative}.campana .timbre{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:34px;padding:0;border-radius:8px;background:#fff;border:1px solid var(--borde);color:var(--suave)}.campana .timbre:hover{background:var(--fondo);color:var(--marca)}.campana .timbre.urgente{color:#b03a2e;border-color:#e8bdb6}.campana .cuenta{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--acento);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.campana .timbre.urgente .cuenta{background:#b03a2e}.campana .buzon{position:absolute;top:42px;right:0;width:380px;max-height:460px;overflow-y:auto;background:#fff;border:1px solid var(--borde);border-radius:10px;box-shadow:0 12px 32px #10294229;z-index:20;text-align:left}.campana .buzon .cabeza{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid var(--borde);font-size:12px;color:var(--suave);position:sticky;top:0;background:#fff}.campana .buzon .vacio{padding:16px 14px;margin:0}.campana .aviso-item{padding:11px 14px;border-bottom:1px solid #eef2f6;cursor:pointer;border-left:3px solid transparent}.campana .aviso-item:hover{background:#f7fafc}.campana .aviso-item .titulo{font-size:13px;font-weight:600;color:var(--marca)}.campana .aviso-item .titulo .obra{font-weight:400;color:var(--suave)}.campana .aviso-item .cuerpo{font-size:12.5px;color:var(--texto);margin-top:2px}.campana .aviso-item .pie{font-size:11px;color:#97a6b5;margin-top:3px}.campana .aviso-item.urgent{border-left-color:#b03a2e}.campana .aviso-item.normal{border-left-color:var(--acento)}.campana .aviso-item.low{border-left-color:#cbd5e0}.campana .aviso-item.leido{opacity:.55;cursor:default;border-left-color:transparent}.campana .aviso-item.leido:hover{background:transparent}.comparativo{margin:14px 0;padding:12px;background:#fafcfe;border:1px solid #e3ebf2;border-radius:7px}.comparativo h4{margin:0 0 8px;font-size:13px;color:var(--marca)}.comparativo tr.activa{background:#eaf5ec;box-shadow:inset 3px 0 #2e7d4f}.panel.hoja table.cabecera-hoja{margin-bottom:10px}.panel.hoja table.cabecera-hoja th{width:22%;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.panel.hoja tfoot th{text-align:right;font-size:12px;text-transform:none;letter-spacing:0}.panel.hoja tfoot tr.total th,.panel.hoja tfoot tr.total td{font-weight:700}table.editable td input,table.editable td select{width:100%;min-width:5.5rem;border:1px solid transparent;background:transparent;padding:.15rem .3rem;font:inherit;color:inherit;border-radius:3px}table.editable td input.num{text-align:right}table.editable td input:hover,table.editable td select:hover{border-color:var(--borde, #d4d4d8)}table.editable td input:focus,table.editable td select:focus{border-color:var(--acento, #2563eb);background:var(--fondo, #fff);outline:none}table.editable tr.sucia td{background:#fffbeb}.panel.interior{margin:.75rem 0;padding:.75rem 1rem;border:1px dashed var(--borde, #d4d4d8);border-radius:6px;background:transparent}.panel.interior h4{margin:0 0 .5rem}button.peligro{color:#b91c1c;border-color:#fca5a5}button.peligro:hover:not(:disabled){background:#fef2f2}details.deal{margin:.5rem 0 .75rem}details.deal>summary{cursor:pointer;padding:.3rem 0}.soltar{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.5rem;border:1px dashed transparent;border-radius:6px;transition:background .12s,border-color .12s}.soltar.encima{border-color:var(--acento, #2563eb);background:color-mix(in srgb,var(--acento, #2563eb) 8%,transparent)}.soltar .problema{flex-basis:100%}.soltar .problema ul{margin:.35rem 0 0;padding-left:1.2rem}.boton-archivo{display:inline-block;padding:8px 16px;border-radius:var(--radio, 8px);background:var(--marca);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.boton-archivo.tenue{background:none;color:var(--suave);font-weight:500}.boton-archivo.tenue:hover{color:var(--marca)}label:has(>input[type=file]:disabled) .boton-archivo{opacity:.45;cursor:default}.barra-informe{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.5rem 0 .75rem;padding:.35rem .5rem;border:1px solid var(--linea, #d7d7d2);border-radius:6px;background:var(--panel, #fbfbf9);font-size:.82rem}.barra-informe button{padding:.2rem .55rem;font-size:.8rem}.barra-informe .alerta{color:#9a3412}@media print{aside.modulos,header,nav.areas,nav.pestanas,.grupos-pantalla,.no-imprimir,.barra-informe{display:none!important}main{margin:0!important;padding:0!important;max-width:none!important}table.rejilla{width:100%;font-size:9pt}table.rejilla thead{display:table-header-group}table.rejilla tr{break-inside:avoid}button,input,select{display:none!important}}tr.etapa-mora td:first-child{box-shadow:inset 3px 0 0 var(--c-consulta)}tr.etapa-acuerdo td:first-child{box-shadow:inset 3px 0 0 var(--ok)}tr.etapa-revisar td:first-child{box-shadow:inset 3px 0 0 var(--alerta)}tr.etapa-cierre td:first-child{box-shadow:inset 3px 0 0 var(--suave)}.desglose{display:flex;flex-direction:column;gap:2px;font-size:12px}.desglose b{font-weight:600}input.umbral{width:52px;text-align:right;padding:2px 5px;font-size:12px}.clasificar{display:flex;flex-direction:column;gap:4px;min-width:260px}.clasificar label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--suave)}.clasificar select{font-size:12px;padding:3px 5px}
