:root{--tabbar-h: 72px}.tab-bar{position:fixed;bottom:0;left:0;right:0;width:100%;max-width:100vw;display:flex;justify-content:space-around;align-items:stretch;height:calc(var(--tab-bar-height) + var(--safe-area-bottom));padding-bottom:var(--safe-area-bottom);background:var(--tab-bar-bg);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-top:1px solid var(--tab-bar-border);z-index:100;overflow:visible}.tab-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xs);color:var(--color-text-tertiary);transition:all var(--transition-fast);min-height:44px;-webkit-tap-highlight-color:transparent;position:relative}.tab-bar-item:hover{color:var(--color-text-secondary)}.tab-bar-item--active,.tab-bar-item--active:hover{color:var(--color-accent)}.tab-bar-item--center{position:relative;margin-top:-20px;flex:0 0 auto;min-width:64px}.tab-bar-item--center .tab-bar-icon{width:56px;height:56px;min-width:56px;min-height:56px;border-radius:50%;background:var(--color-accent);color:var(--color-text-tertiary);box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;transition:all var(--transition-fast);flex-shrink:0}.tab-bar-item--center .tab-bar-icon svg{width:26px;height:26px;flex-shrink:0}.tab-bar-item--center:hover .tab-bar-icon{color:var(--color-text-secondary);transform:scale(1.05);box-shadow:0 6px 16px #0003,0 3px 6px #00000026}.tab-bar-item--center.tab-bar-item--active .tab-bar-icon{background:var(--color-accent);color:var(--color-accent-hover);transform:none;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}.tab-bar-item--center.tab-bar-item--active:hover .tab-bar-icon{transform:none;color:var(--color-accent-hover);box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a}.tab-bar-item--center .tab-bar-label{margin-top:4px;color:var(--color-text-tertiary)}.tab-bar-item--center.tab-bar-item--active .tab-bar-label{color:var(--color-accent)}.tab-bar-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px}.tab-bar-icon svg{width:22px;height:22px}.tab-bar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.01em}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;animation:fadeIn var(--transition-fast) ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bottom-sheet{width:100%;max-width:100vw;max-height:90vh;max-height:90dvh;background:var(--color-bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;flex-direction:column;animation:slideUp var(--transition-normal) ease-out;padding-bottom:var(--safe-area-bottom);overflow-x:hidden}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{width:36px;height:4px;background:var(--color-border-strong);border-radius:var(--radius-full);margin:var(--space-sm) auto var(--space-xs);flex-shrink:0}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md) var(--space-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.bottom-sheet-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.bottom-sheet-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);border-radius:var(--radius-full);transition:background-color var(--transition-fast),color var(--transition-fast)}.bottom-sheet-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.bottom-sheet-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:var(--space-md);padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom) + var(--space-md));max-width:100%}.inventory-item-row{position:relative;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);min-height:48px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);user-select:none;-webkit-user-select:none;transition:all var(--transition-fast);cursor:default}.inventory-item-row:hover{border-color:var(--color-border-strong)}.inventory-item-row--selectable{cursor:pointer;-webkit-tap-highlight-color:transparent}.inventory-item-row--selectable:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-strong)}.inventory-item-row--selected{background:#c4775c14}.inventory-item-row--selected:hover{background:#c4775c1f}.inventory-item-row--editable{cursor:pointer;-webkit-tap-highlight-color:transparent}.inventory-item-row--actions-open{background:#c4775c0d}.inventory-item-checkbox{width:22px;height:22px;border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.inventory-item-checkbox--checked{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.inventory-item-name{flex:1;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);min-width:0}.inventory-item-indicators{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.age-icon{display:flex;align-items:center;justify-content:center}.age-icon--old{color:var(--color-warning)}.age-icon--very-old{color:var(--color-danger)}.stock-chip{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.02em}.stock-chip--low{background:#d4a15426;color:var(--color-warning)}.stock-chip--out{background:#c75c5c26;color:var(--color-danger)}.inventory-item-actions{display:flex;gap:6px;margin-left:var(--space-sm);flex-shrink:0;opacity:0;transform:translate(8px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.inventory-item-row--actions-open .inventory-item-actions{opacity:1;transform:translate(0);pointer-events:auto}@media (hover: hover) and (pointer: fine){.inventory-item-row:hover .inventory-item-actions{opacity:1;transform:translate(0);pointer-events:auto}}.inventory-item-action-btn{width:40px;height:40px;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.inventory-item-action-btn:active{transform:scale(.95)}@media (hover: hover) and (pointer: fine){.inventory-item-action-btn:hover{transform:scale(1.05)}}.inventory-item-action-btn--shopping{border-color:var(--color-warning);background:#d4a1541a;color:var(--color-warning)}@media (hover: hover) and (pointer: fine){.inventory-item-action-btn--shopping:hover{background:var(--color-warning);color:var(--color-white)}}.inventory-item-action-btn--delete{border-color:var(--color-danger);background:#c75c5c1a;color:var(--color-danger)}.inventory-item-action-btn--edit{border-color:var(--color-accent);background:#c4775c1a;color:var(--color-accent)}@media (hover: hover) and (pointer: fine){.inventory-item-action-btn--edit:hover{background:var(--color-accent);color:var(--color-white)}}@media (hover: hover) and (pointer: fine){.inventory-item-action-btn--delete:hover{background:var(--color-danger);color:var(--color-white)}}.add-item-form{display:flex;flex-direction:column;gap:var(--space-lg)}.form-field{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-required{color:var(--color-danger)}.form-input{width:100%;height:48px;padding:0 var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #c4775c26}.form-select-wrapper{position:relative}.form-select{width:100%;height:48px;padding:0 var(--space-xl) 0 var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #c4775c26}.form-select-arrow{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.form-hint--suggestion{color:var(--color-accent);font-weight:var(--font-weight-medium)}.form-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-sm)}.btn{flex:1;height:48px;padding:0 var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary:hover{background:var(--color-border)}.btn--ghost{background:transparent;color:var(--color-text-secondary)}.btn--ghost:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.barcode-scanner{display:flex;flex-direction:column;gap:var(--space-lg)}.scanner-viewport{aspect-ratio:4/3;max-height:280px;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.scanner-frame{width:200px;height:120px;position:relative}.scanner-corner{position:absolute;width:24px;height:24px;border-color:var(--color-accent);border-style:solid;border-width:0}.scanner-corner--tl{top:0;left:0;border-top-width:3px;border-left-width:3px;border-top-left-radius:4px}.scanner-corner--tr{top:0;right:0;border-top-width:3px;border-right-width:3px;border-top-right-radius:4px}.scanner-corner--bl{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:4px}.scanner-corner--br{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:4px}.scanner-line{position:absolute;left:8px;right:8px;height:2px;background:var(--color-accent);top:50%;animation:scanLine 2s ease-in-out infinite}@keyframes scanLine{0%,to{top:20%;opacity:.5}50%{top:80%;opacity:1}}.scanner-hint{position:absolute;bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.scanner-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.scanner-fake-btn{gap:var(--space-sm)}.scanner-note{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;padding:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.barcode-confirm{display:flex;flex-direction:column;gap:var(--space-lg)}.barcode-confirm-badge{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#4a9e6d1f;color:var(--color-success);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-self:flex-start}.scanner-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner-frame,.scanner-hint{position:relative;z-index:1}.household-switcher-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;font-size:14px;font-weight:500;color:var(--color-text);cursor:pointer;transition:background-color .2s}.household-switcher-btn:hover{background:var(--color-background)}.household-switcher-btn:active{transform:scale(.98)}.household-switcher-label{flex:1}.household-back-btn{display:flex;align-items:center;gap:4px;padding:8px 16px;margin-bottom:8px;background:none;border:none;font-size:14px;font-weight:500;color:var(--color-primary);cursor:pointer}.household-back-btn:hover{opacity:.8}.household-list{padding:0 16px 16px}.household-empty{text-align:center;color:var(--color-text-secondary);padding:24px 0;font-size:14px}.household-loading{text-align:center;color:var(--color-text-secondary);padding:16px 0;font-size:14px}.household-item{display:flex;align-items:center;gap:8px;margin-bottom:8px}.household-option{flex:1;display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background-color .2s}.household-option:hover{background:var(--color-background)}.household-option input[type=radio]{width:20px;height:20px;cursor:pointer;flex-shrink:0}.household-option-content{flex:1;display:flex;align-items:center;gap:8px}.household-option-name{font-size:16px;color:var(--color-text)}.household-manage-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s,color .2s}.household-manage-btn:hover{background:var(--color-background);color:var(--color-text)}.household-role-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;flex-shrink:0}.household-role-badge--owner{background:var(--color-primary);color:#fff}.household-role-badge--admin{background:var(--color-warning, #f59e0b);color:#fff}.household-role-badge--member{background:var(--color-border);color:var(--color-text-secondary)}.household-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.household-action-btn{width:100%;padding:12px;font-size:16px;font-weight:500;text-align:center;background:var(--color-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.household-action-btn:active{opacity:.8}.household-action-btn:disabled{opacity:.5;cursor:not-allowed}.household-limit-warning{text-align:center;padding:12px;font-size:14px;color:var(--color-text-secondary);background:var(--color-background);border-radius:8px}.household-invite-hint{text-align:center;font-size:13px;color:var(--color-text-secondary);margin:0}.household-members-view{padding:0 16px 16px}.household-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin:0 0 12px}.household-members-list{margin-bottom:8px}.household-member-item{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.household-member-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:16px;font-weight:600;border-radius:50%;flex-shrink:0}.household-member-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.household-member-name{font-size:15px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.household-member-email{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.household-invite-view{padding:0 16px 16px}.household-invite-form{display:flex;flex-direction:column;gap:12px}.household-input-label{font-size:14px;font-weight:500;color:var(--color-text)}.household-input{width:100%;padding:12px;font-size:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text)}.household-input:focus{outline:none;border-color:var(--color-primary)}.household-input:disabled{opacity:.6;cursor:not-allowed}.household-error{padding:12px;font-size:14px;color:var(--color-error, #dc2626);background:#dc26261a;border-radius:8px;margin-top:8px}.household-invite-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.household-cancel-btn{padding:10px 20px;font-size:16px;font-weight:500;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);cursor:pointer}.household-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.household-invite-success{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 0;text-align:center}.household-invite-success p{margin:0;font-size:16px;font-weight:500;color:var(--color-text)}.household-invite-success-note{font-size:14px!important;font-weight:400!important;color:var(--color-text-secondary)!important}.household-create-view{padding-bottom:16px}.fridge-scan-wizard{display:flex;flex-direction:column;min-height:100%;padding:16px}.fridge-scan-step{display:flex;flex-direction:column;flex:1}.fridge-scan-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.fridge-scan-back-btn{display:flex;align-items:center;justify-content:center;padding:8px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:8px;transition:background .2s}.fridge-scan-back-btn:hover{background:var(--color-surface-elevated)}.fridge-scan-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:8px}.fridge-scan-subtitle{font-size:14px;color:var(--color-text-secondary);margin:8px 0 0}.fridge-scan-mode-badge{font-size:12px;font-weight:500;text-transform:capitalize;padding:4px 8px;background:var(--color-primary-alpha, rgba(59, 130, 246, .1));color:var(--color-primary);border-radius:12px}.fridge-scan-mode{text-align:center;padding-top:32px}.fridge-scan-mode .fridge-scan-title{justify-content:center}.fridge-scan-mode-options{display:flex;flex-direction:column;gap:12px;margin:32px 0}.fridge-scan-mode-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:16px;cursor:pointer;transition:all .2s}.fridge-scan-mode-btn:hover{border-color:var(--color-primary);background:var(--color-primary-alpha, rgba(59, 130, 246, .05))}.fridge-scan-mode-btn:active{transform:scale(.98)}.fridge-scan-mode-icon{font-size:32px;line-height:1}.fridge-scan-mode-label{font-size:16px;font-weight:600;color:var(--color-text-primary)}.fridge-scan-mode-desc{font-size:13px;color:var(--color-text-tertiary)}.fridge-scan-mode .fridge-scan-back-btn{margin-top:auto;padding:12px 24px;font-size:14px;color:var(--color-text-secondary)}.fridge-scan-tips{margin-bottom:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.fridge-scan-tips-toggle{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;list-style:none}.fridge-scan-tips-toggle::-webkit-details-marker{display:none}.fridge-scan-tips-toggle svg{flex-shrink:0;color:var(--color-primary)}.fridge-scan-tips[open] .fridge-scan-tips-toggle{border-bottom:1px solid var(--color-border)}.fridge-scan-tips-list{margin:0;padding:12px 14px 12px 38px;font-size:13px;color:var(--color-text-secondary);line-height:1.6}.fridge-scan-tips-list li{margin-bottom:4px}.fridge-scan-tips-list li:last-child{margin-bottom:0}.fridge-scan-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.fridge-scan-photo-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--color-surface)}.fridge-scan-photo-item img{width:100%;height:100%;object-fit:cover}.fridge-scan-photo-remove{position:absolute;top:4px;right:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#0009;border:none;border-radius:50%;cursor:pointer;color:#fff;transition:background .2s}.fridge-scan-photo-remove:hover{background:#dc2626e6}.fridge-scan-photo-add{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:12px;cursor:pointer;color:var(--color-text-tertiary);font-size:12px;transition:all .2s}.fridge-scan-photo-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.fridge-scan-photo-add input{display:none}.fridge-scan-photo-count{font-size:13px;color:var(--color-text-tertiary);text-align:center;margin:0 0 16px}.fridge-scan-error{padding:12px 16px;background:var(--color-error-bg, #fef2f2);color:var(--color-error, #dc2626);border-radius:12px;font-size:14px;margin-bottom:16px;white-space:pre-line}.fridge-scan-actions{margin-top:auto;padding-top:16px}.fridge-scan-actions .btn{width:100%}.fridge-scan-analyzing{align-items:center;justify-content:center;text-align:center}.fridge-scan-analyzing-content{display:flex;flex-direction:column;align-items:center;gap:16px}.fridge-scan-analyzing .spinner{width:48px;height:48px}.spinner-sm{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.fridge-scan-review{display:flex;flex-direction:column;min-height:100%;padding:16px}.fridge-scan-review-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.fridge-scan-review-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:8px}.fridge-scan-review-subtitle{font-size:14px;color:var(--color-text-secondary);margin:0 0 16px}.fridge-scan-review-actions{display:flex;gap:8px;margin-bottom:16px}.fridge-scan-bulk-btn{flex:1;padding:10px 12px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .2s}.fridge-scan-bulk-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.fridge-scan-bulk-btn:active{transform:scale(.98)}.fridge-scan-review-list{flex:1;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;overflow-y:auto}.fridge-scan-review-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;transition:all .2s}.fridge-scan-review-item.selected{border-color:var(--color-primary);background:var(--color-primary-alpha, rgba(59, 130, 246, .05))}.fridge-scan-review-checkbox{display:flex;align-items:center;cursor:pointer}.fridge-scan-review-checkbox input{display:none}.fridge-scan-checkbox-custom{width:22px;height:22px;border:2px solid var(--color-border);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.fridge-scan-review-checkbox input:checked+.fridge-scan-checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.fridge-scan-review-checkbox input:checked+.fridge-scan-checkbox-custom:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.fridge-scan-review-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fridge-scan-review-name{font-size:15px;font-weight:500;color:var(--color-text-primary);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fridge-scan-review-qty{font-size:13px;color:var(--color-text-secondary)}.fridge-scan-review-notes{font-size:12px;font-style:italic;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fridge-scan-confidence-badge{flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:600;border-radius:8px;text-align:center;min-width:40px}.fridge-scan-confidence-badge.confidence-high{background:#22c55e26;color:#16a34a}.fridge-scan-confidence-badge.confidence-medium{background:#eab30826;color:#ca8a04}.fridge-scan-confidence-badge.confidence-low{background:#ef444426;color:#dc2626}.fridge-scan-review-item-actions{display:flex;gap:4px;flex-shrink:0}.fridge-scan-item-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s}.fridge-scan-item-btn:hover{background:var(--color-surface-elevated);color:var(--color-text-secondary)}.fridge-scan-item-btn--danger:hover{background:#dc26261a;color:#dc2626}.fridge-scan-review-edit{display:flex;align-items:center;gap:8px;width:100%}.fridge-scan-edit-input{flex:1;padding:10px 12px;font-size:14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary)}.fridge-scan-edit-input:focus{outline:none;border-color:var(--color-primary)}.fridge-scan-edit-qty{flex:0 0 70px}.fridge-scan-edit-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;flex-shrink:0}.fridge-scan-edit-save{background:var(--color-primary);color:#fff}.fridge-scan-edit-save:hover{opacity:.9}.fridge-scan-edit-cancel{background:var(--color-surface-elevated);color:var(--color-text-secondary)}.fridge-scan-edit-cancel:hover{background:var(--color-border)}.fridge-scan-review-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center;color:var(--color-text-secondary)}.fridge-scan-review-footer{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--color-border)}.fridge-scan-review-footer .btn{flex:1}.fridge-scan-review-footer .btn--secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.fridge-scan-review-footer .btn--secondary:hover{background:var(--color-surface-elevated)}.fridge-scan-review-footer .btn--primary{background:var(--color-primary);color:#fff;border:none}.fridge-scan-review-footer .btn--primary:hover{opacity:.9}.fridge-scan-review-footer .btn--primary:disabled{opacity:.5;cursor:not-allowed}.screen-header-shared{display:flex;flex-direction:column;gap:var(--space-md)}.screen-header-title-row{display:flex;align-items:center;justify-content:space-between;min-height:44px}.screen-header-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em;margin:0}.screen-header-actions,.search-row{display:flex;align-items:center;gap:var(--space-sm)}.search-pill{flex:1;display:flex;align-items:center;gap:var(--space-sm);height:44px;padding:0 var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:border-color var(--transition-fast)}.search-pill:focus-within{border-color:var(--color-accent)}.search-pill-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--color-text-tertiary);flex-shrink:0}.search-pill-input{flex:1;height:100%;background:transparent;border:none;font-size:var(--font-size-base);color:var(--color-text-primary);outline:none}.search-pill-input::placeholder{color:var(--color-text-tertiary)}.search-pill-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast);opacity:0;transform:scale(.8);pointer-events:none}.search-pill-clear--visible{opacity:1;transform:scale(1);pointer-events:auto}.search-pill-clear:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.search-row-sort-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.search-row-sort-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-border)}.search-row-sort-btn--active{border-color:var(--color-accent);color:var(--color-accent);background:#c4775c1a}.search-chips-container{overflow:hidden;max-height:0;opacity:0;transition:max-height var(--transition-normal),opacity var(--transition-fast),margin var(--transition-normal)}.search-chips-container--visible{max-height:120px;opacity:1;margin-top:var(--space-sm)}.search-chips-row{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-xs)}.search-chips-row:last-child{margin-bottom:0}.search-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:6px var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.search-chip:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.search-chip--active{background:#c4775c1a;border-color:var(--color-accent);color:var(--color-accent)}.search-chip-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px}.sort-menu-wrapper{position:relative}.sort-menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.sort-menu{position:fixed;bottom:0;left:0;right:0;padding:var(--space-sm);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom,0));background:var(--color-surface-glass-elevated);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-top:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);z-index:100;animation:sortMenuSlideUp var(--transition-normal)}@keyframes sortMenuSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.sort-menu-item{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast)}.sort-menu-item-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--color-accent)}.power-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.power-menu-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-border)}.power-menu-wrapper{position:relative}.power-menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.power-menu{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:200px;padding:var(--space-xs);background:var(--color-surface-glass-elevated);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;animation:sortMenuFadeIn var(--transition-fast)}.power-menu-item{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:40px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast)}.power-menu-item:hover:not(:disabled){background:var(--color-bg-tertiary)}.power-menu-item:disabled{opacity:.4;cursor:not-allowed}.power-menu-item--danger{color:var(--color-danger)}.power-menu-item--danger:hover:not(:disabled){background:#c75c5c1a}.power-menu-divider{height:1px;margin:var(--space-xs) 0;background:var(--color-border)}.header-action-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.header-action-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.header-action-btn--accent{background:#c4775c1a;border-color:#c4775c4d;color:var(--color-accent)}.header-action-btn--accent:hover{background:#c4775c26}.inventory-screen{position:relative}.inventory-header{position:sticky;top:0;z-index:10;background:var(--color-bg-primary);padding-bottom:var(--space-sm);margin-bottom:var(--space-md)}.inventory-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.inventory-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.select-toggle{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-accent);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.select-toggle:hover{background:#c4775c1a}.select-toggle--active{background:var(--color-accent);color:var(--color-white)}.select-toggle--active:hover{background:var(--color-accent-hover)}.select-done-btn{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-accent);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.select-done-btn:hover{background:#c4775c1a}.power-menu-container{position:relative}.power-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.power-menu{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:200px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;overflow:hidden;padding:var(--space-xs)}.power-menu-item{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);min-height:40px}.power-menu-item:hover{background:var(--color-bg-tertiary)}.sort-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast)}.sort-menu{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:200px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;overflow:hidden;padding:var(--space-xs)}.sort-menu--search{right:0;left:auto}.inventory-search-bar{margin-top:var(--space-md)}.inventory-search-row{display:flex;align-items:center;gap:var(--space-xs)}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:0 var(--space-md);transition:border-color var(--transition-fast)}.search-input-wrapper:focus-within{border-color:var(--color-accent)}.search-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast);flex-shrink:0}.search-clear-btn{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-tertiary);transition:all var(--transition-fast);flex-shrink:0}.search-clear-btn:hover{background:#c4775c1a;color:var(--color-accent)}.search-row-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast);position:relative}.search-row-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-border)}.search-row-btn--active{border-color:var(--color-accent);color:var(--color-accent);background:#c4775c1a}.search-row-btn--active svg{transform:rotate(180deg)}.search-row-btn svg{transition:transform var(--transition-fast)}.search-chips{display:flex;gap:var(--space-xs);margin-top:var(--space-sm);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}.search-chips::-webkit-scrollbar{display:none}.search-chips--animated{animation:slideDown .2s ease-out;transform-origin:top}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-chip{flex-shrink:0;padding:6px var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);white-space:nowrap}.search-chip:hover{background:var(--color-border);color:var(--color-text-primary)}.search-chip--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.search-chip--active:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.bulk-actions-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-surface-glass);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-radius:var(--radius-md);border:1px solid var(--color-border);margin-top:var(--space-sm)}.bulk-actions-info{display:flex;flex-direction:column;gap:2px}.bulk-actions-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.bulk-actions-link{font-size:var(--font-size-xs);color:var(--color-accent)}.bulk-actions-link:hover{text-decoration:underline}.bulk-actions-buttons{display:flex;gap:var(--space-xs)}.bulk-action-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-secondary);background:var(--color-bg-tertiary);transition:all var(--transition-fast)}.bulk-action-btn:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-border)}.bulk-action-btn:disabled{opacity:.4;cursor:not-allowed}.bulk-action-btn--danger:hover:not(:disabled){color:var(--color-danger);background:#c75c5c26}.bulk-action-dropdown{position:relative}.move-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-xs);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10;min-width:140px;overflow:hidden}.move-option{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-primary);text-align:left;transition:background-color var(--transition-fast)}.move-option:hover{background:var(--color-bg-tertiary)}.inventory-groups{display:flex;flex-direction:column;gap:var(--space-lg)}.inventory-group{display:flex;flex-direction:column;gap:var(--space-sm)}.inventory-group-header{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding-left:var(--space-xs)}.inventory-group-header--collapsible{padding-left:0;justify-content:space-between}.inventory-group-header-button{display:flex;align-items:center;gap:var(--space-sm);flex:1;padding:var(--space-xs);text-align:left;background:transparent;border:none;border-radius:var(--radius-md);transition:background-color var(--transition-fast);cursor:pointer}.inventory-group-header-button:hover{background:var(--color-bg-tertiary)}.inventory-group-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.inventory-group-chevron{margin-left:auto;color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.inventory-group-chevron--collapsed{transform:rotate(-90deg)}.inventory-group-icon{font-size:20px}.inventory-group-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-tertiary);margin-left:auto}.inventory-group-content{padding:0;min-height:60px;overflow:hidden}.inventory-list{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) 0}.empty-state-inline{display:flex;align-items:center;justify-content:center;padding:var(--space-lg);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.add-chooser{display:flex;flex-direction:column;gap:var(--space-sm)}.add-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);text-align:left;transition:background-color var(--transition-fast)}.add-option:hover{background:var(--color-border)}.add-option-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-solid);border-radius:var(--radius-md);color:var(--color-accent);flex-shrink:0}.add-option-label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:block}.add-option-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);display:block;margin-top:2px}.inventory-loading{display:flex;flex-direction:column;gap:var(--space-lg)}.loading-skeleton{height:120px;background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-border) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;border-radius:var(--radius-lg);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.inventory-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:#c75c5c1a;border:1px solid rgba(199,92,92,.3);border-radius:var(--radius-md)}.inventory-error-text{font-size:var(--font-size-sm);color:var(--color-danger)}.inventory-error-retry{padding:var(--space-xs) var(--space-md);background:var(--color-danger);color:var(--color-white);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast)}.inventory-error-retry:hover{background:#b54f4f}.photo-add-container{display:flex;flex-direction:column;gap:var(--space-md)}.add-option--back{background:transparent;border:1px solid var(--color-border)}.add-option--back:hover{background:var(--color-bg-tertiary)}.add-option--back .add-option-icon{background:transparent}.photo-identifying{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-md)}.photo-identifying-spinner{width:40px;height:40px;border:4px solid var(--color-bg-tertiary);border-top-color:var(--color-accent);border-radius:50%;animation:spinner .8s linear infinite}@keyframes spinner{to{transform:rotate(360deg)}}.photo-identifying p{color:var(--color-text-secondary);font-size:var(--font-size-base)}.photo-error{display:flex;flex-direction:column;gap:var(--space-md)}.photo-error-message{padding:var(--space-sm) var(--space-md);background:#c75c5c1a;border:1px solid rgba(199,92,92,.3);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-sm);text-align:center}.photo-result{display:flex;flex-direction:column;gap:var(--space-md)}.photo-result-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#4caf5014;border:1px solid rgba(76,175,80,.2);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary)}.photo-result-header svg{flex-shrink:0;color:#4caf50}.photo-alternatives{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:0 var(--space-sm)}.photo-alternatives-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.photo-alternative-chip{padding:4px var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.add-option--beta{border:1px dashed var(--color-accent);background:#c4775c08}.add-option--beta:hover{background:#c4775c14}.add-option-beta-badge{display:inline-block;margin-left:var(--space-xs);padding:2px 6px;font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);vertical-align:middle}.ingredients-sheet{display:flex;flex-direction:column;gap:16px;padding-bottom:8px}.ingredients-sheet-recipe{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.4}.ingredients-match-summary{display:flex;flex-direction:column;gap:8px}.match-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.match-bar-fill{height:100%;background:var(--color-success);border-radius:4px;transition:width .3s ease}.match-stats{display:flex;justify-content:space-between;align-items:center}.match-percent{font-weight:600;font-size:14px;color:var(--text-primary)}.match-detail{font-size:13px;color:var(--text-secondary)}.ingredients-sections{display:flex;flex-direction:column;gap:16px}.ingredients-section{display:flex;flex-direction:column;gap:8px}.ingredients-section-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary);padding:0;background:none;border:none;text-align:left;width:100%}.ingredients-section-header svg{flex-shrink:0}.ingredients-section-header--toggle{cursor:pointer}.ingredients-section-header--toggle:hover{color:var(--color-primary)}.ingredients-section--have .ingredients-section-header{color:var(--color-success)}.chevron{margin-left:auto;transition:transform .2s ease}.chevron--open{transform:rotate(180deg)}.ingredients-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ingredient-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-secondary);border-radius:8px;gap:12px}.ingredient-row--added{opacity:.6}.ingredient-row--have{background:transparent;padding:6px 0;gap:8px;justify-content:flex-start}.ingredient-row--have svg{color:var(--color-success);flex-shrink:0}.ingredient-name{flex:1;font-size:14px;color:var(--text-primary);min-width:0}.ingredient-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ingredient-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;cursor:pointer;color:var(--text-secondary);transition:background .15s ease,color .15s ease}.ingredient-action-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.ingredient-action-btn:disabled{opacity:.5;cursor:not-allowed}.ingredient-check{color:var(--color-success)}.ingredients-list--have{padding-left:4px}.add-all-btn{margin-top:8px}.ingredients-sheet-footer{padding-top:8px;border-top:1px solid var(--border-color)}.ingredients-sheet-footer .btn{width:100%}.spinner-sm{width:14px;height:14px;border:2px solid var(--bg-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alternatives-section{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px dashed var(--color-border)}.alternatives-trigger-btn{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.alternatives-trigger-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-warning)}.alternatives-trigger-btn:disabled{opacity:.6;cursor:not-allowed}.alternatives-sparkle{font-size:20px}.alternatives-trigger-btn>span:nth-child(2){font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.alternatives-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.alternatives-result{padding:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.alternatives-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.alternatives-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-danger)}.alternatives-retry{margin-left:auto;padding:4px var(--space-sm);background:transparent;border:1px solid var(--color-danger);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-danger);cursor:pointer;transition:all var(--transition-fast)}.alternatives-retry:hover{background:var(--color-danger);color:#fff}.alternatives-found{display:flex;flex-direction:column;gap:var(--space-sm)}.alternatives-header{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-success, #4caf50)}.alternatives-header svg{flex-shrink:0;color:var(--color-success, #4caf50)}.alternatives-swaps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.swap-item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.swap-missing{color:var(--color-text-secondary);text-decoration:line-through}.swap-arrow{color:var(--color-text-tertiary)}.swap-use{color:var(--color-success, #4caf50);font-weight:var(--font-weight-medium)}.swap-reason{flex-basis:100%;font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.alternatives-none{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.alternatives-none svg{flex-shrink:0;color:var(--color-text-tertiary)}.edit-ingredients-sheet{display:flex;flex-direction:column;gap:var(--space-lg);padding-bottom:var(--space-md)}.edit-ingredients-header{display:flex;flex-direction:column;gap:var(--space-sm);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.edit-ingredients-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.edit-ingredients-meta{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-size-sm)}.edit-ingredients-source{padding:var(--space-xs) var(--space-sm);background:#c4775c1a;border:1px solid rgba(196,119,92,.3);border-radius:var(--radius-sm);color:var(--color-accent);font-weight:var(--font-weight-medium)}.edit-ingredients-link{color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-medium);transition:opacity var(--transition-fast)}.edit-ingredients-link:hover{opacity:.8}.edit-ingredients-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#ef4444;font-size:var(--font-size-sm)}.edit-ingredients-success{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#48bb781a;border:1px solid rgba(72,187,120,.3);border-radius:var(--radius-md);color:#48bb78;font-size:var(--font-size-sm)}.edit-ingredients-section{display:flex;flex-direction:column;gap:var(--space-md)}.edit-ingredients-section-header{display:flex;justify-content:space-between;align-items:center}.edit-ingredients-section-header h4{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.btn-link{background:none;border:none;padding:0;color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-decoration:underline;transition:opacity var(--transition-fast)}.btn-link:hover{opacity:.8}.paste-area{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.paste-textarea{width:100%;padding:var(--space-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-sm);resize:vertical;min-height:120px}.paste-textarea:focus{outline:none;border-color:var(--color-accent)}.ingredients-list-editor{display:flex;flex-direction:column;gap:var(--space-sm);max-height:400px;overflow-y:auto;padding:var(--space-xs)}.ingredient-row{display:flex;gap:var(--space-sm);align-items:center}.ingredient-input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast)}.ingredient-input:focus{outline:none;border-color:var(--color-accent)}.ingredient-delete-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.ingredient-delete-btn:hover:not(:disabled){background:#ef44441a;border-color:#ef44444d;color:#ef4444}.ingredient-delete-btn:disabled{opacity:.5;cursor:not-allowed}.add-ingredient-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:48px;font-size:var(--font-size-base)}.edit-ingredients-actions{display:flex;flex-direction:row;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.edit-ingredients-actions .btn{flex:1;height:52px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.btn--danger-outline{background:transparent;color:var(--color-danger);border:2px solid var(--color-danger)}.btn--danger-outline:hover:not(:disabled){background:#c75c5c1a}.btn--danger-outline:disabled{opacity:.5;cursor:not-allowed}.recipe-packs-panel{padding:0 16px 16px}.packs-loading,.packs-error,.packs-empty{padding:32px 16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.packs-error{color:var(--color-danger)}.packs-list{display:flex;flex-direction:column;gap:16px}.pack-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;transition:all .2s}.pack-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.pack-info{flex:1}.pack-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0 0 4px}.pack-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 8px;line-height:1.4}.pack-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.pack-recipe-count{font-weight:500}.pack-meta-separator{opacity:.5}.pack-price{font-weight:600;color:var(--color-text)}.pack-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.pack-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer}.pack-toggle-label{font-size:14px;font-weight:500;color:var(--color-text);-webkit-user-select:none;user-select:none}.pack-unlock-btn{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;white-space:nowrap}.pack-unlock-btn:active{opacity:.8}.pack-locked-badge{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);font-size:13px;font-weight:500;color:var(--color-text-secondary)}.pack-locked-badge svg{opacity:.7}.packs-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--color-border)}.packs-footer-note{font-size:13px;color:var(--color-text-secondary);text-align:center;margin:0}.create-recipe-form{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.create-recipe-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#c75c5c1a;border:1px solid var(--color-danger);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-sm)}.create-recipe-error svg{flex-shrink:0}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.form-label-required{color:var(--color-danger);margin-left:2px}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);font-family:inherit;transition:all var(--transition-fast)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-accent);background:var(--color-bg-secondary)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{opacity:.5;cursor:not-allowed}.form-textarea{resize:vertical;min-height:120px;font-family:inherit;line-height:1.5}.form-help{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0}.form-ai-note{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#c4775c14;border:1px solid rgba(196,119,92,.2);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.form-ai-note svg{flex-shrink:0;margin-top:2px;color:var(--color-accent)}.form-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-md)}.form-actions .btn{flex:1}.recipes-screen{display:flex;flex-direction:column;gap:var(--space-md)}.away-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#d4a1541f;border:1px solid rgba(212,161,84,.3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-warning)}.recipes-controls{display:flex;flex-direction:column;gap:var(--space-sm)}.recipes-toolbar{display:flex;gap:var(--space-sm);align-items:center}.recipes-search{flex:1;display:flex;align-items:center;gap:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:0 var(--space-md);transition:border-color var(--transition-fast)}.recipes-search:focus-within{border-color:var(--color-accent)}.search-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-full);transition:all var(--transition-fast);flex-shrink:0}.search-icon-btn:hover{background:#c4775c1a;color:var(--color-accent)}.search-input{flex:1;height:44px;background:transparent;border:none;font-size:var(--font-size-base);color:var(--color-text-primary)}.search-input:focus{outline:none}.search-input::placeholder{color:var(--color-text-tertiary)}.recipes-toolbar-actions{display:flex;align-items:center;gap:var(--space-sm)}.filter-menu-container{position:relative}.filter-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast);position:relative}.filter-menu-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.filter-menu-btn--active{background:#c4775c1a;border-color:var(--color-accent);color:var(--color-accent)}.filter-badge{position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--color-accent);border-radius:var(--radius-full);border:2px solid var(--color-bg-primary)}.filter-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.filter-menu{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:240px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;overflow:hidden}.filter-menu-section{padding:var(--space-xs)}.filter-menu-label{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.filter-menu-item{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);min-height:40px}.filter-menu-item:hover{background:var(--color-bg-tertiary)}.filter-menu-item--active{color:var(--color-accent)}.filter-menu-item svg{flex-shrink:0;width:16px}.filter-menu-divider{height:1px;background:var(--color-border);margin:var(--space-xs) 0}.sort-menu-container{position:relative}.sort-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast)}.sort-menu-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.sort-menu-btn--active{background:#c4775c1a;border-color:var(--color-accent);color:var(--color-accent)}.sort-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.sort-menu{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:220px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:51;overflow:hidden;padding:var(--space-xs)}.sort-menu-item{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);min-height:40px}.sort-menu-item:hover{background:var(--color-bg-tertiary)}.sort-menu-item--active{color:var(--color-accent)}.sort-menu-item svg{flex-shrink:0;width:16px}.filters-toggle{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);position:relative;margin-left:auto}.filters-toggle:hover{border-color:var(--color-border-strong)}.filters-toggle--active{background:#c4775c1a;border-color:var(--color-accent);color:var(--color-accent)}.filters-badge{position:absolute;top:-4px;right:-4px;width:10px;height:10px;background:var(--color-accent);border-radius:var(--radius-full);border:2px solid var(--color-bg-primary)}.recipes-list{display:flex;flex-direction:column;gap:var(--space-md);flex:1}.recipes-screen .empty-state{margin-top:var(--space-xl)}.recipes-empty-state{text-align:center}.empty-state-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-md)}.empty-state-link{padding:var(--space-sm);background:none;border:none;font-size:var(--font-size-sm);color:var(--color-accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.empty-state-link:hover{opacity:.8}.empty-state-secondary-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-sm)}.empty-state-divider{color:var(--color-text-tertiary)}.recipes-results-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-xs)}.recipes-results-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.recipes-load-more{display:flex;justify-content:center;padding:var(--space-md) 0}.recipe-source-badge--user{background:#4caf501a;border-color:#4caf504d;color:var(--color-success)}.recipe-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.recipe-card:hover{border-color:var(--color-border-strong)}.recipe-card-row1{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.recipe-card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;flex:1;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-icons{display:flex;align-items:center;gap:4px;flex-shrink:0}.recipe-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-text-tertiary)}.recipe-icon--lock{color:var(--color-warning)}.recipe-icon-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.recipe-icon-btn:hover{background:var(--color-bg-tertiary);color:var(--color-accent)}.recipe-icon-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-icon-btn--danger:hover{background:#c75c5c1a;color:var(--color-danger)}.recipe-card-row2{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.recipe-source-chip{display:inline-flex;padding:2px var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.recipe-source-chip.recipe-source-badge--user{background:#4caf501a;border-color:#4caf504d;color:var(--color-success)}.recipe-source-chip.recipe-source-badge--marion{background:#c4775c1a;border-color:#c4775c4d;color:var(--color-accent)}.recipe-source-chip.recipe-source-badge--joshua{background:#5c77c41a;border-color:#5c77c44d;color:#5c77c4}.recipe-source-chip.recipe-source-badge--pack{background:#9c27b01a;border-color:#9c27b04d;color:#9c27b0}.recipe-meta-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.recipe-card-row3{display:flex;align-items:center;gap:var(--space-sm)}.match-percent-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);min-width:36px}.match-bar-wrapper{flex:1;min-width:0}.match-count-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.match-topup-hint{color:var(--color-warning);font-weight:var(--font-weight-medium)}.recipe-card-row4{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.recipe-pill-btn{display:inline-flex;align-items:center;gap:4px;padding:4px var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.recipe-pill-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-border-strong);color:var(--color-text-primary)}.recipe-pill-btn--alt{background:#d4a1541a;border-color:#d4a1544d;color:var(--color-warning)}.recipe-pill-btn--alt:hover{background:#d4a15426;border-color:#d4a15480}.alt-sparkle{font-size:10px}.recipe-view-link{display:inline-flex;align-items:center;gap:2px;margin-left:auto;padding:4px var(--space-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-accent);text-decoration:none;border-radius:var(--radius-full);transition:all var(--transition-fast)}.recipe-view-link:hover{background:#c4775c1a}.recipe-view-link svg{flex-shrink:0}.recipe-card-no-ingredients{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.recipe-card-no-ingredients svg{flex-shrink:0;opacity:.6}.recipe-item{padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.recipe-item:hover{border-color:var(--color-border-strong)}.recipe-item-header{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.recipe-item-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.recipe-item-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;flex:1}.recipe-edit-btn-inline{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;margin-left:var(--space-xs)}.recipe-edit-btn-inline:hover{background:#c4775c1a;color:var(--color-accent)}.recipe-source-badge{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.recipe-source-badge--marion{background:#c4775c1a;border-color:#c4775c4d;color:var(--color-accent)}.recipe-source-badge--joshua{background:#5c77c41a;border-color:#5c77c44d;color:#5c77c4}.recipe-item-actions{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.recipe-item-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent);text-decoration:none;transition:opacity var(--transition-fast)}.recipe-item-link:hover{opacity:.8}.btn--sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);min-height:32px}.recipe-item-match{margin-bottom:var(--space-sm)}.match-bar{position:relative;width:100%;height:6px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);overflow:hidden}.match-bar-fill{position:relative;height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width var(--transition-normal);z-index:1}.match-bar-topup{position:absolute;top:0;height:100%;background:repeating-linear-gradient(-45deg,#d4a15466,#d4a15466 2px,#d4a15433 2px,#d4a15433 4px);border-radius:var(--radius-full);z-index:2;pointer-events:none}.match-stats{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.match-percent{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.match-detail{color:var(--color-text-secondary)}.recipe-card-row3 .match-bar{margin-bottom:0}.match-detail-button{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--color-text-secondary);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:color var(--transition-fast)}.match-detail-button:hover{color:var(--color-accent)}.recipe-item-placeholder{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:#d4a15414;border:1px solid rgba(212,161,84,.2);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.recipe-item-placeholder svg{flex-shrink:0;color:var(--color-warning)}.recipe-placeholder-link{color:var(--color-accent);text-decoration:underline;font-weight:var(--font-weight-medium)}.recipe-placeholder-link:hover{opacity:.8}.match-bar{position:relative}.match-bar-fill--alt{position:absolute;top:0;height:100%;background:#d4a154b3;border-radius:var(--radius-full);transition:width var(--transition-normal)}.check-alternatives-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-xs)}.check-alternatives-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#c4775c0d}.check-alternatives-btn svg{flex-shrink:0}.alternatives-loading{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;margin-top:var(--space-xs)}.alternatives-available{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:#4caf5014;border:1px solid rgba(76,175,80,.2);border-radius:var(--radius-md);margin-top:var(--space-xs)}.alternatives-header{display:flex;align-items:center;gap:var(--space-xs)}.alternatives-header svg{flex-shrink:0;color:var(--color-success)}.alternatives-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.alternatives-swaps{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.swap-chip{padding:4px var(--space-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.recipes-fab{position:fixed;right:var(--space-md);bottom:calc(var(--space-md) + var(--safe-area-bottom) + 60px);z-index:50}.alternatives-empty{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:#9e9e9e14;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.alternatives-empty svg{flex-shrink:0;color:var(--color-text-tertiary)}.alternatives-error{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:#c75c5c14;border:1px solid rgba(199,92,92,.2);border-radius:var(--radius-md);margin-top:var(--space-xs)}.alternatives-error>div:first-child,.alternatives-error>span{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-danger)}.alternatives-error svg{flex-shrink:0}.alternatives-retry-btn{align-self:flex-start;padding:4px var(--space-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-danger);background:transparent;border:1px solid var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.alternatives-retry-btn:hover{background:var(--color-danger);color:var(--color-white)}.alternatives-retry-btn:active{transform:scale(.95)}.screen-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.packs-toggle-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.packs-toggle-btn:hover{background:var(--color-border);color:var(--color-text-primary);border-color:var(--color-border-strong)}.packs-toggle-btn svg{flex-shrink:0}.recipe-item--locked{opacity:.7}.recipe-lock-indicator{display:inline-flex;align-items:center;margin-left:var(--space-xs);color:var(--color-warning)}.recipe-lock-indicator svg{flex-shrink:0}.recipe-item--locked .recipe-edit-btn-inline{color:var(--color-warning)}.recipe-item--locked .recipe-edit-btn-inline:hover{background:#d4a1541a}@keyframes skeletonPulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.recipe-skeleton{padding:var(--space-md);background:var(--color-surface-glass);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);animation:skeletonPulse 1.5s ease-in-out infinite}.skeleton-line{background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.skeleton-title{width:70%;height:20px;margin-bottom:var(--space-sm)}.skeleton-badge{width:60px;height:18px;margin-bottom:var(--space-md)}.skeleton-bar{width:100%;height:8px;margin-bottom:var(--space-xs)}.skeleton-stats{width:40%;height:14px;margin-bottom:var(--space-sm)}.skeleton-link{width:90px;height:16px}.recipe-card-actions{display:flex;align-items:center;gap:var(--space-xs)}.recipe-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.recipe-action-btn:hover{background:#c4775c1a;color:var(--color-accent)}.recipe-action-btn:disabled{opacity:.5;cursor:not-allowed}.recipe-action-btn--danger:hover{background:#c75c5c1a;color:var(--color-danger)}.recipe-card-link{display:inline-flex;align-items:center;gap:var(--space-xs);margin-left:auto;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent);text-decoration:none;transition:opacity var(--transition-fast)}.recipe-card-link:hover{opacity:.8}.variant-sheet-content{display:flex;flex-direction:column;gap:var(--space-md)}.variant-sheet-content p{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.5}.variant-sheet-content strong{color:var(--color-text-primary)}.variant-sheet-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.variant-sheet-actions .btn{flex:1}.delete-confirm-content{display:flex;flex-direction:column;gap:var(--space-md)}.delete-confirm-content p{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.5}.delete-confirm-content strong{color:var(--color-text-primary)}.delete-confirm-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.delete-confirm-actions .btn{flex:1}.btn--danger{background:var(--color-danger);color:#fff;border:none}.btn--danger:hover{background:#b54b4b}.btn--danger:disabled{background:#ccc;color:#888}.cook-screen{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-bg-primary)}.cook-background{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 30%,var(--color-accent) 0%,transparent 50%);opacity:.08;pointer-events:none}.cook-content{position:relative;display:flex;flex-direction:column;height:100%;padding:var(--space-lg) var(--space-md);padding-bottom:calc(var(--space-lg) + var(--safe-area-bottom));gap:var(--space-md);overflow-y:auto}.cook-hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding-top:max(var(--space-sm),env(safe-area-inset-top));gap:var(--space-md);width:100%;box-sizing:border-box}.cook-orb-wrapper{width:180px;height:180px;margin:0 auto;position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.cook-avatar-container{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.cook-nibbles-head{width:100%;height:100%;animation:orb-float 4s ease-in-out infinite;display:block;margin:0 auto}@media (min-width: 375px){.cook-orb-wrapper{width:200px;height:200px}}@media (min-width: 428px){.cook-orb-wrapper{width:220px;height:220px}}@keyframes orb-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.cook-nibbles-head{animation:none}}.cook-sparkles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:10}.cook-sparkle{position:absolute;width:8px;height:8px;background:var(--color-accent);border-radius:50%;opacity:0;animation:sparkle-burst 1.5s ease-out infinite;box-shadow:0 0 6px 2px var(--color-accent)}.cook-sparkle:nth-child(1){top:10%;left:20%;animation-delay:0s}.cook-sparkle:nth-child(2){top:15%;right:15%;animation-delay:.2s}.cook-sparkle:nth-child(3){top:50%;left:5%;animation-delay:.4s}.cook-sparkle:nth-child(4){top:45%;right:8%;animation-delay:.6s}.cook-sparkle:nth-child(5){bottom:20%;left:15%;animation-delay:.8s}.cook-sparkle:nth-child(6){bottom:15%;right:20%;animation-delay:1s}.cook-sparkle:nth-child(7){top:30%;left:50%;animation-delay:.3s}.cook-sparkle:nth-child(8){bottom:35%;left:50%;animation-delay:.7s}.cook-sparkle--star{background:transparent;box-shadow:none;width:12px;height:12px}.cook-sparkle--star:before,.cook-sparkle--star:after{content:"";position:absolute;background:var(--color-accent);border-radius:2px}.cook-sparkle--star:before{width:100%;height:3px;top:50%;left:0;transform:translateY(-50%)}.cook-sparkle--star:after{width:3px;height:100%;left:50%;top:0;transform:translate(-50%)}@keyframes sparkle-burst{0%{opacity:0;transform:scale(0) rotate(0)}20%{opacity:1;transform:scale(1) rotate(45deg)}50%{opacity:1;transform:scale(1.2) rotate(90deg)}to{opacity:0;transform:scale(0) rotate(180deg)}}@media (prefers-reduced-motion: reduce){.cook-sparkle{animation:none;opacity:0}}.cook-helper-line{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:280px;line-height:1.4}.cook-helper-name{font-weight:var(--font-weight-semibold);color:var(--color-accent)}.cook-tokens{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.cook-token{position:absolute;top:50%;left:50%;display:flex;align-items:center;gap:4px;padding:var(--space-xs) var(--space-sm);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;animation:token-orbit 15s linear infinite,token-fade-in .5s ease-out;animation-delay:calc(var(--token-index, 0) * .1s);box-shadow:0 2px 8px #0000001a}.cook-token-icon{font-size:14px;line-height:1}.cook-token--cuisine{background:linear-gradient(135deg,var(--color-surface-glass),rgba(255,165,0,.1));border-color:#ffa5004d}.cook-token--protein{background:linear-gradient(135deg,var(--color-surface-glass),rgba(239,68,68,.1));border-color:#ef44444d}.cook-token--keyword{background:linear-gradient(135deg,var(--color-surface-glass),rgba(59,130,246,.1));border-color:#3b82f64d}@keyframes token-fade-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes token-orbit{0%{transform:rotate(calc(var(--token-index, 0) * 45deg)) translate(100px) rotate(calc(var(--token-index, 0) * -45deg))}to{transform:rotate(calc(var(--token-index, 0) * 45deg + 360deg)) translate(100px) rotate(calc(var(--token-index, 0) * -45deg - 360deg))}}@media (prefers-reduced-motion: reduce){.cook-token{animation:token-fade-in .5s ease-out;animation-delay:calc(var(--token-index, 0) * .1s);animation-fill-mode:both;position:static;display:inline-block;margin:var(--space-xs)}.cook-tokens{position:static;display:flex;flex-wrap:wrap;justify-content:center;margin-top:var(--space-md);pointer-events:auto}}.cook-input-section{display:flex;flex-direction:column;gap:var(--space-sm);z-index:10}.cook-input-wrapper{position:relative;display:flex;align-items:center;gap:var(--space-xs)}.cook-input{flex:1;padding:var(--space-md) var(--space-lg);padding-right:52px;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));border:1px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.cook-input::placeholder{color:var(--color-text-tertiary);transition:opacity .3s ease}.cook-input:focus{outline:none;background:var(--color-surface-glass-elevated);border-color:var(--color-accent);box-shadow:0 0 0 3px #c4775c1a}.cook-input:disabled{opacity:.5;cursor:not-allowed}.cook-input--acknowledged{border-color:var(--color-accent)}.cook-mic-btn,.cook-search-btn{position:absolute;right:8px;width:40px;height:40px;border-radius:50%;background:var(--color-surface-glass);border:none;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.cook-mic-btn:hover,.cook-search-btn:hover{background:var(--color-surface-glass-elevated);transform:scale(1.05)}.cook-mic-btn--listening{background:#ef444433;color:#ef4444;animation:mic-pulse 1s ease-in-out infinite}.cook-mic-btn--pulse{animation:mic-idle-pulse 2s ease-in-out infinite}@keyframes mic-idle-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--color-accent)}50%{transform:scale(1.03);box-shadow:0 0 0 4px #c4775c26}}@keyframes mic-pulse{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.05);box-shadow:0 0 0 8px #ef444400}}.cook-voice-hint{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-tertiary);animation:voice-hint-fade-in .5s ease-out}@keyframes voice-hint-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cook-acknowledgement{text-align:center;font-size:var(--font-size-sm);color:var(--color-accent);font-weight:var(--font-weight-medium);animation:ack-fade .8s ease-out forwards}@keyframes ack-fade{0%{opacity:0;transform:translateY(-4px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:.7}}.cook-loading{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cook-error{text-align:center;color:var(--color-danger);font-size:var(--font-size-sm)}.cook-card-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--space-sm)}.cook-card-counter{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-xs) var(--space-sm);background:var(--color-surface-glass);border-radius:var(--radius-xl)}.cook-card{width:100%;max-width:400px;padding:var(--space-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-glass));backdrop-filter:blur(var(--blur-glass));border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:transform var(--transition-fast)}.cook-card-header{margin-bottom:var(--space-md)}.cook-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs) 0;line-height:1.3}.cook-card-meta{display:flex;gap:var(--space-xs);flex-wrap:wrap}.cook-card-cuisine,.cook-card-source{display:inline-block;padding:2px var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cook-card-cuisine{text-transform:capitalize}.cook-card-domain{color:var(--color-text-secondary)}.cook-card-pack{color:var(--color-text-tertiary)}.cook-card-match{margin-bottom:var(--space-md)}.cook-card-match-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.cook-card-match-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.cook-card-match-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);transition:color var(--transition-fast)}.cook-card-match-value.cook-match-bar--neutral{color:var(--color-text-secondary)}.cook-card-match-value.cook-match-bar--warm{color:#d97706}.cook-card-match-value.cook-match-bar--good{color:var(--color-success)}.cook-card-match-value.cook-match-bar--vibrant{color:#16a34a}.cook-card-match-boost{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-success);margin-left:var(--space-xs)}.cook-card-match-bar{position:relative;height:6px;background:var(--color-bg-tertiary);border-radius:3px;overflow:hidden}.cook-card-match-fill{height:100%;border-radius:3px;transition:width .3s ease,background .3s ease}.cook-card-match-bar.cook-match-bar--neutral .cook-card-match-fill{background:var(--color-text-tertiary)}.cook-card-match-bar.cook-match-bar--warm .cook-card-match-fill{background:linear-gradient(90deg,#f59e0b,#d97706)}.cook-card-match-bar.cook-match-bar--good .cook-card-match-fill{background:linear-gradient(90deg,var(--color-success) 0%,#059669 100%)}.cook-card-match-bar.cook-match-bar--vibrant .cook-card-match-fill{background:linear-gradient(90deg,#22c55e,#16a34a)}.cook-card-match-fill{background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent-hover) 100%)}.cook-card-match-fill--alt{position:absolute;top:0;height:100%;background:var(--color-success);opacity:.5;border-radius:var(--radius-sm)}.cook-card-summary{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.cook-card-summary-stat{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.cook-card-summary-stat--secondary{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.cook-card-explanation{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:#c4775c1a;border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.cook-card-explanation-icon{font-size:var(--font-size-base);flex-shrink:0}.cook-card-explanation-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.cook-card-matches{padding:var(--space-xs) 0;margin-bottom:var(--space-sm)}.cook-card-matches-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cook-card-matches-more{all:unset;color:var(--color-accent);cursor:pointer;font-weight:var(--font-weight-medium)}.cook-card-matches-more:hover{text-decoration:underline}.cook-card-matches-hint{color:var(--color-text-tertiary);font-style:italic}.cook-card-actions{display:flex;gap:var(--space-sm);justify-content:space-between}.cook-card-btn{flex:1;padding:var(--space-md) var(--space-sm);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.cook-card-btn--nope{background:#c75c5c26;color:var(--color-danger);border:1px solid rgba(199,92,92,.3)}.cook-card-btn--nope:hover{background:#c75c5c40;transform:translateY(-2px)}.cook-card-btn--cook{background:var(--color-accent);color:var(--color-white);flex:1.5}.cook-card-btn--cook:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.cook-card-btn--like{background:#4a9e6d26;color:var(--color-success);border:1px solid rgba(74,158,109,.3)}.cook-card-btn--like:hover{background:#4a9e6d40;transform:translateY(-2px)}.cook-card-action-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.cook-card-action-btn{all:unset;box-sizing:border-box;flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);text-align:center}.cook-card-action-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-accent)}.cook-card-action-btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.cook-card-action-btn--primary:hover{background:var(--color-accent-hover)}.cook-card-alt-cta{all:unset;box-sizing:border-box;width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-surface-glass);border:1px dashed var(--color-accent);border-radius:var(--radius-lg);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-align:center;transition:all var(--transition-fast);margin-bottom:var(--space-md)}.cook-card-alt-cta:hover{background:#c4775c1a;border-style:solid}.cook-card-substitutions{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-md);pointer-events:auto;position:relative;z-index:1}.cook-card-subs-header{display:flex;align-items:center;gap:var(--space-xs)}.cook-card-subs-icon{font-size:var(--font-size-base);flex-shrink:0}.cook-card-subs-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.cook-card-subs-list{display:flex;flex-direction:column;gap:var(--space-xs)}.cook-card-sub-item{display:flex;flex-direction:column;gap:2px}.cook-card-sub-text{font-size:var(--font-size-sm);color:var(--color-text-primary)}.cook-card-sub-text strong{font-weight:var(--font-weight-semibold)}.cook-card-sub-reason{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.cook-card-subs-loading{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;margin-bottom:var(--space-md)}.cook-card-subs-status{display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-md);pointer-events:auto;position:relative;z-index:1}.cook-card-subs-status-icon{flex-shrink:0;font-size:var(--font-size-base)}.cook-card-subs-status-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.4}.cook-followup-section{display:flex;flex-direction:column;gap:var(--space-xs);align-items:center;margin-top:var(--space-sm);animation:followup-fade-in .3s ease-out}@keyframes followup-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cook-followup-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cook-followup-chips{display:flex;gap:var(--space-xs);flex-wrap:wrap;justify-content:center}.cook-chip--followup{background:var(--color-surface-glass-elevated);border-color:var(--color-accent);color:var(--color-accent)}.cook-chip--followup:hover{background:var(--color-accent);color:var(--color-white)}.cook-suggestions{display:flex;flex-direction:column;gap:var(--space-md);margin-top:auto;padding-bottom:var(--space-md)}.cook-assistive-pills{display:flex;justify-content:center;gap:var(--space-sm);flex-wrap:wrap}.cook-assistive-pill{padding:var(--space-sm) var(--space-lg);background:var(--color-accent);border:none;border-radius:var(--radius-full);color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.cook-assistive-pill:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.cook-assistive-pill--secondary{background:var(--color-surface-glass);border:1px solid var(--color-border);color:var(--color-text-secondary)}.cook-assistive-pill--secondary:hover{background:var(--color-surface-glass-elevated);border-color:var(--color-accent);color:var(--color-accent)}.cook-expanded-suggestions{display:flex;flex-direction:column;gap:var(--space-lg);animation:fade-in-up .2s ease-out}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cook-suggestion-section{display:flex;flex-direction:column;gap:var(--space-sm)}.cook-suggestion-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.cook-suggestion-chips{display:flex;gap:var(--space-xs);overflow-x:auto;padding-bottom:var(--space-xs);-webkit-overflow-scrolling:touch}.cook-suggestion-chips::-webkit-scrollbar{height:4px}.cook-suggestion-chips::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:2px}.cook-suggestion-chips::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px}.cook-chip{flex-shrink:0;padding:var(--space-xs) var(--space-md);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.cook-chip:hover{background:var(--color-surface-glass-elevated);border-color:var(--color-border-strong);transform:translateY(-2px)}.cook-chip--special{background:var(--color-surface-glass-elevated);border-color:var(--color-accent);color:var(--color-accent)}.cook-chip--special:hover{background:var(--color-accent);color:var(--color-white)}.cook-chip--inventory{background:var(--color-success-bg, rgba(34, 197, 94, .1));border-color:var(--color-success, #22c55e);color:var(--color-success, #22c55e)}.cook-chip--inventory:hover{background:var(--color-success, #22c55e);color:var(--color-white)}.cook-quick-filters{display:flex;flex-direction:column;gap:var(--space-xs)}.cook-filter-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);width:100%;text-align:left}.cook-filter-btn:hover{background:var(--color-surface-glass-elevated);border-color:var(--color-accent);transform:translate(4px)}.cook-filter-icon{font-size:var(--font-size-xl);flex-shrink:0}.cook-filter-text{flex:1}.cook-card--swiping{transition:none}.cook-card--swipe-left{animation:swipe-left .3s ease-out forwards}.cook-card--swipe-right{animation:swipe-right .3s ease-out forwards}@keyframes swipe-left{to{transform:translate(-120%) rotate(-20deg);opacity:0}}@keyframes swipe-right{to{transform:translate(120%) rotate(20deg);opacity:0}}.cook-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);text-align:center;background:var(--color-surface-glass);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-top:var(--space-md)}.cook-empty-state-icon{font-size:48px;margin-bottom:var(--space-sm)}.cook-empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.cook-empty-state-text{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--space-sm);max-width:320px}.cook-empty-state-cta{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-sm)}.cook-empty-state-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}.cook-cta-btn{all:unset;box-sizing:border-box;padding:var(--space-md) var(--space-lg);background:var(--color-accent);color:var(--color-white);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);text-align:center}.cook-cta-btn:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.cook-cta-btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.cook-cta-btn--secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-accent)}.cook-ingredients-modal{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg)}.cook-ingredients-section{display:flex;flex-direction:column;gap:var(--space-sm)}.cook-ingredients-section--alt{background:var(--color-success-bg, rgba(34, 197, 94, .1));padding:var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--color-success, #22c55e)}.cook-ingredients-success{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);margin-bottom:var(--space-md);background:var(--color-success-bg, rgba(34, 197, 94, .1));border-radius:var(--radius-lg);border:1px solid var(--color-success, #22c55e)}.cook-ingredients-success-icon{font-size:var(--font-size-lg)}.cook-ingredients-success-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-success, #22c55e)}.cook-ingredients-section-title{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cook-ingredients-section-icon{flex-shrink:0}.cook-ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cook-ingredient-item{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-bg-tertiary)}.cook-ingredient-item--have{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);color:var(--color-success);background:#7db47d1a}.cook-ingredient-item--missing{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);color:var(--color-text-secondary);background:var(--color-bg-tertiary)}.cook-ingredient-item--more{color:var(--color-text-tertiary);font-style:italic;background:transparent}.cook-ingredient-item--actioned{background:var(--color-success-bg, rgba(34, 197, 94, .1))}.cook-ingredient-name{flex:1;min-width:0}.cook-ingredient-status{font-size:var(--text-xs);opacity:.7}.cook-ingredient-status--low{color:var(--color-warning)}.cook-ingredient-status--staple{color:var(--color-text-tertiary)}.cook-ingredient-actions{display:flex;gap:4px;flex-shrink:0}.cook-ingredient-action-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:var(--color-accent);border:none;border-radius:var(--radius-full);color:var(--color-white);cursor:pointer;transition:all var(--transition-fast)}.cook-ingredient-action-btn:hover:not(:disabled){background:var(--color-accent-hover);transform:scale(1.1)}.cook-ingredient-action-btn:disabled{opacity:.5;cursor:not-allowed}.cook-ingredient-action-btn--icon{width:28px;height:28px;padding:0}.cook-ingredient-action-btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.cook-ingredient-action-btn--secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-accent);color:var(--color-accent)}.cook-ingredient-action-btn--muted{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.cook-ingredient-action-btn--muted:hover:not(:disabled){background:#ef44441a;border-color:var(--color-danger);color:var(--color-danger)}.cook-ingredient-spinner{font-size:var(--font-size-xs)}.cook-ingredient-action-done{font-size:var(--font-size-xs);color:var(--color-success, #22c55e);font-weight:var(--font-weight-medium)}.cook-ingredients-expand-btn{all:unset;box-sizing:border-box;padding:var(--space-xs) var(--space-sm);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--transition-fast)}.cook-ingredients-expand-btn:hover{color:var(--color-accent-hover);text-decoration:underline}.cook-ingredients-more-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic;padding:var(--space-xs) var(--space-sm)}.cook-ingredient-item--alt{display:flex;flex-direction:column;gap:2px;background:#4a9e6d26}.cook-ingredient-alt-reason{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.cook-ingredients-check-alt-btn{all:unset;box-sizing:border-box;width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;text-align:center;transition:all var(--transition-fast)}.cook-ingredients-check-alt-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-accent)}.cook-ingredients-loading{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic;text-align:center}.cook-ingredients-status{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);text-align:center}.cook-ingredients-status-icon{font-size:var(--font-size-lg)}.cook-ingredients-status-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.cook-ingredients-retry-btn{all:unset;box-sizing:border-box;padding:var(--space-xs) var(--space-md);background:var(--color-accent);color:var(--color-white);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.cook-ingredients-retry-btn:hover{background:var(--color-accent-hover)}.cook-shopping-modal{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.cook-shopping-modal-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.cook-shopping-modal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs);max-height:200px;overflow-y:auto}.cook-shopping-modal-item{font-size:var(--font-size-sm);color:var(--color-text-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);display:flex;align-items:center;gap:var(--space-xs)}.cook-shopping-modal-item:before{content:"•";color:var(--color-text-tertiary)}.cook-shopping-modal-alt-hint{display:flex;justify-content:center}.cook-shopping-modal-alt-btn{all:unset;font-size:var(--font-size-sm);color:var(--color-accent);cursor:pointer;text-decoration:underline}.cook-shopping-modal-alt-btn:hover{color:var(--color-accent-hover)}.cook-shopping-modal-alt-btn:disabled{color:var(--color-text-tertiary);cursor:not-allowed}.cook-shopping-modal-alternatives{padding:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.cook-shopping-modal-alt-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0 0 var(--space-xs) 0}.cook-shopping-modal-alt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cook-shopping-modal-alt-item{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cook-shopping-modal-alt-item strong{color:var(--color-accent)}.cook-shopping-modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.cook-shopping-modal-btn{all:unset;box-sizing:border-box;flex:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;text-align:center;transition:all var(--transition-fast)}.cook-shopping-modal-btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.cook-shopping-modal-btn--secondary:hover{background:var(--color-bg-secondary)}.cook-shopping-modal-btn--primary{background:var(--color-accent);color:var(--color-white);border:none}.cook-shopping-modal-btn--primary:hover{background:var(--color-accent-hover)}.cook-shopping-modal-btn:disabled{opacity:.6;cursor:not-allowed}.cook-card-debug{padding:var(--space-sm);margin-bottom:var(--space-md);background:#ffc1071a;border:1px dashed rgba(255,193,7,.4);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.cook-card-debug-title{font-weight:var(--font-weight-semibold);color:#b8860b;margin-bottom:var(--space-xs)}.cook-card-debug-row{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:2px;color:var(--color-text-secondary)}.cook-card-debug-row code{font-family:monospace;font-size:var(--font-size-xs);background:var(--color-bg-tertiary);padding:1px 4px;border-radius:2px;word-break:break-all}.cook-card-debug-penalty{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.cook-card-debug-fresh{color:var(--color-success)}.cook-card-debug-badges{display:flex;gap:var(--space-xs);flex-wrap:wrap}.cook-card-debug-badge{display:inline-block;padding:1px 6px;background:#ffc10733;border-radius:var(--radius-sm);color:#b8860b;font-size:10px;font-weight:var(--font-weight-medium)}.cook-card-why-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.cook-status-pill{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-surface-glass);border:1px solid var(--color-border);color:var(--color-text-secondary)}.cook-status-pill--success{background:var(--color-success-bg, rgba(34, 197, 94, .15));border-color:var(--color-success, #22c55e);color:var(--color-success, #22c55e)}.cook-status-pill--good{background:var(--color-accent-bg, rgba(59, 130, 246, .15));border-color:var(--color-accent);color:var(--color-accent)}.cook-status-pill--warm{background:#fbbf2426;border-color:var(--color-warning, #fbbf24);color:var(--color-warning, #fbbf24)}.cook-status-pill--neutral{background:var(--color-surface-glass);border-color:var(--color-border);color:var(--color-text-secondary)}.cook-status-pill--lg{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.cook-why-btn{padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .15s ease;flex-shrink:0}.cook-why-btn:hover{background:var(--color-surface-glass);border-color:var(--color-accent);color:var(--color-accent)}.cook-why-btn:active{transform:scale(.96)}.cook-why-modal{padding:var(--space-sm)}.cook-why-status{display:flex;justify-content:center;margin-bottom:var(--space-lg)}.cook-why-section{margin-bottom:var(--space-lg)}.cook-why-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.cook-why-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.cook-why-tag{display:inline-block;padding:var(--space-xs) var(--space-sm);background:var(--color-accent-bg, rgba(59, 130, 246, .15));border:1px solid var(--color-accent);border-radius:var(--radius-full);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.cook-why-coverage{display:flex;flex-direction:column;gap:var(--space-xs)}.cook-why-coverage-bar{position:relative;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.cook-why-coverage-fill{position:absolute;top:0;left:0;height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width .3s ease}.cook-why-coverage-fill--alt{background:var(--color-success, #22c55e);opacity:.7}.cook-why-coverage-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cook-why-coverage-alt{color:var(--color-success, #22c55e)}.cook-why-alt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cook-why-alt-item{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);background:var(--color-surface-glass);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.cook-why-alt-item strong{color:var(--color-text-primary)}.cook-why-debug{margin-top:var(--space-lg);padding:var(--space-sm);background:#ffc1071a;border:1px dashed rgba(255,193,7,.4);border-radius:var(--radius-sm)}.cook-why-debug-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:#b8860b;margin:0 0 var(--space-sm) 0}.cook-why-debug-row{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cook-why-debug-row span:first-child{flex-shrink:0;min-width:100px;font-weight:var(--font-weight-medium)}.cook-why-debug-row code{font-family:monospace;font-size:var(--font-size-xs);background:var(--color-bg-tertiary);padding:1px 4px;border-radius:2px;word-break:break-all}.cook-card-why-section{margin-bottom:var(--space-md)}.cook-card-why-line{display:flex;align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-surface-glass);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.cook-card-why-icon{font-size:var(--font-size-sm);flex-shrink:0}.cook-card-why-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.cook-recommendation-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm)}.cook-recommendation-badge--best{background:var(--color-success-bg, rgba(34, 197, 94, .15));border:1px solid var(--color-success, #22c55e);color:var(--color-success, #22c55e)}.cook-recommendation-badge--swap{background:#3b82f626;border:1px solid var(--color-accent);color:var(--color-accent)}.cook-recommendation-badge--simple{background:#a855f726;border:1px solid #a855f7;color:#a855f7}.cook-recommendation-badge--near{background:#fbbf2426;border:1px solid var(--color-warning, #fbbf24);color:var(--color-warning, #fbbf24)}.cook-recommendation-badge-icon{font-size:var(--font-size-sm)}.cook-confirm-modal{padding:var(--space-sm)}.cook-confirm-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.cook-confirm-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);flex:1;min-width:0}.cook-confirm-section{margin-bottom:var(--space-lg)}.cook-confirm-section--alt{background:var(--color-success-bg, rgba(34, 197, 94, .1));padding:var(--space-sm);border-radius:var(--radius-lg);border:1px solid var(--color-success, #22c55e)}.cook-confirm-section-title{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-xs)}.cook-confirm-alt-icon{font-size:var(--font-size-base)}.cook-confirm-missing-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-xs)}.cook-confirm-missing-item{display:inline-flex;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cook-confirm-missing-item--more{color:var(--color-text-muted);font-style:italic}.cook-confirm-alt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cook-confirm-alt-item{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cook-confirm-alt-item strong{color:var(--color-text-primary)}.cook-confirm-alt-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);background:var(--color-surface-glass);border:1px dashed var(--color-accent);border-radius:var(--radius-lg);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .15s ease}.cook-confirm-alt-btn:hover{background:var(--color-accent-bg, rgba(59, 130, 246, .1))}.cook-confirm-alt-btn-icon{font-size:var(--font-size-base)}.cook-confirm-loading{text-align:center;padding:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cook-confirm-ready{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--color-success-bg, rgba(34, 197, 94, .1));border-radius:var(--radius-lg);border:1px solid var(--color-success, #22c55e);color:var(--color-success, #22c55e);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.cook-confirm-ready-icon{font-size:var(--font-size-lg)}.cook-confirm-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.cook-confirm-btn{width:100%;padding:var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .15s ease}.cook-confirm-btn--primary{background:var(--color-accent);color:var(--color-white);border:none}.cook-confirm-btn--primary:hover{background:var(--color-accent-hover)}.cook-confirm-btn--primary:active{transform:scale(.98)}.cook-confirm-btn--secondary{background:var(--color-surface-glass);color:var(--color-text-primary);border:1px solid var(--color-border)}.cook-confirm-btn--secondary:hover{background:var(--color-bg-secondary)}.cook-confirm-btn--tertiary{background:transparent;color:var(--color-text-secondary);border:none;font-weight:var(--font-weight-medium)}.cook-confirm-btn--tertiary:hover{color:var(--color-text-primary)}.nibbles-head{position:relative;flex-shrink:0;overflow:visible;contain:layout style}.nibbles-head:before{content:"";position:absolute;top:-30px;left:-30px;right:-30px;bottom:-30px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 35%,#fdfffccc 42%,#fdfffc66 48%,#fdfffc00 55%,#f8f7f4 55%,#f8f7f4);filter:blur(8px);pointer-events:none;z-index:0;will-change:transform;transform:translateZ(0)}.nibbles-head-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center center;display:block;border-radius:var(--radius-xl);transition:opacity .2s ease-in-out;z-index:1;will-change:opacity;transform:translateZ(0);-webkit-transform:translateZ(0)}.nibbles-head-video--active{opacity:1;z-index:2}.nibbles-head-video--inactive{opacity:0;z-index:1}[data-theme=dark] .nibbles-head:before{top:-35px;left:-35px;right:-35px;bottom:-35px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 32%,#fdfffcb3,#fdfffc4d,#fdfffc00 56%,#1a1a1c 56%,#1a1a1c);filter:blur(12px)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .nibbles-head:before{top:-35px;left:-35px;right:-35px;bottom:-35px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 32%,#fdfffcb3,#fdfffc4d,#fdfffc00 56%,#1a1a1c 56%,#1a1a1c);filter:blur(12px)}}@media (prefers-reduced-motion: reduce){.nibbles-head-video{transition:none}}.shopping-screen{display:flex;flex-direction:column;height:100%}.shopping-content{flex:1;overflow-y:auto;padding-top:var(--space-md)}.shopping-items-list{display:flex;flex-direction:column;gap:var(--space-sm)}.shopping-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.shopping-item:hover{border-color:var(--color-border-strong)}.shopping-item--checked{opacity:.6}.shopping-item--checked .shopping-item-name{text-decoration:line-through;color:var(--color-text-secondary)}.shopping-item-checkbox{width:22px;height:22px;cursor:pointer;flex-shrink:0;accent-color:var(--color-accent)}.shopping-item-content{flex:1;cursor:pointer;min-width:0}.shopping-item-name{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-item-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.shopping-item-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);flex-shrink:0}.shopping-item-delete:hover{background:#c75c5c1a;color:var(--color-danger)}.shopping-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--color-text-secondary)}.shopping-empty p{margin:0;line-height:1.6}.shopping-add-sheet-content{display:flex;flex-direction:column;gap:var(--space-md)}.sheet-form-field{display:flex;flex-direction:column;gap:var(--space-xs)}.sheet-form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.sheet-form-input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.sheet-form-input:focus{outline:none;border-color:var(--color-accent)}.sheet-form-input::placeholder{color:var(--color-text-tertiary)}.sheet-form-row{display:flex;gap:var(--space-sm)}.sheet-form-row .sheet-form-field{flex:1}.sheet-form-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.sheet-form-actions .btn{flex:1}.btn{padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:var(--color-white)}.btn--primary:hover:not(:disabled){opacity:.9}.btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){border-color:var(--color-border-strong)}.segmented-control{display:inline-flex;background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:3px;gap:2px}.segmented-control-segment{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:calc(var(--radius-md) - 2px);transition:all var(--transition-fast);min-height:36px;white-space:nowrap}.segmented-control-segment:hover:not(.segmented-control-segment--active){color:var(--color-text-primary)}.segmented-control-segment--active{background:var(--color-surface-solid);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.settings-screen{display:flex;flex-direction:column}.settings-sections{display:flex;flex-direction:column;gap:var(--space-xl)}.settings-section{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;padding-left:var(--space-xs)}.settings-card{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.settings-row{display:flex;flex-direction:column;gap:var(--space-sm)}@media (min-width: 400px){.settings-row:not(.settings-row--vertical){flex-direction:row;align-items:center;justify-content:space-between}}.settings-row--vertical{flex-direction:column;align-items:flex-start}.settings-row-label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.settings-row-icon{font-size:18px}.settings-row-description{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0}.settings-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);padding:var(--space-sm) 0 0;border-top:1px solid var(--color-border)}.away-options{display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.away-field{display:flex;flex-direction:column;gap:var(--space-xs)}.away-field-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.away-dates{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.away-summary{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#d4a1541f;border-radius:var(--radius-md)}.away-summary-icon{font-size:18px}.away-summary-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-warning)}.away-summary-dates{font-weight:var(--font-weight-normal);opacity:.8}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl);text-align:center}.empty-state-icon{font-size:48px}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.empty-state-inline{display:flex;align-items:center;justify-content:center;padding:var(--space-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm);text-align:center}.settings-section-header{display:flex;align-items:center;justify-content:space-between}.settings-section-footer{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding-left:var(--space-xs);margin-top:calc(var(--space-xs) * -1)}.settings-row-value{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.settings-row-chevron{color:var(--color-text-tertiary);flex-shrink:0}.settings-row-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding-left:calc(18px + var(--space-sm));margin-top:calc(var(--space-xs) * -1)}.settings-row-divider{height:1px;background:var(--color-border);margin:0 calc(var(--space-md) * -1)}.settings-row--button{all:unset;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;cursor:pointer;transition:opacity var(--transition-fast)}.settings-row--button:hover{opacity:.7}.settings-row--button:active{opacity:.5}.settings-row--button:disabled{opacity:.4;cursor:not-allowed}.settings-row--danger,.settings-row--danger .settings-row-icon{color:var(--color-danger)}.toggle-switch{position:relative;display:inline-block;width:51px;height:31px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);transition:var(--transition-base);border-radius:31px}.toggle-slider:before{position:absolute;content:"";height:27px;width:27px;left:1px;bottom:1px;background-color:var(--color-white);transition:var(--transition-base);border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-accent);border-color:var(--color-accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.add-staple-btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:var(--color-white);cursor:pointer;transition:opacity var(--transition-fast);flex-shrink:0}.add-staple-btn:hover{opacity:.8}.add-staple-btn:active{opacity:.6}.add-staple-form{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.add-staple-actions{display:flex;gap:var(--space-sm)}.add-staple-actions .btn{flex:1}.staple-actions{display:flex;align-items:center;gap:var(--space-sm)}.staple-delete-btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--color-danger);cursor:pointer;transition:all var(--transition-fast)}.staple-delete-btn:hover{background:#c75c5c1a}.staple-delete-btn:active{opacity:.6}.privacy-text-content{display:flex;flex-direction:column;gap:var(--space-md);line-height:1.5}.privacy-text-content p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.btn--small{height:36px;padding:0 var(--space-md);font-size:var(--font-size-sm)}.btn--danger{background:var(--color-danger);color:var(--color-white)}.btn--danger:hover{background:#b54f4f}.staples-screen{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--color-background)}.staples-content{flex:1;display:flex;flex-direction:column;gap:16px;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));overflow-y:auto}.staples-actions-row{display:flex;gap:12px;align-items:center}.staples-search{flex:1;position:relative;display:flex;align-items:center}.staples-search-icon{position:absolute;left:12px;color:var(--color-text-tertiary);pointer-events:none}.staples-search-input{width:100%;padding:10px 36px;font-size:15px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.staples-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.staples-search-input::placeholder{color:var(--color-text-tertiary)}.staples-search-clear{position:absolute;right:8px;padding:6px;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center}.staples-search-clear:hover{background:var(--color-surface-elevated);color:var(--color-text-secondary)}.staples-add-btn{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:none;border-radius:50%;cursor:pointer;color:#fff;transition:transform .1s,opacity .2s}.staples-add-btn:hover{opacity:.9}.staples-add-btn:active{transform:scale(.95)}.staples-add-form{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px}.staples-add-input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-background);color:var(--color-text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.staples-add-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.staples-add-input::placeholder{color:var(--color-text-tertiary)}.staples-add-input:disabled{opacity:.6}.staples-add-actions{display:flex;justify-content:flex-end;gap:8px}.staples-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 16px;color:var(--color-text-secondary);font-size:14px}.staples-error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;background:var(--color-error-bg, #fef2f2);border-radius:12px;color:var(--color-error, #dc2626);font-size:14px;text-align:center}.staples-no-results{padding:32px 16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.staples-sections{display:flex;flex-direction:column;gap:24px}.staples-section{display:flex;flex-direction:column;gap:8px}.staples-section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0}.staples-section-title svg{color:var(--color-text-secondary)}.staples-section-count{font-weight:400;color:var(--color-text-tertiary);margin-left:4px}.staples-section-hint{font-size:13px;color:var(--color-text-tertiary);margin:0 0 4px}.staples-chips{display:flex;flex-wrap:wrap;gap:8px}.staple-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;font-size:14px;font-weight:500;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;cursor:pointer;color:var(--color-text-primary);transition:all .15s ease}.staple-chip:hover{background:var(--color-surface-elevated);border-color:var(--color-text-tertiary)}.staple-chip:active{transform:scale(.97)}.staple-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.staple-chip--active:hover{background:var(--color-primary-dark, #2563eb);border-color:var(--color-primary-dark, #2563eb)}.staple-chip-x,.staple-chip-plus{opacity:0;transition:opacity .15s}.staple-chip:hover .staple-chip-x,.staple-chip:hover .staple-chip-plus{opacity:.7}.staple-chip--active .staple-chip-x{color:#fff}.staples-screen .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 16px;text-align:center}.staples-screen .empty-state-icon{font-size:48px;line-height:1}.staples-screen .empty-state-title{font-size:17px;font-weight:600;color:var(--color-text-primary)}.staples-screen .empty-state-text{font-size:14px;color:var(--color-text-secondary)}.packs-screen{display:flex;flex-direction:column;gap:var(--space-md)}.packs-household-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.packs-household-icon{font-size:16px}.packs-household-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.packs-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl);color:var(--color-text-secondary)}.packs-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;color:var(--color-danger)}.packs-list{display:flex;flex-direction:column;gap:var(--space-md)}.pack-card{display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-fast)}.pack-card:hover{border-color:var(--color-border-strong)}.pack-card--available{border-color:#4caf504d}.pack-card--available:hover{border-color:#4caf5080}.pack-card-image{position:relative;aspect-ratio:16 / 9;background:var(--color-bg-tertiary)}.pack-card-image img{width:100%;height:100%;object-fit:cover}.pack-card-badge{position:absolute;top:var(--space-sm);right:var(--space-sm);display:flex;align-items:center;gap:4px;padding:4px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.pack-card-badge--available{background:#4caf50e6;color:#fff}.pack-card-content{padding:var(--space-md);flex:1}.pack-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.pack-card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-sm);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pack-card-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.pack-card-recipes{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.pack-card-price{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-accent)}.pack-card-actions{padding:0 var(--space-md) var(--space-md)}.pack-card-actions .btn{width:100%}.share-limit-content{display:flex;flex-direction:column;gap:var(--space-md)}.share-limit-content p{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.5}.share-limit-content strong{color:var(--color-text-primary)}.share-limit-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.purchases-screen{display:flex;flex-direction:column;gap:var(--space-md)}.purchases-restore{display:flex;justify-content:center}.purchases-restore .btn{display:flex;align-items:center;gap:var(--space-sm)}.purchases-tabs{display:flex;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.purchases-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.purchases-tab:hover{color:var(--color-text-primary)}.purchases-tab--active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.purchases-tab-count{padding:2px 6px;background:var(--color-accent);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#fff}.purchases-loading,.purchases-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl);color:var(--color-text-secondary)}.purchases-error{color:var(--color-danger)}.purchases-section{flex:1}.owned-packs-list{display:flex;flex-direction:column;gap:var(--space-sm)}.owned-pack-card{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.owned-pack-image{width:60px;height:60px;border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.owned-pack-image img{width:100%;height:100%;object-fit:cover}.owned-pack-content{flex:1;min-width:0}.owned-pack-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.owned-pack-meta{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.owned-pack-recipes{color:var(--color-text-secondary)}.assignments-list{display:flex;flex-direction:column;gap:var(--space-md)}.assignment-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.assignment-card-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md)}.assignment-card-thumb{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.assignment-card-info{flex:1;min-width:0}.assignment-card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xs)}.assignment-card-count{font-size:var(--font-size-sm)}.assignment-count{padding:2px 8px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.assignment-count--full{background:#d4a15426;color:var(--color-warning)}.assignment-households{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:0 var(--space-md) var(--space-md)}.assignment-household{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.assignment-household--current{background:#4caf501a;border:1px solid rgba(76,175,80,.3)}.assignment-household-icon{font-size:12px}.assignment-household-name{color:var(--color-text-primary)}.assignment-household-badge{padding:1px 4px;background:#4caf5033;border-radius:3px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#4caf50}.assignment-sheet-content{display:flex;flex-direction:column;gap:var(--space-md)}.assignment-sheet-header{text-align:center}.assignment-sheet-section{display:flex;flex-direction:column;gap:var(--space-sm)}.assignment-sheet-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0;text-transform:uppercase;letter-spacing:.05em}.assignment-sheet-list{display:flex;flex-direction:column;gap:var(--space-xs)}.assignment-sheet-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.assignment-sheet-item-info{display:flex;align-items:center;gap:var(--space-sm)}.assignment-sheet-item-icon{font-size:16px}.assignment-sheet-item-name{font-size:var(--font-size-base);color:var(--color-text-primary)}.assignment-sheet-item-badge{padding:2px 6px;background:#4caf5033;border-radius:3px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#4caf50}.assignment-sheet-empty{padding:var(--space-md);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.assignment-sheet-limit-warning{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#d4a1541a;border:1px solid rgba(212,161,84,.3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-warning)}.assignment-sheet-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.nibbles-video-logo{position:relative;flex-shrink:0;overflow:visible;display:flex;align-items:center;justify-content:center}.nibbles-video-logo:before{content:"";position:absolute;top:-25px;right:-25px;bottom:-25px;left:-25px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 35%,#fdfffccc 42%,#fdfffc66 48%,#fdfffc00 55%,#f8f7f4 55%,#f8f7f4);filter:blur(8px);pointer-events:none;z-index:0}.nibbles-video-logo-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center center;display:block;border-radius:var(--radius-xl);transition:opacity .3s ease-in-out;z-index:1}.nibbles-video-logo-video--active{opacity:1;z-index:2}.nibbles-video-logo-video--inactive{opacity:0;z-index:1}[data-theme=dark] .nibbles-video-logo:before{top:-30px;right:-30px;bottom:-30px;left:-30px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 32%,#fdfffcb3,#fdfffc4d,#fdfffc00 56%,#1a1a1c 56%,#1a1a1c);filter:blur(12px)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]) .nibbles-video-logo:before{top:-30px;right:-30px;bottom:-30px;left:-30px;background:radial-gradient(circle at 50% 45%,#fdfffc,#fdfffc 32%,#fdfffcb3,#fdfffc4d,#fdfffc00 56%,#1a1a1c 56%,#1a1a1c);filter:blur(12px)}}@media (prefers-reduced-motion: reduce){.nibbles-video-logo-video{transition:none}}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-primary);z-index:9999}.splash-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center;padding:var(--space-xl)}.splash-logo{display:flex;align-items:center;justify-content:center;animation:splash-float 3s ease-in-out infinite}.splash-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;letter-spacing:-.5px}.splash-message{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0;animation:splash-fade 1.5s ease-in-out infinite alternate}@keyframes splash-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes splash-fade{0%{opacity:.5}to{opacity:1}}.nibbles-icon{display:block;object-fit:contain}.onboarding-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background-color:var(--color-bg-primary);padding:var(--space-xl);padding-top:calc(var(--safe-area-top) + var(--space-xl));padding-bottom:calc(var(--safe-area-bottom) + var(--space-xl));overflow:hidden;touch-action:pan-y}.onboarding-content{flex:1;display:flex;flex-direction:column;align-items:center;max-width:400px;margin:0 auto;width:100%}.onboarding-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-2xl)}.onboarding-logo{display:flex;align-items:center;justify-content:center}.onboarding-brand{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.5px}.onboarding-step{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-lg) 0;animation:onboarding-fade-in .3s ease-out}@keyframes onboarding-fade-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.onboarding-step-icon-container{width:120px;height:120px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xl);background:var(--color-surface-glass);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));margin-bottom:var(--space-lg);border:1px solid var(--color-border)}.onboarding-step-icon-container:has(.nibbles-video-logo){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;width:auto;height:auto}.onboarding-step-icon{font-size:56px}.onboarding-step-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-md) 0;line-height:var(--line-height-tight)}.onboarding-step-description{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal);max-width:320px}.onboarding-dots{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border-strong);border:none;padding:0;cursor:pointer;transition:all var(--transition-fast)}.onboarding-dot--active{width:24px;border-radius:4px;background:var(--color-accent)}.onboarding-dot:hover:not(.onboarding-dot--active){background:var(--color-text-tertiary)}.onboarding-nav{display:flex;gap:var(--space-md);width:100%;margin-bottom:var(--space-md)}.onboarding-nav-btn{flex:1;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);border:none;cursor:pointer}.onboarding-nav-btn--primary{background:var(--color-accent);color:var(--color-white)}.onboarding-nav-btn--primary:hover{opacity:.9}.onboarding-nav-btn--primary:active{transform:scale(.98)}.onboarding-nav-btn--secondary{background:var(--color-surface-glass);color:var(--color-text-primary);border:1px solid var(--color-border)}.onboarding-nav-btn--secondary:hover{background:var(--color-surface-glass-elevated)}.onboarding-nav-btn--secondary:disabled{opacity:.3;cursor:not-allowed}.onboarding-cta{display:flex;flex-direction:column;gap:var(--space-md);width:100%}.onboarding-cta-btn{width:100%;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);border:none;cursor:pointer}.onboarding-cta-btn--primary{background:var(--color-accent);color:var(--color-white)}.onboarding-cta-btn--primary:hover{opacity:.9}.onboarding-cta-btn--primary:active{transform:scale(.98)}.onboarding-cta-btn--secondary{background:transparent;color:var(--color-accent)}.onboarding-cta-btn--secondary:hover{background:var(--color-surface-glass)}.onboarding-skip{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:var(--space-sm);transition:color var(--transition-fast)}.onboarding-skip:hover{color:var(--color-text-secondary)}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-bg-primary);padding:var(--space-xl);padding-top:calc(var(--safe-area-top) + var(--space-xl));padding-bottom:calc(var(--safe-area-bottom) + var(--space-xl));overflow-y:auto}.auth-content{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-lg)}.auth-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--space-md)}.auth-logo{display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-md) auto}.auth-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.auth-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.auth-error,.auth-success{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.auth-error{background:#c75c5c1a;color:var(--color-danger);border:1px solid rgba(199,92,92,.2)}.auth-error svg{flex-shrink:0;margin-top:1px}.auth-success{background:#4a9e6d1a;color:var(--color-success);border:1px solid rgba(74,158,109,.2)}.auth-success svg{flex-shrink:0;margin-top:1px}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.auth-input{width:100%;padding:var(--space-md);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-surface-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-input::placeholder{color:var(--color-text-tertiary)}.auth-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #c4775c26}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-input-wrapper{position:relative;display:flex}.auth-input-wrapper .auth-input{padding-right:48px}.auth-password-toggle{position:absolute;right:0;top:0;bottom:0;width:48px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.auth-password-toggle:hover{color:var(--color-text-secondary)}.auth-submit-btn{width:100%;padding:var(--space-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-white);background:var(--color-accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast);margin-top:var(--space-sm)}.auth-submit-btn:hover:not(:disabled){opacity:.9}.auth-submit-btn:active:not(:disabled){transform:scale(.98)}.auth-submit-btn:disabled{cursor:not-allowed}.auth-loading{display:flex;align-items:center;justify-content:center;gap:4px}.auth-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--color-white);animation:auth-loading-pulse 1.4s ease-in-out infinite}.auth-loading-dot:nth-child(1){animation-delay:0s}.auth-loading-dot:nth-child(2){animation-delay:.2s}.auth-loading-dot:nth-child(3){animation-delay:.4s}@keyframes auth-loading-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.auth-toggle{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-sm)}.auth-toggle-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-toggle-btn{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);background:none;border:none;cursor:pointer;padding:var(--space-xs);transition:opacity var(--transition-fast)}.auth-toggle-btn:hover{opacity:.8}.auth-view-intro{font-size:var(--font-size-sm);color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:var(--space-sm);margin:0 auto;transition:color var(--transition-fast)}.auth-view-intro:hover{color:var(--color-text-secondary)}.sparkle-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.sparkle{position:absolute;animation:sparkle-float ease-out forwards;opacity:0}@keyframes sparkle-float{0%{opacity:0;transform:translateY(20px) scale(.5) rotate(0)}20%{opacity:1}80%{opacity:1}to{opacity:0;transform:translateY(-30px) scale(1.2) rotate(20deg)}}.setup-wizard{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-background);padding:16px;padding-bottom:env(safe-area-inset-bottom,16px);position:relative;overflow-y:auto}.wizard-progress{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px}.wizard-progress-bar{width:100%;max-width:200px;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.wizard-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s ease}.wizard-progress-text{font-size:12px;color:var(--color-text-secondary)}.wizard-header{display:flex;justify-content:center;margin-bottom:24px}.wizard-logo{font-size:48px;line-height:1}.wizard-content{flex:1;display:flex;flex-direction:column;align-items:center;max-width:400px;margin:0 auto;width:100%}.wizard-step{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;position:relative}.wizard-step-icon{font-size:64px;line-height:1;margin-bottom:16px}.wizard-step-title{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.wizard-step-subtitle{font-size:15px;color:var(--color-text-secondary);margin:0 0 24px;line-height:1.5}.wizard-step-context{font-size:13px;color:var(--color-text-tertiary);margin:0 0 4px}.wizard-form{width:100%;display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.wizard-label{font-size:14px;font-weight:500;color:var(--color-text-primary);text-align:left;margin-bottom:-8px}.wizard-input,.wizard-select{width:100%;padding:14px 16px;font-size:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.wizard-input:focus,.wizard-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.wizard-input::placeholder{color:var(--color-text-tertiary)}.wizard-error{width:100%;padding:12px 16px;background:var(--color-error-bg, #fef2f2);color:var(--color-error, #dc2626);border-radius:12px;font-size:14px;text-align:center;margin-bottom:16px}.wizard-actions{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:24px}.wizard-btn{width:100%;padding:16px 24px;font-size:16px;font-weight:600;border:none;border-radius:14px;cursor:pointer;transition:transform .1s,opacity .2s}.wizard-btn:active{transform:scale(.98)}.wizard-btn:disabled{opacity:.5;cursor:not-allowed}.wizard-btn--primary{background:var(--color-primary);color:#fff}.wizard-btn--primary:hover:not(:disabled){opacity:.9}.wizard-btn--secondary{background:var(--color-surface-elevated);color:var(--color-text-primary)}.wizard-btn--secondary:hover:not(:disabled){background:var(--color-border)}.wizard-btn--large{padding:18px 24px;font-size:17px}.wizard-back-btn{position:absolute;top:16px;left:16px;padding:8px 12px;font-size:14px;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;border-radius:8px;transition:background .2s}.wizard-back-btn:hover{background:var(--color-surface-elevated)}.wizard-household-list{width:100%;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.wizard-household-list-label{font-size:14px;color:var(--color-text-secondary);margin-bottom:4px;text-align:left}.wizard-household-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s}.wizard-household-option:hover{background:var(--color-surface-elevated)}.wizard-household-option--selected{border-color:var(--color-primary);background:var(--color-primary-alpha, rgba(59, 130, 246, .1))}.wizard-household-name{font-size:15px;font-weight:500;color:var(--color-text-primary)}.wizard-household-check{font-size:16px;color:var(--color-primary)}.wizard-staples-grid{width:100%;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;justify-content:center}.wizard-staple-chip{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;cursor:pointer;transition:all .2s;color:var(--color-text-primary)}.wizard-staple-chip:hover{background:var(--color-surface-elevated)}.wizard-staple-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.wizard-staple-check{font-size:12px}.wizard-staples-hint{font-size:13px;color:var(--color-text-tertiary);margin-top:8px;text-align:center}.wizard-recipes-list{width:100%;display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.wizard-recipe-card{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:14px;cursor:pointer;transition:border-color .2s,background .2s;text-align:left}.wizard-recipe-card:hover{background:var(--color-surface-elevated)}.wizard-recipe-card--selected{border-color:var(--color-primary);background:var(--color-primary-alpha, rgba(59, 130, 246, .1))}.wizard-recipe-info{display:flex;flex-direction:column;gap:4px}.wizard-recipe-title{font-size:15px;font-weight:500;color:var(--color-text-primary)}.wizard-recipe-source{font-size:13px;color:var(--color-text-secondary)}.wizard-recipe-check{font-size:18px;color:var(--color-primary)}.wizard-summary{width:100%;display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--color-surface);border-radius:16px;margin-bottom:24px}.wizard-summary-item{display:flex;align-items:center;gap:12px}.wizard-summary-icon{font-size:20px}.wizard-summary-text{font-size:15px;color:var(--color-text-primary)}@media (max-height: 600px){.wizard-step-icon{font-size:48px;margin-bottom:12px}.wizard-step-title{font-size:20px}.wizard-step-subtitle{font-size:14px;margin-bottom:16px}}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface);border-radius:24px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;min-width:280px;max-width:90vw;animation:toast-slide-up .3s ease-out}@keyframes toast-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.toast-content{flex:1;display:flex;align-items:center;gap:12px}.toast-message{flex:1;font-size:14px;color:var(--color-text)}.toast-action-btn{background:var(--color-primary);color:#fff;border:none;border-radius:16px;padding:6px 14px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.toast-action-btn:active{opacity:.7}.toast-dismiss-btn{background:transparent;border:none;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.toast-dismiss-btn:active{opacity:.5}.toast-success{background:#e8f5e9}.toast-success .toast-message{color:#2e7d32}.toast-error{background:#ffebee}.toast-error .toast-message{color:#c62828}.app-content{flex:1;display:flex;flex-direction:column;padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}:root{--color-white: #ffffff;--color-black: #000000;--color-accent: #c4775c;--color-accent-hover: #f6dbd2;--color-success: #4a9e6d;--color-warning: #d4a154;--color-danger: #c75c5c;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-lg: 17px;--font-size-xl: 20px;--font-size-2xl: 28px;--font-size-3xl: 34px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--tab-bar-height: 56px}[data-theme=light],:root:not([data-theme]){--color-bg-primary: #f8f7f4;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f0efec;--color-surface-glass: rgba(255, 255, 255, .72);--color-surface-glass-elevated: rgba(255, 255, 255, .88);--color-surface-solid: #ffffff;--color-text-primary: #1a1a1c;--color-text-secondary: #6b6b70;--color-text-tertiary: #9a9a9f;--color-text-inverse: #ffffff;--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--blur-glass: 20px;--tab-bar-bg: rgba(248, 247, 244, .88);--tab-bar-border: rgba(0, 0, 0, .06)}[data-theme=dark]{--color-bg-primary: #1a1a1c;--color-bg-secondary: #242426;--color-bg-tertiary: #2c2c2e;--color-surface-glass: rgba(44, 44, 46, .72);--color-surface-glass-elevated: rgba(58, 58, 60, .88);--color-surface-solid: #2c2c2e;--color-text-primary: #f5f5f7;--color-text-secondary: #98989d;--color-text-tertiary: #636366;--color-text-inverse: #1a1a1c;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--blur-glass: 24px;--tab-bar-bg: rgba(26, 26, 28, .92);--tab-bar-border: rgba(255, 255, 255, .06)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]){--color-bg-primary: #1a1a1c;--color-bg-secondary: #242426;--color-bg-tertiary: #2c2c2e;--color-surface-glass: rgba(44, 44, 46, .72);--color-surface-glass-elevated: rgba(58, 58, 60, .88);--color-surface-solid: #2c2c2e;--color-text-primary: #f5f5f7;--color-text-secondary: #98989d;--color-text-tertiary: #636366;--color-text-inverse: #1a1a1c;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--blur-glass: 24px;--tab-bar-bg: rgba(26, 26, 28, .92);--tab-bar-border: rgba(255, 255, 255, .06)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:hidden;max-width:100vw;width:100%}body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;max-width:100vw;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;max-width:100vw;width:100%}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font:inherit;color:inherit;background:transparent;border:none;outline:none}@media (max-width: 768px){input,textarea,select,input[type=text],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=password]{font-size:16px!important}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-content{flex:1;display:flex;flex-direction:column;padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;max-width:100vw}.screen{flex:1;display:flex;flex-direction:column;padding:var(--space-md);padding-top:calc(var(--safe-area-top) + var(--space-md));padding-left:calc(var(--safe-area-left) + var(--space-md));padding-right:calc(var(--safe-area-right) + var(--space-md))}.screen-header{margin-bottom:var(--space-lg)}.screen-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em}.glass-surface{background:var(--color-surface-glass);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border:1px solid var(--color-border);border-radius:var(--radius-lg)}.glass-surface-elevated{background:var(--color-surface-glass-elevated);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);gap:var(--space-md)}.empty-state-icon{font-size:48px;opacity:.6}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:280px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.touch-target{min-height:44px;min-width:44px}img,video,canvas,svg,picture{max-width:100%;height:auto}*{max-width:100%}.app,.app-content,.screen,.tab-bar,.bottom-sheet-overlay,html,body,#root{max-width:none}.fab{position:fixed;bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom) + var(--space-lg));right:var(--space-md);width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-white);border:none;box-shadow:var(--shadow-lg);cursor:pointer;z-index:50;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.fab:hover{transform:scale(1.05);box-shadow:var(--shadow-xl)}.fab:active{transform:scale(.95)}
