@layer base{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbfaf8;--fg:#1c1b19;--muted:#6b6660;--card:#fff;--border:#e4e0d9;--accent:#2f6f4e;--error:#a33a2a;--warn-yellow:#b8860b;--warn-orange:#b5541c}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161513;--fg:#ece9e4;--muted:#9b958c;--card:#201f1c;--border:#35332e;--accent:#6fbf90;--error:#e07a63;--warn-yellow:#e0b84a;--warn-orange:#e0923f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Noto Sans TC,sans-serif;line-height:1.6}main{max-width:42rem;margin:0 auto;padding:3rem 1.25rem}h1{letter-spacing:-.01em;margin:0;font-size:1.75rem}.tagline{color:var(--muted);margin:.25rem 0 2rem}.card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem 1.5rem}.card+.card{margin-top:1.25rem}.card h2{color:var(--accent);margin:0 0 1rem;font-size:1rem}.card.error h2{color:var(--error)}dl{grid-template-columns:minmax(6rem,auto) 1fr;gap:.5rem 1.5rem;margin:0;display:grid}dt{color:var(--muted);font-size:.875rem}dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}dd.version{color:var(--muted);font-size:.8125rem}pre{background:var(--bg);border-radius:.5rem;padding:.75rem;font-size:.8125rem;overflow-x:auto}@media (width<=30rem){main{padding:1.5rem 1rem}dl{grid-template-columns:1fr;gap:.125rem}dd{margin-bottom:.625rem}}form{gap:.35rem;margin:0;display:grid}label{color:var(--muted);margin-top:.5rem;font-size:.875rem}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:.5rem;width:100%;padding:.55rem .7rem}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;background:var(--accent);color:var(--card);cursor:pointer;border:1px solid transparent;border-radius:.5rem;margin-top:1rem;padding:.6rem 1rem}button:disabled{opacity:.6;cursor:progress}button.secondary{border-color:var(--border);color:var(--fg);background:0 0}.hint{color:var(--muted);margin:.15rem 0 0;font-size:.8125rem}.hint.error{color:var(--error)}.alt{color:var(--muted);margin:1.25rem 0 0;font-size:.875rem}.form-error{background:color-mix(in srgb, var(--error) 12%, transparent);color:var(--error);border-radius:.5rem;margin:0 0 .5rem;padding:.6rem .75rem;font-size:.875rem}a{color:var(--accent)}.divider{color:var(--muted);align-items:center;gap:.75rem;margin:1.25rem 0 1rem;font-size:.8125rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.button-link{border:1px solid var(--border);color:var(--fg);text-align:center;border-radius:.5rem;padding:.6rem 1rem;text-decoration:none;display:block}.button-link:hover{border-color:var(--accent)}.google-button{color:#1f1f1f;background:#fff;border:1px solid #747775;border-radius:.25rem;justify-content:center;align-items:center;gap:.75rem;height:2.5rem;padding:0 .75rem;font-family:Google Sans Text,Roboto,Arial,sans-serif;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.google-button:hover{background:#f8f9fa}.google-button svg{flex:none;width:18px;height:18px}@media (prefers-color-scheme:dark){.google-button{color:#e3e3e3;background:#131314;border-color:#8e918f}.google-button:hover{background:#1e1f20}}ul.plain{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}ul.plain li{border-bottom:1px solid var(--border);padding:.5rem 0}ul.plain li:last-child{border-bottom:none}nav.alt{color:var(--muted);margin-top:1.5rem;font-size:.875rem}.segmented-tabs{background:var(--border);border-radius:.625rem;gap:.25rem;max-width:100%;margin-bottom:1.25rem;padding:.25rem;display:inline-flex;overflow-x:auto}.segmented-tabs button{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:.5rem;margin-top:0;padding:.5rem 1rem;font-size:.875rem}.segmented-tabs button.active{background:var(--card);color:var(--fg);font-weight:500}button.linklike{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}button.disclosure-toggle{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;margin-top:0;padding:5px 0;font-weight:500;display:inline-flex}button.disclosure-toggle .chevron{font-size:.7em;transition:transform .15s;display:inline-block}button.disclosure-toggle.open .chevron{transform:rotate(90deg)}.row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.row-actions{flex-wrap:wrap;align-items:baseline;gap:.75rem;font-size:.875rem;display:flex}.amount{font-variant-numeric:tabular-nums;font-weight:600}button.danger{color:var(--error)}button.danger:not(.linklike){background:var(--error);border-color:var(--error);color:#fff}select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:.5rem;width:100%;padding:.55rem .7rem}.form-actions{flex-flow:row-reverse wrap;justify-content:flex-end;gap:.75rem;display:flex}.form-actions button.secondary{border-color:color-mix(in srgb, var(--border) 55%, var(--bg));color:var(--muted)}dl.totals{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}dl.totals dd{font-weight:600}.living-allowance-hero{text-align:center;padding:.5rem 0 1rem}.hero-value{letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;margin:0;font-size:3rem;font-weight:700}.hero-value.alert{color:var(--error)}.hero-label{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.hero-label.alert{color:var(--error);font-weight:700}.hero-secondary{color:var(--muted);margin:.5rem 0 0;font-size:.9375rem}.breakdown-details{margin-top:1rem}.breakdown-details summary{cursor:pointer;color:var(--muted);font-size:.875rem}.breakdown-details dl.totals{margin-top:1rem;padding-top:1rem}@media (width<=30rem){.row{gap:.35rem}}.period-switch{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:1rem;font-size:.875rem;display:flex}.budget-line-info{gap:.35rem;width:100%;display:grid}.bar-track{background:var(--border);border-radius:999px;height:.5rem;overflow:hidden}.bar-track.depleted{background:color-mix(in srgb, var(--error) 25%, var(--border))}.bar-fill{background:var(--accent);border-radius:999px;height:100%}.bar-fill.warn-yellow{background:var(--warn-yellow)}.bar-fill.warn-orange{background:var(--warn-orange)}.bar-fill.error{background:var(--error)}.living-allowance-hero.secondary{text-align:center;padding:0}.spending-bar{max-width:22rem;margin:0 auto}.spending-bar-caption{text-align:center;margin:.35rem 0 1rem}button.icon-button{width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:inline-flex}button.icon-button:hover{background:var(--border);color:var(--error)}.menu-anchor{display:inline-flex;position:relative}.menu-overlay{z-index:10;position:fixed;inset:0}.menu{background:var(--card);border:1px solid var(--border);z-index:11;border-radius:.5rem;min-width:11rem;margin-top:.25rem;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.18)}.menu button{width:100%;color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:.6rem;margin:0;padding:.6rem .85rem;font-size:.9rem;display:flex}.menu button:hover:not(:disabled){background:var(--border)}.menu button.danger{color:var(--error);background:0 0}.menu button:disabled{opacity:.5;cursor:default}.menu .menu-hint{color:var(--muted);margin:0;padding:0 .85rem .6rem;font-size:.75rem}.modal-overlay{z-index:10;background:rgba(0,0,0,.45);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);border-radius:.75rem;width:100%;max-width:24rem;padding:1.25rem}.modal h3{margin-top:0}.modal.modal-form{max-width:34rem;max-height:calc(100vh - 2rem);position:relative;overflow-y:auto}.modal-form .modal-close{position:absolute;top:.5rem;right:.5rem}}