.offline-banner{display:flex;align-items:center;justify-content:center;padding:8px 16px;font-size:14px;z-index:1000}.offline-banner--offline{background-color:#ff9800;color:#fff}.offline-banner--pending{background-color:#2196f3;color:#fff}.offline-banner__content{display:flex;align-items:center;gap:8px;max-width:600px}.offline-banner__text{flex:1}.offline-banner__sync-btn{display:flex;align-items:center;gap:4px;padding:4px 12px;background-color:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:inherit;font-size:13px;cursor:pointer;transition:background-color .2s}.offline-banner__sync-btn:hover:not(:disabled){background-color:#ffffff4d}.offline-banner__sync-btn:disabled{opacity:.7;cursor:not-allowed}.offline-banner__spin{animation:offline-spin 1s linear infinite}@keyframes offline-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.install-prompt__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;z-index:9999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.install-prompt{position:relative;background:white;border-radius:16px;padding:32px 24px 24px;max-width:360px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.install-prompt__close{position:absolute;top:12px;right:12px;background:none;border:none;padding:8px;cursor:pointer;color:#999;border-radius:50%;transition:background-color .2s,color .2s}.install-prompt__close:hover{background-color:#f0f0f0;color:#333}.install-prompt__icon{width:64px;height:64px;margin:0 auto 16px;background:linear-gradient(135deg,#4CAF50,#8BC34A);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff}.install-prompt h3{margin:0 0 8px;font-size:20px;color:#333}.install-prompt p{margin:0 0 20px;color:#666;font-size:14px;line-height:1.5}.install-prompt__benefits{display:flex;justify-content:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.install-prompt__benefit{display:flex;align-items:center;gap:6px;color:#666;font-size:13px}.install-prompt__benefit svg{color:#4caf50}.install-prompt__actions{display:flex;gap:12px}.install-prompt__actions .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px}.install-prompt--ios{text-align:left}.install-prompt--ios h3,.install-prompt--ios p{text-align:center}.install-prompt__ios-steps{margin:0 0 24px;padding-left:24px}.install-prompt__ios-steps li{margin-bottom:12px;line-height:1.6;color:#333}.install-prompt__ios-icon{display:inline-flex;vertical-align:middle;color:#007aff;margin:0 4px}.install-prompt__btn{width:100%}.support-form-container{max-width:500px;width:100%}.support-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e5e5)}.support-form-header h2{margin:0;font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted, #666);padding:.25rem .5rem;line-height:1}.close-btn:hover{color:var(--text-color, #333)}.support-form .form-group{margin-bottom:1.5rem}.support-form label{display:block;font-weight:500;margin-bottom:.5rem}.type-selector{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.type-btn{display:flex;flex-direction:column;align-items:center;padding:1rem;border:2px solid var(--border-color, #e5e5e5);border-radius:8px;background:var(--bg-secondary, #f8f8f8);cursor:pointer;transition:all .2s}.type-btn:hover{border-color:var(--primary-color, #3b82f6);background:var(--bg-primary, #fff)}.type-btn.active{border-color:var(--primary-color, #3b82f6);background:var(--primary-light, #eff6ff)}.type-icon{font-size:1.5rem;margin-bottom:.5rem}.type-label{font-weight:600;font-size:.9rem}.type-desc{font-size:.75rem;color:var(--text-muted, #666);margin-top:.25rem}.support-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;font-size:.95rem;resize:vertical;min-height:120px}.support-form textarea:focus{outline:none;border-color:var(--primary-color, #3b82f6)}.char-count{text-align:right;font-size:.75rem;color:var(--text-muted, #666);margin-top:.25rem}.form-info{background:var(--bg-secondary, #f8f8f8);padding:.75rem 1rem;border-radius:6px;margin-bottom:1.5rem}.form-info p{margin:0;font-size:.85rem;color:var(--text-muted, #666)}.form-actions{display:flex;gap:1rem;justify-content:flex-end}.support-chat-container{max-width:500px;width:100%;display:flex;flex-direction:column;max-height:80vh}.support-chat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e5e5)}.support-chat-header h2{margin:0;font-size:1.1rem}.support-chat-info{background:var(--bg-secondary, #f8f8f8);padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.support-chat-info p{margin:0;font-size:.85rem;color:var(--text-muted, #666)}.support-chat-messages{flex:1;overflow-y:auto;padding:1rem 0;max-height:300px}.original-description{background:var(--bg-secondary, #f8f8f8);padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.message-label{font-size:.75rem;color:var(--text-muted, #666);margin-bottom:.25rem}.original-description .message-content{font-size:.9rem}.chat-message{display:flex;gap:.75rem;margin-bottom:1rem}.chat-message.user{flex-direction:row-reverse}.message-avatar{font-size:1.25rem;flex-shrink:0}.message-bubble{max-width:80%;padding:.75rem 1rem;border-radius:12px;font-size:.9rem;line-height:1.4}.chat-message.ai .message-bubble{background:var(--bg-secondary, #f1f1f1);border-bottom-left-radius:4px}.chat-message.user .message-bubble{background:var(--primary-color, #3b82f6);color:#fff;border-bottom-right-radius:4px}.message-bubble.typing{display:flex;gap:.25rem;padding:.75rem 1.25rem}.message-bubble.typing .dot{width:8px;height:8px;background:var(--text-muted, #888);border-radius:50%;animation:typing 1s infinite}.message-bubble.typing .dot:nth-child(2){animation-delay:.2s}.message-bubble.typing .dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{opacity:.4}50%{opacity:1}}.support-chat-input{display:flex;gap:.5rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e5e5)}.support-chat-input input{flex:1;padding:.75rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;font-size:.95rem}.support-chat-input input:focus{outline:none;border-color:var(--primary-color, #3b82f6)}.support-chat-actions{text-align:center;padding-top:.75rem}.btn-link{background:none;border:none;color:var(--text-muted, #666);cursor:pointer;font-size:.85rem;text-decoration:underline}.btn-link:hover{color:var(--text-color, #333)}.support-request-list{width:100%}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.list-header h3{margin:0;font-size:1rem}.unacknowledged-badge{background:var(--primary-color, #3b82f6);color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.request-cards{display:flex;flex-direction:column;gap:.75rem}.support-request-card{border:1px solid var(--border-color, #e5e5e5);border-radius:8px;overflow:hidden}.request-card-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;background:var(--bg-primary, #fff);transition:background .2s}.request-card-header:hover{background:var(--bg-secondary, #f8f8f8)}.request-type-icon{font-size:1.25rem;flex-shrink:0}.request-info{flex:1;min-width:0}.request-title{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-meta{display:flex;gap:.5rem;align-items:center;margin-top:.25rem;font-size:.75rem}.status-badge{padding:.125rem .5rem;border-radius:10px;font-weight:500}.status-pending{background:#fef3c7;color:#92400e}.status-clarifying{background:#dbeafe;color:#1e40af}.status-ready{background:#d1fae5;color:#065f46}.status-in-progress{background:#e0e7ff;color:#3730a3}.status-addressed{background:#d1fae5;color:#065f46}.status-closed{background:#f3f4f6;color:#4b5563}.request-date{color:var(--text-muted, #666)}.response-badge{background:var(--primary-color, #3b82f6);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex-shrink:0}.expand-icon{font-size:.75rem;color:var(--text-muted, #666);transition:transform .2s;flex-shrink:0}.expand-icon.rotated{transform:rotate(180deg)}.request-card-body{padding:1rem;border-top:1px solid var(--border-color, #e5e5e5);background:var(--bg-secondary, #f8f8f8)}.request-description,.request-summary{margin-bottom:1rem}.request-description h4,.request-summary h4,.admin-responses h4{font-size:.8rem;color:var(--text-muted, #666);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.request-description p,.request-summary p{margin:0;font-size:.9rem;line-height:1.5}.admin-responses{margin-top:1rem}.admin-response{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e5e5);border-radius:6px;padding:.75rem;margin-bottom:.5rem}.admin-response.unread{border-left:3px solid var(--primary-color, #3b82f6)}.response-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.response-type{font-size:.8rem;font-weight:500}.response-date{font-size:.75rem;color:var(--text-muted, #666)}.response-content{font-size:.9rem;line-height:1.5;margin-bottom:.5rem}.btn-sm{padding:.25rem .75rem;font-size:.8rem}.support-card{margin-top:1.5rem}.support-card-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.support-card-header h3{margin:0}.support-card-actions{display:flex;align-items:center;gap:1rem}.support-card-content{margin-top:1rem}.support-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--text-muted, #666);min-height:120px}.support-list-empty p{margin:0 0 1rem}.support-list-loading{display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--text-muted, #666);min-height:120px}@media (max-width: 768px){.type-selector{grid-template-columns:1fr}}.support-section-actions{display:flex;align-items:center;gap:1rem}.expand-chevron{transition:transform .2s}.expand-chevron.rotated{transform:rotate(180deg)}.support-modal{max-width:550px;width:90vw;max-height:85vh;overflow-y:auto}.stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.stats-bar .stat{background:var(--bg-secondary, #f8f8f8);padding:1rem 1.5rem;border-radius:8px;text-align:center;min-width:100px}.stats-bar .stat-value{display:block;font-size:1.5rem;font-weight:600;color:var(--primary-color, #3b82f6)}.stats-bar .stat-label{font-size:.8rem;color:var(--text-muted, #666)}.filters-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.filters-bar select{padding:.5rem 1rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;background:var(--bg-primary, #fff);font-size:.9rem}.admin-table-container{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color, #e5e5e5)}.admin-table th{background:var(--bg-secondary, #f8f8f8);font-weight:600;font-size:.85rem;color:var(--text-muted, #666)}.admin-table tbody tr:hover{background:var(--bg-secondary, #f8f8f8)}.type-icon{font-size:1.25rem}.user-cell{display:flex;flex-direction:column}.user-name{font-weight:500}.user-email{font-size:.8rem;color:var(--text-muted, #666)}.description-cell{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-cell{white-space:nowrap;font-size:.85rem;color:var(--text-muted, #666)}.loading-state,.empty-state{text-align:center;padding:3rem;color:var(--text-muted, #666)}.support-detail-modal{max-width:700px;width:90vw;max-height:85vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e5e5e5);margin-bottom:1.5rem}.modal-body{padding:0}.detail-section{margin-bottom:1.5rem}.detail-section h4{font-size:.85rem;color:var(--text-muted, #666);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.detail-section p{margin:0;line-height:1.5}.description-text{background:var(--bg-secondary, #f8f8f8);padding:.75rem 1rem;border-radius:6px;white-space:pre-wrap}.clarification-history{background:var(--bg-secondary, #f8f8f8);padding:1rem;border-radius:6px;max-height:200px;overflow-y:auto}.history-message{margin-bottom:.75rem}.history-message:last-child{margin-bottom:0}.history-message .role{font-weight:600;margin-right:.5rem}.history-message.ai .role{color:var(--primary-color, #3b82f6)}.history-message.user .role{color:var(--success-color, #10b981)}.prompt-section{background:var(--bg-secondary, #f8f8f8);padding:1rem;border-radius:6px}.prompt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.prompt-header h4{margin:0}.prompt-text{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e5e5);padding:1rem;border-radius:6px;font-size:.85rem;line-height:1.5;white-space:pre-wrap;max-height:300px;overflow-y:auto;margin:0}.status-actions{display:flex;gap:.5rem;flex-wrap:wrap}.response-section{background:var(--bg-secondary, #f8f8f8);padding:1rem;border-radius:6px}.response-form{display:flex;flex-direction:column;gap:.75rem}.response-form select{padding:.5rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;background:var(--bg-primary, #fff)}.response-form textarea{padding:.75rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;font-size:.9rem;resize:vertical}.response-form button{align-self:flex-start}.response-meta{display:flex;gap:1rem;align-items:center;margin-bottom:.5rem;font-size:.85rem}.acknowledged{color:var(--success-color, #10b981)}.settings-panel{background:var(--bg-secondary, #f8f8f8);padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.settings-panel h3{margin:0 0 1rem;font-size:1rem}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-color, #e5e5e5)}.toggle-btn{padding:.5rem 1rem;border:1px solid var(--border-color, #e5e5e5);border-radius:20px;background:var(--bg-primary, #fff);cursor:pointer;font-size:.85rem}.toggle-btn.active{background:var(--success-color, #10b981);color:#fff;border-color:var(--success-color, #10b981)}.overrides-section{margin-top:1rem}.overrides-section h4{margin:0 0 .75rem;font-size:.9rem}.override-row{display:flex;align-items:center;gap:1rem;padding:.5rem;background:var(--bg-primary, #fff);border-radius:6px;margin-bottom:.5rem}.override-user{flex:1;font-size:.9rem}.override-status{font-size:.8rem;padding:.25rem .5rem;border-radius:10px}.override-status.enabled{background:#d1fae5;color:#065f46}.override-status.disabled{background:#fee2e2;color:#991b1b}.add-override-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e5e5)}.add-override-section h4{margin:0 0 .5rem;font-size:.9rem}.add-override-section select{width:100%;padding:.5rem;border:1px solid var(--border-color, #e5e5e5);border-radius:6px;background:var(--bg-primary, #fff)}.photo-capture{display:flex;flex-direction:column;gap:1rem}.photo-capture-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:.5rem}.photo-capture-tab{flex:1;padding:.75rem;background:none;border:none;border-bottom:2px solid transparent;font:inherit;color:var(--text-muted);cursor:pointer;transition:all .2s}.photo-capture-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.photo-capture-tab:hover:not(.active){color:var(--text)}.photo-capture-content{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center}.photo-capture-input{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}.photo-capture-file-input{display:none}.photo-capture-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;width:100%;max-width:280px;background:var(--bg-secondary, #f5f5f5);border:2px dashed var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.photo-capture-button:hover{border-color:var(--primary);background:var(--bg-hover, #eee)}.photo-capture-icon{font-size:2.5rem}.photo-capture-hint{font-size:.8125rem;color:var(--text-muted);text-align:center}.photo-capture-preview{width:100%;display:flex;flex-direction:column;gap:1rem}.photo-preview-image{width:100%;max-height:300px;object-fit:contain;border-radius:8px;background:var(--bg-secondary, #f5f5f5)}.photo-preview-actions{display:flex;gap:.75rem;justify-content:center}.photo-capture-existing{width:100%}.existing-photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.existing-photo-item{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;transition:border-color .2s}.existing-photo-item:hover{border-color:var(--primary)}.existing-photo-item img{width:100%;height:100%;object-fit:cover}.existing-photo-date{position:absolute;bottom:0;left:0;right:0;padding:.25rem;background:rgba(0,0,0,.6);color:#fff;font-size:.6875rem;text-align:center}.photo-capture-cancel{padding:.5rem;background:none;border:none;color:var(--text-muted);font:inherit;cursor:pointer;text-align:center}.photo-capture-cancel:hover{color:var(--text)}.photo-capture.compact .photo-capture-button{padding:1rem}.photo-capture.compact .photo-capture-icon{font-size:1.5rem}.photo-capture.compact .photo-preview-image{max-height:200px}.recipe-photo-gallery{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.photo-gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.photo-gallery-header h3{margin:0;font-size:1.125rem}.add-photo-gallery-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font:inherit;font-size:.875rem;cursor:pointer;transition:all .2s}.add-photo-gallery-btn:hover{border-color:var(--primary);color:var(--primary)}.photo-gallery-upload{position:relative;margin-bottom:1rem}.upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);border-radius:8px;font-weight:500}.photo-gallery-empty{text-align:center;padding:2rem;background:var(--gray-50);border-radius:8px}.photo-gallery-empty p{color:var(--text-muted);margin-bottom:1rem}.photo-gallery-empty .btn{display:inline-flex;align-items:center;gap:.5rem}.photo-gallery-loading{text-align:center;padding:2rem;color:var(--text-muted)}.photo-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}@media (min-width: 640px){.photo-gallery-grid{grid-template-columns:repeat(4,1fr)}}.photo-gallery-item{position:relative;aspect-ratio:1;padding:0;border:none;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--gray-100)}.photo-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-gallery-item:hover img{transform:scale(1.05)}.photo-gallery-item-date{position:absolute;bottom:0;left:0;right:0;padding:.25rem .5rem;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:.6875rem;text-align:center}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.9);padding:1rem}.lightbox-content{position:relative;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}.lightbox-close{position:absolute;top:-40px;right:0;padding:.5rem;background:none;border:none;color:#fff;cursor:pointer;opacity:.8;transition:opacity .2s}.lightbox-close:hover{opacity:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);padding:1rem;background:rgba(255,255,255,.1);border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s,background .2s}.lightbox-nav:hover{opacity:1;background:rgba(255,255,255,.2)}.lightbox-prev{left:-60px}.lightbox-next{right:-60px}@media (max-width: 768px){.lightbox-prev{left:0}.lightbox-next{right:0}}.lightbox-image{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;border-radius:4px}.lightbox-info{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:500px;margin-top:1rem;padding:.75rem 1rem;background:rgba(255,255,255,.1);border-radius:8px}.lightbox-meta{display:flex;flex-direction:column;gap:.25rem;color:#fff}.lightbox-date{font-weight:500}.lightbox-author{font-size:.875rem;opacity:.8}.lightbox-delete{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.5);border-radius:6px;color:#fca5a5;font:inherit;font-size:.875rem;cursor:pointer;transition:all .2s}.lightbox-delete:hover{background:rgba(239,68,68,.3);border-color:#ef4444b3}.social-share-container{display:inline-block}.btn-share{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--white);color:var(--gray-900);border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-share:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.btn-share:disabled{opacity:.6;cursor:not-allowed}.share-options-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.share-options-modal{background:var(--white);border-radius:16px;padding:1.5rem;width:100%;max-width:320px;box-shadow:0 4px 20px #00000026}.share-options-modal h3{margin:0 0 .5rem;font-size:1.25rem;text-align:center}.share-preview-title{color:var(--gray-500);font-size:.875rem;text-align:center;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-300)}.share-options-buttons{display:flex;flex-direction:column;gap:.75rem}.share-option-btn{width:100%;justify-content:center;padding:.75rem 1rem}.share-cancel-btn{margin-top:.5rem;color:var(--gray-500);font-size:.875rem;background:none;border:none;cursor:pointer}.share-cancel-btn:hover{color:var(--gray-700)}.btn-share svg{flex-shrink:0}.shopping-page .page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.weekly-lists{display:flex;flex-direction:column;gap:12px}.week-shopping-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.week-shopping-card.current-week{border-color:var(--primary);border-width:2px}.week-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;background:var(--surface);border:none;cursor:pointer;font-size:.9375rem;color:var(--text);transition:background .15s ease}.week-header:hover{background:var(--surface-hover)}.week-header-left{display:flex;align-items:center;gap:8px}.week-header-right{display:flex;align-items:center;gap:12px}.this-week-badge{background:var(--primary);color:#fff;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.week-label{font-weight:500}.item-count{font-size:.8125rem;color:var(--text-secondary)}.week-header .btn-icon{padding:6px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.week-header .btn-icon:hover{background:var(--surface-secondary);color:var(--text)}.week-content{border-top:1px solid var(--border);padding:16px}.week-content .shopping-list{margin-bottom:0}.week-content .shopping-group:last-child{margin-bottom:0}.week-empty-state{padding:24px;text-align:center;color:var(--text-secondary)}.week-empty-state p{margin:0}.week-content .all-purchased-message{padding:24px}.shopping-page .header-actions{display:flex;gap:8px}.shopping-page .view-toggle{display:flex;gap:4px;margin-bottom:16px}.shopping-page .view-toggle button{padding:8px 16px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;font-size:.875rem;transition:all .15s ease}.shopping-page .view-toggle button:first-child{border-radius:8px 0 0 8px}.shopping-page .view-toggle button:last-child{border-radius:0 8px 8px 0}.shopping-page .view-toggle button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.shopping-list{margin-bottom:16px}.shopping-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden}.shopping-group h3{padding:12px 16px;margin:0;background:var(--surface-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.shopping-items{list-style:none;padding:0;margin:0}.shopping-item{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--border)}.shopping-item:last-child{border-bottom:none}.shopping-item:hover{background:var(--surface-hover)}.shopping-item:active{background:var(--surface-active)}.shopping-item .item-checkbox{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:12px;color:var(--text-tertiary)}.shopping-item.purchased .item-checkbox{color:var(--success)}.shopping-item .item-details{flex:1;min-width:0}.shopping-item .item-name{display:block;font-size:.9375rem;color:var(--text)}.shopping-item.purchased .item-name{text-decoration:line-through;color:var(--text-tertiary)}.shopping-item .item-recipes,.shopping-item .item-time{display:block;font-size:.75rem;color:var(--text-tertiary);margin-top:2px}.shopping-item .item-quantity{font-size:.875rem;color:var(--text-secondary);white-space:nowrap;margin-left:8px}.shopping-page .empty-state{text-align:center;padding:48px 24px}.shopping-page .empty-state h3{margin:0 0 8px;font-size:1.125rem}.shopping-page .empty-state p{margin:0 0 20px;color:var(--text-secondary)}.all-purchased-message{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;text-align:center;color:var(--success)}.all-purchased-message p{margin:0;color:var(--text);font-size:1rem}.purchased-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.week-content .purchased-section{margin-top:16px}.purchased-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.purchased-toggle:hover{background:var(--surface-hover)}.purchased-toggle .auto-remove-hint{margin-left:auto;font-size:.75rem;font-weight:400;color:var(--text-tertiary)}.purchased-items{list-style:none;padding:0;margin:12px 0;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.purchased-items .shopping-item{opacity:.75}.purchased-items .shopping-item:hover{opacity:1}.clear-purchased-btn{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--text-secondary)}.list-stats{text-align:center;padding:16px;color:var(--text-secondary);font-size:.875rem}.push-settings h2{margin-bottom:1rem}.push-settings h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.push-error{background:var(--error-bg, #fee);color:var(--error, #c00);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.push-unsupported,.push-ios-install,.push-denied{color:var(--text-muted)}.push-hint{font-size:.875rem;margin-top:.5rem}.push-ios-install ol{margin:1rem 0 0 1.5rem;padding:0}.push-ios-install li{margin-bottom:.5rem}.push-description{color:var(--text-muted);margin-bottom:1rem}.push-main-toggle{margin-bottom:1.5rem}.push-status{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:500}.push-status-enabled{color:var(--success, #22c55e)}.push-status-icon{font-size:1.25rem}.push-actions{display:flex;gap:1rem;flex-wrap:wrap}.push-categories{border-top:1px solid var(--border);padding-top:1rem;margin-bottom:1rem}.push-categories .form-help{margin-bottom:1rem}.push-category{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-light, #eee);cursor:pointer}.push-category:last-of-type{border-bottom:none}.push-category:hover{background:var(--bg-hover, #f8f8f8);margin:0 -1rem;padding-left:1rem;padding-right:1rem}.push-category-info{display:flex;flex-direction:column;gap:.25rem}.push-category-label{font-weight:500}.push-category-desc{font-size:.8125rem;color:var(--text-muted)}.push-category input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--primary, #4CAF50)}.push-devices{border-top:1px solid var(--border);padding-top:1rem}.push-devices-toggle{background:none;border:none;padding:0;font:inherit;color:var(--text-muted);cursor:pointer;font-size:.875rem}.push-devices-toggle:hover{color:var(--text)}.push-devices-list{list-style:none;padding:0;margin:.75rem 0 0}.push-devices-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.875rem}.push-device-name{font-weight:500}.push-device-date{color:var(--text-muted);font-size:.8125rem}.push-test{border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem}.push-test .form-help{margin-top:.5rem;font-size:.8125rem}.push-sw-status{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid}.push-sw-status .push-sw-icon{font-size:1.5rem;flex-shrink:0}.push-sw-status strong{display:block;margin-bottom:.25rem;font-size:.9375rem}.push-sw-status p{margin:0;font-size:.875rem;opacity:.9}.push-sw-checking{background:var(--info-light, #e3f2fd);border-color:var(--info, #2196f3);color:var(--info-dark, #1565c0)}.push-sw-installing{background:var(--warning-light, #fff3e0);border-color:var(--warning, #ff9800);color:var(--warning-dark, #e65100)}.push-sw-error{background:var(--error-light, #ffebee);border-color:var(--error, #f44336);color:var(--error-dark, #c62828)}.conflict-page{padding:24px;max-width:900px;margin:0 auto}.conflict-page__header{margin-bottom:24px}.conflict-page__title{display:flex;align-items:center;gap:12px;margin-bottom:8px}.conflict-page__title h1{margin:0;font-size:24px}.conflict-page__title-icon{color:#f44336}.conflict-page__count{background-color:#f44336;color:#fff;padding:2px 10px;border-radius:12px;font-size:14px;font-weight:600}.conflict-page__description{color:#666;margin-bottom:16px}.conflict-page__actions{display:flex;gap:12px}.conflict-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}.conflict-page__empty-icon{color:#4caf50;margin-bottom:16px}.conflict-page__empty h2{margin:0 0 8px;color:#333}.conflict-page__empty p{color:#666;margin:0 0 24px}.conflict-list{display:flex;flex-direction:column;gap:16px}.conflict-card{background:white;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.conflict-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:background-color .2s}.conflict-card__header:hover{background-color:#f9f9f9}.conflict-card__info{flex:1}.conflict-card__type{display:inline-block;padding:2px 8px;background-color:#e3f2fd;color:#1976d2;border-radius:4px;font-size:12px;font-weight:500;margin-bottom:4px}.conflict-card__title{margin:0 0 4px;font-size:16px}.conflict-card__date{color:#999;font-size:12px}.conflict-card__expand{color:#666}.conflict-card__details{border-top:1px solid #eee;padding:20px;background-color:#fafafa}.conflict-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:start}.conflict-comparison__version{background:white;border-radius:8px;padding:16px;border:2px solid transparent}.conflict-comparison__version--local{border-color:#ff9800}.conflict-comparison__version--server{border-color:#4caf50}.conflict-comparison__version h4{margin:0 0 4px;font-size:14px}.conflict-comparison__meta{color:#999;font-size:12px;margin:0 0 12px}.conflict-comparison__data{margin-bottom:16px}.conflict-comparison__diff{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid #f0f0f0;font-size:13px}.conflict-comparison__diff:last-child{border-bottom:none}.conflict-comparison__field{color:#666;min-width:80px}.conflict-comparison__value{color:#333;word-break:break-word}.conflict-comparison__btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.conflict-comparison__divider{display:flex;align-items:center;justify-content:center;color:#999;font-weight:600;font-size:14px;padding-top:60px}@media (max-width: 768px){.conflict-comparison{grid-template-columns:1fr;gap:16px}.conflict-comparison__divider{padding:8px 0}}.spin{animation:spin 1s linear infinite}:root{--primary: #4CAF50;--primary-dark: #388E3C;--secondary: #2196F3;--danger: #f44336;--warning: #ff9800;--success: #4CAF50;--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #eeeeee;--gray-300: #e0e0e0;--gray-400: #bdbdbd;--gray-500: #9e9e9e;--gray-700: #616161;--gray-900: #212121;--white: #ffffff;--shadow: 0 2px 4px rgba(0,0,0,.1);--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--gray-100);color:var(--gray-900);line-height:1.5}.app{min-height:100vh}.main-content{padding:70px 16px 80px;max-width:1200px;margin:0 auto;background:var(--gray-50);min-height:100vh}.navbar{position:fixed;top:0;left:0;right:0;height:56px;background:var(--white);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100}.navbar-brand a{font-size:1.25rem;font-weight:700;color:var(--primary);text-decoration:none}.navbar-menu{display:flex;align-items:center;gap:16px}.navbar-greeting{color:var(--gray-700);font-size:.875rem}.navbar-link{color:var(--gray-700);text-decoration:none;font-size:.875rem}.navbar-link:hover{color:var(--primary)}.admin-link{color:var(--secondary);font-weight:500}.navbar-left{display:flex;align-items:center;gap:12px}.mobile-menu-toggle{display:none;background:none;border:none;padding:8px;cursor:pointer;color:var(--gray-700);border-radius:4px}.mobile-menu-toggle:hover{background:var(--gray-100);color:var(--primary)}@media (max-width: 767px){.mobile-menu-toggle{display:flex;align-items:center;justify-content:center}}.app-layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 56px);margin-top:56px}.left-rail{position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;background:var(--white);border-right:1px solid var(--gray-200);padding:24px 16px}.rail-section{margin-bottom:28px}.rail-section:last-child{margin-bottom:0}.section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin:0 0 16px;padding:0 8px}.rail-stats{display:flex;flex-direction:column;gap:8px}.rail-stat{display:flex;justify-content:space-between;align-items:baseline;padding:6px 10px;background:var(--gray-50);border-radius:6px}.rail-stat .stat-value{font-size:1.25rem;font-weight:700;color:var(--primary)}.rail-stat .stat-label{font-size:.75rem;color:var(--gray-600)}.rail-stat.stat-made .stat-value{color:var(--success)}.rail-stat.stat-not-made .stat-value{color:var(--danger)}.rail-stat.stat-success .stat-value{color:var(--primary)}.stats-section{margin-bottom:20px}.rail-nav{display:flex;flex-direction:column;gap:4px}.rail-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;color:var(--gray-700);text-decoration:none;border-radius:6px;transition:all .15s ease;font-size:.9rem}.rail-nav-item:hover{background:var(--gray-100);color:var(--gray-900)}.rail-nav-item.active{background:var(--primary);color:var(--white)}.rail-nav-item.active:hover{background:var(--primary-dark);color:var(--white)}.rail-nav-item svg{flex-shrink:0}.nav-label{white-space:nowrap}.main-content-area{padding:24px;overflow-y:auto;max-width:100%;background:var(--gray-50);min-height:100vh}.mobile-overlay{display:none}@media (min-width: 768px) and (max-width: 1023px){.app-layout{grid-template-columns:72px 1fr}.left-rail{padding:16px 8px}.section-title{display:none}.rail-stats{gap:8px}.rail-stat{flex-direction:column;align-items:center;padding:8px 4px}.rail-stat .stat-label{display:none}.rail-nav-item{justify-content:center;padding:12px}.nav-label{display:none}.main-content-area{padding:24px 16px}}@media (max-width: 767px){.app-layout{grid-template-columns:1fr}.left-rail{position:fixed;top:56px;left:0;width:280px;height:calc(100vh - 56px);z-index:150;transform:translate(-100%);transition:transform .3s ease-in-out;box-shadow:none}.left-rail.open{transform:translate(0);box-shadow:4px 0 16px #00000026}.mobile-overlay{display:block;position:fixed;top:56px;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:140}.main-content-area{padding:16px}}.dashboard-secondary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:24px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--white);box-shadow:0 -2px 4px #0000001a;display:flex;justify-content:space-around;align-items:center;z-index:100}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--gray-500);padding:8px;transition:color .2s}.bottom-nav-item.active{color:var(--primary)}.nav-icon{font-size:1.5rem}.nav-label{font-size:.75rem;margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;min-height:44px;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;gap:8px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--white);min-height:44px}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:var(--white);min-height:44px}.btn-outline{background:transparent;border:1px solid var(--gray-300);color:var(--gray-700);min-height:44px}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:var(--white);min-height:44px}.btn-sm{padding:10px 16px;font-size:.8125rem;min-height:44px}.btn-block{width:100%}.btn-large{min-height:50px;padding:14px 24px;font-size:1.1rem;display:inline-flex;align-items:center;gap:8px}.btn-icon,.icon-button{min-width:44px;min-height:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center}.btn-group{display:flex;gap:12px}.form-actions{display:flex;gap:12px;margin-top:24px}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--gray-700);font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem;transition:border-color .2s}.form-group textarea{min-height:100px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.input-disabled{background:var(--gray-200);color:var(--gray-500)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%)}.auth-card{background:var(--white);border-radius:16px;padding:32px;width:100%;max-width:400px;box-shadow:0 4px 20px #00000026}.auth-card-wide{max-width:600px}.auth-header{text-align:center;margin-bottom:24px}.auth-header h1{color:var(--primary);margin-bottom:4px}.auth-header p{color:var(--gray-500)}.auth-footer{text-align:center;margin-top:20px;font-size:.875rem;color:var(--gray-500)}.auth-footer a{color:var(--primary)}.session-expired-notice{background:var(--warning-bg, #fff3cd);border:1px solid var(--warning, #ffc107);color:var(--warning-dark, #856404);padding:12px 16px;border-radius:8px;margin-bottom:16px;text-align:center;font-size:.875rem}.auth-error{background:var(--danger-bg, #f8d7da);border:1px solid var(--danger, #dc3545);color:var(--danger-dark, #721c24);padding:12px 16px;border-radius:8px;margin-bottom:16px;text-align:center;font-size:.875rem}.waitlist-form{position:relative}.waitlist-form .back-button{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--gray-500);font-size:.875rem;cursor:pointer;padding:0;margin-bottom:16px}.waitlist-form .back-button:hover{color:var(--primary)}.waitlist-form textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem;font-family:inherit;resize:vertical;min-height:80px}.waitlist-form textarea:focus{outline:none;border-color:var(--primary)}.waitlist-form .char-count{text-align:right;font-size:.75rem;color:var(--gray-400);margin-top:4px}.waitlist-success{text-align:center;padding:20px 0}.waitlist-success .success-icon{color:var(--primary);margin-bottom:16px}.waitlist-success h2{color:var(--gray-900);margin-bottom:12px}.waitlist-success p{color:var(--gray-500);margin-bottom:24px;line-height:1.5}.invite-required-card{text-align:center}.invite-required-card .lock-icon{color:var(--gray-400);margin-bottom:16px}.invite-required-card h2{color:var(--gray-900);margin-bottom:8px}.invite-required-card .invite-description{color:var(--gray-500);margin-bottom:24px;line-height:1.5}.invite-required-card .divider{display:flex;align-items:center;gap:12px;margin:24px 0;color:var(--gray-400);font-size:.875rem}.invite-required-card .divider:before,.invite-required-card .divider:after{content:"";flex:1;height:1px;background:var(--gray-200)}.invite-required-card .interest-section p{color:var(--gray-500);font-size:.875rem;margin-bottom:12px}.food-preferences-grid{display:flex;flex-wrap:wrap;gap:8px}.preference-chip{padding:8px 16px;border:1px solid var(--gray-300);border-radius:20px;background:var(--white);cursor:pointer;font-size:.875rem;transition:all .2s}.preference-chip.selected{background:var(--primary);color:var(--white);border-color:var(--primary)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-header h1{font-size:1.5rem;text-align:left;margin-right:auto;flex:0 0 auto}.admin-header{justify-content:flex-start;gap:4px}.admin-header h1{flex:1}.admin-header .back-link{display:flex;align-items:center;justify-content:center;color:var(--gray-600);padding:4px;border-radius:var(--radius);transition:all .2s}.admin-header .back-link:hover{color:var(--primary);background:var(--gray-100)}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 768px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}}.dashboard-card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.dashboard-card h3{margin-bottom:16px;font-size:1rem;color:var(--gray-700)}.warning-card{border-left:4px solid var(--warning)}.expiring-list,.recent-meals-list{list-style:none;padding:0;margin:0}.expiring-list li,.recent-meals-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--gray-100);border-radius:var(--radius);margin-bottom:8px}.expiring-list li:last-child,.recent-meals-list li:last-child{margin-bottom:0}.expiring-list li span:first-child,.recent-meals-list li span:first-child{font-weight:500;color:var(--gray-800)}.expiry-date,.meal-date{font-size:.8rem;color:var(--gray-500);white-space:nowrap;margin-left:12px}.plan-dates{font-size:.875rem;color:var(--gray-600);margin-bottom:8px}.plan-summary{font-size:.875rem;color:var(--gray-700);margin-bottom:0}.ai-card-wide{grid-column:1 / -1}.upcoming-meals-card{position:relative}.upcoming-meals-list{max-height:240px;overflow-y:auto;margin-bottom:12px;padding-right:4px}.upcoming-meal-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--gray-100)}.upcoming-meal-item:last-child{border-bottom:none}.upcoming-meal-item .meal-date{flex-shrink:0;width:70px;font-size:.75rem;font-weight:600;color:var(--gray-600);text-align:right}.upcoming-meal-item .meal-info{display:flex;flex-direction:column;gap:2px}.upcoming-meal-item .meal-type{font-size:.7rem;text-transform:uppercase;color:var(--gray-500);font-weight:500}.upcoming-meal-item .meal-title{font-size:.875rem;color:var(--gray-800)}.card-cta{display:inline-block;margin-top:16px;padding:8px 16px;background:var(--primary);color:#fff;border-radius:var(--radius);font-size:.875rem;font-weight:500;text-decoration:none;transition:background .2s}.card-cta:hover{background:var(--primary-dark)}.recently-cooked-card{position:relative}.recent-meals-enhanced{display:flex;flex-direction:column;gap:12px}.recent-meal-enhanced{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--gray-50);border-radius:var(--radius)}.recent-meal-enhanced .meal-main-info{display:flex;flex-direction:column;gap:4px}.recent-meal-enhanced .meal-title{font-size:.875rem;font-weight:500;color:var(--gray-800)}.recent-meal-enhanced .meal-date{font-size:.75rem;color:var(--gray-500)}.recent-meal-enhanced .meal-actions{display:flex;gap:8px}.meal-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:white;border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-600);cursor:pointer;transition:all .2s}.meal-action-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.support-card-redesigned{position:relative;margin-top:24px}.support-card-redesigned .support-card-content{margin-bottom:16px}.support-card-actions-redesigned{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--gray-200)}.ai-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.ai-card-header h3{margin-bottom:0;flex-shrink:0}.suggestions-list{list-style:none;display:flex;flex-direction:column;gap:12px}.suggestion-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;background:var(--gray-100);border-radius:var(--radius)}.suggestion-content{flex:1}.suggestion-content strong{display:block;margin-bottom:4px}.suggestion-reason{font-size:.875rem;color:var(--gray-700);margin-bottom:4px}.suggestion-meta{font-size:.75rem;color:var(--gray-500)}.suggestion-item.suggestion-clickable{cursor:pointer;transition:background-color .2s,transform .1s,box-shadow .2s}.suggestion-item.suggestion-clickable:hover{background-color:var(--gray-200);transform:translate(4px);box-shadow:var(--shadow)}.suggestion-hint{display:block;font-size:.75rem;color:var(--gray-400);margin-top:6px}.suggestion-item.suggestion-clickable:hover .suggestion-hint{color:var(--primary)}.suggestion-item.adding{opacity:.7;cursor:wait;pointer-events:none}.suggestion-item.adding .suggestion-actions{pointer-events:auto}.suggestion-hint.adding{color:var(--primary);font-weight:500}.suggestion-actions .btn-primary{display:inline-flex;align-items:center;gap:4px}.suggestion-actions .btn-primary svg{width:14px;height:14px}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.recipe-preview-modal{max-width:700px;width:95%;max-height:85vh;overflow-y:auto}.recipe-preview-content{padding:16px 0}.recipe-preview-content .recipe-description{color:var(--gray-700);font-style:italic;margin-bottom:16px;line-height:1.6}.recipe-preview-content .recipe-times{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:12px;background:var(--gray-100);border-radius:var(--radius)}.recipe-preview-content .recipe-times span{font-size:.875rem;color:var(--gray-700)}.recipe-preview-content .recipe-section{margin-bottom:20px}.recipe-preview-content .recipe-section h4{margin-bottom:12px;color:var(--gray-900);font-size:1rem}.recipe-preview-content .ingredients-preview{list-style:none;padding:0}.recipe-preview-content .ingredients-preview li{padding:8px 0;border-bottom:1px dotted var(--gray-300);font-size:.9375rem}.recipe-preview-content .ingredients-preview li:last-child{border-bottom:none}.recipe-preview-content .ingredients-preview .prep-note{color:var(--gray-500);font-style:italic}.recipe-preview-content .instructions-preview{padding-left:20px}.recipe-preview-content .instructions-preview li{padding:8px 0;line-height:1.6;font-size:.9375rem}.recipe-preview-content .recipe-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.preview-actions{display:flex;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--gray-300)}.preview-actions .btn-large{padding:12px 24px;font-size:1rem}.preview-actions .btn-outline{background:transparent;border:1px solid var(--gray-400);color:var(--gray-700)}.preview-actions .btn-outline:hover{background:var(--gray-200)}.preview-loading{padding:60px 40px;text-align:center}.preview-loading p{margin-top:16px;color:var(--gray-500)}.loading-animation{display:flex;justify-content:center;gap:8px}.loading-animation .loading-dot{width:12px;height:12px;background:var(--primary);border-radius:50%;animation:loadingBounce 1.4s ease-in-out infinite both}.loading-animation .loading-dot:nth-child(1){animation-delay:-.32s}.loading-animation .loading-dot:nth-child(2){animation-delay:-.16s}@keyframes loadingBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.suggestions-placeholder{color:var(--gray-500);text-align:center;padding:24px 0}.suggestions-placeholder-link{margin-top:12px;font-size:.875rem}.suggestions-placeholder-link a{color:var(--primary);text-decoration:none;font-weight:500}.suggestions-placeholder-link a:hover{text-decoration:underline}.member-selector{display:flex;align-items:center;gap:8px;margin-bottom:0;flex-wrap:wrap}.member-selector-label{font-size:.8125rem;font-weight:500;color:var(--gray-600);white-space:nowrap}.member-chips{display:flex;flex-wrap:wrap;gap:6px}.member-chip{display:inline-flex;align-items:center;padding:4px 10px;font-size:.8125rem;border-radius:16px;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);cursor:pointer;transition:all .2s ease;white-space:nowrap}.member-chip:hover{border-color:var(--secondary);color:var(--secondary)}.member-chip.selected{background:var(--secondary);border-color:var(--secondary);color:var(--white)}.member-chip.selected:hover{background:#1976D2;border-color:#1976d2;color:var(--white)}.btn-sm{padding:6px 12px;font-size:.8rem;white-space:nowrap}.btn-secondary{background:var(--secondary);color:var(--white);border:none;padding:8px 16px;border-radius:var(--radius);cursor:pointer}.btn-secondary:hover{background:#1976D2}.btn-secondary:disabled{background:var(--gray-300);cursor:not-allowed}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary);padding:8px 16px;border-radius:var(--radius);cursor:pointer;text-decoration:none}.btn-outline:hover{background:var(--primary);color:var(--white)}.btn-danger-outline{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:8px 16px;border-radius:var(--radius);cursor:pointer}.btn-danger-outline:hover{background:var(--danger);color:var(--white)}.ai-card-actions{display:flex;gap:8px;align-items:center}.queued-badge{background:var(--success);color:var(--white);padding:6px 12px;border-radius:var(--radius);font-size:.8rem;white-space:nowrap}.rejected-badge{background:var(--gray-400);color:var(--white);padding:6px 12px;border-radius:var(--radius);font-size:.8rem;white-space:nowrap}.suggestion-actions{display:flex;gap:8px;align-items:center}.suggestion-rejected{opacity:.5}.btn-reject{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:6px 12px;border-radius:var(--radius);cursor:pointer;font-size:.8rem}.btn-reject:hover{background:var(--danger);color:var(--white)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--white);border-radius:var(--radius);padding:24px;max-width:500px;width:100%;box-shadow:0 4px 20px #0003}.modal h3{margin:0 0 8px}.modal-subtitle{color:var(--gray-700);font-style:italic;margin-bottom:16px}.modal-description{color:var(--gray-500);font-size:.875rem;margin-bottom:16px}.ingredient-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.btn-ingredient{display:inline-flex;align-items:center;gap:6px;background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300);padding:8px 16px;border-radius:var(--radius);cursor:pointer;transition:all .2s}.btn-ingredient:hover{background:var(--gray-200);border-color:var(--gray-400)}.btn-ingredient.selected{background:var(--danger);color:var(--white);border-color:var(--danger)}.btn-ingredient.selected:hover{background:#d32f2f;border-color:#d32f2f}.btn-ingredient .check-mark{font-size:.875rem}.modal-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--gray-200);padding-top:16px}.reject-section{margin-bottom:16px}.reject-section .modal-description{margin-bottom:8px}.reject-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:var(--gray-500);font-size:.875rem}.reject-divider:before,.reject-divider:after{content:"";flex:1;border-bottom:1px solid var(--gray-300)}.reject-divider span{padding:0 12px}.btn-block{width:100%;justify-content:center}.review-queue{max-width:900px;margin:0 auto}.page-subtitle{color:var(--gray-500);margin-top:4px}.queue-tabs{display:flex;gap:8px;margin-bottom:20px}.tab-btn{padding:8px 16px;background:var(--gray-200);border:none;border-radius:var(--radius);cursor:pointer;font-size:.875rem}.tab-btn.active{background:var(--primary);color:var(--white)}.empty-state{text-align:center;padding:48px 20px;color:var(--gray-500)}.empty-hint{margin-top:8px;font-size:.875rem}.error-state{text-align:center;padding:48px 20px;color:var(--gray-600)}.error-state p{margin-bottom:16px;font-size:1rem}.error-state .btn{margin-top:8px}.queue-item{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.queue-item-header{display:flex;justify-content:space-between;align-items:center;padding:16px;cursor:pointer}.queue-item-header:hover{background:var(--gray-100)}.queue-item-info h3{margin:0 0 4px;font-size:1rem}.queue-item-reason{color:var(--gray-700);font-size:.875rem;margin:0 0 4px}.queue-item-meta{font-size:.75rem;color:var(--gray-500)}.expand-icon{font-size:1.5rem;color:var(--gray-500);font-weight:300}.queue-item-details{padding:0 16px 16px;border-top:1px solid var(--gray-200)}.loading-details{padding:30px 20px;text-align:center;color:var(--gray-500);display:flex;flex-direction:column;align-items:center;gap:12px}.loading-details p{margin:0;font-size:.875rem}.recipe-preview{padding-top:16px}.recipe-description{color:var(--gray-700);margin-bottom:16px}.recipe-section h4{font-size:.875rem;color:var(--gray-700);margin-bottom:8px}.ingredients-preview{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px;font-size:.875rem}.ingredients-preview .prep-note{color:var(--gray-500);font-style:italic}.instructions-preview{font-size:.875rem;padding-left:20px}.instructions-preview li{margin-bottom:8px}.recipe-tags{display:flex;flex-wrap:wrap;gap:8px}.tag{background:var(--gray-200);padding:4px 8px;border-radius:4px;font-size:.75rem;color:var(--gray-700)}.queue-item-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-action-btn{padding:8px 16px;background:var(--gray-100);border-radius:var(--radius);text-decoration:none;color:var(--gray-700);font-size:.875rem}.quick-action-btn:hover{background:var(--primary);color:var(--white)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-item{text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--primary)}.stat-label{font-size:.75rem;color:var(--gray-500)}.card-link{display:block;margin-top:12px;color:var(--primary);text-decoration:none;font-size:.875rem}.filter-bar{margin-bottom:16px}.filter-bar select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.inventory-grid{display:grid;gap:16px}.inventory-category{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.inventory-category h3{text-transform:capitalize;margin-bottom:12px;color:var(--gray-700)}.ingredient-list{list-style:none}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--gray-200)}.ingredient-item:last-child{border-bottom:none}.quantity-controls{display:flex;gap:12px}.qty-btn{min-width:44px;min-height:44px;padding:0;border:1px solid var(--gray-300);background:var(--white);border-radius:var(--radius);font-size:.75rem;cursor:pointer;text-transform:capitalize;display:flex;align-items:center;justify-content:center}.qty-btn.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.btn-delete{padding:4px 8px;border:none;background:var(--danger);color:var(--white);border-radius:4px;cursor:pointer;margin-left:8px}.staple-badge{font-size:.625rem;background:var(--gray-200);color:var(--gray-600);padding:2px 8px;border-radius:10px;margin-left:8px;border:none;cursor:pointer;transition:all .2s ease}.staple-badge:hover{background:var(--warning-light, #FFF3CD);color:var(--warning)}.staple-badge.active{background:var(--warning);color:var(--white)}.staple-badge.active:hover{background:var(--warning-dark, #E0A800)}.search-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.search-bar input{flex:1;min-width:200px;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.search-bar select{padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.recipe-card{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);position:relative}.recipe-link{text-decoration:none;color:inherit}.recipe-card h3{margin-bottom:8px;color:var(--gray-900);padding-right:32px}.recipe-description{color:var(--gray-500);font-size:.875rem;margin-bottom:8px}.recipe-meta{display:flex;gap:12px;font-size:.75rem;color:var(--gray-500)}.complexity-badge{text-transform:capitalize;padding:2px 8px;border-radius:10px;font-size:.75rem}.complexity-badge.easy{background:#e8f5e9;color:#2e7d32}.complexity-badge.medium{background:#fff3e0;color:#ef6c00}.complexity-badge.hard{background:#ffebee;color:#c62828}.recipe-tags{display:flex;gap:6px;margin-top:8px}.tag{font-size:.75rem;padding:2px 8px;background:var(--gray-100);border-radius:10px}.btn-delete-recipe{position:absolute;top:12px;right:12px;padding:6px;background:transparent;border:none;color:var(--gray-400);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,background-color .2s}.btn-delete-recipe:hover{color:var(--danger);background:var(--gray-100)}.btn-delete-recipe svg{display:block}.delete-confirm-modal{max-width:400px;text-align:center}.delete-confirm-modal h3{margin-bottom:16px;color:var(--gray-900)}.delete-confirm-modal p{margin-bottom:8px;color:var(--gray-600)}.delete-warning{color:var(--danger);font-size:.875rem;margin-bottom:20px}.modal-actions{display:flex;gap:12px;justify-content:center}.btn-danger{background:var(--danger);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius);cursor:pointer;font-weight:500}.btn-danger:hover{background:#c0392b}.recipe-content{background:var(--white);border-radius:var(--radius);padding:20px}.recipe-meta-row{display:flex;gap:16px;margin-bottom:16px;color:var(--gray-500);font-size:.875rem}.servings-control{display:flex;align-items:center;gap:12px;margin:16px 0;padding:12px;background:var(--gray-100);border-radius:var(--radius)}.servings-control button{width:32px;height:32px;border:1px solid var(--gray-300);background:var(--white);border-radius:50%;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center}.ingredients-section,.instructions-section{margin:24px 0}.ingredients-section h2,.instructions-section h2{margin-bottom:16px}.ingredients-list,.instructions-list{padding-left:20px}.ingredients-list li,.instructions-list li{margin-bottom:8px}.instructions-list li{margin-bottom:16px}.ingredients-list li{display:flex;gap:8px}.ingredients-list .quantity{font-weight:500}.recipe-actions{margin-top:24px;text-align:center}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.feedback-content{background:var(--white);padding:24px;border-radius:var(--radius);text-align:center}.rating-buttons{display:flex;gap:8px;justify-content:center;margin:16px 0}.rating-btn{padding:8px 12px;border:1px solid var(--gray-300);background:var(--white);border-radius:var(--radius);cursor:pointer}.rating-btn:hover{background:var(--gray-100)}.mode-toggle{display:flex;gap:8px;margin-bottom:20px}.mode-btn{flex:1;padding:12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;border-radius:var(--radius)}.mode-btn.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.upload-box{border:2px dashed var(--gray-300);padding:40px;text-align:center;border-radius:var(--radius)}.lookup-section{background:var(--white);padding:20px;border-radius:var(--radius)}.url-import-section{margin-bottom:20px}.url-import-section h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin-bottom:12px;color:var(--gray-700)}.url-form{display:flex;flex-direction:column;gap:8px}.url-input-row{display:flex;gap:8px}.url-input-row input{flex:1;padding:12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem}.url-input-row .btn{white-space:nowrap}.url-error{display:flex;align-items:flex-start;gap:8px;padding:12px;background:var(--danger-light, #fef2f2);border:1px solid var(--danger, #ef4444);border-radius:var(--radius);color:var(--danger, #ef4444);font-size:.9rem}.url-error svg{flex-shrink:0;margin-top:2px}.lookup-divider{display:flex;align-items:center;text-align:center;margin:24px 0;color:var(--gray-500)}.lookup-divider:before,.lookup-divider:after{content:"";flex:1;border-bottom:1px solid var(--gray-300)}.lookup-divider span{padding:0 16px;font-size:.9rem}@media (max-width: 500px){.url-input-row{flex-direction:column}.url-input-row .btn{width:100%}}.lookup-form input[type=text],.lookup-form textarea{width:100%;padding:12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem}.lookup-form textarea{resize:vertical;min-height:80px}.lookup-form .form-hint{display:block;font-size:.85rem;color:var(--gray-500);margin-top:4px}.lookup-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}.lookup-filters .form-group{margin-bottom:0}.lookup-filters select{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem;background:var(--white)}.lookup-filters label{font-size:.85rem;margin-bottom:4px}.lookup-form .btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}@media (max-width: 600px){.lookup-filters{grid-template-columns:1fr}}.recipe-preview{background:var(--gray-50);border-radius:var(--radius);padding:20px}.preview-header h2{margin:0 0 8px;color:var(--gray-900)}.preview-description{color:var(--gray-600);margin-bottom:16px}.preview-meta{display:flex;flex-wrap:wrap;gap:16px;padding:12px 0;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);margin-bottom:16px}.preview-meta span{color:var(--gray-600);font-size:.9rem}.preview-meta .complexity-badge{background:var(--primary-light);color:var(--primary);padding:2px 8px;border-radius:4px;font-weight:500;text-transform:capitalize}.preview-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.preview-tags .tag{background:var(--gray-200);color:var(--gray-700);padding:4px 12px;border-radius:16px;font-size:.85rem}.preview-section{margin-bottom:20px}.preview-section h3{font-size:1.1rem;margin-bottom:12px;color:var(--gray-800)}.preview-section .ingredient-list{list-style:none;padding:0;margin:0}.preview-section .ingredient-list li{padding:8px 0;border-bottom:1px solid var(--gray-200);display:flex;gap:8px}.preview-section .ingredient-list .quantity{font-weight:500;min-width:80px}.preview-section .ingredient-list .prep-note{color:var(--gray-500);font-style:italic}.preview-section .instruction-list{padding-left:20px;margin:0}.preview-section .instruction-list li{padding:8px 0;line-height:1.5}.preview-section .instruction-list .timing{color:var(--gray-500);font-size:.9rem}.preview-actions{display:flex;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--gray-200);flex-wrap:wrap}.preview-actions .btn{flex:1;min-width:120px;display:flex;align-items:center;justify-content:center;gap:6px}.preview-actions .btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.preview-actions .btn-secondary:hover{background:var(--gray-200)}@media (max-width: 500px){.preview-actions{flex-direction:column}.preview-actions .btn{width:100%}}.recipe-form{background:var(--white);padding:20px;border-radius:var(--radius)}.form-section{margin:16px 0}.form-section h3{margin-bottom:16px}.ingredient-row,.instruction-row{display:flex;gap:8px;margin-bottom:8px}.ingredient-row input{flex:1}.instruction-row{align-items:flex-start}.step-number{font-weight:700;margin-top:10px}.instruction-row textarea{flex:1}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.calendar-day{background:var(--white);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.calendar-day h3{font-size:.875rem;margin-bottom:8px;color:var(--gray-700)}.meal-slot{margin:16px 0;padding:16px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}.meal-type{text-transform:capitalize;font-size:.75rem;color:var(--gray-500);display:block;margin-bottom:4px}.planned-meal{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.875rem}.btn-remove{background:none;border:none;color:var(--danger);cursor:pointer}.meal-slot select{width:100%;margin-top:4px;padding:4px;font-size:.75rem}.recipe-autocomplete{position:relative;flex:1}.recipe-autocomplete-input-wrapper{position:relative;display:flex;align-items:center}.recipe-autocomplete-icon{position:absolute;left:8px;color:var(--gray-400);pointer-events:none}.recipe-autocomplete-input{width:100%;padding:6px 8px 6px 28px;font-size:.75rem;border:1px dashed var(--gray-300);border-radius:4px;background:transparent;outline:none;transition:border-color .2s,box-shadow .2s}.recipe-autocomplete-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #4caf501a}.recipe-autocomplete-input::placeholder{color:var(--gray-400)}.recipe-autocomplete-dropdown{position:fixed;margin-top:4px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;z-index:1000;max-height:240px;overflow-y:auto;min-width:200px;max-width:300px}.recipe-autocomplete-list{list-style:none;margin:0;padding:4px 0}.recipe-autocomplete-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;transition:background-color .1s}.recipe-autocomplete-item:hover,.recipe-autocomplete-item.highlighted{background-color:var(--gray-200)}.recipe-autocomplete-title{font-size:.85rem;color:var(--gray-900);flex:1;margin-right:8px;line-height:1.3}.recipe-autocomplete-meta{font-size:.7rem;color:var(--gray-500);white-space:nowrap}.recipe-autocomplete-empty{padding:12px;text-align:center;color:var(--gray-500);font-size:.8rem}.view-toggle{display:flex;gap:4px}.view-toggle button{padding:6px 12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;font-size:.75rem}.view-toggle button.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.shopping-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.shopping-list-header h2{margin:0}.shopping-list-actions{display:flex;gap:8px}.shopping-list-actions .btn{display:flex;align-items:center;gap:6px}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.shopping-group{background:var(--white);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.shopping-group h3{text-transform:capitalize;margin-bottom:12px}.shopping-items{list-style:none}.shopping-item{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-bottom:1px solid var(--gray-200);cursor:pointer}.shopping-item.purchased{opacity:.5}.shopping-item.purchased .item-name{text-decoration:line-through}.item-checkbox{font-size:1.25rem;flex-shrink:0;margin-top:2px}.item-details{flex:1;min-width:0}.item-name{display:block}.item-recipes{display:block;font-size:.75rem;color:var(--gray-500);font-style:italic;margin-top:2px}.item-quantity{color:var(--gray-500);font-size:.875rem;margin-left:auto;flex-shrink:0}.list-stats{text-align:center;padding:16px;color:var(--gray-500)}.tab-bar{display:flex;gap:8px;margin-bottom:16px}.tab-bar button{flex:1;padding:12px;border:1px solid var(--gray-300);background:var(--white);cursor:pointer;border-radius:var(--radius)}.tab-bar button.active{background:var(--primary);color:var(--white);border-color:var(--primary)}.history-list,.favorites-list{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.history-item,.favorite-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--gray-200)}.history-title,.favorite-title{color:var(--gray-900);text-decoration:none;font-weight:500}.history-date{font-size:.75rem;color:var(--gray-500)}.favorite-stats{display:flex;gap:16px;font-size:.75rem;color:var(--gray-500)}.enjoyment-badge{font-size:.75rem;padding:2px 8px;border-radius:10px}.enjoyment-badge.loved_it{background:#e8f5e9;color:#2e7d32}.enjoyment-badge.liked_it{background:#e3f2fd;color:#1565c0}.enjoyment-badge.okay{background:#fff3e0;color:#ef6c00}.enjoyment-badge.not_great{background:#fce4ec;color:#c2185b}.enjoyment-badge.didnt_like{background:#ffebee;color:#c62828}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.admin-card{background:var(--white);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}.stat-big{font-size:2.5rem;font-weight:700;color:var(--primary)}.admin-table{width:100%;background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border-collapse:collapse}.admin-table th,.admin-table td{padding:12px;text-align:left;border-bottom:1px solid var(--gray-200)}.admin-table th{background:var(--gray-100);font-weight:500}.role-badge{padding:2px 8px;border-radius:10px;font-size:.75rem}.role-badge.admin{background:#e3f2fd;color:#1565c0}.role-badge.user{background:var(--gray-200)}.status-badge{padding:2px 8px;border-radius:10px;font-size:.75rem}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.inactive{background:#ffebee;color:#c62828}.status-badge.pending{background:#fff3e0;color:#ef6c00}.status-badge.accepted{background:#e8f5e9;color:#2e7d32}.invite-form{margin-bottom:20px}.invite-form .form-row{display:flex;gap:8px}.invite-form input{flex:1;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius)}.invite-form .limits-info{display:flex;flex-direction:column;gap:2px;margin-bottom:12px;font-size:.9rem}.invite-form .limits-info small{color:var(--gray-500);font-size:.75rem}.invite-form .limits-info .limit-reached{color:var(--danger);font-weight:500}.invite-form .form-hint{display:block;margin-top:8px;color:var(--gray-500)}.open-invite{color:var(--gray-500);font-style:italic}.waitlist-filters{margin-bottom:16px}.filter-tabs{display:flex;gap:4px;flex-wrap:wrap}.filter-tab{padding:8px 16px;border:none;background:transparent;color:var(--gray-500);border-radius:var(--radius);cursor:pointer;font-size:.9rem;transition:all .2s}.filter-tab:hover{background:var(--gray-100);color:var(--gray-700)}.filter-tab.active{background:var(--primary);color:var(--white)}.waitlist-entries{display:flex;flex-direction:column;gap:12px}.waitlist-entry{padding:16px}.waitlist-entry .entry-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.waitlist-entry .entry-info h3{margin:0 0 4px;font-size:1rem}.waitlist-entry .entry-email{color:var(--gray-500);font-size:.875rem}.waitlist-entry .entry-reason{background:var(--gray-50);padding:12px;border-radius:var(--radius);margin-bottom:12px}.waitlist-entry .entry-reason strong{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;display:block;margin-bottom:4px}.waitlist-entry .entry-reason p{margin:0;font-size:.9rem;color:var(--gray-700);white-space:pre-wrap}.waitlist-entry .entry-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:var(--gray-500);margin-bottom:12px}.waitlist-entry .entry-invite-info{color:var(--primary);font-size:.75rem;margin-bottom:12px}.waitlist-entry .entry-actions{display:flex;gap:8px;flex-wrap:wrap}.status-badge.invited{background:#e3f2fd;color:#1565c0}.status-badge.registered{background:#e8f5e9;color:#2e7d32}.status-badge.declined{background:var(--gray-200);color:var(--gray-600)}.status-badge{display:inline-flex;align-items:center;gap:4px}.empty-state{text-align:center;padding:48px 24px;color:var(--gray-400)}.empty-state svg{margin-bottom:12px}.ai-usage-dashboard .page-header.admin-header{gap:4px;flex-wrap:wrap}.ai-usage-dashboard .page-header h1{flex:1;margin-right:12px}.period-selector{display:flex;gap:8px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.summary-card{background:var(--white);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}.summary-value{font-size:1.75rem;font-weight:700;color:var(--primary)}.summary-label{color:var(--gray-500);font-size:.875rem;margin-top:4px}.chart-container{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:24px}.chart-container h3{margin-bottom:16px;font-size:1rem;color:var(--gray-700)}.chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.chart-row .chart-container{margin-bottom:0}.cache-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}.cache-stat{text-align:center;padding:16px;background:var(--gray-100);border-radius:var(--radius)}.cache-value{font-size:1.25rem;font-weight:600;color:var(--secondary)}.cache-label{font-size:.75rem;color:var(--gray-500);margin-top:4px}.ai-usage-dashboard .header-actions{display:flex;align-items:center;gap:12px}.settings-panel{background:var(--white);border-radius:var(--radius);padding:20px;margin-bottom:24px;box-shadow:var(--shadow);border:2px solid var(--primary-light)}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-200)}.settings-header h3{margin:0;color:var(--gray-800)}.settings-source{font-size:.75rem;color:var(--gray-500);background:var(--gray-100);padding:4px 8px;border-radius:4px}.settings-section{margin-bottom:20px}.settings-section h4{font-size:.875rem;color:var(--gray-600);margin-bottom:12px}.feature-toggles{display:flex;flex-wrap:wrap;gap:12px}.toggle-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.875rem}.toggle-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.operation-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.tier-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--gray-50);border-radius:6px}.tier-item .op-name{font-size:.875rem;color:var(--gray-700)}.tier-item select{padding:4px 8px;border-radius:4px;border:1px solid var(--gray-300);font-size:.8rem}.tier-item select.tier-simple{background-color:#ecfdf5;color:#059669}.tier-item select.tier-complex{background-color:#eef2ff;color:#4f46e5}.cache-ttls{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.ttl-item{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--gray-50);border-radius:6px;font-size:.875rem}.ttl-item .op-name{color:var(--gray-700)}.ttl-value{font-weight:500;color:var(--primary)}.ttl-value.disabled{color:var(--gray-400)}.settings-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--gray-200)}.settings-actions .btn{display:flex;align-items:center;gap:6px}.prompt-cache-stats{background:linear-gradient(135deg,#eef2ff 0%,#faf5ff 100%);border-radius:var(--radius);padding:20px;margin-bottom:24px;box-shadow:var(--shadow)}.prompt-cache-stats h3{margin-bottom:16px;color:var(--gray-800)}.user-breakdown .usage-table{width:100%;border-collapse:collapse}.user-breakdown .usage-table th,.user-breakdown .usage-table td{padding:12px;text-align:left;border-bottom:1px solid var(--gray-200)}.user-breakdown .usage-table th{font-size:.75rem;text-transform:uppercase;color:var(--gray-500);font-weight:600}.user-breakdown .usage-table td{font-size:.875rem}.user-breakdown .user-info{display:flex;flex-direction:column}.user-breakdown .user-name{font-weight:500;color:var(--gray-800)}.user-breakdown .user-email{font-size:.75rem;color:var(--gray-500)}.empty-message{text-align:center;color:var(--gray-500);padding:40px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--gray-500)}.loading-spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:12px 24px;border-radius:var(--radius);background:var(--gray-900);color:var(--white);font-size:.875rem;cursor:pointer;animation:toastSlideIn .3s ease;box-shadow:0 4px 12px #00000026}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}.toast-warning{background:var(--warning)}@keyframes toastSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.empty-state{text-align:center;padding:40px 20px;color:var(--gray-500)}.empty-message{text-align:center;padding:20px;color:var(--gray-500)}.parse-prompt{background:var(--gray-100);padding:16px;border-radius:var(--radius);margin:16px 0}@media (max-width: 768px){.form-row{flex-direction:column}.navbar-greeting{display:none}.search-bar{flex-direction:column}.search-bar input{min-width:100%}.admin-table{font-size:.875rem}.admin-table th,.admin-table td{padding:8px}.user-breakdown{overflow-x:auto;-webkit-overflow-scrolling:touch}.user-breakdown .usage-table{min-width:500px}.user-breakdown .usage-table th,.user-breakdown .usage-table td{padding:8px;font-size:.75rem}.user-breakdown .user-email{font-size:.65rem}}.disliked-form{margin-top:20px}.disliked-form h2{margin-bottom:8px}.form-help{color:var(--gray-500);font-size:.875rem;margin-bottom:16px}.disliked-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.disliked-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:20px;font-size:.875rem}.disliked-chip .remove-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:var(--gray-300);color:var(--gray-700);border-radius:50%;font-size:14px;line-height:1;cursor:pointer;transition:all .2s}.disliked-chip .remove-btn:hover{background:var(--danger);color:var(--white)}.add-disliked-form{display:flex;gap:8px}.add-disliked-form input{flex:1}.add-disliked-form .btn{flex-shrink:0}.preferences-page .page-subtitle{color:var(--gray-500);margin-top:4px}.preferences-section{margin-bottom:20px}.preferences-section h2{margin-bottom:8px}.preferences-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.selected-count{color:var(--gray-500);font-size:.875rem}.profile-link-card{display:flex;flex-direction:column;gap:12px}.profile-link-card h2{margin:0}.profile-link-card .btn{align-self:flex-start}.suggestions-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--gray-500)}.suggestions-loading p{margin-top:16px;font-size:.875rem}.loading-animation{display:flex;gap:8px}.loading-dot{width:12px;height:12px;background:var(--primary);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.loading-dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.ai-tabs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-200)}.ai-tabs{display:flex;gap:4px}.ai-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all .2s}.ai-tab:hover{color:var(--gray-700);background:var(--gray-100)}.ai-tab.active{color:var(--primary);background:rgba(76,175,80,.1)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--gray-300);border-radius:10px;font-size:.75rem;font-weight:600}.ai-tab.active .tab-badge{background:var(--primary);color:var(--white)}.suggestions-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-filter{position:relative}.btn-filter.has-filters{border-color:var(--primary);color:var(--primary)}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--primary);color:var(--white);border-radius:9px;font-size:.7rem;font-weight:600;margin-left:4px}.filter-chevron-inline{margin-left:4px;transition:transform .2s ease}.filter-chevron-inline.rotated{transform:rotate(180deg)}.ai-filters-panel{display:flex;flex-wrap:wrap;gap:16px;background:var(--gray-50);border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);margin:0 -24px;padding:16px 24px;align-items:flex-end}.ai-filters-panel .filter-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px;max-width:180px}.ai-filters-panel .filter-group label{font-size:.75rem;font-weight:500;color:var(--gray-700)}.ai-filters-panel .filter-group select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.875rem;background:var(--white)}.ai-filters-panel .filter-group select:focus{outline:none;border-color:var(--primary)}.ai-filters-panel .btn-link{color:var(--gray-500);text-decoration:underline;background:none;border:none;cursor:pointer;font-size:.875rem;padding:8px 0}.ai-filters-panel .btn-link:hover{color:var(--primary)}@media (max-width: 768px){.ai-card-header{flex-direction:column;align-items:flex-start;gap:12px}.suggestions-actions{width:100%;justify-content:flex-start}.member-selector{width:100%;order:1}.ai-filters-panel{margin:0 -16px;padding-left:16px;padding-right:16px}.ai-filters-panel .filter-group{min-width:calc(50% - 8px);max-width:none}}@media (max-width: 480px){.ai-filters-panel .filter-group{min-width:100%}.suggestions-actions{flex-wrap:wrap;gap:8px}.suggestions-actions .btn{flex:1;min-width:0;justify-content:center}.member-chips{width:100%}}.filter-group-multiselect{flex:1 1 100%!important;max-width:none!important;min-width:100%!important}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{padding:6px 12px;border:1px solid var(--gray-300);border-radius:16px;background:var(--white);color:var(--gray-700);font-size:.8125rem;cursor:pointer;transition:all .15s ease}.filter-chip:hover{border-color:var(--primary);color:var(--primary)}.filter-chip.selected{background:var(--primary);border-color:var(--primary);color:var(--white)}@media (max-width: 768px){.filter-chips{max-height:140px;overflow-y:auto}}.recipe-filters-accordion{width:100%}.recipe-filters-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);cursor:pointer;font-size:.875rem;font-weight:500;color:var(--gray-700);transition:all .2s ease}.recipe-filters-toggle:hover{border-color:var(--primary);color:var(--primary)}.recipe-filters-toggle.has-filters{border-color:var(--primary);background:var(--primary-light)}.recipe-filters-toggle.open{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.filter-toggle-label{display:flex;align-items:center;gap:6px}.filter-chevron{transition:transform .2s ease;color:var(--gray-500)}.filter-chevron.rotated{transform:rotate(180deg)}.recipe-filters-panel{max-height:0;overflow:hidden;transition:max-height .3s ease}.recipe-filters-panel.open{max-height:300px}.recipe-filters-content{display:flex;flex-wrap:wrap;gap:16px;padding:16px;background:var(--white);border:1px solid var(--gray-300);border-top:none;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);align-items:flex-end}.recipe-filters-content .filter-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.recipe-filters-content .filter-group label{font-size:.75rem;font-weight:500;color:var(--gray-700)}.recipe-filters-content .filter-group select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.875rem;background:var(--white)}.recipe-filters-content .filter-group select:focus{outline:none;border-color:var(--primary)}.recipe-filters-content .btn-link{color:var(--gray-500);text-decoration:underline;background:none;border:none;cursor:pointer;font-size:.875rem;padding:8px 0}.recipe-filters-content .btn-link:hover{color:var(--primary)}@media (max-width: 600px){.recipe-filters-content{flex-direction:column;gap:12px}.recipe-filters-content .filter-group{min-width:100%}}.ai-tab-content{min-height:200px}.empty-queue{text-align:center;padding:40px 20px;color:var(--gray-500)}.empty-queue .empty-hint{font-size:.875rem;margin-top:8px}.queue-list{display:flex;flex-direction:column;gap:12px}.queue-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--gray-50);border-radius:var(--radius);margin-bottom:4px}.queue-count{font-size:.875rem;color:var(--gray-600);font-weight:500}.queue-item{background:var(--gray-100);border-radius:var(--radius);overflow:hidden}.queue-item-header{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;cursor:pointer;transition:background .2s}.queue-item-header:hover{background:var(--gray-200)}.queue-item-info h4{margin:0 0 4px;font-size:1rem}.queue-item-reason{font-size:.875rem;color:var(--gray-500);margin:0 0 4px}.queue-item-meta{font-size:.75rem;color:var(--gray-400)}.expand-icon{font-size:1.25rem;color:var(--gray-400);flex-shrink:0;width:24px;text-align:center}.queue-item-details{padding:0 12px 12px;border-top:1px solid var(--gray-200)}.recipe-preview{padding-top:12px}.recipe-description{margin-bottom:12px;color:var(--gray-700)}.recipe-times{display:flex;gap:16px;margin-bottom:16px;font-size:.875rem;color:var(--gray-500)}.recipe-section{margin-bottom:16px}.recipe-section h5{margin:0 0 8px;font-size:.875rem;color:var(--gray-700)}.ingredients-preview,.instructions-preview{margin:0;padding-left:20px;font-size:.875rem}.ingredients-preview li,.instructions-preview li{margin-bottom:4px}.prep-note{color:var(--gray-500);font-style:italic}.recipe-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 8px;background:var(--gray-200);border-radius:4px;font-size:.75rem;color:var(--gray-600)}.queue-item-actions{display:flex;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--gray-200)}.household-page h2 .member-capacity{font-size:.875rem;font-weight:400;color:var(--gray-500);margin-left:8px}.members-list{display:flex;flex-direction:column;gap:12px}.member-item{padding:16px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200)}.member-info{display:flex;align-items:center;gap:12px;margin-bottom:8px}.role-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:capitalize}.role-badge.manager{background:var(--primary-light);color:var(--primary)}.role-badge.member{background:var(--gray-200);color:var(--gray-600)}.member-permissions{margin-top:12px}.permissions-summary{font-size:.875rem;color:var(--gray-600);margin-bottom:12px}.member-actions{display:flex;gap:8px}.permissions-grid{display:flex;flex-direction:column;gap:0}label.permission-checkbox{display:flex!important;flex-direction:row;align-items:center;gap:16px;padding:14px 16px;margin:0;cursor:pointer;border-bottom:1px solid var(--gray-200);transition:background-color .15s ease;font-weight:400;line-height:1}label.permission-checkbox:first-child{border-top:1px solid var(--gray-200);border-radius:8px 8px 0 0}label.permission-checkbox:last-child{border-bottom:1px solid var(--gray-200);border-radius:0 0 8px 8px}label.permission-checkbox:nth-child(odd){background:var(--gray-50)}label.permission-checkbox:nth-child(2n){background:white}label.permission-checkbox:hover{background:var(--primary-light)}label.permission-checkbox input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;flex-shrink:0;margin:0;accent-color:var(--primary)}.permission-editor{background:white;border:1px solid var(--gray-200);border-radius:8px;padding:16px}.permission-editor .permissions-grid{margin-bottom:16px}.editor-actions{display:flex;gap:8px}.invites-list{display:flex;flex-direction:column;gap:12px}.invite-item{padding:16px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200)}.invite-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.invite-expires{font-size:.75rem;color:var(--gray-500)}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.accepted{background:#d1fae5;color:#065f46}.status-badge.expired{background:var(--gray-200);color:var(--gray-600)}.invite-actions{display:flex;gap:8px}.btn-danger-outline{color:var(--danger);border-color:var(--danger)}.btn-danger-outline:hover{background:var(--danger);color:#fff}.input-with-status{position:relative}.input-with-status input{padding-right:120px}.input-status{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:500;padding:4px 8px;border-radius:4px}.input-status.checking{color:var(--gray-500);background:var(--gray-100)}.input-status.available{color:#065f46;background:#d1fae5}.input-status.taken{color:#991b1b;background:#fee2e2}.form-error{display:block;color:var(--danger);margin-top:4px}.notification-bell-container{position:relative}.notification-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--gray-700);cursor:pointer;border-radius:50%;transition:background-color .2s,color .2s}.notification-bell-btn:hover{background:var(--gray-100);color:var(--primary)}.notification-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;background:var(--danger);color:var(--white);font-size:.7rem;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center}.notification-dropdown{position:absolute;top:100%;right:0;width:360px;max-height:480px;background:var(--white);border-radius:var(--radius);box-shadow:0 4px 20px #00000026;z-index:200;overflow:hidden;margin-top:8px}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--gray-200)}.notification-dropdown-header h3{margin:0;font-size:1rem;font-weight:600}.mark-all-read-btn{background:none;border:none;color:var(--primary);font-size:.875rem;cursor:pointer;padding:4px 8px;border-radius:4px}.mark-all-read-btn:hover{background:var(--gray-100)}.notification-dropdown-content{max-height:400px;overflow-y:auto}.notification-loading,.notification-empty{padding:40px 20px;text-align:center;color:var(--gray-500)}.notification-empty-icon{font-size:2rem;display:block;margin-bottom:8px;opacity:.5}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--gray-100);transition:background-color .15s;position:relative}.notification-item:hover{background:var(--gray-50)}.notification-item.unread{background:rgba(33,150,243,.05)}.notification-item.unread:hover{background:rgba(33,150,243,.1)}.notification-icon{font-size:1.25rem;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);border-radius:50%}.notification-content{flex:1;min-width:0}.notification-title{font-weight:500;font-size:.875rem;color:var(--gray-900);margin-bottom:2px;display:flex;align-items:center;gap:8px}.notification-type-badge{font-size:.65rem;font-weight:500;padding:2px 6px;border-radius:4px;text-transform:uppercase}.notification-type-badge.household{background:var(--primary);color:var(--white)}.notification-type-badge.system{background:var(--secondary);color:var(--white)}.notification-message{font-size:.8rem;color:var(--gray-600);margin:0 0 4px;line-height:1.4}.notification-meta{font-size:.7rem;color:var(--gray-400);display:flex;gap:8px}.notification-unread-dot{width:8px;height:8px;background:var(--secondary);border-radius:50%;flex-shrink:0}.notification-header-actions{display:flex;gap:8px;align-items:center}.clear-all-btn{background:none;border:none;color:var(--gray-500);font-size:.75rem;cursor:pointer;padding:4px 8px;border-radius:4px}.clear-all-btn:hover{color:var(--danger);background:var(--gray-100)}.notification-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.notification-clear-btn{background:none;border:none;color:var(--gray-400);font-size:1.25rem;cursor:pointer;padding:4px;line-height:1;border-radius:4px;opacity:0;transition:opacity .2s,color .2s}.notification-item:hover .notification-clear-btn{opacity:1}.notification-clear-btn:hover{color:var(--danger);background:var(--gray-100)}.queue-processing-notice{background:var(--gray-50);border:1px solid var(--primary);border-radius:8px;padding:1rem;text-align:center}.queue-processing-notice p{margin:0;color:var(--primary);font-weight:500}.queue-processing-notice .processing-subtext{font-size:.875rem;color:var(--gray-600);font-weight:400;margin-top:.25rem}@media (max-width: 768px){.notification-dropdown{position:fixed;top:56px;left:0;right:0;width:100%;max-height:calc(100vh - 120px);margin-top:0;border-radius:0}}.background-job-indicator{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));border-radius:8px;margin-bottom:16px}.background-job-indicator .processing-icon{width:24px;height:24px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.background-job-indicator .processing-text{flex:1}.background-job-indicator .processing-text strong{display:block;color:var(--text-primary);margin-bottom:2px}.background-job-indicator .processing-text span{font-size:.875rem;color:var(--text-secondary)}.notification-item .notification-icon.ai-icon{background:linear-gradient(135deg,#8b5cf6,#06b6d4);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center}.suggestions-placeholder.processing{background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(6,182,212,.1));border:1px dashed var(--primary);padding:24px;border-radius:8px;text-align:center}.suggestions-placeholder.processing p:first-child{color:var(--primary)}.parse-prompt button:disabled{opacity:.7;cursor:not-allowed}.parse-prompt p{margin-bottom:12px;color:var(--text-secondary)}.btn.processing{position:relative;pointer-events:none}.btn.processing:after{content:"";position:absolute;top:50%;right:12px;transform:translateY(-50%);width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.meal-planner-page .page-header{flex-wrap:wrap;gap:12px}.page-header-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.plan-selector{position:relative}.plan-selector .btn-ghost{background:var(--gray-100);border:1px solid var(--gray-300);padding:6px 12px;font-size:.875rem;display:flex;align-items:center;gap:4px}.plan-selector .btn-ghost:hover{background:var(--gray-200)}.plan-selector .btn-ghost svg.rotated{transform:rotate(180deg)}.plan-selector-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:var(--shadow);min-width:250px;z-index:100;max-height:300px;overflow-y:auto}.plan-option{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:12px;border:none;background:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--gray-200)}.plan-option:last-child{border-bottom:none}.plan-option:hover{background:var(--gray-100)}.plan-option.active{background:var(--primary);color:var(--white)}.plan-option.active .plan-option-dates{color:#fffc}.plan-option-name{font-weight:500}.plan-option-dates{font-size:.75rem;color:var(--gray-500)}.meal-plan-calendar{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.meal-plan-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px;flex-wrap:wrap}.meal-plan-title-section{display:flex;align-items:center;gap:8px}.meal-plan-header h2{font-size:1.25rem;margin-bottom:0}.btn-edit-plan{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:var(--gray-200);color:var(--gray-600);cursor:pointer;transition:all .2s}.btn-edit-plan:hover{background:var(--gray-300);color:var(--gray-800)}.plan-dates{font-size:.875rem;color:var(--gray-500);margin-top:4px}.meal-plan-actions{display:flex;gap:8px}.edit-plan-form{margin-bottom:20px;padding:16px}.edit-plan-form h3{margin:0 0 16px;font-size:1rem}.edit-plan-form .form-actions{display:flex;gap:16px;justify-content:flex-end;margin-top:8px}.calendar-wrapper{position:relative;display:flex;align-items:stretch}.calendar-scroll-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:36px;height:36px;border-radius:50%;background:var(--white);border:1px solid var(--gray-300);box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-700);transition:all .15s ease}.calendar-scroll-btn:hover{background:var(--gray-100);border-color:var(--gray-400)}.calendar-scroll-btn.scroll-left{left:-18px}.calendar-scroll-btn.scroll-right{right:-18px}.calendar-scroll-btn.hidden{opacity:0;pointer-events:none}.calendar-grid{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex:1}.calendar-grid::-webkit-scrollbar{height:6px}.calendar-grid::-webkit-scrollbar-track{background:var(--gray-200);border-radius:3px}.calendar-grid::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:3px}.calendar-grid::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.calendar-day{background:var(--gray-100);border-radius:var(--radius);padding:12px;min-width:220px;max-width:280px;flex:0 0 220px;scroll-snap-align:start}@media (min-width: 1600px){.calendar-day{flex:0 0 240px;min-width:240px}}.meal-slot{margin-bottom:12px}.meal-slot:last-child{margin-bottom:0}.meal-type{display:block;font-size:.75rem;font-weight:600;text-transform:capitalize;color:var(--gray-500);margin-bottom:4px}.planned-meal{display:flex;flex-direction:column;background:var(--white);padding:6px 8px;border-radius:4px;margin-bottom:4px;font-size:.875rem}.planned-meal-row{display:flex;justify-content:space-between;align-items:center;width:100%}.planned-meal .btn-remove{background:none;border:none;color:var(--gray-400);cursor:pointer;padding:2px 6px;font-size:.75rem}.planned-meal .btn-remove:hover{color:var(--danger)}.meal-slot select{width:100%;padding:6px 8px;font-size:.75rem;border:1px dashed var(--gray-300);border-radius:4px;background:transparent;color:var(--gray-500);cursor:pointer}.meal-slot select:hover{border-color:var(--primary);color:var(--primary)}.create-plan-form{margin-bottom:20px}.create-plan-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.create-plan-form .form-hint{font-size:.75rem;color:var(--gray-500);margin:8px 0 16px}.create-plan-form .form-actions{display:flex;gap:16px;justify-content:flex-end;margin-top:8px}.variety-notice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:var(--gray-100);border-radius:var(--radius);margin-bottom:16px;font-size:.875rem;color:var(--gray-700)}.variety-notice a{color:var(--primary);font-weight:500}.variety-notice a:hover{text-decoration:underline}.variety-hint{color:var(--gray-500);font-size:.75rem}.weekly-plans-container{display:flex;flex-direction:column;gap:32px}.week-section{background:var(--white);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.week-section.current-week{border:2px solid var(--primary)}.week-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.week-header-left{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.week-header h2{font-size:1.25rem;margin:0;color:var(--gray-900)}.week-dates{font-size:.875rem;color:var(--gray-500)}.week-header-actions{display:flex;gap:8px}.planned-meal-content{flex:1;min-width:0}.planned-meal .meal-title{display:block;font-size:.875rem;line-height:1.3}.planned-meal .last-made{display:block;font-size:.65rem;color:var(--gray-500);margin-top:2px}.planned-meal.completed{background:var(--success-light, #d4edda);border-left:3px solid var(--success, #28a745)}.planned-meal.skipped{background:var(--gray-100);border-left:3px solid var(--gray-400);opacity:.7}.completion-status-wrapper{display:flex;align-items:center;gap:4px;margin-left:8px;flex-shrink:0}.completion-status{font-size:.65rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px}.completion-status.made{background:var(--success, #28a745);color:#fff}.completion-status.skipped{background:var(--gray-400);color:#fff}.btn-unskip{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:var(--gray-300);color:var(--gray-700);cursor:pointer;transition:all .2s}.btn-unskip:hover{background:var(--gray-400);color:var(--gray-900)}.btn-unskip:disabled{opacity:.5;cursor:not-allowed}.meal-completion-actions{display:flex;gap:8px;margin-top:6px;padding-top:6px;border-top:1px solid var(--gray-100)}.btn-made,.btn-skipped{display:flex;align-items:center;gap:4px;padding:4px 8px;border:none;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.75rem;font-weight:500}.btn-made{background:var(--success-light, #d4edda);color:var(--success, #28a745)}.btn-made:hover:not(:disabled){background:var(--success, #28a745);color:#fff}.btn-skipped{background:var(--gray-100);color:var(--gray-500)}.btn-skipped:hover:not(:disabled){background:var(--gray-300);color:var(--gray-700)}.btn-made:disabled,.btn-skipped:disabled{opacity:.5;cursor:not-allowed}.calendar-day.today{background:linear-gradient(135deg,rgba(76,175,80,.1) 0%,rgba(76,175,80,.05) 100%);border:2px solid var(--primary);box-shadow:0 2px 8px #4caf5026}.calendar-day.past{background:var(--gray-200)}.calendar-day.past .calendar-day-header{border-bottom-color:var(--gray-400)}.calendar-day.past .calendar-day-header h3{color:var(--gray-700)}.calendar-day-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--gray-300);gap:8px}.calendar-day.today .calendar-day-header{border-bottom-color:var(--primary)}.calendar-day-header h3{margin:0;font-size:.875rem;display:flex;flex-direction:column;gap:2px}.today-badge{display:inline-block;background:var(--primary);color:#fff;font-size:.625rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px;letter-spacing:.5px;width:fit-content}.btn-skip-day{display:flex;align-items:center;gap:4px;padding:4px 8px;border:none;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.7rem;font-weight:500;background:var(--gray-200);color:var(--gray-600);flex-shrink:0}.btn-skip-day:hover{background:var(--gray-300);color:var(--gray-700)}.empty-slot-actions{display:flex;align-items:center;gap:4px}.empty-slot-actions select{flex:1}.btn-skip-slot{display:flex;align-items:center;justify-content:center;padding:6px;border:1px dashed var(--gray-300);border-radius:4px;background:transparent;color:var(--gray-400);cursor:pointer;transition:all .15s ease}.btn-skip-slot:hover{border-color:var(--gray-400);color:var(--gray-600);background:var(--gray-100)}.skipped-slot{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--gray-100);border-radius:4px;border:1px dashed var(--gray-300)}.skipped-slot-label{font-size:.75rem;color:var(--gray-500);font-style:italic}.skipped-slot .btn-unskip{padding:4px;background:transparent;border:none;color:var(--gray-400);cursor:pointer;border-radius:4px}.skipped-slot .btn-unskip:hover{background:var(--gray-200);color:var(--gray-600)}.btn-add-meal{display:flex;align-items:center;gap:4px;flex:1;padding:6px 8px;border:1px dashed var(--gray-300);border-radius:4px;background:transparent;color:var(--gray-500);cursor:pointer;transition:all .15s ease;font-size:.75rem}.btn-add-meal:hover{border-color:var(--primary);color:var(--primary);background:rgba(76,175,80,.05)}.meal-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;font-size:.6rem;font-weight:600;text-transform:uppercase;margin-bottom:2px}.meal-badge.leftovers{background:#fef3cd;color:#856404}.meal-badge.restaurant{background:#d1ecf1;color:#0c5460}.meal-servings{display:block;font-size:.65rem;color:var(--gray-500)}.planned-meal.clickable .planned-meal-content{cursor:pointer}.planned-meal.clickable:not(.completed):not(.skipped) .planned-meal-content:hover{background:rgba(0,0,0,.02);border-radius:4px}.recipe-preview-modal{max-width:600px;max-height:80vh;overflow-y:auto}.recipe-preview-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.recipe-preview-modal .modal-header h3{margin:0;font-size:1.25rem;padding-right:16px}.recipe-preview-modal .recipe-description{color:var(--gray-600);font-size:.9rem;margin-bottom:12px}.recipe-preview-modal .recipe-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;font-size:.85rem;color:var(--gray-600)}.recipe-preview-modal .servings-adjuster{display:flex;align-items:center;gap:12px;padding:12px;background:var(--gray-50);border-radius:8px;margin-bottom:16px}.recipe-preview-modal .servings-label{font-weight:500}.recipe-preview-modal .servings-value{font-size:1.125rem;font-weight:600;min-width:24px;text-align:center}.recipe-preview-modal .recipe-section{margin-bottom:16px}.recipe-preview-modal .recipe-section h4{margin:0 0 8px;font-size:1rem;color:var(--gray-800);border-bottom:1px solid var(--gray-200);padding-bottom:4px}.recipe-preview-modal .ingredients-list{list-style:none;padding:0;margin:0}.recipe-preview-modal .ingredients-list li{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-100)}.recipe-preview-modal .ingredient-quantity{font-weight:500;min-width:60px}.recipe-preview-modal .ingredient-name{flex:1}.recipe-preview-modal .ingredient-prep{color:var(--gray-500);font-style:italic}.recipe-preview-modal .instructions-list{padding-left:20px;margin:0}.recipe-preview-modal .instructions-list li{padding:8px 0;line-height:1.5}.recipe-preview-modal .step-timing{color:var(--gray-500);font-size:.85rem}.recipe-preview-modal .modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200)}.add-meal-modal{max-width:480px}.add-meal-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.add-meal-modal .modal-header h3{margin:0}.meal-source-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--gray-200);padding-bottom:12px}.meal-source-tab{flex:1;padding:10px 12px;border:1px solid var(--gray-300);border-radius:6px;background:var(--white);color:var(--gray-600);cursor:pointer;transition:all .15s ease;font-size:.9rem;font-weight:500}.meal-source-tab:hover{border-color:var(--gray-400);background:var(--gray-50)}.meal-source-tab.active{border-color:var(--primary);background:rgba(76,175,80,.1);color:var(--primary)}.add-meal-content{display:flex;flex-direction:column;gap:16px}.add-meal-content .form-group{margin-bottom:0}.add-meal-content .form-group label{display:block;margin-bottom:6px;font-weight:500;font-size:.9rem}.add-meal-content .form-group .optional{font-weight:400;color:var(--gray-500)}.recipe-search-wrapper,.label-input-wrapper{position:relative}.recipe-search-wrapper .search-icon,.label-input-wrapper .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-400)}.recipe-search-wrapper .form-control,.label-input-wrapper .form-control{padding-left:36px}.recipe-search-results{list-style:none;padding:0;margin:8px 0 0;border:1px solid var(--gray-200);border-radius:6px;max-height:200px;overflow-y:auto}.recipe-search-results .recipe-result{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;transition:background .1s ease}.recipe-search-results .recipe-result:hover,.recipe-search-results .recipe-result.highlighted{background:var(--gray-200)}.recipe-search-results .recipe-title{font-weight:500}.recipe-search-results .recipe-meta{font-size:.8rem;color:var(--gray-500)}.recipe-search-results .no-results{padding:16px;text-align:center;color:var(--gray-500)}.selected-recipe{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(76,175,80,.1);border:1px solid var(--primary);border-radius:6px;margin-top:8px}.selected-recipe .selected-label{font-size:.8rem;color:var(--gray-500)}.selected-recipe .selected-title{flex:1;font-weight:500;color:var(--primary-dark)}.selected-recipe .btn-clear{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:4px}.selected-recipe .btn-clear:hover{background:var(--gray-200);color:var(--gray-700)}.servings-group{display:flex;align-items:center;justify-content:space-between}.servings-group .servings-adjuster{display:flex;align-items:center;gap:12px}.servings-group .servings-value{font-size:1.125rem;font-weight:600;min-width:24px;text-align:center}.add-meal-modal .modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-200)}.rating-modal{text-align:center;max-width:320px}.rating-modal h3{margin:0 0 4px;font-size:1.125rem}.rating-subtitle{color:var(--gray-500);font-size:.875rem;margin:0 0 20px}.star-rating{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.star-btn{background:none;border:none;color:var(--gray-300);cursor:pointer;padding:4px;transition:transform .1s,color .2s}.star-btn:hover{transform:scale(1.1)}.star-btn.filled{color:#fbbf24}.rating-label{font-size:.875rem;color:var(--gray-600);margin:0 0 16px}.rating-modal .modal-actions{display:flex;gap:8px;justify-content:center}.rating-modal .modal-actions .btn{min-width:100px}.rating-photo-section{margin:16px 0}.add-photo-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:8px;color:var(--gray-600);font:inherit;cursor:pointer;transition:all .2s}.add-photo-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light, #f0fdf4)}.photo-capture-wrapper{max-height:300px;overflow-y:auto}.rating-photo-preview{position:relative;display:inline-block}.rating-photo-preview img{max-width:100%;max-height:150px;border-radius:8px;object-fit:cover}.remove-photo-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--error, #ef4444);color:#fff;border:2px solid white;border-radius:50%;cursor:pointer;padding:0}.completion-modal{text-align:center}.completion-icon{width:80px;height:80px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:var(--success, #4CAF50);color:#fff;border-radius:50%}.completion-subtitle{color:var(--gray-500);margin-bottom:24px}.completion-actions{display:flex;flex-direction:column;gap:12px}.share-meal-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;font-size:1rem}.btn-text{background:none;border:none;color:var(--gray-500);cursor:pointer;font:inherit;padding:8px}.btn-text:hover{color:var(--gray-700)}.remove-photo-btn:hover{background:#dc2626}.meal-plan-archive-page .page-header{flex-direction:column;align-items:flex-start;gap:8px}.meal-plan-archive-page .page-header-left{display:flex;align-items:center;gap:16px}.meal-plan-archive-page .page-header-left h1{margin:0}.archived-plans-list{display:flex;flex-direction:column;gap:12px}.archived-plan-card{padding:16px}.archived-plan-header{display:flex;align-items:center;gap:16px;cursor:pointer}.archived-plan-info{flex:1;min-width:0}.archived-plan-info h3{margin:0;font-size:1rem}.archived-plan-dates{color:var(--gray-500);font-size:.875rem;margin:4px 0 0}.archived-plan-stats{display:flex;gap:12px}.archived-plan-stats .stat{font-size:.75rem;padding:4px 8px;border-radius:var(--radius-sm)}.archived-plan-stats .stat.made{background:rgba(34,197,94,.1);color:var(--success)}.archived-plan-stats .stat.skipped{background:rgba(234,179,8,.1);color:var(--warning)}.archived-plan-stats .stat.total{background:var(--gray-100);color:var(--gray-600)}.archived-plan-actions{display:flex;align-items:center;gap:8px;color:var(--gray-400)}.archived-plan-meals{margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-200);display:flex;flex-direction:column;gap:8px}.archived-meal{display:grid;grid-template-columns:120px 80px 1fr 80px;gap:12px;padding:8px 12px;background:var(--gray-50);border-radius:var(--radius-sm);font-size:.875rem;align-items:center}.archived-meal.made{border-left:3px solid var(--success)}.archived-meal.skipped{border-left:3px solid var(--warning);opacity:.7}.archived-meal.incomplete{border-left:3px solid var(--gray-300);opacity:.6}.archived-meal .meal-date{color:var(--gray-600)}.archived-meal .meal-type{text-transform:capitalize;color:var(--gray-500)}.archived-meal .meal-recipe{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archived-meal .meal-status{text-align:right;font-size:.75rem;color:var(--gray-500)}.page-header-actions{display:flex;align-items:center;gap:8px}.recipe-view-header{margin-bottom:20px}.recipe-header-top{display:flex;align-items:center;gap:8px;margin-bottom:12px}.recipe-header-top h1{font-size:1.5rem;margin:0;flex:1;line-height:1.2}.recipe-view .back-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:4px;cursor:pointer;color:var(--gray-600);border-radius:4px;flex-shrink:0}.recipe-view .back-btn:hover{background:var(--gray-100);color:var(--gray-800)}.recipe-header-actions{display:flex;gap:8px}.recipe-header-actions .btn{display:flex;align-items:center;gap:4px}@media (max-width: 480px){.recipe-header-top h1{font-size:1.25rem}.recipe-header-actions .btn span{display:none}.recipe-header-actions .btn{padding:8px}}.recipe-view .ingredients-list .ingredient-item{display:flex;align-items:center;justify-content:space-between}.recipe-view .ingredient-main{display:flex;gap:3px;flex:1}.recipe-view .ingredient-menu-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--gray-400);opacity:0;transition:opacity .2s}.recipe-view .ingredient-item:hover .ingredient-menu-btn{opacity:1}.recipe-view .ingredient-menu-btn:hover{color:var(--gray-700)}.ingredient-edit-modal{max-width:450px}.ingredient-edit-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ingredient-edit-modal .modal-header h3{margin:0}.ingredient-edit-modal .close-btn{background:none;border:none;cursor:pointer;color:var(--gray-500);padding:4px}.ingredient-edit-modal .close-btn:hover{color:var(--gray-700)}.ingredient-edit-actions{display:flex;gap:12px;margin-bottom:16px}.ingredient-edit-actions .btn{flex:1}.substitutes-list{border-top:1px solid var(--gray-200);padding-top:16px}.substitutes-list h4{margin-bottom:12px;font-size:.875rem;color:var(--gray-700)}.substitute-option{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;background:var(--gray-100);border-radius:var(--radius);margin-bottom:8px}.substitute-info{flex:1}.substitute-info strong{display:block;margin-bottom:4px}.substitute-ratio{display:inline-block;font-size:.75rem;background:var(--gray-200);padding:2px 8px;border-radius:4px;margin-bottom:4px}.substitute-notes{font-size:.8rem;color:var(--gray-600);margin:4px 0 0}.substitute-option .btn{flex-shrink:0;margin-left:12px}.disliked-prompt-modal{max-width:400px;text-align:center}.disliked-prompt-modal h3{margin-bottom:12px}.disliked-prompt-modal p{color:var(--gray-700);margin-bottom:20px}.ai-modify-modal{max-width:600px;max-height:80vh;overflow-y:auto}.ai-modify-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ai-modify-modal .modal-header h3{margin:0}.ai-modify-modal .close-btn{background:none;border:none;cursor:pointer;color:var(--gray-500);padding:4px}.modification-input p{margin-bottom:12px;color:var(--gray-700)}.modification-input textarea{width:100%;padding:12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-family:inherit;font-size:.9rem;resize:vertical;margin-bottom:16px}.modification-input textarea:focus{outline:none;border-color:var(--primary)}.modification-preview{margin-top:16px}.changes-summary{background:var(--gray-100);padding:12px;border-radius:var(--radius);margin-bottom:16px;font-size:.9rem}.modification-preview .preview-section{margin-bottom:16px}.modification-preview .preview-section h4{font-size:.875rem;color:var(--gray-700);margin-bottom:8px;border-bottom:1px solid var(--gray-200);padding-bottom:4px}.preview-ingredients{list-style:none;padding:0}.preview-ingredients li{padding:4px 0;font-size:.9rem}.preview-instructions{padding-left:20px}.preview-instructions li{padding:6px 0;font-size:.9rem;line-height:1.5}.recipe-view .recipe-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.recipe-view .recipe-actions .btn{display:inline-flex;align-items:center;gap:6px}.recipe-view .step-timing{margin-left:3px;font-style:italic;color:#666}.maintenance-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:20px}.maintenance-content{background:var(--white);border-radius:16px;padding:48px;text-align:center;max-width:500px;box-shadow:0 20px 60px #0000004d}.maintenance-icon{color:var(--warning);margin-bottom:24px}.maintenance-content h1{font-size:2rem;color:var(--primary);margin-bottom:8px}.maintenance-content h2{font-size:1.5rem;color:var(--gray-700);margin-bottom:24px;font-weight:400}.maintenance-message{font-size:1.125rem;color:var(--gray-900);margin-bottom:24px;line-height:1.6}.maintenance-footer{font-size:.875rem;color:var(--gray-500)}.maintenance-card{grid-column:span 1}.maintenance-card.maintenance-active{border:2px solid var(--warning);background:#fff8e1}.maintenance-status{margin:12px 0}.status-indicator{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.875rem;font-weight:600}.status-indicator.active{background:var(--warning);color:#fff}.status-indicator.inactive{background:var(--gray-200);color:var(--gray-700)}.maintenance-controls{margin:16px 0}.btn-warning{background:var(--warning);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius);cursor:pointer;font-weight:500}.btn-warning:hover{background:#f57c00}.btn-warning:disabled{opacity:.6;cursor:not-allowed}.maintenance-message-input{margin-top:16px;text-align:left}.maintenance-message-input label{display:block;font-size:.875rem;color:var(--gray-700);margin-bottom:8px}.maintenance-message-input textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);resize:vertical;font-family:inherit;font-size:.875rem}.maintenance-message-input textarea:focus{outline:none;border-color:var(--primary)}.maintenance-message-input .btn-sm{margin-top:8px;font-size:.75rem;padding:6px 12px}.global-banners{position:sticky;top:56px;left:0;right:0;z-index:200}.global-banner{display:flex;align-items:center;justify-content:center;padding:10px 48px 10px 16px;position:relative;min-height:44px}.global-banner.banner-green{background:#e8f5e9;color:#1b5e20;border-bottom:1px solid #a5d6a7}.global-banner.banner-yellow{background:#fff8e1;color:#e65100;border-bottom:1px solid #ffe082}.global-banner.banner-red{background:#ffebee;color:#b71c1c;border-bottom:1px solid #ef9a9a}.banner-content{text-align:center;max-width:800px}.banner-title{margin-right:8px}.banner-message{font-size:.9rem}.banner-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;opacity:.7;color:inherit}.banner-close:hover{opacity:1}.update-prompt{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--gray-900);color:var(--white);border-radius:var(--radius);box-shadow:0 4px 12px #0000004d;z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.update-prompt-content{display:flex;align-items:center;gap:8px;font-size:.875rem}.update-prompt .update-icon{color:var(--primary)}.update-prompt-actions{display:flex;align-items:center;gap:8px}.update-prompt .btn-link{color:var(--gray-400)}.update-prompt .btn-link:hover{color:var(--white)}@media (max-width: 480px){.update-prompt{left:16px;right:16px;bottom:80px;flex-direction:column;gap:12px}.update-prompt-actions{width:100%;justify-content:flex-end}}.notifications-console .console-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--gray-300);padding-bottom:8px}.notifications-console .tab-btn{background:none;border:none;padding:8px 16px;font-size:1rem;cursor:pointer;color:var(--gray-700);border-radius:var(--radius) var(--radius) 0 0;transition:all .2s}.notifications-console .tab-btn:hover{background:var(--gray-100)}.notifications-console .tab-btn.active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:500}.notifications-console .console-section{display:flex;flex-direction:column;gap:24px}.notifications-console .section-header{display:flex;justify-content:space-between;align-items:center}.notifications-console .section-header h3{margin:0}.broadcast-form-card,.banner-form-card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.broadcast-form-card h3,.banner-form-card h4{margin:0 0 16px}.broadcast-form-card .form-group,.banner-form-card .form-group{margin-bottom:16px}.broadcast-form-card label,.banner-form-card label{display:block;font-weight:500;margin-bottom:6px;color:var(--gray-700)}.broadcast-form-card input,.broadcast-form-card textarea,.broadcast-form-card select,.banner-form-card input,.banner-form-card textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-family:inherit;font-size:.9rem}.broadcast-form-card input:focus,.broadcast-form-card textarea:focus,.broadcast-form-card select:focus,.banner-form-card input:focus,.banner-form-card textarea:focus{outline:none;border-color:var(--primary)}.target-options{display:flex;gap:16px;margin-bottom:12px}.radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:400}.radio-label input[type=radio]{width:auto}.household-select{margin-top:8px}.color-options{display:flex;gap:8px}.color-chip{padding:8px 16px;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.color-chip.color-green{background:#e8f5e9;color:#1b5e20}.color-chip.color-yellow{background:#fff8e1;color:#e65100}.color-chip.color-red{background:#ffebee;color:#b71c1c}.color-chip.selected{border-color:currentColor}.banner-form-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.banner-form-card .checkbox-label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.banner-form-card .checkbox-label input{width:auto}.form-actions{display:flex;gap:8px;margin-top:16px}.broadcast-history h3{margin-bottom:16px}.empty-message{color:var(--gray-500);text-align:center;padding:32px;background:var(--white);border-radius:var(--radius)}.target-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500}.target-badge.system{background:#e3f2fd;color:#1565c0}.target-badge.household{background:#e8f5e9;color:#2e7d32}.text-muted{color:var(--gray-500);font-size:.875rem}.color-indicator{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.75rem;font-weight:500;text-transform:capitalize}.color-indicator.color-green{background:#e8f5e9;color:#1b5e20}.color-indicator.color-yellow{background:#fff8e1;color:#e65100}.color-indicator.color-red{background:#ffebee;color:#b71c1c}.schedule-info{font-size:.75rem;color:var(--gray-700)}.banner-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500}.banner-status.status-active{background:#e8f5e9;color:#2e7d32}.banner-status.status-scheduled{background:#e3f2fd;color:#1565c0}.banner-status.status-disabled{background:var(--gray-200);color:var(--gray-700)}.banner-status.status-expired{background:#ffebee;color:#c62828}.action-buttons{display:flex;gap:4px;flex-wrap:wrap}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#388e3c}.banners-table td{vertical-align:top;padding-top:12px;padding-bottom:12px}.stat-big-icon{color:var(--primary);margin:12px 0}.stat-big-icon svg{stroke-width:1.5}.updates-card{position:relative}.updates-card .updates-list{list-style:none;padding:0;margin:0}.updates-card .update-item{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--gray-200)}.updates-card .update-item:last-child{border-bottom:none}.updates-card .update-date{font-size:.75rem;color:var(--gray-500);white-space:nowrap;min-width:45px}.updates-card .update-title{font-size:.875rem;color:var(--gray-900);flex:1}.updates-archive-page{max-width:800px;margin:0 auto}.updates-archive-page .page-header{margin-bottom:24px}.updates-archive-page .page-subtitle{color:var(--gray-500);font-size:.9rem;margin-top:4px}.updates-archive-page .back-link{display:inline-block;color:var(--primary);text-decoration:none;font-size:.875rem;margin-bottom:8px}.updates-archive-page .back-link:hover{text-decoration:underline}.updates-archive-page .updates-list{display:flex;flex-direction:column;gap:20px}.update-article{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.update-article .update-header{margin-bottom:12px}.update-article h2{font-size:1.25rem;color:var(--gray-900);margin-bottom:4px}.update-article .update-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--gray-500)}.update-article .update-meta time{color:var(--gray-700)}.update-article .update-author{color:var(--gray-500)}.update-article .update-content{color:var(--gray-700);line-height:1.6}.update-article .update-content p{margin-bottom:12px}.update-article .update-content p:last-child{margin-bottom:0}.update-article .update-content ul,.update-article .update-content ol{margin:12px 0;padding-left:24px}.update-article .update-content li{margin-bottom:6px}.update-article .update-content li:last-child{margin-bottom:0}.update-article .update-content strong{color:var(--gray-900);font-weight:600}.updates-card .updates-list-full{display:flex;flex-direction:column;gap:16px}.updates-card .update-item-full{padding-bottom:16px;border-bottom:1px solid var(--gray-200)}.updates-card .update-item-full:last-child{padding-bottom:0;border-bottom:none}.updates-card .update-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.updates-card .update-item-header h4{font-size:.95rem;font-weight:600;color:var(--gray-900);margin:0;flex:1}.updates-card .update-item-header .update-date{font-size:.75rem;color:var(--gray-500);white-space:nowrap}.updates-card .update-content-preview{font-size:.85rem;color:var(--gray-600);line-height:1.5}.updates-card .update-content-preview p{margin-bottom:8px}.updates-card .update-content-preview p:last-child{margin-bottom:0}.updates-card .update-content-preview ul,.updates-card .update-content-preview ol{margin:8px 0;padding-left:20px}.updates-card .update-content-preview li{margin-bottom:4px}.updates-card .update-content-preview li:last-child{margin-bottom:0}.updates-card .update-content-preview strong{color:var(--gray-800);font-weight:600}.updates-card .update-section-header{font-size:.85rem;font-weight:600;color:var(--gray-800);margin:12px 0 6px}.updates-card .update-section-header:first-child{margin-top:0}.updates-card h4.update-section-header{font-size:.9rem}.updates-card h5.update-section-header{font-size:.85rem}.updates-card h6.update-section-header{font-size:.8rem;color:var(--gray-700)}.updates-card .update-time{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.updates-card .update-relative-time{font-size:.8rem;font-weight:500;color:var(--primary)}.updates-card .update-date{font-size:.7rem;color:var(--gray-400)}.updates-card .update-content-wrapper{position:relative;overflow:hidden;transition:max-height .3s ease}.updates-card .update-content-wrapper.collapsed{max-height:200px}.updates-card .update-content-wrapper.expanded{max-height:none}.updates-card .update-content-fade{position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,.9) 60%,rgba(255,255,255,1) 100%);pointer-events:none}.updates-card .update-read-more{display:flex;align-items:center;gap:4px;margin-top:8px;padding:0;background:none;border:none;color:var(--primary);font-size:.85rem;font-weight:500;cursor:pointer;transition:color .2s}.updates-card .update-read-more:hover{color:var(--primary-dark)}.updates-card .update-read-more svg{transition:transform .2s}.load-more-container{display:flex;justify-content:center;margin-top:24px}.updates-management-page .update-form-card{margin-bottom:24px}.updates-management-page .update-form{display:flex;flex-direction:column;gap:16px}.updates-management-page .update-form .form-group{display:flex;flex-direction:column;gap:6px}.updates-management-page .update-form label{font-weight:500;font-size:.9rem}.updates-management-page .update-form input[type=text],.updates-management-page .update-form textarea{padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem;font-family:inherit}.updates-management-page .update-form textarea{resize:vertical;min-height:100px}.updates-management-page .update-form input:focus,.updates-management-page .update-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #4caf501a}.updates-management-page .char-count{text-align:right;font-size:.75rem;color:var(--gray-500)}.updates-management-page .checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.updates-management-page .checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.updates-management-page .checkbox-group small{display:block;color:var(--gray-500);margin-left:26px;margin-top:4px}.updates-management-page .form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.updates-management-page .updates-list{display:flex;flex-direction:column;gap:16px}.updates-management-page .update-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.updates-management-page .update-card.draft{opacity:.8;border-left:4px solid var(--warning)}.updates-management-page .update-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.updates-management-page .update-card h3{font-size:1rem;margin-bottom:4px}.updates-management-page .update-card .update-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--gray-500)}.updates-management-page .update-card .status-badge{padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:500;text-transform:uppercase}.updates-management-page .update-card .status-badge.published{background:rgba(76,175,80,.1);color:var(--success)}.updates-management-page .update-card .status-badge.draft{background:rgba(255,152,0,.1);color:var(--warning)}.updates-management-page .update-actions{display:flex;gap:8px;flex-shrink:0}.updates-management-page .update-content-preview{font-size:.875rem;color:var(--gray-700);line-height:1.5;white-space:pre-wrap}@media (max-width: 600px){.updates-management-page .update-card-header{flex-direction:column}.updates-management-page .update-actions{width:100%;justify-content:flex-end}.updates-management-page .form-actions{flex-direction:column}.updates-management-page .form-actions .btn{width:100%}}.admin-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table .actions-cell{display:flex;gap:8px;flex-wrap:nowrap}.user-cards{display:flex;flex-direction:column;gap:12px}.user-card{padding:16px}.user-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.user-card-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.user-card-name{font-weight:600;color:var(--gray-800)}.user-card-email{font-size:.875rem;color:var(--gray-500);word-break:break-all}.user-card-badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.user-card-meta{font-size:.75rem;color:var(--gray-400);margin-bottom:12px}.user-card-actions{display:flex;gap:8px}.user-card-actions .btn{flex:1}.role-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:capitalize}.role-badge.admin{background:rgba(103,58,183,.1);color:#673ab7}.role-badge.user{background:rgba(33,150,243,.1);color:#2196f3}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.status-badge.active{background:rgba(76,175,80,.1);color:var(--success)}.status-badge.inactive{background:rgba(244,67,54,.1);color:var(--danger)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--gray-500);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--gray-700)}.modal-body{margin-bottom:20px}.modal-footer{display:flex;gap:12px;justify-content:flex-end}.input-disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.form-hint{display:block;margin-top:4px;font-size:.75rem;color:var(--gray-500)}.desktop-only{display:block}.mobile-only{display:none}@media (max-width: 768px){.desktop-only{display:none}.mobile-only{display:block}.modal{margin:16px;max-height:calc(100vh - 32px);overflow-y:auto}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}.dev-banner{position:fixed;top:0;left:0;right:0;height:28px;background:repeating-linear-gradient(45deg,#ff6b00,#ff6b00 10px,#ff8533 10px,#ff8533 20px);display:flex;align-items:center;justify-content:center;z-index:9999;box-shadow:0 2px 4px #0003}.dev-banner-text{background:#000;color:#fff;padding:2px 12px;border-radius:4px;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.app:has(.dev-banner) .navbar{top:28px}.app:has(.dev-banner) .app-layout{margin-top:84px}.app:has(.dev-banner) .global-banners{top:84px}.app:has(.dev-banner) .left-rail{top:84px;height:calc(100vh - 84px)}.app:has(.dev-banner) .toast-container{top:48px}.app:has(.dev-banner) .main-content{padding-top:98px}.app:has(.dev-banner) .auth-container{min-height:calc(100vh - 28px);padding-top:28px}.app:has(.auth-container) .global-banners{position:fixed;top:0}.app:has(.dev-banner):has(.auth-container) .global-banners{top:28px}.app:has(.global-banners):has(.auth-container) .auth-container{min-height:calc(100vh - 44px);padding-top:64px}.app:has(.dev-banner):has(.global-banners):has(.auth-container) .auth-container{min-height:calc(100vh - 72px);padding-top:92px}@media (max-width: 767px){.main-content{padding:70px 16px 80px}.dashboard-grid,.recipes-grid,.meal-plan-grid{gap:16px}.card,.dashboard-card{padding:16px}.btn-group,.form-actions{gap:12px}.page-header{margin-bottom:16px}.mobile-nav button{min-height:44px;min-width:44px}}
