@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.2.0/dist/fonts/geist-mono/GeistMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.2.0/dist/fonts/geist-mono/GeistMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.2.0/dist/fonts/geist-mono/GeistMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--surface:#050505;--surface-container-lowest:#0a0a0a;--surface-container-low:#111;--surface-container:#181818;--surface-container-high:#222;--surface-container-highest:#2c2c2c;--on-surface:#f0ece8;--on-surface-muted:#8a7e74;--on-surface-faint:#5c5249;--orange-900:#3d1500;--orange-800:#5c1f00;--orange-700:#7a2900;--orange-600:#ac2d00;--orange-500:#d73b00;--orange-400:#ff541e;--orange-300:#ff7a4d;--orange-200:#ff9e7a;--orange-100:#ffc4a8;--orange-50:#ffe8db;--primary:var(--orange-600);--primary-container:var(--orange-500);--primary-bright:var(--orange-400);--primary-glow:#ff541e26;--primary-glow-strong:#ff541e4d;--on-primary:#fff;--income-color:#ff9e7a;--income-bg:#ff9e7a14;--expense-color:#ff541e;--expense-bg:#ff541e14;--ghost-border:#ff7a4d14;--ghost-border-hover:#ff7a4d29;--font-display:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"Geist Mono", "SF Mono", "Consolas", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--surface);color:var(--on-surface);font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-weight:400;line-height:1.55}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--orange-800)}.app{flex-direction:column;min-height:100vh;display:flex}.header{-webkit-backdrop-filter:blur(20px);padding:0 var(--sp-8);z-index:100;background:#050505d9;justify-content:space-between;align-items:center;height:56px;display:flex;position:sticky;top:0}.header-logo{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;color:var(--orange-400);font-size:1.1rem;font-weight:900}.header-right{align-items:center;gap:var(--sp-4);display:flex}.header-user{font-family:var(--font-mono);color:var(--on-surface-faint);letter-spacing:.02em;font-size:.72rem;font-weight:400}.header-user span{color:var(--orange-300);font-weight:500}.header:after{content:"";background:linear-gradient(90deg, var(--orange-600) 0%, var(--orange-400) 30%, var(--orange-800) 70%, transparent 100%);height:2px;position:absolute;bottom:0;left:0;right:0}.auth-page{flex:1;grid-template-columns:1fr 1fr;min-height:calc(100vh - 56px);display:grid}.auth-page:before{content:"";background:var(--orange-900);background-image:radial-gradient(at 30%,#ff541e1f 0%,#0000 60%),radial-gradient(at 70% 80%,#ac2d001a 0%,#0000 50%);display:block}.auth-card{background:var(--surface);padding:var(--sp-20) var(--sp-16);flex-direction:column;justify-content:center;max-width:480px;display:flex}.auth-logo{font-family:var(--font-display);letter-spacing:-.04em;color:var(--orange-400);margin-bottom:var(--sp-2);font-size:3.5rem;font-weight:900;line-height:1}.auth-tagline{font-family:var(--font-mono);color:var(--on-surface-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-12);font-size:.72rem}.auth-title{font-family:var(--font-display);margin-bottom:var(--sp-8);color:var(--on-surface);font-size:1rem;font-weight:600}.auth-card:before{display:none}.auth-switch{margin-top:var(--sp-6);font-family:var(--font-mono);color:var(--on-surface-faint);letter-spacing:.02em;font-size:.72rem}.auth-switch button{color:var(--orange-400);font-family:var(--font-mono);cursor:pointer;border:none;border-bottom:1px solid var(--orange-400);transition:var(--transition);background:0 0;margin-left:4px;padding:0;font-size:.72rem;font-weight:500;text-decoration:none}.auth-switch button:hover{color:var(--orange-300);border-color:var(--orange-300)}.form-group{margin-bottom:var(--sp-5)}.form-group label{font-family:var(--font-mono);color:var(--orange-200);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--sp-1);font-size:.68rem;font-weight:500;display:block}.form-group input,.form-group select{border:none;border-bottom:1px solid var(--orange-800);width:100%;color:var(--on-surface);font-family:var(--font-display);padding:var(--sp-2) 0;transition:var(--transition);appearance:none;background:0 0;border-radius:0;outline:none;font-size:.95rem;font-weight:500}.form-group input:focus,.form-group select:focus{border-bottom:2px solid var(--orange-400);box-shadow:0 1px 0 0 var(--primary-glow)}.form-group input::placeholder{color:var(--on-surface-faint);font-weight:400}.form-group select option{background:var(--surface-container);color:var(--on-surface)}.type-toggle{margin-bottom:var(--sp-5);grid-template-columns:1fr 1fr;gap:0;display:grid}.type-btn{padding:var(--sp-3) var(--sp-4);background:var(--surface-container);color:var(--on-surface-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:var(--transition);border:none;border-radius:0;font-size:.75rem;font-weight:500}.type-btn.income.active{background:var(--income-bg);color:var(--income-color);box-shadow:inset 0 -2px 0 var(--income-color)}.type-btn.expense.active{background:var(--expense-bg);color:var(--expense-color);box-shadow:inset 0 -2px 0 var(--expense-color)}.btn-submit{width:100%;padding:var(--sp-3) var(--sp-4);background:linear-gradient(135deg, var(--orange-600) 0%, var(--orange-500) 50%, var(--orange-400) 100%);color:var(--on-primary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;cursor:pointer;transition:var(--transition);margin-top:var(--sp-4);box-shadow:0 4px 24px var(--primary-glow);border:none;border-radius:0;font-size:.78rem;font-weight:700}.btn-submit:hover{background:linear-gradient(135deg, var(--orange-500) 0%, var(--orange-400) 50%, var(--orange-300) 100%);box-shadow:0 6px 32px var(--primary-glow-strong)}.btn-submit:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-submit.editing{background:linear-gradient(135deg, var(--orange-800) 0%, var(--orange-700) 100%)}.btn-cancel{width:100%;padding:var(--sp-3) var(--sp-4);color:var(--on-surface-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:var(--transition);margin-top:var(--sp-2);border:none;border-bottom:1px solid var(--ghost-border);background:0 0;border-radius:0;font-size:.72rem;font-weight:500}.btn-cancel:hover{color:var(--orange-300);border-color:var(--orange-300)}.btn-logout{padding:var(--sp-2) var(--sp-3);color:var(--on-surface-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:var(--transition);background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;font-size:.68rem;font-weight:500}.btn-logout:hover{color:var(--orange-400);border-bottom-color:var(--orange-400)}.api-error{padding:var(--sp-3) var(--sp-4);font-family:var(--font-mono);color:var(--orange-400);margin-bottom:var(--sp-4);border-left:3px solid var(--orange-400);background:#ff541e0f;border-radius:0;font-size:.75rem}.api-loading{text-align:left;padding:var(--sp-12) var(--sp-6);color:var(--on-surface-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.loading-spinner{border:2px solid var(--surface-container-highest);border-top-color:var(--orange-400);width:24px;height:24px;margin-bottom:var(--sp-3);animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.main{width:100%;max-width:1600px;padding:var(--sp-10) var(--sp-8) var(--sp-16);gap:var(--sp-8);flex:1;grid-template-columns:360px 1fr 360px;margin:0 auto;display:grid}.summary-row{grid-column:1/-1}.form-col{gap:var(--sp-8);flex-direction:column;grid-column:1;display:flex}.right-col{gap:var(--sp-8);flex-direction:column;grid-column:2;display:flex}.card{background:var(--surface-container-low);padding:var(--sp-6);border:none;border-radius:0}.card-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-5);color:var(--orange-200);align-items:center;gap:var(--sp-2);font-size:.82rem;font-weight:800;display:flex}.summary-grid{grid-template-columns:repeat(3,1fr);gap:0;display:grid}.summary-card{background:var(--surface-container-low);padding:var(--sp-6);transition:var(--transition);border:none;border-radius:0;position:relative;overflow:hidden}.summary-card:nth-child(2){background:var(--surface-container)}.summary-card:nth-child(3){background:var(--surface-container-high)}.summary-card:hover{transform:none}.summary-card:before{content:"";width:100%;height:3px;position:absolute;top:0;left:0}.summary-card.income:before{background:var(--orange-200)}.summary-card.expense:before{background:var(--orange-400)}.summary-card.balance:before{background:linear-gradient(90deg, var(--orange-600), var(--orange-400), var(--orange-200))}.summary-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-surface-faint);margin-bottom:var(--sp-2);font-size:.62rem;font-weight:500}.summary-amount{font-family:var(--font-display);letter-spacing:-.03em;font-size:2rem;font-weight:900;line-height:1}.summary-card.income .summary-amount{color:var(--orange-200)}.summary-card.expense .summary-amount{color:var(--orange-400)}.summary-card.balance .summary-amount{color:var(--orange-100)}.summary-count{font-family:var(--font-mono);color:var(--on-surface-faint);margin-top:var(--sp-2);letter-spacing:.02em;font-size:.68rem}.filters{gap:var(--sp-3);margin-bottom:var(--sp-5);padding-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.filter-select{border:none;border-bottom:1px solid var(--orange-900);color:var(--on-surface-muted);font-family:var(--font-mono);padding:var(--sp-1) 0;cursor:pointer;transition:var(--transition);appearance:none;letter-spacing:.02em;background:0 0;border-radius:0;outline:none;font-size:.72rem}.filter-select:focus{border-bottom-color:var(--orange-400);color:var(--on-surface)}.filter-select option{background:var(--surface-container)}.filter-count{font-family:var(--font-mono);color:var(--on-surface-faint);letter-spacing:.04em;margin-left:auto;font-size:.68rem}.tx-list{max-height:520px;padding-right:var(--sp-1);flex-direction:column;gap:0;display:flex;overflow-y:auto}.tx-item{align-items:center;gap:var(--sp-4);padding:var(--sp-4);transition:var(--transition);background:0 0;border:none;border-radius:0;display:flex;position:relative}.tx-item:nth-child(2n){background:var(--surface-container)}.tx-item:hover{background:var(--surface-container-high)}.tx-item.income-item{border-left:3px solid var(--orange-200)}.tx-item.expense-item{border-left:3px solid var(--orange-400)}.tx-icon{background:var(--surface-container-high);border-radius:0;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:1rem;display:grid}.tx-info{flex:1;min-width:0}.tx-desc{font-family:var(--font-display);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.tx-meta{font-family:var(--font-mono);color:var(--on-surface-faint);gap:var(--sp-3);letter-spacing:.02em;margin-top:2px;font-size:.68rem;display:flex}.tx-category-tag{background:var(--orange-900);color:var(--orange-300);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:0;padding:1px 6px;font-size:.62rem;font-weight:500}.tx-amount{font-family:var(--font-mono);white-space:nowrap;letter-spacing:-.01em;font-size:.88rem;font-weight:700}.tx-item.income-item .tx-amount{color:var(--orange-200)}.tx-item.expense-item .tx-amount{color:var(--orange-400)}.tx-actions{gap:var(--sp-1);transition:var(--transition);display:flex}.tx-action-btn{width:28px;height:28px;color:var(--on-surface-faint);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:0;place-items:center;font-size:.78rem;display:grid}.tx-action-btn.edit:hover{background:var(--orange-900);color:var(--orange-300)}.tx-action-btn.delete:hover{color:var(--orange-400);background:#ff541e1f}.empty-state{text-align:left;padding:var(--sp-10) var(--sp-4);color:var(--on-surface-faint)}.empty-state .empty-icon{margin-bottom:var(--sp-3);font-size:2rem}.empty-state p{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.chart-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.chart-container{background:var(--surface-container-low);padding:var(--sp-5);border:none;border-radius:0}.chart-container:nth-child(2){background:var(--surface-container)}.summary-row:after{content:"";background:linear-gradient(90deg, var(--orange-400), var(--orange-600), var(--orange-900));height:2px;margin-top:0;display:block}@media (width<=900px){.main{padding:var(--sp-6) var(--sp-4) var(--sp-12);gap:var(--sp-6);grid-template-columns:1fr}.form-col,.right-col,.assistant-panel{grid-column:1}.assistant-panel{display:none}.summary-grid,.chart-grid,.auth-page{grid-template-columns:1fr}.auth-page:before{display:none}.auth-card{padding:var(--sp-10) var(--sp-6);max-width:100%}.auth-logo{font-size:2.5rem}}@media (width<=480px){.header{padding:0 var(--sp-4)}.auth-card{padding:var(--sp-8) var(--sp-4)}.auth-logo{font-size:2rem}}.assistant-panel{background:var(--surface-container-low);border-left:1px solid var(--ghost-border);border-radius:0;flex-direction:column;grid-column:3;height:100%;max-height:600px;display:flex}.assistant-header{padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--ghost-border);justify-content:space-between;align-items:center;display:flex}.assistant-header h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--orange-200);margin:0;font-size:.9rem;font-weight:700}.model-badge{font-family:var(--font-mono);color:var(--orange-300);text-transform:uppercase;letter-spacing:.05em;background:#ff541e1f;padding:2px 6px;font-size:.65rem;font-weight:600}.assistant-messages{padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.msg{gap:var(--sp-2);flex-direction:column;font-size:.85rem;line-height:1.4;display:flex}.msg.msg-user{align-items:flex-end}.msg.msg-user .msg-content{background:var(--orange-600);color:var(--on-primary);padding:var(--sp-2) var(--sp-3);word-wrap:break-word;max-width:90%}.msg.msg-assistant{align-items:flex-start}.msg.msg-assistant .msg-content{background:var(--surface-container-high);color:var(--on-surface);padding:var(--sp-2) var(--sp-3);border-left:2px solid var(--orange-500);max-width:90%}.msg.msg-loading .msg-content{animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.tx-preview-list{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.tx-preview-card{background:var(--surface-container-high);padding:var(--sp-3);border-left:2px solid var(--orange-400);border-radius:0;font-size:.8rem}.tx-preview-header{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.tx-amount{font-family:var(--font-mono);font-weight:600}.tx-amount.tx-income{color:var(--income-color)}.tx-amount.tx-expense{color:var(--expense-color)}.tx-category{font-family:var(--font-mono);color:var(--on-surface-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.tx-category-select{background:var(--surface-elevated);border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;border-radius:0;padding:2px 6px;font-size:.7rem}.tx-category-select:focus{outline:1px solid var(--accent)}.tx-category-hint{color:var(--accent);font-size:.7rem;font-family:var(--font-mono);margin-top:2px}.tx-preview-input{border:none;border-bottom:1px solid var(--ghost-border);width:100%;color:var(--on-surface);font-family:var(--font-display);padding:var(--sp-1) 0;margin-bottom:var(--sp-1);background:0 0;outline:none;font-size:.78rem}.tx-preview-input:focus{border-bottom-color:var(--orange-400);box-shadow:0 1px 0 var(--primary-glow)}.tx-preview-actions{gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.btn-confirm,.btn-skip,.btn-confirm-all{padding:var(--sp-2) var(--sp-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:var(--transition);border:none;border-radius:0;flex:1;font-size:.7rem;font-weight:600}.btn-confirm,.btn-confirm-all{background:var(--orange-600);color:var(--on-primary)}.btn-confirm:hover,.btn-confirm-all:hover{background:var(--orange-500)}.btn-confirm:disabled,.btn-confirm-all:disabled{opacity:.4;cursor:not-allowed}.btn-skip{color:var(--on-surface-faint);border:1px solid var(--ghost-border);background:0 0}.btn-skip:hover{color:var(--orange-300);border-color:var(--orange-300)}.btn-confirm-all{width:100%;margin-top:var(--sp-3)}.upload-preview{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--ghost-border);max-height:120px;overflow:hidden}.preview-img{object-fit:cover;max-width:100%;max-height:100%}.assistant-input-area{border-top:1px solid var(--ghost-border);padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.upload-row{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.btn-upload{padding:var(--sp-2) var(--sp-3);border:none;border:1px solid var(--ghost-border);color:var(--on-surface-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:var(--transition);background:0 0;border-radius:0;font-size:.7rem;font-weight:600}.btn-upload:hover{color:var(--orange-300);border-color:var(--orange-300);background:#ff541e0d}.chat-row{gap:var(--sp-2);display:flex}.assistant-input{border:1px solid var(--ghost-border);color:var(--on-surface);font-family:var(--font-display);padding:var(--sp-2) var(--sp-3);resize:none;min-height:40px;transition:var(--transition);background:0 0;border-radius:0;outline:none;flex:1;font-size:.8rem}.assistant-input:focus{border-color:var(--orange-400);box-shadow:0 0 0 1px var(--primary-glow)}.assistant-input::placeholder{color:var(--on-surface-faint)}.btn-send{padding:var(--sp-2) var(--sp-3);background:var(--orange-600);color:var(--on-primary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:var(--transition);border:none;border-radius:0;font-size:.7rem;font-weight:600}.btn-send:hover:not(:disabled){background:var(--orange-500)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.card-title svg,.header-logo svg,.auth-logo svg{color:var(--orange-400)}.tx-icon svg{width:18px;height:18px;color:var(--orange-300)}.tx-action-btn svg{width:14px;height:14px}.empty-state .empty-icon svg{width:32px;height:32px;color:var(--orange-300)}.type-btn svg{vertical-align:-2px;width:14px;height:14px}.api-error svg{flex-shrink:0;width:14px;height:14px}
