@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Roboto+Mono:wght@500;700&display=swap";:root{--bg-primary: #F7EFE5;--bg-card: #FFFBF5;--bg-elevated: #FFFFFF;--bg-subtle: #F7EFE5;--text-main: #3E3A36;--text-primary: #3E3A36;--text-secondary: #8B7F75;--text-muted: #8B7F75;--text-tertiary: #ABA39A;--border-subtle: #E8DFD4;--divider: #F0E8DD;--glass-border: #E8DFD4;--glass-bg: rgba(255, 251, 245, .85);--income: #A8B89F;--success: #A8B89F;--expense: #D9A89E;--danger: #D9A89E;--income-bg: rgba(168, 184, 159, .15);--expense-bg: rgba(217, 168, 158, .15);--receivable: #91A8C9;--payable: #C9A891;--receivable-bg: rgba(145, 168, 201, .15);--payable-bg: rgba(201, 168, 145, .15);--hover-bg: rgba(62, 58, 54, .05);--active-bg: rgba(62, 58, 54, .08);--shadow: rgba(62, 58, 54, .08);--primary: #A8B89F;--primary-glow: rgba(168, 184, 159, .15);--warning: #D9A89E;--spacing-1: 8px;--spacing-2: 12px;--spacing-3: 16px;--spacing-4: 24px;--spacing-5: 32px;--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-soft: 0 4px 16px rgba(62, 58, 54, .08);--shadow-hover: 0 6px 20px rgba(62, 58, 54, .12);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--ease-out: cubic-bezier(.4, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .6, 1);--text-xs: .65rem;--text-sm: .75rem;--text-base: .9rem;--text-lg: 1.1rem;--text-xl: 1.4rem}*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased}body{background-color:var(--bg-primary);background-image:radial-gradient(at 0% 0%,rgba(247,239,229,1) 0,transparent 50%),radial-gradient(at 50% 0%,rgba(255,251,245,1) 0,transparent 50%),radial-gradient(at 100% 0%,rgba(232,223,212,1) 0,transparent 50%);color:var(--text-main);font-family:Inter,sans-serif;min-height:100vh;padding:0}.mono{font-family:Roboto Mono,monospace;font-variant-numeric:tabular-nums}.app-container{max-width:800px;margin:0 auto;padding:0;display:flex;flex-direction:column}.glass-card{background:var(--bg-card);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-soft);transition:all var(--duration-slow) var(--ease-out)}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}h1{font-size:2.5rem;font-weight:800;letter-spacing:-.04em;margin-bottom:var(--space-1);background:linear-gradient(135deg,var(--text-main) 0%,var(--primary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-title{font-size:1.125rem;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-2)}.hero-balance{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;letter-spacing:-.02em}.stat-label{font-size:.875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.5rem;font-weight:700}.stat-value.income{color:var(--success)}.stat-value.expense{color:var(--text-main)}.progress-group{margin-bottom:var(--space-2)}.progress-header{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.935rem;font-weight:600}.progress-bar-bg{height:10px;background:var(--hover-bg);border-radius:5px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:5px;transition:width .8s cubic-bezier(.16,1,.3,1)}.transaction-row{display:flex;align-items:center;padding:var(--space-2);gap:var(--space-2);border-bottom:1px solid var(--divider);transition:background var(--duration-base)}.transaction-row:last-child{border-bottom:none}.transaction-row:hover{background:var(--hover-bg)}.icon-square{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.trans-main{flex:1}.trans-title{font-weight:600;font-size:.935rem}.trans-sub{font-size:var(--text-sm);color:var(--text-muted)}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
