:root{--z-notification: 1200;--z-dialog: 1000;--z-popover: 100;--z-sticky: 10;--motion-normal: .25s;--motion-fast: .15s;--control-height-touch: 44px;--control-height: 40px;--focus-halo: 0 0 0 3px var(--color-accent-soft);--focus-ring: 2px solid var(--color-accent-strong);--shadow-dialog: 0 18px 48px rgb(23 60 56 / 14%);--shadow-md: 0 8px 24px rgb(23 60 56 / 9%);--shadow-sm: 0 2px 8px rgb(23 60 56 / 6%);--color-overlay: rgb(23 60 56 / 28%);--color-on-accent: #fffdf8;--color-warning-mark: #d79a47;--color-danger-soft: #f8e5e1;--color-danger: #a6413d;--color-warning-soft: #fff6e5;--color-warning: #906018;--color-success-soft: #dff1eb;--color-success: #267566;--color-text-muted: #536b64;--color-text-secondary: #315a54;--color-text-primary: #173c38;--color-accent-strong: #267566;--color-accent-soft: #dff1eb;--color-accent: #55cdb3;--color-border-strong: #afbeb7;--color-border: #d4d9d0;--color-surface-inset: #ecefe7;--color-surface-raised: #fffdf8;--color-surface-hover: #f7faf3;--color-surface: #fffdf8;--color-canvas-deep: #e9ece3;--color-canvas: #f3f1e9;--chart-capital: #6b5796;--chart-unallocated: #596f7d;--chart-earmarks: #9a632c;--chart-income: #267566;--chart-earned: #3b7041;--chart-expenses: #b84d48;--chart-cash-flow: #755285;--chart-series-1: #337595;--chart-series-2: #3b7041;--chart-series-3: #906018;--chart-series-4: #a04473;--chart-series-5: #267566;--chart-series-6: #b84d48;--chart-series-7: #53679a;--chart-series-8: #755285;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-card: 16px;--radius-control: 8px;--radius-pill: 999px;--font-sans: "DM Sans", system-ui, sans-serif;--font-number: "DM Mono", monospace;--font-display: "Iowan Old Style", "Palatino Linotype", Georgia, serif;font-family:var(--font-sans);line-height:1.5;font-weight:400;color-scheme:light;color:var(--color-text-primary);background-color:var(--color-canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{height:100%;overflow:hidden}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;height:100%;overflow:hidden}#root{width:100%;height:100%;overflow:hidden}.app-boot{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);color:var(--color-text-secondary)}.app-boot--error{align-content:center;gap:14px;text-align:center}.pending-writes-debug{position:fixed;right:14px;bottom:14px;z-index:1200;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-text-primary);font-size:.78rem;box-shadow:var(--shadow-sm)}a{font-weight:500;color:var(--color-accent-strong);text-decoration:inherit}button{border-radius:var(--radius-sm);border:1px solid transparent;padding:.5em 1em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-surface);cursor:pointer;transition:border-color var(--motion-fast),background-color var(--motion-fast),color var(--motion-fast)}:root :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:2px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}button,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select{min-height:var(--control-height)}input,select,textarea{font-family:var(--font-sans);accent-color:var(--color-accent-strong)}input::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:1}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.6}@media(max-width:780px){button,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select{min-height:var(--control-height-touch)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.modal-portal{display:contents}body:has(.modal-portal) #root{pointer-events:none}body:has(.modal-portal) :is(.inputs-content,.results-page,.targets-page,.calendar-view__body){overflow-y:hidden}
