:root,[data-theme=light-gray]{--background:#e4e4e7;--foreground:#171717;--muted:#52525b;--muted-light:#71717a;--surface:#d4d4d8;--primary:#09090b;--primary-text:#fff;--card:#fff;--border:#d4d4d8;--soft:#d4d4d8;--nav-background:#fff;--overlay:#00000059}[data-theme=white]{--background:#fff;--foreground:#171717;--muted:#52525b;--muted-light:#71717a;--surface:#fafafa;--primary:#09090b;--primary-text:#fff;--card:#fff;--border:#d4d4d8;--soft:#f4f4f5;--nav-background:#fff;--overlay:#00000059}[data-theme=dark-gray]{--background:#27272a;--foreground:#f8fafc;--muted:#d4d4d8;--muted-light:#a1a1aa;--surface:#18181b;--primary:#f8fafc;--primary-text:#18181b;--card:#3f3f46;--border:#52525b;--soft:#52525b;--nav-background:#18181b;--overlay:#0009}[data-theme=black]{--background:#000;--foreground:#fafafa;--muted:#d4d4d8;--muted-light:#a1a1aa;--surface:#09090b;--primary:#fafafa;--primary-text:#09090b;--card:#18181b;--border:#3f3f46;--soft:#27272a;--nav-background:#09090b;--overlay:#000000b3}*{box-sizing:border-box}html,body{max-width:100%;min-height:100%;margin:0;overflow-x:hidden}body{background:var(--background);color:var(--foreground);min-width:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button,.auth-link-button,.app-nav-link,.link-button,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .12s,background-color .12s,border-color .12s,color .12s,opacity .12s}button:not(:disabled):active,.auth-link-button:active,.app-nav-link:active,.link-button:active,[role=button]:active,.shopping-item:active{transform:scale(.97)}button:disabled{transform: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}@media (prefers-reduced-motion:reduce){button,.auth-link-button,.app-nav-link,.link-button,[role=button]{transition:none}}.home-page{background:var(--surface);min-height:100vh;color:var(--foreground);justify-content:center;align-items:center;padding:4rem 1.5rem;display:flex}.home-intro{text-align:center;width:100%;max-width:24rem}.home-eyebrow{color:var(--muted-light);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.home-title{letter-spacing:0;margin:0;font-size:2.5rem;font-weight:700}.home-description{color:var(--muted);margin:1rem 0 0;font-size:1rem;line-height:1.7}.primary-button{background:var(--primary);width:100%;height:3rem;color:var(--primary-text);cursor:pointer;border:0;border-radius:.5rem;margin-top:2rem;font-size:1rem;font-weight:600}.primary-button:hover{background:#27272a}.primary-button:disabled{cursor:not-allowed;opacity:.7}.secondary-button{border:1px solid var(--border);background:var(--card);width:100%;min-height:3rem;color:var(--foreground);cursor:pointer;border-radius:.5rem;font-weight:700}.secondary-button:hover{background:var(--soft)}.waitlist-logout{margin-top:1rem}.danger-button{color:#b91c1c;border-color:#fecaca}.google-button{color:#3c4043;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:.25rem;justify-content:center;align-items:center;gap:.65rem;width:100%;min-height:3rem;margin-top:1rem;font-size:1rem;font-weight:600;display:inline-flex}.google-button:hover{background:#f8fafd}.google-mark{flex:none;width:1.125rem;height:1.125rem}.app-page{width:100%;min-height:100vh;padding:2rem clamp(1rem,5vw,2rem) 6rem;overflow-x:clip}.page-header{max-width:42rem}.page-header h1{margin:0;font-size:2rem}.page-header p{color:var(--muted);margin:.75rem 0 0;line-height:1.6}.page-eyebrow{color:var(--muted-light);margin:0 0 .5rem;font-size:.875rem;font-weight:700}.login-page{margin:20px}.login-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.login-logo{border:1px solid var(--border);object-fit:cover;border-radius:999px;width:3.75rem;height:3.75rem;display:block}.login-intro{border:1px solid;border-radius:8px;padding:8px}.login-description{font-size:18px}.login-waitlist-note{color:#713f12;background:#fefce8;border-left:.25rem solid #ca8a04;margin:1rem 0 0;padding:.75rem;line-height:1.45}.auth-form{gap:.75rem;margin-top:1.5rem;display:grid}.auth-link-button{justify-content:center;align-items:center;margin-top:1.5rem;text-decoration:none;display:inline-flex}.auth-divider{color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;margin-top:1.5rem;font-size:.875rem;font-weight:700;display:grid}.auth-divider:before,.auth-divider:after{background:var(--border);content:"";height:1px}.auth-form label{gap:.35rem;font-weight:700;display:grid}.auth-form input{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);border-radius:.5rem;padding:.8rem}.language-selector{margin-top:1.5rem}.language-selector-menu{position:relative}.language-selector-menu[open] .language-selector-trigger{border-bottom-right-radius:0;border-bottom-left-radius:0}.language-selector-trigger{border:1px solid var(--border);background:var(--card);min-height:3rem;color:var(--foreground);cursor:pointer;border-radius:.5rem;justify-content:space-between;align-items:center;padding:.75rem .9rem;font-weight:700;list-style:none;display:flex}.language-selector-trigger::-webkit-details-marker{display:none}.language-selector-trigger:after{color:var(--muted);content:"v";font-size:1rem}.language-selector-menu[open] .language-selector-trigger:after{transform:rotate(180deg)}.language-selector-options{z-index:20;border:1px solid var(--border);background:var(--card);border-top:0;border-radius:0 0 .5rem .5rem;display:grid;position:absolute;left:0;right:0;overflow:hidden;box-shadow:0 1rem 2rem #00000029}.language-selector-options form{margin:0}.language-selector-options button{border:0;border-top:1px solid var(--border);background:var(--card);width:100%;min-height:3rem;color:var(--foreground);text-align:left;cursor:pointer;font:inherit;padding:.75rem .9rem}.language-selector-options button.is-active{background:var(--soft)}.auth-message{border-radius:.5rem;margin:1rem 0 0;padding:.85rem;font-weight:700}.auth-message-error{color:#991b1b;background:#fef2f2}.auth-message-success{color:#166534;background:#f0fdf4}.auth-message-warning{color:#713f12;background:#fefce8}.profile-card{border:1px solid var(--border);background:var(--card);border-radius:.5rem;margin:1rem 0 1.5rem;padding:1rem}.profile-label{color:var(--muted-light);margin:0 0 .35rem}.profile-email{overflow-wrap:anywhere;margin:0;font-size:1.1rem;font-weight:700}.ios-install-hint{border-left:.3rem solid #ca8a04;gap:.5rem;display:grid;position:relative}.ios-install-hint h2,.ios-install-hint p{margin:0}.ios-install-hint h2{padding-right:2.25rem;font-size:1rem}.ios-install-hint p{color:var(--muted);line-height:1.45}.ios-install-hint .icon-button{position:absolute;top:.45rem;right:.45rem}.family-settings{gap:1rem;display:grid}.family-panel-toggle{width:100%;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:0;display:flex}.family-panel-toggle span:first-child{gap:.25rem;display:grid}.family-panel-toggle strong{overflow-wrap:anywhere;font-size:1.1rem}.family-heading{gap:.9rem;display:grid}.family-heading-actions{grid-template-columns:auto 1fr;gap:.75rem;display:grid}.family-name-button{color:var(--foreground);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:1.1rem;font-weight:800}.family-create-button{margin-top:0}.family-leave-button{min-height:3rem;margin-top:0;padding:0 1rem}.family-code-box{border:1px dashed var(--border);background:var(--soft);border-radius:.75rem;padding:.85rem}.family-code-box button{width:100%;color:var(--foreground);cursor:pointer;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;margin:0;padding:0;font-family:monospace;font-size:1rem;font-weight:800}.family-code-hint{color:var(--muted);margin:.35rem 0 0;font-size:.82rem}.family-code-form{gap:.75rem;display:grid}.family-code-form label{gap:.4rem;font-weight:700;display:grid}.family-code-form input,.family-code-form select{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);font:inherit;border-radius:.5rem;padding:.8rem}.family-code-form .primary-button,.family-code-form .secondary-button{margin-top:0}.family-members{border-top:1px solid var(--border);padding-top:1rem}.family-members h3{margin:0;font-size:1rem}.family-members ul{gap:.65rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.family-members li{justify-content:space-between;align-items:center;gap:.75rem;min-height:2.5rem;display:flex}.family-members li>span{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:flex}.family-owner-badge{background:var(--soft);color:var(--muted);border-radius:999px;padding:.2rem .45rem;font-size:.72rem;font-weight:700}.family-remove-member{color:#b91c1c;cursor:pointer;font:inherit;background:0 0;border:0;font-size:.85rem;font-weight:700}.theme-settings{gap:1rem;display:grid}.theme-settings-toggle{width:100%;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:0;display:flex}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.theme-option{border:1px solid var(--border);min-height:5.5rem;color:var(--foreground);cursor:pointer;text-align:left;border-radius:.75rem;padding:.75rem;font-weight:800;position:relative}.theme-option span:last-child{position:absolute;bottom:.75rem;left:.75rem}.theme-preview-white{color:#171717;background:#fff}.theme-preview-light-gray{color:#171717;background:#e4e4e7}.theme-preview-dark-gray{color:#f8fafc;background:#27272a}.theme-preview-black{color:#fafafa;background:#000}.theme-check{color:#fff;background:#16a34a;border-radius:999px;place-items:center;width:1.45rem;height:1.45rem;font-size:.9rem;line-height:1;display:grid;position:absolute;top:.55rem;right:.55rem}.profile-admin-card{color:#fff;background:#18181b;border:1px solid #18181b;border-radius:.75rem;gap:.3rem;margin:0 0 1.25rem;padding:1rem;text-decoration:none;display:grid;position:relative;box-shadow:0 1rem 2rem #0000002e}.profile-admin-card span{opacity:.76;font-size:.85rem;font-weight:700}.profile-admin-card strong{font-size:1.05rem;line-height:1.25}.profile-admin-badge{border:2px solid var(--background);color:#fff;opacity:1;background:#dc2626;border-radius:999px;place-items:center;min-width:1.8rem;height:1.8rem;padding:0 .4rem;font-size:.78rem;font-weight:900;line-height:1;display:grid;position:absolute;top:-.55rem;right:-.55rem}.profile-action-link{margin-bottom:.75rem}.admin-page{padding-bottom:7rem}.admin-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.admin-stat-card,.admin-section,.admin-feedback-item,.admin-user-row{border:1px solid var(--border);background:var(--card);border-radius:.5rem}.admin-stat-card{gap:.35rem;min-height:6.75rem;padding:.85rem;display:grid}.admin-stat-card span,.admin-user-row span,.admin-feedback-item span,.admin-feedback-item small,.admin-muted{color:var(--muted)}.admin-stat-card strong{font-size:1.8rem;line-height:1}.admin-stat-card small{color:var(--muted-light)}.admin-section{gap:1rem;margin:1rem 0;padding:1rem;display:grid}.admin-section h2,.admin-feedback-column h3{margin:0}.admin-section-header{gap:1rem;display:grid}.admin-section-header p{color:var(--muted);margin:.35rem 0 0}.admin-view-switch{border:1px solid var(--border);background:var(--soft);border-radius:.65rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.25rem;display:grid}.admin-view-switch button{min-height:2.65rem;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.45rem;place-items:center;font-weight:800;display:grid}.admin-view-switch button.is-active{background:var(--card);color:var(--foreground);box-shadow:0 .4rem 1rem #00000014}.admin-feedback-grid{gap:1rem;display:grid}.admin-feedback-column{gap:.75rem;min-width:0;display:grid}.admin-feedback-column h3{justify-content:space-between;align-items:center;gap:1rem;font-size:1rem;display:flex}.admin-feedback-column h3 span{background:var(--soft);min-width:1.8rem;height:1.8rem;color:var(--foreground);border-radius:999px;place-items:center;font-size:.85rem;display:grid}.admin-list{gap:.75rem;display:grid}.admin-feedback-item,.admin-user-row{gap:.7rem;padding:.85rem;display:grid}.admin-feedback-item div,.admin-user-row{min-width:0}.admin-feedback-item div{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.admin-feedback-item p{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;line-height:1.45}.admin-feedback-footer{gap:.75rem;display:grid}.admin-feedback-footer small{gap:.15rem;display:grid}.admin-feedback-footer small strong{color:var(--foreground)}.admin-feedback-footer small span{overflow-wrap:anywhere}.admin-feedback-footer .secondary-button{min-height:2.75rem;margin-top:0}.admin-feedback-item strong,.admin-user-row strong{overflow-wrap:anywhere}.admin-user-row div{gap:.25rem;min-width:0;display:grid}.admin-access-message{color:var(--muted);margin:0;font-weight:700}.admin-access-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.admin-access-actions .primary-button,.admin-access-actions .secondary-button{min-height:2.75rem;margin-top:0}@media (min-width:64rem){.admin-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-feedback-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-section-header{grid-template-columns:1fr auto;align-items:center}.admin-view-switch{min-width:14rem}.admin-feedback-footer{grid-template-columns:1fr auto;align-items:center}.admin-user-row{grid-template-columns:1.2fr 1fr;align-items:center}}.brand-mark{top:max(1rem, env(safe-area-inset-top));z-index:25;color:var(--foreground);border-radius:999px;align-items:center;gap:.5rem;font-weight:900;text-decoration:none;display:inline-flex;position:fixed;right:1rem}.brand-logo{border:1px solid var(--border);object-fit:cover;border-radius:999px;width:2.75rem;height:2.75rem;transition:transform .18s;display:block;box-shadow:0 .55rem 1.25rem #0f172a29}.brand-mark:hover .brand-logo{transform:scale(1.05)}.brand-name{color:var(--foreground);font-size:.95rem;display:none}@media (min-width:42rem){.brand-mark{background:var(--card);border:1px solid var(--border);padding:.35rem .75rem .35rem .35rem;right:1.5rem;box-shadow:0 .55rem 1.25rem #0f172a1f}.brand-name{display:inline}}.app-nav{background-color:var(--nav-background);border-top:1px solid var(--border);z-index:20;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.app-nav-link{min-height:3.85rem;color:var(--muted);touch-action:manipulation;text-align:center;place-items:center;padding:.7rem .25rem;text-decoration:none;display:grid}.app-nav-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-nav-icon{width:1.45rem;height:1.45rem}.app-nav-link:hover,.app-nav-link.is-active{color:var(--foreground);background:var(--soft)}.app-nav-link.is-dragging{background:var(--soft);color:var(--foreground);opacity:.9;z-index:2;box-shadow:0 0 0 .2rem #16a34a29}.app-nav-footer{display:none}.meal-list{gap:1rem;min-width:0;margin-top:2rem;display:grid}.meal-card{border:1px solid var(--border);background-color:var(--card);cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:.75rem;width:100%;min-width:0;padding:1rem;overflow:hidden}.meal-card:active{transform:scale(.99)}.meal-card:focus,.meal-card:focus-visible{outline:none}.meal-card-header{justify-content:space-between;gap:1rem;min-width:0;display:flex}.meal-card-header>div:first-child{min-width:0}.meal-card h2{overflow-wrap:anywhere;margin:0;font-size:1.15rem}.meal-card p{color:var(--muted);overflow-wrap:anywhere;margin:.35rem 0 0;line-height:1.5}.meal-card span{color:var(--muted-light);flex:none;font-size:.8rem;font-weight:700}.ingredient-list{flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.ingredient-list li{background:var(--soft);color:var(--muted);border-radius:999px;padding:.35rem .55rem;font-size:.85rem}.sticky-action-bar{z-index:10;background:var(--background);padding:.75rem 0;position:sticky;top:0}.sticky-action-bar .primary-button{margin-top:0}.meal-form{border:1px solid var(--border);background:var(--card);border-radius:.75rem;gap:1rem;margin:1rem 0 2rem;padding:1rem;display:grid}.meal-form label{color:var(--foreground);gap:.4rem;font-size:.95rem;font-weight:700;display:grid}.meal-form input,.meal-form textarea{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);border-radius:.5rem;padding:.75rem;font-size:1rem}.meal-form textarea{resize:vertical}.dinner-edit-backdrop{align-items:center}.dinner-edit-prompt{max-height:calc(100dvh - 2rem);overflow-y:auto}.dinner-edit-form{border:0;margin:.75rem 0 0;padding:0}.dinner-edit-form .primary-button,.dinner-edit-form .secondary-button{margin-top:0}.empty-state{border:1px dashed var(--border);background:var(--card);border-radius:.75rem;margin-top:2rem;padding:1.25rem}.empty-state h2{margin:0;font-size:1.15rem}.empty-state p{color:var(--muted);margin:.75rem 0 0;line-height:1.6}.meal-card-meta{flex:none;justify-items:end;gap:.4rem;display:grid}.icon-button{background:var(--soft);width:2.75rem;height:2.75rem;color:var(--foreground);cursor:pointer;border:0;border-radius:999px;font-size:1rem;font-weight:700}.icon-button:hover{background:var(--border)}.meal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:100%;margin-top:1rem;display:grid}.meal-actions button{border:1px solid var(--border);background:var(--card);min-width:0;min-height:3.25rem;color:var(--foreground);overflow-wrap:anywhere;cursor:pointer;border-radius:.5rem;padding:.55rem .35rem;font-size:.95rem;font-weight:700;line-height:1.15}.meal-actions button:hover{background:var(--soft)}.prompt-backdrop{z-index:30;background:var(--overlay);justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.meal-prompt{background:var(--card);border-radius:1rem;width:100%;max-width:28rem;padding:1rem}.meal-prompt h2{margin:0;font-size:1.2rem}.meal-prompt p{color:var(--muted);margin:.5rem 0 0}.meal-prompt-actions{gap:.75rem;margin-top:1rem;display:grid}.meal-prompt-actions button{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);cursor:pointer;border-radius:.5rem;padding:.8rem;font-weight:700}.meal-prompt-actions button:hover{background:var(--soft)}.onboarding-backdrop{align-items:center}.onboarding-prompt{gap:1rem;padding:1.25rem;display:grid}.onboarding-header{align-items:center;gap:.75rem;display:flex}.onboarding-icon{color:#18181b;background:#f4d58d;border-radius:50%;flex:none;place-items:center;width:3rem;height:3rem;display:grid}.onboarding-prompt .page-eyebrow,.onboarding-step-count,.onboarding-prompt h2,.onboarding-description{margin:0}.onboarding-step-count{color:var(--muted);margin-top:.2rem;font-size:.82rem;font-weight:700}.onboarding-description{min-height:5.6rem;line-height:1.55}.onboarding-progress{gap:.4rem;display:flex}.onboarding-progress span{background:var(--soft);border-radius:50%;width:.55rem;height:.55rem;transition:background .15s,transform .15s}.onboarding-progress span.is-active{background:#16a34a;transform:scale(1.2)}.onboarding-main-actions{gap:.75rem;display:flex}.onboarding-main-actions .primary-button,.onboarding-main-actions .secondary-button{margin-top:0}.onboarding-dismiss-actions{flex-wrap:wrap;justify-content:space-between;gap:.75rem;display:flex}.onboarding-dismiss-actions button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:.25rem 0;font-size:.85rem;font-weight:700;text-decoration:underline}.onboarding-dismiss-actions button:hover{color:var(--foreground)}.wheel-page{flex-direction:column;display:flex}.wheel-page .page-header{transition:opacity .4s,transform .4s}.wheel-page.is-spinning .page-header{opacity:.18;transform:scale(.98)}.wheel-section{justify-items:center;gap:2rem;margin-top:3rem;transition:transform .4s;display:grid}.wheel-page.is-spinning .wheel-section{transform:scale(1.04)}.meal-wheel-wrap{aspect-ratio:1;width:min(84vw,24rem);position:relative}.meal-wheel-button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;display:block}.meal-wheel-button:disabled{cursor:default}.meal-wheel-button:not(:disabled):active{transform:scale(.99)}.meal-wheel-button:focus-visible{outline:3px solid var(--primary);outline-offset:.35rem;border-radius:50%}.svg-meal-wheel{filter:drop-shadow(0 1rem 2rem #0f172a40);width:100%;height:100%;transition:transform 3.2s cubic-bezier(.08,.72,.12,1)}.wheel-pointer{z-index:2;clip-path:polygon(50% 100%,0 0,100% 0);filter:drop-shadow(0 .15rem .15rem #00000059);background:#dc2626;width:1.3rem;height:1.7rem;position:absolute;top:-.55rem;left:50%;transform:translate(-50%)}.confetti{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{width:.45rem;height:.8rem;animation:2.6s cubic-bezier(.16,.8,.25,1) both confetti-cannon;animation-delay:var(--delay);background:#facc15;border-radius:.12rem;position:absolute;bottom:.5rem}.confetti span[data-side=left]{left:.75rem}.confetti span[data-side=right]{right:.75rem}.confetti span:nth-child(3n){background:#fb7185}.confetti span:nth-child(3n+1){background:#38bdf8}.confetti span:nth-child(3n+2){background:#22c55e}@keyframes confetti-cannon{0%{opacity:0;transform:translate(0)scale(.6)rotate(0)}12%{opacity:1}38%{opacity:1;transform:translate(var(--x), var(--y)) scale(1) rotate(var(--rotate))}to{opacity:0;transform:translate(calc(var(--x) * 1.35), 8rem) scale(1) rotate(calc(var(--rotate) * 2))}}.auth-form select{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);border-radius:.5rem;padding:.8rem}.checkbox-label{border:1px solid var(--border);background:var(--card);border-radius:.75rem;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;padding:.85rem;font-weight:700;line-height:1.35;display:grid}.checkbox-label input{accent-color:#18181b;width:1.25rem;height:1.25rem;margin:0}.shopping-prompt{flex-direction:column;max-height:min(36rem,100vh - 2rem);padding-bottom:0;display:flex;overflow:hidden}.shopping-ingredient-list{gap:.75rem;margin-top:1rem;padding-bottom:1rem;display:grid;overflow-y:auto}.shopping-ingredient-row{border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:.75rem;padding:.8rem;font-weight:700;display:flex}.shopping-ingredient-row input{flex:none;width:1.15rem;height:1.15rem}.shopping-prompt-footer{border-top:1px solid var(--border);background:var(--card);margin:0 -1rem;padding:1rem;position:sticky;bottom:0}.shopping-prompt-footer .primary-button{margin-top:0}.feedback-button{margin-top:2rem}.feedback-prompt{max-height:min(38rem,100vh - 2rem);overflow-y:auto}.feedback-form{gap:1rem;margin-top:1rem;display:grid}.feedback-form label{gap:.4rem;font-weight:700;display:grid}.feedback-form select,.feedback-form textarea{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);border-radius:.5rem;padding:.8rem}.feedback-form textarea{resize:vertical}.feedback-count{color:var(--muted);text-align:right;margin:-.5rem 0 0;font-size:.85rem}.legal-page{max-width:42rem;margin:0 auto;padding:2rem 1rem;line-height:1.6}.legal-page h1{margin-top:0}.legal-page h2{margin-top:2rem}.link-button{color:#2563eb;cursor:pointer;text-align:left;background:0 0;border:0;width:fit-content;padding:0;font-weight:700}.link-button:hover{text-decoration:underline}.shopping-page{padding-bottom:11rem}.shopping-back-link{color:var(--foreground);touch-action:manipulation;align-items:center;gap:.2rem;margin-bottom:1.25rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .12s,opacity .12s;display:inline-flex}.shopping-back-link:active{opacity:.72;transform:scale(.96)}.shopping-back-link svg{width:1.1rem;height:1.1rem}.shopping-lists-page{padding-bottom:11rem}.shopping-lists{gap:.75rem;margin-top:1.5rem;display:grid}.shopping-list-card{border:1px solid var(--border);background:var(--card);touch-action:pan-y;border-radius:.75rem;align-items:center;gap:.35rem;padding:.35rem;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.shopping-list-card:active,.shopping-list-card.is-pressed{border-color:#16a34a;transform:scale(.975);box-shadow:0 0 0 .16rem #16a34a24}.shopping-list-card-main{min-width:0;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:0;flex:1;gap:.45rem;padding:.65rem;display:grid}.shopping-list-card-heading,.shopping-list-card-meta,.shopping-list-card-meta span{align-items:center;display:flex}.shopping-list-card-heading{justify-content:space-between;gap:.5rem}.shopping-list-card-heading small{color:#15803d;font-size:.72rem}.shopping-list-card-meta{color:var(--muted);flex-wrap:wrap;gap:.35rem .75rem;font-size:.78rem}.shopping-list-card-meta span{gap:.25rem}.shopping-list-card-meta svg,.shopping-add-bar svg{width:1rem;height:1rem}.shopping-list-form-hint{color:var(--muted);margin:0;font-size:.82rem}.shopping-list-form,.shopping-list-form label,.shopping-list-select{gap:.5rem;display:grid}.shopping-list-form{margin-top:1rem}.shopping-list-form label,.shopping-list-select{font-weight:700}.shopping-list-form input,.shopping-list-form select,.shopping-list-select select{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);font:inherit;border-radius:.5rem;padding:.8rem}.shopping-list-select{margin-top:1rem}.shopping-sync-status{color:var(--muted);margin:.75rem 0;font-size:.85rem;font-weight:700}.shopping-sync-status.is-offline{color:#b45309}.shopping-list{gap:.75rem;margin-top:2rem;display:grid}.shopping-item{border:1px solid var(--border);background:var(--card);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem;transition:transform .12s,border-color .12s,box-shadow .12s,opacity .12s;display:flex}.shopping-item.is-dragging{cursor:grabbing;opacity:.82;z-index:5;border-color:#16a34a;box-shadow:0 0 0 .2rem #16a34a29}.shopping-item-overlay{cursor:grabbing;pointer-events:none;transform:scale(1.02);box-shadow:0 1rem 2.5rem #0f172a3d}.shopping-item.is-checked{opacity:.58}.shopping-item-check{align-items:center;gap:.75rem;min-width:0;font-weight:700;display:flex}.shopping-item-check span{overflow-wrap:anywhere}.shopping-item-check input{flex:none;width:1.15rem;height:1.15rem}.shopping-item.is-checked span{text-decoration:line-through}.shopping-add-bar{z-index:12;background:var(--background);padding:.75rem 0;position:fixed;bottom:4.25rem;left:1rem;right:1rem}.shopping-add-bar .primary-button{justify-content:center;align-items:center;gap:.4rem;margin-top:0;display:flex}.shopping-add-prompt{padding-bottom:1rem}.shopping-add-form{gap:1rem;margin-top:1rem;display:grid}.shopping-add-form label{gap:.4rem;font-weight:700;display:grid}.shopping-add-form input{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);font:inherit;border-radius:.5rem;padding:.85rem}.shopping-add-actions{background:var(--card);gap:.75rem;padding-top:.25rem;display:grid;position:sticky;bottom:0}.shopping-add-actions .primary-button,.shopping-add-actions .secondary-button{margin-top:0}.weekly-page{flex-direction:column;min-height:calc(100svh - 3.85rem);display:flex}.weekly-header{gap:1rem;margin-bottom:1rem;display:grid}.weekly-header h1{font-size:1.35rem}.weekly-add-week-button{margin-top:0}.weekly-menu-grid{gap:1rem;display:grid}.weekly-menu-card{border:1px solid var(--border);background:var(--card);border-radius:.75rem;gap:.9rem;padding:.9rem;display:grid;box-shadow:0 .75rem 2rem #0f172a12}.weekly-menu-card-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.weekly-menu-card-header h2{margin:0;font-size:1rem}.weekly-menu-delete-button{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--muted);cursor:pointer;font:inherit;text-transform:uppercase;border-radius:999px;place-items:center;font-size:1rem;font-weight:900;line-height:1;display:grid}.weekly-menu-delete-button:hover{color:var(--foreground)}.weekly-compact-list{flex:1;grid-template-rows:repeat(7,minmax(3rem,1fr));gap:.65rem;min-height:min(28rem,100svh - 18rem);display:grid}.weekly-row{border:1px solid var(--border);background:var(--card);border-radius:.45rem;grid-template-columns:2.75rem minmax(0,1fr) auto;align-items:center;gap:.65rem;min-height:3.15rem;padding:.45rem .6rem;display:grid}.weekly-row.is-over{border-color:#16a34a;box-shadow:0 0 0 .15rem #16a34a24}.weekly-row-day{color:var(--foreground);font-size:.85rem;font-weight:800}.weekly-meal-pill,.weekly-add-inline{width:100%;color:var(--foreground);cursor:grab;font:inherit;overflow-wrap:anywhere;text-align:left;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:.35rem 0;font-size:.92rem;font-weight:700}.weekly-meal-pill.is-dragging{opacity:.35}.weekly-meal-overlay{border:1px solid var(--border);background:var(--card);cursor:grabbing;border-radius:.45rem;max-width:14rem;padding:.75rem 1rem;box-shadow:0 1rem 2.5rem #0f172a3d}.weekly-add-inline{color:var(--muted);cursor:pointer;font-weight:500}.weekly-row-actions{gap:.35rem;display:flex}.weekly-row-action{color:var(--muted);cursor:pointer;background:0 0;border:0;min-width:2.75rem;min-height:2.75rem;padding:.35rem;font-size:.75rem;font-weight:800}.weekly-row-action:hover{color:var(--foreground)}.weekly-list-button{margin-top:.25rem}.weekly-reset-button{margin-top:0}.weekly-day-select{gap:.4rem;margin-top:1rem;font-weight:700;display:grid}.weekly-day-select select{border:1px solid var(--border);background:var(--card);width:100%;color:var(--foreground);font:inherit;border-radius:.5rem;padding:.8rem}@media (min-width:48rem){:root{--desktop-sidebar-width:15.5rem;--desktop-content-width:58rem}.app-page{width:min(calc(100% - var(--desktop-sidebar-width)), var(--desktop-content-width));max-width:var(--desktop-content-width);margin-left:calc(var(--desktop-sidebar-width) + max(0px, (100vw - var(--desktop-sidebar-width) - var(--desktop-content-width)) / 2));padding:3rem clamp(2rem,5vw,5rem) 4rem}.admin-page{--desktop-content-width:76rem;padding-bottom:4rem}.admin-page .admin-section{margin:2rem 0}.app-nav{width:var(--desktop-sidebar-width);border-top:0;border-right:1px solid var(--border);background:var(--nav-background);flex-direction:column;gap:.3rem;min-height:100vh;padding:6.75rem .75rem .85rem;display:flex;top:0;right:auto}.app-nav-link{text-align:left;border-radius:.55rem;justify-content:flex-start;gap:.85rem;min-height:3.25rem;padding:.75rem .85rem;display:flex}.app-nav-label{clip:auto;white-space:normal;width:auto;height:auto;color:inherit;margin:0;font-size:.95rem;font-weight:800;position:static;overflow:visible}.app-nav-icon{flex:none;width:1.25rem;height:1.25rem}.app-nav-footer{border-top:1px solid var(--border);gap:.6rem;margin-top:auto;padding-top:1rem;display:grid}.app-nav-footer .feedback-button,.app-nav-logout{width:100%;min-height:3rem;color:var(--muted);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:.55rem;justify-content:flex-start;align-items:center;gap:.75rem;margin-top:0;padding:.75rem .85rem;font-size:.9rem;font-weight:800;display:flex}.app-nav-footer .feedback-button:hover,.app-nav-logout:hover{background:var(--soft);color:var(--foreground)}.app-nav-logout{color:#b91c1c}.app-nav-footer svg{flex:none;width:1.2rem;height:1.2rem}.brand-mark{width:calc(var(--desktop-sidebar-width) - 1.5rem);box-shadow:none;background:0 0;border:0;border-radius:.55rem;justify-content:flex-start;padding:.35rem;top:1rem;left:.75rem;right:auto}.brand-name{display:inline}.app-page>.feedback-button,.profile-signout-form{display:none}.login-page{border:1px solid var(--border);background:var(--card);border-radius:.75rem;width:min(100% - 3rem,32rem);margin:4rem auto;padding:2rem;box-shadow:0 1rem 2.5rem #0f172a1f}.login-title{margin-top:0}.login-intro{background:var(--background)}.legal-page{border:1px solid var(--border);background:var(--card);border-radius:.75rem;max-width:54rem;margin:3rem auto;padding:2.5rem}.shopping-add-bar{left:calc(var(--desktop-sidebar-width) + max(0px, (100vw - var(--desktop-sidebar-width) - var(--desktop-content-width)) / 2) + clamp(2rem, 5vw, 5rem));right:calc(max(0px, (100vw - var(--desktop-sidebar-width) - var(--desktop-content-width)) / 2) + clamp(2rem, 5vw, 5rem));bottom:0}.weekly-page{min-height:100vh}.weekly-header{grid-template-columns:minmax(0,1fr) auto;align-items:end}.weekly-menu-grid{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));align-items:start}.wheel-section{max-width:34rem}}
