@font-face{font-family:Rubik;src:url(/fonts/Rubik-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Rubik;src:url(/fonts/Rubik-Italic-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#e6e9ef;--surface:#eff1f5;--surface-raised:#ccd0da;--surface-hover:#dce0e8;--text:#4c4f69;--text-muted:#5c5f77;--text-faint:#8c8fa1;--border:#dce0e8;--border-input:#acb0be;--primary:#1e66f5;--primary-hover:#209fb5;--primary-subtle:#e0e8fd;--error:#d20f39;--error-bg:#fde8ed;--error-border:#f5b8c4;--remove-hover:#d20f39;--remove-hover-bg:#fde8ed;--success:#40a02b;--shadow:#acb0be66}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#1e1e2e;--surface:#313244;--surface-raised:#45475a;--surface-hover:#313244;--text:#cdd6f4;--text-muted:#bac2de;--text-faint:#7f849c;--border:#45475a;--border-input:#585b70;--primary:#89b4fa;--primary-hover:#b4befe;--primary-subtle:#252840;--error:#f38ba8;--error-bg:#2d1a2a;--error-border:#4d2535;--remove-hover:#f38ba8;--remove-hover-bg:#2d1a2a;--success:#a6e3a1;--shadow:#11111b80}}[data-theme=dark]{--bg:#1e1e2e;--surface:#313244;--surface-raised:#45475a;--surface-hover:#313244;--text:#cdd6f4;--text-muted:#bac2de;--text-faint:#7f849c;--border:#45475a;--border-input:#585b70;--primary:#89b4fa;--primary-hover:#b4befe;--primary-subtle:#252840;--error:#f38ba8;--error-bg:#2d1a2a;--error-border:#4d2535;--remove-hover:#f38ba8;--remove-hover-bg:#2d1a2a;--success:#a6e3a1;--shadow:#11111b80}body{background:var(--bg);color:var(--text);padding:2rem;font-family:Rubik,sans-serif;font-weight:400}.container{max-width:720px;margin:0 auto}.container--wide{max-width:1400px}h1{margin-bottom:1.5rem;font-size:1.75rem;font-weight:700}.table-scroll{-webkit-overflow-scrolling:touch;box-shadow:0 1px 4px var(--shadow);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;background:var(--surface);table-layout:fixed;width:100%}table th:first-child,table td:first-child{width:130px}th{background:var(--surface-raised);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.75rem 1rem;font-size:.85rem;font-weight:600}td{border-top:1px solid var(--border);vertical-align:middle;padding:.5rem .75rem}.col-header-edit{align-items:center;gap:.25rem;display:flex}.col-header-edit input{width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:.2rem .4rem;transition:border-color .15s,background .15s}.col-header-edit input:hover{border-color:var(--border-input);background:var(--surface-hover)}.col-header-edit input:focus{border-color:var(--primary);background:var(--surface);outline:none}.week-range{color:var(--text-muted);margin-left:.4rem;font-size:1rem;font-style:italic;font-weight:300}.day-label{flex-direction:column;gap:.1rem;padding:.4rem .5rem;display:flex}.day-name{font-weight:500}.day-date{color:var(--text-muted);font-size:.8rem;font-weight:400}input[type=text]{width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;padding:.4rem .5rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,background .15s}input[type=text]:hover{border-color:var(--border);background:var(--surface-hover)}input[type=text]:focus{border-color:var(--primary);background:var(--surface);outline:none}.remove-btn{cursor:pointer;color:var(--text-faint);background:0 0;border:none;border-radius:4px;padding:.25rem .5rem;font-size:.85rem;transition:color .15s,background .15s}.remove-btn:hover{color:var(--remove-hover);background:var(--remove-hover-bg)}.add-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:1rem;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;transition:background .15s}.add-btn:hover{background:var(--primary-hover)}.save-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.6rem .75rem;font-size:.875rem;display:flex}.save-error button{color:var(--error);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:.85rem}.auth-container{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;display:flex}.auth-subtitle{color:var(--text-muted);font-size:.95rem}.auth-card{background:var(--surface);width:min(300px,100%);box-shadow:0 1px 4px var(--shadow);border-radius:10px;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.auth-btn{cursor:pointer;border:1px solid var(--border-input);background:var(--surface);color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:.6rem;width:100%;padding:.65rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:opacity .15s;display:flex}.auth-btn:hover:not(:disabled){opacity:.85}.auth-btn:disabled{opacity:.6;cursor:default}.auth-form{flex-direction:column;gap:.6rem;display:flex}.auth-form input{border:1px solid var(--border-input);background:var(--surface);color:var(--text);border-radius:6px;padding:.6rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}.auth-form input:focus{border-color:var(--primary);outline:none}.submit-btn{background:var(--primary);color:#fff;border-color:var(--primary);margin-top:.25rem}.auth-error{color:var(--error);font-size:.85rem}.auth-message{color:var(--success);font-size:.85rem}.auth-switch{text-align:center;color:var(--text-muted);font-size:.85rem}.auth-switch button{color:var(--primary);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.header h1{margin-bottom:0}.header-actions{gap:.5rem;display:flex}.signout-btn{border:1px solid var(--border-input);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .85rem;font-family:inherit;font-size:.85rem;transition:background .15s;display:inline-flex}.signout-btn:hover{background:var(--surface-raised)}.cell-content{align-items:center;gap:.25rem;display:flex}.cell-content input[type=text]{flex:1;min-width:0}.recipe-link{min-width:0;color:var(--primary);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex:1;padding:.4rem .5rem;font-size:.95rem;text-decoration:none;overflow:hidden}.recipe-link:hover{text-decoration:underline}.recipe-title-input{flex:1;min-width:0}.autocomplete-wrapper{flex:1;min-width:0;position:relative}.autocomplete-wrapper input[type=text]{width:100%}.autocomplete-dropdown{background:var(--surface);border:1px solid var(--border-input);box-shadow:0 4px 12px var(--shadow);z-index:10;border-radius:6px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:hidden}.autocomplete-dropdown--up{box-shadow:0 -4px 12px var(--shadow);top:auto;bottom:calc(100% + 2px)}.autocomplete-item{cursor:pointer;color:var(--text);align-items:center;gap:.25rem;padding:.45rem .65rem;font-size:.9rem;display:flex}.autocomplete-item+.autocomplete-item{border-top:1px solid var(--border)}.autocomplete-item:hover,.autocomplete-item--active{background:var(--primary-subtle);color:var(--primary)}.autocomplete-item-text{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.autocomplete-item-link-indicator{color:var(--text-faint);margin-right:.15rem;font-size:.8rem}.autocomplete-item-remove{visibility:hidden;cursor:pointer;color:var(--text-faint);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:.1rem .3rem;font-size:.75rem;line-height:1}.autocomplete-item:hover .autocomplete-item-remove{visibility:visible}.autocomplete-item-remove:hover{color:var(--remove-hover);background:var(--remove-hover-bg)}.tab-bar{border-bottom:2px solid var(--border);gap:0;margin-bottom:1.25rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;transition:color .15s;position:relative;bottom:-2px}.tab-btn:hover{color:var(--text)}.tab-btn--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.heart-btn{cursor:pointer;color:var(--text-faint);opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:.2rem .3rem;font-size:.95rem;line-height:1;transition:color .15s,opacity .15s}.cell-content:hover .heart-btn,.cell-content:focus-within .heart-btn,.heart-btn--active{opacity:1}.heart-btn--active,.heart-btn:hover{color:#e05}.liked-empty{color:var(--text-muted);text-align:center;padding:2rem 0;font-size:.95rem}.liked-list{background:var(--surface);box-shadow:0 1px 4px var(--shadow);border-radius:8px;overflow:hidden}.liked-item{border-top:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.liked-item:first-child{border-top:none}.liked-item-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.95rem;overflow:hidden}.liked-item-name--link{color:var(--primary);text-decoration:none}.liked-item-name--link:hover{text-decoration:underline}.settings-card{background:var(--surface);box-shadow:0 1px 4px var(--shadow);border-radius:8px;margin-bottom:1rem;padding:1.25rem 1.5rem}.settings-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:1rem;font-size:.75rem;font-weight:600}.settings-row{justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 0;display:flex}.settings-row+.settings-row{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.75rem}.settings-row--indent{padding-left:1.6rem}.settings-label{color:var(--text);font-size:.95rem}.settings-label--muted{color:var(--text-muted);font-size:.9rem}.settings-toggle{cursor:pointer;align-items:center;gap:.6rem;width:100%;display:flex}.settings-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.theme-options{gap:.25rem;display:flex}.theme-btn{border:1px solid var(--border-input);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:5px;padding:.3rem .75rem;font-family:inherit;font-size:.85rem;transition:background .15s,color .15s,border-color .15s}.theme-btn:hover:not(.theme-btn--active){background:var(--surface-raised)}.theme-btn--active{background:var(--primary);border-color:var(--primary);color:#fff}.settings-empty{color:var(--text-muted);padding:.25rem 0;font-size:.9rem}.settings-about{color:var(--text-muted);font-size:.9rem;line-height:1.5}.settings-about a{color:var(--primary);text-decoration:none}.settings-about a:hover{text-decoration:underline}.settings-version{color:var(--text-muted);opacity:.6;margin-top:.5rem;font-size:.8rem}.settings-history-list{border-top:1px solid var(--border);max-height:280px;margin-top:.5rem;overflow-y:auto}.settings-history-item{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.settings-history-item:last-child{border-bottom:none}.settings-history-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.settings-select{border:1px solid var(--border-input);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:.35rem .6rem;font-family:inherit;font-size:.9rem}.settings-select:focus{border-color:var(--primary);outline:none}.clear-menu-btn{color:var(--error);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.9rem}.clear-menu-btn:hover{text-decoration:underline}.clear-confirm{flex-direction:column;gap:.75rem;width:100%;display:flex}.clear-confirm-warning{color:var(--error);font-size:.875rem}.clear-confirm-actions{gap:.5rem;display:flex}.clear-confirm-btn{background:var(--error);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.4rem .85rem;font-family:inherit;font-size:.85rem;transition:opacity .15s}.clear-confirm-btn:hover:not(:disabled){opacity:.85}.clear-confirm-btn:disabled{opacity:.6;cursor:default}.loading{min-height:100vh;color:var(--text-muted);justify-content:center;align-items:center;font-size:.95rem;display:flex}@media (hover:none){.heart-btn{opacity:1}.autocomplete-item-remove{visibility:visible}}@media (width<=768px){body{padding:1.25rem}.container{max-width:100%}}@media (width<=480px){body{padding:.75rem}h1{font-size:1.4rem}.header{flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:1rem}.header h1{flex:0 0 100%}.header-actions{justify-content:flex-end;width:100%}th{padding:.6rem .75rem}td{padding:.4rem .5rem}.settings-card{padding:1rem 1.1rem}.settings-row{flex-wrap:wrap;gap:.5rem}.theme-options{justify-content:flex-end;width:100%}.clear-confirm-actions{flex-wrap:wrap}.tab-btn{padding:.5rem .75rem;font-size:.85rem}}.ingredients-list{flex-direction:column;gap:1rem;display:flex}.ingredients-section{background:var(--surface);box-shadow:0 1px 4px var(--shadow);border-radius:8px;padding:1.1rem 1.25rem}.ingredients-title{color:var(--primary);margin-bottom:.75rem;font-size:.95rem;font-weight:600;text-decoration:none;display:block}.ingredients-title:hover{text-decoration:underline}.ingredients-items{flex-direction:column;gap:.4rem;list-style:none;display:flex}.ingredients-items li{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.15rem 0;font-size:.9rem;display:flex}.ingredients-items li:last-child{border-bottom:none}.ingredients-items li span{flex:1;min-width:0}.ingredient-check-btn{border:1.5px solid var(--border-input);cursor:pointer;color:#0000;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;transition:background .15s,border-color .15s,color .15s;display:flex}.ingredient-check-btn:hover{border-color:var(--primary);color:var(--primary)}.ingredients-item--checked .ingredient-check-btn{background:var(--primary);border-color:var(--primary);color:#fff}.ingredients-item--checked span{color:var(--text-faint);text-decoration:line-through}
