.login-form{font-size:1.2rem;background:#fff;padding:2.5rem 2.75rem 2.25rem;border-radius:24px;box-shadow:0 20px 60px #0000001f;display:flex;flex-direction:column;gap:1rem;width:100%;max-width:380px;margin:0 auto}.login-form--embedded{padding:0;border-radius:0;box-shadow:none;max-width:none;scroll-margin-block:1rem}.login-form h2{margin-top:0;margin-bottom:.5rem;text-align:center}.login-form input{font-size:.8em;padding:.85rem 1rem;border-radius:12px;border:none;background:#f4f4f4}.login-form button{padding:.7rem .9rem;border-radius:999px;border:none;background:var(--color-accent);color:#fff;cursor:pointer;font-weight:600;font-size:.9em;transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease}.login-form button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 26px #00000029;background-color:#5d7b70}.login-form button:disabled{opacity:.65;cursor:not-allowed}.login-form button:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 14px #0000002e}.login-error{color:#d64545;font-size:.9rem}.link{cursor:pointer;color:var(--color-accent);text-decoration:underline;font-size:.9rem;text-align:center;margin-top:.5rem}.auth-switch{margin-top:1rem;text-align:center;font-size:.9rem}.auth-try-banner{margin:1.35rem auto 0;max-width:380px;padding:1.25rem 1.35rem 1.2rem;border-radius:18px;background:linear-gradient(145deg,#708d8124,#f0f6e9f2 55%,#fff);border:2px solid var(--color-accent);box-shadow:0 10px 32px #47474714;text-align:center}.auth-try-banner__eyebrow{margin:0 0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}.auth-try-banner__title{margin:0 0 .5rem;font-family:var(--font-title);font-size:1.05rem;line-height:1.35;color:var(--color-text)}.auth-try-banner__cta{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.88rem 1rem;border-radius:3em;border:none;background-color:var(--color-accent);color:#fff!important;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease}.auth-try-banner__cta:hover{transform:translateY(-1px);box-shadow:0 10px 26px #00000029;background-color:#5d7b70;color:#fff}.auth-try-banner__cta:active{transform:translateY(0)}.auth-try-banner__footnote{margin:.85rem 0 0;font-size:.82rem;line-height:1.4;color:#666}.auth-try-banner__link{background:none;border:none;padding:0;margin:0;color:var(--color-accent);text-decoration:underline;cursor:pointer;font:inherit}.auth-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:40}.auth-modal{position:relative;background:#fff;padding:2.5rem 2.75rem 2rem;border-radius:24px;box-shadow:0 22px 70px #0003;max-width:440px;width:100%;max-height:min(92vh,720px);overflow-y:auto}.auth-modal__close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:999px;background:#f0f6e9e6;font-size:1rem;line-height:1}.auth-modal__switch{margin-top:1rem;text-align:center;font-size:.9rem}.link-button{background:none;border:none;padding:0;margin:0;color:var(--color-accent);text-decoration:underline;cursor:pointer;font:inherit}.header{display:flex;justify-content:start;align-items:center;padding:1rem;position:relative}.header__nav{font-size:1.4rem;display:flex;margin:0 auto;gap:3rem;font-weight:700}.header__logo{font-size:1.5rem;font-family:var(--font-title)}.header__burger{display:none}@media(max-width:768px){.header{justify-content:space-between}.header__burger{display:flex;flex-direction:column;font-size:1rem;width:3em;height:2em;justify-content:space-between;background:none;border:none;cursor:pointer;z-index:1001}.header__burger span{height:.2rem;width:100%;background:var(--color-text);border-radius:.2rem;transition:all .3s ease}.header__burger--open span:nth-child(1){transform:translateY(.8em) rotate(45deg)}.header__burger--open span:nth-child(2){opacity:0}.header__burger--open span:nth-child(3){transform:translateY(-.8em) rotate(-45deg)}.header__burger--back{position:relative;justify-content:center}.header__burger--back span{position:absolute;transform-origin:left center}.header__burger--back span:nth-child(1){transform:rotate(-34deg) scaleX(.6)}.header__burger--back span:nth-child(3){transform:rotate(34deg) scaleX(.6)}.header__nav{position:fixed;top:0;left:0;width:100%;height:100vh;background:var(--color-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;justify-content:start;align-items:start;padding:8rem;gap:2rem;transform:translate(-100%);opacity:0;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .25s ease;z-index:1000}.header__nav--open{transform:translate(0);opacity:1}.header__nav a{font-size:1.6rem;text-decoration:none;color:var(--color-text);font-weight:500}.header__nav a:hover{opacity:.7}}.footer{text-align:center;padding:var(--spacing);background-color:var(--color-bg);color:var(--color-black);font-size:.9rem}:root{--client-nav-bar-icon-size: 2.25rem;--client-nav-bar-height: calc( var(--client-nav-bar-icon-size) + 1.25rem );--client-nav-bar-rail-width: 14rem}.site-shell--client-nav-bar{padding-bottom:calc(var(--client-nav-bar-height) + env(safe-area-inset-bottom,0px))}.client-nav-bar{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;justify-content:center;align-items:stretch;min-height:var(--client-nav-bar-height);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-bg);border-top:.1em solid var(--color-accent-transparent);box-shadow:0 -4px 12px #b4adad14}.client-nav-bar__list{display:flex;flex:1;max-width:32rem;margin:0;padding:0 var(--spacing);list-style:none;align-items:stretch;justify-content:space-between}.client-nav-bar__item{flex:1;display:flex;justify-content:center;min-width:0}.client-nav-bar__link{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;max-width:5.5rem;gap:.15rem;padding:.4rem .35rem;opacity:.55;transition:opacity .15s ease;text-decoration:none;color:var(--color-text)}.client-nav-bar__link--active{opacity:1}.client-nav-bar__icon{display:block;flex-shrink:0;width:var(--client-nav-bar-icon-size);height:var(--client-nav-bar-icon-size);object-fit:contain}.client-nav-bar__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(orientation:landscape)and (min-width:36rem){.site-shell--client-nav-bar{padding-bottom:0;padding-left:calc(var(--client-nav-bar-rail-width) + env(safe-area-inset-left,0px))}.client-nav-bar{top:0;right:auto;bottom:0;width:var(--client-nav-bar-rail-width);min-height:100vh;min-height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:0;border-top:none;border-right:.1em solid var(--color-accent-transparent);box-shadow:4px 0 12px #4747470f;justify-content:flex-start;align-items:stretch}.client-nav-bar__list{flex-direction:column;flex:0 1 auto;justify-content:center;gap:.25rem;max-width:none;width:100%;padding:var(--spacing) .65rem var(--spacing) .75rem}.client-nav-bar__item{flex:0 0 auto;width:100%;justify-content:stretch}.client-nav-bar__link{flex-direction:row;justify-content:flex-start;align-items:center;gap:.65rem;max-width:none;width:100%;padding:.55rem .5rem;border-radius:var(--border-radius);font-size:.95rem;font-weight:500}.client-nav-bar__link--active{border:solid .2rem var(--color-accent)}.client-nav-bar__label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;line-height:1.25}}.form-container{background:#fff;max-width:800px;margin:auto;padding:2rem;border-radius:1rem;box-shadow:0 4px 12px #0000001a;overflow:hidden}.form-container .progress-bar{width:90%;height:8px;background:#eee;border-radius:5px;overflow:hidden;margin:1rem auto 2rem}.form-container .progress{height:100%;background:var(--color-accent);min-width:4%;transition:width .4s ease}.form-step{animation:slide-in .45s ease both}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.title-label{margin-top:2rem;margin-bottom:1rem;font-size:1.2rem;font-weight:600;color:#474747}.form-container input,.form-container select{width:100%;padding:.75rem;margin-top:.4rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box}.frequency-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin:1.2rem 0}.option-card{display:flex;align-items:center;justify-content:center;height:3rem;padding:.75rem;background:none;border:2px solid #474747;border-radius:10px;cursor:pointer;transition:background .3s ease,transform .2s ease;font-size:1.15rem}.option-card.selected{background:var(--color-accent);color:#fff;transform:scale(1.03);box-shadow:0 2px 6px #0000001f}.meal-list{display:flex;flex-direction:column;margin-bottom:2rem}.meal-row{display:flex;align-items:center;padding:.6rem 0}.meal-label{flex:1;font-size:1.2rem;color:#474747}.meal-status{margin-right:1rem;font-size:.95rem}.meal-status.included{color:var(--color-accent)}.meal-status.outdoor{color:#474747}.meal-status.skipped{color:#aaa}.meal-modify{border-radius:.9rem;padding:.25rem .5rem;font-size:.9rem;cursor:pointer}.calculator{margin-top:1rem;padding:1rem;border:1px solid var(--color-accent);border-radius:.5rem;animation:slide-down .35s ease both}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-button{width:100%;margin-top:1rem;padding:.75rem 1rem;border-radius:.5rem;font-size:1.1rem;cursor:pointer}.submit-button{width:100%;margin-top:1.6rem;padding:.9rem 1rem;background:var(--color-accent);color:#fff;border:none;border-radius:.6rem;font-size:1.2rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.submit-button:hover{transform:translateY(-1px);box-shadow:0 4px 10px #00000026}@media(max-width:480px){.frequency-options{grid-template-columns:1fr}}.page-up{position:fixed;bottom:2rem;right:2rem;width:3rem;height:3rem;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6em;font-weight:700;line-height:1;cursor:pointer;text-decoration:none;transition:transform .2s ease,opacity .2s ease;opacity:0;animation:fadeUp .3s ease forwards;touch-action:manipulation}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-up:hover{transform:translateY(-2px)}.sportif-vege{background:var(--color-bg)}.sv-hero{padding:4rem 2rem}.sv-hero__content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.sv-hero__text h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1.5rem}.sv-hero__subtitle{font-size:1.2rem;line-height:1.6;margin-bottom:2rem}.cta-wrapper{display:flex;flex-direction:column;align-items:center;gap:.4rem}.sv-hero__cta{margin-bottom:.5rem;color:#fff!important}.guarantee{margin-top:.5rem;font-size:.95rem;position:relative;display:inline-block}.guarantee:after{content:"";position:absolute;left:-5%;bottom:-6px;width:110%;height:6px;background:var(--color-accent);opacity:.35;border-radius:50% 50% 40% 40%;transform:rotate(-1.5deg)}.sv-hero__media{aspect-ratio:1 / 1;border-radius:1.2rem;overflow:hidden}.sv-hero__media video{width:100%;height:100%;object-fit:cover}.sv-form{padding:4rem 2rem 6rem;max-width:900px;margin:0 auto}.section-intro{text-align:left;max-width:800px;margin-bottom:2rem}.sv-form__features{list-style:none;padding:0;margin:0 auto 3rem;max-width:600px}.sv-form__features li{margin-bottom:.8rem;font-size:1.05rem}@media(max-width:768px){.sv-hero__content{grid-template-columns:1fr;text-align:center}.sv-hero__media{order:2}.sv-hero__cta{margin:1.5rem auto .5rem}}.apropos{--apropos-photo-size: 20rem;max-width:max(52rem,90vw);margin:0 auto;padding:2.5rem 1.5rem 4rem;color:var(--color-text);background:var(--color-bg)}.apropos__title{text-align:center;font-size:clamp(2rem,4vw,2.75rem);margin:0 0 1.75rem;line-height:1.2}.apropos__intro{text-align:left;font-size:1.05rem;line-height:1.65;margin:0 0 2.5rem}.apropos__section-title{font-size:clamp(1.35rem,2.5vw,1.6rem);margin:0 0 1.75rem;color:var(--color-text)}.apropos-team{display:flex;flex-direction:column;gap:2.75rem;margin-bottom:3rem}.apropos-block{display:grid;grid-template-columns:minmax(0,var(--apropos-photo-size)) minmax(0,1fr);gap:1.5rem 2rem;align-items:start}.apropos-block--image-right{grid-template-columns:minmax(0,1fr) minmax(0,var(--apropos-photo-size))}.apropos-block--image-right .apropos-block__media{grid-column:2;grid-row:1}.apropos-block--image-right .apropos-block__text{grid-column:1;grid-row:1}.apropos-block__media{margin:0}.apropos-block__photo{display:block;width:var(--apropos-photo-size);height:var(--apropos-photo-size);object-fit:contain;border-radius:var(--apropos-photo-size);box-shadow:0 4px 14px #4747471f}.apropos-block__text{min-width:0}.apropos-block__text--left{text-align:left}.apropos-block__text--right{text-align:right}.apropos-block__name{font-size:1.2rem;margin:0 0 .65rem;line-height:1.25}.apropos-block__bio{font-size:.98rem;line-height:1.6;margin:0}.apropos-contact{border-top:1px solid var(--color-accent-transparent);padding-top:2.25rem}.apropos-contact__title{font-size:clamp(1.35rem,2.5vw,1.6rem);margin:0 0 .75rem}.apropos-contact__intro{text-align:left;font-size:.98rem;line-height:1.6;margin:0 0 1.25rem}.apropos-contact__links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}.apropos-contact__links a{color:var(--color-accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}.apropos-contact__links a:hover{color:var(--color-accent-red)}@media(max-width:800px){.apropos{--apropos-photo-size: 14rem}.apropos-block,.apropos-block--image-right{grid-template-columns:1fr}.apropos-block--image-right .apropos-block__media,.apropos-block--image-right .apropos-block__text{grid-column:1;grid-row:auto}.apropos-block--image-right .apropos-block__media{order:-1}.apropos-block__photo{width:100%;max-width:var(--apropos-photo-size);height:var(--apropos-photo-size);margin-left:auto;margin-right:auto}.apropos-block__text--right{text-align:left}.apropos-block--image-right .apropos-block__text{order:1}}.verify-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#eef2f7);padding:20px}.verify-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 20px 40px #00000014;text-align:center;max-width:420px;width:100%;animation:fadeIn .3s ease-in-out}.verify-card h2{margin-top:15px;font-size:22px}.verify-card p{color:#6b7280;margin-top:8px}.primary-btn,.secondary-btn{margin-top:25px;padding:12px 18px;border-radius:8px;border:none;cursor:pointer;font-weight:500;transition:.2s ease}.primary-btn{background:#111827;color:#fff}.primary-btn:hover{background:#000}.secondary-btn{background:#e5e7eb}.secondary-btn:hover{background:#d1d5db}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #111827;border-radius:50%;margin:0 auto;animation:spin 1s linear infinite}.success-icon{font-size:40px;color:#16a34a}.error-icon{font-size:40px;color:#dc2626}@keyframes spin{to{transform:rotate(360deg)}}.loader-spinner{margin:auto;width:4rem;aspect-ratio:1;border:.7rem solid #ddd;border-top-color:var(--color-accent);border-radius:50%;animation:loader-spin .9s linear infinite}@keyframes loader-spin{to{transform:rotate(360deg)}}.reset-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:20px}.reset-card{background:#fff;padding:40px;border-radius:var(--border-radius);box-shadow:0 20px 40px #00000014;text-align:left;max-width:40rem;width:100%;animation:fadeIn .3s ease-in-out}.reset-card h2{margin-top:5px;font-size:22px}.reset-card p{color:#6b7280;margin-top:8px}.reset-form{margin-top:20px;display:flex;flex-direction:column;gap:16px}.field-group{display:flex;flex-direction:column;gap:6px}.field-group label{font-size:14px;font-weight:500;color:#111827}.field-group input{padding:10px 12px;border-radius:8px;border:1px solid #e5e7eb;font-size:15px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field-group input:focus{border-color:#111827;box-shadow:0 0 0 1px #11182711}.field-group small{font-size:12px;color:#9ca3af}.reset-error{margin-top:4px;font-size:14px;color:#dc2626}.success-icon{font-size:40px;color:#16a34a;text-align:center}.error-icon{font-size:40px;color:#dc2626;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.migration-card{max-width:42rem}.migration-title{margin-top:0;font-size:24px;line-height:1.3}.migration-message{white-space:pre-line;color:#374151;line-height:1.6;margin-top:16px}.migration-divider{margin:28px 0 8px;border:none;border-top:1px solid #e5e7eb}.dashboard-news{position:relative;margin-bottom:2rem;border-radius:1.35rem;overflow:hidden;border:2px solid rgba(112,141,129,.35);background:linear-gradient(135deg,#fffffffa,#f0f6e9eb 42%,#708d811f);box-shadow:0 4px 24px #47474712,inset 0 1px #ffffffd9}.dashboard-news__glow{position:absolute;top:-3rem;right:-2rem;width:9rem;height:9rem;border-radius:50%;background:radial-gradient(circle,rgba(112,141,129,.28) 0%,transparent 70%);pointer-events:none}.dashboard-news__inner{position:relative;padding:1.5rem 1.6rem 1.45rem}.dashboard-news__header{margin-bottom:1rem}.dashboard-news__eyebrow{margin:0 0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}.dashboard-news__title{font-size:clamp(1.15rem,2.8vw,1.45rem);line-height:1.3;color:var(--color-text)}.dashboard-news__highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.dashboard-news__pill{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:2em;font-size:.78rem;font-weight:600;color:var(--color-accent);background:#708d811f;border:1px solid rgba(112,141,129,.22)}.dashboard-news__lead{margin:0 0 1.25rem;font-size:.96rem;line-height:1.55;color:var(--color-text);max-width:52rem}.dashboard-news__beta{padding:1.15rem 1.2rem 1.1rem;border-radius:1rem;background:#ffffffb8;border:1px solid rgba(112,141,129,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dashboard-news__beta-title{margin:0 0 .45rem;font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--color-text)}.dashboard-news__beta-text{margin:0 0 .75rem;font-size:.92rem;line-height:1.45;color:var(--color-text)}.dashboard-news__topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem 1rem;margin:0 0 1.1rem;padding:0;list-style:none}.dashboard-news__topics li{position:relative;padding-left:1.15rem;font-size:.88rem;line-height:1.35;color:#5a5a5a}.dashboard-news__topics li:before{content:"";position:absolute;left:0;top:.45em;width:.45rem;height:.45rem;border-radius:50%;background:var(--color-accent)}.dashboard-news__cta{display:block!important;text-align:center;margin:0 auto!important;width:100%;max-width:22rem;padding:.85rem 1.25rem;font-weight:600;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}.dashboard-news__cta:hover{transform:translateY(-1px);box-shadow:0 8px 22px #708d8159;color:#fff}.dashboard-news__footnote{text-align:center;margin:.75rem 0 0;font-size:.8rem;line-height:1.4;color:#777}@media(max-width:768px){.dashboard-news__inner{padding:1.25rem 1.15rem 1.2rem}.dashboard-news__topics{grid-template-columns:1fr}}.nav-card{--nav-card-icon-size: clamp(3rem, 6vw, 4rem);display:flex;flex-direction:row;align-items:flex-start;gap:1rem;border-radius:1.2rem;padding:1.2rem 1.4rem;background:#fff;box-shadow:0 4px 18px #0000000a;text-align:left;font-family:inherit;cursor:pointer;border:none;transition:box-shadow .2s ease,transform .15s ease}.nav-card:hover{box-shadow:0 6px 24px #00000014}.nav-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav-card__icon{display:block;flex-shrink:0;width:var(--nav-card-icon-size);height:var(--nav-card-icon-size);object-fit:contain;align-self:center;margin-right:.4rem}.nav-card__content{display:flex;flex-direction:column;gap:.75rem;min-width:0}.nav-card__title{margin:0}.nav-card__description{margin:0;font-size:.95rem;color:var(--color-text);line-height:1.45}.client-page{max-width:1040px;margin-inline:auto;padding-inline:1.5rem}.client-page__header{text-align:center;margin-bottom:2rem}.client-page__subtitle{margin-top:.5rem;color:#555}.client-page__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.button--ghost-danger{background:transparent;border-color:var(--color-accent-red);color:var(--color-accent-red)}@media(max-width:768px){.client-page{padding-inline:1rem}.client-page__grid,.user-form__group{grid-template-columns:1fr}}.grocery-footer{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.grocery-item-row{display:flex;justify-content:flex-start;align-items:center;gap:.5rem;font-size:1rem}.grocery-item-row--checked .grocery-item-row__name,.grocery-item-row--checked .grocery-item-row__name-input,.grocery-item-row--checked .grocery-item-row__qty,.grocery-item-row--checked .grocery-item-row__unit{text-decoration:line-through;color:#b0b0b0}.grocery-item-row__checkbox{transform:scale(2);background-color:transparent}.grocery-item-row__checkbox:checked{accent-color:lightgrey}.grocery-item-row__qty{display:inline-block;max-width:8ch;padding:3px 4px;border-radius:6px;border:1px solid var(--color-accent-transparent);background:transparent}.grocery-item-row__unit{min-width:2ch}.grocery-item-row__name{width:fit-content;padding:3px;min-width:10ch;display:inline-block}.grocery-item-row__name-input{width:fit-content;min-width:10ch;padding:3px 6px;border-radius:6px;border:1px solid var(--color-accent-transparent)}.grocery-item-row__delete{margin-left:auto;border:none;padding:2px 8px;font-weight:700;font-size:1.4rem;background:transparent;color:var(--color-accent-red);cursor:pointer}@media(max-width:768px){.grocery-item-row{font-size:.95rem;gap:.4rem}.grocery-item-row__checkbox{transform:scale(1.5)}}.collapsible-arrow{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:relative;flex-shrink:0}.collapsible-arrow__arm{position:absolute;width:.8rem;height:2px;background-color:currentColor;border-radius:1px;transition:transform .2s ease}.collapsible-arrow__arm--left{left:-.1rem;transform-origin:center center;transform:rotate(45deg)}.collapsible-arrow__arm--right{right:0rem;transform-origin:center center;transform:rotate(-45deg)}.collapsible-arrow--open .collapsible-arrow__arm--left{transform:rotate(-45deg)}.collapsible-arrow--open .collapsible-arrow__arm--right{transform:rotate(45deg)}.grocery-category{border:.05rem solid #ddd;border-radius:.6rem;margin:.2rem 0;overflow:hidden;background:#fff;box-shadow:0 2px 5px #0000000d;transition:box-shadow .3s ease}.grocery-category--empty .grocery-category__header{background-color:#e0e0e0;color:#666}.grocery-category__header{display:flex;align-items:center;padding:.75rem 1rem;background:#f9f9f9;cursor:pointer;-webkit-user-select:none;user-select:none}.grocery-category__header:hover{background:#f0f0f0}.grocery-category--empty .grocery-category__header:hover{background:#e8e8e8}.grocery-category__icon{width:20px;height:20px;margin-right:.75rem;object-fit:contain}.grocery-category__title{flex:1;font-weight:600}.grocery-category__content{overflow:hidden;max-height:0;transition:max-height .3s ease}.grocery-category__content--open{max-height:2000px}.grocery-items{padding:.6rem 1rem .9rem;display:flex;flex-direction:column;gap:.35rem}.grocery-category__empty{font-size:.9rem;color:#888;margin:0}.grocery-category__add-button{margin-top:.3rem;align-self:flex-start;border-color:var(--color-accent-transparent)!important;padding:.2rem .5rem!important}.grocery-panels{display:flex;flex-direction:column;gap:.75rem}.grocery-layout{display:flex;flex-direction:column;gap:1.5rem}.grocery-error{color:#8d0801}.user-form{display:flex;flex-direction:row;gap:1.25rem}.user-form__group{display:flex;flex-direction:column;gap:.7rem}.user-form label{display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}.user-form input,.user-form select{padding:.35rem .5rem;border-radius:6px;border:1px solid #ccc;font-size:.9rem}.user-card__actions{display:flex;flex-direction:row;gap:.75rem;margin-top:1rem}.user-card__actions .button--irreversible{margin-left:auto}@media(max-width:768px){.user-form{flex-direction:column}}.user-card{border-radius:12px;background:#fff;box-shadow:0 4px 18px #0000000d;overflow:hidden}.user-card__header{width:100%;padding:.9rem 1.2rem;border:none;background:#f9f9f9;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:inherit;text-align:left}.user-card__header-text{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.user-card__title{font-weight:600}.user-card__subtitle{font-size:.85rem;color:#666}.user-card__body{padding:1rem 1.2rem 1.2rem}.client-users{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.users-list-actions{display:flex;flex-direction:row;justify-content:space-between}.user-tag{display:inline-block;padding:3px 8px;border-radius:5px;font-size:.8rem}button.user-tag{cursor:pointer;font:inherit;margin:0}.user-tag--solid{border:2px solid #708d81;background-color:#708d81;color:#fff}.user-tag--bordered{border:2px solid #708d81;color:#708d81}.user-tag--greyed{border:2px solid #ccc;color:#aaa}.weekplan-wrapper{width:100%}.weekplan-help{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem;padding:.5rem .75rem;border:1px solid #ddd;border-radius:8px;background:#fafafa}.weekplan-help__text{margin:0;font-size:.9rem}.weekplan-help .user-tag{cursor:pointer}.weekplan-table-wrapper{display:block;overflow-x:auto;width:100%}.weekplan-table{font-size:clamp(.75rem,1vw,1rem);width:100%;border-collapse:collapse;border-radius:.8rem;margin-top:0;table-layout:fixed}.weekplan-table__day-col{width:clamp(5rem,12vw,12rem);white-space:nowrap}.weekplan-table__meal-col{max-width:21.5%}.weekplan-table th,.weekplan-table td{border:1px solid #ddd;padding:.5rem .75rem;text-align:left;overflow:hidden}.weekplan-row--today{background-color:#f0f4f8;font-weight:600}.weekplan-cell{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem}.weekplan-table--editable .weekplan-cell .user-tag{cursor:pointer}.week-summary.radar-window{background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:15px;margin-top:4rem;transition:all .3s ease;overflow:hidden;padding:1rem}.week-summary__header.radar-header{display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;width:100%;border:none;background:transparent;padding:0;font:inherit}.week-summary__title{flex:0 1 auto;text-align:center;margin:0}.week-summary__header .collapsible-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%)}.radar-content{opacity:0;max-height:0;overflow:hidden;transition:all .4s ease}.radar-content.radar-content--expanded{margin-top:2rem;opacity:1;max-height:2000px}.week-summary__block-title.title,.week-summary__progress .title{display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:.8rem}.tooltip.info-icon{display:inline-block;margin-left:8px;width:16px;height:16px;border-radius:50%;background-color:#ccc;color:#fff;text-align:center;line-height:16px;cursor:help;font-size:12px}.week-summary__radar-block{margin-bottom:1rem}.week-summary__progress.progress-container{margin-top:20px}.week-summary__progress .progress-bar{position:relative;width:90%;background-color:#eee;border-radius:1rem;overflow:hidden;display:flex;font-size:1.6rem;height:2rem}.progress-fill-home{height:100%;background-color:var(--color-accent);text-align:center;color:#fff;line-height:1.2em;font-size:1em}.progress-fill-outside{height:100%;background-color:#ccc;text-align:center;color:#fff;line-height:1.2em;font-size:1em}.week-summary__progress .progress-percent{position:absolute;inset:0;height:100%;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.7em;color:#fff;pointer-events:none}.week-summary__progress .subtitle{text-align:center;font-size:1rem;margin-top:.4rem}@media(max-width:768px){.tooltip.info-icon{margin-left:4px}}.recipe-card{border-radius:14px;background:#fff;box-shadow:0 4px 16px #0000000f;padding:.1em 1em .1em 1.15em;display:block;min-height:100px;position:relative;width:100%;max-width:320px;min-width:280px;box-sizing:border-box;cursor:pointer;transition:box-shadow .2s ease,transform .15s ease}.recipe-card:hover{box-shadow:0 6px 20px #0000001a}.recipe-card__content{display:grid;grid-template-columns:1fr auto;gap:.75rem}.recipe-card__info{display:flex;flex-direction:column;gap:.4rem;padding:.9em 0}.recipe-card__subtitle{font-size:.8em;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent)}.recipe-card__title{font-size:1em;margin:0;max-width:20ch;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25em;min-height:2.5em}.recipe-card__title--long{font-size:.85em}.recipe-card__title--very-long{font-size:.7em}.recipe-card__meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.85rem;color:var(--color-text)}.recipe-card__image{display:flex;align-items:center;justify-content:center}.recipe-card__image img{height:6em;aspect-ratio:1/1;border-radius:.5rem;object-fit:cover;flex-shrink:0}.recipe-card__swap-btn{padding:.3em!important;font-size:.8em;border-color:var(--color-accent-transparent)!important}@media(min-width:768px){.recipe-card--compact .recipe-card__title{-webkit-line-clamp:3;line-clamp:3}.recipe-card--compact .recipe-card__title--long{font-size:1em}.recipe-card--compact .recipe-card__title--very-long{font-size:.9em}}@media(max-width:768px){.recipe-card{max-width:92vw;justify-self:center;align-self:center;padding:.1em 1em .1em 1.3em}.recipe-card__info{padding:1.2em 0}.recipe-card__title{line-height:1.5em}}.dessert-card{border-radius:14px;background:#fff;box-shadow:0 4px 16px #0000000f;padding:.35rem;box-sizing:border-box;cursor:default;width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:1;display:flex;align-items:stretch;justify-content:stretch}.dessert-card__image{display:flex;flex:1 1 auto;min-width:0;min-height:0;align-items:center;justify-content:center}.dessert-card__image img,.dessert-card__placeholder{width:100%;height:100%;aspect-ratio:1 / 1;border-radius:.5rem;object-fit:cover;flex-shrink:0}.dessert-card__placeholder{background:#f0f0f0}.dessert-card>.dessert-card__placeholder{flex:1 1 auto;min-width:0;min-height:0}@media(max-width:768px){.dessert-card{padding:.4rem}}.recipes-layout{display:flex;flex-direction:column;gap:2rem}.recipes-section h2{margin-bottom:.75rem}.recipes-grid{font-size:1.1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recipes-grid--dessert{--dessert-grid-cell: 6em;grid-template-columns:repeat(auto-fill,var(--dessert-grid-cell));justify-content:start;align-content:start}.recipe-slot{display:flex;flex-direction:column;gap:.35rem}.recipe-slot__label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);font-weight:600}@media(max-width:768px){.recipes-grid{font-size:1.2rem}.recipes-grid:not(.recipes-grid--dessert){grid-template-columns:1fr}}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1100}.modal-content{position:relative;background:var(--color-bg);border-radius:8px;padding:20px;width:min(800px,94vw);max-height:80vh;display:flex;flex-direction:column;z-index:1101}.modal__header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;background:transparent;z-index:10;padding-bottom:.5rem}.modal__close{color:var(--color-accent-red);font-size:2.2rem;font-weight:700;background:transparent;padding:.05rem .6rem;border:none;border-radius:1.5rem;cursor:pointer;line-height:1}.modal__title{margin:0}.modal__body{margin-top:.5rem;overflow-y:auto;flex:1}.modal-content--wide{max-width:900px}@media(max-width:768px){.modal-content{width:92vw;max-height:90vh;padding:1.25rem}.modal-backdrop--keyboard-safe.modal-backdrop--keyboard-open{align-items:flex-start;padding:max(.75rem,env(safe-area-inset-top,0px)) .5rem max(.75rem,env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content--keyboard-safe.modal-content--keyboard-open{width:min(100%,28rem);max-height:calc(100dvh - 1.5rem);margin-inline:auto;flex-shrink:0}.modal-content--keyboard-safe.modal-content--keyboard-open .modal__body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 6rem)}}.recipe-modal__subtitle{margin:0 0 .5rem;font-size:.95rem;color:#555}.recipe-modal__intro{white-space:pre-line;margin-top:.5rem;margin-bottom:1rem}.portions-section{display:flex;flex-direction:row;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.portions-section__content{white-space:pre-line;display:flex;flex-direction:row;gap:2rem}.portions-meal-section,.portion-users{display:flex;flex-direction:column;gap:.25rem}.portions-greyed{color:gray;opacity:.6}.recipe-modal__ingredients-note{display:block;font-size:.9rem;color:var(--color-text);margin-bottom:.5rem}.recipe-modal__content{display:grid;grid-template-columns:1fr 1.3fr;gap:1.5rem}@media(max-width:768px){.recipe-modal{width:92vw;padding-inline:1.25rem}.recipe-modal__content{grid-template-columns:1fr}}.swap-modal__alternatives{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.7rem}@media(max-width:768px){.swap-modal__alternatives{grid-template-columns:1fr}}.recipes-header{margin-bottom:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.4rem}.recipes-header__actions{display:flex;flex-direction:column;flex-wrap:wrap;align-items:center;gap:.4rem}.recipes-header__unsaved{outline:4px solid var(--color-accent-red);transition:outline .3s ease}.recipes-header button{font-size:1.2em}.recipes-workflow-guide{margin-top:0;margin-bottom:1rem;scroll-margin-top:1rem}.recipes-workflow-weekplan{margin-bottom:2rem}.temp-register-modal__intro{margin:0 0 1rem;color:#444;line-height:1.55;font-size:.95rem}.temp-register-modal__benefits{margin:0 0 1rem;padding-left:1.2rem;color:#333;line-height:1.5;font-size:.92rem}.temp-register-modal__benefits li+li{margin-top:.45rem}.temp-register-modal__email-details{margin:0 0 1.25rem;border:none;background:none}.temp-register-modal__email-details summary{display:inline;cursor:pointer;padding:0;font-size:.9rem;font-weight:inherit;color:var(--color-accent);text-decoration:underline;text-underline-offset:.15em;list-style:none}.temp-register-modal__email-details summary::-webkit-details-marker{display:none}.temp-register-modal__email-body{margin:.65rem 0 0;padding:0;font-size:.88rem;line-height:1.55;color:#555}.modal-content{background:#fff}.temp-client-recipes__grocery-action{display:flex;justify-content:center;margin-top:2.5rem;margin-bottom:.5rem}.temp-client-recipes__grocery-btn{font-size:1.2rem;min-width:min(100%,18rem)}.admin-form__title{margin-top:0;margin-bottom:1rem}.admin-form__message{margin:.75rem 0;font-size:.9rem}.admin-form__message--success{color:#0a6b0a}.admin-form__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem}.admin-form__toolbar .admin-form__field{flex:1;min-width:160px}.admin-form__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.admin-form__field{display:flex;flex-direction:column;margin-bottom:.75rem}.admin-form__field label{font-weight:500;margin-bottom:.25rem}.admin-form__field input[type=text],.admin-form__field input[type=number],.admin-form__field textarea{padding:.4rem .5rem;border-radius:6px;border:1px solid #ccc;font-size:.95rem}.admin-form__field textarea{min-height:100px;resize:vertical}.admin-form__row{display:flex;flex-wrap:wrap;gap:1rem}.admin-form__row .admin-form__field{flex:1;min-width:100px}.admin-form__fieldset{margin:1rem 0;padding:1rem;border:1px solid #ddd;border-radius:8px}.admin-form__fieldset legend{font-weight:600}.admin-form__ingredient-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.admin-form__ingredient-row input{flex:1;min-width:80px;padding:.35rem .5rem;border-radius:6px;border:1px solid #ccc}.admin-form__checkbox{display:inline-flex;align-items:center;gap:.35rem;font-weight:400;cursor:pointer}.admin-form__hint{font-size:.75rem;color:#666;margin-bottom:.2rem}.button--ghost-small{min-width:2rem;padding:.25rem .5rem;font-size:1.1rem;background:transparent;border:1px solid #ccc;border-radius:6px;cursor:pointer}.button--ghost-small:disabled{opacity:.5;cursor:not-allowed}.button--small{padding:.35rem .75rem;font-size:.9rem}.admin-recipe-form{margin-top:.5rem}.admin-form--recipe{margin-top:1rem}.admin-ingredient-form{margin-top:.5rem}.admin-form--ingredient{margin-top:1rem}@media(max-width:600px){.admin-form__ingredient-row{flex-direction:column;align-items:stretch}.admin-form__ingredient-row input{min-width:0}}.admin-dashboard{max-width:960px;margin-inline:auto;padding-inline:1.5rem}.admin-dashboard__header{text-align:center;margin-bottom:2rem}.admin-dashboard__subtitle{margin-top:.5rem;color:#555}.admin-dashboard__grid{display:flex;flex-direction:column;gap:1.5rem}.admin-card{border-radius:12px;padding:1.5rem;background:#fff;box-shadow:0 4px 18px #0000000f}.admin-card h2{margin-top:0;margin-bottom:.5rem}.admin-card__message{margin-top:.75rem;font-size:.9rem;color:#333}.admin-section{border-radius:12px;background:#fff;box-shadow:0 4px 18px #0000000f}.admin-section__header{width:100%;padding:1rem 1.2rem;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;font-size:1rem;font-weight:600;cursor:pointer}.admin-section__body{padding:0 1.2rem 1.2rem;border-top:1px solid #eee;font-size:.95rem;line-height:1.5}.admin-section__intro{margin-top:1rem}.admin-section__chevron{width:.8rem;height:.8rem;border-right:2px solid #444;border-bottom:2px solid #444;transform:rotate(45deg);transition:transform .2s ease}.admin-section__chevron.open{transform:rotate(-135deg)}@media(max-width:600px){.admin-dashboard{padding-inline:1rem}}.banner{position:fixed;top:20px;left:50%;padding:12px 20px;border-radius:6px;color:#fff;font-weight:500;z-index:1000;max-width:min(92vw,560px);cursor:grab;user-select:none;-webkit-user-select:none;transform:translate(calc(-50% + var(--banner-offset, 0px)));opacity:var(--banner-opacity, 1);transition:transform .22s ease,opacity .22s ease;touch-action:none}.banner-dragging{cursor:grabbing;transition:none}.banner-exiting{transition:transform .28s ease,opacity .28s ease}.banner-info{background:#474747}.banner-success{background:var(--color-accent)}.banner-error{background:var(--color-accent-red)}:root{--color-bg: #F0F6E9;--color-accent: #708D81;--color-accent-transparent: #708D8180;--color-accent-red: #8D0801;--color-text: #474747;--font-body: "Gopher", system-ui, sans-serif;--font-title: "Dela Gothic One", system-ui, sans-serif;--font-brand: "Montserrat", system-ui, sans-serif;--border-radius: 12px;--spacing: 16px}@font-face{font-family:Gopher;src:url(/assets/fonts/Gopher-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Dela Gothic One;src:url(/assets/fonts/DelaGothicOne-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/MontserratBold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-title);font-weight:400;margin:0}p,li,span,label{font-family:var(--font-body)}.site-title{font-family:var(--font-brand);font-weight:700;letter-spacing:.03em}button{cursor:pointer;border:none;outline:none;border-radius:var(--border-radius)}.btn-disabled,button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.7}.text-muted{color:#8a8a8a;font-size:.9rem}.button{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--border-radius);font-size:1.2rem;font-family:var(--font-body);font-weight:500;cursor:pointer;border:2px solid transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.button:disabled{background-color:#ccc!important;border-color:#ccc!important;color:#666!important;cursor:not-allowed;opacity:.9}.button--primary{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent);border-radius:1.2em}.button--primary:hover:not(:disabled){filter:brightness(1.1)}.button--secondary{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.button--secondary:hover:not(:disabled){background-color:#708d8114}.button--tertiary{background-color:#00000014;color:#666;border-color:transparent}.button--tertiary:hover:not(:disabled){background-color:#0000001f}.button--irreversible{background-color:transparent;color:var(--color-accent-red);border-color:var(--color-accent-red)}.button--irreversible:hover:not(:disabled){background-color:var(--color-accent-red);color:#fff}.button--primary.button--unsaved{color:var(--color-accent-red)}.button--primary.button--unsaved:hover:not(:disabled){background-color:#8d080114}a{color:var(--color-accent);text-decoration:none;transition:color .15s ease}a:hover,a:focus,a:visited{color:var(--color-accent)}
