.aviso-inactividad-fondo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:#0f172a73}.aviso-inactividad{max-width:380px;padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-bg-card);box-shadow:var(--shadow-lg);text-align:center;color:var(--color-text-primary)}.aviso-inactividad svg{color:var(--color-warning)}.aviso-inactividad h2{margin:var(--space-sm) 0;font-size:var(--font-size-lg)}.aviso-inactividad p{margin:0 0 var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.franja-validacion{border:1px solid var(--color-border);border-radius:8px;padding:.5rem .75rem;background:var(--color-bg-secondary);max-height:50%;overflow:auto;flex-shrink:0}.franja-cab{display:flex;align-items:center;gap:.6rem;width:100%;min-height:32px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.franja-cab:disabled{cursor:default}.franja-cab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:6px}.franja-validacion.abierta .franja-cab{margin-bottom:.6rem}.franja-titulo{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#4b5468}.franja-titulo svg{color:#7c3aed}.franja-marcas{display:inline-flex;gap:3px}.franja-mini{width:18px;height:18px;border-radius:99px;display:grid;place-items:center;background:#e5e7eb;color:#fff}.franja-mini svg{width:11px;height:11px}.franja-mini.ok{background:#16a34a}.franja-mini.aviso{background:#f59e0b}.franja-mini.elegir{background:#ea580c}.franja-mini.error{background:#dc2626}.franja-mini.espera,.franja-mini.pendiente{background:#9ca3af}.franja-flecha{color:var(--color-text-secondary);transition:transform .15s ease}.franja-validacion.abierta .franja-flecha{transform:rotate(180deg)}.franja-quien{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;color:var(--color-text-secondary)}.franja-titulo,.franja-marcas,.franja-chip,.franja-flecha{flex-shrink:0}.franja-espacio{flex:1}.franja-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:99px;font-size:.75rem;font-weight:600;white-space:nowrap}.franja-chip.verde{background:#dcfce7;color:#166534}.franja-chip.rojo{background:#fee2e2;color:#991b1b}.franja-chip.ambar{background:#fef3c7;color:#92400e}.franja-chip.violeta{background:#ede9fe;color:#5b21b6}.franja-giro{animation:franja-girar 1.6s steps(8) 7.5}@keyframes franja-girar{to{transform:rotate(360deg)}}.franja-alerta{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;padding:.5rem .75rem;border-radius:8px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:.8rem}.franja-alerta span{flex:1}.franja-alerta.ocupada{background:#fffbeb;border-color:#fde68a;color:#92400e;font-variant-numeric:tabular-nums}.franja-espera{margin:.4rem 0 0;font-size:.8rem;color:var(--color-text-secondary)}.verifs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.verifs.atenuada .verif{opacity:.55;filter:saturate(.4)}.verif{display:flex;gap:.55rem;align-items:flex-start;padding:.6rem;border-radius:9px;border:1px solid #e3e6ee;background:#f8f9fc;min-width:0}.verif-marca{width:22px;height:22px;flex:0 0 22px;border-radius:99px;display:grid;place-items:center;background:#e5e7eb;color:#fff}.verif-txt{min-width:0;display:flex;flex-direction:column;gap:.2rem;flex:1}.verif-nom{font-weight:600;font-size:.78rem}.verif-msg{font-size:.75rem;color:#4b5468;overflow-wrap:anywhere}.verif-ayuda{font-size:.72rem;font-weight:600}.verif select{margin-top:.25rem;padding:.3rem .4rem;font-size:.75rem;max-width:100%}.franja-btn{display:inline-flex;align-items:center;gap:.3rem;align-self:flex-start;margin-top:.25rem;padding:.25rem .6rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.75rem;cursor:pointer}.franja-btn:disabled{opacity:.5;cursor:not-allowed}.verif.pendiente .verif-msg,.verif.espera .verif-msg{color:#5f6676}.verif.ok{border-color:#bbf7d0;background:#f0fdf4}.verif.ok .verif-marca{background:#16a34a}.verif.aviso{border-color:#fde68a;background:#fffbeb}.verif.aviso .verif-marca{background:#f59e0b}.verif.aviso .verif-ayuda{color:#92400e}.verif.elegir{border-color:#fed7aa;background:#fff7ed}.verif.elegir .verif-marca{background:#ea580c}.verif.elegir .verif-ayuda{color:#9a3412}.verif.error{border-color:#fecaca;background:#fef2f2}.verif.error .verif-marca{background:#dc2626}.verif.error .verif-ayuda{color:#b91c1c}.verif.espera .verif-marca{background:#9ca3af}.franja-nota{display:flex;align-items:flex-start;gap:.4rem;margin:.6rem 0 0;font-size:.75rem;color:var(--color-text-secondary);line-height:1.45}.franja-nota svg{flex-shrink:0;color:#d97706}.panel-envio{margin:0 1.25rem .75rem;border-radius:10px;font-size:.8rem;flex-shrink:0}.panel-envio .tenue{color:var(--color-text-secondary);font-size:.75rem}.panel-envio.confirmar{padding:.9rem 1rem;border:1px solid #c4b5fd;background:#f5f3ff}.panel-envio.confirmar.enviando{display:flex;align-items:center;gap:.75rem;color:#5b21b6}.conf-tit{font-weight:700;font-size:.85rem;color:#4c1d95;margin-bottom:.6rem}.conf-grilla{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem 1rem}.conf-fila{display:flex;flex-direction:column;gap:.1rem;min-width:0}.conf-fila span{font-size:.68rem;text-transform:uppercase;letter-spacing:.4px;color:#6b7280}.conf-fila b{overflow-wrap:anywhere}.conf-pie{display:flex;align-items:center;gap:.6rem;margin-top:.8rem}.conf-check{display:flex;align-items:center;gap:.45rem;font-weight:600;cursor:pointer}.btn-enviar,.btn-verificar{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:none;border-radius:8px;background:#7c3aed;color:#fff;font-weight:600;cursor:pointer}.btn-enviar:disabled,.btn-verificar:disabled{opacity:.5;cursor:not-allowed}.alerta-envio{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;border:1px solid;line-height:1.45}.alerta-envio>div{flex:1}.alerta-envio svg{flex-shrink:0}.alerta-envio.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.alerta-envio.incierto{background:#fffbeb;border-color:#fde68a;color:#92400e}.alerta-envio.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.alerta-envio.espera{background:#f5f3ff;border-color:#c4b5fd;color:#5b21b6}.alerta-envio .cuenta{font-variant-numeric:tabular-nums}.alerta-envio .difiere{margin-top:.35rem;color:#92400e;font-weight:600}.pie-envio{display:inline-flex;align-items:center;gap:.4rem;margin-right:auto;font-size:.8rem;font-weight:600;color:#5b21b6}.pie-motivo{margin-right:auto;max-width:45%;font-size:.75rem;color:var(--color-text-secondary)}@media (max-width: 1200px){.conf-grilla{grid-template-columns:repeat(2,minmax(0,1fr))}}.empty-state{text-align:center;padding:3rem;color:var(--color-text-secondary)}.empty-icon{font-size:3rem;display:block;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.125rem;font-weight:500;margin-bottom:.5rem;color:var(--color-text-primary)}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);gap:1rem}.toolbar-left,.toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem}.toolbar-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s}.toolbar-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.toolbar-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.toolbar-btn.clear-btn{border-color:var(--color-error);color:var(--color-error)}.toolbar-btn.clear-btn:hover{background:#ef44441a}.result-count{font-size:.8rem;color:var(--color-text-muted)}.table-container{overflow-x:auto}.invoice-table{width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}.invoice-table thead th{background:var(--color-bg-tertiary);padding:.75rem .5rem;text-align:left;font-weight:600;font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border);white-space:nowrap}.invoice-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.invoice-table th.sortable:hover{background:var(--color-bg-hover)}.invoice-table th.sorted{color:var(--color-primary)}.th-content{display:inline-flex;align-items:center;gap:.35rem}.sort-icon{opacity:.4;transition:opacity .2s}.sort-icon.active{opacity:1;color:var(--color-primary)}th:hover .sort-icon{opacity:.8}.filter-row th{background:var(--color-bg-secondary);padding:.35rem .5rem;border-bottom:1px solid var(--color-border)}.column-filter{width:100%;padding:.35rem .5rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:.75rem}.column-filter:focus{outline:none;border-color:var(--color-primary)}.column-filter::placeholder{color:var(--color-text-muted)}.invoice-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .15s}.invoice-table tbody tr:hover{background:var(--color-bg-hover)}.invoice-table tbody td{padding:.6rem .5rem;vertical-align:middle}.tenant-cell{min-width:100px}.tenant-badge{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;padding:.2rem .5rem;background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:4px;font-size:.75rem;color:#667eea}.type-cell{text-align:center}.type-badge{display:inline-block;min-width:22px;padding:.15rem .4rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;font-weight:700;font-size:.75rem;color:#fff;text-align:center}.sucursal-cell{font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-secondary)}.invoice-number{font-weight:600;font-family:var(--font-mono);white-space:nowrap}.fecha-cell{white-space:nowrap}.vendor-cell{max-width:200px}.vendor-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.tax-id{font-size:.7rem;color:var(--color-text-muted);display:block}.total-cell{font-weight:600;color:var(--color-success);font-family:var(--font-mono);white-space:nowrap}.date-cell{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.status-cell{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.badge-success{background:#10b98126;color:#10b981}.badge-warning{background:#f59e0b26;color:#f59e0b}.badge-error{background:#ef444426;color:#ef4444}.badge-info{background:#3b82f626;color:#3b82f6}.badge-tactica{background:#7c3aed26;color:#7c3aed}.badge-neutro{background:#f1f5f9;color:#475569}.badge-origen{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;border:1px solid rgba(245,158,11,.45)}.badge-duplicate{background:#f59e0b33;color:#f59e0b;font-size:.65rem}.actions-header{width:70px}.invoice-table td.actions-cell{display:table-cell}.acciones-fila{display:flex;gap:.25rem;justify-content:flex-end}.action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;cursor:pointer;color:var(--color-text-muted);transition:all .2s}.action-btn:hover{background:var(--color-bg-hover)}.action-btn.view:hover{color:#667eea;background:#667eea1a}.action-btn.delete:hover{color:#ef4444;background:#ef44441a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000080}.modal-content.modal-wide{max-width:1100px;max-height:95vh}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:1.1rem;font-weight:600;margin:0}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.close-btn:hover{background:#ffffff1a;color:var(--color-text-primary)}.modal-split{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:1.25rem}@media (max-width: 900px){.modal-split{grid-template-columns:1fr}}.pdf-column{display:flex;flex-direction:column;min-height:450px}.pdf-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.pdf-header h3{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.btn-icon-link{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-bg-tertiary);border-radius:4px;color:var(--color-text-secondary);transition:all .2s}.btn-icon-link:hover{background:var(--color-primary);color:#fff}.pdf-viewer{flex:1;background:#1a1a2e;border-radius:8px;border:1px solid var(--color-border);overflow:hidden;min-height:400px}.pdf-frame{width:100%;height:100%;min-height:400px;border:none;background:#252540}.data-column{overflow-y:auto;max-height:65vh}.alert{padding:.75rem 1rem;border-radius:6px;font-size:.85rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.25rem}.alert-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#fbbf24}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.detail-grid{display:flex;flex-direction:column;gap:1rem}.detail-section{background:#ffffff08;border-radius:8px;padding:.75rem}.detail-section h3{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.detail-row{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.detail-row:last-child{border-bottom:none}.detail-row .label{color:var(--color-text-secondary);font-size:.8rem}.detail-row .value{font-weight:500;font-size:.85rem;text-align:right;max-width:60%;word-break:break-word}.detail-section.amounts{background:linear-gradient(135deg,#667eea14,#764ba214);border:1px solid rgba(102,126,234,.15)}.total-row{background:#10b98114;margin:.5rem -.75rem -.75rem;padding:.75rem;border-radius:0 0 8px 8px}.total-row .label{color:var(--color-success);font-weight:600}.total-value{color:var(--color-success);font-size:1.1rem;font-weight:700}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);gap:1rem;flex-wrap:wrap}.pagination-info{font-size:.8rem;color:var(--color-text-muted)}.pagination-controls{display:flex;align-items:center;gap:.25rem}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-current{padding:0 .75rem;font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.pagination-size{display:flex;align-items:center;gap:.5rem}.pagination-size label{font-size:.8rem;color:var(--color-text-muted)}.pagination-size select{padding:.35rem .5rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:.8rem;cursor:pointer}.pagination-size select:focus{outline:none;border-color:var(--color-primary)}@media (max-width: 768px){.table-toolbar{flex-direction:column;align-items:stretch;gap:.75rem}.toolbar-left,.toolbar-right{justify-content:space-between;width:100%}.pagination-container{flex-direction:column;align-items:stretch;gap:.75rem}.pagination-controls{justify-content:center}.pagination-info{text-align:center}.pagination-size{justify-content:center}.modal-content{width:95%;max-height:90vh}.modal-content.modal-wide{max-width:95%}.pdf-column,.pdf-frame{min-height:300px}.data-column{max-height:50vh}}@media (max-width: 480px){.table-container{margin:0 -.75rem;border-radius:0;border-left:none;border-right:none}.invoice-table{font-size:.75rem}.invoice-table thead th,.invoice-table tbody td{padding:.5rem .35rem}.invoice-table .sucursal-cell,.invoice-table tr>th:nth-child(3){display:none}.toolbar-btn{padding:.35rem .5rem;font-size:.75rem}.action-btn{width:24px;height:24px}.pagination-btn{width:28px;height:28px}.detail-row .label,.detail-row .value{font-size:.75rem}.modal-header h2{font-size:1rem}}.modal-content.modal-fullscreen{width:95%;max-width:1600px;max-height:95vh;display:flex;flex-direction:column}.invoice-data-header{padding:.75rem 1.25rem;background:linear-gradient(135deg,#667eea14,#764ba214);border-bottom:1px solid var(--color-border)}.invoice-data-header .alert.compact{padding:.4rem .75rem;margin-bottom:.5rem;font-size:.8rem}.section-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.section-header h3{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.products-column .selected-products-list{flex:1;overflow-y:auto;padding:.5rem}.empty-products{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--color-text-muted);gap:.5rem}.empty-products p{font-size:.85rem;margin:0}.products-table{width:100%;border-collapse:collapse;font-size:.8rem}.products-table th{background:var(--color-bg-tertiary);padding:.4rem .35rem;text-align:left;font-weight:600;font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;border-bottom:1px solid var(--color-border)}.products-table td{padding:.35rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.products-table .input-descripcion{width:100%;padding:.3rem .4rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:.8rem}.products-table .input-cantidad,.products-table .input-precio{width:70px;padding:.3rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:.8rem;text-align:right}.products-table .total-cell{font-weight:600;color:var(--color-success);text-align:right;white-space:nowrap}.products-table tfoot .total-row{background:#10b98114}.products-table tfoot .total-row td{padding:.5rem .35rem;font-weight:600}.btn-remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;cursor:pointer;transition:all .2s}.btn-remove:hover{background:#ef44441a}.catalog-column{display:flex;flex-direction:column}.catalog-search{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.catalog-search svg{color:var(--color-text-muted)}.catalog-search input{flex:1;padding:.4rem .5rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:.85rem}.catalog-search input:focus{outline:none;border-color:var(--color-primary)}.catalog-list{flex:1;overflow-y:auto;padding:.25rem}.catalog-item{content-visibility:auto;contain-intrinsic-size:auto 42px;display:grid;grid-template-columns:fit-content(45%) minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;margin-bottom:.25rem;cursor:pointer;transition:all .2s}.catalog-item:hover{background:var(--color-bg-hover);border-color:var(--color-primary)}.catalog-item .product-code{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--color-primary);padding:.15rem .35rem;background:#667eea1a;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-item .product-desc{font-size:.8rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-item .product-family{font-size:.7rem;color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:.15rem .35rem;border-radius:3px}.btn-add{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:4px;color:#10b981;cursor:pointer;transition:all .2s}.btn-add:hover{background:#10b98133}.loading-products,.no-products{display:flex;align-items:center;justify-content:center;height:100px;color:var(--color-text-muted);font-size:.85rem}.validated-info .value{display:flex;align-items:center;gap:.35rem;color:#10b981}.validated-info .value svg{color:#10b981}.validated-date{font-size:.7rem;color:var(--color-text-muted);margin-left:.25rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.btn-cancel{padding:.5rem 1rem;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-save{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.validator-cell{min-width:100px}.validator-name{display:flex;align-items:center;gap:.35rem;color:#10b981;font-size:.8rem}.validator-name svg{color:#10b981}.no-validator{color:var(--color-text-muted)}.input-codigo{width:100px;padding:.25rem .35rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:.75rem;text-align:center}.input-codigo:focus{outline:none;border-color:#3b82f6}.input-codigo.has-value{background:#dcfce7;border-color:#10b981;color:#047857;font-weight:600}.selected-for-match{background:#eff6ff!important;box-shadow:inset 0 0 0 2px #3b82f6}.th-select{width:36px;text-align:center}.select-cell{width:36px;text-align:center;padding:.25rem!important}.btn-select{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.btn-select:hover,.btn-select.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.descripcion-cell{max-width:300px}.descripcion-text{font-size:.8rem;color:var(--color-text-primary);word-wrap:break-word;white-space:normal;line-height:1.3}.cantidad-cell,.precio-cell{text-align:right;font-size:.8rem;font-weight:500;white-space:nowrap}.producto-item{cursor:pointer;transition:all .15s ease}.producto-item:hover{background:#eff6ff;border-color:#3b82f6}.producto-item.waiting-for-selection{border:2px dashed #3b82f6;background:#f0f9ff}.campo-editable{display:inline-flex;flex-direction:column;gap:.15rem}.campo-editable input,.campo-editable textarea{padding:.2rem .4rem;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--color-text-primary);font-size:.9rem;font-weight:500;font-family:inherit}.campo-editable input:hover:not(:disabled),.campo-editable textarea:hover:not(:disabled){border-color:var(--color-border);background:var(--color-bg-secondary)}.campo-editable input:focus,.campo-editable textarea:focus{outline:none;border-color:#3b82f6;background:var(--color-bg-secondary)}.campo-editable input:disabled,.campo-editable textarea:disabled{color:var(--color-text-primary);cursor:default}.campo-editable textarea{resize:vertical;line-height:1.3}.campo-editable.con-error input,.campo-editable.con-error textarea{border-color:#f87171;background:#fef2f2}.campo-error{max-width:26ch;font-size:.7rem;font-weight:600;line-height:1.3;color:#b91c1c}.campo-numero{display:inline-flex;align-items:flex-start;gap:.2rem}.campo-numero>span:not(.campo-editable){padding-top:.25rem}.campo-sucursal input{width:calc(5ch + 1.2rem);font-family:var(--font-mono)}.campo-nro input{width:calc(8ch + 1.2rem);font-family:var(--font-mono)}.campo-cuit input{width:calc(13ch + 1.2rem);font-family:var(--font-mono)}.campo-item{width:100%}.campo-item input,.campo-item textarea{width:100%;font-size:.8rem}.campo-num input{width:80px;text-align:right}.codigo-asignado{display:flex;align-items:center;gap:.25rem;width:fit-content;max-width:100%;padding:.15rem .4rem;border:1px solid #10b981;border-radius:4px;background:#dcfce7;color:#047857;font-family:var(--font-mono);font-size:.75rem;font-weight:600;white-space:nowrap}.codigo-texto{min-width:0;overflow:hidden;text-overflow:ellipsis}.quitar-codigo{flex-shrink:0;display:inline-flex;padding:0;border:none;background:transparent;color:#047857;cursor:pointer}.quitar-codigo:hover{color:#dc2626}.codigo-vacio{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.productos-marca{padding:.35rem .75rem;background:#fef2f2;border-bottom:1px solid #fecaca;color:#b91c1c;font-size:.75rem;font-weight:600}.selected-products-list.con-error .codigo-vacio{color:#b91c1c;font-weight:600}.catalog-count{font-size:.7rem;color:var(--color-text-muted)}.catalog-item.en-uso{border-color:#10b981;background:#f0fdf4}.catalog-item.deshabilitado{cursor:default;opacity:.7}.catalog-item.deshabilitado:hover{background:var(--color-bg-secondary);border-color:var(--color-border)}.btn-select:disabled,.btn-add:disabled,.btn-save:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.detalle-overlay{padding:12px;animation:detalle-entrada .15s ease-out}@keyframes detalle-entrada{0%{opacity:0}}.modal-content.detalle-modal{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(calc(100vw - 24px),1600px);max-width:none;height:calc(100vh - 24px);max-height:none;overflow:hidden}.detalle-titulo{gap:1rem;padding:.55rem 1rem}.detalle-titulo h2{white-space:nowrap}.titulo-con-estado{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;min-width:0}.detalle-modal .chip-estado{font-size:.72rem;white-space:nowrap}.detalle-modal .chip-estado.badge-success{color:#047857;background:#ecfdf5}.detalle-modal .chip-estado.badge-info{color:#1d4ed8;background:#eff6ff}.detalle-modal .chip-estado.badge-warning{color:#b45309;background:#fffbeb}.detalle-modal .chip-estado.badge-error{color:#b91c1c;background:#fef2f2}.detalle-modal .chip-estado.badge-tactica{color:#6d28d9;background:#f5f3ff}.detalle-modal .chip-estado.badge-neutro{color:#475569;background:#f1f5f9}.detalle-modal .modal-footer .btn-save{background:#047857}.detalle-modal .modal-footer .btn-save:hover:not(:disabled){background:#065f46}.detalle-auditoria{display:flex;flex:1;flex-wrap:wrap;gap:.25rem 1rem;min-width:0;font-size:.75rem;color:var(--color-text-secondary)}.detalle-auditoria span{display:inline-flex;align-items:center;gap:.3rem}.detalle-auditoria .auditoria-validada{color:#047857}.detalle-modal .invoice-data-header{padding:.5rem 1rem .6rem;background:var(--color-bg-tertiary)}.aviso-origen{display:flex;align-items:flex-start;gap:.7rem;margin:0 0 .5rem;padding:.6rem .9rem;background:#fffbeb;border:1px solid #fcd34d;border-left:4px solid #d97706;border-radius:6px;color:#92400e;font-size:.82rem;line-height:1.45}.aviso-origen svg{flex-shrink:0;color:#d97706}.aviso-origen strong{display:block;margin-bottom:.15rem;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.aviso-origen p{margin:0}.aviso-origen.resumido{align-items:center;gap:.4rem;padding:.3rem .7rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.75rem}.encabezado-factura{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) minmax(15rem,.9fr);gap:.6rem}.detalle-modal .bloque-encabezado,.detalle-modal .tarjeta-partes{min-width:0;padding:.5rem .85rem .6rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.detalle-modal .tarjeta-partes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.detalle-modal .tarjeta-partes>.bloque-encabezado{padding:0;background:none;border:0;border-radius:0}.detalle-modal .tarjeta-partes>.bloque-proveedor{padding-right:.85rem}.detalle-modal .tarjeta-partes>.bloque-comprador{padding-left:.85rem;border-left:1px solid var(--color-border)}@media (min-width: 768px){.detalle-modal .tarjeta-partes{grid-template-rows:auto auto auto 1fr}.detalle-modal .tarjeta-partes>.bloque-encabezado{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}.tarjeta-partes>.bloque-encabezado>.campos-bloque{display:contents}.tarjeta-partes>.bloque-encabezado .campos-bloque>.par-campo:not(.par-razon-social){align-content:start;margin-top:.65rem}}.titulo-bloque{margin:0 0 .4rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#334155}.bloque-encabezado:has(.con-error) .titulo-bloque{display:flex;align-items:center;gap:.35rem;color:#b91c1c}.bloque-encabezado:has(.con-error) .titulo-bloque:before{content:"";width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#dc2626}.campos-bloque{display:flex;flex-direction:column;gap:.3rem}.bloque-comprobante .campos-bloque{display:grid;grid-template-columns:auto minmax(10.5rem,1fr) auto;gap:.4rem .75rem;align-items:start}.bloque-comprobante .etiqueta-campo{line-height:1.2}.bloque-comprobante .par-campo:first-child{justify-self:start}.bloque-comprobante .fila-referencia{display:contents}.bloque-comprobante .par-referencia{grid-area:2 / 1 / 3 / 3;display:flex;flex-direction:column;gap:.1rem;min-width:0}.bloque-comprobante .par-referencia .campo-editable{display:flex;flex-direction:column;align-self:stretch}.bloque-comprobante .par-referencia input{width:100%;min-width:0;text-overflow:ellipsis}.bloque-comprobante .par-vencimiento{grid-area:2 / 3;display:flex;flex-direction:column;gap:.1rem}.bloque-comprobante .par-vencimiento .campo-error{align-self:flex-end;width:max-content;white-space:nowrap}.bloque-comprobante .pastilla-tipo{display:inline-grid;place-items:center;min-width:2rem;height:1.5625rem;min-height:0;padding:0 .5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-weight:700}.campo-fecha{position:relative;display:inline-grid;grid-template-columns:7.75rem;row-gap:.15rem}.campo-fecha .campo-editable{display:contents}.campo-fecha .campo-editable input{grid-area:1 / 1;width:100%;min-width:0}.campo-fecha.con-calendario .campo-editable input{padding-right:1.5rem}.campo-fecha .campo-editable input:not(:disabled)::placeholder{font-size:.75rem}.campo-fecha .boton-calendario{grid-area:1 / 1;justify-self:end;align-self:stretch;display:grid;place-items:center;width:1.5rem;padding:0;border:0;border-radius:0 4px 4px 0;background:transparent;color:#6366f1;cursor:pointer}.campo-fecha .boton-calendario:hover{color:#4338ca}.campo-fecha .boton-calendario:focus-visible{outline:2px solid #4f46e5;outline-offset:-2px}.campo-fecha .calendario-oculto{position:absolute;grid-area:1 / 1;inset:auto 0 0 0;width:100%;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.par-campo{display:flex;flex-direction:column;gap:.1rem;min-width:0}.etiqueta-campo{font-size:.72rem;font-weight:500;color:#475569}.etiqueta-oculta{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.valor-fijo{min-height:1.75rem;padding-top:.25rem;overflow:hidden;font-size:.9rem;font-weight:500;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis}.valor-vacio{font-style:italic;font-weight:400;color:#64748b}.bloque-proveedor .par-razon-social .valor-fijo,.bloque-comprador .par-razon-social .valor-fijo{min-height:0;padding-top:0;font-weight:600}.bloque-proveedor .campos-bloque>.par-campo:not(.par-razon-social),.bloque-comprador .campos-bloque>.par-campo:not(.par-razon-social){display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;margin-top:.35rem}.lista-importes{display:flex;flex-direction:column;gap:.15rem;margin:0}@media (min-width: 1366px){.bloque-importes .lista-importes{max-width:17rem;margin-left:auto}}.lista-importes>div{display:flex;justify-content:space-between;align-items:baseline;gap:1.25rem}.lista-importes dd{margin:0;font-size:.9rem;font-weight:500;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.lista-importes .importe-total{margin:.15rem -.45rem 0;padding:.15rem .45rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.lista-importes .importe-total dt{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-primary)}.lista-importes .importe-total dd{font-size:1.05rem;font-weight:700}.encabezado-factura .campo-editable input:not(:disabled){border-color:#818cf8;background:#fff}.encabezado-factura .campo-editable input:hover:not(:disabled){border-color:#6366f1}.encabezado-factura .campo-editable input:focus-visible{outline:2px solid #4f46e5;outline-offset:1px;border-color:#4f46e5}.encabezado-factura .campo-editable.con-error input{border-color:#f87171;background:#fef2f2}.encabezado-factura .campo-editable input:disabled{padding-inline:0;border-color:transparent;background:transparent}.encabezado-factura .campo-editable input::placeholder{color:#64748b}.encabezado-factura .campo-numero>span:not(.campo-editable){color:#475569}.encabezado-factura .campo-numero,.encabezado-factura input{font-variant-numeric:tabular-nums}.encabezado-factura .campo-numero{min-width:0}.encabezado-factura .campo-sucursal input,.encabezado-factura .campo-nro input,.encabezado-factura .campo-cuit input{font-family:inherit}.linea-bloqueo{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.8rem;font-weight:500;color:#334155}.linea-bloqueo svg{flex-shrink:0;color:#475569}.detalle-modal:has(.chip-estado.badge-tactica) .invoice-data-header{background:#f6f4ff;border-bottom-color:#ddd6fe}.detalle-modal:has(.chip-estado.badge-tactica) .bloque-encabezado,.detalle-modal:has(.chip-estado.badge-tactica) .tarjeta-partes{border-color:#e4ddfc}.detalle-modal:has(.chip-estado.badge-tactica) .linea-bloqueo{color:#5b21b6}.detalle-modal:has(.chip-estado.badge-tactica) .linea-bloqueo svg{color:#6d28d9}.encabezado-factura .campo-error{display:flex;align-items:flex-start;gap:.25rem;max-width:none;font-size:.65rem;line-height:1.2;overflow:visible;white-space:normal;text-overflow:clip}.encabezado-factura .campo-error:before{content:"";width:.75rem;height:.75rem;flex:0 0 .75rem;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 1 21h22L12 2Zm0 5.5 1 8h-2l1-8Zm0 11.5a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 1 21h22L12 2Zm0 5.5 1 8h-2l1-8Zm0 11.5a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z'/%3E%3C/svg%3E") center / contain no-repeat}.bloque-proveedor .campos-bloque>.par-campo:not(.par-razon-social) .campo-editable,.bloque-comprador .campos-bloque>.par-campo:not(.par-razon-social) .campo-editable{display:contents}.bloque-proveedor .campos-bloque>.par-campo:not(.par-razon-social) .campo-editable input,.bloque-comprador .campos-bloque>.par-campo:not(.par-razon-social) .campo-editable input{grid-column:2;width:100%;min-width:0}.bloque-proveedor .campos-bloque>.par-campo:not(.par-razon-social) .campo-error,.bloque-comprador .campos-bloque>.par-campo:not(.par-razon-social) .campo-error{grid-column:1 / -1}.encabezado-factura .campo-numero:has(.campo-error){flex-wrap:wrap}.encabezado-factura .campo-numero .campo-nro:has(.campo-error){display:contents}.encabezado-factura .campo-numero .campo-error{flex-basis:100%}.detalle-cuerpo{display:grid;grid-template-columns:minmax(380px,2fr) minmax(560px,3fr);gap:.75rem;padding:.75rem;min-height:0;overflow:hidden}.detalle-pdf,.zona-productos>div{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#ffffff05;border:1px solid var(--color-border);border-radius:8px}.detalle-pdf .pdf-viewer{flex:1;min-height:0;border:0;border-radius:0}.detalle-pdf .pdf-frame{min-height:0}.pdf-aviso{margin:0;padding:2rem 1rem;text-align:center;color:var(--color-text-muted, #a0a0b8);font-size:.875rem}.pdf-aviso .spinner-demorado{display:inline-block;width:16px;height:16px;margin-right:.5rem;vertical-align:middle;opacity:0;animation:spinner-aparece 0s .4s forwards,spin 1.6s steps(8) .4s 7.5}@keyframes spinner-aparece{to{opacity:1}}.detalle-derecha{display:flex;flex-direction:column;gap:.75rem;min-width:0;min-height:0}.detalle-derecha .panel-envio{margin:0;max-height:50%;overflow:auto}.zona-productos{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;flex:1;min-height:0}.zona-productos.con-catalogo{grid-template-columns:minmax(0,1fr) minmax(260px,300px)}.detalle-modal .products-column .selected-products-list{padding:0}.detalle-modal .products-table{table-layout:fixed}.detalle-modal .products-table .col-marcar{width:32px}.detalle-modal .products-table .col-codigo{width:140px}.detalle-modal .products-table .col-cantidad{width:64px}.detalle-modal .products-table .col-precio{width:104px}.detalle-modal .products-table .col-total{width:120px}@media (min-width: 1366px){.detalle-modal .con-catalogo .products-table:not(.tabla-detalle-agrupado) .col-cantidad,.detalle-modal .con-catalogo .products-table:not(.tabla-detalle-agrupado) .col-precio{width:0}.con-catalogo .products-table:not(.tabla-detalle-agrupado) thead th:nth-child(4),.con-catalogo .products-table:not(.tabla-detalle-agrupado) thead th:nth-child(5),.con-catalogo .products-table:not(.tabla-detalle-agrupado) tbody td:nth-child(4),.con-catalogo .products-table:not(.tabla-detalle-agrupado) tbody td:nth-child(5){padding:0;overflow:hidden;visibility:hidden}}.detalle-modal .products-table thead th{position:sticky;top:0;z-index:1;background:var(--color-bg-tertiary);box-shadow:inset 0 -1px 0 var(--color-border)}.detalle-modal .products-table tfoot td{position:sticky;bottom:0;z-index:1;background:linear-gradient(#10b98114,#10b98114),var(--color-bg-secondary);box-shadow:inset 0 1px 0 var(--color-border)}.detalle-modal .products-table td{vertical-align:top}.detalle-modal .products-table tfoot .total-value{text-align:right;white-space:nowrap}.detalle-modal .products-table .total-cell{padding-top:.55rem}.detalle-modal .campo-num,.detalle-modal .campo-num input{width:100%}.detalle-modal .descripcion-cell textarea{resize:none;field-sizing:content;max-height:calc(3lh + .2rem + 2px);padding-bottom:0;overflow:hidden}.detalle-modal .descripcion-cell textarea:focus{max-height:none;padding-bottom:.2rem;overflow:auto}.panel-catalogo .section-header{gap:.5rem}.panel-catalogo .catalog-count{margin-left:auto}.cerrar-catalogo{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer}.cerrar-catalogo:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.resumen-en-carga{display:flex;justify-content:space-between;gap:1rem;margin:0;font-size:.9rem;color:var(--color-text-secondary)}.resumen-en-carga strong{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.bloque-en-carga{min-height:0;background:var(--color-bg-tertiary);border-radius:8px}.cuerpo-en-carga{display:grid;place-items:center;min-height:0;color:var(--color-text-secondary)}@media (max-width: 1365px){.bloque-en-carga,.cuerpo-en-carga{min-height:12rem}.modal-content.detalle-modal.detalle-en-carga{height:calc(100vh - 24px)}.detalle-en-carga .detalle-cuerpo,.detalle-en-carga .cuerpo-en-carga{flex:1}.modal-content.detalle-modal{display:flex;flex-direction:column;height:auto;max-height:calc(100vh - 24px);overflow-y:auto}.detalle-modal>*,.detalle-derecha>*,.zona-productos{flex-shrink:0}.detalle-cuerpo{display:flex;flex-direction:column;overflow:visible}.detalle-derecha{order:1}.detalle-pdf{order:2;flex:none;height:60vh}.zona-productos.con-catalogo{grid-template-columns:minmax(0,1fr)}.detalle-modal .products-column .selected-products-list{max-height:60vh}.panel-catalogo{max-height:50vh}.detalle-modal .franja-validacion,.detalle-derecha .panel-envio{max-height:none}.encabezado-factura{grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);row-gap:.75rem}.bloque-comprobante{grid-column:1 / -1}.bloque-proveedor .par-razon-social .valor-fijo,.bloque-comprador .par-razon-social .valor-fijo{white-space:normal;overflow-wrap:anywhere}}@media (max-width: 767px){.detalle-modal .products-column .selected-products-list{overflow-x:auto}.detalle-modal .products-table{min-width:640px}.detalle-modal .detalle-titulo{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.35rem .5rem}.detalle-modal .detalle-titulo h2{white-space:normal}.detalle-modal .detalle-titulo .close-btn{grid-column:2;grid-row:1}.detalle-modal .detalle-auditoria{grid-column:1 / -1}.encabezado-factura{grid-template-columns:minmax(0,1fr);row-gap:.6rem}.detalle-modal .tarjeta-partes{grid-template-columns:minmax(0,1fr)}.detalle-modal .tarjeta-partes>.bloque-proveedor{padding:0 0 .6rem}.detalle-modal .tarjeta-partes>.bloque-comprador{padding:.5rem 0 0;border-left:0;border-top:1px solid var(--color-border)}.bloque-comprobante .campos-bloque{grid-template-columns:auto minmax(0,1fr);gap:.4rem .75rem}.bloque-comprobante .par-emision,.bloque-comprobante .par-vencimiento,.bloque-comprobante .par-referencia{grid-area:auto / 1 / auto / -1}.bloque-comprobante .par-vencimiento .campo-error{align-self:stretch;width:auto;white-space:normal}.bloque-comprobante .par-vencimiento{align-items:flex-start}}.detalle-modal .products-table .col-iva{width:5.5rem}.detalle-modal .iva-cell{padding-left:.25rem;padding-right:.25rem}.detalle-modal .selector-alicuota{display:flex;flex-direction:column;gap:.15rem}.detalle-modal .selector-alicuota select{width:100%;padding:.2rem .25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-primary);font:inherit;font-size:.8rem}.detalle-modal .selector-alicuota select:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.detalle-modal .selector-alicuota.con-error select{border-color:#f87171;background:#fef2f2}.detalle-modal .selector-alicuota .campo-error{max-width:none;font-size:.65rem}.detalle-modal .alicuota-texto{display:inline-block;padding-top:.2rem;font-size:.8rem;white-space:nowrap}@media (min-width: 1366px) and (max-width: 1599px){.detalle-cuerpo.con-iva-por-item{grid-template-columns:minmax(380px,1fr) minmax(560px,2fr)}}.detalle-modal .section-header .acciones-agrupado{display:flex;align-items:center;gap:.5rem;margin-left:auto}.detalle-modal .btn-agrupar{padding:.2rem .6rem;border:1px solid #4f46e5;border-radius:4px;background:var(--color-bg-secondary);color:#4338ca;font-size:.75rem;font-weight:600;cursor:pointer}.detalle-modal .btn-agrupar:hover:not(:disabled){background:#eef2ff}.detalle-modal .btn-agrupar:focus-visible{outline:2px solid #3b82f6;outline-offset:1px}.detalle-modal .btn-agrupar:disabled{border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.detalle-modal .motivo-agrupar{padding:.3rem .75rem;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.75rem}.detalle-modal .motivo-agrupar.con-error{background:#fef2f2;color:#b91c1c;font-weight:600}.detalle-modal .motivo-agrupar.con-aviso{display:flex;align-items:flex-start;gap:.4rem;padding:.45rem .75rem;background:#fffbeb;border-bottom:1px solid #fde68a;color:#b45309;font-size:.8125rem}.detalle-modal .motivo-agrupar.con-aviso svg{flex-shrink:0;margin-top:.15rem}.detalle-modal .detalle-agrupado{border-top:1px solid var(--color-border)}.detalle-modal .detalle-agrupado>summary{padding:.5rem .75rem;color:var(--color-text-secondary);font-size:.8rem;font-weight:600;cursor:pointer}.detalle-modal .detalle-agrupado>summary:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.detalle-modal .tabla-detalle-agrupado .col-descripcion{width:auto}.detalle-modal .tabla-detalle-agrupado .col-cantidad{width:64px}.detalle-modal .tabla-detalle-agrupado .col-precio{width:104px}.detalle-modal .tabla-detalle-agrupado .col-total{width:120px}.detalle-modal .tabla-detalle-agrupado thead th{position:static}.subida-pdfs{position:relative;flex-shrink:0}.subida-pdfs .btn{display:inline-flex;align-items:center;gap:var(--space-xs)}.subida-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:11rem;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-card);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.subida-menu button{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .75rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-primary);font-size:var(--font-size-sm);text-align:left;cursor:pointer}.subida-menu button:hover,.subida-menu button:focus-visible{outline:none;background:var(--color-bg-tertiary)}.panel-subida{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md, 10px);background:var(--color-bg-card);font-size:var(--font-size-sm)}.subida-aviso{margin:0;padding-right:2rem;color:#92400e}.subida-progreso{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md)}.subida-progreso-texto{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex:1 1 16rem;overflow-wrap:anywhere}.subida-progreso .spinner{width:16px;height:16px;flex-shrink:0}.subida-barra{flex:1 1 8rem;height:6px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);overflow:hidden}.subida-barra span{display:block;height:100%;background:var(--color-accent-primary);transition:width .3s ease}.subida-progreso .btn{display:inline-flex;align-items:center;gap:var(--space-xs)}.subida-resumen-cabecera{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.subida-cerrar{display:inline-flex;padding:.25rem;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer}.subida-cerrar:hover{background:var(--color-bg-tertiary)}.subida-cerrar.suelto{position:absolute;top:var(--space-sm);right:var(--space-sm)}.subida-lista{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs);max-height:16rem;overflow-y:auto}.subida-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem var(--space-md);padding:.4rem .6rem;border-left:3px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary)}.subida-nombre{overflow-wrap:anywhere}.subida-estado{font-weight:600;font-size:var(--font-size-xs);white-space:nowrap}.subida-motivo{grid-column:1 / -1;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.subida-item.cargada{border-left-color:var(--color-success)}.subida-item.cargada .subida-estado{color:#047857}.subida-item.repetida{border-left-color:var(--color-warning)}.subida-item.repetida .subida-estado{color:#b45309}.subida-item.error,.subida-item.sin_respuesta{border-left-color:var(--color-error)}.subida-item.error .subida-estado,.subida-item.sin_respuesta .subida-estado{color:#b91c1c}.subida-item.sin_enviar .subida-estado{color:var(--color-text-secondary)}@media (max-width: 480px){.subida-pdfs .btn{padding:var(--space-sm)}}.invoices-page{display:flex;flex-direction:column;gap:var(--space-lg)}.encabezado-listado{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.titulo-listado{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.titulo-listado .page-title{display:flex;align-items:center;gap:var(--space-sm);margin:0;line-height:1.2}.titulo-listado .page-title svg{color:var(--color-accent-primary);flex-shrink:0}.resumen-estados{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-md);margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.resumen-estados strong{font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.resumen-estado{display:inline-flex;align-items:baseline;gap:.3em}.resumen-estado:before{content:"";width:.5rem;height:.5rem;border-radius:var(--radius-full);align-self:center;background:currentColor}.resumen-estado.success:before{color:var(--color-success)}.resumen-estado.info:before{color:var(--color-info)}.resumen-estado.warning:before{color:var(--color-warning)}.resumen-estado.error:before{color:var(--color-error)}.resumen-estado.neutro:before{color:#94a3b8}.encabezado-listado .btn{flex-shrink:0}.acciones-listado{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.invoices-page .tarjeta-listado{padding:0;overflow:hidden}.invoices-page .tarjeta-listado:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm)}.filtro-listado{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary)}.filtro-listado select{padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-sm);min-width:8.5rem}.filtro-listado select:focus-visible{outline:none;border-color:var(--color-accent-primary);box-shadow:var(--shadow-glow)}@media (max-width: 480px){.encabezado-listado .btn{padding:var(--space-sm)}.invoices-page .tarjeta-listado .table-container{margin:0}.invoices-page .tarjeta-listado .toolbar-left{align-items:flex-end}.filtro-listado{flex:1;flex-direction:column;align-items:stretch;gap:var(--space-xs)}.filtro-listado select{min-width:0;width:100%}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:1rem}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:3rem;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #0000001a}.login-header{text-align:center;margin-bottom:2rem}.login-logo{font-size:3rem;margin-bottom:1rem}.login-logo-img{height:48px;width:auto;margin-bottom:1rem}.login-header h1{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem}.login-header p{color:#64748b;font-size:.9rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;color:#475569;font-weight:500}.form-group input{padding:.875rem 1rem;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#1e293b;font-size:1rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126;background:#fff}.form-group input::placeholder{color:#94a3b8}.login-button{padding:1rem;border:none;border-radius:10px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #6366f14d}.login-button:disabled{opacity:.7;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1.6s steps(8) 7.5}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.875rem 1rem;color:#dc2626;font-size:.875rem;display:flex;align-items:center;gap:.5rem}.aviso-cierre{display:block;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.875rem 1rem;color:#92400e;font-size:.875rem}.login-footer{margin-top:2rem;text-align:center;padding-top:1.5rem;border-top:1px solid #e2e8f0}.login-footer p{color:#94a3b8;font-size:.8rem;margin-bottom:.5rem}.login-footer code{background:#f1f5f9;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;color:#64748b}@media (max-width: 480px){.login-container{padding:.5rem}.login-card{padding:2rem 1.5rem;border-radius:16px}.login-header h1{font-size:1.5rem}.login-logo-img{height:40px}.form-group input{padding:.75rem;font-size:.95rem}.login-button{padding:.875rem}.login-footer{margin-top:1.5rem}}.health-widget.loading{display:flex;align-items:center;gap:.5rem;padding:.75rem;color:#ffffff80;font-size:.8rem}.pulse{width:8px;height:8px;background:#ffffff4d;border-radius:50%;animation:pulse 1.5s steps(4) 8}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.health-simple{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#ffffff08;border-radius:8px;margin:.5rem 0}.health-indicator{display:flex;align-items:center;gap:.5rem}.health-dot{width:8px;height:8px;border-radius:50%}.health-indicator.healthy .health-dot{background:#22c55e;box-shadow:0 0 8px #22c55e80}.health-indicator.degraded .health-dot{background:#f59e0b;box-shadow:0 0 8px #f59e0b80}.health-label{font-size:.8rem;font-weight:500;color:var(--color-text-primary)}.health-stats{display:flex;flex-direction:column;align-items:flex-end}.health-count{font-size:.9rem;font-weight:600;color:#ffffffe6}.health-count-label{font-size:.65rem;color:#fff6;text-transform:uppercase}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:#52586a;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;background:#5d6478}.logo{display:flex;align-items:center;justify-content:center}.logo-image{height:36px;width:auto;object-fit:contain}.nav-links{list-style:none;padding:.75rem;flex:1;overflow-y:auto}.nav-links li{margin-bottom:2px}.nav-links a{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;color:#8b919a;border-radius:6px;font-weight:500;font-size:.875rem;transition:all .2s ease;text-decoration:none}.nav-links a:hover{background:#ffffff0a;color:#e4e6eb}.nav-links a.active{background:linear-gradient(135deg,#5a67d8,#7c3aed);color:#fff;box-shadow:0 2px 8px #5a67d84d}.nav-icon{font-size:1.1rem;width:20px;text-align:center}.nav-section-title{display:flex;align-items:center;gap:.75rem;padding:1rem .875rem .625rem;color:#5c6370;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-top:.75rem;border-top:1px solid rgba(255,255,255,.04)}.nav-section-title .nav-icon{font-size:.9rem}.nav-subitem{padding-left:.5rem}.nav-subitem a{font-size:.8rem;padding:.5rem .875rem}.nav-submenu{padding-left:.5rem}.nav-submenu details{cursor:pointer}.nav-submenu-toggle{display:flex;align-items:center;gap:.75rem;padding:.5rem .875rem;color:#8b919a;font-size:.8rem;font-weight:500;border-radius:6px;transition:all .2s ease;list-style:none}.nav-submenu-toggle::-webkit-details-marker{display:none}.nav-submenu-toggle:hover{background:#ffffff0a;color:#e4e6eb}.nav-chevron{margin-left:auto;font-size:.6rem;transition:transform .2s ease;color:#5c6370}details[open] .nav-chevron{transform:rotate(90deg)}.nav-submenu-items{list-style:none;padding:0;margin:.25rem 0 0 .75rem}.nav-submenu-items li{margin-bottom:0}.nav-submenu-items a{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;color:#8b919a;font-size:.8rem;border-radius:6px;transition:all .2s ease}.nav-submenu-items a:hover{background:#ffffff0a;color:#e4e6eb}.nav-submenu-items a.active{background:linear-gradient(135deg,#5a67d8,#7c3aed);color:#fff;box-shadow:0 2px 8px #5a67d84d}.sidebar-footer{padding:1rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.75rem;background:#4a5060}.user-info{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0}.user-email{font-size:.75rem;color:#8b919a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.user-role{font-size:.65rem;padding:.125rem .5rem;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.role-admin{background:#ef444426;color:#f87171}.role-user{background:#3b82f626;color:#60a5fa}.role-viewer{background:#9ca3af26;color:#9ca3af}.logout-btn{width:100%;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:transparent;color:#8b919a;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:#ef44441a;border-color:#ef44444d;color:#f87171}.main-wrapper{flex:1;min-width:0;margin-left:240px;display:flex;flex-direction:column;min-height:100vh}.main-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1.5rem;background:#5d6478;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:50}.header-left{display:flex;align-items:center;gap:1rem}.header-title{font-size:1rem;font-weight:600;color:#e4e6eb;margin:0}.header-right{display:flex;align-items:center;gap:1rem}.header-user{font-size:.8rem;color:#8b919a}.main-content{flex:1;padding:1.5rem;background:var(--color-bg-primary)}.main-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#5d6478;border-top:1px solid rgba(255,255,255,.08);font-size:.75rem;color:#9ca3af}.footer-version{font-family:var(--font-mono)}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary);color:var(--color-text-secondary)}.carga-pantalla,.aviso-carga{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:40vh;color:var(--color-text-secondary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hamburger-btn{display:none;background:none;border:none;color:#e4e6eb;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s ease}.hamburger-btn:hover{background:#ffffff1a}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99;opacity:0;transition:opacity .3s ease}.sidebar-overlay.active{opacity:1}@media (max-width: 1024px){.sidebar{width:220px}.main-wrapper{margin-left:220px}}@media (max-width: 768px){.hamburger-btn{display:flex;align-items:center;justify-content:center}.sidebar-overlay{display:block;pointer-events:none}.sidebar-overlay.active{pointer-events:auto}.sidebar{transform:translate(-100%);transition:transform .3s ease;z-index:100}.sidebar.sidebar-open{transform:translate(0)}.main-wrapper{margin-left:0}.main-header{padding:.75rem 1rem}.header-title{font-size:.9rem}.header-right{gap:.5rem}.header-user{display:none}.main-content{padding:1rem}.main-footer{flex-direction:column;gap:.5rem;text-align:center;padding:1rem}.user-info{flex-direction:column;align-items:flex-start;gap:.5rem}.user-email{max-width:180px}}@media (max-width: 480px){.main-content{padding:.75rem}.main-header{padding:.625rem .75rem}.main-footer{font-size:.7rem}}:root{--color-bg-primary: #f8fafc;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f1f5f9;--color-bg-card: #ffffff;--color-bg-hover: rgba(99, 102, 241, .04);--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-accent-primary: #6366f1;--color-primary: var(--color-accent-primary);--color-accent-secondary: #8b5cf6;--color-accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .04);--shadow-glow: 0 0 0 3px rgba(99, 102, 241, .15);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 0% 0%,rgba(99,102,241,.03) 0%,transparent 50%),radial-gradient(ellipse at 100% 100%,rgba(139,92,246,.03) 0%,transparent 50%);pointer-events:none;z-index:-1}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-secondary)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--color-accent-gradient);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-accent-primary)}.btn-danger{background:#fef2f2;color:var(--color-error);border:1px solid #fecaca}.btn-danger:hover{background:#fee2e2}.btn-success{background:#ecfdf5;color:var(--color-success);border:1px solid #a7f3d0}.btn-success:hover{background:#d1fae5}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.badge-success{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.badge-warning{background:#fffbeb;color:#d97706;border:1px solid #fcd34d}.badge-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.badge-info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}input,select,textarea{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:all var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:var(--shadow-glow)}input::placeholder{color:var(--color-text-muted)}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary)}table{width:100%;border-collapse:collapse}th,td{padding:var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}th{background:var(--color-bg-tertiary);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}tr:hover td{background:var(--color-bg-hover)}tr:last-child td{border-bottom:none}.toggle{position:relative;width:48px;height:26px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.toggle.active{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.toggle.active:after{transform:translate(22px)}.spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin 1.6s steps(8) 7.5}@keyframes spin{to{transform:rotate(360deg)}}.stat-card{display:flex;flex-direction:column;gap:var(--space-sm)}.stat-value{font-size:var(--font-size-3xl);font-weight:700;background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.page{max-width:1400px;margin:0 auto;padding:var(--space-xl)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.page-title{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-text-primary)}.grid{display:grid;gap:var(--space-lg)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal{background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:1.25rem;color:var(--color-text-muted);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-body{padding:var(--space-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--color-border)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:var(--space-xs);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary)}.form-group input,.form-group select,.form-group textarea{width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;color:var(--color-text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}.empty-state-text{font-size:var(--font-size-lg);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}@media (max-width: 640px){.grid-2{grid-template-columns:1fr}.page{padding:var(--space-md)}.page-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.page-title{font-size:var(--font-size-xl)}.modal{margin:var(--space-sm);max-width:calc(100% - 1rem);border-radius:var(--radius-md)}.modal-header,.modal-body,.modal-footer{padding:var(--space-md)}.btn{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs)}}@media (max-width: 480px){:root{--space-lg: 1rem;--space-xl: 1.5rem}.card{padding:var(--space-md);border-radius:var(--radius-md)}.modal-overlay{padding:var(--space-sm)}.modal{max-height:95vh;margin:0;max-width:100%;border-radius:var(--radius-md)}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}.stat-value{font-size:var(--font-size-2xl)}table{font-size:var(--font-size-sm)}th,td{padding:var(--space-sm)}.badge{font-size:.65rem;padding:2px var(--space-xs)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
