:root{--bg: #f5f7ff;--surface: #ffffff;--accent: #4f46e5;--accent-light: #c4b5fd;--text-primary: #1a1a2e;--text-secondary: #6b7280;--text-muted: #9ca3af;--shadow: 0 1px 4px rgba(79, 70, 229, .1);--radius: 12px;--nav-height: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased}#root{max-width:480px;margin:0 auto;min-height:100dvh}.login-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--bg);padding:24px}.login-card{background:var(--surface);border-radius:var(--radius);padding:40px 32px;text-align:center;box-shadow:var(--shadow);width:100%;max-width:360px}.login-title{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.login-subtitle{color:var(--text-secondary);margin:0 0 32px}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:24px;padding:12px 28px;font-size:15px;font-weight:600;cursor:pointer;width:100%}.btn-primary:active{opacity:.85}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--surface);border-top:1px solid #e8ecff;display:flex;height:var(--nav-height);z-index:100}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:11px;font-weight:500;min-height:44px;text-decoration:none}.nav-tab.active{color:var(--accent)}.nav-tab svg{width:22px;height:22px}.nav-tab-add{width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;align-self:center;margin:0 12px;box-shadow:0 4px 12px #4f46e580}.nav-tab-add svg{width:24px;height:24px}.receipt-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:flex-start;cursor:pointer;-webkit-tap-highlight-color:transparent}.receipt-card:active{opacity:.8}.receipt-merchant{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.receipt-category{font-size:13px;color:var(--text-muted)}.receipt-date{font-size:11px;color:var(--text-muted);margin-top:2px}.receipt-amount{font-size:17px;font-weight:700;color:var(--accent)}.receipt-status-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--text-muted)}.receipt-status-dot.pending{background:#f59e0b}.receipt-status-dot.error{background:#ef4444}.sync-badge{background:#f59e0b;color:#fff;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600}.offline-banner{background:#fef3c7;color:#92400e;padding:8px 16px;font-size:13px;font-weight:500;text-align:center;border-bottom:1px solid #fde68a}.receipt-status-dot.review{background:#f59e0b}.receipt-status-dot.failed-scan{background:#ef4444}.scan-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.scan-badge--review{background:#fef3c7;color:#92400e}.scan-badge--failed{background:#fee2e2;color:#dc2626}.scan-badge--scanning{background:#ede9fe;color:#5b21b6;animation:scan-pulse 1.2s ease-in-out infinite}.receipt-status-dot.scanning{background:#7c3aed;animation:scan-pulse 1.2s ease-in-out infinite}@keyframes scan-pulse{0%,to{opacity:1}50%{opacity:.4}}.receipts-page{padding:0 0 calc(var(--nav-height) + 16px)}.receipts-header{position:sticky;top:0;background:var(--bg);padding:16px;display:flex;justify-content:space-between;align-items:center;z-index:10;border-bottom:1px solid #e8ecff}.receipts-title{font-size:20px;font-weight:700}.receipts-actions{display:flex;gap:8px;align-items:center}.btn-icon{background:var(--accent);color:#fff;border:none;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;width:36px;height:36px;box-shadow:0 2px 8px #4f46e566;transition:opacity .15s}.btn-icon:hover{opacity:.85}.btn-icon:disabled{opacity:.5}.btn-add{background:var(--accent);color:#fff;border:none;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;width:36px;height:36px;box-shadow:0 2px 8px #4f46e566}@keyframes spin{to{transform:rotate(360deg)}}.receipt-list{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state h3{font-size:17px;margin-bottom:8px;color:var(--text-primary)}
