.planner{gap:var(--space-5);flex-direction:column;display:flex}.planner__date-field{gap:var(--space-1_5)}.planner__date-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.planner__date-row{align-items:center;gap:var(--space-2);display:flex}.planner__date-row .input{flex:auto;min-width:0}.planner__date-nav{width:var(--size-touch);height:var(--size-touch);border-radius:var(--radius-input);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.planner__date-nav:hover{background:var(--color-muted-bg)}.planner__swipe{touch-action:pan-y;overflow-x:clip}.planner__slide{gap:var(--space-5);flex-direction:column;display:flex}.planner__slide.is-animating{transition:transform var(--duration-base) var(--ease-out)}.slot-badge{align-items:center;gap:var(--space-1_5);padding-inline:var(--space-3);padding-block:var(--space-2_5);border-radius:var(--radius-input);background:var(--color-muted-bg);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-shrink:0;display:flex}.dish-list{gap:var(--space-4);flex-direction:column;display:flex}.dish-group{gap:var(--space-2);flex-direction:column;display:flex}.dish-card{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);transition:transform var(--duration-fast) var(--ease-out), box-shadow .15s ease, border-color .15s ease;flex-direction:column;display:flex}.dish-card__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.dish-card.is-dragging{z-index:1;border-color:var(--color-primary);box-shadow:var(--shadow-fab);opacity:.97;position:relative}.dish-card__drag-handle{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);color:var(--color-text-secondary);cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:flex}.dish-card__drag-handle:hover{border-color:var(--color-primary);color:var(--color-primary)}.dish-card.is-dragging .dish-card__drag-handle{cursor:grabbing}.dish-card__select-row{align-items:center;gap:var(--space-2);display:flex}.dish-card__select-row .input{flex:auto;min-width:0}.recipe-picker__trigger{align-items:center;gap:var(--space-2);min-width:0;min-height:var(--size-touch);padding-inline:var(--space-2_5);padding-block:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);font-size:var(--font-size-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;flex:auto;transition:border-color .15s;display:flex}.recipe-picker__trigger:hover{border-color:var(--color-primary)}.recipe-picker__trigger-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.recipe-picker__trigger-placeholder{min-width:0;color:var(--color-text-placeholder);flex:auto}.recipe-picker__trigger-caret{color:var(--color-text-secondary);flex-shrink:0}.rselect{gap:var(--space-3);padding-inline:var(--space-5);padding-bottom:var(--space-2);flex-direction:column;display:flex}.rselect__roles{gap:var(--space-2);display:flex}.rselect__role{padding-block:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;flex:1 1 0;transition:border-color .15s,background-color .15s,color .15s}.rselect__role.is-active{border-color:var(--color-primary);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg);font-weight:var(--font-weight-semibold)}.rselect__search{flex-shrink:0}.rselect__clear{justify-content:center;align-items:center;gap:var(--space-1_5);padding-inline:var(--space-2_5);padding-block:var(--space-1_5);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;align-self:flex-start;transition:border-color .15s,color .15s;display:flex}.rselect__clear:hover{border-color:var(--color-destructive);color:var(--color-destructive)}.rselect__section{gap:var(--space-1_5);flex-direction:column;display:flex}.rselect__section-label{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);display:flex}.rselect__list{gap:var(--space-2);flex-direction:column;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.rselect__option{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s;display:flex}.rselect__option:hover{border-color:var(--color-primary)}.rselect__option.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft-bg)}.rselect__option-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:auto;overflow:hidden}.rselect__option-placed{font-size:var(--font-size-xs);color:var(--color-text-secondary);flex-shrink:0}.rselect__option-check,.rselect__option-add{color:var(--color-primary);flex-shrink:0}.rselect__empty{align-items:center;gap:var(--space-2);padding-block:var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-direction:column;display:flex}.dish-card__remove{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:flex}.dish-card__remove:hover{border-color:var(--color-destructive);color:var(--color-destructive)}.dish-add{justify-content:center;align-items:center;gap:var(--space-1_5);padding-block:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-input);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;transition:border-color .15s,color .15s;display:flex}.dish-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.dup-warning{align-items:flex-start;gap:var(--space-1_5);padding-inline:var(--space-3);padding-block:var(--space-2);border-radius:var(--radius-input);background:var(--color-warning-bg);font-size:var(--font-size-xs);color:var(--color-warning-fg);display:flex}.dup-warning__icon{margin-top:var(--space-0_5);flex-shrink:0}.recent-mains{gap:var(--space-1_5);padding-top:var(--space-0_5);flex-direction:column;display:flex}.recent-mains__label{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex}.recent-mains__chips{gap:var(--space-1_5);flex-wrap:wrap;display:flex}.recent-main{padding-inline:var(--space-2_5);padding-block:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-muted-bg);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:default;transition:border-color .15s,color .15s}.recent-main.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}.recent-main--reusable{cursor:pointer}.recent-main--reusable:not(.is-selected):hover{border-color:var(--color-primary);color:var(--color-primary)}.recent-main:disabled{cursor:default}.recent-main__meta{margin-left:var(--space-1);opacity:.7}.planner__error{font-size:var(--font-size-sm);color:var(--color-destructive)}.planner__notice{padding:var(--space-2_5) var(--space-3);border:1px solid var(--color-primary-border);border-radius:var(--radius-card);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg);font-size:var(--font-size-sm)}.planner__actions{align-items:center;gap:var(--space-3);display:flex}.record-prompt{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-muted-bg-subtle);flex-direction:column;display:flex}.record-prompt__text{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.record-prompt__alts{gap:var(--space-2);display:flex}.record-prompt__alts>*{flex:1}.outcome-sheet{gap:var(--space-3);flex-direction:column;display:flex}.outcome-sheet__hint{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.outcome-sheet__chips{gap:var(--space-1_5);flex-wrap:wrap;display:flex}.outcome-sheet__chips .chip{padding-inline:var(--space-3);padding-block:var(--space-1_5);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-muted-bg);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.outcome-sheet__chips .chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.outcome-sheet__chips .chip.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}
.wcanvas{gap:var(--space-4);flex-direction:column;display:flex}.wcanvas__nav{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.wcanvas__nav-btn{width:var(--size-touch);height:var(--size-touch);border-radius:var(--radius-input);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wcanvas__nav-btn:hover{background:var(--color-muted-bg)}.wcanvas__nav-center{align-items:center;gap:var(--space-0_5);flex-direction:column;min-width:0;display:flex}.wcanvas__nav-label{align-items:center;gap:var(--space-1_5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.wcanvas__nav-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.wcanvas__next-open{align-items:flex-start;gap:var(--space-2);padding:var(--space-2_5) var(--space-3);border:1px solid var(--color-primary-border);border-radius:var(--radius-card);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg);font-size:var(--font-size-sm);display:flex}.wcanvas__next-open-icon{flex-shrink:0;margin-top:.125em}.wcanvas__next-open-message{gap:var(--space-0_5);min-width:0;display:grid}.wcanvas__next-open-line{white-space:nowrap}.wcanvas__next-open strong{font-weight:var(--font-weight-semibold)}.wcanvas__error{font-size:var(--font-size-sm);color:var(--color-destructive)}.wcanvas__days{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.wday{gap:var(--space-2_5);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.wday.is-today{border-color:var(--color-primary-border)}.wday.is-unconfirmed{background:var(--color-muted-bg-subtle);border-style:dashed}.wday.is-next-open{border-color:var(--color-primary);background:var(--color-primary-soft-bg)}.wday__head{align-items:center;gap:var(--space-2);display:flex}.wday__date{align-items:baseline;gap:var(--space-1_5);display:flex}.wday__weekday{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.wday__day{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.wday__tag{padding-inline:var(--space-2);padding-block:var(--space-0_5);border-radius:var(--radius-pill);background:var(--color-muted-bg);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.wday__single{font-size:var(--font-size-xs);color:var(--color-primary-soft-fg);margin-left:auto;text-decoration:underline}.wday__dishes{gap:var(--space-2);flex-direction:column;display:flex}.wday__role{gap:var(--space-1_5);flex-direction:column;display:flex}.wday__role-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.wdish{align-items:center;gap:var(--space-2);padding:var(--space-1_5) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);display:flex}.wdish.is-dup{border-color:var(--color-warning-fg);background:var(--color-warning-bg)}.wdish__body{gap:var(--space-0_5);flex-direction:column;flex:auto;min-width:0;display:flex}.wdish__title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden}.wdish__flags{gap:var(--space-1);flex-wrap:wrap;display:flex}.wdish__flag{align-items:center;gap:var(--space-1);padding-inline:var(--space-1_5);padding-block:var(--space-0_5);border-radius:var(--radius-pill);font-size:var(--font-size-xs);display:inline-flex}.wdish__flag--dup{background:var(--color-warning-bg);color:var(--color-warning-fg)}.wdish__flag--recent{background:var(--color-muted-bg);color:var(--color-text-secondary)}.wdish__btn{width:var(--size-touch);height:var(--size-touch);border-radius:var(--radius-input);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wdish__btn:hover{background:var(--color-muted-bg);color:var(--color-primary)}.wdish__btn--remove:hover{color:var(--color-destructive)}.wday__add{justify-content:center;align-items:center;gap:var(--space-1_5);padding-block:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-input);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;transition:border-color .15s,color .15s;display:flex}.wday__add:hover{border-color:var(--color-primary);color:var(--color-primary)}.wcanvas__actions{bottom:var(--space-2);padding-top:var(--space-1);display:flex;position:sticky}.wmove{gap:var(--space-3);padding-inline:var(--space-5);padding-bottom:var(--space-2);flex-direction:column;display:flex}.wmove__lead{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.wmove__days{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.wmove__day{align-items:center;gap:var(--space-0_5);padding-block:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;flex-direction:column;transition:border-color .15s,background-color .15s;display:flex}.wmove__day:hover:not(:disabled){border-color:var(--color-primary)}.wmove__day:disabled{background:var(--color-muted-bg);color:var(--color-text-secondary);cursor:default}.wmove__day.is-today{border-color:var(--color-primary-border)}.wmove__day-weekday{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.wmove__day-num{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.wmove__day-here{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.sk-wcanvas-label{width:8rem;height:1.25rem}.sk-wday-date{width:4rem;height:1.5rem}.sk-wday-body{width:100%;height:2.75rem}.wday--skeleton{gap:var(--space-2_5)}
.record-list{gap:var(--space-4);flex-direction:column;display:flex}.record-list__error{font-size:var(--font-size-sm);color:var(--color-destructive)}.record-card{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.record-card__header{justify-content:space-between;align-items:center;display:flex}.record-card__date{align-items:center;gap:var(--space-1_5);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.record-dishes{gap:var(--space-1_5);flex-direction:column;display:flex}.record-dish{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.record-dish__role{padding-inline:var(--space-2);padding-block:var(--space-0_5);border-radius:var(--radius-input);background:var(--color-muted-bg);font-size:var(--font-size-xs);color:var(--color-text-secondary);flex-shrink:0}.record-dish__body{color:var(--color-text-primary)}.record-dish__link{color:var(--color-primary);text-underline-offset:2px}.record-dish__link:hover{text-decoration:underline}.record-dish__note{color:var(--color-text-secondary)}.record-card__outcome{padding-inline:var(--space-2);padding-block:var(--space-0_5);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-self:flex-start}.record-card__outcome--skipped{background:var(--color-muted-bg);color:var(--color-text-secondary)}.record-card__outcome--changed{background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}.record-card__reason{font-weight:var(--font-weight-normal)}.record-card__memo{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.record-card__footer{justify-content:space-between;align-items:center;display:flex}.record-card__source{font-size:var(--font-size-xs);color:var(--color-text-placeholder)}.rating{align-items:center;gap:var(--space-0_5);display:flex}.rating__btn{padding:var(--space-0_5)}.rating__btn:disabled{cursor:not-allowed;opacity:.5}.rating__star{width:1.25rem;height:1.25rem;color:var(--color-text-placeholder);fill:none}.rating__star.is-filled{color:var(--color-star-active);fill:var(--color-star-active)}
.recipe-search{gap:var(--space-3);padding-inline:var(--space-4);padding-block:var(--space-3);flex-direction:column;display:flex}.search-box{position:relative}.search-box__icon{left:var(--space-3);pointer-events:none;color:var(--color-text-placeholder);position:absolute;top:50%;transform:translateY(-50%)}.input--search{padding-left:2.25rem;padding-right:var(--space-3)}.tag-filter{gap:var(--space-2);margin-inline:calc(-1 * var(--space-4));padding-inline:var(--space-4);padding-bottom:var(--space-1);display:flex;overflow-x:auto}.tag-filter .chip{flex-shrink:0}.recipe-list-body{gap:var(--space-3);padding-inline:var(--space-4);flex-direction:column;flex:1;display:flex}.recipe-list-body--standalone{padding-top:var(--space-4)}.fab{right:var(--space-4);bottom:var(--space-6);z-index:var(--z-fab);border-radius:var(--radius-pill);background:var(--color-primary);width:3.5rem;height:3.5rem;color:var(--color-text-on-primary);box-shadow:var(--shadow-fab);justify-content:center;align-items:center;transition:background-color .15s;display:flex;position:fixed}.fab:hover{background:var(--color-primary-hover)}.recipe-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);display:flex;position:relative}.recipe-card.is-highlighted{box-shadow:0 0 0 2px var(--color-primary)}.recipe-card__link{gap:var(--space-3);flex:1;min-width:0;display:flex}.recipe-card__body{flex:1;min-width:0}.recipe-card__title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden}.recipe-card__tags{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.recipe-card__host{margin-top:var(--space-1);text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs);color:var(--color-text-secondary);overflow:hidden}.recipe-card__actions{margin-top:calc(-1 * var(--space-1));margin-right:calc(-1 * var(--space-1));flex-direction:column;flex-shrink:0;align-items:center;display:flex}.recipe-card__menu{width:var(--size-touch);height:var(--size-touch);padding:var(--space-1);color:var(--color-text-placeholder);justify-content:center;align-items:center;transition:color .15s;display:flex}.recipe-card__menu:hover{color:var(--color-text-secondary)}.cook-queue-toggle{justify-content:center;align-items:center;gap:var(--space-1);min-width:var(--size-touch);min-height:var(--size-touch);padding:var(--space-1);border-radius:var(--radius-input);color:var(--color-text-placeholder);transition:color .15s,background .15s;display:inline-flex}.cook-queue-toggle:hover{color:var(--color-text-secondary)}.cook-queue-toggle.is-queued{color:var(--color-primary)}.cook-queue-toggle:disabled{opacity:.6;cursor:default}.cook-queue-toggle--labelled{width:100%;min-height:var(--size-touch);padding-inline:var(--space-3);border:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.cook-queue-toggle--labelled.is-queued{border-color:var(--color-primary);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}.thumbnail{object-fit:cover}.thumbnail--card{border-radius:var(--radius-input);flex-shrink:0;width:5rem;height:5rem}.thumbnail--detail{aspect-ratio:16/9;border-radius:var(--radius-card);width:100%}.thumbnail--mini{border-radius:var(--radius-sm);flex-shrink:0;width:2.25rem;height:2.25rem}.thumbnail--placeholder{background:var(--color-muted-bg);justify-content:center;align-items:center;display:flex}.thumbnail__icon{color:var(--color-text-placeholder)}.recipe-skeleton{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);display:flex}.recipe-skeleton__thumb{border-radius:var(--radius-input);flex-shrink:0;width:5rem;height:5rem}.recipe-skeleton__body{gap:var(--space-2);min-width:0;padding-block:var(--space-1);flex-direction:column;flex:1;display:flex}.skeleton-line{border-radius:var(--radius-sm)}.skeleton-line--title{width:66%;height:1rem}.skeleton-line--sub{width:33%;height:.75rem}.skeleton-line--meta{width:25%;height:.75rem}.action-menu{padding-bottom:var(--space-2)}.action-menu__title{text-overflow:ellipsis;white-space:nowrap;padding-inline:var(--space-5);padding-bottom:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);overflow:hidden}.action-row{align-items:center;gap:var(--space-3);width:100%;padding-inline:var(--space-5);padding-block:var(--space-3_5);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex}.action-row:hover{background:var(--color-muted-bg)}.action-row--destructive{color:var(--color-destructive)}.action-row__icon{flex-shrink:0}.recipe-quick-view{gap:var(--space-3);padding-inline:var(--space-5);padding-bottom:var(--space-2);flex-direction:column;display:flex}.recipe-quick-view__thumb{border-radius:var(--radius-card);display:block;overflow:hidden}.recipe-quick-view__head{gap:var(--space-1_5);flex-direction:column;display:flex}.recipe-quick-view__role{padding-inline:var(--space-2);padding-block:var(--space-0_5);border-radius:var(--radius-input);background:var(--color-muted-bg);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-self:flex-start}.recipe-quick-view__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.recipe-quick-view__tags{gap:var(--space-1_5);flex-wrap:wrap;display:flex}.recipe-quick-view__note{white-space:pre-wrap;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-quick-view__source{align-items:center;gap:var(--space-1);width:fit-content;min-height:var(--size-touch);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color .15s;display:inline-flex}.recipe-quick-view__source:hover{color:var(--color-primary-soft-fg)}.recipe-form{gap:var(--space-4);flex-direction:column;display:flex}.url-field__row{gap:var(--space-2);align-items:stretch;display:flex}.url-field__input-wrap{flex:1;min-width:0;position:relative}.url-field__input-wrap:has(.url-field__clear) .input{padding-right:var(--size-touch)}.url-field__clear{width:var(--size-touch);height:var(--size-touch);color:var(--color-text-placeholder);transition:color var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.url-field__clear:hover{color:var(--color-text-secondary)}.url-field__input{flex:1;min-width:0}.url-field__paste{align-items:center;gap:var(--space-1);padding-inline:var(--space-3);border:1px solid var(--color-primary-border);border-radius:var(--radius-input);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary-soft-fg);flex-shrink:0;transition:background-color .15s;display:inline-flex}.url-field__paste:hover{background:var(--color-primary-soft-bg)}.recipe-form__preview{gap:var(--space-1_5);flex-direction:column;display:flex}.recipe-form__preview-note{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.recipe-form__refetch{align-self:flex-start;align-items:center;gap:var(--space-1);padding-block:var(--space-1);padding-inline:var(--space-2_5);border:1px solid var(--color-primary-border);border-radius:var(--radius-input);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary-soft-fg);transition:background-color var(--duration-fast) var(--ease-standard);display:inline-flex}.recipe-form__refetch:hover:not(:disabled){background:var(--color-primary-soft-bg)}.recipe-form__refetch:disabled{opacity:.5}.recipe-form__error{font-size:var(--font-size-sm);color:var(--color-destructive)}.recipe-form__actions{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.recipe-edit__danger{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.tag-input{gap:var(--space-1_5);flex-direction:column;display:flex}.tag-input__tags{gap:var(--space-1_5);flex-wrap:wrap;display:flex}.tag{align-items:center;gap:var(--space-1);padding-block:var(--space-0_5);padding-left:var(--space-2_5);padding-right:var(--space-1);border-radius:var(--radius-pill);background:var(--color-primary-soft-bg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary-soft-fg);display:inline-flex}.tag__remove{border-radius:var(--radius-pill);justify-content:center;align-items:center;width:1.25rem;height:1.25rem;transition:background-color .15s;display:flex}.tag__remove:hover{background:var(--color-primary-faint)}.tag-suggestions{gap:var(--space-1_5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag-suggestion{min-height:2rem;padding-inline:var(--space-2_5);padding-block:var(--space-0_5);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);align-items:center;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.tag-suggestion.is-active{border-color:var(--color-primary-border);background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}.recipe-detail__body{gap:var(--space-4);padding-inline:var(--space-4);padding-block:var(--space-4);flex-direction:column;flex:1;display:flex}.recipe-detail__head{gap:var(--space-2);flex-direction:column;display:flex}.recipe-detail__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.recipe-detail__tags{gap:var(--space-1_5);flex-wrap:wrap;display:flex}.recipe-detail__source{align-items:center;gap:var(--space-1);width:fit-content;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color .15s;display:inline-flex}.recipe-detail__source:hover{color:var(--color-primary-soft-fg)}.recipe-detail__note-card{padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.recipe-detail__note-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.recipe-detail__note{margin-top:var(--space-1);white-space:pre-wrap;font-size:var(--font-size-sm);color:var(--color-text-primary)}.recipe-detail__note--empty{margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-placeholder)}.recipe-detail__date{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.recipe-usage{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.recipe-usage__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.recipe-usage__empty{font-size:var(--font-size-sm);color:var(--color-text-placeholder)}.recipe-usage__primary{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.recipe-usage__count{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.recipe-usage__last,.recipe-usage__secondary{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipe-usage__rating{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.recipe-usage__stars{align-items:center;gap:var(--space-0_5);display:inline-flex}.recipe-usage__star{width:1rem;height:1rem;color:var(--color-text-placeholder);fill:none}.recipe-usage__star.is-filled{color:var(--color-star-active);fill:var(--color-star-active)}.recipe-usage__recent{gap:var(--space-1_5);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.recipe-usage__recent-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);display:flex}.recipe-usage__recent-date{min-width:5.5rem}.recipe-usage__badge{padding-inline:var(--space-2);padding-block:var(--space-0_5);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);align-items:center;display:inline-flex}.recipe-usage__badge--record{background:var(--color-primary-soft-bg);color:var(--color-primary-soft-fg)}.recipe-usage__badge--plan{background:var(--color-muted-bg);color:var(--color-muted-fg)}.action-bar{inset-inline:0;z-index:var(--z-header);padding-inline:var(--space-4);padding-top:var(--space-3);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-surface-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:fixed;bottom:0}.action-bar__inner{gap:var(--space-2);width:100%;max-width:var(--layout-max-width);margin-inline:auto;display:flex}.action-bar__inner>:first-child{flex:3}.action-bar__inner>:last-child{flex:2}.action-bar .btn{padding-inline:var(--space-2);white-space:nowrap}
.household-manager{gap:var(--space-6);flex-direction:column;display:flex}.alert{padding-inline:var(--space-3);padding-block:var(--space-2);border-radius:var(--radius-input);font-size:var(--font-size-sm)}.alert--error{background:var(--color-destructive-soft-bg);color:var(--color-destructive)}.household-section{gap:var(--space-3);flex-direction:column;display:flex}.household-section--divided{border-top:1px solid var(--color-border);padding-top:var(--space-5)}.household-section__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.household-card{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);flex-direction:column;display:flex}.household-card__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.household-card__info{min-width:0}.household-card__name{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden}.household-card__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.household-rename{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.household-rename__actions{gap:var(--space-2);display:flex}.badge-active{align-items:center;gap:var(--space-1);padding-inline:var(--space-2_5);padding-block:var(--space-1);border-radius:var(--radius-pill);background:var(--color-primary-soft-bg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary-soft-fg);display:inline-flex}.member-list{gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-3);flex-direction:column;display:flex}.member{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.member__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-primary);overflow:hidden}.member__role{margin-left:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.member__actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.invite-box{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-input);background:var(--color-muted-bg);flex-direction:column;display:flex}.invite-box__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.invite-box__row{align-items:center;gap:var(--space-2);display:flex}.invite-box__code{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-xs);color:var(--color-text-primary);flex:1;overflow:hidden}.invite-box__copy{border-radius:var(--radius-input);width:2.25rem;height:2.25rem;color:var(--color-text-secondary);justify-content:center;align-items:center;transition:background-color .15s;display:flex}.invite-box__copy:hover{background:var(--color-surface)}.household-card__footer{align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-3);flex-wrap:wrap;display:flex}.disband-summary{gap:var(--space-1);margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-input);background:var(--color-muted-bg);flex-direction:column;display:flex}.disband-summary__item{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.disband-summary__count{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}

