:root{--color-teal-400: #43acbc;--color-teal-700: #2d6c7a;--color-slate-900: #0f172a;--color-slate-800: #1e293b;--color-slate-100: #f1f5f9;--color-slate-200: #e2e8f0;--color-white: #ffffff;--color-gray-400: #9ca3af;--color-gray-50: #f9fafb;--color-red-400: #f87171;--color-red-700: #c53030}:root{--color-surface: var(--color-white);--color-surface-overlay: rgba(0, 0, 0, .6);--color-surface-raised: var(--color-white);--color-text-primary: var(--color-slate-900);--color-text-inverse: var(--color-white);--color-text-muted: var(--color-gray-400);--color-border: var(--color-slate-200);--color-border-brand: rgba(67, 172, 188, .35);--color-brand: var(--color-teal-400);--color-brand-dark: var(--color-teal-700);--color-surface-subtle: var(--color-slate-100);--color-surface-tint: rgba(0, 0, 0, .25);--color-error: var(--color-red-400);--color-error-dark: var(--color-red-700);--color-error-bg: #ffebee;--color-warning: #ff9800;--color-warning-dark: #e65100;--color-warning-bg: #fff8e1;--color-success: #4caf50;--color-success-dark: #2e7d32;--color-success-bg: #e8f5e8;--color-info: #2196f3;--color-info-dark: #1565c0;--color-info-bg: #e3f2fd;--font-family-base: "Inter", Helvetica, Arial, sans-serif;--font-family-display: "Ballet", Helvetica;--font-family-mono: "Monaco", "Menlo", "Ubuntu Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 800;--line-height-tight: 1.2;--line-height-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 4px 12px rgba(15, 23, 42, .12);--shadow-lg: 0 6px 24px rgba(15, 23, 42, .16);--shadow-brand-sm: 0 6px 16px rgba(67, 172, 188, .18);--shadow-brand-md: 0 16px 30px rgba(67, 172, 188, .35);--shadow-brand-lg: 0 20px 34px rgba(67, 172, 188, .4);--shadow-drawer: -4px 0 16px rgba(15, 23, 42, .2);--color-star: #fbbf24;--color-note-bg: #fffbe7;--color-note-border: #ffe066;--z-dropdown: 100;--z-sticky: 200;--z-drawer: 300;--z-modal: 1000;--z-toast: 1100}[data-theme=dark]{--color-surface: #0f172a;--color-surface-raised: #1e293b;--color-text-primary: #f1f5f9;--color-text-muted: #64748b;--color-border: rgba(255, 255, 255, .12)}:root{--breakpoint-mobile: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px}.mobile-only{display:none!important}.tablet-up,.desktop-only{display:inherit}@media (max-width: 1023.98px){.desktop-only{display:none!important}}@media (max-width: 767.98px){.tablet-up{display:none!important}.mobile-only{display:inherit!important}}@media (max-width: 479.98px){.hide-under-mobile{display:none!important}}:root{--btn-border-radius: 999px;--btn-font-weight: 600;--btn-letter-spacing: .01em;--btn-gap: .5rem;--btn-padding-x-sm: 16px;--btn-padding-y-sm: 8px;--btn-padding-x-md: 24px;--btn-padding-y-md: 12px;--btn-padding-x-lg: 28px;--btn-padding-y-lg: 16px;--btn-font-size-sm: .875rem;--btn-font-size-md: 1rem;--btn-font-size-lg: 1.125rem;--btn-min-height-sm: 36px;--btn-min-height-md: 44px;--btn-min-height-lg: 52px;--btn-focus-outline-width: 3px;--btn-focus-outline-color: var(--color-text-primary);--btn-focus-outline-offset: 2px;--btn-disabled-bg: var(--color-gray-400);--btn-disabled-color: var(--color-gray-50);--btn-disabled-shadow: none;--btn-primary-color: var(--color-text-inverse);--btn-primary-bg: linear-gradient(135deg, #43acbc 0%, #2d6c7a 100%);--btn-primary-bg-hover: linear-gradient(135deg, #4dc0c7 0%, #347a85 100%);--btn-primary-bg-active: linear-gradient(135deg, #3795a2 0%, #245762 100%);--btn-primary-shadow: 0 16px 30px rgba(67, 172, 188, .35);--btn-primary-shadow-hover: 0 20px 34px rgba(67, 172, 188, .4);--btn-primary-shadow-active: 0 12px 20px rgba(67, 172, 188, .28);--btn-primary-color-hover: var(--color-text-inverse);--btn-primary-color-active: var(--color-text-inverse);--btn-secondary-color: var(--color-text-primary);--btn-secondary-bg: rgba(255, 255, 255, .12);--btn-secondary-bg-hover: rgba(255, 255, 255, .2);--btn-secondary-bg-active: rgba(255, 255, 255, .12);--btn-secondary-border: rgba(67, 172, 188, .35);--btn-secondary-shadow: 0 6px 16px rgba(67, 172, 188, .18);--btn-secondary-shadow-hover: 0 12px 24px rgba(67, 172, 188, .22);--btn-secondary-shadow-active: 0 6px 12px rgba(67, 172, 188, .18);--btn-secondary-color-hover: var(--color-text-primary);--btn-secondary-color-active: var(--color-text-primary);--btn-secondary-border-hover: rgba(67, 172, 188, .5);--btn-secondary-border-active: rgba(67, 172, 188, .35);--btn-danger-color: var(--color-text-inverse);--btn-danger-bg: linear-gradient(135deg, #f87171 0%, #c53030 100%);--btn-danger-bg-hover: linear-gradient(135deg, #fb7185 0%, #b91c1c 100%);--btn-danger-bg-active: linear-gradient(135deg, #ef4444 0%, #991b1b 100%);--btn-danger-shadow: 0 16px 30px rgba(239, 68, 68, .35);--btn-danger-shadow-hover: 0 20px 34px rgba(239, 68, 68, .4);--btn-danger-shadow-active: 0 12px 20px rgba(239, 68, 68, .28);--btn-danger-color-hover: var(--color-text-inverse);--btn-danger-color-active: var(--color-text-inverse);--btn-ghost-color: var(--color-text-primary);--btn-ghost-color-hover: var(--color-text-primary);--btn-ghost-color-active: var(--color-text-primary);--btn-ghost-bg-hover: rgba(15, 23, 42, .05);--btn-ghost-bg-active: rgba(15, 23, 42, .08);--btn-ghost-border: rgba(15, 23, 42, .2);--btn-ghost-border-hover: rgba(15, 23, 42, .3);--btn-ghost-border-active: rgba(15, 23, 42, .3)}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh}.auth-loading .loading-spinner{display:inline-block;width:3rem;height:3rem;border:4px solid rgba(230,57,70,.1);border-radius:50%;border-top-color:var(--color-error-dark);animation:spin 1s linear infinite;margin-bottom:1rem}.auth-loading p{color:var(--color-text-muted);font-size:var(--text-base)}.admin-auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-gray-50)}.admin-auth-loading .loading-spinner{width:3rem;height:3rem;border:4px solid var(--color-border);border-top:4px solid var(--color-brand);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.admin-auth-loading .loading-content{text-align:center}.admin-auth-loading .loading-content h3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:.5rem}.admin-auth-loading .loading-content p{color:var(--color-text-muted)}.admin-auth-error{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-gray-50)}.admin-auth-error .error-content{background-color:var(--color-surface);padding:2rem;border-radius:var(--radius-md);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;max-width:28rem;text-align:center}.admin-auth-error .error-content h3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-error-dark);margin-bottom:1rem}.admin-auth-error .error-content p{color:var(--color-text-primary);margin-bottom:.5rem}.admin-auth-error .error-details{font-size:var(--text-sm);color:var(--color-error-dark);background-color:var(--color-error-bg);padding:.75rem;border-radius:var(--radius-sm);margin-top:1rem;margin-bottom:1rem}.admin-auth-error .retry-button{background-color:var(--color-brand);color:var(--color-text-inverse);padding:.5rem 1rem;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background-color .2s}.admin-auth-error .retry-button:hover{background-color:var(--color-brand-dark)}.admin-access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-gray-50)}.admin-access-denied .access-denied-content{background-color:var(--color-surface);padding:2rem;border-radius:var(--radius-md);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;max-width:28rem;text-align:center}.admin-access-denied .access-denied-content h3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-error-dark);margin-bottom:1rem}.admin-access-denied .access-denied-content p{color:var(--color-text-primary);margin-bottom:1rem}.admin-access-denied .required-permissions{text-align:left;margin-top:1.5rem;margin-bottom:1.5rem}.admin-access-denied .required-permissions h4{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:.5rem}.admin-access-denied .required-permissions ul{list-style:none;padding:0}.admin-access-denied .required-permissions li{font-size:var(--text-sm);padding:.25rem .75rem;border-radius:var(--radius-sm);margin-bottom:.25rem}.admin-access-denied .required-permissions .has-permission{background-color:#dcfce7;color:#166534}.admin-access-denied .required-permissions .missing-permission{background-color:var(--color-error-bg);color:var(--color-error-dark)}.admin-access-denied .go-back-button{background-color:var(--color-text-muted);color:var(--color-text-inverse);padding:.5rem 1rem;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background-color .2s}.admin-access-denied .go-back-button:hover{background-color:var(--color-text-primary)}.admin-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.admin-login-card{background:var(--color-surface);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:28rem;width:100%;padding:2rem}.admin-login-header{text-align:center;margin-bottom:2rem}.admin-login-header h1{font-size:var(--text-3xl);font-weight:700;color:var(--color-text-primary);margin-bottom:.5rem}.admin-login-header p{color:var(--color-text-muted);font-size:var(--text-sm)}.admin-required-notice{background-color:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:.75rem;margin-top:1rem}.admin-required-notice p{color:#92400e;font-size:var(--text-sm);margin:0}.admin-login-form .form-group{margin-bottom:1.5rem}.admin-auth-error{background-color:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:1rem;margin-bottom:1rem}.admin-auth-error strong{color:var(--color-error-dark);font-weight:var(--font-weight-semibold);display:block;margin-bottom:.25rem}.admin-auth-error p{color:var(--color-error-dark);font-size:var(--text-sm);margin:0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:.5rem;font-size:var(--text-sm)}.form-group input{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px #3b82f61a}.form-group input.error{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.form-group input:disabled{background-color:var(--color-gray-50);color:var(--color-text-muted);cursor:not-allowed}.validation-error{color:var(--color-error);font-size:var(--text-sm);margin-top:.25rem}.form-actions{margin-top:2rem}.admin-submit-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text-inverse);border:none;padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.admin-submit-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 15px -3px #0000001a}.admin-submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.security-notice{background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem;margin-top:1.5rem}.security-notice p{color:var(--color-text-muted);font-size:var(--text-xs);margin:0;text-align:center}.admin-login-footer{margin-top:2rem;text-align:center;border-top:1px solid var(--color-border);padding-top:1rem}.admin-login-footer a{color:#667eea;text-decoration:none;font-size:var(--text-sm);transition:color .2s}.admin-login-footer a:hover{color:#764ba2;text-decoration:underline}.admin-login-footer span{margin:0 .5rem;color:var(--color-border)}.admin-login-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text-inverse)}.admin-login-loading .loading-spinner{width:3rem;height:3rem;border:4px solid rgba(255,255,255,.3);border-top:4px solid var(--color-text-inverse);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.admin-login-loading p{font-size:var(--text-lg);font-weight:var(--font-weight-medium)}.admin-login-error{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.admin-login-error .error-content{background:var(--color-surface);border-radius:.75rem;padding:2rem;text-align:center;max-width:28rem;box-shadow:0 20px 25px -5px #0000001a}.admin-login-error .error-content h2{color:var(--color-error-dark);font-size:var(--text-2xl);font-weight:700;margin-bottom:1rem}.admin-login-error .error-content p{color:var(--color-text-primary);margin-bottom:1rem}.admin-login-error .error-content button{background-color:var(--color-text-muted);color:var(--color-text-inverse);border:none;padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s}.admin-login-error .error-content button:hover{background-color:var(--color-text-primary)}.loading-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--color-text-inverse);border-radius:50%;animation:spin 1s linear infinite}.admin-header{position:fixed;top:0;left:0;right:0;height:4rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;z-index:var(--z-modal);box-shadow:var(--shadow-sm)}.admin-header-left{display:flex;align-items:center;gap:1rem}.sidebar-toggle{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--radius-sm);transition:background-color .2s}.sidebar-toggle:hover{background-color:var(--color-surface-subtle)}.hamburger{width:1.5rem;height:1.5rem;position:relative;display:flex;flex-direction:column;justify-content:space-between}.hamburger span{width:100%;height:2px;background-color:var(--color-text-primary);border-radius:1px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.admin-logo{text-decoration:none;display:flex;align-items:center;gap:.5rem}.logo-text{font-size:var(--text-xl);font-weight:700;color:var(--color-text-primary)}.admin-header-center{flex:1;display:flex;justify-content:center}.admin-header-right{display:flex;align-items:center;gap:1rem}.view-site-link{color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);padding:.5rem .75rem;border-radius:var(--radius-sm);transition:color .2s,background-color .2s}.view-site-link:hover{color:var(--color-text-primary);background-color:var(--color-surface-subtle)}.admin-user-menu{position:relative;display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.5rem;border-radius:var(--radius-md);transition:background-color .2s}.admin-user-menu:hover{background-color:var(--color-surface-subtle)}.admin-user-info{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.admin-username{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.admin-role{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:capitalize}.admin-user-avatar{width:2rem;height:2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text-inverse);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--text-sm)}.admin-user-dropdown{position:absolute;top:100%;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 15px -3px #0000001a;min-width:12rem;padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(-.5rem);transition:all .2s ease;z-index:var(--z-modal)}.admin-user-menu:hover .admin-user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:block;width:100%;padding:.5rem 1rem;color:var(--color-text-primary);text-decoration:none;font-size:var(--text-sm);border:none;background:none;cursor:pointer;text-align:left;transition:background-color .2s}.dropdown-item:hover{background-color:var(--color-surface-subtle)}.dropdown-divider{height:1px;background-color:var(--color-border);margin:.5rem 0}.logout-button{color:var(--color-error-dark)}.logout-button:hover{background-color:var(--color-error-bg)}@media (max-width: 768px){.admin-header{padding:0 .5rem}.admin-user-info,.view-site-link{display:none}}.admin-sidebar{position:fixed;top:4rem;left:0;bottom:0;width:16rem;background:var(--color-slate-800);color:var(--color-text-inverse);transform:translate(-100%);transition:transform .3s ease;z-index:999;display:flex;flex-direction:column;overflow-y:auto}.admin-sidebar.open{transform:translate(0)}.sidebar-header{padding:1rem;border-bottom:1px solid #374151;display:flex;align-items:center;justify-content:space-between}.sidebar-header h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:0;color:var(--color-gray-50)}.sidebar-close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .2s,background-color .2s}.sidebar-close:hover{color:var(--color-text-inverse);background-color:#374151}.sidebar-nav{flex:1;padding:1rem 0}.nav-item{margin-bottom:.25rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--color-border);text-decoration:none;transition:all .2s ease;border-left:3px solid transparent}.nav-link:hover{background-color:#374151;color:var(--color-text-inverse)}.nav-link.active{background-color:#1d4ed8;color:var(--color-text-inverse);border-left-color:var(--color-brand)}.nav-group{margin-bottom:.5rem}.nav-group-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--color-text-muted);font-weight:var(--font-weight-medium);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em}.nav-group.active .nav-group-header{color:var(--color-border)}.nav-children{padding-left:1rem}.nav-children .nav-link{padding:.5rem 1rem;font-size:var(--text-sm)}.nav-icon{font-size:var(--text-lg);width:1.5rem;display:flex;align-items:center;justify-content:center}.nav-label{font-weight:var(--font-weight-medium)}.sidebar-footer{padding:1rem;border-top:1px solid #374151}.admin-info{display:flex;align-items:center;gap:.75rem}.admin-avatar{width:2.5rem;height:2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text-inverse);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--text-base)}.admin-details{flex:1;min-width:0}.admin-name{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-role-badge{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:capitalize;font-weight:var(--font-weight-normal)}@media (min-width: 1024px){.admin-sidebar{position:relative;top:0;transform:translate(0);z-index:auto}.sidebar-close{display:none}}@media (max-width: 768px){.admin-sidebar{width:100%;max-width:20rem}}.admin-sidebar::-webkit-scrollbar{width:.25rem}.admin-sidebar::-webkit-scrollbar-track{background:var(--color-slate-800)}.admin-sidebar::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:.125rem}.admin-sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.admin-dashboard{min-height:100vh;background-color:var(--color-gray-50)}.admin-content{margin-top:4rem;margin-left:0;transition:margin-left .3s ease;min-height:calc(100vh - 4rem)}.admin-content.sidebar-open{margin-left:16rem}.admin-content-wrapper{padding:2rem;max-width:100%;margin:0 auto}.sidebar-overlay{position:fixed;top:4rem;left:0;right:0;bottom:0;background-color:var(--color-surface-overlay);z-index:998;display:block}.admin-dashboard-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-gray-50)}.admin-dashboard-loading .loading-spinner{width:3rem;height:3rem;border:4px solid var(--color-border);border-top:4px solid var(--color-brand);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.admin-dashboard-loading p{color:var(--color-text-muted);font-size:var(--text-lg)}.admin-dashboard-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-gray-50);text-align:center;padding:2rem}.admin-dashboard-error h2{color:var(--color-error-dark);font-size:var(--text-2xl);margin-bottom:1rem}.admin-dashboard-error p{color:var(--color-text-muted);margin-bottom:2rem}.admin-dashboard-error a{color:var(--color-brand);text-decoration:none;font-weight:var(--font-weight-medium);padding:.75rem 1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background-color .2s,border-color .2s}.admin-dashboard-error a:hover{background-color:var(--color-gray-50);border-color:var(--color-brand)}@media (max-width: 1023px){.admin-content.sidebar-open{margin-left:0}.sidebar-overlay{display:block}}@media (min-width: 1024px){.admin-content,.admin-content.sidebar-open{margin-left:16rem}.sidebar-overlay{display:none}}@media (max-width: 768px){.admin-content-wrapper{padding:1rem}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-gray-50);padding:20px}.error-boundary-container{max-width:600px;width:100%;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 4px 20px #0000001a;padding:40px;text-align:center}.error-boundary-icon{width:80px;height:80px;margin:0 auto var(--space-6);color:var(--color-error-dark);background-color:#e639461a;border-radius:50%;display:flex;align-items:center;justify-content:center}.error-boundary-icon svg{width:40px;height:40px}.error-boundary-title{font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4)}.error-boundary-description{font-size:var(--text-base);color:var(--color-text-muted);margin:0 0 var(--space-8);line-height:var(--line-height-normal)}.error-boundary-details{text-align:left;margin:var(--space-6) 0;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.error-boundary-details summary{background:var(--color-surface-subtle);padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:var(--font-weight-medium);border:none;outline:none}.error-boundary-details summary:hover{background:var(--color-border)}.error-boundary-details[open] summary{border-bottom:1px solid var(--color-border)}.error-boundary-error-info{padding:var(--space-4);font-size:14px;line-height:1.4}.error-boundary-error-info strong{display:block;margin-bottom:var(--space-2);color:var(--color-text-primary)}.error-boundary-stack{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);margin-top:var(--space-3);font-family:var(--font-family-mono);font-size:12px;line-height:1.3;color:var(--color-text-muted);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.error-boundary-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-8)}.error-boundary-button{padding:var(--space-3) var(--space-6);border-radius:6px;font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;border:none;min-width:120px}.error-boundary-button.primary{background-color:var(--color-error-dark);color:var(--color-text-inverse)}.error-boundary-button.primary:hover{background-color:var(--color-error-dark);filter:brightness(.9);transform:translateY(-1px)}.error-boundary-button.secondary{background-color:var(--color-surface-subtle);color:var(--color-text-muted);border:1px solid var(--color-border)}.error-boundary-button.secondary:hover{background-color:var(--color-border);color:var(--color-text-primary);transform:translateY(-1px)}.error-boundary-help{text-align:left;background:var(--color-gray-50);border-radius:6px;padding:20px;border:1px solid var(--color-border)}.error-boundary-help p{font-size:14px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0 0 var(--space-3)}.error-boundary-help ul{margin:0;padding-left:20px;color:var(--color-text-muted)}.error-boundary-help li{font-size:14px;margin-bottom:var(--space-1);line-height:1.4}@media (max-width: 640px){.error-boundary{padding:var(--space-4)}.error-boundary-container{padding:var(--space-6)}.error-boundary-title{font-size:24px}.error-boundary-actions{flex-direction:column;align-items:stretch}.error-boundary-button{width:100%}}@media (prefers-color-scheme: dark){.error-boundary{background-color:#1a1a1a}.error-boundary-container{background:#2d2d2d;color:#e0e0e0}.error-boundary-title{color:#fff}.error-boundary-description{color:#b0b0b0}.error-boundary-details{border-color:#404040}.error-boundary-details summary{background:#3a3a3a;color:#e0e0e0}.error-boundary-details summary:hover{background:#454545}.error-boundary-stack{background:#2a2a2a;border-color:#404040;color:#b0b0b0}.error-boundary-help{background:#3a3a3a;border-color:#404040}}.hover-home-buttons{align-items:center;display:flex;justify-content:center;gap:10px;padding:10px var(--space-4);min-width:160px;border-radius:var(--radius-md);transition:background-color .2s ease}.hover-home-buttons:hover{background-color:#0000000a}.hover-home-buttons .home{color:var(--color-text-primary);font-family:Crimson Text,Helvetica;font-size:36px;font-weight:var(--font-weight-normal);letter-spacing:0;line-height:normal;text-align:center;white-space:nowrap}.hover-home-buttons .chefs-hover,.hover-home-buttons .recipes-hover,.hover-home-buttons .about-hover,.hover-home-buttons .home-hover{text-decoration:underline}@media (max-width: 1024px){.hover-home-buttons{min-width:140px}.hover-home-buttons .home{font-size:30px}}@media (max-width: 768px){.hover-home-buttons{min-width:auto}}.bottom-half-of-home{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-6);width:100%;padding:0 var(--space-4) var(--space-6);box-sizing:border-box}@media (max-width: 1024px){.bottom-half-of-home{justify-content:flex-start;padding:0 var(--space-4) var(--space-4)}}@media (max-width: 768px){.bottom-half-of-home{display:none}}.logo-area{align-items:center;align-self:stretch;background-color:var(--color-border);display:flex;gap:10px;justify-content:center;padding:var(--space-1) 104px;position:relative;width:200px}.logo-group{height:181.94px;margin-left:-77.44px;margin-right:-77.44px;position:relative;transform:rotate(6.89deg);width:146.88px}.recipe-scroll{height:130px;left:15px;position:absolute;top:43px;width:113px}.scroll-icon-bottom{background-color:#e6e6e6;border-radius:25px;height:27px;left:0;position:absolute;top:103px;width:92px}.scroll-icon-main{background-color:#e7e7e7;height:103px;left:21px;position:absolute;top:14px;width:71px}.scroll-icon-top-bar{background-color:#e7e7e7;border-radius:25px;height:27px;left:21px;position:absolute;top:0;width:92px}.wooden-spoon{height:130px;left:82px;position:absolute;top:57px;transform:rotate(35.16deg);width:28px}.wooden-spoon-handle{background-color:#b68662;border-radius:20px;height:104px;left:7px;position:absolute;top:26px;width:14px}.wooden-spoon-bowl{background-color:#b68662;border-radius:13.99px/20.82px;height:42px;left:0;position:absolute;top:0;transform:rotate(-.01deg);width:28px}.chef-hat{height:49px;left:8px;position:absolute;top:16px;transform:rotate(-37.14deg);width:70px}.chef-hat-support{background-color:#fbfbfb;height:35px;left:9px;position:absolute;top:14px;width:52px}.chef-hat-poof{background-color:#fbfbfb;border-radius:34.96px/13.9px;height:28px;left:0;position:absolute;top:0;width:70px}@media (max-width: 480px){.logo-area{box-sizing:border-box;width:50px;max-width:140px;padding:var(--space-1) var(--space-2);margin-right:var(--space-2);justify-content:center;align-self:center;height:auto;max-height:50px;overflow:hidden;display:inline-flex}.logo-group{transform:rotate(6.89deg) scale(.5);height:90.97px;width:73.44px;margin-left:-38.72px;margin-right:-38.72px}.recipe-scroll{height:65px;left:7.5px;top:21.5px;width:56.5px}.scroll-icon-bottom{height:13.5px;top:51.5px;width:46px}.scroll-icon-main{height:51.5px;left:10.5px;top:7px;width:35.5px}.scroll-icon-top-bar{height:13.5px;left:10.5px;width:46px}.wooden-spoon{height:65px;left:41px;top:28.5px;width:14px}.wooden-spoon-handle{height:52px;left:3.5px;top:13px;width:7px}.wooden-spoon-bowl{height:21px;width:14px}.chef-hat{height:24.5px;left:4px;top:8px;width:35px}.chef-hat-support{height:17.5px;left:4.5px;top:7px;width:26px}.chef-hat-poof{height:14px;width:35px}}@media (max-width: 768px){.logo-area{box-sizing:border-box;width:50px;max-width:140px;padding:var(--space-1) var(--space-2);margin-right:var(--space-2);justify-content:center;align-self:center;height:auto;max-height:50px;overflow:hidden;display:inline-flex}.logo-group{transform:rotate(6.89deg) scale(.5);height:90.97px;width:73.44px;margin-left:-38.72px;margin-right:-38.72px}.recipe-scroll{height:65px;left:7.5px;top:21.5px;width:56.5px}.scroll-icon-bottom{height:13.5px;top:51.5px;width:46px}.scroll-icon-main{height:51.5px;left:10.5px;top:7px;width:35.5px}.scroll-icon-top-bar{height:13.5px;left:10.5px;width:46px}.wooden-spoon{height:65px;left:41px;top:28.5px;width:14px}.wooden-spoon-handle{height:52px;left:3.5px;top:13px;width:7px}.wooden-spoon-bowl{height:21px;width:14px}.chef-hat{height:24.5px;left:4px;top:8px;width:35px}.chef-hat-support{height:17.5px;left:4.5px;top:7px;width:26px}.chef-hat-poof{height:14px;width:35px}}.user-menu-container{position:relative}.user-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;width:260px;background-color:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;overflow:hidden;z-index:var(--z-dropdown);animation:dropdown-appear .2s ease-out}.user-menu-header{display:flex;align-items:center;padding:var(--space-4);background-color:var(--color-surface-subtle);border-bottom:1px solid var(--color-border)}.user-menu-avatar{width:48px;height:48px;border-radius:50%;border:2px solid var(--color-surface);box-shadow:0 2px 6px #0000001a}.user-menu-user-info{margin-left:var(--space-3);overflow:hidden}.user-menu-username{font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-email{font-size:13px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-items{padding:var(--space-2) 0}.user-menu-item{display:block;width:100%;padding:var(--space-3) var(--space-4);text-align:left;background:none;border:none;font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:background-color .2s;text-decoration:none}.user-menu-item:hover{background-color:var(--color-surface-subtle);color:var(--color-error-dark)}.user-menu-signout{color:var(--color-error-dark);font-weight:var(--font-weight-medium)}.user-menu-signout:hover{background-color:#e639461a}.notifications-menu-container{position:relative;margin-right:var(--space-5)}.notifications-bell-button{background:none;border:none;cursor:pointer;position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);transition:color .2s ease;padding:0}.notifications-bell-button:hover{color:var(--color-error-dark)}.notifications-bell-icon{position:relative}.notifications-badge{position:absolute;top:-8px;right:-8px;background-color:var(--color-error-dark);color:var(--color-text-inverse);font-size:10px;font-weight:var(--font-weight-bold);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.notifications-dropdown{position:absolute;top:calc(100% + var(--space-3));right:-50px;width:320px;max-height:480px;background-color:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;overflow:hidden;z-index:var(--z-dropdown);animation:dropdown-appear .2s ease-out}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.notifications-title{margin:0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.notifications-view-all{font-size:13px;color:var(--color-error-dark);text-decoration:none}.notifications-view-all:hover{text-decoration:underline}.notifications-content{max-height:400px;overflow-y:auto}.notifications-loading,.notifications-empty,.notifications-error{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted)}.notifications-spinner{width:24px;height:24px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:var(--color-error-dark);margin:0 auto var(--space-3);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notifications-retry-button{margin-top:var(--space-2);padding:6px var(--space-3);background-color:var(--color-surface-subtle);border:none;border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.notifications-retry-button:hover{background-color:var(--color-border)}.notifications-list{list-style:none;margin:0;padding:0}.notification-item{position:relative;border-bottom:1px solid var(--color-surface-subtle)}.notification-item:last-child{border-bottom:none}.notification-link{display:flex;padding:var(--space-3) var(--space-4);text-decoration:none;color:inherit;transition:background-color .2s}.notification-link:hover{background-color:var(--color-gray-50)}.notification-content{flex:1}.notification-title{margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.notification-message{margin:0 0 var(--space-2);font-size:13px;color:var(--color-text-muted);line-height:1.4}.notification-time{font-size:var(--text-xs);color:var(--color-text-muted)}.notification-unread{background-color:#e639460d}.notification-unread-indicator{width:8px;height:8px;border-radius:50%;background-color:var(--color-error-dark);margin-left:var(--space-2);flex-shrink:0;align-self:center}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--btn-border-radius, 999px);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap, .5rem);padding:var(--btn-padding-y-md, 12px) var(--btn-padding-x-md, 24px);font-family:inherit;font-size:var(--btn-font-size-md, 1rem);font-weight:var(--btn-font-weight, 600);letter-spacing:var(--btn-letter-spacing, .01em);line-height:1.2;text-decoration:none;background:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;position:relative;min-height:var(--btn-min-height-md, 44px);box-shadow:none}.btn:focus-visible{outline:var(--btn-focus-outline-width, 3px) solid var(--btn-focus-outline-color, #111827);outline-offset:var(--btn-focus-outline-offset, 2px)}.btn:disabled{cursor:not-allowed;background:var(--btn-disabled-bg, #9ca3af);color:var(--btn-disabled-color, #f9fafb);box-shadow:var(--btn-disabled-shadow, none);transform:none;border-color:transparent}.btn--loading{pointer-events:none}.btn--loading .btn__content{opacity:.65}.btn--full-width{width:100%}.btn--sm{padding:var(--btn-padding-y-sm, 8px) var(--btn-padding-x-sm, 16px);font-size:var(--btn-font-size-sm, .875rem);min-height:var(--btn-min-height-sm, 36px)}.btn--lg{padding:var(--btn-padding-y-lg, 16px) var(--btn-padding-x-lg, 28px);font-size:var(--btn-font-size-lg, 1.125rem);min-height:var(--btn-min-height-lg, 52px)}.btn__content{display:inline-flex;align-items:center;gap:var(--btn-gap, .5rem)}.btn__label{display:inline-flex;align-items:center}.btn__icon{display:inline-flex;align-items:center;justify-content:center}.btn__spinner{width:1em;height:1em;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;margin-right:calc(var(--btn-gap, .5rem) * .5);animation:btn-spinner .75s linear infinite}@keyframes btn-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn--primary{color:var(--btn-primary-color, #ffffff);background:var(--btn-primary-bg, linear-gradient(135deg, #43acbc 0%, #2d6c7a 100%));box-shadow:var(--btn-primary-shadow, 0 16px 30px rgba(67, 172, 188, .35))}.btn--primary:hover:not(:disabled){transform:translateY(-2px);background:var(--btn-primary-bg-hover, linear-gradient(135deg, #4dc0c7 0%, #347a85 100%));box-shadow:var(--btn-primary-shadow-hover, 0 20px 34px rgba(67, 172, 188, .4));color:var(--btn-primary-color-hover, var(--btn-primary-color, #ffffff))}.btn--primary:active:not(:disabled){transform:translateY(0);background:var(--btn-primary-bg-active, linear-gradient(135deg, #3795a2 0%, #245762 100%));box-shadow:var(--btn-primary-shadow-active, 0 12px 20px rgba(67, 172, 188, .28));color:var(--btn-primary-color-active, var(--btn-primary-color, #ffffff))}.btn--secondary{background:var(--btn-secondary-bg, rgba(255, 255, 255, .12));color:var(--btn-secondary-color, #0f172a);border:1px solid var(--btn-secondary-border, rgba(67, 172, 188, .35));box-shadow:var(--btn-secondary-shadow, 0 6px 16px rgba(67, 172, 188, .18))}.btn--secondary:hover:not(:disabled){transform:translateY(-2px);background:var(--btn-secondary-bg-hover, rgba(255, 255, 255, .2));box-shadow:var(--btn-secondary-shadow-hover, 0 12px 24px rgba(67, 172, 188, .22));border-color:var( --btn-secondary-border-hover, var(--btn-secondary-border, rgba(67, 172, 188, .35)) );color:var(--btn-secondary-color-hover, var(--btn-secondary-color, #0f172a))}.btn--secondary:active:not(:disabled){transform:translateY(0);background:var(--btn-secondary-bg-active, rgba(255, 255, 255, .12));box-shadow:var(--btn-secondary-shadow-active, 0 6px 12px rgba(67, 172, 188, .18));border-color:var( --btn-secondary-border-active, var(--btn-secondary-border, rgba(67, 172, 188, .35)) );color:var(--btn-secondary-color-active, var(--btn-secondary-color, #0f172a))}.btn--danger{color:var(--btn-danger-color, #ffffff);background:var(--btn-danger-bg, linear-gradient(135deg, #f87171 0%, #c53030 100%));box-shadow:var(--btn-danger-shadow, 0 16px 30px rgba(239, 68, 68, .35))}.btn--danger:hover:not(:disabled){transform:translateY(-2px);background:var(--btn-danger-bg-hover, linear-gradient(135deg, #fb7185 0%, #b91c1c 100%));box-shadow:var(--btn-danger-shadow-hover, 0 20px 34px rgba(239, 68, 68, .4));color:var(--btn-danger-color-hover, var(--btn-danger-color, #ffffff))}.btn--danger:active:not(:disabled){transform:translateY(0);background:var(--btn-danger-bg-active, linear-gradient(135deg, #ef4444 0%, #991b1b 100%));box-shadow:var(--btn-danger-shadow-active, 0 12px 20px rgba(239, 68, 68, .28));color:var(--btn-danger-color-active, var(--btn-danger-color, #ffffff))}.btn--ghost{background:transparent;color:var(--btn-ghost-color, #0f172a);border:1px solid var(--btn-ghost-border, rgba(15, 23, 42, .2));box-shadow:none}.btn--ghost:hover:not(:disabled){background:var(--btn-ghost-bg-hover, rgba(15, 23, 42, .05));color:var(--btn-ghost-color-hover, var(--btn-ghost-color, #0f172a));border-color:var( --btn-ghost-border-hover, var(--btn-ghost-border, rgba(15, 23, 42, .2)) )}.btn--ghost:active:not(:disabled){background:var(--btn-ghost-bg-active, rgba(15, 23, 42, .08));border-color:var( --btn-ghost-border-active, var(--btn-ghost-border, rgba(15, 23, 42, .2)) );color:var(--btn-ghost-color-active, var(--btn-ghost-color, #0f172a))}.btn:disabled:hover,.btn:disabled:active{transform:none;box-shadow:var(--btn-disabled-shadow, none)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-surface-overlay);display:flex;justify-content:center;align-items:center;z-index:var(--z-modal)}.modal-content{background-color:var(--color-surface);padding:var(--space-5);border-radius:var(--radius-md);max-width:80%;max-height:80vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:var(--space-2);right:var(--space-2);background:none;border:none;font-size:var(--text-2xl);cursor:pointer}.search-sprite-icon{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:1rem;background-color:var(--color-surface);background-repeat:no-repeat;background-size:300% 400%;box-shadow:inset 0 0 0 1px #7c42211f;overflow:hidden}.search-sprite-icon--image{padding:0;background:var(--color-surface)}.search-sprite-icon__image{display:block;width:100%;height:100%;object-fit:cover}.search-sprite-icon--fallback{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-weight-bold)}.simple-search-overlay{width:min(68rem,100%);display:flex;flex-direction:column;gap:.85rem;color:var(--color-text-primary)}.simple-search-overlay__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.simple-search-overlay__title{margin:0;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);color:var(--color-text-muted)}.simple-search-overlay__form{display:flex;flex-direction:column;gap:.95rem}.simple-search-overlay__search-row{display:flex;align-items:center;gap:.85rem;background:var(--color-border);padding:var(--space-4)}.simple-search-overlay__input-wrap{display:flex;align-items:center;width:100%;border:1px solid rgba(0,0,0,.24);border-radius:2px;background:var(--color-surface);min-height:4.2rem;padding-right:.2rem}.simple-search-overlay__input{flex:1;min-height:4.1rem;padding:.65rem .85rem;border:none;border-radius:0;font-size:clamp(1.2rem,1.9vw,2rem);line-height:var(--line-height-tight);color:var(--color-text-primary)}.simple-search-overlay__input::placeholder{color:#00000080}.simple-search-overlay__input:focus-visible{outline:none}.simple-search-overlay__search-button{--btn-primary-bg: transparent;--btn-primary-bg-hover: var(--color-surface-subtle);--btn-primary-bg-active: var(--color-border);--btn-primary-color: var(--color-text-muted);--btn-primary-shadow: none;--btn-primary-shadow-hover: none;--btn-primary-shadow-active: none;--btn-focus-outline-color: var(--color-text-muted);border:none;border-radius:var(--radius-md);min-width:2.8rem;min-height:2.8rem;padding:0}.simple-search-overlay__search-icon{width:1.8rem;height:1.8rem;display:block}.simple-search-overlay__advanced-link{display:inline-flex;align-items:center;justify-content:center;width:4.2rem;min-width:4.2rem;height:4.2rem;border-radius:2px;border:1px solid rgba(0,0,0,.2);background:var(--color-surface);color:var(--color-text-primary);text-decoration:none}.simple-search-overlay__advanced-icon{width:2rem;height:2rem;display:block}.simple-search-overlay__advanced-link:hover,.simple-search-overlay__advanced-link:focus-visible{background:var(--color-surface-subtle);border-color:#00000059;outline:none}.simple-search-overlay__section{display:flex;flex-direction:column;gap:.75rem;background:var(--color-border);padding:var(--space-4)}.simple-search-overlay__section-title{margin:0;font-size:var(--text-base);font-weight:var(--font-weight-bold)}.simple-search-overlay__tool-row{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:var(--space-1)}.simple-search-overlay__tool{display:flex;align-items:center;justify-content:center;width:4.25rem;min-width:4.25rem;height:4.25rem;padding:.2rem;border:3px solid rgba(0,0,0,.25);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.simple-search-overlay__tool:hover,.simple-search-overlay__tool:focus-visible,.simple-search-overlay__tool--selected{border-color:var(--color-text-primary);box-shadow:0 0 0 2px #0000001f}.simple-search-overlay__tool-icon{width:100%;height:100%}.simple-search-overlay__tool .search-sprite-icon{width:100%;height:100%;border-radius:var(--radius-md);box-shadow:none;background-color:var(--color-surface)}.simple-search-overlay__special-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem}.simple-search-overlay__special{display:block;aspect-ratio:400 / 375;padding:0;border:none;border-radius:1.25rem;background:var(--color-surface);overflow:hidden;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.simple-search-overlay__special:hover,.simple-search-overlay__special:focus-visible,.simple-search-overlay__special--selected{box-shadow:0 0 0 2px #00000024}.simple-search-overlay__special-image{width:100%;height:100%;border-radius:0;background-color:var(--color-surface);box-shadow:none}@media (max-width: 767px){.simple-search-overlay{width:100%}.simple-search-overlay__search-row{align-items:stretch}.simple-search-overlay__advanced-link{width:100%;min-width:0;height:3rem;font-size:1.4rem}.simple-search-overlay__tool-row,.simple-search-overlay__special-row{display:flex;overflow-x:auto;padding-bottom:var(--space-1);scroll-snap-type:x proximity}.simple-search-overlay__tool{min-width:4.25rem;flex:0 0 4.25rem;scroll-snap-align:start}.simple-search-overlay__special{min-width:clamp(14rem,72vw,16rem);flex:0 0 clamp(14rem,72vw,16rem);scroll-snap-align:start}}.add-more{align-items:center;background-color:var(--color-surface);border:2px solid;border-color:var(--color-text-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2);height:50px;justify-content:center;overflow:hidden;padding:var(--space-2);position:relative;width:50px}.add-more .add{height:25px;position:relative;width:25px}.add-more .overlap-group{height:25px;position:relative}.add-more .rectangle{background-color:var(--color-text-primary);height:25px;left:10px;position:absolute;top:0;width:5px}.add-more .rectangle-2{background-color:var(--color-text-primary);height:25px;left:10px;position:absolute;top:0;transform:rotate(90deg);width:5px}.deficiencies{align-items:center;background-color:var(--color-surface);border:2px solid;border-color:var(--color-text-primary);border-radius:var(--radius-lg);display:inline-flex;gap:var(--space-2);height:50px;justify-content:center;overflow:hidden;padding:var(--space-2);position:relative}.deficiencies .vit-a-wrapper{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center;position:relative}.deficiencies .vit-a{color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--text-2xl);font-weight:var(--font-weight-medium);letter-spacing:0;line-height:normal;margin-top:-1px;position:relative;width:fit-content}.diets{align-items:center;background-color:var(--color-surface);border:2px solid;border-color:var(--color-text-primary);border-radius:var(--radius-lg);display:inline-flex;gap:var(--space-2);height:50px;justify-content:center;overflow:hidden;padding:var(--space-2);position:relative}.diets .text-frame{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center;position:relative}.diets .diet{color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--text-2xl);font-weight:var(--font-weight-medium);letter-spacing:0;line-height:normal;margin-top:-1px;position:relative;width:fit-content}.ingredients{align-items:center;display:inline-flex;gap:var(--space-2);height:40px;justify-content:left;padding:var(--space-2);position:relative}.ingredients .ingredient{color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--text-lg);font-weight:var(--font-weight-normal);letter-spacing:0;line-height:var(--line-height-normal);position:relative;width:fit-content}.advanced-search-modal{width:100%;max-width:600px;max-height:80vh;overflow-y:auto;padding:var(--space-4)}.advanced-search-modal__header{margin-bottom:1.5rem}.advanced-search-modal__title{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.advanced-search-modal__offline-banner{background-color:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);color:var(--color-warning-dark);font-size:var(--text-sm)}.advanced-search-modal__error{background-color:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-4);color:var(--color-error-dark)}.advanced-search-modal__error p{margin:0 0 var(--space-2) 0}.advanced-search-modal__retry{margin-top:var(--space-2)}.advanced-search-modal__form{display:flex;flex-direction:column;gap:1.5rem}.advanced-search-modal__section{display:flex;flex-direction:column;gap:.75rem}.advanced-search-modal__section-title{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.advanced-search-modal__input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit;transition:border-color .2s}.advanced-search-modal__input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px #007bff1a}.advanced-search-modal__tool-row{display:flex;flex-wrap:wrap;gap:.75rem}.advanced-search-modal__tool{width:64px;height:64px;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:var(--space-2)}.advanced-search-modal__tool:hover{border-color:var(--color-brand);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.advanced-search-modal__tool--selected{border-color:var(--color-brand);background-color:var(--color-info-bg);box-shadow:0 4px 8px #007bff33}.advanced-search-modal__tool-icon{width:100%;height:100%;object-fit:contain}.advanced-search-modal__label{margin-bottom:var(--space-2)}.advanced-search-modal__contents{display:flex;flex-direction:column;gap:var(--space-2)}.advanced-search-modal__items{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.advanced-search-modal__item-wrapper{display:inline-block}.advanced-search-modal__extension{padding:var(--space-2)}.advanced-search-modal__extension-text{font-size:var(--text-sm);color:var(--color-text-muted)}.advanced-search-modal__actions{display:flex;justify-content:center;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.advanced-search-modal__search-button{min-width:200px}@media (max-width: 768px){.advanced-search-modal{max-width:100%;max-height:90vh;padding:.75rem}.advanced-search-modal__title{font-size:var(--text-xl)}.advanced-search-modal__tool{width:56px;height:56px}.advanced-search-modal__tool-row{gap:var(--space-2)}}._overlay_17f39_1{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:calc(var(--z-drawer) - 1);pointer-events:none}._overlayOpen_17f39_12{opacity:1;visibility:visible;pointer-events:auto}._drawer_17f39_18{position:fixed;top:0;right:0;height:100vh;width:min(320px,85vw);max-width:400px;background:var(--color-surface);box-shadow:var(--shadow-drawer);transform:translate(100%);transition:transform .25s ease;display:flex;flex-direction:column;z-index:var(--z-drawer);max-height:100vh}@supports (height: 100dvh){._drawer_17f39_18{height:100dvh;max-height:100dvh}}._drawerOpen_17f39_43{transform:translate(0)}._header_17f39_47{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid var(--color-surface-subtle)}._title_17f39_55{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}._closeButton_17f39_61{background:none;border:none;padding:var(--space-2);border-radius:50%;cursor:pointer;transition:background-color .2s ease}._closeButton_17f39_61:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}._closeButton_17f39_61:hover{background-color:#9ca3af29}._menu_17f39_80{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-5) calc(var(--space-8) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-6)}._sectionLabel_17f39_89{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-2)}._linkList_17f39_97{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}._accountDivider_17f39_106{height:1px;background-color:var(--color-border);margin:var(--space-2) 0}._navLink_17f39_112{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);text-decoration:none;color:var(--color-text-primary);background:var(--color-gray-50);transition:background-color .2s ease,color .2s ease}._navLink_17f39_112:hover{background:var(--color-border)}._navLink_17f39_112:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}._navLinkAccent_17f39_134{background:var(--color-gray-50);color:var(--color-text-primary)}._navLinkAccent_17f39_134:hover{background:var(--color-border)}._footer_17f39_143{padding:var(--space-4) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));border-top:1px solid var(--color-surface-subtle);display:flex;gap:var(--space-3);background:var(--color-surface);position:sticky;bottom:0;box-shadow:0 -6px 16px #0f172a14}._authButton_17f39_155{flex:1;border:none;border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--text-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color .2s ease,color .2s ease}._signInButton_17f39_166{background:var(--color-text-primary);color:var(--color-text-inverse)}._signInButton_17f39_166:hover{background:var(--color-brand-dark)}._signOutButton_17f39_175{background:var(--color-surface-subtle);color:var(--color-error-dark)}._signOutButton_17f39_175:hover{background:var(--color-border)}.header-container{width:100%;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-3)}.header-inner{width:100%;max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) var(--space-8);box-sizing:border-box}.header-logo-link{display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-right{display:flex;flex-direction:column;align-items:stretch;flex:1;gap:var(--space-3);min-width:0}.header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%}.header-main{flex:1;display:flex;align-items:center;justify-content:center;min-width:0}.header-actions{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.header-search-bar-container{width:100%;max-width:420px}.header-search-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-md);background:var(--color-surface);text-decoration:none;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;transition:border-color .2s ease,box-shadow .2s ease}.header-search-bar:hover{border-color:var(--color-brand);box-shadow:var(--shadow-lg)}.header-search-bar:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.header-search-text{color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--text-base);font-weight:var(--font-weight-medium);white-space:nowrap}.header-search-icon{position:relative;width:32px;height:32px}.header-search-icon-group{position:relative;width:30px;height:29px}.header-search-handle{background-color:var(--color-text-muted);height:3px;width:16px;position:absolute;top:21px;left:16px;transform:rotate(44deg)}.header-search-circle{border:3px solid var(--color-text-muted);border-radius:25px;width:22px;height:22px;position:absolute;top:0;left:0}.header-mobile-trigger{display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);width:44px;height:44px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.header-mobile-trigger:hover{background-color:var(--color-surface-subtle);border-color:var(--color-text-muted)}.header-mobile-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.header-mobile-trigger-bar{width:20px;height:2px;border-radius:var(--radius-full);background-color:var(--color-text-primary)}.header-bottom{display:flex;justify-content:center;width:100%;padding:0 var(--space-8) var(--space-3);box-sizing:border-box}.offline-banner{display:flex;align-items:center;gap:var(--space-2);margin:0 auto var(--space-4);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-error-dark);color:var(--color-text-inverse);font-size:var(--text-base);width:calc(100% - 2 * var(--space-8));max-width:1200px;box-sizing:border-box}.offline-banner svg{flex-shrink:0}@media (max-width: 1280px){.header-inner{padding:var(--space-4) var(--space-6)}.header-bottom{padding:0 var(--space-6) var(--space-3)}.offline-banner{width:calc(100% - 2 * var(--space-6))}}@media (max-width: 1024px){.header-inner{gap:var(--space-4)}.header-search-bar-container{max-width:360px}}@media (max-width: 768px){.header-inner{padding:var(--space-3) var(--space-5)}.header-main{justify-content:flex-start}.header-logo-link{max-width:160px}.header-search-bar-container{display:none}.header-actions{gap:var(--space-3)}.header-actions .notifications-menu,.header-actions .user-menu-container{display:none}.header-mobile-trigger{display:flex}.header-mobile-trigger.mobile-only{display:flex!important}.header-bottom{padding:0 var(--space-5) var(--space-3)}.offline-banner{width:calc(100% - 2 * var(--space-5));margin-bottom:var(--space-4)}}@media (max-width: 480px){.header-inner{padding:var(--space-3) var(--space-4)}.header-logo-link{max-width:140px}.header-bottom{padding:0 var(--space-4) var(--space-2)}.offline-banner{width:calc(100% - var(--space-8));padding-left:var(--space-3);padding-right:var(--space-3)}}.header-create-recipe{align-items:center;background-color:#53b6cd;border-radius:5px;display:flex;height:40px;justify-content:center;margin-top:25px;margin-right:20px;padding:24px 20px;text-decoration:none;transition:background-color .2s}.header-create-recipe:hover{background-color:#3d9bb1}.header-create-recipe-text{color:#fff;font-family:Inter,Helvetica;font-size:16px;font-weight:500;letter-spacing:0;line-height:normal}.route-error-boundary{min-height:100vh;background:var(--color-surface-subtle)}.route-error-container{max-width:600px;margin:0 auto;padding:4rem 2rem;text-align:center}.route-error-title{font-size:var(--text-3xl);font-weight:700;color:var(--color-error-dark);margin-bottom:1rem}.route-error-message{font-size:var(--text-lg);color:var(--color-text-primary);margin-bottom:2rem;line-height:1.6}.route-error-details{text-align:left;margin:2rem 0;padding:1rem;background:var(--color-surface-subtle);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.route-error-details summary{cursor:pointer;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.route-error-details summary:hover{color:var(--color-text-primary)}.route-error-stack{margin-top:1rem;padding:1rem;background:var(--color-surface);border-radius:var(--radius-sm);font-size:var(--text-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.route-error-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.toast-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3);max-width:420px;width:100%;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;transform:translate(100%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;max-width:100%}.toast-visible{transform:translate(0);opacity:1}.toast-exiting{transform:translate(100%);opacity:0}.toast-error{background:var(--color-error-bg);border-left:4px solid var(--color-error-dark);color:var(--color-error-dark)}.toast-warning{background:var(--color-warning-bg);border-left:4px solid var(--color-warning);color:var(--color-warning-dark)}.toast-success{background:var(--color-success-bg);border-left:4px solid var(--color-success);color:var(--color-success-dark)}.toast-info{background:var(--color-info-bg);border-left:4px solid var(--color-info);color:var(--color-info-dark)}.toast-icon{flex-shrink:0;width:24px;height:24px;margin-top:2px}.toast-icon svg{width:100%;height:100%}.toast-content{flex:1;min-width:0}.toast-message{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1.4;margin-bottom:var(--space-1);word-wrap:break-word}.toast-source{font-size:var(--text-xs);opacity:.8;margin-bottom:var(--space-2);font-family:var(--font-family-mono)}.toast-details{margin-top:var(--space-2);font-size:var(--text-xs)}.toast-details summary{cursor:pointer;font-weight:var(--font-weight-medium);margin-bottom:var(--space-1);outline:none}.toast-details summary:hover{text-decoration:underline}.toast-details pre{background:#0000000d;border-radius:var(--radius-sm);padding:var(--space-2);margin:var(--space-1) 0 0;font-size:var(--text-xs);line-height:1.3;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.toast-dismiss{flex-shrink:0;width:20px;height:20px;background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s ease;margin-top:2px;color:inherit}.toast-dismiss:hover{opacity:1;background:#0000001a}.toast-dismiss svg{width:16px;height:16px}@media (max-width: 480px){.toast-container{top:var(--space-2);right:var(--space-2);left:var(--space-2);max-width:none}.toast{padding:var(--space-3);gap:var(--space-2)}.toast-message{font-size:var(--text-sm)}.toast-source{font-size:var(--text-xs)}}@media (prefers-color-scheme: dark){.toast-error{background:#2c1517;color:#ff8a80}.toast-warning{background:#2c1f0a;color:#ffb74d}.toast-success{background:#1b2e1b;color:#81c784}.toast-info{background:#0d1b2a;color:#64b5f6}.toast-details pre{background:#ffffff1a;color:inherit}.toast-dismiss:hover{background:#ffffff1a}}.toast:nth-child(n+4){transform:scale(.95) translateY(-8px);opacity:.7}.toast:nth-child(n+5){display:none}.toast:hover{transform:translate(0) scale(1.02);box-shadow:var(--shadow-lg)}.toast-exiting:hover{transform:translate(100%) scale(1)}.offline-banner{display:flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4);font-size:14px;font-weight:var(--font-weight-medium);z-index:var(--z-modal);box-shadow:0 2px 4px #0000001a;transition:all .3s ease;animation:slideDown .3s ease-out}.offline-banner--top{position:sticky;top:0;width:100%}.offline-banner--bottom{position:fixed;bottom:0;left:0;right:0;width:100%}.offline-banner--offline{background:linear-gradient(135deg,var(--color-error) 0%,var(--color-error-dark) 100%);color:var(--color-text-inverse)}.offline-banner--slow{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-dark) 100%);color:var(--color-text-inverse)}.offline-banner--syncing{background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-dark) 100%);color:var(--color-text-inverse)}.offline-banner__content{display:flex;align-items:center;gap:var(--space-3);max-width:1200px;width:100%;margin:0 auto}.offline-banner__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.offline-banner__icon svg{width:18px;height:18px}.offline-banner__message{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.offline-banner__primary-message{font-weight:var(--font-weight-medium);line-height:1.4}.offline-banner__details{display:flex;gap:var(--space-3);font-size:12px;opacity:.9;flex-wrap:wrap}.offline-banner__detail{background:#fff3;padding:2px 6px;border-radius:var(--radius-sm);font-weight:var(--font-weight-normal)}.offline-banner__queue-status{display:flex;align-items:center;gap:var(--space-2);font-size:12px;opacity:.9}.offline-banner__processing{display:flex;align-items:center;gap:6px}.offline-banner__spinner{width:12px;height:12px;border:1.5px solid rgba(255,255,255,.3);border-top:1.5px solid var(--color-text-inverse);border-radius:50%;animation:spin 1s linear infinite}.offline-banner__dismiss{background:none;border:none;color:inherit;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;flex-shrink:0}.offline-banner__dismiss:hover{background:#fff3}.offline-banner__dismiss:focus{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.offline-banner__dismiss svg{width:14px;height:14px}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.offline-banner{padding:10px var(--space-3);font-size:13px}.offline-banner__content{gap:var(--space-2)}.offline-banner__details{display:none}.offline-banner__icon svg{width:16px;height:16px}}@media (max-width: 480px){.offline-banner{padding:var(--space-2) 10px;font-size:12px}.offline-banner__primary-message{font-size:12px}.offline-banner__queue-status{font-size:11px}}@media (prefers-color-scheme: dark){.offline-banner{box-shadow:0 2px 4px #0000004d}}@media (prefers-contrast: high){.offline-banner{border:2px solid currentColor}.offline-banner__detail{border:1px solid rgba(255,255,255,.5)}}@media (prefers-reduced-motion: reduce){.offline-banner{animation:none;transition:none}.offline-banner__spinner{animation:none;border:1.5px solid rgba(255,255,255,.5);border-top:1.5px solid var(--color-text-inverse)}}@media print{.offline-banner{display:none}}
