:root{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,"Apple Color Emoji",Arial,sans-serif;line-height:1.5;font-weight:400;--bg-color: #ffffff;--bg-secondary: rgb(251, 251, 250);--text-color: rgb(55, 53, 47);--text-muted: rgba(55, 53, 47, .65);--border-color: rgba(55, 53, 47, .16);--hover-bg: rgba(55, 53, 47, .08);--modal-shadow: rgba(0, 0, 0, .18)}[data-theme=dark]{--bg-color: #191919;--bg-secondary: #252525;--text-color: #e0e0e0;--text-muted: #cccccc;--border-color: #444444;--hover-bg: #333333;--modal-shadow: rgba(0, 0, 0, .5)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-color);color:var(--text-color);transition:background-color .3s,color .3s}#root{width:100%}*{box-sizing:border-box;margin:0;padding:0}body{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,"Apple Color Emoji",Arial,sans-serif;background:var(--bg-color);color:var(--text-color);line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:900px;margin:0 auto;padding:80px 96px}@media(max-width:768px){.app{padding:40px 24px}}header{margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:16px}header h1{font-size:40px;font-weight:700;color:var(--text-color);letter-spacing:-.02em}header .subtitle,.upload-note,.filter-group label{color:var(--text-muted)}.how-it-works-btn{background:transparent;color:#37352fb3;padding:8px 14px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease;white-space:nowrap}.how-it-works-btn:hover,.clear-btn:hover{background:var(--hover-bg);color:var(--text-color);border-color:#37352f40}section{margin-bottom:40px}section h2{font-size:16px;font-weight:600;color:var(--text-color);margin-bottom:12px;display:flex;align-items:center;gap:8px}section h2:before{content:"";display:inline-block;width:4px;height:16px;background:var(--text-color);border-radius:2px}.upload-section{padding:24px;background:var(--bg-secondary);border-radius:8px;border:1px solid rgba(55,53,47,.09)}.upload-section h2{display:none}.upload-controls{display:flex;gap:8px;flex-wrap:wrap}.upload-note{margin-top:10px;font-size:13px;color:var(--text-muted)}.upload-note-row{display:flex;align-items:baseline;gap:8px}.info-btn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;border:1px solid rgba(55,53,47,.25);background:#fff;color:var(--text-color);font-size:9px;font-weight:600;cursor:pointer;padding:0;position:relative;top:-1px}.info-btn:hover{background:#37352f0f}.modal-overlay{position:fixed;inset:0;background:#1111118c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.modal-header h3{margin:0;font-size:16px}.modal-close{border:none;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:#37352fb3}.modal{width:min(800px,100%);background:var(--bg-color);border-radius:10px;box-shadow:0 24px 60px #0000002e;border:1px solid var(--border-color);max-height:90vh;display:flex;flex-direction:column}.modal-body{padding:0 18px 18px;font-size:14px;color:#37352fcc;overflow-y:auto}.modal-body p{margin:8px 0}.pdf-instructions{list-style:none;counter-reset:step-counter;padding:0;margin:0}.pdf-instructions li{counter-increment:step-counter;margin-bottom:24px;position:relative;padding-left:32px}.pdf-instructions li:before{content:counter(step-counter);position:absolute;left:0;top:0;width:24px;height:24px;background:#2eaadc;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.pdf-instructions li p{margin:0 0 12px;color:var(--text-color);font-weight:500}.instruction-img{width:100%;max-width:100%;height:auto;border-radius:6px;border:1px solid rgba(55,53,47,.12);box-shadow:0 2px 8px #00000014}.upload-btn{display:inline-flex;align-items:center;gap:6px;background:var(--text-color);color:#fff;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .15s ease}.upload-btn:hover{background:#504e48}.clear-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text-color);padding:8px 14px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .15s ease}.clear-btn:hover{background:#37352f0a}.message{margin-top:12px;padding:10px 14px;border-radius:6px;font-size:14px}.message.success{background:#2eaa4f1a;color:#2e7d32}.message.error{background:#eb57571a;color:#d32f2f}.filters-section{padding:20px 0;border-top:1px solid rgba(55,53,47,.09);border-bottom:1px solid rgba(55,53,47,.09)}.filters{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.filter-group input,.filter-group select{padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;color:var(--text-color);background:#fff;min-width:140px;transition:border-color .15s ease,box-shadow .15s ease}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#2eaadc;box-shadow:0 0 0 2px #2eaadc26}.reset-btn{background:transparent;color:#37352f80;padding:8px 12px;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:color .15s ease,background .15s ease}.reset-btn:hover{color:var(--text-color);background:#37352f0a}.summary-section h2:before{background:#2eaadc}.totals-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:16px}.total-card{background:linear-gradient(135deg,#2eaadc,#677eea);color:#fff;padding:24px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.total-card.credit-card{background:linear-gradient(135deg,#22c55e,#3b82f6)}.total-card.net-card{background:linear-gradient(135deg,#8b5cf6,#db2777)}.total-card span:first-child{font-size:14px;font-weight:500;opacity:.9}.total-amount,.credit-amount,.net-amount{font-size:32px;font-weight:700;letter-spacing:-.02em}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.category-card{background:var(--bg-secondary);padding:16px;border-radius:8px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease;border:1px solid transparent}.category-card:hover{background:#f7f7f5}.category-card.selected{border-color:#2eaadc;background:#2eaadc0a}.category-card h3{font-size:12px;font-weight:500;color:#37352fa6;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.category-card .amount{font-size:20px;font-weight:600;color:var(--text-color);margin-bottom:2px}.category-card .count{font-size:12px;color:#37352f80}.category-card.category-card-food-dining{border-left:3px solid rgb(255,152,0)}.category-card.category-card-food-dining h3{color:#c87300}.category-card.category-card-transportation{border-left:3px solid rgb(33,150,243)}.category-card.category-card-transportation h3{color:#1976be}.category-card.category-card-shopping{border-left:3px solid rgb(233,30,99)}.category-card.category-card-shopping h3{color:#b4194b}.category-card.category-card-entertainment{border-left:3px solid rgb(156,39,176)}.category-card.category-card-entertainment h3{color:#7d1e8c}.category-card.category-card-subscriptions{border-left:3px solid rgb(103,58,183)}.category-card.category-card-subscriptions h3{color:#502d91}.category-card.category-card-bills-utilities{border-left:3px solid rgb(0,150,136)}.category-card.category-card-bills-utilities h3{color:#00786c}.category-card.category-card-health{border-left:3px solid rgb(76,175,80)}.category-card.category-card-health h3{color:#37873c}.category-card.category-card-travel{border-left:3px solid rgb(0,188,212)}.category-card.category-card-travel h3{color:#0096aa}.category-card.category-card-other{border-left:3px solid rgb(158,158,158)}.category-card.category-card-other h3{color:#646464}.transactions-section h2:before{background:#eb5757}.transactions-list{overflow-x:auto}.no-data{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:14px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(55,53,47,.09)}th{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-secondary);position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}th.sortable:hover{color:var(--text-color)}.sort-indicator{display:inline-flex;flex-direction:column;margin-left:4px;vertical-align:middle;line-height:1;opacity:.3}.sort-indicator.active{opacity:.8}.caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;display:block}.caret.up{border-bottom:5px solid currentColor;margin-bottom:1px}.caret.down{border-top:5px solid currentColor}th:first-child{border-radius:6px 0 0}th:last-child{border-radius:0 6px 0 0}tr:hover td{background:var(--bg-secondary)}.category-badge{display:inline-block;padding:3px 8px;background:#37352f0f;border-radius:4px;font-size:12px;color:var(--text-color)}.category-badge.editable{cursor:pointer;transition:background .15s ease;border:none;font-family:inherit}.category-badge.editable:hover{background:#37352f1f}.category-badge.editable:focus{outline:2px solid #0969da;outline-offset:2px}.category-badge.category-food-dining{background:#ff98001f;color:#c87300}.category-badge.category-transportation{background:#2196f31f;color:#1976be}.category-badge.category-shopping{background:#e91e631f;color:#b4194b}.category-badge.category-entertainment{background:#9c27b01f;color:#7d1e8c}.category-badge.category-subscriptions{background:#673ab71f;color:#502d91}.category-badge.category-bills-utilities{background:#0096881f;color:#00786c}.category-badge.category-health{background:#4caf501f;color:#37873c}.category-badge.category-travel{background:#00bcd41f;color:#0096aa}.category-badge.category-other{background:#9e9e9e1f;color:#646464}.category-select{padding:3px 6px;border:1px solid var(--border-color);border-radius:4px;font-size:12px;color:var(--text-color);background:#fff;cursor:pointer}.source-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:12px;background:#7878781a;color:#646464}.source-badge.source-american-express{background:#006fcf1a;color:#005aaa}.source-badge.source-wells-fargo{background:#d01f271a;color:#b4191e}.source-badge.source-apple-card{background:#6464641a;color:#505050}.source-badge.source-chase{background:#1268b31a;color:#125a96}.source-badge.source-citi{background:#00539f1a;color:#004687}.source-badge.source-discover{background:#ff60001a;color:#c84b00}.source-badge.source-capital-one{background:#00467f1a;color:#003c6e}.amount-cell{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-color)}.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.api-key-modal{max-width:480px}.api-key-notice{background:#2eaadc14;border-left:3px solid rgb(46,170,220);border-radius:6px;padding:10px 14px;font-size:13px;color:#37352fcc;margin-bottom:20px;line-height:1.5}.api-provider-tabs{display:flex;gap:0;border:1px solid var(--border-color);border-radius:6px;overflow:hidden;margin-bottom:20px}.provider-tab{flex:1;padding:8px 14px;background:transparent;border:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-muted);transition:background .15s ease,color .15s ease}.provider-tab+.provider-tab{border-left:1px solid var(--border-color)}.provider-tab.active{background:var(--text-color);color:#fff}.provider-tab:not(.active):hover{background:var(--hover-bg);color:var(--text-color)}.api-key-field{display:flex;flex-direction:column;gap:6px}.api-key-field label{font-size:13px;font-weight:600;color:var(--text-color)}.api-key-hint{font-size:12px;color:var(--text-muted);margin:0}.api-key-input-row{display:flex;gap:8px}.api-key-input-row input{flex:1;padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;font-family:ui-monospace,monospace;color:var(--text-color);background:#fff;transition:border-color .15s ease}.api-key-input-row input:focus{outline:none;border-color:#2eaadc;box-shadow:0 0 0 2px #2eaadc26}.toggle-visibility-btn{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:transparent;cursor:pointer;font-size:12px;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:background .15s ease,color .15s ease}.toggle-visibility-btn:hover{background:var(--hover-bg);color:var(--text-color)}.api-key-model-note{font-size:11px;color:var(--text-muted);margin:0}.ai-analysis-section h2:before{background:#8b5cf6}.ai-analysis-controls{margin-bottom:12px}.ai-analysis-ready{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ai-analysis-no-key{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ai-no-key-text{font-size:14px;color:var(--text-muted)}.ai-provider-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:500;background:#8b5cf61a;color:#6d3ed8}.ai-loading{display:flex;align-items:center;gap:10px;padding:16px 0;font-size:14px;color:var(--text-muted)}.ai-loading-spinner{width:16px;height:16px;border:2px solid rgba(139,92,246,.2);border-top-color:#8b5cf6;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.ai-result{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-top:12px}.ai-result-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-color)}.ai-result-clear{font-size:12px;padding:4px 10px}.ai-result-body{padding:16px;font-size:14px;line-height:1.7;color:var(--text-color);word-break:break-word}.ai-result-body h1,.ai-result-body h2,.ai-result-body h3{margin:16px 0 8px;font-weight:600;color:var(--text-color)}.ai-result-body h1{font-size:18px}.ai-result-body h2{font-size:16px}.ai-result-body h3{font-size:14px}.ai-result-body p{margin:0 0 12px}.ai-result-body ul,.ai-result-body ol{margin:0 0 12px;padding-left:20px}.ai-result-body li{margin-bottom:4px}.ai-result-body strong{font-weight:600}.ai-result-body hr{border:none;border-top:1px solid var(--border-color);margin:16px 0}.ai-result-body table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:13px}.ai-result-body th,.ai-result-body td{text-align:left;padding:6px 10px;border:1px solid var(--border-color)}.ai-result-body th{background:var(--hover-bg);font-weight:600}.how-it-works-modal{max-width:600px}.how-it-works-content section{margin-bottom:24px}.how-it-works-content section:last-child{margin-bottom:0}.how-it-works-content h4{font-size:15px;font-weight:600;color:var(--text-color);margin-bottom:8px}.how-it-works-content p{font-size:14px;color:#37352fcc;line-height:1.6;margin-bottom:8px}.how-it-works-content p:last-child{margin-bottom:0}.how-it-works-list,.bank-list,.features-list{margin:12px 0;padding-left:20px}.how-it-works-list li,.bank-list li,.features-list li{font-size:14px;color:#37352fcc;line-height:1.6;margin-bottom:8px}.how-it-works-list{list-style:none;counter-reset:step;padding-left:0}.how-it-works-list li{counter-increment:step;padding-left:28px;position:relative}.how-it-works-list li:before{content:counter(step);position:absolute;left:0;top:1px;width:20px;height:20px;background:#2eaadc;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.privacy-diagram{margin:16px 0;text-align:center}.privacy-diagram img{width:100%;max-width:100%;height:auto;border-radius:8px;border:1px solid rgba(55,53,47,.12);box-shadow:0 2px 8px #00000014}.privacy-notice{background:#2eaadc14;padding:12px 16px;border-radius:6px;border-left:3px solid rgb(46,170,220)}.privacy-notice p{margin:0;color:var(--text-color)}.confirm-delete-modal{max-width:400px}.modal-footer{padding:12px 18px;border-top:1px solid rgba(55,53,47,.09);display:flex;gap:8px;justify-content:flex-end}.confirm-cancel{background:transparent;color:var(--text-color);padding:8px 16px;border:1px solid rgba(55,53,47,.25);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease}.confirm-cancel:hover{background:#37352f0a;border-color:#37352f66}.confirm-cancel:focus{outline:2px solid #0969da;outline-offset:2px}.confirm-action{background:#eb57571a;color:#c83737;padding:8px 16px;border:1px solid rgba(235,87,87,.3);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s ease}.confirm-action:hover{background:#eb575733;border-color:#eb575780}.confirm-action:focus{outline:2px solid #0969da;outline-offset:2px}.confirm-action.danger{background:#eb575726;color:#c83737}.actions-cell{text-align:center;padding:10px 6px}.delete-btn{background:transparent;border:1px solid rgba(235,87,87,.3);border-radius:4px;cursor:pointer;padding:4px 6px;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;color:#c83737}.delete-btn:hover{background:#eb57571a;border-color:#eb575780}.delete-btn:focus{outline:2px solid #0969da;outline-offset:2px}.delete-icon{font-size:16px;line-height:1;font-weight:600}@media(max-width:768px){header h1{font-size:28px}.how-it-works-btn{font-size:12px;padding:6px 10px}.filters{flex-direction:column;align-items:stretch}.filter-group input,.filter-group select{width:100%}.total-card{flex-direction:column;text-align:center;gap:8px}.total-amount,.credit-amount,.net-amount{font-size:28px}.totals-container{grid-template-columns:1fr}.categories-grid{grid-template-columns:1fr 1fr}table{font-size:13px}th,td{padding:10px 12px}}[data-theme=dark] .upload-btn{color:#000!important;font-weight:600}[data-theme=dark] .filter-group input,[data-theme=dark] .filter-group select{color:#000!important;background-color:#fff!important}[data-theme=dark] .reset-btn{color:#000!important;background-color:#fff!important;border:1px solid rgba(0,0,0,.1)}[data-theme=dark] .api-key-input-row input{color:#000!important;background-color:#fff!important}[data-theme=dark] .provider-tab:not(.active){color:#e0e0e0!important}[data-theme=dark] .toggle-visibility-btn{color:#e0e0e0!important}[data-theme=dark] .how-it-works-btn{color:#fff!important;border-color:#ffffff80!important}[data-theme=dark] .how-it-works-btn:hover{background-color:#ffffff1a!important;border-color:#fff!important}[data-theme=dark] .info-btn{color:#000!important;background-color:#fff!important;border-color:#0003!important}
