:root[data-theme=light],:root:not([data-theme]){--color-bg: #F6F2E7;--color-text: #1F3328;--color-textMuted: #5A6656;--color-card: #FFFCF5;--color-hero: #23412F;--color-onHero: #F6F2E7;--color-accent: #6B8A3E;--color-link: #3F5A2A;--color-track: #E6E1D2;--color-line: #E2DCCB;--color-secondary1: #B07A2A;--color-secondary2: #4C7A8A}:root[data-theme=dark]{--color-bg: #121A15;--color-text: #E6EBDD;--color-textMuted: #A3AE98;--color-card: #1B261F;--color-hero: #2D4A37;--color-onHero: #F1F4EA;--color-accent: #9DB37A;--color-link: #B5CC8E;--color-track: #2B382F;--color-line: #26322A;--color-secondary1: #C9A15A;--color-secondary2: #7FA6B3}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #121A15;--color-text: #E6EBDD;--color-textMuted: #A3AE98;--color-card: #1B261F;--color-hero: #2D4A37;--color-onHero: #F1F4EA;--color-accent: #9DB37A;--color-link: #B5CC8E;--color-track: #2B382F;--color-line: #26322A;--color-secondary1: #C9A15A;--color-secondary2: #7FA6B3}}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:600;color:var(--color-text);margin:0 0 8px}a{color:var(--color-link)}body>div#root>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--color-line)}.wordmark{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:1.25rem;color:var(--color-text);text-decoration:none}header nav{display:flex;align-items:center;gap:20px;font-size:.9rem}header nav a{color:var(--color-text);text-decoration:none}header nav a:hover{color:var(--color-link)}header nav button{font:inherit;font-size:.9rem;background:none;border:none;color:var(--color-textMuted);cursor:pointer;padding:0}main{max-width:640px;margin:0 auto;padding:48px 24px 64px}.muted{color:var(--color-textMuted)}main.home h1{font-size:2rem}main.home ul{padding-left:20px;margin:24px 0}main.home li{margin-bottom:8px}.home-actions{display:flex;gap:12px;margin-top:24px}.cta,.cta-secondary{display:inline-block;padding:12px 24px;border-radius:8px;text-decoration:none;font-weight:500}.cta{background:var(--color-hero);color:var(--color-onHero)}.cta-secondary{background:var(--color-track);color:var(--color-text)}main>form,main.reports-card{background:var(--color-card);border:1px solid var(--color-line);border-radius:24px;padding:32px}form label{display:block;color:var(--color-textMuted);font-size:.85rem;margin:16px 0 6px}form label:first-of-type{margin-top:0}form input,form select,.upload-card select,.reports-card select{display:block;width:100%;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;padding:10px 12px}.upload-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--color-bg);border:1px solid var(--color-line);border-radius:12px;padding:16px;margin-bottom:24px}.upload-card label{margin:0;color:var(--color-textMuted);font-size:.85rem}.upload-card select{width:auto}.back-link{display:inline-block;margin-bottom:16px;font-size:.9rem;color:var(--color-textMuted);text-decoration:none}.inline-form{display:flex;gap:8px;margin-top:16px}.inline-form input{flex:1}.inline-form button{background:var(--color-track);border:none;border-radius:8px;padding:0 16px;font:inherit;cursor:pointer;white-space:nowrap}main form button[type=submit]{margin-top:24px;background:var(--color-accent);color:var(--color-onHero);border:none;border-radius:8px;padding:10px 20px;font:inherit;font-weight:500;cursor:pointer}main form button[type=submit]:disabled{opacity:.6;cursor:default}.form-error{color:#a3372f;font-size:.9rem;margin:12px 0 0}main>p.muted{margin-top:16px}main.reports-card label[for=year],main.reports-card>label{display:flex;align-items:center;gap:8px;color:var(--color-textMuted);font-size:.9rem;margin-bottom:20px}input[type=number]{font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-line);border-radius:8px;padding:8px 12px;width:9ch}table{width:100%;border-collapse:collapse;margin:16px 0}th{text-align:left;color:var(--color-textMuted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.02em;padding:8px 0;border-bottom:1px solid var(--color-line)}td{padding:12px 0;border-bottom:1px solid var(--color-line)}td:last-child{text-align:right;font-variant-numeric:tabular-nums}table button{background:none;border:none;padding:0;font:inherit;color:var(--color-link);cursor:pointer;text-decoration:underline}.reports-card div>a{display:inline-block;margin:16px 16px 0 0;padding:8px 16px;border-radius:8px;background:var(--color-accent);color:var(--color-onHero);text-decoration:none;font-size:.9rem}.reports-card section{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-line)}.reports-card section ul{padding-left:20px}.reports-card section button{margin-top:8px;background:var(--color-track);border:none;border-radius:8px;padding:8px 16px;font:inherit;cursor:pointer}.overview section{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-line)}.overview section:first-of-type{margin-top:24px}.overview section>button{margin-top:8px;background:var(--color-track);border:none;border-radius:8px;padding:8px 16px;font:inherit;cursor:pointer}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--color-link);cursor:pointer;text-decoration:underline}.hero-card{background:var(--color-hero);color:var(--color-onHero);border-radius:16px;padding:24px;margin-top:0;border-top:none}.hero-card .hero-label{margin:0;opacity:.85;font-size:.9rem}.hero-card .hero-number{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:2.5rem;margin:4px 0}.hero-card .muted{color:var(--color-onHero);opacity:.85}.hero-card .link-button{color:var(--color-onHero);margin-top:8px}.goal-list{list-style:none;padding:0;margin:0}.goal-row{margin-bottom:20px}.goal-row-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.goal-bar{background:var(--color-track);border-radius:8px;height:8px;overflow:hidden}.goal-bar-fill{background:var(--color-accent);height:100%}.goal-row .inline-form{margin-top:8px}.family-board section{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-line)}.family-board section:first-of-type{margin-top:0;padding-top:0;border-top:none}.row-list{list-style:none;padding:0;margin:0 0 16px}.row-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-line)}.row-list li:last-child{border-bottom:none}.row-list .row-main{display:flex;flex-direction:column}.row-list button{background:var(--color-track);border:none;border-radius:8px;padding:6px 12px;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--color-textMuted);margin-bottom:12px}.checkbox-row input{width:auto}.receipt-image{display:block;max-width:100%;max-height:480px;object-fit:contain;border-radius:12px;border:1px solid var(--color-line);margin-bottom:24px}.pill{display:inline-block;background:var(--color-track);border-radius:999px;padding:2px 10px;font-size:.75rem;color:var(--color-textMuted)}
