.spinner{display:flex;align-items:center;justify-content:center;height:100vh}.loader{border:8px solid var(--color-gray-200);border-top:8px solid var(--color-primary);border-radius:50%;width:60px;height:60px;animation:spin 1.5s linear infinite}.toast-container{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:420px;width:calc(100% - var(--space-8))}.layout:not(.sidebar-collapsed):not(.sidebar-hidden)~.toast-container{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width)) / 2)}.layout.sidebar-collapsed:not(.sidebar-hidden)~.toast-container{left:calc(var(--sidebar-width-collapsed) + (100vw - var(--sidebar-width-collapsed)) / 2)}@media(max-width:768px){.layout~.toast-container{left:50%}}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);color:var(--text-primary);font-family:var(--font-family-base);font-size:var(--font-size-sm);pointer-events:auto;cursor:pointer;animation:toast-enter .3s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}.toast-exit{animation:toast-exit .3s ease forwards}.toast-icon{flex-shrink:0;width:20px;height:20px}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-danger)}.toast-info .toast-icon{color:var(--color-info)}.toast-message{flex:1;line-height:var(--line-height-snug)}.toast-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.toast-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}@keyframes toast-enter{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.95)}}:root{--color-primary: #d4745f;--color-primary-hover: #b55d4a;--color-primary-active: #964736;--color-primary-light: #fceee9;--color-primary-subtle: #fff5f2;--color-accent: #e8a962;--color-accent-hover: #d19250;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-light: #fee2e2;--color-success: #10b981;--color-info: #3b82f6;--color-info-light: #eff6ff;--color-warning: #f59e0b;--color-gray-50: #faf9f6;--color-gray-100: #f2f0ed;--color-gray-200: #e8e4df;--color-gray-300: #d6d1cc;--color-gray-400: #a8a4a0;--color-gray-500: #7d7975;--color-gray-600: #5c5855;--color-gray-700: #42403e;--color-gray-800: #2c2c2c;--color-gray-900: #2c2c2c;--color-gray-950: #1a1a1a;--bg-body: var(--color-gray-50);--bg-surface: #ffffff;--bg-surface-subtle: var(--color-gray-50);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .05);--blur-md: 12px;--blur-lg: 20px;--space-0-5: .125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .05), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .04);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .08), 0 8px 10px -6px rgb(0 0 0 / .02);--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05);--shadow-primary-sm: 0 4px 6px -1px rgba(212, 116, 95, .25);--shadow-primary-md: 0 8px 10px -2px rgba(212, 116, 95, .4);--shadow-primary-lg: 0 6px 20px rgba(212, 116, 95, .23);--shadow-glow: 0 0 0 3px rgba(212, 116, 95, .2);--font-family-base: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-heading: "Outfit", var(--font-family-base);--font-family-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3rem;--line-height-tight: 1.1;--line-height-snug: 1.3;--line-height-base: 1.5;--line-height-relaxed: 1.75;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--recipe-image-aspect-ratio: 16 / 9;--header-height: 64px;--sidebar-width: 280px;--sidebar-width-collapsed: 70px;--bg-primary: var(--bg-surface);--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-muted: var(--color-gray-400);--border-color: var(--color-gray-200);--accent-color: var(--color-primary);--accent-hover: var(--color-primary-hover);--accent-light: var(--color-primary-light);--sidebar-bg: var(--glass-bg);--sidebar-hover: var(--color-gray-100);--sidebar-active: var(--color-primary-subtle);--sidebar-text: var(--color-gray-600);--sidebar-text-light: var(--color-gray-900);--sidebar-border: var(--color-gray-200);--sidebar-input-bg: rgba(255, 255, 255, .5);--skeleton-base: var(--color-gray-200);--skeleton-highlight: var(--color-gray-50);--color-diff-added-bg: rgba(212, 116, 95, .2);--color-diff-removed-bg: rgba(239, 68, 68, .2);--content-max-width: 900px;--bg-gradient: radial-gradient( circle at top right, rgba(212, 116, 95, .05), transparent 40% ), radial-gradient( circle at bottom left, rgba(232, 169, 98, .05), transparent 40% )}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #212121;--bg-tertiary: #2a2a2a;--bg-surface: #2a2a2a;--bg-surface-subtle: #212121;--text-primary: #f5f5f0;--text-secondary: #d6d1cc;--text-muted: #a8a4a0;--border-color: #3a3a3a;--accent-color: #c98b78;--accent-hover: #b07666;--accent-light: #4a302a;--sidebar-bg: rgba(26, 26, 26, .8);--sidebar-hover: #2a2a2a;--sidebar-active: rgba(212, 116, 95, .15);--sidebar-text: #a8a4a0;--sidebar-text-light: #f5f5f0;--sidebar-border: rgba(255, 255, 255, .05);--sidebar-input-bg: rgba(0, 0, 0, .2);--skeleton-base: #2a2a2a;--skeleton-highlight: #3a3a3a;--color-diff-added-bg: rgba(16, 185, 129, .25);--color-diff-removed-bg: rgba(239, 68, 68, .25);--bg-gradient: linear-gradient(to bottom, rgba(0, 0, 0, .5) 0%, transparent 150px), radial-gradient( circle at top right, rgba(201, 139, 120, .1), transparent 40% ), radial-gradient( circle at bottom left, rgba(26, 26, 26, 1), transparent 100% );--color-danger-light: rgba(239, 68, 68, .1);--color-info-light: rgba(59, 130, 246, .1);--glass-bg: rgba(26, 26, 26, .8);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .3)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp-hero{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gentleBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes rotateWand{0%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}to{transform:rotate(0)}}@keyframes pulseBulb{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}@keyframes ambientDrift{0%,to{transform:translate(0) scale(1);opacity:.4}33%{transform:translate(15px,-10px) scale(1.05);opacity:.6}66%{transform:translate(-10px,8px) scale(.95);opacity:.35}}*{font-family:var(--font-family-base);box-sizing:border-box}::selection{background-color:var(--color-primary-light);color:var(--color-primary-dark)}body{margin:0;background-color:var(--bg-primary);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text-primary);transition:background-color var(--transition-base),color var(--transition-base);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{min-height:100%;background-color:var(--bg-primary)}body.no-scroll{overflow:hidden;width:100%;height:var(--visual-viewport-height, 100%);touch-action:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--color-gray-700)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}.recipe{position:relative;text-align:left;background-color:var(--bg-secondary);padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:var(--transition-base);overflow:hidden}@media screen and (max-width:768px){.recipe{background-color:transparent;border:none;box-shadow:none;border-radius:0;padding:0}}.recipe-image{margin:var(--space-6) 0;width:100%;aspect-ratio:var(--recipe-image-aspect-ratio);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.recipe-image img{display:block;width:100%;aspect-ratio:var(--recipe-image-aspect-ratio);object-fit:cover;transition:transform .5s ease}.recipe-image:hover img{transform:scale(1.02)}.recipe-image-loading{width:100%;aspect-ratio:var(--recipe-image-aspect-ratio);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-style:italic;background-color:var(--bg-tertiary);border-radius:var(--radius-lg)}.error{color:var(--color-danger);background-color:var(--color-danger-light);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid rgba(239,68,68,.2);margin-top:var(--space-4);animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;display:flex;align-items:center;gap:.5rem}[data-theme=dark] .error{background-color:#ef44441a;border-color:#ef444433}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}button:active:not(:disabled),a:active,.clickable:active,[role=button]:active,input[type=submit]:active,input[type=checkbox]:active,.instructions-list li:active{transform:scale(.98)!important;transition:transform .15s cubic-bezier(.4,0,.2,1)!important}.ingredient-item,.personal-note-item,.recipe-action-btn{transform-style:preserve-3d}.recipe-print-brand{display:none}@media print{:root,[data-theme=dark]{--bg-primary: #ffffff !important;--bg-secondary: #ffffff !important;--bg-surface: #ffffff !important;--bg-tertiary: #f9f9f9 !important;--text-primary: #000000 !important;--text-secondary: #333333 !important;--text-muted: #666666 !important;--border-color: #eeeeee !important;--shadow-sm: none !important;--shadow-md: none !important;--shadow-lg: none !important;--shadow-xl: none !important;--glass-bg: #ffffff !important;--glass-border: #eeeeee !important}nav,aside,footer,header,.sidebar,.sidebar-overlay,.mobile-menu-toggle,.theme-toggle,.sidebar-toggle,.new-recipe-btn,.sidebar-filters,.sidebar-footer,.recipe-mobile-header,.recipe-action-buttons,.recipe-action-buttons-desktop,.recipe-action-buttons-container,.recipe-management-section,.update-section,.personal-note-add,.personal-note-delete,.ingredient-checkbox,.close-overlay-btn,.streaming-indicator,.recipe-image-overlay,.recipe-image-actions,.scroll-to-top-btn,.toast-container,button,[role=button]{display:none!important}body,html{background:#fff!important;color:#000!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.layout{display:block!important;background:#fff!important;min-height:auto!important;padding:0!important}.main-content{margin-left:0!important;padding:0!important;width:100%!important;max-width:100%!important;display:block!important;background:#fff!important}*{box-shadow:none!important;text-shadow:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;animation:none!important;transition:none!important}.recipe-print-brand{display:flex!important;align-items:center!important;gap:var(--space-3)!important;margin-bottom:var(--space-8)!important;padding-bottom:var(--space-4)!important;border-bottom:2px solid #333!important}.recipe-print-brand .brand-name{font-family:var(--font-family-heading)!important;font-size:1.5rem!important;font-weight:800!important;color:#000!important}.recipe-view{padding:0!important;margin:0!important;background:#fff!important}.recipe-stats,.ingredient-groups,.instructions-list{background:#fff!important;border:1px solid #eee!important;padding:var(--space-4)!important;margin-bottom:var(--space-6)!important}.recipe-view h2{border-bottom:2px solid #eee!important;color:#000!important}.ingredient-item{border-bottom:1px solid #f9f9f9!important;background:transparent!important}.ingredient-text{opacity:1!important;text-decoration:none!important;color:#000!important}.instructions-list li:before{background-color:#eee!important;color:#000!important;border:1px solid #ccc!important}.personal-notes-section{border-top:1px solid #eee!important}.personal-note-item{background:transparent!important;border-bottom:1px solid #f9f9f9!important}img{max-width:100%!important;page-break-inside:avoid!important}}
