@import"https://fonts.googleapis.com/css2?family=Gabarito:wght@400;500;600;700&family=Figtree:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";:root{--color-bg: #faf6f0;--color-bg-end: #f5efe5;--color-surface: #fffefa;--color-text: #3d3d3d;--color-text-muted: #8a8a8a;--color-border: #e8e0d5;--color-primary: #8fae7e;--color-primary-hover: #7a9c6a;--color-danger: #c47070;--color-danger-hover: #b05858;--color-success: #8fae7e;--radius: 16px;--shadow: 0 2px 12px rgba(143, 174, 126, .08), 0 4px 24px rgba(0, 0, 0, .03);--font-body: "Figtree", -apple-system, sans-serif;--font-heading: "Gabarito", -apple-system, sans-serif;--kr-font-family: "Figtree", -apple-system, sans-serif;--kr-color-text: #3d3d3d;--kr-color-muted: #8a8a8a;--kr-color-accent: #8fae7e;--kr-color-surface: #fffefa;--kr-color-border: rgba(0, 0, 0, .06);--kr-color-quantity: #3d3d3d;--kr-color-temperature: rgba(212, 160, 160, .2);--kr-color-temperature-text: #a86060;--kr-color-link: #7a9c6a;--kr-card-radius: 16px;--kr-card-padding: 1.75rem}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{font-family:var(--font-body);background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-end) 100%);background-attachment:fixed;color:var(--color-text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.3}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 2rem;display:flex;align-items:center;gap:2rem}.logo{text-decoration:none;color:inherit}.logo h1{font-size:1.25rem;font-weight:600;margin:0}.btn-check{color:var(--color-success);border:none;background:none;padding:.25rem}.btn-check:hover{background:#f0fdf4}.nav{display:flex;gap:1rem}.nav a{color:var(--color-text-muted);text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius)}.nav a:hover{background:var(--color-bg)}.nav a.active{color:var(--color-primary);background:#eff6ff}.header-right{margin-left:auto;display:flex;align-items:center;gap:1rem}.inbox-link{color:var(--color-text-muted);text-decoration:none;font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius);background:var(--color-bg);border:1px dashed var(--color-border)}.inbox-link:hover{background:var(--color-border)}.inbox-link.active{color:var(--color-primary);border-color:var(--color-primary);border-style:solid}.main{flex:1;display:flex;flex-direction:column;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.page-header h2{flex:1}.header-actions{display:flex;gap:.5rem}button{font-family:inherit;font-size:.875rem;color:inherit;padding:.5rem 1rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:all .15s}button:hover{background:var(--color-bg)}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.4;cursor:default}.btn-danger{color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover{background:#fef2f2}.btn-small{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.75rem}.btn-icon{padding:.25rem .5rem;font-size:1.125rem;line-height:1;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer}.btn-icon:hover{color:var(--color-text);background:transparent}.btn-icon-badged{position:relative}.btn-icon-badge{position:absolute;bottom:1px;right:0;display:flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;background:var(--color-danger, #dc2626);color:#fff;font-size:9px;font-weight:700;line-height:1;pointer-events:none}.btn-icon--confirming{color:var(--color-danger, #dc2626)}.btn-icon--confirming:hover{color:var(--color-danger-hover, #b91c1c)}.recipes-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;position:relative;z-index:2}.status-tabs{display:inline-flex;background:var(--color-border);border-radius:var(--radius);padding:3px;gap:2px}.status-tabs button{border:none;background:transparent;padding:.4rem 1rem;color:var(--color-text-muted);border-radius:calc(var(--radius) - 2px);font-weight:500;font-size:.8125rem}.status-tabs button:hover{color:var(--color-text);background:transparent}.status-tabs button.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000001a}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.tabs button{border:none;background:none;padding:.5rem 1rem;color:var(--color-text-muted)}.tabs button:hover{color:var(--color-text);background:none}.tabs button.active{color:var(--color-primary);border-bottom:2px solid var(--color-primary);margin-bottom:-.5rem;padding-bottom:calc(.5rem - 2px)}.recipe-list,.plan-list{list-style:none}.recipe-item,.plan-item{padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.5rem}.recipe-item-row{display:flex;align-items:center;gap:.5rem}.recipe-title,.plan-title{flex:1;min-width:40%;color:var(--color-text);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.recipe-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.recipe-title:hover,.plan-title:hover{color:var(--color-primary)}.recipe-subtitle{color:var(--color-text-muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.125rem}.recipe-item-tags{display:flex;gap:.2rem;flex-shrink:1;min-width:0;overflow:hidden}.tag-inline{font-size:.6rem;padding:.05rem .35rem;cursor:default;line-height:1.3}.recipe-actions{display:flex;flex-shrink:0;gap:.5rem;margin-left:auto}.plan-dates{color:var(--color-text-muted);font-size:.875rem}.calendar-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.btn-groceries{display:flex;align-items:center;justify-content:center;padding:.4rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;transition:color .15s}.btn-groceries:hover{color:var(--color-primary)}.calendar-nav{display:inline-flex;align-items:center;gap:2px;background:var(--color-border);border-radius:var(--radius);padding:3px;position:relative}.calendar-nav button{display:flex;align-items:center;justify-content:center;border:none;background:transparent;padding:.4rem .75rem;color:var(--color-text-muted);border-radius:calc(var(--radius) - 2px);font-weight:500;font-size:.875rem;min-width:2.25rem}.calendar-nav button:hover{color:var(--color-text);background:var(--color-surface)}.calendar-date-label{position:relative;padding:.4rem 1rem;min-width:13rem;text-align:center;color:var(--color-text);font-weight:600;cursor:pointer;white-space:nowrap;border-radius:calc(var(--radius) - 2px)}.calendar-date-label:hover{background:var(--color-surface)}.calendar-date-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer;-webkit-appearance:none}.btn-autofill{display:flex;align-items:center;justify-content:center;padding:.4rem .5rem;line-height:1;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.btn-autofill:hover{background:var(--color-bg)}.day-card.day-today .day-header{background:#dbeafe}.day-card.day-past{opacity:.7}.day-card.day-selecting{outline:2px solid var(--color-primary);outline-offset:-1px}.day-card.day-selecting:not(.day-today) .day-header{background:#eff6ff}.day-header{cursor:pointer;-webkit-user-select:none;user-select:none}.day-card.swap-source .day-header{background:var(--color-primary);color:#fff}.day-card.swap-source.day-today .day-header{background:var(--color-primary)}.swap-icon{color:inherit}.day-card.swap-target .day-header{position:relative}.swap-hover-icon{position:absolute;opacity:0;color:var(--color-primary);transition:opacity .15s}.day-card.swap-target .day-header:hover .day-name,.day-card.swap-target .day-header:hover .day-date{opacity:0}.day-card.swap-target .day-header:hover .swap-hover-icon{opacity:1}.day-card.swap-target .day-header:hover{background:#8fae7e1f}.calendar-body{display:flex;flex-direction:column;gap:1.5rem}@media(min-width:768px){.calendar-body{flex-direction:row;align-items:flex-start}.calendar-body .week-grid{flex:3;min-width:0}.calendar-picker-column{flex:2;min-width:0}.calendar-picker{position:sticky;top:1rem}}.calendar-picker{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--radius);padding:1rem}.calendar-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-picker-header h3{margin:0;font-size:1rem}.btn-close{padding:.25rem .5rem;font-size:1.25rem;line-height:1;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted)}.btn-close:hover{color:var(--color-text)}.empty-state{text-align:center;padding:3rem;color:var(--color-text-muted);flex:1;display:flex;flex-direction:column}.empty-state .hint{font-size:.875rem;margin-top:.5rem}.empty-recipes-signpost{position:relative;flex:1;color:var(--color-text-muted)}.signpost-item{display:flex;flex-direction:column;max-width:220px}.signpost-item:nth-child(1){position:absolute;top:35%;left:10%;align-items:flex-start;text-align:left}.signpost-item:nth-child(2){position:absolute;top:0;right:15%;align-items:flex-end;text-align:right}.signpost-arrow{width:160px;height:110px}.signpost-text{font-size:.95rem;font-weight:500;margin-top:.25rem;text-align:center}.signpost-hint{font-size:.8rem;opacity:.7;margin-top:.25rem;text-align:center}.chalk-arrow-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.chalk-arrow-above-sidebar{z-index:101}@media(max-width:768px){.empty-recipes-signpost{flex-direction:column;align-items:center;gap:2rem;padding:2rem 1rem}.signpost-item:nth-child(1),.signpost-item:nth-child(2){position:relative;top:auto;bottom:auto;left:auto;right:auto;text-align:center;align-items:center}}.loading{text-align:center;padding:2rem;color:var(--color-text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:50}.modal{background:var(--color-surface);border-radius:var(--radius);padding:1.5rem;max-width:600px;width:100%;max-height:80vh;overflow-y:auto}.modal h3{margin-bottom:1rem}.modal textarea{width:100%;font-family:monospace;font-size:.875rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.recipe-picker{max-width:500px}.freeform-input{display:flex;gap:.5rem;margin-bottom:1rem}.freeform-input input{flex:1;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem}.freeform-input input:focus{outline:none;border-color:var(--color-primary)}.picker-filters{display:flex;gap:.5rem;margin-bottom:1rem}.picker-filters button{padding:.25rem .75rem}.picker-filters button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.picker-list{list-style:none;max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.picker-list li button{width:100%;text-align:left;border:none;border-bottom:1px solid var(--color-border);border-radius:0;display:flex;justify-content:space-between}.picker-list li:last-child button{border-bottom:none}.status-badge{font-size:.75rem;color:var(--color-text-muted)}.recipe-combobox{display:flex;flex-direction:column;gap:.5rem}.combobox-input{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem}.combobox-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1a}.combobox-list{list-style:none;height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);margin:0;padding:0}.combobox-option{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid var(--color-border)}.combobox-option:last-child{border-bottom:none}.combobox-option:hover,.combobox-option.highlighted{background:var(--color-bg)}.combobox-option.highlighted{background:#eff6ff}.option-note{background:#fefce8;font-style:italic}.option-note.highlighted{background:#fef08a}.option-note.disabled{opacity:.5;cursor:default;pointer-events:none}.option-note .note-label{color:var(--color-text-muted)}.week-grid{display:flex;flex-direction:column;gap:.5rem;max-width:600px}.day-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:row;align-items:stretch}.day-header{background:var(--color-bg);padding:.75rem;display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:80px;border-right:1px solid var(--color-border)}.day-name{font-weight:600;font-size:1rem}.day-date{font-size:.75rem;color:var(--color-text-muted)}.day-content{padding:.5rem .75rem;flex:1;display:flex;flex-direction:column;gap:.375rem;justify-content:center}.day-empty{display:flex;flex-direction:row;gap:.5rem;align-items:center}.day-recipe{display:flex;flex-direction:row;align-items:center;gap:.25rem}.day-recipe .recipe-name{cursor:pointer;font-weight:500;font-size:.9rem;flex:1;text-decoration:none;color:inherit}.day-recipe .recipe-name:hover{color:var(--color-primary)}.btn-reorder,.day-recipe .btn-remove{padding:.25rem;font-size:1rem;line-height:1;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);opacity:.5}.btn-reorder:hover,.day-recipe .btn-remove:hover{opacity:1;color:var(--color-text)}.day-recipe .btn-remove:hover{color:var(--color-danger)}.day-actions{display:flex;gap:.5rem;align-items:center}.day-skip{display:flex;flex-direction:row;align-items:center;gap:.5rem}.skip-note{color:var(--color-text-muted);font-style:italic;font-size:.875rem}.day-note{display:flex;flex-direction:row;align-items:center;gap:.25rem}.day-note .note-text{color:var(--color-text-muted);font-style:italic;font-size:.9rem;flex:1}.day-note .btn-remove{padding:.25rem;font-size:1rem;line-height:1;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);opacity:.5}.day-note .btn-remove:hover{opacity:1;color:var(--color-danger)}.recipe-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.recipe-toolbar .recipe-tags{margin-bottom:0}.recipe-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.shared-recipe-save{display:inline-flex;align-items:center;gap:.45rem}.btn-icon-danger{color:var(--color-danger)}.btn-icon-danger:hover{color:var(--color-danger-hover)}.edit-mode{display:flex;flex-direction:column;gap:1rem}.edit-mode textarea{font-family:monospace;font-size:.875rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical}.recipe-render--editing{outline:2px dashed var(--color-primary);outline-offset:.5rem;border-radius:1rem}.edit-banner{text-align:center;font-size:.8rem;color:var(--color-text-muted);padding:.5rem 0 0}.edit-actions{display:flex;gap:.5rem;justify-content:flex-end;padding:.5rem 0 0;padding:.5rem;margin-top:.5rem}.edit-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:.5rem 0;margin-top:.5rem}.edit-footer .edit-banner{flex:1;text-align:left;padding:0}.edit-footer .edit-actions{margin-top:0;padding:0}.recipes-page{position:relative;display:flex;flex-direction:column;min-height:100%}.recipes-page.drag-over:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#2563eb1a;border:2px dashed var(--color-primary);border-radius:var(--radius);pointer-events:none}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2563ebe6;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;pointer-events:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:2rem;max-width:400px;width:100%;text-align:center}.login-card h1{margin-bottom:.5rem}.login-card p{color:var(--color-text-muted);margin-bottom:1.5rem}.login-card form{display:flex;flex-direction:column;gap:1rem}.login-card input{padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem}.login-card .message{margin-top:1rem;color:var(--color-success)}.login-card .message-error{color:var(--color-danger)}.login-hint{margin-top:.5rem;font-size:.85rem;opacity:.6}.auto-fill-modal{max-width:400px}.modal-hint{color:var(--color-text-muted);margin-bottom:1.5rem}.auto-fill-inputs{display:flex;flex-direction:column;gap:1rem}.auto-fill-inputs label{display:flex;align-items:center;gap:.75rem}.auto-fill-inputs label span:first-child{min-width:100px;font-weight:500}.auto-fill-inputs input[type=number]{width:60px;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;text-align:center}.auto-fill-inputs .available{color:var(--color-text-muted);font-size:.875rem}.warning{background:#fef3c7;color:#92400e;padding:.75rem;border-radius:var(--radius);font-size:.875rem;margin-top:1rem}.import-modal{max-width:500px}.import-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.import-tabs button{padding:.5rem 1rem;border:none;background:none;cursor:pointer;color:var(--color-text-muted)}.import-tabs button.active{color:var(--color-primary);font-weight:500}.import-tabs .tab-url{order:1}.import-tabs .tab-photo{order:2}.import-tabs .tab-markdown{order:3}.import-tabs .tab-text{order:4}@media(max-width:640px){.import-tabs .tab-photo{order:1}.import-tabs .tab-url{order:2}.import-tabs .tab-markdown{order:3}.import-tabs .tab-text{order:4}}.import-camera,.import-text,.import-url{min-height:200px;display:flex;flex-direction:column;gap:1rem}.import-camera{align-items:center;justify-content:center}.photo-source-buttons{display:flex;gap:1rem;flex-wrap:wrap;width:100%;justify-content:center}.photo-source-btn{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:1.25rem 1.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:.8125rem;transition:border-color .15s,background .15s;flex:1 1 120px;max-width:140px}.photo-source-btn:hover{border-color:var(--color-primary);background:var(--color-bg-hover, var(--color-bg))}.import-text textarea{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:inherit;font-size:.875rem;resize:vertical}.import-url p{color:var(--color-text-muted);margin:0}.import-url input[type=url]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:inherit;font-size:1rem}.import-url input[type=url]:focus{outline:none;border-color:var(--color-primary)}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem;width:100%}.image-preview{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden}.image-preview img{width:100%;height:100%;object-fit:cover}.add-photo-btn{display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--color-border);background:none;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.add-photo-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.image-preview .remove-image{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#0009;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.import-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.import-preview textarea{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:monospace;font-size:.8rem;resize:vertical}.tag-combobox{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;min-height:2rem;position:relative}.tag-combobox-add{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:999px;border:1px dashed var(--color-border);color:var(--color-text-muted)}.tag-combobox-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.tag-combobox-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001a;min-width:10rem;z-index:10;overflow:hidden}.tag-combobox-input-row{padding:.375rem}.tag-combobox-input-row input{width:100%;padding:.25rem .375rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.8rem;box-sizing:border-box}.tag-combobox-list{list-style:none;margin:0;padding:0;max-height:12rem;overflow-y:auto;border-top:1px solid var(--color-border)}.tag-combobox-option{display:block;width:100%;padding:.375rem .75rem;font-size:.8rem;cursor:pointer;box-sizing:border-box}.tag-combobox-option:hover,.tag-combobox-option.highlighted{background:var(--color-bg)}.tag-combobox-new{font-style:italic;color:var(--color-text-muted)}.tag-color-dot{width:8px;height:8px;border-radius:50%;cursor:pointer;flex-shrink:0}.tag-color-dot:hover{box-shadow:0 0 0 2px #0003}.tag-style-picker{position:absolute;top:100%;left:0;z-index:20;display:flex;flex-wrap:wrap;gap:4px;padding:8px;min-width:200px;max-width:320px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow);margin-top:4px}.tag-style-option{all:unset;cursor:pointer;border-radius:999px}.tag-style-option:hover{box-shadow:0 0 0 2px #00000026;border-radius:999px}.tag-style-option.active{box-shadow:0 0 0 2px var(--color-text);border-radius:999px}.tag-style-preview{pointer-events:none;font-size:.65rem;padding:.15rem .4rem;white-space:nowrap}.tag-style-reset{width:100%;padding:2px 4px;font-size:.65rem;color:var(--color-text-muted);background:none;border:none;cursor:pointer;text-align:center}.tag-style-reset:hover{color:var(--color-text)}.tag-has-dot{position:relative}.import-error{color:var(--color-danger);font-size:.875rem;margin-top:.5rem}.search-bar{display:flex;gap:.5rem;margin-bottom:1rem;position:relative;z-index:2}.search-bar input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem}.search-bar input:focus{outline:none;border-color:var(--color-primary)}.clear-search{padding:.5rem .75rem}.recipe-tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border:1.5px solid transparent;border-radius:999px;font-size:.75rem}.tag-remove{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;border:none;background:transparent;color:currentColor;opacity:.6;font-size:.75rem;cursor:pointer;border-radius:50%}.tag-remove:hover{opacity:1;background:#0000001a}.tag-filter{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;position:relative;z-index:2}.tag-filter .tag{cursor:pointer}.tag-filter .tag-archive{border-radius:var(--radius);background:#e5e7eb;color:#6b7280;margin-left:auto}.tag-filter .tag-archive:hover{background:#d1d5db;color:#374151}@media(max-width:640px){:root{--kr-card-padding: 1rem;--kr-card-radius: 0;--kr-section-gap: 1.5rem;--kr-header-gap: .5rem}.recipe-render{margin:0 -1rem}.calendar-page{margin:0 -1rem;padding:0;overflow-x:hidden}.calendar-header{padding:0 1rem;justify-content:space-between}.calendar-nav{min-width:0}.calendar-nav button{padding:.4rem .35rem;min-width:unset}.calendar-date-label{padding:.4rem .5rem}.calendar-body .week-grid{gap:0}.calendar-body .day-card{border-radius:0;border-left:none;border-right:none;margin-top:-1px}.calendar-picker{border-radius:0;border-left:none;border-right:none}.day-card.day-selecting{outline:none}.header{padding:.75rem 1rem;flex-wrap:wrap;gap:.75rem}.nav{order:3;width:100%;justify-content:flex-start;position:relative;z-index:3}.nav a{padding:.5rem .75rem;font-size:.875rem;position:relative;background:var(--color-surface);z-index:3}.header-right{margin-left:auto}.main{padding:1rem}.recipe-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.recipe-toolbar-actions{width:100%;justify-content:space-between}.status-tabs button{padding:.35rem .65rem;font-size:.75rem}.recipe-actions{gap:0}.modal-backdrop{padding:0;align-items:flex-end}.modal{border-radius:var(--radius) var(--radius) 0 0;max-height:90vh;width:100%;max-width:100%;overflow-x:hidden}.import-tabs{flex-wrap:wrap}.modal textarea{min-height:200px}.search-bar{flex-direction:column}.search-bar input{width:100%}.recipe-tags{gap:.375rem}.login-card{padding:1.5rem}.auto-fill-inputs label{flex-wrap:wrap}.auto-fill-inputs label span:first-child{min-width:auto;width:100%;margin-bottom:.25rem}.picker-list{max-height:40vh}.recipe-render--editing{outline-offset:0;border-radius:0}.edit-footer{position:sticky;bottom:0;background:var(--color-bg);border-top:1px solid var(--color-border);padding:.5rem 1rem;margin:0 -1rem;z-index:10;flex-direction:column;gap:.25rem}.edit-footer .edit-banner{text-align:center;font-size:.75rem}.edit-footer .edit-actions{width:100%}.edit-footer .edit-actions button{flex:1}.recipe-textarea--fullpage{border-radius:0;margin:0 -1rem;width:calc(100% + 2rem);min-height:50vh}.line-numbered-textarea.recipe-textarea--fullpage{border-radius:0;margin:0 -1rem;width:calc(100% + 2rem)}.line-numbered-textarea.recipe-textarea--fullpage .line-numbered-textarea__textarea{min-height:50vh}}.import-inbox,.import-inbox-detail{max-width:1200px}.import-inbox .page-header{flex-direction:column;align-items:flex-start}.import-inbox .hint{color:var(--color-text-muted);font-size:.875rem;margin-top:.25rem}.import-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:1rem}.import-tab{padding:.5rem 1rem;font-size:.875rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.import-tab:hover{color:var(--color-text)}.import-tab.import-tab--active{color:var(--color-primary);font-weight:500}.import-list{list-style:none}.import-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.5rem}.import-info{flex:1;display:flex;flex-direction:column;gap:.25rem}a.import-title{font-weight:500;color:inherit;text-decoration:none}a.import-title:hover{color:var(--color-primary)}.import-list-header{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.75rem;color:var(--color-text-muted)}.import-bulk-toolbar{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;margin-bottom:.5rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);font-size:.875rem;color:#1d4ed8}.import-meta{font-size:.75rem;color:var(--color-text-muted)}.import-meta a{color:var(--color-primary)}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:var(--color-danger);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;color:var(--color-danger);text-decoration:underline;cursor:pointer;padding:0}.detail-header{margin-bottom:1rem}.detail-header h2{font-size:1.25rem;line-height:1.3}.detail-toolbar-meta{font-size:.8rem;color:var(--color-text-muted);line-height:1.5}.detail-toolbar-meta a{color:var(--color-primary)}.detail-toolbar-actions{display:flex;gap:.25rem;justify-content:flex-end}.recipe-edited-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;margin-bottom:1rem;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius);font-size:.875rem;color:#92400e}.recipe-edited-actions{display:flex;gap:.5rem;flex-shrink:0}.recipe-edited-banner button{font-size:.8rem;padding:.25rem .75rem;background:none;border:1px solid #fde68a;border-radius:var(--radius);color:#92400e;cursor:pointer}.recipe-edited-banner button:hover{background:#fef3c7}.recipe-edited-banner button.btn-primary{background:#92400e;color:#fffbeb;border-color:#92400e}.recipe-edited-banner button.btn-primary:hover{background:#78350f}.doctor-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;margin-bottom:1rem;background:#f0f7ed;border:1px solid #c2d9b8;border-radius:var(--radius);font-size:.875rem;color:#2d5016}.doctor-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.doctor-banner button{font-size:.8rem;padding:.25rem .75rem;background:none;border:1px solid #c2d9b8;border-radius:var(--radius);color:#2d5016;cursor:pointer}.doctor-banner button:hover{background:#e0eddb}.doctor-banner button.btn-primary{background:#2d5016;color:#f0f7ed;border-color:#2d5016}.doctor-banner button.btn-primary:hover{background:#1e3a0e}.detail-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--color-bg);border-radius:var(--radius)}.meta-item{font-size:.875rem}.meta-item a{color:var(--color-primary)}.source-images{display:flex;gap:.5rem;margin-bottom:1rem;overflow-x:auto}.source-image{max-height:200px;border-radius:var(--radius)}.artifact-section{margin-bottom:1rem}.artifact-section summary{cursor:pointer;color:var(--color-text-muted);font-size:.85rem;font-weight:500;padding:.25rem 0}.artifact-size{margin-left:.5em;font-weight:400;opacity:.6}.artifact-content{font-family:SF Mono,Fira Code,monospace;font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) / 2);padding:.75rem 1rem;max-height:400px;overflow:auto;margin-top:.5rem}.sxs-editor{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media(max-width:768px){.sxs-editor{grid-template-columns:1fr}}.sxs-panel{display:flex;flex-direction:column;gap:.5rem}.sxs-panel h3{font-size:.875rem;color:var(--color-text-muted)}.recipe-textarea{width:100%;min-height:400px;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-family:monospace;font-size:.8rem;resize:vertical}.recipe-textarea--fullpage{min-height:60vh;background:var(--color-surface);color:var(--color-text)}.recipe-textarea--fullpage:focus{outline:2px solid var(--color-primary);outline-offset:-2px;border-color:var(--color-primary)}.line-numbered-textarea{display:flex;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.line-numbered-textarea__gutter{padding:.75rem 0;background:var(--color-bg);color:var(--color-text-muted);font-family:monospace;font-size:.8rem;line-height:1.4;text-align:right;-webkit-user-select:none;user-select:none;overflow:hidden;border-right:1px solid var(--color-border);min-width:3rem}.line-numbered-textarea__gutter>div{padding:0 .5rem;box-sizing:border-box}.line-numbered-textarea__textarea{flex:1;min-height:60vh;padding:.75rem;border:none;border-radius:0;font-family:monospace;font-size:.8rem;line-height:1.4;resize:vertical;background:var(--color-surface);color:var(--color-text);outline:none}.line-numbered-textarea__mirror{position:absolute;visibility:hidden;pointer-events:none;left:-9999px}.line-numbered-textarea:focus-within{outline:2px solid var(--color-primary);outline-offset:-2px;border-color:var(--color-primary)}.line-numbered-textarea__gutter>div.line-highlight{background:#fef3c7;color:#92400e;font-weight:600}@media(prefers-color-scheme:dark){.line-numbered-textarea__gutter>div.line-highlight{background:#78350f;color:#fef3c7}}.recipe-preview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;min-height:400px;overflow-y:auto}.diagnostics{margin-bottom:.75rem}.diagnostic{display:flex;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;font-family:monospace;border-radius:var(--radius);margin-bottom:.25rem}.diagnostic.error{background:#fef2f2;color:#991b1b}.diagnostic.warning{background:#fffbeb;color:#92400e}.diagnostic-location{flex-shrink:0;opacity:.7}.diagnostic-code{flex-shrink:0;font-weight:600}.diagnostic-message{flex:1}.detail-actions{display:flex;gap:.5rem;justify-content:flex-end}.discard-modal{max-width:400px}.discard-modal p{color:var(--color-text-muted);margin-bottom:1rem}.update-checkbox{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#eff6ff;border-radius:var(--radius);margin-bottom:1rem;cursor:pointer}.update-checkbox input{width:1rem;height:1rem}.form-field{margin-bottom:1rem}.form-field label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--color-text)}.form-field input[type=text]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem}.form-field input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1a}.admin-link{color:var(--color-text-muted);display:flex;align-items:center;padding:.375rem;border-radius:var(--radius)}.admin-link:hover{color:var(--color-text);background:var(--color-bg)}.admin-link.active{color:var(--color-primary)}.sharing-link{color:var(--color-text-muted);display:flex;align-items:center;padding:.375rem;border-radius:var(--radius)}.sharing-link:hover{color:var(--color-text);background:var(--color-bg)}.sharing-link.active{color:var(--color-primary)}.settings-link{color:var(--color-text-muted);display:flex;align-items:center;padding:.375rem;border-radius:var(--radius)}.settings-link:hover{color:var(--color-text);background:var(--color-bg)}.settings-link.active{color:var(--color-primary)}.help-link{color:var(--color-text-muted);display:flex;align-items:center;padding:.375rem;border-radius:var(--radius)}.help-link:hover{color:var(--color-text);background:var(--color-bg)}.help-link.active{color:var(--color-primary)}.settings-page{max-width:600px}.settings-page h2{margin-bottom:2rem}.settings-section{margin-bottom:2rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.settings-section h3{font-size:1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.settings-field{margin-bottom:1rem}.settings-field:last-child{margin-bottom:0}.settings-profile-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.settings-profile-row>.settings-field{flex:1 1 10rem;margin-bottom:0}.settings-profile-toggles{display:flex;gap:1rem;align-items:flex-end}.settings-profile-toggles .settings-field{margin-bottom:0}.settings-field label{display:block;font-size:.8rem;font-weight:500;color:var(--color-text-muted);margin-bottom:.375rem}.settings-hint{color:var(--color-text-muted);margin-bottom:.75rem}.settings-hint-small{font-size:.8rem;color:var(--color-text-muted);margin-top:.25rem}.settings-label-row{display:flex;align-items:center;justify-content:space-between}.settings-reset-warning{font-size:.85rem;color:var(--color-danger);margin-bottom:.75rem;line-height:1.4}.settings-reset-confirm{padding:.75rem;border:1px solid var(--color-danger);border-radius:var(--border-radius)}.settings-invite-panel{margin-top:.25rem}.btn-danger-outline{background:none;border:1px solid var(--color-danger, #dc3545);color:var(--color-danger, #dc3545);padding:.4rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-danger-outline:hover{background:var(--color-danger, #dc3545);color:#fff}.settings-value{display:flex;align-items:center;gap:.75rem}.inline-edit{display:flex;align-items:center;gap:.5rem}.inline-edit input{flex:1;padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem}.click-to-edit{cursor:pointer;border-radius:var(--radius);padding:.25rem .375rem;margin:-.25rem -.375rem;display:inline-flex;align-items:center;gap:.375rem}.click-to-edit:hover{background:var(--color-bg)}.edit-hint-icon{opacity:.35}.click-to-edit:hover .edit-hint-icon{opacity:.6}.invite-link-row{display:flex;align-items:center;gap:.375rem}.invite-link-text{font-size:.8rem;color:var(--color-text-muted);word-break:break-all}.toggle-group{display:inline-flex;padding:.15rem;border-radius:.5rem;background:#0000000a}.toggle-btn{width:2.25rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:.375rem;background:transparent;color:var(--color-text-muted);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease;line-height:1;flex-shrink:0}.toggle-sickle{font-size:2em;font-weight:900;line-height:0;margin:-.5em}.toggle-btn:hover{color:var(--color-text)}.toggle-btn--active{background:var(--color-surface, #fff);color:var(--color-text);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f}.toggle-btn--active:hover{background:var(--color-surface, #fff)}.members-list{list-style:none}.member-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.member-row:last-child{border-bottom:none}.member-name{display:flex;align-items:center;gap:.5rem}.admin-badge,.you-badge{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .375rem;border-radius:999px}.admin-badge{background:#dbeafe;color:var(--color-primary)}.you-badge{background:var(--color-bg);color:var(--color-text-muted)}.btn-logout{display:flex;align-items:center;gap:.5rem;color:var(--color-danger);border-color:var(--color-danger)}.btn-logout:hover{background:#fef2f2}.help-page{max-width:640px}.help-section{margin-bottom:1.5rem}.help-section p{line-height:1.6;color:var(--color-text)}.help-intro p+p{margin-top:.75rem}.help-section h3{font-size:1rem;margin-bottom:.5rem}.help-section h4{font-size:.9rem;margin-top:1.25rem;margin-bottom:.375rem;color:var(--color-text-muted)}.help-section h4 code{font-size:.85rem;color:var(--color-primary);background:none;padding:0}.help-section code{font-size:.85em;background:var(--color-bg);padding:.125rem .375rem;border-radius:3px}.help-section a{color:var(--color-primary)}.help-code{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.8rem;line-height:1.5;overflow-x:auto;white-space:pre;margin:.5rem 0}.help-kniferoll{padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.help-kniferoll h3{padding-bottom:.5rem;border-bottom:1px solid var(--color-border);margin-bottom:.75rem}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--color-primary);text-decoration:underline;cursor:pointer}.link-button:hover{color:var(--color-primary-hover, var(--color-primary))}.invite-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.invite-popover{position:fixed;z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #0000001a;padding:.75rem;width:max-content;max-width:min(24rem,calc(100vw - 2rem))}.invite-popover-url{display:flex;align-items:center;gap:.375rem}.invite-popover-url code{font-size:.8rem;color:var(--color-text-muted);word-break:break-all}.invite-popover-hint{margin-top:.5rem;font-size:.8rem;color:var(--color-text-muted);line-height:1.4}.invite-popover-hint a{color:var(--color-primary)}.admin-nav{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.admin-nav a{color:var(--color-text-muted);text-decoration:none;padding:.375rem .75rem;border-radius:var(--radius);font-size:.9rem}.admin-nav a:hover{color:var(--color-text);background:var(--color-bg)}.admin-nav a.active{color:var(--color-primary);font-weight:600}.admin-pantry{width:100%;max-width:900px}.admin-pantry-stats{color:var(--color-text-muted);font-size:.85rem;margin-left:.75rem}.admin-pantry-toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.admin-pantry-toolbar input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-surface);color:var(--color-text)}.admin-pantry-toolbar input:focus{outline:none;border-color:var(--color-primary)}.pantry-add-category-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;margin-top:.25rem;border:1px dashed var(--color-border);border-radius:8px;background:none;color:var(--color-text-muted);font-size:.85rem;cursor:pointer}.pantry-add-category-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pantry-add-category-row{display:flex;align-items:center;gap:.25rem;margin-top:.25rem}.pantry-add-category-row input{flex:1;padding:.4rem .65rem;border:1px solid var(--color-primary);border-radius:8px;font-size:.85rem;background:var(--color-surface);color:var(--color-text)}.pantry-add-category-row input:focus{outline:none}.pantry-chip-empty{color:var(--color-text-muted);font-size:.85rem;padding:.25rem 0}.pantry-chip-empty .btn-link{color:var(--color-primary);background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.admin-pantry-init{padding:2rem 0}.admin-pantry-init p{color:var(--color-text-muted);margin-bottom:1rem}.admin-pantry-footer{padding:1.5rem 0 0;border-top:1px solid var(--color-border);margin-top:1rem}.admin-pantry-confirm{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.admin-table td{padding:.625rem .75rem;border-bottom:1px solid var(--color-border)}.admin-table .muted{color:var(--color-text-muted)}.admin-table .admin-badge{margin-left:.5rem;vertical-align:middle}.kitchen-tag{display:inline-block;font-size:.8rem;padding:.125rem .5rem;background:var(--color-bg);border-radius:999px;margin:.125rem .25rem .125rem 0}.kitchen-tag .role-suffix{color:var(--color-text-muted);font-size:.75rem}.allowlist-form{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.allowlist-form input{padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem}.allowlist-form button{padding:.4rem .8rem;font-size:.9rem}.allow-status{font-size:.85rem;color:var(--color-text-muted)}.sidebar{width:230px;background:var(--color-text);color:var(--color-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-top{padding:1.75rem 1.25rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar .logo{color:inherit}.sidebar .logo h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.sidebar .nav{flex-direction:column;padding:.75rem .625rem;gap:2px}.sidebar .nav a{color:inherit;opacity:.7;padding:.6rem .75rem;display:flex;align-items:center;gap:.625rem;font-size:.9rem;font-weight:500}.sidebar .nav a:hover{opacity:1;background:#ffffff0f}.sidebar .nav a.active{opacity:1;color:var(--color-primary);background:#ffffff14}.sidebar-footer{margin-top:auto;padding:.75rem .625rem 1.25rem;display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.06)}.sidebar .inbox-link{color:inherit;opacity:.6;font-size:.8rem;padding:.5rem .75rem;border-radius:var(--radius);display:block;border:none;background:none}.sidebar .inbox-link:hover{opacity:.9;background:#ffffff0f}.sidebar .inbox-link.active{opacity:1;color:var(--color-primary)}.sidebar .admin-link{color:inherit;opacity:.7;display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.9rem}.sidebar .admin-link:hover{opacity:1;background:#ffffff0f}.sidebar .admin-link.active{opacity:1;color:var(--color-primary)}.sidebar .sharing-link{color:inherit;opacity:.7;display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.9rem}.sidebar .sharing-link:hover{opacity:1;background:#ffffff0f}.sidebar .sharing-link.active{opacity:1;color:var(--color-primary)}.sidebar .settings-link{color:inherit;opacity:.7;display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.9rem}.sidebar .settings-link:hover{opacity:1;background:#ffffff0f}.sidebar .help-link{color:inherit;opacity:.7;display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.9rem}.sidebar .help-link:hover{opacity:1;background:#ffffff0f}.sidebar .help-link.active{opacity:1;color:var(--color-primary)}@media(min-width:769px){.layout{flex-direction:row}.header{display:none}.main{margin-left:230px}}@media(max-width:768px){.sidebar{display:none}}.groceries-page{width:100%;max-width:720px;margin:0 auto;padding:1rem}.grocery-tabs{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1.25rem}.grocery-tab-bar{display:flex;gap:0;background:var(--color-border);border-radius:10px;padding:3px}.grocery-tab{padding:.35rem 1rem;border:none;border-radius:8px;background:none;font-family:var(--font-heading);font-weight:600;font-size:.9rem;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.grocery-tab:hover{color:var(--color-text)}.grocery-tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #00000014}.grocery-tab-actions{display:flex;gap:.35rem;align-items:center;flex-shrink:0}.btn-sync{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.85rem;font-family:var(--font-body);cursor:pointer;white-space:nowrap}.btn-sync:disabled{opacity:.5;cursor:default}.btn-sync.stale{background:var(--color-primary);border-color:var(--color-primary);color:#fff;opacity:1;cursor:pointer}.grocery-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.grocery-category{background:var(--color-surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border)}.grocery-category-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 1rem;background:none;border:none;cursor:pointer;font-family:var(--font-heading);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.grocery-category-header:hover{background:#00000005}.grocery-category-count{background:var(--color-border);color:var(--color-text-muted);font-size:.75rem;padding:.1rem .5rem;border-radius:10px;font-weight:500}.grocery-category-items{border-top:1px solid var(--color-border)}.grocery-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border-bottom:1px solid rgba(0,0,0,.04)}.grocery-item:last-child{border-bottom:none}.grocery-item.dragging{opacity:.35}.grocery-item.merge-target{outline:2px solid var(--color-primary);outline-offset:-2px;background:#8fae7e1a}.grocery-category.drop-target{outline:2px dashed var(--color-primary);outline-offset:-2px;background:#8fae7e0d}.btn-manipulate{color:var(--color-text-muted)}.btn-manipulate-delete{color:var(--color-danger)}.btn-manipulate-merge{color:var(--color-primary)}.grocery-category-header.move-target{color:var(--color-primary);background:#8fae7e14}.grocery-item.checked{opacity:.45}.grocery-item.checked .grocery-item-name{text-decoration:line-through}.grocery-check{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:2px solid var(--color-border);border-radius:6px;background:none;cursor:pointer;flex-shrink:0;color:var(--color-primary)}.grocery-item.checked .grocery-check{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.grocery-item-info{flex:1;min-width:0;cursor:pointer}.grocery-item-main{display:flex;align-items:baseline;gap:.5rem}.grocery-item-qty{font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.grocery-item-detail{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin-top:.3rem;padding-top:.3rem;border-top:1px dashed rgba(0,0,0,.06)}.grocery-source{font-size:.78rem;color:var(--color-text-muted);text-decoration:none}a.grocery-source:hover{text-decoration:underline}.grocery-item-name{background:none;border:none;padding:0;font:inherit;font-weight:500;font-size:.95rem;cursor:pointer;text-align:left;color:inherit}.grocery-item-name:hover{text-decoration:underline;text-decoration-color:var(--color-border)}.grocery-item-qty{cursor:pointer}.grocery-item-actions{display:flex;gap:.25rem;align-items:center}.pantry-toggle-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:50%;background:none;font-size:1.1rem;cursor:pointer;color:var(--color-border);transition:color .15s,background .15s}.pantry-toggle-btn:hover{color:var(--color-primary);background:#8fae7e1a}.pantry-toggle-btn.active{color:var(--color-primary)}.grocery-pantry-section{margin-top:.5rem}.pantry-header{color:var(--color-text-muted)}.pantry-items{border-top:1px solid var(--color-border)}.pantry-item{opacity:.6;justify-content:space-between}.grocery-checked-summary{display:flex;align-items:baseline;gap:.5rem;width:100%;padding:.5rem .75rem;background:none;border:none;border-top:1px dashed rgba(0,0,0,.06);cursor:pointer;text-align:left;font-size:.82rem;color:var(--color-text-muted)}.grocery-checked-summary:hover{background:#00000005}.grocery-checked-summary svg{flex-shrink:0;margin-left:auto}.grocery-checked-names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.grocery-checked-names s{text-decoration:line-through;text-decoration-color:#0003}.grocery-add-manual{display:flex;gap:.5rem;margin-top:1rem}.grocery-add-manual input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-family:var(--font-body);background:var(--color-surface)}.grocery-add-manual input:focus{outline:none;border-color:var(--color-primary)}.grocery-add-manual button{padding:.5rem 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pantry-edit-modal{max-width:480px}.pantry-edit-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.pantry-edit-header h3{font-family:var(--font-heading);font-size:1.1rem;margin:0}.pantry-edit-form{display:flex;flex-direction:column;gap:1rem}.pantry-field{display:flex;flex-direction:column;gap:.35rem}.pantry-field-row{flex-direction:row;align-items:center;justify-content:space-between}.pantry-field-label{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.pantry-field input[type=text],.pantry-field input[type=number]{padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;font-family:var(--font-body);background:var(--color-surface)}.pantry-field input:focus{outline:none;border-color:var(--color-primary)}.pantry-category-row{display:flex;align-items:center;gap:.5rem}.pantry-category-row .pantry-toggle-btn{width:36px;height:36px;font-size:1.5rem;border:2px solid var(--color-border)}.pantry-category-row .pantry-toggle-btn.active{border-color:var(--color-primary);background:#8fae7e1f}.pantry-category-select{position:relative;flex:1}.pantry-category-select select{width:100%;padding:.45rem 2rem .45rem .65rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:.9rem;font-family:var(--font-body);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.pantry-category-select select:focus{outline:none;border-color:var(--color-primary)}.pantry-category-chevron{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-muted)}.alias-chips{display:flex;flex-wrap:wrap;gap:.3rem}.alias-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;background:var(--color-border);border-radius:6px;font-size:.82rem}.alias-chip button{display:flex;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-muted);opacity:.7}.alias-chip button:hover{opacity:1;color:var(--color-danger)}.alias-add-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px dashed var(--color-border);border-radius:6px;background:none;cursor:pointer;color:var(--color-text-muted);padding:0}.alias-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.alias-input-inline{display:inline-flex;align-items:center;gap:.2rem;border:1px solid var(--color-primary);border-radius:6px;padding:.15rem .3rem;background:var(--color-surface)}.alias-input-inline input{border:none;outline:none;font-size:.82rem;font-family:var(--font-body);width:80px;background:none}.alias-input-inline button{display:flex;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-muted)}.alias-input-inline button:hover{color:var(--color-primary)}.pantry-advanced-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;border:none;background:none;cursor:pointer;font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.pantry-amounts{display:flex;flex-direction:column;gap:.35rem}.pantry-amount-row{display:flex;align-items:center;gap:.35rem}.pantry-amount-row input{flex:1;padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:8px;font-size:.85rem;font-family:var(--font-body)}.pantry-amount-row input:focus{outline:none;border-color:var(--color-primary)}.pantry-edit-error{color:var(--color-danger);font-size:.85rem;margin:.5rem 0 0}.pantry-edit-actions{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border)}.pantry-edit-left,.pantry-edit-right{display:flex;gap:.5rem}.pantry-edit-left button,.pantry-edit-right button{display:inline-flex;align-items:center;gap:.3rem}.btn-danger.confirming{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.pantry-merge-section{display:flex;flex-direction:column;gap:.4rem;padding:.75rem 0;border-top:1px solid var(--color-border)}.pantry-merge-section input{padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;font-family:var(--font-body);background:var(--color-surface)}.pantry-merge-section input:focus{outline:none;border-color:var(--color-primary)}.pantry-merge-results{list-style:none;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;max-height:200px;overflow-y:auto}.pantry-merge-results button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.45rem .65rem;border:none;background:none;font-size:.9rem;cursor:pointer;text-align:left}.pantry-merge-results button:hover{background:#8fae7e1a}.pantry-merge-cat{font-size:.75rem;color:var(--color-text-muted)}.pantry-tab-search{margin-bottom:.75rem}.pantry-tab-search input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-family:var(--font-body);background:var(--color-surface)}.pantry-tab-search input:focus{outline:none;border-color:var(--color-primary)}.pantry-tab-body{display:flex;flex-direction:column;gap:.25rem}.pantry-tab-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.pantry-tab-section-header{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;font-family:var(--font-heading);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.pantry-section-toggle{display:flex;align-items:center;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-muted)}.pantry-section-name{cursor:pointer}.pantry-section-name:hover{color:var(--color-text)}.pantry-cat-actions{display:flex;gap:.2rem;margin-left:auto;opacity:0;transition:opacity .15s}.pantry-tab-section-header:hover .pantry-cat-actions{opacity:1}.pantry-cat-rename-input{flex:1;padding:.15rem .4rem;border:1px solid var(--color-primary);border-radius:6px;font-family:var(--font-heading);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text);outline:none}.pantry-chip-flow{display:flex;flex-wrap:wrap;gap:.35rem;padding:.5rem .75rem .75rem}.pantry-chip{display:inline-flex;align-items:baseline;gap:.3rem;padding:.25rem .6rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:.85rem;font-family:var(--font-body);cursor:pointer;color:var(--color-text);transition:border-color .15s}.pantry-chip:hover{border-color:var(--color-primary)}.pantry-chip-active{background:#8fae7e1a;border-color:#8fae7e4d}.pantry-chip.dragging{opacity:.35}.pantry-chip.merge-target{outline:2px solid var(--color-primary);outline-offset:1px;background:#8fae7e26}.pantry-tab-section.drop-target{outline:2px dashed var(--color-primary);outline-offset:-2px;background:#8fae7e0d}.pantry-chip-infinity{color:var(--color-primary);font-size:.95rem;line-height:1}.pantry-chip-meta{font-size:.75rem;color:var(--color-text-muted)}.pantry-tab-empty{text-align:center;padding:2rem 1rem;color:var(--color-text-muted)}.pantry-tab-empty p{margin-bottom:.5rem}@media(max-width:640px){.pantry-edit-modal{padding:1rem;min-height:100vh;min-height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column}.pantry-edit-header{margin-bottom:.75rem}.pantry-edit-form{gap:.75rem;flex:1}.pantry-edit-modal input[type=text],.pantry-edit-modal input[type=number],.pantry-edit-modal select{font-size:16px}.pantry-edit-actions{margin-top:auto;padding-top:.75rem;flex-wrap:wrap;gap:.5rem}.pantry-edit-left,.pantry-edit-right{gap:.35rem}.pantry-merge-section input,.alias-input-inline input{font-size:16px}}
