:root{color-scheme:light;--page: #f8fafc;--surface: #ffffff;--surface-soft: #f1f5f9;--surface-raised: #ffffff;--surface-subtle: #f8fafc;--ink: #0f172a;--text: #0f172a;--muted: #475569;--border: #e2e8f0;--border-strong: #cbd5e1;--primary: #047857;--primary-hover: #065f46;--primary-soft: #ecfdf5;--primary-contrast: #ffffff;--on-primary: #ffffff;--link: #047857;--focus: #2563eb;--accent: #047857;--warning: #b45309;--warning-bg: #fffbeb;--warning-soft: #fef3c7;--warning-border: #fde68a;--error: #b91c1c;--danger: #b91c1c;--error-bg: #fef2f2;--positive: #047857;--success: #047857;--positive-bg: #ecfdf5;--success-soft: #ecfdf5;--chart: #047857;--chart-selected: #2563eb;--chart-zero: #94a3b8;--sidebar-bg: #0f172a;--sidebar-fg: #f8fafc;--sidebar-muted: #94a3b8;--sidebar-active-bg: #1e293b;--sidebar-active-fg: #34d399;--sidebar-hover-bg: #1e293b;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: .875rem;--shadow: 0 1px 3px 0 rgb(0 0 0 / .06), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--panel-shadow: -4px 0 24px rgb(15 23 42 / .12)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--page: #090d16;--surface: #111827;--surface-soft: #1e293b;--surface-raised: #1e293b;--surface-subtle: #111827;--ink: #f8fafc;--text: #f8fafc;--muted: #94a3b8;--border: #1f2937;--border-strong: #374151;--primary: #10b981;--primary-hover: #34d399;--primary-soft: #064e3b;--primary-contrast: #022c22;--on-primary: #022c22;--link: #34d399;--focus: #60a5fa;--accent: #34d399;--warning: #fbbf24;--warning-bg: #291e0a;--warning-soft: #3b2d11;--warning-border: #78350f;--error: #f87171;--danger: #f87171;--error-bg: #371717;--positive: #34d399;--success: #34d399;--positive-bg: #064e3b;--success-soft: #064e3b;--chart: #10b981;--chart-selected: #60a5fa;--chart-zero: #475569;--sidebar-bg: #06090e;--sidebar-fg: #f8fafc;--sidebar-muted: #64748b;--sidebar-active-bg: #111827;--sidebar-active-fg: #34d399;--sidebar-hover-bg: #0f172a;--shadow: 0 4px 20px rgb(0 0 0 / .4);--shadow-sm: 0 1px 3px rgb(0 0 0 / .3);--panel-shadow: -4px 0 28px rgb(0 0 0 / .5)}}:root[data-theme=dark]{color-scheme:dark;--page: #090d16;--surface: #111827;--surface-soft: #1e293b;--surface-raised: #1e293b;--surface-subtle: #111827;--ink: #f8fafc;--text: #f8fafc;--muted: #94a3b8;--border: #1f2937;--border-strong: #374151;--primary: #10b981;--primary-hover: #34d399;--primary-soft: #064e3b;--primary-contrast: #022c22;--on-primary: #022c22;--link: #34d399;--focus: #60a5fa;--accent: #34d399;--warning: #fbbf24;--warning-bg: #291e0a;--warning-soft: #3b2d11;--warning-border: #78350f;--error: #f87171;--danger: #f87171;--error-bg: #371717;--positive: #34d399;--success: #34d399;--positive-bg: #064e3b;--success-soft: #064e3b;--chart: #10b981;--chart-selected: #60a5fa;--chart-zero: #475569;--sidebar-bg: #06090e;--sidebar-fg: #f8fafc;--sidebar-muted: #64748b;--sidebar-active-bg: #111827;--sidebar-active-fg: #34d399;--sidebar-hover-bg: #0f172a;--shadow: 0 4px 20px rgb(0 0 0 / .4);--shadow-sm: 0 1px 3px rgb(0 0 0 / .3);--panel-shadow: -4px 0 28px rgb(0 0 0 / .5)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--page);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-weight:600;font-size:.875rem;border:1px solid var(--primary);border-radius:var(--radius-md);padding:.55rem .95rem;min-height:2.5rem;background:var(--primary);color:var(--on-primary);box-shadow:0 1px 2px #0000000d;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform 80ms ease}button:active:not(:disabled){transform:scale(.98)}button:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled){background:var(--surface-soft);border-color:var(--muted)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}button.text-button{background:transparent;color:var(--link);border-color:transparent;padding:.4rem .6rem;min-height:2.25rem;text-decoration:none;font-weight:600;box-shadow:none}button.text-button:hover:not(:disabled){background:var(--surface-soft);text-decoration:underline}button.icon-btn,summary.icon-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem;min-width:2.35rem;min-height:2.35rem;box-shadow:var(--shadow-sm);transition:all .12s ease}button.icon-btn:hover:not(:disabled),summary.icon-btn:hover{background:var(--surface-soft);border-color:var(--border-strong)}button.icon-btn--danger{color:var(--danger);border-color:var(--border)}button.icon-btn--danger:hover:not(:disabled){background:var(--error-bg);border-color:var(--danger)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}a{color:var(--link);text-underline-offset:3px}form{display:grid;gap:.7rem;margin:0}label{font-size:.88rem;font-weight:650;color:var(--ink);display:block}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:2.75rem;padding:.65rem .85rem;border:1px solid var(--border-strong);border-radius:.65rem;background:var(--surface);color:var(--ink);font-size:.95rem}textarea{min-height:5rem;resize:vertical}label.check{display:flex;align-items:flex-start;gap:.6rem;font-weight:550;padding:.35rem 0;cursor:pointer}label.check input[type=checkbox]{width:1.15rem;height:1.15rem;margin-top:.18rem;flex:none;accent-color:var(--primary)}.hint{margin:0;font-size:.83rem;color:var(--muted);line-height:1.45}.eyebrow{margin:0 0 .25rem;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.field{display:grid;gap:.35rem}.field-row{display:flex;align-items:flex-end;gap:.5rem;width:100%}.field-row .field{flex:1;min-width:0}.field-row button{flex:none;white-space:nowrap}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.page-header h1{margin:0;font-size:clamp(1.75rem,3.5vw,2.35rem);letter-spacing:-.04em;line-height:1.15;color:var(--ink)}.page-header p{margin:.35rem 0 0;color:var(--muted);font-size:.95rem;max-width:46rem}.page-header p.eyebrow{margin:0 0 .25rem;color:var(--accent);font-size:.78rem}.page-header-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.month-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1.15rem;margin-bottom:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:.9rem;box-shadow:var(--shadow)}.month-bar-title,.month-bar__picker{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.month-bar-title h2,.month-bar__picker h2{margin:0;font-size:1.2rem;font-weight:750;letter-spacing:-.02em}.month-bar-actions,.month-bar__actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.shell-monthbar{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--border);padding:.75rem clamp(1rem,3.5vw,2.75rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 1px 3px #0000000a}.shell-monthbar__main{display:flex;align-items:center;gap:.75rem;min-width:0}.shell-monthbar__heading{margin:0;display:inline-flex;align-items:center;gap:.65rem;font-size:1.15rem;font-weight:750;color:var(--ink);letter-spacing:-.02em}.shell-monthbar__name{white-space:nowrap}.monthbar-calendar-btn{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.45rem;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:all .12s ease}.monthbar-calendar-btn:hover{color:var(--ink);background:var(--surface-raised, rgba(0, 0, 0, .05));border-color:var(--border)}.shell-monthbar__nav{display:flex;align-items:center;gap:.5rem;flex:none}.monthbar-trio{display:inline-flex;align-items:center;background:var(--surface-raised, rgba(0, 0, 0, .03));border:1px solid var(--border);border-radius:.65rem;padding:.2rem;gap:.15rem}.monthbar-trio .icon-btn{width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.45rem;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:all .12s ease}.monthbar-trio .icon-btn:hover{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000f}.monthbar-trio .icon-btn.is-current{color:var(--primary);font-weight:700}.month-modal__actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.baseline-card{border-left:4px solid var(--primary);background:var(--surface);padding:1.35rem 1.5rem;margin-bottom:1.5rem;border-radius:1rem;border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.baseline-card__header{display:flex;align-items:center;gap:.85rem}.baseline-card__icon{width:2.5rem;height:2.5rem;border-radius:.65rem;background:#2563eb1a;color:var(--primary);display:grid;place-items:center;flex:none}.baseline-card__header h2{margin:0;font-size:1.2rem;font-weight:750;letter-spacing:-.02em;color:var(--ink)}.baseline-card__sub{margin:.15rem 0 0;font-size:.85rem;color:var(--muted)}.baseline-card__amount{margin:.85rem 0 .5rem;font-size:1.85rem;font-weight:800;letter-spacing:-.03em;color:var(--ink)}.summary-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.25rem;margin-bottom:1.5rem;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:.85rem;box-shadow:var(--shadow)}.summary-banner p{margin:0}.summary-banner dt{font-size:.8rem;font-weight:600;color:var(--muted);margin:0;text-transform:uppercase;letter-spacing:.04em}.summary-banner dd{font-size:1.25rem;font-weight:750;color:var(--ink);margin:.2rem 0 0;padding:0}.summary-banner .total{font-size:1.1rem;color:var(--ink)}.gear-menu{position:relative;display:inline-block}.gear-menu summary{list-style:none;cursor:pointer}.gear-menu summary::-webkit-details-marker{display:none}.gear-menu summary *{pointer-events:none}.gear-menu[open]>summary{background:var(--surface-raised, rgba(0, 0, 0, .06));color:var(--ink)}.gear-menu__dropdown{position:absolute;top:calc(100% + .35rem);right:0;z-index:100;min-width:15rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #0000001a;padding:.35rem;display:flex;flex-direction:column;gap:.15rem}.gear-menu__dropdown .gear-menu__item,.gear-menu__dropdown button{display:flex;align-items:center;justify-content:flex-start;gap:.65rem;width:100%;padding:.55rem .75rem;font-size:.85rem;font-weight:550;text-align:left;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;box-shadow:none;transition:background .12s ease}.gear-menu__dropdown .gear-menu__item:hover,.gear-menu__dropdown button:hover{background:var(--surface-soft);border-color:transparent}.section-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.35rem 1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow)}.section-card>h2,.section-header h2,.section-card__header h2{margin:0 0 1rem;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.section-header,.section-card__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem}.section-header h2,.section-card__header h2{margin:0}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:99px;font-size:.74rem;font-weight:700;letter-spacing:.01em;background:var(--surface-soft);color:var(--ink);border:1px solid var(--border)}.badge-required,.badge-warning,.badge--warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.badge-positive,.badge-paid,.badge--success,.badge--current{background:var(--positive-bg);color:var(--positive);border-color:transparent;font-weight:650}.badge--completed{background:var(--surface-soft);color:var(--muted);border:1px solid var(--border)}.badge--future{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.status-toast{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1.1rem;margin-bottom:1.1rem;border-radius:.75rem;background:var(--positive-bg);color:var(--positive);border:1px solid var(--border);font-weight:600}.alert-banner{display:flex;align-items:flex-start;gap:.65rem;padding:.9rem 1.1rem;margin-bottom:1.1rem;border-radius:.75rem;background:var(--error-bg);color:var(--error);border-left:4px solid var(--error);font-weight:600}.conflict{border:2px solid var(--warning);border-radius:.75rem;padding:1rem;background:var(--warning-bg);color:var(--warning);margin:.75rem 0}.conflict p{color:var(--warning);margin:0 0 .65rem}.conflict h3{margin:0 0 .4rem;color:var(--warning)}details.sub-panel{border:1px solid var(--border);border-radius:.75rem;background:var(--surface-raised);padding:.75rem 1rem}details.sub-panel>summary{cursor:pointer;font-weight:650;font-size:.93rem;color:var(--ink);padding:.2rem 0}details.sub-panel[open]>summary{margin-bottom:.85rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.progress-track{width:100%;height:.55rem;background:var(--surface-soft);border-radius:99px;overflow:hidden;margin:.5rem 0}.progress-fill{height:100%;background:var(--primary);border-radius:99px;transition:width .2s ease}.progress-fill.is-over,.progress-fill--over{background:var(--error)}.modal-backdrop{position:fixed;inset:0;background:#0a141085;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:1100;padding:1rem}.modal-card{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:1rem;max-width:30rem;width:100%;padding:1.5rem;box-shadow:var(--panel-shadow)}.modal-card h3{margin-top:0;font-size:1.2rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.empty-state{text-align:center;padding:2rem 1.25rem;color:var(--muted);background:var(--surface-raised);border:1px dashed var(--border-strong);border-radius:.85rem}.empty-state p{margin:.5rem 0 0;color:var(--muted)}
