@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Roboto+Mono:wght@500;700&display=swap";:root{--bg-primary: #F5EFE6;--bg-card: #FFFCF7;--bg-elevated: #FFFFFF;--bg-subtle: #EFE7DB;--text-main: #2F2A26;--text-primary: #2F2A26;--text-secondary: #6E655D;--text-muted: #6E655D;--text-tertiary: #776C63;--border-subtle: #E6DCCF;--divider: #EFE7DC;--glass-border: #E8DFD4;--glass-bg: rgba(255, 251, 245, .85);--income: #5B6F55;--success: #5B6F55;--expense: #9A5D54;--danger: #9A5D54;--danger-text: #9A3F35;--income-bg: rgba(168, 184, 159, .15);--expense-bg: rgba(217, 168, 158, .15);--receivable: #5A6D8A;--payable: #85664B;--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: #5B6F55;--primary-glow: rgba(168, 184, 159, .15);--warning: #9A5D54;--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: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-hero: 2.5rem}*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased}button,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden]){min-height:44px}button{min-width:44px}body{background-color:var(--bg-primary);color:var(--text-main);font-family:Inter,sans-serif;line-height:1.5;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}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ledger-row{transition:background-color var(--duration-fast) ease}.ledger-row:hover{background-color:var(--hover-bg)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ledger-row:focus-visible{outline-offset:-2px}.dialog-backdrop{position:fixed;inset:0;background:#201c1873;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.dialog-sheet{width:100%;max-width:440px;max-height:90vh;overflow-y:auto;padding:20px;background:var(--bg-card);border-radius:20px;box-shadow:0 12px 40px #201c182e}@media(max-width:520px){.dialog-backdrop{align-items:flex-end;padding:0}.dialog-sheet{max-width:none;border-radius:20px 20px 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}}.dialog-title{font-size:var(--text-lg);font-weight:700;margin-bottom:16px;color:var(--text-primary)}.field-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:6px}.field{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-elevated);color:var(--text-primary);font:inherit;font-size:1rem}.field:disabled{opacity:.6;cursor:not-allowed}.btn{min-height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font:inherit;font-size:var(--text-base);font-weight:600;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:transparent;border-color:var(--border-subtle);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--danger-text)}.btn:disabled{opacity:.7;cursor:wait}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
