*,:after,:before{box-sizing:border-box}body,html{height:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}button{background:none;border:none;padding:0;cursor:pointer}ol,ul{list-style:none;padding:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--focus-ring)}:root{--space-0:0rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-xs:0.375rem;--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-2xl:1.5rem;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--brand-50:#e6f8ee;--brand-100:#c2f0d6;--brand-200:#99e6bd;--brand-300:#66d999;--brand-400:#33cc74;--brand-500:#00b140;--brand-600:#009a38;--brand-700:#007f2f;--brand-800:#006626;--brand-900:#004d1c;--brand:var(--brand-500);--brand-light:var(--brand-100);--brand-dark:var(--brand-700);--accent:#ffb020;--danger:#e14d4d;--info:#3b82f6;--success:#10b981;--max-content-width:1320px;--sidebar-width-expanded:260px;--sidebar-width-collapsed:72px;--topbar-height:64px;--transition-fast:150ms ease;--transition-normal:200ms ease;--transition-slow:300ms ease;--z-dropdown:1000;--z-sticky:10;--z-fixed:20;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080;--bg:#f7faf9;--panel:#fff;--panel-2:#f3f5f4;--bg-subtle:#f0f4f2;--border:#e5eae7;--text:#0b1f17;--text-muted:#5a6b64;--icon:#2e473c;--input-bg:#fff;--input-text:#0b1f17;--input-border:#d9e3df;--input-placeholder:#90a29a;--hover-bg:#f0f4f2;--active-bg:#e8f0ec;--focus-ring:var(--brand-500);--date-picker-invert:0;--hi-bg:#f0f9f4;--hi-ring:#10b981}[data-theme=dark]{--bg:#0f1412;--panel:#121917;--panel-2:#0c1713;--bg-subtle:#1a211e;--border:#233129;--text:#e6f1ec;--text-muted:#9bb2a8;--icon:#cfe5db;--input-bg:#0e1512;--input-text:#e6f1ec;--input-border:#1f2a25;--input-placeholder:#7c9288;--hover-bg:#1a211e;--active-bg:#1f2a25;--focus-ring:var(--brand-400);--brand-50:rgba(0,177,64,.05);--brand-100:rgba(0,177,64,.1);--brand-200:rgba(0,177,64,.2);--brand-300:rgba(0,177,64,.3);--brand-400:rgba(0,177,64,.4);--brand-500:#00b140;--brand-600:#33cc74;--brand-700:#66d999;--brand-800:#99e6bd;--brand-900:#c2f0d6;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.5);--date-picker-invert:1;--hi-bg:#133022;--hi-ring:#1a473a}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;overflow-x:hidden}.container{width:100%;max-width:var(--max-content-width);margin:0 auto;padding:0 var(--space-6)}@media (max-width:1279px){.container{padding:0 var(--space-4)}}@media (max-width:767px){.container{padding:0 var(--space-3)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}@media (max-width:1279px){.grid-cols-4{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1023px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:639px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}}.p-0{padding:var(--space-0)}.p-2{padding:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.m-0{margin:var(--space-0)}.m-2{margin:var(--space-2)}.m-4{margin:var(--space-4)}.m-6{margin:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.w-full{width:100%}.w-auto{width:auto}.max-w-full{max-width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}@media (max-width:767px){.hidden-mobile{display:none!important}.visible-mobile{display:block!important}}@media (min-width:768px){.hidden-desktop{display:none!important}.visible-desktop{display:block!important}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}@media (max-width:767px){html{font-size:15px}}@media (max-width:374px){html{font-size:14px}}@supports (padding:max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right));padding-bottom:max(0px,env(safe-area-inset-bottom))}}html{text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}::selection{background-color:var(--brand-100);color:var(--text)}.touch-manipulation{touch-action:manipulation}.select-none{-moz-user-select:none;user-select:none;-webkit-user-select:none}.select-text{-moz-user-select:text;user-select:text;-webkit-user-select:text}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}@media (max-width:374px){:root{--space-6:1.25rem;--space-8:1.75rem}}@media (hover:none){*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{-webkit-overflow-scrolling:touch}}@media (hover:none) and (pointer:coarse){.interactive,a,button{min-height:44px;min-width:44px}input,select,textarea{font-size:16px}}@media (max-width:767px){.modal-backdrop,.wizard-backdrop{padding:0}.modal,.wizard-panel{height:100%;max-height:100%;border-radius:0;width:100%}.modal-body,.wizard-body{padding:var(--space-4) var(--space-4) var(--space-6)}.modal-header,.wizard-header{padding:var(--space-4)}.modal-footer,.wizard-footer{padding:var(--space-4);position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border)}}@media (max-width:1279px){.groceries-grid,.meal-plans-grid,.recipes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:767px){.groceries-grid,.meal-plans-grid,.recipes-grid{grid-template-columns:1fr}}@media (max-width:639px){.date-grid,.form-row,.inline-fields{grid-template-columns:1fr!important}}@media (max-width:767px){.meal-plans-tabs,.tabs{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}.meal-plans-tabs::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}.meal-plan-tab,.tab{scroll-snap-align:start;flex-shrink:0}.meal-plans-actions,.page-actions{width:100%}.meal-plans-actions button,.page-actions button{flex:1 1}}@media (max-width:639px){h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}.meal-plans-title,.page-title{font-size:var(--text-2xl)}}@media (max-width:374px){.meal-plans-title,.page-title,h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}}@media (max-width:767px){.generation-view,.loading-screen{padding:var(--space-6);min-height:300px}.chef-avatar{width:80px!important;height:80px!important}.empty-state,.meal-plans-empty{padding:var(--space-8) var(--space-4)}.empty-state-icon,.meal-plans-empty-icon{width:80px!important;height:80px!important}.meal-plans-header,.page-header{margin-bottom:var(--space-6)}}@media (max-width:639px){.compact-section{padding:var(--space-3)}.mode-toggle-compact{flex-direction:column}.mode-btn{width:100%}.chip-group,.override-chips{gap:var(--space-1)}.chip{font-size:.6875rem;padding:4px 8px}}@media (max-width:767px){.modal-footer,.wizard-footer{position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);z-index:10}}@media (max-width:767px) and (orientation:landscape){.modal,.wizard-panel{max-height:100vh;overflow-y:auto}.modal-body,.wizard-body{max-height:calc(100vh - 180px);overflow-y:auto}}@supports (padding:max(0px)){.modal,.wizard-panel{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}.modal-footer,.wizard-footer{padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}@media (max-width:767px){.content,.topbar{padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.content{padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}}}@media (hover:none){.card:active,.meal-plan-card:active{transform:scale(.98);opacity:.9}.button:active,button:active{transform:scale(.95)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.card-image,.meal-plan-card-image,img{image-rendering:-webkit-optimize-contrast}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width:767px){[data-theme=dark] .modal,[data-theme=dark] .wizard-panel{background:var(--bg)}[data-theme=dark] .modal-backdrop,[data-theme=dark] .wizard-backdrop{background:rgba(0,0,0,.8)}}@media print{.button,.meal-plan-card-actions,.meal-plans-actions,.page-actions,.sidebar,.topbar,button{display:none!important}.main-content{width:100%}.content{padding:0}.meal-plans-grid{grid-template-columns:1fr;gap:var(--space-4)}.meal-plan-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc}}@media (prefers-contrast:high){.button,.card,.meal-plan-card,.modal,.wizard-panel,button{border:2px solid}}@media (max-width:767px){.meal-plans-tabs:after,.tabs:after{content:"";position:absolute;right:0;top:0;bottom:0;width:32px;background:linear-gradient(to left,var(--surface),transparent);pointer-events:none}}@media (max-width:374px){.card-header,.meal-plan-card-header{flex-direction:column;gap:var(--space-2)}.card-badge,.meal-plan-card-badge{align-self:flex-start}.card-actions,.meal-plan-card-actions{flex-direction:column}.card-action,.meal-plan-card-action{width:100%}}@media (max-width:639px){.footer-right{width:100%}.footer-right button{flex:1 1}}