@layer base{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfaf8;--fg:#1c1b19;--muted:#6b6660;--card:#fff;--border:#e4e0d9;--accent:#2f6f4e;--accent-fill:var(--accent);--accent-fill-contrast:var(--card);--error:#a33a2a;--warn-yellow:#b8860b;--warn-orange:#b5541c}:root[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-mode=dark]:not([data-theme=nord]){--bg:#161513;--fg:#ece9e4;--muted:#9b958c;--card:#201f1c;--border:#35332e;--accent:#6fbf90;--accent-fill:var(--accent);--accent-fill-contrast:var(--card);--error:#e07a63;--warn-yellow:#e0b84a;--warn-orange:#e0923f}:root[data-theme=nord]{--bg:#eceff4;--fg:#2e3440;--muted:#4c566a;--card:#fff;--border:#d8dee9;--accent:#3f5f8a;--accent-fill:#4a6fa5;--accent-fill-contrast:#fcfdff;--error:#a3323f;--warn-yellow:#c9a227;--warn-orange:#c1653a}:root[data-mode=dark][data-theme=nord]{--bg:#2e3440;--fg:#eceff4;--muted:#9aa5b1;--card:#3b4252;--border:#434c5e;--accent:#88a8cf;--accent-fill:#4a6fa5;--accent-fill-contrast:#fcfdff;--error:#d38a92;--warn-yellow:#ebcb8b;--warn-orange:#d08770}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);touch-action:manipulation;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[type=checkbox]{vertical-align:middle;width:auto;margin-right:.4rem;padding:0}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;background:var(--accent-fill);color:var(--accent-fill-contrast);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)}@media (width<=420px){.member-email{display:none}}@media (width>=421px){.member-email-bubble{display:none}}.email-reveal{cursor:pointer;position:relative}.email-reveal-bubble{z-index:10;border:1px solid var(--border);background:var(--card);color:var(--fg);white-space:nowrap;border-radius:.4rem;margin-top:.3rem;padding:.3rem .55rem;font-size:.8125rem;position:absolute;top:100%;left:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}.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}:root[data-mode=dark] .google-button{color:#e3e3e3;background:#131314;border-color:#8e918f}:root[data-mode=dark] .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}.language-switch{color:var(--muted);justify-content:center;gap:1rem;margin:2rem 0 1rem;font-size:.875rem;display:flex}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;margin-left:auto;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}.modal .form-actions{justify-content:center}.form-actions button.secondary{border-color:var(--muted);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.warn-yellow{color:var(--warn-yellow)}.hero-value.warn-orange{color:var(--warn-orange)}.hero-value.error{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}.past-days{margin-top:1rem}.past-day{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;padding:.25rem 0;display:flex}.past-day-date{color:var(--muted)}.past-day-remaining.alert{color:var(--error)}.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{grid-template-columns:1fr auto;grid-template-areas:"title menu""amount amount";gap:.35rem .75rem;display:grid}.row>:first-child{grid-area:title}.row>:nth-child(2){grid-area:menu;place-self:start end}.row>.row-actions{display:contents}.row-actions>.icon-button,.row-actions>.menu-anchor{grid-area:menu;place-self:start end}.row-actions>.amount,.row>.amount{grid-area:amount;place-self:start}}.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-fill);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{font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;max-width:22rem;margin:.35rem auto 1rem;display:flex}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{margin-left:auto;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.menu-up{margin-top:0;margin-bottom:.25rem;top:auto;bottom:100%}.menu button,.menu a{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 a{text-decoration:none}.menu button:hover:not(:disabled),.menu a:hover{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-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.modal-header h3,.modal-header .modal-close{margin:0}.modal.modal-form{max-width:34rem;max-height:calc(100vh - 2rem);overflow-y:auto}.theme-picker{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.theme-heading{margin:1rem 0 0;font-size:.875rem;font-weight:600}.theme-option{border:1px solid var(--border);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;margin:0;padding:.5rem .85rem;font-size:.875rem;display:flex}.theme-option.selected{border-color:var(--accent)}.theme-swatch{border:1px solid var(--border);border-radius:999px;width:1rem;height:1rem;display:inline-block}.theme-swatch-green{background:#2f6f4e}.theme-swatch-nord{background:#4a6fa5}.mode-picker{background:var(--border);border-radius:.625rem;gap:.25rem;max-width:100%;margin-top:.5rem;padding:.25rem;display:inline-flex}.mode-picker button{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.4rem;margin:0;padding:.45rem .9rem;font-size:.875rem;display:inline-flex}.mode-picker button[aria-checked=true]{background:var(--card);color:var(--fg);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.15)}.loading-bar{z-index:50;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.loading-bar:before{content:"";background:var(--accent-fill);width:40%;height:100%;animation:1s ease-in-out infinite loading-bar-slide;display:block}@keyframes loading-bar-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.loading-bar:before{opacity:.6;width:100%;animation:none}}.chip-row{gap:.5rem;margin:.75rem 0;padding-bottom:.25rem;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);color:var(--fg);white-space:nowrap;background:0 0;border-radius:999px;flex:none;margin-top:0;padding:.4rem .9rem;font-size:.875rem}.chip.active{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-fill-contrast)}.chip-row-narrow{display:none}@media (width<=30rem){.chip-row-wide{display:none}.chip-row-narrow{display:flex}}.chip-trigger{text-align:left;flex:auto;justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-width:0;margin:0;padding:.55rem .7rem;display:flex}.chip-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-overlay{z-index:60;background:rgba(0,0,0,.45);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border:1px solid var(--border);width:100%;max-width:34rem;max-height:80dvh;padding:1.25rem 1.25rem 1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));border-radius:.75rem .75rem 0 0;flex-direction:column;display:flex}@media (width>=30.0625rem){.sheet-overlay{align-items:center;padding:1rem}.sheet{border-radius:.75rem;padding-bottom:1rem}}.sheet>.modal-header,.sheet>input{flex:none}ul.plain.sheet-list{gap:0;min-height:0;margin:.75rem 0 0;overflow-y:auto}ul.plain.sheet-list li{padding:0}.sheet-option{width:100%;color:var(--fg);text-align:left;background:0 0;border:none;border-radius:.5rem;margin:0;padding:.85rem .5rem;display:block}.sheet-option.active{background:var(--border);font-weight:500}.items-editor{margin-top:.5rem}ul.plain.items-rows{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;gap:0;margin:.35rem 0 0;overflow:hidden}ul.plain.items-rows li.item-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 6.5rem 2.5rem;align-items:stretch;padding:0;display:grid}ul.plain.items-rows li.item-row:last-child{border-bottom:none}.item-row input{background:0 0;border:none;border-radius:0;min-width:0}.item-row input.item-amount{border-left:1px solid var(--border);text-align:right}.item-row input:focus-visible{outline-offset:-2px}.item-row .icon-button{place-self:center;margin:0}button.linklike.items-link{font-size:inherit}ul.plain.items-list li.item-line{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem .25rem;display:flex}.item-line-name{overflow-wrap:anywhere;min-width:0}ul.plain.items-list li.item-line .amount{flex:none;font-weight:400}ul.plain.items-list li.items-total,ul.plain.items-list li.items-total .amount{border-bottom:none;font-weight:600}.card-title{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.card-title h2{margin:0}.badge{background:var(--border);color:var(--muted);border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:500}.badge.on{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}ul.factor-list{gap:0;margin-top:1rem}ul.factor-list li{padding:.75rem 0}.factor-item{border-left:2px solid var(--border);margin-top:.6rem;padding:.5rem 0 0 .9rem}img.qr{background:#fff;border-radius:.5rem;margin:.75rem auto;padding:.5rem;display:block}details.secret-fallback{text-align:center;margin-bottom:1rem;font-size:.875rem}details.secret-fallback summary{color:var(--accent);cursor:pointer}code.secret{letter-spacing:.05em;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}input.otp{letter-spacing:.3em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.35rem}input.otp.recovery{letter-spacing:.12em;font-size:1.1rem}input.otp::placeholder{color:var(--border)}button.block{width:100%}ol.recovery-codes{border:1px dashed var(--muted);background:var(--bg);text-align:center;border-radius:.5rem;grid-template-columns:repeat(2,max-content);justify-content:center;gap:.45rem 3rem;margin:1rem 0 0;padding:1rem 1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;list-style:none;display:grid}.recovery-tools{justify-content:center;gap:.75rem;display:flex}.recovery-tools button{margin-top:.75rem;font-size:.875rem}:root{--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a}:root[data-mode=dark]{--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70}.usage-legend{flex-wrap:wrap;gap:.5rem 1.25rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.usage-legend li{align-items:center;gap:.4rem;display:flex}.usage-legend-label{color:var(--muted);font-size:.875rem}.usage-swatch{border-top:3px solid;flex:none;width:1.25rem;display:inline-block}.usage-swatch-dashed{border-top-style:dashed}.usage-swatch-dotted{border-top-style:dotted}.usage-focus{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;min-height:1.5rem;margin-top:.5rem;font-size:.875rem;display:flex}.usage-focus-date{font-variant-numeric:tabular-nums;font-weight:600}.usage-focus-item{color:var(--muted);align-items:center;gap:.35rem;display:inline-flex}.usage-focus-item .amount{color:var(--fg)}.usage-chart{margin-top:.5rem}.usage-axis-max{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;display:block}.usage-plot{height:10rem;position:relative}.usage-plot svg{width:100%;height:100%;display:block;overflow:visible}.usage-grid,.usage-baseline,.usage-crosshair,.usage-line{vector-effect:non-scaling-stroke}.usage-grid{stroke:var(--border);stroke-width:1px;stroke-dasharray:4 4}.usage-baseline{stroke:var(--border);stroke-width:1px}.usage-crosshair{stroke:var(--muted);stroke-width:1px}.usage-line{fill:none;stroke-width:2px;stroke-linejoin:round}.usage-line-solid{stroke-linecap:round}.usage-line-dashed{stroke-dasharray:8 5}.usage-line-dotted{stroke-width:2.5px;stroke-dasharray:2 4}.usage-hit-row{display:flex;position:absolute;inset:0}.usage-hit{cursor:crosshair;flex:1}.usage-axis-dates{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:.25rem;font-size:.75rem;display:flex}.usage-table{border-collapse:collapse;width:100%;margin-top:.75rem;font-size:.875rem}.usage-table th{color:var(--muted);text-align:left;font-weight:500}.usage-table th,.usage-table td{border-bottom:1px solid var(--border);padding:.35rem .25rem}.usage-table .num{text-align:right}}