.dashboard{margin-bottom:24px}.section{background:var(--surface);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.chart-header h2{font-size:13px;font-weight:600;color:var(--text);margin:0;letter-spacing:-.01em}.year-selector{padding:8px 16px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #5d87ff4d;letter-spacing:.3px}.year-selector:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5d87ff66}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:16px;margin-bottom:16px}.evolution-activity-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 1200px){.evolution-activity-grid{grid-template-columns:1fr}}.top-merchants-card{display:flex;flex-direction:column;gap:20px;padding:20px 0}.top-merchant-item{display:flex;flex-direction:column;gap:8px}.top-merchant-header{display:flex;align-items:center;gap:12px}.top-merchant-logo,.top-merchant-logo-placeholder{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:contain;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.top-merchant-logo{padding:4px}.top-merchant-info{flex:1;min-width:0}.top-merchant-name{font-weight:600;font-size:14px;color:var(--text-dark);margin-bottom:4px}.top-merchant-amount{font-size:12px;color:var(--text-muted)}.top-merchant-bar{width:100%;height:8px;background:var(--bg);border-radius:4px;overflow:hidden;position:relative}.top-merchant-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-light) 100%);border-radius:4px;transition:width .3s ease}.top-merchant-percentage{font-size:12px;font-weight:600;color:var(--primary);text-align:right}.merchant-list{display:flex;flex-direction:column;gap:8px}.merchant-table-container{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}.merchant-table{width:100%;border-collapse:collapse;background:var(--surface)}.merchant-table thead{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%)}.merchant-table th{padding:14px 16px;text-align:left;font-weight:600;color:#fff;font-size:13px;letter-spacing:.3px;border-right:1px solid rgba(255,255,255,.2)}.merchant-table th:last-child{border-right:none}.merchant-table th:nth-child(3),.merchant-table th:nth-child(4),.merchant-table th:nth-child(5),.merchant-table th:nth-child(6){text-align:right}.merchant-table tbody tr{border-bottom:1px solid var(--border);transition:all .2s ease;background:var(--surface)}.merchant-table-row:hover{background:linear-gradient(90deg,#5d87ff0d,#5d87ff05);transform:translate(2px)}.merchant-table tbody tr:last-child{border-bottom:none}.merchant-table td{padding:14px 16px;color:var(--text)}.merchant-rank-cell{font-weight:700;color:var(--primary);font-size:13px}.merchant-name-cell{font-weight:600;color:var(--text)}.merchant-name{font-weight:600;color:var(--text);font-size:.875rem}.merchant-count-cell{text-align:right;color:var(--text-muted);font-size:.875rem}.merchant-amount-cell{text-align:right;font-weight:600;font-size:14px;color:var(--text)}.merchant-evolution-cell{text-align:right;font-weight:600;font-size:13px}.kpi-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--surface);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-light) 100%);transform:scaleX(0);transition:transform .3s ease}.kpi-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary-light)}.kpi-card:hover:before{transform:scaleX(1)}.kpi-card-header{display:flex;align-items:center;margin-bottom:10px;gap:8px}.kpi-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;background:linear-gradient(135deg,#5d87ff1a,#5d87ff33);color:var(--primary)}.kpi-card-title{font-size:13px;font-weight:600;color:var(--text-muted);flex:1;letter-spacing:-.01em}.kpi-card-value{font-size:24px;font-weight:700;color:var(--text-dark);margin-bottom:8px;line-height:1.2;letter-spacing:-.5px}.kpi-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.kpi-card-count{font-size:11px;color:var(--text-muted);font-weight:500}.monthly-expenses-table-wrapper{overflow-x:auto;margin-top:8px}.monthly-expenses-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.monthly-expenses-table thead{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%)}.monthly-expenses-table th{padding:14px 16px;text-align:left;font-weight:600;color:#fff;font-size:13px;letter-spacing:.3px;border-right:1px solid rgba(255,255,255,.2)}.monthly-expenses-table th:last-child{border-right:none;text-align:right}.monthly-expenses-table tbody tr{border-bottom:1px solid var(--border);transition:all .2s ease;background:var(--surface)}.monthly-expenses-table tbody tr:hover{background:linear-gradient(90deg,#5d87ff0d,#5d87ff05);transform:translate(2px)}.monthly-expenses-table tbody tr:last-child{border-bottom:none}.monthly-expenses-table td{padding:14px 16px;color:var(--text)}.month-cell{font-weight:600;color:var(--text-dark)}.month-name{text-transform:capitalize}.amount-cell{text-align:right;font-weight:600;font-size:15px;letter-spacing:-.3px}.amount-cell.current{color:var(--primary)}.amount-cell.previous{color:var(--text-muted);font-weight:500}.evolution-cell{text-align:right;font-weight:600;font-size:13px}.evolution-value{display:inline-block;padding:4px 10px;border-radius:12px;font-weight:600;font-size:12px}.evolution-cell.positive .evolution-value{background:#1f9d6a1a;color:#1f9d6a}.evolution-cell.negative .evolution-value{background:#d143431a;color:#d14343}.total-row{background:var(--bg)!important;border-top:2px solid var(--border);font-weight:700}.total-row td{padding:16px;font-size:15px}.total-row .amount-cell{font-size:16px}.total-row .evolution-cell strong{font-size:14px}.total-row .evolution-cell strong.positive{color:#1f9d6a}.total-row .evolution-cell strong.negative{color:#d14343}.activity-log-card{max-height:400px;display:flex;flex-direction:column}.activity-log-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px;flex:1}.activity-log-item-dark{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm);transition:all .2s ease;border:1px solid var(--border)}.activity-log-item-dark:hover{background:var(--surface-hover);border-color:var(--border-dark);transform:translate(4px);box-shadow:var(--shadow)}.activity-log-avatar-dark{width:32px;height:32px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;box-shadow:0 1px 4px #0003}.activity-log-content-dark{flex:1;min-width:0}.activity-log-title-dark{font-weight:600;font-size:13px;color:var(--text);margin-bottom:4px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.activity-log-meta-dark{display:flex;flex-direction:column;gap:1px;font-size:11px;color:var(--text-muted)}.activity-log-merchant-dark{font-weight:500}.activity-log-date-dark{font-size:10px;opacity:.8}.activity-log-amount-dark{font-weight:700;font-size:13px;color:var(--text);text-align:right;white-space:nowrap;flex-shrink:0}.activity-log-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg);border-radius:var(--radius);transition:all .2s ease;border:1px solid var(--border)}.activity-log-item:hover{background:var(--surface);border-color:var(--primary-light);transform:translate(4px);box-shadow:var(--shadow)}.activity-log-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;box-shadow:0 2px 8px #5d87ff4d}.activity-log-content{flex:1;min-width:0}.activity-log-title{font-weight:600;font-size:14px;color:var(--text-dark);margin-bottom:4px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.activity-log-meta{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-muted)}.activity-log-merchant{font-weight:500}.activity-log-date{font-size:11px;opacity:.8}.activity-log-amount{font-weight:700;font-size:14px;color:var(--primary);text-align:right;white-space:nowrap;flex-shrink:0}@media (max-width: 768px){.charts-grid{grid-template-columns:1fr}.chart-header{flex-direction:column;align-items:flex-start;gap:15px}.kpi-cards-grid,.evolution-activity-grid{grid-template-columns:1fr}}.csv-preview{background:var(--surface);border-radius:var(--radius);padding:24px;margin-top:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.preview-header{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--border)}.preview-header h3{font-size:1.125rem;font-weight:600;color:var(--text);margin-bottom:12px}.preview-stats{display:flex;gap:24px;flex-wrap:wrap}.stat-item{font-size:.875rem;color:var(--text-muted)}.stat-item strong{color:var(--text);font-weight:600}.preview-table-container{overflow-x:auto;margin-top:16px}.preview-table{width:100%;border-collapse:collapse;font-size:.875rem}.preview-table thead{background:var(--surface-2)}.preview-table th{padding:12px 16px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;position:relative}.column-header{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.mapping-badge{font-size:.7rem;font-weight:500;padding:2px 6px;border-radius:4px;background:var(--primary);color:#fff;white-space:nowrap}.mapped-column{background:#1f4b5f14!important;border-left:3px solid var(--primary)}.mapped-column.mapped-date{background:#2f80ed14!important;border-left-color:var(--accent)}.mapped-column.mapped-amount{background:#f0b4291f!important;border-left-color:var(--warning)}.mapped-column.mapped-description{background:#1f9d6a1f!important;border-left-color:var(--success)}.mapped-column.mapped-societe{background:#2f80ed14!important;border-left-color:var(--accent)}.mapped-cell{background:var(--surface-2)}.mapped-cell.mapped-date{background:#2f80ed14}.mapped-cell.mapped-amount{background:#f0b4291f;font-weight:600}.mapped-cell.mapped-description{background:#1f9d6a1f}.mapped-cell.mapped-societe{background:#2f80ed14}.preview-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text)}.preview-table tbody tr:hover{background:var(--surface-2)}.preview-table tbody tr:last-child td{border-bottom:none}.amount-cell{font-weight:600;color:var(--primary);text-align:right}.preview-footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.preview-note{font-size:.875rem;color:var(--text-muted);font-style:italic;margin:0}@media (max-width: 768px){.preview-table-container{font-size:.75rem}.preview-table th,.preview-table td{padding:8px 12px}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:500px;padding:14px 16px;border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--surface-dark);border:1px solid var(--border-dark);pointer-events:auto;animation:slideInRight .3s ease-out;gap:12px}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);flex-shrink:0;font-size:18px}.toast-success .toast-icon{background:#13deb926;color:var(--success)}.toast-error .toast-icon{background:#fa896b26;color:var(--danger)}.toast-warning .toast-icon{background:#ffae1f26;color:var(--warning)}.toast-info .toast-icon{background:#539bff26;color:var(--info)}.toast-content{flex:1;min-width:0}.toast-message{margin:0;color:var(--sidebar-text-hover);font-size:14px;font-weight:500;line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-light);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;transition:all .2s ease;padding:0}.toast-close:hover{background:#ffffff1a;color:var(--sidebar-text-hover)}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;max-width:100%}}.column-mapping{background:var(--surface);border-radius:var(--radius);padding:24px;margin-top:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.mapping-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border)}.mapping-header h3{font-size:1.125rem;font-weight:600;color:var(--text);margin-bottom:8px}.mapping-description{font-size:.875rem;color:var(--text-muted);margin:0}.required{color:var(--danger);font-weight:600}.mapping-form{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.mapping-row{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}.mapping-label{font-weight:500;color:var(--text-muted);font-size:.875rem}.mapping-select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:.875rem;background:var(--surface);cursor:pointer;transition:border-color .2s}.mapping-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1f4b5f26}.mapping-input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:.875rem;width:100px;transition:border-color .2s}.mapping-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1f4b5f26}.mapping-hint{font-size:.75rem;color:var(--text-muted);margin-left:8px;font-style:italic}.sample-preview{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.sample-preview h4{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:12px}.sample-table-container{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.sample-table{width:100%;border-collapse:collapse;font-size:.75rem}.sample-table thead{background:var(--surface-2)}.sample-table th{padding:8px 12px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;position:relative}.sample-table th .column-header{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.sample-table th .mapping-badge{font-size:.65rem;font-weight:500;padding:2px 6px;border-radius:4px;background:var(--primary);color:#fff;white-space:nowrap}.sample-table th.mapped-column{background:#1f4b5f14!important;border-left:3px solid var(--primary)}.sample-table th.mapped-column.mapped-date{background:#2f80ed14!important;border-left-color:var(--accent)}.sample-table th.mapped-column.mapped-amount{background:#f0b4291f!important;border-left-color:var(--warning)}.sample-table th.mapped-column.mapped-description{background:#1f9d6a1f!important;border-left-color:var(--success)}.sample-table th.mapped-column.mapped-merchant{background:#d1434314!important;border-left-color:var(--danger)}.sample-table th.mapped-column.mapped-currency{background:#2f80ed14!important;border-left-color:var(--accent)}.sample-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text)}.sample-table td.mapped-cell{background:var(--surface-2)}.sample-table td.mapped-cell.mapped-date{background:#2f80ed14}.sample-table td.mapped-cell.mapped-amount{background:#f0b4291f;font-weight:600}.sample-table td.mapped-cell.mapped-description{background:#1f9d6a1f}.sample-table td.mapped-cell.mapped-societe{background:#2f80ed14}.sample-table tbody tr:hover{background:var(--surface-2)}.sample-table tbody tr.ignored-row{background:#fde8e8!important;opacity:.7}.sample-table tbody tr.ignored-row:hover{background:#f7c9c9!important}.sample-table tbody tr.ignored-row td{color:var(--danger);text-decoration:line-through}.sample-table tbody tr:last-child td{border-bottom:none}.mapping-actions{display:flex;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.confirm-button{padding:12px 24px;background:var(--success);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.confirm-button:hover{transform:translateY(-2px);box-shadow:0 10px 18px #1f9d6a40}.cancel-button:hover{background:var(--border)}@media (max-width: 768px){.mapping-row{grid-template-columns:1fr;gap:8px}.sample-table-container{font-size:.7rem}}.file-upload{margin-bottom:30px}.upload-section{background:var(--surface);border-radius:var(--radius-lg);padding:24px 30px;margin-bottom:24px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.upload-section h2{font-size:1.25rem;font-weight:600;color:var(--text);margin-bottom:20px}.upload-controls{display:flex;flex-direction:column;gap:12px}.file-input-label{display:inline-block;cursor:pointer}.file-input{display:none}.file-input-button{display:inline-block;padding:12px 24px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #5d87ff4d}.file-input-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5d87ff66}.file-info{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-2);border-radius:8px;border:1px solid var(--border)}.file-name{font-weight:500;color:var(--text)}.file-size{font-size:.875rem;color:var(--text-muted)}.error-message{padding:12px 16px;background:#fde8e8;color:var(--danger);border-radius:8px;border:1px solid rgba(209,67,67,.35);margin-top:12px;font-weight:500}.preview-actions{display:flex;gap:12px;margin-top:20px}.upload-button{padding:12px 24px;background:linear-gradient(135deg,var(--success) 0%,#0fc9a7 100%);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #13deb94d}.upload-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #13deb966}.upload-button:disabled{opacity:.6;cursor:not-allowed}.cancel-button{padding:12px 24px;background:var(--border);color:var(--text-muted);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button:hover:not(:disabled){background:var(--border)}.cancel-button:disabled{opacity:.6;cursor:not-allowed}.filters{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:.9rem;color:var(--text-muted);font-weight:500}.filter-group input{padding:8px 12px;border:2px solid var(--border);border-radius:6px;font-size:1rem;transition:border-color .2s}.filter-group input:focus{outline:none;border-color:var(--primary)}.clear-filters-btn{padding:8px 20px;background:var(--surface-2);border:2px solid var(--border);border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.clear-filters-btn:hover{background:var(--border);border-color:var(--border)}.transactions-table-wrapper{overflow-x:auto;margin-bottom:20px}.transactions-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}.transactions-table thead{background:linear-gradient(135deg,#1e293b,#334155)}.transactions-table th{padding:16px 20px;text-align:left;font-weight:600;color:#fff;border-bottom:2px solid var(--border);font-size:13px;text-transform:uppercase;letter-spacing:.5px;position:relative}.transactions-table th:first-child{padding-left:24px}.transactions-table th:last-child{padding-right:24px}.transactions-table td{padding:16px 20px;border-bottom:1px solid var(--border);color:var(--text);font-size:14px;transition:background-color .2s ease}.transactions-table td:first-child{padding-left:24px}.transactions-table td:last-child{padding-right:24px}.transactions-table tbody tr{transition:all .2s ease}.transactions-table tbody tr:hover{background:linear-gradient(90deg,#5d87ff0d,#5d87ff05);transform:scale(1.001)}.transactions-table tbody tr:last-child td{border-bottom:none}.description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.amount-cell{font-weight:700;text-align:right;font-size:15px;letter-spacing:-.3px}.amount-cell.expense{color:var(--danger)}.amount-cell.income{color:var(--success)}.amount-ht{font-weight:600;text-align:right;color:var(--primary)}.amount-ht.expense,.amount-ht.income{color:var(--primary)}.vat-indicator{font-size:.75rem;font-weight:400;color:var(--text-muted);margin-left:5px}.source-badge{display:inline-block;padding:6px 12px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border-radius:20px;font-size:12px;font-weight:600;box-shadow:0 2px 8px #5d87ff4d;letter-spacing:.3px}.delete-btn{background:#fa896b1a;border:none;cursor:pointer;font-size:16px;padding:8px;border-radius:var(--radius-sm);transition:all .2s ease;color:var(--danger);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px}.delete-btn:hover{background:var(--danger);color:#fff;transform:scale(1.1);box-shadow:0 4px 8px #fa896b4d}.no-data{text-align:center;padding:40px!important;color:var(--text-muted);font-style:italic}.transactions-summary{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#5d87ff0d,#5d87ff05);border-radius:var(--radius-lg);margin-top:24px;border:1px solid var(--border);box-shadow:var(--shadow-md)}.transactions-summary strong{font-size:20px;color:var(--primary);font-weight:700;letter-spacing:-.5px}.transactions-summary span{color:var(--text-muted);font-size:14px;font-weight:500}.tag-pill{padding:6px 14px;background:linear-gradient(135deg,var(--success) 0%,#0fc9a7 100%);color:#fff;border-radius:20px;font-size:12px;font-weight:600;display:inline-block;box-shadow:0 2px 8px #13deb94d;cursor:pointer;transition:all .2s ease}.tag-pill:hover{transform:translateY(-2px);box-shadow:0 4px 12px #13deb966}.contract-select{width:200px;font-size:12px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface)}.contract-cell{display:flex;align-items:center;gap:6px}.contract-pill{padding:4px 8px;background:var(--primary);color:#fff;border-radius:6px;font-size:11px;cursor:pointer}.associate-button{padding:4px 8px;background:var(--surface-2);border:1px dashed var(--border);border-radius:6px;cursor:pointer;font-size:11px;color:var(--text)}.associate-button:hover{background:var(--border)}@media (max-width: 768px){.filters{flex-direction:column}.filter-group{width:100%}.transactions-table{font-size:.9rem}.transactions-table th,.transactions-table td{padding:8px}}.settings-container{max-width:1200px;margin:0 auto;padding:20px}.settings-container h1{color:var(--text);margin-bottom:30px}.settings-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid var(--border);padding-bottom:0;overflow-x:auto}.settings-tab{padding:12px 24px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-muted);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;margin-bottom:-2px}.settings-tab:hover{color:var(--primary);background:var(--surface-hover)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--surface);border-radius:var(--radius) var(--radius) 0 0}.settings-section{background:var(--surface);border-radius:var(--radius-lg);padding:30px;margin-bottom:30px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.settings-section h2{color:var(--primary);margin-bottom:10px}.settings-description{color:var(--text-muted);margin-bottom:20px;font-size:.95rem}.settings-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}.settings-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.settings-table th{padding:16px 20px;text-align:left;font-weight:600;color:var(--text-dark);border-bottom:2px solid var(--border);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.settings-table td{padding:16px 20px;border-bottom:1px solid var(--border);color:var(--text);font-size:14px;transition:background-color .2s ease}.settings-table tbody tr{transition:all .2s ease}.settings-table tbody tr:hover{background:linear-gradient(90deg,#5d87ff0d,#5d87ff05)}.settings-table tbody tr:last-child td{border-bottom:none}.merchants-list{margin-top:20px}.error{color:var(--danger);padding:15px;background:#fde8e8;border-radius:var(--radius-sm);border:1px solid #f7c9c9}.tags-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.tag-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);border-radius:var(--radius-sm);border:1px solid var(--border)}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:600;transition:all .3s ease;box-shadow:0 4px 12px #5d87ff4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5d87ff66}.btn-edit-small,.btn-save-small,.btn-cancel-small,.btn-delete-small{padding:5px 10px;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;margin:0 2px;transition:all .2s}.btn-edit-small{background:var(--accent);color:#fff}.btn-edit-small:hover{background:#246bd6}.btn-save-small{background:var(--success);color:#fff}.btn-save-small:hover{background:#17855a}.btn-cancel-small{background:#e66565;color:#fff}.btn-cancel-small:hover{background:#cf4d4d}.input-small,.select-small{padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:.9rem}.input-small:focus,.select-small:focus{outline:none;border-color:var(--primary)}.tag-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);border-radius:6px;border:1px solid #e0e0e0}.colors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.color-item{display:flex;flex-direction:column;gap:8px}.color-item label{font-weight:500;color:var(--text)}.color-input-group{display:flex;gap:10px;align-items:center}.color-picker{width:60px;height:40px;border:2px solid var(--border);border-radius:6px;cursor:pointer}.color-text{flex:1;padding:8px 12px;border:2px solid var(--border);border-radius:6px;font-family:monospace;font-size:.9rem}.merchant-form{background:var(--surface-2);padding:20px;border-radius:8px;margin-bottom:30px}.merchant-form-spaced{margin-bottom:20px}.form-row{display:grid;grid-template-columns:2fr 1fr auto;gap:15px;align-items:end}.form-row-spaced{margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-weight:500;color:var(--text);font-size:.9rem}.form-group input{padding:10px;border:2px solid var(--border);border-radius:6px;font-size:.95rem}.form-group input:focus{outline:none;border-color:var(--primary)}.btn-primary{padding:10px 20px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s;white-space:nowrap}.btn-primary:hover,.toggle-alias-btn.active{background:var(--primary-600)}.alias-mapping-panel{margin-top:30px;padding:20px;background:var(--surface-2);border-radius:var(--radius-sm);border:1px solid var(--border)}.alias-title{margin-top:0;margin-bottom:15px;color:var(--text)}.alias-description{color:var(--text-muted);margin-bottom:15px;font-size:.9rem}.alias-merchant-select{min-width:220px}.alias-input{flex:1}.alias-empty{color:var(--text-muted);font-style:italic}.alias-table-wrapper{max-height:400px;overflow-y:auto}.merchants-list h3{color:var(--text);margin-bottom:20px}.merchants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.merchants-table-wrapper{margin-top:20px;overflow-x:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border)}.merchants-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.merchants-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid var(--border)}.merchants-table th{padding:16px 20px;text-align:left;font-weight:600;color:var(--text-dark);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.merchants-table th:first-child{padding-left:24px}.merchants-table th:last-child{padding-right:24px}.merchants-table td{padding:16px 20px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);transition:background-color .2s ease}.merchants-table td:first-child{padding-left:24px}.merchants-table td:last-child{padding-right:24px}.merchants-table tbody tr{transition:all .2s ease}.merchants-table tbody tr:hover{background:linear-gradient(90deg,#5d87ff0d,#5d87ff05)}.merchants-table tbody tr:last-child td{border-bottom:none}.table-input{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:14px}.table-select{padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:14px;background:#fff}.btn-link-descriptions-small{background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background .2s}.btn-link-descriptions-small:hover{background:var(--primary-600)}.btn-cancel-small,.btn-edit-small,.btn-delete-small{background:transparent;border:1px solid var(--border);border-radius:4px;padding:4px 8px;cursor:pointer;font-size:14px;transition:all .2s}.btn-cancel-small:hover{background:#fde8e8;border-color:#d1434380}.btn-edit-small:hover{background:#2f80ed26;border-color:#2f80ed73}.btn-delete-small:hover{background:#fde8e8;border-color:#d1434380}.merchant-card{background:var(--surface-2);border:2px solid var(--border);border-radius:8px;padding:20px;transition:border-color .3s}.merchant-card:hover{border-color:var(--primary)}.merchant-header{margin-bottom:15px}.merchant-name-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.merchant-name-section h4{margin:0;color:var(--text);font-size:1.2rem;flex:1}.vat-badge{background:var(--success);color:#fff;padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.merchant-name-input{flex:1;padding:8px;border:2px solid var(--primary);border-radius:6px;font-size:1rem}.vat-rate-input{width:80px;padding:8px;border:2px solid var(--primary);border-radius:6px}.btn-edit,.btn-delete-small,.btn-save,.btn-cancel{padding:6px 10px;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-edit{background:var(--primary);color:#fff}.btn-edit:hover{background:var(--primary-600)}.btn-delete-small{background:var(--danger);color:#fff}.btn-delete-small:hover{background:#c53131}.btn-save{background:var(--success);color:#fff}.btn-save:hover{background:#17855a}.btn-cancel{background:var(--text-muted);color:#fff}.btn-cancel:hover{background:#777}.aliases-section{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef}.aliases-section label{display:block;font-weight:500;color:var(--text);margin-bottom:5px;font-size:1rem}.aliases-hint{color:var(--text-muted);font-size:.85rem;margin-bottom:15px;font-style:italic}.no-aliases{color:var(--text-muted);font-style:italic;padding:10px;text-align:center;font-size:.9rem}.aliases-list{display:flex;flex-direction:column;gap:8px;margin-bottom:15px;max-height:200px;overflow-y:auto}.alias-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:6px}.alias-item span{color:var(--text);font-size:.9rem}.btn-delete-alias{background:var(--danger);color:#fff;border:none;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:.8rem}.btn-delete-alias:hover{background:#c53131}.add-alias-section{display:flex;gap:10px;align-items:center}.alias-select{flex:1;padding:8px 12px;border:2px solid var(--border);border-radius:6px;font-size:.9rem}.alias-select:focus{outline:none;border-color:var(--primary)}.btn-add-alias{padding:8px 16px;background:var(--success);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;white-space:nowrap}.btn-add-alias:hover{background:#17855a}.no-data{color:var(--text-muted);font-style:italic;padding:20px;text-align:center}.aliases-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.btn-link-descriptions{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:.9rem;transition:background .3s}.btn-link-descriptions:hover{background:var(--primary-600)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;color:var(--text);font-size:1.2rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#f0f0f0;color:var(--text)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-hint{color:var(--text-muted);font-size:.9rem;margin-bottom:15px}.search-descriptions{margin-bottom:15px}.search-descriptions-input{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:8px;font-size:1rem;transition:border-color .3s}.search-descriptions-input:focus{outline:none;border-color:var(--primary)}.no-results{color:var(--text-muted);font-style:italic;text-align:center;padding:30px}.descriptions-checkbox-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;padding:10px;background:var(--surface-2);border-radius:8px}.description-checkbox-item{display:flex;align-items:center;gap:10px;padding:10px;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s;border:2px solid transparent}.description-checkbox-item:hover{background:var(--bg);border-color:var(--primary)}.description-checkbox-item.relevant{background:#e8f5e9;border-color:var(--success);order:-1}.description-checkbox-item.relevant:hover{background:#d4edda}.description-checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}.description-checkbox-item span{flex:1;color:var(--text);font-size:.95rem}.no-descriptions-available{color:var(--text-muted);font-style:italic;text-align:center;padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:1px solid #e9ecef}.btn-cancel-modal{padding:10px 20px;background:#f0f0f0;color:var(--text);border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s}.btn-cancel-modal:hover{background:#e0e0e0}.btn-confirm-modal{padding:10px 20px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s}.btn-confirm-modal:hover:not(:disabled){background:var(--primary-600)}.btn-confirm-modal:disabled{background:#ccc;cursor:not-allowed}.mapping-section{margin-top:20px}.mapping-section h3{color:var(--text);margin-bottom:15px}.original-names-list{display:flex;flex-direction:column;gap:15px;max-height:500px;overflow-y:auto;padding:10px;background:var(--surface-2);border-radius:8px}.mapping-item-row{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:15px;border-radius:8px;border:1px solid #e9ecef;gap:20px}.original-name-display{flex:1;min-width:200px}.original-name-display strong{color:var(--text);font-size:1rem}.mapping-controls{flex:2;display:flex;align-items:center;gap:10px}.mapped-info{display:flex;align-items:center;gap:15px;color:var(--success);font-weight:500}.btn-unmap{padding:6px 12px;background:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .3s}.btn-unmap:hover{background:#c53131}.mapping-form-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}.merchant-select{flex:1;min-width:200px;padding:8px 12px;border:2px solid var(--border);border-radius:6px;font-size:.9rem}.merchant-select:focus{outline:none;border-color:var(--primary)}.btn-map{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;white-space:nowrap;transition:background .3s}.btn-map:hover{background:var(--primary-600)}.new-merchant-name-input{flex:1;min-width:150px;padding:8px 12px;border:2px solid var(--primary);border-radius:6px;font-size:.9rem}.new-merchant-vat-input{width:80px;padding:8px 12px;border:2px solid var(--primary);border-radius:6px;font-size:.9rem}.btn-create-and-map{padding:8px 16px;background:var(--success);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;white-space:nowrap;transition:background .3s}.btn-create-and-map:hover{background:#17855a}.btn-cancel-inline{padding:8px 12px;background:var(--text-muted);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .3s}.btn-cancel-inline:hover{background:#777}.merchant-search-wrapper{display:flex;align-items:center}.merchant-search-input{padding:10px 16px;border:2px solid var(--border);border-radius:8px;font-size:14px;width:300px;transition:border-color .3s}.merchant-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff6b351a}.merchant-search-input::placeholder{color:var(--text-muted)}.unmapped-descriptions-section{margin-top:20px}.unmapped-descriptions-list{display:flex;flex-direction:column;gap:12px;max-height:600px;overflow-y:auto;padding:10px;background:var(--surface-2);border-radius:8px}.unmapped-description-item{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 16px;transition:all .2s}.unmapped-description-item:hover{border-color:var(--primary);box-shadow:0 2px 4px #0000000d}.unmapped-description-main{display:flex;justify-content:space-between;align-items:center;gap:15px}.description-text{flex:1;color:var(--text);font-size:14px;font-weight:500}.btn-map-quick{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:background .2s;white-space:nowrap}.btn-map-quick:hover{background:var(--primary-600)}.mapping-options{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.mapping-option-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.merchant-select-small{flex:1;min-width:250px;padding:8px 12px;border:2px solid var(--border);border-radius:6px;font-size:13px}.merchant-select-small:focus{outline:none;border-color:var(--primary)}.btn-confirm-small{padding:8px 16px;background:var(--success);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:background .2s;white-space:nowrap}.btn-confirm-small:hover:not(:disabled){background:#17855a}.btn-confirm-small:disabled{background:#ccc;cursor:not-allowed}.btn-create-new{width:100%;padding:10px;background:var(--bg);color:var(--primary);border:2px dashed var(--primary);border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:all .2s}.btn-create-new:hover{background:#ffe8e0;border-color:var(--primary-600);color:var(--primary-600)}.create-merchant-form-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.new-merchant-name-input-small{flex:1;min-width:200px;padding:8px 12px;border:2px solid var(--primary);border-radius:6px;font-size:13px}.new-merchant-vat-input-small{width:80px;padding:8px 12px;border:2px solid var(--primary);border-radius:6px;font-size:13px}.tag-select-small{padding:8px 12px;border:2px solid var(--primary);border-radius:6px;font-size:13px;background:#fff}.muted-note{color:var(--text-muted);font-style:italic}.danger-zone{border:1px solid rgba(209,67,67,.35);background:#fff7f7}.danger-zone h2{color:var(--danger)}.danger-text{color:var(--danger);font-weight:600}.danger-action{background:var(--surface);padding:20px;border-radius:var(--radius-sm);border:1px solid rgba(209,67,67,.25);margin-top:15px}.danger-title{color:var(--danger);margin-top:0;margin-bottom:10px}.danger-note{color:var(--text-muted);margin-bottom:15px}.danger-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.danger-input{padding:8px 12px;border:2px solid rgba(209,67,67,.6);border-radius:var(--radius-sm);font-size:14px;min-width:250px;flex:1;background:var(--surface)}.danger-input:focus{border-color:var(--danger);box-shadow:0 0 0 3px #d1434326}.danger-button{padding:8px 20px;background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;font-size:14px;transition:background-color .2s ease}.danger-button:disabled{background:#cbd5e1;cursor:not-allowed}.danger-button:not(:disabled):hover{background:#b93232}.duplicates-container{max-width:1400px;margin:0 auto;padding:20px}.filter-buttons{display:flex;gap:12px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text);transition:all .2s}.filter-btn:hover{border-color:var(--border);background:var(--surface-2)}.filter-btn.active{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #5d87ff4d}.duplicates-list{display:flex;flex-direction:column;gap:20px;margin-top:24px}.duplicate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 30px;box-shadow:var(--shadow-md);transition:all .3s ease}.duplicate-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.duplicate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--surface-2)}.score-badge{padding:6px 12px;border-radius:6px;font-weight:700;font-size:13px}.duplicate-status{font-weight:600;font-size:14px}.duplicate-comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}.transaction-side{background:var(--surface-2);padding:16px;border-radius:8px;border-left:3px solid var(--primary)}.transaction-side h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text)}.transaction-details p{margin:8px 0;font-size:13px;color:var(--text-muted);line-height:1.5}.transaction-details strong{color:var(--text);font-weight:600}.duplicate-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.action-btn{padding:10px 16px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.action-btn.approve{background:linear-gradient(135deg,var(--success) 0%,#0fc9a7 100%);color:#fff;box-shadow:0 4px 12px #13deb94d}.action-btn.approve:hover{transform:translateY(-2px);box-shadow:0 6px 16px #13deb966}.action-btn.reject{background:linear-gradient(135deg,var(--danger) 0%,#e9775b 100%);color:#fff;box-shadow:0 4px 12px #fa896b4d}.action-btn.reject:hover{transform:translateY(-2px);box-shadow:0 6px 16px #fa896b66}.action-btn.delete{background:var(--text-muted);color:#fff}.action-btn.delete:hover{background:var(--text-muted)}.action-btn.force{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;box-shadow:0 4px 12px #dc26264d;font-weight:700}.action-btn.force:hover{transform:translateY(-2px);box-shadow:0 6px 16px #dc262680;background:linear-gradient(135deg,#b91c1c,#991b1b)}.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.duplicate-notes{margin-top:12px;padding:12px;background:#f0b42926;border-radius:6px;font-size:12px;color:#7a5a00}@media (max-width: 768px){.duplicate-comparison{grid-template-columns:1fr}.duplicate-actions{flex-direction:column}.action-btn{width:100%}}.supplier-contracts{padding:20px}.supplier-contracts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.supplier-contracts-header h2{margin:0;color:var(--text)}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:30px}.stat-card{background:var(--surface);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.stat-label{font-size:14px;color:var(--text-muted);margin-bottom:8px}.stat-value{font-size:24px;font-weight:700;color:var(--text)}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;margin-bottom:30px}.chart-container{background:var(--surface);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.chart-container h3{margin-top:0;margin-bottom:15px;font-size:16px}.filters-section{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.filters-section select,.filters-section button{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px}.filters-section button{background:var(--surface-2);cursor:pointer}.filters-section button:hover{background:var(--border)}.contracts-table{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);overflow-x:auto}.contracts-table table{width:100%;border-collapse:collapse}.contracts-table th{background:var(--surface-2);padding:12px;text-align:left;font-weight:600;border-bottom:2px solid var(--border)}.contracts-table td{padding:12px;border-bottom:1px solid var(--border)}.contracts-table tr:hover{background:var(--surface-2)}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;color:#fff;font-size:12px;font-weight:500}.status-badge.status-active{background:var(--success)}.status-badge.status-to_cancel{background:var(--warning);color:var(--text)}.status-badge.status-cancelling{background:var(--danger)}.status-badge.status-cancelled{background:var(--text-muted)}.end-date-cell.highlight{color:var(--danger);font-weight:700}.pdf-buttons{display:flex;gap:5px;flex-wrap:wrap}.transactions-expanded-cell{padding:20px;background:var(--surface-2)}.transactions-expanded-title{margin-top:0;margin-bottom:15px;color:var(--text)}.transactions-empty{color:var(--text-muted)}.transactions-expanded-table{width:100%;font-size:14px;border-collapse:collapse}.transactions-expanded-th{padding:8px;text-align:left;background:var(--surface);border-bottom:1px solid var(--border);color:var(--text)}.transactions-expanded-th-right{text-align:right}.transactions-expanded-td{padding:8px;border-bottom:1px solid var(--border)}.transactions-expanded-td-right{text-align:right}.btn-edit,.btn-delete{background:none;border:none;cursor:pointer;font-size:16px;padding:4px 8px;margin:0 2px}.btn-edit:hover,.btn-delete:hover{opacity:.7}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--surface);padding:30px;border-radius:var(--radius);max-width:600px;width:90%;max-height:90vh;overflow-y:auto;border:1px solid var(--border)}.modal-content h3{margin-top:0;margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:5px;font-weight:500;font-size:14px}.form-group input,.form-group select,.form-group textarea{padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px}.form-group textarea{resize:vertical}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500}.btn-primary:hover{background:var(--primary-600)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:10px 20px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px}.btn-secondary:hover{background:var(--border)}.btn-pdf{background:var(--primary);color:#fff;border:none;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:11px}.btn-pdf:hover{background:var(--primary-600)}.supplier-contracts-loading{text-align:center;padding:40px;font-size:18px}.error-message{background:#fde8e8;color:var(--danger);padding:12px;border-radius:var(--radius-sm);margin-bottom:20px}.required-star{color:var(--danger);font-weight:700}.end-date-input.invalid{border-color:var(--danger);box-shadow:0 0 0 3px #d1434326}.pdf-link{margin-top:5px}.pdf-link-button{font-size:12px;padding:4px 8px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.pdf-link-button:hover{background:var(--primary-600)}.no-data{text-align:center;padding:20px;color:var(--text-muted)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:radial-gradient(circle at top,#edf3f7 0%,var(--bg) 60%);padding:20px}.login-box{background:var(--surface);border-radius:var(--radius-lg);padding:48px;box-shadow:var(--shadow-xl);width:100%;max-width:420px;border:1px solid var(--border)}.login-box h1{margin:0 0 10px;color:var(--text);font-size:28px;text-align:center}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:30px;font-size:16px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:var(--text-muted);font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px;border:2px solid var(--border);border-radius:8px;font-size:16px;transition:all .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5d87ff26}.form-group input:disabled{background-color:var(--surface-2);cursor:not-allowed}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px;box-shadow:0 4px 12px #5d87ff4d}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #5d87ff66}.login-button:disabled{background:var(--border);cursor:not-allowed;transform:none}.login-error{background:#fde8e8;color:var(--danger);padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;text-align:center}.login-success{background:#e8f5e9;color:var(--success, #2e7d32);padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;text-align:center}.login-setup-hint{text-align:center;margin-bottom:24px;padding:16px;background:var(--surface-2, #f5f5f5);border-radius:8px}.login-setup-hint p{margin:0 0 12px;color:var(--text-muted)}.login-button.secondary{background:linear-gradient(135deg,#6c757d,#5a6268);box-shadow:0 4px 12px #00000026}.login-button.secondary:hover:not(:disabled){box-shadow:0 6px 16px #0003}.login-create-form{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.app{min-height:100vh;display:flex;background:var(--bg)}.app-sidebar{width:260px;background:var(--sidebar-bg);color:var(--sidebar-text);position:fixed;left:0;top:0;height:100vh;overflow-y:auto;z-index:1000;border-right:1px solid var(--sidebar-border);transition:all .3s ease}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-track{background:var(--sidebar-bg)}.app-sidebar::-webkit-scrollbar-thumb{background:var(--sidebar-border);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb:hover{background:#475569}.app-logo{padding:20px 24px;border-bottom:1px solid var(--sidebar-border);display:flex;align-items:center;gap:12px}.app-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 12px #5d87ff4d;color:#fff}.app-logo-icon svg{width:24px;height:24px}.app-logo-text{font-size:20px;font-weight:700;color:#fff;letter-spacing:-.5px}.app-nav{padding:16px 0}.nav-btn{display:flex;align-items:center;gap:12px;padding:12px 24px;color:var(--sidebar-text);background:transparent;border:none;width:100%;text-align:left;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;position:relative;border-left:3px solid transparent}.nav-btn:hover{background:#5d87ff1a;color:var(--sidebar-text-hover)}.nav-btn.active{background:#5d87ff26;color:var(--sidebar-text-hover);border-left-color:var(--sidebar-active);font-weight:600}.nav-btn.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sidebar-active)}.nav-btn-icon{font-size:18px;width:20px;display:flex;align-items:center;justify-content:center}.nav-btn-icon svg{width:18px;height:18px}.app-main{flex:1;margin-left:260px;min-height:100vh;background:var(--bg)}.app-container{padding:24px;max-width:1600px;margin:0 auto;background:var(--bg)}.app-header{background:var(--surface);color:var(--text);padding:24px 30px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:24px;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.app-header-content h1{font-size:24px;margin-bottom:4px;color:var(--text-dark);font-weight:700;letter-spacing:-.5px}.app-header-content p{font-size:14px;color:var(--text-muted);margin:0}.app-header-actions{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:14px}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px}.logout-btn{padding:10px 20px;background:var(--danger);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:8px}.logout-btn svg{width:16px;height:16px}.logout-btn:hover{background:#e9775b;transform:translateY(-1px);box-shadow:var(--shadow-md)}.loading{text-align:center;color:var(--text-muted);font-size:16px;padding:60px 20px;display:flex;align-items:center;justify-content:center;gap:12px}.proxy-error-page{align-items:center;justify-content:center;padding:24px}.proxy-error-box{max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-xl)}.proxy-error-box h1{margin:0 0 16px;font-size:1.5rem;color:var(--text)}.proxy-error-lead{font-size:1.05rem;color:var(--danger, #dc3545);margin-bottom:16px}.proxy-error-box p{margin:0 0 12px;color:var(--text-muted);line-height:1.5}.proxy-error-box code{background:var(--surface-2, #f0f0f0);padding:2px 6px;border-radius:4px;font-size:.9em}.proxy-error-box ul{margin:12px 0;padding-left:24px;color:var(--text-muted);line-height:1.6}.proxy-error-doc{margin-top:20px;font-size:.95rem}.proxy-error-retry{margin-top:24px;padding:12px 24px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:20px}.summary-card.dark-card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-md);text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border);position:relative;overflow:hidden}.summary-card.dark-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-2px);border-color:var(--border-dark)}.summary-card-content{display:flex;flex-direction:column;gap:8px}.summary-card-header-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:0}.summary-card h3{color:var(--text-muted);font-size:11px;margin:0;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex:1}.summary-card .amount-large{font-size:28px;font-weight:700;line-height:1.2;margin:0;letter-spacing:-.5px}.summary-chart-line{width:100%;height:32px;margin:6px 0;opacity:.8}.summary-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;width:fit-content;letter-spacing:.2px}.summary-badge.positive{background:#fa896b26;color:#fa896b}.summary-badge.negative{background:#13deb926;color:#13deb9}.summary-icon-large{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#a855f733,#a855f74d);display:flex;align-items:center;justify-content:center;font-size:24px;color:#a855f7;margin-bottom:6px;box-shadow:0 2px 12px #a855f74d;position:relative}.summary-icon-large:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:16px;padding:2px;background:linear-gradient(135deg,#a855f766,#a855f71a);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5}.summary-icon-large svg{width:32px;height:32px}.summary-badge-large{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:5px 12px;border-radius:16px;width:fit-content;letter-spacing:.2px;margin-top:4px}.summary-badge-large.positive{background:#fa896b33;color:#fa896b;box-shadow:0 2px 8px #fa896b33}.summary-badge-large.negative{background:#13deb933;color:#13deb9;box-shadow:0 2px 8px #13deb933}.section{background:var(--surface);border-radius:var(--radius-lg);padding:24px 30px;margin-bottom:24px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.section h2{color:var(--text-dark);margin-bottom:20px;font-size:18px;font-weight:700;letter-spacing:-.3px}.filters-container{display:flex;justify-content:flex-start;align-items:center;gap:16px;margin-bottom:20px;padding:0 4px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:14px;color:var(--text-muted);font-weight:500}.filter-select{padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;transition:all .2s ease;outline:none;min-width:150px}.filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5d87ff1a}.filter-select:hover{border-color:var(--primary-light)}.filter-btn{padding:8px 16px;border:none;border-radius:var(--radius);font-size:14px;cursor:pointer;font-weight:600;transition:all .3s ease;outline:none;display:flex;align-items:center;gap:6px}.filter-btn svg{width:16px;height:16px}.filter-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;box-shadow:0 4px 12px #5d87ff4d}.filter-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5d87ff66}.filter-btn-success{background:linear-gradient(135deg,var(--success) 0%,#0fc9a7 100%);color:#fff;box-shadow:0 4px 12px #13deb94d}.filter-btn-success:hover{transform:translateY(-2px);box-shadow:0 6px 16px #13deb966}.filter-btn-danger{background:linear-gradient(135deg,var(--danger) 0%,#e9775b 100%);color:#fff;box-shadow:0 4px 12px #fa896b4d}.filter-btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 16px #fa896b66}.filter-input{padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;outline:none;transition:all .2s ease}.filter-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5d87ff1a}.filter-input-group{display:flex;align-items:center;gap:6px}@media (max-width: 1024px){.app-sidebar{transform:translate(-100%)}.app-main{margin-left:0}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}}@media (max-width: 768px){.app-container{padding:16px}.app-header{flex-direction:column;align-items:flex-start;gap:16px}.summary-cards{grid-template-columns:1fr}.filters-container{flex-direction:column;align-items:stretch}.filter-group{width:100%}.filter-select{flex:1}}:root{--primary: #5d87ff;--primary-dark: #4570ea;--primary-light: #7da3ff;--secondary: #49beff;--success: #13deb9;--warning: #ffae1f;--danger: #fa896b;--info: #539bff;--orange: #ff6b35;--pink: #ff4d6d;--purple: #a855f7;--teal: #13deb9;--red: #fa896b;--bg: #0f172a;--bg-dark: #0a0f1a;--surface: #1e293b;--surface-dark: #0f172a;--surface-hover: #334155;--surface-2: #334155;--sidebar-bg: #0f172a;--sidebar-text: #94a3b8;--sidebar-text-hover: #ffffff;--sidebar-active: #5d87ff;--sidebar-border: #1e293b;--text: #e2e8f0;--text-dark: #ffffff;--text-muted: #94a3b8;--text-light: #64748b;--border: #334155;--border-dark: #475569;--radius: 8px;--radius-sm: 6px;--radius-lg: 12px;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .3), 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);min-height:100vh;color:var(--text);font-size:14px;line-height:1.6}.app-content{background:var(--bg)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
