.residence-selector-container{position:relative}.residence-selector{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:var(--border-radius-md);color:#fff;cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:8px;max-width:180px;min-width:140px;padding:6px 12px;transition:background .2s}.residence-selector:hover{background:#ffffff4d}.residence-selector.empty,.residence-selector.loading{background:#ffffff1a;cursor:default}.residence-icon{font-size:1.1em}.residence-name{flex:1 1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.residence-arrow{font-size:.7em;opacity:.8}.residence-dropdown{background:#fff;border-radius:var(--border-radius-md);box-shadow:0 4px 20px #00000026;left:0;margin-top:4px;min-width:280px;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}.residence-option{align-items:flex-start;background:none;border:none;border-bottom:1px solid var(--color-gray-100);cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 16px;text-align:left;transition:background .2s;width:100%}.residence-option:last-child{border-bottom:none}.residence-option:hover{background:var(--color-gray-50)}.residence-option.active{background:var(--color-primary-light);border-left:3px solid var(--color-primary)}.option-name{align-items:center;color:var(--color-gray-800);display:flex;font-weight:600;gap:8px}.badge-default{background:var(--color-primary);border-radius:10px;font-size:10px;padding:2px 6px}.option-address{color:var(--color-gray-600);font-size:var(--font-size-xs)}.option-stats{color:var(--color-gray-500);font-size:var(--font-size-xs)}.residence-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.residence-banner{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);border-radius:var(--border-radius-md);justify-content:space-between;margin-bottom:var(--spacing-md);padding:12px 16px}.residence-banner-info{align-items:center;display:flex;gap:12px}.residence-banner-icon{font-size:1.5em}.residence-banner-text h3{font-size:var(--font-size-md);font-weight:600;margin:0}.residence-banner-text p{font-size:var(--font-size-xs);margin:2px 0 0;opacity:.9}.residence-banner-stats{display:flex;gap:16px}.residence-banner-stat{text-align:center}.residence-banner-stat .number{font-size:var(--font-size-xl);font-weight:700}.residence-banner-stat .label{font-size:var(--font-size-xs);opacity:.9}.layout{flex-direction:column;min-height:100vh;overflow-x:hidden;position:relative}.header,.layout{display:flex;max-width:100vw;width:100%}.header{align-items:center;background-color:var(--color-primary);box-shadow:var(--shadow-md);box-sizing:border-box;color:var(--color-white);height:var(--navbar-height);justify-content:space-between;padding:0 var(--spacing-md);position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-brand{align-items:center;display:flex;gap:var(--spacing-sm)}.header-logo{height:36px;object-fit:contain;width:36px}.header-title{font-size:var(--font-size-xl);font-weight:700}.header-user{align-items:center;display:flex;gap:var(--spacing-sm)}.header-residence{display:flex;flex:1 1;justify-content:center;max-width:200px}.user-name{display:none;font-size:var(--font-size-sm);font-weight:500}.btn-logout{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.2rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease}.btn-logout:hover{background:#ffffff4d;transform:scale(1.05)}@media (min-width:768px){.user-name{display:inline}}.main-content{flex:1 1;overflow-y:auto;padding:var(--spacing-md);padding-bottom:calc(var(--bottombar-height) + var(--spacing-lg))}.bottom-nav{background-color:var(--color-white);border-top:1px solid var(--color-gray-200);bottom:0;box-shadow:0 -2px 10px #0000001a;height:var(--bottombar-height);justify-content:space-around;left:0;position:fixed;right:0;z-index:100}.bottom-nav,.nav-item{align-items:center;display:flex}.nav-item{color:var(--color-gray-500);flex-direction:column;justify-content:center;padding:var(--spacing-sm);text-decoration:none;transition:color .2s ease}.nav-item.active{color:var(--color-primary)}.nav-icon{font-size:1.5rem;margin-bottom:var(--spacing-xs)}.nav-label{font-size:var(--font-size-xs);font-weight:500}@media (min-width:768px){.main-content{margin:0 auto;max-width:1400px;padding:var(--spacing-xl);padding-bottom:calc(var(--bottombar-height) + var(--spacing-xl))}}@media (min-width:1024px){.layout{display:flex;flex-direction:column}.header{width:100%}.bottom-nav{border-right:1px solid var(--color-gray-200);border-top:none;bottom:0;flex-direction:column;gap:var(--spacing-sm);height:auto;justify-content:flex-start;left:0;padding-top:var(--spacing-xl);position:fixed;right:auto;top:var(--navbar-height);width:100px}.nav-item{padding:var(--spacing-lg) var(--spacing-sm);width:100%}.nav-icon{font-size:2rem}.nav-label{font-size:var(--font-size-sm)}.main-content{flex:1 1;margin-left:100px;max-width:none;padding:var(--spacing-2xl);padding-bottom:var(--spacing-2xl);width:calc(100% - 100px)}}.home-page{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-xl)}@media (min-width:1024px){.home-page{margin:0 auto;max-width:900px}.widgets-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.alerts-section,.widget-scan{margin-left:auto;margin-right:auto;max-width:700px}}.residence-banner{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:var(--border-radius-lg);color:#fff;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md)}.residence-address-hint{flex:1 1;font-size:var(--font-size-sm);opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-section{margin-bottom:var(--spacing-sm)}.welcome-title{color:var(--color-gray-900);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-xs)}.welcome-subtitle{color:var(--color-gray-600);font-size:var(--font-size-md)}.widget{background:var(--color-white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);cursor:pointer;padding:var(--spacing-md);transition:transform .2s ease,box-shadow .2s ease}.widget:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.widget:active{transform:translateY(0)}.widget-scan{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:var(--color-white);display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.widget-scan .widget-icon{background:#fff3;border-radius:var(--border-radius-md);font-size:2rem;padding:var(--spacing-sm)}.widget-scan .widget-content{flex:1 1}.widget-scan .widget-title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--spacing-xs)}.widget-scan .widget-description{font-size:var(--font-size-sm);opacity:.9}.widget-scan .widget-arrow{font-size:var(--font-size-xl);opacity:.8}.alerts-section{flex-direction:column}.alert-card,.alerts-section{display:flex;gap:var(--spacing-sm)}.alert-card{align-items:center;border-radius:var(--border-radius-md);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md)}.alert-warning{background:#fff8e1;border:1px solid var(--color-warning);color:#f57c00}.alert-danger{background:#ffebee;border:1px solid var(--color-danger);color:var(--color-danger)}.alert-icon{font-size:var(--font-size-lg)}.alert-text{font-size:var(--font-size-sm);font-weight:500}.widgets-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.widget-header{align-items:center;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.widget-icon-small{font-size:var(--font-size-xl)}.widget-title-small{color:var(--color-gray-800);font-size:var(--font-size-md);font-weight:600}.widget-stat{align-items:baseline;display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.stat-number{color:var(--color-primary);font-size:var(--font-size-3xl);font-weight:700}.stat-label{color:var(--color-gray-600);font-size:var(--font-size-sm)}.widget-hint{color:var(--color-gray-500);font-size:var(--font-size-xs)}.widget-info p{color:var(--color-gray-600);font-size:var(--font-size-sm)}.storage-preview{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.storage-item{align-items:center;background:var(--color-gray-100);border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.storage-count{color:var(--color-gray-700);font-weight:600}.widget-stock{border-top:3px solid var(--color-primary)}.widget-recipes{border-top:3px solid var(--color-secondary)}.widget-shopping{border-top:3px solid var(--color-info)}.widget-settings{border-top:3px solid var(--color-gray-500)}.help-section{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 2px 8px #0000001a;margin-top:var(--spacing-lg);overflow:hidden}.help-toggle{align-items:center;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);border:none;color:var(--color-gray-800);cursor:pointer;display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--spacing-sm);padding:var(--spacing-md);transition:all .3s ease;width:100%}.help-toggle:hover{background:linear-gradient(135deg,#e8e8e8,#d8d8d8)}.help-toggle.expanded{background:var(--color-primary);color:#fff}.help-icon{font-size:1.5rem}.help-title{flex:1 1;text-align:left}.help-arrow{font-size:1rem;transition:transform .3s ease}.help-content{animation:slideDown .3s ease;background:#fafafa}.help-card,.help-content{padding:var(--spacing-md)}.help-card{background:#fff;border-left:4px solid var(--color-primary);border-radius:var(--border-radius-md);box-shadow:0 1px 3px #0000000d;margin-bottom:var(--spacing-sm)}.help-card:last-child{margin-bottom:0}.help-card h4{color:var(--color-primary);font-size:var(--font-size-md);font-weight:600;margin:0 0 var(--spacing-sm) 0}.help-card p{line-height:1.6;margin:0 0 var(--spacing-xs) 0}.help-card p,.help-card ul{color:var(--color-gray-700)}.help-card ul{list-style:disc;margin:var(--spacing-sm) 0 0 var(--spacing-md);padding:0}.help-card li{line-height:1.5;margin-bottom:var(--spacing-xs)}.help-card li strong{color:var(--color-gray-800);font-weight:600}.contact-card{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-left-color:#ff9800}.contact-card h4{color:#e65100}.contact-email{background:#fff;border:2px solid var(--color-primary);border-radius:var(--border-radius-md);color:var(--color-primary);display:inline-block;font-weight:600;margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);text-decoration:none;transition:all .2s ease}.contact-email:hover{background:var(--color-primary);box-shadow:0 4px 12px #4caf504d;color:#fff;transform:translateY(-2px)}@media (min-width:768px){.widgets-grid{grid-template-columns:repeat(4,1fr)}.widget-scan{padding:var(--spacing-xl)}.widget-scan .widget-icon{font-size:4rem}.help-content{padding:var(--spacing-lg)}}@media (max-width:380px){.widgets-grid{grid-template-columns:1fr}.storage-preview{flex-wrap:wrap}.help-card{padding:var(--spacing-sm)}}.landing-page{background:#f8f9fa;min-height:100vh}.hero-section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:80px 20px;text-align:center}.hero-content{margin:0 auto;max-width:800px}.hero-logo{animation:bounce 2s ease-in-out infinite;height:120px;margin-bottom:20px;width:120px}.hero-title{font-size:3.5rem;font-weight:700;margin-bottom:20px}.hero-subtitle{font-size:1.4rem;line-height:1.6;margin-bottom:40px;opacity:.9}.hero-actions{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.hero-actions .btn{border-radius:50px;font-size:1.1rem;min-width:180px;padding:16px 32px;transition:all .3s}.hero-actions .btn-primary{background:#fff;color:#667eea}.hero-actions .btn-primary:hover{box-shadow:0 10px 30px #0003;transform:scale(1.05)}.hero-actions .btn-secondary{background:#0000;border:2px solid #fff;color:#fff}.hero-actions .btn-secondary:hover{background:#ffffff1a}.section-title{color:#333;font-size:2.5rem;margin-bottom:20px;text-align:center}.section-subtitle{color:#666;font-size:1.2rem;margin-bottom:40px;text-align:center}.features-section{margin:0 auto;max-width:1200px;padding:80px 20px}.features-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.feature-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:30px;transition:all .3s}.feature-card:hover{box-shadow:0 10px 40px #0000001f;transform:translateY(-5px)}.feature-icon{font-size:3rem;margin-bottom:20px}.feature-title{color:#333;font-size:1.4rem;margin-bottom:12px}.feature-description{color:#666;font-size:1rem;line-height:1.6}.showcase-section{background:#fff;padding:80px 20px}.showcase-grid{display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin:0 auto;max-width:1000px}.showcase-card{background:linear-gradient(135deg,#f5f7fa,#e4e8eb);border-radius:16px;min-width:250px;padding:30px 40px;text-align:center;transition:all .3s}.showcase-card:hover{transform:scale(1.05)}.showcase-image{font-size:4rem;margin-bottom:15px}.showcase-card h4{color:#333;font-size:1.3rem;margin-bottom:8px}.showcase-card p{color:#666;font-size:.95rem}.cta-section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:80px 20px;text-align:center}.cta-section h2{font-size:2.5rem;margin-bottom:15px}.cta-section p{font-size:1.2rem;margin-bottom:30px;opacity:.9}.cta-section .btn{background:#fff;border-radius:50px;color:#667eea;font-size:1.1rem;padding:16px 40px}.cta-section .btn:hover{box-shadow:0 10px 30px #0003;transform:scale(1.05)}.mailing-section{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;padding:60px 20px}.mailing-container{margin:0 auto;max-width:700px;text-align:center}.mailing-title{font-size:2.5rem;font-weight:700;margin-bottom:15px}.mailing-subtitle{font-size:1.1rem;line-height:1.6;margin-bottom:30px;opacity:.95}.mailing-form{background:#fffffff2;border-radius:15px;box-shadow:0 10px 40px #0003;padding:30px}.mailing-input-group{display:flex;gap:10px;margin-bottom:20px}.mailing-input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:1rem;padding:15px 20px;transition:border-color .2s}.mailing-input:focus{border-color:#667eea;outline:none}.mailing-input:disabled{background:#f5f5f5;cursor:not-allowed}.mailing-submit{font-size:1rem;min-width:150px;padding:15px 30px;white-space:nowrap}.mailing-submit:disabled{cursor:not-allowed;opacity:.5}.mailing-consent{align-items:flex-start;color:#333;display:flex;gap:10px;margin-bottom:15px;text-align:left}.mailing-consent input[type=checkbox]{cursor:pointer;flex-shrink:0;height:18px;margin-top:4px;width:18px}.mailing-consent input[type=checkbox]:disabled{cursor:not-allowed}.mailing-consent label{cursor:pointer;font-size:.95rem;line-height:1.5;-webkit-user-select:none;user-select:none}.mailing-message{border-radius:8px;font-weight:500;padding:15px;text-align:center}.mailing-message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.mailing-message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.landing-footer{background:#333;color:#aaa;padding:30px 20px;text-align:center}.landing-footer p{margin-bottom:15px}.footer-links{display:flex;gap:30px;justify-content:center}.footer-links a{color:#aaa;text-decoration:none;transition:color .2s}.footer-links a:hover{color:#fff}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.1rem}.section-title{font-size:2rem}.features-grid{grid-template-columns:1fr}.showcase-grid{align-items:center}.mailing-input-group,.showcase-grid{flex-direction:column}.mailing-submit{width:100%}.mailing-form{padding:20px}}.scan-page{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width:1024px){.scan-page{margin:0 auto;max-width:1000px}}.mode-toggle-bar{background:#0000;border:none;display:flex;gap:8px;margin-bottom:8px!important;padding:8px!important}.scan-mode-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:12px;cursor:pointer;display:flex;flex:1 1;flex-direction:row;font-size:1rem;font-weight:600;gap:8px;justify-content:center;opacity:.7;padding:12px 16px;transition:all .2s;white-space:nowrap}.scan-mode-icon{font-size:1.2rem}.scan-mode-btn:hover{border-color:var(--color-gray-400);opacity:.9}.scan-mode-btn.active{font-weight:700;opacity:1}.scan-mode-btn.active.mode-in{background:#e8f5e9;border-color:var(--color-success);color:var(--color-success)}.scan-mode-btn.active.mode-out{background:#fff3e0;border-color:#ff9800;color:#e65100}.scan-zone{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-sm)}.quick-storage-selector{border-bottom:1px solid var(--color-gray-200);display:flex;flex-direction:column;gap:var(--spacing-xs);padding-bottom:var(--spacing-sm);width:100%}.quick-storage-label{color:var(--color-gray-700);font-size:var(--font-size-sm);font-weight:600}.quick-storage-buttons{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.quick-storage-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;font-size:var(--font-size-xs);gap:4px;padding:var(--spacing-sm) var(--spacing-xs);transition:all .2s}.quick-storage-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.quick-storage-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.quick-storage-btn .storage-icon{font-size:1.5em}.quick-storage-btn .storage-name{font-size:.85em}.scan-preview-container{max-width:400px;position:relative;width:100%}.scan-preview{background-color:var(--color-gray-100);border:2px dashed var(--color-gray-300);border-radius:var(--border-radius-md);min-height:280px;overflow:hidden;width:100%}.scan-overlay{align-items:center;border-radius:var(--border-radius-md);bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0}.scan-placeholder{background-color:var(--color-gray-100);color:var(--color-gray-500);gap:var(--spacing-sm)}.scan-placeholder .scan-icon{font-size:48px;opacity:.5}.scan-error{background-color:#ffebeee6;color:var(--color-danger);gap:var(--spacing-sm);padding:var(--spacing-md);text-align:center}.scan-btn{max-width:300px;width:100%}.manual-input{display:flex;gap:var(--spacing-sm);max-width:400px;width:100%}.manual-input .form-input{flex:1 1;font-size:var(--font-size-lg);letter-spacing:2px;text-align:center}.product-loading{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-xl)}.spinner{height:48px;width:48px}.scanned-product{display:flex;flex-direction:column;gap:var(--spacing-lg)}.product-header{align-items:flex-start;display:flex;gap:var(--spacing-md)}.product-image{object-fit:contain}.product-image,.product-image-placeholder{background:var(--color-gray-100);border-radius:var(--border-radius-md);height:80px;width:80px}.product-image-placeholder{align-items:center;display:flex;font-size:36px;justify-content:center}.product-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.product-name{color:var(--color-gray-800);font-size:var(--font-size-lg)}.product-brand{color:var(--color-gray-600)}.nutriscore{border-radius:4px;color:#fff;display:inline-block;font-weight:700;height:28px;line-height:28px;margin-top:var(--spacing-xs);text-align:center;width:28px}.nutriscore-a{background:#038141}.nutriscore-b{background:#85bb2f}.nutriscore-c{background:#fecb02;color:#333}.nutriscore-d{background:#ee8100}.nutriscore-e{background:#e63e11}.warning-box{background:#fff3e0;border-radius:var(--border-radius-md);color:#e65100;font-size:var(--font-size-sm);padding:var(--spacing-sm)}.photo-capture-btn,.warning-box{align-items:center;display:flex;gap:var(--spacing-sm)}.photo-capture-btn{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px dashed #1976d2;border-radius:var(--border-radius-lg);color:#1976d2;cursor:pointer;font-size:var(--font-size-md);font-weight:600;justify-content:center;padding:var(--spacing-md);transition:all .2s}.photo-capture-btn:hover{background:linear-gradient(135deg,#bbdefb,#90caf9);border-style:solid}.photo-preview-container{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-sm)}.photo-preview{border-radius:var(--border-radius-md);box-shadow:0 2px 8px #00000026;max-height:200px;max-width:100%;object-fit:contain}.btn-remove-photo{background:#ffebee;border:1px solid #ef5350;border-radius:var(--border-radius-sm);color:#c62828;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:all .2s}.btn-remove-photo:hover{background:#ef5350;color:#fff}.urgent-alert{align-items:center;animation:pulse-urgent 2s ease-in-out infinite;background:linear-gradient(135deg,#ff6b35,#ff8c42);border:2px solid #ff4500;border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #ff6b354d;color:#fff;display:flex;font-size:var(--font-size-md);font-weight:700;gap:var(--spacing-xs);justify-content:center;padding:var(--spacing-md);text-align:center}@keyframes pulse-urgent{0%,to{box-shadow:0 4px 12px #ff6b354d;transform:scale(1)}50%{box-shadow:0 6px 16px #ff6b3580;transform:scale(1.02)}}.form-select.urgent-highlight{animation:glow-urgent 1.5s ease-in-out infinite;background:linear-gradient(90deg,#fff3e0,#ffe0b2);border:3px solid #ff6b35;font-weight:600}@keyframes glow-urgent{0%,to{box-shadow:0 0 5px #ff6b3580}50%{box-shadow:0 0 15px #ff6b35cc,0 0 25px #ff6b3566}}.product-controls{gap:var(--spacing-lg)}.control-group,.product-controls{display:flex;flex-direction:column}.control-group{gap:var(--spacing-sm)}.control-label{color:var(--color-gray-700);font-size:var(--font-size-sm);font-weight:600}.storage-selector{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(4,1fr)}.storage-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-200);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:var(--spacing-sm);transition:all .2s}.storage-btn:hover{border-color:var(--color-gray-400)}.storage-btn.active{background:var(--color-primary-light);border-color:var(--color-primary)}.storage-btn .storage-icon{font-size:var(--font-size-xl)}.storage-btn .storage-name{color:var(--color-gray-600);font-size:var(--font-size-xs)}.toggle-group{display:flex;gap:var(--spacing-sm)}.toggle-btn{background-color:var(--color-white);border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);color:var(--color-gray-700);cursor:pointer;flex:1 1;font-size:var(--font-size-md);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease}.toggle-btn.active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.info-text{color:var(--color-info);font-size:var(--font-size-sm);font-style:italic;margin-top:var(--spacing-sm)}.quantity-selector{align-items:center;display:flex;gap:var(--spacing-sm);justify-content:center}.pack-quantity-selector{flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.pack-row{flex-wrap:wrap;gap:var(--spacing-sm)}.pack-control{border-radius:var(--border-radius-sm);gap:4px;padding:4px 8px}.pack-control .qty-btn{height:24px}.pack-control .quantity-value{font-size:18px;min-width:30px}.pack-label,.pack-total{font-size:var(--font-size-sm)}.pack-total{margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.manual-form-label{color:var(--color-gray-700);display:block;font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.qty-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:8px;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:28px;justify-content:center;transition:all .2s;width:32px}.qty-btn:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary)}.qty-btn:disabled{cursor:not-allowed;opacity:.3}.quantity-value{color:var(--color-gray-800);font-size:24px;font-weight:700;min-width:50px;text-align:center}.product-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.product-actions .btn{flex:1 1}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:#388e3c}.btn-warning{background:#ff9800}.btn-warning:hover{background:#f57c00}.recent-scans{margin-top:var(--spacing-md)}.section-title{color:var(--color-gray-700);font-size:var(--font-size-md);margin-bottom:var(--spacing-sm)}.recent-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.recent-item{align-items:center;background:var(--color-gray-100);border-radius:var(--border-radius-md);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-sm)}.recent-item.in{border-left:3px solid var(--color-success)}.recent-item.out{border-left:3px solid #ff9800}.recent-icon{font-size:var(--font-size-md)}.recent-name{color:var(--color-gray-700);flex:1 1}.recent-qty{color:var(--color-gray-500);font-weight:600}.form-input{padding:var(--spacing-sm) var(--spacing-md)}@media (min-width:768px){.scan-page{margin:0 auto;max-width:800px;padding:var(--spacing-xl)}.scan-preview{min-height:280px}.storage-selector{grid-template-columns:repeat(4,1fr)}.scanner-container,.storage-selector{margin:0 auto;max-width:600px}.product-form{margin-left:auto;margin-right:auto;max-width:600px}}.modal-overlay{overflow-y:auto}.modal-content{animation:modalSlideIn .3s ease-out;position:relative}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.product-modal{padding:var(--spacing-lg)}.modal-close{background:#0000001a;border-radius:50%;font-size:24px;height:36px;right:var(--spacing-md);top:var(--spacing-md);transition:background .2s;width:36px;z-index:10}.modal-close:hover{background:#0003}.product-image-large{background:#fff;display:block;object-fit:contain}.product-image-large,.product-image-placeholder-large{border-radius:var(--border-radius-md);height:200px;margin:0 auto var(--spacing-md);width:200px}.product-image-placeholder-large{align-items:center;background:var(--color-gray-100);display:flex;font-size:80px;justify-content:center}.date-input{border:2px solid var(--color-gray-200);border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm);width:100%}.date-input:focus{border-color:var(--color-primary);outline:none}.manual-entry-section{margin-top:var(--spacing-md)}.manual-entry-toggle{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);color:var(--color-gray-700);cursor:pointer;display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--spacing-sm);padding:var(--spacing-md);transition:all .2s;width:100%}.manual-entry-toggle:hover{background:var(--color-gray-50);border-color:var(--color-primary)}.toggle-icon{color:var(--color-primary);font-size:var(--font-size-sm)}.toggle-text{flex:1 1;text-align:left}.manual-entry-form{background:var(--color-gray-50);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:var(--spacing-md)}.form-group{gap:var(--spacing-xs)}.form-label{font-size:var(--font-size-sm)}.quantity-selector-inline{align-items:center;background:#fff;border:2px solid var(--color-gray-200);border-radius:var(--border-radius-md);display:flex;gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-xs) var(--spacing-sm)}.quantity-selector-inline .qty-btn{align-items:center;display:flex;font-size:16px;height:28px;justify-content:center;width:32px}.quantity-selector-inline .quantity-value{font-size:var(--font-size-md);font-weight:600;min-width:35px;text-align:center}.manual-entry-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.manual-entry-actions .btn{flex:1 1}.photo-upload-manual{display:flex;justify-content:center}.photo-upload-label{align-items:center;background:var(--color-gray-100);border:2px dashed var(--color-gray-300);border-radius:var(--border-radius-md);cursor:pointer;display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);transition:all .2s}.photo-upload-label:hover{background:var(--color-gray-200);border-color:var(--color-primary)}.photo-icon{font-size:1.5rem}.photo-text{color:var(--color-gray-600);font-size:var(--font-size-sm)}.photo-preview-manual{height:80px;position:relative;width:80px}.photo-preview-manual img{border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);height:100%;object-fit:cover;width:100%}.remove-photo-btn{align-items:center;background:var(--color-danger);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:24px;justify-content:center;position:absolute;right:-8px;top:-8px;width:24px}.nutrition-overlay{z-index:1100}.nutrition-modal{max-height:90vh;max-width:500px;overflow-y:auto;padding:0}.nutrition-header{background:linear-gradient(135deg,#4caf50,#8bc34a);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;color:#fff;padding:24px;text-align:center}.nutrition-header h2{font-size:1.5rem;margin:0 0 8px}.nutrition-product-name{font-size:1rem;margin:0;opacity:.9}.nutrition-loading{align-items:center;color:var(--color-gray-600);display:flex;flex-direction:column;justify-content:center;padding:48px 24px}.nutrition-loading .spinner{animation:spin 1s linear infinite;border:4px solid var(--color-gray-200);border-radius:50%;border-top-color:var(--color-primary);height:40px;margin-bottom:16px;width:40px}.nutrition-error{color:var(--color-gray-600);padding:48px 24px;text-align:center}.nutrition-error .error-icon{display:block;font-size:48px;margin-bottom:16px}.nutrition-error p{margin:0 0 8px}.nutrition-error .error-hint{color:var(--color-gray-500);font-size:.85rem}.nutrition-content{padding:24px}.nutrition-top-section{display:flex;gap:20px;margin-bottom:24px}.nutrition-product-image{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);height:100px;object-fit:contain;width:100px}.scores-section{display:flex;flex:1 1;flex-direction:column;gap:12px}.score-label{color:var(--color-gray-500);display:block;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.nutriscore-container{margin-bottom:8px}.nutriscore{display:flex;gap:2px}.nutriscore-letter{align-items:center;color:#fff;display:flex;font-size:14px;font-weight:700;height:28px;justify-content:center;opacity:.4;transition:all .2s;width:28px}.nutriscore-letter.active{border-radius:4px;box-shadow:0 2px 8px #0003;opacity:1;transform:scale(1.2)}.nutriscore-a{background-color:#038141}.nutriscore-b{background-color:#85bb2f}.nutriscore-c{background-color:#fecb02}.nutriscore-d{background-color:#ee8100}.nutriscore-e{background-color:#e63e11}.nova-container{margin-bottom:8px}.nova-group{gap:10px}.nova-badge,.nova-group{align-items:center;display:flex}.nova-badge{border-radius:50%;color:#fff;font-size:16px;font-weight:700;height:32px;justify-content:center;width:32px}.nova-1{background-color:#038141}.nova-2{background-color:#85bb2f}.nova-3{background-color:#fecb02;color:#333}.nova-4{background-color:#e63e11}.nova-description{color:var(--color-gray-600);font-size:.85rem}.ecoscore-container{align-items:center;display:flex;gap:10px}.ecoscore-badge{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:700;height:32px;justify-content:center;width:32px}.ecoscore-a{background-color:#038141}.ecoscore-b{background-color:#85bb2f}.ecoscore-c{background-color:#fecb02;color:#333}.ecoscore-d{background-color:#ee8100}.ecoscore-e{background-color:#e63e11}.nutrition-table-section{background:var(--color-gray-50);border-radius:var(--border-radius-md);margin-bottom:20px;padding:16px}.nutrition-table-section h3{color:var(--color-gray-800);font-size:1rem;margin:0 0 12px}.per-100g{color:var(--color-gray-500);font-size:.85rem;font-weight:400}.nutrition-table{display:flex;flex-direction:column}.nutrient-row{border-bottom:1px solid var(--color-gray-200);display:flex;justify-content:space-between;padding:8px 0}.nutrient-row:last-child{border-bottom:none}.nutrient-label{color:var(--color-gray-700)}.nutrient-value{color:var(--color-gray-900);font-weight:600}.serving-size{color:var(--color-gray-500);font-size:.85rem;font-style:italic;margin:12px 0 0}.allergens-section{margin-bottom:20px}.allergens-section h3{color:#e63e11;font-size:1rem;margin:0 0 12px}.allergen-tag{background:#ffebee;border-radius:var(--border-radius-full);color:#c62828;font-size:.85rem;font-weight:500;padding:4px 12px}.traces-section{margin-bottom:20px}.traces-section h3{color:var(--color-gray-700);font-size:1rem;margin:0 0 12px}.traces-list{display:flex;flex-wrap:wrap;gap:8px}.trace-tag{background:#fff3e0;border-radius:var(--border-radius-full);color:#e65100;font-size:.85rem;padding:4px 12px}.ingredients-section{margin-bottom:20px}.ingredients-section h3{font-size:1rem;margin:0 0 12px}.ingredients-text{color:var(--color-gray-600);font-size:.9rem;line-height:1.5;margin:0;max-height:150px;overflow-y:auto}.nutrition-image-section{margin-bottom:20px}.nutrition-image-section h3{font-size:1rem;margin:0 0 12px}.nutrition-table-image{border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);max-height:300px;object-fit:contain;width:100%}.nutrition-source{border-top:1px solid var(--color-gray-200);padding-top:16px;text-align:center}.nutrition-source p{color:var(--color-gray-500);font-size:.8rem;margin:0}.nutrition-source a{color:var(--color-primary);text-decoration:none}.nutrition-source a:hover{text-decoration:underline}.nutrition-btn:hover{background:var(--color-primary)}.nutrition-btn:hover:after{background:#000c;border-radius:4px;color:#fff;content:"Nutrition";font-size:12px;left:40px;padding:4px 8px;position:absolute;white-space:nowrap}@media (max-width:480px){.nutrition-modal{border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;margin:0;max-height:95vh;max-width:100%}.nutrition-top-section{align-items:center;flex-direction:column}.nutrition-product-image{height:120px;width:120px}.scores-section{width:100%}}.stock-page{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width:1024px){.stock-page{margin:0 auto;max-width:1100px}.products-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.filters-bar{max-width:100%}}.search-bar{align-items:center;display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)!important}.search-icon{color:var(--color-gray-400);font-size:var(--font-size-lg)}.search-input{background:none;border:none;flex:1 1;font-size:var(--font-size-md);outline:none}.search-input::placeholder{color:var(--color-gray-400)}.filter-toggle-btn{background:none;border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-lg);padding:var(--spacing-xs);transition:background .2s}.filter-toggle-btn.active,.filter-toggle-btn:hover{background:var(--color-gray-100)}.sort-options{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-sm)!important}.sort-label{color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:500}.sort-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.sort-btn{background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s}.sort-btn:hover{border-color:var(--color-gray-400)}.sort-btn.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.alerts-bar{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.alert-badge{align-items:center;border-radius:var(--border-radius-full);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);transition:transform .2s}.alert-badge:hover{transform:scale(1.05)}.alert-badge.danger{background:#ffebee;color:var(--color-danger)}.alert-badge.warning{background:#fff3e0;color:#f57c00}.stock-type-selector{-webkit-overflow-scrolling:touch;display:flex;gap:var(--spacing-xs);overflow-x:auto;padding:var(--spacing-sm) 0;scrollbar-width:none}.stock-type-selector::-webkit-scrollbar{display:none}.stock-type-btn{align-items:center;background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--border-radius-full);color:var(--color-text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease;white-space:nowrap}.stock-type-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.stock-type-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.stock-type-btn .type-icon{font-size:1.1rem}.stock-type-btn .type-name{font-size:var(--font-size-sm)}.location-filters{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(auto-fit,minmax(80px,1fr));padding:var(--spacing-xs) 0}.location-filter-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;font-size:var(--font-size-xs);gap:4px;padding:var(--spacing-sm) var(--spacing-xs);position:relative;transition:all .2s}.location-filter-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.location-filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.location-filter-btn.active.expiring{background:#ff9800;border-color:#ff9800;color:#fff}.location-filter-btn.hidden-location{border-style:dashed;opacity:.6}.location-filter-btn.hidden-location:hover{opacity:1}.location-filter-btn.hidden-location.active{border-style:solid;opacity:1}.hidden-indicator{font-size:.7em;position:absolute;right:2px;top:2px}.loc-count{background:var(--color-gray-200);border-radius:10px;font-size:.7em;margin-top:2px;padding:1px 5px}.location-filter-btn.active .loc-count{background:#ffffff4d}.loc-icon{font-size:1.5em}.loc-name{font-size:.85em;white-space:nowrap}.results-count{color:var(--color-gray-500);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0}.products-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.empty-state{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-md);grid-column:1/-1}.empty-icon{font-size:48px;opacity:.5}.product-card{cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:0!important;position:relative;transition:transform .2s,box-shadow .2s}.product-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.product-card.expiring{border-left:4px solid #ffa726}.product-card.expiring-soon{background:#fff8e1;border-left:4px solid #ff9800}.product-card.expired{background:#ffebee;border-left:4px solid var(--color-danger)}.product-card-image-container{align-items:center;background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);display:flex;height:120px;justify-content:center;position:relative;width:100%}.product-card-image{height:100%;object-fit:contain;padding:10px;width:100%}.product-card-icon-large{font-size:64px}.opened-badge-overlay{align-items:center;background:var(--color-warning);border-radius:50%;box-shadow:0 2px 8px #0003;color:#fff;display:flex;font-size:18px;height:32px;justify-content:center;position:absolute;right:8px;top:8px;width:32px}.product-card-content{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md)}.product-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-gray-900);display:-webkit-box;font-size:1.1rem;font-weight:600;line-height:1.3;margin:0;overflow:hidden}.product-brand{color:var(--color-gray-500);font-size:var(--font-size-sm);margin:0 0 4px}.product-location-label{align-items:center;background:var(--color-gray-100);border-radius:var(--border-radius-full);color:var(--color-gray-600);display:inline-flex;display:inline-block;font-size:var(--font-size-xs);gap:4px;margin:0;padding:3px 8px}.product-info-vertical{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.product-quantity{background:var(--color-primary-light);color:var(--color-primary-dark);font-size:1.2rem;font-weight:700}.product-expiration,.product-quantity{border-radius:var(--border-radius-md);padding:6px 12px;text-align:center}.product-expiration{font-size:.95rem;font-weight:600}.product-expiration.ok{background:#e8f5e9;color:var(--color-success)}.product-expiration.caution{background:#fff8e1;color:#f57c00}.product-expiration.warning{background:#fff3e0;color:#e65100}.product-expiration.danger{background:#ffebee;color:var(--color-danger)}.product-card-actions{background:var(--color-gray-50);border-top:1px solid var(--color-gray-200);display:flex;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md)}.action-btn{align-items:center;background:#fff;border:2px solid #0000;border-radius:var(--border-radius-md);box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;flex:1 1;font-size:24px;height:44px;justify-content:center;max-width:48%;transition:all .2s}.action-btn:hover{box-shadow:0 2px 8px #00000026;transform:scale(1.05)}.consume-btn{border-color:var(--color-primary)}.consume-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary-dark)}.delete-btn{border-color:var(--color-gray-300)}.delete-btn:hover{background:#ffebee;border-color:var(--color-danger)}.modal{position:relative}.modal-close{align-items:center;background:none;border:none;border-radius:var(--border-radius-full);color:var(--color-gray-500);cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;position:absolute;right:var(--spacing-sm);top:var(--spacing-sm);width:32px}.modal-close:hover{background:var(--color-gray-100)}.modal-product-header{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.modal-product-image{align-items:center;background:var(--color-gray-100);border-radius:var(--border-radius-md);display:flex;height:80px;justify-content:center;width:80px}.modal-product-image img{height:100%;object-fit:contain;width:100%}.product-placeholder-icon{font-size:36px}.modal-product-info h3{font-size:var(--font-size-lg);margin:0 0 var(--spacing-xs) 0}.modal-product-info .product-brand{margin-bottom:var(--spacing-xs)}.product-barcode{color:var(--color-gray-400);font-family:monospace;font-size:var(--font-size-xs)}.modal-product-details{background:var(--color-gray-100);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.detail-row{align-items:center;display:flex;justify-content:space-between}.detail-row.change-location-section{align-items:stretch;border-bottom:1px solid var(--color-gray-200);border-top:1px solid var(--color-gray-200);flex-direction:column;gap:var(--spacing-sm);margin:var(--spacing-sm) 0;padding:var(--spacing-sm) 0}.change-location-section .detail-label{color:var(--color-gray-700);font-weight:600}.location-buttons{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.location-buttons .storage-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-300);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);transition:all .2s}.location-buttons .storage-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.location-buttons .storage-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.location-buttons .storage-icon{font-size:32px}.location-buttons .storage-name{font-size:var(--font-size-xs);font-weight:500;text-align:center}.location-buttons .storage-btn.active .storage-name{color:#fff}.detail-label{color:var(--color-gray-600)}.detail-label,.detail-value{font-size:var(--font-size-sm)}.detail-value{color:var(--color-gray-800);font-weight:500}.detail-value.editable{border-radius:var(--border-radius-sm);cursor:pointer;padding:4px 8px;transition:background .2s}.detail-value.editable:hover{background:var(--color-gray-200)}.detail-value .edit-icon{font-size:.8em;margin-left:4px;opacity:.5}.edit-date-container{align-items:center;display:flex;gap:6px}.date-input{border:2px solid var(--color-primary);border-radius:var(--border-radius-sm);flex:1 1;font-size:var(--font-size-sm);padding:6px 10px}.btn-cancel-date,.btn-save-date{align-items:center;border:none;border-radius:var(--border-radius-sm);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-save-date{background:var(--color-success);color:#fff}.btn-save-date:hover{background:#27ae60;transform:scale(1.1)}.btn-cancel-date{background:var(--color-gray-300);color:var(--color-gray-700)}.btn-cancel-date:hover{transform:scale(1.1)}.edit-quantity-container{align-items:center;display:flex;gap:6px}.quantity-input{width:80px}.quantity-input,.unit-select{border:2px solid var(--color-primary);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:6px 10px}.unit-select{background:#fff;cursor:pointer}.pack-quantity-selector,.quantity-unit-inline{align-items:center;display:flex;gap:8px}.pack-quantity-selector{background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);flex-direction:row;flex-wrap:wrap;justify-content:center;padding:8px 12px}.pack-row{gap:6px;justify-content:center}.pack-control,.pack-row{align-items:center;display:flex}.pack-control{border-radius:6px;gap:2px;padding:2px 4px}.pack-control,.pack-control .qty-btn{background:#fff;border:1px solid var(--color-gray-300)}.pack-control .qty-btn{align-items:center;border-radius:6px;color:var(--color-primary);cursor:pointer;display:flex;font-size:16px;font-weight:700;height:28px;justify-content:center;transition:all .2s;width:28px}.pack-control .qty-btn:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary)}.pack-control .qty-btn:disabled{cursor:not-allowed;opacity:.4}.pack-control .quantity-value{font-size:16px;font-weight:600;min-width:24px;text-align:center}.pack-label{color:var(--color-gray-600);font-size:12px;font-weight:500;white-space:nowrap}.pack-total{background:var(--color-primary-light);border-radius:var(--border-radius-sm);color:var(--color-primary-dark);font-size:13px;margin-top:4px;padding:4px 8px;text-align:center;width:100%}.pack-total strong{color:var(--color-primary);font-size:1.1em}.quantity-input-inline{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:var(--font-size-md);padding:6px 10px;text-align:center;width:70px}.quantity-input-inline:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3498db33;outline:none}.unit-select-inline{background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);padding:6px 10px;transition:all .2s}.unit-select-inline:focus,.unit-select-inline:hover{border-color:var(--color-primary)}.unit-select-inline:focus{box-shadow:0 0 0 2px #3498db33;outline:none}.date-input-inline{background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);padding:6px 10px}.date-input-inline:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3498db33;outline:none}.btn-cancel-quantity,.btn-save-quantity{align-items:center;border:none;border-radius:var(--border-radius-sm);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-save-quantity{background:var(--color-success);color:#fff}.btn-save-quantity:hover{background:#27ae60;transform:scale(1.1)}.btn-cancel-quantity{background:var(--color-gray-300);color:var(--color-gray-700)}.btn-cancel-quantity:hover{transform:scale(1.1)}.btn-cancel-date:hover,.btn-cancel-quantity:hover{background:var(--color-gray-400)}.status-toggle-wrapper{width:100%}.status-toggle-btn{align-items:center;border:3px solid #0000;border-radius:var(--border-radius-md);box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:var(--spacing-xs);justify-content:center;padding:var(--spacing-md);transition:all .3s;width:100%}.status-toggle-btn:active{transform:scale(.98)}.status-toggle-btn.sealed{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:var(--color-primary);color:var(--color-primary-dark)}.status-toggle-btn.sealed:hover{background:linear-gradient(135deg,#c8e6c9,#a5d6a7);border-color:var(--color-primary-dark);box-shadow:0 4px 12px #4caf504d;transform:translateY(-2px)}.status-toggle-btn.opened{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-color:var(--color-warning);color:#e65100}.status-toggle-btn.opened:hover{background:linear-gradient(135deg,#ffe0b2,#ffcc80);border-color:#f57c00;box-shadow:0 4px 12px #ff98004d;transform:translateY(-2px)}.opening-date{font-size:var(--font-size-sm);font-weight:400;opacity:.9}.modal-actions{flex-direction:column}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#d32f2f}.btn-nutrition{align-items:center;background:linear-gradient(135deg,#4caf50,#8bc34a);border:none;border-radius:var(--border-radius-full);color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:500;gap:6px;margin-top:12px;padding:8px 16px;transition:all .2s}.btn-nutrition:hover{box-shadow:0 4px 12px #4caf504d;transform:translateY(-2px)}.nutrition-btn{align-items:center;background:#fffffff2;border:none;border-radius:50%;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;left:8px;position:absolute;top:8px;transition:all .2s;width:32px;z-index:10}.nutrition-btn:hover{background:#4caf50;transform:scale(1.1)}@media (min-width:768px){.stock-page{margin:0 auto;max-width:900px}.products-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.location-filter-btn{min-width:80px}}@media (min-width:1024px){.products-grid{grid-template-columns:repeat(4,1fr)}}.exclude-recipes-row{align-items:center;border-top:1px solid var(--color-gray-200);display:flex;justify-content:space-between;margin-top:var(--spacing-sm);padding:var(--spacing-sm) 0}.toggle-switch{height:26px}.toggle-slider{border-radius:26px}.toggle-slider:before{height:20px;width:20px}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-warning)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.recipe-options-selector{margin:1.5rem 0}.recipe-options-selector h5{color:#333;font-size:1.2rem;margin:1.5rem 0 1rem}.recipe-options-selector h5:first-child{margin-top:0}.recipe-options-selector .profile-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.recipe-options-selector .profile-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;font-size:1rem;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.recipe-options-selector .profile-btn:hover{background:#f1f8f4;border-color:#2e7d32}.recipe-options-selector .profile-btn.active{background:#e8f5e9;border-color:#2e7d32;color:#2e7d32;font-weight:600}.recipe-options-selector .dessert-info{background:#fff8e1;border:2px solid #ffc107;border-radius:12px;margin-bottom:1rem;padding:1.5rem;text-align:center}.recipe-options-selector .dessert-badge{color:#f57c00;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.recipe-options-selector .dessert-hint{color:#795548;font-size:.95rem;margin:0}@media (max-width:600px){.recipe-options-selector .profile-buttons{grid-template-columns:repeat(2,1fr)}.recipe-options-selector .profile-btn{font-size:.9rem;padding:.6rem .75rem}}.recipes-page{margin:0 auto;max-width:900px;padding:0 1rem 2rem}.recipes-tabs{background:#f0f0f0;border-radius:12px;display:flex;gap:0;margin-bottom:1.5rem;padding:4px}.tab-btn{background:#0000;border:none;border-radius:10px;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.tab-btn.active{background:#fff;box-shadow:0 2px 8px #0000001a;color:#2e7d32}.tab-btn:hover:not(.active){color:#333}.generate-section{margin-bottom:1.5rem}.ia-disclaimer-toggle{margin-bottom:16px}.disclaimer-header{align-items:center;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:2px solid #ff9800;border-radius:12px;cursor:pointer;display:flex;font-size:1rem;gap:12px;padding:14px 16px;transition:all .3s ease;width:100%}.disclaimer-header:hover{background:linear-gradient(135deg,#ffe0b2,#ffcc80);box-shadow:0 2px 8px #ff980033;transform:translateY(-1px)}.disclaimer-header .disclaimer-icon{flex-shrink:0;font-size:1.3rem}.disclaimer-header strong{color:#e65100;flex:1 1;font-weight:600}.disclaimer-header .arrow{color:#ff9800;font-size:.9rem;transition:transform .3s ease}.disclaimer-content{animation:slideDown .3s ease;background:#fff;border:2px solid #ff9800;border-radius:0 0 12px 12px;border-top:none;margin-top:-12px;padding:16px}.disclaimer-content p{color:#bf360c;font-size:.95rem;line-height:1.6;margin:0}.disclaimer-content strong{color:#e65100}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.btn-generate-main{align-items:center;background:linear-gradient(135deg,#2e7d32,#43a047);border:none;border-radius:16px;box-shadow:0 4px 15px #2e7d324d;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;gap:12px;justify-content:center;padding:18px 24px;transition:all .3s ease;width:100%}.btn-generate-main:hover:not(:disabled){box-shadow:0 6px 20px #2e7d3266;transform:translateY(-2px)}.btn-generate-main:disabled{background:#9e9e9e;cursor:not-allowed;transform:none}.error-banner{align-items:center;background:#ffebee;border-left:4px solid #f44336;border-radius:8px;display:flex;gap:12px;margin-bottom:1rem;padding:12px 16px}.error-banner p{color:#c62828;flex:1 1;margin:0}.error-banner button{background:none;border:none;color:#c62828;cursor:pointer;font-size:1.2rem}.success-banner{align-items:center;animation:slideIn .3s ease;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-left:4px solid #2e7d32;border-radius:8px;display:flex;gap:12px;margin-bottom:1rem;padding:14px 18px}.success-banner span{color:#2e7d32;font-size:1.4rem}.success-banner p{color:#1b5e20;flex:1 1;font-weight:600;margin:0}.generations-counter{align-items:center;background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border:2px solid #2196f3;border-radius:12px;display:flex;font-weight:600;justify-content:space-between;margin-bottom:1rem;padding:12px 20px}.counter-label{color:#1976d2;font-size:.95rem}.counter-value{color:#2196f3;font-size:1.2rem;font-weight:700}.counter-value.depleted{color:#f44336}.context-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem;padding:16px 20px}.allergens-section h4{color:#333;font-size:1rem;margin:0 0 12px}.allergens-header,.allergens-selector{margin-bottom:12px}.allergens-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.btn-toggle-all{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:.85rem;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.btn-toggle-all:hover{background:#e3f2fd;border-color:#1976d2}.allergens-checkboxes{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.allergen-checkbox{align-items:center;background:#f9f9f9;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:all .2s ease}.allergen-checkbox:hover{background:#fff;border-color:#66bb6a}.allergen-checkbox input[type=checkbox]{cursor:pointer;flex-shrink:0;height:20px;width:20px}.checkbox-label{color:#333;flex:1 1;font-size:.95rem;gap:6px}.allergen-severity{color:#888;font-size:.8rem;font-style:italic}.allergen-warning{background:#fff3e0;border-left:4px solid #ff9800;color:#e65100}.allergen-info,.allergen-warning{border-radius:8px;font-size:.9rem;margin:0 0 12px;padding:10px 12px}.allergen-info{background:#e3f2fd;border-left:4px solid #1976d2;color:#0d47a1}.allergens-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.allergen-badge{align-items:center;background:#ffebee;border:1px solid #ffcdd2;border-radius:20px;color:#c62828;display:inline-flex;font-size:.9rem;gap:4px;padding:6px 12px}.severity-indicator.severe{background:#c62828;border-radius:4px;color:#fff;font-size:.7rem;font-weight:700;padding:2px 5px}.no-allergens{color:#9e9e9e;font-style:italic}.btn-link{color:#1976d2;font-size:.9rem}.recipe-thumbnails{margin-bottom:1.5rem}.recipe-thumbnails h4{color:#333;font-size:1rem;margin:0 0 12px}.thumbnails-grid{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}.recipe-thumbnail{background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;flex-shrink:0;padding:12px;position:relative;transition:all .2s ease;width:140px}.recipe-thumbnail:hover{border-color:#66bb6a}.recipe-thumbnail.selected{background:#e8f5e9;border-color:#2e7d32}.recipe-thumbnail.validated{border-color:#1976d2}.thumbnail-number{align-items:center;background:#f5f5f5;border-radius:50%;color:#666;display:flex;font-weight:700;height:28px;justify-content:center;margin-bottom:8px;width:28px}.recipe-thumbnail.selected .thumbnail-number{background:#2e7d32;color:#fff}.thumbnail-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;display:-webkit-box;font-size:.85rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis}.validated-badge{font-size:1.2rem;position:absolute;right:-6px;top:-6px}.loading-state{padding:40px;text-align:center}.loading-spinner{animation:spin 1s linear infinite!important;border:4px solid #e0e0e0;border-radius:50%;border-top-color:#2e7d32;display:inline-block;height:48px;margin:0 auto 16px;width:48px}.loading-spinner.small{animation:spin .8s linear infinite!important;border-width:3px;height:20px;margin:0 8px 0 0;vertical-align:middle;width:20px}.loading-spinner.large{animation:spin 1.2s linear infinite!important;border-width:6px;display:block;height:80px;margin:0 auto 20px;width:80px}.loading-spinner.tiny{border-width:2px;height:16px;margin:0;width:16px}.generating-state{background:linear-gradient(135deg,#fff8e1,#fff3e0);border-radius:16px;padding:40px;text-align:center}.chef-animation{margin-bottom:16px}.chef-emoji{animation:bounce 1s ease infinite;font-size:4rem}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.generating-state h3{color:#e65100;margin:0 0 8px}.generating-state p{color:#666;margin:0}.generating-step{align-items:center;display:flex;justify-content:center;min-height:300px;padding:40px 20px}.generating-animation{background:linear-gradient(135deg,#fff8e1,#fff3e0);border-radius:20px;box-shadow:0 4px 20px #e6510026;max-width:400px;padding:40px 30px;text-align:center;width:100%}.generating-animation h4{color:#e65100;font-size:1.3rem;margin:20px 0 10px}.generating-animation p{color:#666;font-size:.95rem;margin:0}.guided-options.dessert-info{background:linear-gradient(135deg,#fce4ec,#f8bbd9);border:2px solid #ec407a;border-radius:12px;padding:20px;text-align:center}.dessert-badge{color:#ad1457;font-size:1.3rem;font-weight:600;margin-bottom:8px}.dessert-hint{color:#880e4f;font-size:.9rem;margin:0}.empty-state{background:#fafafa;border-radius:16px;padding:40px 20px}.empty-icon{font-size:4rem;margin-bottom:16px}.empty-state h3{color:#333;margin:0 0 8px}.empty-state p{color:#666;margin:0 0 8px}.empty-state .hint{color:#9e9e9e;font-size:.9rem}.cookbook-recipe{background:#fff;border-radius:20px;box-shadow:0 4px 20px #0000001a;overflow:hidden}.cookbook-hero{background:linear-gradient(135deg,#1a237e,#283593);color:#fff;padding:30px 24px}.cookbook-title{font-size:1.8rem;font-weight:700;line-height:1.2;margin:0 0 16px}.cookbook-introduction{font-size:1.05rem;font-style:italic;line-height:1.6;margin:0 0 24px;opacity:.95}.cookbook-meta{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}@media (min-width:600px){.cookbook-meta{grid-template-columns:repeat(4,1fr)}}.meta-item{align-items:center;background:#ffffff26;border-radius:12px;display:flex;gap:10px;padding:12px}.meta-icon{font-size:1.5rem}.meta-text{display:flex;flex-direction:column}.meta-label{font-size:.75rem;opacity:.8}.meta-value{font-size:1rem;font-weight:600}.cookbook-section{border-bottom:1px solid #eee;padding:24px}.cookbook-section:last-child{border-bottom:none}.cookbook-section h3{color:#1a237e;font-size:1.3rem;margin:0 0 16px}.allergen-safety-section{background:#e8f5e9}.safety-card{background:#fff;border-left:4px solid #2e7d32;border-radius:12px;padding:16px}.safe-for{color:#2e7d32;font-weight:600;margin:0 0 12px}.substitutions{margin-top:12px}.substitutions ul{margin:8px 0 0;padding-left:20px}.substitutions li{color:#555;margin-bottom:4px}.ingredients-list{display:flex;flex-direction:column;gap:10px}.ingredient-item{align-items:center;background:#f9f9f9;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;padding:12px}.ingredient-item.from-stock{background:#e3f2fd;border-left:3px solid #1976d2}.ingredient-item.urgent{background:#fff3e0;border-left:3px solid #ff9800}.ingredient-quantity{color:#333;font-weight:600;min-width:80px}.ingredient-name{flex:1 1}.ingredient-prep{color:#666;font-size:.85rem;font-style:italic}.stock-badge{background:#1976d2;border-radius:12px;color:#fff;font-size:.75rem;padding:3px 8px}.urgent-badge{font-size:.8rem}.ingredient-note{color:#666;font-size:.85rem;font-style:italic;margin:8px 0 0;width:100%}.shopping-suggestions{display:flex;flex-direction:column;gap:12px}.shopping-item{background:#f5f5f5;border-radius:12px;padding:14px}.shopping-header{display:flex;justify-content:space-between;margin-bottom:8px}.shopping-qty{color:#666}.shopping-why{color:#555;font-size:.95rem;margin:0 0 8px}.shopping-alt{color:#1976d2;font-size:.85rem;margin:0}.steps-intro{color:#666;font-style:italic;margin:0 0 20px}.steps-list{display:flex;flex-direction:column;gap:20px}.cookbook-step{background:#fafafa;border-left:4px solid #1a237e;border-radius:14px;padding:18px}.step-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.step-number-badge{align-items:center;background:#1a237e;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:700;height:32px;justify-content:center;width:32px}.step-title{color:#1a237e;flex:1 1;font-size:1.1rem;margin:0}.step-duration{color:#666;font-size:.85rem;white-space:nowrap}.step-instruction{color:#333;line-height:1.7;margin:0 0 12px}.step-tip{align-items:flex-start;background:#e3f2fd;border-radius:8px;display:flex;gap:8px;margin-bottom:8px;padding:10px 12px}.tip-icon{flex-shrink:0}.step-tip span:last-child{color:#1565c0;font-size:.9rem}.step-warning{align-items:flex-start;background:#fff3e0;border-radius:8px;display:flex;gap:8px;padding:10px 12px}.warning-icon{flex-shrink:0}.step-warning span:last-child{color:#e65100;font-size:.9rem}.plating-instructions{line-height:1.6;margin:0 0 16px}.garnish-list{margin-bottom:12px}.garnish-tag{background:#e8f5e9;border-radius:15px;color:#2e7d32;display:inline-block;font-size:.9rem;margin:4px 4px 4px 8px;padding:4px 10px}.serving-temp{color:#666;margin:0 0 8px}.accompaniment{color:#7b1fa2;font-style:italic;margin:0}.secrets-list{list-style:none;margin:0;padding:0}.secrets-list li{background:linear-gradient(135deg,#fff8e1,#fffde7);border-left:4px solid #ffc107;border-radius:10px;margin-bottom:10px;padding:12px 16px}.recipe-story{background:#fafafa;border-left:4px solid #9e9e9e;color:#555;font-style:italic;line-height:1.7;margin:0;padding:20px}.recipe-actions{background:#f5f5f5;padding:24px;text-align:center}.btn-validate{align-items:center;background:linear-gradient(135deg,#1976d2,#1565c0);border:none;border-radius:12px;box-shadow:0 4px 12px #1976d24d;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:600;gap:10px;padding:16px 32px;transition:all .3s ease}.btn-validate:hover:not(:disabled){box-shadow:0 6px 16px #1976d266;transform:translateY(-2px)}.btn-validate:disabled{cursor:not-allowed;opacity:.7}.validated-message{background:#e8f5e9;border-radius:12px;color:#2e7d32;font-weight:600;padding:16px}.vote-actions{text-align:center}.vote-prompt{color:#333;font-size:1.1rem;font-weight:500;margin:0 0 16px}.vote-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.btn-vote{align-items:center;border:none;border-radius:12px;display:inline-flex;font-size:1.1rem;font-weight:600;gap:8px;padding:14px 28px;transition:all .3s ease}.btn-vote-up{background:linear-gradient(135deg,#4caf50,#388e3c);box-shadow:0 4px 12px #4caf504d;color:#fff}.btn-vote-up:hover{box-shadow:0 6px 16px #4caf5066;transform:translateY(-2px)}.btn-vote-down{background:linear-gradient(135deg,#f44336,#d32f2f);box-shadow:0 4px 12px #f443364d;color:#fff}.btn-vote-down:hover{box-shadow:0 6px 16px #f4433666;transform:translateY(-2px)}.vote-info{color:#888;font-size:.85rem;font-style:italic;margin:16px 0 0}.cookbook-header{margin-bottom:24px;text-align:center}.cookbook-header h2{color:#1a237e;margin:0 0 8px}.cookbook-header p{color:#666;margin:0}.empty-cookbook{background:#fafafa;border-radius:16px;padding:60px 20px;text-align:center}.shared-recipes-grid{grid-gap:16px;display:grid;gap:16px}@media (min-width:600px){.shared-recipes-grid{grid-template-columns:repeat(2,1fr)}}.shared-recipe-card{background:#fff;border-radius:14px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:18px;transition:all .2s ease}.shared-recipe-card:hover{border:1px solid #1976d2;box-shadow:0 4px 12px #0000001f;transform:translateY(-3px)}.btn-back-to-list{align-items:center;background:#f5f5f5;border:1px solid #ddd;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.95rem;gap:8px;margin-bottom:16px;padding:10px 16px;transition:all .2s ease}.btn-back-to-list:hover{background:#e3f2fd;border-color:#1976d2;color:#1976d2}.shared-recipe-title{color:#1a237e;font-size:1.1rem;margin:0 0 8px}.shared-recipe-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#666;display:-webkit-box;font-size:.9rem;line-height:1.5;margin:0 0 12px;overflow:hidden;text-overflow:ellipsis}.shared-recipe-meta{color:#888;display:flex;font-size:.85rem;gap:12px;margin-bottom:12px}.shared-recipe-actions{align-items:center;display:flex;gap:12px;justify-content:space-between}.recipe-votes{display:flex;gap:8px}.btn-vote-card{background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;font-size:1.3rem;padding:8px 16px;transition:all .2s ease}.btn-vote-up-card{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.btn-vote-up-card:hover{background:linear-gradient(135deg,#4caf50,#388e3c);transform:scale(1.1)}.btn-vote-down-card{background:linear-gradient(135deg,#ffebee,#ffcdd2)}.btn-vote-down-card:hover{background:linear-gradient(135deg,#f44336,#d32f2f);transform:scale(1.1)}.btn-vote{background:#f5f5f5;border:2px solid #ddd;border-radius:20px;cursor:pointer;font-size:1.2rem;min-width:45px;padding:8px 12px;text-align:center;transition:all .2s ease}.btn-vote:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.btn-vote-positive{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#4caf50}.btn-vote-positive:hover{background:linear-gradient(135deg,#4caf50,#66bb6a);transform:scale(1.1)}.btn-vote-negative{background:linear-gradient(135deg,#ffebee,#ffcdd2);border-color:#f44336}.btn-vote-negative:hover{background:linear-gradient(135deg,#f44336,#e57373);transform:scale(1.1)}.btn-like{background:#f5f5f5;border:1px solid #ddd;border-radius:20px;cursor:pointer;font-size:.9rem;padding:8px 14px;transition:all .2s ease}.btn-like:hover{background:#e3f2fd;border-color:#1976d2}.btn-like.liked{background:#1976d2;border-color:#1976d2;color:#fff}.views-count{color:#999;font-size:.85rem}.card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014}.modal-overlay{animation:fadeIn .2s ease;background:#0009}.modal-license{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{border-bottom:1px solid #eee;padding:1.5rem}.modal-title{color:#333;font-size:1.25rem}.btn-close{align-items:center;border-radius:50%;color:#999;display:flex;font-size:2rem;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-close:hover{background:#f5f5f5}.modal-body{padding:1.5rem}.license-message{color:#333;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.license-hint{color:#666;line-height:1.6}.modal-actions{gap:.75rem;padding:1.5rem}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.validation-workflow{margin:1.5rem 0}.workflow-step{background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;padding:2rem}.step-description{color:#666;font-size:1.05rem;line-height:1.6;margin-bottom:2rem}.category-selector{margin:2rem 0}.category-selector h5{align-items:center;color:#333;display:flex;font-size:1.2rem;gap:.5rem;margin-bottom:1rem}.required{color:#d32f2f;font-size:1.3rem}.category-buttons{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.category-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font-size:1.1rem;font-weight:600;gap:.5rem;padding:1.5rem 1rem;transition:all .3s ease}.category-btn:hover{background:#f1f8f4;border-color:#2e7d32;box-shadow:0 4px 12px #2e7d3226;transform:translateY(-2px)}.category-btn.active{background:#2e7d32;border-color:#2e7d32;box-shadow:0 4px 12px #2e7d324d;color:#fff}.btn-start-workflow{font-size:1.1rem;font-weight:600;margin-top:2rem;padding:1rem 2rem;width:100%}.mode-step{padding:1rem}.validation-header{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;text-align:center}.validation-header h4{color:#333;font-size:1.3rem;line-height:1.4;margin:0}.btn-back{align-self:flex-start;color:#666;font-size:1rem;padding:.5rem 1rem;text-decoration:none;transition:color .2s}.btn-back:hover{color:#2e7d32}.mode-buttons{display:flex;flex-direction:column;gap:1rem}@media (min-width:768px){.mode-buttons{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}}.mode-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;text-align:center;transition:all .3s ease}.mode-btn:hover{background:#f1f8f4;border-color:#2e7d32;box-shadow:0 4px 12px #2e7d3226;transform:translateY(-2px)}.mode-btn .mode-icon{font-size:2.5rem}.mode-btn .mode-title{color:#2e7d32;font-size:1.2rem;font-weight:700}.mode-btn .mode-description{color:#666;font-size:.9rem;line-height:1.5}.guided-options{margin:2rem 0}.guided-options h5{color:#333;font-size:1.2rem;margin:1.5rem 0 1rem}.profile-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:1.5rem}.profile-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:1rem;transition:all .3s ease}.profile-btn:hover{background:#f1f8f4;border-color:#2e7d32;transform:translateY(-2px)}.profile-btn.active{background:#2e7d32;border-color:#2e7d32;box-shadow:0 3px 8px #2e7d3240;color:#fff}.guided-summary{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;margin:2rem 0;padding:1.5rem}.guided-note{color:#1565c0;font-size:1rem;line-height:1.6;margin:0}.btn-generate-guided{font-size:1.1rem;font-weight:600;margin-top:1.5rem;padding:1.2rem 2rem;width:100%}.ingredients-validation{margin:2rem 0}.ingredients-validation h5{align-items:center;color:#333;display:flex;flex-wrap:wrap;font-size:1.2rem;gap:.5rem;justify-content:space-between;margin-bottom:1.5rem}.ingredient-help{color:#666;font-size:.9rem;font-weight:400}.ingredients-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:1.5rem}.ingredient-card{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .3s ease}.ingredient-card:hover{background:#f1f8f4;border-color:#2e7d32;box-shadow:0 4px 10px #0000001a;transform:translateY(-2px)}.ingredient-card.selected{background:#e8f5e9;border-color:#2e7d32}.ingredient-card.urgent{background:#fff3e0;border-color:#ff9800}.ingredient-card.replacing{opacity:.5;pointer-events:none}.ingredient-checkbox{flex-shrink:0}.checkbox-icon,.ingredient-checkbox{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.checkbox-icon{border:2px solid #bbb;border-radius:6px;font-size:.9rem;transition:all .2s}.checkbox-icon.checked{background:#2e7d32;border-color:#2e7d32;color:#fff}.ingredient-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.ingredient-name{color:#333;font-size:.95rem;font-weight:600}.ingredient-brand{color:#999;font-size:.85rem}.validation-warning{background:#fff3e0;border-left:4px solid #ff9800;border-radius:6px;color:#e65100;font-weight:600;margin-top:1rem;padding:1rem}.btn-generate-validated{font-size:1.1rem;font-weight:600;margin-top:1.5rem;padding:1.2rem 2rem;width:100%}.settings-page{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width:1024px){.settings-page{margin:0 auto;max-width:900px}}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:space-between}.section-title{border-bottom:1px solid var(--color-gray-200);color:var(--color-gray-800);flex:1 1;font-size:var(--font-size-lg);font-weight:600;margin:0;min-width:200px;padding-bottom:var(--spacing-sm)}.section-header .section-title{border-bottom:none;padding-bottom:0}.btn-icon-small{background:none;border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-xs);transition:background .2s}.btn-icon-small:hover{background:var(--color-gray-100)}.btn-icon-small.btn-danger:hover{background:#ffebee}.btn-add{background:var(--color-primary-light);border-radius:var(--border-radius-md);color:var(--color-primary-dark);flex-shrink:0;font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);transition:background .2s;white-space:nowrap}.btn-add:hover{background:var(--color-primary);color:#fff}.btn-link{color:var(--color-primary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;text-decoration:underline}.setting-item{align-items:center;border-bottom:1px solid var(--color-gray-100);display:flex;justify-content:space-between;padding:var(--spacing-sm) 0}.setting-item:last-child{border-bottom:none}.setting-item.sub-setting{background:var(--color-gray-100);margin:0 calc(var(--spacing-md)*-1);padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.setting-info{display:flex;flex-direction:column;gap:2px}.setting-label{color:var(--color-gray-800);font-weight:500}.setting-hint{color:var(--color-gray-500);font-size:var(--font-size-xs)}.setting-value{color:var(--color-gray-600);font-size:var(--font-size-sm);max-width:60%;text-align:right;word-break:break-word}.storage-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.storage-item-card{align-items:center;background:var(--color-gray-100);border-radius:var(--border-radius-md);display:flex;justify-content:space-between;padding:var(--spacing-sm)}.storage-info{align-items:center;display:flex;gap:var(--spacing-sm)}.storage-icon{font-size:var(--font-size-xl)}.storage-details{display:flex;flex-direction:column}.storage-name{color:var(--color-gray-800);font-weight:500}.storage-count{color:var(--color-gray-500);font-size:var(--font-size-xs)}.storage-actions{display:flex;gap:var(--spacing-xs)}.storage-options{align-items:center;display:flex;gap:var(--spacing-sm)}.storage-option-toggle{align-items:center;cursor:pointer;display:flex;gap:4px;position:relative}.storage-option-toggle .option-icon{font-size:14px}.storage-option-toggle input{height:0;opacity:0;position:absolute;width:0}.toggle-slider-mini{background-color:var(--color-gray-300);border-radius:18px;height:18px;position:relative;transition:background-color .3s;width:32px}.toggle-slider-mini:before{background-color:#fff;border-radius:50%;bottom:2px;box-shadow:0 1px 3px #0003;content:"";height:14px;left:2px;position:absolute;transition:transform .3s;width:14px}.storage-option-toggle input:checked+.toggle-slider-mini{background-color:var(--color-primary)}.storage-option-toggle input:checked+.toggle-slider-mini:before{transform:translateX(14px)}.allergies-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.allergy-tag{border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm)}.allergy-tag.danger{background:#ffebee;color:var(--color-danger)}.allergy-tag.warning{background:#fff8e1;color:#f57c00}.empty-text{color:var(--color-gray-500);font-size:var(--font-size-sm);font-style:italic}.toggle-switch{display:inline-block;height:28px;position:relative;width:50px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:var(--color-gray-300);border-radius:28px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;box-shadow:0 2px 4px #0003;content:"";height:22px;left:3px;position:absolute;transition:.3s;width:22px}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(22px)}.form-select{background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.form-label{color:var(--color-gray-700);margin-bottom:var(--spacing-xs)}.form-input{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);font-size:var(--font-size-md);padding:var(--spacing-sm)}.form-input:focus{border-color:var(--color-primary)}.modal{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);max-width:400px;padding:var(--spacing-lg)}.modal-large{max-width:500px}.modal-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-sm)}.modal-subtitle{color:var(--color-gray-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.type-selector{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr)}.type-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-200);border-radius:var(--border-radius-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);transition:all .2s}.type-btn:hover{border-color:var(--color-gray-400)}.type-btn.active{background:var(--color-primary-light);border-color:var(--color-primary)}.type-icon{font-size:var(--font-size-xl)}.type-label{color:var(--color-gray-600);font-size:var(--font-size-xs)}.allergies-grid{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr)}.allergy-btn{align-items:center;background:#fff;border:2px solid var(--color-gray-200);border-radius:var(--border-radius-md);cursor:pointer;display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);position:relative;transition:all .2s}.allergy-btn:hover{border-color:var(--color-gray-400)}.allergy-btn.selected{background:#ffebee;border-color:var(--color-danger)}.allergy-icon{font-size:var(--font-size-lg)}.allergy-name{flex:1 1;font-size:var(--font-size-sm);text-align:left}.allergy-check{color:var(--color-danger);font-weight:700}.about-links{display:flex;flex-direction:column;gap:var(--spacing-xs)}.loading-small{font-size:var(--font-size-sm);padding:var(--spacing-md)}.empty-state-small,.loading-small{color:var(--color-gray-500);text-align:center}.empty-state-small{padding:var(--spacing-lg)}.empty-state-small p{font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.btn-primary-small{background:var(--color-primary);border:none;border-radius:var(--border-radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.residences-list-compact{display:flex;flex-direction:column;gap:var(--spacing-sm)}.residence-card-compact{align-items:center;background:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);cursor:pointer;display:flex;justify-content:space-between;padding:var(--spacing-md);transition:all .2s}.residence-card-compact:hover{border-color:var(--color-gray-300);box-shadow:0 2px 4px #0000000d}.residence-card-compact.default{background:var(--color-primary-light);border-color:var(--color-primary)}.residence-card-compact.active{background:#4caf500d;border-color:var(--color-success);border-width:2px}.active-indicator{color:var(--color-success);font-weight:700}.active-residence-selector{background:var(--color-gray-50);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.active-residence-selector .form-label{display:block;font-weight:600;margin-bottom:var(--spacing-xs)}.active-residence-selector .form-select{background:#fff;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md);width:100%}.address-input-group{display:flex;gap:var(--spacing-sm)}.address-input-group .form-input{flex:1 1}.address-input-group .btn{flex-shrink:0;min-width:45px}.btn-full{width:100%}.gps-status{background:#4caf501a;border-radius:var(--border-radius-sm);color:var(--color-success);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm);text-align:center}.residence-info{flex:1 1}.residence-header-compact{margin-bottom:var(--spacing-xs)}.residence-header-compact,.residence-name-compact{align-items:center;display:flex;gap:var(--spacing-xs)}.residence-name-compact{color:var(--color-gray-800);font-size:var(--font-size-md);font-weight:600;margin:0}.badge-default-small{background:var(--color-primary);border-radius:10px;color:#fff;font-size:10px;font-weight:500;padding:2px 6px;text-transform:uppercase}.residence-address-small{color:var(--color-gray-600);font-size:var(--font-size-xs);margin:var(--spacing-xs) 0}.residence-stats-compact{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xs)}.stat-compact{color:var(--color-gray-600);font-size:var(--font-size-xs)}.residence-actions-compact{align-items:center;display:flex;gap:var(--spacing-xs)}.alert{border-radius:var(--border-radius-md);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.modal-large{max-width:600px}.btn-close{color:var(--color-gray-600)}.btn-close:hover{color:var(--color-gray-800)}.gps-input-group{grid-gap:var(--spacing-sm)}.form-checkbox,.gps-input-group{gap:var(--spacing-sm)}.form-hint{color:var(--color-gray-600);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.license-status{background:var(--color-gray-50);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.license-badge{border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-xs) var(--spacing-sm)}.license-status-none{background:var(--color-gray-200);color:var(--color-gray-700)}.license-status-partial{background:#fff3cd;color:#856404}.license-status-full{background:#d4edda;color:#155724}.license-description{background:#fff;border-left:3px solid var(--color-primary);border-radius:var(--border-radius-sm);margin-top:-var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm)}.license-description small{color:var(--color-gray-600);font-style:italic}.license-features{display:flex;flex-direction:column;gap:var(--spacing-xs)}.license-feature{background:#fff;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--spacing-sm)}.license-feature.enabled{border-left:3px solid #28a745}.license-feature.disabled{border-left:3px solid #dc3545;opacity:.6}.license-activation-form{border-top:1px solid var(--color-gray-200);display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-md)}.license-activation-form .form-input{font-family:Courier New,monospace;font-size:var(--font-size-sm)}.license-key-display{align-items:center;background:#fff;border-radius:var(--border-radius-sm);display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.license-key-masked{background:var(--color-gray-100);border-radius:var(--border-radius-xs);color:var(--color-gray-600);font-family:Courier New,monospace;font-size:var(--font-size-sm);letter-spacing:2px;padding:var(--spacing-xs) var(--spacing-sm)}@media (min-width:768px){.settings-page{margin:0 auto;max-width:800px;padding:var(--spacing-xl)}.allergies-grid{grid-template-columns:repeat(3,1fr)}.settings-section{max-width:700px}}@media (max-width:768px){.gps-input-group{grid-template-columns:1fr}.residence-card-compact{align-items:flex-start;flex-direction:column;gap:var(--spacing-sm)}.residence-actions-compact{justify-content:flex-end;width:100%}}.secondary-emails-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.secondary-email-item{align-items:center;background:var(--color-gray-50);border-radius:var(--border-radius-md);display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-md)}.email-info{flex:1 1;min-width:200px}.email-address{align-items:center;color:var(--color-gray-800);display:flex;font-weight:500;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.email-preferences{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xs)}.checkbox-label{align-items:center;border-radius:var(--border-radius-sm);color:var(--color-gray-600);flex-wrap:wrap;font-size:var(--font-size-sm);gap:var(--spacing-xs);padding:var(--spacing-sm);transition:background .2s}.checkbox-label:hover{background:var(--color-gray-50)}.checkbox-label input[type=checkbox]{height:18px;width:18px}.checkbox-hint{color:var(--color-gray-400);font-size:var(--font-size-xs);margin-left:26px;width:100%}.checkbox-group{background:var(--color-gray-50);border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm)}.email-actions{align-items:center;display:flex;gap:var(--spacing-sm)}.badge{border-radius:var(--border-radius-xs);font-size:var(--font-size-xs);font-weight:500;padding:2px 8px}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.btn-sm{padding:4px 12px}.section-description{color:var(--color-gray-600);font-size:var(--font-size-sm);margin:0 0 var(--spacing-md) 0}.form-info{background:var(--color-info-light);border-radius:var(--border-radius-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.form-info small{color:var(--color-info-dark)}@media (max-width:600px){.secondary-email-item{align-items:flex-start;flex-direction:column}.email-actions{justify-content:flex-end;width:100%}}.shopping-list-page{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--spacing-md);margin-left:calc(var(--spacing-md)*-1);margin-right:calc(var(--spacing-md)*-1);max-width:100vw;overflow-x:hidden;padding:0 var(--spacing-md);width:100vw}@media (min-width:1024px){.shopping-list-page{margin:0 auto;max-width:900px}.list-selector,.new-list-form{max-width:600px}}.page-header{box-sizing:border-box;max-width:100%;width:100%}.page-header,.page-header h1{margin-bottom:var(--spacing-md);overflow:hidden}.page-header h1{color:var(--color-gray-900);font-size:var(--font-size-2xl);text-overflow:ellipsis}.list-selector{align-items:center;box-sizing:border-box;display:flex;gap:10px;margin-bottom:15px;max-width:100%;width:100%}.list-selector select{background:#fff;border:2px solid #ddd;border-radius:8px;flex:1 1;font-size:1em;padding:12px}.btn-new-list{background:#27ae60;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 20px;white-space:nowrap}.btn-new-list:hover{background:#229954}.new-list-form{background:#f8f9fa;border-radius:8px;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;max-width:100%;overflow:hidden;padding:15px;width:100%}.new-list-form input{border:2px solid #ddd;border-radius:6px;box-sizing:border-box;flex:1 1 100%;font-size:1em;min-width:0;padding:10px}.new-list-form button{box-sizing:border-box;flex:1 1 auto;min-width:80px}.btn-primary{background:#3498db;border-radius:6px;font-weight:600}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#95a5a6;border:none;border-radius:6px}.btn-secondary:hover{background:#7f8c8d}.progress-bar{background:#f8f9fa;border-radius:10px;box-sizing:border-box;margin-bottom:25px;max-width:100%;padding:15px;width:100%}.progress-info{color:#555;display:flex;font-size:.95em;font-weight:600;justify-content:space-between;margin-bottom:10px}.progress-track{background:#e0e0e0;border-radius:10px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#27ae60,#2ecc71);height:100%;transition:width .3s ease}.items-container{margin-bottom:25px}.items-section{margin-bottom:30px}.section-title{border-bottom:2px solid #eee;color:#555;font-size:1.1em;margin-bottom:15px;padding-bottom:8px}.item-row{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:10px;display:flex;gap:12px;margin-bottom:10px;padding:15px;transition:all .2s ease}.item-row:hover{border-color:#3498db;box-shadow:0 2px 8px #0000001a}.item-row.checked{background:#f1f8f4;border-color:#27ae60;opacity:.7}.item-row.checked .item-name{color:#999;text-decoration:line-through}.item-checkbox{cursor:pointer;flex-shrink:0;height:24px;width:24px}.item-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.item-name{color:#2c3e50;font-size:1.05em;font-weight:600}.item-category{color:#7f8c8d;font-size:.85em;font-style:italic}.item-quantity{align-items:center;color:#555;display:flex;flex-shrink:0;font-weight:600;gap:5px}.quantity-display{border-radius:5px;cursor:pointer;padding:5px 10px;transition:background .2s}.quantity-display:hover{background:#f0f0f0}.quantity-input{border:2px solid #3498db;border-radius:5px;font-weight:600;padding:5px;text-align:center;width:60px}.btn-delete-item{background:none;border:none;cursor:pointer;flex-shrink:0;font-size:1.3em;opacity:.6;transition:all .2s}.btn-delete-item:hover{opacity:1;transform:scale(1.2)}.add-product-form{background:#fff;border:2px solid #3498db;border-radius:12px;box-shadow:0 4px 15px #3498db26;display:flex;flex-direction:column;gap:12px;margin-bottom:15px;padding:20px}.input-product-name{border:2px solid #ddd;border-radius:8px;font-size:1.05em;padding:14px;width:100%}.input-product-name:focus{border-color:#3498db;outline:none}.form-row-inline{align-items:center;display:flex;gap:10px}.input-quantity{flex-shrink:0;text-align:center;width:100px}.input-quantity,.input-unit{border:2px solid #ddd;border-radius:8px;font-size:1em;padding:12px}.input-unit{background:#fff;flex:1 1}.btn-add{background:#27ae60;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.05em;font-weight:600;padding:14px 24px;transition:all .2s;width:100%}.btn-add:hover{background:#229954;transform:translateY(-1px)}.btn-add-frequent{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;box-shadow:0 4px 15px #667eea66;color:#fff;cursor:pointer;font-size:1.05em;font-weight:600;margin-bottom:25px;padding:15px;transition:all .3s ease;width:100%}.btn-add-frequent:hover{box-shadow:0 6px 20px #667eea80;transform:translateY(-2px)}.list-actions{display:flex;gap:15px;justify-content:center;padding:20px 0}.btn-archive{background:#3498db;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;padding:15px 30px;transition:all .3s}.btn-archive:hover{background:#2980b9;box-shadow:0 4px 15px #3498db4d;transform:translateY(-2px)}.btn-delete-list{background:#e74c3c;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;padding:15px 30px;transition:all .3s}.btn-delete-list:hover{background:#c0392b;box-shadow:0 4px 15px #e74c3c4d;transform:translateY(-2px)}.empty-state{color:#95a5a6}.empty-state p{font-size:1.1em;margin-bottom:10px}.empty-state .hint{color:#bdc3c7;font-size:.9em}.empty-state button{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1em;margin-top:20px;padding:12px 30px}.error-message{background:#e74c3c;border-radius:8px;color:#fff;margin-bottom:20px;padding:15px;text-align:center}.loading{color:#7f8c8d;font-size:1.2em;padding:60px}.suggestions-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 12px #667eea4d;box-sizing:border-box;margin-bottom:25px;max-width:100%;overflow:hidden;padding:20px}.suggestions-section .section-title{color:#fff;font-size:1.1em;margin-bottom:15px}.suggestions-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.suggestion-card,.suggestions-grid{box-sizing:border-box;max-width:100%;overflow:hidden}.suggestion-card{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:12px;min-width:0;padding:12px;position:relative;transition:transform .2s,box-shadow .2s}.suggestion-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.suggestion-image{background:#f8f9fa;border-radius:4px;flex-shrink:0;height:50px;object-fit:contain;width:50px}.suggestion-info{flex:1 1;max-width:100%;min-width:0;overflow:hidden}.suggestion-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#2c3e50;display:-webkit-box;font-size:.95em;font-weight:600}.suggestion-brand,.suggestion-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.suggestion-brand{color:#7f8c8d;font-size:.85em;white-space:nowrap}.suggestion-meta{align-items:center;display:flex;gap:8px;margin-top:4px}.suggestion-score{color:#f39c12;font-size:.8em;font-weight:600}.suggestion-actions{display:flex;flex-shrink:0;gap:6px;position:relative;z-index:10}.btn-add-suggestion,.btn-dismiss-suggestion{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:1.1em;height:32px;justify-content:center;pointer-events:auto;position:relative;transition:all .2s;width:32px;z-index:10}.btn-add-suggestion{background:#27ae60;color:#fff}.btn-add-suggestion:hover{background:#229954;transform:scale(1.1)}.btn-dismiss-suggestion{background:#e74c3c;color:#fff}.btn-dismiss-suggestion:hover{background:#c0392b;transform:scale(1.1)}@media (max-width:768px){.shopping-list-page{max-width:100%;overflow-x:hidden;padding:15px}.page-header{max-width:100%;overflow:hidden;width:100%}.add-product-form{padding:15px}.input-product-name{font-size:1em}.form-row-inline{gap:8px}.list-selector{flex-direction:column;width:100%}.btn-new-list,.list-selector select{width:100%}.new-list-form{flex-direction:column;width:100%}.new-list-form button,.new-list-form input{width:100%}.suggestions-grid{grid-template-columns:1fr!important}}@media (max-width:600px){.shopping-list-page{box-sizing:border-box!important;max-width:100vw!important;overflow-x:hidden!important;padding:10px!important;width:100vw!important}.suggestions-section{box-sizing:border-box!important;margin:0!important;padding:12px!important}.suggestions-grid,.suggestions-section{max-width:100%!important;width:100%!important}.suggestions-grid{gap:10px!important;grid-template-columns:1fr!important}.suggestion-card{box-sizing:border-box!important;padding:10px!important}.suggestion-brand,.suggestion-card,.suggestion-info,.suggestion-name{max-width:100%!important;width:100%!important}}.intolerances-page{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-xl)}@media (min-width:1024px){.intolerances-page{margin:0 auto;max-width:900px}}.page-header{gap:var(--spacing-md)}.page-header h1{flex:1 1;font-size:var(--font-size-xl);margin:0}.back-btn{background:var(--color-gray-200);border:none;border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md);transition:background .2s}.back-btn:hover{background:var(--color-gray-300)}.add-btn{background:var(--color-primary);border:none;border-radius:var(--border-radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-md);transition:background .2s;white-space:nowrap}.add-btn:hover{background:var(--color-primary-dark)}.intolerances-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.intolerance-card{display:flex;flex-direction:column;gap:var(--spacing-sm)}.intolerance-header{align-items:start;display:flex;gap:var(--spacing-sm);justify-content:space-between}.intolerance-title{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:var(--spacing-sm)}.intolerance-title h3{color:var(--color-gray-800);font-size:var(--font-size-lg);margin:0}.severity-badge{color:#fff;font-weight:600;padding:2px 8px;text-transform:uppercase}.severity-badge,.user-badge{border-radius:var(--border-radius-full);font-size:var(--font-size-xs)}.user-badge{background:var(--color-gray-200);color:var(--color-gray-700);padding:4px 10px;white-space:nowrap}.intolerance-description{color:var(--color-gray-600);font-size:var(--font-size-sm);line-height:1.5;margin:0}.keywords-section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.keywords-label{color:var(--color-gray-700);font-size:var(--font-size-sm);font-weight:600}.keywords-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.keyword-tag{background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--border-radius-full);color:var(--color-primary-dark);font-size:var(--font-size-xs);padding:4px 10px}.intolerance-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.btn-sm{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.modal-overlay{background:#000000b3;padding:var(--spacing-md)}.modal-content{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;padding:var(--spacing-lg);width:100%}.modal-header{margin-bottom:var(--spacing-lg)}.modal-header h2{margin:0}.close-btn,.modal-header h2{font-size:var(--font-size-xl)}.close-btn{background:none;border:none;color:var(--color-gray-600);cursor:pointer;padding:var(--spacing-xs);transition:color .2s}.close-btn:hover{color:var(--color-gray-900)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{color:var(--color-gray-700);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.help-text{color:var(--color-gray-500);display:block;font-size:var(--font-size-xs);font-weight:400;margin-top:2px}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--color-gray-300);border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--font-size-md);padding:var(--spacing-sm);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.modal-actions{gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.empty-state{padding:var(--spacing-xl)}.empty-icon{display:block;font-size:64px;margin-bottom:var(--spacing-md)}.empty-state p{color:var(--color-gray-600);margin-bottom:var(--spacing-lg)}.error-message{background:#ffebee;border-left:4px solid #c62828;border-radius:var(--border-radius-md);color:#c62828;margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.loading-spinner{color:var(--color-gray-600);padding:var(--spacing-xl);text-align:center}@media (max-width:768px){.page-header{flex-wrap:wrap}.page-header h1{order:-1;width:100%}.intolerance-header{align-items:start;flex-direction:column}.intolerance-actions{flex-wrap:wrap}.modal-content{padding:var(--spacing-md)}}.residences-page{padding:20px}@media (min-width:1024px){.residences-page{margin:0 auto;max-width:1000px}}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.page-title{color:#1a1a1a;font-size:24px;font-weight:600;margin:0}.loading{color:#666}.alert{border-radius:8px;margin-bottom:16px;padding:12px 16px}.alert-error{background-color:#fee;border:1px solid #fcc;color:#c33}.alert-success{background-color:#efe;border:1px solid #cfc;color:#3c3}.empty-state{color:#666;padding:60px 20px;text-align:center}.empty-state p{font-size:18px;margin-bottom:24px}.residences-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.residence-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.residence-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.residence-card.default{border:2px solid #4caf50}.residence-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.residence-name{align-items:center;color:#1a1a1a;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0}.badge-default{background:#4caf50;border-radius:12px;color:#fff;font-size:11px;font-weight:500;padding:2px 8px}.residence-actions{display:flex;gap:8px}.residence-address{color:#666;font-size:14px;margin:8px 0}.residence-stats{border-bottom:1px solid #eee;border-top:1px solid #eee;display:flex;gap:20px;margin:16px 0;padding:12px 0}.stat{align-items:center;display:flex;flex:1 1;flex-direction:column}.stat-icon{font-size:20px;margin-bottom:4px}.stat-value{color:#1a1a1a;font-size:20px;font-weight:600}.residence-gps,.stat-label{color:#666;font-size:12px}.residence-gps{margin:8px 0}.btn-primary{background:#4caf50;border-radius:8px;font-size:14px;padding:10px 20px;transition:background .2s}.btn-primary:hover{background:#45a049}.btn-secondary{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#333;font-size:14px;padding:10px 20px;transition:all .2s}.btn-secondary:hover{background:#e8e8e8}.btn-secondary-small{background:#f5f5f5;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;font-size:13px;margin-top:12px;padding:8px 12px;width:100%}.btn-secondary-small:hover{background:#e8e8e8}.btn-icon{background:none;border:none;cursor:pointer;font-size:18px;opacity:.7;padding:4px;transition:opacity .2s}.btn-icon:hover{opacity:1}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.modal-title{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.btn-close{background:none;border:none;color:#666;cursor:pointer;font-size:28px;height:30px;line-height:1;padding:0;width:30px}.btn-close:hover{color:#333}.form-group{margin-bottom:20px}.form-label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s}.form-input:focus{border-color:#4caf50}.form-hint{color:#666;display:block;font-size:12px;margin-top:4px}.gps-input-group{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr auto}.form-checkbox{align-items:center;cursor:pointer;display:flex;gap:8px}.form-checkbox input{cursor:pointer;height:18px;width:18px}.modal-actions{border-top:1px solid #eee;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}@media (max-width:768px){.residences-list{grid-template-columns:1fr}.page-header{align-items:stretch;flex-direction:column;gap:12px}.gps-input-group{grid-template-columns:1fr}}.otp-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.otp-container{background:#fff;border-radius:15px;box-shadow:0 20px 60px #0000004d;max-width:500px;overflow:hidden;width:100%}.otp-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;text-align:center}.otp-header h1{font-size:28px;margin:0 0 10px}.otp-header p{font-size:16px;margin:0;opacity:.9}.otp-content{padding:30px}.otp-instructions{background:#f7fafc;border-left:4px solid #667eea;border-radius:4px;margin-bottom:25px;padding:15px 20px}.otp-instructions p{color:#2d3748;font-size:14px;line-height:1.6;margin:8px 0}.otp-instructions p:first-child{margin-top:0}.otp-instructions p:last-child{margin-bottom:0}.otp-form,.otp-form .form-group{margin-bottom:20px}.otp-form label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.otp-input{border:2px solid #cbd5e0;border-radius:8px;font-family:Courier New,monospace;font-size:24px;font-weight:700;letter-spacing:8px;padding:15px;text-align:center;transition:all .2s;width:100%}.otp-input:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}.otp-input:disabled{background-color:#edf2f7;color:#a0aec0;cursor:not-allowed}.btn-verify{border-radius:8px;font-size:16px;font-weight:600;padding:15px;transition:all .2s;width:100%}.otp-actions{border-top:1px solid #e2e8f0;margin-top:20px;padding:15px 0;text-align:center}.btn-link{font-size:14px;padding:8px 15px}.otp-footer{background:#f7fafc;border-top:1px solid #e2e8f0;margin:20px -30px -30px;padding:15px 20px}.otp-footer p{color:#718096;font-size:12px;margin:5px 0;text-align:center}.alert{padding:12px 15px}@media (max-width:768px){.otp-page{padding:15px}.otp-container{border-radius:10px}.otp-header{padding:25px 20px}.otp-header h1{font-size:24px}.otp-content{padding:20px}.otp-input{font-size:20px;letter-spacing:6px}}.admin-page{margin:0 auto;max-width:1200px;padding:20px}.admin-header{border-bottom:2px solid #667eea;margin-bottom:40px;padding:20px 0;text-align:center}.admin-header h1{color:#2d3748;font-size:32px;margin:0 0 10px}.admin-header p{color:#718096;font-size:16px;margin:0}.admin-header strong{color:#667eea}.admin-toolbar{display:flex;gap:10px;margin-bottom:30px}.admin-toolbar .btn{flex:1 1;max-width:200px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:40px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 15px #667eea33;color:#fff;padding:25px;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 8px 25px #667eea4d;transform:translateY(-5px)}.stat-card h3{font-size:16px;font-weight:600;margin:0 0 15px;opacity:.9}.stat-value{font-size:42px;font-weight:700;margin-bottom:10px}.stat-label{font-size:14px;margin:0;opacity:.85}.stat-breakdown{border-top:1px solid #fff3;display:flex;flex-direction:column;gap:8px;margin-top:15px;padding-top:15px}.stat-item{display:flex;font-size:13px;justify-content:space-between}.stat-item .label{opacity:.85}.stat-item .value{font-weight:700}.stat-item .value.danger{color:#ff6b6b}.stat-item .value.warning{color:#ffd93d}.admin-section{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:30px;padding:30px}.admin-section h2{color:#2d3748;font-size:22px;margin-bottom:10px;margin-top:0}.section-description{color:#718096;font-size:14px;margin-bottom:20px}.test-email-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:15px}.form-group{flex:1 1;min-width:200px}.form-group label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:1px solid #cbd5e0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background-color:#edf2f7;color:#a0aec0;cursor:not-allowed}.message{border-radius:6px;font-size:14px;font-weight:500;margin-top:15px;padding:15px}.message-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.message-error{background-color:#fed7d7;border:1px solid #fc8181;color:#742a2a}.loading{color:#718096;font-size:16px;padding:40px;text-align:center}.error-container{background:#fff5f5;border:1px solid #fed7d7;border-radius:10px;padding:60px 20px;text-align:center}.error-container h2{color:#742a2a;margin-bottom:10px}.error-container p{color:#975a5a}.alert{border-radius:6px;font-size:14px;margin-bottom:20px;padding:15px}.alert-error{background-color:#fed7d7;border:1px solid #fc8181;color:#742a2a}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.last-update{border-top:1px solid #e2e8f0;color:#a0aec0;font-size:12px;padding-top:20px;text-align:center}.btn{border-radius:6px;font-family:inherit;font-size:14px;padding:10px 20px;transition:all .2s}.btn-primary{background-color:#667eea}.btn-primary:hover:not(:disabled){background-color:#5a67d8;box-shadow:0 4px 12px #667eea4d}.btn-secondary{background-color:#48bb78;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#38a169;box-shadow:0 4px 12px #48bb784d}.btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.admin-page{padding:15px}.admin-header h1{font-size:24px}.stats-grid{gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{padding:20px}.stat-value{font-size:32px}.test-email-form{flex-direction:column}.test-email-form>*{width:100%}.admin-section{padding:20px}.recipients-header{flex-direction:column;gap:10px}.recipients-actions{justify-content:space-between;width:100%}}.mailing-form{display:flex;flex-direction:column;gap:20px}.form-group textarea{border:1px solid #cbd5e0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;resize:vertical;transition:border-color .2s;width:100%}.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea:disabled{background-color:#edf2f7;color:#a0aec0;cursor:not-allowed}.recipients-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.recipients-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}.recipients-header label{color:#2d3748;font-size:15px;font-weight:600}.recipients-actions{display:flex;gap:15px}.btn-link{font-size:13px;font-weight:500;padding:5px 10px}.btn-link:hover:not(:disabled){color:#5a67d8;text-decoration:underline}.btn-link:disabled{color:#a0aec0}.recipients-list{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto}.recipient-item{border-radius:6px;padding:10px;transition:background-color .2s}.recipient-item:hover{background-color:#f7fafc}.recipient-item label{align-items:flex-start;cursor:pointer;display:flex;font-weight:400;gap:10px}.recipient-item input[type=checkbox]{cursor:pointer;flex-shrink:0;height:18px;margin-top:3px;width:18px}.recipient-info{display:flex;flex-direction:column;gap:3px}.recipient-info strong{color:#2d3748;font-size:14px}.recipient-name{color:#718096;font-size:13px}.recipient-email{color:#667eea;font-size:13px;font-weight:500}.no-users{color:#a0aec0;font-style:italic;padding:20px;text-align:center}.btn-send-bulk{font-size:16px;margin-top:10px;padding:15px 20px;width:100%}.quotas-table{margin-top:20px;overflow-x:auto}.quotas-table table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;width:100%}.quotas-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.quotas-table th{font-size:14px;font-weight:600;padding:15px;text-align:left}.quotas-table td{border-bottom:1px solid #e2e8f0;font-size:14px;padding:12px 15px}.quotas-table tbody tr:hover{background-color:#f7fafc}.quotas-table tbody tr:last-child td{border-bottom:none}.quota-ok{color:#38a169;font-weight:600}.quota-full{color:#e53e3e;font-weight:600}.quota-depleted{color:#e53e3e;font-weight:700}.no-data{color:#a0aec0;font-style:italic;padding:30px!important;text-align:center}.btn-sm{font-size:13px}.btn-warning{background:linear-gradient(135deg,#f6ad55,#ed8936);border:none;color:#fff}.btn-warning:hover:not(:disabled){background:linear-gradient(135deg,#ed8936,#dd6b20);transform:translateY(-2px)}.btn-warning:disabled{cursor:not-allowed;opacity:.5}.users-list-rgpd{margin-bottom:30px}.users-list-rgpd h3{color:#2d3748;margin-bottom:15px}.filter-group{margin-bottom:15px}.filter-input{border:1px solid #cbd5e0;border-radius:5px;font-size:14px;max-width:400px;padding:10px;width:100%}.users-table-container{border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.users-table{background:#fff;border-collapse:collapse;font-size:13px;width:100%}.users-table thead{background-color:#667eea;color:#fff}.users-table th{font-size:11px;font-weight:600;letter-spacing:.5px;padding:12px 8px;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid #e2e8f0;padding:10px 8px}.users-table tbody tr{transition:background-color .2s}.users-table tbody tr:hover{background-color:#f7fafc}.users-table tbody tr.selected{background-color:#e6fffa;border-left:3px solid #38b2ac}.license-active{color:#38a169;font-weight:600}.license-none{color:#e53e3e;font-weight:600}.btn-sm{font-size:12px;padding:6px 12px}.btn-select{background-color:#38b2ac;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background-color .2s}.btn-select:hover{background-color:#2c7a7b}.btn-select:disabled{background-color:#cbd5e0;cursor:not-allowed}.uid-tools{background:#f7fafc;border-left:4px solid #38b2ac;border-radius:8px;margin-top:25px;padding:20px}.selected-user-info{background:#fff;border:1px solid #cbd5e0;border-radius:5px;color:#2d3748;margin-bottom:20px;padding:15px}.uid-tools .form-group{margin-bottom:20px}.uid-tools .form-group label{color:#2d3748;display:block;font-weight:600;margin-bottom:8px}.license-regen-group{align-items:center;display:flex;gap:10px}.license-regen-group .form-select{background-color:#fff;border:1px solid #cbd5e0;border-radius:5px;flex:1 1;font-size:14px;padding:10px}.license-regen-group .btn{flex-shrink:0;white-space:nowrap}.field-hint{color:#718096;display:block;font-size:12px;font-style:italic;margin-top:5px}.btn-info{background-color:#3182ce;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background-color .2s}.btn-info:hover{background-color:#2c5282}.btn-info:disabled{background-color:#cbd5e0;cursor:not-allowed}.stat-card-ai{background:linear-gradient(135deg,#38b2ac,#319795)}.stat-value-small{font-size:24px}.api-status{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;margin-top:10px;padding:4px 10px}.api-status.configured{background-color:#fff3;color:#d1fae5}.api-status.not-configured{background-color:#f003;color:#fef2f2}.ai-models-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:20px}.ai-model-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;padding:20px;position:relative;transition:all .3s ease}.ai-model-card:hover{border-color:#667eea;box-shadow:0 4px 20px #667eea26}.ai-model-card.active{background:linear-gradient(135deg,#f0fff4,#c6f6d5);border-color:#38a169}.ai-model-card.active:before{align-items:center;background:#38a169;border-radius:50%;color:#fff;content:"✓";display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;position:absolute;right:10px;top:10px;width:24px}.ai-model-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:12px}.ai-model-header h4{color:#2d3748;font-size:18px;margin:0}.provider-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.ai-model-description{color:#718096;font-size:14px;line-height:1.5;margin:0 0 15px}.ai-model-details{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:15px}.ai-model-details .detail{background:#f7fafc;border-radius:4px;color:#4a5568;font-size:12px;padding:4px 10px}.ai-model-actions{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;padding-top:15px}.active-badge{background:#38a169;border-radius:20px;color:#fff;font-size:14px;font-weight:600;padding:8px 16px}.ai-model-actions .btn-sm{font-size:13px;padding:8px 16px}.auth-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-container{animation:slideIn .4s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:40px;width:100%}.auth-container-large{max-width:600px}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.auth-header{margin-bottom:40px;text-align:center}.auth-logo{animation:fadeIn .6s ease-out;display:block;height:100px;margin:0 auto 20px;width:100px}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.auth-title{color:#1a202c;font-size:2.5rem;font-weight:800;margin:0 0 10px}.auth-subtitle{color:#718096;font-size:1.1rem;margin:0}.auth-form{display:flex;flex-direction:column;gap:20px}.form-section{border-top:2px solid #e2e8f0;margin-top:10px;padding-top:25px}.form-section:first-child{border-top:none;margin-top:0;padding-top:0}.form-section-title{color:#2d3748;font-size:1.2rem;font-weight:700;margin:0 0 20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{color:#2d3748;font-size:.95rem;font-weight:600}.form-input{background:#f7fafc;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;padding:14px 16px;transition:all .2s;width:100%}.form-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-hint{color:#a0aec0;font-size:.85rem;margin-top:-4px}.auth-error{align-items:center;background:#fff5f5;border:2px solid #fc8181;border-radius:10px;color:#c53030;display:flex;font-weight:500;gap:12px;padding:14px 16px}.auth-error span{flex-shrink:0;font-size:1.3rem}.auth-error p{margin:0}.auth-submit{font-size:1.1rem;font-weight:700;margin-top:10px;padding:16px}.auth-footer{border-top:2px solid #e2e8f0;margin-top:30px;padding-top:25px;text-align:center}.auth-footer p{color:#718096;font-size:.95rem;margin:0 0 12px}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:1rem;font-weight:600;padding:0;transition:all .2s}.btn-link:hover{color:#764ba2;text-decoration:underline}.btn-link:disabled{cursor:not-allowed;opacity:.5}.spinner-small{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;width:16px}.auth-links{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:20px;text-align:center}.auth-success{align-items:center;background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;color:#155724;display:flex;font-size:.95rem;gap:10px;margin-bottom:20px;padding:15px}.auth-success span{font-size:1.2rem}.auth-success-message{padding:60px 20px;text-align:center}.success-icon{font-size:4rem;margin-bottom:20px}.auth-success-message h2{color:#2d3748;font-size:1.8rem;margin-bottom:15px}.auth-success-message p{color:#718096;font-size:1.1rem;margin-bottom:10px}.redirect-message{color:#a0aec0!important;font-size:.95rem!important;font-style:italic;margin-top:30px!important}@media (max-width:600px){.auth-container{border-radius:15px;padding:30px 20px}.auth-title{font-size:2rem}.auth-subtitle{font-size:1rem}.form-section-title{font-size:1.1rem}}.checkbox-group{margin-bottom:12px}.checkbox-label{align-items:flex-start;cursor:pointer;display:flex;font-size:.9rem;gap:10px;line-height:1.4}.checkbox-label input[type=checkbox]{accent-color:#667eea;cursor:pointer;flex-shrink:0;height:20px;margin-top:2px;width:20px}.checkbox-text{color:#555}.checkbox-text a{color:#667eea;text-decoration:underline}.checkbox-text a:hover{color:#764ba2}.verify-email-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-md)}.verify-email-container{max-width:500px;width:100%}.verify-email-card{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0000004d;padding:var(--spacing-xl);text-align:center}.verify-email-card h2{color:var(--color-gray-800);font-size:var(--font-size-xl);margin:var(--spacing-md) 0}.verify-email-card p{color:var(--color-gray-600);margin-bottom:var(--spacing-md)}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--color-gray-200);border:4px solid var(--color-gray-200);border-radius:50%;border-top-color:var(--color-primary);height:60px;margin:0 auto var(--spacing-md);width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon{align-items:center;border-radius:50%;display:flex;font-size:48px;font-weight:700;height:80px;justify-content:center;margin:0 auto var(--spacing-md);width:80px}.icon.success{background:var(--color-success-light);color:var(--color-success-dark)}.icon.error{background:var(--color-danger-light);color:var(--color-danger-dark)}.redirect-info{color:var(--color-gray-500);font-size:var(--font-size-sm);font-style:italic;margin-top:var(--spacing-md)}.btn-primary{background:var(--color-primary);border:none;border-radius:var(--border-radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-md);font-weight:500;margin-top:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-lg);transition:all .3s ease}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.info-box{background:#e3f2fd;background:var(--color-info-light,#e3f2fd);border-left:4px solid var(--color-primary);border-radius:var(--border-radius-sm);margin:var(--spacing-lg) 0;padding:var(--spacing-md);text-align:left}.info-box p{color:var(--color-gray-700);font-size:var(--font-size-sm);margin:var(--spacing-xs) 0}.info-box strong{color:var(--color-gray-800)}.button-group{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;margin-top:var(--spacing-lg)}.btn-secondary{background:#fff;border:2px solid var(--color-primary);border-radius:var(--border-radius-md);color:var(--color-primary);cursor:pointer;font-size:var(--font-size-md);font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:all .3s ease}.btn-secondary:hover{background:var(--color-primary);box-shadow:0 4px 12px #667eea66;color:#fff;transform:translateY(-2px)}.app{display:flex;flex-direction:column;min-height:100vh}.page{flex:1 1;padding:var(--spacing-md);padding-bottom:calc(var(--bottombar-height) + var(--spacing-md))}.page-title{color:var(--color-gray-900);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-lg)}.card{background:var(--color-white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.btn{align-items:center;border:none;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-md);font-weight:600;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease}.btn-primary{background-color:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-gray-200);color:var(--color-gray-800)}.btn-danger{background-color:var(--color-danger);color:var(--color-white)}.btn-large{border-radius:var(--border-radius-lg);font-size:var(--font-size-lg);padding:var(--spacing-md) var(--spacing-xl)}.btn-icon{border-radius:var(--border-radius-full);height:48px;padding:0;width:48px}@media (min-width:768px){.page{margin:0 auto;max-width:1200px;padding:var(--spacing-xl)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#4caf50;--color-primary-dark:#388e3c;--color-primary-light:#c8e6c9;--color-secondary:#ff9800;--color-danger:#f44336;--color-warning:#ffc107;--color-success:#4caf50;--color-info:#2196f3;--color-white:#fff;--color-gray-100:#f5f5f5;--color-gray-200:#eee;--color-gray-300:#e0e0e0;--color-gray-400:#bdbdbd;--color-gray-500:#9e9e9e;--color-gray-600:#757575;--color-gray-700:#616161;--color-gray-800:#424242;--color-gray-900:#212121;--color-black:#000;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--border-radius-sm:0.25rem;--border-radius-md:0.5rem;--border-radius-lg:1rem;--border-radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--navbar-height:60px;--bottombar-height:70px}html{font-size:16px}body,html{max-width:100vw;overflow-x:hidden;position:relative;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;background-color:var(--color-gray-100);color:#212121;color:var(--color-gray-900);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-family:var(--font-family);font-size:1rem;font-size:var(--font-size-md);line-height:1.5;touch-action:manipulation;-webkit-user-select:none;user-select:none}[contenteditable],input,textarea{-webkit-user-select:text;user-select:text}#root{max-width:100vw;overflow-x:hidden;position:relative;width:100%}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
/*# sourceMappingURL=main.fd54bfba.css.map*/