:root{--primary-color: #4a90a4;--primary-hover: #3d7a8c;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--text-primary: #1a1a2e;--text-secondary: #6c757d;--border-color: #dee2e6;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root{--primary-color: #5ba3b8;--primary-hover: #6cb4c9;--bg-primary: #1a1a2e;--bg-secondary: #252542;--text-primary: #e8e8e8;--text-secondary: #a0a0a0;--border-color: #3d3d5c}}*{box-sizing:border-box}body{margin:0;background-color:var(--bg-primary);color:var(--text-primary);min-width:320px}h1,h2,h3,h4,h5,h6{line-height:1.3}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-color);outline-offset:1px}::selection{background:var(--primary-color);color:#fff}.app{max-width:1400px;margin:0 auto;padding:1rem;min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;padding:1.5rem 0;border-bottom:1px solid var(--border-color);margin-bottom:1rem}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.user-info{display:flex;align-items:center;gap:.5rem}.user-avatar{width:32px;height:32px;border-radius:50%}.user-name{font-size:.9rem;color:var(--text-secondary)}.app-header h1{margin:0;font-size:2rem;color:var(--text-primary)}.subtitle{margin:.5rem 0 0;color:var(--text-secondary)}.invite-toggle{margin-top:.5rem}.invite-code-display{background:var(--bg-secondary);padding:1rem;border-radius:8px;margin-top:.75rem;display:inline-block}.invite-code-display p{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary)}.invite-code{font-size:1.5rem;font-weight:700;letter-spacing:.2em;color:var(--primary-color);background:var(--bg-primary);padding:.5rem 1rem;border-radius:4px}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem;background:var(--bg-primary)}.login-card{background:var(--bg-secondary);padding:3rem;border-radius:16px;text-align:center;max-width:400px;width:100%;border:1px solid var(--border-color)}.login-card h1{margin:0 0 .5rem;font-size:2rem;color:var(--text-primary)}.login-subtitle{margin:0 0 2rem;color:var(--text-secondary)}.login-error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.btn-google{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1.5rem;background:#fff;border:1px solid #ddd;border-radius:8px;font-size:1rem;cursor:pointer;transition:box-shadow .2s;color:#333}.btn-google:hover{box-shadow:0 2px 8px #00000026}.google-icon{width:20px;height:20px}.login-footer{margin:2rem 0 0;font-size:.85rem;color:var(--text-secondary)}.family-manager{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem;background:var(--bg-primary)}.family-card{background:var(--bg-secondary);padding:2rem;border-radius:16px;max-width:500px;width:100%;border:1px solid var(--border-color)}.family-header{text-align:center;margin-bottom:2rem}.family-header h2{margin:0 0 .5rem;color:var(--text-primary)}.family-header p{margin:0;color:var(--text-secondary)}.family-error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.family-options{display:flex;flex-direction:column;gap:1rem}.btn-family-option{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;text-align:left;transition:border-color .2s}.btn-family-option:hover{border-color:var(--primary-color)}.option-icon{font-size:1.5rem;width:40px;text-align:center}.option-text{display:flex;flex-direction:column;gap:.25rem}.option-text strong{color:var(--text-primary);font-size:1.1rem}.option-text small{color:var(--text-secondary);font-size:.9rem}.family-form{margin-top:1rem}.family-form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.family-form-actions .btn-secondary{flex:1}.family-form-actions .btn-primary{flex:2}.family-footer{text-align:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-secondary);border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;border:1px solid var(--border-color)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.modal-close:hover{color:var(--text-primary)}.invite-code-section{padding:1.5rem;text-align:center;background:var(--bg-primary)}.invite-code-section p{margin:0 0 .75rem;color:var(--text-secondary)}.invite-code-large{font-size:2rem;font-weight:700;letter-spacing:.25em;color:var(--primary-color);background:var(--bg-secondary);padding:.75rem 1.5rem;border-radius:8px;display:inline-block}.invite-email-section{padding:1.5rem;border-bottom:1px solid var(--border-color)}.invite-email-section label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.invite-email-row{display:flex;gap:.5rem}.invite-email-row input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary)}.invite-email-row input:focus{outline:none;border-color:var(--primary-color)}.invite-actions{padding:1rem 1.5rem;display:flex;gap:.75rem;border-bottom:1px solid var(--border-color)}.invite-actions .btn-secondary{flex:1}.invite-preview{padding:1rem 1.5rem}.preview-label{margin:0 0 .5rem;font-size:.85rem;color:var(--text-secondary)}.preview-text{margin:0;padding:1rem;background:var(--bg-primary);border-radius:8px;font-size:.85rem;color:var(--text-secondary);white-space:pre-wrap;font-family:inherit;line-height:1.5;max-height:200px;overflow-y:auto}.paprika-import-modal{max-width:600px;max-height:80vh;display:flex;flex-direction:column}.paprika-import-body{padding:1.5rem;overflow-y:auto;flex:1}.import-instructions{margin-bottom:1.5rem}.import-instructions p{margin:0 0 .5rem}.import-instructions .hint{font-size:.9rem;color:var(--text-secondary)}.import-instructions code{background:var(--bg-primary);padding:.2rem .4rem;border-radius:4px;font-size:.85rem}.file-select-section{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.file-count{color:var(--text-secondary);font-size:.9rem}.import-error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.parsed-recipes-header{margin-bottom:1rem}.parsed-recipes-header h4{margin:0 0 .25rem}.parsed-recipes-header .hint{font-size:.85rem;color:var(--text-secondary);margin:0}.parsed-recipes-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem}.parsed-recipe-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.parsed-recipe-item:last-child{border-bottom:none}.recipe-info{flex:1;min-width:0}.recipe-name{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-meta{font-size:.8rem;color:var(--text-secondary)}.category-select{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary)}.btn-remove-small{background:none;border:none;font-size:1.25rem;color:var(--text-secondary);cursor:pointer;padding:.25rem;line-height:1}.btn-remove-small:hover{color:#dc3545}.import-actions{display:flex;gap:.75rem;justify-content:flex-end}.import-result{text-align:center;padding:2rem 0}.result-icon{font-size:3rem;color:var(--primary-color);margin-bottom:1rem}.import-result h4{margin:0 0 .5rem}.failed-count{color:#dc3545;margin:0 0 1rem}.tab-header-actions{display:flex;gap:.75rem}.loading{display:flex;justify-content:center;align-items:center;min-height:50vh;font-size:1.2rem;color:var(--text-secondary)}.auth-error{display:flex;justify-content:center;align-items:center;min-height:50vh;font-size:1.2rem;color:#dc3545;text-align:center;padding:2rem}.app-nav{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap}.nav-btn{padding:.75rem 1.5rem;border:2px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;font-size:1rem;border-radius:8px;transition:all .2s}.nav-btn:hover{border-color:var(--primary-color)}.nav-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.app-content{flex:1;padding:1rem 0}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.tab-header h2{margin:0}.recipe-form{background:var(--bg-secondary);padding:1.5rem;border-radius:12px;margin-bottom:2rem;border:1px solid var(--border-color)}.recipe-form h3{margin-top:0;margin-bottom:1.5rem}.entry-mode-toggle{display:flex;gap:0;margin-bottom:1.5rem;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.mode-btn{flex:1;padding:.75rem 1rem;border:none;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;font-size:.95rem;transition:all .2s}.mode-btn:not(:last-child){border-right:1px solid var(--border-color)}.mode-btn:hover{background:var(--bg-secondary)}.mode-btn.active{background:var(--primary-color);color:#fff}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.form-group textarea{resize:vertical;min-height:80px}.ingredients-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem}.ingredient-row{display:grid;grid-template-columns:80px 80px 1fr auto;gap:.5rem;align-items:center}.ingredient-row input{width:100%}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.url-input-group{display:flex;gap:.75rem}.url-input-group input{flex:1}.url-input-group .btn-primary{white-space:nowrap}.form-error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;border:1px solid #f5c6cb}.extracted-ingredients{margin:0;padding-left:1.5rem;max-height:200px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem 1rem 1rem 2rem}.extracted-ingredients li{margin-bottom:.25rem;color:var(--text-secondary)}.extracted-directions{margin:0;padding-left:1.5rem;max-height:200px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem 1rem 1rem 2rem}.extracted-directions li{margin-bottom:.5rem;color:var(--text-secondary);line-height:1.5}.extract-hint{color:var(--text-secondary);font-style:italic;text-align:center;margin:1rem 0 0}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.recipe-list{margin-top:1rem}.recipe-filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;background:var(--bg-secondary);color:var(--text-primary)}.recipe-filters select{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;background:var(--bg-secondary);color:var(--text-primary)}.recipe-category-group{margin-bottom:2rem}.recipe-category-group h3{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recipe-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;transition:box-shadow .2s}.recipe-card:hover{box-shadow:0 4px 12px #00000026}.recipe-card h4{margin:0 0 .25rem;font-size:1.1rem}.star-rating{display:flex;gap:.1rem;margin-bottom:.5rem}.star-btn{background:none;border:none;cursor:pointer;font-size:1.25rem;padding:0;line-height:1;transition:transform .1s}.star-btn:hover{transform:scale(1.2)}.star-filled{color:#f0a500}.star-empty{color:var(--border-color)}.star-rating-readonly{margin-bottom:.25rem}.star-display{font-size:1rem}.recipe-link{display:inline-block;margin-bottom:.75rem;color:var(--primary-color);text-decoration:none}.recipe-link:hover{text-decoration:underline}.recipe-ingredients-preview{margin-bottom:.75rem;font-size:.9rem}.recipe-ingredients-preview ul{margin:.25rem 0 0 1.25rem;padding:0}.recipe-ingredients-preview li{color:var(--text-secondary)}.recipe-ingredients-preview .more-items{font-style:italic}.recipe-directions-preview{margin-bottom:.75rem;font-size:.9rem;color:var(--text-secondary)}.recipe-notes{font-size:.9rem;color:var(--text-secondary);font-style:italic;margin-bottom:.75rem}.recipe-card.expanded{grid-column:1 / -1;max-width:800px}.recipe-section{margin-bottom:1rem}.recipe-section strong{display:block;margin-bottom:.5rem}.recipe-ingredients-full,.recipe-directions-full{margin:0;padding-left:1.5rem;color:var(--text-secondary)}.recipe-ingredients-full li,.recipe-directions-full li{margin-bottom:.5rem;line-height:1.5}.recipe-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.no-recipes{text-align:center;color:var(--text-secondary);padding:3rem}.week-planner{overflow-x:auto}.week-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.week-display{text-align:center}.week-display h3{margin:0 0 .25rem}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}.day-column{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1rem}.day-header{text-align:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.day-header strong{display:block;font-size:1rem}.day-date{font-size:.85rem;color:var(--text-secondary)}.meal-selector{margin-bottom:1rem}.meal-selector label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.25rem;color:var(--text-secondary)}.meal-selector select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.searchable-select{position:relative}.searchable-select-trigger{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;text-align:left}.searchable-select-trigger:hover{border-color:var(--primary-color)}.select-placeholder{color:var(--text-secondary)}.select-arrow{font-size:.6rem;color:var(--text-secondary);flex-shrink:0;margin-left:.25rem}.searchable-select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;margin-top:2px;box-shadow:0 4px 12px #00000026}.searchable-select-search{width:100%;padding:.5rem;border:none;border-bottom:1px solid var(--border-color);font-size:.85rem;background:var(--bg-primary);color:var(--text-primary);border-radius:6px 6px 0 0;box-sizing:border-box}.searchable-select-search:focus{outline:none;background:var(--bg-secondary)}.searchable-select-options{max-height:180px;overflow-y:auto}.searchable-select-option{display:block;width:100%;padding:.4rem .5rem;border:none;background:none;color:var(--text-primary);font-size:.85rem;cursor:pointer;text-align:left}.searchable-select-option:hover{background:var(--bg-primary)}.option-selected{background:var(--bg-primary);font-weight:500;color:var(--primary-color)}.option-clear,.option-custom{color:var(--text-secondary);font-style:italic}.searchable-select-empty{padding:.5rem;font-size:.85rem;color:var(--text-secondary);text-align:center}.custom-input-group{display:flex;gap:.25rem}.custom-meal-input{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.btn-cancel-custom{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:.25rem .5rem;cursor:pointer;font-size:1rem;color:var(--text-secondary)}.btn-cancel-custom:hover{background:var(--border-color)}.planner-actions{text-align:center}.shopping-list{max-width:800px;margin:0 auto}.shopping-list h3{margin-bottom:1.5rem}.no-plan{text-align:center;color:var(--text-secondary);padding:2rem;background:var(--bg-secondary);border-radius:12px}.recipes-used,.ingredients-section,.todoist-section{background:var(--bg-secondary);padding:1.25rem;border-radius:12px;margin-bottom:1.5rem;border:1px solid var(--border-color)}.recipes-used h4,.ingredients-section h4,.todoist-section h4{margin-top:0;margin-bottom:1rem}.recipes-used ul,.ingredient-list{margin:0;padding-left:1.5rem}.recipes-used li,.ingredient-list li{margin-bottom:.5rem}.ingredient-list li .amounts{color:var(--text-secondary)}.custom-badge{font-size:.75rem;color:var(--text-secondary);font-style:italic}.todoist-preview{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:1rem;overflow-x:auto}.todoist-preview pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.9rem}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--primary-color)}.btn-danger{background:#dc3545;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-danger:hover{background:#c82333}.btn-sm{padding:.4rem .8rem;font-size:.875rem}.btn-remove{background:none;border:1px solid #dc3545;color:#dc3545;padding:.4rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-remove:hover{background:#dc3545;color:#fff}.app-footer{text-align:center;padding:1.5rem 0;margin-top:2rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.9rem}.ai-planner-section{margin-bottom:1.5rem}.btn-ai-planner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-ai-planner:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.ai-icon{font-size:1.2rem}.ai-planner-input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.ai-planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.ai-planner-header h4{margin:0;display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.btn-close-ai{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.btn-close-ai:hover{color:var(--text-primary)}.ai-planner-hint{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary)}.ai-examples{margin:0 0 1rem;padding-left:1.25rem;font-size:.85rem;color:var(--text-secondary)}.ai-examples li{margin-bottom:.25rem;font-style:italic}.ai-error{background:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.ai-success{background:#d4edda;color:#155724;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.ai-prompt-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;resize:vertical;min-height:80px;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.ai-prompt-input:focus{outline:none;border-color:#667eea}.ai-planner-actions{display:flex;gap:.75rem;margin-top:1rem;justify-content:flex-end}.ai-warning{margin:1rem 0 0;font-size:.85rem;color:var(--text-secondary);font-style:italic}.community-recipes{margin-top:1rem}.community-hint{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.95rem}.community-family-badge{display:inline-block;font-size:.8rem;color:var(--text-secondary);background:var(--bg-primary);padding:.2rem .6rem;border-radius:12px;margin-bottom:.5rem}.community-error{text-align:center;padding:3rem;color:var(--text-secondary)}.community-error p{margin:0 0 1rem}.btn-added{background:#d4edda;color:#155724;border:1px solid #c3e6cb;padding:.4rem .8rem;border-radius:8px;font-size:.875rem;cursor:default}.popular-meals-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;margin-bottom:2rem}.popular-meals-section h3{margin:0 0 1rem}.popular-meals-list{display:flex;flex-direction:column;gap:.5rem}.popular-meal-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-primary);border-radius:8px}.popular-rank{font-weight:700;font-size:.9rem;color:var(--primary-color);min-width:2rem;text-align:center}.popular-meal-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.popular-meal-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.popular-meal-meta{font-size:.8rem;color:var(--text-secondary)}.cooking-analytics{margin-top:1rem}.analytics-filter{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.analytics-filter label{font-weight:500;color:var(--text-secondary)}.analytics-filter select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;background:var(--bg-secondary);color:var(--text-primary)}.analytics-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;text-align:center;display:flex;flex-direction:column;gap:.25rem}.stat-value{font-size:2rem;font-weight:700;color:var(--primary-color)}.stat-label{font-size:.85rem;color:var(--text-secondary)}.analytics-category{margin-bottom:2rem}.analytics-category h3{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.analytics-hint{color:var(--text-secondary);font-size:.9rem;margin:0 0 1rem}.analytics-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:12px;overflow:hidden;border:1px solid var(--border-color)}.analytics-table thead{background:var(--bg-primary)}.analytics-table th{padding:.75rem 1rem;text-align:left;font-size:.85rem;color:var(--text-secondary);font-weight:500}.analytics-table td{padding:.75rem 1rem;border-top:1px solid var(--border-color)}.rank-cell{width:2.5rem;font-weight:700;color:var(--text-secondary)}.count-cell{width:10rem}.count-bar-container{display:flex;align-items:center;gap:.5rem}.count-bar{display:inline-block;height:1.25rem;min-width:4px;background:var(--primary-color);border-radius:4px;opacity:.7}.count-number{font-weight:500;font-size:.9rem;min-width:1.5rem}.date-cell{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.never-cooked-list{display:flex;flex-wrap:wrap;gap:.5rem}.never-cooked-chip{background:var(--bg-secondary);border:1px solid var(--border-color);padding:.4rem .8rem;border-radius:20px;font-size:.85rem;color:var(--text-secondary)}.csv-import-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.csv-import-modal{background:var(--bg-secondary);border-radius:16px;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;border:1px solid var(--border-color)}.csv-import-preview-modal{max-width:700px}.csv-import-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.csv-import-header h3{margin:0;color:var(--text-primary)}.csv-import-body{padding:1.5rem;overflow-y:auto;flex:1}.csv-import-instructions p{margin:0 0 .75rem;color:var(--text-primary)}.csv-format-table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:.85rem;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.csv-format-table th{background:var(--bg-primary);padding:.5rem .75rem;text-align:left;font-weight:500;color:var(--text-secondary);font-size:.8rem}.csv-format-table td{padding:.4rem .75rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem}.optional-label{font-weight:400;font-style:italic;opacity:.7}.csv-import-hint{font-size:.85rem;color:var(--text-secondary);margin:0}.csv-import-actions{display:flex;gap:.75rem;margin-top:1.5rem}.csv-file-label{cursor:pointer;display:inline-flex;align-items:center}.csv-import-summary{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.match-stat{font-size:.8rem;padding:.25rem .6rem;border-radius:12px;font-weight:500}.match-exact{background:#d4edda;color:#155724}.match-fuzzy{background:#fff3cd;color:#856404}.match-unmatched{background:#f8d7da;color:#721c24}.match-excluded{background:#e2e3e5;color:#383d41}.match-total{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.csv-import-mappings{padding:0!important;overflow-y:auto;max-height:50vh}.mapping-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color)}.mapping-row:last-child{border-bottom:none}.mapping-exact{background:#d4edda26}.mapping-fuzzy{background:#fff3cd26}.mapping-unmatched{background:#f8d7da26}.mapping-excluded{background:#e2e3e526;opacity:.6}.mapping-csv-name{display:flex;align-items:center;gap:.5rem;flex:1;min-width:180px}.match-indicator{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;font-size:.8rem;font-weight:700;flex-shrink:0}.match-indicator-exact{background:#d4edda;color:#155724}.match-indicator-fuzzy{background:#fff3cd;color:#856404}.match-indicator-unmatched{background:#f8d7da;color:#721c24}.match-indicator-excluded{background:#e2e3e5;color:#383d41}.mapping-name{font-weight:500;color:var(--text-primary)}.mapping-name-excluded{text-decoration:line-through;opacity:.6}.mapping-exact-row{display:flex;align-items:center;gap:.75rem}.btn-exclude-small,.btn-include-small{background:none;border:1px solid var(--border-color);padding:.2rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;color:var(--text-secondary);white-space:nowrap}.btn-exclude-small:hover{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.btn-include-small:hover{background:#d4edda;border-color:#c3e6cb;color:#155724}.mapping-count{font-size:.8rem;color:var(--text-secondary)}.mapping-action{flex:1;min-width:200px}.mapping-matched-to{font-size:.9rem;color:var(--text-secondary)}.mapping-select-group select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary)}.csv-import-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color)}.csv-import-done{text-align:center}.import-done-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:1024px){.week-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}}@media(max-width:768px){.week-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.ingredient-row{grid-template-columns:1fr 1fr;gap:.5rem}.ingredient-row .ingredient-name,.ingredient-row .btn-remove{grid-column:1 / -1}}@media(max-width:480px){.week-grid{grid-template-columns:1fr}.app-header h1{font-size:1.5rem}.nav-btn{padding:.5rem 1rem;font-size:.9rem}}
