.app{flex-direction:column;min-height:100svh;display:flex}.navbar{background:color-mix(in srgb, var(--surface) 80%, transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:24px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.03em;color:var(--text-h);align-items:center;gap:9px;font-size:19px;font-weight:750;display:inline-flex}.nav-links{flex:1;gap:4px;display:flex}.nav-links a{border-radius:var(--radius-sm);color:var(--text-muted);padding:7px 13px;font-weight:550;text-decoration:none;transition:background .15s,color .15s}.nav-links a:hover{background:var(--surface-hover);color:var(--text-h)}.nav-links a.active{background:var(--primary-soft);color:var(--primary)}.nav-right{align-items:center;gap:12px;margin-left:auto;display:flex}.nav-user{align-items:center;gap:12px;display:flex}.theme-toggle{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s,transform 80ms;display:inline-flex}.theme-toggle:hover{background:var(--surface-hover);color:var(--text-h);border-color:var(--border-strong)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle:focus-visible{box-shadow:var(--ring);outline:none}.theme-toggle svg{width:18px;height:18px}.nav-username{color:var(--text-muted);border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);padding:4px 10px;font-size:13px;font-weight:550}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:32px 24px}.page{flex-direction:column;gap:22px;animation:.25s both fade-in;display:flex}.page-header{align-items:center;gap:14px;display:flex}.page-header h1{flex:1}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.login-page{background:radial-gradient(700px 480px at 15% 10%, var(--primary-soft), transparent 60%), radial-gradient(700px 480px at 85% 90%, var(--primary-soft), transparent 60%);justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:410px;box-shadow:var(--shadow-lg);padding:40px;animation:.3s both fade-in}.login-header{text-align:center;flex-direction:column;align-items:center;gap:6px;margin-bottom:30px;display:flex}.login-brand{letter-spacing:-.04em;color:var(--text-h);align-items:center;gap:11px;font-size:30px;font-weight:800;display:inline-flex}.login-subtitle{color:var(--text-muted);font-size:13px}.login-form{flex-direction:column;gap:17px;display:flex}.form-group{flex-direction:column;gap:7px;display:flex}.form-group label{color:var(--text-h);font-size:13px;font-weight:600}.login-btn{justify-content:center;margin-top:6px;padding:11px;font-size:14px}.login-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:var(--radius-sm);padding:10px 13px;font-size:13px}.form-group input,.input,.search-input,.inline-input,.template-select,.format-row select{font:inherit;color:var(--text-h);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.form-group input::placeholder,.input::placeholder,.search-input::placeholder{color:var(--text-faint)}.form-group input:focus,.input:focus,.search-input:focus,.inline-input:focus,.template-select:focus,.format-row select:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.form-group input:disabled,.input:disabled{opacity:.6;background:var(--surface-2);cursor:not-allowed}.btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;color:var(--text-h);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform 80ms;display:inline-flex}.btn:hover{background:var(--surface-hover);border-color:var(--text-faint)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--btn-bg);color:var(--on-primary);box-shadow:var(--shadow-primary);border-color:#0000}.btn-primary:hover{background:var(--btn-bg-hover);border-color:#0000;transform:translateY(-1px)}.btn-primary:active{background:var(--btn-bg-active);transform:translateY(0)}.btn-danger{color:var(--danger-text);border-color:var(--danger-border);background:var(--surface)}.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger-text)}.btn-sm{border-radius:7px;padding:5px 11px;font-size:12px}.btn-primary.btn-sm{box-shadow:none}.btn-remove{cursor:pointer;color:var(--text-faint);background:0 0;border:none;border-radius:6px;padding:6px;font-size:15px;line-height:1;transition:background .15s,color .15s}.btn-remove:hover{background:var(--danger-bg);color:var(--danger-text)}.badge{border-radius:var(--radius-pill);letter-spacing:.01em;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:650;display:inline-flex}.badge-default,.badge-extracting{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.badge-extracted,.badge-validated{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-border)}.badge-error{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.badge-pending{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--surface);padding:56px 24px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s}.dropzone p:first-child{color:var(--text-h);font-size:16px;font-weight:600}.dropzone:hover,.dropzone.dragging{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--shadow-md);transform:translateY(-1px)}.dropzone .hint{color:var(--text-muted);margin-top:6px;font-size:13px}.file-list{flex-direction:column;gap:10px;display:flex}.file-list h3{color:var(--text-muted);font-weight:600}.file-entry{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 16px;transition:box-shadow .15s,border-color .15s;display:flex}.file-entry:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.file-name{color:var(--text-h);flex:1;font-weight:600}.file-size{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.table{border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.table th{text-align:left;background:var(--surface-2);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:11px;font-weight:700}.table td{border-bottom:1px solid var(--border);color:var(--text);padding:12px 16px}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .12s}.table tbody tr:hover td{background:var(--surface-hover)}.table .debit{color:var(--danger-text);font-variant-numeric:tabular-nums;font-weight:600}.table .credit{color:var(--ok-text);font-variant-numeric:tabular-nums;font-weight:600}.table .status-to_check td{background:color-mix(in srgb, var(--warn-bg) 60%, var(--surface))}.table .status-corrected td{background:color-mix(in srgb, var(--ok-bg) 55%, var(--surface))}.actions-cell{gap:6px;display:flex}.company-cell{cursor:pointer;min-width:130px}.company-cell:hover .company-name{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.company-name{color:var(--text-h);font-weight:600}.company-empty{color:var(--primary);font-size:.9em;font-weight:600}.company-edit-cell{padding:4px 10px!important}.inline-input{border-radius:7px;width:100%;min-width:120px;padding:5px 8px;font-size:13px}.amount-input{width:110px}.summary-bar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.summary-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;padding:16px 18px;transition:box-shadow .15s,transform .15s;display:flex}.summary-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-item label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.summary-item strong{color:var(--text-h);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:20px;font-weight:700}.summary-item.debit strong{color:var(--danger-text)}.summary-item.credit strong{color:var(--ok-text)}.summary-item.warning{border-color:var(--warn-border);background:var(--warn-bg)}.summary-item.warning strong{color:var(--warn-text)}.totals-match{color:var(--ok-text);font-size:11px;font-weight:600}.totals-mismatch{color:var(--warn-text);font-size:11px;font-weight:700}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search-input{flex:1;min-width:200px}.export-group{align-items:center;gap:8px;display:flex}.export-buttons{gap:6px;display:flex}.template-select{cursor:pointer;max-width:220px}.pagination{color:var(--text-muted);justify-content:center;align-items:center;gap:14px;padding:12px;font-size:13px;font-weight:550;display:flex}.two-pane{grid-template-columns:250px 1fr;align-items:start;gap:22px;display:grid}.template-list{flex-direction:column;gap:6px;display:flex}.template-list h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px}.template-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:11px 13px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.template-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.template-item.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--shadow-sm)}.template-item span:first-child{color:var(--text-h);flex:1;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:22px;display:flex}.editor-header{align-items:center;gap:12px;display:flex}.editor-header h3{flex:1;font-size:17px}.format-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.format-row label{color:var(--text-muted);font-size:12px;font-weight:600}.format-row select{cursor:pointer;padding:7px 11px}.column-list{flex-direction:column;gap:8px;display:flex}.column-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:9px 12px;transition:opacity .15s;display:flex}.column-row.disabled{opacity:.5}.column-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.field-hint{color:var(--text-faint);font-size:11px;font-family:var(--mono);flex:1}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-hover) 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:6px;animation:1.4s infinite skeleton-shimmer;display:block}.skeleton-line{height:13px}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.empty-state{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:16px;padding:64px 24px;display:flex}.empty-state p{font-size:15px}.actions{justify-content:flex-end;gap:10px;display:flex}.error{color:var(--danger-text);font-size:13px;font-weight:550}@media (width<=760px){.main-content{padding:20px 16px}.navbar{gap:14px;padding:0 16px}.two-pane{grid-template-columns:1fr}}:root{--bg:#f5f6f9;--bg-grad-a:#eef1f8;--bg-grad-b:#f7f8fb;--surface:#fff;--surface-2:#f8f9fb;--surface-hover:#f2f4f7;--border:#e8eaef;--border-strong:#d7dae1;--text-h:#14161c;--text:#353a45;--text-muted:#6b7280;--text-faint:#9aa1ad;--primary:#6366f1;--btn-bg:#6366f1;--btn-bg-hover:#4f46e5;--btn-bg-active:#4338ca;--on-primary:#fff;--primary-soft:#6366f11a;--primary-ring:#6366f14d;--ok-text:#047857;--ok-bg:#ecfdf5;--ok-border:#a7f3d0;--danger-text:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--warn-text:#b45309;--warn-bg:#fffbeb;--warn-border:#fde68a;--info-text:#4f46e5;--info-bg:#eef2ff;--info-border:#c7d2fe;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018280d, 0 1px 3px #10182814;--shadow-md:0 4px 8px -2px #10182814, 0 2px 4px -2px #1018280d;--shadow-lg:0 16px 32px -12px #1018282e, 0 6px 12px -6px #1018281a;--shadow-primary:0 6px 16px -4px #6366f166;--ring:0 0 0 3px var(--primary-ring);--sans:system-ui, "Segoe UI", Roboto, -apple-system, BlinkMacSystemFont, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--bg:#0b0c11;--bg-grad-a:#14161f;--bg-grad-b:#0b0c11;--surface:#15171f;--surface-2:#1b1e28;--surface-hover:#21242f;--border:#262a36;--border-strong:#353a48;--text-h:#f2f3f7;--text:#d4d7df;--text-muted:#98a0af;--text-faint:#69707e;--primary:#a5b4fc;--btn-bg:#6366f1;--btn-bg-hover:#7c83f8;--btn-bg-active:#4f46e5;--on-primary:#fff;--primary-soft:#818cf824;--primary-ring:#818cf852;--ok-text:#34d399;--ok-bg:#10b98121;--ok-border:#10b9814d;--danger-text:#f87171;--danger-bg:#ef444421;--danger-border:#ef444452;--warn-text:#fbbf24;--warn-bg:#f59e0b21;--warn-border:#f59e0b4d;--info-text:#a5b4fc;--info-bg:#6366f129;--info-border:#6366f157;--shadow-sm:0 1px 2px #0006, 0 1px 3px #0000004d;--shadow-md:0 4px 8px -2px #00000073, 0 2px 4px -2px #0000004d;--shadow-lg:0 16px 32px -12px #0009, 0 6px 12px -6px #0006;--shadow-primary:0 6px 16px -4px #6366f180}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);letter-spacing:.1px;color:var(--text);background:radial-gradient(1200px 600px at 100% -10%, var(--bg-grad-a), transparent 60%), var(--bg);background-repeat:no-repeat;min-height:100svh;font-size:14px;line-height:1.55}#root{text-align:left;flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3,h4{font-family:var(--sans);color:var(--text-h);letter-spacing:-.02em;font-weight:650;line-height:1.25}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px}a{color:inherit}::selection{background:var(--primary-soft)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
