@charset "UTF-8";:root{color-scheme:light;--color-primario: #0f766e;--color-primario-hover: #0d655e;--color-primario-contraste: #ffffff;--color-primario-suave: rgb(15 118 110 / .12);--color-secundario: #1e293b;--color-secundario-hover: #141c29;--color-secundario-contraste: #ffffff;--color-secundario-suave: rgb(30 41 59 / .1);--color-acento: #f59e0b;--color-acento-hover: #d98908;--color-acento-contraste: #16201f;--color-exito: #15803d;--color-alerta: #f59e0b;--color-alerta-texto: #b45309;--color-peligro: #dc2626;--color-peligro-hover: #b91c1c;--surface-0: #f1f5f9;--surface-1: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--text-1: #0f172a;--text-2: #334155;--text-3: #64748b;--border: #e2e8f0;--border-fuerte: #cbd5e1;--overlay: rgb(15 23 42 / .45);--focus-ring: rgb(15 118 110 / .25);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);--shadow-md: 0 4px 12px rgb(15 23 42 / .1);--shadow-lg: 0 16px 40px rgb(15 23 42 / .18);--transition: .15s;--transition-lento: .26s;--sidebar-w: 248px;--topbar-h: 60px;--z-modal: 1000;--z-toast: 1100}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}:where(a,button,summary,[tabindex],[role=button],[role=option],[role=tab],[role=menuitem]):focus-visible{outline:2px solid var(--color-primario);outline-offset:2px;border-radius:var(--radius-sm)}body{margin:0;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text-1);background:var(--surface-0);-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:var(--border-fuerte) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-fuerte);border:2px solid var(--surface-1);border-radius:var(--radius-full)}*::-webkit-scrollbar-thumb:hover{background:var(--text-3)}h1,h2,h3,h4{margin:0 0 var(--space-3);line-height:1.25;font-weight:650}a{color:var(--color-primario);text-decoration:none}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.flex-1{flex:1}.grid{display:grid}.hidden{display:none}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:.8125rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-3)}.text-2{color:var(--text-2)}.text-danger{color:var(--color-peligro)}.text-success{color:var(--color-exito)}.text-warning{color:var(--color-alerta-texto)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table td,.table th,.totales,.resumen dd,.kpi__valor,.cambio-box__valor,.cambio-box__pie,.cel-1,.cel-2,.total-label{font-variant-numeric:tabular-nums}.tfoot-total td,.totales__total strong{font-weight:700}input.num{text-align:right;font-variant-numeric:tabular-nums}.tabla-lineas td,.tabla-lineas th{padding:var(--space-2) var(--space-3);vertical-align:middle}.tabla-lineas .stack{gap:2px}.tabla-lineas .w-stepper{width:124px}.tabla-lineas .w-cant{width:96px}@keyframes fila-flash{0%{background:var(--color-primario-suave)}to{background:transparent}}.tabla-lineas tr.fila-flash td{animation:fila-flash 1.1s ease-out}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font:inherit;font-weight:550;color:var(--text-1);background:var(--surface-1);border:1px solid var(--border-fuerte);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition),opacity var(--transition)}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{color:var(--color-primario-contraste);background:var(--color-primario);border-color:var(--color-primario)}.btn--primary:hover:not(:disabled){background:var(--color-primario-hover);border-color:var(--color-primario-hover)}.btn--secondary{color:var(--color-secundario-contraste);background:var(--color-secundario);border-color:var(--color-secundario)}.btn--secondary:hover:not(:disabled){background:var(--color-secundario-hover);border-color:var(--color-secundario-hover)}.btn--accent{color:var(--color-acento-contraste);background:var(--color-acento);border-color:var(--color-acento)}.btn--accent:hover:not(:disabled){background:var(--color-acento-hover);border-color:var(--color-acento-hover)}.btn--danger{color:#fff;background:var(--color-peligro);border-color:var(--color-peligro)}.btn--danger:hover:not(:disabled){background:var(--color-peligro-hover);border-color:var(--color-peligro-hover)}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover:not(:disabled){background:var(--surface-3)}.btn--sm{padding:var(--space-1) var(--space-3);font-size:.8125rem}.btn--block{width:100%}.btn--icon{padding:var(--space-1);line-height:0;aspect-ratio:1}.card{padding:var(--space-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card__title{margin:0 0 var(--space-4);font-size:1rem;font-weight:600}.table-wrap{overflow-x:auto;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg)}table.table{width:100%;border-collapse:collapse;font-size:.875rem}table.table th,table.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}table.table th.text-right,table.table td.text-right{text-align:right}table.table th.text-center,table.table td.text-center{text-align:center}table.table th{font-weight:600;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;color:var(--color-secundario-contraste);background:var(--color-secundario);border-bottom-color:transparent;white-space:nowrap}table.table tbody tr:last-child td{border-bottom:0}table.table tbody tr:hover td{background:var(--surface-2)}.table tr.fila-2 td{padding-top:var(--space-2);padding-bottom:var(--space-2);vertical-align:middle}.cel-1{display:block;font-weight:500;line-height:1.35}.cel-2{display:block;font-size:.78rem;line-height:1.3;color:var(--text-3)}.row-actions .btn--ghost:not(.text-danger):not(:disabled){color:var(--color-primario)}.row-actions .btn--ghost:not(.text-danger):not(:disabled):hover{background:var(--color-primario-suave)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field__label{font-size:.8125rem;font-weight:550;color:var(--text-2)}.field__hint{font-size:.75rem;color:var(--text-3)}.field__error{font-size:.75rem;font-weight:500;color:var(--color-peligro)}.input,.select,.textarea{width:100%;padding:var(--space-2) var(--space-3);font:inherit;color:var(--text-1);background:var(--surface-1);border:1px solid var(--border-fuerte);border-radius:var(--radius-md);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primario);box-shadow:0 0 0 3px var(--focus-ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-3);cursor:not-allowed}.input.ng-invalid.ng-touched,.select.ng-invalid.ng-touched,.textarea.ng-invalid.ng-touched{border-color:var(--color-peligro)}.textarea{min-height:84px;resize:vertical}.grid-2{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.check{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--color-primario)}.select--auto{width:auto;min-width:130px}.filtro-lookup{width:220px;max-width:100%}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:.75rem;font-weight:600;border-radius:var(--radius-full);background:var(--surface-3);color:var(--text-2)}.empty-state{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-3)}.page{display:flex;flex-direction:column;gap:var(--space-4);height:100%;min-height:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.page-header h1{margin:0;font-size:1.35rem}.page-header p{margin:var(--space-1) 0 0;color:var(--text-3)}.toolbar{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.toolbar__grow{flex:1;min-width:220px}.toolbar .btn{margin-bottom:1px}.page .table-wrap{flex:1;min-height:0;overflow:auto}.page .table-wrap table.table thead th{position:sticky;top:0;z-index:1}.row-actions{display:inline-flex;gap:var(--space-1);white-space:nowrap}.stack{display:flex;flex-direction:column;line-height:1.3}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;color:var(--text-3);font-size:.8125rem}.pagination__pages{display:inline-flex;gap:var(--space-1)}.spinner{width:18px;height:18px;border:2px solid var(--border-fuerte);border-top-color:var(--color-primario);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.page{height:auto;min-height:0;gap:var(--space-3)}.page .table-wrap{flex:none;min-height:0;overflow-x:auto;overflow-y:visible}.page-header h1{font-size:1.15rem}.page-header{flex-direction:column;align-items:stretch}.page-header>.btn,.page-header>.flex{width:100%}.page-header>.flex{display:flex}.page-header>.flex>.btn{flex:1;justify-content:center}.page-header>.btn{justify-content:center}.toolbar{gap:var(--space-2)}.toolbar>*,.toolbar__grow{flex:1 1 100%;min-width:0}.toolbar .select,.toolbar .select--auto,.toolbar .input,.filtro-lookup{width:100%;max-width:none}table.table{font-size:.8125rem}table.table th,table.table td{padding:var(--space-2) var(--space-3)}.table-wrap:has(tr.fila-2) table.table{min-width:34rem}}
