*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #5f8d6e;--color-primary-light: #7bab8a;--color-primary-dark: #3d6b4f;--color-accent: #81b29a;--color-bg: #faf9f7;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-sunken: #f5f2ee;--color-sidebar: #f3f0ec;--color-border: #e8e4df;--color-text: #2b2926;--color-text-secondary: #6e6960;--color-danger: #e63946;--color-highlight: #e4f0e0;--color-cooked: #d4a373;--color-favorited: #e07a5f;--color-new: #81b29a;--radius-sm: 6px;--radius-md: 10px;--radius: var(--radius-md);--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(139, 115, 85, .08);--shadow-md: 0 4px 12px rgba(139, 115, 85, .1);--shadow-lg: 0 8px 30px rgba(139, 115, 85, .14), 0 2px 8px rgba(139, 115, 85, .06);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--transition-fast: .15s ease;--transition-normal: .25s ease;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "DM Serif Display", Georgia, serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.5rem;--font-size-xl: 2rem;--font-size-2xl: 2.5rem;--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;--line-height-relaxed: 1.75}html,body{margin:0;height:100%;height:100dvh;padding-bottom:0;overscroll-behavior-y:contain;touch-action:manipulation}@media(max-width:768px){body{padding-bottom:env(safe-area-inset-bottom)}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=url],input[type=tel],textarea,select{font-size:16px!important}}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0 0 var(--space-3) 0}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}h5{font-size:var(--font-size-base)}h6{font-size:var(--font-size-sm)}p{font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0 0 var(--space-3) 0}code{font-family:Fira Code,Consolas,monospace}.highlight{background-color:var(--color-highlight);border-left:3px solid var(--color-primary)}:root.light-theme{--color-primary: #5f8d6e;--color-primary-light: #7bab8a;--color-primary-dark: #3d6b4f;--color-accent: #81b29a;--color-bg: #faf9f7;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-sunken: #f5f2ee;--color-sidebar: #f3f0ec;--color-border: #e8e4df;--color-text: #2b2926;--color-text-secondary: #6e6960;--color-danger: #e63946;--color-highlight: #e4f0e0;--color-cooked: #d4a373;--color-favorited: #e07a5f;--color-new: #81b29a;--shadow-sm: 0 1px 3px rgba(139, 115, 85, .08);--shadow-md: 0 4px 12px rgba(139, 115, 85, .1);--shadow-lg: 0 8px 30px rgba(139, 115, 85, .14), 0 2px 8px rgba(139, 115, 85, .06)}@media(prefers-color-scheme:dark){:root:not(.light-theme){--color-primary: #6a9e7a;--color-primary-light: #85b896;--color-primary-dark: #4a7d5c;--color-accent: #7baa92;--color-bg: #1a1816;--color-surface: #242220;--color-surface-raised: #2e2c2a;--color-surface-sunken: #141210;--color-sidebar: #1e1c1a;--color-border: #3a3734;--color-text: #e8e4df;--color-text-secondary: #9e9890;--color-danger: #d4444f;--color-highlight: #2a3a2e;--color-cooked: #b8906a;--color-favorited: #c8705a;--color-new: #7baa92;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .4)}}:root.dark-theme{--color-primary: #6a9e7a;--color-primary-light: #85b896;--color-primary-dark: #4a7d5c;--color-accent: #7baa92;--color-bg: #1a1816;--color-surface: #242220;--color-surface-raised: #2e2c2a;--color-surface-sunken: #141210;--color-sidebar: #1e1c1a;--color-border: #3a3734;--color-text: #e8e4df;--color-text-secondary: #9e9890;--color-danger: #d4444f;--color-highlight: #2a3a2e;--color-cooked: #b8906a;--color-favorited: #c8705a;--color-new: #7baa92;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .4)}img,picture,video{color-scheme:light dark}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@media(max-width:768px){.icon-btn,.headerIconBtn,.headerAvatarBtn,button[aria-label],.recipe-grid-card-actions button,.sectionEditBtn{min-width:44px;min-height:44px;padding:10px}.fab-upload{min-width:56px;min-height:56px}.btn-primary,.create-recipe-btn,.process-recipe-btn,.clear-filters-btn{min-height:44px;padding:12px 20px}.view-pill,.search-chip,.filter-chip,.tag-filter-chip,.sort-chip,.scope-seg-btn{min-height:44px;padding:10px 18px}.fab-menu-item,.avatarDropdownItem{min-height:44px;padding:12px 16px}.favorites-heart-btn,.notif-bell-wrapper button{min-width:44px;min-height:44px;padding:10px}.pagination-btn{min-height:44px;padding:12px 16px}.instruction-checkbox-wrapper,.ingredient-checkbox-wrapper{min-width:44px;min-height:44px;padding:8px}.instruction-checkbox-custom,.ingredient-checkbox-custom{width:32px;height:32px;min-width:32px}.tag-edit-btn,.tag-create-row button,.chip-remove-btn{min-height:44px;padding:10px 12px}.chip-dropdown-item,.tag-dropdown-item,.sort-chip-option{min-height:44px;padding:12px 14px}.recipe-grid-card-actions,.appHeaderActions,.fab-menu,.view-pills,.filter-bar{gap:8px}.reaction-picker-emoji{min-width:44px;min-height:44px;padding:10px}a:not(.tag-chip):not(.tag-chip-sm){min-height:44px;display:inline-flex;align-items:center;padding:8px}.recipe-grid-card{padding:8px}input[type=text],input[type=email],input[type=password],textarea,.chip-text-input,.unified-search-input{min-height:44px;padding:12px 14px}.MuiInputBase-root,.MuiOutlinedInput-root{min-height:44px}.unified-search-clear,.chip-input-clear,.ingredient-search-clear{min-width:44px;min-height:44px;padding:10px}}.page-transition{animation:page-fade-in .2s ease-out}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.page-transition{animation:none}}.App{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.upload-section{padding:16px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border);overflow-y:auto;-webkit-overflow-scrolling:touch;flex-shrink:1;min-height:0}.upload-section .filepond--root{margin-bottom:0}.upload-section .filepond--panel-root{background:var(--color-bg);border:2px dashed var(--color-border);border-radius:var(--radius);transition:border-color .2s,background .2s}.upload-section .filepond--drop-label{color:var(--color-text-secondary);font-size:.95rem;min-height:80px}.upload-section .filepond--drop-label label{cursor:pointer}.upload-section .filepond--label-action{color:var(--color-primary);font-weight:600;text-decoration:none}.upload-section .filepond--label-action:hover{text-decoration:underline}.main-layout{flex:1;display:flex;min-height:0;position:relative}.recipe-list-container{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:var(--color-bg);padding-bottom:0}@media(max-width:768px){.recipe-list-container{padding-bottom:0}}.btn-primary{padding:8px 20px;background:linear-gradient(180deg,var(--color-primary-light),var(--color-primary));color:#fff;border:none;border-radius:var(--radius);font-weight:600;cursor:pointer;font-size:.9rem;transition:background .2s,filter .2s}.btn-primary:hover{filter:brightness(1.08)}.fab-container{position:fixed;bottom:92px;right:24px;z-index:200;display:flex;flex-direction:column;align-items:flex-end}@media(max-width:768px){.fab-container{bottom:88px}}.fab-upload{width:56px;height:56px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;font-size:1.75rem;font-weight:300;cursor:pointer;box-shadow:var(--shadow-lg, 0 4px 12px rgba(0,0,0,.25));display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;line-height:1;position:relative}.fab-upload:hover{background:var(--color-primary-dark);transform:scale(1.08)}.fab-upload.fab-open{transform:rotate(45deg)}.fab-menu{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;animation:fabMenuIn .15s ease-out}@keyframes fabMenuIn{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fab-menu-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border:none;border-radius:24px;background:var(--color-surface-raised, white);color:var(--color-text, #333);font-size:.9rem;font-weight:500;cursor:pointer;box-shadow:0 2px 8px #8b735526;white-space:nowrap;transition:background .15s,box-shadow .15s}.fab-menu-item:hover{background:var(--color-surface, #f5f2ee);box-shadow:0 3px 12px #8b73552e}.recipe-tags-section{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.recipe-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.tag-chip{display:inline-block;background:var(--color-highlight);color:var(--color-primary-dark);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:12px;white-space:nowrap}.tag-chip-sm{display:inline-block;background:var(--color-highlight);color:var(--color-primary-dark);font-size:.65rem;font-weight:500;padding:2px 8px;border-radius:999px;white-space:nowrap;line-height:1.4}.tag-chip-more{background:transparent;color:var(--color-text-secondary);font-style:italic;padding:2px 4px}.recipe-list-tags{display:inline-flex;gap:3px;flex-wrap:wrap}.tag-editor{position:relative}.tag-edit-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:4px 10px;font-size:.8rem;cursor:pointer;color:var(--color-text-secondary);transition:border-color .2s}.tag-edit-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.tag-dropdown{position:absolute;top:100%;left:0;z-index:50;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:200px;margin-top:4px}.tag-dropdown-list{max-height:200px;overflow-y:auto;padding:8px}.tag-dropdown-item{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;font-size:.85rem}.tag-dropdown-item input[type=checkbox]{accent-color:var(--color-primary)}.tag-dropdown-empty{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:4px 0}.tag-create-row{display:flex;gap:4px;padding:8px;border-top:1px solid var(--color-border)}.tag-create-row input{flex:1;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.8rem}.tag-create-row button{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:4px 10px;cursor:pointer;font-weight:600}.tag-create-row button:disabled{opacity:.4;cursor:not-allowed}.tag-suggestions{border-top:1px solid var(--color-border);padding:6px 8px}.tag-suggestions-label{font-size:.7rem;text-transform:uppercase;color:var(--color-text-secondary, #888);margin-bottom:4px;letter-spacing:.5px}.tag-suggestions-list{display:flex;flex-wrap:wrap;gap:4px;max-height:120px;overflow-y:auto}.tag-suggestion-chip{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:12px;padding:2px 8px;font-size:.8rem;cursor:pointer;color:var(--color-text);transition:background .15s}.tag-suggestion-chip:hover{background:var(--color-primary, #4a90d9);color:#fff;border-style:solid}.tag-filter{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.tag-filter-chip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:2px 10px;font-size:.75rem;cursor:pointer;transition:all .15s;color:var(--color-text-secondary)}.tag-filter-chip:hover:not(.active){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-highlight)}.tag-filter-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.tag-filter-chip.active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.ingredient-editor-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.recipe-list-page{max-width:1200px;margin:0 auto;padding:24px 32px}.recipe-list-page-header{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}.recipe-list-page-header h2{font-size:1.5rem;font-weight:700;margin:0}.view-pills{display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:100;background:var(--color-bg);padding:12px 16px;margin:0 -16px 12px;border-bottom:1px solid var(--color-border)}.view-pills--dimmed{opacity:.5}.view-pill{padding:6px 18px;border-radius:20px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease}.view-pill:hover:not(:disabled):not(.view-pill--active){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-highlight)}.view-pill.view-pill--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.view-pill.view-pill--active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.view-pill:disabled{cursor:default;opacity:.5}.view-pills-relevance{font-size:.82rem;color:var(--color-text-secondary, #888);font-style:italic;margin-left:4px}@media(max-width:480px){.view-pills{flex-direction:row;align-items:center;justify-content:space-between;gap:4px}.view-pill{text-align:center;flex:1;min-width:0;padding:6px 8px;font-size:.8rem}}.search-dropdown-container{position:relative;margin-bottom:16px;min-width:320px}.unified-search-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--color-border);border-radius:24px;background:var(--color-surface);transition:border-color .2s,box-shadow .2s;min-width:280px}.unified-search-bar:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2d6a4f1a}.unified-search-icon{color:var(--color-text-secondary);font-size:20px!important;flex-shrink:0}.unified-search-input{flex:1;border:none;outline:none;background:transparent;font-size:1rem;color:var(--color-text);min-width:0}.unified-search-input::placeholder{color:var(--color-text-secondary)}.unified-search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:2px;border-radius:50%;transition:background .15s}.unified-search-clear:hover{background:var(--color-highlight)}.unified-search-filter-toggle{display:flex;align-items:center;justify-content:center;position:relative;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;border-radius:50%;transition:background .15s,color .15s;flex-shrink:0}.unified-search-filter-toggle:hover{background:var(--color-highlight)}.unified-search-filter-toggle.has-filters{color:var(--color-primary)}.filter-badge{position:absolute;top:-4px;right:-4px;background:var(--color-primary);color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;line-height:1}.search-chips-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:0;padding:0 4px;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,margin-top .25s ease}.search-chips-row--visible{max-height:200px;overflow:visible;opacity:1;margin-top:8px;min-height:32px}.chip-wrapper{position:relative}.search-chip{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s;white-space:nowrap}.search-chip:hover:not(.active){background:var(--color-highlight);border-color:var(--color-primary);color:var(--color-primary)}.search-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.search-chip.active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.search-chip.open:not(.active){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-highlight)}.search-chip.clear-chip{border-color:var(--color-text-secondary);color:var(--color-text-secondary);border-style:dashed}.search-chip.clear-chip:hover{background:var(--color-highlight);color:var(--color-text);border-style:solid;border-color:var(--color-primary)}.favorites-heart-btn{display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:50%;width:34px;height:34px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s;padding:0;flex-shrink:0}.favorites-heart-btn:hover:not(.active){border-color:var(--color-favorited);color:var(--color-favorited);background:#e07a5f14}.favorites-heart-btn.active{background:var(--color-favorited);border-color:var(--color-favorited);color:#fff}.favorites-heart-btn.active:hover{background:#d4694a;border-color:#d4694a}.chip-arrow{font-size:18px!important;transition:transform .2s}.chip-arrow.rotated{transform:rotate(180deg)}.chip-remove-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:currentColor;padding:2px;margin-left:2px;border-radius:50%;transition:background .15s}.chip-remove-btn:hover{background:#8b73551a}.chip-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:1000;padding:4px 0;max-height:300px;overflow-y:auto}.chip-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--color-text);font-size:.9rem;cursor:pointer;text-align:left;transition:background .1s}.chip-dropdown-item:hover{background:var(--color-highlight)}.chip-dropdown-item.selected{color:var(--color-primary);font-weight:600;background:var(--color-highlight)}.chip-check{color:var(--color-primary);font-weight:700}.chip-dropdown-input{padding:8px;min-width:220px}.chip-input-row{display:flex;align-items:center;gap:4px;position:relative}.chip-text-input{flex:1;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:1rem;color:var(--color-text);outline:none;transition:border-color .2s}.chip-text-input:focus{border-color:var(--color-primary)}.chip-text-input::placeholder{color:var(--color-text-secondary)}.chip-input-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px;border-radius:50%;transition:background .15s}.chip-input-clear:hover{background:var(--color-highlight)}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.scope-segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:20px;overflow:hidden;flex-shrink:0}.scope-seg-btn{padding:5px 16px;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.82rem;font-weight:500;transition:all .15s;min-width:56px;text-align:center}.scope-seg-btn:not(:last-child){border-right:1px solid var(--color-border)}.scope-seg-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.scope-seg-btn.active:hover{background:var(--color-primary-dark)}.scope-seg-btn:hover:not(.active){background:var(--color-highlight);color:var(--color-primary)}.sort-chip-wrapper{position:relative}.sort-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.82rem;font-weight:500;transition:all .15s;white-space:nowrap}.sort-chip:hover{background:var(--color-highlight)}.sort-chip-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #8b73551f;z-index:100;min-width:120px;overflow:hidden}.sort-chip-option{display:block;width:100%;padding:8px 14px;border:none;background:none;color:var(--color-text);cursor:pointer;font-size:.85rem;text-align:left;transition:background .1s}.sort-chip-option:hover{background:var(--color-highlight)}.sort-chip-option.active{color:var(--color-primary);font-weight:600}.ingredient-search-chip{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);padding:3px 12px;gap:4px;transition:border-color .2s}.ingredient-search-chip:focus-within{border-color:var(--color-primary)}.ingredient-search-input{border:none;outline:none;background:transparent;font-size:1rem;color:var(--color-text);width:110px;padding:2px 0}.ingredient-search-input::placeholder{color:var(--color-text-secondary)}.ingredient-search-clear{display:flex;align-items:center;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:1px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.82rem;font-weight:500;transition:all .15s;white-space:nowrap}.filter-chip:hover:not(.active){background:var(--color-highlight);border-color:var(--color-primary);color:var(--color-primary)}.filter-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.filter-chip.active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.filter-chip.clear-chip{color:var(--color-text-secondary);border-style:dashed}.filter-chip.clear-chip:hover{color:var(--color-text);border-style:solid;border-color:var(--color-primary)}.tag-filter-bar{margin-bottom:12px}.tag-filter-bar .tag-filter{display:flex;flex-wrap:wrap;gap:6px}.tag-filter-bar .tag-filter-chip{padding:4px 12px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.78rem;font-weight:500;transition:all .15s}.tag-filter-bar .tag-filter-chip:hover:not(.active){background:var(--color-highlight);border-color:var(--color-primary);color:var(--color-primary)}.tag-filter-bar .tag-filter-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.tag-filter-bar .tag-filter-chip.active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.recipe-result-count{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:12px;display:flex;align-items:center;gap:12px}.create-recipe-btn{font-size:.875rem;padding:6px 12px;border-radius:6px;border:none;background:var(--color-primary);color:#fff;cursor:pointer;transition:background-color .2s ease;font-weight:500}.create-recipe-btn:hover:not(:disabled){background:var(--color-primary-dark)}.create-recipe-btn:disabled{opacity:.6;cursor:not-allowed}.recipe-list-loading-bar{height:3px;background:var(--color-primary);border-radius:2px;margin-bottom:16px;animation:loading-pulse 1.5s ease-in-out infinite}@keyframes loading-pulse{0%,to{opacity:.6;transform:scaleX(1)}50%{opacity:1;transform:scaleX(1.02)}}.recipe-grid{display:grid;grid-template-columns:1fr;gap:16px;transition:opacity .2s ease-in-out}.recipe-grid-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:0;cursor:pointer;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,opacity .2s;display:flex;flex-direction:column;gap:0;animation:fade-in-up .3s ease-out}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.recipe-grid-card-hero{width:100%;height:180px;object-fit:cover;display:block;position:relative;aspect-ratio:16 / 9;background-color:var(--color-surface-sunken, #f5f2ee);transition:opacity .3s ease}.recipe-grid-card-hero.loading{opacity:.7}.recipe-grid-card-hero-wrapper{position:relative;overflow:hidden;width:100%;height:180px;aspect-ratio:16 / 9;background-color:var(--color-surface-sunken, #f5f2ee)}.recipe-grid-card-hero-wrapper:after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(44,40,35,.18),transparent);pointer-events:none}.recipe-grid-card-placeholder{width:100%;height:180px;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.recipe-grid-card-placeholder-emoji{font-size:3rem;filter:drop-shadow(0 2px 4px rgba(139,115,85,.15));z-index:1}.recipe-grid-card-content{padding:16px 20px 20px;display:flex;flex-direction:column;gap:8px;position:relative;background:var(--color-surface)}@media(hover:hover){.recipe-grid-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.recipe-grid-card{transition:none;animation:none}.recipe-grid-card:hover{transform:none}}.recipe-grid-card.selected{outline:2px solid var(--color-primary);outline-offset:-2px}.recipe-grid-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.recipe-grid-card-title{font-family:var(--font-display);font-size:1.1rem;font-weight:400;margin:0;flex:1}.recipe-grid-card-actions{display:flex;gap:2px;flex-shrink:0}.recipe-grid-card-actions .icon-btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;border-radius:6px;display:flex;align-items:center;opacity:.5;transition:opacity .15s,color .15s}@media(max-width:768px){.recipe-grid-card-actions .icon-btn{min-width:44px;min-height:44px;padding:10px}.recipe-grid-card-actions{gap:8px}}.recipe-grid-card-actions .icon-btn:hover{opacity:1}.recipe-grid-card-actions .icon-btn.favorite:hover{color:var(--color-favorited)}.recipe-grid-card-actions .icon-btn.delete:hover{color:var(--color-danger)}.recipe-grid-card-meta{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--color-text-secondary);flex-wrap:wrap}.recipe-grid-card-meta .meta-item{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}.recipe-grid-card-meta .meta-sep{color:var(--color-text-secondary);opacity:.5;-webkit-user-select:none;user-select:none}.recipe-grid-card-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}.recipe-grid-card-shared{display:flex;align-items:center;gap:4px;font-size:.78rem;color:#1976d2;background:var(--color-surface-sunken, #f5f2ee);border-radius:12px;padding:2px 10px;width:fit-content;margin-top:4px;font-weight:500}.recipe-grid-card-ingredients{font-size:.78rem;color:var(--color-text-secondary);margin:0}.recipe-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;color:var(--color-muted);text-align:center}.recipe-list-empty p{margin:0 0 12px;font-size:.9rem}.clear-filters-btn{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);padding:6px 16px;cursor:pointer;font-size:.85rem;font-weight:600}.clear-filters-btn:hover{background:var(--color-primary-light)}.recipe-list-container.detail-is-open{display:none}.recipe-list-page{padding:16px}.recipe-grid{columns:1}.filter-bar{gap:6px}.ingredient-search-input{width:80px}.upload-section{padding:12px 16px;max-height:60vh;max-height:60dvh}.url-extract-grid{grid-template-columns:1fr!important}.ingredient-editor-row{flex-direction:column}.ingredient-editor-row .MuiAutocomplete-root,.ingredient-editor-row .MuiTextField-root{width:100%!important;min-width:0!important}@media(min-width:768px){.recipe-list-page{padding:24px 32px}.recipe-grid{grid-template-columns:repeat(2,1fr)}.ingredient-search-input{width:110px}.ingredient-editor-row{flex-direction:row}.ingredient-editor-row .MuiAutocomplete-root,.ingredient-editor-row .MuiTextField-root{width:auto!important;min-width:auto!important}}@media(min-width:1024px){.main-layout{flex-direction:row}.recipe-grid{grid-template-columns:repeat(3,1fr)}.recipe-list-container.detail-is-open{display:flex;flex-direction:column;flex:1;min-width:0}.recipe-list-container.detail-is-open .recipe-grid{grid-template-columns:1fr}.detail-panel.panel-expanded{width:100%!important;max-width:100%!important;min-width:100%!important;height:calc(100vh - 56px)!important;max-height:calc(100vh - 56px)!important}.recipe-list-container.collapsed{display:none}}.process-recipe-btn{background:#e67e22;color:#fff;border:none;border-radius:8px;padding:.6rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.process-recipe-btn:hover:not(:disabled){background:#cf6d17}.process-recipe-btn:disabled{opacity:.6;cursor:not-allowed}.visibility-indicator{display:flex;align-items:center;padding:2px}.recipe-grid-card-attribution,.recipe-attribution{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;margin:2px 0 4px}.copy-btn{color:var(--color-primary)!important}.infinite-scroll-loading{padding:16px 0}.infinite-scroll-end{padding:20px 0;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.infinite-scroll-end p{margin:0;background:var(--color-highlight);padding:12px 20px;border-radius:20px;display:inline-block;font-weight:500}.notif-bell-wrapper{position:relative;display:inline-flex}.reaction-add-btn{background:none;border:1px solid transparent;border-radius:12px;cursor:pointer;font-size:.9rem;padding:2px 6px}.reaction-add-btn:hover{background:var(--color-surface-sunken, #f5f2ee);border-color:var(--color-border, #ddd)}.reaction-picker{position:absolute;bottom:100%;left:0;display:flex;gap:2px;padding:4px 6px;background:var(--color-bg, #faf9f7);border:1px solid var(--color-border, #ddd);border-radius:8px;box-shadow:0 2px 8px #8b735526;z-index:10}.reaction-picker-emoji{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:4px;border-radius:4px}.reaction-picker-emoji:hover{background:var(--color-surface-sunken, #f5f2ee)}.cook-mode-progress{margin-left:auto;font-size:.85rem;color:var(--color-primary);font-weight:600;background:var(--color-highlight);padding:4px 12px;border-radius:16px}.cook-mode-completion{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-weight:600;padding:12px 20px;border-radius:8px;text-align:center;margin-bottom:16px;font-size:.95rem;box-shadow:0 2px 8px #22c55e33;animation:completion-bounce .6s ease-out}@keyframes completion-bounce{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05);opacity:1}to{transform:scale(1)}}.instruction-checkbox-wrapper{display:flex;align-items:center;cursor:pointer;margin-right:16px;position:relative}.instruction-checkbox{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.instruction-checkbox-custom{height:28px;width:28px;background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:50%;position:relative;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.instruction-checkbox-custom:after{content:"✓";color:#fff;font-weight:700;font-size:16px;opacity:0;transform:scale(0);transition:all .2s ease}.instruction-checkbox:checked+.instruction-checkbox-custom{background-color:var(--color-primary);border-color:var(--color-primary);transform:scale(1.1)}.instruction-checkbox:checked+.instruction-checkbox-custom:after{opacity:1;transform:scale(1)}.instruction-checkbox-wrapper:hover .instruction-checkbox-custom{border-color:var(--color-primary);transform:scale(1.05)}.ingredient-checkbox-wrapper{display:flex;align-items:center;cursor:pointer;margin-right:12px;position:relative}.ingredient-checkbox{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ingredient-checkbox-custom{height:24px;width:24px;min-width:24px;background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:50%;position:relative;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.ingredient-checkbox-custom:after{content:"✓";color:#fff;font-weight:700;font-size:14px;opacity:0;transform:scale(0);transition:all .2s ease}.ingredient-checkbox:checked+.ingredient-checkbox-custom{background-color:var(--color-primary);border-color:var(--color-primary);transform:scale(1.1)}.ingredient-checkbox:checked+.ingredient-checkbox-custom:after{opacity:1;transform:scale(1)}.ingredient-checkbox-wrapper:hover .ingredient-checkbox-custom{border-color:var(--color-primary);transform:scale(1.05)}.cook-tracking-section{margin:16px 0;padding:16px;background:var(--color-surface-sunken, #f5f2ee);border-radius:var(--radius);border:1px solid var(--color-border)}.cook-tracking-form{display:flex;flex-direction:column;gap:12px}.cook-notes-input{display:flex;flex-direction:column;gap:6px}.cook-notes-input label{font-size:.9rem;font-weight:500;color:var(--color-text-secondary)}.cook-notes-input textarea{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-family:inherit;font-size:.9rem;resize:vertical;min-height:60px}.cook-notes-input textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2)}.cook-success-message{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff;padding:16px;border-radius:var(--radius);text-align:center;font-weight:500;animation:cookSuccess .3s ease-out}@keyframes cookSuccess{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.cook-history-page{padding:24px;max-width:800px;margin:0 auto}.cook-history-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.cook-history-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text)}.cook-history-loading,.cook-history-empty{text-align:center;padding:48px 24px}.empty-state{max-width:400px;margin:0 auto}.empty-message{font-size:1.1rem;font-weight:500;color:var(--color-text);margin:0 0 8px}.empty-submessage{color:var(--color-text-secondary);margin:0}.cook-history-count{margin-bottom:16px;font-size:.9rem;color:var(--color-text-secondary)}.cook-history-list{display:flex;flex-direction:column;gap:12px}.cook-history-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;transition:all .2s ease}.cook-history-item:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border-hover)}.cook-history-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cook-history-recipe{flex:1}.cook-history-recipe .recipe-name{margin:0 0 4px;font-size:1rem;font-weight:500;color:var(--color-text);cursor:pointer}.cook-history-recipe .recipe-name:hover{color:var(--color-primary)}.cook-history-recipe .cook-date{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.cook-history-actions{display:flex;align-items:center;gap:8px}.cook-notes{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.cook-notes p{margin:0;font-style:italic;color:var(--color-text-secondary);font-size:.9rem}@media(max-width:768px){.cook-history-page{padding:16px}.cook-history-main{flex-direction:column;gap:12px}.cook-history-actions{align-self:flex-end}}@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.35)}60%{transform:scale(.9)}to{transform:scale(1)}}@keyframes heartShrink{0%{transform:scale(1)}50%{transform:scale(.75)}to{transform:scale(1)}}.recipe-grid-card-actions .icon-btn.favorite.animate-pop{animation:heartPop .35s ease-out}.recipe-grid-card-actions .icon-btn.favorite.animate-shrink{animation:heartShrink .25s ease-out}.favorite-btn-animate-pop .MuiSvgIcon-root,.favorite-btn-animate-pop>svg{animation:heartPop .35s ease-out}.favorite-btn-animate-shrink .MuiSvgIcon-root,.favorite-btn-animate-shrink>svg{animation:heartShrink .25s ease-out}@media(prefers-reduced-motion:reduce){.recipe-grid-card-actions .icon-btn.favorite.animate-pop,.recipe-grid-card-actions .icon-btn.favorite.animate-shrink,.favorite-btn-animate-pop .MuiSvgIcon-root,.favorite-btn-animate-pop>svg,.favorite-btn-animate-shrink .MuiSvgIcon-root,.favorite-btn-animate-shrink>svg{animation:none!important}}@media(max-width:768px){.fab-upload{min-width:56px;min-height:56px}.fab-menu-item{min-height:44px;padding:12px 16px}.btn-primary,.create-recipe-btn,.process-recipe-btn,.clear-filters-btn{min-height:44px;padding:12px 20px}.view-pill{min-height:44px;padding:10px 18px}.favorites-heart-btn{min-width:44px;min-height:44px;padding:10px}.search-chip,.filter-chip,.tag-filter-chip,.sort-chip{min-height:44px;padding:10px 12px}.chip-remove-btn{min-width:44px;min-height:44px;padding:10px}.chip-dropdown-item{min-height:44px;padding:12px 14px}.scope-seg-btn{min-height:44px;padding:10px 16px}.pagination-btn{min-height:44px;padding:12px 16px}.instruction-checkbox-wrapper,.ingredient-checkbox-wrapper{min-width:44px;min-height:44px;padding:8px}.instruction-checkbox-custom,.ingredient-checkbox-custom{width:32px;height:32px;min-width:32px}.reaction-picker-emoji,.reaction-add-btn{min-width:44px;min-height:44px;padding:10px}.tag-edit-btn,.tag-create-row button{min-height:44px;padding:10px 12px}.tag-dropdown-item,.unified-search-input,.chip-text-input,.ingredient-search-input{min-height:44px;padding:12px 14px}.unified-search-clear,.chip-input-clear,.ingredient-search-clear{min-width:44px;min-height:44px;padding:10px}.view-pills,.filter-bar,.search-chips-row,.fab-menu{gap:8px}}._appHeader_1ytgv_2{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary),var(--color-primary-light));color:#fff;padding:0 24px;height:56px;min-height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;flex-shrink:0}._appHeaderLeft_1ytgv_18{display:flex;align-items:center;gap:24px}._appHeader_1ytgv_2 h1{font-family:var(--font-display);font-size:1.25rem;font-weight:400;margin:0;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}._appHeaderSubtitle_1ytgv_35{font-size:.8rem;opacity:.75;font-weight:400}._appHeaderActions_1ytgv_41{display:flex;align-items:center;gap:12px}._headerSearchContainer_1ytgv_48{flex:1;max-width:480px;margin:0 24px;display:flex;align-items:center}._headerSearchDesktop_1ytgv_56{width:100%;position:relative}._headerSearchDesktop_1ytgv_56 .search-dropdown-container{margin-bottom:0;min-width:0}._headerSearchDesktop_1ytgv_56 .unified-search-bar{padding:4px 10px;min-width:0;border-color:#ffffff4d;background:#ffffff26}._headerSearchDesktop_1ytgv_56 .unified-search-bar:focus-within{background:#ffffff40;border-color:#ffffff80;box-shadow:none}._headerSearchDesktop_1ytgv_56 .unified-search-icon{color:#ffffffb3;font-size:18px!important}._headerSearchDesktop_1ytgv_56 .unified-search-input{color:#fff;font-size:.9rem}._headerSearchDesktop_1ytgv_56 .unified-search-input::placeholder{color:#fff9}._headerSearchDesktop_1ytgv_56 .unified-search-clear,._headerSearchDesktop_1ytgv_56 .unified-search-filter-toggle{color:#ffffffb3}._headerSearchDesktop_1ytgv_56 .search-chips-row{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--color-surface);border-radius:8px;box-shadow:var(--shadow-md);padding:8px 12px}._headerSearchIcon_1ytgv_114{color:#ffffffb3;font-size:18px!important;flex-shrink:0}._headerSearchInput_1ytgv_120{flex:1;border:none;outline:none;background:transparent;font-size:.9rem;color:#fff;min-width:0}._headerSearchInput_1ytgv_120::placeholder{color:#fff9}._headerSearchClear_1ytgv_134{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#ffffffb3;cursor:pointer;padding:2px;border-radius:50%;transition:background .15s,color .15s}._headerSearchClear_1ytgv_134:hover{background:#ffffff26;color:#fff}._headerSearchMobile_1ytgv_152{display:none;background:none;border:none;color:#fffc;cursor:pointer;padding:6px;border-radius:50%;transition:background .2s,color .2s}._headerSearchMobile_1ytgv_152:hover{background:#ffffff26;color:#fff}._mobileSearchExpanded_1ytgv_168{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:12px 16px;box-shadow:0 2px 8px #0000001a}@media(max-width:768px){._headerSearchContainer_1ytgv_48{margin:0 12px 0 16px;max-width:none}._headerSearchDesktop_1ytgv_56{display:none}._headerSearchMobile_1ytgv_152{display:flex;min-width:44px;min-height:44px;padding:10px}}@media(max-width:480px){._headerSearchContainer_1ytgv_48{margin:0 8px 0 12px}}._headerIconBtn_1ytgv_200{background:none;border:none;color:#fffc;cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}._headerIconBtn_1ytgv_200:hover,._headerIconBtn_1ytgv_200._active_1ytgv_214{background:#ffffff26;color:#fff}._headerGreeting_1ytgv_219{font-size:.8rem;opacity:.8}@media(max-width:600px){._headerGreeting_1ytgv_219{display:none}}@media(max-width:768px){._headerIconBtn_1ytgv_200,._headerAvatarBtn_1ytgv_233{min-width:44px;min-height:44px;padding:10px}._appHeaderActions_1ytgv_41{gap:8px}._avatarDropdownItem_1ytgv_243{min-height:44px;padding:12px 16px}}._notifBellWrapper_1ytgv_250{position:relative;display:inline-flex}._notifBellIcon_1ytgv_255{font-size:1.1rem;line-height:1}._notifBadge_1ytgv_260{position:absolute;top:2px;right:2px;background:#e53935;color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;pointer-events:none;line-height:1}._avatarDropdownWrapper_1ytgv_280{position:relative}._headerAvatarBtn_1ytgv_233{background:none;border:none;cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}._headerAvatarBtn_1ytgv_233:hover{background:#ffffff26}._avatarDropdown_1ytgv_243{position:fixed;top:52px;right:16px;width:220px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e8e4df);border-radius:8px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .1));z-index:1050;margin-top:4px;padding:0;overflow:hidden}._avatarDropdownHeader_1ytgv_315{padding:16px;background:var(--color-surface-sunken, #f5f2ee);display:flex;align-items:center;gap:12px}._avatarDropdownGreeting_1ytgv_323{font-size:.9rem;color:var(--color-text, #333)}._avatarDropdownDivider_1ytgv_328{height:1px;background:var(--color-border, #e8e4df);margin:0}._avatarDropdownItem_1ytgv_243{width:100%;background:none;border:none;padding:12px 16px;display:flex;align-items:center;gap:12px;color:var(--color-text, #333);cursor:pointer;transition:background .2s;font-size:.9rem;text-align:left}._avatarDropdownItem_1ytgv_243:hover{background:var(--color-surface-sunken, #f5f2ee)}._avatarDropdownLogout_1ytgv_353{color:var(--color-error, #dc3545)}._avatarDropdownLogout_1ytgv_353:hover{background:#dc35451a}@media(prefers-color-scheme:dark){._avatarDropdown_1ytgv_243{box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .3))}._avatarDropdownLogout_1ytgv_353:hover{background:#dc354526}}.dark-theme ._avatarDropdown_1ytgv_243{box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .3))}.dark-theme ._avatarDropdownLogout_1ytgv_353:hover{background:#dc354526}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-card{pointer-events:none;cursor:default}.skeleton-card:hover{transform:none;box-shadow:var(--shadow-sm)}.skeleton-line{background:linear-gradient(90deg,var(--color-border, #e0e0e0) 25%,var(--color-surface-sunken, #f5f2ee) 50%,var(--color-border, #e0e0e0) 75%);background-size:400px 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:4px}@media(prefers-reduced-motion:reduce){.skeleton-line,.recipe-list-loading-bar{animation:none;background:var(--color-border, #e0e0e0)}}.skeleton-photo{height:120px;width:100%;border-radius:var(--radius, 8px) var(--radius, 8px) 0 0;margin-bottom:12px}.skeleton-title{height:20px;width:65%}.skeleton-desc{height:14px;width:90%}.skeleton-desc.short{width:55%}.skeleton-meta{display:flex;gap:8px;margin-top:8px}.skeleton-tag{height:22px;width:60px;border-radius:12px}.recipe-list-loading-bar{height:3px;background:var(--color-primary, #1976d2);border-radius:2px;animation:skeleton-shimmer 1s ease-in-out infinite;background-size:200px 100%;background-image:linear-gradient(90deg,transparent 25%,var(--color-primary, #1976d2) 50%,transparent 75%);margin-bottom:8px}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:600;-webkit-user-select:none;user-select:none;text-transform:uppercase}.empty-state-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;max-width:360px;margin:0 auto}.empty-state-card--compact{padding:24px 16px}.empty-state-emoji{font-size:3rem;line-height:1;margin-bottom:16px;display:block;animation:empty-state-bounce .6s ease-out}.empty-state-card--compact .empty-state-emoji{font-size:2.2rem;margin-bottom:10px}.empty-state-title{font-size:1.05rem;font-weight:600;color:var(--color-text);margin:0 0 6px}.empty-state-subtitle{font-size:.88rem;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.4}.empty-state-cta{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius, 8px);padding:8px 20px;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.empty-state-cta:hover{background:var(--color-primary-dark, var(--color-primary));transform:translateY(-1px)}.empty-state-cta:active{transform:translateY(0)}@keyframes empty-state-bounce{0%{transform:scale(.5) translateY(10px);opacity:0}60%{transform:scale(1.1) translateY(-4px);opacity:1}to{transform:scale(1) translateY(0)}}.pull-to-refresh{position:absolute;top:-60px;left:0;right:0;height:60px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-out;z-index:10;background:var(--color-background, #fff);border-bottom:1px solid var(--color-border, #e0e0e0)}.pull-to-refresh--visible{opacity:1}.pull-to-refresh__indicator{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary, #666);font-size:14px}.pull-to-refresh__arrow{transition:transform .2s ease-out,color .2s ease-out;color:var(--color-text-secondary, #666)}.pull-to-refresh__arrow--ready{color:var(--color-primary, #007bff)}.pull-to-refresh__spinner{animation:pull-to-refresh-spin 1s linear infinite;color:var(--color-primary, #007bff)}.pull-to-refresh__text{font-weight:500;white-space:nowrap}@keyframes pull-to-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pull-to-refresh,.pull-to-refresh__arrow{transition:none}.pull-to-refresh__spinner{animation:none}.pull-to-refresh__arrow{transform:none!important}.pull-to-refresh__arrow--ready{display:none}.pull-to-refresh__arrow--ready+.pull-to-refresh__text:before{content:"🔄 "}}@media(pointer:coarse){.pull-to-refresh{display:flex}}@media(pointer:fine){.pull-to-refresh{display:none}}._parentWrapper_1gyd0_2{position:relative}._actionBar_1gyd0_6{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:8px;max-width:800px;margin-left:auto;margin-right:auto;padding:0 20px}._card_1gyd0_19{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:32px;max-width:800px;margin:0 auto;transition:box-shadow .2s ease;overflow-wrap:break-word;word-break:break-word}._card_1gyd0_19:hover{box-shadow:var(--shadow-md)}._card_1gyd0_19 h1{font-family:var(--font-display);font-size:1.75rem;font-weight:400;text-align:center;margin:0 0 4px;letter-spacing:-.02em}._sharedBadge_1gyd0_44{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem;color:#1976d2;background:var(--color-surface-sunken, #f5f2ee);border-radius:16px;padding:4px 14px;width:fit-content;margin:2px auto 4px;font-weight:500}._description_1gyd0_59{text-align:center;color:var(--color-text);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);margin-bottom:16px;padding:6px 16px;white-space:pre-wrap;max-width:70ch;margin-left:auto;margin-right:auto}._meta_1gyd0_72{display:flex;justify-content:center;gap:24px;margin-bottom:24px;flex-wrap:wrap}._metaItem_1gyd0_80{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-bg);padding:6px 14px;border-radius:20px}._sectionTitle_1gyd0_91{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);margin:2.5rem 0 1rem;padding-bottom:6px;border-bottom:2px solid var(--color-highlight);display:flex;align-items:center;gap:8px}._sectionEditBtn_1gyd0_103{color:var(--color-primary)!important;opacity:.4;padding:2px!important;transition:opacity .15s}._sectionEditBtn_1gyd0_103:hover{opacity:1}._ingredientItem_1gyd0_114{display:flex;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--color-border, #f0f0f0);gap:10px;font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}._ingredientBullet_1gyd0_124{flex-shrink:0;width:8px;height:8px;border-radius:50%;border:2px solid var(--color-primary);margin-top:6px}._ingredientName_1gyd0_133{font-weight:var(--font-weight-medium);flex:1;min-width:120px}._ingredientDetail_1gyd0_139{font-weight:var(--font-weight-semibold);color:var(--color-primary-dark);font-size:var(--font-size-sm);flex:0 1 auto;max-width:40%;word-wrap:break-word}._instructionItem_1gyd0_149{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid #f0f0f0}._instructionNumber_1gyd0_156{font-weight:700;color:var(--color-primary);font-size:1rem;min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-highlight);border-radius:50%;flex-shrink:0}._instructionText_1gyd0_170{flex:1;line-height:var(--line-height-relaxed);font-size:var(--font-size-base)}._notesSection_1gyd0_176{background:var(--color-bg);border-radius:8px;padding:20px 24px;margin-top:8px;max-width:70ch}._noteText_1gyd0_184{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);margin-bottom:12px}._noteText_1gyd0_184:last-child{margin-bottom:0}._cookCountBadge_1gyd0_196{display:inline-flex;align-items:center;gap:4px;background:var(--color-cooked);color:#fff;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500;white-space:nowrap}._cookCountBadgeSecondary_1gyd0_209{background:var(--color-text-secondary)}@media(max-width:480px){._card_1gyd0_19{padding:20px}._card_1gyd0_19 h1{font-size:1.4rem}._parentWrapper_1gyd0_2{padding-bottom:120px}}@media(min-width:768px){._card_1gyd0_19{padding:32px}._card_1gyd0_19 h1{font-size:1.75rem}}@media(max-width:768px){._actionBar_1gyd0_6 button,._sectionEditBtn_1gyd0_103{min-width:44px;min-height:44px;padding:10px}._actionBar_1gyd0_6{gap:8px;margin-bottom:16px}._parentWrapper_1gyd0_2 ._actionBar_1gyd0_6:last-of-type{margin-bottom:24px}._ingredientItem_1gyd0_114._cookMode_1gyd0_259,._instructionItem_1gyd0_149._cookMode_1gyd0_259{padding:12px 0}}._instructionItem_1gyd0_149._cookMode_1gyd0_259{padding:16px 0;border-bottom:1px solid #f0f0f0;transition:all .3s ease}._instructionItem_1gyd0_149._cookMode_1gyd0_259._completed_1gyd0_272{opacity:.6}._instructionItem_1gyd0_149._cookMode_1gyd0_259._completed_1gyd0_272 ._instructionText_1gyd0_170{text-decoration:line-through;color:var(--color-text-secondary)}._ingredientItem_1gyd0_114._cookMode_1gyd0_259{display:flex;align-items:center;transition:all .3s ease}._ingredientItem_1gyd0_114._cookMode_1gyd0_259._completed_1gyd0_272{opacity:.6}._ingredientItem_1gyd0_114._cookMode_1gyd0_259._completed_1gyd0_272 ._ingredientName_1gyd0_133,._ingredientItem_1gyd0_114._cookMode_1gyd0_259._completed_1gyd0_272 ._ingredientDetail_1gyd0_139{text-decoration:line-through;color:var(--color-text-secondary)}.notif-dropdown{position:fixed;top:52px;right:16px;width:320px;max-height:400px;overflow-y:auto;background:var(--color-surface, #fff);border:1px solid var(--color-border, #ddd);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:1000;margin-top:4px;padding:12px}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border, #e8e4df)}.notif-dropdown-title{font-weight:600;font-size:.95rem;color:var(--color-text, #333)}.notif-mark-all-btn{background:none;border:none;color:var(--color-primary, #2d6a4f);font-size:.8rem;font-weight:500;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s}.notif-mark-all-btn:hover{background:var(--color-surface-sunken, #f5f2ee)}.notif-empty{text-align:center;color:var(--color-text-secondary, #888);font-size:.85rem;padding:24px 0;font-style:italic}.notif-list{display:flex;flex-direction:column;gap:2px}.notif-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:6px;cursor:pointer;transition:background .15s}.notif-item:hover{background:var(--color-surface-sunken, #f5f2ee)}.notif-item.unread{background:#2d6a4f0f}.notif-item.unread:hover{background:#2d6a4f1f}.notif-unread-dot{width:8px;height:8px;min-width:8px;border-radius:50%;background:var(--color-primary, #2d6a4f);margin-top:6px}.notif-item-content{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-item-message{font-size:.85rem;color:var(--color-text, #333);line-height:1.4}.notif-item.unread .notif-item-message{font-weight:600}.notif-item-time{font-size:.75rem;color:var(--color-text-secondary, #888)}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:280px;max-width:420px;padding:12px 16px;border-radius:8px;color:#fff;font-size:.925rem;font-weight:500;box-shadow:0 4px 14px #00000040;animation:toast-slide-up .3s ease-out}.toast.toast-dismissing{animation:toast-fade-out .25s ease-in forwards}.toast-success{background:#2e7d32}.toast-error{background:#c62828}.toast-info{background:#1565c0}.toast-warning{background:#e65100}.toast-message{flex:1}.toast-close{background:none;border:none;color:inherit;cursor:pointer;padding:2px;opacity:.8;font-size:1.1rem;line-height:1;display:flex;align-items:center}.toast-close:hover{opacity:1}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}._overlay_1x5pn_2{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}._content_1x5pn_12{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:24px;width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column}._header_1x5pn_24{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}._headerTitle_1x5pn_33{font-size:1.15rem;font-weight:600;margin:0}._body_1x5pn_39{flex:1;overflow-y:auto;margin-bottom:16px}._ingredientRow_1x5pn_45{padding:6px 0;font-size:.95rem}._footer_1x5pn_50{display:flex;gap:8px}._uploadOverlay_1x5pn_56{position:fixed;inset:0;background:#00000080;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;animation:_fadeIn_1x5pn_1 .15s ease-out}@keyframes _fadeIn_1x5pn_1{0%{opacity:0}to{opacity:1}}._uploadModal_1x5pn_73{background:var(--color-surface);color:var(--color-text);border-radius:12px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:_modalIn_1x5pn_1 .2s ease-out}@keyframes _modalIn_1x5pn_1{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}._uploadHeader_1x5pn_90{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px}._uploadHeaderTitle_1x5pn_97{margin:0;font-size:1.1rem}._uploadClose_1x5pn_102{background:none;border:none;cursor:pointer;padding:4px;border-radius:50%;color:var(--color-text-secondary, #666);display:flex;align-items:center}._uploadClose_1x5pn_102:hover{background:var(--color-surface-sunken, #f5f2ee)}._uploadBody_1x5pn_117{padding:0 20px 20px}._uploadModal_1x5pn_73>.filepond-wrapper,._uploadModal_1x5pn_73>div:last-child{padding:0 20px 20px}._lightboxOverlay_1x5pn_128{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer}._lightboxImage_1x5pn_142{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;cursor:default}._lightboxClose_1x5pn_150{position:fixed;top:20px;right:20px;z-index:1001;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.5rem;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0006}._lightboxClose_1x5pn_150:hover{background:#000000bf}._lightboxNav_1x5pn_174{position:fixed;top:50%;transform:translateY(-50%);z-index:1001;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:2.5rem;width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 8px #0006}._lightboxNav_1x5pn_174:hover{background:#000000bf}._lightboxPrev_1x5pn_199{left:16px}._lightboxNext_1x5pn_203{right:16px}._lightboxFooter_1x5pn_207{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1001;display:flex;align-items:center;gap:12px;background:#0009;padding:6px 14px;border-radius:20px;max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:center}._lightboxCounter_1x5pn_224{color:#fff;font-size:.85rem;font-weight:500}
