@import "https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0f11;--surface:#16181c;--surface2:#1e2026;--border:#ffffff12;--border2:#ffffff21;--text:#e8e6e0;--muted:#7a7870;--accent:#c8a96e;--accent2:#8b6f3e;--pos:#4caf7d;--neg:#e05c5c;--font:"DM Sans", sans-serif;--mono:"DM Mono", monospace;--radius:10px;--radius-lg:16px}html,body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;font-size:15px}.app{flex-direction:column;max-width:860px;min-height:100vh;margin:0 auto;padding:0 24px;display:flex}.app-header{border-bottom:1px solid var(--border);margin-bottom:32px;padding:20px 0 16px}.header-inner{align-items:center;gap:24px;display:flex}.logo{align-items:center;gap:10px;display:flex}.logo-mark{color:var(--accent);font-size:22px;line-height:1}.logo-text{letter-spacing:-.3px;color:var(--text);font-size:18px;font-weight:500}.logo-text em{color:var(--accent);font-style:normal}.step-indicator{gap:8px;margin:0 auto;display:flex}.indicator-dot{background:var(--surface2);border-radius:2px;width:28px;height:4px;transition:all .3s}.indicator-dot.active{background:var(--accent);width:40px}.indicator-dot.done{background:var(--accent2)}.header-meta{text-align:right;min-width:100px}.header-bank{font-size:13px;font-weight:500;font-family:var(--mono)}.app-main{flex:1}.step-content{animation:.3s fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.step-header{align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.step-header>div{flex:1}.step-header h2{color:var(--text);letter-spacing:-.4px;margin-bottom:4px;font-size:22px;font-weight:500}.step-header p{color:var(--muted);font-size:13px;line-height:1.5}.step-badge{font-family:var(--mono);color:var(--accent);letter-spacing:1px;background:#c8a96e1f;border:1px solid #c8a96e40;border-radius:6px;flex-shrink:0;margin-top:3px;padding:4px 8px;font-size:11px}.bank-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=600px){.bank-grid{grid-template-columns:repeat(4,1fr)}}.bank-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;color:var(--text);font-family:var(--font);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;transition:all .2s;display:flex;position:relative}.bank-card:hover{border-color:var(--border2);background:var(--surface2);transform:translateY(-2px)}.bank-card.active{border-color:var(--bank-color,var(--accent));background:color-mix(in srgb, var(--bank-color,var(--accent)) 8%, var(--surface));box-shadow:0 0 0 1px var(--bank-color,var(--accent))}.bank-logo{font-size:28px}.bank-name{font-size:13px;font-weight:500}.bank-check{color:var(--bank-color,var(--accent));font-size:11px;position:absolute;top:8px;right:10px}.bank-pill{border-radius:100px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.dropzone{border:1.5px dashed var(--border2);border-radius:var(--radius-lg);text-align:center;cursor:pointer;margin-bottom:16px;padding:48px 32px;transition:all .2s}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);background:#c8a96e0a}.dropzone.has-file{border-style:solid;border-color:var(--accent2)}.dropzone-empty p{color:var(--text);margin:12px 0 6px;font-size:15px}.drop-icon{opacity:.5;font-size:28px}.drop-hint{font-family:var(--mono);color:var(--muted);font-size:11px}.file-info{flex-direction:column;align-items:center;gap:6px;display:flex}.file-icon{font-size:32px}.file-name{font-family:var(--mono);color:var(--accent);font-size:13px}.file-hint{color:var(--muted);font-size:11px}.loading-bar{color:var(--muted);align-items:center;gap:12px;margin-bottom:16px;font-size:13px;display:flex}.loading-track{background:var(--surface2);border-radius:2px;flex:1;height:2px;overflow:hidden}.loading-fill{background:var(--accent);border-radius:2px;width:40%;height:100%;animation:1.2s ease-in-out infinite shimmer}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(350%)}}.format-hint{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.hint-label{color:var(--muted);white-space:nowrap;font-size:11px}.hint-code{font-family:var(--mono);color:var(--accent2);font-size:11px}.result-actions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.btn-primary{background:var(--accent);color:#0e0f11;cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font);border:none;border-radius:8px;padding:7px 14px;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-secondary{color:var(--muted);border:1px solid var(--border2);cursor:pointer;font-size:12px;font-family:var(--font);background:0 0;border-radius:8px;padding:7px 14px;transition:all .15s}.btn-secondary:hover{color:var(--text);border-color:var(--border2)}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}.summary-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;display:block}.summary-value{font-family:var(--mono);color:var(--text);font-size:17px;font-weight:500}.summary-card.income .summary-value{color:var(--pos)}.summary-card.expense .summary-value{color:var(--neg)}.summary-value.pos{color:var(--pos)}.summary-value.neg{color:var(--neg)}.view-toggle{gap:4px;margin-bottom:14px;display:flex}.view-toggle button{color:var(--muted);border:1px solid var(--border);cursor:pointer;font-size:12px;font-family:var(--font);background:0 0;border-radius:8px;padding:6px 14px;transition:all .15s}.view-toggle button.active{color:var(--text);border-color:var(--border2);background:var(--surface2)}.result-table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:0;overflow-x:auto}.result-table{border-collapse:collapse;width:100%;font-size:13px}.result-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface);letter-spacing:.4px;white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:500}.result-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.result-table th.sortable:hover{color:var(--text)}.result-table td{border-bottom:1px solid var(--border);padding:10px 16px}.result-table tr:last-child td{border-bottom:none}.result-table tr:hover td{background:var(--surface)}.result-table.preview-tbl td,.result-table.preview-tbl th{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:11px;overflow:hidden}.cat-cell{color:var(--text);font-weight:500}.bar-cell{padding:0}.bar-bg{background:var(--surface2);border-radius:3px;width:100%;height:6px;overflow:hidden}.bar-fill{border-radius:3px;height:100%;transition:width .4s}.bar-pos{background:var(--pos);opacity:.7}.bar-neg{background:var(--neg);opacity:.7}.amount{font-family:var(--mono);white-space:nowrap;font-size:12px}.amount.pos{color:var(--pos)}.amount.neg{color:var(--neg)}.count{font-family:var(--mono);color:var(--muted);text-align:right;font-size:12px}.chart-section{margin-top:16px}.chart-toggle-btn{background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:13px;font-family:var(--font);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 16px;transition:all .15s;display:flex}.chart-toggle-btn:hover,.chart-toggle-btn.open{color:var(--text);border-color:var(--border2)}.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:8px;padding:20px}.chart-toggle{gap:4px;margin-bottom:16px;display:flex}.chart-toggle button{color:var(--muted);border:1px solid var(--border);cursor:pointer;font-size:12px;font-family:var(--font);background:0 0;border-radius:6px;padding:5px 12px}.chart-toggle button.active{color:var(--accent);border-color:var(--accent2)}.error-box{border-radius:var(--radius);color:#e05c5c;background:#e05c5c1a;border:1px solid #e05c5c4d;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.error-box button{color:#e05c5c;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:16px}.app-footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);font-size:11px;font-family:var(--mono);letter-spacing:.5px;margin-top:40px;padding:20px 0}
