@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap");:root{color-scheme:dark;--font-brand:var(--pp-font-brand,"Poppins",sans-serif);--font-body:var(--pp-font-body,"Nunito",sans-serif);--font-editorial:"Playfair Display",serif;--color-bg:#121010;--color-surface:#1E1B1B;--color-surface-container:#2A2727;--color-surface-container-high:#323030;--color-surface-container-highest:#3A3737;--color-on-surface:#EDD09A;--color-on-surface-bright:#F2E8D0;--color-on-surface-muted:#C7A96A;--color-on-surface-disabled:rgba(237,208,154,0.45);--color-hairline:rgba(237,208,154,0.10);--color-primary:#B0ADDA;--color-primary-container:#2A2749;--color-on-primary-container:#D4D2ED;--color-primary-40:#3D366A;--color-primary-glow:rgba(176,173,218,0.25);--color-secondary-container:#481E20;--color-on-secondary-container:#E5B8BA;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--type-display:clamp(2rem,5vw,2.6rem);--type-headline-lg:clamp(1.5rem,3vw,2.2rem);--type-headline-sm:1.5rem;--type-title-lg:1.375rem;--type-title-md:1.1rem;--type-body-lg:1rem;--type-body-md:0.875rem;--type-body-sm:0.82rem;--type-label-lg:0.875rem;--type-label-md:0.75rem;--type-label-sm:0.6875rem;--motion-fast:200ms cubic-bezier(0.2,0,0,1);--motion-standard:350ms cubic-bezier(0.2,0,0,1);--motion-expressive:500ms cubic-bezier(0.23,1,0.32,1);--motion-bounce:600ms cubic-bezier(0.34,1.56,0.64,1);--shadow-sm:0 1px 3px rgba(0,0,0,0.30);--shadow-md:0 4px 8px rgba(0,0,0,0.35);--shadow-lg:0 8px 16px rgba(0,0,0,0.40);--shadow-xl:0 20px 40px rgba(0,0,0,0.45);--container-sm:560px;--container-md:900px;--container-lg:1200px;--container-padding:32px;--z-base:1;--z-raised:2;--z-dropdown:100;--z-sticky:500;--z-nav:1000;--z-modal:2000;--z-toast:3000;--nav-height:64px;--color-error:#ff6b6b;--color-error-bg:rgba(255,107,107,0.10);--color-error-border:rgba(255,107,107,0.20);--color-success:#2ecc71;--color-success-bg:rgba(46,204,113,0.10);--color-success-border:rgba(46,204,113,0.20);--color-warn:var(--color-primary);--color-warn-bg:rgba(212,175,55,0.10);--color-warn-border:rgba(212,175,55,0.25);--color-pro:#00c896;--color-pro-bg:rgba(0,200,150,0.12);--color-pro-border:rgba(0,200,150,0.30);--color-owner-bg:rgba(212,175,55,0.15);--color-owner-border:rgba(212,175,55,0.40);--color-household-bg:rgba(176,173,218,0.12);--color-household-border:rgba(176,173,218,0.30);--hover-scale:1.02;--active-scale:0.97;--hover-overlay:rgba(255,255,255,0.05);--focus-ring:2px solid var(--color-primary);--focus-offset:2px}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body{background-color:var(--color-bg);color:var(--color-on-surface);font-family:var(--font-body);line-height:1.6;overflow-x:hidden}[role=button],a,button{cursor:pointer;outline:none}[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.font-heading,h1,h2,h3,h4{font-family:var(--font-brand);font-weight:600;line-height:1.2}.pp-overline{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.pp-hint,.pp-overline{color:var(--color-on-surface-muted)}.pp-hint{display:block;font-size:.75rem}.pp-flex-col,.pp-flex-row{gap:16px}.pp-flex-center{display:flex;align-items:center;justify-content:center}.pp-flex-between{justify-content:space-between}.pp-flex-align-center,.pp-flex-between{display:flex;align-items:center}.pp-section-heading{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;line-height:1.2;margin:40px 0 20px}.legal-section-heading,.pp-section-heading{font-family:var(--font-brand);color:var(--color-on-surface)}.legal-section-heading{font-size:1.05rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--color-hairline)}button{cursor:pointer;font-family:var(--font-body);border:none;background:none;color:inherit;outline:none}[role=button]:focus-visible,[role=checkbox]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;box-shadow:0 0 0 4px var(--color-primary-glow);border-radius:4px}input{font-family:var(--font-body);border:none}input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.view-gallery{padding:32px var(--pp-content-padding,32px);max-width:var(--pp-content-max,1320px);margin:0 auto}.form-container{max-width:1200px;margin:40px auto;background:var(--color-surface);padding:40px;border-radius:20px;border:1px solid var(--color-hairline);box-shadow:0 20px 40px rgba(0,0,0,.3)}.form-group{margin-bottom:25px}.form-group label{display:block;color:var(--color-primary);text-transform:uppercase;font-size:.8rem;letter-spacing:.1em;margin-bottom:8px;font-weight:500}.form-control{width:100%;background:rgba(18,16,16,.5);border:1px solid var(--color-hairline);padding:12px 16px;border-radius:8px;color:var(--color-on-surface);font-size:1.1rem;transition:border-color var(--motion-standard)}.form-control:focus{border-color:var(--color-primary);background:rgba(18,16,16,.8);outline:none}.form-row{display:flex;gap:20px}.form-row .form-group{flex:1}textarea.form-control{min-height:120px;resize:vertical}.btn-add{background:transparent;color:var(--color-primary);border:1px dashed var(--color-primary);padding:10px 20px;border-radius:8px;margin-top:5px;cursor:pointer;transition:background var(--motion-standard)}.btn-add:hover{background:var(--color-primary-glow)}.hidden{display:none!important}.empty-state{padding:60px 20px;color:var(--color-on-surface-muted)}.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(0);background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-on-surface);padding:14px 28px;border-radius:30px;font-size:1rem;font-weight:500;box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 16px var(--color-primary-glow);z-index:var(--z-toast);animation:toast-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes toast-in{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.btn-submit{background:var(--color-primary);color:var(--color-bg);border:none;padding:16px 32px;font-size:1.2rem;font-weight:600;border-radius:30px;width:100%;margin-top:20px;cursor:pointer;transition:transform var(--motion-bounce),box-shadow var(--motion-standard)}.btn-submit:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(176,173,218,.3)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.remove-btn{color:var(--color-primary);opacity:.5;cursor:pointer;padding:8px;border-radius:50%;transition:all .15s}.remove-btn:hover{opacity:1;background:rgba(229,62,62,.1);color:#fc8181}#app,.step-edit-row.step-drag-over,.step-edit-row.step-dragging{width:100vw;min-height:100vh;position:relative;padding-top:var(--nav-height)}.tag{background:var(--color-secondary-container,#481E20);color:var(--color-on-secondary-container,#E5B8BA);border-radius:var(--radius-xs);padding:3px 10px;font-family:var(--font-body);font-size:var(--pp-type-label-small-size,.6875rem);font-weight:600;letter-spacing:.04em;text-transform:none;border:none;display:inline-block;background-color:var(--color-bg)}@keyframes pp-shimmer{0%{background-position:-800px 0}to{background-position:800px 0}}.skeleton-card{background:var(--color-surface-container,#2A2727);border-radius:var(--radius-lg);border:1px solid var(--color-hairline);overflow:hidden}.skeleton-block{background:linear-gradient(90deg,var(--color-surface-container,#2A2727) 0,var(--color-surface-container-high,#323030) 50%,var(--color-surface-container,#2A2727) 100%);background-size:800px 100%;animation:pp-shimmer 1.6s linear infinite;border-radius:var(--radius-sm)}.empty-state{grid-column:1/-1;padding:80px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.empty-state-icon{margin-bottom:16px;opacity:.6;font-size:4rem}.empty-state-title{font-family:var(--font-brand);font-size:1.4rem;font-weight:700;color:var(--color-on-surface);margin-bottom:8px}.empty-state-text{font-family:var(--font-body);font-size:var(--pp-type-body-medium-size,.875rem);color:var(--color-on-surface-muted);max-width:400px;margin:0 auto 24px;line-height:1.7}.pp-auth-confirm-card__hint a,.recipe-description,.recipe-hero-actions button{font-family:var(--font-body);font-size:.88rem;line-height:1.7;color:var(--color-on-surface-muted);font-style:italic;background:var(--color-surface-container,#2A2727);border-left:1px solid var(--color-hairline);border-radius:var(--radius-md);margin:0;padding:16px 16px 16px 14px;border:1px solid var(--color-hairline);border-left:2px solid rgba(237,208,154,.25)}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.nutrition-tilde{font-size:1rem;color:var(--color-on-surface-muted);font-weight:400;opacity:.6}.nutrition-kcal strong{font-family:var(--font-brand);font-size:2.2rem;font-weight:700;line-height:1}.nutrition-macros{gap:16px;flex-wrap:wrap}.macro-pill,.nutrition-macros{display:flex;flex-direction:column;align-items:stretch;padding:0;background:none;width:100%;box-sizing:border-box}.macro-pill{gap:6px;border:none;min-width:0;overflow:visible}.nutrition-toggle:hover{color:var(--pp-primary-90,#D4D2ED)}.nutrition-skeleton{width:100%;display:flex;flex-direction:column;gap:10px}.nutrition-skeleton-bar{height:14px;border-radius:4px;background:var(--color-surface-container-high,#323030);animation:pp-shimmer 1.5s infinite}#app{padding-top:var(--nav-height)}.nutrition-meta{flex-wrap:nowrap;gap:8px;display:flex;align-items:center;margin-left:auto;justify-content:space-between;padding-top:10px;border-top:1px solid var(--color-hairline)}.nutrition-kcal strong{color:var(--color-on-surface)}.nutrition-kcal{white-space:nowrap;flex-wrap:nowrap;display:flex;align-items:baseline;gap:4px;flex-shrink:0}.nutrition-tilde,.nutrition-unit{white-space:nowrap;flex-shrink:0;font-size:.78rem;opacity:.7;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-body);font-weight:700;color:var(--color-on-surface-muted)}.ingredients-list~button,.macro-progress-bar{width:100%;height:8px;background-color:rgba(255,255,255,.07);border-radius:10px;overflow:hidden}.macro-progress-fill{height:100%;border-radius:10px;transition:width .6s cubic-bezier(.2,0,0,1)}td.nutrition-100g-cell,th.nutrition-th-100g{text-align:right}.pp-frosted-btn{font-size:.78rem;padding:5px 12px;background:rgba(0,0,0,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;color:rgba(235,220,178,.92);text-decoration:none;transition:background var(--motion-standard),border-color var(--motion-standard),color var(--motion-standard),transform var(--motion-standard);white-space:nowrap}.pp-frosted-btn:hover{background:rgba(0,0,0,.5);border-color:rgba(255,255,255,.3);color:var(--color-on-surface)}.pp-frosted-btn:active{transform:scale(.96)}.pp-frosted-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-bg);font-weight:700}.pp-frosted-btn--primary:hover{background:var(--color-primary-variant,var(--color-primary));filter:brightness(1.1)}.public-recipe-footer{margin-top:60px;padding:20px 0;border-top:1px solid var(--color-hairline);opacity:.5;font-size:.85rem}.public-recipe-footer a{color:var(--color-primary);text-decoration:none}.public-recipe-footer a:hover{text-decoration:underline}.nutrition-ing-name{display:block;font-weight:600;color:var(--color-on-surface-bright);font-size:.9rem}.nutrition-usda-match{display:flex;align-items:center;gap:5px;margin-top:3px}.nutrition-matched-term{font-size:.75rem;color:var(--color-on-surface-muted);font-style:normal;font-weight:400;opacity:.42;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28ch;cursor:default}.nutrition-conf-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:.65rem;font-weight:700;flex-shrink:0;line-height:1;padding:1px 3px;letter-spacing:.02em}.nutrition-row--low-confidence td{font-style:normal}.nutrition-row--low-confidence .nutrition-ing-name{color:#FFA726}.nutrition-row--skipped td{opacity:.4;font-style:italic}td.nutrition-100g-cell,td.nutrition-grams,td.nutrition-kcal-cell{font-variant-numeric:tabular-nums;text-align:right;color:var(--color-on-surface);font-size:.87rem;white-space:nowrap}th.nutrition-th-100g,th.nutrition-th-amt,th.nutrition-th-kcal{text-align:right}.nutrition-total-row td{font-weight:700;color:var(--color-on-surface-bright);font-size:.9rem;border-top:2px solid rgba(237,208,154,.12);padding-top:12px}.nutrition-flag-btn{background:none;border:none;cursor:pointer;color:inherit;font-size:.75rem;padding:2px 4px;opacity:.4;line-height:1;transition:opacity .15s}.nutrition-flag-btn:hover{opacity:1;color:#EF5350}.nutrition-flag-done{color:#EF5350;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:2px 4px}.home-hero__pattern{position:absolute;inset:-40px;background-image:url(/logo-wheat.svg);background-size:100px 100px;background-repeat:repeat;opacity:.06;transform:rotate(15deg);pointer-events:none}.home-hero__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:48px 24px 56px;width:100%;max-width:700px}.home-hero__logo{width:80px;height:80px;display:block;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4))}.home-hero__title{font-family:var(--font-brand);font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--color-on-surface);letter-spacing:-.02em;line-height:1.1;margin:0}.home-hero__subtitle{font-size:1rem;color:var(--color-on-surface-muted);margin:0;opacity:.9}.home-hero__search{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);border:1px solid rgba(237,208,154,.15);border-radius:var(--radius-pill);padding:10px 20px;width:100%;max-width:480px;backdrop-filter:blur(8px);transition:border-color .2s,background .2s}.home-hero__search:focus-within{border-color:rgba(237,208,154,.4);background:rgba(255,255,255,.1)}.home-hero__search input{background:transparent;border:none;outline:none;color:var(--color-on-surface);font-size:.95rem;width:100%}.home-hero__search input::placeholder{color:var(--pp-salt-faint,rgba(237,208,154,.45))}.home-hero__join{font-size:.85rem;color:var(--color-on-surface-muted);margin-top:4px}.home-hero__join a{color:var(--color-on-surface);font-weight:600;text-decoration:underline}.home-content{max-width:1200px;margin:32px auto 60px;padding:0 24px}.home-wrapper{max-width:1200px;margin:40px auto;background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:20px;box-shadow:0 20px 40px rgba(0,0,0,.3);overflow:hidden}.home-hero{position:relative;min-height:45vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--pp-neutral-20,#322F2F) 0,var(--pp-primary-20,#1B1930) 55%,var(--pp-secondary-20,#2E1315) 100%);border-radius:0}.home-wrapper .home-content{max-width:none;margin:0;padding:32px 40px 40px;background:transparent}.pp-page-card{max-width:1200px;margin:40px auto;background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:20px;box-shadow:0 20px 40px rgba(0,0,0,.3);padding:40px;box-sizing:border-box}@media (max-width:768px){.home-hero{min-height:38vh}.home-hero__logo{width:60px;height:60px}.home-hero__title{font-size:1.8rem}.home-content{margin:20px auto 40px;padding:0 12px}.home-wrapper{margin:12px;border-radius:16px}.home-wrapper .home-content{padding:24px 20px 32px}.pp-page-card{margin:12px;border-radius:16px;padding:24px 20px}.form-container{margin:12px}}@media (max-width:600px){.ingredient-edit-row:not(.is-section){grid-template-columns:32px 68px 68px 1fr 32px;grid-template-rows:auto auto;grid-template-areas:"handle qty  unit  name  remove" ".      prep prep  prep  prep";gap:6px}.ingredient-edit-row:not(.is-section)>:first-child{grid-area:handle;align-self:center}.ingredient-edit-row:not(.is-section)>:nth-child(2){grid-area:qty;padding-left:8px;padding-right:8px}.ingredient-edit-row:not(.is-section)>:nth-child(3){grid-area:unit;padding-left:8px;padding-right:8px}.ingredient-edit-row:not(.is-section)>:nth-child(4){grid-area:name}.ingredient-edit-row:not(.is-section)>:nth-child(5){grid-area:prep;font-size:.9rem}.ingredient-edit-row:not(.is-section)>:nth-child(6){grid-area:remove;align-self:center}.nav-header{padding:0 16px}.step-input{min-height:140px}.step-card{padding:14px 16px;gap:12px}}@media (max-width:480px){.cooking-title{font-size:1.8rem}.form-container{padding:18px 14px}.tag{padding:6px 10px}.ingredient-edit-row:hover{background:rgba(255,255,255,.08)}.ingredient-edit-row.is-section{background:rgba(176,173,218,.05);border-left:4px solid var(--color-primary)}}@media (hover:none){.ingredient-cart-btn{opacity:.6}}@media (prefers-color-scheme:dark){.nutrition-locked-overlay{background:rgba(0,0,0,.4)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root{--color-bg:#ffffff;--color-on-surface:#000000;--color-surface:#ffffff;--color-hairline:#eeeeee;--color-primary:#000000}body{background:white;color:black;font-size:11pt}.auth-status-container,.btn-add,.btn-scan,.carousel-controls,.carousel-dots,.nav-header,.recipe-hero-block,.recipe-notes form,.timer-widget,.toast,aside,footer,nav{display:none!important}.recipe-stat-strip{background:none;border:none;border-bottom:1px solid #ccc;padding:6pt 0}.recipe-stat-btn,.recipe-stat-link-btn{display:none!important}.cooking-title{font-size:28pt;margin-top:20pt;color:black}.section-title{font-size:18pt;margin-top:20pt;border-bottom:2px solid #000;padding-bottom:5pt}.step-card{page-break-inside:avoid;background:white;border:1px solid #ddd;box-shadow:none;margin-bottom:10pt}.ingredient-item{border-bottom:1px solid #eee}.checkbox{display:none!important}.recipe-detail-wrapper{padding-top:0}.recipe-panels{display:block!important}.recipe-left,.recipe-right{width:100%!important;height:auto!important;overflow:visible;padding:0}.recipe-detail-wrapper:before{content:attr(data-title);display:block;font-size:24pt;font-weight:700;margin-bottom:12pt;color:black;font-family:Georgia,serif}h1,h2,h3,li,p,span,strong{color:black}.site-footer{display:none!important}}.pp-flex-row{display:flex;flex-direction:row}.pp-flex-col{display:flex;flex-direction:column}.pp-align-center{align-items:center}.pp-align-start{align-items:flex-start}.pp-justify-between{justify-content:space-between}.pp-justify-center{justify-content:center}.pp-flex-wrap{flex-wrap:wrap}.pp-gap-1{gap:4px}.pp-gap-2{gap:8px}.pp-gap-3{gap:12px}.pp-gap-4{gap:16px}.pp-gap-5{gap:24px}.pp-text-center{text-align:center}.pp-text-right{text-align:right}.pp-text-muted{color:var(--color-text-muted)}.pp-w-100{width:100%}