body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-top-bar{background-color:#4285f4;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:1rem;justify-content:space-between;padding:10px 20px}.main-top-bar,.top-bar-left{align-items:center;display:flex}.top-bar-left{gap:15px}.nursery-name{font-size:1.2rem;font-weight:700}.site-select{border:none;border-radius:5px;padding:5px}.site-name,.site-select{font-size:1rem}.top-bar-right{align-items:center;display:flex;gap:10px}.logout-btn,.user-name{font-weight:700}.logout-btn{background-color:#fff;border:none;border-radius:5px;color:#4285f4;cursor:pointer;padding:5px 10px;transition:background-color .2s ease}.logout-btn:hover{background-color:#d0e0ff}.top-nav{background-color:#f0f0f0;border-bottom:1px solid #ccc;box-shadow:0 1px 3px #0000001a;display:flex;overflow-x:auto;padding:8px 15px;white-space:nowrap;z-index:5}.top-nav button{background-color:initial;border:none;border-radius:5px;cursor:pointer;font-size:1rem;margin-right:8px;padding:10px 20px;transition:background-color .2s ease,color .2s ease}.top-nav button:hover{background-color:#d0e0ff}.top-nav button.active{background-color:#4285f4;color:#fff;font-weight:700}:root{--color-primary-50:#e3f2fd;--color-primary-100:#bbdefb;--color-primary-200:#90caf9;--color-primary-300:#64b5f6;--color-primary-400:#42a5f5;--color-primary-500:#2196f3;--color-primary-600:#1e88e5;--color-primary-700:#1976d2;--color-primary-800:#1565c0;--color-primary-900:#0d47a1;--color-blue-50:#e3f2fd;--color-blue-100:#bbdefb;--color-blue-200:#90caf9;--color-blue-300:#64b5f6;--color-blue-400:#42a5f5;--color-blue-500:#2196f3;--color-blue-600:#1e88e5;--color-blue-700:#1976d2;--color-blue-800:#1565c0;--color-blue-900:#0d47a1;--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:#2196f3;--color-info-light:#e3f2fd;--color-conflict-warning:red;--color-allergen-bg:#fff3e0;--color-allergen-text:#e65100;--color-allergen-border:#ffb74d;--color-gray-50:#fafafa;--color-gray-100:#f5f5f5;--color-gray-200:#eee;--color-gray-300:#e0e0e0;--color-gray-400:#bdbdbd;--color-gray-500:#9e9e9e;--color-gray-600:#757575;--color-gray-700:#616161;--color-gray-800:#424242;--color-gray-900:#212121;--color-text-primary:#1f2937;--color-text-secondary:#4b5563;--color-text-tertiary:#6b7280;--color-text-inverse:#fff;--color-bg-primary:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-border-light:#e5e7eb;--color-border-medium:#d1d5db;--color-border-dark:#9ca3af;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--font-primary:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Inter",sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Courier New",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--border-width-thin:1px;--border-width-medium:2px;--border-width-thick:4px;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--transition-fast:150ms ease-in-out;--transition-base:200ms ease-in-out;--transition-slow:300ms ease-in-out;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1000;--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}.todays-menu-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-content);min-height:100vh;padding:var(--space-8) var(--space-4)}.todays-menu-title{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-8);text-align:center}.menu-type-header{border-bottom:var(--border-width-medium) solid var(--color-border-medium);color:var(--color-text-primary);color:var(--menu-type-color,var(--color-text-primary));font-size:var(--text-2xl);font-weight:var(--font-semibold);margin-bottom:var(--space-4);margin-top:var(--space-6);padding-bottom:var(--space-2)}.date-navigation{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:var(--space-5);justify-content:space-between;margin-bottom:var(--space-8);padding:var(--space-5)}.date-display,.date-navigation{align-items:center;display:flex}.date-display{flex:1 1;flex-direction:column;gap:var(--space-2)}.date-display h2{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0;text-align:center}.menu-section{margin-bottom:var(--space-8)}.meal-card{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;margin-bottom:var(--space-3);padding:var(--space-4);transition:all var(--transition-fast)}.meal-card:hover{background-color:var(--color-primary-50);border-color:var(--color-primary-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}.meal-header{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.meal-popup-overlay,.modal-overlay{align-items:center;background-color:var(--overlay-bg);display:flex;height:100%;justify-content:center;left:0;padding:var(--space-4);position:fixed;top:0;width:100%;z-index:var(--z-modal)}.meal-popup-content,.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;max-width:800px;overflow-y:auto;padding:var(--space-6);position:relative;width:100%}.meal-popup-content h2,.modal-content h2{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-4);margin-top:0;padding-right:var(--space-8)}.meal-popup-content h3,.modal-content h3{font-size:var(--text-lg);margin-bottom:var(--space-3);margin-top:var(--space-5)}.meal-popup-content h3,.meal-popup-content h4,.modal-content h3{color:var(--color-text-primary);font-weight:var(--font-semibold)}.meal-popup-content h4{color:var(--menu-type-color,var(--color-text-primary));font-size:var(--text-base);margin-bottom:var(--space-2);margin-top:var(--space-4)}.meal-popup-content ul,.modal-content ul{list-style-type:disc;margin-bottom:var(--space-4);padding-left:var(--space-6)}.meal-popup-content li,.modal-content li{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-2)}.meal-popup-content p,.modal-content p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.btn-icon{font-size:var(--text-2xl);font-weight:var(--font-bold);height:var(--space-10);width:var(--space-10)}.ingredients-comparison-table{border-collapse:collapse;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:var(--space-5);overflow:hidden;width:100%}.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{border-right:var(--border-width-thin) solid var(--color-border-light);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-3);text-align:left}.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{border-right:var(--border-width-thin) solid var(--color-border-light);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-3)}.ingredients-comparison-table td:last-child{border-right:none}.ingredients-comparison-table .ingredient-name{color:var(--color-text-primary);font-weight:var(--font-medium)}.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-700);font-size:var(--text-sm)}.room-breakdown-section{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);margin:var(--space-5) 0;padding:var(--space-4)}.room-breakdown-section h3{color:var(--color-text-primary);font-size:var(--text-lg);margin:0 0 var(--space-4) 0}.menu-room-breakdown{margin-bottom:var(--space-4)}.menu-room-breakdown:last-child{margin-bottom:0}.menu-room-breakdown h4{color:var(--color-primary-500);color:var(--menu-type-color,var(--color-primary-500));font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0}.room-counts{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-left:var(--space-4)}.room-count{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.children-count-section{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--space-5);padding:var(--space-3)}.children-count-section p{color:var(--color-text-primary);font-size:var(--text-base);margin:0 0 var(--space-3) 0}.room-breakdown-inline{display:flex;flex-wrap:wrap;gap:var(--space-2)}.room-count-inline{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.no-children-message{color:var(--color-text-tertiary);font-size:var(--text-sm);font-style:italic;margin:var(--space-2) 0 0 var(--space-4)}.children-attention-section{background-color:var(--color-danger-50);border:var(--border-width-thin) solid var(--color-danger-200);border-radius:var(--radius-md);margin-top:var(--space-6);padding:var(--space-4)}.attention-header{color:var(--color-danger);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-3);margin-top:0}.attention-list{list-style:none;margin:0;padding:0}.attention-item{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-3);padding-right:calc(var(--space-3) + 120px);position:relative}.attention-item .btn-sm{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);position:absolute;right:var(--space-3);top:var(--space-3)}.attention-item:last-child{margin-bottom:0}.child-header-info{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.child-header-info strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.room-badge{display:inline-block;font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.menu-assignment{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-1)}.conflict-info{color:var(--color-conflict-warning);font-weight:var(--font-medium)}.conflict-info,.weaning-info{font-size:var(--text-sm);margin-top:var(--space-1)}.weaning-info{color:var(--color-success-600);font-style:italic}.special-requirements-info{color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic;margin-top:var(--space-1)}.overall-methods-section{border-top:var(--border-width-medium) solid var(--color-border-light);margin-top:var(--space-5);padding-top:var(--space-5)}.overall-methods-section h3{color:var(--color-text-primary);font-size:var(--text-lg);margin-bottom:var(--space-4)}.method-block{background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-3)}.method-block p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0;white-space:pre-wrap}.method-block.no-method p{color:var(--color-text-tertiary);font-style:italic}.meal-names-header{background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-4);padding:var(--space-3)}.meal-names-header div{color:var(--color-text-secondary);margin-bottom:var(--space-1)}.meal-names-header div:last-child{margin-bottom:0}.meal-names-header strong{color:var(--color-text-primary);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{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}@media (max-width:768px){.todays-menu-container{padding:var(--space-4) var(--space-3)}.todays-menu-title{font-size:var(--text-3xl)}.date-navigation{flex-direction:column;gap:var(--space-3)}.date-display h2{font-size:var(--text-lg)}.meal-popup-content,.modal-content{max-height:95vh;padding:var(--space-4)}.ingredients-comparison-table{font-size:var(--text-xs)}.ingredients-comparison-table td,.ingredients-comparison-table th{padding:var(--space-2)}.child-header-info{align-items:flex-start;flex-direction:column}}.calendar-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-content);min-height:100vh;padding:var(--space-8) var(--space-4)}.menu-toggle,.view-toggle{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.month-label{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-4);text-align:center}.calendar-table{background-color:var(--color-bg-primary);border-collapse:collapse;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;width:100%}.calendar-table th{background-color:var(--color-gray-100);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);text-align:center}.calendar-table td,.calendar-table th{border:var(--border-width-thin) solid var(--color-border-light);padding:var(--space-3)}.calendar-table td{background-color:var(--color-bg-primary);height:100px;min-width:120px;vertical-align:top}.meal-type-label{text-align:center}.meal-cell{background-color:var(--color-bg-tertiary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.meal-cell:hover{background-color:var(--color-primary-50);box-shadow:var(--shadow-sm);color:var(--color-primary-700);font-weight:var(--font-medium);transform:translateY(-2px)}.no-meal{padding:var(--space-3);text-align:center}@media (max-width:768px){.calendar-container{padding:var(--space-4) var(--space-3)}.calendar-table td,.calendar-table th{min-width:80px}.calendar-table td,.calendar-table th,.meal-cell{font-size:var(--text-xs);padding:var(--space-2)}.month-label{font-size:var(--text-lg)}}.modal-overlay{height:100%;width:100%}.modal-content h2{margin-bottom:var(--space-4);padding-right:var(--space-8)}.modal-content h3{font-size:var(--text-lg);margin-bottom:var(--space-3);margin-top:var(--space-5)}.modal-content h3,.modal-content h4{color:var(--color-text-primary);font-weight:var(--font-semibold)}.modal-content h4{font-size:var(--text-base);margin-bottom:var(--space-2);margin-top:var(--space-4)}.modal-content ul{margin-bottom:var(--space-4);padding-left:var(--space-6)}.modal-content li{margin-bottom:var(--space-2)}.modal-content li,.modal-content p{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.modal-content p{margin-bottom:var(--space-3)}.allergens{color:var(--color-allergen-text);font-size:var(--text-sm);font-weight:var(--font-semibold)}.dietary-info{color:var(--color-warning-700);font-size:var(--text-sm);font-weight:var(--font-medium)}.recipe-section{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);margin-top:var(--space-5);padding:var(--space-4)}.error{border-radius:var(--radius-md);font-weight:var(--font-medium);margin-top:var(--space-3);padding:var(--space-3)}.btn-icon{position:absolute;right:var(--space-4);top:var(--space-4)}@media (max-width:768px){.modal-content{max-height:95vh;padding:var(--space-4)}.modal-content h2{font-size:var(--text-xl)}.modal-content h3{font-size:var(--text-base)}}.allergen-alerts-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-content);min-height:100vh;padding:var(--space-8) var(--space-4)}.allergen-alerts-title{align-items:center;color:var(--color-text-primary);display:flex;font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-6)}.allergen-alerts-date{color:var(--color-text-secondary)}.allergen-alerts-date,.toggle-controls{border-bottom:var(--border-width-thin) solid var(--color-border-light);margin-bottom:var(--space-6);padding-bottom:var(--space-4)}.toggle-controls{align-items:center;display:flex;gap:var(--space-4)}.filter-controls{flex-wrap:wrap;gap:var(--space-6);margin-bottom:var(--space-6)}.filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.filter-label{font-weight:var(--font-semibold)}.filter-label,.meal-filter-select{color:var(--color-text-primary);font-size:var(--text-base)}.meal-filter-select{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;min-height:var(--touch-target-comfortable);padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.meal-filter-select:hover{border-color:var(--color-border-dark)}.meal-filter-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.alerts-list{display:flex;flex-direction:column;gap:var(--space-6)}.alert-card{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);transition:all var(--transition-normal)}.alert-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-conflict{background-color:var(--color-error-50);border:var(--border-width-thick) solid var(--color-conflict-warning)}.child-name{font-size:var(--text-2xl)}.room-badge-alert{background-color:var(--color-primary-100);border-radius:var(--radius-full);color:var(--color-primary-700);display:inline-block;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3);white-space:nowrap}.menu-details{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.menu-details-title{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-medium);margin:0}.meal-info{align-items:flex-start;border-radius:var(--radius-md);display:flex;line-height:var(--leading-relaxed);padding:var(--space-3)}.meal-content-wrapper{flex-grow:1}.meal-type-title{color:var(--color-text-primary);font-weight:var(--font-semibold);margin:0}.meal-type-name{margin-right:var(--space-5)}.menu-type-tag{font-size:var(--text-base);font-weight:var(--font-medium)}.meal-status-safe{background-color:var(--color-success-50);border:var(--border-width-thin) solid var(--color-success-200)}.meal-status-warning{background-color:var(--color-error-50);border:var(--border-width-thin) solid var(--color-error-200);color:var(--color-error-dark)}.conflict-text{color:var(--color-conflict-warning);font-weight:var(--font-bold);margin-bottom:0}.conflict-text,.safe-text{font-size:var(--text-sm);margin-left:var(--space-6);margin-top:var(--space-1)}.safe-text{color:var(--color-text-secondary)}.requirements-section{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.requirement-item{display:flex;flex-direction:column;gap:var(--space-1)}.requirement-label{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.requirement-content{border-radius:var(--radius-md);font-size:var(--text-base);line-height:var(--leading-relaxed);padding:var(--space-2) var(--space-3)}.allergen-content{background-color:var(--color-error-50);border:var(--border-width-thin) solid var(--color-error);color:var(--color-allergen-text);font-weight:var(--font-medium)}.center-text{color:var(--color-text-secondary);padding:var(--space-6);text-align:center}.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{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) dashed var(--color-border-medium);border-radius:var(--radius-md);padding:var(--space-4)}@media (max-width:768px){.allergen-alerts-container{padding:var(--space-4) var(--space-3)}.allergen-alerts-title{font-size:var(--text-3xl)}.filter-controls{flex-direction:column;gap:var(--space-4)}.filter-group,.meal-filter-select{width:100%}.child-header{align-items:flex-start;flex-direction:column}.alert-card{padding:var(--space-4)}}.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);border:2px dashed var(--color-border-medium);border-radius:var(--radius-md);margin-bottom:var(--space-4);padding:var(--space-4)}.session-fields-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--space-4)}.checkbox-group{align-items:center;display:flex;margin-bottom:0}.checkbox-group .checkbox-label{align-items:center;display:flex;gap:var(--space-2);margin:0;padding:var(--space-2) 0}.checkbox-group .checkbox-label input[type=checkbox]{flex-shrink:0;margin:0}.added-sessions-list{margin-top:var(--space-4)}.session-item{align-items:center;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-2);padding:var(--space-3)}.session-info{align-items:center;flex:1 1;flex-wrap:wrap;gap:var(--space-3)}.session-type{color:var(--color-text-primary);font-weight:var(--font-semibold)}.session-detail{color:var(--color-text-tertiary);font-size:var(--text-sm)}.textarea-input{font-family:inherit;min-height:120px;resize:vertical}.form-actions{border-top:1px solid var(--color-border-light);display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-6);padding-top:var(--space-5)}@media (max-width:640px){.session-fields-grid{grid-template-columns:1fr}.session-item{align-items:stretch;flex-direction:column}.session-info{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.form-actions{flex-direction:column-reverse;gap:var(--space-3)}.form-actions .btn{width:100%}}.children-container{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);font-family:var(--font-primary);margin:var(--space-8) auto;max-width:700px;padding:var(--space-6)}.children-title{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-semibold);margin-bottom:var(--space-6);text-align:center}.controls{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}@media (min-width:640px){.controls{align-items:center;flex-direction:row;gap:var(--space-4);justify-content:space-between}}.controls .form-search{flex:1 1;min-width:0}.controls .form-search input{padding-left:var(--space-10)}.controls .form-select{flex-shrink:0;max-width:200px;min-width:180px}.children-list{border-top:1px solid var(--color-border-light);list-style:none;margin:0;padding:0}.child-item{align-items:center;border-bottom:1px solid var(--color-border-light);cursor:pointer;display:flex;justify-content:space-between;padding:var(--space-4);transition:background-color var(--transition-base)}.child-item:hover{background-color:var(--color-blue-50)}.child-info{display:flex;flex-direction:column}.child-name{font-weight:var(--font-semibold);margin:0}.child-room{color:var(--color-text-tertiary);font-size:var(--text-sm);margin-top:var(--space-1)}.view-details{color:var(--color-blue-600);font-size:var(--text-sm);text-decoration:none;transition:color var(--transition-fast)}.view-details:hover{color:var(--color-blue-700)}.loading-text,.no-results{color:var(--color-text-tertiary);font-size:var(--text-base);margin-top:var(--space-8);text-align:center}.header-with-button{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6)}@media (max-width:640px){.header-with-button{align-items:stretch;flex-direction:column}.children-title{margin-bottom:var(--space-4);text-align:left}.btn-group{width:100%}.controls .form-select{max-width:100%}}.delete-modal{display:flex;flex-direction:column;max-height:85vh;max-width:600px}.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);flex:1 1;margin-bottom:var(--space-5);max-height:400px;overflow-y:auto}.child-selection-item,.pdf-selection-item{border-bottom:1px solid var(--color-border-light);padding:var(--space-3) var(--space-4)}.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{gap:var(--space-3)}.checkbox-label input[type=checkbox]{flex-shrink:0;height:20px;width:20px}.child-selection-info,.child-selection-info-only{display:flex;flex-direction:column;gap:var(--space-1)}.child-selection-name{color:var(--color-text-primary);font-weight:var(--font-medium)}.child-selection-room{color:var(--color-text-tertiary);font-size:var(--text-sm)}.confirm-list{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--space-5);max-height:300px;overflow-y:auto;padding:var(--space-4)}.confirm-item{color:var(--color-text-primary);padding:var(--space-2) 0}.pdf-item-header{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between}.download-pdf-btn{background-color:var(--color-blue-500);border:none;border-radius:var(--radius-sm);color:var(--color-text-inverse);cursor:pointer;flex-shrink:0;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-3);transition:background-color var(--transition-base);white-space:nowrap}.download-pdf-btn:hover{background-color:var(--color-blue-600)}.download-pdf-btn.downloaded{background-color:var(--color-success)}.download-pdf-btn.downloaded:hover{background-color:var(--color-primary-600)}.modal-actions{border-top:1px solid var(--color-border-light);gap:var(--space-4);padding-top:var(--space-4)}.no-results{color:var(--color-text-tertiary);font-style:italic}@media (max-width:640px){.delete-modal{max-width:95%}.pdf-item-header{align-items:stretch;flex-direction:column}.download-pdf-btn{width:100%}.modal-actions{flex-direction:column-reverse;gap:var(--space-3)}.modal-actions .btn{width:100%}}.child-details-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-content);min-height:100vh;padding:var(--space-8) var(--space-4)}.child-name{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);letter-spacing:-.02em;margin-bottom:var(--space-2)}.child-room{font-weight:var(--font-medium);margin-bottom:var(--space-8)}.child-room,.loading-text{color:var(--color-text-secondary);font-size:var(--text-lg)}.loading-text{padding:var(--space-10);text-align:center}.card{margin-bottom:var(--space-6)}.card h2{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0;padding:var(--space-2) var(--space-3)}.card ul{margin-top:var(--space-4);padding-left:var(--space-6)}.card li{margin-bottom:var(--space-2)}.card li,.card p{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.card p{margin:0;padding:var(--space-2) var(--space-3)}.edit-section{background-color:var(--color-bg-tertiary);border:var(--border-width-medium) dashed var(--color-border-medium);border-radius:var(--radius-lg);margin-top:var(--space-5);padding:var(--space-5)}.edit-actions{gap:var(--space-4);justify-content:flex-end}.allergen-selector{margin-bottom:var(--space-6)}.allergen-selector h4{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-3)}.checkbox-grid{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);max-height:300px;overflow-y:auto;padding:var(--space-4)}.dietary-preferences-section,.weaning-options-section{padding:var(--space-2) 0}.dietary-preferences-grid,.weaning-options-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:var(--space-3)}.dietary-preference-checkbox,.weaning-option-checkbox{align-items:center;background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;display:flex;padding:var(--space-3);transition:all var(--transition-fast)}.dietary-preference-checkbox:hover,.weaning-option-checkbox:hover{background-color:var(--color-primary-50);border-color:var(--color-primary-500);box-shadow:var(--shadow-sm)}.dietary-preference-checkbox input[type=checkbox],.weaning-option-checkbox input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;height:var(--space-5);margin-right:var(--space-3);width:var(--space-5)}.dietary-preference-label,.weaning-option-label{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium);-webkit-user-select:none;user-select:none}.dietary-preference-checkbox:has(input[type=checkbox]:checked),.weaning-option-checkbox:has(input[type=checkbox]:checked){background-color:var(--color-primary-100);border-color:var(--color-primary-500)}.dietary-preference-checkbox input[type=checkbox]:checked+.dietary-preference-label,.weaning-option-checkbox input[type=checkbox]:checked+.weaning-option-label{color:var(--color-primary-700);font-weight:var(--font-semibold)}.dietary-preferences-display,.weaning-options-display{padding:var(--space-2) 0}.no-options-text{color:var(--color-text-tertiary);font-style:italic;padding:var(--space-3) 0}.special-requirements-textarea{border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);line-height:var(--leading-relaxed);min-height:120px;padding:var(--space-3);resize:vertical;transition:border-color var(--transition-fast);width:100%}.special-requirements-textarea:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.special-requirements-display{padding:var(--space-3) 0}.special-requirements-text{background-color:var(--color-bg-tertiary);border-left:var(--border-width-thick) solid var(--color-primary-500);border-radius:var(--radius-md);color:var(--color-text-primary);line-height:var(--leading-relaxed);margin:0;padding:var(--space-4);white-space:pre-wrap}.no-requirements-text{color:var(--color-text-tertiary);font-style:italic;padding:var(--space-3) 0}.subsection-title{color:var(--color-text-primary);font-size:var(--text-lg);margin-top:var(--space-6);padding:0 var(--space-3)}.sessions-table-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:var(--space-4);overflow-x:auto}.sessions-table{border-collapse:collapse;margin-bottom:var(--space-4);width:100%}.sessions-table th{background-color:var(--color-gray-100);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);text-align:center}.sessions-table td,.sessions-table th{border:var(--border-width-thin) solid var(--color-border-light);padding:var(--space-3)}.sessions-table td{vertical-align:top}.session-cell{background-color:var(--color-gray-50);min-height:80px}.session-list{gap:var(--space-2)}.session-box,.session-list{display:flex;flex-direction:column}.session-box{background-color:var(--color-primary-500);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-text-inverse);font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-1);padding:var(--space-3);position:relative}.session-name{font-size:var(--text-base)}.session-dates{color:#ffffffe6;font-size:var(--text-xs);margin-top:var(--space-1)}.ongoing-text{font-style:italic;opacity:.8}.delete-button-inline{align-items:center;background-color:var(--color-error);border:none;border-radius:var(--radius-full);color:var(--color-text-inverse);cursor:pointer;display:flex;font-size:var(--text-lg);height:var(--space-6);justify-content:center;line-height:1;padding:0;position:absolute;right:var(--space-1);top:var(--space-1);transition:background-color var(--transition-fast);width:var(--space-6)}.delete-button-inline:hover{background-color:var(--color-error-dark)}.add-end-date-button{background-color:#fff3;border:var(--border-width-thin) solid #ffffff80;border-radius:var(--radius-sm);color:var(--color-text-inverse);cursor:pointer;font-size:var(--text-xs);margin-top:var(--space-1);padding:var(--space-1) var(--space-2);transition:background-color var(--transition-fast)}.add-end-date-button:hover{background-color:#ffffff4d}.end-date-form{align-items:center;background-color:#ffffff1a;border-radius:var(--radius-md);display:flex;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2)}.end-date-input{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);flex:1 1;font-size:var(--text-sm);padding:var(--space-2)}.cancel-end-date-button,.save-end-date-button{align-items:center;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;font-size:var(--text-base);font-weight:var(--font-bold);justify-content:center;min-height:36px;min-width:36px;padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.save-end-date-button{background-color:var(--color-success);border:2px solid var(--color-success-dark);color:var(--color-text-inverse)}.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;border:2px solid var(--color-error-dark)!important;color:var(--color-text-inverse)!important}.cancel-end-date-button:hover{background-color:var(--color-error-dark)!important;box-shadow:var(--shadow-md);transform:translateY(-1px) scale(1.05)}.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);font-size:var(--text-sm);font-style:italic;padding:var(--space-4) 0;text-align:center}.one-off-sessions-section{border-top:var(--border-width-thin) solid var(--color-border-light);margin-top:var(--space-8);padding-top:var(--space-6)}.one-off-sessions-list{display:flex;flex-direction:column;gap:var(--space-3)}.one-off-session-item{align-items:center;background-color:var(--color-warning-100);border:var(--border-width-thin) solid var(--color-warning-300);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-3) var(--space-4)}.one-off-session-info{display:flex;flex-direction:column;gap:var(--space-1)}.one-off-session-name{color:var(--color-warning-900);font-size:var(--text-base);font-weight:var(--font-semibold)}.one-off-session-date{color:var(--color-warning-800);font-size:var(--text-sm)}.delete-button-small{background-color:var(--color-error);border:none;border-radius:var(--radius-md);color:var(--color-text-inverse);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-3);transition:background-color var(--transition-fast);white-space:nowrap}.delete-button-small:hover{background-color:var(--color-error-dark)}.add-session-form{background-color:var(--color-bg-tertiary);border:var(--border-width-medium) dashed var(--color-border-medium);border-radius:var(--radius-lg);margin-top:var(--space-5);padding:var(--space-5)}.add-session-form h4{color:var(--color-text-primary);font-weight:var(--font-semibold);margin-bottom:var(--space-4);margin-top:0}.session-type-toggle{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.toggle-button{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex:1 1;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.toggle-button:hover{background-color:var(--color-bg-tertiary)}.toggle-button.active{background-color:var(--color-primary-500);border-color:var(--color-primary-500);color:var(--color-text-inverse)}.form-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(2,1fr);margin-bottom:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-sm);margin-bottom:var(--space-1)}.form-group input,.form-group select{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);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast);width:100%}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.absences-list{margin-bottom:var(--space-5)}.absences-list h4{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-3);padding:0 var(--space-3)}.absence-item{align-items:center;background-color:var(--color-warning-100);border:var(--border-width-thin) solid var(--color-warning-300);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;margin-bottom:var(--space-2);padding:var(--space-3)}.absence-info{display:flex;flex-direction:column;gap:var(--space-1)}.absence-date{color:var(--color-warning-900);font-weight:var(--font-semibold)}.absence-session{color:var(--color-warning-800);font-size:var(--text-sm)}.mark-absence-form{background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-top:var(--space-5);padding:var(--space-5)}.mark-absence-form h4{color:var(--color-text-primary);margin-bottom:var(--space-4)}.week-navigation{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5);margin-top:var(--space-4);padding:0 var(--space-3)}.week-label{color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);font-weight:var(--font-semibold);margin:0;text-align:center}.week-navigation .btn{font-size:var(--text-sm);min-height:36px;padding:var(--space-2) var(--space-3)}.week-navigation button.btn.btn-primary:disabled,.week-navigation button.btn:disabled{background-color:var(--color-gray-300);border-color:var(--color-gray-300);cursor:not-allowed;opacity:.5;pointer-events:none}.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{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:var(--space-3);overflow-x:auto}.menu-table{background-color:var(--color-bg-primary);border-collapse:collapse;font-size:var(--text-sm);width:100%}.menu-table td,.menu-table th{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);color:var(--color-text-primary);font-weight:var(--font-semibold);position:-webkit-sticky;position:sticky;top:0}.meal-type-label{background-color:var(--color-gray-50);white-space:nowrap}.today-cell{background-color:#fff9c4!important}.meal-cell{cursor:pointer;flex-direction:column;gap:var(--space-2);min-height:80px;transition:background-color var(--transition-fast)}.meal-cell:hover{background-color:var(--color-bg-tertiary)}.meal-menu-type{background-color:initial;border-radius:0;font-size:var(--text-xs);font-style:normal;font-weight:var(--font-bold);letter-spacing:.5px;order:-1;padding:0;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.meal-menu-type[data-menu-type]{color:var(--color-primary-500);color:var(--menu-type-color,var(--color-primary-500))}.meal-name{font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.meal-warning{color:var(--color-warning);cursor:help;font-size:var(--text-xs);font-weight:var(--font-medium);margin-top:var(--space-1)}.no-meal,.not-attending{color:var(--color-text-tertiary);font-size:var(--text-sm);font-style:italic}.not-attending{text-align:center}@media (max-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{flex-direction:column;gap:var(--space-2)}.week-label{font-size:var(--text-base);order:-1}.sessions-table td,.sessions-table th{font-size:var(--text-xs);padding:var(--space-2)}.menu-table{font-size:var(--text-xs)}.menu-table td,.menu-table th{padding:var(--space-2)}.one-off-session-item{align-items:stretch;flex-direction:column}.delete-button-small{width:100%}.form-grid{grid-template-columns:1fr}}@media (max-width:480px){.dietary-preferences-grid,.weaning-options-grid{grid-template-columns:1fr}.session-type-toggle{flex-direction:column}}.modal-content{max-width:700px;padding:var(--space-8);position:relative}.modal-close-btn{align-items:center;background:none;border:none;border-radius:var(--radius-full);color:var(--color-text-tertiary);cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;padding:0;position:absolute;right:var(--space-4);top:var(--space-4);transition:all var(--transition-fast);width:40px}.modal-close-btn:hover{background-color:var(--color-gray-200);color:var(--color-text-primary);transform:rotate(90deg)}.modal-title{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);line-height:var(--leading-tight);margin:0 0 var(--space-6) 0;padding-right:var(--space-10)}.modal-info{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-4)}.modal-info p{color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:var(--space-2) 0}.modal-info strong{color:var(--color-text-primary);font-weight:var(--font-semibold);margin-right:var(--space-2)}.modal-info .meal-type-text{border-radius:var(--radius-sm);display:inline-block;font-weight:var(--font-bold);letter-spacing:.5px;padding:var(--space-1) var(--space-3);text-transform:uppercase}.modal-info .meal-type-text[data-light=true]{background-color:var(--color-primary-500);background-color:var(--menu-type-color,var(--color-primary-500));color:#1a1a1a}.modal-info .meal-type-text[data-light=false]{background-color:initial;color:var(--color-primary-500);color:var(--menu-type-color,var(--color-primary-500));padding:0}.conflict-warning{background-color:var(--color-error-light);border:var(--border-width-medium) solid var(--color-error);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6);padding:var(--space-5)}.conflict-warning h3{align-items:center;display:flex;font-size:var(--text-xl);font-weight:var(--font-bold);gap:var(--space-2)}.conflict-warning h3,.conflict-warning p{color:var(--color-error-dark);margin:0 0 var(--space-3) 0}.conflict-warning p{font-weight:var(--font-medium)}.conflict-warning ul{margin:0;padding-left:var(--space-6)}.conflict-item{color:var(--color-error);font-size:var(--text-base);font-weight:var(--font-semibold);margin:var(--space-2) 0}.ingredients-section{margin-bottom:var(--space-6)}.ingredients-section h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-4) 0}.ingredients-list{display:flex;flex-direction:column;gap:var(--space-3);list-style:none;margin:0;padding:0}.ingredients-list li{background-color:var(--color-bg-tertiary);border-left:var(--border-width-thick) solid var(--color-primary-500);border-radius:var(--radius-md);padding:var(--space-4);transition:all var(--transition-fast)}.ingredients-list li:hover{background-color:var(--color-bg-secondary);box-shadow:var(--shadow-sm);transform:translateX(2px)}.ingredient-conflict{background-color:var(--color-error-light)!important;border-left-color:var(--color-error)!important}.ingredient-conflict:hover{background-color:#ffe0e0!important}.ingredient-name{align-items:center;display:flex;gap:var(--space-2)}.conflict-icon{font-size:var(--text-lg)}.ingredient-allergens{align-items:center;color:var(--color-allergen-text);display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);margin-top:var(--space-2)}.ingredient-allergens:before{content:"⚠";font-size:var(--text-base)}.ingredient-dietary{color:var(--color-warning-700);font-size:var(--text-sm);font-style:italic;font-weight:var(--font-medium);margin-top:var(--space-1)}.method-section{margin-bottom:var(--space-6)}.method-section h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-3) 0}.method-text{background-color:var(--color-bg-tertiary);border-left:var(--border-width-thick) solid var(--color-primary-500);border-radius:var(--radius-md);color:var(--color-text-secondary);line-height:var(--leading-relaxed);padding:var(--space-4);white-space:pre-wrap}.close-button{background-color:var(--color-primary-500);color:var(--color-text-inverse);font-size:var(--text-base);font-weight:var(--font-semibold);margin-top:var(--space-4);min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-6);width:100%}.close-button:hover{background-color:var(--color-primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.close-button:active{transform:translateY(0)}.modal-content p:only-child{color:var(--color-text-secondary);font-size:var(--text-lg);padding:var(--space-8);text-align:center}@media (max-width:768px){.modal-content{max-height:95vh;max-width:95%;padding:var(--space-6)}.modal-title{font-size:var(--text-2xl);padding-right:var(--space-8)}.modal-close-btn{font-size:28px;height:36px;right:var(--space-3);top:var(--space-3);width:36px}.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 (max-width:480px){.modal-content{padding:var(--space-4)}.modal-title{font-size:var(--text-xl)}.conflict-warning,.modal-info{padding:var(--space-3)}}.shopping-list-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-content);min-height:100vh;padding:var(--space-8) var(--space-4)}.shopping-list-title{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-6)}.date-selector-card{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6);padding:var(--space-6)}.date-selector-card h2{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-5)}.date-inputs{grid-gap:var(--space-5);display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:var(--space-5)}.date-input-group{display:flex;flex-direction:column;gap:var(--space-2)}.date-input-group label{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.date-input{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);padding:var(--space-3);transition:border-color var(--transition-fast)}.date-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.error-message{margin-bottom:var(--space-5);padding:var(--space-4)}.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{align-items:flex-start;background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;padding:var(--space-5)}.results-info h2{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.date-range{font-size:var(--text-sm);margin-bottom:var(--space-1)}.total-count{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.action-buttons{display:flex;gap:var(--space-3)}.list-controls{align-items:flex-end;background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.control-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:180px}.control-group label{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.control-select{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast)}.control-select:focus{box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.control-select:focus,.control-select:hover{border-color:var(--color-primary-500)}.no-ingredients{color:var(--color-text-tertiary);font-size:var(--text-base);font-style:italic;padding:var(--space-10);text-align:center}.ingredients-table-container{margin-top:0;overflow-x:auto}.shopping-table{background-color:var(--color-bg-primary);border-collapse:collapse;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{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:.05em;padding:var(--space-4) var(--space-5);text-align:left;text-transform:uppercase}.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{color:var(--color-text-primary);font-size:var(--text-base);padding:var(--space-4) var(--space-5)}.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{color:var(--color-success-600);font-weight:var(--font-semibold);text-align:right}@media (max-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{align-items:stretch;flex-direction:column;padding:var(--space-3)}.control-group{width:100%}.results-header{flex-direction:column;padding:var(--space-4)}.action-buttons{flex-direction:column;width:100%}.shopping-table{font-size:var(--text-sm)}.shopping-table tbody td,.shopping-table thead th{padding:var(--space-3)}}@media (max-width:480px){.shopping-table tbody td,.shopping-table thead th{font-size:var(--text-xs);padding:var(--space-2)}}@media print{body *{visibility:hidden}.shopping-list-results,.shopping-list-results *{visibility:visible}.shopping-list-results{left:0;position:absolute;top:0;width:100%}.action-buttons,.back-btn,.date-selector-card,.list-controls,.shopping-list-title{display:none!important}.shopping-table tbody tr{page-break-inside:avoid}.shopping-list-results{color:#000}.results-header{background-color:#fff;border-bottom:2px solid #000}}.menu-management-wrapper{background-color:var(--color-bg-secondary);min-height:100vh}.menu-management-container{margin:0 auto;max-width:var(--max-width-wide);overflow-x:auto;padding:var(--space-8) var(--space-4)}.page-header{margin-bottom:var(--space-8)}.page-header h1{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 0 var(--space-2) 0}.subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.cycle-selector{align-items:center;background:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-5)}.cycle-selector-label{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.cycle-dropdown{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);cursor:pointer;flex:1 1;font-size:var(--text-base);max-width:500px;min-height:var(--touch-target-comfortable);padding:var(--space-3);transition:border-color var(--transition-fast)}.cycle-dropdown:hover{border-color:var(--color-border-dark)}.cycle-dropdown:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.cycle-info{align-items:center;display:flex;gap:var(--space-3)}.cycle-badge{border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3)}.cycle-badge.active{background-color:var(--color-success-100);color:var(--color-success-700)}.cycle-badge:not(.active){background-color:var(--color-gray-100);color:var(--color-text-secondary)}.cycle-length{background-color:var(--color-primary-100);border-radius:var(--radius-full);color:var(--color-primary-700);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3)}.menu-toggle{background-color:var(--color-bg-tertiary);display:flex;gap:var(--space-3);padding:var(--space-3)}.cycle-grid-container,.menu-toggle{border-radius:var(--radius-lg);margin-bottom:var(--space-8)}.cycle-grid-container{border:var(--border-width-thin) solid var(--color-border-medium);box-shadow:var(--shadow-lg);overflow-x:auto}.cycle-table{background-color:var(--color-bg-primary);border-collapse:collapse;min-width:1400px;width:100%}.cycle-table thead{background-color:var(--color-gray-800);position:-webkit-sticky;position:sticky;top:0;z-index:10}.day-header,.meal-type-header{border:var(--border-width-thin) solid var(--color-gray-700);color:var(--color-text-inverse);font-weight:var(--font-semibold);padding:var(--space-4) var(--space-3);text-align:center}.meal-type-header{background-color:var(--color-gray-800);border-right:var(--border-width-medium) solid var(--color-gray-600);left:0;min-width:140px;position:-webkit-sticky;position:sticky;text-align:left;z-index:11}.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{background-color:var(--color-gray-100);border-bottom:var(--border-width-thin) solid var(--color-border-medium);border-right:var(--border-width-medium) solid var(--color-border-dark);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);left:0;padding:var(--space-4) var(--space-3);position:-webkit-sticky;position:sticky;z-index:5}.meal-cell-container{border-bottom:var(--border-width-thin) solid var(--color-border-light);border-right:var(--border-width-thin) solid var(--color-border-light);cursor:pointer;min-height:80px;padding:var(--space-2);transition:background-color var(--transition-fast);vertical-align:top}.meal-cell-container:hover{background-color:var(--color-primary-50)}.meal-cell-container>div{margin-bottom:var(--space-1)}.meal-cell-container>div:last-child{margin-bottom:0}.meal-cell{align-items:center;border-radius:var(--radius-md);display:flex;justify-content:center;min-height:70px;padding:var(--space-3);transition:all var(--transition-fast)}.meal-cell.filled{background-color:var(--color-success-100);border:var(--border-width-medium) solid var(--color-success-500)}.meal-cell.filled:hover{background-color:var(--color-success-200);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-primary-500)}.meal-name{color:var(--color-success-800);line-height:var(--leading-snug);text-align:center;word-break:break-word}.add-meal,.meal-name{font-weight:var(--font-medium)}.add-meal{color:var(--color-text-secondary);font-size:var(--text-sm)}.meal-cell.empty:hover .add-meal{color:var(--color-primary-600)}@media (max-width:1400px){.cycle-grid-container{overflow-x:scroll}}@media (max-width:768px){.menu-management-container{padding:var(--space-4) var(--space-3)}.page-header h1{font-size:var(--text-3xl)}.cycle-selector{align-items:stretch;flex-direction:column;padding:var(--space-4)}.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)}}.form-textarea{min-height:80px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.section-header h3{font-size:var(--text-lg);margin:0}.ingredient-search{background-color:var(--color-primary-50);border:var(--border-width-medium) solid var(--color-primary-500);border-radius:var(--radius-md);margin-bottom:var(--space-5);padding:var(--space-3)}.search-input{margin-bottom:var(--space-3)}.search-results{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);max-height:250px;overflow-y:auto}.search-result-item{align-items:center;border-bottom:var(--border-width-thin) solid var(--color-border-light);cursor:pointer;display:flex;justify-content:space-between;padding:var(--space-3);transition:background-color var(--transition-fast)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:var(--color-primary-50)}.tags-container{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.allergen-badge{background-color:var(--color-warning-100);border-radius:var(--radius-sm);color:var(--color-warning-800)}.allergen-badge,.dietary-badge{font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-2)}.dietary-badge{background-color:var(--color-primary-100);border-radius:var(--radius-full);color:var(--color-primary-700);display:inline-block}.empty-state{color:var(--color-text-tertiary);font-style:italic;padding:var(--space-10);text-align:center}.ingredients-list{border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.ingredient-item{align-items:center;background-color:var(--color-bg-primary);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:space-between;padding:var(--space-4);transition:background-color var(--transition-fast)}.ingredient-item:last-child{border-bottom:none}.ingredient-item:hover{background-color:var(--color-bg-tertiary)}.ingredient-info{flex:1 1}.ingredient-name{display:block;font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.tags-wrapper{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-1)}.allergen-tags,.dietary-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.allergen-tag{background-color:var(--color-warning-100);border:var(--border-width-thin) solid var(--color-warning-300);border-radius:var(--radius-sm);color:var(--color-warning-800);font-weight:var(--font-medium)}.dietary-tag{background-color:var(--color-primary-100);color:var(--color-primary-700)}.ingredient-quantity{align-items:center;display:flex;gap:var(--space-2)}.quantity-input{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--text-base);padding:var(--space-2);text-align:right;width:80px}.quantity-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-100);outline:none}.unit-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}.unit-select{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);padding:var(--space-2)}.unit-select:focus{border-color:var(--color-primary-500);outline:none}.remove-button{align-items:center;background-color:var(--color-error);border:none;border-radius:var(--radius-sm);color:var(--color-text-inverse);cursor:pointer;display:flex;font-size:var(--text-xl);font-weight:var(--font-bold);height:28px;justify-content:center;padding:0;transition:background-color var(--transition-fast);width:28px}.remove-button:hover{background-color:var(--color-error-dark)}.footer-left,.footer-right{display:flex;gap:var(--space-3)}.modal-body::-webkit-scrollbar,.search-results::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track,.search-results::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}.modal-body::-webkit-scrollbar-thumb,.search-results::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb:hover,.search-results::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}@media (max-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,.modal-footer{padding:var(--space-4)}.modal-footer{flex-direction:column;gap:var(--space-3)}.footer-left,.footer-right{flex-direction:column;width:100%}.ingredient-item{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.ingredient-quantity{justify-content:space-between;width:100%}}.ingredient-management-container{background-color:var(--color-bg-tertiary);border-top:var(--border-width-thick) solid var(--color-border-medium);margin-top:var(--space-10);padding:var(--space-10) var(--space-5) var(--space-5) var(--space-5)}.ingredient-header{margin-bottom:var(--space-8)}.ingredient-header h2{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.ingredient-header .subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.header-content{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-5);justify-content:space-between}.header-text{flex:1 1}.header-buttons{display:flex;gap:var(--space-3)}.ingredient-controls{align-items:center;background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4)}.search-box{flex:1 1;min-width:250px}.search-input{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.search-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.filter-controls{display:flex;gap:var(--space-3)}.filter-select{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-3);transition:border-color var(--transition-fast)}.filter-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.results-count{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);margin-left:auto;white-space:nowrap}.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{border-bottom:var(--border-width-medium) solid var(--color-gray-700);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-4);text-align:left}.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{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium)}.default-unit{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);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)}.category-tag,.shop-tag{font-weight:var(--font-medium)}.shop-tag{background-color:var(--color-purple-100);border-radius:var(--radius-full);color:var(--color-purple-700);display:inline-block;font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}.no-category,.no-shop{color:var(--color-text-tertiary);font-size:var(--text-sm);font-style:italic}.allergens-cell{padding:var(--space-3) var(--space-4)}.allergen-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.allergen-tag{color:var(--color-allergen-text);display:inline-block;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-2)}.no-allergens{color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic}.dietary-cell{padding:var(--space-3) var(--space-4)}.dietary-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.dietary-tag{background-color:var(--color-danger-100);border-radius:var(--radius-full);color:var(--color-danger-800);display:inline-block;font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-2)}.no-dietary{color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic}.actions-cell,.no-results{text-align:center}.no-results{color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-10) var(--space-5)}.error,.loading{font-size:var(--text-lg);padding:var(--space-10)}.error{background-color:var(--color-danger-50);border:var(--border-width-thin) solid var(--color-danger-200);border-radius:var(--radius-lg);margin:var(--space-5)}@media (max-width:1200px){.ingredient-controls{align-items:stretch;flex-direction:column}.filter-controls,.search-box{width:100%}.filter-select{flex:1 1}.results-count{margin-left:0;text-align:center}}@media (max-width:768px){.ingredient-management-container{padding:var(--space-5) var(--space-3)}.ingredient-header h2{font-size:var(--text-2xl)}.header-content{align-items:stretch;flex-direction:column}.header-buttons{width:100%}.ingredients-table{font-size:var(--text-xs)}.ingredients-table td,.ingredients-table th{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)}}.modal-content{max-height:85vh}.modal-content.large{max-width:700px}.section{margin-bottom:var(--space-8)}.section:last-child{margin-bottom:0}.section-title{font-size:var(--text-xl);margin:0 0 var(--space-2) 0}.section-description{margin:0 0 var(--space-4) 0}.checkbox-label{background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3);transition:background var(--transition-fast)}.checkbox-label:hover{background:var(--color-bg-secondary)}.dietary-flags-list{display:flex;flex-direction:column;gap:var(--space-3)}.dietary-flag-item{align-items:center;background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:background var(--transition-fast)}.dietary-flag-item:hover{background:var(--color-bg-secondary)}.dietary-flag-item input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;height:var(--space-5);width:var(--space-5)}.preference-name{flex:1 1}.status-indicator{border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3)}.status-indicator.suitable{background:var(--color-success-100);color:var(--color-success-700)}.status-indicator.not-suitable{background:var(--color-error);color:var(--color-danger)}.modal-footer{background:var(--color-bg-primary);bottom:0;position:-webkit-sticky;position:sticky}.loading{font-size:var(--text-lg)}@media (max-width:768px){.modal-overlay{padding:var(--space-2)}.modal-content.large{max-height:90vh;width:95%}.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{flex-direction:column;padding:var(--space-3) var(--space-4)}.modal-footer button{width:100%}}.comprehensive-edit-modal{display:flex;flex-direction:column;max-height:85vh;max-width:700px;width:90%}.modal-tabs{background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-medium) solid var(--color-border-light);display:flex;gap:0;padding:0 var(--space-5)}.tab-button{background:none;border:none;border-bottom:3px solid #0000;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);padding:var(--space-3) var(--space-6);position:relative;top:2px;transition:all var(--transition-fast)}.tab-button:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.tab-button.active{background-color:var(--color-bg-primary);border-bottom-color:var(--color-primary-500);color:var(--color-primary-500);font-weight:var(--font-semibold)}.tab-content{animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-description{background-color:var(--color-bg-tertiary);border-left:var(--border-width-thick) solid var(--color-primary-500);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0 0 var(--space-5) 0;padding:var(--space-3)}.form-group{margin-bottom:var(--space-5)}.form-input,.form-select{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.form-input:focus,.form-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.checkbox-item{align-items:center;background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-2);padding:var(--space-3);transition:background-color var(--transition-fast)}.checkbox-item:hover{background-color:var(--color-bg-secondary)}.checkbox-item input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;height:var(--space-5);width:var(--space-5)}.checkbox-item span{color:var(--color-text-primary);font-size:var(--text-base);-webkit-user-select:none;user-select:none}.modal-footer{padding:var(--space-4) var(--space-6)}.footer-left{flex:1 1}@media (max-width:768px){.comprehensive-edit-modal{max-height:90vh;width:95%}.modal-tabs{padding:0 var(--space-3)}.tab-button{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.modal-body{padding:var(--space-4)}.checkbox-grid{grid-template-columns:1fr}.modal-footer{flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.footer-left{width:100%}.footer-right{flex-direction:column;width:100%}.footer-right button{width:100%}}.modal-overlay{padding:var(--space-5)}.modal-content{width:100%}.modal-content.large{max-width:900px}.modal-header{border-bottom:var(--border-width-medium) solid var(--color-border-light);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-direction:column;gap:var(--space-2);position:relative}.modal-header h2{font-size:var(--text-xl);padding-right:var(--space-8)}.modal-header p{font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.close-button,.modal-header p{color:var(--color-text-secondary)}.close-button{position:absolute;right:var(--space-6);top:var(--space-6);transition:all var(--transition-fast)}.close-button:hover{background-color:var(--color-bg-secondary)}.form-label{font-size:var(--text-base);font-weight:var(--font-semibold)}.form-input,.form-textarea{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.form-textarea{line-height:var(--leading-relaxed);min-height:200px}.modal-footer{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:var(--border-width-medium) solid var(--color-border-light);gap:var(--space-3);justify-content:flex-end}.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 (max-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{right:var(--space-4);top:var(--space-4)}.modal-body,.modal-footer{padding:var(--space-4)}.modal-footer{flex-direction:column}.modal-footer button{width:100%}}.system-settings-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-wide);min-height:100vh;padding:var(--space-6)}.settings-header{margin-bottom:var(--space-8)}.settings-header h1{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 0 var(--space-2) 0}.settings-subtitle{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.settings-layout{grid-gap:var(--space-6);align-items:start;display:grid;gap:var(--space-6);grid-template-columns:280px 1fr}.settings-sidebar{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);position:-webkit-sticky;position:sticky;top:var(--space-6)}.settings-nav{display:flex;flex-direction:column;gap:var(--space-1)}.settings-nav-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--text-base);font-weight:var(--font-medium);gap:var(--space-3);padding:var(--space-3) var(--space-4);text-align:left;transition:all var(--transition-fast)}.settings-nav-item:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.settings-nav-item.active{background-color:var(--color-primary-100);color:var(--color-primary-700);font-weight:var(--font-semibold)}.nav-icon{font-size:var(--text-xl);line-height:1}.nav-label{flex:1 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{border-bottom:var(--border-width-medium) solid var(--color-border-light);margin-bottom:var(--space-8);padding-bottom:var(--space-6)}.section-header h2{font-size:var(--text-2xl);font-weight:var(--font-bold)}.section-header h2,.section-header h3{color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.section-header h3{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);margin-bottom:var(--space-6);padding:var(--space-6)}.settings-card:last-child{margin-bottom:0}.settings-card h3{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-5) 0}.setting-item{margin-bottom:var(--space-6)}.setting-item:last-child{margin-bottom:0}.setting-item label{display:block;margin-bottom:var(--space-2)}.setting-item label strong{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.setting-description{color:var(--color-text-secondary);display:block;font-size:var(--text-sm);font-weight:400;line-height:var(--leading-relaxed)}.setting-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);max-width:400px;padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.setting-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);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;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3);transition:background-color var(--transition-fast)}.setting-item-checkbox label:hover{background-color:var(--color-bg-tertiary)}.setting-item-checkbox input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;flex-shrink:0;height:var(--space-5);margin-top:2px;width:var(--space-5)}.setting-item-checkbox label>div{flex:1 1}.setting-item-checkbox strong{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.room-tags{display:flex;flex-wrap:wrap;margin-top:var(--space-3)}.room-tag,.room-tags{align-items:center;gap:var(--space-2)}.room-tag{background-color:var(--color-primary-100);border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4)}.room-tag,.room-tag-remove{color:var(--color-primary-700)}.room-tag-remove{background:none;border:none;cursor:pointer;font-size:var(--text-xl);font-weight:var(--font-bold);line-height:1;margin-left:var(--space-1);opacity:.7;padding:0;transition:opacity var(--transition-fast)}.room-tag-remove:hover{opacity:1}.add-room-input-container{align-items:center;display:flex;gap:var(--space-1)}.add-room-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-primary-500);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--text-sm);min-width:120px;outline:none;padding:var(--space-2) var(--space-3)}.add-room-cancel,.add-room-save{border:none;border-radius:50%;cursor:pointer;font-size:var(--text-base);font-weight:var(--font-bold);height:24px;line-height:1;transition:all var(--transition-fast);width:24px}.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)}.add-room-btn{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) dashed var(--color-border-dark);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast)}.add-room-btn:hover{background-color:var(--color-bg-secondary);border-color:var(--color-text-secondary);color:var(--color-text-primary)}.export-options{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.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{border-color:var(--color-primary-500);box-shadow:var(--shadow-md)}.export-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3)}.export-card h4{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0}.export-card p{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0 0 var(--space-4) 0}.backup-status{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);margin:var(--space-5) 0;padding:var(--space-4)}.backup-info{align-items:center;display:flex;justify-content:space-between;padding:var(--space-2) 0}.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{border-top:var(--border-width-thin) solid var(--color-border-light);margin-top:var(--space-8);padding-top:var(--space-8)}.dietary-management-section .section-header h3{font-size:var(--text-xl);margin-bottom:var(--space-2)}.dietary-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}@media (max-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{flex-direction:column;gap:var(--space-1);min-width:80px;text-align:center}.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%}}.menu-cycles-container{margin:0 auto;max-width:var(--max-width-wide);padding:var(--space-6)}.header-section{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-6)}.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;background-color:var(--color-primary-100);border:var(--border-width-thin) solid var(--color-primary-300);border-radius:var(--radius-md);display:flex;gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4)}.info-icon{flex-shrink:0;font-size:var(--text-2xl);line-height:1}.info-text{color:var(--color-primary-700);line-height:var(--leading-relaxed)}.info-text strong{display:block;font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.field-help{color:var(--color-text-secondary);display:block;font-size:var(--text-xs);font-style:italic;line-height:var(--leading-relaxed);margin-top:var(--space-1)}.field-help.suggested{background-color:var(--color-success-100);border-radius:var(--radius-sm);color:var(--color-success-700);font-style:normal;font-weight:var(--font-medium);margin-top:var(--space-2);padding:var(--space-2) var(--space-3)}.cycles-list{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.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{background-color:var(--color-success-50);border-color:var(--color-success-500)}.cycle-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.cycle-header h3{color:var(--color-text-primary);font-size:var(--text-lg);margin:0}.active-badge,.cycle-header h3{font-weight:var(--font-semibold)}.active-badge{background-color:var(--color-success-500);border-radius:var(--radius-full);color:var(--color-text-inverse);font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.cycle-details{margin-bottom:var(--space-4)}.cycle-details p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--space-2) 0}.cycle-details strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.cycle-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.modal-overlay{background-color:var(--overlay-bg)}.modal-content{max-width:500px;padding:var(--space-6)}.modal-content h2{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-5);margin-top:0}.delete-modal{max-width:450px;text-align:center}.delete-icon{font-size:var(--text-4xl);margin-bottom:var(--space-4)}.delete-modal h2{color:var(--color-danger);margin-bottom:var(--space-4)}.delete-warning{color:var(--color-text-primary);font-size:var(--text-base);margin-bottom:var(--space-3)}.delete-warning strong{color:var(--color-text-primary);font-weight:var(--font-bold)}.delete-info{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.form-group input,.form-group label{color:var(--color-text-primary);font-size:var(--text-base)}.form-group input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);box-sizing:border-box;padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.form-group input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.input-error,.input-error:focus{border-color:var(--color-danger)!important}.input-error:focus{box-shadow:0 0 0 3px var(--color-danger-100)!important}.error-message{display:block;font-size:var(--text-sm);margin-top:var(--space-1)}@media (max-width:768px){.menu-cycles-container{padding:var(--space-4)}.header-section{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.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%}}.dietary-preferences-management{padding:var(--space-6)}.preferences-list{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.preference-item{align-items:center;background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.preference-name{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium)}.add-preference-form{align-items:center;background:var(--color-bg-tertiary);border:var(--border-width-medium) dashed var(--color-border-medium);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-4)}.add-preference-form input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--transition-fast)}.add-preference-form input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}@media (max-width:768px){.modal-content{max-height:90vh;width:95%}.dietary-preferences-management,.modal-header{padding:var(--space-4)}.add-preference-form{align-items:stretch;flex-direction:column}.add-preference-form input{width:100%}}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:80vh;max-width:600px;overflow-y:auto}.close-button{font-size:var(--text-3xl);font-weight:var(--font-bold);height:30px;line-height:1;transition:color var(--transition-fast);width:30px}.close-button:hover{background-color:var(--color-bg-tertiary)}.weaning-options-management{padding:var(--space-6)}.section-description{margin:0 0 var(--space-5) 0}.options-list{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.option-item{align-items:center;background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.option-name{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium)}.add-option-form{align-items:center;background:var(--color-bg-tertiary);border:var(--border-width-medium) dashed var(--color-border-medium);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-4)}.add-option-form input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--transition-fast)}.add-option-form input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.error,.loading{color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-5);text-align:center}.error{color:var(--color-danger)}.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 (max-width:768px){.modal-content{max-height:90vh;width:95%}.modal-header,.weaning-options-management{padding:var(--space-4)}.add-option-form{align-items:stretch;flex-direction:column}.add-option-form input{width:100%}}.session-management-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6)}.session-management-header h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);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{display:flex;flex-direction:column;gap:var(--space-4)}.session-card{background:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.session-card-header{align-items:center;border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-4)}.session-info{display:flex;flex-direction:column;gap:var(--space-1)}.session-name{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.session-times{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}.session-actions{display:flex;gap:var(--space-2)}.edit-session-container{align-items:flex-start;display:flex;flex:1 1;flex-wrap:wrap;gap:var(--space-3)}.edit-input{min-width:150px}.edit-input-time{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-primary-500);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);min-width:100px;padding:var(--space-2) var(--space-3)}.edit-input-time:focus,.edit-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.edit-actions{align-items:center;margin-top:var(--space-5)}.meals-assignment h5{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-3) 0}.meals-checkboxes{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.meal-checkbox-label{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:var(--space-2);padding:var(--space-2);transition:background-color var(--transition-fast)}.meal-checkbox-label:hover{background-color:var(--color-bg-tertiary)}.meal-checkbox-label input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;height:var(--space-5);width:var(--space-5)}.meal-name{color:var(--color-text-primary);font-size:var(--text-sm);text-transform:capitalize}@media (max-width:768px){.session-card-header,.session-management-header{align-items:stretch;flex-direction:column}.session-actions{width:100%}.edit-session-container,.session-actions{flex-direction:column}.edit-input,.edit-input-time{width:100%}.meals-checkboxes{grid-template-columns:1fr}.modal-content-small .modal-actions{flex-direction:column}}.menu-types-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6)}.menu-types-header h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);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{display:flex;flex-direction:column;gap:var(--space-3)}.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{box-shadow:var(--shadow-lg);opacity:.5}.menu-type-card-content,.menu-type-info{align-items:center;display:flex;gap:var(--space-3)}.menu-type-info{flex:1 1}.menu-type-color-indicator{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);flex-shrink:0;height:20px;width:20px}.menu-type-name{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.menu-type-usage{color:var(--color-text-secondary);font-size:var(--text-sm)}.menu-type-actions{display:flex;gap:var(--space-2)}.edit-menu-type-container{align-items:flex-end;display:flex;flex:1 1;flex-wrap:wrap;gap:var(--space-3)}.edit-field{min-width:150px}.color-picker-container{align-items:center;display:flex;gap:var(--space-3)}.color-picker{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);cursor:pointer;height:40px;padding:0;width:60px}.color-picker:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.color-preview{border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-sm);flex-shrink:0;height:30px;width:30px}.color-value{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm)}@media (max-width:768px){.menu-types-header{align-items:stretch;flex-direction:column}.menu-type-card-content{flex-wrap:wrap}.menu-type-actions{margin-top:var(--space-2);width:100%}.edit-menu-type-container{align-items:stretch;flex-direction:column}.edit-field{width:100%}.modal-content-small .modal-actions{flex-direction:column}}.meal-types-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6)}.meal-types-header h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);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{display:flex;flex-direction:column;gap:var(--space-3)}.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{box-shadow:var(--shadow-lg);opacity:.5}.meal-type-card-content{align-items:center;display:flex;gap:var(--space-3)}.drag-handle{align-items:center;color:var(--color-text-tertiary);cursor:grab;display:flex;font-size:var(--text-xl);padding:var(--space-2);transition:color var(--transition-fast);-webkit-user-select:none;user-select:none}.drag-handle:hover{color:var(--color-text-secondary)}.drag-handle:active{cursor:grabbing}.meal-type-info{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.meal-type-name{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.meal-type-usage{color:var(--color-text-secondary);font-size:var(--text-sm)}.meal-type-actions{display:flex;gap:var(--space-2)}.edit-meal-type-container{align-items:flex-end;display:flex;flex:1 1;gap:var(--space-3)}.edit-field{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.edit-field label{color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium)}.edit-input{border-radius:var(--radius-sm)}.edit-actions{gap:var(--space-1)}.modal-content-small{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:400px;padding:var(--space-6);width:90%}.modal-content-small h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-5) 0}.modal-content-small .form-group{margin-bottom:var(--space-5)}.modal-content-small .form-group label{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.modal-content-small .form-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--transition-fast);width:100%}.modal-content-small .form-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.modal-content-small .modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}.loading{color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-10);text-align:center}@media (max-width:768px){.meal-types-header{align-items:stretch;flex-direction:column}.meal-type-card-content{flex-wrap:wrap}.meal-type-actions{margin-top:var(--space-2);width:100%}.edit-meal-type-container{align-items:stretch;flex-direction:column}.edit-input{width:100%}.modal-content-small .modal-actions{flex-direction:column}}.modal-overlay{background:var(--overlay-bg);z-index:var(--z-modal)}.dietary-modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:85vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{background:var(--color-bg-primary);padding:var(--space-5) var(--space-6);position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-header h2{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-semibold);margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;display:flex;font-size:var(--text-3xl);font-weight:var(--font-bold);height:30px;justify-content:center;line-height:1;padding:0;transition:color var(--transition-fast);width:30px}.modal-close:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.section-description{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:var(--space-4) 0;padding:0 var(--space-6)}.add-item-form{background:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-6)}.item-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);padding:var(--space-3);transition:border-color var(--transition-fast)}.item-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.items-list{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6)}.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{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between}.item-name{color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);font-weight:var(--font-medium)}.item-actions{display:flex;gap:var(--space-2)}.edit-mode{align-items:center;display:flex;gap:var(--space-3)}.edit-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-primary-500);border-radius:var(--radius-md);color:var(--color-text-primary);flex:1 1;font-size:var(--text-base);padding:var(--space-2) var(--space-3)}.edit-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.edit-actions{display:flex;gap:var(--space-2)}.no-items{color:var(--color-text-tertiary);font-size:var(--text-base);font-style:italic;padding:var(--space-8);text-align:center}.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 (max-width:768px){.dietary-modal-content{max-height:90vh;width:95%}.modal-header{padding:var(--space-4)}.section-description{padding:0 var(--space-4)}.add-item-form{flex-direction:column}.add-item-form,.items-list{padding:var(--space-4)}.view-mode{align-items:stretch;flex-direction:column}.item-actions{width:100%}.edit-mode{align-items:stretch;flex-direction:column}.edit-actions{width:100%}}.reports-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-wide);min-height:100vh;padding:var(--space-8) var(--space-4)}.reports-header{margin-bottom:var(--space-10)}.reports-header h1{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 0 var(--space-3) 0}.reports-subtitle{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:var(--leading-relaxed);margin:0}.reports-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.report-card{background:var(--color-bg-primary);border:var(--border-width-medium) solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);position:relative;transition:all var(--transition-normal)}.report-card:not(.disabled):hover{border-color:var(--card-color);box-shadow:var(--shadow-xl);transform:translateY(-4px)}.report-card.disabled{background-color:var(--color-bg-tertiary);cursor:not-allowed;opacity:.6}.report-card.disabled:hover{box-shadow:var(--shadow-md);transform:none}.report-icon{align-items:center;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text-inverse);display:flex;flex-shrink:0;font-size:var(--text-3xl);height:64px;justify-content:center;width:64px}.report-content{flex:1 1}.report-content h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0}.report-content p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.report-arrow{color:var(--color-border-medium);font-size:var(--text-2xl);font-weight:var(--font-bold);position:absolute;right:var(--space-6);top:var(--space-6);transition:all var(--transition-normal)}.report-card:not(.disabled):hover .report-arrow{color:var(--card-color);transform:translateX(4px)}.coming-soon-badge{background-color:var(--color-gray-200);border-radius:var(--radius-full);color:var(--color-text-secondary);display:inline-block;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.05em;margin-top:var(--space-3);padding:var(--space-1) var(--space-3);text-transform:uppercase}@media (max-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{font-size:var(--text-2xl);height:56px;width:56px}.report-content h3{font-size:var(--text-lg)}.report-content p{font-size:var(--text-sm)}}@media (max-width:480px){.reports-grid{grid-template-columns:1fr}.report-card{padding:var(--space-4)}}.prep-sheet-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-wide);min-height:100vh;padding:var(--space-8) var(--space-4)}.prep-sheet-controls{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6);padding:var(--space-6)}.prep-sheet-controls h1{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-4);margin-top:0}.date-inputs{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-5)}.input-group{display:flex;flex-direction:column;gap:var(--space-2)}.input-group label{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.input-group input{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);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast)}.input-group input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.error-message{background-color:var(--color-danger-50);border:var(--border-width-thin) solid var(--color-danger-200);color:var(--color-danger)}.print-controls{align-items:center;flex-wrap:wrap;gap:var(--space-5);justify-content:space-between}.sort-controls{align-items:center;display:flex;gap:var(--space-3)}.sort-controls label{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.sort-select{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-medium);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast)}.sort-select:focus,.sort-select:hover{border-color:var(--color-primary-500)}.sort-select:focus{box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.prep-sheet-report{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:block;padding:var(--space-10);visibility:visible}.date-range{font-size:var(--text-base);font-weight:var(--font-medium);margin:0}.date-range,.sort-info{color:var(--color-text-secondary)}.sort-info{font-size:var(--text-sm);font-style:italic;margin:var(--space-2) 0 0 0}.prep-table{border-collapse:collapse;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:table;margin-top:var(--space-5);overflow:hidden;visibility:visible;width:100%}.prep-table thead{display:table-header-group}.prep-table tbody{display:table-row-group}.prep-table tr{display:table-row}.prep-table td,.prep-table th{border-bottom:var(--border-width-thin) solid var(--color-border-light);display:table-cell;padding:var(--space-3);text-align:left}.prep-table th{background-color:var(--color-gray-100);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);position:-webkit-sticky;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 (max-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{align-items:stretch;flex-direction:column}.input-group{width:100%}.print-controls,.sort-controls{align-items:stretch;flex-direction:column}.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 td,.prep-table th{padding:var(--space-2)}}@media print{body *{visibility:hidden}.prep-sheet-report,.prep-sheet-report *{visibility:visible}.prep-sheet-report{box-shadow:none;left:0;margin:0;padding:15px;position:absolute;top:0;width:100%}.no-print,.prep-sheet-controls,.print-controls{display:none!important}.prep-table tr{page-break-after:auto;page-break-inside:avoid}.report-header{margin-bottom:15px;page-break-after:avoid}.prep-sheet-report{color:#000}.prep-table{font-size:11px;width:100%}.prep-table thead{display:table-header-group}.prep-table th{background-color:#edf2f7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.prep-table td,.prep-table th{border:1px solid #e2e8f0;padding:8px}}@page{size:A4;margin:10mm 15mm 15mm 15mm}.dietary-report-container{background-color:var(--color-bg-secondary);margin:0 auto;max-width:var(--max-width-wide);min-height:100vh;padding:var(--space-8) var(--space-4)}.dietary-report-controls{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--space-6);padding:var(--space-6)}.dietary-report-controls h1{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-5);margin-top:0}.filters-section{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:1fr 1fr;margin:var(--space-5) 0}.filter-group h3{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-4);margin-top:0}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.checkbox-column{display:flex;flex-direction:column;gap:var(--space-3)}.checkbox-label{align-items:center;border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-2);padding:var(--space-2);transition:background-color var(--transition-fast)}.checkbox-label:hover{background-color:var(--color-bg-tertiary)}.checkbox-label input[type=checkbox]{accent-color:var(--color-primary-500);cursor:pointer;height:var(--space-5);width:var(--space-5)}.info-text{background-color:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic;margin-top:var(--space-3);padding:var(--space-2)}.error-message{background-color:var(--color-error);border:var(--border-width-thin) solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error-dark);font-weight:var(--font-medium);margin-top:var(--space-4);padding:var(--space-3)}.print-controls{display:flex;justify-content:flex-end;margin-bottom:var(--space-6);text-align:right}.dietary-report-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:block;padding:var(--space-10);visibility:visible}.report-header{border-bottom:var(--border-width-medium) solid var(--color-border-dark);margin-bottom:var(--space-8);padding-bottom:var(--space-4);text-align:center}.report-header h2{color:var(--color-text-primary);display:block;font-size:var(--text-3xl);font-weight:var(--font-bold);margin:0 0 var(--space-3) 0}.filter-summary{color:var(--color-text-secondary);display:block;font-size:var(--text-base);margin:var(--space-2) 0}.child-count,.filter-summary strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.child-count{display:block;font-size:var(--text-base);margin:var(--space-3) 0 0 0}.children-list{display:flex;flex-direction:column;gap:var(--space-5)}.child-card{background-color:var(--color-bg-primary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);page-break-inside:avoid}.child-header{align-items:center;border-bottom:var(--border-width-thin) solid var(--color-border-light);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3)}.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-primary-100);border-radius:var(--radius-full);color:var(--color-primary-700);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3)}.requirements-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.requirement-section{background-color:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3)}.requirement-section strong{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.requirement-section ul{margin:0;padding-left:var(--space-5)}.requirement-section li{margin:var(--space-1) 0}.requirement-section li,.requirement-section.special p{color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.requirement-section.special p{margin:0}.no-data{color:var(--color-text-tertiary);font-size:var(--text-base);font-style:italic;padding:var(--space-10);text-align:center}@media (max-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)}.checkbox-grid,.filters-section,.requirements-grid{grid-template-columns:1fr}.dietary-report-content{padding:var(--space-5)}.report-header h2{font-size:var(--text-2xl)}.child-header{align-items:flex-start;flex-direction:column}}@media print{body *{visibility:hidden}.dietary-report-content,.dietary-report-content *{visibility:visible}.dietary-report-content{box-shadow:none;left:0;margin:0;padding:15px;position:absolute;top:0;width:100%}.dietary-report-controls,.no-print,.print-controls{display:none!important}.child-card{page-break-inside:avoid}.report-header{margin-bottom:15px;page-break-after:avoid}.dietary-report-content{color:#000}.requirement-section{background-color:#f7fafc!important}.requirement-section,.room-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}.room-badge{background-color:#dbeafe!important}}.landing-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:var(--space-4)}.landing-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:500px;padding:var(--space-8);text-align:center;width:100%}.landing-header{margin-bottom:var(--space-6)}.landing-title{color:var(--color-primary);font-size:3rem;font-weight:var(--font-bold);margin-bottom:var(--space-2)}.landing-subtitle{color:var(--color-text-secondary);font-size:var(--text-xl);font-weight:var(--font-medium)}.landing-description{margin-bottom:var(--space-6)}.landing-description p{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:1.6}.landing-actions{margin-bottom:var(--space-6)}.btn-lg{max-width:300px;width:100%}.landing-footer{border-top:var(--border-width-thin) solid var(--color-border);padding-top:var(--space-4)}.landing-footer p{color:var(--color-text-tertiary);font-size:var(--text-sm);margin:0}@media (max-width:768px){.landing-title{font-size:2rem}.landing-content{padding:var(--space-6)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background-color:var(--color-bg-secondary);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);min-height:100vh}body,h1,h2,h3,h4,h5,h6{color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);margin:0}h1{font-size:var(--text-3xl);margin-bottom:var(--space-4)}h2{font-size:var(--text-2xl)}h2,h3{margin-bottom:var(--space-3)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg);margin-bottom:var(--space-1)}p{margin:0 0 var(--space-4) 0}a{color:var(--color-blue-600);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-blue-700);text-decoration:underline}ol,ul{margin:0;padding:0}li{list-style:none}:focus-visible{outline:2px solid var(--color-blue-500);outline-offset:2px}::-webkit-scrollbar{height:8px;width: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-primary-100);color:var(--color-text-primary)}.btn{-webkit-tap-highlight-color:transparent;align-items:center;border:var(--border-width-medium) solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);gap:var(--space-2);justify-content:center;min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-6);text-decoration:none;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn-primary{background-color:var(--color-blue-500);border-color:var(--color-blue-500);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-blue-600);border-color:var(--color-blue-600);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);border-color:var(--color-blue-500);color:var(--color-blue-600)}.btn-secondary:hover:not(:disabled){background-color:var(--color-blue-50);border-color:var(--color-blue-600)}.btn-secondary:active{background-color:var(--color-blue-100)}.btn-success{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-text-inverse)}.btn-success:hover:not(:disabled){background-color:var(--color-primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger{background-color:var(--color-error);border-color:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:#e53935;border-color:#e53935;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger-outline{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-danger);color:var(--color-danger)}.btn-danger-outline:hover{background-color:var(--color-danger);border-color:var(--color-danger);color:var(--color-text-inverse)}.btn-warning{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--color-text-inverse)}.btn-warning:hover:not(:disabled){background-color:#fb8c00;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-ghost{background-color:initial;border-color:#0000;color:var(--color-text-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100)}.btn-ghost:active{background-color:var(--color-gray-200)}.btn-icon{background-color:initial;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;min-height:var(--touch-target-comfortable);min-width:var(--touch-target-comfortable);padding:var(--space-3);transition:all var(--transition-fast)}.btn-icon:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--color-text-primary)}.btn-icon:active{transform:scale(.95)}.btn-sm{font-size:calc(var(--text-base)*.875);gap:calc(var(--space-2)*.75);min-height:calc(var(--touch-target-comfortable)*.75);padding:calc(var(--space-3)*.75) calc(var(--space-6)*.75)}.btn-lg{font-size:var(--text-lg);min-height:56px;padding:var(--space-4) var(--space-8)}.btn-block{width:100%}.btn-cancel{background-color:var(--color-gray-200);border-color:var(--color-gray-300);color:var(--color-text-primary)}.btn-cancel:hover:not(:disabled){background-color:var(--color-gray-300)}.btn-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.btn-group .btn{flex:1 1;min-width:120px}@media (max-width:640px){.btn-group{flex-direction:column}.btn-group .btn{width:100%}}.form-group{margin-bottom:var(--space-6)}.form-label{color:var(--color-text-primary);display:block;font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-2)}.form-label .required{color:var(--color-error);margin-left:var(--space-1)}.form-hint{color:var(--color-text-tertiary);display:block;font-size:var(--text-xs);margin-top:var(--space-1)}.form-input{background-color:var(--color-bg-primary);border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.form-input:focus{border-color:var(--color-blue-500);box-shadow:0 0 0 3px #2196f31a;outline:none}.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{min-height:120px;resize:vertical}.form-select{-webkit-appearance:none;appearance:none;background-color:var(--color-bg-primary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23616161' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;border:var(--border-width-medium) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-primary);font-size:var(--text-base);min-height:var(--touch-target-comfortable);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.form-select:focus{border-color:var(--color-blue-500);box-shadow:0 0 0 3px #2196f31a;outline:none}.checkbox-label,.radio-label{align-items:center;cursor:pointer;display:flex;gap:var(--space-2);min-height:var(--touch-target-min);-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{accent-color:var(--color-blue-500);cursor:pointer;height:20px;margin:0;width:20px}.checkbox-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.form-error{align-items:center;background-color:var(--color-error-light);border-left:3px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);display:flex;font-size:var(--text-sm);gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-3)}.form-error:before{content:"⚠";font-size:var(--text-base)}.form-search{position:relative}.form-search input{padding-left:var(--space-10)}.form-search:before{font-size:var(--text-lg);left:var(--space-4);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.form-section{border-bottom:1px solid var(--color-border-light);margin-bottom:var(--space-6);padding-bottom:var(--space-6)}.form-section:last-child{border-bottom:none}.section-title{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-4)}.subsection-title{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-3)}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:var(--space-4);position:fixed;right:0;top:0;z-index:var(--z-modal-backdrop)}.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;max-height:90vh;max-width:800px;width:90%;z-index:var(--z-modal)}.modal-content.small{max-width:500px}.modal-content.medium{max-width:800px}.modal-content.large{max-width:1100px}.modal-header{align-items:center;background-color:var(--color-bg-tertiary);border-bottom:var(--border-width-thin) solid var(--color-border-light);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;justify-content:space-between;padding:var(--space-6)}.modal-header h2,.modal-title{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold);margin:0}.modal-subtitle{font-size:var(--text-base);margin-bottom:var(--space-5)}.close-button,.modal-subtitle{color:var(--color-text-tertiary)}.close-button{align-items:center;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:32px;height:36px;justify-content:center;padding:0;transition:all var(--transition-base);width:36px}.close-button:hover{background-color:var(--color-gray-200);color:var(--color-text-primary)}.modal-body{flex:1 1;overflow-y:auto;padding:var(--space-6)}.modal-footer{align-items:center;background-color:var(--color-bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl);border-top:var(--border-width-thin) solid var(--color-border-light);display:flex;justify-content:space-between;padding:var(--space-5) var(--space-6)}.footer-left,.footer-right,.modal-actions{display:flex;gap:var(--space-3)}.modal-actions{justify-content:flex-end;margin-top:var(--space-6)}.modal-warning{background-color:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:#92400e;font-weight:var(--font-medium);margin-bottom:var(--space-4);padding:var(--space-3)}@media (max-width:640px){.modal-overlay{padding:var(--space-2)}.modal-content{max-height:95vh;max-width:100%}.modal-body,.modal-header{padding:var(--space-4)}.modal-footer{flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.footer-left,.footer-right{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.card{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{align-items:center;border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between}.card-body,.card-footer,.card-header{padding:var(--space-4)}.card-footer{background-color:var(--color-gray-50);border-top:1px solid var(--color-border-light)}.card-elevated{box-shadow:var(--shadow-lg)}.card-flat{border:1px solid var(--color-border-light);box-shadow:none}.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;display:flex;gap:var(--space-4)}.card-allergen-warning .warning-icon{flex-shrink:0;font-size:32px}.card-conflict{border:4px solid #f87171}