*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{color-scheme:light;--bg: #eef2f8;--card: #ffffff;--text: #1b2230;--muted: #6b7280;--brand: #4e54c8;--brand-2: #6f7cff;--border: #e6e9f2;--shadow: 0 8px 30px rgba(15, 23, 42, .08)}*{box-sizing:border-box}html{width:100%}body{margin:0;width:100%;min-height:100vh;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,#f7f9ff,#eef2f8 45%,#e9eef9)}#root{width:100%;min-height:100vh}.app{width:100%;min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:10;width:100%;background:linear-gradient(90deg,#1f2333,#3b40a4 55%,#4e54c8);color:#fff;box-shadow:0 2px 12px #11182733}.app-header-inner{max-width:1040px;margin:0 auto;padding:.6rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-title{display:flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.3px;font-size:1rem}.header-logo{width:30px;height:30px;border-radius:7px;flex-shrink:0;display:block}.brand-name{font-size:1.15rem;font-weight:800;letter-spacing:-.3px;color:#fff;white-space:nowrap}.app-subtitle{font-weight:400;opacity:.75;font-size:.8rem}.app-actions{display:flex;align-items:center;gap:.9rem}.app-actions svg{cursor:pointer;opacity:.9;transition:transform .15s ease,opacity .15s ease}.app-actions svg:hover{transform:translateY(-1px);opacity:1}.app-main{flex:1;width:100%;padding:1.2rem 1.5rem 2.2rem;display:block}.content-wrap{width:min(1100px,100%);margin:0 auto}.card{width:100%;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:1.1rem 1.2rem;margin:0 auto}.card h2{margin:0 0 .8rem;font-size:1.15rem}.upload-title{font-size:1.1rem;margin-bottom:.7rem}.trust-banner{display:flex;align-items:center;justify-content:center;gap:0;background:linear-gradient(135deg,#0f172a,#1e3a5f);border-radius:10px;padding:.75rem 1.2rem;margin-bottom:.75rem}.trust-pill{display:flex;align-items:center;gap:.65rem;flex:1;justify-content:center}.trust-icon{width:1.65rem;height:1.65rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 5px rgba(99,179,237,.4))}.trust-icon svg{width:1.25rem;height:1.25rem;stroke:#63b3ed}.trust-title{font-size:.82rem;font-weight:700;color:#e2e8f0;letter-spacing:.01em}.trust-desc{font-size:.72rem;color:#94a3b8;margin-top:1px}.trust-divider{width:1px;height:2rem;background:#ffffff1f;margin:0 .5rem;flex-shrink:0}@media(max-width:600px){.trust-banner{flex-direction:column;gap:.6rem}.trust-divider{width:100%;height:1px;margin:0}}.how-to-export{border:1px solid var(--border);border-radius:8px;margin-bottom:.6rem;overflow:hidden}.how-to-export-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;background:#f8f9ff;border:none;cursor:pointer;font-size:.83rem;font-weight:600;color:#374151;text-align:left;gap:.5rem}.how-to-export-toggle:hover{background:#eef2ff}.how-to-export-chevron{font-size:.65rem;color:var(--muted);flex-shrink:0}.how-to-export-body{padding:.9rem;border-top:1px solid var(--border);background:#fff}.how-to-export-intro{font-size:.82rem;color:var(--muted);margin:0 0 .8rem}.bank-steps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem}.bank-steps-card{background:#f8f9ff;border:1px solid var(--border);border-radius:7px;padding:.6rem .75rem}.bank-steps-header{display:flex;align-items:center;gap:.4rem;padding-left:.5rem;margin-bottom:.45rem}.bank-steps-logo{font-size:.95rem}.bank-steps-name{font-size:.8rem;font-weight:700}.bank-steps-list{margin:0;padding-left:1.2rem;font-size:.76rem;color:#374151;line-height:1.65}.how-to-export-tip{margin-top:.8rem;padding:.5rem .75rem;background:#fffbeb;border:1px solid #fde68a;border-radius:7px;font-size:.8rem;color:#92400e}.upload-box{display:block;cursor:pointer;font-weight:600;color:var(--brand);font-size:.98rem;border:2px dashed #98a1ff;border-radius:12px;padding:1.4rem 1rem;background:#f7f8ff;text-align:center;transition:background .2s ease,border-color .2s ease}.upload-row{display:flex;align-items:center;gap:.5rem;margin:.9rem 0 .8rem}.upload-row .upload-box{flex:1;margin:0}.history-open-btn{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;font-size:.78rem;font-weight:600;padding:.55em .9em;border-radius:9px;border:1.5px solid var(--border);color:var(--muted);background:#f8f9ff;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.history-open-btn:hover{border-color:var(--brand);color:var(--brand);background:#eef1ff}.history-badge{background:var(--brand);color:#fff;border-radius:999px;font-size:.67rem;font-weight:700;padding:0 5px;min-width:16px;text-align:center;line-height:1.5}.history-backdrop{position:fixed;inset:0;background:#0000006b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1100;display:flex;justify-content:flex-end;animation:fadeInBackdrop .15s ease}.history-panel{width:min(400px,100vw);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-6px 0 32px #00000024;animation:slideInRight .2s ease;overflow:hidden}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.history-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem .8rem;border-bottom:1px solid var(--border);background:#f8f9ff;flex-shrink:0}.history-title{display:flex;align-items:center;gap:.45rem;font-weight:700;font-size:.95rem;color:var(--text)}.history-body{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.55rem}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--muted);font-size:.88rem;padding:2rem 1rem;text-align:center}.history-entry{background:#f8f9ff;border:1.5px solid var(--border);border-radius:10px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.4rem;transition:border-color .15s,box-shadow .15s}.history-entry:hover{border-color:var(--brand);box-shadow:0 2px 10px #4e54c81a}.history-entry-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.history-entry-files{display:flex;flex-wrap:wrap;gap:.3rem}.history-file-chip{background:#eef2ff;color:var(--brand);border-radius:999px;padding:.1em .6em;font-size:.74rem;font-weight:600;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-entry-time{font-size:.71rem;color:var(--muted);white-space:nowrap;flex-shrink:0}.history-entry-meta{display:flex;flex-wrap:wrap;gap:.4rem .8rem;font-size:.76rem;color:#4b5563}.history-entry-actions{display:flex;align-items:center;gap:.45rem;margin-top:.1rem}.history-load-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;padding:.3em .9em;border-radius:6px;border:1.5px solid var(--brand);color:var(--brand);background:#fff;cursor:pointer;transition:background .15s,color .15s}.history-load-btn:hover{background:var(--brand);color:#fff}.history-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid #fecaca;color:#dc2626;background:#fff5f5;cursor:pointer;transition:background .15s}.history-delete-btn:hover{background:#fee2e2}.history-clear-btn{font-size:.74rem;color:#dc2626;background:none;border:1px solid #fecaca;border-radius:5px;padding:.2em .65em;cursor:pointer;transition:background .15s}.history-clear-btn:hover{background:#fee2e2}.history-footer{padding:.6rem 1rem;border-top:1px solid var(--border);font-size:.74rem;color:var(--muted);text-align:center;background:#f8f9ff;flex-shrink:0}@media(max-width:640px){.history-panel{width:100vw}.upload-row{flex-direction:column;align-items:stretch}.history-open-btn{justify-content:center}}.upload-box:hover{background:#eef1ff;border-color:var(--brand);border-style:solid}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:.2rem;pointer-events:none}.dropzone-icon{width:2rem;height:2rem;color:var(--brand);margin-bottom:.15rem;opacity:.8}.dropzone-label{font-size:.95rem;font-weight:600;color:var(--brand)}.dropzone-hint{font-size:.78rem;font-weight:400;color:#6b7280}.file-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.1rem 0 .55rem}.file-chip{display:flex;align-items:center;gap:.35rem;background:#f0f3ff;border:1px solid #c7d2fe;border-radius:999px;padding:.22rem .55rem .22rem .5rem;font-size:.77rem;color:#1e1b4b;max-width:320px}.file-chip-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;font-weight:500}.file-chip-count{color:var(--muted);font-size:.71rem;white-space:nowrap;flex-shrink:0}.file-chip-remove{background:none;border:none;cursor:pointer;font-size:1rem;color:#6b7280;padding:0;line-height:1;font-weight:700;width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:999px}.file-chip-remove:hover{background:#dde3ff;color:#3730a3}.file-chip-combined{background:#eff6ff;border-color:#bfdbfe;color:#1e40af;font-weight:600}.table-compact{width:100%;border-collapse:collapse;margin-top:.6rem;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.table-compact th,.table-compact td{text-align:left;padding:.45rem .6rem;font-size:.9rem;border-bottom:1px solid #eef1f7}.table-compact th{background:#f3f6ff;color:#2b2f55;font-weight:600}.table-compact tr:hover td{background:#eef2ff}.section-title{margin-top:1rem;font-size:1rem;color:var(--brand)}.badge-muted{color:var(--muted);font-size:.95rem}.error{color:#b42318;background:#fff4f4;border:1px solid #fecdca;border-radius:10px;padding:.5rem .7rem;margin:.7rem auto;font-size:.9rem}.app-footer{width:100%;padding:.9rem 1rem;text-align:center;color:#e5e7eb;background:#1f2333;font-size:.85rem}.footer-inner{display:flex;align-items:center;justify-content:center;gap:.5rem}.footer-logo{width:20px;height:20px;border-radius:4px;opacity:.85;flex-shrink:0}.hero-brand{background:linear-gradient(90deg,var(--brand) 0%,var(--brand-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800}font-size: .85rem; } .src-sup{font-size:.65em;font-weight:700;line-height:0;margin-left:2px;cursor:default}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.45rem 1.4rem;margin-top:.5rem}.category-bar-row{display:grid;grid-template-columns:160px 1fr auto;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem .35rem;border-radius:6px;transition:background .15s}n .category-bar-row:hover{background:#f3f4f6}.section-hint{margin-left:auto;font-size:.72rem;color:var(--muted);font-weight:400}.sort-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:.1em .5em;font-size:.72rem;cursor:pointer;color:var(--muted)}.sort-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.cat-count{font-size:.7rem;color:var(--muted);margin-left:2px}.category-bar-label{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-emoji{font-size:1em;flex-shrink:0}.category-bar-track{height:7px;background:#e9eef9;border-radius:99px;overflow:hidden}.category-bar-fill{height:100%;border-radius:99px;min-width:4px;transition:width .4s ease}.category-bar-value{font-size:.78rem;font-weight:600;white-space:nowrap}.cat-pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;padding:.15em .6em;border-radius:20px;white-space:nowrap}.export-bar{display:flex;align-items:center;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.export-bar-label{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--muted);font-weight:500;margin-right:.2rem}.export-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;padding:.35em .9em;border-radius:6px;border:1.5px solid;cursor:pointer;transition:background .15s,color .15s;background:#fff}.export-btn-csv{color:#2e7d32;border-color:#2e7d3260}.export-btn-csv:hover{background:#2e7d3212}.export-btn-excel{color:#1565c0;border-color:#1565c060}.export-btn-excel:hover{background:#1565c012}.recurring-search-bar{position:relative;margin-bottom:.6rem}.recurring-search-input{width:100%;box-sizing:border-box;padding:.42rem 2rem .42rem .75rem;border:1px solid var(--border);border-radius:7px;font-size:.82rem;background:#f8f9ff;color:var(--text);outline:none;transition:border-color .15s}.recurring-search-input:focus{border-color:var(--brand)}.recurring-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1rem;color:var(--muted);cursor:pointer;line-height:1;padding:0}.show-more-btn{display:block;width:100%;margin-top:.5rem;padding:.45rem;background:#f0f2ff;border:1px solid var(--border);border-radius:7px;color:var(--brand);font-size:.8rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}.show-more-btn:hover{background:#e0e4ff}.modal-backdrop{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeInBackdrop .15s ease}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.modal-panel{background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000038;width:min(680px,100%);max-height:85vh;display:flex;flex-direction:column;animation:slideUp .18s ease;overflow:hidden}@keyframes slideUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .85rem;flex-shrink:0}.modal-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--text)}.modal-emoji{font-size:1.3rem;line-height:1}.modal-count{font-size:.75rem;font-weight:500;color:var(--muted);background:#f3f4f6;padding:.1em .55em;border-radius:20px}.modal-close{background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted);padding:.1rem .35rem;border-radius:6px;transition:background .12s,color .12s}.modal-close:hover{background:#fee2e2;color:#dc2626}.modal-stats{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0}.modal-stat{flex:1;padding:.65rem 1.25rem;text-align:center;border-right:1px solid var(--border)}.modal-stat:last-child{border-right:none}.modal-stat-value{font-size:1.05rem;font-weight:700;color:var(--text)}.modal-stat-label{font-size:.7rem;color:var(--muted);margin-top:1px}.modal-toolbar{display:flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0;background:#fafafa}.modal-toolbar-label{font-size:.75rem;color:var(--muted);margin-right:.15rem}.modal-body{overflow-y:auto;padding:.5rem 1.25rem 1rem;flex:1}.modal-row-bar{height:6px;background:#e9eef9;border-radius:99px;overflow:hidden;min-width:60px}.file-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;padding:.4rem .9rem;background:#f8f9ff;border:1px solid var(--border);border-radius:8px;font-size:.8rem;font-weight:500}.file-legend-item{display:inline-flex;align-items:baseline;gap:.25rem}.date-range-bar{display:flex;align-items:center;gap:.6rem;background:#f8f9ff;border:1px solid var(--border);border-radius:8px;padding:.45rem .85rem;font-size:.82rem}.date-range-label{color:var(--muted);font-weight:500;flex-shrink:0}.date-range-value{font-weight:700;color:var(--text)}.date-range-days{margin-left:auto;background:#eef2ff;color:var(--brand);border-radius:999px;padding:1px 9px;font-size:.74rem;font-weight:700;flex-shrink:0}.month-filter-bar{display:flex;align-items:center;gap:.6rem;background:#f8f9ff;border:1px solid var(--border);border-radius:8px;padding:.4rem .85rem;overflow-x:auto;scrollbar-width:none}.month-filter-bar::-webkit-scrollbar{display:none}.month-filter-label{color:var(--muted);font-size:.76rem;font-weight:600;flex-shrink:0;white-space:nowrap}.month-filter-pills{display:flex;gap:.3rem;flex-wrap:nowrap}.month-pill{border:1px solid var(--border);background:#fff;border-radius:999px;padding:2px 11px;font-size:.74rem;font-weight:500;color:var(--text);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s;line-height:1.6}.month-pill:hover{background:#eef2ff;border-color:var(--brand);color:var(--brand)}.month-pill-active{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important;font-weight:700}.cat-rules-btn{display:inline-flex;align-items:center;gap:4px;margin-left:auto;background:none;border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.cat-rules-btn:hover{background:#eef2ff;border-color:var(--brand);color:var(--brand)}.cat-rules-modal{max-width:680px;width:95vw}.cat-rules-intro{font-size:.8rem;color:var(--muted);margin:0 0 1rem;line-height:1.5}.cat-rules-grid{display:flex;flex-direction:column;gap:.6rem}.cat-rules-row{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.cat-rules-row:last-child{border-bottom:none}.cat-rules-name{display:flex;align-items:center;gap:5px;min-width:148px;flex-shrink:0}.cat-rules-emoji{font-size:1rem}.cat-rules-keywords{display:flex;flex-wrap:wrap;gap:.3rem}.cat-rules-tag{display:inline-flex;align-items:center;gap:4px;border:1px solid;border-radius:999px;padding:1px 9px;font-size:.71rem;font-weight:500;line-height:1.6;white-space:nowrap}.cat-rules-tag-builtin{border-color:#d0d5dd;background:#f6f7f9;color:#555e6d}.cat-rules-tag-custom{border-width:1.5px;font-weight:600}.cat-kw-remove{background:none;border:none;cursor:pointer;font-size:.8rem;line-height:1;padding:0 0 0 2px;opacity:.6;color:inherit}.cat-kw-remove:hover{opacity:1}.cat-kw-add-wrap{display:inline-flex;align-items:center;gap:4px}.cat-kw-input{border:1.5px solid var(--brand);border-radius:6px;padding:2px 8px;font-size:.72rem;outline:none;width:130px;color:var(--text)}.cat-kw-add-confirm{border:none;border-radius:6px;padding:2px 10px;font-size:.71rem;font-weight:600;color:#fff;cursor:pointer}.cat-kw-add-cancel{background:none;border:none;font-size:.82rem;color:var(--muted);cursor:pointer;padding:0 2px}.cat-kw-add-btn{display:inline-flex;align-items:center;background:none;border:1px dashed;border-radius:999px;padding:1px 9px;font-size:.7rem;font-weight:600;cursor:pointer;opacity:.65;transition:opacity .15s;white-space:nowrap}.cat-kw-add-btn:hover{opacity:1}.insights-wrap{margin-top:1rem;display:flex;flex-direction:column;gap:.9rem}.stat-cards-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.stat-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem;display:flex;align-items:flex-start;gap:.6rem;box-shadow:0 2px 8px #0000000a}.stat-card-icon{margin-top:2px;opacity:.9}.stat-card-body{flex:1;min-width:0}.stat-card-value{font-size:1.05rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:1px}.stat-card-sub{font-size:.76rem;color:#9ca3af;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-block{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;box-shadow:0 2px 8px #00000008}.section-header{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:700;color:#1b2230;margin-bottom:.6rem;padding-left:.65rem;border-left:3px solid var(--brand);letter-spacing:0}.count-badge{background:#eef2ff;color:var(--brand);border-radius:999px;padding:0 6px;font-size:.75rem;font-weight:700}.table-compact th,.table-compact td{padding:.35rem .55rem;font-size:.85rem}.table-compact tbody tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer;transition:background .1s}.clickable-row:hover td{background:#f0f3ff!important}.expand-icon{display:inline-flex;align-items:center;margin-right:5px;color:var(--muted);vertical-align:middle}.occ-badge{background:#eef2ff;color:var(--brand);border-radius:4px;padding:1px 6px;font-size:.8rem;font-weight:700}.amt-debit{color:#c62828;font-weight:600}.date-cell{color:var(--muted);white-space:nowrap}.detail-row td{background:#f8f9ff!important;padding:.5rem .8rem!important}.detail-grid{display:flex;flex-wrap:wrap;gap:.4rem}.detail-chip{display:flex;gap:.4rem;align-items:center;background:#fff;border:1px solid var(--border);border-radius:6px;padding:.25rem .55rem;font-size:.8rem;color:#374151}.payment-detail{display:flex;flex-direction:column;gap:.35rem}.payment-detail-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.82rem;line-height:1.5}.detail-label{min-width:150px;font-weight:600;color:var(--muted);flex-shrink:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.3px}.payee-detail{margin:.2rem 0 .3rem;padding:.4rem .5rem;background:#f8f9ff;border:1px solid var(--border);border-radius:8px;max-height:200px;overflow-y:auto}.mini-bar-clickable{cursor:pointer;border-radius:6px;padding:2px 4px;margin:-2px -4px;transition:background .15s}.mini-bar-clickable:hover{background:#eef2ff}.mini-bar-active{background:#eef2ff;border-radius:6px;padding:2px 4px;margin:-2px -4px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.mini-bars{display:flex;flex-direction:column;gap:.45rem}.mini-bar-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:.5rem}.mini-bar-label{font-size:.78rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-bar-track{height:7px;background:#e9eef9;border-radius:99px;overflow:hidden}.mini-bar-fill{height:100%;background:linear-gradient(90deg,var(--brand) 0%,var(--brand-2) 100%);border-radius:99px;min-width:4px}.mini-bar-value{font-size:.78rem;color:#c62828;font-weight:600;white-space:nowrap}.pro-badge{display:inline-flex;align-items:center;gap:.3rem;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1c1c1c;font-size:.7rem;font-weight:800;letter-spacing:.5px;padding:.2em .6em;border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none}.header-upgrade-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:700;padding:.3em .8em;border-radius:999px;border:1.5px solid #fbbf24;background:transparent;color:#fbbf24;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.header-upgrade-btn:hover{background:#fbbf24;color:#1c1c1c}.pro-upsell-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:linear-gradient(90deg,#fffbeb,#fef3c7);border:1.5px solid #fde68a;border-radius:8px;padding:.5rem .9rem;font-size:.82rem;color:#92400e;cursor:pointer;transition:border-color .15s}.pro-upsell-bar:hover{border-color:#f59e0b}.pro-upsell-cta{font-weight:700;color:#d97706;white-space:nowrap}.modal-panel.upgrade-modal-panel{width:min(480px,100%);max-height:88vh}.upgrade-modal-header{background:linear-gradient(135deg,#1f2333,#3b40a4)}.upgrade-modal-header .modal-title{color:#fff}.upgrade-modal-header .modal-close{color:#ffffffb3}.upgrade-modal-header .modal-close:hover{background:#ffffff26;color:#fff}.upgrade-tabs{display:flex;border-bottom:1px solid var(--border)}.upgrade-tab{flex:1;padding:.65rem 1rem;background:none;border:none;border-bottom:2.5px solid transparent;font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.upgrade-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.upgrade-body{padding:1rem 1.25rem;max-height:70vh;overflow-y:auto}.upgrade-features{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.upgrade-feature-row{display:flex;align-items:center;gap:.6rem;padding:.38rem 0}.upgrade-feature-icon{display:flex;align-items:center;flex-shrink:0}.upgrade-feature-title{font-size:.83rem;color:var(--text)}.upgrade-price-row{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.8rem}.upgrade-price{font-size:2rem;font-weight:800;color:var(--brand)}.upgrade-price-label{font-size:.78rem;color:var(--muted)}.upgrade-email-input{width:100%;box-sizing:border-box;padding:.55rem .8rem;border:1.5px solid var(--border);border-radius:8px;font-size:.88rem;outline:none;margin-bottom:.7rem;transition:border-color .15s}.upgrade-email-input:focus{border-color:var(--brand)}.upgrade-pay-btn{width:100%;padding:.7rem 1rem;background:linear-gradient(90deg,#4e54c8,#6f7cff);color:#fff;font-size:.95rem;font-weight:700;border:none;border-radius:9px;cursor:pointer;transition:opacity .15s,transform .1s;letter-spacing:.2px}.upgrade-pay-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.upgrade-pay-btn:disabled{opacity:.55;cursor:not-allowed}.upgrade-activate-btn{background:linear-gradient(90deg,#059669,#34d399)}.upgrade-fine-print{font-size:.74rem;color:var(--muted);text-align:center;margin-top:.6rem}.upgrade-error{background:#fff4f4;border:1px solid #fecdca;border-radius:7px;padding:.4rem .7rem;font-size:.82rem;color:#b42318;margin-bottom:.7rem}.upgrade-success{padding:1.5rem 1.25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.upgrade-success-icon{font-size:3rem}.upgrade-success-title{font-size:1.3rem;font-weight:800;color:var(--text);margin:0}.upgrade-key-display{background:#f3f4ff;border:1.5px solid #c7d2fe;border-radius:10px;padding:.75rem 1.2rem;font-size:1.3rem;font-weight:700;font-family:monospace;letter-spacing:3px;color:var(--brand);margin:.4rem 0;position:relative;-webkit-user-select:all;user-select:all}.upgrade-activate-tab{padding-top:.2rem}button,a,input,select,textarea{touch-action:manipulation}@media(max-width:900px){.app-header-inner{padding:.6rem .9rem}.app-title{font-size:.95rem}.card{padding:1rem .9rem}.stat-cards-row{grid-template-columns:repeat(2,1fr)}.bottom-grid,.category-grid{grid-template-columns:1fr}.section-block{padding:.7rem .8rem}}@media(max-width:640px){.app-header-inner{padding:.5rem .75rem;gap:.5rem}.app-title{gap:.4rem;font-size:.88rem}.header-logo{width:26px;height:26px}.brand-name{font-size:1rem}.app-subtitle{display:none}.app-actions{gap:.6rem}.app-main{padding:.75rem .5rem 1.5rem}.card{padding:.85rem .65rem;border-radius:10px}.section-block{padding:.6rem}.insights-wrap{gap:.6rem}.stat-cards-row{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-card{padding:.6rem .7rem;gap:.45rem}.stat-card-value{font-size:.92rem}.stat-card-label{font-size:.67rem}.stat-card-sub{font-size:.7rem}.table-compact{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-compact th,.table-compact td{font-size:.78rem;padding:.3rem .45rem}.category-grid{grid-template-columns:1fr}.category-bar-row{grid-template-columns:110px 1fr auto}.bottom-grid{grid-template-columns:1fr}.hero-state{padding:.1rem 0 .4rem}.hero-hints{font-size:.72rem}.sub-monthly-est{display:none}.modal-backdrop{padding:.5rem;align-items:flex-end}.modal-panel{border-radius:14px 14px 10px 10px;max-height:92vh}.modal-header{padding:.75rem 1rem .6rem}.modal-body{padding:.4rem .8rem .8rem}.modal-toolbar{padding:.45rem .8rem;flex-wrap:wrap}.modal-stat{padding:.5rem .75rem}.modal-stat-value{font-size:.92rem}.detail-label{min-width:110px}.payment-detail-item{font-size:.79rem}.export-bar{justify-content:flex-start;gap:.4rem}.export-btn{font-size:.74rem;padding:.3em .7em}.date-range-bar{flex-wrap:wrap;gap:.35rem .6rem}.file-chips{gap:.35rem}.file-chip-name{max-width:130px}.upload-box{font-size:.9rem;padding:1rem .85rem}.section-header{font-size:.84rem}}@media(max-width:400px){.app-header-inner{padding:.45rem .6rem}.app-title{font-size:.82rem}.app-actions svg{width:15px!important;height:15px!important}.stat-cards-row{grid-template-columns:1fr 1fr;gap:.35rem}.stat-card{padding:.5rem .55rem}.stat-card-value{font-size:.85rem}.category-bar-row{grid-template-columns:90px 1fr auto}.modal-stats{flex-wrap:wrap}.modal-stat{flex-basis:50%;border-right:none;border-bottom:1px solid var(--border)}.modal-stat:last-child{border-bottom:none}.hero-features{grid-template-columns:1fr}.card{padding:.75rem .55rem}.section-block{padding:.5rem}}.hero-state{padding:.15rem 0 .6rem;text-align:center}.hero-hints{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.25rem .5rem;font-size:.77rem;color:var(--muted)}.hero-hint-sep{color:#d1d5db;-webkit-user-select:none;user-select:none}.hero-actions{margin-top:.75rem;display:flex;justify-content:center}.hero-sample-btn{border:1px solid var(--border);background:#fff;color:var(--brand);border-radius:10px;padding:.55rem .9rem;font-weight:700;cursor:pointer}.hero-sample-btn:hover{border-color:var(--brand);background:#eef2ff}.subscription-block{border-color:#c7d2fe;background:linear-gradient(135deg,#fafbff,#f5f3ff)}.subscription-block .section-header{color:#3730a3}.sub-monthly-est{margin-left:auto;background:#e0e7ff;color:#3730a3;border-radius:999px;padding:1px 9px;font-size:.74rem;font-weight:700;white-space:nowrap}.sub-total-badge{background:#fef3c7;color:#92400e;border-radius:999px;padding:1px 9px;font-size:.74rem;font-weight:700;white-space:nowrap}.sub-service-name{font-weight:600;color:var(--text)}.monthly-recurring-grid{display:flex;gap:.6rem;align-items:flex-end;padding:.5rem 0 .25rem;overflow-x:auto}.monthly-rec-cell{display:flex;flex-direction:column;align-items:center;flex:1;min-width:56px;gap:4px}.monthly-rec-bar-wrap{width:100%;height:100px;display:flex;align-items:flex-end;background:#f1f0ff;border-radius:6px 6px 0 0;overflow:hidden}.monthly-rec-bar{width:100%;background:linear-gradient(180deg,#7c3aed,#a78bfa);border-radius:4px 4px 0 0;min-height:4px;transition:height .3s ease}.monthly-rec-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.monthly-rec-value{font-size:.72rem;color:#6a1b9a;font-weight:700;white-space:nowrap}.monthly-rec-hovered .monthly-rec-bar{background:linear-gradient(180deg,#5b21b6,#7c3aed);filter:brightness(1.1)}.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value{color:#4c1d95;font-weight:800}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#f5f3ff;border:1px solid #e9d5ff;border-radius:10px;cursor:pointer;transition:background .15s}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single:hover,:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single.monthly-rec-hovered{background:#ede9fe;border-color:#c4b5fd}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-left{min-width:60px}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-month{font-size:.85rem;font-weight:700;color:#4c1d95}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-hint{font-size:.72rem;color:var(--text-muted);margin-top:2px}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-bar-wrap{flex:1;height:10px;background:#ede9fe;border-radius:999px;overflow:hidden}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-bar{width:100%;height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:999px}:is(.monthly-rec-hovered .monthly-rec-label,.monthly-rec-hovered .monthly-rec-value) .monthly-rec-single-total{font-size:.9rem;font-weight:700;color:#6a1b9a;white-space:nowrap}.monthly-rec-cell{cursor:pointer}.monthly-rec-cell:hover .monthly-rec-bar{filter:brightness(1.08)}.month-rec-modal .modal-body{max-height:420px;overflow-y:auto}
