@import url(https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&family=Nunito+Sans:opsz,wght@6..12,300;6..12,400;6..12,600;6..12,700&display=swap);:root{--bg:#faf7f2;--surface:#fff;--surface-alt:#f3ede3;--text:#2c1810;--text-muted:#8a7060;--accent:#c4622d;--accent-hover:#a84e22;--accent-light:#faeee6;--sage:#4e7060;--sage-light:#ebf2ee;--border:#e5ddd4;--shadow-sm:0 2px 8px rgba(44,24,16,.07);--shadow-md:0 8px 32px rgba(44,24,16,.11);--shadow-lg:0 20px 60px rgba(44,24,16,.15);--radius:14px;--radius-sm:7px;--ease:cubic-bezier(0.25,0.46,0.45,0.94);--font-display:"Cormorant Garamond",Georgia,serif;--font-body:"Nunito Sans",system-ui,sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--text);display:flex;flex-direction:column;font-family:var(--font-body);line-height:1.65;min-height:100vh}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.nav{align-items:center;backdrop-filter:blur(12px);background:hsla(38,44%,96%,.92);border-bottom:1px solid var(--border);display:flex;height:66px;justify-content:space-between;padding:0 40px;position:sticky;top:0;z-index:100}.nav__logo{color:var(--text);font-family:var(--font-display);font-size:1.7rem;font-style:italic;font-weight:600;letter-spacing:-.01em}.nav__logo span{color:var(--accent)}.nav__links{align-items:center;display:flex;gap:8px}.nav__link{border-radius:100px;color:var(--text-muted);font-family:var(--font-body);font-size:.82rem;font-weight:600;letter-spacing:.08em;padding:7px 16px;text-transform:uppercase;transition:background var(--ease) .15s,color var(--ease) .15s}.nav__link:hover{background:var(--accent-light);color:var(--accent)}.nav__link--active{background:var(--text);color:var(--bg)}.nav__link--active:hover{background:var(--accent);color:#fff}.nav__link--logout{color:var(--text-muted)}.nav__link--logout:hover{background:var(--accent-light);color:var(--accent)}.nav__user{color:var(--text-muted);font-family:var(--font-body);font-size:.78rem;opacity:.7;padding:0 8px}.nav__burger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;flex-shrink:0;height:20px;justify-content:space-between;padding:0;width:28px;z-index:200}.nav__burger span{background:var(--text);border-radius:2px;display:block;height:2px;transition:transform .25s var(--ease),opacity .25s}.nav__overlay{background:rgba(44,24,16,.35);display:none;inset:0;opacity:0;position:fixed;transition:opacity .25s;z-index:98}@media (max-width:900px){.nav{padding:0 24px}}@media (max-width:640px){.nav{padding:0 20px}.nav__burger{display:flex}.nav__overlay{display:block}.nav__links{align-items:flex-start;background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;gap:4px;height:100dvh;overflow-y:auto;padding:80px 20px 40px;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s var(--ease);width:260px;z-index:150}.nav__link{font-size:.82rem;padding:10px 16px;width:100%}.nav__link--active{background:var(--accent-light);color:var(--accent)}.nav__user{font-size:.85rem;padding:12px 16px 0}}.nav--open .nav__links{transform:translateX(0)}.nav--open .nav__overlay{opacity:1}.nav--open .nav__burger span:first-child{transform:translateY(9px) rotate(45deg)}.nav--open .nav__burger span:nth-child(2){opacity:0}.nav--open .nav__burger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.login-wrap{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:calc(100vh - 66px);padding:40px 16px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);max-width:420px;padding:48px 40px;width:100%}.login-card__title{color:var(--text);font-family:var(--font-display);font-size:2rem;font-style:italic;font-weight:600;margin-bottom:28px;text-align:center}.login-card__error{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);color:#b91c1c;font-size:.875rem;margin-bottom:20px;padding:10px 14px}.login-card__label{color:var(--text-muted);display:block;font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.07em;margin-bottom:6px;margin-top:16px;text-transform:uppercase}.login-card__input{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.95rem;outline:none;padding:11px 14px;transition:border-color .15s;width:100%}.login-card__input:focus{border-color:var(--accent)}.login-card__remember{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:.85rem;gap:8px;margin-top:16px}.login-card__submit{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:700;letter-spacing:.06em;margin-top:28px;padding:13px;text-transform:uppercase;transition:background .15s;width:100%}.login-card__submit:hover{background:var(--accent-hover)}.page{flex:1}.recipes-layout{align-items:start;display:grid;gap:0;grid-template-columns:270px 1fr;margin:0 auto;max-width:1400px;padding:48px 40px}@media (max-width:900px){.recipes-layout{grid-template-columns:1fr;padding:24px 20px}}.filters{max-height:calc(100vh - 130px);overflow-y:auto;padding-right:40px;position:sticky;scrollbar-color:var(--border) transparent;scrollbar-width:thin;top:90px}.filters__toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:none;font-family:var(--font-body);font-size:.85rem;font-weight:600;letter-spacing:.06em;margin-bottom:12px;padding:12px 16px;text-align:left;text-transform:uppercase;width:100%}.filters__toggle-icon{display:inline-block;margin-right:6px;transition:transform .2s}.filters--open .filters__toggle-icon{transform:rotate(180deg)}@media (max-width:900px){.filters{margin-bottom:8px;max-height:none;overflow-y:visible;padding-right:0;position:static}.filters__toggle{display:block}.filters__body{display:none}.filters--open .filters__body{display:block}}.filters__title{color:var(--text-muted);font-family:var(--font-display);font-size:.75rem;font-weight:600;letter-spacing:.14em;margin-bottom:20px;text-transform:uppercase}.filters__search{margin-bottom:28px;position:relative}.filters__search input{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;color:var(--text);font-family:var(--font-body);font-size:.875rem;outline:none;padding:10px 16px 10px 40px;transition:border-color .15s,box-shadow .15s;width:100%}.filters__search input::placeholder{color:var(--text-muted)}.filters__search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(196,98,45,.12)}.filters__search-icon{color:var(--text-muted);font-size:.9rem;left:13px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.filters__group{margin-bottom:24px}.filters__group+.filters__group{border-top:1px solid var(--border);padding-top:24px}.filters__group-label{color:var(--text-muted);font-size:.75rem;font-weight:700;letter-spacing:.1em;margin-bottom:12px;text-transform:uppercase}.filters__option{align-items:center;color:var(--text);cursor:pointer;display:flex;font-size:.875rem;gap:10px;padding:5px 0;transition:color .15s;user-select:none}.filters__option:hover{color:var(--accent)}.filters__option input[type=checkbox]{appearance:none;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;height:17px;position:relative;transition:all .15s;width:17px}.filters__option input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.filters__option input[type=checkbox]:checked:after{border-bottom:2px solid #fff;border-left:2px solid #fff;content:"";height:6px;left:3px;position:absolute;top:1px;transform:rotate(-45deg);width:9px}.filters__apply{background:var(--accent);border:none;border-radius:100px;color:#fff;cursor:pointer;font-family:var(--font-body);font-size:.82rem;font-weight:700;letter-spacing:.06em;margin-top:24px;padding:11px;text-transform:uppercase;transition:background .15s,transform .1s;width:100%}.filters__apply:hover{background:var(--accent-hover)}.filters__apply:active{transform:scale(.98)}.filters__duration{display:flex;flex-wrap:wrap;gap:8px}.filters__duration label{cursor:pointer}.filters__duration input[type=radio]{display:none}.filters__duration input[type=radio]+span{border:1.5px solid var(--border);border-radius:100px;color:var(--text-muted);display:inline-block;font-size:.8rem;font-weight:600;padding:5px 13px;transition:all .15s}.filters__duration input[type=radio]:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.recipes-main__header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:36px}.recipes-main__title{color:var(--text);font-family:var(--font-display);font-size:3.2rem;font-style:italic;font-weight:500;letter-spacing:-.02em;line-height:1}.recipes-main__title em{color:var(--accent);font-style:normal}.recipes-main__count{color:var(--text-muted);font-size:.82rem;font-weight:600}.recipe-grid{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}@media (max-width:1100px){.recipe-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.recipe-grid{grid-template-columns:1fr}}.recipe-card{animation:cardReveal .5s var(--ease) forwards;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;opacity:0;overflow:hidden;transform:translateY(16px);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.recipe-card:first-child{animation-delay:0s}.recipe-card:nth-child(2){animation-delay:.04s}.recipe-card:nth-child(3){animation-delay:.08s}.recipe-card:nth-child(4){animation-delay:.12s}.recipe-card:nth-child(5){animation-delay:.16s}.recipe-card:nth-child(6){animation-delay:.2s}.recipe-card:nth-child(7){animation-delay:.24s}.recipe-card:nth-child(8){animation-delay:.28s}.recipe-card:nth-child(9){animation-delay:.32s}.recipe-card:nth-child(10){animation-delay:.36s}.recipe-card:nth-child(11){animation-delay:.4s}.recipe-card:nth-child(12){animation-delay:.44s}.recipe-card:nth-child(13){animation-delay:.48s}.recipe-card:nth-child(14){animation-delay:.52s}.recipe-card:nth-child(15){animation-delay:.56s}.recipe-card:nth-child(16){animation-delay:.6s}.recipe-card:nth-child(17){animation-delay:.64s}.recipe-card:nth-child(18){animation-delay:.68s}.recipe-card:nth-child(19){animation-delay:.72s}.recipe-card:nth-child(20){animation-delay:.76s}.recipe-card:nth-child(21){animation-delay:.8s}.recipe-card:nth-child(22){animation-delay:.84s}.recipe-card:nth-child(23){animation-delay:.88s}.recipe-card:nth-child(24){animation-delay:.92s}.recipe-card:nth-child(25){animation-delay:.96s}.recipe-card:nth-child(26){animation-delay:1s}.recipe-card:nth-child(27){animation-delay:1.04s}.recipe-card:nth-child(28){animation-delay:1.08s}.recipe-card:nth-child(29){animation-delay:1.12s}.recipe-card:nth-child(30){animation-delay:1.16s}.recipe-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.recipe-card__image-wrap{background:var(--surface-alt);overflow:hidden;padding-top:62%;position:relative}.recipe-card__image{height:100%;inset:0;object-fit:cover;position:absolute;transition:transform .4s var(--ease);width:100%}.recipe-card:hover .recipe-card__image{transform:scale(1.04)}.recipe-card__badge{backdrop-filter:blur(8px);background:hsla(38,44%,96%,.92);border-radius:100px;color:var(--text-muted);font-size:.7rem;font-weight:700;left:12px;letter-spacing:.08em;padding:3px 10px;position:absolute;text-transform:uppercase;top:12px}.recipe-card__body{padding:20px 22px 22px}.recipe-card__name{color:var(--text);font-family:var(--font-display);font-size:1.3rem;font-weight:500;line-height:1.25;margin-bottom:10px}.recipe-card__meta{align-items:center;display:flex;gap:16px}.recipe-card__duration{align-items:center;color:var(--text-muted);display:flex;font-size:.78rem;font-weight:600;gap:5px}.recipe-card__duration svg{height:13px;opacity:.6;width:13px}.recipe-card__heat{display:flex;gap:2px}.recipe-card__flame{font-size:.8rem;opacity:.25;transition:opacity .15s}.recipe-card__flame--on{opacity:1}.recipe-card__calories{background:var(--surface-alt);border-radius:100px;color:var(--text-muted);font-size:.75rem;font-weight:600;padding:2px 7px}.recipe-card__rating{display:flex;gap:1px;margin-top:8px}.recipe-card__star{color:var(--border);font-size:.85rem}.recipe-card__star--on{color:var(--accent)}@keyframes cardReveal{to{opacity:1;transform:translateY(0)}}.empty-state{grid-column:1/-1;padding:80px 20px;text-align:center}.empty-state__icon{font-size:3rem;margin-bottom:16px;opacity:.3}.empty-state__text{color:var(--text-muted);font-family:var(--font-display);font-size:1.4rem;font-style:italic}.modal-overlay{backdrop-filter:blur(4px);background:rgba(44,24,16,.55);inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s var(--ease);z-index:500}.modal-overlay.is-open{opacity:1;pointer-events:all}.recipe-modal{background:var(--surface);border-radius:var(--radius);bottom:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;left:50%;max-height:calc(100dvh - 82px);position:fixed;transform:translateX(-50%) translateY(calc(100% + 16px));transition:transform .35s var(--ease);width:min(860px,96vw);z-index:501}.recipe-modal.is-open{transform:translateX(-50%) translateY(0)}.recipe-modal__handle{background:var(--border);border-radius:100px;height:4px;left:50%;position:absolute;top:10px;transform:translateX(-50%);width:36px;z-index:1}.recipe-modal__hero{background:var(--surface-alt);flex-shrink:0;height:260px;overflow:hidden;position:relative}.recipe-modal__hero img{height:100%;object-fit:cover;width:100%}.recipe-modal__hero-overlay{background:linear-gradient(0deg,rgba(44,24,16,.7) 0,transparent 60%);inset:0;position:absolute}.recipe-modal__hero-title{bottom:24px;color:#fff;font-family:var(--font-display);font-size:2rem;font-style:italic;font-weight:500;left:32px;line-height:1.2;position:absolute;right:32px}.recipe-modal__close{align-items:center;backdrop-filter:blur(8px);background:hsla(38,44%,96%,.9);border:none;border-radius:50%;color:var(--text);cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .15s;width:36px;z-index:2}.recipe-modal__close:hover{background:#fff}.recipe-modal__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:32px}.recipe-modal__meta{border-bottom:1px solid var(--border);display:flex;gap:20px;margin-bottom:28px;padding-bottom:20px}.recipe-modal__meta-item{align-items:center;color:var(--text-muted);display:flex;font-size:.82rem;font-weight:600;gap:7px}.recipe-modal__meta-item .icon{font-size:1rem}.recipe-modal__content{display:grid;gap:40px;grid-template-columns:1fr 1.6fr}@media (max-width:600px){.recipe-modal__content{grid-template-columns:1fr}}.recipe-modal__section-title{border-bottom:2px solid var(--accent);color:var(--text);display:inline-block;font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:.04em;margin-bottom:14px;padding-bottom:8px}.recipe-modal__prep-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.recipe-modal__prep-header .recipe-modal__section-title{margin-bottom:0}.recipe-modal__ingredients{list-style:none}.recipe-modal__ingredients li{align-items:baseline;border-bottom:1px solid var(--border);display:flex;font-size:.875rem;gap:12px;justify-content:space-between;padding:7px 0}.recipe-modal__ingredients li:last-child{border-bottom:none}.recipe-modal__ingredients li .ing-name{color:var(--text)}.recipe-modal__ingredients li .ing-amount{color:var(--text-muted);font-size:.8rem;font-weight:600;white-space:nowrap}.recipe-modal__preparation{color:var(--text);font-size:.9rem;line-height:1.75}.recipe-modal__preparation ol{padding-left:20px}.recipe-modal__preparation ol li{color:var(--text);padding:6px 0 6px 6px}.recipe-modal__preparation ol li::marker{color:var(--accent);font-family:var(--font-display);font-weight:700}.recipe-modal__preparation p{margin-bottom:.6em}.recipe-modal__prep-heading{border-bottom:1px solid var(--border);color:var(--accent);font-family:var(--font-display);font-size:.95rem;font-weight:600;margin:16px 0 8px;padding-bottom:4px}.recipe-modal__prep-heading:first-child{margin-top:0}.recipe-modal__rating{align-items:center;display:flex;gap:10px;margin-bottom:16px}.recipe-modal__rating .rating-label{color:var(--text-muted);font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.recipe-modal__rating .rating-stars{display:flex;gap:2px}.recipe-modal__rating .rating-star{background:none;border:none;color:var(--border);cursor:pointer;font-size:1.3rem;line-height:1;padding:2px;transition:color .1s,transform .1s}.recipe-modal__rating .rating-star--on{color:var(--accent)}.recipe-modal__rating .rating-star:hover{transform:scale(1.15)}.recipe-modal__nutrition{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.recipe-modal__nutrition .nutrition-pill{align-items:center;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;min-width:72px;padding:8px 14px}.recipe-modal__nutrition .nutrition-pill__label{color:var(--text-muted);font-size:.65rem;letter-spacing:.06em;margin-bottom:2px;text-transform:uppercase}.recipe-modal__nutrition .nutrition-pill__value{color:var(--text);font-size:.85rem;font-weight:700}.recipe-modal__actions{border-top:1px solid var(--border);display:flex;justify-content:flex-end;margin-top:32px;padding-top:20px}.recipe-modal__actions button{align-items:center;background:var(--accent);border:none;border-radius:100px;color:#fff;cursor:pointer;display:flex;font-family:var(--font-body);font-size:.82rem;font-weight:700;gap:8px;letter-spacing:.06em;padding:10px 24px;text-transform:uppercase;transition:background .15s}.recipe-modal__actions button:hover{background:var(--accent-hover)}.calendar-layout{align-items:start;display:grid;gap:32px;grid-template-columns:1fr 320px;margin:0 auto;max-width:1400px;padding:48px 40px}@media (max-width:1000px){.calendar-layout{grid-template-columns:1fr;padding:24px 20px}}.calendar-main__header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:24px}.calendar-main__title{color:var(--text);font-family:var(--font-display);font-size:2.8rem;font-style:italic;font-weight:500;line-height:1}.calendar-main__title em{color:var(--accent);font-style:normal}.calendar-wrap{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.calendar-wrap .fc{font-family:var(--font-body);font-size:.875rem}.calendar-wrap .fc-toolbar-title{font-family:var(--font-display);font-size:1.4rem;font-weight:500}.calendar-wrap .fc-button{background:var(--surface-alt)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;box-shadow:none!important;color:var(--text)!important;font-family:var(--font-body)!important;font-size:.8rem!important;font-weight:600!important;padding:6px 14px!important;transition:background .15s!important}.calendar-wrap .fc-button:hover{background:var(--accent-light)!important;border-color:var(--accent)!important;color:var(--accent)!important}.calendar-wrap .fc-button-primary:not(:disabled).fc-button-active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.calendar-wrap .fc-daygrid-day:hover{background:var(--accent-light)}.calendar-wrap .fc-day-today{background:rgba(196,98,45,.06)!important}.calendar-wrap .fc-daygrid-day-number{color:var(--text-muted);font-size:.8rem;font-weight:600}.calendar-wrap .fc-col-header-cell{background:var(--surface-alt);padding:10px 0}.calendar-wrap .fc-col-header-cell-cushion{color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.calendar-wrap .fc-event{background:var(--accent)!important;border:none!important;border-radius:var(--radius-sm)!important;cursor:pointer!important;font-size:.75rem!important;font-weight:600!important;padding:2px 6px!important}.calendar-wrap .fc-event:hover{background:var(--accent-hover)!important}.calendar-wrap .fc-daygrid-event-dot{display:none}.calendar-wrap .fc-toolbar{padding:20px 20px 12px}.calendar-sidebar{position:sticky;top:90px}@media (max-width:1000px){.calendar-sidebar{position:static}}.calendar-sidebar__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.calendar-sidebar__title{color:var(--text);font-family:var(--font-display);font-size:1.2rem;font-style:italic;font-weight:500}.calendar-sidebar__search{margin-bottom:16px;position:relative}.calendar-sidebar__search input{background:var(--surface);border:1.5px solid var(--border);border-radius:100px;font-family:var(--font-body);font-size:.8rem;outline:none;padding:9px 14px 9px 36px;transition:border-color .15s;width:100%}.calendar-sidebar__search input:focus{border-color:var(--accent)}.calendar-sidebar__search-icon{color:var(--text-muted);font-size:.85rem;left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.calendar-sidebar__list{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding-right:4px}.calendar-sidebar__list::-webkit-scrollbar{width:4px}.calendar-sidebar__list::-webkit-scrollbar-track{background:transparent}.calendar-sidebar__list::-webkit-scrollbar-thumb{background:var(--border);border-radius:100px}.calendar-sidebar__recipe{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:grab;display:flex;gap:12px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,transform .1s;user-select:none}.calendar-sidebar__recipe:active{cursor:grabbing;transform:scale(.98)}.calendar-sidebar__recipe:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.calendar-sidebar__recipe img{border-radius:6px;flex-shrink:0;height:44px;object-fit:cover;width:44px}.calendar-sidebar__recipe-name{color:var(--text);flex:1;font-family:var(--font-display);font-size:.95rem;font-weight:500;line-height:1.3}.calendar-sidebar__recipe-drag{color:var(--text-muted);font-size:.7rem;opacity:.5}.calendar-sidebar__actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.calendar-sidebar__btn{align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;font-family:var(--font-body);font-size:.78rem;font-weight:700;gap:8px;justify-content:center;letter-spacing:.06em;padding:10px;text-transform:uppercase;transition:all .15s}.calendar-sidebar__btn:hover{background:var(--sage-light);border-color:var(--sage);color:var(--sage)}.calendar-sidebar__btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.calendar-sidebar__btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.shopping-modal{align-items:center;display:flex;inset:0;justify-content:center;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s;z-index:600}.shopping-modal.is-open{opacity:1;pointer-events:all}.shopping-modal__overlay{backdrop-filter:blur(4px);background:rgba(44,24,16,.55);inset:0;position:absolute}.shopping-modal__box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:70vh;overflow:hidden;position:relative;transform:scale(.96);transition:transform .25s var(--ease);width:min(500px,94vw);z-index:1}.shopping-modal.is-open .shopping-modal__box{transform:scale(1)}.shopping-modal__header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:24px 28px 20px}.shopping-modal__title{font-family:var(--font-display);font-size:1.4rem;font-style:italic;font-weight:500}.shopping-modal__close{align-items:center;background:var(--surface-alt);border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .15s;width:32px}.shopping-modal__close:hover{background:var(--border)}.shopping-modal__content{flex:1;overflow-y:auto;padding:24px 28px}.shopping-modal__list{list-style:none}.shopping-modal__list li{border-bottom:1px solid var(--border);display:flex;font-size:.875rem;justify-content:space-between;padding:9px 0}.shopping-modal__list li:last-child{border-bottom:none}.shopping-modal__list li .sl-name{color:var(--text)}.shopping-modal__list li .sl-amount{color:var(--text-muted);font-size:.8rem;font-weight:600}.shopping-modal__empty{color:var(--text-muted);font-family:var(--font-display);font-size:1.1rem;font-style:italic;padding:40px 0;text-align:center}.shopping-modal__footer{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 28px}.prep-editor__btn{background:none;border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;flex-shrink:0;font-family:var(--font-body);font-size:.7rem;padding:2px 10px}.prep-editor__btn:hover{background:var(--accent-light)}.prep-editor__actions{align-items:center;display:flex;gap:8px;margin-bottom:8px}.prep-editor__save{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:var(--font-body);font-size:.75rem;padding:4px 12px}.prep-editor__save:hover{background:var(--accent-hover)}.prep-editor__save:disabled{cursor:not-allowed;opacity:.6}.prep-editor__cancel{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:.75rem;padding:4px 10px}.prep-editor__cancel:hover{background:var(--surface-alt)}.prep-editor__error{color:#e53e3e;font-size:.72rem}.prep-editor__toolbar{align-items:center;background:var(--surface-alt);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;display:flex;gap:3px;padding:6px 8px}.prep-editor__tool{background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--text);cursor:pointer;font-family:var(--font-body);font-size:.72rem;padding:3px 8px}.prep-editor__tool:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.prep-editor__sep{background:var(--border);height:18px;margin:0 2px;width:1px}.prep-editor__textarea{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--text);font-family:monospace;font-size:.8rem;line-height:1.65;min-height:180px;outline:none;padding:10px 12px;resize:vertical;width:100%}.prep-editor__textarea:focus{border-color:var(--accent)}.prep-editor__hint{color:var(--text-muted);font-family:monospace;font-size:.65rem;margin-top:6px}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.modal-overlay,.nav,.page,.recipe-modal__actions,.recipe-modal__close,.recipe-modal__handle,.site-footer{display:none!important}.recipe-modal{border-radius:0!important;box-shadow:none!important;display:block!important;max-height:none!important;transform:none!important;width:100%!important}.recipe-modal,.recipe-modal__hero{overflow:visible!important;position:static!important}.recipe-modal__hero{height:auto!important}.recipe-modal__hero img{border-radius:var(--radius) var(--radius) 0 0!important;display:block!important;height:250px!important;object-fit:cover!important;width:100%!important}.recipe-modal__hero-overlay{display:none!important}.recipe-modal__hero-title{background:var(--bg)!important;color:var(--text)!important;display:block!important;font-size:2.2rem!important;padding:20px 32px 8px!important;position:static!important}.recipe-modal__body{flex:none!important;max-height:none!important;overflow:visible!important;padding:8px 32px 32px!important}.recipe-modal__content{break-inside:avoid;page-break-inside:avoid}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.register-wrap{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:calc(100vh - 66px);padding:40px 16px}.register-card{border-radius:var(--radius);box-shadow:var(--shadow-md);display:grid;grid-template-columns:1fr 1fr;max-width:680px;overflow:hidden;width:100%}@media (max-width:600px){.register-card{grid-template-columns:1fr}}.register-card__brand{background:var(--accent);display:flex;flex-direction:column;gap:16px;justify-content:center;padding:48px 36px}@media (max-width:600px){.register-card__brand{display:none}}.register-card__logo{color:#fff;font-family:var(--font-display);font-size:2.2rem;font-style:italic;font-weight:600;line-height:1.1}.register-card__logo span{opacity:.75}.register-card__divider{background:hsla(0,0%,100%,.4);border-radius:2px;height:2px;width:32px}.register-card__tagline{color:hsla(0,0%,100%,.8);font-size:.875rem;font-weight:300;line-height:1.6}.register-card__form{background:var(--surface);padding:40px 36px}.register-card__title{color:var(--text);font-family:var(--font-display);font-size:1.7rem;font-style:italic;font-weight:600;margin-bottom:4px}.register-card__subtitle{color:var(--text-muted);font-size:.8rem;margin-bottom:24px}.register-card__field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.register-card__field label{color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.register-card__field input[type=email],.register-card__field input[type=password],.register-card__field input[type=text]{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.875rem;outline:none;padding:9px 12px;transition:border-color .15s}.register-card__field input[type=email]:focus,.register-card__field input[type=password]:focus,.register-card__field input[type=text]:focus{background:var(--surface);border-color:var(--accent)}.register-card__field .form-error,.register-card__field ul.form-errors{color:#b91c1c;font-size:.78rem;list-style:none;margin:2px 0 0;padding:0}.register-card__field--check{align-items:flex-start;flex-direction:row;gap:8px;margin-bottom:18px}.register-card__field--check input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;margin-top:3px}.register-card__field--check span{color:var(--text-muted);font-size:.78rem;line-height:1.5}.register-card__field--check span a{color:var(--accent);text-decoration:underline}.register-card__btn{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:600;letter-spacing:.02em;padding:10px;transition:background .15s;width:100%}.register-card__btn:hover{background:var(--accent-hover)}.register-card__login-link{color:var(--text-muted);font-size:.78rem;margin-top:14px;text-align:center}.register-card__login-link a{color:var(--accent);text-decoration:underline}.static-page{margin:0 auto;max-width:720px;padding:48px 24px}.static-page h1{border-bottom:1px solid var(--border);font-size:2.4rem;font-style:italic;margin-bottom:36px;padding-bottom:16px}.static-page h1,.static-page h2{color:var(--text);font-family:var(--font-display);font-weight:600}.static-page h2{font-size:1.3rem;margin:28px 0 10px}.static-page li,.static-page p{color:var(--text);font-size:.9rem;line-height:1.75;margin-bottom:12px}.static-page ul{padding-left:20px}.static-page a{color:var(--accent);text-decoration:underline}.static-page__date{color:var(--text-muted);font-size:.8rem;margin-top:40px}.site-footer{align-items:center;border-top:1px solid var(--border);color:var(--text-muted);display:flex;font-size:.78rem;gap:20px;margin-top:auto;padding:20px 40px}.site-footer a{color:var(--text-muted);text-decoration:underline;transition:color .15s}.site-footer a:hover{color:var(--accent)}.site-footer span{font-family:var(--font-display);font-style:italic;margin-right:auto}@media (max-width:640px){.site-footer{flex-wrap:wrap;gap:8px;padding:16px 20px}.site-footer span{margin-right:0;width:100%}}@media (max-width:480px){.recipe-modal__body{padding:20px 16px}.login-card{padding:32px 20px}}