.meal-fullcalendar{--fc-classic-background:hsl(var(--card));--fc-classic-foreground:hsl(var(--foreground));--fc-classic-border:color-mix(in srgb,hsl(var(--border)) 55%,transparent);--fc-classic-strong-border:color-mix(in srgb,hsl(var(--border)) 70%,transparent);--fc-classic-faint:hsl(var(--muted));--fc-classic-muted:hsl(var(--muted));--fc-classic-strong:color-mix(in srgb,var(--color-brand-plum) 8%,hsl(var(--card)));--fc-classic-faint-foreground:hsl(var(--muted-foreground));--fc-classic-muted-foreground:hsl(var(--muted-foreground));--fc-classic-primary:var(--color-brand-plum);--fc-classic-primary-foreground:var(--color-brand-plum-foreground);--fc-classic-event:var(--color-brand-plum);--fc-classic-event-contrast:var(--color-brand-plum-foreground);--fc-classic-highlight:color-mix(in srgb,var(--color-brand-plum) 10%,transparent);--fc-classic-today:transparent;--fc-classic-now:var(--color-brand-plum);--fc-classic-button:hsl(var(--secondary));--fc-classic-button-border:hsl(var(--border));--fc-classic-button-strong:hsl(var(--accent));--fc-classic-button-strong-border:hsl(var(--border));--fc-classic-button-foreground:hsl(var(--foreground));--fc-classic-button-outline:var(--color-brand-plum);--fc-classic-small-dot-width:6px;--fc-classic-large-dot-width:8px;min-width:0;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:1.25rem;background:hsl(var(--card));box-shadow:0 1px 2px color-mix(in srgb,hsl(var(--foreground)) 4%,transparent),0 8px 24px -12px color-mix(in srgb,hsl(var(--foreground)) 10%,transparent);overflow:hidden}.meal-calendar-chip{position:relative;display:flex;align-items:start;min-width:0;width:100%;color:hsl(var(--foreground))}.calendar-event-select{position:absolute;z-index:1;top:.25rem;inset-inline-start:.25rem;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%}.calendar-event-select input{width:1.25rem;height:1.25rem;accent-color:var(--color-brand-plum);border-radius:.35rem;box-shadow:0 0 0 3px hsl(var(--card)),0 2px 8px color-mix(in srgb,hsl(var(--foreground)) 20%,transparent)}.meal-fullcalendar .meal-calendar-event{min-width:0;max-width:100%;overflow:hidden;cursor:pointer;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid color-mix(in srgb,hsl(var(--border)) 70%,transparent);border-radius:.9rem;box-shadow:0 1px 2px color-mix(in srgb,hsl(var(--foreground)) 5%,transparent);transition:border-color .15s,box-shadow .2s,transform .2s}.meal-fullcalendar .meal-calendar-event:hover{border-color:color-mix(in srgb,var(--color-brand-plum) 35%,hsl(var(--border)));box-shadow:0 6px 18px -8px color-mix(in srgb,var(--color-brand-plum) 35%,transparent);transform:translateY(-1px)}.meal-fullcalendar .calendar-more-meals{display:flex;align-items:center;min-height:2.75rem;min-width:2.75rem;padding-inline:.5rem;font-size:.75rem;font-weight:600;color:var(--color-brand-plum-text)}.meal-fullcalendar .meal-calendar-event:focus-visible{outline:2px solid var(--color-brand-plum);outline-offset:2px}.meal-fullcalendar .meal-calendar-event:has(.meal-calendar-chip-selected){border-color:var(--color-brand-plum-text);box-shadow:0 0 0 2px var(--color-brand-plum-text)}.meal-calendar-date-number{display:inline-flex;align-items:center;justify-content:center;min-width:1.85rem;height:1.85rem;padding-inline:.3rem;border-radius:999px;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.meal-calendar-date-focused{box-shadow:inset 0 0 0 1.5px var(--color-brand-plum-text)}.meal-calendar-date-today{background:var(--color-brand-plum);color:var(--color-brand-plum-foreground);box-shadow:none}.meal-calendar-day-heading{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding-block:.6rem .5rem}.meal-calendar-day-heading>span:first-child{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.meal-calendar-day-heading .meal-calendar-date-number{min-width:2.1rem;height:2.1rem;font-size:1rem}.meal-calendar-date-status{display:inline-flex;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;gap:.2rem}.meal-calendar-presence{width:.375rem;height:.375rem;border-radius:50%;background:var(--color-brand-plum-text)}.meal-calendar-note-presence{width:.375rem;height:.375rem;border-radius:50%;border:1.5px solid;opacity:.6}.meal-fullcalendar-month [role=columnheader]>div{padding-block:.7rem .6rem}.meal-fullcalendar-month [role=columnheader]>div>div{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.meal-fullcalendar-month .meal-calendar-day>div:first-child{justify-content:flex-start}.meal-fullcalendar-month .meal-calendar-day{min-height:7.5rem}.meal-fullcalendar-month .meal-calendar-date-status{justify-content:flex-start;min-height:2.25rem;padding:.25rem .35rem 0}.meal-fullcalendar-month .meal-calendar-day:has(.meal-calendar-date-focused){background:color-mix(in srgb,var(--color-brand-plum) 4%,hsl(var(--card)))}.meal-fullcalendar-month .calendar-meal-card{flex-direction:row;align-items:center;gap:.5rem;min-height:3rem;padding:.3rem}.meal-fullcalendar-month .calendar-meal-photo{width:2.5rem;height:2.5rem;aspect-ratio:1;border-radius:.55rem}.meal-fullcalendar-month .calendar-meal-copy{flex:1;gap:.1rem;padding:0 .2rem 0 0}.meal-fullcalendar-month .calendar-meal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.75rem;line-height:1.3}.meal-fullcalendar-month .calendar-meal-meta{font-size:.6875rem;line-height:1.3}.meal-fullcalendar-month .calendar-meal-meta>span+span{border:0;padding:0}.meal-fullcalendar .calendar-day-note-event{min-width:0;background:transparent;color:hsl(var(--foreground));border:0;box-shadow:none;cursor:default}.meal-fullcalendar-day .meal-calendar-chip,.meal-fullcalendar-week .meal-calendar-chip{display:block}.meal-fullcalendar-day .meal-calendar-day,.meal-fullcalendar-week .meal-calendar-day{min-height:22rem}.meal-fullcalendar-week .calendar-meal-photo{aspect-ratio:4/3;border-radius:0}.meal-fullcalendar-week .calendar-meal-copy{gap:.3rem;padding:.6rem .7rem .7rem}.meal-fullcalendar-week .calendar-meal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:.8125rem;line-height:1.35}.meal-fullcalendar-week{overflow-x:auto}.meal-fullcalendar-week>div{min-width:56rem}.meal-fullcalendar-day .calendar-meal-card{flex-direction:row;align-items:center}.meal-fullcalendar-day .calendar-meal-photo{width:clamp(7rem,22vw,13rem);aspect-ratio:4/3;border-radius:0}.meal-fullcalendar-day .calendar-meal-copy{padding:1rem 1.25rem}.meal-fullcalendar-day .calendar-meal-title{font-size:1.0625rem}.meal-fullcalendar-day .meal-calendar-day-heading{flex-direction:row;gap:.6rem}.calendar-workspace-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1rem}.calendar-date-navigation{display:flex;align-items:center;gap:1rem;min-width:0}.calendar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:2.25rem;line-height:1.25;letter-spacing:-.02em;white-space:nowrap}.calendar-stepper{flex-shrink:0;display:inline-flex;align-items:center;padding:.2rem;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:999px;background:hsl(var(--card))}.calendar-stepper>button{min-height:2.5rem;height:2.5rem;border-radius:999px}.calendar-stepper-arrow{width:2.5rem}.calendar-today-button{padding-inline:.9rem;font-size:.875rem;font-weight:600}.calendar-workspace-actions{display:flex;align-items:center;gap:.35rem}.calendar-icon-action{width:2.75rem;height:2.75rem;border-radius:999px;color:hsl(var(--foreground))}.calendar-icon-action:hover{background:color-mix(in srgb,var(--color-brand-plum) 8%,hsl(var(--card)))}.calendar-select-toggle{gap:.45rem;height:2.75rem;padding-inline:.95rem;border-radius:999px;font-weight:600}.calendar-select-toggle[aria-pressed=true]{background:color-mix(in srgb,var(--color-brand-plum) 12%,hsl(var(--card)));color:var(--color-brand-plum-text)}.calendar-add-action{gap:.4rem;height:2.75rem;padding-inline:1.15rem;border-radius:999px;font-weight:600;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--color-brand-plum) 70%,transparent)}.calendar-workspace-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.calendar-view-switch{display:inline-flex;padding:.25rem;border-radius:999px;background:color-mix(in srgb,hsl(var(--muted)) 85%,transparent)}.calendar-view-switch>button{min-height:2.5rem;border-radius:999px;padding-inline:1.1rem;font-weight:600;color:hsl(var(--muted-foreground))}.calendar-view-switch>button:hover{color:hsl(var(--foreground));background:transparent}.calendar-view-switch>button[aria-pressed=true]{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 3px color-mix(in srgb,hsl(var(--foreground)) 14%,transparent)}.calendar-filters{display:flex;align-items:center;gap:.5rem;min-width:0}.calendar-destination>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.calendar-chip-field{height:2.75rem;width:auto;min-width:0;padding-inline:1rem 2.25rem;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:999px;background-color:hsl(var(--card));color:hsl(var(--foreground));font-size:.875rem;font-weight:500;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;background-size:1rem;cursor:pointer;transition:border-color .15s,background-color .15s}.calendar-chip-field:hover{border-color:color-mix(in srgb,var(--color-brand-plum) 35%,hsl(var(--border)))}.calendar-chip-field:focus-visible{outline:2px solid var(--color-brand-plum);outline-offset:2px}.calendar-date-field{padding-inline:1rem;background-image:none;font-variant-numeric:tabular-nums}.calendar-date-field::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}.calendar-content-region{container-type:inline-size}.calendar-month-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}.calendar-order-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.calendar-order-select{max-width:20rem}.calendar-order-step{gap:.3rem;min-height:2.75rem;border-radius:999px;padding-inline:.85rem}.calendar-add-tile{width:100%;min-height:3rem;gap:.4rem;border:1.5px dashed color-mix(in srgb,hsl(var(--border)) 100%,transparent);border-radius:1rem;color:hsl(var(--muted-foreground));font-weight:600}.calendar-add-tile:hover:not(:disabled){border-color:var(--color-brand-plum-text);color:var(--color-brand-plum-text);background:color-mix(in srgb,var(--color-brand-plum) 4%,transparent)}.calendar-focused-meals{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;min-width:0}.calendar-focused-meals>*{grid-column:1/-1}.calendar-focused-meals>h2{grid-row:1;grid-column:1}.calendar-focused-meals>.calendar-inline-note:has(.calendar-note-toggle:not(.calendar-note-has-text)){grid-row:1;grid-column:2;width:auto}.calendar-agenda-heading{font-size:1.25rem;line-height:1.25;letter-spacing:-.01em}.calendar-focused-meals>ul{display:grid;gap:.75rem}.calendar-focused-meal{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:1rem;background:hsl(var(--card));box-shadow:0 1px 2px color-mix(in srgb,hsl(var(--foreground)) 5%,transparent)}.calendar-focused-meal>button{width:100%;text-align:start}.calendar-focused-meal>button:focus-visible{outline:2px solid var(--color-brand-plum);outline-offset:-3px}.calendar-focused-meal .calendar-meal-card{flex-direction:row;align-items:center;min-height:5.5rem}.calendar-focused-meal .calendar-meal-photo{width:5.5rem;align-self:stretch;aspect-ratio:auto;min-height:5.5rem;border-radius:0}.calendar-focused-meal .calendar-meal-copy{justify-content:center;padding:.75rem .9rem}.calendar-focused-meal .calendar-meal-title{font-size:.9375rem}.calendar-focused-select{position:absolute;top:.5rem;inset-inline-start:.5rem;display:flex;width:2.75rem;height:2.75rem;align-items:center;justify-content:center}.calendar-focused-select input{width:1.25rem;height:1.25rem;accent-color:var(--color-brand-plum);box-shadow:0 0 0 3px hsl(var(--card));border-radius:.35rem}.calendar-focused-meal:has(input:checked){border-color:var(--color-brand-plum-text);box-shadow:0 0 0 1px var(--color-brand-plum-text)}@container (min-width: 1200px){.calendar-month-layout{grid-template-columns:minmax(0,1fr) 21rem}.calendar-focused-meals{padding:1.1rem;border-radius:1.25rem;background:hsl(var(--card));border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);position:sticky;top:5.5rem}.calendar-focused-meal .calendar-meal-card{flex-direction:column;align-items:stretch}.calendar-focused-meal .calendar-meal-photo{width:100%;min-height:0;aspect-ratio:16/10}}.calendar-selection-bar{position:sticky;bottom:1rem;z-index:40;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.25rem;padding:.5rem .5rem .5rem 1.1rem;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:1.25rem;background:color-mix(in srgb,hsl(var(--card)) 92%,transparent);backdrop-filter:blur(12px);box-shadow:0 12px 32px -12px color-mix(in srgb,hsl(var(--foreground)) 30%,transparent)}.calendar-selection-count{font-weight:600;font-size:.9375rem;font-variant-numeric:tabular-nums;white-space:nowrap}.calendar-selection-date{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:hsl(var(--muted-foreground))}.calendar-selection-date .calendar-chip-field{padding-inline:.9rem;background-image:none}.calendar-selection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;margin-inline-start:auto}.calendar-selection-actions>button:not(.calendar-icon-action){min-height:2.75rem;border-radius:999px;padding-inline:.9rem;font-weight:600;color:var(--color-brand-plum-text)}.calendar-recipe-panel{position:sticky;top:5.5rem;display:grid;gap:.9rem;max-height:calc(100dvh - 7rem);overflow-y:auto;padding:1rem 1rem 1.1rem;border:1px solid color-mix(in srgb,hsl(var(--border)) 80%,transparent);border-radius:1.25rem;background:hsl(var(--card));box-shadow:0 1px 2px color-mix(in srgb,hsl(var(--foreground)) 4%,transparent),0 8px 24px -12px color-mix(in srgb,hsl(var(--foreground)) 10%,transparent)}.calendar-panel-header{display:flex;align-items:center;justify-content:space-between;margin:-.25rem -.35rem -.5rem 0}.calendar-panel-title{font-family:var(--font-display,inherit);font-size:1.25rem;letter-spacing:-.01em}.calendar-panel-status{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.calendar-panel-status:empty{display:none}.calendar-panel-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem}.calendar-panel-label{display:grid;gap:.3rem;font-size:.75rem;font-weight:600;color:hsl(var(--muted-foreground))}.calendar-panel-label>input,.calendar-panel-label>select{color:hsl(var(--foreground));font-weight:400}.calendar-text-meal-form{display:grid;gap:.3rem;padding-bottom:.1rem;border-bottom:1px solid color-mix(in srgb,hsl(var(--border)) 70%,transparent)}.calendar-text-meal-row{display:flex;gap:.5rem}.calendar-text-meal-row>input{flex:1;min-width:0}.calendar-text-meal-submit{flex-shrink:0;height:2.75rem;border-radius:.75rem;font-weight:600}.calendar-recipe-search-row{display:grid;gap:.5rem}.calendar-search-field{position:relative;display:block}.calendar-search-field>input{padding-inline-start:2.4rem;border-radius:999px}.calendar-search-icon{position:absolute;top:50%;inset-inline-start:.9rem;width:1rem;height:1rem;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none}.calendar-recipe-list{display:grid;gap:.5rem}.calendar-recipe-card{position:relative;display:flex;align-items:center;gap:.25rem;padding:.35rem;border:1px solid color-mix(in srgb,hsl(var(--border)) 70%,transparent);border-radius:.9rem;background:hsl(var(--background));transition:border-color .15s,box-shadow .2s;cursor:grab}.calendar-recipe-card:hover{border-color:color-mix(in srgb,var(--color-brand-plum) 35%,hsl(var(--border)));box-shadow:0 4px 14px -8px color-mix(in srgb,var(--color-brand-plum) 40%,transparent)}.calendar-recipe-photo{flex:1;min-width:0;border-radius:.6rem}.calendar-recipe-photo .calendar-meal-card{flex-direction:row;align-items:center;gap:.7rem}.calendar-recipe-photo .calendar-meal-photo{width:3.5rem;height:3.5rem;aspect-ratio:1;border-radius:.6rem}.calendar-recipe-photo .calendar-meal-copy{padding:0}.calendar-recipe-photo .calendar-meal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.8125rem}.calendar-recipe-add{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:999px;background:color-mix(in srgb,var(--color-brand-plum) 9%,hsl(var(--card)));color:var(--color-brand-plum-text)}.calendar-recipe-add:hover:not(:disabled){background:var(--color-brand-plum);color:var(--color-brand-plum-foreground)}.calendar-recipe-pager{display:flex;justify-content:space-between;gap:.5rem}.calendar-recipe-pager>button{gap:.2rem;border-radius:999px;min-height:2.75rem;padding-inline:.6rem;font-size:.8125rem}.calendar-panel-links{display:flex;justify-content:center;gap:1.25rem;padding-top:.4rem;border-top:1px solid color-mix(in srgb,hsl(var(--border)) 70%,transparent)}.calendar-panel-links>a{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.8125rem;font-weight:600;color:var(--color-brand-plum-text)}.calendar-panel-links>a:hover{text-decoration:underline;text-underline-offset:3px}@media (max-width:1023px){.calendar-workspace-header{gap:.5rem;margin-bottom:.75rem}.calendar-date-navigation{width:100%;justify-content:space-between;gap:.5rem}.calendar-title{font-size:1.75rem}.calendar-workspace-actions{width:100%}.calendar-add-action{margin-inline-start:auto}.calendar-workspace-toolbar{gap:.5rem;margin-bottom:.75rem}.meal-fullcalendar{border-radius:1rem}.meal-fullcalendar-month .meal-calendar-day{min-height:2.75rem}.meal-fullcalendar-month .meal-calendar-date-status{position:relative;align-items:flex-start;justify-content:center;min-width:0;width:100%;min-height:2.75rem;padding:.2rem 0 0}.meal-fullcalendar-month .meal-calendar-date-number{min-width:1.9rem;height:1.9rem}.meal-fullcalendar-month .meal-calendar-presence{position:absolute;bottom:.1rem;left:calc(50% - .35rem)}.meal-fullcalendar-month .meal-calendar-note-presence{position:absolute;bottom:.1rem;right:calc(50% - .35rem)}.meal-fullcalendar-month [role=columnheader]>div{padding-block:.5rem .4rem}.meal-fullcalendar-month .meal-calendar-day>div:first-child{justify-content:center}.calendar-month-layout{gap:1rem}.calendar-selection-bar{bottom:calc(4.75rem + env(safe-area-inset-bottom))}.calendar-recipe-panel{position:static;max-height:none;overflow:visible}}@media (min-width:640px) and (max-width:1023px){.calendar-focused-meals>ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:639px){.calendar-workspace-toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.calendar-view-switch{width:100%}.calendar-view-switch>button{flex:1}.calendar-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);gap:.4rem}.calendar-filters .calendar-chip-field{width:100%;padding-inline:.8rem 1.8rem;background-position:right .6rem center;font-size:.8125rem}.calendar-filters .calendar-date-field{padding-inline:.6rem}.calendar-destination>select{max-width:100%}.calendar-selection-bar{gap:.25rem .5rem;padding:.5rem .5rem .4rem .9rem}.calendar-selection-date{flex:1;justify-content:flex-end}.calendar-selection-actions{width:100%;justify-content:space-between;margin:0}.calendar-selection-actions>button:not(.calendar-icon-action){padding-inline:.6rem;font-size:.8125rem}}@media (max-width:359px){.meal-fullcalendar-month{margin-inline:-.75rem;border-radius:0}}.calendar-agenda-meal:has(.calendar-agenda-select) .calendar-text-meal .calendar-meal-copy,.calendar-focused-meal:has(.calendar-focused-select) .calendar-text-meal .calendar-meal-copy,.meal-calendar-chip:has(.calendar-event-select) .calendar-text-meal .calendar-meal-copy{padding-inline-start:3rem}.calendar-focused-meal:has(.calendar-focused-select) .calendar-text-meal .calendar-meal-copy{padding-block:.9rem}.meal-fullcalendar-day .meal-calendar-event,.meal-fullcalendar-week .meal-calendar-event{margin:.25rem .4rem .35rem}.meal-calendar-day-heading .meal-calendar-presence{display:none}