:root{--primary-color: #0078d4;--primary-hover: #106ebe;--secondary-color: #6c757d;--success-color: #10b981;--warning-color: #f59e0b;--danger-color: #ef4444;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 1000;--z-modal: 1010;--z-popover: 1020;--z-tooltip: 1030}.loading-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top:3px solid var(--primary-color);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-spinner.small{width:16px;height:16px;border-width:2px}.loading-spinner.large{width:48px;height:48px;border-width:4px}.status-indicator{padding:4px 8px;border-radius:var(--radius-lg);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.status-indicator.success{background:#dcfce7;color:#166534}.status-indicator.warning{background:#fef3c7;color:#92400e}.status-indicator.danger{background:#fee2e2;color:#991b1b}.status-indicator.info{background:#dbeafe;color:#1e40af}.status-indicator.neutral{background:var(--gray-100);color:var(--gray-700)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-lg);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.badge.primary{background:#dbeafe;color:#1e40af}.badge.success{background:#dcfce7;color:#166534}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--gray-200);background:var(--gray-50)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl) var(--spacing-lg);text-align:center;min-height:200px}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-lg);opacity:.6}.empty-state-title{font-size:1.25rem;font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-sm)}.empty-state-text{color:var(--gray-600);max-width:400px;line-height:1.5}.divider{height:1px;background:var(--gray-200);margin:var(--spacing-lg) 0}.divider.thick{height:2px}.divider.vertical{width:1px;height:auto;margin:0 var(--spacing-lg)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--primary-color);color:#fff;font-weight:600;overflow:hidden}.avatar.small{width:24px;height:24px;font-size:.75rem}.avatar.medium{width:32px;height:32px;font-size:.875rem}.avatar.large{width:48px;height:48px;font-size:1.125rem}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon.small{width:16px;height:16px;font-size:.875rem}.icon.medium{width:20px;height:20px;font-size:1rem}.icon.large{width:24px;height:24px;font-size:1.25rem}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-xs)}.ml-2{margin-left:var(--spacing-sm)}.ml-3{margin-left:var(--spacing-md)}.ml-4{margin-left:var(--spacing-lg)}.ml-5{margin-left:var(--spacing-xl)}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-xs)}.mr-2{margin-right:var(--spacing-sm)}.mr-3{margin-right:var(--spacing-md)}.mr-4{margin-right:var(--spacing-lg)}.mr-5{margin-right:var(--spacing-xl)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing-xs)}.pt-2{padding-top:var(--spacing-sm)}.pt-3{padding-top:var(--spacing-md)}.pt-4{padding-top:var(--spacing-lg)}.pt-5{padding-top:var(--spacing-xl)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing-xs)}.pb-2{padding-bottom:var(--spacing-sm)}.pb-3{padding-bottom:var(--spacing-md)}.pb-4{padding-bottom:var(--spacing-lg)}.pb-5{padding-bottom:var(--spacing-xl)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.gap-1{gap:var(--spacing-xs)}.gap-2{gap:var(--spacing-sm)}.gap-3{gap:var(--spacing-md)}.gap-4{gap:var(--spacing-lg)}.gap-5{gap:var(--spacing-xl)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-gray-400{color:var(--gray-400)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-900{color:var(--gray-900)}.text-primary{color:var(--primary-color)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-danger{color:var(--danger-color)}.bg-white{background-color:#fff}.bg-gray-50{background-color:var(--gray-50)}.bg-gray-100{background-color:var(--gray-100)}.bg-gray-200{background-color:var(--gray-200)}.bg-primary{background-color:var(--primary-color)}.bg-success{background-color:var(--success-color)}.bg-warning{background-color:var(--warning-color)}.bg-danger{background-color:var(--danger-color)}.border{border:1px solid var(--gray-200)}.border-t{border-top:1px solid var(--gray-200)}.border-b{border-bottom:1px solid var(--gray-200)}.border-l{border-left:1px solid var(--gray-200)}.border-r{border-right:1px solid var(--gray-200)}.rounded{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.transition{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover-lift:hover{transform:translateY(-2px)}.hover-scale:hover{transform:scale(1.05)}.focus-ring:focus{outline:2px solid var(--primary-color);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 480px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:flex-col{flex-direction:column}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:text-center{text-align:center}.sm\:text-sm{font-size:.875rem}.sm\:mt-2{margin-top:var(--spacing-sm)}.sm\:mb-2{margin-bottom:var(--spacing-sm)}.sm\:gap-2{gap:var(--spacing-sm)}}@media (max-width: 768px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-center{justify-content:center}.md\:text-center{text-align:center}.md\:text-base{font-size:1rem}}@media (min-width: 769px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:justify-start{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.transition,.transition-colors,.transition-opacity,.transition-transform{transition:none}.hover-lift:hover,.hover-scale:hover{transform:none}}@media (prefers-color-scheme: dark){:root{--gray-50: #1f2937;--gray-100: #374151;--gray-200: #4b5563;--gray-300: #6b7280;--gray-400: #9ca3af;--gray-500: #d1d5db;--gray-600: #e5e7eb;--gray-700: #f3f4f6;--gray-800: #f9fafb;--gray-900: #ffffff}.card{background:#1f2937;color:#f9fafb}.card-header,.card-footer{background:#374151;border-color:#4b5563}}.modal-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}.modal-container.large{max-width:800px}.modal-container.extra-large{max-width:1200px}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.modal-header.simple{background:#fff;color:#333;border-bottom:2px solid #f0f0f0}.modal-title{flex:1;margin-right:20px}.modal-title h2{margin:0 0 8px;font-size:1.3rem;font-weight:600}.modal-title h3{margin:0 0 8px;font-size:1.2rem;font-weight:600}.modal-subtitle{opacity:.9;font-size:.9rem;margin:0}.modal-header.simple .modal-close{background:#f8f9fa;color:#6c757d}.modal-header.simple .modal-close:hover{background:#e9ecef;color:#495057}.modal-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.modal-body{padding:24px;flex:1}.modal-body.no-padding{padding:0}.modal-footer{padding:20px 24px;border-top:1px solid #e2e8f0;background:#f8f9fa;flex-shrink:0}.modal-footer.transparent{background:transparent;border-top:none}.modal-actions{display:flex;justify-content:flex-end;gap:12px}.modal-actions.space-between{justify-content:space-between}.modal-actions.center{justify-content:center}.modal-error{background:#fee;color:#c53030;padding:12px 24px;border-bottom:1px solid #feb2b2;font-size:.9rem;display:flex;align-items:center;gap:8px}.modal-error-icon{font-size:1.1rem}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.modal-loading .loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.modal-loading-text{color:#666;font-size:1rem}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal-container{max-width:none;width:100%;max-height:95vh;border-radius:16px 16px 0 0;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding:20px}.modal-title h2{font-size:1.3rem}.modal-body{padding:20px}.modal-footer{padding:16px 20px}.modal-actions{flex-direction:column-reverse}.modal-actions>*{width:100%}}@media (max-width: 480px){.modal-header,.modal-body,.modal-footer{padding:16px}.modal-title h2{font-size:1.2rem}}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal-container,.modal-close{animation:none;transition:none}}@media (prefers-color-scheme: dark){.modal-container{background:#1a202c;color:#e2e8f0}.modal-header.simple{background:#2d3748;color:#e2e8f0;border-color:#4a5568}.modal-footer{background:#2d3748;border-color:#4a5568}.modal-error{background:#742a2a;color:#feb2b2;border-color:#f56565}.modal-header.simple .modal-close{background:#4a5568;color:#e2e8f0}.modal-header.simple .modal-close:hover{background:#718096}}.form-container{display:flex;flex-direction:column;gap:24px}.form-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #f0f0f0}.form-section:last-of-type{border-bottom:none;margin-bottom:24px}.form-section h3{margin:0 0 20px;color:#333;font-size:1.3rem;font-weight:600;display:flex;align-items:center;gap:8px}.form-section h4{margin:0 0 16px;color:#333;font-size:1.1rem;font-weight:600}.form-group{display:flex;flex-direction:column;gap:8px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.form-label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:8px}.form-input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:all .2s ease;background:#fff}.form-input:focus{outline:none;border-color:#0078d4;box-shadow:0 0 0 1px #0078d4}.form-input:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.form-input.error{border-color:#ef4444}.form-select{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .2s ease}.form-select:focus{outline:none;border-color:#0078d4}.form-select:disabled{background:#f8f9fa;cursor:not-allowed}.form-textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;resize:vertical;font-family:inherit;min-height:80px;transition:border-color .2s ease}.form-textarea:focus{outline:none;border-color:#0078d4}.checkbox-label,.radio-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:1rem;color:#333;padding:12px;border:2px solid transparent;border-radius:8px;transition:all .2s ease}.checkbox-label:hover,.radio-label:hover{background:#f8f9fa}.checkbox-label.bordered,.radio-label.bordered{border:2px solid #e0e0e0;background:#fff}.checkbox-label.bordered:hover,.radio-label.bordered:hover{border-color:#0078d4;background:#f0f8ff}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{margin:0;cursor:pointer;transform:scale(1.2)}.checkbox-label input[type=checkbox]:checked+span,.radio-label input[type=radio]:checked+span{color:#0078d4;font-weight:500}.radio-group{display:flex;flex-direction:column;gap:12px}.radio-group.horizontal{flex-direction:row;flex-wrap:wrap}.btn{padding:12px 24px;border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:44px}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.btn-primary{background:#0078d4;color:#fff}.btn-primary:hover:not(:disabled){background:#106ebe;transform:translateY(-1px);box-shadow:0 4px 12px #0078d44d}.btn-secondary{background:#fff;color:#374151;border:2px solid #e0e0e0}.btn-secondary:hover:not(:disabled){border-color:#0078d4;color:#0078d4;transform:translateY(-1px)}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.btn-sm{padding:8px 16px;font-size:.875rem;min-height:36px}.btn-lg{padding:16px 32px;font-size:1.1rem;min-height:52px}.btn-icon{font-size:1rem}.btn-icon-only{padding:12px;min-width:44px;border-radius:50%}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:2px solid #f0f0f0;margin-top:32px}.form-actions.space-between{justify-content:space-between}.form-actions.center{justify-content:center}.form-error{color:#ef4444;font-size:.875rem;margin-top:4px;display:flex;align-items:center;gap:4px}.form-error-icon{font-size:1rem}.error-banner{background:#fee;color:#c53030;padding:12px 16px;border-radius:8px;border:1px solid #feb2b2;margin-bottom:20px;display:flex;align-items:center;gap:8px}.success-banner{background:#f0fdf4;color:#166534;padding:12px 16px;border-radius:8px;border:1px solid #bbf7d0;margin-bottom:20px;display:flex;align-items:center;gap:8px}.form-loading{display:flex;align-items:center;gap:8px;color:#666}.loading-spinner{width:16px;height:16px;border:2px solid #f3f3f3;border-top:2px solid #0078d4;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.large{width:32px;height:32px;border-width:3px}.form-help{font-size:.875rem;color:#6b7280;margin-top:4px}.form-required{font-size:.875rem;color:#6b7280;margin-bottom:16px}.form-required:before{content:"* ";color:#ef4444}@media (max-width: 768px){.form-row,.form-grid{grid-template-columns:1fr}.radio-group.horizontal{flex-direction:column}.form-actions{flex-direction:column-reverse}.form-actions>*{width:100%}.btn{justify-content:center}}@media (max-width: 480px){.form-section{margin-bottom:24px;padding-bottom:16px}.form-section h3{font-size:1.2rem}.form-section h4{font-size:1rem}.checkbox-label,.radio-label{padding:8px}}@media (prefers-color-scheme: dark){.form-section h3,.form-section h4,.form-label{color:#e2e8f0}.form-input,.form-select,.form-textarea{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#667eea}.checkbox-label,.radio-label{color:#e2e8f0}.checkbox-label.bordered,.radio-label.bordered{background:#2d3748;border-color:#4a5568}.form-help{color:#a0aec0}.form-actions{border-color:#4a5568}}// src/styles/SaladBuilder.css - Styles for the salad builder .salad-builder{background:#f8fdf8;border:2px solid #10b981;border-radius:12px;padding:24px;margin-top:16px}.salad-builder-header{text-align:center;margin-bottom:24px}.salad-builder-header h3{margin:0 0 8px;color:#047857;font-size:1.3rem;font-weight:600}.builder-description{color:#065f46;font-size:.95rem;margin:0}.requirements-summary{background:#fff;border-radius:8px;padding:16px;margin-bottom:24px;border:2px solid #d1fae5}.requirements-summary.unmet{border-color:#fbbf24;background:#fffbeb}.requirements-title{display:flex;align-items:center;gap:8px;font-weight:600;color:#047857;margin-bottom:12px}.requirements-summary.unmet .requirements-title{color:#92400e}.requirements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;font-size:.875rem;color:#065f46}.requirements-summary.unmet .requirements-grid{color:#78350f}.categories-container{display:flex;flex-direction:column;gap:24px;margin-bottom:24px}.ingredient-category{background:#fff;border-radius:8px;padding:20px;border:1px solid #d1fae5}.category-header{margin-bottom:16px}.category-title{display:flex;justify-content:space-between;align-items:center;margin:0;color:#047857;font-size:1.1rem;font-weight:600}.requirement-badge{font-size:.75rem;padding:4px 8px;border-radius:12px;font-weight:500}.requirement-badge.met{background:#d1fae5;color:#047857}.requirement-badge.unmet{background:#fef3c7;color:#92400e}.ingredients-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.ingredient-item{display:flex;flex-direction:column;gap:6px;padding:12px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.ingredient-item:hover{border-color:#10b981;background:#f0fdf4}.ingredient-item.selected{border-color:#10b981;background:#d1fae5}.ingredient-item input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.ingredient-name{font-weight:500;color:#047857;font-size:.95rem}.ingredient-allergens{display:flex;flex-wrap:wrap;gap:4px}.allergen-tag.mini{background:#fee2e2;color:#991b1b;padding:2px 6px;border-radius:8px;font-size:.7rem;font-weight:500}.allergen-warning{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:16px;margin-bottom:24px}.allergen-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#dc2626}.allergen-list{display:flex;flex-wrap:wrap;gap:6px}.allergen-tag{background:#fee2e2;color:#991b1b;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.pricing-summary{background:#fff;border:2px solid #10b981;border-radius:8px;padding:20px;margin-bottom:16px}.pricing-header h4{margin:0 0 16px;color:#047857;font-size:1.1rem}.pricing-breakdown{display:flex;flex-direction:column;gap:8px}.pricing-line{display:flex;justify-content:space-between;align-items:center;font-size:.95rem;color:#065f46}.pricing-line.extra{color:#059669;font-style:italic}.pricing-line.total{border-top:2px solid #d1fae5;padding-top:8px;font-weight:700;font-size:1.1rem;color:#047857}.validation-message{display:flex;align-items:center;gap:8px;background:#fef3c7;color:#92400e;padding:12px 16px;border-radius:8px;font-weight:500;font-size:.9rem}@media (max-width: 768px){.salad-builder{padding:16px}.ingredients-grid{grid-template-columns:1fr}.category-title{flex-direction:column;align-items:flex-start;gap:8px}.requirements-grid{grid-template-columns:1fr}.pricing-line{font-size:.875rem}}.salad-summary{display:flex;flex-direction:column;gap:4px}.salad-ingredients{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:#666;margin-top:4px}.salad-ingredients span{background:#f0f8ff;padding:2px 6px;border-radius:4px;border-left:3px solid #10b981}@media (max-width: 480px){.salad-ingredients{font-size:.75rem}.salad-ingredients span{padding:1px 4px}}.day-detail-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.day-detail-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}.booking-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.booking-form{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}.booking-form-content{flex:1;overflow-y:auto;padding:24px;min-height:0}.form-header{flex-shrink:0;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;align-items:flex-start}.header-content{flex:1;margin-right:20px}.close-button{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-button:hover{background:#ffffff4d;transform:scale(1.1)}.selected-date-display{background:#ffffff26;border-radius:12px;padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);margin-top:12px}.date-label{font-size:.875rem;font-weight:500;opacity:.9;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px;color:#fff}.selected-date{font-size:1.25rem;font-weight:600;margin-bottom:8px;color:#fff;word-break:break-word}.date-note{font-size:.875rem;opacity:.8;font-style:italic;color:#fff}.form-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:2px solid #f0f0f0;background:#fff}@media (max-width: 768px){.booking-form-overlay{padding:0;align-items:flex-end}.booking-form{max-width:none;width:100%;max-height:95vh;border-radius:16px 16px 0 0;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.form-header,.booking-form-content{padding:20px}.form-actions{padding:16px 20px;flex-direction:column-reverse}.form-actions>*{width:100%}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;padding:40px;width:100%;max-width:400px;text-align:center}.login-header h1{color:#333;margin-bottom:8px;font-size:2rem;font-weight:600}.login-header p{color:#666;margin-bottom:40px;font-size:1rem}.login-content{display:flex;flex-direction:column;align-items:center;gap:20px}.microsoft-logo{margin-bottom:10px}.login-button,.login-button-redirect{width:100%;padding:12px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.login-button{background:#0078d4;color:#fff}.login-button:hover{background:#106ebe;transform:translateY(-1px);box-shadow:0 4px 12px #0078d44d}.login-button-redirect{background:#f3f2f1;color:#323130;border:1px solid #d2d0ce}.login-button-redirect:hover{background:#edebe9;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.login-help{color:#666;font-size:.875rem;margin-top:20px;line-height:1.4}@media (max-width: 480px){.login-card{padding:30px 20px}.login-header h1{font-size:1.5rem}}.user-menu-container{position:fixed;top:20px;right:20px;z-index:1000}.user-menu-trigger{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .2s ease;min-width:200px}.user-menu-trigger:hover{box-shadow:0 4px 12px #00000026;border-color:#0078d4}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0078d4,#106ebe);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.user-avatar.large{width:40px;height:40px;font-size:14px}.user-info{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0}.user-name{font-size:14px;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.user-email{font-size:12px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.menu-arrow{font-size:10px;color:#666;transition:transform .2s ease;flex-shrink:0}.menu-arrow.open{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 32px #0000001f;overflow:hidden;animation:menuSlideIn .2s ease-out}@keyframes menuSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.menu-header{padding:20px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;align-items:center;gap:12px}.menu-header .user-details{flex:1;min-width:0}.menu-header .user-name{font-size:16px;font-weight:600;color:#333;margin-bottom:4px;max-width:180px}.menu-header .user-email{font-size:13px;color:#666;max-width:180px}.menu-divider{height:1px;background:#e0e0e0;margin:0}.menu-section{padding:8px 0}.menu-section-title{padding:8px 20px 4px;font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 20px;background:none;border:none;cursor:pointer;font-size:14px;color:#333;transition:all .2s ease;text-align:left}.menu-item:hover{background:#f8f9fa;color:#0078d4}.menu-item.active{background:#e3f2fd;color:#0078d4;font-weight:500}.menu-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}.admin-badge{background:#ff9800;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px;margin-left:auto}@media (max-width: 768px){.user-menu-container{top:16px;right:16px}.user-menu-trigger{min-width:160px;padding:6px 10px}.user-menu-dropdown{min-width:260px;right:-10px}.user-name,.user-email{max-width:100px}.menu-header .user-name,.menu-header .user-email{max-width:160px}}@media (max-width: 480px){.user-menu-container{top:12px;right:12px}.user-menu-trigger{min-width:140px;padding:6px 8px;gap:8px}.user-menu-dropdown{min-width:240px;right:-20px}.user-avatar{width:28px;height:28px;font-size:11px}.user-avatar.large{width:36px;height:36px;font-size:13px}.user-name{font-size:13px;max-width:80px}.user-email{font-size:11px;max-width:80px}.menu-header{padding:16px}.menu-header .user-name{font-size:15px;max-width:140px}.menu-header .user-email{font-size:12px;max-width:140px}.menu-item{padding:10px 16px;font-size:13px}}.office-calendar{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;padding:24px;max-width:1200px;margin:0 auto}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0;flex-wrap:wrap;gap:16px}.calendar-nav{display:flex;align-items:center;gap:16px}.calendar-title{font-size:1.75rem;font-weight:700;color:#333;margin:0;min-width:280px;text-align:center}.nav-button{background:#f8f9fa;border:2px solid #dee2e6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;color:#495057;transition:all .2s ease;font-weight:600}.nav-button:hover{background:#e9ecef;border-color:#adb5bd;transform:scale(1.05)}.calendar-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.today-button{background:#667eea;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.today-button:hover{background:#5a67d8;transform:translateY(-1px)}.view-toggle{display:flex;background:#f8f9fa;border-radius:8px;overflow:hidden;border:2px solid #e9ecef}.view-btn{background:transparent;border:none;padding:10px 16px;cursor:pointer;font-weight:500;color:#6c757d;transition:all .2s ease;font-size:.875rem}.view-btn.active{background:#667eea;color:#fff}.view-btn:hover:not(.active){background:#e9ecef}.planner-status{display:flex;align-items:center;gap:8px}.planner-indicator{background:#10b981;color:#fff;padding:6px 12px;border-radius:16px;font-size:.875rem;font-weight:500}.holiday-indicator{background:#ef4444;color:#fff;padding:6px 12px;border-radius:16px;font-size:.875rem;font-weight:500}.calendar-grid{display:grid;gap:2px;background:#e9ecef;border-radius:12px;overflow:hidden}.calendar-grid.monthly-view,.calendar-grid.weekly-view{grid-template-columns:repeat(7,1fr)}.calendar-grid.agenda-view{background:transparent;border-radius:0;display:block;gap:0}.agenda-view{display:flex;flex-direction:column;gap:0;background:#f8f9fa;margin:-24px;padding:0}.agenda-day{background:#fff;margin-bottom:1px;border-radius:0;overflow:hidden}.agenda-day.today{border-left:4px solid #3b82f6}.agenda-day.holiday{border-left:4px solid #ef4444}.agenda-day-header{padding:16px 20px 12px;background:#f9fafb;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:flex-start}.day-info{flex:1}.day-name{font-size:1.1rem;font-weight:600;color:#1f2937;margin-bottom:2px}.day-date{font-size:.875rem;color:#6b7280}.weekend-indicator{color:#f59e0b;font-weight:500}.day-indicators{display:flex;gap:6px;flex-wrap:wrap}.weekend-badge,.office-badge,.holiday-badge{padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.weekend-badge{background:#fef3c7;color:#92400e}.office-badge{background:#dbeafe;color:#1e40af}.holiday-badge{background:#fecaca;color:#dc2626}.office-attendance-card{padding:16px 20px;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;gap:12px;background:#eff6ff;cursor:pointer;transition:all .2s ease}.office-attendance-card:hover{background:#dbeafe}.attendance-icon{font-size:1.5rem;flex-shrink:0}.attendance-details{flex:1;min-width:0}.attendance-title{font-weight:600;color:#1f2937;margin-bottom:4px;font-size:.95rem}.attendance-info{font-size:.875rem;color:#6b7280;margin-bottom:6px}.attendance-features{display:flex;gap:8px}.feature{font-size:.75rem;color:#4b5563}.edit-btn{background:#3b82f6;color:#fff;border:none;padding:8px;border-radius:6px;cursor:pointer;font-size:.875rem;flex-shrink:0}.event-card{margin:0;padding:16px 20px;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s ease}.event-card:hover{background:#f9fafb}.event-card.holiday{background:#fef2f2}.event-card.holiday:hover{background:#fecaca}.event-icon{font-size:1.5rem;flex-shrink:0}.event-details{flex:1;min-width:0}.event-title{font-weight:600;color:#1f2937;margin-bottom:4px;font-size:.95rem}.event-time{font-size:.875rem;color:#6b7280}.progress{color:#059669;font-weight:500}.event-status{display:flex;align-items:center;gap:4px;flex-shrink:0}.overdue-indicator,.complete-indicator{font-size:1.25rem}.no-events{padding:32px 20px;text-align:center;background:#f9fafb}.no-events-icon{font-size:2rem;margin-bottom:8px}.no-events-text{color:#6b7280;margin-bottom:16px}.book-office-btn{background:#10b981;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.book-office-btn:hover{background:#059669;transform:translateY(-1px)}.agenda-loading{padding:32px 20px;text-align:center;background:#fff;display:flex;flex-direction:column;align-items:center;gap:12px;color:#6b7280}.day-header{background:#495057;color:#fff;padding:16px 8px;text-align:center;font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.calendar-day{background:#fff;min-height:120px;padding:12px;position:relative;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;border:2px solid transparent}.calendar-day.weekly-view{min-height:160px}.calendar-day:hover:not(.past):not(.weekend):not(.other-month):not(.holiday){background:#f8f9ff;transform:translateY(-2px);box-shadow:0 8px 25px #667eea26;border-color:#667eea}.calendar-day.current-month{color:#333}.calendar-day.other-month{color:#adb5bd;background:#f8f9fa;opacity:.6}.calendar-day.today{background:#e3f2fd!important;font-weight:700;border-color:#2196f3}.calendar-day.weekend{background:#fafafa;color:#999}.calendar-day.past{background:#f5f5f5;color:#bbb;cursor:not-allowed}.calendar-day.selected{background:#fff3e0!important;border-color:#ff9800;font-weight:700;box-shadow:0 4px 15px #ff98004d}.calendar-day.has-booking{border-left:6px solid #4caf50}.calendar-day.has-events{border-right:4px solid #667eea}.calendar-day.holiday{background:#ffebee!important;border-color:#f44336;color:#d32f2f;cursor:not-allowed}.calendar-day.holiday:hover{background:#ffcdd2!important;transform:none;box-shadow:none}.calendar-day.holiday.today{background:#ffcdd2!important;border-color:#f44336}.day-header-section{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.day-number{font-size:1.25rem;font-weight:700;color:inherit}.calendar-day.today .day-number{background:#2196f3;color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1rem}.calendar-day.holiday .day-number{color:#d32f2f;font-weight:800}.day-indicators{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.booking-indicator,.holiday-indicator-icon{font-size:.875rem;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.booking-indicator{background:#4caf50;color:#fff}.holiday-indicator-icon{background:#f44336;color:#fff}.availability-indicator{position:relative}.availability-dot{width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 2px 4px #0000001a}.availability-dot.high{background:#4caf50}.availability-dot.medium{background:#ff9800}.availability-dot.low{background:#f44336}.availability-dot.unavailable{background:#bbb}.day-events{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-height:0}.event-item{background:#f8f9ff;border-left:3px solid #667eea;border-radius:3px;padding:4px 6px;font-size:.75rem;line-height:1.2;display:flex;justify-content:space-between;align-items:flex-start;transition:all .2s ease;cursor:pointer;word-break:break-word;min-height:18px;flex-shrink:0}.event-item:hover{background:#e3f2fd;transform:translate(2px)}.event-item.planner-task{background:#f0f8ff;border-left-color:#667eea}.event-item.holiday-event{background:#ffebee;border-left-color:#f44336;color:#d32f2f}.event-title{flex:1;font-weight:500;color:#333;min-width:0;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:normal;line-height:1.1;padding-right:4px}.event-status{font-size:.7rem;font-weight:700;margin-left:4px;flex-shrink:0;align-self:flex-start;margin-top:1px}.event-status.overdue,.event-status.holiday{color:#f44336}.more-events{font-size:.7rem;color:#667eea;font-weight:600;text-align:center;padding:2px;background:#e3f2fd;border-radius:3px;margin-top:2px;flex-shrink:0}.day-capacity{margin-top:auto;padding-top:8px;border-top:1px solid #f0f0f0;flex-shrink:0}.capacity-summary{font-size:.75rem;color:#666;text-align:center;font-weight:500}.calendar-day.availability-high:not(.other-month):not(.past):not(.weekend):not(.holiday){border-bottom:4px solid #4caf50}.calendar-day.availability-medium:not(.other-month):not(.past):not(.weekend):not(.holiday){border-bottom:4px solid #ff9800}.calendar-day.availability-low:not(.other-month):not(.past):not(.weekend):not(.holiday){border-bottom:4px solid #f44336}.calendar-legend{display:flex;justify-content:center;gap:48px;margin-top:24px;padding-top:24px;border-top:2px solid #e9ecef;flex-wrap:wrap}.legend-section{display:flex;flex-direction:column;align-items:center;gap:12px}.legend-section h4{margin:0;font-size:.875rem;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px}.legend-items{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#666;font-weight:500}.legend-dot{width:16px;height:16px;border-radius:50%;border:2px solid white;box-shadow:0 2px 4px #0000001a}.legend-dot.availability-high{background:#4caf50}.legend-dot.availability-medium{background:#ff9800}.legend-dot.availability-low{background:#f44336}.event-sample.planner-task{width:16px;height:8px;background:#f0f8ff;border-left:3px solid #667eea;border-radius:2px}.calendar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.events-loading{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:8px;background:#fff;padding:8px 16px;border-radius:20px;box-shadow:0 4px 12px #0000001a;font-size:.875rem;color:#666}.loading-spinner{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-spinner.small{width:16px;height:16px;border-width:2px;margin:0}@media (max-width: 768px){.office-calendar{padding:16px;margin:0;border-radius:0;box-shadow:none}.agenda-view{margin:-16px}.calendar-header{padding-bottom:12px;margin-bottom:16px;flex-direction:column;align-items:stretch;gap:12px}.calendar-nav,.calendar-controls{justify-content:center}.calendar-title{font-size:1.5rem;min-width:auto;text-align:center}.view-toggle{width:100%;justify-content:center}.view-btn{flex:1;text-align:center;padding:12px 8px}.calendar-grid.agenda-view+.calendar-header .nav-button{display:none}.agenda-day-header{padding:14px 16px 10px}.day-name{font-size:1rem}.day-date{font-size:.8rem}.office-attendance-card,.event-card{padding:14px 16px}.attendance-title,.event-title{font-size:.9rem}.attendance-info,.event-time{font-size:.8rem}.no-events{padding:24px 16px}.calendar-grid{gap:1px}.calendar-day{min-height:80px;padding:8px}.calendar-day.weekly-view{min-height:120px}.day-header{padding:12px 4px;font-size:.8rem}.day-number{font-size:1.1rem}.event-item{font-size:.65rem;padding:2px 4px;min-height:14px;line-height:1.1;align-items:flex-start}.event-title{font-size:.65rem;line-height:1;word-break:break-word;overflow-wrap:anywhere}.event-status{font-size:.6rem;margin-top:0}.more-events{font-size:.6rem;padding:1px 2px}.legend-section{gap:8px}.legend-items{gap:12px}.legend-item{font-size:.8rem}}@media (max-width: 480px){.office-calendar{padding:12px}.agenda-view{margin:-12px}.calendar-header{margin-bottom:12px}.calendar-title{font-size:1.25rem}.view-btn{padding:10px 6px;font-size:.8rem}.agenda-day-header{padding:12px 14px 8px}.day-name{font-size:.95rem}.office-attendance-card,.event-card{padding:12px 14px;gap:10px}.attendance-icon,.event-icon{font-size:1.25rem}.edit-btn{padding:6px;font-size:.8rem}.book-office-btn{padding:10px 20px;font-size:.9rem}.calendar-day{min-height:60px;padding:6px}.calendar-day.weekly-view{min-height:100px}.day-number{font-size:1rem}.calendar-day.today .day-number{width:28px;height:28px;font-size:.9rem}.event-item{font-size:.6rem;padding:1px 3px;min-height:12px;line-height:1}.event-title{font-size:.6rem;line-height:.9;word-break:break-all;overflow-wrap:anywhere}.event-status{font-size:.55rem;margin-left:2px;margin-top:0}.booking-indicator,.holiday-indicator-icon{width:20px;height:20px;font-size:.75rem}.availability-dot{width:10px;height:10px}.legend-section h4{font-size:.8rem}.calendar-legend{gap:24px;flex-direction:column}.day-events{gap:1px}.more-events{font-size:.55rem;padding:1px;margin-top:1px}}@media (prefers-reduced-motion: reduce){.calendar-day,.nav-button,.today-button,.view-btn,.event-item,.office-attendance-card,.event-card{transition:none}.loading-spinner{animation:none}}@media (prefers-contrast: high){.calendar-day{border:2px solid #000}.event-item{border:1px solid #000}.availability-dot{border-color:#000}.calendar-day.holiday{border:3px solid #000;background:#ffcccb!important}.agenda-day{border:1px solid #000}}@media (prefers-color-scheme: dark){.office-calendar{background:#1f2937;color:#f9fafb}.agenda-view{background:#111827}.agenda-day{background:#1f2937;border-bottom:1px solid #374151}.agenda-day-header{background:#374151;border-color:#4b5563}.day-name{color:#f9fafb}.day-date{color:#9ca3af}.office-attendance-card{background:#1e3a8a}.office-attendance-card:hover{background:#1e40af}.event-card{background:#1f2937}.event-card:hover{background:#374151}.event-card.holiday{background:#7f1d1d}.event-card.holiday:hover{background:#991b1b}.attendance-title,.event-title{color:#f9fafb}.attendance-info,.event-time{color:#d1d5db}.no-events{background:#374151}.no-events-text{color:#d1d5db}}.wing-selector{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 16px #0000001a;margin:16px 0}.wing-selector.disabled{opacity:.7;pointer-events:none}.floor-selection{margin-bottom:24px}.floor-selection h3{margin:0 0 12px;color:#333;font-size:1.2rem;font-weight:600}.floor-buttons{display:flex;gap:12px}.floor-btn{padding:10px 20px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;color:#333;font-weight:500;cursor:pointer;transition:all .2s ease}.floor-btn:hover:not(:disabled){border-color:#2196f3;background:#f0f8ff}.floor-btn.active{border-color:#2196f3;background:#2196f3;color:#fff}.floor-btn:disabled{opacity:.6;cursor:not-allowed}.floor-title{text-align:center;color:#333;margin-bottom:20px;font-size:1.3rem;font-weight:600}.floor-plan-image{display:flex;justify-content:center;margin-bottom:24px}.image-loading{display:flex;flex-direction:column;align-items:center;padding:40px;color:#666}.loading-spinner{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid #2196F3;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.image-container{position:relative;max-width:500px;box-shadow:0 4px 12px #0000001a;border-radius:8px;overflow:hidden}.floor-image{width:100%;height:auto;display:block}.wing-info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.wing-info-card{padding:16px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;position:relative}.wing-info-card:hover:not(.disabled){border-color:#2196f3;background:#f0f8ff;transform:translateY(-2px);box-shadow:0 4px 12px #2196f326}.wing-info-card.selected{border-color:#2196f3;background:#e3f2fd;box-shadow:0 2px 8px #2196f333}.wing-info-card.disabled{opacity:.6;cursor:not-allowed;background:#f8f8f8}.wing-name{margin:0 0 8px;font-size:1.1rem;font-weight:600;color:#333}.wing-details{display:flex;flex-direction:column;gap:4px}.capacity{font-size:.9rem;color:#666}.availability{font-size:.9rem;font-weight:600}.availability.available{color:#4caf50}.availability.limited{color:#ff9800}.availability.full{color:#f44336}.full-badge{position:absolute;top:8px;right:8px;background:#f44336;color:#fff;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600}.selection-info{padding:16px;background:#f8f9fa;border-radius:8px;text-align:center}.selection-info h4{margin:0 0 8px;color:#333;font-size:1.1rem}.selection-details{display:flex;flex-direction:column;align-items:center;gap:8px;color:#666;font-size:.875rem}.status-indicator{padding:6px 12px;border-radius:6px;font-weight:600}.status-indicator.available{background:#e8f5e8;color:#4caf50}.status-indicator.limited{background:#fff3e0;color:#ff9800}.status-indicator.full{background:#ffebee;color:#f44336}.full-warning{color:#f44336!important;font-weight:600}@media (max-width: 768px){.wing-selector{padding:16px}.floor-buttons{flex-direction:column}.floor-btn{text-align:center}.wing-info-cards{grid-template-columns:1fr}.image-container{max-width:100%}}@media (max-width: 480px){.floor-selection h3{font-size:1.1rem}.floor-title{font-size:1.2rem}.wing-name{font-size:1rem}.capacity,.availability{font-size:.8rem}}.selected-date-display{background:#ffffff26;border-radius:12px;padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.date-label{font-size:.875rem;font-weight:500;opacity:.9;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.selected-date{font-size:1.25rem;font-weight:600;margin-bottom:8px;color:#fff}.date-note{font-size:.875rem;opacity:.8;font-style:italic}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.location-select{padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:border-color .2s ease}.location-select:focus{outline:none;border-color:#0078d4}.capacity-info{margin-top:16px;padding:12px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.capacity-display{display:flex;flex-direction:column;gap:8px}.availability{padding:8px 12px;border-radius:20px;font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;width:fit-content}.availability.available{background:#e8f5e8;color:#2e7d32}.availability.limited{background:#fff3e0;color:#f57c00}.availability.full{background:#ffebee;color:#c62828}.capacity-breakdown{font-size:.85rem;color:#666}.warning-message{margin-top:12px;padding:12px;background:#fff3e0;border:1px solid #ffcc02;border-radius:6px;color:#e65100}.menu-selection{margin-top:20px;padding:20px;background:#f8f9fa;border-radius:12px;border:2px solid #e9ecef}.menu-loading{display:flex;flex-direction:column;align-items:center;padding:40px 20px;text-align:center}.menu-options h4{margin:0 0 20px;color:#333;font-size:1.2rem;font-weight:600;text-align:center}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.menu-option{border:2px solid #e0e0e0;border-radius:12px;overflow:hidden;transition:all .2s ease;background:#fff}.menu-option:hover:not(.unavailable){border-color:#0078d4;box-shadow:0 4px 12px #0078d426;transform:translateY(-2px)}.menu-option.unavailable{opacity:.6;background:#f8f8f8;cursor:not-allowed}.menu-choice-label{display:block;cursor:pointer;width:100%;margin:0}.menu-choice-label input[type=radio]{position:absolute;opacity:0;pointer-events:none}.menu-choice-label input[type=radio]:checked+.menu-card{border:2px solid #0078d4;background:#f0f8ff}.menu-card{padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;transition:all .2s ease;min-height:220px;display:flex;flex-direction:column}.menu-image{width:100%;height:120px;object-fit:cover;border-bottom:1px solid #e0e0e0}.menu-details{padding:16px;flex:1;display:flex;flex-direction:column}.menu-name{margin:0 0 8px;font-size:1.1rem;font-weight:600;color:#333;line-height:1.2}.menu-description{margin:0 0 10px;font-size:.9rem;color:#666;line-height:1.3}.menu-ingredients{margin-bottom:10px;font-size:.85rem;color:#555}.menu-ingredients strong{color:#333}.menu-allergens{margin-bottom:10px}.menu-allergens strong{color:#333;font-size:.85rem;display:block;margin-bottom:6px}.allergen-tags{display:flex;flex-wrap:wrap;gap:4px}.allergen-tag{background:#ffebee;color:#c62828;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.menu-availability{margin-top:auto;padding-top:10px;border-top:1px solid #f0f0f0}.menu-availability .available{color:#2e7d32;font-size:.85rem;font-weight:500}.menu-availability .unavailable{color:#d32f2f;font-size:.85rem;font-weight:500}.no-menu{padding:24px;text-align:center;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;display:flex;flex-direction:column;align-items:center;gap:8px}.category-icon{font-size:2rem;margin-bottom:8px}.category-name{font-weight:600;color:#495057;text-transform:capitalize;font-size:1.1rem}.no-menu p{margin:0;font-size:.9rem}.no-menu-available{padding:20px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-top:16px;text-align:center}.no-menu-icon{font-size:2rem;margin-bottom:12px}.no-menu-available p{margin:0 0 16px;color:#666;font-size:.95rem}.basic-menu{text-align:left;max-width:300px;margin:0 auto}.menu-select{width:100%;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;background:#fff}.transport-option{margin-bottom:20px}.option-content{display:flex;align-items:flex-start;gap:12px;flex:1}.option-icon{font-size:1.5rem;flex-shrink:0;margin-top:2px}.option-details{flex:1}.option-details strong{display:block;margin-bottom:4px;color:#333;font-size:1rem}.option-details p{margin:0;color:#666;font-size:.9rem;line-height:1.3}.sub-option{margin-left:40px;margin-top:12px;padding-left:20px;border-left:3px solid #e0e0e0}.transport-alternatives{margin-top:20px;padding:20px;background:#f8f9fa;border-radius:12px;border:2px solid #e9ecef}.alternative-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:1.1rem;font-weight:600;color:#333}.carpool-offers-section{margin-top:20px;padding:20px;background:#fff;border-radius:12px;border:2px solid #e0e0e0}.carpool-offers-section h4{margin:0 0 16px;color:#333;font-size:1.2rem;font-weight:600;text-align:center}.carpool-offers-list{display:flex;flex-direction:column;gap:12px}.carpool-offer-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;cursor:pointer;transition:all .2s ease;margin:0}.carpool-offer-item:hover{border-color:#0078d4;box-shadow:0 2px 8px #0078d426;background:#fff}.carpool-offer-item input[type=radio]{margin-top:4px;flex-shrink:0;transform:scale(1.2)}.carpool-offer-item input[type=radio]:checked+.offer-details{color:#0078d4}.offer-details{flex:1;display:flex;flex-direction:column;gap:8px}.offer-driver{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.offer-driver strong{font-size:1.1rem;color:#333}.available-seats{background:#e8f5e8;color:#2e7d32;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.offer-times{font-size:.9rem;color:#666;margin-bottom:4px}.offer-locations{font-size:.9rem;color:#555}.offer-locations strong{color:#333}.carpool-offer-details,.carpool-request-details{margin-top:20px;padding:20px;background:#f0f8ff;border-radius:12px;border:2px solid #0078d4}.carpool-offer-details h4,.carpool-request-details h4{margin:0 0 20px;color:#333;font-size:1.2rem;font-weight:600}.edit-note{font-size:.9rem;color:#f57c00;font-weight:400;font-style:italic}.seats-select{padding:8px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;background:#fff}.booked-passengers{margin-top:16px;padding:12px;background:#e8f5e8;border-radius:8px;border:1px solid #c8e6c9}.booked-passengers label{display:block;font-weight:500;margin-bottom:8px;color:#333}.passenger-list{display:flex;flex-wrap:wrap;gap:6px}.passenger-tag{background:#e3f2fd;color:#1976d2;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:500}.pickup-locations{margin-top:16px}.pickup-locations label{display:block;font-weight:500;margin-bottom:12px;color:#333}.pickup-location{display:flex;gap:8px;margin-bottom:8px;align-items:center}.pickup-location input[type=text]{flex:2;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.9rem}.pickup-location input[type=time]{flex:1;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.9rem}.pickup-location input:focus{outline:none;border-color:#0078d4}.remove-btn{background:#dc3545;color:#fff;border:none;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.remove-btn:hover{background:#c82333;transform:scale(1.1)}.add-pickup-btn{background:#28a745;color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;font-size:.9rem;margin-top:8px;transition:all .2s ease;display:flex;align-items:center;gap:6px}.add-pickup-btn:hover{background:#218838;transform:translateY(-1px)}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.radio-group{display:flex;flex-direction:column;gap:16px}.radio-group label{display:flex;align-items:center;gap:12px;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s ease;font-weight:500}.radio-group label:hover{border-color:#0078d4;background:#f0f8ff}.radio-group input[type=radio]:checked+span,.radio-group label:has(input[type=radio]:checked){border-color:#0078d4;background:#e3f2fd;color:#0078d4}.checkbox-label.main-option{border:2px solid #e0e0e0;background:#fff}.checkbox-label.main-option:hover{border-color:#0078d4;background:#f0f8ff}.checkbox-label input[type=checkbox]{margin:0;cursor:pointer;transform:scale(1.2)}@media (max-width: 768px){.location-grid,.time-grid,.menu-grid{grid-template-columns:1fr;gap:12px}.radio-group{gap:12px}.pickup-location{flex-direction:column;gap:8px}.pickup-location input[type=text],.pickup-location input[type=time]{width:100%}.offer-driver{flex-direction:column;align-items:flex-start;gap:8px}}@media (max-width: 480px){.carpool-offer-item{padding:12px}.offer-details{gap:6px}.carpool-offer-details h4,.carpool-request-details h4{font-size:1.1rem}.menu-card{min-height:180px}.menu-image{height:100px}}.section{background:#f8f9fa;border-radius:0;flex-shrink:0}.section:not(:last-child){border-bottom:8px solid #e9ecef}.section-header{background:#fff;padding:16px 20px;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.section-header h3{margin:0;font-size:1.2rem;font-weight:600;color:#333}.task-summary{display:flex;gap:12px;align-items:center;font-size:.875rem}.task-count{background:#e9ecef;color:#495057;padding:4px 8px;border-radius:8px;font-weight:500}.task-completed{background:#d4edda;color:#155724;padding:4px 8px;border-radius:8px;font-weight:500}.task-overdue{background:#f8d7da;color:#721c24;padding:4px 8px;border-radius:8px;font-weight:500}.date-badges{display:flex;gap:6px;flex-wrap:wrap}.badge{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500;background:#fff3;color:#fff}.badge.weekend{background:#ffc107cc}.badge.past{background:#6c757dcc}.badge.booked{background:#4caf50cc}.badge.holiday{background:#f44336cc;color:#fff}.attendance-card{padding:20px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.attendance-info{flex:1}.attendance-type{font-size:1.1rem;color:#333;margin-bottom:8px}.attendance-location,.attendance-lunch{color:#666;margin-bottom:6px;font-size:.95rem}.attendance-features{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.feature-tag{background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.edit-button{background:#667eea;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.edit-button:hover{background:#5a67d8;transform:translateY(-1px)}.no-attendance{padding:20px;text-align:center}.no-attendance p{color:#666;margin-bottom:16px}.book-button{background:#10b981;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.book-button:hover{background:#059669;transform:translateY(-1px)}.tasks-container{padding:20px;display:flex;flex-direction:column;gap:20px}.task-group{display:flex;flex-direction:column;gap:8px}.task-group-title{margin:0 0 8px;font-size:1rem;font-weight:600;color:#333;display:flex;align-items:center;gap:8px}.task-group-title.overdue{color:#dc3545}.task-group-title.completed{color:#28a745}.task-item{background:#fff;border:2px solid #e9ecef;border-radius:8px;padding:16px;transition:all .2s ease}.task-item:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.task-item.overdue{border-color:#dc3545;background:#fff5f5}.task-item.completed{border-color:#28a745;background:#f8fff8;opacity:.8}.task-item.holiday{background:#ffebee;border-color:#f44336;color:#d32f2f}.task-content{margin-bottom:12px}.task-title{font-size:1rem;font-weight:600;color:#333;margin-bottom:6px;line-height:1.4}.task-item.completed .task-title{text-decoration:line-through;color:#666}.task-meta{display:flex;gap:16px;align-items:center;font-size:.875rem;color:#666}.task-time,.task-priority{font-weight:500}.task-completion{color:#28a745;font-weight:500}.task-holiday-meta{color:#d32f2f;font-weight:500}.task-overdue-badge{color:#dc3545;font-weight:500}.task-progress{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;transition:width .3s ease}.task-item.overdue .progress-fill{background:linear-gradient(90deg,#dc3545,#c82333)}.task-item.completed .progress-fill{background:linear-gradient(90deg,#28a745,#20c997)}.progress-text{font-size:.75rem;font-weight:600;color:#666;min-width:35px;text-align:right}.no-tasks{padding:40px 20px;text-align:center}.no-tasks p{color:#666;font-size:1rem;margin:0}.holiday-notice{background:#ffebee!important;border-left:4px solid #f44336}.holiday-content{padding:20px}.holiday-message{color:#d32f2f;font-weight:500;margin-bottom:16px;text-align:center;font-size:1.1rem}.holiday-item{background:#fff;border:2px solid #f44336;border-radius:8px;padding:12px;text-align:center}.holiday-title{color:#d32f2f;font-weight:600;font-size:1.1rem}.task-holiday{background:#ffebee;color:#d32f2f;padding:4px 8px;border-radius:8px;font-weight:500}@media (max-width: 768px){.section-header{flex-direction:column;align-items:flex-start;gap:12px}.attendance-card{flex-direction:column;align-items:stretch;gap:16px}.edit-button,.book-button{width:100%;justify-content:center}.task-meta{flex-direction:column;align-items:flex-start;gap:4px}.task-summary{flex-direction:column;align-items:flex-start;gap:6px}.date-badges{margin-top:8px}}@media (max-width: 480px){.section-header{padding:12px 16px}.section-header h3{font-size:1.1rem}.attendance-card,.tasks-container{padding:16px}.task-item{padding:12px}.task-title{font-size:.95rem}.task-meta{font-size:.8rem}.progress-text{font-size:.7rem;min-width:30px}}@media (prefers-color-scheme: dark){.section{background:#2d3748}.section-header{background:#4a5568;border-color:#718096}.section-header h3{color:#e2e8f0}.task-item{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.task-item:hover{border-color:#667eea}.task-item.overdue{background:#2d1b1b;border-color:#dc3545}.task-item.completed{background:#1b2d1b;border-color:#28a745}.task-item.holiday{background:#742a2a;border-color:#f56565;color:#feb2b2}.attendance-card{color:#e2e8f0}.attendance-location,.attendance-lunch{color:#cbd5e0}.task-count{background:#4a5568;color:#e2e8f0}.progress-bar{background:#4a5568}.no-attendance p,.no-tasks p{color:#cbd5e0}.holiday-notice{background:#742a2a!important;border-left-color:#f56565}.holiday-message{color:#feb2b2}.holiday-item{background:#2d3748;border-color:#f56565}.holiday-title{color:#feb2b2}.task-holiday{background:#742a2a;color:#feb2b2}.task-holiday-meta{color:#feb2b2}}.attendance-system{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.system-header{text-align:center;margin-bottom:40px;padding-bottom:20px;border-bottom:2px solid #f0f0f0}.system-header h1{margin:0 0 10px;color:#333;font-size:2.5rem;font-weight:700}.system-header p{margin:0;color:#666;font-size:1.1rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #0078d4;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner{background:#ffebee;color:#c62828;padding:16px 20px;border-radius:8px;margin-bottom:24px;border-left:4px solid #c62828}.error-banner p{margin:0;font-weight:500}.system-content{display:grid;gap:40px}.calendar-section{width:100%}.bookings-section{background:#fff;border-radius:12px;box-shadow:0 4px 16px #0000001a;padding:24px}.bookings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.bookings-header h2{margin:0;color:#333;font-size:1.5rem;font-weight:600}.bookings-count{background:#e3f2fd;color:#1976d2;padding:6px 12px;border-radius:16px;font-size:.875rem;font-weight:500}.bookings-list{display:flex;flex-direction:column;gap:16px}.booking-card{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;border:2px solid #e9ecef;border-radius:12px;background:#fafafa;transition:all .2s ease}.booking-card:hover{border-color:#0078d4;box-shadow:0 4px 12px #0078d426;transform:translateY(-2px)}.booking-main{flex:1}.booking-date{display:flex;flex-direction:column;margin-bottom:12px}.date-text{font-size:1.2rem;font-weight:600;color:#333;margin-bottom:4px}.attendance-type{font-size:.9rem;color:#666;background:#fff;padding:4px 8px;border-radius:4px;width:fit-content}.booking-details{display:flex;flex-direction:column;gap:8px}.detail-item{display:flex;gap:8px;align-items:center}.detail-label{font-weight:500;color:#555;min-width:60px}.detail-value{color:#333}.booking-features{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.feature-tag{padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500;white-space:nowrap}.feature-tag.parking{background:#e3f2fd;color:#1976d2}.feature-tag.carpool-offer{background:#e8f5e8;color:#2e7d32}.feature-tag.carpool-request{background:#fff3e0;color:#f57c00}.feature-tag.carpool-booked{background:#e8f5e8;color:#2e7d32}.booking-actions{display:flex;flex-direction:column;gap:8px}.cancel-booking-btn{background:#f44336;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease;white-space:nowrap}.cancel-booking-btn:hover{background:#d32f2f}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 4px 16px #0000001a}.empty-icon{font-size:4rem;margin-bottom:20px}.empty-state h3{margin:0 0 12px;color:#333;font-size:1.5rem;font-weight:600}.empty-state p{color:#666;font-size:1rem;max-width:400px;margin:0 auto;line-height:1.5}@media (max-width: 768px){.attendance-system{padding:15px}.system-header h1{font-size:2rem}.system-header p{font-size:1rem}.system-content{gap:24px}.bookings-section{padding:20px}.bookings-header{flex-direction:column;align-items:flex-start;gap:12px}.booking-card{flex-direction:column;gap:16px;padding:16px}.booking-actions,.cancel-booking-btn{width:100%}.booking-features{gap:6px}.feature-tag{font-size:.75rem}}@media (max-width: 480px){.system-header h1{font-size:1.75rem}.system-header{margin-bottom:24px}.bookings-section{padding:16px}.booking-card{padding:12px}.date-text{font-size:1.1rem}.detail-item{flex-direction:column;align-items:flex-start;gap:4px}.detail-label{min-width:auto;font-size:.875rem}.empty-state{padding:40px 16px}.empty-icon{font-size:3rem}}.backoffice-container{min-height:100vh;background-color:#f9fafb}.backoffice-header{background-color:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d}.backoffice-header-content{max-width:1280px;margin:0 auto;padding:0 16px}.backoffice-header-inner{display:flex;justify-content:space-between;align-items:center;padding:24px 0}.backoffice-title{font-size:30px;font-weight:700;color:#111827;margin:0}.backoffice-subtitle{color:#6b7280;margin-top:4px;margin-bottom:0}.backoffice-admin-label{font-size:14px;color:#9ca3af}.backoffice-main{max-width:1280px;margin:0 auto;padding:24px 16px}.tabs-container{border-bottom:1px solid #e5e7eb;margin-bottom:24px}.tabs-nav{display:flex;gap:32px;margin-bottom:-1px}.tab-button{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:2px solid transparent;color:#6b7280;font-size:14px;font-weight:500;background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;transition:all .2s ease}.tab-button.active{border-bottom-color:#3b82f6;color:#2563eb}.tab-button:hover:not(.active){color:#374151;border-bottom-color:#d1d5db}.tab-content{display:flex;flex-direction:column;gap:24px}.section-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.section-title{font-size:20px;font-weight:600;margin-bottom:16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.availability-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.availability-item{display:flex;flex-direction:column}.availability-label{display:block;font-size:12px;color:#6b7280;margin-bottom:4px;text-transform:capitalize}.availability-input{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.menu-assignment{margin-top:24px}.menu-assignment-title{font-size:18px;font-weight:500;margin-bottom:16px}.menu-categories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.menu-category-card{border:1px solid #e5e7eb;border-radius:8px;padding:16px}.menu-category-title{font-weight:500;text-transform:capitalize;margin-bottom:12px;text-align:center}.assigned-menu-item{margin-bottom:12px;padding:12px;background-color:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.assigned-menu-name{font-size:14px;font-weight:500}.assigned-menu-image{width:100%;height:80px;object-fit:cover;border-radius:4px;margin-top:8px}.remove-menu-button{color:#dc2626;font-size:12px;margin-top:8px;background:none;border:none;text-decoration:underline;cursor:pointer}.menu-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.menu-item-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0000000d;transition:transform .2s ease,box-shadow .2s ease}.menu-item-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a}.menu-item-image{width:100%;height:192px;object-fit:cover}.menu-item-content{padding:16px}.menu-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.menu-item-name{font-weight:600;font-size:18px;margin:0}.category-badge{padding:2px 8px;font-size:12px;border-radius:9999px}.category-badge.meat{background-color:#fee2e2;color:#991b1b}.category-badge.fish{background-color:#dbeafe;color:#1e40af}.category-badge.vegetarian{background-color:#dcfce7;color:#166534}.category-badge.salad{background-color:#fef3c7;color:#92400e}.menu-item-description{color:#6b7280;font-size:14px;margin-bottom:12px}.menu-item-ingredients{margin-bottom:12px}.ingredients-label{font-size:12px;font-weight:500;color:#374151;margin-bottom:4px}.ingredients-text{font-size:12px;color:#6b7280}.allergens-container{margin-bottom:12px}.allergens-label{font-size:12px;font-weight:500;color:#374151;margin-bottom:4px}.allergens-list{display:flex;flex-wrap:wrap;gap:4px}.allergen-tag{background-color:#fee2e2;color:#991b1b;font-size:12px;padding:2px 8px;border-radius:4px}.menu-item-footer{display:flex;justify-content:space-between;align-items:center}.status-badge{font-size:12px;padding:2px 8px;border-radius:4px}.status-badge.active{background-color:#dcfce7;color:#166534}.status-badge.inactive{background-color:#f3f4f6;color:#374151}.menu-item-actions{display:flex;gap:8px}.action-link{font-size:14px;background:none;border:none;cursor:pointer;text-decoration:none}.action-link.edit{color:#2563eb}.action-link.edit:hover{color:#1d4ed8}.action-link.delete{color:#dc2626}.action-link.delete:hover{color:#b91c1c}.loading-container{display:flex;align-items:center;justify-content:center;min-height:100vh}.loading-content{text-align:center}.loading-text{color:#666}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:40px;text-align:center}.access-denied-icon{font-size:4rem;margin-bottom:20px}.access-denied-title{color:#333;margin-bottom:16px}.access-denied-text{color:#666;font-size:1.1rem;max-width:400px;line-height:1.5}.access-denied-user{color:#999;font-size:.9rem;margin-top:20px}.ingredient-row{display:flex;gap:8px}.ingredient-input{flex:1;padding:8px;border:1px solid #d1d5db;border-radius:6px}.remove-ingredient{padding:8px 12px;color:#dc2626;background:none;border:none;cursor:pointer}.add-ingredient{color:#2563eb;font-size:14px;background:none;border:none;cursor:pointer;text-align:left}.allergens-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.allergen-checkbox{display:flex;align-items:center;gap:8px}.allergen-checkbox input{border-radius:4px}.allergen-checkbox span{font-size:14px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{border-radius:4px}.checkbox-row span{font-size:14px;font-weight:500}.file-input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:6px;font-size:16px}.current-image{margin-top:8px}.current-image img{width:128px;height:128px;object-fit:cover;border-radius:4px}.current-image-text{font-size:14px;color:#6b7280;margin-top:4px}.empty-state{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.empty-state-text{color:#6b7280;text-align:center}@media (max-width: 768px){.backoffice-header-inner{flex-direction:column;align-items:flex-start;gap:12px}.backoffice-main{padding:16px}.tabs-nav{gap:16px;flex-wrap:wrap}.availability-grid,.menu-categories-grid,.menu-items-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:12px}}@media (max-width: 480px){.backoffice-title{font-size:24px}.section-card{padding:16px}.menu-item-card{margin-bottom:16px}.allergens-grid{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){.backoffice-container{background-color:#1f2937}.backoffice-header{background-color:#374151;border-color:#4b5563}.backoffice-title{color:#f9fafb}.backoffice-subtitle{color:#9ca3af}.section-card{background-color:#374151;color:#f9fafb}.menu-item-card{background-color:#374151;border-color:#4b5563}.tabs-container{border-color:#4b5563}.menu-category-card,.assigned-menu-item{background-color:#4b5563;border-color:#6b7280}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;overflow:hidden}.modal-inner{display:flex;flex-direction:column;height:100%;max-height:90vh}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.modal-title{margin:0;font-size:1.5rem;font-weight:600}.modal-close{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.form-container{flex:1;overflow-y:auto;padding:24px;min-height:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.form-group{display:flex;flex-direction:column;margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.form-label.required:after{content:" *";color:#ef4444}.form-input,.textarea,.file-input{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;transition:border-color .2s ease;font-family:inherit;box-sizing:border-box}.form-input:focus,.textarea:focus,.file-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.textarea{resize:vertical;min-height:80px}.current-image{margin-top:12px;text-align:center}.current-image img{max-width:200px;max-height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 8px #0000001a}.current-image-text{font-size:12px;color:#6b7280;margin-top:8px;font-style:italic}.ingredients-container{display:flex;flex-direction:column;gap:8px}.ingredient-row{display:flex;gap:8px;align-items:center}.ingredient-input{flex:1;padding:8px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px}.ingredient-input:focus{outline:none;border-color:#3b82f6}.remove-ingredient{background:#ef4444;color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;white-space:nowrap;transition:background .2s ease}.remove-ingredient:hover{background:#dc2626}.add-ingredient{background:#10b981;color:#fff;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-size:14px;margin-top:8px;transition:background .2s ease;align-self:flex-start}.add-ingredient:hover{background:#059669}.allergens-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}.allergen-checkbox{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;transition:background .2s ease}.allergen-checkbox:hover{background:#f3f4f6}.allergen-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.allergen-checkbox span{font-size:14px;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-row{display:flex;align-items:center;gap:8px;padding:12px;background:#f9fafb;border-radius:8px;margin-top:16px}.checkbox-row input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-row span{font-size:14px;font-weight:500;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none}.modal-footer{padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.primary-button,.secondary-button{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:120px}.primary-button{background:#3b82f6;color:#fff}.primary-button:hover{background:#2563eb;transform:translateY(-1px)}.secondary-button{background:#fff;color:#6b7280;border:2px solid #e5e7eb}.secondary-button:hover{background:#f9fafb;border-color:#d1d5db}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:none;width:100%;max-height:95vh;border-radius:16px 16px 0 0;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.form-row,.allergens-grid{grid-template-columns:1fr}.modal-footer{flex-direction:column-reverse}.modal-footer>*{width:100%}.modal-header,.form-container{padding:20px}.modal-footer{padding:16px 20px}}@media (max-width: 480px){.modal-title{font-size:1.25rem}.allergens-grid{grid-template-columns:1fr}.ingredient-row{flex-direction:column;gap:8px}.ingredient-input{width:100%}.remove-ingredient{align-self:flex-end}}@media (prefers-color-scheme: dark){.modal-content{background:#1f2937;color:#f9fafb}.form-container{background:#1f2937}.modal-footer{background:#374151;border-color:#4b5563}.form-input,.textarea,.file-input{background:#374151;border-color:#4b5563;color:#f9fafb}.form-input:focus,.textarea:focus,.file-input:focus{border-color:#3b82f6}.form-label{color:#e5e7eb}.allergen-checkbox:hover,.checkbox-row{background:#374151}.allergen-checkbox span,.checkbox-row span{color:#e5e7eb}.ingredient-input{background:#374151;border-color:#4b5563;color:#f9fafb}.secondary-button{background:#374151;color:#e5e7eb;border-color:#4b5563}.secondary-button:hover{background:#4b5563;border-color:#6b7280}}
