@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-vietnamese-300-normal-DQHlWx2s.woff2)format("woff2"),url(/assets/work-sans-vietnamese-300-normal-NLNV1oy7.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-latin-ext-300-normal-CVclhcFk.woff2)format("woff2"),url(/assets/work-sans-latin-ext-300-normal-BQO3H0qq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-latin-300-normal-DD7pq2q9.woff2)format("woff2"),url(/assets/work-sans-latin-300-normal-BaDF4XPg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2)format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-zfQnhXzv.woff2)format("woff2"),url(/assets/work-sans-latin-ext-400-normal-j7TZlk-s.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-jUejSri3.woff2)format("woff2"),url(/assets/work-sans-latin-400-normal-DE1_0GuN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-vietnamese-500-normal-Czn2Xkog.woff2)format("woff2"),url(/assets/work-sans-vietnamese-500-normal-90nhZfxs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-ext-500-normal-CAKEIVkc.woff2)format("woff2"),url(/assets/work-sans-latin-ext-500-normal-CW9ss9Cz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-500-normal-BKGnScDy.woff2)format("woff2"),url(/assets/work-sans-latin-500-normal-BmdXWF6_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-vietnamese-600-normal-DizFELYt.woff2)format("woff2"),url(/assets/work-sans-vietnamese-600-normal-ue5fzGW6.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-ext-600-normal-DNiHHggD.woff2)format("woff2"),url(/assets/work-sans-latin-ext-600-normal-B1NFRnx8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-600-normal-DB-2V89X.woff2)format("woff2"),url(/assets/work-sans-latin-600-normal-Cg-NlmS7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-vietnamese-700-normal-CqjC4WOy.woff2)format("woff2"),url(/assets/work-sans-vietnamese-700-normal-BYAoORCv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-ext-700-normal-Bc0iTajH.woff2)format("woff2"),url(/assets/work-sans-latin-ext-700-normal-BP8nCPzd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-700-normal-CEeo_t6l.woff2)format("woff2"),url(/assets/work-sans-latin-700-normal-mDs79oer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:var(--font-mono)}.error-message{margin:var(--space-4,16px) 0;padding:var(--space-3,12px) var(--space-4,16px);background-color:var(--color-error-light,#fdecea);color:var(--color-error-dark,#8a1c13);border:1px solid var(--color-error,#d93025);border-radius:var(--radius-md,8px);font-weight:var(--font-medium,500)}.error-message p{color:inherit;margin:0}.shared-device{background:var(--color-background,#f4f7f2);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.shared-device__card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:520px;padding:28px;box-shadow:0 6px 24px #00000014}.shared-device__card h1{margin:4px 0 16px}.shared-device__eyebrow{color:#666;margin:0;font-size:.9rem}.shared-device__names{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:16px 0;display:grid}.shared-device__name{border:1.5px solid var(--border-color,#e2e8f0);cursor:pointer;background:#fff;border-radius:12px;padding:16px 12px;font-size:1.05rem}.shared-device__name:hover,.shared-device__name:focus-visible{border-color:#2e7d32;outline:none}.shared-device__dots{justify-content:center;gap:12px;margin:16px 0;display:flex}.shared-device__dots span{border:2px solid #2e7d32;border-radius:50%;width:16px;height:16px}.shared-device__dots span.filled{background:#2e7d32}.shared-device__keypad{grid-template-columns:repeat(3,1fr);gap:10px;max-width:300px;margin:0 auto 16px;display:grid}.shared-device__keypad button{border:1.5px solid var(--border-color,#e2e8f0);cursor:pointer;background:#fff;border-radius:12px;padding:18px 0;font-size:1.4rem}.shared-device__keypad button.secondary{color:#555;font-size:1rem}.shared-device__keypad button:disabled{opacity:.5}.shared-device__error{color:#b42318}.shared-device__full{color:#2e7d32;cursor:pointer;font:inherit;background:0 0;border:none;margin-top:8px;text-decoration:underline}.little-bites-loader{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 16px;display:flex}.little-bites-loader__graphic{max-width:100%;height:auto;display:block;overflow:visible}.little-bites-loader__label{color:#6b7280;font-size:clamp(14px,1.2vw + 10px,18px)}.little-bites-loader__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}.little-bites-loader--overlay{z-index:1000;background:#ffffffeb;padding:0;position:fixed;inset:0}.my-account{max-width:640px;margin:24px auto;padding:0 16px}.my-account h1{margin-bottom:4px}.my-account__who{color:#555;margin:0 0 20px}.my-account__card{background:var(--card-background,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;margin-bottom:20px;padding:20px}.my-account__card h2{margin-top:0;font-size:1.2rem}.my-account__card form{flex-direction:column;gap:8px;display:flex}.my-account__card input[type=password],.my-account__card input:not([type]),.my-account__card input[inputmode]{border:1.5px solid var(--border-color,#e2e8f0);border-radius:8px;padding:9px 12px;font-size:1rem}.my-account__card label{font-size:.9rem;font-weight:500}.my-account__check{align-items:flex-start;gap:8px;margin:6px 0;display:flex;font-weight:400!important}.my-account__hint{color:#8a5a00;margin:0;font-size:.85rem}.my-account__notice{color:#5c4400;background:#fff8e6;border:1px solid #f0c36d;border-radius:10px;margin-bottom:20px;padding:12px 16px}.my-account__status{border-radius:999px;margin:0 12px 12px 0;padding:2px 10px;font-weight:600;display:inline-block}.my-account__status.on{color:#1e6b32;background:#e3f5e7}.my-account__status.off{color:#555;background:#f1f1f1}.my-account__qr{background:#fff;border-radius:8px;width:200px;height:200px;padding:4px}.my-account__qr svg{width:100%;height:100%}.my-account__setup ol{margin:4px 0;padding-left:20px}.my-account__setup code{letter-spacing:.05em;-webkit-user-select:all;user-select:all;font-size:1rem}.my-account__actions{gap:10px;margin-top:6px;display:flex}.my-account__password{align-items:stretch;gap:8px;display:flex}.my-account__password input{border:1.5px solid var(--border-color,#e2e8f0);border-radius:8px;flex:1;min-width:0;padding:9px 12px;font-size:1rem}.my-account__reveal{border:1.5px solid var(--border-color,#e2e8f0);cursor:pointer;background:#fff;border-radius:8px;flex:none;padding:0 14px;font-size:.9rem}.my-account__reveal:focus-visible{outline-offset:2px;outline:2px solid #2e7d32}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.main-top-bar{background-color:var(--color-green-4);color:var(--color-cream-3);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;padding:10px 20px;font-size:1rem;display:flex}.top-bar-left{align-items:center;gap:16px;display:flex}.top-bar-logo{flex-shrink:0;width:auto;height:36px}.nursery-name{font-family:var(--font-display);font-weight:var(--font-semibold);color:var(--color-cream-3);font-size:1.1rem}.site-select{border-radius:var(--radius-md);font-size:.9rem;font-family:var(--font-primary);background-color:var(--color-green-2);color:var(--color-cream-3);cursor:pointer;border:none;padding:5px 10px}.site-name{color:var(--color-cream-3);opacity:.85;font-size:1rem}.top-bar-right{align-items:center;gap:12px;display:flex}.user-name{font-weight:var(--font-semibold);color:var(--color-cream-3)}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.top-nav{background-color:var(--color-cream-1);border-bottom:1px solid var(--color-cream-4);box-shadow:var(--shadow-sm);z-index:100;justify-content:space-between;align-items:center;gap:8px;padding:6px 16px;display:flex;position:sticky;top:0}.top-nav__main{flex-wrap:nowrap;flex:1;align-items:center;gap:2px;display:flex;overflow-x:auto}.top-nav__btn{cursor:pointer;font-family:var(--font-display);font-size:.9rem;font-weight:var(--font-semibold);color:var(--color-ink-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;background:0 0;border:none;padding:8px 14px}.top-nav__btn:hover{background-color:var(--color-green-3);color:var(--color-green-4)}.top-nav__btn.active{background-color:var(--color-green-2);color:var(--color-cream-3);font-weight:var(--font-semibold)}.top-nav__btn:focus-visible{outline:2px solid var(--color-green-2);outline-offset:2px}.top-nav__profile{flex-shrink:0;position:relative}.top-nav__avatar-btn{border:1px solid var(--color-cream-4);border-radius:var(--radius-full);cursor:pointer;font-size:.875rem;font-family:var(--font-primary);color:var(--color-ink-1);transition:background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;align-items:center;gap:8px;padding:5px 12px 5px 6px;display:flex}.top-nav__avatar-btn:hover,.top-nav__avatar-btn.open{background-color:var(--color-green-3);border-color:var(--color-green-2);color:var(--color-green-4)}.top-nav__avatar-btn:focus-visible{outline:2px solid var(--color-green-2);outline-offset:2px}.top-nav__avatar{background:linear-gradient(135deg, var(--color-green-1), var(--color-green-2));width:28px;height:28px;color:var(--color-cream-3);font-size:11px;font-weight:var(--font-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.top-nav__avatar-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.top-nav__chevron{color:var(--color-sage-3);font-size:10px}.top-nav__dropdown{border:1px solid var(--color-cream-4);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);z-index:200;background:#fff;animation:.12s dropdownFadeIn;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.top-nav__dropdown-item{text-align:left;width:100%;font-size:.9rem;font-family:var(--font-primary);color:var(--color-ink-3);cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;padding:10px 16px;display:block}.top-nav__dropdown-item:hover{background-color:var(--color-cream-1);color:var(--color-green-2)}.top-nav__dropdown-item.active{background-color:var(--color-green-3);color:var(--color-green-4);font-weight:var(--font-semibold)}.top-nav__dropdown-item:focus-visible{outline:2px solid var(--color-green-2);outline-offset:-2px}.top-nav__dropdown-divider{background:var(--color-cream-4);height:1px;margin:4px 0}.top-nav__dropdown-item--danger{color:var(--color-error)}.top-nav__dropdown-item--danger:hover{background-color:var(--color-error-light);color:var(--color-error-dark)}@media (width<=640px){.top-nav{padding:6px 10px}.top-nav__btn{padding:7px 10px;font-size:.82rem}.top-nav__avatar-name{display:none}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.todays-menu-container{max-width:var(--max-width-content);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.todays-menu-title{text-align:center;font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-8);color:var(--color-text-primary)}.menu-type-header{font-size:var(--text-2xl);font-weight:var(--font-semibold);margin-top:var(--space-6);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:var(--border-width-medium) solid var(--color-border-medium);color:var(--menu-type-color,var(--color-text-primary))}.date-navigation{margin-bottom:var(--space-8);padding:var(--space-5);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:var(--space-5);box-shadow:var(--shadow-sm);display:flex}.date-display{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;display:flex}.date-display h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);text-align:center;margin:0}.menu-section{margin-bottom:var(--space-8)}.meal-card{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);cursor:pointer;background-color:var(--color-bg-primary);transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.meal-card:hover{background-color:var(--color-green-3);border-color:var(--color-green-1);box-shadow:var(--shadow-md);transform:translateY(-2px)}.meal-header{font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--color-text-primary)}.meal-popup-overlay,.modal-overlay{background-color:var(--overlay-bg);width:100%;height:100%;z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.meal-popup-content,.modal-content{background-color:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:90vh;box-shadow:var(--shadow-xl);position:relative;overflow-y:auto}.meal-popup-content h2,.modal-content h2{margin-top:0;margin-bottom:var(--space-4);padding-right:var(--space-8);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary)}.meal-popup-content h3,.modal-content h3{margin-bottom:var(--space-3);margin-top:var(--space-5);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.meal-popup-content h4{margin-bottom:var(--space-2);margin-top:var(--space-4);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--menu-type-color,var(--color-text-primary))}.meal-popup-content ul,.modal-content ul{padding-left:var(--space-6);margin-bottom:var(--space-4);list-style-type:disc}.meal-popup-content li,.modal-content li{margin-bottom:var(--space-2);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.meal-popup-content p,.modal-content p{line-height:var(--leading-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.btn-icon{top:var(--space-4);right:var(--space-4);font-size:var(--text-2xl);font-weight:var(--font-bold);width:var(--space-10);height:var(--space-10);position:absolute}.children-conflicts-section{background:var(--color-cream-2);border:1.5px solid #f59e0b;border-radius:8px;margin:12px 0;padding:12px 16px}.conflicts-header{color:var(--color-warning);margin-bottom:8px;font-size:1rem;font-weight:700}.conflict-item .conflict-info{color:var(--color-error);font-size:.82rem;font-weight:500}.ingredients-comparison-table{border-collapse:collapse;width:100%;margin-top:var(--space-5);box-shadow:var(--shadow-sm);border-radius:var(--radius-md);overflow:hidden}.ingredients-comparison-table thead{background-color:var(--color-gray-100);border-bottom:var(--border-width-medium) solid var(--color-border-medium)}.ingredients-comparison-table th{padding:var(--space-3);text-align:left;font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-sm);border-right:var(--border-width-thin) solid var(--color-border-light)}.ingredients-comparison-table th:last-child{border-right:none}.ingredients-comparison-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-light)}.ingredients-comparison-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.ingredients-comparison-table td{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);border-right:var(--border-width-thin) solid var(--color-border-light)}.ingredients-comparison-table td:last-child{border-right:none}.ingredients-comparison-table .ingredient-name{font-weight:var(--font-medium);color:var(--color-text-primary)}.ingredients-comparison-table .allergen-cell{color:var(--color-allergen-text);font-size:var(--text-sm);font-weight:var(--font-medium)}.ingredients-comparison-table .dietary-cell{color:var(--color-warning);font-size:var(--text-sm)}.room-breakdown-section{margin:var(--space-5) 0;padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light)}.room-breakdown-section h3{margin:0 0 var(--space-4) 0;color:var(--color-text-primary);font-size:var(--text-lg)}.menu-room-breakdown{margin-bottom:var(--space-4)}.menu-room-breakdown:last-child{margin-bottom:0}.menu-room-breakdown h4{margin:0 0 var(--space-2) 0;color:var(--menu-type-color,var(--color-green-2));font-size:var(--text-base);font-weight:var(--font-semibold)}.room-counts{gap:var(--space-3);padding-left:var(--space-4);flex-wrap:wrap;display:flex}.room-count{background-color:var(--color-bg-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:var(--border-width-thin) solid var(--color-border-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.children-count-section{margin-bottom:var(--space-5);padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light)}.children-count-section p{margin:0 0 var(--space-3) 0;font-size:var(--text-base);color:var(--color-text-primary)}.room-breakdown-inline{gap:var(--space-2);flex-wrap:wrap;display:flex}.room-count-inline{background-color:var(--color-bg-primary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:var(--border-width-thin) solid var(--color-border-medium);font-size:var(--text-sm);color:var(--color-text-secondary)}.no-children-message{margin:var(--space-2) 0 0 var(--space-4);color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm)}.children-attention-section{margin-top:var(--space-6);padding:var(--space-4);background-color:var(--color-error-light);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-error-light)}.attention-header{color:var(--color-error);margin-top:0;margin-bottom:var(--space-3);font-size:var(--text-lg);font-weight:var(--font-semibold)}.attention-list{margin:0;padding:0;list-style:none}.attention-item{padding:var(--space-3);padding-right:calc(var(--space-3) + 120px);margin-bottom:var(--space-3);background-color:var(--color-bg-primary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light);position:relative}.attention-item .btn-sm{top:var(--space-3);right:var(--space-3);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);position:absolute}.attention-item:last-child{margin-bottom:0}.child-header-info{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.child-header-info strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.room-badge{padding:var(--space-1) var(--space-2);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.menu-assignment{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-1)}.conflict-info{color:var(--color-conflict-warning);margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--font-medium)}.weaning-info{margin-top:var(--space-1);color:var(--color-success-dark);font-style:italic;font-size:var(--text-sm)}.special-requirements-info{margin-top:var(--space-1);color:var(--color-text-secondary);font-style:italic;font-size:var(--text-sm)}.overall-methods-section{margin-top:var(--space-5);padding-top:var(--space-5);border-top:var(--border-width-medium) solid var(--color-border-light)}.overall-methods-section h3{margin-bottom:var(--space-4);color:var(--color-text-primary);font-size:var(--text-lg)}.method-block{padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.method-block p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);white-space:pre-wrap;margin:0}.method-block.no-method p{color:var(--color-text-tertiary);font-style:italic}.meal-names-header{margin-bottom:var(--space-4);padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.meal-names-header div{margin-bottom:var(--space-1);color:var(--color-text-secondary)}.meal-names-header div:last-child{margin-bottom:0}.meal-names-header strong{color:var(--menu-type-color,var(--color-text-primary));font-weight:var(--font-semibold)}.child-details-section{margin-bottom:var(--space-5)}.child-details-section h3{font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-2);color:var(--color-text-primary)}@media (width<=768px){.todays-menu-container{padding:var(--space-4) var(--space-3)}.todays-menu-title{font-size:var(--text-3xl)}.date-navigation{gap:var(--space-3);flex-direction:column}.date-display h2{font-size:var(--text-lg)}.meal-popup-content,.modal-content{padding:var(--space-4);max-height:95vh}.ingredients-comparison-table{font-size:var(--text-xs)}.ingredients-comparison-table th,.ingredients-comparison-table td{padding:var(--space-2)}.child-header-info{flex-direction:column;align-items:flex-start}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.calendar-container{max-width:var(--max-width-content);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.menu-toggle,.view-toggle{margin-bottom:var(--space-4);gap:var(--space-3);flex-wrap:wrap;display:flex}.month-label{text-align:center;margin-bottom:var(--space-4);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary)}.calendar-table{border-collapse:collapse;width:100%;box-shadow:var(--shadow-md);border-radius:var(--radius-lg);background-color:var(--color-bg-primary);overflow:hidden}.calendar-table th{background-color:var(--color-gray-100);color:var(--color-text-primary);font-weight:var(--font-semibold);padding:var(--space-3);text-align:center;border:var(--border-width-thin) solid var(--color-border-light);font-size:var(--text-sm)}.calendar-table td{border:var(--border-width-thin) solid var(--color-border-light);vertical-align:top;padding:var(--space-3);background-color:var(--color-bg-primary);min-width:120px;height:100px}.meal-type-label{font-weight:var(--font-semibold);text-align:center;background-color:var(--color-gray-50);color:var(--color-text-primary)}.meal-cell{background-color:var(--color-bg-tertiary);padding:var(--space-3);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.meal-cell:hover{background-color:var(--color-green-3);color:var(--color-green-4);font-weight:var(--font-medium);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.no-meal{color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm);text-align:center;padding:var(--space-3)}@media (width<=768px){.calendar-container{padding:var(--space-4) var(--space-3)}.calendar-table th,.calendar-table td{min-width:80px;padding:var(--space-2);font-size:var(--text-xs)}.meal-cell{padding:var(--space-2);font-size:var(--text-xs)}.month-label{font-size:var(--text-lg)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-overlay{background-color:var(--overlay-bg);width:100%;height:100%;z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.modal-content{background-color:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-xl);position:relative;overflow-y:auto}.modal-content h2{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-top:0;margin-bottom:var(--space-4);padding-right:var(--space-8)}.modal-content h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-top:var(--space-5);margin-bottom:var(--space-3)}.modal-content h4{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-top:var(--space-4);margin-bottom:var(--space-2)}.modal-content ul{padding-left:var(--space-6);margin-bottom:var(--space-4)}.modal-content li{margin-bottom:var(--space-2);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.modal-content p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.allergens{color:var(--color-allergen-text);font-weight:var(--font-semibold);font-size:var(--text-sm)}.dietary-info{color:var(--color-warning);font-weight:var(--font-medium);font-size:var(--text-sm)}.recipe-section{margin-top:var(--space-5);padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light)}.error{color:var(--color-error);font-weight:var(--font-medium);padding:var(--space-3);background-color:var(--color-error-light);border-radius:var(--radius-md);margin-top:var(--space-3)}.btn-icon{top:var(--space-4);right:var(--space-4);position:absolute}@media (width<=768px){.modal-content{padding:var(--space-4);max-height:95vh}.modal-content h2{font-size:var(--text-xl)}.modal-content h3{font-size:var(--text-base)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.allergen-alerts-container{max-width:var(--max-width-content);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.allergen-alerts-title{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-6);align-items:center;display:flex}.allergen-alerts-date{color:var(--color-text-secondary);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.toggle-controls{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex}.filter-controls{gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.filter-group{gap:var(--space-2);flex-direction:column;display:flex}.filter-label{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary)}.meal-filter-select{padding:var(--space-2) var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);font-size:var(--text-base);cursor:pointer;background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:var(--touch-target-comfortable)}.meal-filter-select:hover{border-color:var(--color-border-dark)}.meal-filter-select:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.alerts-list{gap:var(--space-6);flex-direction:column;display:flex}.alert-card{padding:var(--space-5);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-base);border:var(--border-width-thin) solid var(--color-border-light)}.alert-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-conflict{border:var(--border-width-thick) solid var(--color-conflict-warning);background-color:var(--color-bg-primary)}.child-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.child-name{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.room-badge-alert{padding:var(--space-1) var(--space-3);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;display:inline-block}.menu-details{margin-bottom:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.menu-details-title{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0}.meal-info{padding:var(--space-3);border-radius:var(--radius-md);line-height:var(--leading-relaxed);align-items:flex-start;display:flex}.meal-content-wrapper{flex-grow:1}.meal-type-title{font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.meal-type-name{font-weight:var(--font-semibold);color:var(--color-text-primary);margin-right:var(--space-5)}.menu-type-tag{font-weight:var(--font-medium);font-size:var(--text-base)}.meal-status-safe{background-color:var(--color-success-light);border:var(--border-width-thin) solid var(--color-success-light)}.meal-status-warning{color:var(--color-error-dark);background-color:var(--color-error-light);border:var(--border-width-thin) solid var(--color-error-light)}.conflict-text{margin-top:var(--space-1);margin-left:var(--space-6);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-conflict-warning);margin-bottom:0}.safe-text{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:var(--space-1);margin-left:var(--space-6)}.requirements-section{margin-top:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.requirement-item{gap:var(--space-1);flex-direction:column;display:flex}.requirement-label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base)}.requirement-content{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);line-height:var(--leading-relaxed)}.allergen-content{background-color:var(--color-error-light);color:var(--color-allergen-text);border:var(--border-width-thin) solid var(--color-error);font-weight:var(--font-medium)}.center-text{text-align:center;padding:var(--space-6);color:var(--color-text-secondary)}.loading-text{font-size:var(--text-xl)}.error-text{color:var(--color-error);font-weight:var(--font-semibold)}.no-data-text,.no-filter-results{color:var(--color-text-secondary);font-size:var(--text-base)}.no-filter-results{border:var(--border-width-thin) dashed var(--color-border-medium);border-radius:var(--radius-md);padding:var(--space-4);background-color:var(--color-bg-tertiary)}@media (width<=768px){.allergen-alerts-container{padding:var(--space-4) var(--space-3)}.allergen-alerts-title{font-size:var(--text-3xl)}.filter-controls{gap:var(--space-4);flex-direction:column}.filter-group,.meal-filter-select{width:100%}.child-header{flex-direction:column;align-items:flex-start}.alert-card{padding:var(--space-4)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-content .add-child-form{padding:0 var(--space-6) var(--space-6) var(--space-6)}.current-session-form{background-color:var(--color-bg-tertiary);padding:var(--space-4);border-radius:var(--radius-md);border:2px dashed var(--color-border-medium);margin-bottom:var(--space-4)}.session-fields-grid{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.checkbox-group{align-items:center;margin-bottom:0;display:flex}.checkbox-group .checkbox-label{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;margin:0;display:flex}.checkbox-group .checkbox-label input[type=checkbox]{flex-shrink:0;margin:0}.added-sessions-list{margin-top:var(--space-4)}.session-item{background-color:var(--color-bg-tertiary);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);border:1px solid var(--color-border-light);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.session-info{gap:var(--space-3);flex-wrap:wrap;flex:1;align-items:center;display:flex}.session-type{font-weight:var(--font-semibold);color:var(--color-text-primary)}.session-detail{color:var(--color-text-tertiary);font-size:var(--text-sm)}.textarea-input{resize:vertical;min-height:120px;font-family:var(--font-primary)}.form-actions{justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border-light);display:flex}@media (width<=640px){.session-fields-grid{grid-template-columns:1fr}.session-item{flex-direction:column;align-items:stretch}.session-info{align-items:flex-start;gap:var(--space-2);flex-direction:column}.form-actions{gap:var(--space-3);flex-direction:column-reverse}.form-actions .btn{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.children-container{max-width:900px;margin:var(--space-8) auto;padding:var(--space-6);background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);font-family:var(--font-primary)}.children-title{font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.header-with-button{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.header-with-button .header-button-group{flex-direction:column;align-items:flex-end;gap:6px;margin-left:auto;display:flex}.controls{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-flow:wrap;display:flex}.controls__search{flex:1;min-width:180px;position:relative}.controls__search-icon{pointer-events:none;font-size:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.controls__search .form-input{width:100%;padding-left:32px}.controls .form-select{flex-shrink:0;min-width:160px;max-width:200px}.btn-danger--ghost{border:1px solid var(--color-error);color:var(--color-error);background:0 0;margin-left:auto}.btn-danger--ghost:hover{background:var(--color-error);color:#fff}.children-count{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.children-list{border-top:1px solid var(--color-border-light);margin:0;padding:0;list-style:none}.child-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-base), transform .1s ease, box-shadow var(--transition-base);cursor:pointer;border-radius:var(--radius-sm);display:flex}.child-item:hover{background-color:var(--color-blue-50,#eff6ff);box-shadow:var(--shadow-sm);transform:translate(3px)}.child-item:focus-visible{outline:2px solid var(--color-blue-500,#3b82f6);outline-offset:2px}.child-avatar{color:#fff;text-transform:uppercase;background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:flex}.child-info{flex:1;min-width:0}.child-name{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base);margin:0 0 4px}.child-meta{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.child-meta__tag{color:var(--color-text-tertiary);background:var(--color-cream-1);border-radius:12px;padding:2px 8px;font-size:12px}.child-allergens{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.allergen-badge{white-space:nowrap;border-radius:12px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.allergen-badge--high{background:var(--color-error-light);color:var(--color-error-dark);border:1px solid #fca5a5}.allergen-badge__dot{font-size:10px}.allergen-badge--low{background:var(--color-warning-light);color:var(--color-warning);border:1px solid #fde68a}.allergen-badge--more{background:var(--color-cream-1);color:var(--color-ink-1);border:1px solid #e5e7eb}.view-details{color:var(--color-text-tertiary);transition:color var(--transition-fast), transform .15s ease;flex-shrink:0;font-size:18px}.child-item:hover .view-details{color:var(--color-blue-600,#2563eb);transform:translate(3px)}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-text-tertiary)}.empty-state__icon{margin-bottom:var(--space-4);font-size:48px;display:block}@media (width<=640px){.children-container{margin:var(--space-4) var(--space-2);padding:var(--space-4)}.header-with-button{flex-direction:column;align-items:stretch}.children-title{text-align:left}.controls{flex-direction:column;align-items:stretch}.controls .form-select,.btn-danger--ghost{max-width:100%;margin-left:0}}.leavers-banner{color:#5c4400;background:#fff8e6;border:1px solid #f0c36d;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.leavers-banner__actions{align-items:center;gap:12px;display:flex}.leavers-banner .btn-link{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.modal-intro{color:#555;margin:4px 0 16px;line-height:1.45}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.delete-modal{flex-direction:column;max-width:600px;max-height:85vh;display:flex}.search-container{margin-bottom:var(--space-4)}.search-container .form-search input{padding-left:var(--space-10)}.children-selection-list,.pdf-selection-list{border:1px solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--space-5);flex:1;max-height:400px;overflow-y:auto}.child-selection-item,.pdf-selection-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light)}.child-selection-item:last-child,.pdf-selection-item:last-child{border-bottom:none}.child-selection-item:hover{background-color:var(--color-bg-tertiary)}.checkbox-label{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-base);display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;width:20px;height:20px}.child-selection-info,.child-selection-info-only{gap:var(--space-1);flex-direction:column;display:flex}.child-selection-name{font-weight:var(--font-medium);color:var(--color-text-primary)}.child-selection-room{font-size:var(--text-sm);color:var(--color-text-tertiary)}.confirm-list{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5);max-height:300px;overflow-y:auto}.confirm-item{padding:var(--space-2) 0;color:var(--color-text-primary)}.pdf-item-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.download-pdf-btn{padding:var(--space-2) var(--space-3);background-color:var(--color-green-2);color:var(--color-text-inverse);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-base);border:none;flex-shrink:0}.download-pdf-btn:hover{background-color:var(--color-green-4)}.download-pdf-btn.downloaded{background-color:var(--color-success)}.download-pdf-btn.downloaded:hover{background-color:var(--color-green-2)}.modal-actions{gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);justify-content:flex-end;display:flex}.no-results{padding:var(--space-10) var(--space-5);text-align:center;color:var(--color-text-tertiary);font-style:italic}@media (width<=640px){.delete-modal{max-width:95%}.pdf-item-header{flex-direction:column;align-items:stretch}.download-pdf-btn{width:100%}.modal-actions{gap:var(--space-3);flex-direction:column-reverse}.modal-actions .btn{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.cl-modal{flex-direction:column;width:95%;max-width:680px;max-height:80vh;display:flex}.cl-modal__header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.cl-modal__title{font-size:var(--text-xl);font-family:var(--font-display);margin:0}.cl-modal__subtitle{color:var(--color-text-tertiary);font-size:var(--text-sm);margin:2px 0 0}.cl-modal__body{padding:var(--space-4) var(--space-6);flex:1;overflow-y:auto}.cl-modal__footer{border-top:1px solid var(--color-border-light);padding:var(--space-4) var(--space-6);justify-content:flex-end;display:flex}.cl-badge{border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold);white-space:nowrap;font-family:var(--font-display);padding:2px 8px}.cl-badge--create{background-color:var(--color-success-light);color:var(--color-green-4)}.cl-badge--update{background-color:var(--color-green-3);color:var(--color-green-4)}.cl-badge--delete{background-color:var(--color-error-light);color:var(--color-error-dark)}.cl-badge--support{color:#7a2e0e;background-color:#fde8d7}.cl-badge--owner{color:#075985;background-color:#e0f2fe}.cl-badge--default{background-color:var(--color-cream-2);color:var(--color-ink-1)}.cl-entry{border-bottom:1px solid var(--color-border-light);padding:var(--space-3) 0}.cl-entry__row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.cl-entry__title{font-size:var(--text-sm);color:var(--color-ink-4);font-weight:var(--font-medium);flex:1}.cl-entry__count{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-2)}.cl-entry__time{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}.cl-entry__by{font-size:var(--text-sm);color:var(--color-ink-1)}.cl-entry__detail{margin-top:var(--space-2);padding-left:var(--space-1)}.cl-toggle-btn{border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;color:var(--color-ink-1);font-family:var(--font-primary);transition:all var(--transition-fast);background:0 0;padding:2px 8px}.cl-toggle-btn:hover{background-color:var(--color-cream-2);border-color:var(--color-border-dark)}.cl-group-item{border-top:1px dashed var(--color-border-light);padding-top:var(--space-2);margin-top:var(--space-2)}.cl-group-item__label{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0 0 var(--space-1);font-weight:var(--font-semibold)}.cl-table-wrap{margin-top:var(--space-2)}.cl-table{border-collapse:collapse;width:100%;font-size:var(--text-xs);margin-top:var(--space-2)}.cl-table__head-row{background-color:var(--color-cream-2)}.cl-table__th{text-align:left;font-weight:var(--font-semibold);color:var(--color-ink-3);padding:4px 8px}.cl-table__th--before{color:var(--color-error-dark)}.cl-table__th--after{color:var(--color-green-4)}.cl-table__row{border-top:1px solid var(--color-border-light)}.cl-td{padding:4px 8px}.cl-td--label{color:var(--color-ink-1);font-weight:var(--font-medium)}.cl-td--before{color:var(--color-error-dark)}.cl-td--after{color:var(--color-green-4)}.cl-td--update{color:var(--color-green-2)}.cl-td--bold{font-weight:var(--font-semibold)}.cl-no-changes{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-2)}.cl-state-msg{color:var(--color-text-tertiary);text-align:center;padding:var(--space-6)}.cl-state-msg--error{color:var(--color-error)}.cl-section-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-ink-1);margin:0 0 var(--space-1)}.cl-ingredient-section{margin-top:var(--space-3)}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.child-details-container{max-width:var(--max-width-content);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.child-name{font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-2);color:var(--color-text-primary);letter-spacing:-.02em}.child-room{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-8);font-weight:var(--font-medium)}.loading-text{text-align:center;padding:var(--space-10);color:var(--color-text-secondary);font-size:var(--text-lg)}.card{margin-bottom:var(--space-6)}.card h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);padding:var(--space-2) var(--space-3);margin:0}.card ul{padding-left:var(--space-6);margin-top:var(--space-4)}.card li{margin-bottom:var(--space-2);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.card p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);padding:var(--space-2) var(--space-3);margin:0}.edit-section{margin-top:var(--space-5);padding:var(--space-5);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:var(--border-width-medium) dashed var(--color-border-medium)}.edit-actions{gap:var(--space-4);margin-top:var(--space-5);justify-content:flex-end;display:flex}.allergen-selector{margin-bottom:var(--space-6)}.allergen-selector h4{margin-bottom:var(--space-3);color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-base)}.checkbox-grid{gap:var(--space-3);max-height:300px;padding:var(--space-4);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid;overflow-y:auto}.checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);display:flex}.dietary-preferences-section,.weaning-options-section{padding:var(--space-2) 0}.dietary-preferences-grid,.weaning-options-grid{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.dietary-preference-checkbox,.weaning-option-checkbox{padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background-color:var(--color-bg-primary);align-items:center;display:flex}.dietary-preference-checkbox:hover,.weaning-option-checkbox:hover{border-color:var(--color-green-2);background-color:var(--color-green-3);box-shadow:var(--shadow-sm)}.dietary-preference-checkbox input[type=checkbox],.weaning-option-checkbox input[type=checkbox]{margin-right:var(--space-3);cursor:pointer;width:var(--space-5);height:var(--space-5);accent-color:var(--color-green-2)}.dietary-preference-label,.weaning-option-label{font-size:var(--text-base);color:var(--color-text-primary);-webkit-user-select:none;user-select:none;font-weight:var(--font-medium)}:is(.dietary-preference-checkbox:has(input[type=checkbox]:checked),.weaning-option-checkbox:has(input[type=checkbox]:checked)){border-color:var(--color-green-2);background-color:var(--color-green-3)}.dietary-preference-checkbox input[type=checkbox]:checked+.dietary-preference-label,.weaning-option-checkbox input[type=checkbox]:checked+.weaning-option-label{font-weight:var(--font-semibold);color:var(--color-green-4)}.dietary-preferences-display,.weaning-options-display{padding:var(--space-2) 0}.no-options-text{color:var(--color-text-tertiary);padding:var(--space-3) 0;font-style:italic}.special-requirements-textarea{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-primary);resize:vertical;transition:border-color var(--transition-fast);line-height:var(--leading-relaxed);min-height:120px}.special-requirements-textarea:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.special-requirements-display{padding:var(--space-3) 0}.special-requirements-text{background-color:var(--color-bg-tertiary);padding:var(--space-4);border-radius:var(--radius-md);border-left:var(--border-width-thick) solid var(--color-green-2);line-height:var(--leading-relaxed);color:var(--color-text-primary);white-space:pre-wrap;margin:0}.no-requirements-text{color:var(--color-text-tertiary);padding:var(--space-3) 0;font-style:italic}.subsection-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-top:var(--space-6);margin-bottom:var(--space-3);color:var(--color-text-primary);padding:0 var(--space-3)}.sessions-table-container{margin-top:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.sessions-table{border-collapse:collapse;width:100%;margin-bottom:var(--space-4)}.sessions-table th{background-color:var(--color-gray-100);padding:var(--space-3);text-align:center;font-weight:var(--font-semibold);border:var(--border-width-thin) solid var(--color-border-light);color:var(--color-text-primary);font-size:var(--text-sm)}.sessions-table td{border:var(--border-width-thin) solid var(--color-border-light);padding:var(--space-3);vertical-align:top}.session-cell{background-color:var(--color-gray-50);min-height:80px}.session-list{gap:var(--space-2);flex-direction:column;display:flex}.session-box{background-color:var(--color-green-2);color:var(--color-text-inverse);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-1);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative}.session-name{font-weight:var(--font-semibold);font-size:var(--text-base)}.session-dates{font-size:var(--text-xs);color:#ffffffe6;margin-top:var(--space-1)}.ongoing-text{opacity:.8;font-style:italic}.delete-button-inline{top:var(--space-1);right:var(--space-1);background-color:var(--color-error);color:var(--color-text-inverse);border-radius:var(--radius-full);width:var(--space-6);height:var(--space-6);font-size:var(--text-lg);cursor:pointer;transition:background-color var(--transition-fast);border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute}.delete-button-inline:hover{background-color:var(--color-error-dark)}.add-end-date-button{font-size:var(--text-xs);color:var(--color-text-inverse);border:var(--border-width-thin) solid #ffffff80;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;margin-top:var(--space-1);transition:background-color var(--transition-fast);background-color:#fff3}.add-end-date-button:hover{background-color:#ffffff4d}.end-date-form{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);background-color:#ffffff1a;align-items:center;display:flex}.end-date-input{padding:var(--space-2);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-sm);background-color:var(--color-bg-primary);flex:1}.save-end-date-button,.cancel-end-date-button{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-bold);transition:all var(--transition-fast);min-width:36px;min-height:36px;box-shadow:var(--shadow-sm);border:none;justify-content:center;align-items:center;display:flex}.save-end-date-button{background-color:var(--color-success);color:var(--color-text-inverse);border:2px solid var(--color-success-dark)}.save-end-date-button:hover{background-color:var(--color-success-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)scale(1.05)}.cancel-end-date-button{background-color:var(--color-error)!important;color:var(--color-text-inverse)!important;border:2px solid var(--color-error-dark)!important}.cancel-end-date-button:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)scale(1.05);background-color:var(--color-error-dark)!important}.session-box .end-date-form .save-end-date-button{background-color:var(--color-success);color:#fff}.session-box .end-date-form .cancel-end-date-button{background-color:var(--color-error);color:#fff}.no-booking{color:var(--color-text-tertiary);text-align:center;padding:var(--space-4) 0;font-style:italic;font-size:var(--text-sm)}.one-off-sessions-section{margin-top:var(--space-8);padding-top:var(--space-6);border-top:var(--border-width-thin) solid var(--color-border-light)}.one-off-sessions-list{gap:var(--space-3);flex-direction:column;display:flex}.one-off-session-item{background-color:var(--color-warning-light);border:var(--border-width-thin) solid var(--color-warning);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-sm);display:flex}.one-off-session-info{gap:var(--space-1);flex-direction:column;display:flex}.one-off-session-name{font-weight:var(--font-semibold);color:var(--color-warning);font-size:var(--text-base)}.one-off-session-date{color:var(--color-warning);font-size:var(--text-sm)}.delete-button-small{padding:var(--space-2) var(--space-3);background-color:var(--color-error);color:var(--color-text-inverse);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;transition:background-color var(--transition-fast);border:none}.delete-button-small:hover{background-color:var(--color-error-dark)}.add-session-form{margin-top:var(--space-5);padding:var(--space-5);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:var(--border-width-medium) dashed var(--color-border-medium)}.add-session-form h4{margin-top:0;margin-bottom:var(--space-4);color:var(--color-text-primary);font-weight:var(--font-semibold)}.session-type-toggle{gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.toggle-button{padding:var(--space-3) var(--space-5);background-color:var(--color-bg-primary);color:var(--color-text-secondary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast);flex:1}.toggle-button:hover{background-color:var(--color-bg-tertiary)}.toggle-button.active{background-color:var(--color-green-2);color:var(--color-text-inverse);border-color:var(--color-green-2)}.form-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--color-text-primary);margin-bottom:var(--space-1)}.form-group select,.form-group input{width:100%;padding:var(--space-3) var(--space-4);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);min-height:var(--touch-target-comfortable);transition:border-color var(--transition-fast)}.form-group select:focus,.form-group input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.absences-list{margin-bottom:var(--space-5)}.absences-list h4{margin-bottom:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:0 var(--space-3)}.absence-item{padding:var(--space-3);background-color:var(--color-warning-light);border:var(--border-width-thin) solid var(--color-warning);border-radius:var(--radius-md);margin-bottom:var(--space-2);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.absence-info{gap:var(--space-1);flex-direction:column;display:flex}.absence-date{font-weight:var(--font-semibold);color:var(--color-warning)}.absence-session{font-size:var(--text-sm);color:var(--color-warning)}.mark-absence-form{margin-top:var(--space-5);padding:var(--space-5);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.mark-absence-form h4{margin-bottom:var(--space-4);color:var(--color-text-primary)}.week-navigation{margin-bottom:var(--space-5);margin-top:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);padding:0 var(--space-3);display:flex}.week-label{font-size:var(--text-base);font-weight:var(--font-semibold);text-align:center;color:var(--color-text-primary);flex:1;margin:0}.week-navigation .btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);min-height:36px}.week-navigation button.btn.btn-primary:disabled,.week-navigation button.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;background-color:var(--color-gray-300);border-color:var(--color-gray-300)}.week-navigation button.btn.btn-primary:disabled:hover,.week-navigation button.btn:disabled:hover{background-color:var(--color-gray-300);border-color:var(--color-gray-300);transform:none}.menu-table-container{margin-top:var(--space-3);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow-x:auto}.menu-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);background-color:var(--color-bg-primary)}.menu-table th,.menu-table td{border:var(--border-width-thin) solid var(--color-border-light);padding:var(--space-3);text-align:left}.menu-table th{background-color:var(--color-gray-100);font-weight:var(--font-semibold);color:var(--color-text-primary);position:sticky;top:0}.meal-type-label{font-weight:var(--font-semibold);background-color:var(--color-gray-50);white-space:nowrap;color:var(--color-text-primary)}.today-cell{background-color:#fff9c4!important}.meal-cell{cursor:pointer;transition:background-color var(--transition-fast);padding:var(--space-3);gap:var(--space-2);flex-direction:column;min-height:80px;display:flex}.meal-cell:hover{background-color:var(--color-bg-tertiary)}.meal-menu-type{font-size:var(--text-xs);font-style:normal;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.5px;background-color:#0000;border-radius:0;order:-1;width:fit-content;padding:0}.meal-menu-type[data-menu-type]{color:var(--menu-type-color,var(--color-green-2))}.meal-name{font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--color-text-primary);line-height:var(--leading-snug);margin:0}.meal-warning{font-size:var(--text-xs);color:var(--color-warning);margin-top:var(--space-1);cursor:help;font-weight:var(--font-medium)}.no-meal{color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm)}.not-attending{color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm);text-align:center}@media (width<=768px){.child-details-container{padding:var(--space-4) var(--space-3)}.child-name{font-size:var(--text-3xl)}.checkbox-grid{grid-template-columns:1fr}.edit-actions{flex-direction:column-reverse}.edit-actions button{width:100%}.week-navigation{gap:var(--space-2);flex-direction:column}.week-label{font-size:var(--text-base);order:-1}.sessions-table th,.sessions-table td{font-size:var(--text-xs);padding:var(--space-2)}.menu-table{font-size:var(--text-xs)}.menu-table th,.menu-table td{padding:var(--space-2)}.one-off-session-item{flex-direction:column;align-items:stretch}.delete-button-small{width:100%}.form-grid{grid-template-columns:1fr}}@media (width<=480px){.dietary-preferences-grid,.weaning-options-grid{grid-template-columns:1fr}.session-type-toggle{flex-direction:column}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-content{background:var(--color-bg-primary);padding:var(--space-8);border-radius:var(--radius-xl);width:90%;max-width:700px;max-height:90vh;box-shadow:var(--shadow-2xl);position:relative;overflow-y:auto}.modal-close-btn{top:var(--space-4);right:var(--space-4);cursor:pointer;color:var(--color-text-tertiary);border-radius:var(--radius-full);width:40px;height:40px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:32px;display:flex;position:absolute}.modal-close-btn:hover{background-color:var(--color-gray-200);color:var(--color-text-primary);transform:rotate(90deg)}.modal-title{margin:0 0 var(--space-6) 0;font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-text-primary);padding-right:var(--space-10);line-height:var(--leading-tight)}.modal-info{background-color:var(--color-bg-tertiary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:var(--border-width-thin) solid var(--color-border-light)}.modal-info p{margin:var(--space-2) 0;color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.modal-info strong{color:var(--color-text-primary);font-weight:var(--font-semibold);margin-right:var(--space-2)}.modal-info .meal-type-text{text-transform:uppercase;letter-spacing:.5px;font-weight:var(--font-bold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);display:inline-block}.modal-info .meal-type-text[data-light=true]{background-color:var(--menu-type-color,var(--color-green-2));color:var(--color-ink-4)}.modal-info .meal-type-text[data-light=false]{color:var(--menu-type-color,var(--color-green-2));background-color:#0000;padding:0}.conflict-warning{background-color:var(--color-error-light);border:var(--border-width-medium) solid var(--color-error);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);box-shadow:var(--shadow-md)}.conflict-warning h3{margin:0 0 var(--space-3) 0;color:var(--color-error-dark);font-size:var(--text-xl);font-weight:var(--font-bold);align-items:center;gap:var(--space-2);display:flex}.conflict-warning p{margin:0 0 var(--space-3) 0;color:var(--color-error-dark);font-weight:var(--font-medium)}.conflict-warning ul{padding-left:var(--space-6);margin:0}.conflict-item{color:var(--color-error);font-weight:var(--font-semibold);margin:var(--space-2) 0;font-size:var(--text-base)}.ingredients-section{margin-bottom:var(--space-6)}.ingredients-section h3{margin:0 0 var(--space-4) 0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary)}.ingredients-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ingredients-list li{padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border-left:var(--border-width-thick) solid var(--color-green-2);transition:all var(--transition-fast)}.ingredients-list li:hover{background-color:var(--color-bg-secondary);box-shadow:var(--shadow-sm);transform:translate(2px)}.ingredient-conflict{background-color:var(--color-error-light)!important;border-left-color:var(--color-error)!important}.ingredient-conflict:hover{background-color:var(--color-error-light)!important}.ingredient-name{font-weight:var(--font-semibold);color:var(--color-text-primary);align-items:center;gap:var(--space-2);font-size:var(--text-base);margin-bottom:var(--space-1);display:flex}.conflict-icon{font-size:var(--text-lg)}.ingredient-allergens{font-size:var(--text-sm);color:var(--color-allergen-text);margin-top:var(--space-2);font-weight:var(--font-medium);align-items:center;gap:var(--space-2);display:flex}.ingredient-allergens:before{content:"⚠";font-size:var(--text-base)}.ingredient-dietary{font-size:var(--text-sm);color:var(--color-warning);margin-top:var(--space-1);font-weight:var(--font-medium);font-style:italic}.method-section{margin-bottom:var(--space-6)}.method-section h3{margin:0 0 var(--space-3) 0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary)}.method-text{line-height:var(--leading-relaxed);color:var(--color-text-secondary);white-space:pre-wrap;background-color:var(--color-bg-tertiary);padding:var(--space-4);border-radius:var(--radius-md);border-left:var(--border-width-thick) solid var(--color-green-2)}.close-button{width:100%;padding:var(--space-3) var(--space-6);background-color:var(--color-green-2);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;margin-top:var(--space-4);transition:all var(--transition-fast);min-height:var(--touch-target-comfortable);border:none}.close-button:hover{background-color:var(--color-green-2);box-shadow:var(--shadow-md);transform:translateY(-1px)}.close-button:active{transform:translateY(0)}.modal-content p:only-child{text-align:center;color:var(--color-text-secondary);padding:var(--space-8);font-size:var(--text-lg)}@media (width<=768px){.modal-content{padding:var(--space-6);max-width:95%;max-height:95vh}.modal-title{font-size:var(--text-2xl);padding-right:var(--space-8)}.modal-close-btn{top:var(--space-3);right:var(--space-3);width:36px;height:36px;font-size:28px}.conflict-warning{padding:var(--space-4)}.conflict-warning h3{font-size:var(--text-lg)}.ingredients-list li{padding:var(--space-3)}.ingredient-name{font-size:var(--text-sm)}}@media (width<=480px){.modal-content{padding:var(--space-4)}.modal-title{font-size:var(--text-xl)}.modal-info,.conflict-warning{padding:var(--space-3)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.shopping-list-container{max-width:var(--max-width-content);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.shopping-list-title{font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-6);color:var(--color-text-primary)}.date-selector-card{background-color:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-6);box-shadow:var(--shadow-md)}.date-selector-card h2{font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-5);color:var(--color-text-primary)}.date-inputs{gap:var(--space-5);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.date-input-group{gap:var(--space-2);flex-direction:column;display:flex}.date-input-group label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-sm)}.date-input{padding:var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);min-height:var(--touch-target-comfortable);transition:border-color var(--transition-fast)}.date-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.error-message p{margin:0}.shopping-list-results{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.results-header{background-color:var(--color-bg-tertiary);padding:var(--space-5);border-bottom:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.results-info h2{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2);color:var(--color-text-primary)}.date-range{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-1);font-weight:var(--font-medium)}.total-count{color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-sm)}.action-buttons{gap:var(--space-3);display:flex}.list-controls{gap:var(--space-4);padding:var(--space-4) var(--space-5);background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);flex-wrap:wrap;align-items:flex-end;display:flex}.control-group{gap:var(--space-2);flex-direction:column;min-width:180px;display:flex}.control-group label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.control-select{padding:var(--space-2) var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast);min-height:var(--touch-target-comfortable)}.control-select:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.control-select:hover{border-color:var(--color-green-2)}.no-ingredients{padding:var(--space-10);text-align:center;color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-base)}.ingredients-table-container{margin-top:0;overflow-x:auto}.shopping-table{border-collapse:collapse;background-color:var(--color-bg-primary);width:100%}.shopping-table thead{background-color:var(--color-gray-100);border-bottom:var(--border-width-medium) solid var(--color-border-medium)}.shopping-table thead th{padding:var(--space-4) var(--space-5);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em}.shopping-table thead th:last-child{text-align:right}.shopping-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-light);transition:background-color var(--transition-fast)}.shopping-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.shopping-table tbody tr:last-child{border-bottom:none}.shopping-table tbody td{padding:var(--space-4) var(--space-5);font-size:var(--text-base);color:var(--color-text-primary)}.shopping-table tbody td:first-child{font-weight:var(--font-medium)}.shopping-table tbody td:nth-child(2),.shopping-table tbody td:nth-child(3){color:var(--color-text-secondary)}.shopping-table tbody td:last-child{text-align:right;font-weight:var(--font-semibold);color:var(--color-success-dark)}@media (width<=768px){.shopping-list-container{padding:var(--space-4) var(--space-3)}.shopping-list-title{font-size:var(--text-3xl)}.date-selector-card{padding:var(--space-4)}.date-inputs{grid-template-columns:1fr}.list-controls{padding:var(--space-3);flex-direction:column;align-items:stretch}.control-group{width:100%}.results-header{padding:var(--space-4);flex-direction:column}.action-buttons{flex-direction:column;width:100%}.shopping-table{font-size:var(--text-sm)}.shopping-table thead th,.shopping-table tbody td{padding:var(--space-3)}}@media (width<=480px){.shopping-table thead th,.shopping-table tbody td{padding:var(--space-2);font-size:var(--text-xs)}}.export-dropdown{display:inline-block;position:relative}.export-dropdown__trigger{align-items:center;gap:6px;display:flex}.export-dropdown__menu{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:180px;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.export-dropdown__item{text-align:left;width:100%;color:var(--color-ink-4);cursor:pointer;background:0 0;border:none;padding:10px 16px;font-size:14px;transition:background .15s;display:block}.export-dropdown__item:hover{background:var(--color-cream-1)}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.menu-management-wrapper{background-color:var(--color-bg-secondary);min-height:100vh}.menu-management-container{max-width:var(--max-width-wide);padding:var(--space-8) var(--space-4);margin:0 auto;overflow-x:auto}.page-header{margin-bottom:var(--space-8)}.page-header h1{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold)}.subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.cycle-selector{align-items:center;gap:var(--space-4);padding:var(--space-5);background:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm);display:flex}.cycle-selector-label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base)}.cycle-dropdown{max-width:500px;padding:var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast);min-height:var(--touch-target-comfortable);flex:1}.cycle-dropdown:hover{border-color:var(--color-border-dark)}.cycle-dropdown:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.cycle-info{align-items:center;gap:var(--space-3);display:flex}.cycle-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.cycle-badge.active{background-color:var(--color-success-light);color:var(--color-success-dark)}.cycle-badge:not(.active){background-color:var(--color-gray-100);color:var(--color-text-secondary)}.cycle-length{padding:var(--space-1) var(--space-3);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.menu-toggle{gap:var(--space-3);margin-bottom:var(--space-8);padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);display:flex}.cycle-grid-container{margin-bottom:var(--space-8);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--color-border-medium);overflow-x:auto}.cycle-table{border-collapse:collapse;background-color:var(--color-bg-primary);width:100%;min-width:1400px}.cycle-table thead{z-index:10;background-color:var(--color-gray-800);position:sticky;top:0}.meal-type-header,.day-header{padding:var(--space-4) var(--space-3);color:var(--color-text-inverse);font-weight:var(--font-semibold);text-align:center;border:var(--border-width-thin) solid var(--color-gray-700)}.meal-type-header{z-index:11;background-color:var(--color-gray-800);text-align:left;border-right:var(--border-width-medium) solid var(--color-gray-600);min-width:140px;position:sticky;left:0}.day-header{font-size:var(--text-sm);min-width:120px}.cycle-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-medium)}.cycle-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.meal-type-label{padding:var(--space-4) var(--space-3);font-weight:var(--font-semibold);background-color:var(--color-bg-primary);z-index:5;border-right:var(--border-width-medium) solid var(--color-border-dark);border-bottom:var(--border-width-thin) solid var(--color-border-medium);color:var(--color-text-primary);font-size:var(--text-sm);position:sticky;left:0}.meal-cell-container{padding:var(--space-2);cursor:pointer;transition:background-color var(--transition-fast);vertical-align:top;border-right:var(--border-width-thin) solid var(--color-border-light);border-bottom:var(--border-width-thin) solid var(--color-border-light);min-height:80px}.meal-cell-container:hover{background-color:var(--color-green-3)}.meal-cell-container>div{margin-bottom:var(--space-1)}.meal-cell-container>div:last-child{margin-bottom:0}.meal-cell{padding:var(--space-3);border-radius:var(--radius-md);min-height:70px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.meal-cell.filled{background-color:var(--color-success-light);border:var(--border-width-medium) solid var(--color-success)}.meal-cell.filled:hover{background-color:var(--color-success-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.meal-cell.empty{background-color:var(--color-bg-tertiary);border:var(--border-width-medium) dashed var(--color-border-medium)}.meal-cell.empty:hover{background-color:var(--color-bg-secondary);border-color:var(--color-green-2)}.meal-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-success-dark);text-align:center;word-break:break-word;line-height:var(--leading-snug)}.add-meal{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}.meal-cell.empty:hover .add-meal{color:var(--color-green-2)}.loading,.error{padding:var(--space-10);text-align:center;font-size:var(--text-lg);color:var(--color-text-secondary)}@media (width<=1400px){.cycle-grid-container{overflow-x:scroll}}@media (width<=768px){.menu-management-container{padding:var(--space-4) var(--space-3)}.page-header h1{font-size:var(--text-3xl)}.cycle-selector{padding:var(--space-4);flex-direction:column;align-items:stretch}.cycle-dropdown{max-width:100%}.cycle-info{justify-content:space-between}.menu-toggle{flex-wrap:wrap}}@media print{.menu-toggle{display:none}.page-header h1{font-size:var(--text-xl)}.cycle-table{font-size:var(--text-xs)}.meal-cell{min-height:50px;padding:var(--space-2)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-header h2{font-size:var(--text-xl);color:var(--color-text-primary);font-weight:var(--font-semibold);margin:0}.close-button{font-size:var(--text-3xl);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);width:36px;height:36px;transition:all var(--transition-fast);font-weight:var(--font-bold);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.form-input,.form-textarea{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast);font-family:var(--font-primary);color:var(--color-text-primary)}.section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-header h3{font-size:var(--text-lg);color:var(--color-text-primary);font-weight:var(--font-semibold);margin:0}.ingredient-search{margin-bottom:var(--space-5);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-md);padding:var(--space-3);background-color:var(--color-green-3)}.search-input{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--space-3)}.search-results{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);max-height:250px;overflow-y:auto}.search-result-item{padding:var(--space-3);cursor:pointer;border-bottom:var(--border-width-thin) solid var(--color-border-light);transition:background-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:var(--color-green-3)}.tags-container{gap:var(--space-2);margin-top:var(--space-1);display:flex}.allergen-badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background-color:var(--color-warning-light);color:var(--color-warning);border-radius:var(--radius-sm);font-weight:var(--font-medium)}.dietary-badge{padding:var(--space-1) var(--space-2);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.empty-state{text-align:center;color:var(--color-text-tertiary);padding:var(--space-10);font-style:italic}.ingredients-list{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.ingredient-item{padding:var(--space-4);border-bottom:var(--border-width-thin) solid var(--color-border-light);background-color:var(--color-bg-primary);transition:background-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.ingredient-item:last-child{border-bottom:none}.ingredient-item:hover{background-color:var(--color-bg-tertiary)}.ingredient-info{flex:1}.ingredient-name{font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1);font-size:var(--text-base);display:block}.tags-wrapper{gap:var(--space-1);margin-top:var(--space-1);flex-direction:column;display:flex}.allergen-tags,.dietary-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.allergen-tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background-color:var(--color-warning-light);color:var(--color-warning);border:var(--border-width-thin) solid var(--color-warning);border-radius:var(--radius-sm);font-weight:var(--font-medium)}.ingredient-quantity{gap:var(--space-2);align-items:center;display:flex}.quantity-input{width:80px;padding:var(--space-2);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-base);text-align:right}.quantity-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 2px var(--color-green-3);outline:none}.unit-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.unit-select{padding:var(--space-2);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;background-color:var(--color-bg-primary)}.unit-select:focus{border-color:var(--color-green-2);outline:none}.remove-button{background-color:var(--color-error);width:28px;height:28px;color:var(--color-text-inverse);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xl);transition:background-color var(--transition-fast);font-weight:var(--font-bold);border:none;justify-content:center;align-items:center;padding:0;display:flex}.remove-button:hover{background-color:var(--color-error-dark)}.modal-footer{padding:var(--space-5) var(--space-6);border-top:var(--border-width-medium) solid var(--color-border-light);background-color:var(--color-bg-tertiary);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:space-between;display:flex}.footer-left,.footer-right{gap:var(--space-3);display:flex}.search-results::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar{width:8px}.search-results::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.modal-body::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.search-results::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.search-results::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}@media (width<=768px){.modal-overlay{padding:var(--space-3)}.modal-content{max-height:95vh}.modal-header{padding:var(--space-4)}.modal-header h2{font-size:var(--text-lg)}.modal-body{padding:var(--space-4)}.modal-footer{padding:var(--space-4);gap:var(--space-3);flex-direction:column}.footer-left,.footer-right{flex-direction:column;width:100%}.ingredient-item{align-items:flex-start;gap:var(--space-3);flex-direction:column}.ingredient-quantity{justify-content:space-between;width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.ingredient-management-container{padding:var(--space-10) var(--space-5) var(--space-5) var(--space-5);border-top:var(--border-width-thick) solid var(--color-border-medium);background-color:var(--color-bg-tertiary);margin-top:var(--space-10)}.ingredient-header{margin-bottom:var(--space-8)}.ingredient-header h2{font-size:var(--text-3xl);color:var(--color-text-primary);margin-bottom:var(--space-2);font-weight:var(--font-bold)}.ingredient-header .subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.header-content{justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.header-text{flex:1}.header-buttons{gap:var(--space-3);display:flex}.ingredient-controls{gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4);background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;display:flex}.search-box{flex:1;min-width:250px}.search-input{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast);min-height:var(--touch-target-comfortable)}.search-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.filter-controls{gap:var(--space-3);display:flex}.filter-select{padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast);min-height:var(--touch-target-comfortable)}.filter-select:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.results-count{color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;font-weight:var(--font-medium);margin-left:auto}.ingredients-table-container{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.ingredients-table{border-collapse:collapse;width:100%}.ingredients-table thead{background-color:var(--color-gray-800);color:var(--color-text-inverse)}.ingredients-table th{padding:var(--space-4);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-sm);border-bottom:var(--border-width-medium) solid var(--color-gray-700)}.ingredient-name-col{width:20%}.default-unit-col{width:8%}.category-col,.shop-col{width:12%}.allergens-col{width:20%}.dietary-col{width:18%}.actions-col{text-align:center;width:10%}.ingredients-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-light);transition:background-color var(--transition-fast)}.ingredients-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.ingredients-table td{padding:var(--space-4);vertical-align:middle}.ingredient-name{font-weight:var(--font-medium);color:var(--color-text-primary);font-size:var(--text-base)}.default-unit{color:var(--color-text-secondary);font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--font-medium)}.category-cell,.shop-cell{padding:var(--space-3) var(--space-4)}.category-tag{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium)}.shop-tag{padding:var(--space-1) var(--space-3);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.no-category,.no-shop{color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm)}.allergens-cell{padding:var(--space-3) var(--space-4)}.allergen-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.allergen-tag{padding:var(--space-1) var(--space-2);color:var(--color-allergen-text);font-size:var(--text-xs);font-weight:var(--font-semibold);display:inline-block}.no-allergens{color:var(--color-text-secondary);font-style:italic;font-size:var(--text-sm)}.dietary-cell{padding:var(--space-3) var(--space-4)}.dietary-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.dietary-tag{padding:var(--space-1) var(--space-2);background-color:var(--color-error-light);color:var(--color-error-dark);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.no-dietary{color:var(--color-text-secondary);font-style:italic;font-size:var(--text-sm)}.actions-cell{text-align:center}.no-results{padding:var(--space-10) var(--space-5);text-align:center;color:var(--color-text-secondary);font-size:var(--text-base)}.loading,.error{padding:var(--space-10);text-align:center;font-size:var(--text-lg)}.loading{color:var(--color-text-secondary)}.error{color:var(--color-error);background-color:var(--color-error-light);border:var(--border-width-thin) solid var(--color-error-light);border-radius:var(--radius-lg);margin:var(--space-5)}@media (width<=1200px){.ingredient-controls{flex-direction:column;align-items:stretch}.search-box,.filter-controls{width:100%}.filter-select{flex:1}.results-count{text-align:center;margin-left:0}}@media (width<=768px){.ingredient-management-container{padding:var(--space-5) var(--space-3)}.ingredient-header h2{font-size:var(--text-2xl)}.header-content{flex-direction:column;align-items:stretch}.header-buttons{width:100%}.ingredients-table{font-size:var(--text-xs)}.ingredients-table th,.ingredients-table td{padding:var(--space-2)}.allergen-tag,.dietary-tag{font-size:var(--text-xs);padding:var(--space-1)}.category-tag,.shop-tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:90%;max-height:85vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow-y:auto}.section{margin-bottom:var(--space-8)}.section:last-child{margin-bottom:0}.section-title{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.form-label{font-weight:var(--font-semibold);margin-bottom:var(--space-2);color:var(--color-text-primary);font-size:var(--text-base);display:block}.checkbox-label{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:var(--border-width-thin) solid var(--color-border-light);display:flex}.checkbox-label:hover{background:var(--color-bg-secondary)}.checkbox-label input[type=checkbox]{width:var(--space-5);height:var(--space-5);cursor:pointer;accent-color:var(--color-green-2)}.dietary-flags-list{gap:var(--space-3);flex-direction:column;display:flex}.dietary-flag-item{padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:var(--space-3);border:var(--border-width-thin) solid var(--color-border-light);display:flex}.dietary-flag-item:hover{background:var(--color-bg-secondary)}.dietary-flag-item input[type=checkbox]{width:var(--space-5);height:var(--space-5);cursor:pointer;accent-color:var(--color-green-2)}.preference-name{font-weight:var(--font-medium);font-size:var(--text-base);color:var(--color-text-primary);flex:1}.status-indicator{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-weight:var(--font-medium)}.status-indicator.suitable{background:var(--color-success-light);color:var(--color-success-dark)}.status-indicator.not-suitable{background:var(--color-error-light);color:var(--color-error-dark)}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:var(--border-width-thin) solid var(--color-border-light);background:var(--color-bg-primary);display:flex;position:sticky;bottom:0}@media (width<=768px){.modal-overlay{padding:var(--space-2)}.modal-content.large{width:95%;max-height:90vh}.modal-header{padding:var(--space-4)}.modal-header h2{font-size:var(--text-xl)}.modal-body{padding:var(--space-4)}.checkbox-grid{grid-template-columns:1fr}.modal-footer{padding:var(--space-3) var(--space-4);flex-direction:column}.modal-footer button{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.comprehensive-edit-modal{flex-direction:column;width:90%;max-width:700px;max-height:85vh;display:flex}.modal-tabs{border-bottom:var(--border-width-medium) solid var(--color-border-light);padding:0 var(--space-5);background-color:var(--color-bg-tertiary);gap:0;display:flex}.tab-button{padding:var(--space-3) var(--space-6);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;position:relative;top:2px}.tab-button:hover{color:var(--color-text-primary);background-color:var(--color-bg-secondary)}.tab-button.active{color:var(--color-green-2);border-bottom-color:var(--color-green-2);background-color:var(--color-bg-primary);font-weight:var(--font-semibold)}.tab-content{animation:.2s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-description{margin:0 0 var(--space-5) 0;color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border-left:var(--border-width-thick) solid var(--color-green-2);line-height:var(--leading-relaxed)}.form-group label{margin-bottom:var(--space-2);font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base);display:block}.form-input,.form-select{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast);background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:var(--touch-target-comfortable)}.form-input:focus,.form-select:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.form-select{cursor:pointer}.checkbox-item{align-items:center;gap:var(--space-2);padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast);border:var(--border-width-thin) solid var(--color-border-light);display:flex}.checkbox-item:hover{background-color:var(--color-bg-secondary)}.checkbox-item input[type=checkbox]{cursor:pointer;width:var(--space-5);height:var(--space-5);accent-color:var(--color-green-2)}.checkbox-item span{font-size:var(--text-base);color:var(--color-text-primary);-webkit-user-select:none;user-select:none}.modal-footer{padding:var(--space-4) var(--space-6);border-top:var(--border-width-thin) solid var(--color-border-light);background-color:var(--color-bg-tertiary);justify-content:space-between;align-items:center;display:flex}.footer-left{flex:1}.footer-right{gap:var(--space-3);display:flex}@media (width<=768px){.comprehensive-edit-modal{width:95%;max-height:90vh}.modal-tabs{padding:0 var(--space-3)}.tab-button{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.modal-body{padding:var(--space-4)}.checkbox-grid{grid-template-columns:1fr}.modal-footer{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column}.footer-left{width:100%}.footer-right{flex-direction:column;width:100%}.footer-right button{width:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:1.5s ease-in-out infinite pulse}.skeleton-line{background:var(--color-cream-4);border-radius:4px;height:14px;margin-bottom:8px}.skeleton-line.short{height:12px}.skeleton-avatar{background:var(--color-cream-4);border-radius:50%;flex-shrink:0;width:40px;height:40px}.skeleton-avatar.large{width:64px;height:64px}.skeleton-list{padding:8px 0}.skeleton-list-item{border-bottom:1px solid #f0f0f0;align-items:center;gap:14px;padding:14px 16px;display:flex}.skeleton-text-group{flex:1}.skeleton-card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:16px 0;display:grid}.skeleton-card{background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;padding:24px;display:flex;box-shadow:0 1px 4px #00000014}.skeleton-card-icon{background:var(--color-cream-4);border-radius:8px;width:48px;height:48px}.skeleton-detail{max-width:800px;margin:0 auto;padding:24px}.skeleton-detail-header{border-bottom:1px solid #f0f0f0;align-items:center;gap:20px;margin-bottom:32px;padding-bottom:24px;display:flex}.skeleton-detail-section{background:#fff;border-radius:10px;margin-bottom:16px;padding:20px;box-shadow:0 1px 4px #0000000f}.skeleton-table{width:100%;padding:8px 0}.skeleton-table-header{grid-template-columns:repeat(var(--cols,4), 1fr);background:var(--color-cream-1);border-radius:6px 6px 0 0;gap:12px;margin-bottom:4px;padding:12px 16px;display:grid}.skeleton-table-row{grid-template-columns:repeat(var(--cols,4), 1fr);border-bottom:1px solid #f0f0f0;gap:12px;padding:12px 16px;display:grid}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.menu-cycles-container{padding:var(--space-6);max-width:var(--max-width-wide);margin:0 auto}.header-section{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.header-section h1{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin:0}.date-info-banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-green-3);border:var(--border-width-thin) solid var(--color-green-1);border-radius:var(--radius-md);margin-bottom:var(--space-6);display:flex}.info-icon{font-size:var(--text-2xl);flex-shrink:0;line-height:1}.info-text{color:var(--color-green-4);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.info-text strong{margin-bottom:var(--space-1);font-weight:var(--font-semibold);display:block}.field-help{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1);font-style:italic;line-height:var(--leading-relaxed);display:block}.field-help.suggested{color:var(--color-success-dark);font-weight:var(--font-medium);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-success-light);border-radius:var(--radius-sm);font-style:normal}.cycles-list{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.cycle-card{background:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-5);transition:all var(--transition-fast)}.cycle-card:hover{box-shadow:var(--shadow-md)}.cycle-card.active{border-color:var(--color-success);background-color:var(--color-success-light)}.cycle-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.cycle-header h3{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.active-badge{padding:var(--space-1) var(--space-3);background-color:var(--color-success);color:var(--color-text-inverse);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.cycle-details{margin-bottom:var(--space-4)}.cycle-details p{margin:var(--space-2) 0;color:var(--color-text-secondary);font-size:var(--text-sm)}.cycle-details strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.cycle-actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-6);width:90%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-xl);overflow-y:auto}.modal-content h2{margin-top:0;margin-bottom:var(--space-5);color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.delete-modal{text-align:center;max-width:450px}.delete-icon{font-size:var(--text-4xl);margin-bottom:var(--space-4)}.delete-modal h2{color:var(--color-error);margin-bottom:var(--space-4)}.delete-warning{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-3)}.delete-warning strong{color:var(--color-text-primary);font-weight:var(--font-bold)}.delete-info{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-6);line-height:var(--leading-relaxed)}.form-group label{margin-bottom:var(--space-2);color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-base);display:block}.form-group input{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);box-sizing:border-box;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.form-group input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.input-error{border-color:var(--color-error)!important}.input-error:focus{border-color:var(--color-error)!important;box-shadow:0 0 0 3px var(--color-error-light)!important}.modal-actions{gap:var(--space-3);margin-top:var(--space-6);display:flex}@media (width<=768px){.menu-cycles-container{padding:var(--space-4)}.header-section{align-items:flex-start;gap:var(--space-3);flex-direction:column}.header-section h1{font-size:var(--text-2xl)}.cycles-list{grid-template-columns:1fr}.modal-content{padding:var(--space-4)}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.menu-types-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.menu-types-header h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.menu-types-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.menu-types-list{gap:var(--space-3);flex-direction:column;display:flex}.menu-type-card{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);transition:box-shadow var(--transition-fast)}.menu-type-card.dragging{opacity:.5;box-shadow:var(--shadow-lg)}.menu-type-card-content{align-items:center;gap:var(--space-3);display:flex}.menu-type-info{align-items:center;gap:var(--space-3);flex:1;display:flex}.menu-type-color-indicator{border-radius:var(--radius-sm);border:var(--border-width-medium) solid var(--color-border-medium);flex-shrink:0;width:20px;height:20px}.menu-type-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.menu-type-usage{font-size:var(--text-sm);color:var(--color-text-secondary)}.menu-type-actions{gap:var(--space-2);display:flex}.edit-menu-type-container{gap:var(--space-3);flex-wrap:wrap;flex:1;align-items:flex-end;display:flex}.edit-field{gap:var(--space-1);flex-direction:column;flex:1;min-width:150px;display:flex}.color-picker-container{align-items:center;gap:var(--space-3);display:flex}.color-picker{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);cursor:pointer;width:60px;height:40px;padding:0}.color-picker:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.color-preview{border-radius:var(--radius-sm);border:var(--border-width-medium) solid var(--color-border-medium);flex-shrink:0;width:30px;height:30px}.color-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}@media (width<=768px){.menu-types-header{flex-direction:column;align-items:stretch}.menu-type-card-content{flex-wrap:wrap}.menu-type-actions{width:100%;margin-top:var(--space-2)}.edit-menu-type-container{flex-direction:column;align-items:stretch}.edit-field{width:100%}.modal-content-small .modal-actions{flex-direction:column}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.meal-types-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.meal-types-header h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.meal-types-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.meal-types-list{gap:var(--space-3);flex-direction:column;display:flex}.meal-type-card{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);transition:box-shadow var(--transition-fast)}.meal-type-card.dragging{opacity:.5;box-shadow:var(--shadow-lg)}.meal-type-card-content{align-items:center;gap:var(--space-3);display:flex}.drag-handle{cursor:grab;padding:var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-xl);-webkit-user-select:none;user-select:none;transition:color var(--transition-fast);align-items:center;display:flex}.drag-handle:hover{color:var(--color-text-secondary)}.drag-handle:active{cursor:grabbing}.meal-type-info{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.meal-type-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.meal-type-usage{font-size:var(--text-sm);color:var(--color-text-secondary)}.meal-type-actions{gap:var(--space-2);display:flex}.edit-meal-type-container{gap:var(--space-3);flex:1;align-items:flex-end;display:flex}.edit-field{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.edit-input{padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-sm);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary)}@media (width<=768px){.meal-types-header{flex-direction:column;align-items:stretch}.meal-type-card-content{flex-wrap:wrap}.meal-type-actions{width:100%;margin-top:var(--space-2)}.edit-meal-type-container{flex-direction:column;align-items:stretch}.edit-input{width:100%}.modal-content-small .modal-actions{flex-direction:column}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.dietary-preferences-management{padding:var(--space-6)}.preferences-list{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.preference-item{padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.preference-name{font-size:var(--text-base);color:var(--color-text-primary);font-weight:var(--font-medium)}.add-preference-form{gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-medium) dashed var(--color-border-medium);align-items:center;display:flex}.add-preference-form input{padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast);flex:1}.add-preference-form input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}@media (width<=768px){.modal-content{width:95%;max-height:90vh}.modal-header,.dietary-preferences-management{padding:var(--space-4)}.add-preference-form{flex-direction:column;align-items:stretch}.add-preference-form input{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-xl);overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.close-button{font-size:var(--text-3xl);color:var(--color-text-tertiary);cursor:pointer;width:30px;height:30px;transition:color var(--transition-fast);line-height:1;font-weight:var(--font-bold);border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.close-button:hover{color:var(--color-text-primary);background-color:var(--color-bg-tertiary)}.weaning-options-management{padding:var(--space-6)}.section-description{margin:0 0 var(--space-5) 0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.options-list{gap:var(--space-3);margin-bottom:var(--space-5);flex-direction:column;display:flex}.option-item{padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.option-name{font-size:var(--text-base);color:var(--color-text-primary);font-weight:var(--font-medium)}.add-option-form{gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-medium) dashed var(--color-border-medium);align-items:center;display:flex}.add-option-form input{padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast);flex:1}.add-option-form input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.loading,.error{padding:var(--space-5);text-align:center;color:var(--color-text-secondary);font-size:var(--text-base)}.error{color:var(--color-error)}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.modal-content::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}@media (width<=768px){.modal-content{width:95%;max-height:90vh}.modal-header,.weaning-options-management{padding:var(--space-4)}.add-option-form{flex-direction:column;align-items:stretch}.add-option-form input{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.dietary-modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:85vh;box-shadow:var(--shadow-xl);overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:var(--border-width-thin) solid var(--color-border-light);background:var(--color-bg-primary);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.modal-header h2{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-semibold);margin:0}.modal-close{font-size:var(--text-3xl);color:var(--color-text-tertiary);cursor:pointer;width:30px;height:30px;transition:color var(--transition-fast);line-height:1;font-weight:var(--font-bold);border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{color:var(--color-text-primary);background-color:var(--color-bg-tertiary)}.section-description{padding:0 var(--space-6);margin:var(--space-4) 0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.add-item-form{gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex}.item-input{padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast);flex:1}.item-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.items-list{padding:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.item-card{background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4)}.view-mode{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.item-name{font-size:var(--text-base);color:var(--color-text-primary);font-weight:var(--font-medium);flex:1}.item-actions{gap:var(--space-2);display:flex}.edit-mode{gap:var(--space-3);align-items:center;display:flex}.edit-input{padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);flex:1}.edit-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.edit-actions{gap:var(--space-2);display:flex}.no-items{text-align:center;color:var(--color-text-tertiary);padding:var(--space-8);font-style:italic;font-size:var(--text-base)}.dietary-modal-content::-webkit-scrollbar{width:8px}.dietary-modal-content::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.dietary-modal-content::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.dietary-modal-content::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}@media (width<=768px){.dietary-modal-content{width:95%;max-height:90vh}.modal-header{padding:var(--space-4)}.section-description{padding:0 var(--space-4)}.add-item-form{padding:var(--space-4);flex-direction:column}.items-list{padding:var(--space-4)}.view-mode{flex-direction:column;align-items:stretch}.item-actions{width:100%}.edit-mode{flex-direction:column;align-items:stretch}.edit-actions{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.system-settings-container{padding:var(--space-6);max-width:var(--max-width-wide);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.settings-header{margin-bottom:var(--space-8)}.settings-header h1{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold)}.settings-subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.settings-layout{gap:var(--space-6);grid-template-columns:280px 1fr;align-items:start;display:grid}.settings-sidebar{top:var(--space-6);background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);position:sticky}.settings-nav{gap:var(--space-1);flex-direction:column;display:flex}.settings-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;font-size:var(--text-base);color:var(--color-text-secondary);font-weight:var(--font-medium);background:0 0;border:none;display:flex}.settings-nav-item:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.settings-nav-item.active{background-color:var(--color-green-3);color:var(--color-green-4);font-weight:var(--font-semibold)}.nav-icon{font-size:var(--text-xl);line-height:1}.nav-label{flex:1}.settings-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.settings-section{padding:var(--space-8)}.section-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:var(--border-width-medium) solid var(--color-border-light)}.section-header h2{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.section-header h3{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.section-header p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.settings-card{background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-6);margin-bottom:var(--space-6)}.settings-card:last-child{margin-bottom:0}.settings-card h3{margin:0 0 var(--space-5) 0;color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold)}.setting-item{margin-bottom:var(--space-6)}.setting-item:last-child{margin-bottom:0}.setting-item label{margin-bottom:var(--space-2);display:block}.setting-item label strong{color:var(--color-text-primary);font-size:var(--text-base);margin-bottom:var(--space-1);font-weight:var(--font-semibold);display:block}.setting-description{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:400;line-height:var(--leading-relaxed);display:block}.setting-input{width:100%;max-width:400px;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast);background-color:var(--color-bg-primary);color:var(--color-text-primary)}.setting-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.setting-item-checkbox{margin-bottom:var(--space-5)}.setting-item-checkbox:last-child{margin-bottom:0}.setting-item-checkbox label{align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-3);border-radius:var(--radius-md);transition:background-color var(--transition-fast);display:flex}.setting-item-checkbox label:hover{background-color:var(--color-bg-tertiary)}.setting-item-checkbox input[type=checkbox]{width:var(--space-5);height:var(--space-5);cursor:pointer;accent-color:var(--color-green-2);flex-shrink:0;margin-top:2px}.setting-item-checkbox label>div{flex:1}.setting-item-checkbox strong{color:var(--color-text-primary);font-size:var(--text-base);margin-bottom:var(--space-1);font-weight:var(--font-semibold);display:block}.room-tags{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.room-tag{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);display:inline-flex}.room-tag-remove{color:var(--color-green-4);font-size:var(--text-xl);cursor:pointer;margin-left:var(--space-1);opacity:.7;transition:opacity var(--transition-fast);line-height:1;font-weight:var(--font-bold);background:0 0;border:none;padding:0}.room-tag-remove:hover{opacity:1}.add-room-input-container{align-items:center;gap:var(--space-1);display:flex}.add-room-input{padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-full);font-size:var(--text-sm);background-color:var(--color-bg-primary);min-width:120px;color:var(--color-text-primary);outline:none}.add-room-save,.add-room-cancel{cursor:pointer;width:24px;height:24px;font-size:var(--text-base);transition:all var(--transition-fast);line-height:1;font-weight:var(--font-bold);border:none;border-radius:50%}.add-room-save{background-color:var(--color-success);color:var(--color-text-inverse)}.add-room-save:hover{background-color:var(--color-success-dark)}.add-room-cancel{background-color:var(--color-error);color:var(--color-text-inverse)}.add-room-cancel:hover{background-color:var(--color-error-dark)}.export-options{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.export-card{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;transition:all var(--transition-fast)}.export-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-green-2)}.export-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3)}.export-card h4{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.export-card p{margin:0 0 var(--space-4) 0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.backup-status{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-5) 0}.backup-info{padding:var(--space-2) 0;justify-content:space-between;align-items:center;display:flex}.backup-info:not(:last-child){border-bottom:var(--border-width-thin) solid var(--color-border-light)}.backup-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}.backup-value{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.dietary-management-section{margin-top:var(--space-8);padding-top:var(--space-8);border-top:var(--border-width-thin) solid var(--color-border-light)}.dietary-management-section .section-header h3{font-size:var(--text-xl);margin-bottom:var(--space-2)}.dietary-buttons{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.nursery-dropdown-wrapper{display:inline-block;position:relative}.nursery-dropdown{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:9999;min-width:180px;padding:var(--space-1) 0}.nursery-dropdown-item{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap}.nursery-dropdown-item:hover{background-color:var(--color-bg-tertiary)}.staff-meals-availability-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin-top:var(--space-4)}.staff-meals-availability-table thead th{padding:var(--space-3) var(--space-4);text-align:center;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-primary);border-bottom:2px solid var(--color-border-medium)}.staff-meals-availability-table thead th:first-child{text-align:left}.staff-meals-availability-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-light);transition:background-color var(--transition-fast)}.staff-meals-availability-table tbody tr:hover{background-color:var(--color-bg-primary)}.staff-meals-availability-table tbody tr:last-child{border-bottom:none}.staff-meals-availability-table tbody td{padding:var(--space-3) var(--space-4);text-align:center;color:var(--color-text-primary)}.staff-meals-availability-table tbody td:first-child{text-align:left;font-weight:var(--font-medium)}.staff-meals-availability-table input[type=checkbox]{width:var(--space-5);height:var(--space-5);cursor:pointer;accent-color:var(--color-green-2)}.staff-portion-input-row{align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}.staff-portion-input{width:80px;padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);text-align:center;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.staff-portion-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.staff-portion-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.staff-meals-empty{padding:var(--space-6);text-align:center;color:var(--color-text-secondary);font-style:italic;font-size:var(--text-sm);background:var(--color-bg-primary);border-radius:var(--radius-md);border:var(--border-width-thin) dashed var(--color-border-medium)}.staff-meals-save-row{margin-top:var(--space-6);padding-top:var(--space-6);border-top:var(--border-width-thin) solid var(--color-border-light)}.import-result{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.import-result--success{background:var(--color-success-50,var(--color-success-light));border:var(--border-width-thin) solid var(--color-success,var(--color-success));color:var(--color-success-dark,var(--color-green-4))}.import-result--warning{background:var(--color-warning-50,var(--color-warning-light));border:var(--border-width-thin) solid var(--color-warning,#f6ad55);color:var(--color-text-primary)}.import-preview-modal{width:95vw;max-width:900px;max-height:85vh;overflow-y:auto}.import-preview-summary{gap:var(--space-4);margin:var(--space-4) 0;display:flex}.import-preview-stat{padding:var(--space-4);border-radius:var(--radius-md);text-align:center;gap:var(--space-1);flex-direction:column;flex:1;display:flex}.import-preview-stat--success{background:var(--color-success-light);border:1px solid var(--color-success)}.import-preview-stat--warning{background:var(--color-warning-light);border:1px solid #f6ad55}.import-preview-stat--error{background:var(--color-error-light);border:1px solid #fc8181}.import-preview-stat-number{font-size:2rem;font-weight:700;line-height:1}.import-preview-stat--success .import-preview-stat-number{color:var(--color-green-4)}.import-preview-stat--warning .import-preview-stat-number{color:var(--color-warning)}.import-preview-stat--error .import-preview-stat-number{color:var(--color-error-dark)}.import-preview-stat-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.import-preview-errors{margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-error-light);border-radius:var(--radius-md);border:1px solid #fc8181}.import-preview-errors h3{margin:0 0 var(--space-2) 0;color:var(--color-error-dark);font-size:var(--text-sm)}.import-preview-errors ul{padding-left:var(--space-5);margin:0}.import-preview-errors li{font-size:var(--text-sm);color:var(--color-error-dark);margin-bottom:var(--space-1)}.import-preview-records h3{margin:var(--space-4) 0 var(--space-2) 0;font-size:var(--text-base)}.import-preview-table-wrapper{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);max-height:350px;overflow:auto}.import-preview-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.import-preview-table th{background:var(--color-bg-secondary);padding:var(--space-2) var(--space-3);text-align:left;border-bottom:var(--border-width-thin) solid var(--color-border-light);font-weight:600;position:sticky;top:0}.import-preview-table td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-width-thin) solid var(--color-border-light);vertical-align:top;word-break:break-word;max-width:200px}.import-preview-table tr:last-child td{border-bottom:none}.import-preview-table tr:hover td{background:var(--color-bg-secondary)}.import-preview-empty{text-align:center;color:var(--color-text-secondary);padding:var(--space-6);font-style:italic}.import-preview-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:var(--border-width-thin) solid var(--color-border-light);display:flex}@media (width<=768px){.system-settings-container{padding:var(--space-4)}.settings-header h1{font-size:var(--text-3xl)}.settings-layout{grid-template-columns:1fr}.settings-sidebar{position:static}.settings-nav{flex-direction:row;overflow-x:auto}.settings-nav-item{text-align:center;gap:var(--space-1);flex-direction:column;min-width:80px}.nav-label{font-size:var(--text-xs)}.settings-section{padding:var(--space-5)}.export-options{grid-template-columns:1fr}.dietary-buttons{flex-direction:column}.dietary-buttons button{width:100%}}.setting-save-status{margin-left:12px;font-size:.9rem}.setting-save-status.saving{color:#555}.setting-save-status.saved{color:#1e6b32;font-weight:600}.setting-save-status.error{color:#b42318}.setting-save-status .btn-link{color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.shared-devices-table{overflow-x:auto}.shared-devices-table table{border-collapse:collapse;width:100%}.shared-devices-table th,.shared-devices-table td{text-align:left;border-bottom:1px solid var(--border-color,#e2e8f0);padding:8px 10px}.shared-devices-table tr.revoked td{color:#888}.settings-layout.settings-layout--tabs{display:block}.page-tabs{border-bottom:2px solid var(--border-color,#e2e8f0);gap:4px;margin:8px 0 24px;display:flex;overflow-x:auto}.page-tab{font-size:var(--text-base,1rem);font-weight:var(--font-medium,500);color:var(--color-text-secondary,#555);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 18px;transition:color .15s,border-color .15s}.page-tab:hover{color:var(--color-text-primary,#222)}.page-tab.active{color:var(--color-green-4,#2e7d32);border-bottom-color:var(--color-green-4,#2e7d32);font-weight:var(--font-semibold,600)}.page-tab:focus-visible{outline:2px solid var(--color-green-4,#2e7d32);outline-offset:2px;border-radius:4px}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-overlay{background-color:var(--overlay-bg);z-index:var(--z-modal);padding:var(--space-5);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:90vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex}.modal-header{padding:var(--space-6);border-bottom:var(--border-width-medium) solid var(--color-border-light);gap:var(--space-2);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-direction:column;display:flex;position:relative}.modal-header h2{font-size:var(--text-xl);color:var(--color-text-primary);font-weight:var(--font-semibold);padding-right:var(--space-8);margin:0}.modal-header p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0}.close-button{top:var(--space-6);right:var(--space-6);font-size:var(--text-3xl);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);width:36px;height:36px;transition:all var(--transition-fast);font-weight:var(--font-bold);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.form-section{margin-bottom:var(--space-6)}.form-label{font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2);font-size:var(--text-base);display:block}.form-input,.form-textarea{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast);font-family:var(--font-primary);color:var(--color-text-primary);background-color:var(--color-bg-primary)}.form-input:focus,.form-textarea:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.form-textarea{resize:vertical;min-height:200px;line-height:var(--leading-relaxed)}.modal-footer{padding:var(--space-5) var(--space-6);border-top:var(--border-width-medium) solid var(--color-border-light);justify-content:flex-end;gap:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.modal-body::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}@media (width<=768px){.modal-overlay{padding:var(--space-3)}.modal-content{max-height:95vh}.modal-header{padding:var(--space-4)}.modal-header h2{font-size:var(--text-lg)}.close-button{top:var(--space-4);right:var(--space-4)}.modal-body{padding:var(--space-4)}.modal-footer{padding:var(--space-4);flex-direction:column}.modal-footer button{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.session-management-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.session-management-header h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.session-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.sessions-list{gap:var(--space-4);flex-direction:column;display:flex}.session-card{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm)}.session-card-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.session-info{gap:var(--space-1);flex-direction:column;display:flex}.session-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.session-times{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.session-actions{gap:var(--space-2);display:flex}.edit-session-container{gap:var(--space-3);flex-wrap:wrap;flex:1;align-items:flex-start;display:flex}.edit-field{gap:var(--space-1);flex-direction:column;display:flex}.edit-field label{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:var(--font-medium)}.edit-input{padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-sm);font-size:var(--text-base);background-color:var(--color-bg-primary);min-width:150px;color:var(--color-text-primary)}.edit-input-time{padding:var(--space-2) var(--space-3);border:var(--border-width-medium) solid var(--color-green-2);border-radius:var(--radius-sm);font-size:var(--text-sm);background-color:var(--color-bg-primary);min-width:100px;color:var(--color-text-primary)}.edit-input:focus,.edit-input-time:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.edit-actions{gap:var(--space-1);margin-top:var(--space-5);align-items:center;display:flex}.meals-assignment h5{font-size:var(--text-base);color:var(--color-text-primary);margin:0 0 var(--space-3) 0;font-weight:var(--font-semibold)}.meals-checkboxes{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.meal-checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);display:flex}.meal-checkbox-label:hover{background-color:var(--color-bg-tertiary)}.meal-checkbox-label input[type=checkbox]{width:var(--space-5);height:var(--space-5);cursor:pointer;accent-color:var(--color-green-2)}.meal-name{font-size:var(--text-sm);color:var(--color-text-primary);text-transform:capitalize}.modal-overlay{background:var(--overlay-bg);z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content-small{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-6);width:90%;max-width:400px;box-shadow:var(--shadow-xl)}.modal-content-small h3{margin:0 0 var(--space-5) 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.modal-content-small .form-group{margin-bottom:var(--space-5)}.modal-content-small .form-group label{margin-bottom:var(--space-2);color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-base);display:block}.modal-content-small .form-input{width:100%;padding:var(--space-3);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.modal-content-small .form-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.modal-content-small .modal-actions{gap:var(--space-3);margin-top:var(--space-6);justify-content:flex-end;display:flex}.loading{padding:var(--space-10);text-align:center;color:var(--color-text-secondary);font-size:var(--text-base)}@media (width<=768px){.session-management-header,.session-card-header{flex-direction:column;align-items:stretch}.session-actions{flex-direction:column;width:100%}.edit-session-container{flex-direction:column}.edit-input,.edit-input-time{width:100%}.meals-checkboxes{grid-template-columns:1fr}.modal-content-small .modal-actions{flex-direction:column}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.staff-section{padding:0}.staff-section+.staff-section{margin-top:var(--space-10);padding-top:var(--space-8);border-top:var(--border-width-thin) solid var(--color-border-light)}.staff-section-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.staff-section-header h3{margin:0 0 var(--space-1) 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.staff-section-header p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.staff-filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.staff-filter-select{max-width:200px}.staff-table-wrapper{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);overflow:auto hidden}.staff-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.staff-table thead tr{background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.staff-table th{padding:var(--space-3) var(--space-4);text-align:left;color:var(--color-text-secondary);font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.staff-table tbody tr{border-bottom:var(--border-width-thin) solid var(--color-border-light);transition:background-color var(--transition-fast)}.staff-table tbody tr:last-child{border-bottom:none}.staff-table tbody tr:hover{background-color:var(--color-bg-secondary)}.staff-table td{padding:var(--space-3) var(--space-4);color:var(--color-text-primary);vertical-align:middle}.user-row-inactive td{opacity:.6}.user-name-cell{align-items:center;gap:var(--space-3);display:flex}.user-avatar{border-radius:var(--radius-full);background-color:var(--color-green-3);width:36px;height:36px;color:var(--color-green-4);font-size:var(--text-sm);font-weight:var(--font-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-avatar-lg{width:48px;height:48px;font-size:var(--text-base)}.user-full-name{font-weight:var(--font-medium);color:var(--color-text-primary)}.user-email{color:var(--color-text-secondary);font-size:var(--text-sm)}.role-badge{padding:var(--space-1) var(--space-3);background-color:var(--color-green-3);color:var(--color-green-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);display:inline-block}.access-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.access-all{background-color:var(--color-success-light);color:var(--color-success-dark)}.access-restricted{background-color:var(--color-warning-light);color:var(--color-warning)}.status-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);display:inline-block}.status-active{background-color:var(--color-success-light);color:var(--color-success-dark)}.status-inactive{background-color:var(--color-error-light);color:var(--color-error-dark)}.system-role-badge{padding:var(--space-1) var(--space-3);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.custom-role-badge{padding:var(--space-1) var(--space-3);background-color:var(--color-info-light);color:var(--color-info);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-block}.permission-count-badge{padding:var(--space-1) var(--space-3);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);border:var(--border-width-thin) solid var(--color-border-light);display:inline-block}.user-count{color:var(--color-text-secondary);font-size:var(--text-sm)}.user-count-active{color:var(--color-green-4);font-weight:var(--font-medium)}.no-role{color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-sm)}.role-description{color:var(--color-text-secondary);font-size:var(--text-sm);max-width:250px}.role-name-cell{font-weight:var(--font-semibold);color:var(--color-text-primary)}.user-actions{gap:var(--space-2);align-items:center;display:flex}.btn-sm{padding:var(--space-1) var(--space-3)!important;font-size:var(--text-xs)!important;min-height:unset!important}.staff-loading{padding:var(--space-12);justify-content:center;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);flex-direction:column;display:flex}.staff-loading-spinner{border:3px solid var(--color-border-light);border-top-color:var(--color-green-2);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.staff-empty{padding:var(--space-12);justify-content:center;align-items:center;gap:var(--space-2);border:var(--border-width-thin) dashed var(--color-border-medium);border-radius:var(--radius-md);text-align:center;flex-direction:column;display:flex}.staff-empty-icon{margin-bottom:var(--space-2);font-size:2.5rem}.staff-empty p{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base);margin:0}.staff-empty span{color:var(--color-text-secondary);font-size:var(--text-sm)}.staff-error{align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--color-error);text-align:center;flex-direction:column;display:flex}.staff-form-error{background-color:var(--color-error-light);color:var(--color-error-dark);border:var(--border-width-thin) solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4)}.staff-info-banner{background-color:var(--color-info-light);color:var(--color-ink-3);border:var(--border-width-thin) solid var(--color-green-1);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4)}.form-hint{color:var(--color-text-tertiary);font-size:var(--text-xs);margin-top:var(--space-1);display:block}.required{color:var(--color-error);margin-left:2px}.staff-checkbox-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.staff-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-green-2);cursor:pointer;flex-shrink:0}.staff-checkbox-label{color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer}.nursery-checklist{margin-top:var(--space-3);padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light)}.nursery-checklist-hint{margin:0 0 var(--space-3) 0;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium)}.permission-picker{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.permission-group{border-bottom:var(--border-width-thin) solid var(--color-border-light)}.permission-group:last-child{border-bottom:none}.permission-group-header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-tertiary);cursor:pointer;display:flex}.permission-group-header input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-green-2);cursor:pointer;flex-shrink:0}.permission-group-label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;flex:1}.permission-group-count{font-size:var(--text-xs);color:var(--color-text-tertiary);background-color:var(--color-bg-primary);border-radius:var(--radius-full);border:var(--border-width-thin) solid var(--color-border-light);padding:2px 8px}.permission-group-items{padding:var(--space-2) var(--space-4) var(--space-3) var(--space-10);background-color:var(--color-bg-primary);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0;display:grid}.permission-item{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;display:flex}.permission-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-green-2);cursor:pointer;flex-shrink:0}.permission-item-label{font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.permission-selected-count{margin-left:var(--space-3);font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-green-2);background-color:var(--color-green-3);border-radius:var(--radius-full);padding:2px 8px}.edit-user-info{align-items:center;gap:var(--space-4);padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-6);display:flex}.edit-user-name{margin:0 0 var(--space-1) 0;font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base)}.edit-user-email{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.modal-content-lg{max-height:85vh;overflow-y:auto;width:95vw!important;max-width:680px!important}@media (width<=768px){.staff-section-header{flex-direction:column;align-items:stretch}.staff-section-header button{width:100%}.staff-filters{flex-direction:column}.staff-filter-select{max-width:100%}.staff-table th:nth-child(4),.staff-table td:nth-child(4){display:none}.permission-group-items{grid-template-columns:1fr}.user-actions{flex-direction:column}}.permission-picker-note{color:#555;margin:0 0 12px;font-size:.9em;line-height:1.4}.permission-needed-by{color:#777;font-size:.85em;font-style:italic}.nursery-role-row{align-items:center;gap:12px;padding:6px 0;display:flex}.nursery-role-row .form-select{flex:1;min-width:0}.nursery-role-name{flex:0 0 40%;font-weight:500}.nursery-role-row.readonly{color:#666}.nursery-roles-others{border-top:1px solid var(--border-color,#e2e8f0);margin-top:10px;padding-top:8px}.role-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.copy-roles{align-items:center;gap:6px;display:inline-flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.copy-roles-panel{border:1px solid var(--border-color,#e2e8f0);background:var(--card-background,#fff);border-radius:10px;margin:0 0 16px;padding:14px 16px}.copy-roles-panel p{margin:0 0 8px}.copy-roles-actions{gap:10px;margin-top:10px;display:flex}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.reports-container{max-width:var(--max-width-wide);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.reports-header{margin-bottom:var(--space-10)}.reports-header h1{margin:0 0 var(--space-3) 0;color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold)}.reports-subtitle{color:var(--color-text-primary);opacity:.75;font-size:var(--text-lg);line-height:var(--leading-relaxed);margin:0}.reports-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(350px,1fr));display:grid}.report-card{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--transition-base);gap:var(--space-4);border:var(--border-width-medium) solid transparent;flex-direction:column;display:flex;position:relative}.report-card:not(.disabled):hover{box-shadow:var(--shadow-xl);border-color:var(--card-color);transform:translateY(-6px)}.report-card.disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-bg-tertiary)}.report-card.disabled:hover{box-shadow:var(--shadow-md);transform:none}.report-icon{border-radius:var(--radius-lg);width:64px;height:64px;font-size:var(--text-3xl);color:var(--color-text-inverse);box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.report-content{flex:1}.report-content h3{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold)}.report-content p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.report-arrow{top:var(--space-6);right:var(--space-6);font-size:var(--text-2xl);color:var(--color-border-medium);transition:all var(--transition-base);font-weight:var(--font-bold);position:absolute}.report-card:not(.disabled):hover .report-arrow{color:var(--card-color);transform:translate(4px)}.coming-soon-badge{margin-top:var(--space-3);padding:var(--space-1) var(--space-3);background-color:var(--color-gray-200);color:var(--color-text-secondary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;display:inline-block}@media (width<=768px){.reports-container{padding:var(--space-4) var(--space-3)}.reports-header{margin-bottom:var(--space-6)}.reports-header h1{font-size:var(--text-3xl)}.reports-subtitle{font-size:var(--text-base)}.reports-grid{gap:var(--space-4);grid-template-columns:1fr}.report-card{padding:var(--space-5)}.report-icon{width:56px;height:56px;font-size:var(--text-2xl)}.report-content h3{font-size:var(--text-lg)}.report-content p{font-size:var(--text-sm)}}@media (width<=480px){.reports-grid{grid-template-columns:1fr}.report-card{padding:var(--space-4)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@page{size:A4;margin:10mm 15mm 15mm}.prep-sheet-container{max-width:var(--max-width-wide);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.prep-sheet-controls{background:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.prep-sheet-controls h1{margin-top:0;margin-bottom:var(--space-4);color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold)}.date-inputs{gap:var(--space-5);margin-top:var(--space-5);flex-wrap:wrap;align-items:flex-end;display:flex}.input-group{gap:var(--space-2);flex-direction:column;display:flex}.input-group label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-sm)}.input-group input{padding:var(--space-2) var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);min-height:var(--touch-target-comfortable);transition:border-color var(--transition-fast)}.input-group input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.print-controls{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.sort-controls{align-items:center;gap:var(--space-3);display:flex}.sort-controls label{font-weight:var(--font-semibold);color:var(--color-text-primary);font-size:var(--text-base)}.sort-select{padding:var(--space-2) var(--space-3);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);background-color:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast);min-height:var(--touch-target-comfortable)}.sort-select:hover{border-color:var(--color-green-2)}.sort-select:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.prep-sheet-report{background:var(--color-bg-primary);padding:var(--space-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);visibility:visible;display:block}.report-header h2{margin:0 0 var(--space-3) 0;color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold)}.date-range{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:var(--font-medium);margin:0}.sort-info{margin:var(--space-2) 0 0 0;color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic}.prep-table{border-collapse:collapse;width:100%;margin-top:var(--space-5);visibility:visible;box-shadow:var(--shadow-sm);border-radius:var(--radius-md);display:table;overflow:hidden}.prep-table thead{display:table-header-group}.prep-table tbody{display:table-row-group}.prep-table tr{display:table-row}.prep-table th,.prep-table td{padding:var(--space-3);text-align:left;border-bottom:var(--border-width-thin) solid var(--color-border-light);display:table-cell}.prep-table th{background-color:var(--color-gray-100);color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-sm);position:sticky;top:0}.prep-table td{color:var(--color-text-secondary);font-size:var(--text-sm)}.prep-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.prep-table tbody tr:last-child td{border-bottom:none}@media (width<=768px){.prep-sheet-container{padding:var(--space-4) var(--space-3)}.prep-sheet-controls{padding:var(--space-4)}.prep-sheet-controls h1{font-size:var(--text-2xl)}.date-inputs{flex-direction:column;align-items:stretch}.input-group{width:100%}.print-controls,.sort-controls{flex-direction:column;align-items:stretch}.sort-select{width:100%}.prep-sheet-report{padding:var(--space-5)}.report-header h2{font-size:var(--text-2xl)}.prep-table{font-size:var(--text-xs)}.prep-table th,.prep-table td{padding:var(--space-2)}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@page{size:A4;margin:10mm 15mm 15mm}.dietary-report-container{max-width:var(--max-width-wide);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.dietary-report-controls{background:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.dietary-report-controls h1{margin-top:0;margin-bottom:var(--space-5);color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold)}.filters-section{gap:var(--space-8);margin:var(--space-5) 0;grid-template-columns:1fr 1fr;display:grid}.filter-group h3{margin-top:0;margin-bottom:var(--space-4);color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold)}.checkbox-column{gap:var(--space-3);flex-direction:column;display:flex}.checkbox-label{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-base);color:var(--color-text-primary);padding:var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);display:flex}.checkbox-label:hover{background-color:var(--color-bg-tertiary)}.checkbox-label input[type=checkbox]{cursor:pointer;width:var(--space-5);height:var(--space-5);accent-color:var(--color-green-2)}.info-text{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);padding:var(--space-2);background-color:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-style:italic}.print-controls{text-align:right;margin-bottom:var(--space-6);justify-content:flex-end;display:flex}.dietary-report-content{background:var(--color-bg-primary);padding:var(--space-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);visibility:visible;display:block}.report-header{text-align:center;margin-bottom:var(--space-8);border-bottom:var(--border-width-medium) solid var(--color-border-dark);padding-bottom:var(--space-4)}.report-header h2{margin:0 0 var(--space-3) 0;color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);display:block}.filter-summary{margin:var(--space-2) 0;color:var(--color-text-secondary);font-size:var(--text-base);display:block}.filter-summary strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.child-count{margin:var(--space-3) 0 0 0;color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-base);display:block}.children-list{gap:var(--space-5);flex-direction:column;display:flex}.child-card{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5);page-break-inside:avoid;background-color:var(--color-bg-primary);box-shadow:var(--shadow-sm)}.child-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:var(--border-width-thin) solid var(--color-border-light);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.child-header h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0}.room-badge{background-color:var(--color-green-3);color:var(--color-green-4);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium)}.requirements-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.requirement-section{background-color:var(--color-bg-tertiary);padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width-thin) solid var(--color-border-light)}.requirement-section strong{margin-bottom:var(--space-2);color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);display:block}.requirement-section ul{padding-left:var(--space-5);margin:0}.requirement-section li{margin:var(--space-1) 0;color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.requirement-section.special p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.no-data{text-align:center;padding:var(--space-10);color:var(--color-text-tertiary);font-style:italic;font-size:var(--text-base)}@media (width<=768px){.dietary-report-container{padding:var(--space-4) var(--space-3)}.dietary-report-controls{padding:var(--space-4)}.dietary-report-controls h1{font-size:var(--text-2xl)}.filters-section{gap:var(--space-5);grid-template-columns:1fr}.checkbox-grid,.requirements-grid{grid-template-columns:1fr}.dietary-report-content{padding:var(--space-5)}.report-header h2{font-size:var(--text-2xl)}.child-header{flex-direction:column;align-items:flex-start}}.landing-container{background:linear-gradient(145deg, #2e7d32 0%, var(--color-green-4) 50%, #0d3b0f 100%);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex;position:relative;overflow:hidden}.landing-container:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 20% 80%,#ffffff0a 0%,#0000 50%),radial-gradient(circle at 80% 20%,#ffffff0a 0%,#0000 50%);position:absolute;inset:0}.landing-content{text-align:center;z-index:1;background:#fff;border-radius:20px;width:100%;max-width:480px;padding:48px 40px;position:relative;box-shadow:0 24px 64px #0000004d}.landing-logo{background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 20px;font-size:36px;display:flex;box-shadow:0 4px 16px #2e7d324d}.landing-header{margin-bottom:28px}.landing-title{color:var(--color-green-4);letter-spacing:-.5px;margin:0 0 6px;font-size:2.4rem;font-weight:800}.landing-subtitle{color:var(--color-ink-1);text-transform:uppercase;letter-spacing:1px;margin:0;font-size:1rem;font-weight:500}.landing-features{text-align:left;flex-direction:column;gap:12px;margin-bottom:32px;display:flex}.landing-feature{background:var(--color-success-light);border:1px solid #bbf7d0;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;display:flex}.landing-feature__icon{text-align:center;flex-shrink:0;width:32px;font-size:20px}.landing-feature__text{color:var(--color-ink-3);font-size:.9rem;font-weight:500}.landing-actions{margin-bottom:20px}.btn-landing{color:#fff;cursor:pointer;letter-spacing:.3px;background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:10px;width:100%;padding:14px 24px;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s;display:block;box-shadow:0 4px 12px #2e7d3259}.btn-landing:hover{transform:translateY(-1px);box-shadow:0 6px 20px #2e7d3273}.btn-landing:active{opacity:.9;transform:translateY(0)}.btn-landing:focus-visible{outline-offset:3px;outline:3px solid #4caf50}.landing-footer{border-top:1px solid #e5e7eb;padding-top:16px}.landing-footer p{color:var(--color-sage-3);justify-content:center;align-items:center;gap:6px;margin:0;font-size:.8rem;display:flex}@media (width<=480px){.landing-content{padding:32px 24px}.landing-title{font-size:1.9rem}}.attendance-report-container{max-width:100%;margin:0 auto;padding:24px}.attendance-controls h1{color:var(--text-primary,#1a202c);margin:16px 0 20px;font-size:1.6rem;font-weight:700}.attendance-inputs{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.attendance-inputs .input-group{flex-direction:column;gap:6px;display:flex}.attendance-inputs .input-group label{color:var(--text-secondary,#4a5568);font-size:.85rem;font-weight:500}.attendance-inputs input[type=date]{border:1.5px solid var(--border-color,#e2e8f0);border-radius:8px;padding:8px 12px;font-size:.9rem}.attendance-toolbar{background:var(--card-background,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 16px;padding:14px 16px;display:flex}.attendance-toolbar .filter-group{align-items:center;gap:10px;display:flex}.attendance-toolbar .filter-group label{color:var(--text-secondary,#4a5568);font-size:.9rem;font-weight:500}.attendance-toolbar select{border:1.5px solid var(--border-color,#e2e8f0);background:#fff;border-radius:8px;min-width:180px;padding:8px 12px;font-size:.9rem}.attendance-report-content{background:var(--card-background,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;overflow:hidden}.report-header{border-bottom:2px solid var(--border-color,#e2e8f0);padding:20px 24px 16px}.report-header h2{margin:0 0 4px;font-size:1.2rem;font-weight:700}.report-header .date-range{color:var(--text-secondary,#4a5568);margin:0;font-size:.9rem}.report-header .filter-note{color:var(--text-secondary,#4a5568);margin:4px 0 0;font-size:.85rem}.attendance-table-wrapper{overflow-x:auto}.attendance-calendar-table{border-collapse:collapse;width:100%;min-width:600px;font-size:.875rem}.attendance-calendar-table thead th{background:var(--background-secondary,#f7fafc);border-bottom:2px solid var(--border-color,#e2e8f0);border-right:1px solid var(--border-color,#e2e8f0);text-align:center;white-space:nowrap;padding:10px 12px;font-weight:600}.attendance-calendar-table thead th.row-label-col{text-align:left;z-index:2;background:var(--background-secondary,#f7fafc);min-width:180px;position:sticky;left:0}.date-col{min-width:110px}.date-col-weekday{color:var(--text-secondary,#718096);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.date-col-date{color:var(--text-primary,#1a202c);font-size:.9rem;font-weight:700}.room-total-row td{background:var(--primary-light,#ebf8ff);border-top:2px solid var(--border-color,#bee3f8);border-bottom:1px solid var(--border-color,#bee3f8);border-right:1px solid var(--border-color,#e2e8f0);padding:8px 12px}.room-total-label{color:var(--primary-dark,#2b6cb0);text-transform:uppercase;letter-spacing:.04em;background:var(--primary-light,#ebf8ff);font-size:.85rem;font-weight:700;position:sticky;left:0}.room-total-cell{text-align:center}.room-total-badge{background:var(--primary-color,#4299e1);color:#fff;border-radius:12px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}.room-total-empty{color:var(--color-sage-1);font-size:.9rem}.child-row td{border-bottom:1px solid var(--border-color,#edf2f7);border-right:1px solid var(--border-color,#edf2f7);vertical-align:middle;padding:6px 12px}.child-name-cell{color:var(--text-primary,#1a202c);white-space:nowrap;z-index:1;background:#fff;font-weight:500;position:sticky;left:0}.child-session-cell{text-align:center}.session-pill{background:var(--color-success-light);border:1px solid #c6f6d5;border-radius:6px;margin:2px;padding:3px 8px;display:inline-block}.session-pill-name{color:var(--color-green-4);font-size:.78rem;font-weight:600}.session-pill-time{color:var(--color-success);font-size:.72rem}.not-attending{color:var(--color-sage-1);font-size:.9rem}.room-expand-arrow{color:var(--primary-dark,#2b6cb0);margin-right:8px;font-size:.7rem}.day-total-row td{background:var(--background-secondary,#edf2f7);border-bottom:2px solid var(--border-color,#e2e8f0);border-right:1px solid var(--border-color,#e2e8f0);text-align:center;padding:8px 12px}.day-total-label{color:var(--text-primary,#1a202c);text-align:left;background:var(--background-secondary,#edf2f7);font-size:.85rem;font-weight:700;position:sticky;left:0}.day-total-cell{text-align:center}.day-total-badge{background:var(--text-primary,#2d3748);color:#fff;border-radius:12px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.staff-meals-container{padding:var(--space-6);max-width:var(--max-width-wide);background-color:var(--color-bg-secondary);min-height:100vh;margin:0 auto}.staff-meals-header{margin-bottom:var(--space-6)}.staff-meals-header h1{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold)}.staff-meals-subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.staff-meals-week-nav{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4) var(--space-5);background:var(--color-bg-primary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--color-border-light);box-shadow:var(--shadow-sm);flex-wrap:wrap;display:flex}.staff-meals-week-label{align-items:center;gap:var(--space-3);flex:1;justify-content:center;display:flex}.week-range{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.staff-meals-disabled{text-align:center;padding:var(--space-16) var(--space-8);background:var(--color-bg-primary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--color-border-light)}.staff-meals-disabled-icon{margin-bottom:var(--space-4);font-size:48px}.staff-meals-disabled p{font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2);font-size:var(--text-lg)}.staff-meals-disabled span{color:var(--color-text-secondary);font-size:var(--text-sm)}.staff-meals-table-wrapper{background:var(--color-bg-primary);border-radius:var(--radius-lg);border:var(--border-width-thin) solid var(--color-border-light);box-shadow:var(--shadow-sm);overflow-x:auto}.staff-meals-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);min-width:600px}.staff-meals-table thead th{padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-bottom:2px solid var(--color-border-medium);border-right:var(--border-width-thin) solid var(--color-border-light);text-align:center;font-weight:var(--font-semibold);color:var(--color-text-secondary)}.staff-meals-table thead th.staff-meals-label-col{text-align:left;z-index:2;background:var(--color-bg-tertiary);min-width:200px;position:sticky;left:0}.staff-meals-day-col{min-width:110px}.staff-meals-day-name{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.staff-meals-day-date{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-text-primary)}.staff-meals-meal-type-row td{padding:var(--space-2) var(--space-4);background:var(--color-green-3);border-top:2px solid var(--color-border-medium);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.staff-meals-meal-type-label{font-weight:var(--font-bold);color:var(--color-green-4);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;position:sticky;left:0}.staff-meals-menu-row td{border-bottom:var(--border-width-thin) solid var(--color-border-light);border-right:var(--border-width-thin) solid var(--color-border-light)}.staff-meals-menu-label{padding:var(--space-3) var(--space-4);font-weight:var(--font-medium);color:var(--color-text-primary);background:var(--color-bg-primary);z-index:1;position:sticky;left:0}.staff-meals-count-cell{padding:var(--space-2) var(--space-3);text-align:center;vertical-align:middle}.staff-meals-count-input{width:70px;padding:var(--space-2) var(--space-2);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);text-align:center;background:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);-moz-appearance:textfield}.staff-meals-count-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.staff-meals-count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.staff-meals-count-input:focus{border-color:var(--color-green-2);box-shadow:0 0 0 3px var(--color-green-3);outline:none}.staff-meals-count-input:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.staff-meals-container{padding:var(--space-4)}.staff-meals-header h1{font-size:var(--text-3xl)}.staff-meals-week-nav{text-align:center;flex-direction:column}.staff-meals-week-label{flex-direction:column}}.sticker-labels-page{max-width:1100px;margin:0 auto;padding:24px}.sticker-labels-page h1{color:var(--color-ink-4);margin-bottom:4px;font-size:1.75rem;font-weight:700}.sticker-subtitle{color:var(--color-ink-1);margin-bottom:24px;font-size:.9rem}.sticker-controls{background:var(--color-cream-1);border:1px solid #e2e8f0;border-radius:10px;margin-bottom:28px;padding:20px 24px}.sticker-controls__row{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.sticker-control-group{flex-direction:column;gap:5px;display:flex}.sticker-control-group label{color:var(--color-ink-3);font-size:13px;font-weight:500}.sticker-control-group input[type=date],.sticker-control-group select{color:var(--color-ink-4);background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;font-size:14px}.sticker-control-group select{min-width:260px}.sticker-controls__buttons{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sticker-error{color:var(--color-error);margin-top:10px;font-size:14px}.sticker-info{color:var(--color-ink-1);border-top:1px solid #e2e8f0;margin-top:10px;padding-top:10px;font-size:13px}.sticker-preview-heading{color:var(--color-ink-3);margin-bottom:12px;font-size:1.1rem;font-weight:600}.sticker-preview-grid{gap:6px;display:grid}.sticker-preview{border:1px solid var(--color-cream-4);background:#fff;border-radius:4px;flex-direction:column;justify-content:space-between;min-height:72px;padding:6px 8px;display:flex;overflow:hidden}.sticker-preview--header{color:var(--color-ink-4);border:1px solid var(--color-cream-4);text-align:center;background:#fff;justify-content:center;align-items:center;gap:3px}.sticker-preview--header-no-special{justify-content:space-between}.sp__no-special-inline{color:var(--color-green-4);text-align:center;font-size:clamp(7px,1.8vw,9px);font-weight:600}.sp__line1{text-align:center;font-size:clamp(9px,2.2vw,13px);font-weight:700}.sp__line2{opacity:.8;text-align:center;font-size:clamp(7px,1.8vw,10px)}.sticker-preview--child{background:#fff;justify-content:space-evenly;align-items:center}.sp__name{color:var(--color-ink-4);text-align:center;width:100%;font-size:clamp(9px,2.2vw,13px);font-weight:700;line-height:1.2}.sp__menu{text-align:center;width:100%;font-size:clamp(7px,1.8vw,10px);font-weight:600}.sp__room{color:var(--color-ink-1);text-align:center;width:100%;font-size:clamp(6px,1.5vw,9px)}.sp__conflicts{color:var(--color-error);text-align:center;width:100%;font-size:clamp(6px,1.4vw,8px);font-weight:600}.sticker-empty{color:var(--color-ink-1);margin-top:24px;font-size:14px;font-style:italic}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-semibold);line-height:var(--leading-snug);color:var(--color-text-primary);letter-spacing:var(--tracking-tight);margin:0}h1{font-size:var(--text-4xl);margin-bottom:var(--space-4)}h2{font-size:var(--text-3xl);margin-bottom:var(--space-3)}h3{font-size:var(--text-xl);margin-bottom:var(--space-3)}h4{font-size:var(--text-lg);margin-bottom:var(--space-1)}p{margin:0 0 var(--space-4) 0}a{color:var(--color-green-4);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-blue-700);text-decoration:underline}ul,ol{margin:0;padding:0}li{list-style:none}:focus-visible{outline:3px solid var(--color-green-2);outline-offset:3px;border-radius:3px}.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}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}::selection{background-color:var(--color-green-3);color:var(--color-text-primary)}.page-header-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.page-header-actions h1,.page-header-actions h2,.page-header-actions h3{margin:0}.header-button-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.child-name-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.child-name-header h1{margin:0}@media (width<=600px){.page-header-actions{flex-direction:column;align-items:flex-start}.header-button-group{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.child-name-header{flex-direction:column;align-items:flex-start}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-6);font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);white-space:nowrap;border:var(--border-width-medium) solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-green-2);color:var(--color-cream-3);border-color:var(--color-green-2)}.btn-primary:hover:not(:disabled){background-color:var(--color-green-4);border-color:var(--color-green-4);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-green-2);border-color:var(--color-green-2)}.btn-secondary:hover:not(:disabled){background-color:var(--color-green-3);border-color:var(--color-green-4)}.btn-secondary:active{background-color:var(--color-cream-4)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:var(--color-green-2);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-md);background-color:#e53935;border-color:#e53935;transform:translateY(-1px)}.btn-danger-outline{background-color:var(--color-bg-primary);color:var(--color-error);border:var(--border-width-medium) solid var(--color-error)}.btn-danger-outline:hover{background-color:var(--color-error);color:var(--color-text-inverse);border-color:var(--color-error)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-inverse);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){box-shadow:var(--shadow-md);background-color:#fb8c00;transform:translateY(-1px)}.btn-ghost{color:var(--color-text-primary);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100)}.btn-ghost:active{background-color:var(--color-gray-200)}.btn-icon{min-width:var(--touch-target-comfortable);min-height:var(--touch-target-comfortable);padding:var(--space-3);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background-color:#0000;border:none}.btn-icon:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-text-primary)}.btn-icon:active{transform:scale(.95)}.btn-sm{min-height:calc(var(--touch-target-comfortable) * .75);padding:calc(var(--space-3) * .75) calc(var(--space-6) * .75);font-size:calc(var(--text-base) * .875);gap:calc(var(--space-2) * .75)}.btn-lg{min-height:56px;padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}.btn-block{width:100%}.btn-cancel{background-color:var(--color-gray-200);color:var(--color-text-primary);border-color:var(--color-gray-300)}.btn-cancel:hover:not(:disabled){background-color:var(--color-gray-300)}.btn-group{gap:var(--space-3);flex-wrap:wrap;display:flex}.btn-group .btn{flex:1;min-width:120px}@media (width<=640px){.btn-group{flex-direction:column}.btn-group .btn{width:100%}}.btn-changelog{font-size:.72rem;font-weight:var(--font-medium);font-family:var(--font-display);color:var(--color-text-primary);background-color:var(--color-gray-100);border:1px solid var(--color-gray-400);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;opacity:1;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;text-decoration:none;display:inline-flex}.btn-changelog:hover:not(:disabled){border-color:var(--color-gray-300);color:var(--color-text-secondary);opacity:.55;background-color:#0000}.btn-changelog:active{transform:scale(.97)}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.form-group{margin-bottom:var(--space-6)}.form-label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);display:block}.form-label .required{color:var(--color-error);margin-left:var(--space-1)}.form-hint{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-tertiary);display:block}.form-input{width:100%;min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-4);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-input:focus{border-color:var(--color-green-2);outline:none;box-shadow:0 0 0 3px #53895d26}.form-input:disabled{background-color:var(--color-gray-100);cursor:not-allowed;opacity:.6}.form-input.error{border-color:var(--color-error)}.form-input.error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.form-textarea{resize:vertical;min-height:120px}.form-select{width:100%;min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-4);font-family:var(--font-primary);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23616161' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);appearance:none;cursor:pointer;transition:all var(--transition-fast)}.form-select:focus{border-color:var(--color-green-2);outline:none;box-shadow:0 0 0 3px #53895d26}.checkbox-label,.radio-label{align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:var(--touch-target-min);display:flex}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{cursor:pointer;width:20px;height:20px;accent-color:var(--color-green-2);margin:0}.checkbox-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.form-error{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-error);background-color:var(--color-error-light);border-left:3px solid var(--color-error);border-radius:var(--radius-sm);display:flex}.form-error:before{content:"⚠";font-size:var(--text-base)}.form-search{position:relative}.form-search input{padding-left:var(--space-10)}.form-search:before{left:var(--space-4);font-size:var(--text-lg);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.form-section{border-bottom:1px solid var(--color-border-light);padding-bottom:var(--space-6);margin-bottom:var(--space-6)}.form-section:last-child{border-bottom:none}.section-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-4);color:var(--color-text-primary)}.subsection-title{font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-3);color:var(--color-text-secondary)}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}.modal-overlay{z-index:var(--z-modal-backdrop);padding:var(--space-4);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);width:90%;max-width:800px;max-height:90vh;box-shadow:var(--shadow-2xl);z-index:var(--z-modal);flex-direction:column;display:flex}.modal-content.small{max-width:500px}.modal-content.medium{max-width:800px}.modal-content.large{max-width:1100px}.modal-header{padding:var(--space-6);border-bottom:var(--border-width-thin) solid var(--color-border-light);background-color:var(--color-cream-2);border-radius:var(--radius-xl) var(--radius-xl) 0 0;justify-content:space-between;align-items:center;display:flex}.modal-header h2,.modal-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin:0}.modal-subtitle{color:var(--color-text-tertiary);margin-bottom:var(--space-5);font-size:var(--text-base)}.close-button{color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-md);width:36px;height:36px;transition:all var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:32px;display:flex}.close-button:hover{background-color:var(--color-gray-200);color:var(--color-text-primary)}.modal-body{padding:var(--space-6);flex:1;overflow-y:auto}.modal-footer{padding:var(--space-5) var(--space-6);border-top:var(--border-width-thin) solid var(--color-border-light);background-color:var(--color-cream-2);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:space-between;align-items:center;display:flex}.footer-left,.footer-right{gap:var(--space-3);display:flex}.modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);display:flex}.modal-warning{background-color:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-weight:var(--font-medium)}@media (width<=640px){.modal-overlay{padding:var(--space-2)}.modal-content{max-width:100%;max-height:95vh}.modal-header,.modal-body{padding:var(--space-4)}.modal-footer{padding:var(--space-3) var(--space-4);gap:var(--space-3);flex-direction:column}.footer-left,.footer-right{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}@font-face{font-family:Bake Bunny;src:url(/assets/BakeBunny-Regular-lluIMDEv.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--color-green-1:#8dc88e;--color-green-2:#53895d;--color-green-3:#c1e6c1;--color-green-4:#496b4e;--color-cream-1:#fff9ea;--color-cream-2:#fbf3dc;--color-cream-3:#fff7ec;--color-cream-4:#e9e4ce;--color-sage-1:#d7d6bf;--color-sage-2:#c7cdb0;--color-sage-3:#7c887e;--color-ink-1:#617065;--color-ink-2:#47584b;--color-ink-3:#2d4131;--color-ink-4:#102715;--color-primary:var(--color-green-1);--color-primary-hover:var(--color-green-2);--color-primary-dark:var(--color-green-4);--color-primary-light:var(--color-green-3);--color-blue-50:#e3f2fd;--color-blue-100:#bbdefb;--color-blue-500:var(--color-green-2);--color-blue-600:var(--color-green-4);--color-blue-700:var(--color-ink-3);--color-success:#4caf50;--color-success-dark:#388e3c;--color-success-light:#e8f5e9;--color-warning:#ff9800;--color-warning-light:#fff3e0;--color-error:#f44336;--color-error-dark:#d32f2f;--color-error-light:#ffebee;--color-info:var(--color-green-2);--color-info-light:var(--color-green-3);--color-conflict-warning:red;--color-allergen-bg:#fff3e0;--color-allergen-text:#e65100;--color-allergen-border:#ffb74d;--color-text-primary:var(--color-ink-4);--color-text-secondary:var(--color-ink-1);--color-text-tertiary:var(--color-sage-3);--color-text-inverse:var(--color-cream-3);--color-bg-primary:#fff;--color-bg-secondary:var(--color-cream-1);--color-bg-tertiary:var(--color-cream-2);--color-bg-dark:var(--color-green-4);--color-border-light:var(--color-cream-4);--color-border-medium:var(--color-sage-2);--color-border-dark:var(--color-ink-2);--color-gray-50:var(--color-cream-1);--color-gray-100:var(--color-cream-2);--color-gray-200:var(--color-cream-4);--color-gray-300:var(--color-sage-1);--color-gray-400:var(--color-sage-2);--color-gray-500:var(--color-sage-3);--color-gray-600:var(--color-ink-1);--color-gray-700:var(--color-ink-2);--color-gray-800:var(--color-ink-3);--color-gray-900:var(--color-ink-4);--font-display:"Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-primary:"Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.9375rem;--text-4xl:2.4375rem;--text-display:3.0625rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.05;--leading-snug:1.1;--leading-normal:1.55;--leading-relaxed:1.45;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.06em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--border-width-thin:1px;--border-width-medium:2px;--border-width-thick:4px;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.75rem;--radius-full:9999px;--shadow-sm:0 1px 3px 0 #1027150f;--shadow-md:0 4px 12px -1px #1027151a, 0 2px 6px -1px #1027150f;--shadow-lg:0 10px 24px -3px #1027151a, 0 4px 8px -2px #1027150d;--shadow-xl:0 20px 32px -5px #1027151f, 0 10px 12px -5px #1027150d;--shadow-2xl:0 25px 50px -12px #10271533;--transition-fast:.15s ease-in-out;--transition-base:.2s ease-in-out;--transition-slow:.3s ease-in-out;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--touch-target-min:44px;--touch-target-comfortable:48px;--max-width-xs:20rem;--max-width-sm:24rem;--max-width-md:28rem;--max-width-lg:32rem;--max-width-xl:36rem;--max-width-2xl:42rem;--max-width-content:65rem;--color-today-highlight:var(--color-cream-2)}.card{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base);overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{padding:var(--space-4);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.card-body{padding:var(--space-4)}.card-footer{padding:var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-gray-50)}.card-elevated{box-shadow:var(--shadow-lg)}.card-flat{box-shadow:none;border:1px solid var(--color-border-light)}.card-interactive{cursor:pointer}.card-interactive:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.card-allergen-warning{background-color:var(--color-allergen-bg);border:2px solid var(--color-allergen-border)}.card-allergen-warning .card-body{align-items:flex-start;gap:var(--space-4);display:flex}.card-allergen-warning .warning-icon{flex-shrink:0;font-size:32px}.card-conflict{border:4px solid #f87171}
