.layout{display:flex;flex-direction:column;min-height:100vh}.navbar{background:var(--cream-light);border-bottom:2px solid var(--cream-dark);position:sticky;top:0;z-index:100}.navbar-inner{gap:32px;height:60px;margin:0 auto;max-width:1200px;padding:0 24px}.navbar-brand,.navbar-inner{align-items:center;display:flex}.navbar-brand{flex-shrink:0;gap:10px}.brand-logo{height:28px;width:auto}.brand-text{color:var(--orange);font-family:Pacifico,cursive;font-size:22px;letter-spacing:0}.navbar-links{flex:1 1;gap:2px}.nav-link,.navbar-links{align-items:center;display:flex}.nav-link{border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;font-weight:500;gap:6px;letter-spacing:-.3px;padding:8px 14px;position:relative;transition:all .2s ease-in;white-space:nowrap}.nav-link:hover{color:var(--text-primary)}.nav-link.active{background:#0000;color:var(--orange);font-weight:600}.nav-link.active:after{background:var(--black);border-radius:2px;bottom:-2px;content:"";height:3px;left:14px;position:absolute;right:14px}.nav-link img,.nav-link svg{flex-shrink:0;height:20px;width:20px}.nav-badge{align-items:center;background:var(--danger);border-radius:9px;color:#fff;display:inline-flex;font-size:10px;font-weight:700;height:18px;justify-content:center;line-height:1;margin-left:4px;min-width:18px;padding:0 5px}.nav-admin,.nav-admin.active{color:var(--orange)}.nav-admin.active:after{background:var(--orange)}.navbar-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.nav-avatar{border:2px solid var(--orange);border-radius:50%;height:36px;overflow:hidden;width:36px}.nav-avatar img{height:100%;object-fit:cover;width:100%}.avatar-placeholder{background:var(--orange);color:var(--white);font-size:14px;font-weight:700;height:100%;width:100%}.avatar-placeholder,.nav-link-icon{align-items:center;display:flex;justify-content:center}.nav-link-icon{background:none;border-radius:50%;color:var(--text-secondary);height:36px;transition:all .2s;width:36px}.nav-link-icon:hover{background:var(--cream);color:var(--text-primary)}.main-content{flex:1 1;margin:0 auto;max-width:1200px;padding:24px;width:100%}.site-footer{background:var(--cream-light);border-top:1px solid var(--cream-dark);margin-top:auto;padding:18px 24px}.footer-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.footer-brand{color:var(--text-primary);font-family:var(--font-brand);font-size:15px;font-weight:700}.footer-links{display:flex;gap:20px}.footer-links a{color:var(--gray);font-size:13px;text-decoration:none}.footer-links a:hover{color:var(--orange)}@media (max-width:768px){.navbar-inner{gap:8px;padding:0 16px}.main-content{padding:16px}.brand-text{font-size:18px}.navbar-actions{display:none}.hamburger{background:none;display:flex;flex-direction:column;flex-shrink:0;gap:5px;height:36px;justify-content:center;margin-left:auto;padding:6px;width:36px}.hamburger-line{background:var(--text-primary);border-radius:2px;display:block;height:2px;transform-origin:center;transition:all .3s ease;width:100%}.hamburger-line.open:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.navbar-links{align-items:stretch;background:var(--cream-light);box-shadow:-4px 0 12px #0000001a;flex-direction:column;gap:0;height:calc(100vh - 60px);overflow-y:auto;padding:12px 0;position:fixed;right:-280px;top:60px;transition:right .3s ease;width:280px;z-index:200}.navbar-links.open{right:0}.navbar-overlay{background:#0000004d;bottom:0;left:0;position:fixed;right:0;top:60px;z-index:199}.nav-link{border-radius:0;font-size:15px;gap:12px;padding:14px 24px}.nav-link.active:after{display:none}.nav-link.active{background:var(--cream)}.navbar-actions-mobile{border-top:1px solid var(--cream-dark);display:flex;flex-direction:column;margin-top:8px;padding-top:8px}.nav-logout-mobile{align-items:center;background:none;color:var(--danger);display:flex;font-size:15px;gap:12px;padding:14px 24px}}@media (min-width:769px){.hamburger,.navbar-actions-mobile,.navbar-overlay{display:none}}@media (max-width:480px){.main-content{padding:12px}}.auth-page{align-items:center;background:url(/static/media/login.background.176544c328e494ee0b19.png) 50%/cover no-repeat fixed;display:flex;justify-content:center;min-height:100vh;padding:24px}.auth-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border-radius:var(--radius-md);max-width:420px;padding:40px;width:100%}.auth-header{margin-bottom:32px;text-align:center}.auth-logo{display:block;height:48px;margin:0 auto 16px;width:auto}.auth-header h1{font-size:13px;font-weight:700;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}.auth-header p{color:var(--text-secondary);font-size:13px}.auth-form{gap:14px}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:5px}.form-group label{color:var(--text-primary);font-size:13px;font-weight:600}.auth-error{background:#d923231a;border-radius:var(--radius-sm);color:var(--danger);font-size:13px;font-weight:500;padding:10px 14px}.auth-submit{margin-top:8px;width:100%}.auth-footer{color:var(--text-secondary);font-size:13px;margin-top:24px;text-align:center}.auth-footer a{color:var(--blue);font-weight:600}.auth-footer a:hover{text-decoration:underline}.auth-home-btn{display:block;margin-top:8px;text-align:center}.forgot-password-link{margin-top:-4px;text-align:right}.forgot-password-link a{color:var(--blue);font-size:12px;font-weight:500}.forgot-password-link a:hover{text-decoration:underline}.auth-success{background:#15803d1a;border-radius:var(--radius-sm);color:#15803d;font-size:13px;font-weight:500;padding:10px 14px}@media (max-width:480px){.auth-page{padding:16px}.auth-card{padding:28px 20px}.auth-header{margin-bottom:24px}}.onboarding-page{align-items:center;background:var(--cream-light);display:flex;justify-content:center;min-height:100vh;padding:24px}.onboarding-card{max-width:480px;padding:48px 40px;text-align:center;width:100%}.preferences-card{max-width:640px;padding:40px;width:100%}.onboarding-slide{margin-bottom:32px}.onboarding-image{display:block;height:auto;margin:0 auto 28px;max-width:220px}.onboarding-slide h2{font-size:32px;font-weight:400;margin-bottom:10px}.onboarding-slide p{color:var(--text-secondary);font-size:15px;line-height:1.6}.onboarding-dots{display:flex;gap:8px;justify-content:center;margin-bottom:32px}.dot{background:var(--cream-dark);border-radius:50%;height:10px;transition:all .2s;width:10px}.dot.active{background:var(--orange);border-radius:5px;width:24px}.onboarding-actions{display:flex;gap:12px;justify-content:center}@media (max-width:480px){.onboarding-page{padding:16px}.onboarding-card{padding:32px 20px}.preferences-card{padding:24px 16px}.onboarding-slide h2{font-size:24px}.onboarding-image{max-width:160px}}.category-picker{margin-bottom:14px}.picker-label{color:var(--text-primary);display:block;font-size:13px;font-weight:600;margin-bottom:8px}.picker-grid{display:flex;flex-wrap:wrap;gap:8px}.picker-item{align-items:center;background:var(--white);border:2px solid var(--cream-dark);border-radius:var(--radius-full);color:var(--gray);display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:6px 14px;transition:all .2s}.picker-item:hover{background:var(--cream-light);border-color:var(--orange)}.picker-item.selected{background:var(--orange);border-color:var(--orange);color:var(--white);font-weight:600}.picker-icon{font-size:15px}.picker-more{border-color:var(--orange);border-style:dashed;color:var(--orange);font-weight:600}.picker-more:hover{background:var(--cream-light)}@media (min-width:769px){.picker-more{display:none}}@media (max-width:768px){.category-picker.collapsed .picker-overflow{display:none}}.recipe-card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:transform .2s,box-shadow .2s}.recipe-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.recipe-card-image{background:var(--cream);height:180px;overflow:hidden}.recipe-card-image img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.recipe-card:hover .recipe-card-image img{transform:scale(1.04)}.recipe-card-placeholder{align-items:center;background:var(--cream);color:var(--cream-dark);display:flex;font-size:40px;height:100%;justify-content:center;width:100%}.recipe-card-body{padding:14px 16px}.recipe-card-title{font-size:15px;font-weight:600;margin-bottom:3px}.recipe-card-desc,.recipe-card-title{letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card-desc{color:var(--gray);font-size:11px;margin-bottom:10px}.recipe-card-meta{align-items:center;border-top:1px solid var(--cream);display:flex;gap:8px;justify-content:space-between;padding-top:8px}.recipe-card-author{align-items:center;color:var(--text-secondary);display:flex;font-size:11px;gap:6px}.author-avatar-sm{align-items:center;background:var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:10px;font-weight:700;height:24px;justify-content:center;overflow:hidden;width:24px}.author-avatar-sm img{height:100%;object-fit:cover;width:100%}.recipe-card-tags{display:flex;flex-shrink:0;gap:4px}.recipe-card-header{align-items:flex-start;display:flex;gap:6px;justify-content:space-between;margin-bottom:3px}.recipe-card-header .recipe-card-title{flex:1 1;margin-bottom:0;min-width:0}.recipe-card-rating{align-items:center;display:flex;flex-shrink:0;gap:2px;white-space:nowrap}.recipe-card-star{color:#f97316;font-size:14px}.recipe-card-score{color:#333;font-size:12px;font-weight:700}.recipe-card-votes{color:#999;font-size:10px}.collection-page,.home-page,.recipes-page,.search-page{animation:fadeIn .35s ease-out}.page-header{margin-bottom:20px}.page-header h1{font-size:20px;font-weight:600;letter-spacing:-.3px}.page-header p,.page-subtitle{color:var(--text-secondary);font-size:13px;margin-top:4px}.recipe-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:16px}.pagination{align-items:center;display:flex;gap:16px;justify-content:center;margin-top:32px;padding-bottom:16px}.page-info{color:var(--text-secondary);font-size:13px}.search-bar{display:flex;gap:12px;margin-bottom:16px}.search-bar .input-field{flex:1 1}.search-tabs{border-bottom:2px solid var(--cream-dark);display:flex;gap:0;margin-bottom:16px}.search-tab{background:#0000;border-radius:0;color:var(--text-secondary);font-size:15px;font-weight:400;letter-spacing:-.3px;padding:10px 24px;position:relative;transition:all .2s ease-in}.search-tab.active{color:var(--text-primary);font-weight:600}.search-tab.active:after{background:var(--black);border-radius:2px;bottom:-2px;content:"";height:3px;left:12px;position:absolute;right:12px}.user-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.user-list-item{align-items:center;background:var(--bg-card);border-radius:var(--radius-md);display:flex;gap:14px;padding:12px 16px;transition:box-shadow .2s}.user-list-item:hover{box-shadow:var(--shadow-md)}.user-avatar-md{align-items:center;background:var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:51px;justify-content:center;overflow:hidden;width:51px}.user-avatar-md img{height:100%;object-fit:cover;width:100%}.user-info{flex:1 1}.user-info h4{font-size:13px;font-weight:600;letter-spacing:-.2px}.user-info p{color:var(--text-secondary);font-size:11px}@media (max-width:600px){.recipe-grid{gap:14px;grid-template-columns:1fr}.search-bar{flex-direction:column;gap:8px}.search-tab{font-size:13px;padding:10px 16px}.page-header h1{font-size:18px}.pagination{gap:10px;margin-top:24px}.user-list-item{gap:10px;padding:10px 12px}.user-avatar-md{font-size:15px;height:42px;width:42px}}.recipe-detail{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:800px}.rd-gallery{background:var(--cream-light);border-radius:var(--radius-md);overflow:hidden}.rd-main-image{display:block;height:380px;object-fit:cover;width:100%}.rd-thumbnails{background:var(--cream-light);display:flex;gap:8px;padding:10px 14px}.rd-thumb{border:2px solid #0000;border-radius:var(--radius-sm);cursor:pointer;height:56px;object-fit:cover;transition:all .2s;width:56px}.rd-thumb.active{border-color:var(--orange)}.rd-thumb:hover{opacity:.8}.rd-header{padding:20px}.rd-header-top{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.rd-title{font-size:20px;font-weight:700;letter-spacing:-.3px}.rd-description{color:var(--gray);font-size:13px;letter-spacing:-.2px;margin-top:4px}.rd-actions{display:flex;flex-shrink:0;gap:8px}.rd-creator{align-items:center;border-top:1px solid var(--cream);display:flex;gap:10px;margin-top:14px;padding-top:14px}.rd-creator-name{font-size:13px;font-weight:600}.rd-creator-date{color:var(--gray);font-size:11px}.rd-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.rd-content{padding:20px}.rd-content h2{font-size:17px;font-weight:700;letter-spacing:-.2px;margin-bottom:14px}.rd-html{color:var(--text-primary);font-size:14px;line-height:1.7}.rd-html p{margin-bottom:10px}.rd-html ol,.rd-html ul{margin-bottom:10px;padding-left:24px}.rd-html ul{list-style-type:disc}.rd-html ol{list-style-type:decimal}.rd-html li{margin-bottom:4px}.rd-html b,.rd-html strong{font-weight:700}.rd-html u{text-decoration:underline}.rd-notes{background:var(--cream-light);border:1px solid var(--cream);border-radius:5px;margin-top:16px;padding:14px 16px}.rd-notes h3{font-size:13px;font-weight:600;margin-bottom:4px}.rd-notes p{color:var(--gray);font-size:13px;line-height:1.5}.rd-comments{padding:20px}.rd-comments h2{font-size:17px;font-weight:700;margin-bottom:14px}.rd-comment-form{display:flex;gap:8px;margin-bottom:16px}.rd-comment-form .input-field{flex:1 1}.rd-comment-list{display:flex;flex-direction:column;gap:10px}.rd-comment{background:var(--cream-light);border-radius:var(--radius-md);padding:12px 14px}.rd-comment-header{align-items:center;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:4px}.rd-comment-date{color:var(--gray);font-size:11px;font-weight:400}.rd-comment-delete{background:none;color:var(--danger);font-size:16px;font-weight:700;margin-left:auto;padding:0 4px}.rd-comment p{font-size:13px;line-height:1.4}@media (max-width:600px){.rd-main-image{height:220px}.rd-comments,.rd-content,.rd-header{padding:12px}.rd-title{font-size:17px}.rd-header-top{flex-direction:column;gap:8px}.rd-actions{width:100%}.rd-actions .btn{flex:1 1;font-size:11px;padding:8px 12px}.rd-comment-form{flex-direction:column}.rd-comment-form .btn{align-self:flex-end}.rd-tags{gap:4px}.rd-tags .badge{font-size:11px;padding:3px 10px}.rd-thumbnails{gap:6px;padding:8px 10px}.rd-thumb{height:48px;width:48px}}.star-rating{align-items:center;border-top:1px solid #eee;display:flex;flex-wrap:wrap;gap:4px;margin-top:12px;padding-top:12px}.star-item{color:#ddd;display:inline-block;font-size:22px;line-height:1;position:relative;-webkit-user-select:none;user-select:none}.star-clickable{cursor:pointer;transition:transform .12s}.star-clickable:hover{transform:scale(1.18)}.star-bg{visibility:hidden}.star-item:before{content:"★"}.star-fill{color:#f97316;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.star-rating-avg{color:#333;font-size:16px;font-weight:700;margin-left:4px}.star-rating-count{color:#888;font-size:13px}.star-rating-yours{color:#999;font-size:12px;margin-left:2px}.star-rating-flash{animation:flashFade 1.5s ease-out forwards;color:#f97316;font-size:12px;font-weight:600;margin-left:4px}@keyframes flashFade{0%{opacity:1}70%{opacity:1}to{opacity:0}}

/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;left:-100000px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{word-wrap:break-word;box-sizing:border-box;height:100%;line-height:1.42;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-increment:list-0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{margin-bottom:5px;margin-top:5px;padding:5px 10px;white-space:pre-wrap}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;padding:2px 4px;width:24px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid #0000;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{margin-top:-9px;position:absolute;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;display:none;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.rich-editor-wrapper{margin-bottom:8px}.rich-editor-wrapper .ql-toolbar{background:var(--cream-light);border-color:var(--cream-dark);border-radius:var(--radius-md) var(--radius-md) 0 0}.rich-editor-wrapper .ql-container{border-color:var(--cream-dark);border-radius:0 0 var(--radius-md) var(--radius-md);font-family:var(--font-sans);font-size:14px;min-height:200px}.rich-editor-wrapper .ql-editor{line-height:1.6;min-height:200px}.rich-editor-wrapper .ql-editor.ql-blank:before{color:var(--gray);font-size:14px;font-style:normal}@media (max-width:600px){.rich-editor-wrapper .ql-toolbar{padding:6px}.rich-editor-wrapper .ql-toolbar .ql-formats{margin-right:6px}.rich-editor-wrapper .ql-container{min-height:160px}.rich-editor-wrapper .ql-editor{min-height:160px;padding:10px}}.add-recipe-page{margin:0 auto;max-width:700px}.add-recipe-card{padding:28px}.add-recipe-steps{gap:14px;margin-bottom:28px}.add-recipe-steps,.step-indicator{display:flex;justify-content:center}.step-indicator{align-items:center;background:var(--cream);border-radius:50%;color:var(--gray);font-size:13px;font-weight:700;height:36px;transition:all .2s;width:36px}.step-indicator.active{background:var(--orange);color:var(--white)}.step-indicator.done{background:var(--success);color:var(--white)}.add-step h2{font-size:20px;font-weight:700;letter-spacing:-.3px;margin-bottom:3px}.step-desc{color:var(--gray);font-size:13px;margin-bottom:18px}.add-step .form-group{margin-bottom:14px}.add-recipe-card>.form-group{margin-bottom:16px}.image-upload-area{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.image-preview{border-radius:var(--radius-md);height:130px;overflow:hidden;position:relative;width:130px}.image-preview img{height:100%;object-fit:cover;width:100%}.image-remove{background:#0009;border-radius:50%;color:var(--white);font-size:16px;height:26px;position:absolute;right:4px;top:4px;width:26px}.image-add-btn,.image-remove{align-items:center;display:flex;justify-content:center}.image-add-btn{background:var(--cream-light);border:2px dashed var(--cream-dark);border-radius:var(--radius-md);color:var(--gray);flex-direction:column;gap:4px;height:130px;transition:all .2s;width:130px}.image-add-btn:hover{border-color:var(--orange);color:var(--orange)}.image-add-btn span{font-size:28px}.image-add-btn small{font-size:11px}.recipe-textarea{line-height:1.6;min-height:200px;resize:vertical}.toggle-label{align-items:center;cursor:pointer;display:flex;font-size:13px;font-weight:600;justify-content:space-between}.toggle-label input{display:none}.toggle-switch{background:var(--cream-dark);border-radius:12px;height:24px;position:relative;transition:all .2s;width:44px}.toggle-switch:after{background:var(--white);border-radius:50%;content:"";height:20px;left:2px;position:absolute;top:2px;transition:all .2s;width:20px}.toggle-label input:checked+.toggle-switch{background:var(--orange)}.toggle-label input:checked+.toggle-switch:after{left:22px}.step-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}@media (max-width:600px){.add-recipe-card{padding:20px 16px}.add-step h2{font-size:17px}.image-add-btn,.image-preview{height:100px;width:100px}.step-actions{flex-direction:column}.step-actions .btn{width:100%}}.btn-review-pending{animation:reviewPulse 1.5s ease-in-out infinite;cursor:wait}.btn-review-pending,.btn-review-retry{background:#f59e0b!important;color:#fff!important}.btn-review-retry:hover{background:#d97706!important}.btn-review-maxfailed{background:#dc2626!important;color:#fff!important;cursor:not-allowed;opacity:.9}@keyframes reviewPulse{0%,to{opacity:1}50%{opacity:.7}}.review-feedback{border-radius:var(--radius-md);font-size:13px;line-height:1.5;margin-top:14px;padding:12px 16px}.review-feedback-warning{background:#fef3c7;border:1px solid #f59e0b;color:#92400e}.review-feedback-error{background:#fee2e2;border:1px solid #dc2626;color:#991b1b}.review-attempts{font-size:11px;margin-left:4px;opacity:.7}.profile-page{margin:0 auto;max-width:800px}.profile-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;padding:24px}.profile-avatar-lg{align-items:center;background:var(--orange);border:2px solid var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:32px;font-weight:700;height:80px;justify-content:center;overflow:hidden;width:80px}.profile-avatar-lg img{height:100%;object-fit:cover;width:100%}.profile-info{flex:1 1}.profile-info h1{font-size:20px;font-weight:700;letter-spacing:-.3px}.profile-about{letter-spacing:-.2px;margin-top:3px}.profile-about,.profile-stats{color:var(--gray);font-size:13px}.profile-stats{display:flex;gap:18px;margin-top:10px}.profile-stats strong{color:var(--text-primary);font-weight:700}.profile-actions{display:flex;flex-shrink:0;gap:8px}@media (max-width:600px){.profile-header{flex-direction:column;gap:14px;padding:16px;text-align:center}.profile-avatar-lg{font-size:26px;height:64px;width:64px}.profile-info h1{font-size:18px}.profile-actions,.profile-stats{justify-content:center}.profile-actions{width:100%}.settings-card{padding:20px}.settings-card h1{font-size:18px}.avatar-upload{align-items:flex-start;flex-direction:column}.settings-card input[type=date]{max-width:200px}}.following-section{max-width:800px}.following-list{padding:8px 16px}.following-item{align-items:center;border-bottom:1px solid var(--cream);color:var(--text-primary);display:flex;gap:10px;padding:10px 0;text-decoration:none;transition:opacity .2s}.following-item:last-child{border-bottom:none}.following-item:hover{opacity:.7}.following-avatar{align-items:center;background:var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:38px;justify-content:center;overflow:hidden;width:38px}.following-avatar img{height:100%;object-fit:cover;width:100%}.following-name{font-size:13px;font-weight:600}.settings-page{margin:0 auto;max-width:600px}.settings-card{padding:28px}.settings-card h1{font-size:20px;font-weight:700;letter-spacing:-.3px;margin-bottom:20px}.settings-section{border-bottom:1px solid var(--cream);margin-bottom:20px;padding-bottom:20px}.settings-section:last-child{border-bottom:none}.settings-section h3{font-size:15px;font-weight:600;margin-bottom:14px}.avatar-upload{align-items:center;display:flex;gap:14px;margin-bottom:14px}.avatar-upload-img{align-items:center;background:var(--orange);border:2px solid var(--orange);border-radius:50%;color:var(--white);display:flex;font-size:24px;font-weight:700;height:64px;justify-content:center;overflow:hidden;width:64px}.avatar-upload-img img{height:100%;object-fit:cover;width:100%}.messages-page{margin:0 auto;max-width:700px}.conversations-list{overflow:hidden;padding:0}.conversation-item{align-items:center;border-bottom:1px solid var(--cream);color:var(--text-primary);display:flex;gap:12px;padding:14px 18px;text-decoration:none;transition:background .15s}.conversation-item:last-child{border-bottom:none}.conversation-item:hover{background:var(--cream-light)}.conversation-avatar{align-items:center;background:var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:17px;font-weight:700;height:46px;justify-content:center;overflow:hidden;width:46px}.conversation-avatar img{height:100%;object-fit:cover;width:100%}.conversation-info{flex:1 1;min-width:0}.conversation-top{align-items:center;display:flex;justify-content:space-between}.conversation-name{font-size:14px;font-weight:600}.conversation-time{color:var(--gray);flex-shrink:0;font-size:11px}.conversation-preview{color:var(--gray);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{align-items:center;background:var(--orange);border-radius:10px;color:var(--white);display:flex;flex-shrink:0;font-size:10px;font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 5px}.chat-page{display:flex;flex-direction:column;height:calc(100vh - 80px);margin:0 auto;max-width:700px}.chat-header{border-bottom:1px solid var(--cream);flex-shrink:0;gap:10px;padding:12px 18px}.chat-back,.chat-header{align-items:center;display:flex}.chat-back{color:var(--gray);transition:color .15s}.chat-back:hover{color:var(--orange)}.chat-user-info{align-items:center;color:var(--text-primary);display:flex;gap:8px;text-decoration:none}.chat-user-info:hover{opacity:.8}.chat-avatar{align-items:center;background:var(--orange);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:34px;justify-content:center;overflow:hidden;width:34px}.chat-avatar img{height:100%;object-fit:cover;width:100%}.chat-username{font-size:14px;font-weight:600}.chat-messages{background:var(--cream-light);display:flex;flex:1 1;flex-direction:column;gap:6px;overflow-y:auto;padding:14px 18px}.chat-empty{align-items:center;color:var(--gray);display:flex;flex:1 1;font-size:13px;justify-content:center}.chat-bubble{word-wrap:break-word;border-radius:16px;font-size:14px;line-height:1.4;max-width:75%;padding:10px 14px}.chat-bubble.mine{align-self:flex-end;background:var(--orange);border-bottom-right-radius:4px;color:var(--white)}.chat-bubble.theirs{align-self:flex-start;background:var(--white);border:1px solid var(--cream);border-bottom-left-radius:4px}.chat-bubble p{margin:0}.chat-time{display:block;font-size:10px;margin-top:4px;opacity:.7}.chat-input-bar{background:var(--white);border-top:1px solid var(--cream);display:flex;flex-shrink:0;gap:10px;padding:12px 18px}.chat-input-bar .input-field{flex:1 1}.chat-input-bar .btn{flex-shrink:0}@media (max-width:600px){.chat-page{height:calc(100vh - 70px)}.chat-input-bar,.chat-messages{padding:10px 12px}.chat-input-bar{gap:8px}.chat-bubble{font-size:13px;max-width:85%;padding:8px 12px}.conversation-item{padding:12px 14px}.conversation-avatar{font-size:15px;height:40px;width:40px}}.admin-page{animation:fadeIn .3s ease-out}.admin-header{margin-bottom:20px}.admin-header h1{font-size:20px;font-weight:700;letter-spacing:-.3px}.admin-tabs{border-bottom:2px solid var(--cream);box-shadow:none;display:flex;gap:0;margin-bottom:20px;padding:0}.admin-tab,.admin-tabs{background:#0000;border-radius:0}.admin-tab{border-bottom:3px solid #0000;color:var(--gray);flex:1 1;font-size:13px;font-weight:600;margin-bottom:-2px;padding:10px 16px;text-align:center;transition:all .2s}.admin-tab.active{background:#0000;border-bottom-color:var(--text-primary)}.admin-tab.active,.admin-tab:hover:not(.active){color:var(--text-primary)}.stats-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px}.stat-card{background:var(--cream-light);border-radius:var(--radius-md);padding:20px;text-align:center}.stat-icon{font-size:32px;margin-bottom:10px}.stat-value{color:var(--text-primary);font-size:28px;font-weight:700}.stat-label{color:var(--gray);font-size:13px;margin-top:3px}.stat-sub{color:var(--orange);font-size:11px;font-weight:600;margin-top:6px}.admin-section{padding:20px}.admin-section h3{font-size:17px;font-weight:700;letter-spacing:-.2px;margin-bottom:14px}.top-categories{display:flex;flex-direction:column;gap:8px}.category-bar{align-items:center;display:flex;gap:10px}.category-bar-label{flex-shrink:0;font-size:12px;font-weight:500;text-align:right;width:130px}.category-bar-fill{background:var(--cream);border-radius:var(--radius-full);flex:1 1;height:22px;overflow:hidden}.category-bar-value{background:var(--orange);border-radius:var(--radius-full);height:100%;transition:width .5s ease}.category-bar-count{color:var(--gray);font-size:12px;font-weight:600;width:30px}.admin-table{overflow-x:auto}.admin-table table{border-collapse:collapse;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid var(--cream);font-size:13px;padding:10px 14px;text-align:left}.admin-table th{color:var(--gray);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.admin-table th,.admin-table tr:hover td{background:var(--cream-light)}.table-user{font-weight:500}.table-actions,.table-user{align-items:center;display:flex;gap:8px}.table-actions-wrap{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.btn-warning{background:#f59e0b;border:none;color:#fff}.btn-warning:hover{background:#d97706}.btn-success{background:var(--success);border:none;color:#fff}.btn-success:hover{background:var(--green-dark)}.user-disabled td{opacity:.55}.user-disabled td:last-child{opacity:1}.badge-red{background:#d923231f}.role-select{background:var(--white);border:1px solid var(--cream-dark);border-radius:5px;font-family:inherit;font-size:12px;padding:4px 8px}.recipe-link{color:var(--text-primary);font-weight:500;text-decoration:none}.recipe-link:hover{color:var(--orange);text-decoration:underline}.review-date-range{align-items:flex-end;display:flex;gap:12px;margin-top:12px}.review-date-range .form-group{margin-bottom:0}.review-date-range .form-group label{color:var(--gray);display:block;font-size:11px;font-weight:600;margin-bottom:4px}@media (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-tab,.admin-table{font-size:12px}.admin-tab{padding:10px}.category-bar-label{font-size:11px;width:80px}.admin-section{padding:14px}}@media (max-width:600px){.hide-mobile{display:none}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:14px}.stat-value{font-size:22px}}.static-page{margin:0 auto;max-width:800px;padding:20px 16px 60px}.static-card{padding:32px}.static-card h1{font-size:26px;font-weight:700;margin-bottom:8px}.static-updated{color:var(--gray);font-size:13px;margin-bottom:24px}.static-section{margin-bottom:28px}.static-section h2{color:var(--text-primary);font-size:17px;font-weight:600;margin-bottom:10px}.static-section p{color:var(--text-secondary);font-size:14px;line-height:1.7;margin-bottom:10px}.static-section ul{margin-bottom:10px;padding-left:20px}.static-section li{color:var(--text-secondary);font-size:14px;line-height:1.7;margin-bottom:6px}.static-section a{color:var(--orange);font-weight:500;text-decoration:none}.static-section a:hover{text-decoration:underline}@media (max-width:600px){.static-card{padding:20px 16px}.static-card h1{font-size:22px}}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/Montserrat-Regular.3cd786652b8a2e9d41f2.ttf)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/Montserrat-Medium.e2d60bc49517598c0ce8.ttf)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/Montserrat-SemiBold.fa8441f345d83a0bc4ec.ttf)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/Montserrat-Bold.079ca05d3ded9bc107ab.ttf)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(/static/media/Montserrat-ExtraBold.1944c8d1a118759a4435.ttf)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(/static/media/Montserrat-Black.46e8b3d6aad654578958.ttf)}@font-face{font-display:swap;font-family:Pacifico;font-style:normal;font-weight:400;src:url(/static/media/Pacifico-Regular.5663279fe5e7cd45da3e.ttf)}:root{--orange:#e39c3c;--orange-light:#d9af23;--cream:#eae5dd;--cream-dark:#d1c7b4;--cream-light:#f7f6f4;--black:#000;--white:#fff;--gray:#7b7b7b;--green:#69aa40;--green-dark:#529a3c;--green-light:#c4d923;--blue:#157df7;--blue-dark:#1f5493;--red:#d92323;--blue-facebook:#4a7aff;--blue-google:#87c7ff;--text-primary:#000;--text-secondary:#7b7b7b;--text-muted:#a8a29e;--border:#d1c7b4;--bg-page:#f7f6f4;--bg-card:#fff;--bg-alt:#eae5dd;--danger:#d92323;--success:#69aa40;--shadow-sm:0 1px 2px #0000000f;--shadow-md:1px 1px 3px #7b7b7b33;--shadow-lg:0 4px 12px #00000014;--radius-xs:4px;--radius-sm:5px;--radius-md:6px;--radius-lg:6px;--radius-xl:40px;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}html{touch-action:manipulation}body{-webkit-font-smoothing:antialiased;background:#f7f6f4;background:var(--bg-page);color:#000;color:var(--text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.2px}a{color:inherit;text-decoration:none}button{border:none;cursor:pointer}button,input,select,textarea{font-family:inherit;outline:none}.btn{align-items:center;border-radius:6px;border-radius:var(--radius-md);box-shadow:1px 1px 3px #7b7b7b33;box-shadow:var(--shadow-md);display:inline-flex;font-size:14px;font-weight:700;gap:8px;justify-content:center;letter-spacing:.3px;padding:10px 20px;text-transform:uppercase;transition:all .2s}.btn-primary{background:#e39c3c;background:var(--orange);color:#fff;color:var(--white)}.btn-primary:hover{background:#cb8a32}.btn-primary:disabled{background:#7b7b7b;background:var(--gray);box-shadow:none;cursor:not-allowed}.btn-secondary{background:#eae5dd;background:var(--cream);box-shadow:none;color:#000;color:var(--text-primary)}.btn-secondary:hover{background:#d1c7b4;background:var(--cream-dark)}.btn-danger{background:#d92323;background:var(--danger);color:#fff;color:var(--white)}.btn-danger:hover{opacity:.9}.btn-outline{background:#0000;border:2px solid #e39c3c;border:2px solid var(--orange);box-shadow:none;color:#e39c3c;color:var(--orange)}.btn-outline:hover{background:#e39c3c;background:var(--orange);color:#fff;color:var(--white)}.btn-sm{font-size:12px;padding:6px 14px}.btn-lg{font-size:16px;padding:14px 28px}.input-field{background:#fff;background:var(--white);border:1px solid #e39c3c;border:1px solid var(--orange);border-radius:5px;border-radius:var(--radius-sm);font-size:16px;font-weight:400;min-height:45px;padding:12px 16px;transition:border-color .2s;width:100%}.input-field:focus{border-color:#e39c3c;border-color:var(--orange);box-shadow:0 0 0 2px #e39c3c26}.input-field.error{border-color:#d92323;border-color:var(--red)}.input-field::placeholder{color:#7b7b7b;color:var(--gray)}.card{background:#fff;background:var(--bg-card);border-radius:6px;border-radius:var(--radius-md);box-shadow:0 1px 2px #0000000f;box-shadow:var(--shadow-sm);overflow:hidden}.badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;font-size:12px;font-weight:600;padding:4px 12px}.badge-orange{background:#e39c3c26;color:#e39c3c;color:var(--orange)}.badge-green{background:#69aa4026;color:#529a3c;color:var(--green-dark)}.badge-red{background:#d923231a;color:#d92323;color:var(--danger)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d1c7b4;background:var(--cream-dark);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#7b7b7b;background:var(--gray)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .35s ease-out}@keyframes spin{to{transform:rotate(1turn)}}.spinner{animation:spin 1.5s linear infinite;border:3px solid #d1c7b4;border-top-color:#e39c3c;border:3px solid var(--cream-dark);border-radius:50%;border-top-color:var(--orange);height:28px;width:28px}.loading-center{display:flex;justify-content:center;padding:60px 0}.empty-state{padding:40px 16px;text-align:center}.scroll-sentinel{height:1px}.empty-icon{display:block;font-size:56px;margin-bottom:16px}.empty-state h3{font-size:15px;font-weight:600;margin-bottom:4px}.empty-state p{color:#7b7b7b;color:var(--text-secondary);font-size:13px}.text-center{text-align:center}.text-muted{color:#7b7b7b;color:var(--text-secondary)}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.gap-1{gap:8px}.gap-2{gap:16px}
/*# sourceMappingURL=main.4842eb17.css.map*/