.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg: #f4f7fb;--surface: #ffffff;--text: #1e293b;--muted: #64748b;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-soft: #eff6ff;--sidebar-bg: #152238;--sidebar-bg-hover: #1e2d45;--sidebar-text: #cbd5e1;--sidebar-active: #2563eb;--accent: #0f766e;--accent-hover: #0d9488;--border: #e2e8f0;--border-strong: #cbd5e1;--danger: #b91c1c;--danger-soft: #fef2f2;--success: #16a34a;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 14px rgba(15, 23, 42, .08);--radius-btn: 10px;font-family:Montserrat,system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}input,select,button{font:inherit}button{letter-spacing:.01em}input,select{width:100%;margin-top:.35rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:#fff}label{display:block;font-size:.9rem;color:var(--muted)}.centered{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-split{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-split-left{position:relative;display:flex;align-items:center;justify-content:center;padding:2rem;background:#f1f5f9;overflow:hidden}.auth-split-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 12% 18%,rgba(37,99,235,.08) 0%,transparent 42%),radial-gradient(circle at 88% 82%,rgba(37,99,235,.06) 0%,transparent 38%);pointer-events:none}.auth-card{position:relative;width:min(440px,100%);padding:2rem 2.25rem;border-radius:16px;box-shadow:0 12px 40px #0f172a14;border:1px solid var(--border)}.auth-title{margin:0 0 .5rem;font-size:1.65rem;font-weight:700;color:var(--text)}.auth-subtitle{margin:0 0 1.5rem;color:var(--muted);font-size:.95rem;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:.25rem}.auth-hint{margin:0 0 1rem;font-size:.88rem;color:var(--muted);line-height:1.45}.auth-label{margin-bottom:.85rem;font-size:.88rem;font-weight:500;color:#475569}.auth-input{margin-top:.4rem;padding:.7rem .85rem;border-radius:10px;border:1px solid var(--border-strong)}.auth-password-wrap{position:relative;margin-top:.4rem}.auth-password-wrap .auth-input{margin-top:0;padding-right:2.75rem}.auth-password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;font-size:1rem;opacity:.65;padding:.25rem}.auth-forgot-row{display:flex;justify-content:flex-end;margin:-.25rem 0 1rem}.auth-link-btn{border:none;background:none;color:var(--primary);font-size:.88rem;cursor:pointer;padding:0;text-decoration:none}.auth-link-btn:hover{text-decoration:underline}.auth-back{display:block;margin-top:.75rem;text-align:center}.auth-submit{width:100%;padding:.75rem 1rem;font-weight:600;border-radius:10px}.auth-split-right{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem;background:linear-gradient(165deg,#0a1628,#152238 45%,#2563eb);color:#fff}.auth-hero-logo{width:min(320px,70%);height:auto;object-fit:contain}.auth-tagline{margin:0;font-size:1.15rem;font-weight:500;letter-spacing:.02em;opacity:.92}.login-page{min-height:100vh}.login-card{width:min(440px,100%)}.login-card .forgot-link{display:block;width:100%;margin-top:.75rem;background:none;border:none;color:var(--primary);font-size:.9rem;text-decoration:underline;cursor:pointer;padding:.25rem 0}.login-card .forgot-link:hover{color:var(--primary-hover)}.password-reset-admin{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.app-shell{min-height:100vh;display:flex}.sidebar{width:260px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:20}.sidebar-brand{padding:1.25rem 1rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:center}.sidebar-logo{width:100%;max-width:200px;height:auto;object-fit:contain;margin:0 auto;display:block}.sidebar-edition{display:block;margin-top:.65rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c}.sidebar-nav{flex:1;padding:.75rem 0;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;color:var(--sidebar-text);text-decoration:none;font-size:.9rem;font-weight:500;transition:background .15s ease,color .15s ease;border-left:3px solid transparent}.sidebar-link:hover{background:var(--sidebar-bg-hover);color:#fff}.sidebar-link.active{background:#2563eb26;color:#fff;border-left-color:var(--sidebar-active)}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;flex-shrink:0;opacity:.85}.sidebar-icon svg{width:1.25rem;height:1.25rem}.sidebar-link.active .sidebar-icon{opacity:1;color:#93c5fd}.app-body{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.app-header-start{display:flex;align-items:center;gap:.75rem;min-width:0}.sidebar-toggle{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;flex-shrink:0}.sidebar-toggle:hover{background:var(--bg)}.sidebar-backdrop{display:none}.app-header-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;min-width:0}.app-header-product{font-weight:700;color:var(--text)}.app-header-sep{color:var(--muted)}.app-header-page{color:var(--muted);font-weight:500}.userbar{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.profile-avatar{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;flex-shrink:0}.profile-avatar:hover{background:var(--primary-hover)}.badge{background:var(--primary-soft);color:var(--primary);padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.btn-sm{padding:.35rem .65rem;font-size:.85rem}.app-footer{margin-top:auto;padding:1rem 1.5rem 1.25rem;text-align:center;font-size:.82rem;color:var(--muted);border-top:1px solid var(--border);background:var(--surface)}.main{flex:1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto;min-width:0;overflow-x:hidden}.brand-logo{height:44px;width:auto;object-fit:contain}.login-brand{display:flex;justify-content:center;margin-bottom:1rem}.login-logo{height:72px}.profile-link{color:var(--text);text-decoration:none;font-weight:500;font-size:.9rem}.expedientes-page{min-width:0;max-width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid var(--border);background:#f8fafc;flex-wrap:wrap}.table-toolbar-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-width:0}.table-toolbar-count{font-size:.875rem;color:var(--text)}.table-toolbar-hint{font-size:.8rem}.table-toolbar-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-icon:hover:not(:disabled){border-color:var(--border-strong);color:var(--primary);background:var(--primary-soft)}.btn-icon:disabled{opacity:.45;cursor:not-allowed}.btn-icon-accent{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.btn-icon-badge-wrap{position:relative}.filter-count-badge{position:absolute;top:-.35rem;right:-.35rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.62rem;font-weight:700;line-height:1.1rem;text-align:center;pointer-events:none}.filter-active-pill{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.filter-active-pill-btn{border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}.filter-active-pill-btn:hover{background:#dbeafe}.filter-active-pill-chevron{font-size:.62rem;opacity:.8}.active-filters-popover-wrap{position:relative;display:inline-flex;align-items:center}.active-filters-popover{position:absolute;top:calc(100% + .35rem);left:0;z-index:20;min-width:16rem;max-width:min(24rem,90vw);padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-md)}.active-filters-popover-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.45rem}.active-filters-popover-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;max-height:16rem;overflow-y:auto}.active-filters-popover-list li{display:flex;flex-direction:column;gap:.1rem}.active-filters-popover-label{font-size:.7rem;font-weight:600;color:var(--muted)}.active-filters-popover-value{font-size:.8rem;color:var(--text);word-break:break-word}.table-loading-msg{padding:1rem 1.25rem;margin:0}.table-scroll-wrap{position:relative}.table-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:flex-start;justify-content:center;padding-top:3rem;background:#ffffffb8;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.table-loading-overlay-panel{display:inline-flex;align-items:center;gap:.65rem;padding:.55rem .9rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md)}.table-loading-overlay-label{font-size:.82rem;color:var(--muted)}.spinner-sm{width:1.35rem;height:1.35rem;border-width:2px}.estado-boxes-scroll{overflow-x:auto;margin:0 -.25rem;padding:0 .25rem .15rem}.date-range-filter{display:flex;flex-direction:column;gap:.35rem;margin-top:.4rem}.date-range-row{display:flex;flex-direction:column;gap:.15rem;margin:0;cursor:default}.date-range-label{font-size:.7rem;font-weight:600;color:var(--muted);line-height:1.2}.date-range-filter input{width:100%;min-width:0;margin-top:0;padding:.35rem .4rem;font-size:.78rem}.th-dates{min-width:118px}.data-table thead input[type=date]{color-scheme:light}h1,h2{margin:0 0 .25rem}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:0 1px 2px #0f172a0a}.form-card{margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid transparent;border-radius:var(--radius-btn);padding:.58rem 1.15rem;cursor:pointer;font-size:.875rem;font-weight:500;line-height:1.2;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .15s ease}.btn:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn.primary{background:linear-gradient(180deg,#1d4ed8 0%,var(--primary) 100%);border-color:var(--primary);color:#fff;font-weight:600;box-shadow:0 2px 8px #1e40af38}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,var(--primary) 0%,var(--primary-hover) 100%);border-color:var(--primary-hover);box-shadow:0 4px 14px #1e40af47}.btn.secondary{background:var(--surface);border-color:var(--accent);color:var(--accent);font-weight:600}.btn.secondary:hover:not(:disabled){background:#f0fdfa;border-color:var(--accent-hover);color:var(--accent-hover)}.btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--muted);box-shadow:none}.btn.ghost:hover:not(:disabled){background:#0f172a08;border-color:var(--muted);color:var(--text);box-shadow:none;transform:none}.btn.small{padding:.38rem .75rem;font-size:.8125rem;border-radius:8px}.btn.danger{background:var(--danger-soft);border-color:#fecaca;color:var(--danger);box-shadow:none}.btn.danger:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;color:#991b1b;box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.userbar .btn.ghost{padding:.45rem .85rem;font-size:.8125rem}.alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.alert.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alert.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.stat-pill{background:var(--primary-soft);color:var(--primary);padding:.5rem .85rem;border-radius:999px;font-size:.9rem}.estado-panel{margin-bottom:1rem}.estado-panel-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.estado-panel-header h2{margin:0;font-size:1rem}.estado-select-label{min-width:240px;margin:0}.estado-boxes{display:flex;flex-wrap:wrap;gap:.65rem}.estado-box{min-width:118px;padding:.7rem .9rem;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:.2rem;box-shadow:var(--shadow-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease,background .2s ease}.estado-box:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.estado-box.active{background:linear-gradient(180deg,#eff6ff 0%,var(--primary-soft) 100%);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow-sm)}.estado-box-label{font-size:.78rem;color:var(--muted);line-height:1.2}.estado-box strong{font-size:1.1rem;color:var(--text)}.estado-tag{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:.82rem;font-weight:600}.tipo-tramite-badge{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;padding:.22rem .55rem .22rem .4rem;border-radius:999px;border:1px solid transparent;font-size:.8rem;font-weight:600;line-height:1.2;vertical-align:middle}.tipo-tramite-badge-compact{font-size:.76rem;padding:.18rem .45rem .18rem .32rem}.tipo-tramite-badge-icon{display:inline-flex;flex-shrink:0;width:1rem;height:1rem}.tipo-tramite-badge-compact .tipo-tramite-badge-icon{width:.9rem;height:.9rem}.tipo-tramite-badge-icon svg{width:100%;height:100%}.tipo-tramite-badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tipo-tramite-matriculacion{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.tipo-tramite-transmision{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.tipo-tramite-transmision-alt{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}.tipo-tramite-baja{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.tipo-tramite-baja-transmision{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.tipo-tramite-duplicado{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.tipo-tramite-datos{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.tipo-tramite-varios{background:#fffbeb;color:#b45309;border-color:#fde68a}.tipo-tramite-otros{background:#f8fafc;color:#475569;border-color:#e2e8f0}.col-tipo-cell{overflow:visible!important;white-space:normal!important}.data-table tbody td .tipo-tramite-badge{max-width:100%}.detail-value .tipo-tramite-badge{margin-top:.1rem;font-size:.9rem;padding:.3rem .7rem .3rem .5rem}.detail-value .tipo-tramite-badge-icon{width:1.1rem;height:1.1rem}.checks{display:flex;gap:1.25rem;margin-bottom:1rem;flex-wrap:wrap}.check{display:flex;align-items:center;gap:.5rem;color:var(--text)}.check input{width:auto;margin:0}.form-card h2{margin-top:0}.form-card+.form-card{margin-top:1rem}.table-card{padding:0;overflow:hidden;max-width:100%}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll-sticky{max-height:min(68vh,calc(100vh - 16rem));overflow:auto;-webkit-overflow-scrolling:touch}.table-scroll-sticky .data-table thead th{position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--border)}.table-scroll-sticky .facturacion-table thead tr.filter-row th{top:2.35rem;z-index:2;background:#f8fafc}.table-scroll-sticky .facturacion-table thead tr:first-child th{z-index:3}.table-scroll-sticky .facturacion-table thead .facturacion-col-actions,.table-scroll-sticky .facturacion-table thead th:nth-child(2){z-index:4}.table-scroll-sticky .facturacion-table thead tr.filter-row .facturacion-col-actions,.table-scroll-sticky .facturacion-table thead tr.filter-row th:nth-child(2){z-index:3}.data-table{width:100%;min-width:820px;border-collapse:collapse;table-layout:fixed}.data-table-admin{min-width:1280px}.data-table th,.data-table td{padding:.45rem .5rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.data-table .col-id{width:11%}.data-table .col-matricula{width:14%;min-width:12.5rem}.data-table .col-tipo{width:14%}.data-table-admin .col-matricula{width:13%;min-width:12rem}.data-table-admin .col-tipo{width:12%}.data-table-admin .col-cliente{width:13%}.data-table-admin .col-nif{width:9%}.data-table .col-colaborador,.data-table-admin .col-colaborador{width:14%;min-width:9.5rem}.data-table-admin .col-responsable,.data-table .col-responsable{width:10%;min-width:7rem}.data-table:not(.data-table-admin) .col-colaborador{width:18%}.data-table .col-date,.data-table-admin .col-date{width:10%;min-width:8.5rem}.data-table .col-estado,.data-table-admin .col-estado{width:9%;min-width:5.5rem}.data-table .col-tiempo,.data-table-admin .col-tiempo{width:4.5rem;min-width:4.5rem;max-width:4.5rem}.data-table thead th input,.data-table thead th select{display:block;width:100%;margin-top:.25rem;box-sizing:border-box;font-size:.72rem;padding:.28rem .38rem}.data-table thead th select.filter-select{padding:.28rem .38rem;font-size:.72rem}.data-row-clickable{cursor:pointer}.data-row-clickable:hover td{background:var(--primary-soft)}.data-row-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.data-table thead th{background:#f8fafc;font-size:.74rem;white-space:normal;overflow:visible;vertical-align:top;line-height:1.25}.data-table tbody td .estado-tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.data-table.simple th{background:#f8fafc}.th-btn{border:none;background:transparent;font-weight:600;font-size:.74rem;cursor:pointer;padding:0;color:var(--muted);transition:color .2s ease;line-height:1.25;text-align:left}.th-label{font-size:.74rem;font-weight:600;color:var(--muted);line-height:1.25}.th-btn:hover{color:var(--primary)}.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;border-top:1px solid var(--border);background:#fafbfc;flex-wrap:wrap}.page-size-select{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem}.page-size-select select{margin:0;padding:.25rem .45rem;font-size:.8rem}.pagination .btn.ghost{min-width:96px}.persona-dropdown{list-style:none;margin:.35rem 0 0;padding:0;border:1px solid var(--border);border-radius:var(--radius-btn);max-height:180px;overflow-y:auto;box-shadow:var(--shadow-md)}.persona-dropdown button{width:100%;text-align:left;border:none;background:transparent;padding:.55rem .85rem;cursor:pointer;font-size:.875rem;color:var(--text);box-shadow:none;transform:none;transition:background .15s ease}.persona-dropdown button:hover{background:var(--primary-soft);box-shadow:none;transform:none}.data-table thead input{margin-top:.25rem;font-size:.72rem;padding:.28rem .38rem}.row-actions{display:flex;gap:.35rem;justify-content:flex-end}.persona-picked{margin-top:.35rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:min(900px,100%);max-height:90vh;overflow-y:auto;background:var(--surface);box-shadow:var(--shadow-md)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-header-actions{display:flex;align-items:center;gap:.5rem}.email-send-card{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.loading-wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2.5rem 1.5rem 3rem;text-align:center}.spinner{width:2.75rem;height:2.75rem;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spinner-rotate .85s linear infinite}.loading-wait-text{margin:0;max-width:28rem;font-size:.95rem;line-height:1.5;color:var(--muted);animation:loading-wait-fade .45s ease}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes loading-wait-fade{0%{opacity:.35}to{opacity:1}}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.25rem}.detail-item.wide{grid-column:1 / -1}.detail-label{display:block;font-size:.8rem;color:var(--muted)}.detail-value{font-weight:500}.comentarios-block .comentarios-sections{display:flex;flex-direction:column;gap:.75rem;margin-top:.25rem}.comentario-section-label{display:block;font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.comentario-section-text{margin:.2rem 0 0;white-space:pre-wrap;font-weight:500;line-height:1.45}.template-preview-body{margin-top:.5rem;padding:.75rem;background:var(--surface-2, #f6f7f9);border-radius:8px;font-size:.9rem}.template-var-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.template-var-chip{font-family:ui-monospace,monospace;font-size:.75rem}.template-editor{width:100%;font-family:ui-monospace,monospace;font-size:.85rem}.form-subsection{margin:1rem 0 .5rem;font-size:1rem}.form-divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0 .5rem}.docs-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.data-table-admin .col-id{width:9%}.col-matricula-cell{overflow:visible!important;white-space:normal!important;padding-top:.65rem!important;padding-bottom:.65rem!important}.vehiculo-ident{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;max-width:100%}.vehiculo-ident-compact{gap:.28rem}.matricula-plate{display:inline-flex;align-items:stretch;border:2px solid #1a1a1a;border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 1px 3px #0f172a1f;max-width:100%;min-height:2rem}.matricula-plate-compact{min-height:1.85rem}.matricula-plate-eu{display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:1.85rem;padding:.35rem .2rem .4rem;background:linear-gradient(180deg,#039,#001f5c);color:#fff;flex-shrink:0}.matricula-plate-compact .matricula-plate-eu{width:1.75rem;padding:.3rem .18rem .35rem}.matricula-plate-eu-flag{font-size:.45rem;font-weight:700;letter-spacing:.02em;opacity:.9}.matricula-plate-eu-country{font-size:.95rem;font-weight:800;line-height:1}.matricula-plate-number{display:flex;align-items:center;padding:.35rem .7rem .35rem .55rem;font-family:Montserrat,Arial Black,sans-serif;font-size:.92rem;font-weight:800;letter-spacing:.08em;color:#111;white-space:nowrap;line-height:1.2}.matricula-plate-compact .matricula-plate-number{padding:.3rem .65rem .3rem .5rem;font-size:.88rem}.matricula-plate-generic .matricula-plate-number{font-size:.8rem;letter-spacing:.04em}.detail-value .vehiculo-ident{gap:.45rem}.detail-value .matricula-plate{margin-top:.15rem}.detail-value .matricula-plate-number{font-size:1.35rem;padding:.5rem 1rem .5rem .65rem}.detail-value .matricula-plate-eu{width:2.15rem;padding:.45rem .22rem .5rem}.bastidor-chip{display:inline-flex;flex-direction:column;gap:.12rem;max-width:100%;padding:.35rem .55rem;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;box-shadow:0 1px 2px #0f172a0f}.bastidor-chip-compact{padding:.28rem .45rem;gap:.08rem}.bastidor-chip-label{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.bastidor-chip-value{font-family:Consolas,SFMono-Regular,monospace;font-size:.78rem;font-weight:600;letter-spacing:.03em;color:#0f172a;white-space:normal;word-break:break-all;overflow:visible}.col-matricula-cell .bastidor-chip-value{max-width:none}.bastidor-chip-compact .bastidor-chip-value{font-size:.72rem}.detail-value .bastidor-chip{padding:.45rem .7rem}.detail-value .bastidor-chip-value{font-size:.95rem;white-space:normal;word-break:break-all}.docs-section h3{margin:0 0 .75rem;font-size:1rem}.docs-origin{display:grid;gap:.55rem;margin-bottom:.85rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.docs-origin-label{display:block;font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:.15rem}.docs-origin-path,.docs-origin-file{display:block;font-size:.82rem;word-break:break-all}.docs-origin-path{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.docs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.doc-link{display:flex;flex-direction:column;gap:.1rem;border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem;text-decoration:none;color:var(--text);background:var(--surface);width:100%;text-align:left;cursor:pointer;font:inherit}.doc-link:hover{border-color:var(--primary);background:var(--primary-soft)}.doc-link small{color:var(--muted)}.doc-link.disabled{opacity:.55;pointer-events:none}@media(max-width:900px){.auth-split{grid-template-columns:1fr}.auth-split-right{min-height:220px;order:-1;padding:1.5rem}.auth-hero-logo{width:min(220px,60%)}.sidebar-toggle{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;border:none;padding:0;margin:0;background:#0f172a73;opacity:0;pointer-events:none;transition:opacity .2s ease;cursor:pointer}.app-shell.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar{position:fixed;left:0;top:0;width:min(280px,86vw);height:100vh;height:100dvh;transform:translate(-105%);transition:transform .25s ease;z-index:30;box-shadow:4px 0 24px #0000002e}.app-shell.sidebar-open .sidebar{transform:translate(0)}body.sidebar-menu-open{overflow:hidden}.app-header-title{font-size:.85rem}.app-header-page,.badge{display:none}.grid-2,.detail-grid,.docs-grid,.health-grid{grid-template-columns:1fr}}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.health-status,.health-metric{display:flex;flex-direction:column;gap:.25rem}.health-status-label{color:var(--muted);font-size:.85rem}.health-status--healthy strong{color:var(--success)}.health-status--degraded strong{color:#b45309}.health-status--down strong{color:var(--danger)}.health-status--starting strong{color:var(--muted)}.badge-error{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:#fffbeb;color:#b45309}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;word-break:break-word}.table-wrap{overflow-x:auto}.data-table.compact th,.data-table.compact td{font-size:.82rem;padding:.45rem .55rem}.row-warning{background:#fffbeb}.sql-expand{display:block;width:100%;text-align:left;border:none;background:transparent;padding:0;color:inherit;cursor:pointer;white-space:pre-wrap;word-break:break-word}.sql-expand--truncated{color:var(--primary)}.sql-expand--truncated:hover{text-decoration:underline}.history-detail{display:flex;flex-direction:column;gap:.5rem}.history-meta summary{cursor:pointer;color:var(--muted);font-size:.82rem}.history-meta pre{margin:.35rem 0 0;font-size:.75rem;max-height:200px;overflow:auto}.profile-link{color:var(--text);text-decoration:none;font-weight:500}.profile-link:hover{color:var(--primary)}.btn.icon-btn{width:auto;margin-top:0;padding:.45rem;position:relative}.btn.small{padding:.25rem .5rem;font-size:.8rem}.notification-bell{position:relative}.notification-badge{position:absolute;top:-2px;right:-2px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.65rem;font-weight:700;line-height:1.1rem;text-align:center}.notification-panel{position:absolute;top:calc(100% + .5rem);right:0;width:min(22rem,calc(100vw - 1.5rem));max-height:24rem;overflow:hidden;display:flex;flex-direction:column;z-index:50;padding:0}@media(max-width:900px){.notification-panel{position:fixed;top:calc(3.75rem + env(safe-area-inset-top,0px));right:max(.75rem,env(safe-area-inset-right,0px));left:max(.75rem,env(safe-area-inset-left,0px));width:auto;max-width:none;max-height:min(24rem,calc(100dvh - 5rem));box-shadow:var(--shadow-md)}}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.notification-empty{padding:1rem;margin:0}.notification-list{list-style:none;margin:0;padding:0;overflow-y:auto}.notification-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.75rem 1rem;border:none;border-bottom:1px solid var(--border);background:transparent;text-align:left;cursor:pointer}.notification-item:hover{background:var(--primary-soft)}.notification-item.unread{background:#f8fafc}.notification-item-title{font-weight:600;font-size:.88rem}.notification-item-msg{font-size:.82rem;color:var(--muted)}.notification-item-meta{font-size:.75rem;color:var(--primary);font-weight:600}.notification-channels.disabled{opacity:.55}.notification-prefs-form{margin-top:.75rem}.notification-prefs-matrix{margin-top:.75rem;overflow-x:auto}.notification-prefs-matrix.disabled{opacity:.55}.prefs-matrix-table{width:100%;border-collapse:collapse;font-size:.9rem}.prefs-matrix-table th,.prefs-matrix-table td{padding:.55rem .65rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.prefs-matrix-table th.col-check,.prefs-matrix-table td.col-check{text-align:center;width:4.5rem;vertical-align:middle}.prefs-matrix-table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}.prefs-matrix-table tbody tr:last-child td{border-bottom:none}.notification-prefs-form.compact .prefs-matrix-table{font-size:.85rem}.push-actions{margin-top:.75rem}.muted.small{font-size:.82rem;margin-top:.35rem}.grid-span-2{grid-column:span 2}@media(max-width:720px){.grid-span-2{grid-column:span 1}}.share-page{min-height:100vh;background:var(--bg, #f4f6f9);padding:1.5rem 1rem 3rem;display:grid;place-items:start center}.share-brand{margin-bottom:.5rem}.share-header{max-width:920px;margin:0 auto 1.25rem;text-align:center}.share-header h1{margin:0 0 .25rem;font-size:1.35rem}.share-card{width:min(920px,100%);margin:0 auto}.dashboard-panel{display:flex;flex-direction:column;gap:1rem}.dashboard-scope-note{margin:0;padding:.55rem .85rem;background:#eef6fc;border:1px solid #cfe3f3;border-radius:8px;font-size:.88rem}.dashboard-toolbar{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:flex-end}.dashboard-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.dashboard-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.dashboard-filters input{min-width:9rem}.dashboard-filter-colaborador{min-width:14rem;flex:1 1 14rem;max-width:22rem}.dashboard-estado-list{display:flex;flex-direction:column;gap:.35rem;height:100%;min-height:0}.dashboard-estado-list-hint{margin:0;font-size:.78rem}.dashboard-estado-boxes .estado-box-link{text-decoration:none;color:inherit;cursor:pointer}.dashboard-estado-boxes .estado-box-link:hover{border-color:#1e5a8a;background:#f0f7fc}.dashboard-widget-body .estado-boxes-scroll{max-height:none;flex:1;min-height:0}.dashboard-widget-body .dashboard-estado-boxes{flex-wrap:wrap}.dashboard-widget-body .estado-box{min-width:7.5rem}.colaborador-multiselect{position:relative;min-width:12rem}.colaborador-multiselect--compact{min-width:0;width:100%}.colaborador-multiselect--compact .colaborador-multiselect-chips{min-height:1.55rem;padding:.08rem .28rem;font-size:.72rem}.colaborador-multiselect--compact .colaborador-chip{font-size:.68rem;max-width:8rem}.colaborador-multiselect--compact .colaborador-multiselect-input{min-width:3rem!important;font-size:.72rem}.colaborador-multiselect-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-height:2.1rem;padding:.25rem .45rem;border:1px solid var(--border, #d0d7de);border-radius:6px;background:#fff}.colaborador-multiselect-input{flex:1 1 6rem;min-width:5rem!important;border:none;outline:none;padding:.15rem .25rem;font:inherit;background:transparent}.colaborador-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .45rem;border-radius:999px;background:#e8f0fe;color:#1a4d8f;font-size:.78rem;max-width:100%}.colaborador-chip button{border:none;background:transparent;cursor:pointer;padding:0;line-height:1;color:inherit;font-size:1rem}.colaborador-multiselect-dropdown{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;margin:0;padding:.25rem 0;list-style:none;max-height:12rem;overflow-y:auto;background:#fff;border:1px solid var(--border, #d0d7de);border-radius:6px;box-shadow:0 4px 14px #0000001a}.colaborador-multiselect-dropdown li{margin:0}.colaborador-multiselect-dropdown li button,.colaborador-multiselect-dropdown li.muted{display:block;width:100%;text-align:left;padding:.45rem .65rem;border:none;background:transparent;font:inherit;cursor:pointer}.colaborador-multiselect-dropdown li button:hover{background:#f3f6f9}.colaborador-multiselect-dropdown li.muted{cursor:default;color:var(--muted);font-size:.85rem}.colaborador-select{position:relative;min-width:10rem;width:100%}.colaborador-select-field{display:flex;align-items:center;gap:.2rem;min-height:2rem;padding:.15rem .35rem;border:1px solid var(--border, #d0d7de);border-radius:6px;background:#fff}.colaborador-select--compact{min-width:0}.colaborador-select--compact .colaborador-select-field{min-height:1.55rem;padding:.08rem .28rem;border-radius:5px}.colaborador-select-input{flex:1;min-width:0;border:none;outline:none;padding:0;font:inherit;font-size:inherit;background:transparent}.colaborador-select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:inherit;color:var(--text)}.colaborador-select-clear{flex-shrink:0;border:none;background:transparent;cursor:pointer;padding:0 .15rem;line-height:1;color:var(--muted);font-size:1rem}.colaborador-select-clear:hover{color:var(--primary)}.data-table thead th .colaborador-select--compact .colaborador-select-field{margin-top:0;font-size:.72rem}.facturacion-table .filter-row .colaborador-select{min-width:7rem}.dashboard-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.dashboard-add-select{min-width:12rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border)}.dashboard-grid-wrap{width:100%}.dashboard-widget{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0}.dashboard-widget-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .85rem;border-bottom:1px solid var(--border);cursor:grab}.dashboard-widget-body{flex:1;min-height:0;padding:.65rem .85rem .85rem}.dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;height:100%;align-content:center}.dashboard-metric-label{display:block;font-size:.78rem;color:var(--muted)}.dashboard-metric-value{font-size:1.35rem;color:var(--primary)}.dashboard-table-wrap{max-height:100%;overflow:auto}.btn.small{padding:.2rem .5rem;font-size:.78rem}.facturacion-page{display:flex;flex-direction:column;gap:1rem}.facturacion-filters-card{padding:1rem 1.25rem}.facturacion-filters-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.facturacion-filters-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.78rem;color:var(--muted);min-width:9.5rem}.facturacion-filters-row input[type=date]{padding:.45rem .55rem;border:1px solid var(--border);border-radius:8px;font-size:.85rem}.facturacion-filters-actions{display:flex;gap:.5rem;align-items:center;margin-left:auto}.facturacion-columns-card{padding:1rem 1.25rem}.facturacion-columns-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.facturacion-columns-header h3{margin:0;font-size:1rem}.facturacion-column-section{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border)}.facturacion-column-section:first-of-type{border-top:none;padding-top:0;margin-top:0}.facturacion-column-section h4{margin:0 0 .5rem;font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;gap:.5rem}.facturacion-section-actions{display:inline-flex;gap:.35rem;margin-left:.5rem;text-transform:none;letter-spacing:normal}.link-btn{border:none;background:none;color:var(--primary);cursor:pointer;font-size:.78rem;padding:0}.link-btn:hover{text-decoration:underline}.facturacion-column-list{display:flex;flex-wrap:wrap;gap:.4rem}.facturacion-column-list--scroll{max-height:9rem;overflow-y:auto;padding-right:.25rem}.facturacion-column-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;border:1px solid var(--border);border-radius:999px;font-size:.8rem;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none}.facturacion-column-chip input{margin:0}.expedientes-columns-card{margin-bottom:1rem}.expedientes-columns-hint{margin:0 0 .75rem;font-size:.85rem}.expedientes-column-order-list .expedientes-column-chip{cursor:grab}.expedientes-column-chip.dragging,.data-table th.column-dragging{opacity:.55}.data-table th.column-draggable{cursor:grab}.expedientes-column-chip .drag-handle{margin-left:auto;color:var(--muted);font-size:.75rem;letter-spacing:-1px}.facturacion-table-card{padding:0;overflow:hidden}.facturacion-scroll{max-width:100%}.facturacion-table{width:max-content;min-width:100%;table-layout:auto}.facturacion-table th,.facturacion-table td{white-space:nowrap;min-width:5rem;max-width:12rem;font-size:.76rem;padding:.4rem .45rem}.facturacion-table .col-cell-matricula,.facturacion-table .col-cell-bastidor{max-width:none;min-width:8.5rem;white-space:normal;overflow:visible}.facturacion-table .col-cell-bastidor{min-width:11rem;font-family:Consolas,SFMono-Regular,monospace;font-size:.74rem;letter-spacing:.02em;word-break:break-all}.facturacion-table .col-cell-matricula .vehiculo-ident{min-width:10rem}.facturacion-table thead th{font-size:.72rem;line-height:1.2}.facturacion-col-actions{width:8rem;min-width:8rem;max-width:8rem;position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:2px 0 4px #0f172a0a}.facturacion-row-actions{display:flex;align-items:center;gap:.25rem}.facturacion-table thead .facturacion-col-actions{z-index:3}.facturacion-table tfoot .facturacion-col-actions{background:#eef3f8}.facturacion-table th:nth-child(2),.facturacion-table td:nth-child(2){min-width:8.5rem;position:sticky;left:5.5rem;z-index:1;background:var(--surface);box-shadow:2px 0 4px #0f172a0a}.facturacion-table thead th:nth-child(2){z-index:2}.facturacion-table tfoot td:nth-child(2){background:#eef3f8}.factura-desglose-modal{width:min(720px,96vw);max-height:90vh;overflow:auto;background:var(--surface)}.factura-desglose-body{display:flex;flex-direction:column;gap:1rem}.factura-desglose-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem 1rem;padding:.75rem;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.factura-desglose-meta span{display:block;font-size:.75rem;color:var(--muted)}.factura-desglose-block{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.factura-desglose-block-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.65rem .85rem;background:#eef3f8;border-bottom:1px solid var(--border)}.factura-desglose-modal .table-wrap{background:#fff}.factura-desglose-modal .data-table thead th{background:#f1f5f9;position:sticky;top:0;z-index:1}.factura-desglose-modal .data-table tbody td{background:#fff}.factura-desglose-modal .data-table tbody tr:nth-child(2n) td{background:#fafbfc}.factura-desglose-modal .data-table tfoot td{background:#eef3f8;border-top:2px solid var(--border)}.facturacion-table .filter-row th{padding:.35rem .45rem;background:#f8fafc;vertical-align:bottom}.facturacion-table .filter-row input{width:100%;min-width:0;max-width:none;font-size:.72rem;padding:.28rem .35rem;border:1px solid var(--border);border-radius:5px;box-sizing:border-box;display:block;margin:0}.facturacion-table .totals-row td{font-weight:700;background:#eef3f8;border-top:2px solid var(--border);position:sticky;bottom:0}.facturacion-table .totals-row-page td{background:#f8fafc;border-top:1px solid var(--border);font-weight:600;bottom:2.4rem}.facturacion-table .totals-row-filter td{background:#eef3f8;font-weight:700;bottom:0}.facturacion-tree-total-cell{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.totals-sub{font-size:.68rem;font-weight:500}.facturacion-table td.num,.facturacion-table th.num{text-align:right;white-space:nowrap;min-width:6rem}.btn.secondary.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;border-top:1px solid var(--border);flex-wrap:wrap}.pagination-bar .actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.facturacion-tree-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.5rem .75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:#f8fafc}.facturacion-tree-filters label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--muted)}.facturacion-tree-filters input{margin:0;font-size:.78rem}display: inline-flex; gap: .35rem; padding: .2rem; border-radius: 8px; background: #f1f5f9; border: 1px solid var(--border); } .facturacion-view-toggle .btn{padding:.35rem .75rem;font-size:.78rem}.facturacion-tree-table .tree-row-factura td{background:#eef3f8;font-weight:600;border-top:1px solid var(--border)}.facturacion-tree-table .tree-row-expediente td{background:#f8fafc}.facturacion-tree-table .tree-row-concepto td{background:#fff}.facturacion-tree-table .tree-toggle{display:inline-flex;align-items:center;gap:.45rem;width:100%;padding:0;border:none;background:transparent;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}.facturacion-tree-table .tree-toggle-icon{width:1rem;color:var(--muted);flex-shrink:0}.facturacion-tree-table .tree-indent-1{padding-left:1.75rem!important}.facturacion-tree-table .tree-indent-2{padding-left:2.75rem!important}.facturacion-tree-table .tree-label-muted{color:var(--muted);font-weight:500;font-size:.72rem;margin-right:.35rem}@media(max-width:768px){.facturacion-filters-actions{margin-left:0;width:100%}.facturacion-filters-row label{min-width:calc(50% - .5rem);flex:1}}@media(max-width:768px){.dashboard-filters input{min-width:100%}.dashboard-toolbar{flex-direction:column;align-items:stretch}}.pin-field{display:block;margin:.75rem 0 1rem}.pin-field-label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.65rem;text-align:center}.pin-input-group{display:flex;gap:.75rem;justify-content:center;align-items:center}.pin-digit{width:3.25rem;height:3.25rem;max-width:3.25rem;padding:0;margin:0;text-align:center;font-size:1.65rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0;border:2px solid var(--border-strong);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .1s ease}.pin-digit:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);transform:translateY(-1px)}.pin-digit.filled{border-color:var(--primary);background:var(--primary-soft)}.pin-digit:disabled{opacity:.55;cursor:not-allowed}.share-page .pin-field-label{text-align:center}.auth-card .pin-field-label,.login-card .pin-field-label,.form-card .pin-field-label{text-align:left}.login-card .pin-input-group,.form-card .pin-input-group{justify-content:flex-start}.share-page .pin-input-group{justify-content:center;margin:.5rem 0 1.25rem}@media(max-width:420px){.pin-input-group{gap:.5rem}.pin-digit{width:2.75rem;height:2.75rem;max-width:2.75rem;font-size:1.4rem;border-radius:12px}}.chat-widget{position:fixed;right:1.5rem;bottom:1.5rem;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.chat-widget-bubble{width:56px;height:56px;border-radius:50%;border:none;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 6px 20px #2563eb59;transition:background .15s ease}.chat-widget-bubble:hover{background:var(--primary-hover)}.chat-widget-panel{width:min(360px,calc(100vw - 2.5rem));height:min(480px,calc(100vh - 8rem));background:var(--surface, #fff);border-radius:16px;box-shadow:0 12px 40px #0f172a33;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(15,23,42,.08)}.chat-widget-header{background:var(--primary);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;font-weight:600}.chat-widget-close{background:none;border:none;color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 .25rem}.chat-widget-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.chat-bubble{max-width:85%;padding:.55rem .8rem;border-radius:12px;font-size:.9rem;line-height:1.35;white-space:pre-wrap;word-break:break-word}.chat-bubble.user{align-self:flex-end;background:var(--primary-soft);color:var(--primary);border-bottom-right-radius:2px}.chat-bubble.assistant{align-self:flex-start;background:#f1f5f9;color:#1e293b;border-bottom-left-radius:2px}.chat-bubble-loading{font-style:italic;opacity:.7}.chat-widget-error{padding:0 .75rem;color:#b91c1c;font-size:.8rem}.chat-widget-input{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid rgba(15,23,42,.08)}.chat-widget-input input{flex:1;border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .65rem;font-size:.9rem}.chat-widget-input button{white-space:nowrap}@media(max-width:480px){.chat-widget{right:1rem;bottom:1rem}}.suplido-dropzone{border:2px dashed #cbd5e1;border-radius:12px;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;color:#475569;transition:border-color .15s ease,background .15s ease}.suplido-dropzone:hover,.suplido-dropzone.drag-over{border-color:var(--primary);background:var(--primary-soft)}.suplido-candidatos{display:flex;flex-direction:column;width:100%;max-width:100%;gap:.5rem;margin:.5rem 0 1rem}.suplido-candidato{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.6rem;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:10px;padding:.6rem .8rem;cursor:pointer;text-align:left}.suplido-candidato input[type=radio]{margin:0}.suplido-candidato span{display:block;min-width:0;max-width:100%;text-align:left;overflow-wrap:break-word;word-break:break-word}.suplido-candidato.selected{border-color:var(--primary);background:var(--primary-soft)}.suplido-manual-search{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;margin-bottom:1rem}.suplido-manual-search input{flex:1;min-width:200px}.suplido-estado{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.suplido-estado-pendiente{background:#fef3c7;color:#92400e}.suplido-estado-realizado{background:#dcfce7;color:#166534}.suplido-estado-rechazado{background:#fee2e2;color:#991b1b}.suplido-log-list{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.4rem}.suplido-log-list li{border-left:3px solid var(--primary);padding:.3rem .75rem;font-size:.9rem}.sidebar-suplido-drop{margin:.5rem .9rem 1rem;padding:.75rem .6rem;border:1.5px dashed rgba(255,255,255,.28);border-radius:10px;display:flex;align-items:center;gap:.5rem;color:#ffffffb3;font-size:.78rem;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.sidebar-suplido-drop svg{flex-shrink:0}.sidebar-suplido-drop span{line-height:1.2}.sidebar-suplido-drop:hover,.sidebar-suplido-drop.drag-over{border-color:#fff;color:#fff;background:#ffffff14}.suplido-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}.suplido-preview-pane{position:sticky;top:1rem;height:70vh;min-height:420px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#f8fafc;display:flex;flex-direction:column}.suplido-pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0}.suplido-pdf-nav{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid #e2e8f0;background:#fff;font-size:.85rem;flex:0 0 auto}.suplido-pdf-canvas-wrap{flex:1;min-height:0;overflow:auto;background:#e2e8f0;text-align:center}.suplido-pdf-canvas-inner{position:relative;display:inline-block}.suplido-pdf-canvas-wrap canvas{display:block;background:#fff;box-shadow:0 1px 4px #00000026}.suplido-pdf-canvas-wrap.selecting canvas{cursor:crosshair}.suplido-pdf-selection{position:absolute;border:2px dashed var(--primary);background:#2563eb26;pointer-events:none}.suplido-pdf-hint{margin:0;padding:.4rem .6rem;font-size:.8rem;text-align:center;background:var(--primary-soft);color:var(--primary);flex:0 0 auto}.suplido-analyzing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;text-align:center;color:#475569}.spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;animation:suplido-spin .8s linear infinite}@keyframes suplido-spin{to{transform:rotate(360deg)}}.suplido-field-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.ocr-field-btn{display:inline-flex;align-items:center;gap:.25rem;border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:.15rem .4rem;font-size:.72rem;color:#475569;cursor:pointer;white-space:nowrap}.ocr-field-btn:hover{border-color:var(--primary);color:var(--primary)}.ocr-field-btn.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.suplido-review-form{min-width:0}@media(max-width:900px){.suplido-review-grid{grid-template-columns:1fr}.suplido-preview-pane{position:static;height:50vh;min-height:320px}}.suplido-field-label>span:first-child{display:inline-flex;align-items:center;gap:.3rem}.match-check{font-weight:700;font-size:.85rem}.match-check.ok{color:#16a34a}.match-check.bad{color:#dc2626}.suplido-pdf-nav-sep{width:1px;height:18px;background:#cbd5e1;margin:0 .15rem}.suplido-pdf-toggle{display:flex;gap:.5rem;margin-bottom:1rem}
