:root{--text:#55545c;--text-h:#0b0f19;--bg:#fff;--border:#e2e5ec;--code-bg:#f4f3ec;--accent:#2563eb;--accent-bg:#2563eb1a;--accent-border:#2563eb73;--accent-button:#1d4ed8;--secondary:#059669;--secondary-bg:#0596691f;--secondary-border:#05966973;--secondary-button:#047857;--highlight:#d97706;--highlight-bg:#d9770624;--highlight-border:#d9770680;--highlight-button:#b45309;--social-bg:#f4f3ec80;--shadow:#0f172a14 0 10px 15px -3px, #0f172a0a 0 4px 6px -2px;--shadow-raised:#0f172a1f 0 20px 25px -5px, #0f172a0f 0 8px 10px -6px;--sans:"Plus Jakarta Sans", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Plus Jakarta Sans", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--motion-fast:.15s;--motion-base:.2s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--nav-width-collapsed:56px;--nav-width-expanded:208px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--status-overdue:#b91c1c;--status-overdue-bg:#dc26261f;--status-due-soon:#b45309;--status-due-soon-bg:#b453091f;--status-completed:#047857;--status-completed-bg:#0478571f;--status-info:#2563eb;--status-info-bg:#2563eb1f;--status-occasion:#7c3aed;--status-occasion-bg:#7c3aed1f;font:18px/150% var(--sans);letter-spacing:0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#14161c;--border:#2c2f3a;--code-bg:#1f2028;--accent:#60a5fa;--accent-bg:#60a5fa29;--accent-border:#60a5fa80;--accent-button:#1d4ed8;--secondary:#34d399;--secondary-bg:#34d39929;--secondary-border:#34d39980;--secondary-button:#047857;--highlight:#fbbf24;--highlight-bg:#fbbf242e;--highlight-border:#fbbf248c;--highlight-button:#b45309;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--shadow-raised:#00000080 0 20px 25px -5px, #0000004d 0 8px 10px -6px;--status-overdue:#ff8a80;--status-overdue-bg:#ff8a8029;--status-due-soon:#fbbf24;--status-due-soon-bg:#fbbf2429;--status-completed:#34d399;--status-completed-bg:#34d39929;--status-info:#60a5fa;--status-info-bg:#60a5fa29;--status-occasion:#c4b5fd;--status-occasion-bg:#c4b5fd29}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}*,:before,:after{box-sizing:border-box}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.ui-card{overflow-wrap:break-word;max-width:100%;padding:var(--space-4);margin-bottom:var(--space-3);border-radius:var(--radius-md);box-shadow:var(--shadow);gap:var(--space-2);transition:box-shadow var(--motion-base) var(--ease-standard);flex-direction:column;display:flex}.ui-form-field{gap:var(--space-1);max-width:100%;margin-bottom:var(--space-4);flex-direction:column;display:flex}.ui-form-field label{font-size:var(--text-sm)}.ui-text-input,.ui-textarea,select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:inherit;transition:border-color var(--motion-fast) var(--ease-standard)}.ui-text-input:hover,.ui-textarea:hover,select:hover{border-color:var(--accent-border)}.ui-textarea{min-height:calc(var(--touch-target-min) * 2)}.ui-button{max-width:100%;font:inherit;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);border:1px solid #0000;font-weight:600;display:inline-flex}.ui-button:active:not(:disabled){transform:scale(.97)}.ui-button__icon{flex-shrink:0;justify-content:center;align-items:center;width:1.125rem;height:1.125rem;display:inline-flex}.ui-button__icon svg{width:100%;height:100%;display:block}.ui-button__label{align-items:center;display:inline-flex}.ui-button--compact{padding:var(--space-1) var(--space-3)}.ui-button--large{padding:var(--space-3) var(--space-6);font-size:var(--text-lg);min-height:calc(var(--touch-target-min) * 1.3);border-radius:var(--radius-lg);font-weight:700}.ui-button--large .ui-button__icon{width:1.375rem;height:1.375rem}.ui-button--primary{background:var(--accent-button);color:#fff;box-shadow:0 1px 2px #0f172a1f}.ui-button--primary:hover:not(:disabled){background:var(--accent);box-shadow:var(--shadow)}.ui-button--secondary{border-color:var(--border);color:var(--text-h);background:0 0}.ui-button--secondary:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.ui-button--danger{border-color:var(--status-overdue);color:var(--status-overdue);background:0 0}.ui-button--danger:hover:not(:disabled){background:var(--status-overdue-bg)}.ui-button:disabled{opacity:.6;cursor:not-allowed}.grocery-item-row__remove.ui-button--danger{padding:var(--space-2);min-width:calc(var(--touch-target-min) + 8px);min-height:calc(var(--touch-target-min) + 8px);border-radius:var(--radius-md);box-shadow:none;background:0 0;border-color:#0000}.grocery-item-row__remove.ui-button--danger .ui-button__icon{width:1.5rem;height:1.5rem}.grocery-item-row__remove.ui-button--danger:hover:not(:disabled){background:var(--status-overdue-bg)}.ui-empty-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text);flex-direction:column;display:flex}.ui-empty-state--viewport{min-height:min(60vh,32rem)}.ui-empty-state__title,.ui-empty-state p{margin:0}.ui-empty-state__title{color:var(--text-h)}.ui-loading-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);color:var(--text);display:flex}.ui-loading-state__spinner{width:var(--space-5);height:var(--space-5);border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-toast-list{gap:var(--space-2);z-index:100;max-width:calc(100vw - var(--space-4) * 2);flex-direction:column;display:flex;position:fixed;inset-block-end:var(--space-4);inset-inline-end:var(--space-4)}.ui-toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);font-size:var(--text-sm);border-radius:8px;display:flex}.ui-toast--success{border-color:var(--status-completed);background:var(--status-completed-bg)}.ui-toast--error{border-color:var(--status-overdue);background:var(--status-overdue-bg)}.ui-toast--info{border-color:var(--status-info);background:var(--status-info-bg)}.ui-toast__dismiss{cursor:pointer;font-size:var(--text-lg);color:inherit;min-height:var(--touch-target-min);min-width:var(--touch-target-min);background:0 0;border:none;line-height:1}.mobile-menu__layer{z-index:90;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-menu__backdrop{cursor:pointer;transition:opacity var(--motion-base) var(--ease-standard);background:#0b0f198f;border:none;padding:0;position:absolute;inset:0}.mobile-menu{z-index:1;width:min(100%,28rem);max-width:calc(100vw - var(--space-4) * 2);max-height:calc(100svh - var(--space-7));padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);box-shadow:var(--shadow-raised);gap:var(--space-3);opacity:1;transition:transform var(--motion-base) var(--ease-standard), opacity var(--motion-base) var(--ease-standard);flex-direction:column;display:flex;position:relative;overflow:hidden auto;transform:translateY(0)}.mobile-menu__header,.mobile-menu__title{margin:0}.mobile-menu__content{gap:var(--space-2);flex-direction:column;display:flex}.mobile-menu__action{align-items:center;gap:var(--space-3);min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);color:var(--text-h);background:var(--bg);transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);text-decoration:none;display:flex}.mobile-menu__action:hover{background:var(--accent-bg);border-color:var(--accent-border)}.mobile-menu__action--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:600}.mobile-menu__action-icon{flex-shrink:0;width:20px;height:20px}@media (prefers-reduced-motion:reduce){.mobile-menu__backdrop,.mobile-menu{transition:none;transform:none}}.ui-error-block{padding:var(--space-3) var(--space-4);border:1px solid var(--status-overdue);background:var(--status-overdue-bg);color:var(--status-overdue);border-radius:8px}.calendar-view-switcher,.calendar-nav-controls{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.calendar-period-label{font-size:var(--text-lg);color:var(--text-h);margin:0 0 var(--space-3);font-weight:600}.calendar-time-grid{--hour-height:3rem;--gutter-width:3.5rem;border:1px solid var(--border);background:var(--bg);border-radius:8px;overflow:hidden}.calendar-time-grid__scroll{max-height:32rem;overflow:auto}.calendar-time-grid__grid{grid-auto-rows:min-content;display:grid}.calendar-time-grid__corner,.calendar-time-grid__day-heading{z-index:2;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.calendar-time-grid__day-heading{padding:var(--space-2) var(--space-1);border-left:1px solid var(--border);font-size:var(--text-sm);flex-direction:column;align-items:center;gap:2px;display:flex}.calendar-time-grid__day-heading .calendar-day__date{font-size:var(--text-lg);color:var(--text-h);font-weight:700}.calendar-time-grid__day-heading .calendar-day__weekday{color:var(--text-h);opacity:.75}.calendar-time-grid__day-heading--today .calendar-day__date,.calendar-time-grid__day-heading--today .calendar-day__weekday{color:var(--highlight-button);opacity:1}.calendar-time-grid__gutter{background:var(--bg)}.calendar-time-grid__allday{border-bottom:1px solid var(--border);background:var(--bg);display:grid}.calendar-time-grid__allday-gutter{padding:var(--space-1) var(--space-2);color:var(--text-h);opacity:.6;font-size:.75rem}.calendar-time-grid__allday-day{padding:var(--space-1);border-left:1px solid var(--border);flex-direction:column;gap:2px;display:flex}.calendar-time-grid__hour-label{height:var(--hour-height);padding-right:var(--space-2);text-align:right;color:var(--text-h);opacity:.6;font-size:.75rem;transform:translateY(-.5em)}.calendar-time-grid__day{border-left:1px solid var(--border);height:calc(24 * var(--hour-height));position:relative}.calendar-time-grid__hour-row{height:var(--hour-height);border-top:1px dashed var(--border)}.calendar-time-grid__hour-row:first-child{border-top:none}.calendar-current-time-line{border-top:2px solid var(--highlight-button);z-index:2;pointer-events:none;height:0;position:absolute;left:0;right:0}.calendar-current-time-line__dot{background:var(--highlight-button);border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:0}.calendar-event{text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none}.calendar-event--timed{left:2px;right:var(--space-4);min-height:1.25rem;padding:2px var(--space-2);border-left:3px solid var(--status-info);background:var(--status-info-bg);font-size:var(--text-sm);z-index:1;min-width:var(--touch-target-min);border-radius:4px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.calendar-event--timed .calendar-event__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.calendar-event--timed .calendar-event__location{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.calendar-event--task{border-left-style:dashed;border-left-color:var(--status-info)}.calendar-event--task .calendar-event__title:before{content:"✓";opacity:.6;width:1em;margin-right:4px;display:inline-block}.calendar-event--task-completed{border-left-color:var(--status-completed);background:var(--status-completed-bg)}.calendar-event--task-completed .calendar-event__title{opacity:.75;text-decoration:line-through}.calendar-event--task-overdue{border-left-color:var(--status-overdue);background:var(--status-overdue-bg)}.calendar-event--task-chip{background:var(--status-info);border:1px dashed #ffffffb3}.calendar-event--task-chip.calendar-event--task-completed{background:var(--status-completed);color:#fff}.calendar-event--task-chip.calendar-event--task-overdue{background:var(--status-overdue);color:#fff}.calendar-event--occasion{background:var(--status-occasion);color:#fff}.calendar-event--occasion .calendar-event__title:before{content:"🎉";margin-right:4px;display:inline-block}.calendar-month{border:1px solid var(--border);border-radius:8px;overflow:hidden}.calendar-month__weekdays,.calendar-month-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-month__weekdays{border-bottom:1px solid var(--border)}.calendar-month__weekday{padding:var(--space-2);text-align:center;font-size:var(--text-sm);color:var(--text-h);font-weight:600}.calendar-month-cell{min-height:4.5rem;padding:var(--space-1) var(--space-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);gap:var(--space-1);flex-direction:column;display:flex}.calendar-month-grid .calendar-month-cell:nth-child(7n){border-right:none}.calendar-month-grid .calendar-month-cell:nth-last-child(-n+7){border-bottom:none}.calendar-month-cell--outside{opacity:.45}.calendar-month-cell__date{width:1.5rem;height:1.5rem;font-size:var(--text-sm);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.calendar-month-cell--today .calendar-month-cell__date{background:var(--highlight-button);color:#fff;border-radius:50%}.calendar-month-cell__events{flex-direction:column;gap:2px;max-height:3.5rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.calendar-event--chip{width:100%;min-height:unset;padding:1px var(--space-2);font-size:var(--text-sm);background:var(--status-info);color:#fff;text-align:left;white-space:nowrap;border:none;border-radius:4px;align-items:baseline;gap:4px;font-weight:600;display:flex;overflow:hidden}.calendar-event--chip .calendar-event__time{opacity:.85;flex:none;font-weight:400}.calendar-event--chip .calendar-event__title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.task-completion-confirmation{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--status-completed);border-radius:var(--radius-md);background:var(--status-completed-bg);color:var(--status-completed);text-align:left}.task-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-flow:wrap;display:flex}.task-row__complete-checkbox{width:var(--touch-target-min);height:var(--touch-target-min);cursor:pointer;flex-shrink:0;margin:0}.task-row__editor-trigger{font:inherit;color:inherit;cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-3);min-width:0;min-height:var(--touch-target-min);text-align:left;background:0 0;border:none;flex-wrap:wrap;flex:14rem;padding:0;display:flex}.task-row__details{gap:var(--space-1);flex-direction:column;flex:14rem;min-width:0;display:flex}.task-row__title{color:var(--text-h);font-weight:600}.task-row__meta,.task-form__hint{color:var(--text);font-size:var(--text-sm)}.task-form__optional-fields{border:1px solid var(--border);padding:var(--space-3);border-radius:8px}.task-status{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);white-space:nowrap;border-radius:999px;font-weight:600;display:inline-flex}.task-status__icon{border-radius:50%;width:8px;height:8px;display:inline-block}.task-status--overdue{color:var(--status-overdue);background:var(--status-overdue-bg)}.task-status--overdue .task-status__icon{background:var(--status-overdue)}.task-status--due-soon{color:var(--status-due-soon);background:var(--status-due-soon-bg)}.task-status--due-soon .task-status__icon{background:var(--status-due-soon)}.task-status--completed{color:var(--status-completed);background:var(--status-completed-bg)}.task-status--completed .task-status__icon{background:var(--status-completed)}.task-status--upcoming{color:var(--status-info);background:var(--status-info-bg)}.task-status--upcoming .task-status__icon{background:var(--status-info)}.task-status--no-due-date{color:var(--text);background:var(--code-bg)}.task-status--no-due-date .task-status__icon{background:var(--text)}.home-list{margin:0;padding:0;list-style:none}.home-row{padding:var(--space-3) var(--space-4)}.home-row__link{align-items:center;gap:var(--space-3);min-height:var(--touch-target-min);color:inherit;text-decoration:none;display:flex}.home-row__icon{width:1.5rem;height:1.5rem;color:var(--status-info);background:var(--status-info-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.home-row__icon--task{color:var(--status-overdue);background:var(--status-overdue-bg)}.home-row__icon--occasion{color:var(--status-due-soon);background:var(--status-due-soon-bg)}.home-row__icon--grocery{color:var(--status-completed);background:var(--status-completed-bg)}.home-row__icon svg{width:1rem;height:1rem}.home-row__details{gap:var(--space-1);flex-direction:column;flex:auto;min-width:0;display:flex}.home-row__title{color:var(--text-h);overflow-wrap:break-word;font-weight:600}.home-row__meta{color:var(--text);font-size:var(--text-sm)}.occasion-milestone{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--status-info);background:var(--status-info-bg);white-space:nowrap;border-radius:999px;font-weight:600;display:inline-flex}.occasion-milestone__icon{background:var(--status-info);border-radius:50%;width:8px;height:8px;display:inline-block}.grocery-item-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.grocery-item-row__content{align-items:center;gap:var(--space-3);min-width:0;min-height:var(--touch-target-min);flex:auto;display:flex}.grocery-item-row__editor-trigger{font:inherit;color:inherit;cursor:pointer;min-width:0;min-height:var(--touch-target-min);text-align:left;background:0 0;border:none;flex:auto;padding:0}.grocery-item-row__checkbox{appearance:none;width:var(--touch-target-min);height:var(--touch-target-min);border:2px solid var(--border);border-radius:var(--radius-sm);background-color:var(--bg);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard);flex-shrink:0;place-content:center;margin:0;display:inline-grid}.grocery-item-row__checkbox:before{content:"";width:.85rem;height:.85rem;transition:transform var(--motion-fast) var(--ease-standard);background-color:#fff;transform:scale(0);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.grocery-item-row__checkbox:checked{background-color:var(--status-completed);border-color:var(--status-completed)}.grocery-item-row__checkbox:checked:before{transform:scale(1)}.grocery-item-row__checkbox:hover:not(:disabled){border-color:var(--status-completed)}.grocery-item-row__checkbox:disabled{opacity:1;cursor:default}.grocery-item-row__name{overflow-wrap:break-word}.grocery-item-row__name--purchased{color:var(--status-completed);text-decoration:line-through}.occasion-list{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (width>=481px){.occasion-list{grid-template-columns:repeat(2,1fr)}}@media (width>=1025px){.occasion-list{grid-template-columns:repeat(3,1fr)}}.occasion-row{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.occasion-row__editor-trigger{font:inherit;color:inherit;cursor:pointer;align-items:flex-start;gap:var(--space-2);min-height:var(--touch-target-min);text-align:left;background:0 0;border:none;flex-direction:column;width:100%;padding:0;display:flex}.occasion-row__label{overflow-wrap:break-word;white-space:normal;width:100%}.occasion-row__date{font-size:var(--text-sm);color:var(--text)}.meal-plan-time-grid{--gutter-width:5.5rem;border:1px solid var(--border);background:var(--bg);border-radius:8px;overflow:hidden}.meal-plan-time-grid__grid{display:grid}.meal-plan-time-grid__corner{background:var(--bg);border-bottom:1px solid var(--border)}.meal-plan-time-grid__day-heading{padding:var(--space-2) var(--space-1);border-left:1px solid var(--border);border-bottom:1px solid var(--border);font-size:var(--text-sm);flex-direction:column;align-items:center;gap:2px;display:flex}.meal-plan-time-grid__day-heading .calendar-day__date{font-size:var(--text-lg);color:var(--text-h);font-weight:700}.meal-plan-time-grid__day-heading .calendar-day__weekday{color:var(--text-h);opacity:.75}.meal-plan-time-grid__day-heading--today .calendar-day__date,.meal-plan-time-grid__day-heading--today .calendar-day__weekday{color:var(--highlight-button);opacity:1}.meal-plan-time-grid__slot-label{padding:var(--space-2);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-h);align-items:center;font-weight:600;display:flex}.meal-plan-time-grid__cell{padding:var(--space-1) var(--space-2);border-left:1px solid var(--border);border-top:1px solid var(--border);align-items:center;display:flex}@media (width<=480px){.meal-plan-time-grid{--gutter-width:4.5rem}.meal-plan-time-grid__grid{overflow-x:auto}}.meal-plan-day-view{gap:var(--space-3);flex-direction:column;display:flex}.meal-plan-day-selector{gap:var(--space-2);padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.meal-plan-day-chip{min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;cursor:pointer;border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.meal-plan-day-chip__weekday{font-size:var(--text-sm);color:var(--text-h)}.meal-plan-day-chip__date{font-size:var(--text-lg);color:var(--text-h);font-weight:700}.meal-plan-day-chip--today .meal-plan-day-chip__date{color:var(--highlight-button)}.meal-plan-day-chip--active{border-color:var(--highlight-button);background:var(--status-info-bg)}.meal-plan-day-chip--active .meal-plan-day-chip__date{color:var(--text-h)}.meal-plan-day-card{border:1px solid var(--border);padding:var(--space-3);gap:var(--space-3);border-radius:8px;flex-direction:column;display:flex}.meal-plan-day-card__heading{font-size:var(--text-lg);color:var(--text-h);margin:0}.meal-plan-day-card__slot{gap:var(--space-1);flex-direction:column;display:flex}.meal-plan-day-card__slot-label{font-size:var(--text-sm);color:var(--text-h)}.meal-plan-slot__button{align-items:center;gap:var(--space-2);text-align:left;width:100%;min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;display:flex}.meal-plan-slot__button svg{flex-shrink:0;width:1.125rem;height:1.125rem}.meal-plan-slot__button--empty{color:var(--text-muted,var(--text));border-style:dashed}.grocery-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.auth-page{justify-content:center;align-items:center;gap:var(--space-2);min-height:60vh;padding:var(--space-4) var(--space-2);text-align:center;flex-direction:column;display:flex}.dummy-sign-in-page{padding:var(--space-6) var(--space-2);justify-content:center;display:flex}.dummy-sign-in-page__card{width:100%;max-width:420px}.dummy-sign-in-page__presets{gap:var(--space-1);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.dummy-sign-in-page__actions{gap:var(--space-1);margin-top:var(--space-3);display:flex}.dummy-sign-in-page__divider{margin:var(--space-4) 0;border:none;border-top:1px solid var(--border)}.onboarding-page{padding:var(--space-6) var(--space-2);justify-content:center;display:flex}.onboarding-page__card{width:100%;max-width:420px}@media (width<=480px){#root{border-inline:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--touch-target-min:44px}.app-shell{text-align:initial;flex:1;align-items:stretch;display:flex}.app-shell__main{min-width:0;padding:var(--space-5) var(--space-6);box-sizing:border-box;flex:1}@media (width<=640px){.app-shell__main{padding:var(--space-4) var(--space-4)}}.app-nav{width:var(--nav-width-collapsed);border-right:1px solid var(--border);background:var(--bg);height:100svh;transition:width var(--motion-base) var(--ease-standard);z-index:10;flex:none;align-self:flex-start;position:sticky;top:0;overflow:hidden auto}.app-nav--expanded{width:var(--nav-width-expanded)}.app-nav__backdrop{z-index:9;background:#0006;border:none;padding:0;display:none;position:fixed;inset:0}.app-nav__toggle{width:100%;min-height:var(--touch-target-min);border:none;border-bottom:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;box-sizing:border-box;transition:background-color var(--motion-fast) var(--ease-standard);background:0 0;align-items:center;gap:12px;padding:14px 16px;display:flex}.app-nav__toggle:hover{background:var(--accent-bg);color:var(--text-h)}.app-nav__list{flex-direction:column;gap:4px;margin:0;padding:8px;list-style:none;display:flex}.app-nav__link{min-height:var(--touch-target-min);border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;box-sizing:border-box;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);border-left:3px solid #0000;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex;overflow:hidden}.app-nav__link:hover{background:var(--accent-bg);color:var(--text-h)}.app-nav__link--active{background:var(--accent-bg);border:1px solid var(--accent-border);border-left:3px solid var(--accent);color:var(--text-h);font-weight:600}.app-nav__icon{flex-shrink:0;width:20px;height:20px}.app-nav__label,.app-nav__toggle-label{opacity:0;width:0;transition:opacity .12s;overflow:hidden}.app-nav--expanded .app-nav__label,.app-nav--expanded .app-nav__toggle-label{opacity:1;width:auto}.mobile-nav{display:none}.mobile-nav__list{gap:var(--space-2);grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;margin:0;padding:0;list-style:none;display:grid}.mobile-nav__link,.mobile-nav__button,.mobile-nav__create{width:100%;min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:var(--space-2) var(--space-1);border-radius:var(--radius-md);color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-1);font:inherit;font-size:var(--text-sm);transition:background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:none;flex-direction:column;line-height:1.2;text-decoration:none;display:flex}.mobile-nav__link:hover,.mobile-nav__button:hover{background:var(--accent-bg);color:var(--text-h)}.mobile-nav__link--active,.mobile-nav__button--active{background:var(--accent-bg);color:var(--accent-button);font-weight:600}.mobile-nav__create-slot{justify-content:center;display:flex}.mobile-nav__create{border:1px solid var(--accent-button);background:var(--accent-button);color:#fff;min-height:56px;box-shadow:var(--shadow-raised);transform:translateY(calc(var(--space-4) * -1))}.mobile-nav__create:hover,.mobile-nav__create--active{background:var(--accent);border-color:var(--accent)}.mobile-nav__icon{flex-shrink:0;width:20px;height:20px}.mobile-nav__icon--create{width:30px;height:30px}.mobile-nav__label{text-align:center;inline-size:100%;display:block}@media (width<=480px){.app-shell{display:block}.ui-toast-list,.page-create-action,.app-nav{display:none}.app-shell__main{padding:var(--space-4);padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}.mobile-nav{z-index:20;padding:var(--space-3) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg);display:block;position:fixed;inset:auto 0 0;box-shadow:0 -10px 24px #0f172a1f}}@media (prefers-reduced-motion:reduce){.mobile-nav__link,.mobile-nav__button,.mobile-nav__create{transition:none}}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:700}h1{font-size:var(--text-2xl);letter-spacing:-.5px;margin:var(--space-5) 0;font-weight:800}@media (width<=1024px){h1{font-size:var(--text-xl);margin:var(--space-4) 0}}h2{font-size:var(--text-lg);letter-spacing:-.2px;margin:0 0 var(--space-2);line-height:118%}@media (width<=1024px){h2{font-size:var(--text-base)}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}@media (width<=480px){.editor-frame{z-index:110;background:var(--bg);grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.editor-frame__header{z-index:1;align-items:center;gap:var(--space-2);padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-3) var(--space-3);border-bottom:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:sticky;top:0}.editor-frame__header .ui-button{padding-inline:var(--space-2)}.editor-frame__title{min-width:0;color:var(--text-h);font-family:var(--heading);font-size:var(--text-lg);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.editor-frame__body{overscroll-behavior:contain;min-height:0;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));overflow-y:auto}.editor-frame__body>.ui-card{margin-bottom:0}.editor-frame__desktop-submit,.editor-frame__desktop-cancel{display:none}.editor-frame__body :is(input,textarea,select,button){scroll-margin-block:calc(var(--touch-target-min) * 2)}}@media (width>=481px){.editor-frame{background:0 0}.editor-frame__header{display:none}}
