:root{--text:#1f1b24;--text-muted:#6b6577;--bg:#f5f4f8;--surface:#fff;--surface-hover:#faf9fc;--border:#e6e4ec;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-bg:#7c3aed14;--accent-text-on:#fff;--success:#16a34a;--success-bg:#16a34a1a;--danger:#dc2626;--danger-bg:#dc262614;--danger-hover:#b91c1c;--shadow-sm:0 1px 2px #1810260f, 0 1px 1px #1810260a;--shadow-md:0 8px 24px #18102614, 0 2px 6px #1810260d;--shadow-lg:0 20px 48px #18102624, 0 6px 16px #18102614;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#f1eef7;--text-muted:#a29bb3;--bg:#131218;--surface:#1c1b23;--surface-hover:#232230;--border:#302e3b;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-bg:#a78bfa24;--accent-text-on:#1f1235;--success:#4ade80;--success-bg:#4ade801f;--danger:#f87171;--danger-bg:#f871711f;--danger-hover:#fca5a5;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059, 0 2px 6px #00000040;--shadow-lg:0 20px 48px #00000073, 0 6px 16px #0000004d}}*{box-sizing:border-box}body{margin:0}h1{letter-spacing:-.02em;margin:0 0 20px;font-size:26px;font-weight:700}h2{margin:0 0 12px;font-size:16px;font-weight:600}a{color:var(--accent)}.navbar{z-index:100;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:14px 28px;display:flex;position:sticky;top:0}.navbar-brand{letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;margin-right:20px;font-size:16px;font-weight:700;display:flex}.navbar-brand svg{color:var(--accent)}.navbar-links{flex:1;gap:4px;display:flex}.navbar-links a,.navbar-user a{color:var(--text-muted);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s}.navbar-links a:hover,.navbar-user a:hover{color:var(--text);background:var(--surface-hover)}.navbar-links a.active,.navbar-user a.active{color:var(--accent);background:var(--accent-bg);font-weight:600}.navbar-user{color:var(--text-muted);align-items:center;gap:8px;display:flex}.navbar-user button.link-button{color:var(--text-muted);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500;text-decoration:none}.navbar-user button.link-button:hover{color:var(--text);background:var(--surface-hover);text-decoration:none}.page{max-width:980px;margin:0 auto;padding:40px 28px 64px}.page-loading{justify-content:center;padding:80px 0;display:flex}.page-header-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-header-row h1{margin:0}.detail-meta{color:var(--text-muted);margin:-8px 0 20px;font-size:14px}.detail-meta strong{color:var(--text)}.auth-page{background:radial-gradient(circle at 15% 10%, var(--accent-bg), transparent 40%), radial-gradient(circle at 85% 90%, var(--accent-bg), transparent 40%), var(--bg);justify-content:center;align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.auth-decor{pointer-events:none;z-index:0;position:absolute;inset:0}.blob{background:var(--accent-bg);filter:blur(2px);border-radius:50%;animation:8s ease-in-out infinite blob-pulse;position:absolute}.blob-a{width:220px;height:220px;animation-duration:9s;top:8%;left:9%}.blob-b{width:260px;height:260px;animation-duration:10.5s;animation-delay:-3s;bottom:6%;right:8%}.blob-c{width:120px;height:120px;animation-duration:7s;animation-delay:-1.5s;top:58%;left:5%}@keyframes blob-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.floaty{border-radius:var(--radius-md);background:var(--surface);width:60px;height:60px;color:var(--accent);box-shadow:var(--shadow-md);border:1px solid var(--border);justify-content:center;align-items:center;animation:6s ease-in-out infinite floaty-drift;display:flex;position:absolute}.floaty-receipt{animation-duration:6s;top:16%;left:20%}.floaty-coins{animation-duration:7.5s;animation-delay:-2s;bottom:20%;left:14%}.floaty-wallet{animation-duration:6.8s;animation-delay:-1s;top:22%;right:16%}.floaty-check{animation-duration:5.5s;animation-delay:-3.2s;bottom:26%;right:20%}@keyframes floaty-drift{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-16px)rotate(4deg)}}@media (width<=980px){.auth-decor{display:none}}@media (prefers-reduced-motion:reduce){.blob,.floaty{animation:none}}.auth-form{z-index:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:360px;box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;padding:36px;display:flex;position:relative}.auth-form h1{align-items:center;gap:10px;margin-bottom:4px;font-size:22px;display:flex}.auth-form h1 svg{color:var(--accent)}.auth-subtitle{color:var(--text-muted);margin:-8px 0 8px;font-size:13px}.auth-form label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.field-hint{color:var(--text-muted);opacity:.85;font-size:11.5px;font-weight:400}.auth-form>button[type=submit]{margin-top:6px}.auth-switch{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px;padding-top:14px;font-size:13px}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}input::placeholder{color:var(--text-muted);opacity:.7}button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--accent-text-on);cursor:pointer;box-shadow:var(--shadow-sm);padding:9px 18px;font-weight:600;transition:transform .1s,box-shadow .15s,background-color .15s,opacity .15s}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}button.link-button{color:var(--accent);box-shadow:none;background:0 0;border:none;padding:2px 4px;font-weight:500}button.link-button:hover:not(:disabled){box-shadow:none;background:0 0;text-decoration:underline;transform:none}button.link-button.danger{color:var(--danger)}.form-error{color:var(--danger);align-items:center;gap:6px;font-size:13px;display:flex}.form-success{color:var(--success);align-items:center;gap:6px;font-size:13px;display:flex}.currency-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:6px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.currency-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.currency-input span{color:var(--text-muted);font-size:13px;font-weight:500}.currency-input input{background:0 0;border:none;flex:1;padding:9px 0}.currency-input input:focus{box-shadow:none}.amount-field-row{align-items:center;gap:6px;display:flex}.amount-field-row .currency-input{flex:1;min-width:0}.calc-toggle-btn{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);box-shadow:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.calc-toggle-btn:hover:not(:disabled){background:var(--accent-bg);color:var(--accent);border-color:var(--accent);box-shadow:none;transform:none}.calc-toggle-btn.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.amount-calculator{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.amount-calculator-entries{flex-direction:column;gap:4px;max-height:120px;display:flex;overflow-y:auto}.amount-calculator-entry{background:var(--surface);border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:13px;display:flex}.amount-calculator-entry button{color:var(--text-muted);box-shadow:none;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.amount-calculator-entry button:hover{color:var(--danger);box-shadow:none;background:0 0;transform:none}.amount-calculator-empty{color:var(--text-muted);text-align:center;margin:0;padding:8px 0;font-size:12px}.amount-calculator-input-row{gap:6px;display:flex}.amount-calculator-input-row input{flex:1;min-width:0}.amount-calculator-input-row button{padding:8px 14px;font-size:13px}.amount-calculator-total{border-top:1px solid var(--border);justify-content:space-between;padding-top:4px;font-size:13px;font-weight:600;display:flex}.amount-calculator-actions{align-items:center;gap:10px;display:flex}.amount-calculator-actions button[type=button]:not(.link-button){padding:6px 14px;font-size:13px}.receipt-batch{flex-direction:column;gap:18px;max-width:760px;display:flex}.file-picker-label{color:var(--text-muted);background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:22px;font-size:13px;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.file-picker-label:hover{border-color:var(--accent);background:var(--accent-bg)}.receipt-batch-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-template-columns:128px 1fr;gap:18px;padding:18px;transition:box-shadow .15s;display:grid;position:relative}.receipt-batch-item:hover{box-shadow:var(--shadow-md)}.receipt-batch-item .thumb{border-radius:var(--radius-sm);border:1px solid var(--border);object-fit:cover;cursor:zoom-in;width:100%;max-height:150px;transition:opacity .15s}.receipt-batch-item .thumb:hover{opacity:.85}.receipt-batch-item .fields{flex-direction:column;gap:12px;min-width:0;display:flex}.receipt-batch-item .fields-row{gap:12px;display:flex}.receipt-batch-item .fields-row>label{flex:1;min-width:0}.remove-item-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;width:26px;height:26px;box-shadow:var(--shadow-sm);border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex;position:absolute;top:10px;right:10px}.remove-item-btn:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-bg);box-shadow:none;transform:none}.batch-actions{align-items:center;gap:12px;display:flex}.receipt-batch-item label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.profile-form-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.ocr-hint{align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.ocr-hint.detected{color:var(--accent);font-weight:500}.ocr-hint.none{color:var(--text-muted)}.lightbox-backdrop{z-index:1000;cursor:zoom-out;background:#0a0810e6;justify-content:center;align-items:center;padding:32px;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.lightbox-backdrop img{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:100%;box-shadow:var(--shadow-lg);cursor:default}.lightbox-close{color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:38px;height:38px;box-shadow:none;background:#ffffff1a;border:1px solid #ffffff40;font-size:15px;position:fixed;top:20px;right:24px}.lightbox-close:hover{box-shadow:none;background:#fff3;transform:none}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:4px;overflow:hidden}table.receipt-table{border-collapse:collapse;width:100%}table.receipt-table th,table.receipt-table td{text-align:left;border-bottom:1px solid var(--border);padding:13px 16px;font-size:14px}table.receipt-table tbody tr{transition:background-color .1s}table.receipt-table tbody tr:hover{background:var(--surface-hover)}table.receipt-table tbody tr:last-child td{border-bottom:none}table.receipt-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-hover);font-size:11.5px;font-weight:600}.empty-state{color:var(--text-muted);text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-md);padding:56px 24px}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{color:var(--text-muted);align-items:center;gap:10px;padding:24px 0;font-size:14px;display:flex}.summary-cards{gap:16px;margin-bottom:28px;display:flex}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex:1;align-items:center;gap:14px;padding:20px 22px;display:flex}.summary-card .icon{border-radius:var(--radius-sm);background:var(--accent-bg);width:44px;height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.summary-card .label{color:var(--text-muted);margin-bottom:4px;font-size:13px}.summary-card .value{letter-spacing:-.01em;font-size:24px;font-weight:700}.toast-stack{z-index:2000;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:12px 18px;font-size:14px;font-weight:500;animation:.2s toast-in,.2s 2.8s toast-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}.modal-backdrop{z-index:900;background:#0a081080;justify-content:center;align-items:flex-start;padding:90px 20px 20px;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:400px;max-width:100%;max-height:calc(100vh - 110px);box-shadow:var(--shadow-lg);padding:24px;overflow-y:auto}.modal-panel h2{margin:0 0 4px;font-size:18px}.modal-panel .fields{flex-direction:column;gap:14px;margin-top:16px;display:flex}.modal-panel label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.modal-panel input:disabled{opacity:.6;cursor:not-allowed}.modal-actions{align-items:center;gap:10px;margin-top:20px;display:flex}.signature-upload{align-items:center;gap:12px;display:flex}.signature-upload .signature-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);object-fit:contain;justify-content:center;align-items:center;width:100px;height:50px;display:flex;overflow:hidden}.signature-upload .signature-preview img{object-fit:contain;max-width:100%;max-height:100%}.signature-upload .signature-preview-empty{color:var(--text-muted);text-align:center;padding:4px;font-size:11px}
