:root{--bg-page:#f0f4f8;--bg-body:#fff;--navy:#1a3a6b;--navy-dark:#122a52;--navy-light:#2a5298;--row-head:#c5d8f0;--row-sub:#dce6f1;--row-alt:#eef4fb;--row-hover:#d6e8fb;--border:#b8cce4;--border-lt:#d0dff0;--text:#1a1a2e;--text2:#3a3a5c;--text-lt:#6b7a99;--link:#1a5fa8;--btn-blue:#2979c7;--btn-blue-h:#1a5fa8;--btn-gray:#6b7a99;--red:#c00;--red-row:#f44;--green:#0a7a0a;--green-lt:#e8f5e9;--yellow:#b8860b;--yellow-lt:#fff8e1;--orange:#d35400;--sem-green:#22a722;--sem-yellow:#e6a817;--sem-red:#e02020;--font:Arial, "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg-page);min-height:100vh;font-size:12px}#loginScreen{background:linear-gradient(#b8d4ee 0%,#deeaf8 40%,#f0f4f8 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border:1px solid var(--border);text-align:center;background:#fff;border-radius:4px;width:380px;padding:30px 36px 28px;box-shadow:0 2px 12px #00000026}.login-logo{margin-bottom:20px}.login-logo .brand-name{color:var(--navy);letter-spacing:-1px;font-size:32px;font-style:italic;font-weight:700}.login-logo .brand-sub{letter-spacing:4px;color:var(--navy);font-size:11px;font-weight:700}.login-form-box{text-align:left;background:#e8e8e8;border:1px solid #ccc;border-radius:3px;margin-bottom:16px;padding:16px 18px}.login-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.login-row:last-child{margin-bottom:0}.login-row label{width:80px;color:var(--text);text-align:right;flex-shrink:0;font-size:12px;font-weight:700}.login-row input,.login-row select{height:24px;font-size:12px;font-family:var(--font);background:#fff;border:1px solid #aaa;outline:none;flex:1;padding:2px 6px}.login-row input:focus,.login-row select:focus{border-color:var(--navy-light)}.btn-login-main{color:#fff;cursor:pointer;float:right;background:linear-gradient(#4d94e8,#2060b0);border:1px solid #1a4a8a;border-radius:4px;padding:7px 22px;font-size:13px;font-weight:700}.btn-login-main:hover{background:linear-gradient(#5aa0f0,#2570c0)}#appShell{flex-direction:column;height:100vh;display:none;overflow:hidden}.topbar{background:linear-gradient(90deg, var(--navy-dark) 0%, var(--navy-light) 100%);color:#fff;z-index:200;border-bottom:2px solid #0d2244;flex-shrink:0;align-items:stretch;height:38px;padding:0;display:flex;position:relative}.topbar-logo{letter-spacing:1px;border-right:1px solid #fff3;align-items:center;padding:0 16px;font-size:14px;font-style:italic;font-weight:700;display:flex}.topbar-title{color:#c8daf5;align-items:center;padding:0 16px;font-size:12px;display:flex}.topbar-right{color:#c8daf5;align-items:center;gap:14px;margin-left:auto;padding:0 14px;font-size:11px;display:flex}.topbar-user{color:#fff;font-weight:700}.stepper{border-bottom:1px solid var(--border);z-index:199;background:#e8eef5;flex-shrink:0;align-items:center;gap:0;height:36px;padding:0 16px;display:flex;position:relative;box-shadow:0 2px 4px #00000014}.step{color:var(--text-lt);cursor:pointer;border-right:1px solid var(--border-lt);white-space:nowrap;align-items:center;gap:5px;height:36px;padding:0 12px 0 8px;font-size:11px;transition:background .15s;display:flex;position:relative}.step:hover{background:#d6e4f5}.step.active{background:var(--row-sub);color:var(--navy);font-weight:700}.step.completed{color:var(--navy-light)}.step.locked{color:#bbb;cursor:not-allowed}.step.locked:hover{background:0 0}.step-num{background:var(--text-lt);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex}.step.active .step-num{background:var(--navy)}.step.completed .step-num{background:var(--sem-green)}.step.locked .step-num{background:#ccc}.step-arrow{z-index:2;border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:8px solid #e8eef5;width:0;height:0;position:absolute;top:50%;right:-8px;transform:translateY(-50%)}.step.active .step-arrow{border-left-color:var(--row-sub)}.main-area{flex:1;min-height:0;display:flex;overflow:hidden}.sidenav{border-right:1px solid var(--border);background:#fff;flex-shrink:0;width:180px;min-width:180px;height:100%;overflow-y:auto}.sidenav-section{border-bottom:1px solid var(--border-lt)}.sidenav-title{background:var(--row-head);color:var(--navy);text-transform:uppercase;letter-spacing:.5px;padding:5px 10px;font-size:11px;font-weight:700}.sidenav-item{text-align:left;width:100%;color:var(--link);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #eef;padding:5px 12px 5px 16px;font-size:11px;transition:background .1s;display:block}.sidenav-item:hover{background:var(--row-alt)}.sidenav-item.active{background:var(--row-sub);color:var(--navy);font-weight:700}.sidenav-item.locked{color:#bbb;cursor:not-allowed}.sidenav-item.locked:hover{background:0 0}.content-area{background:var(--bg-page);flex:1;min-width:0;height:100%;min-height:0;padding:10px 14px;overflow-y:auto}.panel{border:1px solid var(--border);background:#fff;margin-bottom:8px}.panel-header{background:var(--row-head);color:var(--navy);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:5px 10px;font-size:12px;font-weight:700;display:flex}.panel-header .toggle-icon{color:var(--navy-light);font-size:11px}.panel-body{padding:10px 12px}.panel-body.no-pad{padding:0}.section-row{background:var(--row-sub);color:var(--navy);align-items:center;gap:6px;margin-bottom:0;padding:4px 10px;font-size:11px;font-weight:700;display:flex}.fg{flex-wrap:wrap;align-items:flex-start;gap:6px 12px;margin-bottom:6px;display:flex}.fg-row{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:4px 10px;width:100%;padding:4px 0;display:flex}.fi{align-items:center;gap:4px;display:flex}.fi label{white-space:nowrap;color:var(--text2);font-size:11px;font-weight:700}.fi input[type=text],.fi input[type=number],.fi input[type=date],.fi select,.fi textarea{height:22px;font-size:11px;font-family:var(--font);background:#fff;border:1px solid #aaa;border-radius:1px;outline:none;padding:1px 4px}.fi input:focus,.fi select:focus,.fi textarea:focus{border-color:var(--navy-light)}.fi select option{background:#fff}.fi .code-val{color:var(--navy);background:#fffbe6;border-color:#c8a000;font-weight:700}.fi .readonly{color:var(--text2);background:#f0f0f0}.fi input[type=radio]{margin-right:2px}.fi textarea{resize:vertical;height:auto;min-height:40px}.fi.wide input,.fi.wide select{min-width:220px}.fi.full{width:100%}.fi.full input,.fi.full select,.fi.full textarea{flex:1}.btn{font-size:11px;font-family:var(--font);cursor:pointer;white-space:nowrap;border:1px solid;border-radius:3px;align-items:center;gap:4px;padding:3px 14px;font-weight:700;transition:background .1s;display:inline-flex}.btn-primary{background:var(--btn-blue);color:#fff;border-color:#1a4a8a}.btn-primary:hover{background:var(--btn-blue-h)}.btn-primary:disabled{cursor:not-allowed;background:#aaa;border-color:#999}.btn-secondary{color:var(--text);border-color:var(--border);background:#e8eef5}.btn-secondary:hover{background:var(--row-sub)}.btn-success{color:#fff;background:#287a28;border-color:#1a5a1a}.btn-success:hover{background:#1e641e}.btn-danger{color:#fff;background:#b01010;border-color:#880a0a}.btn-warning{color:#fff;background:#e6a817;border-color:#c48a10}.btn-sm{padding:2px 9px;font-size:10px}.btn-xs{padding:1px 6px;font-size:10px}.dt{border-collapse:collapse;width:100%;font-size:11px}.dt thead tr{background:var(--navy);color:#fff}.dt thead th{text-align:left;white-space:nowrap;border-right:1px solid #fff3;padding:5px 8px;font-weight:700}.dt tbody tr:nth-child(2n){background:var(--row-alt)}.dt tbody tr:hover{background:var(--row-hover)}.dt tbody td{border-bottom:1px solid var(--border-lt);border-right:1px solid var(--border-lt);vertical-align:middle;padding:4px 8px}.dt tfoot tr{background:var(--row-sub);font-weight:700}.dt tfoot td{border-top:2px solid var(--border);padding:5px 8px}.dt .center{text-align:center}.dt .right{text-align:right}.dt .code{color:var(--link);font-weight:700}.dt .monto{text-align:right;font-weight:700}.dt .ahorro{text-align:right;color:var(--green);font-weight:700}.dt .obs{color:var(--red);font-size:10px;font-style:italic}.dt tr.selected td{background:#cde0f8!important}.sml{align-items:center;gap:4px;font-size:11px;font-weight:700;display:inline-flex}.dot{border:1px solid #0003;border-radius:50%;width:12px;height:12px;display:inline-block}.dot-g{background:var(--sem-green);box-shadow:0 0 4px var(--sem-green)}.dot-y{background:var(--sem-yellow);box-shadow:0 0 4px var(--sem-yellow)}.dot-r{background:var(--sem-red);box-shadow:0 0 4px var(--sem-red);animation:1s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.e-pending{color:var(--yellow);font-weight:700}.e-audited{color:var(--link);font-weight:700}.e-obs{color:var(--red);font-weight:700}.e-done{color:var(--sem-green);font-weight:700}.e-liq{color:var(--navy);font-weight:700}.e-rev{color:var(--orange);font-weight:700}.cov-wrap{margin:6px 0}.cov-labels{justify-content:space-between;margin-bottom:2px;font-size:10px;font-weight:700;display:flex}.cov-bar{background:#ddd;border:1px solid #bbb;border-radius:2px;height:14px;overflow:hidden}.cov-fill{height:100%;transition:width .5s}.cov-safe{background:linear-gradient(90deg,#5bc85b,#2ea82e)}.cov-warn{background:linear-gradient(90deg,#f0c040,#d4a010)}.cov-danger{background:linear-gradient(90deg,#e84040,#b01010);animation:.8s infinite alternate cov-pulse}@keyframes cov-pulse{0%{opacity:.7}to{opacity:1}}.cov-legend{gap:14px;margin-top:4px;font-size:10px;display:flex}.cov-legend span{align-items:center;gap:3px;display:flex}.cov-legend .sq{border:1px solid #aaa;width:10px;height:10px;display:inline-block}.alert{border:1px solid;border-radius:2px;margin-bottom:6px;padding:5px 10px;font-size:11px}.alert-warning{background:var(--yellow-lt);color:#7a5800;border-color:#c8a000}.alert-danger{color:#900;background:#ffecec;border-color:#c00;font-weight:700}.alert-success{background:var(--green-lt);color:#0a5a0a;border-color:#0a7a0a}.alert-info{background:var(--row-alt);border-color:var(--border);color:var(--navy)}.gasto-section{margin-bottom:8px}.gasto-section .gs-title{background:var(--row-sub);color:var(--navy);border:1px solid var(--border);border-bottom:none;padding:4px 8px;font-size:11px;font-weight:700}.gasto-section table{border-collapse:collapse;border:1px solid var(--border);width:100%;font-size:11px}.gasto-section th{border:1px solid var(--border);color:var(--navy);background:#dce6f1;padding:3px 8px;font-weight:700}.gasto-section td{border:1px solid var(--border-lt);padding:3px 8px}.gasto-section input{width:100%;font-size:11px;font-family:var(--font);background:0 0;border:none;outline:none;padding:1px 2px}.gasto-section input:focus{border-bottom:1px solid var(--navy-light);background:#fff8d0}.gasto-section .total-row{background:#e8eef5;font-weight:700}.gasto-section .ahorro-val{color:var(--green);font-weight:700}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-box{border:1px solid var(--border);background:#fff;border-radius:3px;min-width:420px;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-head{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:7px 12px;font-size:12px;font-weight:700;display:flex}.modal-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:16px}.modal-content{padding:14px 16px}.modal-footer{border-top:1px solid var(--border);background:#f5f8fc;justify-content:flex-end;gap:8px;padding:8px 16px;display:flex}.tabs-bar{border-bottom:1px solid var(--border);background:#e8eef5;display:flex}.tab-btn{cursor:pointer;border:1px solid var(--border);color:var(--navy);background:#d0ddf0;border-bottom:none;border-radius:3px 3px 0 0;margin-top:3px;margin-right:3px;padding:5px 14px;font-size:11px;font-weight:700}.tab-btn.active{color:var(--navy);background:#fff;position:relative;top:1px}.tab-content{padding:10px 0;display:none}.tab-content.active{display:block}.tab-content.tab-fijo.active{flex-direction:column;display:flex}.fold-body{display:block}.fold-body.hidden{display:none}.placa-red{background:var(--red-row);color:#fff;border-radius:2px;padding:1px 5px;font-weight:700}.placa-normal{background:var(--row-sub);color:var(--navy);border-radius:2px;padding:1px 5px;font-weight:700}.toast{z-index:9999;background:var(--navy);color:#fff;opacity:0;border-radius:3px;padding:9px 18px;font-size:12px;font-weight:700;transition:opacity .3s;position:fixed;bottom:20px;right:20px;box-shadow:0 3px 10px #0000004d}.toast.show{opacity:1}.statusbar{background:var(--navy-dark);color:#c8daf5;border-top:1px solid #0d2244;gap:16px;padding:2px 12px;font-size:10px;display:flex}@media print{#appShell .topbar,#appShell .stepper,#appShell .main-area .sidenav,#appShell .statusbar{display:none!important}.content-area{background:#fff!important;padding:0!important}.no-print{display:none!important}.pdf-doc{display:block!important}}.pdf-doc{color:#000;font-family:Arial,sans-serif;font-size:11px}.pdf-doc h2{text-align:center;color:var(--navy);margin-bottom:4px;font-size:14px}.pdf-doc .pdf-sub{text-align:center;color:#555;margin-bottom:16px;font-size:11px}.pdf-doc .pdf-sect{background:var(--navy);color:#fff;margin:10px 0 4px;padding:4px 8px;font-weight:700}.pdf-doc table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:10px}.pdf-doc th{background:var(--row-sub);border:1px solid var(--border);color:var(--navy);padding:4px 6px;font-weight:700}.pdf-doc td{border:1px solid var(--border-lt);padding:3px 6px}.pdf-doc tr:nth-child(2n) td{background:#f5f8fc}.pdf-doc .sig-row{gap:60px;margin-top:40px;display:flex}.pdf-doc .sig-box{text-align:center;border-top:1px solid #000;flex:1;padding-top:4px;font-size:10px}@media (width<=900px){.sidenav,.step span.step-lbl{display:none}}.password-wrapper{align-items:center;display:flex;position:relative}.password-wrapper input{box-sizing:border-box;width:100%;padding-right:40px}.toggle-password-btn{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;right:8px}.toggle-password-btn:hover{color:#1a3a6b}.forgot-password-row{justify-content:center;margin-top:4px;display:flex}.forgot-password-link{cursor:pointer;color:#1a5276;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline;transition:color .2s}.forgot-password-link:hover{color:#1a3a6b}.msg-success{color:#16a34a;text-align:center;margin-top:8px;font-size:13px}.msg-error{color:#dc2626;text-align:center;margin-top:8px;font-size:13px}
