:root{--tabbar-h: 72px}.tab-bar{position:fixed;bottom:0;left:0;right:0;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}.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:color var(--transition-fast);min-height:44px;-webkit-tap-highlight-color:transparent}.tab-bar-item:hover{color:var(--color-text-secondary)}.tab-bar-item--active,.tab-bar-item--active:hover{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-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)}@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;-webkit-overflow-scrolling:touch;padding:var(--space-md);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 16px)}.inventory-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);min-height:48px;border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.inventory-item:last-child{border-bottom:none}.inventory-item--selectable{cursor:pointer;-webkit-tap-highlight-color:transparent}.inventory-item--selectable:hover{background:var(--color-bg-tertiary)}.inventory-item--selected{background:#c4775c14}.inventory-item--selected:hover{background:#c4775c1f}.inventory-item--editable{cursor:pointer;-webkit-tap-highlight-color:transparent}.inventory-item--editable:hover{background:var(--color-bg-tertiary)}.inventory-item--editable:active{background:#c4775c14}.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)}.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_of_stock{background:#c75c5c26;color:var(--color-danger)}.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-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{background:var(--color-accent);color:var(--color-white)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.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}.inventory-screen{position:relative}.inventory-header{margin-bottom:var(--space-md)}.inventory-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom: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)}.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)}.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-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}.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)}.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);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform var(--transition-fast),background-color var(--transition-fast);z-index:50}.fab:hover{background:var(--color-accent-hover);transform:scale(1.05)}.fab:active{transform:scale(.95)}.fab svg{width:24px;height:24px}.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}.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)}.recipe-filters{display:flex;flex-direction:column;gap:var(--space-md);padding: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-lg);border:1px solid var(--color-border)}.filter-search{position:relative;display:flex;align-items:center}.filter-search-icon{position:absolute;left:var(--space-sm);color:var(--color-text-tertiary);pointer-events:none}.filter-search-input{width:100%;height:40px;padding:0 var(--space-xl) 0 calc(var(--space-sm) + 24px);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary)}.filter-search-input::placeholder{color:var(--color-text-tertiary)}.filter-search-input:focus{border-color:var(--color-accent);outline:none}.filter-search-clear{position:absolute;right:var(--space-xs);width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:var(--font-size-lg);border-radius:var(--radius-full);transition:all var(--transition-fast)}.filter-search-clear:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.filter-row{display:flex;flex-direction:column;gap:var(--space-xs)}.filter-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.filter-toggles{display:flex;gap:var(--space-xs)}.filter-toggle{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);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.filter-toggle:hover{border-color:var(--color-border-strong)}.filter-toggle--active.filter-toggle--marion{background:#c4775c26;border-color:var(--color-accent);color:var(--color-accent)}.filter-toggle--active.filter-toggle--bbc{background:#4a9e6d26;border-color:var(--color-success);color:var(--color-success)}.filter-pills{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.filter-pill{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);white-space:nowrap}.filter-pill:hover{border-color:var(--color-border-strong)}.filter-pill--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.recipe-card{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.recipe-card-header{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);line-height:var(--line-height-tight);flex:1}.recipe-card-source{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.recipe-card-source--marion{background:#c4775c26;color:var(--color-accent)}.recipe-card-source--bbc{background:#4a9e6d26;color:var(--color-success)}.recipe-card-match{display:flex;flex-direction:column;gap:var(--space-xs)}.match-bar{height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.match-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-success));border-radius:var(--radius-full);transition:width var(--transition-normal)}.match-stats{display:flex;justify-content:space-between;align-items:center}.match-percent{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.match-detail{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.recipe-card-missing{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:#d4a1541f;color:var(--color-warning);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-self:flex-start;transition:background-color var(--transition-fast)}.recipe-card-missing:hover{background:#d4a15433}.recipe-card-actions{display:flex;gap:var(--space-sm)}.recipe-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);min-height:40px}.recipe-action-btn--primary{background:var(--color-accent);color:var(--color-white)}.recipe-action-btn--primary:hover{background:var(--color-accent-hover)}.recipe-action-btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);text-decoration:none}.recipe-action-btn--secondary:hover{background:var(--color-border)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--space-md);animation:fadeIn var(--transition-fast) ease-out}.modal-content{width:100%;max-width:400px;max-height:80vh;background:var(--color-bg-secondary);border-radius:var(--radius-xl);display:flex;flex-direction:column;animation:scaleIn var(--transition-normal) ease-out;overflow:hidden}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);border-radius:var(--radius-full);transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-subtitle{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0}.missing-groups{flex:1;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.missing-group{display:flex;flex-direction:column;gap:var(--space-xs)}.missing-group-header{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.missing-list{list-style:none;padding:0;margin:0;background:var(--color-bg-tertiary);border-radius:var(--radius-md);overflow:hidden}.missing-item{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.missing-item:last-child{border-bottom:none}.modal-actions{padding:var(--space-md);border-top:1px solid var(--color-border);flex-shrink:0}.modal-actions .btn{width:100%}.cooked-sheet{display:flex;flex-direction:column;gap:var(--space-lg)}.cooked-recipe-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.cooked-section{display:flex;flex-direction:column;gap:var(--space-sm)}.cooked-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.cooked-label .required{color:var(--color-danger)}.cooked-toggle-group{display:flex;gap:var(--space-sm)}.cooked-toggle{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.cooked-toggle:hover{border-color:var(--color-border-strong)}.cooked-toggle--active{background:#c4775c1a;border-color:var(--color-accent);color:var(--color-accent)}.cooked-rating{display:flex;gap:var(--space-xs)}.rating-star{font-size:28px;color:var(--color-border-strong);transition:color var(--transition-fast),transform var(--transition-fast);padding:var(--space-xs)}.rating-star:hover{transform:scale(1.1)}.rating-star--filled{color:var(--color-warning)}.cooked-options{display:flex;gap:var(--space-xs);flex-wrap:wrap}.cooked-option{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);color:var(--color-text-secondary);transition:all var(--transition-fast)}.cooked-option:hover{border-color:var(--color-border-strong)}.cooked-option--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}.cooked-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.cooked-tag{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-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.cooked-tag:hover{border-color:var(--color-border-strong)}.cooked-tag--active{background:#c4775c26;border-color:var(--color-accent);color:var(--color-accent)}.substitution-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.substitution-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.substitution-text{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary)}.substitution-worked{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.substitution-worked--yes{background:#4a9e6d26;color:var(--color-success)}.substitution-worked--no{background:#c75c5c26;color:var(--color-danger)}.substitution-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:var(--font-size-lg);border-radius:var(--radius-full);transition:all var(--transition-fast)}.substitution-remove:hover{background:#c75c5c26;color:var(--color-danger)}.substitution-add{display:flex;align-items:center;gap:var(--space-xs)}.substitution-input{flex:1;height:40px;padding:0 var(--space-sm);font-size:var(--font-size-sm)}.substitution-arrow{color:var(--color-text-tertiary);flex-shrink:0}.substitution-add-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-white);border-radius:var(--radius-md);font-size:var(--font-size-xl);flex-shrink:0;transition:background-color var(--transition-fast)}.substitution-add-btn:hover:not(:disabled){background:var(--color-accent-hover)}.substitution-add-btn:disabled{opacity:.5;cursor:not-allowed}.cooked-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.cooked-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;align-items:center;gap:var(--space-sm)}.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)}.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-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}.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}:root{--color-white: #ffffff;--color-black: #000000;--color-accent: #c4775c;--color-accent-hover: #b56a4f;--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}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;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}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}: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;-webkit-overflow-scrolling:touch}.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}
