:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#262626;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 100%);--secondary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 50%, #32bd9f 100%);--success-gradient: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--background-gradient: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);--analysis-gradient: linear-gradient(135deg, #f8f9ff 0%, #fff5f5 100%);--success-bg-gradient: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);--primary-color: #32adbd;--primary-dark: #2a94a3;--primary-light: #4bc5d4;--accent-blue: #3897f0;--accent-indigo: #4f46e5;--accent-indigo-dark: #4338ca;--accent-teal: #48cab2;--success-color: #10b981;--success-dark: #059669;--success-darker: #38a169;--error-color: #ef4444;--error-text: #ed4956;--error-dark: #dc2626;--error-darker: #b91c1c;--error-bg: #fee2e2;--error-border: #fecaca;--warning-color: #f59e0b;--warning-bg: #fef3c7;--info-color: #3182ce;--info-bg: #eff6ff;--like-color: #ff6b6b;--text-primary: #262626;--text-secondary: #6b7280;--text-tertiary: #8e8e8e;--text-muted: #9ca3af;--text-dark: #1f2937;--text-gray: #374151;--text-light-gray: #666;--text-very-light: #c7c7c7;--border-light: #e5e7eb;--border-medium: #d1d5db;--border-gray: #e1e8ed;--border-light-gray: #efefef;--border-very-light: #f3f4f6;--border-lighter: #dbdbdb;--border-dark: #333;--background-light: #f9fafb;--background-white: #ffffff;--background-gray: #f8f9fa;--background-off-white: #f3f4f6;--background-lighter: #f0f2f5;--background-pale: #f0f0f0;--background-error: #ffeaea;--background-error-light: #fef2f2;--background-success-light: #ecfdf5;--overlay-dark: rgba(0, 0, 0, .5);--overlay-darker: rgba(0, 0, 0, .6);--overlay-darkest: rgba(0, 0, 0, .7);--overlay-light: rgba(255, 255, 255, .2);--primary-alpha-10: rgba(50, 173, 189, .1);--primary-alpha-20: rgba(50, 173, 189, .2);--indigo-alpha-5: rgba(79, 70, 229, .05);--gray-alpha-5: rgba(107, 114, 128, .05);--white-alpha-20: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 4px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 30px rgba(0, 0, 0, .12);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .15);--shadow-3xl: 0 25px 80px rgba(0, 0, 0, .3);--shadow-primary: 0 4px 15px rgba(50, 173, 189, .3);--shadow-primary-hover: 0 8px 25px rgba(50, 173, 189, .4);--shadow-success: 0 4px 12px rgba(16, 185, 129, .1);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%;--header-height: 60px;--max-content-width: 935px;--touch-target: 44px;--border-radius: var(--radius-lg);--transition: all .2s ease;height:100%}body{overflow-y:auto}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--background-white);max-width:100vw;overflow-x:hidden}.app-main{flex:1;width:100%;max-width:100vw;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 768px){.app{box-shadow:var(--shadow-lg);max-width:100%;margin:0 auto}.app-main{max-width:var(--max-content-width);margin:2rem auto;padding:0}}.app-loading,.feed-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.loading-spinner{width:50px;height:50px;border:4px solid var(--primary-alpha-10);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;box-shadow:var(--shadow-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.auth-card{background:#fff;padding:40px;border-radius:20px;box-shadow:var(--shadow-2xl);width:100%;max-width:400px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--overlay-light)}.auth-logo{display:flex;justify-content:center;margin-bottom:24px}.auth-logo-image{height:80px;width:80px;object-fit:contain;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.auth-title{font-size:28px;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text-primary);background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:var(--text-tertiary);margin-bottom:32px;font-size:16px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input{padding:14px 18px;border:2px solid var(--border-gray);border-radius:var(--radius-lg);font-size:16px;transition:all .3s ease;background:var(--background-gray)}.auth-input:focus{outline:none;border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 3px var(--primary-alpha-10);transform:translateY(-1px)}.auth-button{padding:14px 20px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-primary)}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-primary-hover)}.auth-button:disabled{background:var(--border-gray);cursor:not-allowed;transform:none;box-shadow:none}.auth-button:disabled.registration-complete{background:var(--success-gradient);color:#fff;cursor:default}.auth-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:var(--text-tertiary);font-size:14px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-gray)}.auth-divider span{padding:0 12px}.auth-button-google{background:#fff;color:#1f2937;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:500}.auth-button-google:hover:not(:disabled){background:#f9fafb;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.auth-button-google:disabled{background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb}.auth-error{color:var(--error-text);font-size:14px;text-align:center;padding:8px;background:var(--background-error);border-radius:4px}.auth-success{color:var(--success-dark);font-size:14px;text-align:center;padding:32px 24px;background:var(--success-bg-gradient);border:1px solid var(--success-color);border-radius:var(--radius-lg);line-height:1.5;box-shadow:var(--shadow-success)}.auth-success-icon{font-size:48px;margin-bottom:16px}.auth-success h2{color:var(--text-primary);font-size:24px;font-weight:700;margin:0 0 16px}.auth-success p{color:var(--text-secondary);margin:8px 0}.auth-success strong{color:var(--text-primary);font-weight:600}.auth-success-hint{font-size:13px;color:var(--text-tertiary);margin-top:16px!important}.auth-switch{text-align:center;margin-top:24px;color:var(--text-tertiary)}.auth-link{background:none;border:none;color:var(--accent-blue);cursor:pointer;font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}.header{background:var(--background-white);border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-content{max-width:1200px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.header-logo{display:flex;align-items:center;gap:.75rem;margin-right:1em}.logo-image{height:2.5rem;width:2.5rem;object-fit:contain;border-radius:var(--radius-md)}.logo-text{display:flex;flex-direction:column}.logo-title{font-size:1.5rem;font-weight:800;color:var(--text-primary);margin:0;line-height:1}.logo-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:500;line-height:1}.nav-desktop{display:flex;gap:1rem}.nav-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:none;outline:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.875rem;white-space:nowrap;box-shadow:none}.nav-item:hover{background:var(--primary-alpha-10);color:var(--primary-color);border-radius:var(--radius-md)}.nav-item.active{background:var(--primary-gradient);color:var(--background-white)}.header-actions{display:flex;align-items:center;gap:1rem;margin:0rem 1rem}.action-text{display:inline}.user-profile{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--background-light);border-radius:var(--radius-lg)}.user-email{font-size:.875rem;font-weight:600;color:var(--text-primary)}.btn-icon{padding:.5rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease}.btn-icon:hover{background:var(--background-white);color:var(--text-primary)}.menu-toggle{display:none;padding:.5rem;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md)}.nav-mobile{position:absolute;top:100%;left:0;right:0;background:var(--background-white);border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-lg);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease;padding:1rem 0}.nav-mobile.open{transform:translateY(0);opacity:1;visibility:visible}.nav-item-mobile{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem 1.5rem;border:none;background:transparent;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:1rem}.nav-item-mobile:hover{background:var(--background-light);color:var(--text-primary)}.nav-item-mobile.active{background:var(--primary-alpha-10);color:var(--primary-color);border-right:3px solid var(--primary-color)}.nav-divider{height:1px;background:var(--border-light);margin:.5rem 1.5rem}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-dark);z-index:999}@media (max-width: 1024px){.nav-desktop{display:none}.menu-toggle{display:block}.action-text{display:none}.user-profile{padding:.5rem}.user-email{display:none}}@media (max-width: 640px){.header-content{padding:1rem}.logo-subtitle{display:none}.header-actions{gap:.5rem}.post-header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px}.post-header>.flex.items-center.gap-md{flex:1;min-width:0}.author-info{min-width:0;flex:1}.author-info h3,.author-info p,.post-location-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-header>.flex.gap-md{flex-shrink:0}}.feed{max-width:614px;margin:0 auto;padding:0 20px;width:100%}.feed-empty{text-align:center;padding:60px 20px;color:var(--text-tertiary)}.post{background:#fff;border:1px solid var(--border-gray);border-radius:var(--radius-xl);margin-bottom:24px;overflow:visible;box-shadow:var(--shadow-md);transition:all .3s ease}.post:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.post-header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px;position:relative;overflow:visible;border-radius:var(--radius-xl) 16px 0 0}.author-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden}.author-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;box-shadow:var(--shadow-primary)}.author-info h3{font-size:14px;font-weight:600;color:var(--text-primary)}.author-info p{font-size:12px;color:var(--text-tertiary)}.post-location,.post-location-container{font-size:11px;color:var(--text-light-gray);margin-top:2px;display:flex;align-items:center;gap:4px}.location-text{display:flex;align-items:center}.restaurant-name-link{color:var(--accent-indigo);cursor:pointer;font-weight:500;transition:all .2s ease;border-radius:4px;padding:1px 2px}.restaurant-name-link:hover{color:var(--accent-indigo-dark);background:var(--indigo-alpha-5);text-decoration:underline}.post-dish-link{color:var(--accent-indigo);cursor:pointer;transition:all .2s ease}.post-dish-link:hover{text-decoration:underline}.location-text-clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:1px 2px}.location-text-clickable:hover{background:var(--gray-alpha-5);color:var(--text-gray)}.post-cost{color:var(--accent-teal);font-weight:600}.post-menu{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:4px}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border-gray);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);min-width:180px;padding:8px 0;z-index:100;margin-top:4px;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:none;color:var(--text-primary);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:all .2s ease}.dropdown-menu button:hover{background:var(--background-off-white)}.dropdown-menu button.text-danger{color:var(--error-color)}.dropdown-menu button.text-danger:hover{background:var(--background-error-light)}.post-image{width:100%;max-height:500px;overflow:hidden;display:flex;align-items:center;justify-content:center}.post-image img{width:100%;height:auto;max-height:500px;object-fit:contain;display:block}.analysis-dishes-section{margin-bottom:16px}.analysis-dishes-section .post-dishes-list{display:flex;flex-direction:column;gap:8px}.dish-card-small{display:flex;align-items:center;gap:12px;padding:8px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:var(--background-light);border:1px solid var(--border-light)}.dish-card-small:hover{background:var(--background-off-white);border-color:var(--primary-light);transform:translateY(-1px)}.dish-card-small .dish-image-small{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0}.dish-card-small .dish-info-small{flex:1;min-width:0}.dish-card-small .dish-name-small{display:block;font-size:.9rem;font-weight:600;color:var(--text-dark);line-height:1.3}.dish-card-small .dish-description-small{margin:2px 0 0;font-size:.8rem;color:var(--text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (min-width: 768px){.dishes-grid{flex-direction:row;flex-wrap:wrap}.dish-card-small{flex:1;min-width:200px}}.post-actions{padding:8px 16px}.action-buttons{display:flex;gap:16px}.action-button{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-primary);transition:all .3s ease;border-radius:50%}.action-button:hover{color:#667eea;background:var(--primary-alpha-10);transform:scale(1.1)}.action-button.liked{color:var(--like-color);animation:heartBeat .3s ease}@keyframes heartBeat{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.post-info{padding:0 16px 16px}.likes-count{font-weight:600;font-size:14px;margin-bottom:8px}.post-caption{font-size:14px;margin-bottom:8px;line-height:1.4}.post-caption strong{font-weight:600}.food-analysis{margin:16px 0;padding:16px;background:var(--analysis-gradient);border-radius:var(--radius-lg);border:1px solid var(--primary-alpha-10)}.post-location-map{margin-top:12px}.post-map-container{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.post-map-popup h4{margin:0 0 4px;font-weight:600;color:#333}.post-map-popup p{margin:2px 0;font-size:.9rem;color:var(--text-light-gray)}.analysis-title{font-size:14px;font-weight:600;color:#444;margin-bottom:10px;display:flex;align-items:center;gap:6px}.ingredients-section{margin-bottom:16px}.ingredients-list{display:flex;flex-wrap:wrap;gap:8px}.ingredient-tag{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:var(--primary-gradient);color:#fff;border-radius:20px;font-size:12px;font-weight:500;box-shadow:0 2px 8px #667eea33}.confidence{background:var(--overlay-light);padding:2px 6px;border-radius:10px;font-size:10px;font-weight:600}.nutrition-section{border-top:1px solid var(--primary-alpha-10);padding-top:16px}.nutrition-info{display:flex;align-items:center;gap:20px}.calories-main{display:flex;align-items:baseline;gap:4px;margin-right:16px}.calories-number{font-size:28px;font-weight:700;color:var(--like-color)}.calories-label{font-size:14px;color:var(--text-tertiary);font-weight:500}.macros{display:flex;gap:16px;flex:1}.macro{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:#fff;border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000d;min-width:60px}.macro-value{font-size:16px;font-weight:600;color:#333}.macro-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;font-weight:500;margin-top:2px}.post-comments{margin-bottom:12px}.comment{font-size:14px;margin-bottom:4px;line-height:1.4}.comment strong{font-weight:600}.view-all-comments{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:14px;padding:0}.add-comment{display:flex;gap:8px;align-items:center;border-top:1px solid var(--border-light-gray);padding:8px 0}.add-comment input{flex:1;padding:8px 12px;border:none;outline:none;font-size:14px;background:transparent}.add-comment input::placeholder{color:var(--text-tertiary)}.add-comment button{background:none;border:none;color:var(--accent-blue);font-weight:600;cursor:pointer;font-size:14px;padding:4px 0}.add-comment button:disabled{color:var(--text-very-light);cursor:not-allowed}.post-location-edit{display:flex;flex-direction:column;gap:12px;padding:16px 16px 0}.meal-type-selector{display:flex;gap:12px;margin-bottom:4px}.meal-type-selector label{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;background:#fff;font-size:14px;font-weight:500}.meal-type-selector label:hover{border-color:var(--accent-blue);background:var(--primary-alpha-5)}.meal-type-selector input[type=radio]{display:none}.meal-type-selector svg{transition:all .2s ease}.meal-type-selector label:has(input:checked){border-color:var(--accent-blue);background:var(--primary-alpha-10);color:var(--accent-blue)}.meal-type-selector label:has(input:checked) svg{color:var(--accent-blue)}.post-edit-input{width:100%;padding:10px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;font-family:inherit;transition:all .2s ease;background:#fff}.post-edit-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--primary-alpha-10)}.post-caption-edit-container{padding:0 16px 16px;position:relative}.post-caption-edit{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;font-family:inherit;resize:vertical;min-height:80px;transition:all .2s ease}.post-caption-edit:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--primary-alpha-10)}.char-counter{position:absolute;bottom:24px;right:24px;font-size:12px;color:var(--text-tertiary)}.post-edit-actions{display:flex;gap:12px;margin-top:16px}.cancel-edit-button,.save-edit-button{flex:1;padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.cancel-edit-button{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-light)}.cancel-edit-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-medium)}.save-edit-button{background:var(--accent-blue);color:#fff}.save-edit-button:hover:not(:disabled){background:#06c;transform:translateY(-1px);box-shadow:0 4px 12px #0066cc4d}.cancel-edit-button:disabled,.save-edit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.upload-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay-darker);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upload-modal{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-3xl);border:1px solid var(--overlay-light);display:flex;flex-direction:column}.upload-modal-simple{max-width:550px;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.upload-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-gray);background:#fff}.upload-header h2{font-size:20px;font-weight:700;margin:0;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-button{background:var(--background-off-white);border:none;cursor:pointer;padding:8px;color:var(--text-secondary);transition:all .2s ease;border-radius:50%;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.close-button:hover{background:var(--error-color);color:#fff;transform:scale(1.05)}.upload-content-simple{padding:0;overflow-y:auto;flex:1;display:flex;flex-direction:column}.upload-area-large{padding:60px 40px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--analysis-gradient);border-bottom:2px dashed var(--border-gray);min-height:300px;display:flex;align-items:center;justify-content:center}.upload-area-large:hover{background:linear-gradient(135deg,#f0f2ff,#fff0f0);border-color:#667eea}.upload-placeholder-large{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-placeholder-large svg{color:#667eea;opacity:.8}.upload-placeholder-large h3{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.upload-placeholder-large p{font-size:16px;color:var(--text-secondary);margin:0}.upload-placeholder-large .upload-hint{font-size:14px;color:#9ca3af;margin-top:4px}.preview-section{padding:24px;background:var(--background-light);border-bottom:1px solid var(--border-gray)}.image-preview-large{position:relative;border-radius:var(--radius-lg);overflow:hidden;max-height:400px;display:flex;align-items:center;justify-content:center;background:#000}.image-preview-large img{width:100%;height:auto;max-height:400px;object-fit:contain;display:block}.remove-image-large{position:absolute;top:12px;right:12px;background:var(--error-color);color:#fff;border:none;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;box-shadow:0 2px 8px #0000004d}.remove-image-large:hover{background:#dc2626;transform:scale(1.1);box-shadow:0 4px 12px #ef444480}.caption-section{padding:24px;display:flex;flex-direction:column;gap:8px}.caption-textarea{width:100%;padding:14px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:15px;font-family:inherit;resize:none;transition:all .2s ease;line-height:1.5}.caption-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px var(--primary-alpha-10)}.caption-textarea::placeholder{color:#9ca3af}.caption-counter{text-align:right;font-size:13px;color:#9ca3af;font-weight:500}.location-indicator{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--background-light);border-top:1px solid var(--border-gray);font-size:14px;color:var(--text-secondary)}.location-indicator svg{color:var(--primary-color);flex-shrink:0}.location-indicator span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-spinner{animation:spin 1s linear infinite}.location-remove{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.location-remove:hover{background:#0000001a;color:var(--error-color)}.upload-actions-simple{padding:24px;background:var(--background-light);border-top:1px solid var(--border-gray)}.post-button{width:100%;padding:16px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:17px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66;letter-spacing:.5px}.post-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.post-button:disabled{background:linear-gradient(135deg,var(--border-medium) 0%,#9ca3af 100%);cursor:not-allowed;transform:none;box-shadow:none}.upload-error{color:var(--error-color);font-size:14px;padding:12px;background:var(--background-error-light);border:1px solid var(--error-border);border-radius:var(--radius-md);margin:0 24px 16px;text-align:center}.upload-content{padding:20px;overflow-y:auto;flex:1}.file-select{text-align:center;padding:60px 20px}.file-drop-zone{border:2px dashed var(--border-lighter);border-radius:var(--radius-md);padding:40px 20px;cursor:pointer;transition:all .2s}.file-drop-zone:hover{border-color:var(--accent-blue);background:#f8f9ff}.file-drop-zone svg{color:var(--text-tertiary);margin-bottom:16px}.file-drop-zone h3{font-size:18px;margin-bottom:8px;color:var(--text-primary)}.file-drop-zone p{color:var(--text-tertiary);margin-bottom:20px}.select-file-button{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color .2s}.select-file-button:hover{background:#1372cc}.upload-preview{display:block}.upload-content{display:grid;grid-template-columns:1fr 350px;gap:24px;padding:24px;overflow-y:auto;max-height:calc(90vh - 120px)}.upload-main-content{display:flex;flex-direction:column;gap:24px}.upload-sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:fit-content}@media (max-width: 1024px){.upload-content{grid-template-columns:1fr}.upload-sidebar{position:static}}.upload-form-container{display:flex;flex-direction:column;gap:20px}.preview-image-container{width:100%;position:relative;display:block}.preview-image{aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;width:100%;display:block;object-fit:cover}.preview-image-container .remove-image{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;border:none;border-radius:50%;width:36px;height:36px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s;z-index:10;padding:0}.preview-image-container .remove-image:hover{background:#000000e6}.preview-image img{width:100%;height:100%;object-fit:cover}.remove-image{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.upload-form{display:flex;flex-direction:column;gap:16px;width:100%}.form-section{display:flex;flex-direction:column;gap:8px}.form-section label{font-weight:600;font-size:14px;color:var(--text-primary)}.upload-form textarea{padding:12px;border:1px solid var(--border-lighter);border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px}.upload-form textarea:focus{outline:none;border-color:var(--accent-blue)}.caption-counter{text-align:right;font-size:12px;color:var(--text-tertiary)}.location-fields{display:flex;flex-direction:column;gap:12px;margin-top:16px}.location-bar{margin-bottom:16px}.location-input-container{position:relative;display:flex;align-items:center}.location-input-container .location-icon{position:absolute;left:12px;color:var(--text-secondary);pointer-events:none;flex-shrink:0}.location-input-container .location-input{padding-left:40px}.location-input,.restaurant-input,.cost-input{padding:12px;border:1px solid #ddd;border-radius:var(--radius-md);font-size:14px;transition:border-color .2s ease;background:#fff;width:100%;box-sizing:border-box}.location-input:focus,.restaurant-input:focus,.cost-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px var(--primary-alpha-10)}.cost-input{max-width:150px}.upload-error{color:#ed4956;font-size:14px;padding:8px;background:#ffeaea;border-radius:4px}.upload-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border-lighter);margin-top:10px}.cancel-button{padding:10px 20px;background:none;border:1px solid var(--border-lighter);border-radius:6px;cursor:pointer;font-weight:600}.share-button{padding:12px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.share-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.share-button:disabled{background:var(--border-gray);cursor:not-allowed;transform:none;box-shadow:none}.create-dish-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.create-dish-content{background:#fff;border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column}.create-dish-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-light)}.create-dish-header h3{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-dark)}.close-create-dish{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-secondary);border-radius:50%;transition:all .2s ease}.close-create-dish:hover{background:var(--background-off-white);color:var(--text-gray)}.create-dish-form{padding:20px;overflow-y:auto;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-gray)}.form-group input,.form-group textarea{width:100%;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:.95rem;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-indigo);box-shadow:0 0 0 3px #4f46e51a}.ingredients-input{display:flex;flex-direction:column;gap:8px}.ingredient-row{display:flex;gap:8px;align-items:center}.ingredient-row input{flex:1}.remove-ingredient{background:var(--error-color);color:#fff;border:none;border-radius:6px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.remove-ingredient:hover:not(:disabled){background:var(--error-dark)}.remove-ingredient:disabled{background:var(--border-light);cursor:not-allowed}.add-ingredient{display:flex;align-items:center;gap:8px;background:var(--success-color);color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;transition:all .2s ease;align-self:flex-start}.add-ingredient:hover{background:var(--success-dark)}.nutrition-inputs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.nutrition-item{display:flex;flex-direction:column;gap:4px}.nutrition-item label{font-size:.9rem;color:var(--text-secondary);margin-bottom:4px}.nutrition-item input{padding:8px 12px;font-size:.9rem}.create-dish-actions{display:flex;gap:12px;justify-content:flex-end;padding:20px;border-top:1px solid var(--border-light);background:var(--background-light)}.cancel-create-dish{background:var(--text-secondary);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease;font-weight:500}.cancel-create-dish:hover:not(:disabled){background:#4b5563}.save-create-dish{display:flex;align-items:center;gap:8px;background:var(--accent-indigo);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease;font-weight:500}.save-create-dish:hover:not(:disabled){background:var(--accent-indigo-dark)}.save-create-dish:disabled{background:var(--border-medium);cursor:not-allowed}.post-type-selector{display:flex;gap:10px;margin-bottom:16px;background-color:var(--background-lighter);padding:4px;border-radius:10px}.post-type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:none;background-color:transparent;border-radius:var(--radius-md);font-weight:600;color:#65676b;cursor:pointer;transition:all .2s ease-in-out}.post-type-btn.active{background-color:#fff;color:#667eea;box-shadow:0 2px 4px #0000001a}.cost-field{margin-top:16px}.dish-selection-container,.dish-search{margin-bottom:20px}.search-input-container svg{position:absolute;left:12px;color:var(--text-tertiary);z-index:1}.search-input{width:100%;padding:12px 12px 12px 40px;border:1px solid var(--border-lighter);border-radius:var(--radius-md);font-size:14px;font-family:inherit;background:#fff}.search-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 2px #3897f01a}.selected-dishes{margin-bottom:20px;padding:16px;background:#f8f9ff;border-radius:var(--radius-md);border:1px solid var(--border-gray)}.selected-dishes h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-primary)}.selected-dishes-list{display:flex;flex-wrap:wrap;gap:8px}.selected-dish{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#fff;border:1px solid var(--border-lighter);border-radius:var(--radius-xl);font-size:12px;color:var(--text-primary)}.selected-dish img{width:24px;height:24px;border-radius:50%;object-fit:cover}.remove-dish{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.remove-dish:hover{background:var(--background-lighter);color:var(--text-primary)}.available-dishes{margin-bottom:20px}.dishes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dishes-header h4{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.add-dish-button{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s}.add-dish-button:hover{background:#1372cc}.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;max-height:300px;padding:4px}.dish-card{border:1px solid var(--border-lighter);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s;background:#fff}.dish-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.dish-card.selected{background:#f8f9ff;box-shadow:0 0 0 2px #3897f01a}.dish-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.dish-info{padding:8px}.dish-info h5{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-info p{margin:0;font-size:11px;color:var(--text-tertiary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.loading{text-align:center;padding:40px;color:var(--text-tertiary);font-size:14px}.no-dishes{text-align:center;padding:40px 20px;color:var(--text-tertiary);font-size:14px;background:var(--background-gray);border-radius:var(--radius-md);border:1px solid var(--border-gray)}.post-detail{max-width:1200px;margin:0 auto;padding:20px}.post-detail-header{margin-bottom:20px}.back-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--background-light);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;font-weight:500;color:var(--text-primary);transition:all .2s ease}.back-button:hover{background:var(--background-white);border-color:var(--border-medium)}.post-detail-content{max-width:800px;margin:0 auto}.post-detail .post-image{max-height:none;height:auto}.post-detail .post-image img{max-height:none;width:100%;height:auto;object-fit:contain}.post-detail-loading,.post-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:40px 20px}.error-content{text-align:center;margin-top:20px}.error-content h2{margin-bottom:12px;color:var(--text-primary)}.error-content p{color:var(--text-secondary)}@media (max-width: 768px){.header{padding-top:env(safe-area-inset-top);position:sticky;top:0;z-index:100}.header-content{padding:8px 16px;gap:12px}.header-logo{font-size:18px}.header-center,.app-tagline,.logo-subtitle,.user-info span,.user-email{display:none}.header-actions{gap:12px;margin:0}.header-actions .desktop-only{display:none}.header-actions .btn-icon{width:36px;height:36px}.user-profile{padding:.5rem}.app-main{padding-bottom:env(safe-area-inset-bottom)}.feed{padding:0 16px}.btn,.button,button{min-height:var(--touch-target);font-size:16px!important}.btn-icon{min-width:var(--touch-target);min-height:var(--touch-target)}input,textarea,select{font-size:16px!important;padding:12px;border-radius:var(--radius-md)}.search-input{padding:12px 12px 12px 45px!important}.form-input,input[type=text],input[type=email],textarea{font-size:16px!important;padding:12px;border-radius:var(--radius-md);width:100%;box-sizing:border-box}.post{border-radius:0;border-left:none;border-right:none;margin-bottom:0;box-shadow:none;border-bottom:8px solid var(--background-pale)}.post:hover{transform:none;box-shadow:none}.post-header{padding:12px 16px;gap:8px}.post-header>.flex:first-child{flex:1;min-width:0;overflow:hidden}.post-header .author-info{min-width:0;overflow:hidden}.post-header .author-info h3,.post-header .author-info p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-image{margin:0 -1px}.post-actions,.post-info{padding:12px 16px}.post-info{padding:0 16px 16px}.action-buttons{gap:16px}.action-button{padding:8px}.dishes-title{font-size:14px;margin-bottom:12px}.dishes-grid{gap:12px;grid-template-columns:1fr}.dish-card{display:block;padding:0;overflow:hidden}.dishes-grid{grid-template-columns:1fr;gap:0}.dish-image-container{width:100%;height:22vh;overflow:hidden;margin:0;padding:0;position:relative}.dish-card img,.dish-card .dish-image{width:100%;height:100%;border-radius:0;object-fit:cover;display:block}.dish-title-overlay{font-size:1.1rem}.dish-overlay-bottom{padding:12px;margin:0 -12px -12px}.dish-content{padding:16px}.dish-name{font-size:1.1rem}.dish-description{font-size:.85rem}.dish-stats{flex-direction:row;padding:10px;font-size:.75rem}.stat-item{font-size:.75rem}.ingredients-section{margin-top:12px}.ingredient-tag{font-size:.65rem;padding:3px 6px}.dish-actions{gap:6px;margin:12px 0}.action-button{font-size:.75rem;padding:8px 10px}.action-button svg{width:14px;height:14px}.modal,.upload-modal{margin:0;border-radius:0;width:100%;height:100%;max-width:100%;max-height:100%}.upload-modal-simple{max-width:100%;border-radius:0}.upload-area-large{padding:40px 20px;min-height:250px}.upload-placeholder-large h3{font-size:20px}.upload-placeholder-large p{font-size:14px}.upload-placeholder-large svg{width:48px;height:48px}.preview-section{padding:16px}.image-preview-large{max-height:300px}.caption-section{padding:20px}.upload-actions-simple{padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.post-button{min-height:var(--touch-target);font-size:16px}.upload-content{padding:12px;max-height:calc(100vh - 60px);grid-template-columns:1fr}.upload-header{padding:12px 16px}.upload-header h2{font-size:16px}.upload-actions{flex-direction:column;gap:12px;position:sticky;bottom:0;background:#fff;padding:16px;border-top:1px solid #e1e1e1;margin:0 -12px}.upload-actions button{width:100%;padding:12px;font-size:16px}.upload-sidebar{position:static}.upload-area{padding:24px 16px;border-radius:var(--radius-md)}.upload-placeholder svg{width:36px;height:36px}.upload-placeholder p{font-size:14px}.upload-hint{font-size:12px!important}.image-preview{max-width:100%;border-radius:var(--radius-md)}.remove-image{width:32px;height:32px;top:8px;right:8px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.section-header h3{font-size:16px}.toggle-dish-selection{align-self:stretch;text-align:center;padding:10px 16px}.selected-dishes-list{display:flex;flex-wrap:wrap;gap:8px}.selected-dish{background:var(--background-light);border-radius:var(--radius-md);padding:8px 4px;display:flex;align-items:center;gap:8px;font-size:11px;flex:1;min-width:0}.selected-dish img{width:20px;height:20px;border-radius:4px}.selected-dish span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-dish{padding:4px;min-width:24px;height:24px}.post-type-selector{display:flex;gap:8px;background:var(--background-light);padding:4px;border-radius:var(--radius-md);margin-bottom:16px}.post-type-btn{flex:1;padding:10px 12px;font-size:14px;border-radius:6px}.post-type-btn span{font-size:13px}.create-dish-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001}.create-dish-content{height:100vh}.create-dish-header{padding:16px;position:sticky;top:0;background:#fff;z-index:1}.create-dish-header h3{font-size:16px;margin:0}.create-dish-form{padding:16px;flex:1}.create-dish-actions{padding:16px;position:sticky;bottom:0;background:#fff}.create-dish-actions button{flex:1;padding:12px;font-size:16px}.ingredient-row{display:flex;gap:8px;margin-bottom:8px}.ingredient-row input{flex:1}.remove-ingredient{padding:8px;min-width:36px;height:36px}.nutrition-inputs{grid-template-columns:1fr 1fr;gap:12px}.nutrition-item label{font-size:12px}.nutrition-item input{padding:8px;font-size:14px!important}.food-analysis{margin:12px 0;padding:12px}.nutrition-info{flex-direction:column;gap:12px;align-items:flex-start}.calories-main{margin-right:0;margin-bottom:8px}.macros{justify-content:space-between;width:100%}.macro{min-width:50px;padding:6px 8px}.ingredients-list{gap:6px}.ingredient-tag{font-size:11px;padding:4px 8px}.form-group{margin-bottom:1rem}.form-section{margin-bottom:20px}.form-section label{font-size:14px;font-weight:600;margin-bottom:8px;display:block}.form-section textarea,.form-section input{font-size:16px!important;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;box-sizing:border-box}.caption-counter{text-align:right;font-size:12px;color:var(--text-light);margin-top:4px}.card{border-radius:0;border-left:none;border-right:none;margin-bottom:0;box-shadow:none}.analytics{padding:15px}.analytics-header{flex-direction:column;text-align:center}.analytics-title h2{font-size:2rem}.stats-grid{grid-template-columns:1fr;gap:15px}.charts-section{grid-template-columns:1fr;gap:20px}.chart-container{padding:20px}.chart-wrapper{height:250px}.insights-grid{grid-template-columns:1fr}.map-container{padding:15px}.restaurant-map-container{height:300px}.restaurants-grid{grid-template-columns:1fr;gap:24px}.restaurant-card{padding:16px}.restaurant-stats{gap:15px;flex-direction:column}.filters-row{flex-direction:column}.filter-group,.filter-select{width:100%}.dish-header{flex-direction:column;align-items:flex-start;gap:8px}.dish-stats,.dish-actions{flex-wrap:wrap;gap:6px}.action-button{min-width:auto}.users-grid{grid-template-columns:1fr}.sort-controls{flex-direction:column;align-items:stretch}.sort-button{width:100%;text-align:center}.user-header{align-items:center}.user-stats{gap:10px}.recipe-content,.hero-content{grid-template-columns:1fr!important;gap:20px}.hero-image img,.dish-hero .hero-image img{height:250px}.menu-grid{grid-template-columns:1fr}.recipe-image-section{position:static}.platforms-grid,.nearby-restaurants{grid-template-columns:1fr}.dish-preview{flex-direction:column}.dish-preview-image{width:100%;height:200px}.nutrition-grid{grid-template-columns:1fr}.recipe-stats{flex-direction:column;gap:16px}.delivery-option{flex-direction:column;text-align:center;gap:12px}.engagement-actions{flex-wrap:wrap}.search-header{flex-direction:column;align-items:flex-start;gap:12px}.view-all-restaurants-button{align-self:stretch;text-align:center}.tab-navigation{flex-wrap:wrap;gap:4px}.tab-button{white-space:nowrap;min-width:auto;flex:1 1 auto;padding:12px 10px;font-size:.85rem;justify-content:center}.map-modal{margin:0;border-radius:var(--radius-xl) 16px 0 0;max-height:85vh}.map-container{height:300px}.map-modal-actions{flex-direction:column}.map-modal-overlay{align-items:flex-end;padding:0}.dish-meta{flex-direction:column;gap:16px}.dishes-title{flex-direction:column;align-items:stretch;gap:1rem}.add-dish-button{align-self:stretch;justify-content:center}.add-dish-modal{max-width:95vw;margin:20px auto}.ingredient-input-row{flex-wrap:wrap}.ingredient-name-input{min-width:200px}}.analytics{max-width:1200px;margin:0 auto;padding:20px;color:#333}.analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.analytics-title h2{font-size:2.5rem;font-weight:800;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 5px}.analytics-title p{color:var(--text-light-gray);font-size:1.1rem;margin:0}.time-range-selector{display:flex;background:var(--background-gray);border-radius:var(--radius-lg);padding:4px;gap:4px}.time-range-btn{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-md);font-weight:600;color:var(--text-light-gray);cursor:pointer;transition:all .2s ease}.time-range-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px #667eea4d}.time-range-btn:hover:not(.active){background:#e9ecef;color:#333}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:#fff;border-radius:var(--radius-xl);padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale);display:flex;align-items:center;gap:16px;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001f}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon .icon{width:24px;height:24px;color:#fff}.stat-content h3{font-size:2rem;font-weight:800;margin:0 0 4px;color:#333}.stat-content p{font-size:.9rem;color:var(--text-light-gray);margin:0;font-weight:500}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-bottom:40px}.chart-container{background:#fff;border-radius:var(--radius-xl);padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale)}.chart-container.full-width{grid-column:1 / -1}.chart-title{font-size:1.3rem;font-weight:700;margin:0 0 20px;color:#333}.chart-wrapper{width:100%;height:300px}.tooltip{background:#fff;border:none;border-radius:var(--radius-lg);padding:12px 16px;box-shadow:0 8px 25px #00000026;border:1px solid var(--background-pale)}.tooltip-label{font-weight:600;color:#333;margin:0 0 4px;font-size:.9rem}.tooltip-value{margin:0}.tooltip-calories{font-weight:700;color:#667eea;font-size:1.1rem}.tooltip-posts{font-size:.85rem;color:var(--text-light-gray);margin:4px 0 0}.insights-section{margin-top:40px}.insights-title{font-size:1.8rem;font-weight:700;margin:0 0 25px;color:#333;text-align:center}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.insight-card{background:var(--primary-gradient);border-radius:var(--radius-xl);padding:24px;color:#fff;box-shadow:0 4px 20px #667eea4d;transition:transform .2s ease}.insight-card:hover{transform:translateY(-2px)}.insight-card h4{font-size:1.2rem;font-weight:700;margin:0 0 8px}.insight-card p{font-size:.95rem;margin:0;opacity:.9;line-height:1.5}.restaurants-section{margin:40px 0}.calendar-section{margin:30px 0}.calendar-wrapper{background:#fff;padding:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:visible;width:100%}.calendar-wrapper>div{width:100%!important}.heatmap-container{width:100%!important;display:block}.heatmap-container>svg{width:100%!important;height:auto!important;display:block}.section-title{font-size:1.8rem;font-weight:700;margin:0 0 25px;color:#333;text-align:center}.map-section{margin:40px 0}.map-container{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale)}.restaurant-card{background:#fff;border-radius:var(--radius-xl);box-shadow:0 4px 20px #00000014;border:1px solid var(--background-pale);display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden}.restaurant-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001f}.restaurant-image{width:100%;height:180px;position:relative;overflow:hidden}.restaurant-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.restaurant-card:hover .restaurant-image img{transform:scale(1.05)}.restaurant-rating{position:absolute;top:12px;right:12px;background:var(--overlay-darker);color:#fff;padding:6px 10px;border-radius:20px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:4px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.restaurant-content{padding:16px;display:flex;flex-direction:column;flex-grow:1}.restaurant-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.restaurant-name{font-size:1.2rem;font-weight:700;color:#333;margin:0}.restaurant-meta{display:flex;gap:8px;align-items:center}.cuisine-tag{background:var(--background-off-white);padding:4px 8px;border-radius:6px;font-size:.8rem;color:var(--text-secondary);font-weight:500}.price-range{font-weight:600;color:var(--success-dark)}.restaurant-location{display:flex;align-items:center;gap:6px;color:var(--text-light-gray);font-size:.9rem;margin-bottom:12px}.restaurant-description{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin-bottom:16px;flex-grow:1}.restaurant-stats{display:flex;justify-content:space-around;border-top:1px solid var(--background-pale);padding-top:12px;margin-bottom:16px}.stat{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-light-gray)}.popular-dishes,.featured-dishes{margin-bottom:16px}.popular-dishes h4,.featured-dishes h4{font-size:.9rem;font-weight:600;margin-bottom:8px;color:#333}.dishes-list{display:flex;flex-wrap:wrap;gap:6px}.dish-tag{background:#eef2ff;color:var(--accent-indigo);padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:500}.featured-dish{display:flex;align-items:center;gap:12px;margin-bottom:8px}.featured-dish img{width:50px;height:50px;border-radius:var(--radius-md);object-fit:cover}.dish-info h5{font-size:.9rem;font-weight:600;margin:0 0 4px}.dish-details{display:flex;gap:8px;font-size:.8rem;color:var(--text-light-gray)}.dish-price{font-weight:600;color:var(--success-dark)}.restaurant-actions{display:flex;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--background-pale)}.primary-button,.secondary-button{padding:8px 12px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.85rem;display:flex;align-items:center;gap:6px}.primary-button{background:var(--primary-gradient);color:#fff;border:none;flex-grow:1;justify-content:center}.secondary-button{background:var(--background-off-white);color:var(--text-gray);border:1px solid var(--border-light)}.primary-button:hover{opacity:.9}.secondary-button:hover{background:var(--border-light)}.restaurants-page{max-width:1200px;margin:0 auto;padding:20px}.page-header{margin-bottom:20px}.page-title h2{font-size:2.5rem;font-weight:800;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 5px}.page-title p{color:var(--text-light-gray);font-size:1.1rem;margin:0}.page-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-top:20px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:20px}.filter-controls{display:flex;gap:15px;flex-wrap:wrap}.view-toggle{display:flex;background:var(--background-gray);border-radius:var(--radius-lg);padding:4px;gap:4px;align-self:flex-start}.view-btn{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-md);font-weight:600;color:var(--text-light-gray);cursor:pointer;transition:all .2s ease}.view-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px #667eea4d}.restaurants-map-view{margin-top:20px}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.dishes-container{max-width:1200px;margin:0 auto;padding:20px}.dishes-page-header{display:flex;justify-content:flex-end;margin-bottom:20px}.dishes-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.search-bar{position:relative;margin-bottom:20px}.search-input-container .search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #6b7280);z-index:2;pointer-events:none}.search-input{width:100%;padding:12px 12px 12px 45px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;transition:all .3s ease;background:#fff}.search-input-container{position:relative;display:flex;align-items:center}.search-loading-spinner{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid var(--border-light);border-top:2px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.search-predictions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-light);border-top:none;border-radius:0 0 12px 12px;box-shadow:0 4px 6px -1px #0000001a;max-height:300px;overflow-y:auto;z-index:1000}.prediction-item{display:flex;align-items:center;gap:12px;padding:12px 15px;cursor:pointer;border-bottom:1px solid var(--background-off-white);transition:background-color .2s ease}.prediction-item:hover{background-color:var(--background-light)}.prediction-item:last-child{border-bottom:none}.prediction-icon{color:#9ca3af;flex-shrink:0}.prediction-content{flex:1;min-width:0}.prediction-main{font-weight:500;color:#111827;margin-bottom:2px}.prediction-secondary{font-size:.875rem;color:var(--text-secondary);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.filters-row{display:flex;gap:15px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-select{padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);background:#fff;font-size:.9rem;min-width:140px}.dishes-stats{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.stat-number{color:#000;display:block;font-size:2rem;font-weight:700;margin-bottom:5px}.dishes-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:30px}.dishes-page-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 12px #00000014;transition:all .3s ease;position:relative;min-height:650px;display:flex;flex-direction:column}.dishes-page-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.trending-badge{position:absolute;top:12px;left:12px;background:linear-gradient(135deg,var(--like-color),#ff8e8e);color:#fff;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;z-index:2;display:flex;align-items:center;min-height:100%;gap:4px}.dish-image-container{position:relative;height:280px;overflow:hidden}.dish-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.dish-card:hover .dish-image{transform:scale(1.05)}.dish-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px}.dish-overlay-top{display:flex;justify-content:flex-end;align-items:flex-start}.dish-overlay-bottom{background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%);padding:16px;margin:0 -12px -12px}.dish-title-overlay{color:#fff;font-size:1.3rem;font-weight:700;text-shadow:0 2px 4px var(--overlay-dark);margin:0}.like-button{background:#ffffffe6;border:none;border-radius:20px;padding:8px 12px;display:flex;align-items:center;gap:6px;font-size:.8rem;cursor:pointer;transition:all .3s ease}.like-button:hover{background:#fff;transform:scale(1.05)}.dish-content{padding:20px;flex:1;display:flex;flex-direction:column;gap:16px}.dish-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.1em}.dish-name{font-size:1.3rem;font-weight:700;color:var(--text-dark);flex:1;margin-right:10px}.dish-rating{display:flex;align-items:center;gap:4px;color:#fbbf24;font-weight:600;font-size:.9rem}.reviews-count{color:var(--text-secondary);font-weight:400}.restaurant-info{display:flex;align-items:center;gap:10px;margin-bottom:12px}.restaurant-name{color:var(--accent-indigo);font-weight:600}.cuisine-tag{background:var(--background-off-white);padding:4px 8px;border-radius:6px;font-size:.8rem;color:var(--text-secondary)}.dish-description{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:0}.dish-stats{display:flex;justify-content:space-between;align-items:center;padding:1em;background:var(--background-light);border-radius:var(--radius-md)}.stat-item{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-secondary)}.price{font-weight:700;color:var(--success-dark);font-size:1rem}.dietary-tags{display:flex;flex-wrap:wrap;gap:6px}.dietary-tag{background:linear-gradient(135deg,var(--success-color),var(--success-dark));color:#fff;padding:4px 8px;border-radius:var(--radius-lg);font-size:.7rem;font-weight:600}.ingredients-section{margin-top:15px}.ingredients-title{font-size:.9rem;font-weight:600;color:var(--text-gray);margin-bottom:8px}.ingredients-list{display:flex;flex-wrap:wrap;gap:6px}.ingredient-tag{background:var(--border-light);color:var(--text-gray);padding:4px 8px;border-radius:6px;font-size:.7rem}.ingredient-tag.more{background:var(--accent-indigo);color:#fff}.dish-actions{display:flex;gap:8px;margin:15px 0;flex-wrap:wrap}.action-button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;color:var(--text-gray);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.action-button:hover{background:var(--background-light);border-color:var(--border-medium);transform:translateY(-1px)}.action-button.make-at-home:hover{background:#ecfdf5;border-color:var(--success-color);color:var(--success-color)}.action-button.get-delivered:hover{background:var(--info-bg);border-color:#3b82f6;color:#3b82f6}.action-button.find-restaurant:hover{background:var(--warning-bg);border-color:var(--warning-color);color:var(--warning-color)}.dish-meta-info{margin-top:10px}.example-location{font-size:.8rem;color:var(--text-secondary);margin-top:4px}.confidence{font-size:.65rem;color:var(--text-secondary);margin-left:4px}.no-results{text-align:center;padding:60px 20px;color:var(--text-secondary)}.no-results-icon{font-size:4rem;margin-bottom:20px}.no-results h3{font-size:1.5rem;margin-bottom:10px;color:var(--text-gray)}.people-container{max-width:1200px;margin:0 auto;padding:2rem}.people-header{margin-bottom:1rem}.people-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.search-section{margin-bottom:20px}.search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#9ca3af;z-index:2;pointer-events:none}.search-input{position:relative;width:100%;padding:12px 12px 12px 45px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;transition:all .3s ease;background:#fff;z-index:1}.search-input::placeholder{padding-left:0;text-indent:0}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px var(--primary-alpha-10)}.sort-controls{display:flex;gap:10px;align-items:center}.sort-button{padding:8px 16px;border:2px solid var(--border-light);background:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all .3s ease;font-size:.9rem}.sort-button:hover{border-color:#667eea;color:#667eea}.sort-button.active{background:var(--primary-gradient);color:#fff;border-color:transparent}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px;margin-top:20px}.user-card{background:var(--background-white);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-md);transition:all .3s ease;border:1px solid var(--border-light);position:relative;overflow:hidden}.user-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary-gradient);transform:scaleX(0);transition:transform .3s ease}.user-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.user-card:hover:before{transform:scaleX(1)}.user-header{display:flex;align-items:flex-start;gap:15px;margin-bottom:15px}.user-avatar{width:4rem;height:4rem;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;position:relative;border:3px solid var(--background-white);box-shadow:var(--shadow-md)}.user-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{color:var(--background-white);display:flex;align-items:center;justify-content:center;font-weight:700}.user-info{flex:1;min-width:0}.user-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem;line-height:1.3}.user-username{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem;font-weight:500}.user-location{display:flex;align-items:center;gap:.25rem;color:var(--text-muted);font-size:.8rem;font-weight:500}.user-bio{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:15px;font-style:italic}.user-stats{display:flex;justify-content:space-between;margin-bottom:15px;padding:12px;background:var(--background-light);border-radius:var(--radius-md)}.stat{text-align:center;flex:1}.stat-value{display:block;font-size:1.2rem;font-weight:700;color:var(--text-dark)}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.user-food-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.food-stat{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.user-favorites{margin-bottom:20px}.favorites-section{margin-bottom:16px}.favorites-section:last-child{margin-bottom:0}.favorites-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.favorites-section h4{font-size:.9rem;font-weight:600;color:var(--text-gray);margin:0;display:flex;align-items:center;gap:6px}.user-actions{margin-top:20px;margin-bottom:15px}.user-joined{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:10px}.favorite-items{margin-bottom:15px}.favorite-items h4{font-size:.9rem;font-weight:600;color:var(--text-gray);margin-bottom:8px}.favorite-tags{display:flex;flex-wrap:wrap;gap:6px}.favorite-tag{background:linear-gradient(135deg,var(--success-color),var(--success-dark));color:#fff;padding:4px 8px;border-radius:var(--radius-lg);font-size:.7rem;font-weight:600}.follow-button{width:100%;padding:10px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .3s ease}.follow-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.follow-button.following{background:linear-gradient(135deg,#48bb78 0%,var(--success-darker) 100%)}.follow-button.following:hover{background:linear-gradient(135deg,#e53e3e,#c53030);box-shadow:0 4px 12px #e53e3e4d}.user-bio-text{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin:0;font-style:italic}.no-users{text-align:center;padding:60px 20px;color:var(--text-secondary)}.no-users-icon{font-size:4rem;margin-bottom:20px}.no-users h3{font-size:1.5rem;margin-bottom:10px;color:var(--text-gray)}.error-banner{background:linear-gradient(135deg,var(--error-bg) 0%,var(--error-border) 100%);border:1px solid #fca5a5;border-radius:var(--radius-lg);padding:16px 20px;margin:20px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.error-banner p{margin:0;color:var(--error-dark);font-weight:500;flex:1}.retry-button{background:var(--error-dark);color:#fff;border:none;border-radius:var(--radius-md);padding:8px 16px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:var(--error-darker);transform:translateY(-1px)}.dishes-title{display:flex;justify-content:space-between;align-items:flex-start;width:100%;gap:2rem}.add-dish-button{display:flex;align-items:center;gap:.5rem;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);padding:12px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:var(--shadow-md)}.add-dish-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-dish-button:active{transform:translateY(0)}.add-dish-modal{max-width:800px;max-height:90vh;overflow-y:auto}.dish-form{max-height:70vh;overflow-y:auto;padding-right:8px}.ingredients-input-list{display:flex;flex-direction:column;gap:.75rem}.ingredient-input-row{display:flex;align-items:center;gap:.5rem}.ingredient-name-input{flex:1;padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;transition:border-color .2s ease}.ingredient-name-input:focus{outline:none;border-color:var(--primary-color)}.ingredient-confidence-input{width:60px;padding:8px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;text-align:center;transition:border-color .2s ease}.ingredient-confidence-input:focus{outline:none;border-color:var(--primary-color)}.confidence-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.remove-ingredient{background:var(--error-bg);color:var(--error-dark);border:none;border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.remove-ingredient:hover{background:var(--error-border);transform:scale(1.05)}.add-ingredient{display:flex;align-items:center;gap:.5rem;background:var(--background-gray);color:var(--text-primary);border:2px dashed var(--border-light);border-radius:var(--radius-md);padding:10px 16px;font-size:.875rem;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.add-ingredient:hover{background:var(--background-white);border-color:var(--primary-color);color:var(--primary-color)}.nutrition-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.nutrition-input-group{display:flex;flex-direction:column;gap:.5rem}.nutrition-input-group label{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.nutrition-input{padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.875rem;transition:border-color .2s ease}.ingredients-container{max-width:1200px;margin:0 auto;padding:20px}.ingredients-page-header{display:flex;justify-content:flex-end;margin-bottom:20px}.ingredients-controls{background:#fff;border-radius:var(--radius-xl);padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #0000000d}.ingredients-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary)}.ingredients-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.ingredient-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 4px 12px #00000014;transition:all .3s ease;cursor:pointer;display:flex;flex-direction:column}.ingredient-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.ingredient-image-container{position:relative;height:180px;overflow:hidden;background:var(--background-off-white)}.ingredient-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.ingredient-card:hover .ingredient-image{transform:scale(1.05)}.ingredient-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--background-off-white),var(--background-light));color:var(--text-secondary)}.ingredient-actions-overlay{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .2s ease;z-index:10}.ingredient-card:hover .ingredient-actions-overlay{opacity:1}.ingredient-action-btn{width:32px;height:32px;min-width:32px;min-height:32px;max-width:32px;max-height:32px;padding:0;aspect-ratio:1 / 1;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #00000026;flex-shrink:0}.ingredient-action-btn svg{flex-shrink:0;width:16px;height:16px}.ingredient-action-btn.edit{background:#ffffffe6;color:var(--primary-color)}.ingredient-action-btn.edit:hover{background:var(--primary-color);color:#fff}.ingredient-action-btn.delete{background:#ffffffe6;color:var(--error-color)}.ingredient-action-btn.delete:hover{background:var(--error-color);color:#fff}.ingredient-action-btn.delete.confirm{background:var(--error-color);color:#fff;animation:pulse .5s ease infinite}.ingredient-content{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px}.ingredient-title{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0}.ingredient-category-badge{display:inline-flex;align-items:center;gap:4px;background:var(--background-off-white);color:var(--text-secondary);padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;width:fit-content}.ingredient-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.ingredient-meta{margin-top:auto;padding-top:8px;border-top:1px solid var(--border-light)}.ingredient-meta .dish-count{font-size:.8rem;color:var(--text-secondary)}.add-ingredient-button{display:flex;align-items:center;gap:.5rem;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);padding:12px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:var(--shadow-md)}.add-ingredient-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-ingredient-button:active{transform:translateY(0)}.add-ingredient-modal{max-width:600px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden}.add-ingredient-modal .upload-content{display:flex;flex-direction:column;width:100%;overflow-x:hidden;padding:24px;box-sizing:border-box}.add-ingredient-modal .upload-form-container{width:100%;display:flex;flex-direction:column;gap:20px}.ingredient-image-section{width:100%;margin-bottom:20px}.ingredient-drop-zone{width:100%;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-light);border-radius:var(--radius-lg);background:var(--background-off-white);cursor:pointer;transition:all .2s ease;box-sizing:border-box}.ingredient-drop-zone:hover{border-color:var(--primary-color);background:var(--primary-light)}.ingredient-preview{width:100%;height:200px;border-radius:var(--radius-lg);overflow:hidden}.ingredient-preview .preview-image{width:100%;height:100%;object-fit:cover}.ingredient-form{width:100%;display:flex;flex-direction:column;gap:16px}.add-ingredient-modal .form-section{width:100%}.add-ingredient-modal .form-section input,.add-ingredient-modal .form-section select,.add-ingredient-modal .form-section textarea{width:100%;box-sizing:border-box}.add-ingredient-modal .add-alias-row input{width:auto;flex:1;min-width:0}.add-ingredient-modal .add-alias-btn{width:42px!important;flex:0 0 42px}.add-ingredient-modal .submit-button{width:100%;padding:14px 24px;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.add-ingredient-modal .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-ingredient-modal .submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.category-select{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .2s ease}.category-select:focus{outline:none;border-color:var(--primary-color)}.description-textarea{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;resize:vertical;min-height:80px;font-family:inherit;transition:border-color .2s ease}.description-textarea:focus{outline:none;border-color:var(--primary-color)}.form-hint{color:var(--text-secondary);font-size:.8rem;margin-top:4px}.aliases-section label,.edit-section.aliases-section label{display:flex!important;align-items:center;gap:6px}.aliases-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.alias-tag{display:inline-flex;align-items:center;gap:6px;background:var(--background-off-white);border:1px solid var(--border-light);border-radius:20px;padding:6px 10px 6px 14px;font-size:.875rem;color:var(--text-primary)}.remove-alias-btn{background:none;border:none;padding:2px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.remove-alias-btn:hover{background:var(--error-bg);color:var(--error-color)}.add-alias-row{display:flex;gap:8px;align-items:center}.add-alias-row .alias-input{flex:1;min-width:0}.alias-input{flex:1;padding:10px 14px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.9rem;transition:border-color .2s ease}.alias-input:focus{outline:none;border-color:var(--primary-color)}.add-alias-btn{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;flex-shrink:0;display:flex!important;align-items:center;justify-content:center;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;padding:0}.add-alias-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.add-alias-btn:disabled{opacity:.5;cursor:not-allowed}.alias-error{color:var(--error-color);font-size:.85rem;margin-top:8px}@media (max-width: 768px){.ingredients-page-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.ingredient-image-container{height:150px}.add-ingredient-modal{max-width:100%;margin:10px;max-height:calc(100vh - 20px)}}@media (max-width: 480px){.ingredients-page-grid{grid-template-columns:1fr}.ingredients-controls{padding:15px}}.recipe-container,.order-container{max-width:1000px;margin:0 auto;padding:20px}.recipe-header,.order-header{margin-bottom:30px}.recipe-header h1,.order-header h1{font-size:2.5rem;font-weight:700;color:var(--text-dark);margin:10px 0}.recipe-subtitle,.order-subtitle{color:var(--text-secondary);font-size:1.1rem}.back-button{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--border-light);padding:10px 16px;border-radius:var(--radius-md);color:var(--text-gray);cursor:pointer;transition:all .2s ease;font-size:.9rem;margin-bottom:20px}.back-button:hover{background:var(--background-light);border-color:var(--border-medium)}.recipe-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.recipe-image-section{position:sticky;top:20px}.recipe-image{width:100%;height:300px;object-fit:cover;border-radius:var(--radius-xl);margin-bottom:20px}.recipe-quick-info{display:flex;justify-content:space-around;background:var(--background-light);padding:16px;border-radius:var(--radius-lg)}.quick-info-item{display:flex;align-items:center;gap:6px;color:var(--text-gray);font-size:.9rem}.servings-adjuster{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:16px;background:var(--background-light);border-radius:var(--radius-lg)}.servings-controls{display:flex;align-items:center;gap:12px}.servings-controls button{width:32px;height:32px;border:1px solid var(--border-medium);background:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:600}.servings-controls button:hover{background:var(--background-off-white)}.nutrition-summary{margin-bottom:30px;padding:20px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg)}.nutrition-summary h3{margin-bottom:15px;color:var(--text-dark)}.nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.nutrition-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-gray)}.ingredients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.ingredients-header h3{color:var(--text-dark)}.shopping-list-button{display:flex;align-items:center;gap:6px;background:var(--success-color);color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:.8rem}.shopping-list-button:hover{background:var(--success-dark)}.ingredients-list{list-style:none;padding:0}.ingredient-name{font-weight:500;color:var(--text-dark)}.ingredient-confidence{font-size:.8rem;color:var(--text-secondary)}.recipe-steps h3{margin-bottom:20px;color:var(--text-dark)}.steps-list{list-style:none;padding:0}.recipe-step{display:flex;gap:16px;margin-bottom:20px;align-items:flex-start}.step-number{width:32px;height:32px;background:var(--accent-indigo);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.step-text{color:var(--text-gray);line-height:1.6;padding-top:6px}.recipe-footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--border-light)}.recipe-author{text-align:center;color:var(--text-secondary)}.recipe-author span{display:block;margin-bottom:4px}.dish-preview{display:flex;gap:20px;margin-bottom:40px;padding:20px;background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light)}.dish-preview-image{width:120px;height:120px;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0}.dish-preview-info h3{font-size:1.4rem;font-weight:600;color:var(--text-dark);margin-bottom:8px}.original-restaurant{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.9rem;margin-bottom:8px}.dish-author{color:var(--accent-indigo);font-size:.9rem}.delivery-options h2{margin-bottom:10px;color:var(--text-dark)}.delivery-subtitle{color:var(--text-secondary);margin-bottom:30px}.platforms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:40px}.platform-card{background:#fff;border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:all .2s ease;text-align:left}.platform-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.platform-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.platform-logo{font-size:1.5rem}.platform-name{font-weight:600;color:var(--text-dark);flex:1}.external-icon{color:var(--text-secondary)}.platform-features{display:flex;gap:16px;margin-bottom:16px}.feature{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.8rem}.platform-action{font-size:.9rem;color:var(--accent-indigo);font-weight:500}.order-tips{background:var(--background-light);padding:20px;border-radius:var(--radius-lg)}.order-tips h3{margin-bottom:12px;color:var(--text-dark)}.order-tips ul{list-style:none;padding:0}.order-tips li{color:var(--text-gray);position:relative;padding:6px 0 6px 20px}.order-tips li:before{content:"•";color:var(--success-color);position:absolute;left:0;font-weight:700}.recipe-loading,.order-loading,.recipe-error,.order-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.recipe-loading p,.order-loading p{margin-top:16px;color:var(--text-secondary)}.recipe-error h2,.order-error h2{color:var(--error-color);margin-bottom:16px}@media (max-width: 768px){.recipe-content{grid-template-columns:1fr;gap:20px}.recipe-image-section{position:static}.platforms-grid{grid-template-columns:1fr}.dish-preview{flex-direction:column}.dish-preview-image{width:100%;height:200px}.nutrition-grid{grid-template-columns:1fr}}.nutrition-input:focus{outline:none;border-color:var(--primary-color)}.dishes-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.dish-type{margin-top:.5rem}.restaurant-badge,.homemade-badge{display:inline-flex;align-items:center;gap:.25rem;padding:4px 8px;border-radius:var(--radius-lg);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.restaurant-badge{background:var(--warning-bg);color:#d97706}.homemade-badge{background:#d1fae5;color:var(--success-dark)}.restaurant-page{max-width:1200px;margin:0 auto;padding:20px}.restaurant-page .back-button{position:relative;z-index:10;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.restaurant-page .back-button svg{flex-shrink:0}.restaurant-hero{margin-bottom:40px}.hero-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.hero-image{position:relative;border-radius:var(--radius-xl);overflow:hidden}.hero-image img{width:100%;height:400px;object-fit:cover}.hero-overlay{position:absolute;top:20px;right:20px}.restaurant-rating{display:flex;align-items:center;gap:8px;background:#fffffff2;padding:8px 12px;border-radius:var(--radius-md);font-weight:600}.rating-count{color:var(--text-secondary);font-weight:400}.hero-info h1{font-size:2.5rem;font-weight:700;color:var(--text-dark);margin-bottom:16px}.restaurant-meta{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.cuisine-tag,.price-range{background:var(--background-off-white);padding:6px 12px;border-radius:var(--radius-md);font-size:.9rem;color:var(--text-gray);font-weight:500}.status{padding:6px 12px;border-radius:var(--radius-md);font-size:.9rem;font-weight:500}.status.open{background:#d1fae5;color:#065f46}.status.closed{background:var(--error-bg);color:#991b1b}.restaurant-location{display:flex;align-items:center;gap:8px;color:var(--text-secondary);margin-bottom:16px}.restaurant-description{color:var(--text-gray);line-height:1.6;margin-bottom:24px}.restaurant-stats{display:flex;gap:24px;margin-bottom:24px}.stat{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.restaurant-actions{display:flex;gap:12px}.menu-section{margin-top:40px}.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.menu-header h2{font-size:2rem;font-weight:700;color:var(--text-dark)}.menu-categories{display:flex;gap:8px;flex-wrap:wrap}.category-btn{padding:8px 16px;border:1px solid var(--border-light);background:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-size:.9rem}.category-btn:hover{background:var(--background-light)}.category-btn.active{background:var(--accent-indigo);color:#fff;border-color:var(--accent-indigo)}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.menu-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease}.menu-item:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.menu-item-image{position:relative;height:200px}.menu-item-image img{width:100%;height:100%;object-fit:cover}.calories-badge{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:6px;font-size:.8rem;display:flex;align-items:center;gap:4px}.menu-item-content{padding:16px}.menu-item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:8px}.menu-item-header h3{font-size:1.1rem;font-weight:600;color:var(--text-dark);flex:1;margin-right:12px}.price{font-size:1.1rem;font-weight:700;color:var(--success-dark)}.menu-item-description{color:var(--text-secondary);font-size:.9rem;line-height:1.4;margin-bottom:12px}.dietary-tags{display:flex;gap:6px}.dietary-tag{background:#dcfce7;color:#166534;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:500}.dish-page{max-width:1000px;margin:0 auto;padding:20px}.dish-hero{margin-bottom:40px}.dish-hero .hero-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.dish-hero .hero-image img{width:100%;height:350px;object-fit:cover;border-radius:var(--radius-xl)}.calories-overlay{position:absolute;bottom:16px;right:16px;background:#000c;color:#fff;padding:8px 12px;border-radius:var(--radius-md);display:flex;align-items:center;gap:6px;font-weight:500}.dish-meta{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.category-tag{background:var(--info-bg);color:#1d4ed8;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:500}.dish-hero h1{font-size:2.2rem;font-weight:700;color:var(--text-dark);margin-bottom:16px}.dish-description{color:var(--text-gray);line-height:1.6;margin-bottom:24px}.dish-restaurant-info{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;background:var(--indigo-alpha-5);border-radius:var(--radius-md);border-left:3px solid var(--accent-indigo)}.restaurant-location-text{display:flex;align-items:center;flex:1;font-size:.95rem;color:var(--text-secondary)}.dish-restaurant-name-link{color:var(--accent-indigo);cursor:pointer;font-weight:500;transition:all .2s ease;border-radius:4px;padding:2px 4px}.dish-restaurant-name-link:hover{color:var(--accent-indigo-dark);background:#4f46e51a;text-decoration:underline}.dish-cost{color:var(--success-dark);font-weight:600;font-size:1rem;margin-left:auto}.dish-hero-ingredients{margin-bottom:16px}.hero-ingredients-list{display:flex;flex-wrap:wrap;gap:8px}.hero-ingredient-tag{display:inline-block;padding:6px 12px;background:var(--background-light);border-radius:20px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.hero-ingredient-tag:hover{background:var(--accent-indigo);color:#fff}.restaurant-link{display:flex;align-items:center;gap:12px;padding:16px;background:var(--background-light);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;margin-bottom:24px}.restaurant-link:hover{background:var(--background-off-white)}.restaurant-name{font-weight:600;color:var(--text-dark)}.restaurant-details{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.9rem}.price-section{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px}.price-info{display:flex;justify-content:space-between;align-items:center}.price{font-size:2rem;font-weight:700;color:var(--success-dark)}.serving-adjuster{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:16px;background:var(--background-light);border-radius:var(--radius-lg);font-weight:500}.serving-controls{display:flex;align-items:center;gap:12px}.serving-controls button{width:36px;height:36px;min-width:36px;min-height:36px;border:1px solid var(--border-medium);background:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px;line-height:1;transition:all .2s ease;flex-shrink:0;padding:0}.serving-controls button:hover{background:#667eea;color:#fff;border-color:#667eea}.serving-controls span{min-width:32px;text-align:center;font-weight:600;font-size:18px}.dish-stats{display:flex;justify-content:space-around;margin-bottom:30px;padding:20px;background:var(--background-light);border-radius:var(--radius-lg)}.stat-item{display:flex;align-items:center;gap:12px}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-dark)}.stat-label{color:var(--text-secondary);font-size:.9rem}.ingredients-section{margin-bottom:30px}.ingredients-section h3{font-size:1.3rem;font-weight:600;color:var(--text-dark);margin-bottom:16px}.ingredients-list{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px}.ingredient-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--background-off-white)}.ingredient-item.ingredient-clickable{cursor:pointer;padding:8px 12px;margin:0 -12px;border-radius:8px;transition:background-color .2s ease}.ingredient-item.ingredient-clickable:hover{background-color:var(--background-off-white)}.ingredient-item.ingredient-clickable .ingredient-name{color:var(--primary-color);text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s ease}.ingredient-item.ingredient-clickable:hover .ingredient-name{text-decoration-color:var(--primary-color)}.ingredient-page{max-width:600px;margin:0 auto;padding:20px 20px 100px}.ingredient-page-loading,.ingredient-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:20px}.ingredient-page-loading p{margin-top:16px;color:var(--text-secondary)}.ingredient-page-error h2{font-size:1.5rem;margin-bottom:8px;color:var(--text-dark)}.ingredient-page-error p{color:var(--text-secondary);margin-bottom:20px}.ingredient-page .back-button{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);background:none;border:none;padding:8px 0;margin-bottom:16px;font-weight:500;font-size:.95rem;cursor:pointer;transition:color .2s ease}.ingredient-page .back-button:hover{color:var(--text-dark)}.ingredient-hero{background:linear-gradient(135deg,var(--primary-color) 0%,#2a9aa8 100%);border-radius:var(--radius-xl);padding:24px;margin-bottom:24px;color:#fff}.ingredient-hero .hero-content{display:flex;align-items:center;gap:20px}.ingredient-hero .hero-image{width:80px;height:80px;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;background:#fff3}.ingredient-hero .hero-image img{width:100%;height:100%;object-fit:cover}.ingredient-hero .hero-image-placeholder{width:80px;height:80px;border-radius:var(--radius-lg);background:#fff3;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ingredient-hero .hero-image-placeholder svg{color:#fffc}.ingredient-hero .hero-info{flex:1;min-width:0}.ingredient-hero h1{font-size:1.5rem;margin:0 0 4px;font-weight:700;text-transform:capitalize}.ingredient-hero .ingredient-category{display:inline-flex;align-items:center;gap:6px;background:#fff3;padding:4px 10px;border-radius:20px;font-size:.85rem;margin-bottom:8px}.ingredient-hero .ingredient-description{margin:8px 0 0;opacity:.9;font-size:.9rem;line-height:1.4}.ingredient-content{display:flex;flex-direction:column;gap:24px}.ingredient-page .grocery-section{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.ingredient-page .grocery-section h2{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0 0 4px;display:flex;align-items:center;gap:8px}.ingredient-page .grocery-section h2 svg{color:var(--primary-color)}.ingredient-page .section-subtitle{color:var(--text-secondary);font-size:.85rem;margin:0 0 16px}.ingredient-page .grocery-options{display:flex;flex-direction:column;gap:10px}.ingredient-page .grocery-button{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--background-light);border:1px solid var(--border-light);border-radius:var(--radius-lg);text-decoration:none;color:var(--text-dark);font-weight:500;font-size:.95rem;transition:all .2s ease}.ingredient-page .grocery-button:hover{background:#fff;border-color:var(--primary-color);transform:translate(4px)}.ingredient-page .grocery-button:active{transform:translate(2px)}.ingredient-page .grocery-logo{width:32px;height:32px;object-fit:contain;border-radius:6px}.ingredient-page .grocery-button span{flex:1}.ingredient-page .grocery-button:after{content:"→";color:var(--text-secondary);font-size:1.1rem;transition:transform .2s ease}.ingredient-page .grocery-button:hover:after{transform:translate(4px);color:var(--primary-color)}.ingredient-page .dishes-section{background:#fff;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.ingredient-page .dishes-section h2{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0 0 4px;display:flex;align-items:center;gap:8px}.ingredient-page .dishes-section h2 svg{color:var(--primary-color)}.ingredient-page .dishes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ingredient-page .dish-card{display:flex;flex-direction:column;background:var(--background-light);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-light)}.ingredient-page .dish-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.ingredient-page .dish-card:active{transform:translateY(0)}.ingredient-page .dish-card .dish-image{width:100%;aspect-ratio:1;object-fit:cover;background:var(--background-off-white)}.ingredient-page .dish-card .dish-info{padding:10px}.ingredient-page .dish-card .dish-info h3{font-weight:600;color:var(--text-dark);margin:0;font-size:.9rem;line-height:1.3;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ingredient-page .dish-card .dish-description{font-size:.8rem;color:var(--text-secondary);margin:4px 0 0;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 400px){.ingredient-page .dishes-grid{grid-template-columns:1fr}.ingredient-hero .hero-content{flex-direction:column;text-align:center}.ingredient-hero h1{font-size:1.3rem}}.ingredient-bullet{color:var(--success-color);font-weight:700}.action-buttons{display:flex;gap:12px;margin-bottom:30px}.nutritional-info{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px}.nutritional-info h3{font-size:1.2rem;font-weight:600;color:var(--text-dark);margin-bottom:16px}.nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.nutrition-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--background-off-white)}.nutrition-item:last-child{border-bottom:none}.nutrition-label{color:var(--text-secondary)}.nutrition-value{font-weight:600;color:var(--text-dark)}.restaurant-page-loading,.dish-page-loading,.restaurant-page-error,.dish-page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.restaurant-page-loading p,.dish-page-loading p{margin-top:16px;color:var(--text-secondary)}.restaurant-page-error h2,.dish-page-error h2{color:var(--error-color);margin-bottom:16px}.map-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.map-modal{background:#fff;border-radius:var(--radius-xl);max-width:800px;width:100%;max-height:90vh;overflow:hidden;box-shadow:var(--shadow-3xl);display:flex;flex-direction:column}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-light);background:var(--background-light)}.modal-title{display:flex;align-items:center;gap:12px}.modal-title h3{font-size:1.2rem;font-weight:600;color:var(--text-dark);margin:0 0 4px}.modal-title p{color:var(--text-secondary);font-size:.9rem;margin:0}.close-button{background:none;border:none;cursor:pointer;padding:8px;color:var(--text-secondary);transition:all .2s ease;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.close-button:hover{background:var(--border-light);color:var(--text-gray)}.map-container{height:400px;flex:1;position:relative}.map-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--background-light)}.map-loading p{margin-top:16px;color:var(--text-secondary)}.map-modal-actions{display:flex;gap:12px;padding:20px;border-top:1px solid var(--border-light);background:var(--background-light)}.map-modal-actions .primary-button,.map-modal-actions .secondary-button{flex:1;justify-content:center;padding:12px 16px}.restaurant-location{cursor:pointer;transition:all .2s ease;padding:4px;border-radius:6px;margin:-4px}.restaurant-location:hover{background:var(--background-off-white);color:var(--accent-indigo)}.dish-page .dish-meta{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.post-author{display:flex;align-items:center;gap:12px}.author-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.author-name{font-weight:600;color:var(--text-dark)}.post-date{color:var(--text-secondary);font-size:.9rem}.edit-button{display:flex;align-items:center;gap:8px;background:#ffffffe6;border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:8px 12px;cursor:pointer;transition:all .2s ease;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-gray)}.edit-button:hover{background:#e5e7ebf2;border-color:#9ca3af}.edit-form{background:var(--background-light);padding:20px;border-radius:var(--radius-lg);margin-bottom:20px}.edit-caption{width:100%;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:1.1rem;margin-bottom:16px}.edit-cost{display:flex;align-items:center;gap:12px;margin-bottom:16px}.edit-cost label{font-weight:500;color:var(--text-gray)}.edit-cost input{padding:8px 12px;border:1px solid var(--border-medium);border-radius:6px;width:120px}.save-button{display:flex;align-items:center;gap:8px;background:var(--success-color);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease}.save-button:hover{background:var(--success-dark)}.edit-section{margin-bottom:24px}.edit-section label{display:block;font-weight:600;color:var(--text-gray);margin-bottom:8px}.edit-input,.edit-textarea{width:100%;padding:12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:1rem;transition:border-color .2s ease}.edit-input:focus,.edit-textarea:focus{outline:none;border-color:var(--accent-indigo);box-shadow:0 0 0 3px #4f46e51a}.ingredients-edit{display:flex;flex-direction:column;gap:8px}.ingredient-edit-item{display:flex;gap:8px;align-items:center}.ingredient-input{flex:1;padding:8px 12px;border:1px solid var(--border-medium);border-radius:6px;font-size:.95rem}.remove-ingredient-button{background:var(--error-color);color:#fff;border:none;border-radius:6px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.remove-ingredient-button:hover{background:var(--error-dark)}.add-ingredient-button{display:flex;align-items:center;gap:8px;background:var(--success-color);color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;transition:all .2s ease;align-self:flex-start}.add-ingredient-button:hover{background:var(--success-dark)}.nutrition-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.nutrition-edit-item{display:flex;flex-direction:column;gap:4px}.nutrition-edit-item label{font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.nutrition-input{padding:8px 12px;border:1px solid var(--border-medium);border-radius:6px;font-size:.95rem;width:100%}.edit-actions{display:flex;gap:12px;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-light)}.delete-button{display:flex;align-items:center;gap:8px;background:var(--error-color);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;transition:all .2s ease}.delete-button:hover{background:var(--error-dark)}.restaurant-info{display:flex;align-items:center;gap:8px;color:var(--text-secondary);margin-bottom:12px}.cost-info{display:flex;align-items:center;gap:8px;margin-bottom:16px}.cost-label{color:var(--text-secondary)}.cost-value{font-weight:600;color:var(--success-dark);font-size:1.1rem}.engagement-actions{display:flex;align-items:center;gap:16px;margin-bottom:20px}.like-button{display:flex;align-items:center;gap:8px;background:#ffffffe6;border:1px solid var(--border-light);cursor:pointer;padding:8px 12px;border-radius:var(--radius-md);transition:all .2s ease;color:var(--text-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.like-button:hover{background:#fef2f2f2;border-color:#f87171}.like-button.liked{color:var(--error-color);background:#fef2f2f2;border-color:var(--error-color)}.view-count{color:var(--text-secondary);font-size:.9rem}.dish-content{margin-top:30px}.tab-navigation{display:flex;border-bottom:1px solid var(--border-light);margin-bottom:30px}.tab-button{display:flex;align-items:center;gap:8px;background:none;border:none;padding:16px 24px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;color:var(--text-secondary);font-weight:500}.tab-button:hover{color:var(--text-gray);background:var(--background-light)}.tab-button.active{color:var(--accent-indigo);border-bottom-color:var(--accent-indigo);background:#fafbff}.tab-content{min-height:300px}.recipe-content .ingredients-section{margin-bottom:30px}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--background-off-white)}.ingredient-item:last-child{border-bottom:none}.ingredient-name{flex:1;margin-left:0}.ingredient-confidence{color:var(--success-color);font-weight:500;font-size:.9rem}.nutrition-section{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;margin-bottom:30px}.nutrition-section h3{margin-bottom:16px;color:var(--text-dark)}.recipe-stats{display:flex;justify-content:space-around;background:var(--background-light);border-radius:var(--radius-lg);padding:20px}.stat-icon{font-weight:600;font-size:1.2rem;color:var(--accent-indigo)}.instructions-text{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;line-height:1.7}.instructions-text p{margin:0 0 12px;color:var(--text-gray)}.instructions-text p:last-child{margin-bottom:0}.grocery-stores{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-light)}.grocery-stores h4{margin:0 0 16px;color:var(--text-dark);font-size:1.1rem;font-weight:600}.grocery-options{display:flex;flex-direction:column;gap:12px}.grocery-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:2px solid var(--border-light);border-radius:10px;background:#fff;color:var(--text-dark);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .2s ease;cursor:pointer}.grocery-logo{width:24px;height:24px;object-fit:contain;flex-shrink:0}.grocery-button:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.grocery-button.delhaize{border-color:#e53e3e;color:#e53e3e}.grocery-button.delhaize:hover{background:#e53e3e;color:#fff}.grocery-button.albert-heijn{border-color:var(--info-color);color:var(--info-color)}.grocery-button.albert-heijn:hover{background:var(--info-color);color:#fff}.grocery-button.colruyt{border-color:var(--success-darker);color:var(--success-darker)}.grocery-button.colruyt:hover{background:var(--success-darker);color:#fff}@media (min-width: 768px){.grocery-options{flex-direction:row}}.delivery-content{padding:20px}.delivery-options{display:flex;flex-direction:column;gap:16px}.delivery-option{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);transition:all .2s ease}.delivery-option:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--accent-indigo)}.delivery-option img,.delivery-logo{width:60px;height:60px;border-radius:var(--radius-md);object-fit:contain;background:#fff;padding:4px;border:1px solid var(--border-light)}.delivery-info{flex:1}.delivery-info h4{margin:0 0 4px;color:var(--text-dark);font-weight:600}.delivery-info p{margin:0;color:var(--text-secondary);font-size:.9rem}.delivery-button{background:var(--accent-indigo);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 20px;cursor:pointer;transition:all .2s ease;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.delivery-button:hover{background:var(--accent-indigo-dark);color:#fff;text-decoration:none}.restaurants-content{padding:20px}.restaurant-search{margin-bottom:24px}.search-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.restaurant-search p{color:var(--text-secondary);font-size:1rem;margin-bottom:8px}.view-all-restaurants-button{background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);padding:10px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #667eea4d}.view-all-restaurants-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.search-based-on{font-size:.9rem!important;color:#9ca3af!important;font-style:italic}.restaurants-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.restaurants-loading p{margin-top:16px;color:var(--text-secondary)}.nearby-restaurants{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.restaurant-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;transition:all .2s ease}.restaurant-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--accent-indigo)}.restaurant-card img{width:100%;height:180px;object-fit:cover}.restaurant-details{padding:16px;overflow:hidden}.restaurant-details h4{margin:0 0 12px;color:var(--text-dark);font-weight:600;font-size:1.1rem;word-wrap:break-word;overflow-wrap:break-word}.restaurant-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.restaurant-rating{display:flex;align-items:center;gap:4px}.rating-count{color:#9ca3af;font-size:.8rem;margin-left:4px}.price-range{color:var(--success-dark);font-weight:600;font-size:.9rem}.restaurant-info{margin-bottom:12px}.cuisine-distance{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.cuisine{background:var(--info-bg);color:#1d4ed8;padding:2px 8px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:500;white-space:nowrap}.distance{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.85rem}.address{color:var(--text-secondary);font-size:.85rem;margin:0;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.popular-dishes{background:var(--background-light);padding:8px 12px;border-radius:var(--radius-md);margin-bottom:12px;font-size:.85rem;overflow:hidden}.dishes-label{color:var(--text-secondary);font-weight:500}.dishes-list{color:var(--text-gray);word-wrap:break-word;overflow-wrap:break-word}.restaurant-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.restaurant-button{background:var(--accent-indigo);color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;transition:all .2s ease;font-size:.9rem;flex:1;min-width:0;white-space:nowrap}.restaurant-button:hover{background:var(--accent-indigo-dark)}.restaurant-link{display:flex;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;font-size:.85rem;padding:6px 8px;border-radius:4px;transition:all .2s ease}.restaurant-link:hover{color:var(--accent-indigo);background:var(--background-off-white)}.no-restaurants{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.no-restaurants-icon{font-size:3rem;margin-bottom:16px}.no-restaurants h3{color:var(--text-dark);margin-bottom:8px}.no-restaurants p{color:var(--text-secondary);margin-bottom:20px}.retry-button{background:var(--background-off-white);color:var(--text-gray);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:10px 20px;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:var(--border-light)}.recipe-steps{margin-bottom:30px}.recipe-steps h3{font-size:1.3rem;font-weight:600;color:var(--text-dark);margin-bottom:20px}.steps-list{list-style:none;padding:0;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.recipe-step{display:flex;align-items:flex-start;gap:16px;padding:20px;border-bottom:1px solid var(--background-off-white);transition:all .2s ease}.recipe-step:last-child{border-bottom:none}.recipe-step:hover{background:var(--background-light)}.step-number{background:var(--accent-indigo);color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0;margin-top:2px}.step-text{flex:1;line-height:1.6;color:var(--text-gray)}.edit-button.admin-edit{background:var(--error-dark);color:#fff;border-color:var(--error-dark)}.edit-button.admin-edit:hover{background:var(--error-darker);border-color:var(--error-darker)}.admin-edit-warning{background:var(--warning-bg);border:1px solid var(--warning-color);color:#92400e;padding:12px;border-radius:var(--radius-md);margin-bottom:16px;display:flex;align-items:center;gap:8px;font-weight:500}.admin-edit-overlay-button{background:#6366f1e6;color:#fff;border:none;border-radius:var(--radius-md);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #00000026;border:1px solid var(--overlay-light)}.admin-edit-overlay-button:hover{background:#4f46e5f2;transform:scale(1.05);box-shadow:0 4px 16px #6366f14d}.image-upload-section{margin-bottom:24px}.image-upload-section h3{margin-bottom:16px;color:var(--text-dark);font-weight:600}.upload-area{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--background-light)}.upload-area:hover{border-color:var(--primary-color);background:#667eea0d}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-light)}.upload-placeholder svg{color:var(--text-light)}.upload-placeholder p{margin:0;font-weight:500}.upload-hint{font-size:14px!important;color:var(--text-lighter)!important}.image-preview{position:relative;border-radius:var(--radius-lg);overflow:hidden;max-width:400px;margin:0 auto}.image-preview img{width:100%;height:auto;display:block}.remove-image{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.remove-image:hover{background:#000000e6}.dish-tagging-section{margin-bottom:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h3{margin:0;color:var(--text-dark);font-weight:600}.toggle-dish-selection{background:var(--primary-color);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:background-color .2s ease}.toggle-dish-selection:hover{background:var(--primary-hover)}.likes-count.clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:2px 4px;margin:-2px -4px}.likes-count.clickable:hover{background:var(--gray-alpha-5);color:var(--primary-color)}.likes-modal{max-width:400px;width:90%;max-height:80vh}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:100%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 16px;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-dark)}.modal-body{flex:1;overflow-y:auto;padding:20px}.likes-list{display:flex;flex-direction:column;gap:12px}.like-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.like-item:hover{background:var(--gray-alpha-5)}.like-item .user-info{flex:1}.like-item .username{font-weight:600;color:var(--text-dark);font-size:14px}.like-item .full-name{color:var(--text-gray);font-size:13px}.no-likes{text-align:center;color:var(--text-gray);padding:40px 20px}@media (max-width: 768px){.likes-modal{max-width:100%;width:100%;height:100%;max-height:100%;border-radius:0}.modal-overlay{padding:0}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#262626;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 100%);--secondary-gradient: linear-gradient(135deg, #32adbd 0%, #32bd9f 50%, #32bd9f 100%);--success-gradient: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--background-gradient: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);--analysis-gradient: linear-gradient(135deg, #f8f9ff 0%, #fff5f5 100%);--success-bg-gradient: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);--primary-color: #32adbd;--primary-dark: #2a94a3;--primary-light: #4bc5d4;--accent-blue: #3897f0;--accent-indigo: #4f46e5;--accent-indigo-dark: #4338ca;--accent-teal: #48cab2;--success-color: #10b981;--success-dark: #059669;--success-darker: #38a169;--error-color: #ef4444;--error-text: #ed4956;--error-dark: #dc2626;--error-darker: #b91c1c;--error-bg: #fee2e2;--error-border: #fecaca;--warning-color: #f59e0b;--warning-bg: #fef3c7;--info-color: #3182ce;--info-bg: #eff6ff;--like-color: #ff6b6b;--text-primary: #262626;--text-secondary: #6b7280;--text-tertiary: #8e8e8e;--text-muted: #9ca3af;--text-dark: #1f2937;--text-gray: #374151;--text-light-gray: #666;--text-very-light: #c7c7c7;--border-light: #e5e7eb;--border-medium: #d1d5db;--border-gray: #e1e8ed;--border-light-gray: #efefef;--border-very-light: #f3f4f6;--border-lighter: #dbdbdb;--border-dark: #333;--background-light: #f9fafb;--background-white: #ffffff;--background-gray: #f8f9fa;--background-off-white: #f3f4f6;--background-lighter: #f0f2f5;--background-pale: #f0f0f0;--background-error: #ffeaea;--background-error-light: #fef2f2;--background-success-light: #ecfdf5;--overlay-dark: rgba(0, 0, 0, .5);--overlay-darker: rgba(0, 0, 0, .6);--overlay-darkest: rgba(0, 0, 0, .7);--overlay-light: rgba(255, 255, 255, .2);--primary-alpha-10: rgba(50, 173, 189, .1);--primary-alpha-20: rgba(50, 173, 189, .2);--indigo-alpha-5: rgba(79, 70, 229, .05);--gray-alpha-5: rgba(107, 114, 128, .05);--white-alpha-20: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 4px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 25px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 30px rgba(0, 0, 0, .12);--shadow-2xl: 0 20px 60px rgba(0, 0, 0, .15);--shadow-3xl: 0 25px 80px rgba(0, 0, 0, .3);--shadow-primary: 0 4px 15px rgba(50, 173, 189, .3);--shadow-primary-hover: 0 8px 25px rgba(50, 173, 189, .4);--shadow-success: 0 4px 12px rgba(16, 185, 129, .1);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow-x:hidden;max-width:100vw}body{margin:0;min-width:320px;font-family:inherit;background:var(--background-gradient);background-attachment:fixed;color:var(--text-primary);line-height:1.6;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto}html{-webkit-text-size-adjust:100%;overflow-y:auto}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:700;color:var(--text-primary);margin-bottom:.5em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{line-height:1.6;color:var(--text-secondary)}a{color:#667eea;text-decoration:none;font-weight:500;transition:color .2s ease}a:hover{color:#764ba2;text-decoration:underline}button{border-radius:var(--radius-md);border:1px solid transparent;padding:.75em 1.5em;font-size:.9rem;font-weight:600;font-family:inherit;background-color:var(--background-white);color:var(--text-primary);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}button:focus,button:focus-visible{outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed;transform:none}input,textarea,select{font-family:inherit;font-size:.9rem;border:2px solid var(--border-light);border-radius:var(--radius-md);padding:.75rem;transition:all .2s ease;background:var(--background-white);color:var(--text-primary)}input:focus,textarea:focus,select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background-light);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-sm);transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:#667eea33;color:var(--text-primary)}.gradient-text{background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{max-width:1200px;margin:0 auto;padding:2rem}.container-sm{max-width:935px;margin:0 auto;padding:1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}.card{background:var(--background-white);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border-light);transition:all .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.page-header{text-align:center;margin-bottom:2.5rem}.page-title{font-size:2.75rem;margin-bottom:1rem;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:-.02em}.page-subtitle{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.6}.controls-section{background:var(--background-white);border-radius:var(--radius-xl);padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm)}.grid{display:grid;gap:1.5rem}.grid-auto-fit{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.btn{border-radius:var(--radius-md);border:1px solid transparent;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--primary-gradient);color:var(--background-white);box-shadow:var(--shadow-primary)}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05)}.btn-secondary{background:var(--secondary-gradient);color:var(--background-white);box-shadow:0 4px 15px #ff6b6b4d}.btn-outline{background:transparent;border:2px solid var(--border-light);color:var(--text-secondary)}.btn-outline:hover{border-color:#667eea;color:#667eea}.form-input{width:100%;padding:.75rem;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.9rem;transition:all .2s ease;background:var(--background-white);box-sizing:border-box}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary)}.search-bar{position:relative}.search-input{padding-left:3rem}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:var(--primary-gradient);color:var(--background-white);padding:1.5rem;border-radius:var(--radius-lg);text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700;margin-bottom:.5rem}.stat-label{font-size:.9rem;opacity:.9}.avatar{width:4rem;height:4rem;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:2.5rem;height:2.5rem}.avatar-lg{width:5rem;height:5rem}.avatar-edit-container{position:relative;width:5rem;height:5rem;cursor:pointer}.avatar-edit-container .avatar{width:100%;height:100%}.avatar-edit-overlay{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;border-radius:50%;background-color:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none}.avatar-edit-container:hover .avatar-edit-overlay{opacity:1}.danger-zone-spoiler{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-light)}.danger-zone-summary{cursor:pointer;font-weight:600;color:var(--danger);padding:.5rem 0;list-style:none;display:flex;align-items:center;gap:.5rem}.danger-zone-summary::-webkit-details-marker{display:none}.danger-zone-summary:before{content:"▶";font-size:.75rem;transition:transform .2s ease}.danger-zone-spoiler[open] .danger-zone-summary:before{transform:rotate(90deg)}.danger-zone-content{padding:1rem 0 0 1.25rem}.tag{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;display:inline-block}.tag-primary{background:var(--primary-gradient);color:var(--background-white)}.tag-success{background:var(--success-gradient);color:var(--background-white)}.tag-outline{background:var(--background-light);color:var(--text-secondary);border:1px solid var(--border-light)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.pt-4{padding-top:1rem}.mb-4{margin-bottom:1rem}.mt-2{margin-top:.5rem}.font-semibold{font-weight:600}.text-muted{color:var(--text-muted)}.hidden{display:none}.cursor-pointer{cursor:pointer}@media (max-width: 768px){.container{padding:1rem .75rem;overflow-x:hidden}.card{margin:0 .75rem;padding:1rem;max-height:none;overflow:visible}.grid-auto-fit,.grid-2,.grid-3{grid-template-columns:1fr}.page-title{font-size:2rem}.page-header{margin-bottom:1.5rem;padding:0 .75rem}.form-input,input[type=text],input[type=email],input[type=file]{font-size:16px!important;-webkit-appearance:none;-moz-appearance:none;appearance:none}}@media (max-width: 430px){.container{padding:.5rem}.card{margin:0 .5rem;border-radius:12px}.page-header{padding:0 .5rem;margin-bottom:1rem}.card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.form-group{margin-bottom:1rem}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}@media (prefers-contrast: high){:root{--text-primary: #000000;--text-secondary: #333333;--border-light: #666666;--border-medium: #333333}button{border:2px solid var(--text-primary)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
