@font-face{font-family:TheSitcom;src:url(/fonts/TheSitcom-Extrude.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Leon;src:url(/fonts/Leon-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Leon;src:url(/fonts/Leon-Heavy.woff2) format("woff2");font-weight:700;font-display:swap}:root{--font-display: "TheSitcom", cursive;--font-body: "Leon", system-ui, -apple-system, sans-serif;--text-h1: clamp(2rem, 5vw, 3rem);--text-h2: clamp(1.5rem, 3.5vw, 2rem);--text-h3: clamp(1.125rem, 2.5vw, 1.375rem);--text-h4: clamp(1rem, 2vw, 1.125rem);--text-body: 1rem;--text-sm: .875rem;--text-xs: .75rem;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.7;--color-bg: #fef5f3;--color-surface: #ffffff;--color-border: #f0d5cf;--color-border-focus: #e85d3e;--color-text: #1c1917;--color-text-muted: #78716c;--color-text-subtle: #a8a29e;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--color-primary: #e85d3e;--color-primary-hover: #d14e30;--color-primary-active: #bf4427;--color-primary-light: #fff0ec;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--max-width: 1100px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(28, 25, 23, .06);--shadow-sm: 0 1px 3px rgba(28, 25, 23, .08), 0 1px 2px rgba(28, 25, 23, .04);--shadow-md: 0 4px 16px rgba(28, 25, 23, .09), 0 2px 4px rgba(28, 25, 23, .05);--shadow-lg: 0 8px 32px rgba(28, 25, 23, .11), 0 4px 8px rgba(28, 25, 23, .06);--shadow-hover: 0 12px 40px rgba(28, 25, 23, .14), 0 4px 12px rgba(28, 25, 23, .08);--ease-spring: cubic-bezier(.16, 1, .3, 1);--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-base: .24s cubic-bezier(.16, 1, .3, 1);--transition-slow: .4s cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{direction:rtl;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:var(--leading-normal);font-size:16px;min-height:100vh}button,input,select,textarea{font-family:inherit}img,svg{display:block}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}h1,h2,h3,h4,h5,h6{font-family:var(--font-body);line-height:var(--leading-tight)}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}h4{font-size:var(--text-h4)}small,.text-muted{font-size:var(--text-xs);color:var(--color-text-muted)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.app{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:50;background:#fef5f3e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.site-header__inner{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem;height:60px;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.brand{display:flex;align-items:center;gap:.625rem;color:var(--color-text);flex:0 0 auto}.brand__name{font-family:var(--font-display);font-size:1.375rem;font-weight:400;letter-spacing:.01em;color:var(--color-primary)}.hero{background:linear-gradient(160deg,#fef0ed,#fde8ec 60%,#fce4e0);border-bottom:1px solid var(--color-border);padding:4rem 1.5rem 4.5rem}.hero__inner{max-width:680px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}.content{flex:1;padding:3rem 1.5rem 4rem}.content__inner{max-width:var(--max-width);margin:0 auto}@media(max-width:640px){.site-header__inner{min-height:104px;height:auto;padding:.625rem 1rem .75rem;display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"brand signout" "library library";gap:.5rem .75rem;align-items:center}.site-header__inner>.brand{grid-area:brand;min-width:0}.site-header__inner>.recipe-library-menu{grid-area:library}.site-header__inner>.btn-signout{grid-area:signout;justify-self:end}.brand__name{font-size:1.25rem}.hero{padding:3rem 1.25rem 3.5rem}.content{padding:2rem 1.25rem 3rem}}.auth-loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#fde8ec}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#fde8ec;overflow:hidden}.auth-gate__content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:40px 24px;gap:20px;z-index:1}.auth-gate__logo{margin:0;font-family:TheSitcom,cursive;font-size:2.5rem;font-weight:400;color:#c0392b;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.auth-gate__hero{width:100%;border-radius:16px;overflow:hidden}.auth-gate__hero-img{width:100%;display:block;object-fit:cover}.auth-gate__tagline{margin:0;font-size:1.35rem;font-weight:600;text-align:center;line-height:1.6;color:var(--color-primary, #e85d3e)}.auth-gate__cta{width:100%;padding:14px 24px;background:var(--color-primary, #e85d3e);color:#fff;border:none;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.auth-gate__cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px #e85d3e59}.auth-gate__cta:active{transform:translateY(0)}.auth-gate__signin-link{margin:0;font-size:.9rem;color:var(--color-primary, #e85d3e)}.auth-gate__signin-link a{color:var(--color-primary, #e85d3e);text-decoration:underline;cursor:pointer;font-weight:500}.auth-gate__signin-link a:hover{color:var(--color-primary-hover, #d14e30)}.auth-gate__float{position:absolute;z-index:2;pointer-events:none}.auth-gate__float--pasta{top:-20px;right:-20px;width:200px;transform:rotate(-15deg)}.auth-gate__float--dumplings{left:-30px;top:45%;width:190px;transform:rotate(10deg)}.auth-gate__float--pancakes{bottom:10px;right:-20px;width:200px;transform:rotate(-5deg)}@media(max-width:480px){.auth-gate__float--pasta{width:140px;top:-10px;right:-15px}.auth-gate__float--dumplings{width:130px;left:-25px}.auth-gate__float--pancakes{width:140px;right:-15px;bottom:5px}.auth-gate__content{padding:20px;height:100%}.auth-gate__logo{font-size:2rem}.auth-gate__tagline{font-size:1.15rem}}.spinner{display:block;width:36px;height:36px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--color-primary, #e85d3e);border-radius:50%;animation:spin .7s linear infinite}.btn-signout{padding:6px 14px;background:transparent;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease}.btn-signout:hover{background:var(--color-surface, #f9fafb)}.btn-signout--icon{position:relative;width:40px;height:40px;padding:0;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-full, 999px);color:var(--color-text-muted, #78716c);font-size:0}.btn-signout--icon:before,.btn-signout--icon:after{content:"";display:block;position:absolute}.btn-signout--icon:before{width:15px;height:14px;border:1.8px solid currentColor;border-left:0;border-radius:2px;transform:translate(1px)}.btn-signout--icon:after{width:8px;height:8px;border-top:1.8px solid currentColor;border-right:1.8px solid currentColor;transform:translate(-5px) rotate(45deg)}.btn-signout--icon:hover{color:var(--color-text, #1c1917);background:var(--color-surface, #f9fafb)}.onboarding-card{max-width:420px}.onboarding-card h1{margin-bottom:8px}.onboarding-card p{margin-bottom:20px;color:#64748b;font-size:.9rem}.onboarding-card form{display:flex;flex-direction:column;gap:12px;margin-top:20px}.onboarding-card .btn-google{width:100%;justify-content:center}.onboarding-tabs{display:flex;border-bottom:1px solid #e2e8f0;gap:0}.onboarding-tab-btn{flex:1;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.onboarding-tab-btn:hover{color:#1a202c}.onboarding-tab-btn--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.onboarding-input{width:100%;padding:10px 14px;border:1px solid #cbd5e0;border-radius:8px;font-size:.9375rem;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.onboarding-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #e85d3e1f}.onboarding-input::placeholder{color:#a0aec0}.onboarding-error{color:#dc2626;font-size:.8125rem;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.submit-form{width:100%;background:var(--color-surface);border-radius:var(--radius-xl);padding:1.75rem 2rem;box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}@media(max-width:480px){.submit-form{padding:1.375rem 1.25rem;border-radius:var(--radius-lg)}}.form-row{display:flex;gap:.625rem;align-items:stretch}@media(max-width:560px){.form-row{flex-direction:column;gap:.75rem}}.input-wrapper{position:relative;flex:1;min-width:0}.input-icon{position:absolute;right:.875rem;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);display:flex;align-items:center;pointer-events:none;transition:color var(--transition-fast)}.input-wrapper:focus-within .input-icon{color:var(--color-primary)}input[type=url]{width:100%;height:48px;padding:0 2.75rem 0 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9375rem;font-family:inherit;color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input[type=url]::placeholder{color:var(--color-text-subtle);font-size:.875rem}input[type=url]:focus{outline:none;border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px #e85d3e1f}input[type=url]:disabled{opacity:.65;cursor:not-allowed;background:var(--color-bg)}.btn-primary{height:48px;padding:0 1.5rem;border:none;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-primary) 0%,#d14e30 100%);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem;transition:opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 2px 8px #e85d3e47;flex-shrink:0}.btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #e85d3e5c}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #e85d3e33}.btn-primary:disabled{opacity:.72;cursor:not-allowed;transform:none}@media(max-width:560px){.btn-primary{width:100%;justify-content:center}}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}@keyframes loaderFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.loader-text{animation:loaderFadeIn .3s ease both}.form-feedback{margin-top:.875rem;animation:fadeSlideIn .25s var(--ease-spring) both}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.success-msg,.error-msg{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;line-height:1.5;padding:.75rem 1rem;border-radius:var(--radius-md);font-weight:450}.success-msg{color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border)}.success-msg strong{font-weight:600}.error-msg{color:var(--color-error);background:var(--color-error-bg);border:1px solid var(--color-error-border)}.feedback-icon{display:flex;align-items:center;flex-shrink:0;margin-top:.125rem}.feedback-icon--success{color:var(--color-success)}.feedback-icon--error{color:var(--color-error)}.review-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:#fff}.review-tabs{display:none}.review-body{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;min-height:0;overflow:hidden}.review-left{overflow:hidden;background:#f7fafc;border-right:1px solid #e2e8f0;display:flex;align-items:flex-start;justify-content:center}.review-media-container{width:100%;aspect-ratio:9/16;background:#0f0f0f;overflow:hidden;position:relative}.review-media-container iframe,.review-media-container .review-left-fallback,.review-media-container .review-thumbnail-link,.review-media-container .review-thumbnail-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.review-thumbnail-link{display:block;text-decoration:none;position:relative}.review-thumbnail-img{width:100%;height:100%;object-fit:cover;display:block}.review-play-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000026;transition:background .2s}.review-play-btn:hover{background:#0000004d}.review-play-btn svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));transition:transform .15s}.review-thumbnail-link:hover .review-play-btn svg{transform:scale(1.08)}.review-left-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;color:#718096;font-size:.9rem;text-align:center;padding:24px}.review-fallback-link{font-size:.85rem;color:var(--color-primary);text-decoration:none}.review-fallback-link:hover{text-decoration:underline}.steps-empty-msg{margin:0;font-size:.875rem;color:#a0aec0;padding:4px 0 8px}.review-right{display:flex;flex-direction:column;min-width:0;overflow:hidden}.review-form{flex:1;overflow-y:auto;padding:32px;display:flex;flex-direction:column;gap:16px}.field-label{display:block;font-weight:500;font-size:.9rem;color:#4a5568;margin-bottom:0}.field-input{display:block;width:100%;margin-top:4px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:var(--radius-sm, 6px);font-size:inherit;font-family:inherit;color:#1a202c;background:#fff;box-sizing:border-box;transition:border-color .15s}.field-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #e85d3e1f}textarea.field-input{resize:vertical;min-height:120px}.section-heading{font-size:.95rem;font-weight:600;color:#1a202c;margin-top:24px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.steps-list{display:flex;flex-direction:column;gap:8px}.step-row{display:flex;gap:8px;align-items:center}.step-number{min-width:24px;font-weight:600;color:var(--color-primary);font-size:.9rem;text-align:center}.step-input{flex:1}.step-delete{background:none;border:none;padding:4px 8px;font-size:.8rem;cursor:pointer;color:#718096;border-radius:var(--radius-sm, 6px);transition:color .15s,background .15s}.step-delete:hover{color:#c53030;background:#fff5f5}.btn-add-step{background:none;border:1px dashed #cbd5e0;border-radius:var(--radius-sm, 6px);padding:6px 12px;font-size:.875rem;color:var(--color-primary);cursor:pointer;margin-top:4px;transition:border-color .15s,background .15s}.btn-add-step:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.meal-type-toggle{display:flex;gap:0;border:1px solid #e2e8f0;border-radius:var(--radius-sm, 6px);overflow:hidden;margin-top:6px}.meal-type-btn{flex:1;padding:9px 12px;background:#fff;border:none;border-right:1px solid #e2e8f0;font-size:.9rem;font-weight:500;color:#4a5568;cursor:pointer;transition:background .15s,color .15s}.meal-type-btn:last-child{border-right:none}.meal-type-btn--active{background:var(--color-primary);color:#fff}.meal-type-btn:not(.meal-type-btn--active):hover{background:#f7fafc}.dietary-tags{display:flex;flex-wrap:wrap;gap:12px}.dietary-tag-label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:.9rem;color:#1a202c;cursor:pointer}.dietary-tag-label input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px;cursor:pointer}.review-error{margin:0;padding:10px 12px;background:#fff5f5;border:1px solid #fed7d7;border-radius:var(--radius-sm, 6px);color:#c53030;font-size:.875rem}.review-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:12px;padding:16px 32px;border-top:1px solid #e5e7eb;background:#fff}.review-actions .btn-secondary{padding:8px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-sm, 6px);font-size:.9rem;font-weight:500;cursor:pointer;color:#4a5568;transition:background .15s,border-color .15s}.review-actions .btn-secondary:hover{background:#f7fafc;border-color:#cbd5e0}.review-actions .btn-primary{padding:8px 20px;background:var(--color-primary);border:none;border-radius:var(--radius-sm, 6px);font-size:.9rem;font-weight:500;cursor:pointer;color:#fff;transition:background .15s}.review-actions .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.review-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:767px){.review-tabs{display:flex;border-bottom:1px solid #e2e8f0;background:#fff}.tab{flex:1;padding:12px;background:none;border:none;cursor:pointer;font-weight:500;font-size:.95rem;color:#4a5568;transition:color .15s}.tab.tab--active{color:var(--color-primary);border-bottom:2px solid var(--color-primary)}.review-body{display:flex;flex-direction:column}.review-left--hidden-mobile,.review-right--hidden-mobile{display:none}.review-left{flex:1;min-height:0}.review-form{padding:20px 16px}.review-actions{padding:12px 16px}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes panelIn{0%{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes backdropOut{0%{opacity:1}to{opacity:0}}@keyframes panelOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(12px)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0c0805b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:backdropIn .22s ease both}.modal-backdrop--closing{animation:backdropOut .2s ease both}@media(max-width:640px){.modal-backdrop{padding:0;align-items:flex-end}}.modal-panel{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:980px;max-height:88vh;overflow:hidden;box-shadow:0 32px 80px #00000052,0 8px 24px #0000002e,0 0 0 1px #ffffff0f;display:flex;flex-direction:column;animation:panelIn .32s cubic-bezier(.16,1,.3,1) both}.modal-panel--closing{animation:panelOut .25s ease both}@media(max-width:640px){.modal-panel{height:100vh;height:100dvh;max-height:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%}}.modal-close{position:absolute;top:1rem;left:1rem;z-index:20;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.modal-close:hover{color:var(--color-text);background:var(--color-bg);border-color:var(--color-text-subtle);transform:scale(1.08)}.modal-close:active{transform:scale(.93)}.modal-actions{position:absolute;top:1rem;right:1rem;z-index:20;display:flex;flex-direction:row;gap:.75rem}.modal-action-btn{position:relative;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-action-btn:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%}.modal-action-btn{box-shadow:var(--shadow-sm);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.modal-action-btn img{width:16px;height:16px;opacity:.6;transition:opacity var(--transition-fast)}.modal-action-btn:hover{color:var(--color-primary);border-color:var(--color-primary);transform:scale(1.08)}.modal-action-btn:hover img{opacity:1}.modal-action-btn:active{transform:scale(.93)}.modal-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.modal-tabs{display:none}.modal-tab{flex:1;padding:.625rem 1rem;border:none;background:transparent;color:var(--color-text-muted);font-size:.9375rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast)}.modal-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}@media(max-width:768px){.modal-tabs{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0;padding-left:56px;padding-right:108px}.modal-body--video-active{overflow:hidden;grid-template-rows:1fr}.modal-body--video-active .modal-left{height:100%}.modal-body--video-active .modal-media-container{aspect-ratio:unset;height:100%;border-radius:0}}.modal-body{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;flex:1;min-height:0}.modal-body--no-media{grid-template-columns:1fr}@media(max-width:768px){.modal-body{grid-template-columns:1fr;overflow-y:auto;overflow-x:hidden}}.modal-left{background:#0d0d0d;position:relative;overflow:hidden;display:flex;align-items:stretch;justify-content:center;height:100%}@media(max-width:768px){.modal-left{height:auto;align-items:center;flex-shrink:0}.modal-left--hidden-mobile{display:none}}.modal-media-container{width:100%;height:100%;background:#0f0f0f;border-radius:0;overflow:hidden;position:relative}@media(max-width:768px){.modal-media-container{aspect-ratio:4/3;height:auto;border-radius:12px}}.modal-media-container iframe,.modal-media-container .modal-iframe-fallback{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.modal-iframe{width:100%;height:100%;border:none;display:block}.modal-iframe-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:#fff6;font-size:.875rem}.modal-iframe-fallback svg{opacity:.5;width:32px;height:32px}.modal-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#000}.modal-thumbnail-link{position:absolute;top:0;right:0;bottom:0;left:0;display:block;text-decoration:none}.modal-thumbnail-img{width:100%;height:100%;object-fit:cover;display:block}.modal-play-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000001a;transition:background .2s}.modal-play-btn:hover{background:#00000040}.modal-play-btn svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));transition:transform .15s}.modal-thumbnail-link:hover .modal-play-btn svg{transform:scale(1.08)}.modal-right{height:100%;overflow-y:auto;overscroll-behavior:contain}.modal-right::-webkit-scrollbar{width:4px}.modal-right::-webkit-scrollbar-track{background:transparent}.modal-right::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}@media(max-width:768px){.modal-right--hidden-mobile{display:none}}.modal-content{padding:2.5rem 2rem;display:flex;flex-direction:column;min-height:100%}@media(max-width:640px){.modal-content{padding:1.75rem 1.375rem 2rem}}.modal-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.modal-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;letter-spacing:.01em}.modal-badge--category{background:var(--color-primary-light);color:var(--color-primary)}.modal-badge--difficulty{background:var(--diff-bg, #f5f5f4);color:var(--diff-color, var(--color-text-muted))}.modal-title{font-size:clamp(1.25rem,2.5vw,1.625rem);font-weight:700;letter-spacing:-.025em;line-height:1.25;color:var(--color-text);margin-bottom:1.5rem}.modal-divider{height:1px;background:var(--color-border);margin-bottom:1.5rem}.modal-ingredients{flex:1;margin-bottom:1.75rem}.modal-ingredients-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.875rem}.modal-ingredients-header .modal-section-heading{margin-bottom:0}.modal-section-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle);margin-bottom:.875rem}.ingredient-list{list-style:none;padding:0;margin:0}.ingredient-item{display:flex;align-items:center;gap:.75rem;padding:.5625rem 0;border-bottom:1px solid var(--color-border);font-size:.9375rem;color:var(--color-text);line-height:1.4}.ingredient-item:last-child{border-bottom:none}.ingredient-bullet{width:6px;height:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.modal-empty-ingredients{font-size:.875rem;color:var(--color-text-subtle);padding:1rem 0}.ingredient-skeleton{list-style:none;padding:0;margin:0}.skeleton-ingredient{height:13px;width:var(--w, 70%);border-radius:var(--radius-sm);margin:.625rem 0;background:linear-gradient(90deg,var(--color-border) 25%,#f0ece8 50%,var(--color-border) 75%);background-size:400% 100%;animation:shimmer 1.6s ease-in-out infinite}.ingredient-label{display:flex;flex-direction:row;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.ingredient-checkbox{width:16px;height:16px;accent-color:var(--color-primary, #e85d4a);cursor:pointer;flex-shrink:0}.ingredient-item--checked span{text-decoration:line-through;color:var(--color-muted, #9ca3af)}.modal-instructions{margin-top:24px;margin-bottom:1.75rem}.modal-instructions-text{white-space:pre-wrap;line-height:1.7;color:var(--color-text);font-size:.925rem;margin:0}.modal-instructions-list{padding-left:20px;padding-right:20px;margin:0}.modal-instructions-list .modal-instruction-step{margin-bottom:8px;line-height:1.6;color:#374151;font-size:14px}@keyframes cookingPulse{0%,to{box-shadow:0 0 #e85d4a40}50%{box-shadow:0 0 0 6px #e85d4a00}}.cooking-mode-btn{display:flex;align-items:center;justify-content:center;gap:.375rem;width:auto;padding:.35rem .75rem;border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:.8125rem;font-weight:600;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.cooking-mode-btn:hover{border-color:var(--color-text-subtle)}.cooking-mode-btn--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);animation:cookingPulse 2s ease-in-out infinite}.cooking-mode-btn--active:hover{border-color:var(--color-primary);opacity:.9}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.modal-share-tooltip{position:absolute;top:calc(100% + .5rem);right:0;background:var(--color-text);color:#fff;font-size:.75rem;font-weight:500;padding:.3rem .625rem;border-radius:var(--radius-full);white-space:nowrap;animation:tooltipFadeIn .15s ease both;pointer-events:none}.modal-delete-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.modal-delete-btn{background:none;border:none;color:var(--color-error, #dc2626);font-size:.875rem;font-weight:600;cursor:pointer;padding:.5rem 0;transition:opacity var(--transition-fast)}.modal-delete-btn:hover{opacity:.75}.modal-delete-btn:disabled{opacity:.5;cursor:not-allowed}.modal-delete-error-inline{font-size:.8125rem;color:var(--color-error, #dc2626);background:var(--color-error-bg, #fef2f2);padding:.375rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-error-border, #fecaca);margin-top:.5rem}.modal-ig-link{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);text-decoration:none;border:1.5px solid var(--color-border);border-radius:var(--radius-full);padding:.4rem .875rem;margin-top:auto;width:fit-content;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.modal-ig-link svg{flex-shrink:0}.modal-ig-link:hover{color:var(--color-text);border-color:var(--color-text-muted);background:var(--color-bg)}.quick-filter-pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:.75rem 0 0;width:100%;justify-content:center}.quick-filter-pills::-webkit-scrollbar{display:none}.pill{display:inline-flex;align-items:center;gap:6px;padding:.4rem 1rem;border-radius:var(--radius-full);border:1.5px solid transparent;background:#fff;color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-sm);font-weight:400;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.pill:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary)}.pill--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pill--active:hover:not(:disabled){background:var(--color-primary-hover);color:#fff;border-color:var(--color-primary-hover)}.pill--filter{background:var(--color-filter-green);color:#fff;border-color:var(--color-filter-green)}.pill--filter:hover{opacity:.9}.pill--filter svg{flex-shrink:0}.pill--filter-active{box-shadow:0 0 0 2px #4caf504d}.pill--disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.quick-filter-pills{justify-content:flex-start;padding-left:.25rem;padding-right:.25rem}}@keyframes shimmer{0%{background-position:-400% 0}to{background-position:400% 0}}.gallery-header{display:flex;flex-direction:column;gap:0;margin-bottom:1.5rem}.gallery-header__top{display:flex;align-items:center;gap:.625rem}.gallery-header__top h2{font-size:1.25rem;font-weight:700;letter-spacing:-.015em;color:var(--color-primary)}.gallery-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:.8125rem;font-weight:600;line-height:1;animation:fadeSlideIn .3s var(--ease-spring) both}@keyframes fadeSlideIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}@media(max-width:640px){.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}@media(max-width:340px){.recipe-grid{grid-template-columns:1fr}}.recipe-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.375rem;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);animation:cardEntry .35s var(--ease-spring) both}.recipe-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:#e85d3e33}.recipe-card:active{transform:translateY(-1px);box-shadow:var(--shadow-md)}.recipe-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.recipe-card--with-media{padding:0;overflow:hidden;border-radius:18px;background:color-mix(in srgb,var(--color-surface) 88%,var(--color-bg))}.recipe-card--with-media:hover .card-thumbnail{transform:scale(1.025)}@keyframes cardEntry{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.recipe-card:nth-child(2){animation-delay:40ms}.recipe-card:nth-child(3){animation-delay:80ms}.recipe-card:nth-child(4){animation-delay:.12s}.recipe-card:nth-child(5){animation-delay:.16s}.recipe-card:nth-child(6){animation-delay:.2s}.recipe-card:nth-child(n+7){animation-delay:.24s}.card-header{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;min-height:22px}.card-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:color-mix(in srgb,var(--color-primary-light) 70%,var(--color-surface))}.card-thumbnail{width:100%;height:100%;display:block;object-fit:cover;transition:transform .22s cubic-bezier(.16,1,.3,1)}.card-media-top{position:absolute;inset:.625rem .625rem auto;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;pointer-events:none}.card-media-top .card-category,.card-media-top .card-delete-control{pointer-events:auto}.card-delete-control{position:relative;display:inline-flex}.card-trash{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-surface) 88%,transparent);cursor:pointer;transition:background var(--transition-fast),filter var(--transition-fast)}.card-trash img{opacity:.7;transition:opacity var(--transition-fast)}.card-trash:hover,.card-trash:active{background:var(--color-surface)}.card-trash:hover img,.card-trash:active img{opacity:1}.card-trash:disabled{opacity:.4;pointer-events:none}.card-delete-confirm{position:absolute;top:100%;left:0;z-index:10;margin-top:.25rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);white-space:nowrap;animation:confirmFadeIn .15s ease-out both}.card-delete-confirm__text{font-size:.8125rem;font-weight:600;color:var(--color-text);margin:0 0 .5rem}.card-delete-confirm__actions{display:flex;gap:.5rem}.card-delete-confirm__cancel,.card-delete-confirm__confirm{padding:.3rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.card-delete-confirm__cancel{background:var(--color-border);color:var(--color-text-muted)}.card-delete-confirm__cancel:hover{background:#d6d3d1}.card-delete-confirm__confirm{background:var(--color-error);color:#fff}.card-delete-confirm__confirm:hover{background:#b91c1c}.card-delete-confirm__confirm:disabled{opacity:.5;pointer-events:none}@keyframes confirmFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.card-category{display:inline-block;padding:.2rem .625rem;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:.75rem;font-weight:600;letter-spacing:.01em;text-transform:capitalize}.card-title{font-size:.9375rem;font-weight:600;line-height:1.45;color:var(--color-text);letter-spacing:-.01em;margin-bottom:.625rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-difficulty{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:500;color:var(--diff-color, var(--color-text-muted));background:var(--diff-bg, #f5f5f4);padding:.2rem .625rem .2rem .5rem;border-radius:var(--radius-full);margin:0}.difficulty-dot{width:6px;height:6px;border-radius:50%;background:var(--diff-color, var(--color-text-subtle));flex-shrink:0}.recipe-card--skeleton{pointer-events:none;cursor:default}.recipe-card--skeleton:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--color-border)}.skeleton-line{height:12px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-border) 25%,#f0ece8 50%,var(--color-border) 75%);background-size:400% 100%;animation:shimmer 1.6s ease-in-out infinite}.skeleton-line--badge{height:20px;width:70px;margin-bottom:.75rem;border-radius:var(--radius-full)}.skeleton-line--title{height:14px;width:90%;margin-bottom:.5rem}.skeleton-line--title.short{width:60%;margin-bottom:.75rem}.skeleton-line--meta{height:20px;width:80px;border-radius:var(--radius-full)}.gallery-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem;background:var(--color-surface);border:1.5px dashed var(--color-border);border-radius:var(--radius-xl);gap:.75rem}.empty-icon{color:var(--color-text-subtle);margin-bottom:.25rem}.gallery-empty__title{font-size:1rem;font-weight:600;color:var(--color-text-muted)}.gallery-empty__sub{font-size:.9rem;color:var(--color-text-subtle);max-width:300px;line-height:1.6}.gallery-empty--filtered{border-style:solid;border-color:var(--color-border);padding:3rem 2rem}.gallery-error{font-size:.9rem;color:var(--color-error);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:.875rem 1.125rem}.card-category--media{box-shadow:var(--shadow-xs);background:color-mix(in srgb,var(--color-surface) 90%,var(--color-primary-light))}.card-body{padding:.875rem 1rem 1rem}.card-meta{min-height:26px;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.card-duration{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .625rem;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-text) 8%,var(--color-surface));color:var(--color-text-muted);font-size:.8125rem;font-weight:700}.card-source{width:26px;height:26px;margin-inline-start:auto;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--color-primary-light);color:var(--color-primary)}.card-source svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.card-source--youtube{background:color-mix(in srgb,var(--color-error-bg) 78%,var(--color-surface));color:var(--color-error)}.card-source--youtube svg path{fill:currentColor;stroke:none}.card-source--tiktok{background:color-mix(in srgb,var(--color-text) 8%,var(--color-surface));color:var(--color-text)}.card-source--tiktok svg path{fill:currentColor;stroke:none}.skeleton-media{width:100%;height:100%;background:linear-gradient(90deg,var(--color-border) 25%,color-mix(in srgb,var(--color-border) 55%,var(--color-surface)) 50%,var(--color-border) 75%);background-size:400% 100%;animation:shimmer 1.6s ease-in-out infinite}@media(max-width:640px){.recipe-card{border-radius:16px}.recipe-card:not(.recipe-card--with-media){padding:1rem}.card-body{padding:.75rem .75rem .875rem}.card-title{font-size:.875rem;line-height:1.35;margin-bottom:.5rem}.card-category{padding:.15rem .5rem;font-size:.6875rem}.card-difficulty,.card-duration{font-size:.75rem;padding-inline:.5rem}.card-source{width:24px;height:24px;border-radius:8px}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.filter-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0c080580;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:backdropFadeIn .2s ease both}.filter-sheet{background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:540px;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .3s var(--ease-spring) both;box-shadow:0 -8px 40px #00000026}.filter-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.filter-sheet__title{font-family:var(--font-body);font-size:var(--text-h3)!important;color:var(--color-text);margin:0}.filter-sheet__close{width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.filter-sheet__close:hover{background:var(--color-bg);color:var(--color-text)}.filter-sheet__body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.filter-section__title{font-family:var(--font-body);font-size:var(--text-sm)!important;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{padding:.4rem .875rem;border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-chip--selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.filter-chip--selected:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.filter-sheet__footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid var(--color-border);flex-shrink:0;gap:12px}.filter-sheet__clear{background:none;border:none;color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer;padding:.5rem .75rem;transition:color var(--transition-fast)}.filter-sheet__clear:hover{color:var(--color-text)}.filter-sheet__apply{padding:.625rem 1.75rem;border-radius:var(--radius-md);border:none;background:var(--color-primary);color:#fff;font-family:var(--font-body);font-size:var(--text-body);font-weight:700;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);box-shadow:0 2px 8px #e85d3e47}.filter-sheet__apply:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.filter-sheet__apply:active{transform:translateY(0)}@media(min-width:641px){.filter-sheet-backdrop{align-items:center}.filter-sheet{border-radius:var(--radius-xl);max-height:70vh}}.recipe-library-menu{position:relative;min-width:0}.recipe-library-menu svg,.recipe-library-menu__panel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.recipe-library-menu__trigger{min-width:0;max-width:210px;min-height:46px;display:inline-flex;align-items:center;gap:10px;padding:7px 10px 7px 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-surface) 82%,var(--color-bg));color:var(--color-text);box-shadow:var(--shadow-xs);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.recipe-library-menu__trigger:hover{background:var(--color-surface);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));box-shadow:var(--shadow-sm)}.recipe-library-menu__trigger:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #e85d3e24}.recipe-library-menu__trigger:active{transform:translateY(1px)}.recipe-library-menu__trigger-icon{width:30px;height:30px;border-radius:var(--radius-full);display:grid;place-items:center;flex:0 0 auto;background:var(--color-primary-light);color:var(--color-primary)}.recipe-library-menu__trigger-text{min-width:0;display:flex;flex-direction:column;align-items:flex-start;line-height:1.12;text-align:right}.recipe-library-menu__trigger-kicker{font-size:.68rem;color:var(--color-text-muted)}.recipe-library-menu__trigger-name{max-width:116px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);font-weight:700;color:var(--color-text)}.recipe-library-menu__trigger-chevron{flex:0 0 auto;color:var(--color-text-muted)}.recipe-library-menu__trigger-chevron svg{width:15px;height:15px;transition:transform var(--transition-fast)}.recipe-library-menu__trigger-chevron svg.is-open{transform:rotate(180deg)}.recipe-library-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;border:0;background:#1c191752;cursor:default}.recipe-library-menu__panel{position:fixed;right:0;bottom:0;left:0;z-index:220;max-height:calc(100dvh - 12px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:8px 18px max(20px,env(safe-area-inset-bottom));background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:1px solid var(--color-border);box-shadow:0 -10px 34px #1c191729;animation:recipe-library-sheet-in .22s var(--ease-spring) both}.recipe-library-menu__sheet-handle{width:42px;height:4px;margin:2px auto 16px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-border) 75%,var(--color-text-subtle))}.recipe-library-menu__current,.recipe-library-menu__section,.recipe-library-menu__danger{padding:16px 0}.recipe-library-menu__current,.recipe-library-menu__section{border-bottom:1px solid var(--color-border)}.recipe-library-menu__section-label{display:block;margin-bottom:10px;font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted)}.recipe-library-menu__section-copy,.recipe-library-menu__danger-copy,.recipe-library-menu__empty{margin:0;font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-muted)}.recipe-library-menu__section-copy{margin-bottom:10px}.recipe-library-menu__current-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-primary-light);color:var(--color-primary)}.recipe-library-menu__current-card div{min-width:0;display:flex;flex-direction:column;gap:2px}.recipe-library-menu__current-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--text-body)}.recipe-library-menu__current-card span{font-size:var(--text-xs);color:var(--color-text-muted)}.recipe-library-menu__library-list,.recipe-library-menu__actions{display:flex;flex-direction:column;gap:8px}.recipe-library-menu__actions{margin-top:12px}.recipe-library-menu__library,.recipe-library-menu__row{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:12px 14px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text);text-align:right;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast)}.recipe-library-menu__library:hover:not(:disabled),.recipe-library-menu__row:hover:not(:disabled){background:var(--color-bg)}.recipe-library-menu__library:focus-visible,.recipe-library-menu__row:focus-visible{outline:none;box-shadow:0 0 0 3px #e85d3e24}.recipe-library-menu__library:disabled,.recipe-library-menu__row:disabled{cursor:not-allowed;opacity:.52}.recipe-library-menu__library{justify-content:space-between;font-size:var(--text-sm)}.recipe-library-menu__library span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-library-menu__library--active{background:var(--color-primary-light);color:var(--color-primary);font-weight:700}.recipe-library-menu__row-icon{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-primary)}.recipe-library-menu__row-label{min-width:0;flex:1;font-size:var(--text-sm);font-weight:600}.recipe-library-menu__row--whatsapp .recipe-library-menu__row-icon{background:#e8f8ee;color:#128c4a}.recipe-library-menu__row--danger{color:var(--color-error)}.recipe-library-menu__row--danger .recipe-library-menu__row-icon{background:var(--color-error-bg);color:var(--color-error)}.recipe-library-menu__danger-copy{margin-top:10px;padding:0 14px}.library-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:18px max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#1c19176b}.library-modal{width:100%;max-width:420px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:22px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-lg)}.library-modal__title{margin:0 0 6px;font-size:var(--text-h3);color:var(--color-text)}.library-modal__copy{margin:0 0 16px;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.library-modal__form{display:flex;flex-direction:column;gap:12px}.library-modal__input{width:100%;min-height:50px;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-body);outline:none}.library-modal__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #e85d3e1f;background:var(--color-surface)}.library-modal__input--code{text-align:center;letter-spacing:.14em;text-transform:uppercase}.library-modal__error{margin:0;padding:10px 12px;border:1px solid var(--color-error-border);border-radius:var(--radius-md);background:var(--color-error-bg);color:var(--color-error);font-size:var(--text-sm)}.library-modal__warning{margin:0 0 12px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-primary-light);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal)}.library-modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.library-modal__button{min-height:46px;padding:9px 16px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}.library-modal__button:disabled{cursor:not-allowed;opacity:.62}.library-modal__button--ghost{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}.library-modal__button--primary{border:0;background:var(--color-primary);color:var(--color-surface)}.library-modal__button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.library-modal__button--danger{border:0;background:var(--color-error);color:var(--color-surface)}.library-modal__button--danger:hover:not(:disabled){background:#b91c1c}@keyframes recipe-library-sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(min-width:720px){.recipe-library-menu__backdrop{display:none}.recipe-library-menu__panel{position:fixed;top:var(--recipe-library-panel-top, 72px);right:var(--recipe-library-panel-right, 16px);bottom:auto;left:auto;width:340px;max-height:min(76vh,680px);padding:14px;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:recipe-library-popover-in .18s var(--ease-spring) both}.recipe-library-menu__sheet-handle{display:none}.library-modal-overlay{align-items:center}}@keyframes recipe-library-popover-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:640px){.recipe-library-menu{flex:1 1 auto;width:100%}.recipe-library-menu__trigger{width:100%;max-width:none;min-height:52px;padding:8px 12px;justify-content:flex-start}.recipe-library-menu__trigger-icon{width:34px;height:34px}.recipe-library-menu__trigger-text{flex:1}.recipe-library-menu__trigger-name{max-width:calc(100vw - 128px)}.recipe-library-menu__panel{border-radius:24px 24px 0 0;padding-inline:16px}.library-modal-overlay{align-items:flex-end;padding:10px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.library-modal{max-width:none;max-height:calc(100dvh - 20px);padding:20px 18px max(20px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.library-modal__actions{flex-direction:column-reverse;gap:10px;margin-top:8px}.library-modal__button{width:100%;min-height:50px}}.pwa-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -4px 20px #1c19171f;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:pwa-slide-up .4s var(--ease-spring)}.pwa-banner__content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.pwa-banner__icon{width:44px;height:44px;border-radius:var(--radius-md);flex-shrink:0}.pwa-banner__text{display:flex;flex-direction:column;gap:2px;min-width:0}.pwa-banner__text strong{font-family:var(--font-body);font-size:var(--text-body);color:var(--color-text)}.pwa-banner__text span{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pwa-banner__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pwa-banner__dismiss{padding:8px 14px;border:none;background:transparent;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.pwa-banner__dismiss:hover{background:#0000000d}.pwa-banner__install{padding:8px 20px;border:none;background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:600;cursor:pointer;border-radius:var(--radius-full);transition:background var(--transition-fast)}.pwa-banner__install:hover{background:var(--color-primary-hover)}.pwa-banner__install:active{background:var(--color-primary-active)}.pwa-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;animation:pwa-fade-in .25s ease-out}.pwa-modal{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);padding:32px 28px;max-width:360px;width:100%;text-align:center;box-shadow:var(--shadow-lg);animation:pwa-scale-in .3s var(--ease-spring)}.pwa-modal__close{position:absolute;top:12px;left:12px;width:32px;height:32px;border:none;background:#0000000f;border-radius:var(--radius-full);font-size:1.25rem;line-height:1;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.pwa-modal__close:hover{background:#0000001a}.pwa-modal__app-icon{width:64px;height:64px;border-radius:var(--radius-lg);margin-bottom:16px}.pwa-modal__title{font-family:var(--font-body);font-size:var(--text-h3);color:var(--color-text);margin:0 0 6px;font-weight:700}.pwa-modal__subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 24px;line-height:var(--leading-relaxed)}.pwa-modal__steps{list-style:none;padding:0;margin:0 0 8px;text-align:right}.pwa-modal__step{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal)}.pwa-modal__step:last-child{border-bottom:none}.pwa-modal__step strong{color:var(--color-primary)}.pwa-modal__step-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.pwa-modal__safari-guide{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:20px;padding:20px;background:var(--color-primary-light);border-radius:var(--radius-md)}.pwa-modal__safari-guide p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.pwa-modal__safari-icon{color:var(--color-primary)}.pwa-modal__copy-btn{width:100%;padding:12px 20px;border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);font-size:var(--text-body);font-weight:600;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.pwa-modal__copy-btn:hover{background:var(--color-primary);color:#fff}.pwa-modal__copy-btn--copied{border-color:var(--color-success);color:var(--color-success);background:var(--color-success-bg)}.pwa-modal__copy-btn--copied:hover{background:var(--color-success-bg);color:var(--color-success)}.pwa-menu-install{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--color-primary);cursor:pointer;font-size:.875rem;font-weight:500;text-align:right;transition:background .15s}.pwa-menu-install:hover{background:var(--color-primary-light)}.pwa-menu-install svg{flex-shrink:0}@keyframes pwa-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pwa-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pwa-scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
