:root{--primary:#0f172a;--accent:#059669;--accent-hover:#047857;--bg-slate:#f1f5f9;--card-bg:#fff;--border:#cbd5e1;--border-focus:#059669;--text-main:#0f172a;--text-muted:#64748b;--danger:#dc2626;--danger-bg:#fee2e2;--warning-bg:#fef3c7;--warning-border:#d97706;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-slate);color:var(--text-main);padding-bottom:60px;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif}.app-header{background-color:var(--primary);color:#fff;border-bottom:2px solid #c5a880;padding:12px 32px;box-shadow:0 4px 12px #0000001a}.header-container{justify-content:space-between;align-items:center;max-width:1540px;margin:0 auto;display:flex}.brand{color:#fff;align-items:center;gap:12px;text-decoration:none;display:flex}.logo-box{background:var(--accent);color:#fff;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:800}.brand-text h1{letter-spacing:-.5px;font-size:18px;font-weight:800}.brand-text h1 span{color:#34d399}.tagline{color:#94a3b8;font-size:11px}.header-status{align-items:center;gap:14px;display:flex}.status-indicator{background:#34d399;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #34d399}.status-text{color:#94a3b8;font-size:11.5px;font-weight:500}.btn-home-link{color:#fff;background:#ffffff1a;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.btn-home-link:hover{background:#fff3}.main-layout{max-width:1540px;margin:20px auto;padding:0 20px;transition:all .2s}.dashboard-grid{grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:16px;display:grid}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:0 1px 3px #00000008}.card-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.step-num{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.card-title{color:var(--primary);font-size:14px;font-weight:700}.card-desc{color:var(--text-muted);font-size:11px}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-group label{color:#334155;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;font-size:11px;font-weight:700;display:block}.form-group input,.form-group select{border:1.5px solid var(--border);width:100%;color:var(--text-main);background:#fff;border-radius:6px;padding:7px 10px;font-size:12.5px;font-weight:600}.form-group input:focus,.form-group select:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px #0596691f}.form-group input.invalid{border-color:var(--danger);background-color:#fff5f5}.field-hint{color:var(--text-muted);margin-top:2px;font-size:10px;display:block}.kpi-grid{grid-template-columns:1fr 1.3fr 1.2fr;gap:8px;margin-bottom:14px;display:grid}.kpi-item{border:1px solid var(--border);text-align:center;background:#f8fafc;border-radius:8px;padding:10px}.kpi-label{text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:800;display:block}.kpi-value{color:var(--primary);font-size:20px;font-weight:800;font-family:var(--font-mono)}.kpi-value.highlight{color:var(--accent)}.kpi-status-badge{letter-spacing:.5px;border-radius:20px;margin-top:4px;padding:3px 10px;font-size:10.5px;font-weight:800;display:inline-block}.status-valid{color:#15803d;background:#dcfce7}.status-invalid{background:var(--danger-bg);color:#b91c1c}.actions-wrapper{gap:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:12.5px;font-weight:700;transition:all .15s;display:flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#1e293b}.btn-secondary{background:var(--accent);color:#fff}.btn-secondary:hover{background:var(--accent-hover)}.table-header-bar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.table-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.zoom-controls{border:1px solid var(--border);background:#f8fafc;border-radius:6px;align-items:center;gap:4px;margin-right:4px;padding:3px 6px;display:flex}.zoom-label{color:var(--text-muted);margin-right:2px;font-size:11px;font-weight:700}.btn-zoom{border:1px solid var(--border);cursor:pointer;width:22px;height:22px;color:var(--text-main);background:#fff;border-radius:4px;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.btn-zoom:hover{background:#e2e8f0}.zoom-indicator{font-size:11px;font-weight:700;font-family:var(--font-mono);color:var(--primary);text-align:center;min-width:38px}.btn-fit{color:#065f46!important;background:#ecfdf5!important;border-color:#a7f3d0!important;font-weight:700!important}.btn-fit:hover{background:#d1fae5!important}.btn-tool{border:1px solid var(--border);cursor:pointer;color:var(--text-main);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:6px 10px;font-size:11.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn-tool:hover{background:#f1f5f9}.btn-fullscreen{color:#0f172a;background:#f8fafc;border-color:#94a3b8;font-weight:700}.btn-fullscreen:hover{background:#e2e8f0}.btn-upload{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.btn-upload:hover{background:#e0e7ff}.btn-add{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.btn-add:hover{background:#d1fae5}.btn-clear{color:var(--danger);border-color:#fecaca}.btn-clear:hover{background:var(--danger-bg)}body.fullscreen-mode{overflow:hidden!important}body.fullscreen-mode .app-header,body.fullscreen-mode #topDashboard,body.fullscreen-mode #legalFooter{display:none!important}body.fullscreen-mode .main-layout{flex-direction:column!important;max-width:100vw!important;height:100vh!important;margin:0!important;padding:10px!important;display:flex!important}body.fullscreen-mode #ledgerSection{border-radius:0;flex-direction:column!important;flex:1!important;height:calc(100vh - 20px)!important;padding:12px 16px!important;display:flex!important;overflow:hidden!important}body.fullscreen-mode .table-header-bar{flex-shrink:0!important;margin-bottom:8px!important}body.fullscreen-mode #issuesBanner{flex-shrink:0!important;max-height:100px!important;overflow-y:auto!important}body.fullscreen-mode #tableWrapper{flex:1!important;height:100%!important;max-height:none!important}.issues-banner{background:#fff5f5;border:1.5px solid #fecaca;border-radius:8px;margin-bottom:10px;padding:10px 14px;box-shadow:0 2px 4px #dc26260d}.issues-header{color:#991b1b;align-items:center;gap:8px;margin-bottom:4px;font-size:12px;display:flex}.issues-count-badge{color:#fff;background:#dc2626;border-radius:10px;padding:2px 5px;font-size:10px;font-weight:800}.issues-list{color:#7f1d1d;font-size:11.5px;list-style:none}.issues-list li{user-select:none;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:3px;padding:4px 8px;transition:background .15s;display:flex;cursor:pointer!important}.issues-list li:hover{color:#991b1b!important;background:#fee2e2!important}.fix-tag{color:#dc2626;background:#fff;border:1px solid #fca5a5;border-radius:4px;padding:2px 6px;font-size:10.5px;font-weight:800;cursor:pointer!important}.table-wrapper{border:1px solid var(--border);background:#fff;border-radius:8px;max-height:480px;position:relative;overflow-x:auto}.zoomable-table-container{transform-origin:0 0;width:100%;transition:zoom .15s}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:11.5px}.data-table th{text-align:left;white-space:nowrap;z-index:20;border-bottom:2px solid #334155;padding:8px 6px;font-weight:600;position:sticky;top:0;background:var(--primary)!important;color:#fff!important}.data-table td{background:#fff;border-bottom:1px solid #e2e8f0;padding:4px 6px}.data-table tr:hover td{background-color:#f8fafc}.col-sticky-0{color:var(--text-muted);font-weight:700;z-index:10!important;border-right:1px solid var(--border)!important;background:#f8fafc!important;width:44px!important;min-width:44px!important;max-width:44px!important;position:sticky!important;left:0!important}.col-sticky-1{z-index:10!important;background:#fff!important;width:130px!important;min-width:130px!important;max-width:130px!important;position:sticky!important;left:44px!important}.col-sticky-2{z-index:10!important;background:#fff!important;border-right:2px solid #94a3b8!important;width:145px!important;min-width:145px!important;max-width:145px!important;position:sticky!important;left:174px!important;box-shadow:4px 0 6px -2px #0000001a!important}th.col-sticky-0,th.col-sticky-1,th.col-sticky-2{background:var(--primary)!important;color:#fff!important;z-index:30!important}.data-table input,.data-table select,.modal-group input,.modal-group select{border:1px solid var(--border);width:100%;color:var(--text-main);box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-radius:4px;padding:5px 6px;font-family:inherit;font-size:11.5px}.data-table select,.modal-group select{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 4px center;background-repeat:no-repeat;background-size:10px;padding-right:16px}.data-table input:focus,.data-table select:focus,.modal-group input:focus,.modal-group select:focus{border-color:var(--accent);outline:none}.data-table input.inp-num{text-align:right;font-family:var(--font-mono)}.data-table input.inp-iban{font-family:var(--font-mono);font-size:10.5px}.input-error{color:#991b1b!important;background-color:#fef2f2!important;border-color:#dc2626!important}.input-warning,select.input-warning{color:#92400e!important;background-color:#fef3c7!important;border:2px solid #d97706!important;font-weight:700!important;box-shadow:0 0 0 2px #d977064d!important}@keyframes flashTargetPulse{0%{transform:scale(1.04);background-color:#fee2e2!important;box-shadow:0 0 0 4px #dc2626!important}50%{background-color:#fecaca!important;box-shadow:0 0 0 8px #dc262666!important}to{transform:scale(1)}}.flash-target{z-index:40!important;animation:1.4s ease-in-out flashTargetPulse!important;position:relative!important}.cell-net{color:var(--primary);text-align:right;font-weight:800;font-family:var(--font-mono);font-size:12px}.badge-status-pill{letter-spacing:.3px;white-space:nowrap;border-radius:10px;padding:2px 6px;font-size:9.5px;font-weight:800;display:inline-block}.badge-ok{color:#166534;background:#dcfce7}.badge-err{color:#991b1b;background:#fee2e2}.badge-warn{color:#92400e;background:#fef3c7;border:1px solid #d97706}.action-cell{align-items:center;gap:4px;display:flex}.btn-edit-row{border:1px solid var(--border);cursor:pointer;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-size:11px}.btn-edit-row:hover{background:#e2e8f0}.btn-del{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;font-weight:700}.btn-del:hover{color:var(--danger)}.modal-overlay{backdrop-filter:blur(2px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-container{background:#fff;border-radius:12px;width:100%;max-width:640px;overflow:hidden;box-shadow:0 20px 25px -5px #0003}.modal-header{background:var(--primary);color:#fff;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-header h3{font-size:15px;font-weight:700}.modal-close-btn{color:#fff;cursor:pointer;background:0 0;border:none;font-size:20px}.modal-body{max-height:70vh;padding:20px;overflow-y:auto}.modal-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-group.span-2{grid-column:span 2}.modal-group label{color:#334155;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.modal-group input,.modal-group select{border:1px solid var(--border);border-radius:6px;width:100%;padding:8px 10px;font-size:13px}.modal-footer{border-top:1px solid var(--border);background:#f8fafc;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex}.legal-notice-card{border:1px solid var(--border);color:var(--text-muted);background:#fff;border-radius:8px;margin-top:16px;padding:12px 16px;font-size:11px;line-height:1.5}.legal-header{color:var(--primary);align-items:center;gap:6px;margin-bottom:4px;font-weight:700;display:flex}
