:root{--bg-primary: #121212;--bg-secondary: #1e1e1e;--bg-surface: #252525;--bg-card: #2a2a2a;--bg-hover: #2d2d2d;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--text-inverse: #121212;--border-color: #3a3a3a;--border-hover: #404040;--accent-primary: #ef5350;--accent-secondary: #e53935;--accent-hover: #c62828;--accent-light: rgba(239, 83, 80, .15);--success: #10b981;--success-light: rgba(16, 185, 129, .15);--success-border: rgba(16, 185, 129, .3);--success-text: #51cf66;--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .15);--warning-border: rgba(245, 158, 11, .3);--warning-text: #fbbf24;--error: #ef4444;--error-light: rgba(239, 68, 68, .15);--error-border: rgba(239, 68, 68, .3);--error-text: #ff6b6b;--info: #3b82f6;--info-light: rgba(59, 130, 246, .15);--info-border: rgba(59, 130, 246, .3);--info-text: #74b0ff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 30px;--spacing-4xl: 40px;--spacing-5xl: 50px;--spacing-6xl: 64px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 16px;--font-size-md: 18px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-size-3xl: 40px;--font-size-4xl: 48px;--font-size-5xl: 64px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .5);--shadow-xl: 0 10px 40px rgba(0, 0, 0, .6);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-slower: .35s cubic-bezier(.4, 0, .2, 1);--breakpoint-mobile: 768px;--breakpoint-tablet: 1024px;--breakpoint-desktop: 1025px;--touch-target-min: 48px;--touch-target-large: 56px;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:var(--line-height-relaxed);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary);margin:0}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin:0;line-height:var(--line-height-relaxed)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.skip-link{position:absolute;top:-40px;left:0;background:var(--bg-primary);color:var(--bg-primary);padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;z-index:10000;font-weight:var(--font-weight-semibold);clip-path:none}.skip-link:focus{top:0;background:var(--accent-primary);color:#fff;outline:3px solid #ffffff;outline-offset:2px}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}::selection{background:var(--accent-light);color:var(--accent-primary)}@media (max-width: 768px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}.d-none{display:none!important}.d-block{display:block!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.d-grid{display:grid!important}.flex-column{flex-direction:column!important}.flex-row{flex-direction:row!important}.align-center{align-items:center!important}.align-start{align-items:flex-start!important}.align-end{align-items:flex-end!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.gap-sm{gap:var(--spacing-sm)!important}.gap-md{gap:var(--spacing-md)!important}.gap-lg{gap:var(--spacing-lg)!important}.gap-xl{gap:var(--spacing-xl)!important}.m-0{margin:0!important}.mb-sm{margin-bottom:var(--spacing-sm)!important}.mb-md{margin-bottom:var(--spacing-md)!important}.mb-lg{margin-bottom:var(--spacing-lg)!important}.mb-xl{margin-bottom:var(--spacing-xl)!important}.mb-2xl{margin-bottom:var(--spacing-2xl)!important}.mt-sm{margin-top:var(--spacing-sm)!important}.mt-md{margin-top:var(--spacing-md)!important}.mt-lg{margin-top:var(--spacing-lg)!important}.mt-xl{margin-top:var(--spacing-xl)!important}.p-sm{padding:var(--spacing-sm)!important}.p-md{padding:var(--spacing-md)!important}.p-lg{padding:var(--spacing-lg)!important}.p-xl{padding:var(--spacing-xl)!important}.text-xs{font-size:var(--font-size-xs)!important}.text-sm{font-size:var(--font-size-sm)!important}.text-base{font-size:var(--font-size-base)!important}.text-lg{font-size:var(--font-size-lg)!important}.text-xl{font-size:var(--font-size-xl)!important}.text-2xl{font-size:var(--font-size-2xl)!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.font-normal{font-weight:var(--font-weight-normal)!important}.font-medium{font-weight:var(--font-weight-medium)!important}.font-semibold{font-weight:var(--font-weight-semibold)!important}.font-bold{font-weight:var(--font-weight-bold)!important}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-muted{color:var(--text-muted)!important}.container{width:100%;max-width:var(--container-xl);margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.container{padding:0 var(--spacing-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;min-height:var(--touch-target-min);font-family:inherit}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);min-height:40px}.btn-lg{padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--font-size-md);min-height:56px}.btn-primary{background:var(--accent-primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.btn-outline{background:transparent;color:var(--accent-primary);border:2px solid var(--accent-primary)}.btn-outline:hover:not(:disabled){background:var(--accent-primary);color:var(--text-inverse)}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-block{width:100%;display:flex}.btn-icon{padding:var(--spacing-md);min-width:var(--touch-target-min);min-height:var(--touch-target-min)}@media (max-width: 768px){.btn{min-height:var(--touch-target-min);padding:var(--spacing-md) var(--spacing-lg)}.btn-lg{min-height:var(--touch-target-large);padding:var(--spacing-lg) var(--spacing-xl)}}.form-group{margin-bottom:var(--spacing-xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);color:var(--text-primary)}.form-label.required:after{content:" *";color:var(--error)}.form-control{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base);box-sizing:border-box;background:var(--bg-card);color:var(--text-primary);transition:all var(--transition-base);font-family:inherit;min-height:var(--touch-target-min)}.form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.form-control:disabled{background:var(--bg-surface);color:var(--text-muted);cursor:not-allowed}.form-control::placeholder{color:var(--text-muted)}textarea.form-control{min-height:100px;resize:vertical}select.form-control{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236c757d' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:var(--spacing-4xl)}.radio-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--text-primary);min-height:var(--touch-target-min)}.radio-label input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--accent-primary)}.toggle-switch{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer}.toggle-switch input[type=checkbox]{position:relative;width:44px;height:24px;appearance:none;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;outline:none;cursor:pointer;transition:all var(--transition-base);margin:0;flex-shrink:0}.toggle-switch input[type=checkbox]:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;top:2px;left:2px;background:var(--text-secondary);transition:all var(--transition-base);box-shadow:0 2px 4px #0003}.toggle-switch input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}.toggle-switch input[type=checkbox]:checked:before{left:22px;background:#fff}.toggle-switch input[type=checkbox]:hover:not(:disabled){border-color:var(--border-hover)}.toggle-switch input[type=checkbox]:checked:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.toggle-switch input[type=checkbox]:focus{box-shadow:0 0 0 3px var(--accent-light)}.toggle-switch input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.toggle-switch label{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary);font-size:var(--font-size-base)}.form-error{color:var(--error);font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.form-success{color:var(--success);font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.form-hint{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.form-control-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);min-height:40px}.form-control-lg{padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--font-size-md);min-height:56px}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--bg-secondary)}.menu-item-card{background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--transition-base);cursor:pointer;display:flex;flex-direction:column}.menu-item-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.menu-item-card-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--bg-surface)}.menu-item-card-body{padding:var(--spacing-lg);flex:1;display:flex;flex-direction:column}.menu-item-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);color:var(--text-primary)}.menu-item-card-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md);flex:1}.menu-item-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.menu-item-card-price{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent-primary)}.age-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--warning-light);color:var(--warning-text);border:1px solid var(--warning-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.catering-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--info-light);color:var(--info-text);border:1px solid var(--info-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.page-layout{min-height:100vh;display:flex;flex-direction:column}.page-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:var(--spacing-lg);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.page-content{flex:1;padding:var(--spacing-lg)}@media (max-width: 768px){.page-content{padding:var(--spacing-md)}}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-4xl);color:var(--text-secondary)}.loading:after{content:"";width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .6s linear infinite;margin-left:var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-5xl) var(--spacing-lg);color:var(--text-secondary)}.empty-state-icon{font-size:var(--font-size-5xl);margin-bottom:var(--spacing-lg);opacity:.5}.empty-state-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-sm);color:var(--text-primary)}.empty-state-message{font-size:var(--font-size-base);color:var(--text-secondary)}.grid{display:grid;gap:var(--spacing-lg)}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1024px){.grid-4{grid-template-columns:repeat(3,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.show-mobile{display:block}.hide-mobile,.show-tablet{display:none}.hide-tablet{display:block}.show-desktop{display:none}.hide-desktop{display:block}@media (min-width: 769px) and (max-width: 1024px){.show-mobile{display:none}.hide-mobile,.show-tablet{display:block}.hide-tablet{display:none}}@media (min-width: 1025px){.show-mobile{display:none}.hide-mobile{display:block}.show-tablet{display:none}.hide-tablet,.show-desktop{display:block}.hide-desktop{display:none}}@media (max-width: 768px){.p-md-mobile{padding:var(--spacing-md)!important}.p-lg-mobile{padding:var(--spacing-lg)!important}.mb-lg-mobile{margin-bottom:var(--spacing-lg)!important}.mb-xl-mobile{margin-bottom:var(--spacing-xl)!important}}@media (min-width: 769px) and (max-width: 1024px){.p-lg-tablet{padding:var(--spacing-lg)!important}.p-xl-tablet{padding:var(--spacing-xl)!important}}@media (min-width: 1025px){.p-xl-desktop{padding:var(--spacing-xl)!important}.p-2xl-desktop{padding:var(--spacing-2xl)!important}}@media (max-width: 768px){.text-lg-mobile{font-size:var(--font-size-lg)!important}.text-xl-mobile{font-size:var(--font-size-xl)!important}}@media (min-width: 1025px){.text-xl-desktop{font-size:var(--font-size-xl)!important}.text-2xl-desktop{font-size:var(--font-size-2xl)!important}}
