@import url('/public/fonts/fonts.css');:root{--font-heading:'Lora','Be Vietnam Pro',Georgia,serif;--font-body:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--font-family:var(--font-body);--color-primary:#B5472A;--color-primary-hover:#96381F;--color-primary-light:#F6E3DA;--color-primary-contrast:#FFFFFF;--color-secondary:#3F6B3A;--color-secondary-hover:#2F5530;--color-secondary-light:#E3EEDD;--color-accent:#E3A72F;--color-accent-light:#FDF3D8;--color-bg:#FBF6EC;--color-surface:#FFFFFF;--color-surface-hover:#F7F0E4;--color-surface-alt:#F3EADB;--color-text-main:#2B1D14;--color-text-muted:#6B5A4C;--color-text-light:#7A6556;--color-border:#E6D9C4;--color-border-focus:#B5472A;--color-success:#2E7D32;--color-success-bg:#E8F5E9;--color-warning:#E3A72F;--color-warning-bg:#FDF3D8;--color-danger:#C62828;--color-danger-bg:#FFEBEE;--color-info:#1565C0;--color-info-bg:#E3F2FD;--text-xs:0.8125rem;--text-sm:0.9375rem;--text-md:1rem;--text-lg:clamp(1.125rem,1rem + 0.5vw,1.25rem);--text-xl:clamp(1.375rem,1.1rem + 1vw,1.75rem);--text-2xl:clamp(1.75rem,1.3rem + 2vw,2.5rem);--text-hero:clamp(2.25rem,1.5rem + 4vw,4rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(43,29,20,0.07),0 1px 2px rgba(43,29,20,0.05);--shadow-md:0 4px 6px -1px rgba(43,29,20,0.09),0 2px 4px -2px rgba(43,29,20,0.06);--shadow-lg:0 10px 15px -3px rgba(43,29,20,0.09),0 4px 6px -4px rgba(43,29,20,0.05);--shadow-xl:0 20px 25px -5px rgba(43,29,20,0.11),0 8px 10px -6px rgba(43,29,20,0.06);--shadow-glow:0 0 20px rgba(181,71,42,0.22);--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);--dur-press:160ms;--dur-popover:200ms;--dur-modal:250ms;--dur-drawer:400ms;--transition-fast:150ms var(--ease-out);--transition-normal:250ms var(--ease-out);--transition-slow:400ms var(--ease-drawer);--container-max-width:1240px;--header-height:68px}[data-theme="dark"]{--color-primary:#D4684A;--color-primary-hover:#B5472A;--color-primary-light:rgba(181,71,42,0.18);--color-primary-contrast:#FFFFFF;--color-secondary:#5A9154;--color-secondary-hover:#3F6B3A;--color-secondary-light:rgba(63,107,58,0.2);--color-accent:#F0BE55;--color-accent-light:rgba(227,167,47,0.18);--color-bg:#17110C;--color-surface:#241A12;--color-surface-hover:#2E2018;--color-surface-alt:#1E160F;--color-text-main:#F5EDE3;--color-text-muted:#B09880;--color-text-light:#7A6555;--color-border:#3D2C1F;--color-border-focus:#D4684A;--color-success:#66BB6A;--color-success-bg:rgba(102,187,106,0.15);--color-warning:#F0BE55;--color-warning-bg:rgba(240,190,85,0.15);--color-danger:#EF5350;--color-danger-bg:rgba(239,83,80,0.15);--color-info:#42A5F5;--color-info-bg:rgba(66,165,245,0.15);--shadow-sm:0 1px 3px rgba(0,0,0,0.45);--shadow-md:0 4px 8px rgba(0,0,0,0.55);--shadow-lg:0 10px 20px rgba(0,0,0,0.65);--shadow-xl:0 20px 30px rgba(0,0,0,0.75);--shadow-glow:0 0 25px rgba(212,104,74,0.3)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-main);line-height:1.6;min-height:100vh;min-height:100dvh;overflow-x:hidden;transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg,picture{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.container{width:100%;max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-4);padding-right:var(--space-4)}@media (min-width:1025px){.container{padding-left:var(--space-6);padding-right:var(--space-6)}}@media (max-width:1024px) and (min-width:641px){.container{padding-left:var(--space-5);padding-right:var(--space-5)}}@media (max-width:640px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;color:var(--color-text-main)}h1{font-size:clamp(1.8rem,4vw,2.75rem);letter-spacing:-0.02em}h2{font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-0.01em}h3{font-size:clamp(1.15rem,2vw,1.4rem)}h4{font-size:1.1rem}p{color:var(--color-text-muted)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,.btn,.btn-icon,input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px}.btn-icon,button.btn-icon{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}@media (max-width:768px){body{padding-bottom:74px}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}@media (hover:hover) and (pointer:fine){.btn:hover:not(:disabled){transform:translateY(-2px)}.card:hover{transform:translateY(-2px)}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:var(--space-2);padding:10px 16px;background:var(--color-primary);color:#ffffff !important;font-weight:700;font-size:0.95rem;border-radius:var(--radius-md);z-index:10000;box-shadow:var(--shadow-lg);text-decoration:none}.skip-link:focus,.skip-link:focus-visible{left:var(--space-4);top:var(--space-4);outline:3px solid var(--color-accent);outline-offset:2px}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.dish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}@media (max-width:640px){.dish-grid{grid-template-columns:1fr;gap:var(--space-4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0.65rem 1.25rem;font-weight:600;font-size:0.95rem;border-radius:var(--radius-md);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);user-select:none;white-space:nowrap}.btn:disabled{opacity:0.6;cursor:not-allowed;transform:none !important}.btn-primary{background-color:var(--color-primary);color:#ffffff;box-shadow:0 4px 12px rgba(217,119,6,0.25)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 16px rgba(217,119,6,0.35)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:var(--color-surface-alt);color:var(--color-text-main);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-primary)}.btn-outline{border:1.5px solid var(--color-primary);color:var(--color-primary);background:transparent}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-danger{background-color:var(--color-danger);color:#ffffff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:0.4rem 0.75rem;font-size:0.85rem;border-radius:var(--radius-sm)}.btn-lg{padding:0.85rem 1.75rem;font-size:1.05rem;border-radius:var(--radius-lg)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-main)}.btn-icon:hover{background-color:var(--color-surface-hover);color:var(--color-primary)}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4);text-align:left}.form-label{font-size:0.9rem;font-weight:600;color:var(--color-text-main)}.input,.select,.textarea{width:100%;padding:0.75rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-main);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.input-error{border-color:var(--color-danger) !important}.error-text{font-size:0.825rem;color:var(--color-danger);margin-top:var(--space-1);display:flex;align-items:center;gap:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:0.25rem 0.65rem;font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;border-radius:var(--radius-full)}.badge-amber{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}@media (hover:hover) and (pointer:fine){.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--color-primary-light)}.card-hover:hover img{transform:scale(1.04)}}.skeleton{background:linear-gradient( 90deg,var(--color-surface-alt) 25%,var(--color-surface-hover) 50%,var(--color-surface-alt) 75% );background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.skeleton-card{height:380px;border-radius:var(--radius-lg)}.modal-backdrop{position:fixed;inset:0;background-color:rgba(15,23,42,0.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.modal-backdrop.active{opacity:1;visibility:visible}.modal-box{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:90vh;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-xl);transform:scale(0.95);transition:transform var(--transition-normal);display:flex;flex-direction:column}.modal-backdrop.active .modal-box{transform:scale(1)}.modal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--space-6);overflow-y:auto}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);background-color:var(--color-surface-alt)}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:var(--space-2);z-index:2000;pointer-events:none}.toast{pointer-events:auto;background-color:var(--color-surface);color:var(--color-text-main);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:0.85rem 1.25rem;border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-3);min-width:280px;max-width:420px;font-size:0.95rem;animation:toast-slide-in 0.3s cubic-bezier(0.16,1,0.3,1);border-left:5px solid var(--color-primary)}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-danger)}.toast-warning{border-left-color:var(--color-warning)}@keyframes toast-slide-in{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.drawer-backdrop{position:fixed;inset:0;background-color:rgba(15,23,42,0.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.drawer-backdrop.active{opacity:1;visibility:visible}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:440px;background-color:var(--color-surface);box-shadow:-5px 0 25px rgba(0,0,0,0.2);z-index:1001;transform:translateX(100%);transition:transform var(--transition-slow);display:flex;flex-direction:column}.drawer-backdrop.active .cart-drawer{transform:translateX(0)}.drawer-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.drawer-body{padding:var(--space-4) var(--space-6);flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4)}.cart-item-card{height:auto !important;min-height:fit-content !important;overflow:visible !important}.drawer-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background-color:var(--color-surface-alt)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-12) var(--space-4);gap:var(--space-3)}.empty-icon{font-size:3.5rem;color:var(--color-text-light);line-height:1}.empty-title{font-size:1.25rem;font-weight:700;color:var(--color-text-main)}.empty-desc{font-size:0.95rem;color:var(--color-text-muted);max-width:360px}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:var(--color-surface)}.admin-tabs-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background-color:var(--color-surface-alt);border-bottom:1px solid var(--color-border);overflow:visible}.admin-tab-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;font-size:0.875rem;padding:8px 14px;border-radius:var(--radius-md);min-height:40px;line-height:1.2;cursor:pointer;border:1px solid var(--color-border);transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.admin-tab-btn--active{background-color:var(--color-primary) !important;color:#fff !important;border-color:var(--color-primary) !important;font-weight:700 !important;box-shadow:0 2px 8px rgba(181,71,42,0.35) !important}.admin-table{width:100%;border-collapse:collapse;text-align:left}.admin-table th,.admin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:0.925rem}.admin-table th{background-color:var(--color-surface-alt);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;font-size:0.8rem;letter-spacing:0.05em}.admin-table tbody tr:hover{background-color:var(--color-surface-hover)}.mobile-bottom-bar{display:none}@media (max-width:768px){.desktop-nav{display:none !important}.mobile-bottom-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background-color:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -4px 20px rgba(0,0,0,0.08);z-index:990;align-items:center;justify-content:space-around;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0px);transition:background-color var(--transition-normal)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:0.7rem;font-weight:600;color:var(--color-text-muted);gap:2px;padding:4px;border-radius:var(--radius-sm);transition:color var(--transition-fast);flex:1;text-align:center;cursor:pointer;background:none;border:none}.mobile-nav-item span.nav-icon{font-size:1.25rem;line-height:1}.mobile-nav-item:hover,.mobile-nav-item:active{color:var(--color-primary)}}#auth-header-container{display:flex;align-items:center;flex-shrink:0}#header-user-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;letter-spacing:0.04em;font-weight:700;text-transform:uppercase;transition:opacity var(--transition-fast),transform var(--transition-fast)}#header-user-badge:hover{opacity:0.9;transform:translateY(-1px)}.sidebar-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,0.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1040;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.sidebar-overlay.active{opacity:1;visibility:visible}.app-sidebar{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);background-color:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:-8px 0 25px rgba(0,0,0,0.15);z-index:1045;transform:translateX(100%);transition:transform var(--transition-normal);display:flex;flex-direction:column;overflow-y:auto}.app-sidebar.active{transform:translateX(0)}.sidebar-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background-color:var(--color-surface-alt)}.sidebar-title{font-family:var(--font-heading);font-weight:700;font-size:1.1rem;color:var(--color-primary);line-height:1.1}.sidebar-sub{font-size:0.65rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.05em}.sidebar-user-card{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,rgba(181,71,42,0.04) 0%,rgba(63,107,58,0.04) 100%)}.sidebar-nav{padding:var(--space-3) var(--space-4);flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:10px 14px;border-radius:var(--radius-md);font-weight:600;font-size:0.95rem;color:var(--color-text-main);text-decoration:none;background:transparent;border:none;width:100%;text-align:left;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-item:hover,.sidebar-item:focus-visible{background-color:var(--color-surface-alt);color:var(--color-primary)}.sidebar-item--active{background-color:rgba(181,71,42,0.08);color:var(--color-primary);font-weight:700}.sidebar-section-title{font-size:0.7rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:0.08em;padding:12px 14px 4px}.sidebar-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background-color:var(--color-surface-alt)}@keyframes kitchenItemFadeOut{0%{opacity:1;transform:scale(1)}60%{opacity:0.35;transform:scale(0.98)}100%{opacity:0;transform:scale(0.95);max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;overflow:hidden}}.kitchen-item-fading{animation:kitchenItemFadeOut 5s cubic-bezier(0.4,0,0.2,1) forwards !important;pointer-events:none !important}@supports not ((-webkit-backdrop-filter:blur(4px)) or (backdrop-filter:blur(4px))){.modal-backdrop,.family-meal-modal,.sidebar-overlay{background-color:rgba(15,23,42,0.88)}.drawer-backdrop{background-color:rgba(15,23,42,0.8)}}@supports not (height:100dvh){.modal-box,.cart-drawer,.family-meal-modal__dialog{max-height:90vh}}.ui-tap-active,.btn:active,.btn-icon:active,button:active,[role="button"]:active{transform:scale(0.96) !important}@keyframes uiShakeAnim{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}.ui-shake{animation:uiShakeAnim 0.35s ease-in-out !important}@keyframes uiBounceAnim{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}.ui-bounce{animation:uiBounceAnim 0.35s cubic-bezier(0.34,1.56,0.64,1) !important}.ui-input-error,.input-error{border-color:var(--color-danger,#ef4444) !important;box-shadow:0 0 0 3px rgba(239,68,68,0.2) !important}@media (prefers-reduced-motion:reduce){.ui-tap-active,.btn:active,.btn-icon:active,button:active,[role="button"]:active,.ui-shake,.ui-bounce,.card-hover:hover,.card-hover:hover img{animation:none !important;transform:none !important}.toast{animation:none !important}.modal-box{transform:none !important;transition:none !important}.ui-input-error{animation:none !important}}html,body{max-width:100vw;overflow-x:hidden}*,*::before,*::after{box-sizing:border-box}img,svg,picture,video,iframe{max-width:100%;height:auto}button,.btn,.btn-icon,.mobile-nav-item,.chip,.tab-btn,input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px}.btn-icon,button.btn-icon,.mobile-nav-item{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.modal-header .btn-icon,#btn-close-modal,#btn-close-auth,#btn-close-checkout,#btn-close-tracking,#btn-close-reservation{min-width:44px !important;min-height:44px !important;font-size:1.4rem}input[type="checkbox"],input[type="radio"]{min-width:22px;min-height:22px;cursor:pointer}.table-responsive,.table-container,.table-wrapper{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (min-width:1536px){:root{--container-max-width:1440px}.container{padding-left:var(--space-8);padding-right:var(--space-8)}.dish-grid{grid-template-columns:repeat(4,1fr) !important;gap:var(--space-6) !important}.hero__heading{font-size:2.75rem !important}}@media (min-width:1280px) and (max-width:1535px){:root{--container-max-width:1200px}.dish-grid{grid-template-columns:repeat(3,1fr) !important;gap:var(--space-6) !important}}@media (max-width:1024px){.desktop-nav{flex-wrap:wrap;gap:var(--space-2) !important;min-width:0}.desktop-nav .btn{padding:6px 12px !important;font-size:0.85rem !important}.dish-grid{grid-template-columns:repeat(2,1fr) !important;gap:var(--space-4) !important}.kanban-grid{overflow-x:auto;padding-bottom:var(--space-2)}.table-map-grid{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr)) !important}.modal-box{max-width:90vw !important;margin:var(--space-3)}}@media (max-width:768px){body{padding-bottom:calc(64px + 16px + env(safe-area-inset-bottom,0px)) !important}.desktop-nav{display:none !important}.mobile-bottom-bar{display:block !important}#btn-toggle-sidebar{display:inline-flex !important}input,select,textarea{font-size:16px !important}#btn-toggle-chat{bottom:calc(64px + 16px + env(safe-area-inset-bottom,0px)) !important;left:16px !important}#chat-box{bottom:calc(64px + 16px + env(safe-area-inset-bottom,0px)) !important;left:16px !important;width:min(360px,calc(100vw - 32px)) !important;height:min(480px,calc(100dvh - 160px)) !important}.toast-container{bottom:calc(64px + 12px + env(safe-area-inset-bottom,0px)) !important;left:12px !important;right:12px !important}.toast{min-width:0 !important;width:100% !important;max-width:100% !important}.grid-admin-split-2-1,.grid-admin-split-1-2,.grid-3col{grid-template-columns:1fr !important}}@media (max-width:640px){.modal-backdrop{align-items:flex-end !important;padding:0 !important}.modal-box{width:100% !important;max-width:100% !important;max-height:85vh !important;max-height:85dvh !important;border-radius:24px 24px 0 0 !important;margin:0 !important;border-bottom:none !important;box-shadow:0 -8px 30px rgba(0,0,0,0.25) !important;transform:translateY(100%) !important;transition:transform 0.3s cubic-bezier(0.16,1,0.3,1) !important}.modal-box::before{content:'';display:block;width:44px;height:5px;background-color:var(--color-border);border-radius:999px;margin:10px auto 4px;flex-shrink:0}.modal-backdrop.active .modal-box{transform:translateY(0) !important}.modal-header{padding:12px 18px !important;border-bottom:1px solid var(--color-border)}.modal-body{padding:16px 18px !important;-webkit-overflow-scrolling:touch}.modal-footer{padding:12px 18px max(16px,env(safe-area-inset-bottom,16px)) !important;flex-wrap:wrap !important;gap:var(--space-2) !important}.modal-footer .btn{flex:1 1 auto;min-width:120px}.grid-2col{grid-template-columns:1fr !important}.hero__grid{grid-template-columns:1fr !important;gap:var(--space-6) !important}.dish-grid{grid-template-columns:1fr !important;gap:var(--space-4) !important}.cart-drawer{max-width:100% !important}.admin-tabs-nav{padding:10px 12px !important;gap:8px !important}.admin-tab-btn{flex:1 1 calc(50% - 8px) !important;min-height:44px !important;font-size:0.8rem !important;padding:6px 8px !important;text-align:center}.category-bar,.category-scroll,.categories-filter{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;padding-bottom:6px;gap:8px;scrollbar-width:none}.category-bar::-webkit-scrollbar,.category-scroll::-webkit-scrollbar,.categories-filter::-webkit-scrollbar{display:none}}@media (max-width:390px){.container{padding-left:12px !important;padding-right:12px !important}.brand__logo{width:32px !important;height:32px !important}.brand__name{font-size:1.05rem !important}.brand__tagline{display:none !important}.header-actions{gap:6px !important}#btn-open-auth{padding:6px 10px !important;font-size:0.8rem !important}.mobile-nav-item span{font-size:0.65rem !important}.card{padding:12px !important}.dish-card__title{font-size:0.95rem !important}.btn-lg{padding:0.65rem 0.9rem !important;font-size:0.92rem !important}}.family-meal-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,0.65);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:var(--space-4);opacity:0;visibility:hidden;transition:opacity var(--dur-normal) var(--ease-out),visibility var(--dur-normal) var(--ease-out)}.family-meal-modal.is-open{opacity:1;visibility:visible}.family-meal-modal__dialog{background-color:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);width:100%;max-width:960px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);transform:translateY(24px) scale(0.98);transition:transform var(--dur-normal) var(--ease-out)}.family-meal-modal.is-open .family-meal-modal__dialog{transform:translateY(0) scale(1)}@media (max-width:640px){.family-meal-modal{align-items:flex-end;padding:0}.family-meal-modal__dialog{max-height:88vh;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:24px;border-top-right-radius:24px;transform:translateY(100%);transition:transform var(--dur-normal) var(--ease-drawer)}.family-meal-modal.is-open .family-meal-modal__dialog{transform:translateY(0)}.family-meal-modal__dialog::before{content:'';display:block;width:44px;height:5px;border-radius:var(--radius-full);background-color:var(--color-border);margin:10px auto 4px}}.family-meal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);background-color:var(--color-surface)}.family-meal-header__title{margin:0;font-size:1.35rem;font-family:var(--font-heading);color:var(--color-primary);display:flex;align-items:center;gap:var(--space-2)}.family-meal-header__sub{margin:2px 0 0;font-size:0.85rem;color:var(--color-text-muted)}.family-meal-body{padding:var(--space-4) var(--space-6);overflow-y:auto;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:1.15fr 1fr;gap:var(--space-6)}@media (max-width:860px){.family-meal-body{grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-3) var(--space-4)}}.family-meal-controls{margin-bottom:var(--space-4)}.serves-pills{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.serves-btn{flex:1;min-width:72px;min-height:44px;padding:8px 12px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:0.85rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.serves-btn.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#ffffff;box-shadow:0 2px 8px rgba(181,71,42,0.25)}.allergens-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--space-2)}.allergen-chip{min-height:38px;padding:6px 12px;border-radius:var(--radius-full);border:1px dashed var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:0.8rem;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.allergen-chip.is-excluded{background:var(--color-danger-bg);border-color:var(--color-danger);border-style:solid;color:var(--color-danger);font-weight:600}.tray-visual-container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:radial-gradient(circle at center,rgba(227,167,47,0.08) 0%,transparent 70%);padding:var(--space-2);border-radius:var(--radius-xl)}.tray-svg-wrap{width:100%;max-width:440px;aspect-ratio:1 / 1;position:relative}.tray-svg{width:100%;height:100%;filter:drop-shadow(0 12px 24px rgba(0,0,0,0.12))}.meal-items-list{display:flex;flex-direction:column;gap:var(--space-3)}.meal-item-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background-color:var(--color-surface);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.meal-item-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.meal-item-card__thumb{width:60px;height:60px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;background-color:var(--color-border)}.meal-item-card__info{flex:1;min-width:0}.meal-item-card__badge{display:inline-block;font-size:0.7rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);margin-bottom:2px}.meal-item-card__name{font-weight:700;font-size:0.92rem;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-item-card__price{font-size:0.82rem;color:var(--color-text-muted);margin-top:2px}.btn-rotate-dish{min-width:44px;min-height:44px;padding:8px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:0.8rem;font-weight:600;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn-rotate-dish:hover{color:var(--color-primary);border-color:var(--color-primary);background-color:rgba(181,71,42,0.05)}.btn-rotate-dish:active{transform:rotate(45deg)}.family-meal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background-color:var(--color-surface);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.family-meal-footer__summary{display:flex;flex-direction:column}.family-meal-footer__label{font-size:0.82rem;color:var(--color-text-muted)}.family-meal-footer__total{font-size:1.4rem;font-weight:800;color:var(--color-primary)}.family-meal-footer__actions{display:flex;align-items:center;gap:var(--space-2)}.family-meal-banner{background:linear-gradient(135deg,#FFF9F3 0%,#FBF0E4 100%);border:1px solid rgba(181,71,42,0.2);border-radius:var(--radius-2xl);padding:var(--space-6);margin-bottom:var(--space-8);display:grid;grid-template-columns:1.2fr 0.8fr;align-items:center;gap:var(--space-6);box-shadow:0 4px 16px rgba(181,71,42,0.06)}@media (max-width:768px){.family-meal-banner{grid-template-columns:1fr;padding:var(--space-4);text-align:center}.family-meal-banner__actions{justify-content:center}}.family-meal-banner__title{font-family:var(--font-heading);color:var(--color-primary);font-size:1.4rem;margin-bottom:var(--space-2)}.family-meal-banner__desc{font-size:0.95rem;color:var(--color-text-muted);margin-bottom:var(--space-4);line-height:1.5}.family-meal-banner__actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}@media (prefers-reduced-motion:reduce){.family-meal-modal,.family-meal-modal__dialog,.serves-btn,.allergen-chip,.btn-rotate-dish{transition:none !important;animation:none !important}.btn-rotate-dish:active{transform:none !important}}