.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)}.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(240px,1fr));gap:1rem}@media(max-width:480px){.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}@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-trash{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background: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:transparent}.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}@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}}@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-primary: #e85d3e;--color-primary-hover: #d14e30;--color-primary-active: #bf4427;--color-primary-light: #fff0ec;--color-pill-inactive: #f5efec;--color-filter-green: #4caf50;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--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}.brand{display:flex;align-items:center;gap:.625rem;color:var(--color-text)}.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){.hero{padding:3rem 1.25rem 3.5rem}.content{padding:2rem 1.25rem 3rem}}
