:root{--bg: #f0f2f5;--card-bg: rgba(255, 255, 255, .8);--primary: #4f46e5;--text-main: #1e293b;--text-muted: #64748b;--radius: 24px;--glass: blur(12px) saturate(180%)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text-main);overflow-x:hidden}.app-container{max-width:1100px;margin:0 auto;padding:2rem 1.5rem;min-height:100vh}.main-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem}.logo{display:flex;align-items:center;gap:12px}.logo-icon{width:40px;height:40px;background:var(--primary);color:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px #4f46e533}.logo h1{font-size:1.25rem;font-weight:800}.logo h1 span{color:var(--primary);font-weight:400}.header-actions{display:flex;align-items:center;gap:16px}.sync-badge{font-size:12px;font-weight:600;color:#10b981;display:flex;align-items:center;gap:6px}.sync-badge.syncing{color:var(--primary);animation:pulse 2s infinite}.add-btn{background:var(--text-main);color:#fff;border:none;padding:10px 18px;border-radius:14px;display:flex;align-items:center;gap:8px;font-weight:700;cursor:pointer;transition:.2s}.add-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0000001a}.add-btn kbd{background:#fff3;padding:2px 6px;border-radius:4px;font-size:10px}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:1.5rem}.bento-item{background:var(--card-bg);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border:1px solid rgba(255,255,255,.5);border-radius:var(--radius);padding:1.5rem;box-shadow:0 4px 24px #00000005}.balance-card{grid-column:span 2;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;position:relative;overflow:hidden;display:flex;align-items:center}.card-bg-pattern{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.4}.balance-content{position:relative;z-index:1;width:100%}.balance-content .label{font-size:14px;font-weight:600;opacity:.8;margin-bottom:8px}.balance-content .amount{font-size:3rem;font-weight:900;letter-spacing:-1px;margin-bottom:1.5rem}.stats-row{display:flex;gap:12px}.stat-pill{padding:6px 12px;border-radius:10px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;background:#ffffff26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ai-card{grid-column:span 1;display:flex;flex-direction:column}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:1rem}.card-header h3{font-size:15px;font-weight:700}.ai-content{flex:1;display:flex;flex-direction:column;justify-content:space-between}.ai-content p{font-size:14px;line-height:1.6;color:var(--text-muted)}.ai-btn{margin-top:1rem;width:100%;padding:12px;border-radius:12px;border:2px dashed #e2e8f0;background:transparent;font-weight:700;color:var(--primary);cursor:pointer;transition:.2s}.ai-btn:hover{background:#f5f3ff;border-color:var(--primary)}.history-card{grid-column:span 2;min-height:400px}.tx-list{margin-top:1rem;display:flex;flex-direction:column;gap:8px}.tx-item{display:flex;align-items:center;gap:16px;padding:12px;border-radius:16px;transition:.2s;position:relative}.tx-item:hover{background:#ffffff80}.tx-icon{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 10px #0000000d}.tx-info{flex:1;display:flex;flex-direction:column}.tx-note{font-weight:700;font-size:14px}.tx-meta{font-size:11px;color:var(--text-muted)}.tx-amount{font-weight:800;font-size:15px}.tx-amount.expense{color:var(--text-main)}.tx-amount.income{color:#10b981}.del-btn{opacity:0;padding:8px;border:none;background:transparent;color:#f87171;cursor:pointer;transition:.2s}.tx-item:hover .del-btn{opacity:1}.goals-card{grid-column:span 1}.goals-list{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.goal-item{display:flex;flex-direction:column;gap:8px}.goal-top{display:flex;justify-content:space-between;font-size:13px;font-weight:700}.progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:4px}.goal-bottom{font-size:11px;color:var(--text-muted);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;width:90%;max-width:400px;padding:2rem;border-radius:32px;box-shadow:0 20px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.type-switch{display:flex;background:#f1f5f9;padding:4px;border-radius:12px;margin-bottom:1.5rem}.type-switch button{flex:1;border:none;padding:8px;border-radius:8px;font-weight:700;cursor:pointer;background:transparent;color:var(--text-muted)}.type-switch button.active{background:#fff;color:var(--text-main);box-shadow:0 2px 8px #0000000d}.amount-input{width:100%;border:none;font-size:2.5rem;font-weight:900;text-align:center;margin-bottom:1.5rem;outline:none;color:var(--primary)}.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:1.5rem}.cat-grid button{padding:10px;border:1px solid #f1f5f9;border-radius:12px;background:#fff;font-size:12px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}.cat-grid button.active{border-color:var(--primary);background:#f5f3ff;color:var(--primary)}.submit-btn{width:100%;padding:16px;border-radius:16px;border:none;background:var(--text-main);color:#fff;font-weight:800;cursor:pointer}.undo-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:12px 24px;border-radius:16px;display:flex;align-items:center;gap:16px;box-shadow:0 10px 30px #0003;z-index:110}.undo-toast button{background:#334155;border:none;color:#818cf8;padding:6px 12px;border-radius:8px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px}@media (max-width: 768px){.bento-grid{grid-template-columns:1fr}.balance-card,.history-card{grid-column:span 1}.amount{font-size:2.2rem}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
