.legal-links[data-v-78baca4e]{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.legal-links__item[data-v-78baca4e]{color:var(--color-text-muted);font-size:.8125rem;text-decoration:none}.legal-links__item[data-v-78baca4e]:hover{text-decoration:underline}.app-icon[data-v-31f8cad0]{vertical-align:middle;flex:none;display:inline-block}.default-layout[data-v-963104c5]{flex-direction:column;min-height:100vh;display:flex}.default-layout__header[data-v-963104c5]{z-index:1000;background:var(--color-background);border-bottom:1px solid var(--color-border);position:sticky;top:0}.default-layout__bar[data-v-963104c5]{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-6);width:100%;max-width:var(--content-max);margin-inline:auto;display:flex}.default-layout__brand[data-v-963104c5]{align-items:center;gap:var(--space-4);color:inherit;text-decoration:none;display:flex}.default-layout__logo[data-v-963104c5]{color:var(--color-primary)}.default-layout__brand-text[data-v-963104c5]{line-height:var(--leading-tight);flex-direction:column;display:flex}.default-layout__brand-name[data-v-963104c5]{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.default-layout__household[data-v-963104c5]{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:.1rem;font-weight:500}.default-layout__spacer[data-v-963104c5]{flex:1}.default-layout__nav-strip[data-v-963104c5]{align-items:center;gap:var(--space-1);padding:0 var(--space-6) var(--space-3);width:100%;max-width:var(--content-max);scrollbar-width:none;margin-inline:auto;display:flex;overflow-x:auto}.default-layout__nav-strip[data-v-963104c5]::-webkit-scrollbar{display:none}.default-layout__nav[data-v-963104c5],.default-layout__account[data-v-963104c5]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;transition:background var(--transition), color var(--transition);text-decoration:none;display:inline-flex}.default-layout__nav[data-v-963104c5]:hover,.default-layout__account[data-v-963104c5]:hover{background:var(--color-surface);color:var(--color-text)}.default-layout__nav.router-link-active[data-v-963104c5]:not([href=\/]),.default-layout__nav.router-link-exact-active[href=\/][data-v-963104c5]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.default-layout__user[data-v-963104c5]{font-size:var(--text-sm);color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.default-layout__lang[data-v-963104c5],.default-layout__theme[data-v-963104c5]{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer}.default-layout__lang-error[data-v-963104c5]{font-size:var(--text-sm);color:var(--color-danger)}.default-layout__logout[data-v-963104c5]{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:border-color var(--transition), background var(--transition);background:0 0}.default-layout__logout[data-v-963104c5]:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.default-layout__main[data-v-963104c5]{padding:var(--space-6);width:100%;max-width:var(--content-max);flex:1;margin-inline:auto}.default-layout__footer[data-v-963104c5]{border-top:1px solid var(--color-border);padding:var(--space-5) var(--space-6) var(--space-6);width:100%;max-width:var(--content-max);margin-inline:auto}@media (width<=56rem){.default-layout__bar[data-v-963104c5]{gap:var(--space-4);padding:var(--space-3) var(--space-5)}.default-layout__user[data-v-963104c5]{display:none}.default-layout__nav-strip[data-v-963104c5]{padding:0 var(--space-5) var(--space-3)}.default-layout__main[data-v-963104c5],.default-layout__footer[data-v-963104c5]{padding:var(--space-5)}}@media (width<=30rem){.default-layout__brand-name[data-v-963104c5]{font-size:var(--text-md)}}.auth-layout[data-v-dbc1d643]{justify-content:center;align-items:center;gap:var(--space-6);min-height:100vh;padding:var(--space-6) var(--space-5);background:radial-gradient(60rem 30rem at 50% -8rem, var(--color-primary-soft), transparent 70%), var(--color-background);flex-direction:column;display:flex}.auth-layout__hero[data-v-dbc1d643]{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.auth-layout__mascot[data-v-dbc1d643]{width:clamp(7rem,22vw,9.5rem);height:auto}.auth-layout__brand[data-v-dbc1d643]{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text);margin:0;font-weight:600}.auth-layout__card[data-v-dbc1d643]{width:min(24rem,100%);padding:var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-card)}:root{--color-primary:#4e7933;--color-primary-strong:#3b5c26;--color-primary-soft:#edf3e6;--color-on-primary:#fff;--color-danger:#b03738;--color-danger-strong:#8e2221;--color-danger-soft:#fbedec;--color-success:#4e7933;--color-success-soft:#edf3e6;--color-warn:#c25e22;--color-warn-soft:#fdf0e6;--color-accent:#3f6b75;--color-accent-soft:#e8f0f2;--color-text:#14190f;--color-text-muted:#5a6350;--color-muted:#7b8472;--color-background:#fff;--color-surface:#f7f9f4;--color-surface-raised:#fff;--color-border:#e3e7dc;--color-border-strong:#c9d0be;--color-scrim:#14190f73;--shadow-card:0 1px 2px #14190f0a, 0 2px 8px #14190f0a;--shadow-panel:0 10px 30px #14190f2e;--shadow-focus:0 0 0 3px #4e793347;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-family:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.55;--tracking-wide:.02em;--tracking-wider:.04em;--tracking-widest:.15em;--space-1:.25rem;--space-2:.375rem;--space-3:.5rem;--space-4:.75rem;--space-5:1rem;--space-6:1.5rem;--space-7:2rem;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-pill:999px;--header-h:4.25rem;--content-max:90rem;--transition:.14s ease}@media (width<=56rem){:root{--header-h:5.75rem}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#8cbf63;--color-primary-strong:#a5d17f;--color-primary-soft:#1e2718;--color-on-primary:#10160c;--color-danger:#e08b89;--color-danger-strong:#efa9a7;--color-danger-soft:#2c1a19;--color-success:#8cbf63;--color-success-soft:#1e2718;--color-warn:#e29a63;--color-warn-soft:#2b1f14;--color-accent:#83b3bf;--color-accent-soft:#16252a;--color-text:#e8ede4;--color-text-muted:#a8b29e;--color-muted:#828c78;--color-background:#11150f;--color-surface:#181d15;--color-surface-raised:#1f2519;--color-border:#2c3325;--color-border-strong:#414a37;--color-scrim:#0000009e;--shadow-card:0 1px 2px #0006, 0 2px 8px #0000004d;--shadow-panel:0 10px 30px #0000008c;--shadow-focus:0 0 0 3px #8cbf6359}}:root[data-theme=dark]{--color-primary:#8cbf63;--color-primary-strong:#a5d17f;--color-primary-soft:#1e2718;--color-on-primary:#10160c;--color-danger:#e08b89;--color-danger-strong:#efa9a7;--color-danger-soft:#2c1a19;--color-success:#8cbf63;--color-success-soft:#1e2718;--color-warn:#e29a63;--color-warn-soft:#2b1f14;--color-accent:#83b3bf;--color-accent-soft:#16252a;--color-text:#e8ede4;--color-text-muted:#a8b29e;--color-muted:#828c78;--color-background:#11150f;--color-surface:#181d15;--color-surface-raised:#1f2519;--color-border:#2c3325;--color-border-strong:#414a37;--color-scrim:#0000009e;--shadow-card:0 1px 2px #0006, 0 2px 8px #0000004d;--shadow-panel:0 10px 30px #0000008c;--shadow-focus:0 0 0 3px #8cbf6359}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fraunces-latin-DihXLNYH.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fraunces-latin-ext-CJcjJNj7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--text-md);color:var(--color-text);line-height:var(--leading-normal);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight);text-wrap:balance}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3,h4{font-size:var(--text-md)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){:root{--transition:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.form-field-error,.form-global-error{color:var(--color-danger);font-size:var(--text-base)}.form-title{margin:0 0 var(--space-6);font-size:var(--text-lg)}.form-panel{max-width:61rem}.form-field{margin-bottom:var(--space-5);display:block}.form-field>span{margin-bottom:var(--space-1);font-size:var(--text-base);font-weight:500;display:block}.form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-base);color:var(--color-text);background:var(--color-surface-raised);transition:border-color var(--transition), box-shadow var(--transition)}.form-field input:not([type=checkbox]):not([type=radio]):focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.form-field input[type=checkbox],.form-field input[type=radio]{accent-color:var(--color-primary)}.form-hint{margin-top:var(--space-1);font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--color-text-muted);display:block}.form-success{font-size:var(--text-base);color:var(--color-success)}.form-alt{margin-top:var(--space-6);font-size:var(--text-base)}.form-row{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.form-actions{justify-content:flex-end;gap:var(--space-4);display:flex}.form-cancel{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:border-color var(--transition), background var(--transition);background:0 0}.form-cancel:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.form-submit{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-3) var(--space-5);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition);border:none;font-weight:600}.form-submit:hover:not(:disabled){background:var(--color-primary-strong)}.form-submit:disabled{opacity:.55;cursor:default}.form-submit--full{width:100%;padding:var(--space-4);font-size:var(--text-md)}.form-submit--danger{background:var(--color-danger)}.form-submit--danger:hover:not(:disabled){background:var(--color-danger-strong)}.ingredient__badge,.recipe__badge,.planning__badge,.planning-form__needs-badge,.picker__badge,.groups__badge,.admin__badge,.eater__mine{vertical-align:middle;margin-left:var(--space-3);padding:.1rem var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;background:var(--color-warn-soft);color:var(--color-warn);border:1px solid #0000;font-weight:600;line-height:1.5;display:inline-block}.ingredient__badge--commune,.recipe__badge--commune,.admin__badge--commune,.picker__badge{background:var(--color-text);color:var(--color-background)}.ingredient__badge--season,.recipe__badge--season,.planning__badge--season,.planning-form__needs-badge--full{background:var(--color-success-soft);color:var(--color-success)}.ingredient__badge--shared,.recipe__badge--shared{background:var(--color-accent-soft);color:var(--color-accent)}.ingredient__badge--state,.ingredient__badge--season-absent,.planning__badge--off,.groups__badge,.admin__badge{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-muted)}.planning-form__needs-badge--partial{background:var(--color-warn-soft);color:var(--color-warn)}.eater__mine{background:var(--color-primary-soft);color:var(--color-primary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.recipes__empty,.grocery__empty,.groups__empty,.picker__empty,.recipes__detail-empty,.planning__meal-empty,.recipe-nutrition__none{color:var(--color-muted);font-size:var(--text-base)}.ingredients__table-wrap,.recipes__table-wrap,.admin-unit-table-wrap{overflow-x:auto}.ingredients__table,.recipes__table,.admin-unit-table,.admin-category-table,.admin-settings__table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.ingredients__table th,.ingredients__table td,.recipes__table th,.recipes__table td,.admin-unit-table th,.admin-unit-table td,.admin-category-table th,.admin-category-table td,.admin-settings__table th,.admin-settings__table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.ingredients__table th,.recipes__table th,.admin-unit-table th,.admin-category-table th,.admin-settings__table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-muted);background:var(--color-surface);font-weight:600}.ingredients__table tbody tr:hover,.recipes__table tbody tr:hover,.admin-unit-table tbody tr:hover,.admin-category-table tbody tr:hover,.admin-settings__table tbody tr:hover{background:var(--color-surface)}.ingredients__num,.recipes__num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ingredients__action,.recipes__action,.admin-unit-table__action,.admin-category-table__action,.admin-settings__action{text-align:right;white-space:nowrap}.planning__day-table,.planning-form__needs-table,.recipe-nutrition__table{border-collapse:collapse;width:100%}.planning__day-table th,.planning__day-table td,.planning-form__needs-table th,.planning-form__needs-table td,.recipe-nutrition__table th,.recipe-nutrition__table td{padding:.1rem var(--space-1);font-weight:inherit}.planning__day-table--label,.planning-form__needs-label,.recipe-nutrition__label{text-align:left;white-space:nowrap;font-weight:600}.planning__day-table--num,.planning-form__needs-num,.recipe-nutrition__num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ingredients__new,.recipes__new,.groups__new,.eaters__new,.eaters__my-profile-btn,.eaters__plan-offer,.admin__new,.grocery__btn{margin-bottom:var(--space-5);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-3) var(--space-5);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition);border:none;font-weight:600}.ingredients__new:hover,.recipes__new:hover,.groups__new:hover,.eaters__new:hover,.eaters__my-profile-btn:hover,.eaters__plan-offer:hover,.admin__new:hover,.grocery__btn:hover{background:var(--color-primary-strong)}.ingredient__edit,.ingredient__archive,.ingredient__publish,.ingredient__unpublish,.ingredient__open,.recipe__edit,.recipe__open,.recipe__archive,.recipe__publish,.recipe__unpublish,.eater__edit,.eater__archive,.groups__archive,.groups-detail__code-btn,.groups-detail__remove,.admin__edit,.admin__archive,.admin__save,.planning__nav-btn,.planning-form__dish-view,.auth-form__mode-btn{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:border-color var(--transition), background var(--transition), color var(--transition);background:0 0;display:inline-flex}.ingredient__edit:hover,.ingredient__publish:hover,.ingredient__unpublish:hover,.ingredient__open:hover,.recipe__edit:hover,.recipe__open:hover,.recipe__publish:hover,.recipe__unpublish:hover,.eater__edit:hover,.groups-detail__code-btn:hover,.admin__edit:hover,.admin__save:hover,.planning__nav-btn:hover,.planning-form__dish-view:hover,.auth-form__mode-btn:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.ingredient__archive,.recipe__archive,.eater__archive,.groups__archive,.groups-detail__remove,.admin__archive{color:var(--color-danger)}.ingredient__archive:hover,.recipe__archive:hover,.eater__archive:hover,.groups__archive:hover,.groups-detail__remove:hover,.admin__archive:hover{border-color:var(--color-danger);background:var(--color-danger-soft)}.ingredients__pagination,.recipes__pagination,.picker__pagination{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-5);font-size:var(--text-base);display:flex}.ingredients__page-btn,.recipes__page-btn,.picker__page-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:border-color var(--transition), background var(--transition);background:0 0}.ingredients__page-btn:hover:not(:disabled),.recipes__page-btn:hover:not(:disabled),.picker__page-btn:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface)}.ingredients__page-btn:disabled,.recipes__page-btn:disabled,.picker__page-btn:disabled{opacity:.5;cursor:default}.ingredients__page-info,.recipes__page-info,.picker__page-info{color:var(--color-muted);font-variant-numeric:tabular-nums}.ingredients__overlay,.recipes__overlay,.picker{background:var(--color-scrim);padding:calc(var(--header-h) + var(--space-5)) var(--space-5) var(--space-7);z-index:50;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.ingredients__detail,.recipes__detail,.picker__panel{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;padding:var(--space-6);box-shadow:var(--shadow-panel)}.ingredients__detail,.recipes__detail{max-width:640px}.picker__panel{max-width:680px}.ingredients__detail-close,.recipes__detail-close,.picker__close{border-radius:var(--radius-sm);padding:var(--space-2);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;line-height:1;display:inline-flex}.ingredients__detail-close:hover,.recipes__detail-close:hover,.picker__close:hover{background:var(--color-surface);color:var(--color-text)}.recipes__empty:before,.grocery__empty:before,.groups__empty:before,.picker__empty:before{content:"";width:2.5rem;height:2.5rem;margin-bottom:var(--space-3);opacity:.4;background-color:currentColor;display:block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 11.6a2.75 2.75 0 0 1-.5-5.46A3 3 0 0 1 9 3.6a3.2 3.2 0 0 1 6 0 3 3 0 0 1 2.9 2.54 2.75 2.75 0 0 1-.5 5.46Z'/%3E%3Cpath d='M12 11.6V21'/%3E%3Cpath d='M12 15.6c-1.7 0-3.1-.9-3.8-2.1'/%3E%3Cpath d='M12 18.4c1.7 0 3.1-.9 3.8-2.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 11.6a2.75 2.75 0 0 1-.5-5.46A3 3 0 0 1 9 3.6a3.2 3.2 0 0 1 6 0 3 3 0 0 1 2.9 2.54 2.75 2.75 0 0 1-.5 5.46Z'/%3E%3Cpath d='M12 11.6V21'/%3E%3Cpath d='M12 15.6c-1.7 0-3.1-.9-3.8-2.1'/%3E%3Cpath d='M12 18.4c1.7 0 3.1-.9 3.8-2.1'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
