:root{--bg:#dde8e4;--card:#fbf8f3;--ink:#3a423f;--sub:#5f6d69;--line:#3a423f1a;--line-strong:#3a423f38;--chip:#eaf1ee;--acc:#a0714a;--acc-soft:#f2e8dc;--nav:#e8f0ec;--p1:#3f827a;--p2:#9c6e79;--ok:#6e9273;--color-primary:var(--p1);--color-primary-hover:var(--p1);--color-primary-dark:var(--p1);--color-primary-light:var(--chip);--color-bg:var(--bg);--color-surface:var(--card);--color-text:var(--ink);--color-text-secondary:var(--sub);--color-text-muted:var(--sub);--color-success:var(--ok);--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-light:var(--acc-soft);--color-warning:#c09a62;--font-family:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Quicksand", "Nunito", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--line-height-tight:1.25;--line-height-normal:1.5;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--radius-card:20px;--radius-btn:12px;--radius-dialog:24px;--shadow-card:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-overlay:0 4px 12px #00000026;--transition-fast:.15s ease;--transition-normal:.2s ease;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--toast-duration:4s;--radius-xl:16px}html[data-theme=dark]{--bg:#182220;--card:#22302d;--ink:#e8efec;--sub:#93a29e;--line:#ffffff1a;--line-strong:#ffffff42;--chip:#2c3b38;--acc:#c79a6e;--acc-soft:#3a2f23;--nav:#1e2a28;--p1:#5fa79e;--p2:#c1919b;--ok:#8ab08f;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-warning:#c09a62;--shadow-card:0 1px 3px #00000040, 0 1px 2px #0003;--shadow-overlay:0 4px 12px #0006}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}*{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.base-avatar[data-v-2976179a]{border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.base-avatar--sm[data-v-2976179a]{width:22px;height:22px;font-size:10px}.base-avatar--md[data-v-2976179a]{width:32px;height:32px;font-size:13px}.bottom-nav[data-v-a2ffd9e8]{z-index:100;background:var(--nav);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.bottom-nav[data-v-a2ffd9e8]{display:none}}.bottom-nav__tab[data-v-a2ffd9e8]{padding:var(--space-2) 0;min-height:56px;color:var(--sub);font-size:var(--text-xs);transition:color var(--transition-fast);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-family:inherit;text-decoration:none;display:flex}.bottom-nav__tab--active[data-v-a2ffd9e8]{color:var(--acc)}.bottom-nav__icon[data-v-a2ffd9e8]{width:22px;height:22px;line-height:1}.bottom-nav__icon-wrap[data-v-a2ffd9e8]{display:inline-flex;position:relative}.bottom-nav__sync-dot[data-v-a2ffd9e8]{border-radius:var(--radius-full);width:6px;height:6px;position:absolute;top:-2px;right:-4px}.bottom-nav__label[data-v-a2ffd9e8]{font-weight:var(--font-weight-normal)}.bottom-nav__tab--active .bottom-nav__label[data-v-a2ffd9e8]{font-weight:var(--font-weight-medium)}.sync-dot--connected[data-v-a2ffd9e8]{background-color:var(--ok)}.sync-dot--reconnecting[data-v-a2ffd9e8]{background-color:var(--color-warning);animation:1.5s ease-in-out infinite sync-pulse-a2ffd9e8}.sync-dot--offline[data-v-a2ffd9e8]{background-color:var(--sub)}@keyframes sync-pulse-a2ffd9e8{0%,to{opacity:1}50%{opacity:.3}}.more-sheet-backdrop[data-v-82c3c480]{z-index:200;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.more-sheet[data-v-82c3c480]{background:var(--card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;padding:var(--space-3) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0));box-shadow:var(--shadow-overlay)}.more-sheet__handle[data-v-82c3c480]{border-radius:var(--radius-full);background:var(--line-strong);width:36px;height:4px;margin:0 auto var(--space-3)}.more-sheet__title[data-v-82c3c480]{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);margin:0 0 var(--space-3);color:var(--ink)}.more-sheet__list[data-v-82c3c480]{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.more-sheet__item[data-v-82c3c480]{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);color:var(--ink);display:flex}.more-sheet__item[data-v-82c3c480]:hover:not(.more-sheet__item--disabled){background:var(--chip)}.more-sheet__item--disabled[data-v-82c3c480]{opacity:.5;pointer-events:none;cursor:default}.more-sheet__icon-tile[data-v-82c3c480]{background:var(--chip);width:44px;height:44px;color:var(--ink);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.more-sheet__icon-tile--accent[data-v-82c3c480]{background:var(--acc-soft);color:var(--acc)}.more-sheet__text[data-v-82c3c480]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.more-sheet__label[data-v-82c3c480]{font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.more-sheet__sub[data-v-82c3c480]{font-size:var(--text-xs);color:var(--sub)}.more-sheet__chevron[data-v-82c3c480]{color:var(--sub);flex-shrink:0}.backdrop-enter-active[data-v-82c3c480],.backdrop-leave-active[data-v-82c3c480]{transition:opacity .2s}.backdrop-enter-from[data-v-82c3c480],.backdrop-leave-to[data-v-82c3c480]{opacity:0}.sheet-enter-active[data-v-82c3c480]{transition:transform .25s ease-out}.sheet-leave-active[data-v-82c3c480]{transition:transform .2s ease-in}.sheet-enter-from[data-v-82c3c480],.sheet-leave-to[data-v-82c3c480]{transform:translateY(100%)}.offline-banner[data-v-1a0500ed]{z-index:9999;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--color-warning);color:var(--color-neutral-900);text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--text-sm);line-height:var(--line-height-normal);box-shadow:var(--shadow-overlay);display:flex;position:fixed;top:0;left:0;right:0}.top-bar[data-v-1a0500ed]{background:var(--color-surface);border-bottom:1px solid var(--color-neutral-200);z-index:100;display:none;position:sticky;top:0}@media (width>=768px){.top-bar[data-v-1a0500ed]{display:block}}.top-bar__content[data-v-1a0500ed]{max-width:640px;padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.top-bar__brand[data-v-1a0500ed]{align-items:center;gap:var(--space-1);font-weight:var(--font-weight-bold);font-size:var(--text-lg);color:var(--color-primary);display:inline-flex}.top-bar__nav[data-v-1a0500ed]{gap:var(--space-1);display:flex}.top-bar__link[data-v-1a0500ed]{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);text-decoration:none;display:inline-flex}.top-bar__link[data-v-1a0500ed]:hover{background:var(--color-neutral-100);color:var(--color-text)}.top-bar__link--active[data-v-1a0500ed]{background:var(--acc-soft);color:var(--acc)}.top-bar__right[data-v-1a0500ed]{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.top-bar__logout[data-v-1a0500ed]{padding:var(--space-1) var(--space-3);border:1px solid var(--color-neutral-300);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);transition:background var(--transition-fast);background:0 0}.top-bar__logout[data-v-1a0500ed]:hover{background:var(--color-neutral-100)}.household-select[data-v-1a0500ed]{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-neutral-300);background:var(--color-surface);font-size:var(--text-sm);cursor:pointer}.household-select[data-v-1a0500ed]:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.app-content[data-v-1a0500ed]{max-width:640px;padding:var(--space-4);padding-bottom:calc(var(--space-4) + 64px);margin:0 auto}@media (width>=768px){.app-content[data-v-1a0500ed]{padding-bottom:var(--space-4)}}.sync-dot[data-v-1a0500ed]{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.sync-dot--connected[data-v-1a0500ed]{background-color:var(--color-success)}.sync-dot--reconnecting[data-v-1a0500ed]{background-color:var(--color-warning);animation:1.5s ease-in-out infinite sync-pulse-1a0500ed}.sync-dot--offline[data-v-1a0500ed]{background-color:var(--color-neutral-400)}@keyframes sync-pulse-1a0500ed{0%,to{opacity:1}50%{opacity:.3}}.toast-container[data-v-1a0500ed]{bottom:calc(64px + env(safe-area-inset-bottom,0) + var(--space-3));z-index:10000;gap:var(--space-2);pointer-events:none;flex-direction:column;width:90%;max-width:400px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width>=768px){.toast-container[data-v-1a0500ed]{bottom:var(--space-6)}}.toast[data-v-1a0500ed]{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);box-shadow:var(--shadow-overlay);pointer-events:auto;display:flex}.toast__text[data-v-1a0500ed]{flex:1}.toast__action[data-v-1a0500ed]{color:inherit;font-weight:var(--font-weight-bold);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;opacity:.9;pointer-events:auto;background:0 0;border:none;text-decoration:underline}.toast__action[data-v-1a0500ed]:hover{opacity:1}.toast--error[data-v-1a0500ed]{background-color:var(--color-danger);color:var(--color-surface)}.toast--success[data-v-1a0500ed]{background-color:var(--color-success);color:var(--color-surface)}.toast--info[data-v-1a0500ed]{background-color:var(--color-primary);color:var(--color-surface)}.toast-enter-active[data-v-1a0500ed]{transition:all .3s ease-out}.toast-leave-active[data-v-1a0500ed]{transition:all .25s ease-in}.toast-enter-from[data-v-1a0500ed]{opacity:0;transform:translateY(16px)}.toast-leave-to[data-v-1a0500ed]{opacity:0;transform:translateY(-8px)}.toast-move[data-v-1a0500ed]{transition:transform .25s}
