:root{--accent:#e8590c;--bg:#faf7f2;--card:#fff;--border:#e8e0d6;--text:#2d2a26;--muted:#8a7f70;--shadow:#00000014;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--accent:#ff9f5a;--bg:#1d1b19;--card:#2a2723;--border:#3a352e;--text:#ece7df;--muted:#978b7c;--shadow:#00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.app-header{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.brand{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:1.15rem;font-weight:700}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.95rem}.theme-toggle{cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:1.1rem;line-height:1}main{max-width:960px;margin:0 auto;padding:1.5rem}.app-nav{gap:.15rem;display:flex}.app-nav__link{color:var(--muted);border-radius:999px;padding:.35rem .75rem;font-size:.95rem;text-decoration:none}.app-nav__link:hover{color:var(--text);background:color-mix(in srgb, var(--accent) 9%, transparent)}.app-nav__link[aria-current=page]{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.app-nav__link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tabbar{display:none}main.view-editor{max-width:1400px}main.view-planning{max-width:1600px}main.view-settings{max-width:1200px}.error{color:#b02a2a;background:#fdecec;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 1.5rem;padding:.75rem 1rem;display:flex}.error p{margin:0}.error-retry{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:.95rem;font-weight:600}:root[data-theme=dark] .error{color:#ff9d9d;background:#3a2424}h1:focus,h2:focus{outline:none}@media (width<=720px){.app-nav{display:none}.app-header{gap:.6rem;padding:.6rem .9rem}.brand{font-size:1.05rem}main{padding:1rem 1rem 4.75rem}main.view-editor,main.view-planning,main.view-settings{max-width:none}main.view-cook{padding-bottom:0}.tabbar{z-index:9;padding:.3rem .3rem env(safe-area-inset-bottom,0);background:var(--card);border-top:1px solid var(--border);grid-template-columns:repeat(6,1fr);gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar__item{color:var(--muted);white-space:nowrap;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:.3rem 0 .25rem;font-size:.62rem;text-decoration:none;display:flex}.tabbar__item span{font-size:1.25rem;line-height:1.2}.tabbar__item[aria-current=page]{color:var(--accent)}.tabbar__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.card{text-align:left;background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;padding:0;transition:transform 80ms,box-shadow 80ms;display:flex;position:relative;overflow:hidden}.card__star{z-index:2;width:1.9rem;height:1.9rem;color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;padding:0;font-size:1.25rem;line-height:1;display:grid;position:absolute;top:.3rem;right:.3rem}.card__star:hover,.card__star:focus-visible,.card__star--on{color:var(--accent)}.card:hover{box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.card--highlighted{outline:2px solid var(--accent);outline-offset:-2px}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card__img{aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--border);background:var(--border);width:100%}.card__body{padding:.9rem 1.1rem 1rem}.card__title{margin:0 0 .3rem;font-size:1.05rem}.card__times{flex-wrap:wrap;gap:.35rem;margin:0;display:flex}.card__time{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.empty{color:var(--muted)}.detail h2{margin:0}.banner{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;min-height:18rem;margin-bottom:1.25rem;padding:1.25rem;display:flex;position:relative;overflow:hidden}.banner--photo{background-image:linear-gradient(to top, #000000bf 0%, #00000059 45%, #0003 100%), var(--banner-img);background-position:50%;background-size:cover}.banner__placeholder{z-index:0;background:color-mix(in srgb, var(--accent) 7%, var(--card));color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.4rem;font-size:2.4rem;display:flex;position:absolute;inset:0}.banner__placeholder span{font-size:.85rem}.banner__body{z-index:1;flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex;position:relative}.banner__foot{flex-direction:column;gap:.4rem;margin-top:auto;margin-bottom:-.3rem;display:flex}.banner__title{align-items:baseline;gap:.75rem;margin-top:-1.1rem;display:flex}.banner__title h2{overflow-wrap:anywhere;flex:1;min-width:0;margin:0}.banner--photo .banner__title h2{color:#fff;text-shadow:0 1px 8px #00000080}.banner--photo .fav-star{color:#ffffffd9}.banner--photo .fav-star:hover,.banner--photo .fav-star:focus-visible,.banner--photo .fav-star--on{color:#ffd75e}.banner__meta{color:var(--muted);margin:0;font-size:.9rem}.banner--photo .banner__meta{color:#ffffffd9}.banner__meta--inline{margin:0}.banner__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.banner__actions .cook-btn{margin-left:auto}.fav-star{color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:center;padding:.1rem .3rem;font-size:1.4rem;line-height:1}.fav-star:hover,.fav-star:focus-visible,.fav-star--on{color:var(--accent)}.fav-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.fav-bar__search{border:1px solid var(--border);background:var(--card);min-width:12rem;color:var(--text);font:inherit;border-radius:6px;flex:1;padding:.5rem .75rem}.fav-bar__search:focus-visible{outline:2px solid var(--accent)}.fav-bar__tags{flex-wrap:wrap;gap:.4rem;display:flex}.fav-chip{border:1px solid var(--border);color:var(--text);background:var(--card);cursor:pointer;border-radius:999px;padding:.15rem .7rem;font-size:.8rem}.fav-chip:hover,.fav-chip:focus-visible{border-color:var(--accent);color:var(--accent)}.fav-chip--on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.portions{align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.9rem;display:inline-flex}.portions__label{color:var(--muted)}.portions__btn{border:1px solid var(--border);background:var(--card);width:2rem;height:2rem;color:var(--accent);cursor:pointer;border-radius:999px;font-size:1.1rem;line-height:1}.portions__btn:disabled{opacity:.4;cursor:default}.portions__value{text-align:center;min-width:1.6rem;font-weight:600}.detail__body{grid-template-columns:16rem minmax(0,1fr);align-items:start;gap:2rem;display:grid}.detail__aside{min-width:0;position:sticky;top:1rem}.detail__aside h3,.detail__content h3{margin:.4rem 0 .5rem}.detail__aside .portions{margin:0 0 .75rem}.detail__aside .gallery--thumbs{margin-top:.25rem}.detail__content{min-width:0}.detail__modehead{margin:0 0 .75rem}.detail__modehead .portions{margin:0}@media (width<=720px){.banner{min-height:13.5rem;padding:1rem}.detail__body{grid-template-columns:1fr;gap:1.25rem}.detail__aside{position:static}}.ingredients{padding:0;list-style:none}.ingredients li{border-bottom:1px dashed var(--border);padding:.35rem 0}.ingredients .qty{color:var(--accent);margin-right:.5rem;font-weight:600}.steps li{margin-bottom:.6rem}.steps .timer{color:var(--accent);margin:.2rem 0 0;font-size:.85rem}.steps .uses{flex-wrap:wrap;gap:.3rem;margin:.25rem 0 0;display:flex}.tag-row{flex-wrap:wrap;gap:.4rem;margin:.25rem 0;display:flex}.tag-chip{border:1px solid var(--border);color:var(--text);background:var(--card);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .6rem;font-size:.8rem;display:inline-flex}.tag-suggest{flex-wrap:wrap;gap:.5rem;font-size:.85rem;display:flex}.photo-strip{flex-wrap:nowrap;align-items:stretch;gap:.5rem;display:flex;overflow-x:auto}.photo-strip.drop-target{outline:2px dashed var(--accent);outline-offset:3px;border-radius:8px}.photo-add{border:1px dashed var(--border);width:7rem;height:5.5rem;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:1.8rem;display:flex}.photo-add:hover{border-color:var(--accent);color:var(--accent)}.photo-thumb{cursor:grab;flex:none;width:7rem;height:5.5rem;margin:0;position:relative}.photo-thumb:active{cursor:grabbing}.photo-thumb img{object-fit:cover;pointer-events:none;border-radius:8px;width:100%;height:100%;display:block}.photo-thumb__remove{color:#fff;background:#0000008c;border-radius:50%;width:1.25rem;height:1.25rem;line-height:1;position:absolute;top:.15rem;right:.15rem}.gallery{flex-wrap:nowrap;align-items:stretch;gap:.5rem;min-height:7.5rem;margin:.75rem 0;display:flex;overflow-x:auto}.gallery--thumbs{min-height:4.75rem}.gallery__item{cursor:zoom-in;background:0 0;border:none;flex:none;padding:0}.gallery__item img{object-fit:cover;background:var(--card);border-radius:10px;width:10rem;height:7rem;display:block}.gallery--thumbs .gallery__item img{width:6rem;height:4.25rem}.gallery__placeholder{border:1px dashed var(--border);width:10rem;height:7rem;color:var(--muted);border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.25rem;font-size:.8rem;display:flex}.gallery__placeholder span{pointer-events:none}.gallery--thumbs .gallery__placeholder{width:6rem;height:4.25rem;font-size:.9rem}.lightbox{z-index:100;cursor:zoom-out;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{border-radius:10px;max-width:92vw;max-height:92vh}.steps .chip{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.modes{border:1px solid var(--border);background:var(--card);border-radius:999px;gap:2px;margin:0 0 1rem;padding:3px;display:inline-flex}.mode{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .95rem;font-size:.85rem}.mode.active{background:var(--accent);color:var(--bg)}.flow-wrap{overflow-x:auto}.flow{border-collapse:collapse;width:100%;font-size:.85rem}.flow th,.flow td{border:1px solid var(--border);vertical-align:top;padding:.45rem .7rem}.flow thead th{background:var(--card);text-align:left;font-weight:700}.flow .flow-depth-th{color:var(--muted);text-align:center;font-size:.72rem;font-weight:400}.flow .flow-ing{white-space:nowrap;min-width:16rem}.flow .flow-ing .flow-qty{color:var(--muted);min-width:4.25rem;font-weight:400;display:inline-block}.flow .flow-ing .flow-opt{color:var(--muted);font-size:.72rem;font-style:italic}.flow .flow-phase{background:var(--card);text-align:left;min-width:16rem}.flow-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.3rem;display:flex}.flow-head .phase-n{color:var(--accent);border:1px solid var(--accent);border-radius:999px;flex:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.72rem;font-weight:700;display:inline-flex}.flow-head .phase-name{color:var(--accent);font-weight:700}.flow-head .phase-time{color:var(--muted);font-size:.75rem}.flow-phase .phase-req{flex-wrap:wrap;gap:.3rem;margin:0 0 .4rem;display:flex}.flow-phase .steps{margin:0;padding-left:1.2rem}.flow-phase .steps li{margin-bottom:.5rem}.graph-wrap{border:1px solid var(--border);background:var(--card);border-radius:12px;padding:.5rem;overflow:auto}.gnode{fill:var(--card);stroke:var(--border);stroke-width:1px}.gnode.g-it{stroke-dasharray:4 3}.gnode.g-ph{fill:color-mix(in srgb, var(--accent) 30%, var(--card));stroke:var(--accent);stroke-width:1.4px}.gnode.g-step{stroke:color-mix(in srgb, var(--accent) 45%, var(--border))}.gnode.g-prod{stroke:var(--accent);stroke-width:2px;fill:color-mix(in srgb, var(--accent) 12%, var(--card))}.gtext{fill:var(--text);font-family:system-ui,sans-serif}.gtext.gname{font-size:12px;font-weight:600}.gtext.gsub{fill:var(--muted);font-size:10px}.gedge{fill:none;stroke:var(--muted);stroke-width:1.3px;opacity:.85}.garrow{fill:var(--muted)}.add-list{align-items:center;gap:.4rem;margin-left:auto;display:flex}.add-list__btn{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem}.cook-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem;font-weight:600}.cook-btn:hover:not(:disabled),.add-list__btn:hover:not(:disabled){filter:brightness(1.1)}.detail__manage{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.detail__delete{color:#b02a2a}.detail__confirm{color:#b02a2a;background:#fdecec;border:1px solid #b02a2a;border-radius:8px;align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.9rem;display:inline-flex}.detail__delete-yes{color:#fff;font:inherit;cursor:pointer;background:#b02a2a;border:1px solid #b02a2a;border-radius:6px;padding:.25rem .6rem;font-size:.85rem}.detail__delete-yes:disabled{opacity:.6;cursor:default}:root[data-theme=dark] .detail__delete{color:#ff9d9d}:root[data-theme=dark] .detail__confirm{color:#ff9d9d;background:#3a2424;border-color:#ff9d9d}:root[data-theme=dark] .detail__delete-yes{background:#7a1f1f;border-color:#ff9d9d}.home{text-align:center;max-width:560px;margin:3rem auto 0}.home h1{margin:0 0 .25rem}.home__tagline{color:var(--muted);margin:0 0 1.5rem}.home__all{margin-top:1.5rem}.search{text-align:left}.search__input{border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);border-radius:12px;padding:.75rem 1rem;font-size:1rem}.search__input:focus{outline:2px solid var(--accent);outline-offset:1px}.search__status,.search__error{color:var(--muted);margin:.75rem 0 0;font-size:.9rem}.search__error{color:#c0392b}.search__results{flex-direction:column;gap:.5rem;margin:.75rem 0 0;display:flex}.search__more{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:.5rem;font-size:.9rem}.list-page__head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.list-page__add{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.95rem}.list-page h2{margin:1.5rem 0 1rem}.list-page__empty{text-align:center;color:var(--muted);margin:3rem 0}.list-page__empty .link{font-size:1rem}.list-page__for{color:var(--muted);font-size:1rem;font-weight:400}.list-page__status{color:var(--muted)}.pager{color:var(--muted);justify-content:center;align-items:center;gap:1.25rem;margin:1.5rem 0;font-size:.9rem;display:flex}.pager button{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:.4rem .9rem}.pager button:disabled{opacity:.45;cursor:default}.create-page h2{margin:1.5rem 0 1rem}.create-form fieldset{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.75rem;margin:0 0 1.25rem;padding:1rem;display:flex}.create-form legend{padding:0 .5rem;font-weight:600}.create-form input:not([type=checkbox]),.create-form textarea,.create-form select{border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;border-radius:8px;padding:.45rem .6rem}.legend-hint{color:var(--muted);font-size:.75rem;font-weight:400}.subpart-block{border:1px dashed var(--muted);border-radius:8px;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:.75rem 1rem;margin-bottom:1rem;padding:.75rem;display:grid}.subpart-block__head,.subpart-block__output{grid-column:1/-1}.subpart-block__group{flex-direction:column;gap:.5rem;min-width:0;display:flex}.subpart-block__group+.subpart-block__group{border-left:1px solid var(--border);padding-left:1rem}@media (width<=1000px){.subpart-block{grid-template-columns:1fr}.subpart-block__group+.subpart-block__group{border-left:0;border-top:1px solid var(--border);padding-top:.75rem;padding-left:0}}.subpart-block__head{align-items:center;gap:.5rem;display:flex}.subpart-block__head input{flex:1}.create-form .row{flex-wrap:wrap;gap:.75rem;display:flex}.create-form .row label{flex:8rem}.ingredient-row,.ingredient-head{grid-template-columns:1.2rem minmax(0,1fr) 5rem 6.5rem 4rem 1.6rem;align-items:center;gap:.4rem;display:grid}.ingredient-head{color:var(--muted);border-bottom:1px dashed var(--border);padding-bottom:.2rem;font-size:.75rem}.ingredient-row input,.ingredient-row select{box-sizing:border-box;width:100%;min-width:0}.ingredient-row__opt{justify-self:center;margin:0}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;touch-action:none;padding:.25rem .1rem}.drag-handle:active{cursor:grabbing}.drag-over{outline:2px dashed var(--accent);outline-offset:2px;border-radius:4px}.step-row{align-items:flex-start;gap:.5rem;display:flex}.step-row__num{color:var(--muted);padding-top:.5rem}.step-row__main{flex-direction:column;flex:auto;gap:.5rem;display:flex}.step-row__kind{max-width:14rem}.step-row__meta{flex-wrap:wrap;gap:.4rem;display:flex}.step-row__meta .step-row__kind{flex:9rem;max-width:16rem}.step-row__timer{width:5.5rem}.step-row__timer-label{flex:9rem}.step-section{flex-direction:column;gap:.3rem;display:flex}.step-section__head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.step-section__title{color:var(--muted);font-size:.85rem}.step-row__uses-toggle{align-self:flex-start;font-size:.85rem}.use-row{grid-template-columns:minmax(0,1fr) 5.5rem 2.5rem auto;align-items:center;gap:.4rem;display:grid}.output-row{grid-template-columns:1.2rem minmax(0,1fr) 2.5rem auto;align-items:center;gap:.4rem;display:grid}.output-row__arrow{color:var(--accent);text-align:center}.use-row select{flex:12rem;min-width:0}.use-row__qty{width:5.5rem}.use-row__unit{color:var(--muted);font-size:.85rem}.use-row--error select{outline-offset:2px;outline:2px solid #c0392b}.use-compte{color:var(--muted);white-space:nowrap;font-size:.85rem}.ingredient-row--error{outline-offset:2px;border-radius:8px;outline:2px solid #c0392b}.field-error{color:#b02a2a;margin:.25rem 0 0;font-size:.85rem;font-weight:600}.ingredient-row .field-error{grid-column:1/-1}.create-form [aria-invalid=true],.input-error{border-color:#c0392b;box-shadow:inset 0 0 0 1px #c0392b}.subpart-block--error{outline-offset:3px;border-radius:10px;outline:2px solid #c0392b}:root[data-theme=dark] .field-error{color:#ff9d9d}:root[data-theme=dark] .create-form [aria-invalid=true],:root[data-theme=dark] .input-error{border-color:#ff9d9d;box-shadow:inset 0 0 0 1px #ff9d9d}:root[data-theme=dark] .subpart-block--error,:root[data-theme=dark] .ingredient-row--error,:root[data-theme=dark] .step-row--error{outline-color:#ff9d9d}.error-summary ul{flex-direction:column;gap:.15rem;margin:.25rem 0 0;padding-left:1.1rem;display:flex}.error-summary .link{color:inherit;font-weight:600;text-decoration:underline}.error-summary .link:hover{color:#c0392b}.step-row__kind-custom{max-width:24rem}.kind-badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-bottom:.25rem;padding:.1rem .55rem;font-size:.8rem;display:inline-block}.step-row--error{outline-offset:2px;border-radius:8px;outline:2px solid #c0392b}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1rem}.icon-btn:hover{color:#c0392b}.duration-labels{flex-wrap:wrap;gap:.4rem;display:flex}.duration-label{border:1px solid var(--border);color:var(--text);background:var(--card);border-radius:999px;padding:.15rem .7rem;font-size:.85rem}.duration-label--empty{color:var(--muted)}.hint{color:var(--muted);opacity:.65;margin:0;font-size:.75rem;font-style:italic}.create-form__actions{align-items:center;gap:1rem;display:flex}.create-form__actions .create-form__cancel{margin-right:auto}.create-form__actions button[type=submit],.create-form__actions .create-form__btn,.preview__actions .create-form__btn{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.4rem;font-weight:600}.create-form__actions button[type=submit]:disabled,.create-form__actions .create-form__btn:disabled,.preview__actions .create-form__btn:disabled{opacity:.5;cursor:default}.create-btn{white-space:nowrap}.create-form.import-locked{opacity:.45;filter:grayscale(.5);pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .2s}.create-form fieldset,.import-form fieldset{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.75rem;margin:0 0 1.25rem;padding:1rem;display:flex}.create-form legend,.import-form legend{padding:0 .5rem;font-weight:600}.create-form label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.create-form input:not([type=checkbox]),.import-form input:not([type=checkbox]),.create-form textarea,.create-form select{border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;border-radius:8px;padding:.45rem .6rem}.create-form .req{color:#c0392b}.import-form .row{flex-wrap:wrap;gap:.75rem;display:flex}.import-form .row input{flex:20rem}.import-error{color:#c0392b;margin:.5rem 0 0;font-size:.85rem}.import-ok{color:#2e7d32;margin:.5rem 0 0;font-size:.85rem}.import-progress{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.import-stages{flex-wrap:wrap;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.import-stages li{color:var(--muted)}.import-stages li.active{color:var(--text);font-weight:600}.import-stages li.active:before{content:"";border:2px solid var(--accent);vertical-align:-.05em;border-top-color:#0000;border-radius:50%;width:.7em;height:.7em;margin-right:.35rem;animation:.8s linear infinite import-spin;display:inline-block}@keyframes import-spin{to{transform:rotate(360deg)}}.import-stages li.done{color:#2e7d32}.import-stages li.done:before{content:"✓ "}.import-stages li.pending:before{content:"○ "}.import-elapsed{color:var(--muted);font-variant-numeric:tabular-nums}.create-form__actions{margin-bottom:.5rem}.create-top{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.create-top .create-form__actions{margin-bottom:0}.header-actions{align-items:center;gap:.75rem;margin-left:auto;display:flex}.theme-toggle{cursor:pointer;background:0 0;border:none;font-size:1.1rem;line-height:1}.user-menu{position:relative}.user-menu__trigger{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border);max-width:10rem;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .55rem;font-size:.85rem;display:flex;overflow:hidden}.user-menu__trigger:hover,.user-menu__trigger:focus-visible,.user-menu__trigger[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.user-menu__caret{color:var(--muted);font-size:.7rem}.user-menu__backdrop{z-index:10;cursor:default;background:0 0;border:none;position:fixed;inset:0}.user-menu__panel{z-index:11;background:var(--card);border:1px solid var(--border);min-width:12rem;box-shadow:0 4px 12px var(--shadow);border-radius:6px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.user-menu__email{border-bottom:1px solid var(--border);color:var(--muted);text-overflow:ellipsis;margin-bottom:4px;padding:6px 8px 8px;font-size:.8rem;overflow:hidden}.user-menu__badge{color:var(--muted);margin-bottom:4px;padding:0 8px 8px;font-size:.8rem}.user-menu__item{color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:.9rem}.user-menu__item:hover,.user-menu__item:focus-visible{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.user-menu__item--exit{border-top:1px solid var(--border);border-radius:0 0 4px 4px;margin-top:2px}.header-basket{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--card));color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:.25rem .7rem;font-size:.9rem}.header-basket:hover{filter:brightness(1.08)}.planning-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.planning-bar__left{align-items:center;gap:.35rem;display:flex}.planning-bar__add{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem}.planning-bar__add:hover{filter:brightness(1.1)}.planning-bar__today{border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem}.planning-bar__today:hover{border-color:var(--accent);color:var(--accent)}.planning-bar__arrow{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .5rem;font-size:1.3rem;line-height:1}.planning-bar__arrow:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.planning-bar__title{text-align:center;min-width:13rem;margin:0;font-size:1.05rem;font-weight:600}.planning-bar__views{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.planning-bar__views button{background:var(--card);color:var(--muted);font:inherit;cursor:pointer;border:none;padding:.35rem .9rem;font-size:.9rem}.planning-bar__views button:hover{color:var(--text)}.planning-bar__view--on{background:color-mix(in srgb, var(--accent) 16%, var(--card));color:var(--accent);font-weight:600}.planning-week{background:var(--border);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(7,minmax(9rem,1fr));gap:1px;display:grid;overflow:auto hidden}.planning-week__head{background:var(--card);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);align-items:center;gap:.4rem;margin:0;padding:.5rem .6rem;font-size:.9rem;display:flex}.planning-week__head--today{color:var(--accent)}.planning-week__today{background:var(--accent);color:#fff;text-transform:none;border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;font-size:.95rem;display:inline-grid}.planning-week__today.hidden{color:var(--text);background:0 0;font-size:.95rem;font-weight:600}.planning-week__cell{background:var(--card);flex-direction:column;align-content:start;gap:.35rem;min-height:50vh;padding:.5rem;display:flex;position:relative}.planning-create{border:1px solid var(--accent);background:var(--card);box-shadow:0 2px 10px var(--shadow);border-radius:6px;flex-direction:column;gap:.3rem;padding:.35rem;display:flex}.planning-create__search,.planning-create__time{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:4px;padding:.25rem .4rem;font-size:.8rem}.planning-create__chosen{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.planning-create__chosen-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.planning-create__chosen-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.05rem .3rem}.planning-create__chosen-clear:hover{color:var(--accent)}.planning-create__results{max-height:12rem;margin:0;padding:0;list-style:none;overflow-y:auto}.planning-create__result{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.3rem .4rem;font-size:.85rem;display:block}.planning-create__result:hover,.planning-create__result--active{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.planning-create__status{color:var(--muted);margin:0;font-size:.8rem}.planning-create__status--err{color:var(--accent)}.planning-create__actions{justify-content:flex-end;gap:.3rem;display:flex}.planning-create__actions button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:4px;padding:.25rem .6rem;font-size:.8rem}.planning-create__actions button:disabled{opacity:.5;cursor:not-allowed}.planning-create__actions .planning-create__cancel{color:var(--text);border-color:var(--border);background:0 0}.planning-week__add{border:1px dashed var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:.3rem 0;font-size:1rem;line-height:1}.planning-week__cell .planning-week__add:after{content:"Planifier un plat";opacity:0;vertical-align:middle;margin-left:.4rem;font-size:.8rem;transition:opacity .15s}.planning-week__cell .planning-week__add:hover:after,.planning-week__cell .planning-week__add:focus-visible:after{opacity:1}.planning-meal{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.45rem .4rem;display:flex;position:relative}.planning-meal__top{align-items:center;gap:.25rem;width:100%;min-width:0;display:flex}.planning-meal__name{text-overflow:ellipsis;white-space:nowrap;text-align:left;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:1;min-width:0;font-size:1rem;font-weight:600;overflow:hidden}.planning-meal__name--selected{color:var(--accent)}.planning-meal--selected{background:color-mix(in srgb, var(--accent) 16%, var(--bg));border-color:var(--accent)}.planning-meal--selected .planning-meal__portions{color:var(--accent)}.planning-meal__portions{color:var(--muted);font:inherit;text-align:left;background:0 0;border:none;border-radius:4px;padding:.1rem .2rem;font-size:.85rem}.planning-meal__portions:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.planning-meal__remove,.planning-meal__edit{color:#0000;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .25rem}.planning-meal:hover .planning-meal__remove,.planning-meal:hover .planning-meal__edit{color:var(--muted)}.planning-meal__remove:hover,.planning-meal__edit:hover{color:var(--accent)}.planning-agenda{flex-direction:column;gap:1rem;max-width:42rem;margin:0 auto;display:flex}.planning-agenda__month{border-top:2px solid var(--border);padding-top:1rem;font-size:1.2rem;font-weight:700}.planning-agenda__day{flex-direction:column;gap:.4rem;display:flex}.planning-agenda__head{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin:0;padding-bottom:.25rem;display:flex}.planning-agenda__head--today .planning-agenda__title{color:var(--accent)}.planning-agenda__title{font-size:1.05rem;font-weight:600}.planning-agenda__head .planning-week__add{opacity:.6;width:2rem;padding:.25rem 0}.planning-agenda__head .planning-week__add:hover{opacity:1}.planning-agenda__empty{text-align:center;color:var(--muted);padding:2rem 0;font-size:.9rem}.planning-month{background:var(--border);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(7,minmax(8rem,1fr));gap:1px;display:grid;overflow:auto hidden}.planning-month__days{background:var(--bg);grid-column:1/-1;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.planning-month__days span{color:var(--muted);text-align:right;padding:.3rem .5rem;font-size:.72rem;font-weight:600}.planning-month__day{background:var(--card);text-align:left;min-height:5.5rem;font:inherit;cursor:pointer;border:none;flex-direction:column;align-items:stretch;gap:.15rem;padding:.3rem .4rem;display:flex}.planning-month__day:hover{background:color-mix(in srgb, var(--accent) 6%, var(--card))}.planning-month__day--out{background:var(--bg)}.planning-month__day--out .planning-month__num{color:var(--muted);opacity:.55}.planning-month__num{color:var(--text);border-radius:50%;align-self:flex-start;place-items:center;min-width:1.5rem;height:1.5rem;font-size:.85rem;font-weight:600;display:inline-grid}.planning-month__num--today{background:var(--accent);color:#fff}.planning-month__meal{color:var(--text);border-left:2px solid var(--accent);text-overflow:ellipsis;white-space:nowrap;padding-left:.3rem;font-size:.75rem;overflow:hidden}.planning-drawer{background:var(--card);border-left:1px solid var(--border);width:min(22rem,100vw);box-shadow:-8px 0 24px var(--shadow);z-index:40;padding:1rem 1.1rem;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.planning-drawer__head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.planning-drawer__head h3{margin:0;font-size:1rem}.planning-drawer__close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:1rem}.planning-drawer__close:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.planning-create__row{gap:.6rem;display:flex}.planning-create__row>*{flex:1;min-width:0}.planning-create__label{color:var(--muted);flex-direction:column;gap:.25rem;margin-bottom:.6rem;font-size:.78rem;display:flex}.planning-create__label select{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:4px;padding:.3rem .4rem;font-size:.85rem}.servings{align-items:center;gap:.15rem;display:inline-flex}.servings__btn{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:4px;flex:none;width:1.4rem;height:1.4rem;padding:0;font-size:.8rem;line-height:1}.servings__btn:hover{border-color:var(--accent);color:var(--accent)}.servings__value{width:2.6rem;color:var(--text);font:inherit;text-align:center;-moz-appearance:textfield;background:0 0;border:1px solid #0000;border-radius:4px;padding:.1rem .2rem;font-size:.8rem}.servings__value:hover,.servings__value:focus{border-color:var(--border);background:var(--bg)}.servings__value::placeholder{color:var(--muted);opacity:.7}.planning-select-bar{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--card));border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.45rem .6rem;display:flex}.planning-select-bar__count{min-width:0;color:var(--text);flex:1;font-size:.9rem}.planning-select-bar button[type=submit]{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem}.planning-select-bar button[type=submit]:hover:not(:disabled){filter:brightness(1.1)}.planning-select-bar button[type=submit]:disabled{opacity:.6;cursor:default}.shopping__lists{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.shopping__pill{border:1px solid var(--border);background:var(--card);cursor:pointer;font:inherit;border-radius:999px;padding:.3rem .9rem}.shopping__pill--active{background:var(--accent);border-color:var(--accent);color:#fff}.shopping__new{gap:.25rem;display:flex}.shopping__new input{border:1px solid var(--border);background:var(--card);width:12rem;color:var(--text);font:inherit;border-radius:999px;padding:.3rem .6rem}.shopping__new button{border:1px solid var(--border);background:var(--card);cursor:pointer;width:2rem;font:inherit;border-radius:999px}.shopping__tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:.75rem;display:flex}.shopping__tab{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.4rem .9rem}.shopping__tab--active{color:var(--text);border-bottom-color:var(--accent)}.shopping__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.shopping__title{align-items:baseline;gap:.75rem;min-width:0;display:flex}.shopping__bar h2{margin:0}.shopping__count{color:var(--muted);white-space:nowrap;font-size:.9rem}.shopping__actions{align-items:center;gap:.25rem;display:flex}.shopping__iconbtn{width:2.25rem;height:2.25rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.05rem;line-height:1;display:inline-flex}.shopping__iconbtn:hover:not(:disabled){background:var(--card);color:var(--text)}.shopping__iconbtn:disabled{opacity:.4;cursor:not-allowed}.shopping__iconbtn--danger:hover:not(:disabled){color:#c0392b;background:#c0392b1a}.shopping__rename-btn{opacity:.45;width:1.75rem;height:1.75rem;font-size:.85rem}.shopping__title:hover .shopping__rename-btn,.shopping__rename-btn:focus-visible{opacity:1}.shopping__rename{align-items:center;gap:.25rem;display:flex}.shopping__rename input{font:inherit;border:1px solid var(--accent);background:var(--card);color:var(--text);border-radius:4px;padding:.2rem .5rem;font-weight:600}.shopping__rename button{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;width:1.8rem;height:1.8rem;font:inherit;border-radius:6px;line-height:1}.shopping__badge{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .6rem;font-size:.85rem}.shopping__done{background:var(--card);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.shopping__done-archive{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;font:inherit;border-radius:999px;padding:.3rem .9rem}.shopping__search{margin-bottom:1rem;position:relative}.shopping__search input{border:1px solid var(--border);background:var(--card);width:min(26rem,100%);color:var(--text);font:inherit;border-radius:.5rem;padding:.4rem .7rem}.shopping__results{z-index:10;background:var(--card);border:1px solid var(--border);box-shadow:0 4px 16px var(--shadow);border-radius:.5rem;min-width:min(26rem,100%);margin:.25rem 0 0;padding:.25rem;list-style:none;position:absolute}.shopping__results button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:0;padding:.4rem .6rem;display:block}.shopping__results button:hover{background:var(--bg)}.shopping__hint{color:var(--muted);font-size:.85rem}.shopping__empty{color:var(--muted);font-style:italic}.shopping__category{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:1rem 0 .4rem;font-size:.95rem}.shopping__items{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.shopping__items li{background:var(--card);border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:.75rem;padding:.45rem .75rem;display:flex}.shopping__items li:nth-child(2n){background:color-mix(in srgb, var(--border) 28%, var(--card))}.shopping__items label{cursor:pointer;flex:1;align-items:center;gap:.5rem;display:flex}.shopping__qty{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.shopping__item--checked .shopping__name{color:var(--muted);text-decoration:line-through}.shopping__remove{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0}.shopping__remove:hover{color:#c0392b}.shopping__recipes{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.shopping__recipes li{border:1px solid var(--border);background:var(--card);border-radius:6px;align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.shopping__recipe-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;font-weight:600;overflow:hidden}.shopping__recipe-portions,.shopping__recipe-date{color:var(--muted);white-space:nowrap;font-size:.85rem}.cooking{max-width:40rem;margin:0 auto;padding:1.5rem 1rem 5.2rem}.cooking__bar{align-items:baseline;gap:.75rem;display:flex}.cooking__quit,.cooking__restart{flex:none}.cooking__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.25rem;overflow:hidden}.cooking__progress{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.95rem}.cooking__bar-track{background:var(--border);border-radius:2px;height:4px;margin:.75rem 0 2rem}.cooking__bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .2s}.cooking__step{flex-direction:column;flex:1;gap:1rem;display:flex}.cooking__counter{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.9rem}.cooking__instruction{overflow-wrap:anywhere;margin:0;font-size:1.5rem;font-weight:600;line-height:1.35}.cooking__photos{gap:.5rem;display:flex;overflow-x:auto}.cooking__photos img{border-radius:8px;max-height:12rem}.cooking__uses{flex-wrap:wrap;gap:.4rem;margin:0;display:flex}.cooking__counter-phase{color:var(--accent)}.cooking__phase-card{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--card);border-radius:8px;padding:.6rem .9rem}.cooking__phase-title{margin:0 0 .35rem;font-weight:700}.cooking__phase-io{color:var(--muted);margin:.15rem 0;font-size:.9rem}.cooking__uses{border:1px solid var(--border);background:var(--card);border-radius:8px;flex-direction:column;gap:.35rem;margin:0;padding:.6rem .9rem;list-style:none;display:flex}.cooking__use{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.cooking__use-name{min-width:0}.cooking__use-qty{color:var(--accent);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.cooking__phase-head{border-bottom:1px solid var(--border);align-items:baseline;gap:.6rem;padding:.7rem .4rem .3rem;display:flex}.cooking__phase-name{color:var(--accent);font-weight:700}.cooking__phase-mins{color:var(--muted);font-size:.78rem}.cooking__timer{border:1px solid var(--border);background:var(--card);border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.cooking__timer--running{border-color:var(--accent)}.cooking__timer--done{background:color-mix(in srgb, #2f8a4c 8%, var(--card));border-color:#2f8a4c}:root[data-theme=dark] .cooking__timer--done{background:color-mix(in srgb, #2f8a4c 22%, var(--card))}.cooking__timer-value{font-variant-numeric:tabular-nums;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;min-width:6rem;padding:0;font-size:2rem;font-weight:700}.cooking__timer-value:disabled{cursor:default;color:var(--muted)}.cooking__timer--done .cooking__timer-value{color:#2f8a4c}.cooking__timer-label{color:var(--muted);flex:1;font-size:.9rem}.cooking__timer-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.cooking__timer-adjust{align-items:baseline;gap:.9rem;font-size:.85rem;display:flex}.cooking__timer-adjust .link:disabled{opacity:.4;cursor:default}.cooking__nav{gap:.75rem;margin:2rem 0 1.25rem;display:flex}.cooking__nav-btn{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:12px;flex:1;padding:.9rem 1rem;font-size:1.1rem;font-weight:600}.cooking__done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:2rem 1rem;display:flex}.cooking__done-emoji{margin:0;font-size:3.5rem;line-height:1}.cooking__done-title{margin:0;font-size:1.5rem;font-weight:700}.cooking__done-text{color:var(--muted);margin:0}.cooking__timeline{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.cooking__layout{flex-direction:column;gap:1rem;display:flex}.cooking__main{flex-direction:column;display:flex}.cooking__pantry-count{font-variant-numeric:tabular-nums;color:var(--text);flex:none;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.cooking__pantry-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.cooking__pantry-item{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.cooking__pantry-item--done{color:var(--muted)}.cooking__pantry-item--done .cooking__pantry-name{text-decoration:line-through}.cooking__pantry-qty{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.85rem}.cooking__pantry-item--done .cooking__pantry-qty{opacity:.6}@media (width<=55.99rem){.cooking__layout{flex-direction:column-reverse}.cooking__pantry{z-index:6;background:var(--bg);border-bottom:1px solid var(--border);order:-1;align-items:center;gap:.75rem;margin:0 -1rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.cooking__pantry-list{flex-direction:row;gap:.5rem;padding:.2rem 0;overflow-x:auto}.cooking__pantry-item{border:1px solid var(--border);background:var(--card);border-radius:999px;flex:none;justify-content:flex-start;gap:.4rem;padding:.3rem .7rem}.cooking__pantry-item--done{border-color:var(--border);opacity:.65}}@media (width>=56rem){.cooking{max-width:56rem}.cooking__layout{flex-direction:row-reverse;align-items:flex-start;gap:1.5rem}.cooking__nav{max-width:56rem}.cooking__main{flex:1;min-width:0}.cooking__pantry{border:1px solid var(--border);background:var(--card);border-radius:8px;flex-direction:column;flex:none;gap:.5rem;width:15rem;padding:.6rem .9rem;display:flex;position:sticky;top:1rem}.cooking__pantry-count{justify-content:space-between}.cooking__pantry-list{border-top:1px solid var(--border);padding-top:.5rem}}.cooking__nav{z-index:6;max-width:40rem;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--border);gap:.75rem;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.cooking__nav-btn{height:3.4rem;font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:12px;flex:1;padding:0 1rem;font-size:1.1rem;font-weight:600}.cooking__nav-btn:disabled{opacity:.4;cursor:default}.cooking__nav-btn--primary{border-color:var(--accent);background:var(--accent);color:#fff}.cooking__nav-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.cooking__entry-btn{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:baseline;gap:.6rem;padding:.55rem .4rem;font-size:.9rem;display:flex}.cooking__entry-btn:hover{color:var(--text)}.cooking__entry-num{border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;min-width:1.5rem;height:1.5rem;font-size:.75rem;display:inline-grid}.cooking__entry-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cooking__entry--current .cooking__entry-btn{color:var(--text);font-weight:600}.cooking__entry--current .cooking__entry-num{border-color:var(--accent);background:var(--accent);color:#fff}.cooking__entry--past .cooking__entry-btn{color:var(--muted)}.cooking__entry--past .cooking__entry-text{text-decoration:line-through}.cooking__entry--past .cooking__entry-num{color:#2f8a4c;border-color:#2f8a4c}.global-timers{position:relative}.global-timers__trigger{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .55rem;font-size:.85rem;display:flex}.global-timers__trigger:hover,.global-timers__trigger:focus-visible,.global-timers__trigger[aria-expanded=true],.global-timers__trigger--running{border-color:var(--accent);color:var(--accent)}.global-timers__backdrop{z-index:10;cursor:default;background:0 0;border:none;position:fixed;inset:0}.global-timers__panel{z-index:11;background:var(--card);border:1px solid var(--border);min-width:15rem;max-height:60vh;box-shadow:0 4px 12px var(--shadow);border-radius:6px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;overflow:auto}.global-timers__list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.global-timers__item{border:1px solid var(--accent);background:var(--bg);border-radius:8px;align-items:center;gap:.25rem;padding:.35rem .5rem;display:flex}.global-timers__item--done{border-color:#2f8a4c}.global-timers__btn{min-width:0;font:inherit;text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:.6rem;padding:0;display:flex}.global-timers__time{font-variant-numeric:tabular-nums;color:var(--accent);flex:none;font-size:1.15rem;font-weight:700}.global-timers__item--done .global-timers__time{color:#2f8a4c}.global-timers__meta{flex-direction:column;min-width:0;line-height:1.25;display:flex}.global-timers__label{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.global-timers__recipe{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.global-timers__actions{flex:none;gap:.35rem;font-size:.95rem;display:flex}.global-timers__actions .link:disabled{opacity:.35;cursor:default}.toasts{z-index:1000;flex-direction:column;gap:.5rem;max-width:min(24rem,100vw - 2rem);display:flex;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--accent);box-shadow:0 4px 14px var(--shadow);border-radius:6px;align-items:baseline;gap:.6rem;padding:.6rem .8rem;font-size:.9rem;display:flex}.toast--error{border-left-color:#d64545}.toast__msg{flex:1}.toast__close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .1rem;font-size:.8rem}.toast__close:hover{color:var(--text)}.login.svelte-u9c561{max-width:22rem;margin:3rem auto;padding:0 1rem}.login__oidc.svelte-u9c561{border:1px solid var(--border);width:100%;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin-top:1.5rem;padding:.6rem .8rem}.login__error.svelte-u9c561{color:#c0392b;margin-top:1.5rem;font-size:.9rem}.login__back.svelte-u9c561{cursor:pointer;font:inherit;background:0 0;border:none;margin:1.5rem auto 0;display:block}.use-autocomplete.svelte-1vajkrc{width:100%;min-width:10rem;position:relative}.use-autocomplete.svelte-1vajkrc input:where(.svelte-1vajkrc){box-sizing:border-box;width:100%}.autocomplete.svelte-1vajkrc{z-index:10;background:var(--card);border:1px solid var(--border);box-shadow:0 4px 12px var(--shadow);border-radius:6px;max-height:12rem;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete.svelte-1vajkrc button:where(.svelte-1vajkrc){cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;justify-content:space-between;gap:.75rem;width:100%;padding:4px 8px;display:flex}.autocomplete.svelte-1vajkrc button:where(.svelte-1vajkrc):hover,.autocomplete.svelte-1vajkrc button:where(.svelte-1vajkrc):focus-visible{background:color-mix(in srgb, var(--accent) 14%, transparent)}.autocomplete__label.svelte-1vajkrc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.autocomplete__unit.svelte-1vajkrc{color:var(--muted);flex:none}.preview__bar.svelte-15v9kph{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;display:flex}.preview__note.svelte-15v9kph{white-space:nowrap}.preview__desc.svelte-15v9kph{margin:0 0 .4rem}.preview__subpart.svelte-15v9kph{border-top:1px dashed var(--border);margin-top:1.25rem;padding-top:.75rem}.preview__subpart.svelte-15v9kph h3:where(.svelte-15v9kph){margin:0 0 .5rem}.preview__subpart-name.svelte-15v9kph{margin-right:.25rem}.preview__actions.svelte-15v9kph{justify-content:flex-end;margin-top:1rem;display:flex}.settings-layout.svelte-1rli9n1{grid-template-columns:15rem 1fr;align-items:start;gap:2rem;margin-top:1rem;display:grid}.settings-nav.svelte-1rli9n1{flex-direction:column;gap:.35rem;display:flex}.settings-nav__item.svelte-1rli9n1{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;border-radius:0 8px 8px 0;align-items:baseline;gap:.6rem;padding:.55rem .8rem;display:flex}.settings-nav__item.svelte-1rli9n1:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.settings-nav__item--on.svelte-1rli9n1{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);pointer-events:none}.settings-nav__icon.svelte-1rli9n1{font-size:1rem}.settings-nav__item.svelte-1rli9n1{font-weight:600}.settings-nav__item--on.svelte-1rli9n1{color:var(--accent)}@media (width<=720px){.settings-layout.svelte-1rli9n1{grid-template-columns:1fr;gap:1rem}.settings-nav.svelte-1rli9n1{flex-flow:wrap}.settings-nav__item.svelte-1rli9n1{border-bottom:3px solid #0000;border-left:none;border-radius:8px 8px 0 0}.settings-nav__item--on.svelte-1rli9n1{border-bottom-color:var(--accent)}}.settings-content.svelte-1rli9n1 .settings-hint{margin-top:0}.settings-hint.svelte-1rli9n1{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.token-created.svelte-1rli9n1{border:1px solid var(--accent);border-radius:8px;margin:0 0 1rem;padding:.9rem 1rem;font-size:.9rem}.token-created__row.svelte-1rli9n1{align-items:center;gap:.6rem;margin:.5rem 0;display:flex}.token-created__value.svelte-1rli9n1{border:1px solid var(--border);background:var(--bg);white-space:nowrap;border-radius:6px;flex:1;padding:.5rem .7rem;overflow-x:auto}.token-form.svelte-1rli9n1{gap:.5rem;margin-bottom:1.5rem;display:flex}.token-form.svelte-1rli9n1 input:where(.svelte-1rli9n1){border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;border-radius:6px;flex:1;padding:.55rem .7rem}.token-form.svelte-1rli9n1 button:where(.svelte-1rli9n1){border:1px solid var(--border);background:var(--accent);color:var(--bg);font:inherit;cursor:pointer;border-radius:6px;padding:.55rem .9rem}.token-form.svelte-1rli9n1 button:where(.svelte-1rli9n1):disabled{opacity:.6;cursor:progress}.token-list.svelte-1rli9n1{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.token-list__item.svelte-1rli9n1{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;display:flex}.token-list__main.svelte-1rli9n1{flex-direction:column;gap:.15rem;min-width:0;display:flex}.token-list__name.svelte-1rli9n1{font-weight:600}.token-list__meta.svelte-1rli9n1{color:var(--muted);font-size:.8rem}.token-list__revoke.svelte-1rli9n1{border:1px solid var(--border);color:#c0392b;font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .7rem}.settings-back.svelte-1rli9n1{cursor:pointer;font:inherit;background:0 0;border:none;margin-top:2rem;display:block}.llm-feedback.svelte-1rli9n1{color:var(--muted);margin:0 0 1rem;font-size:.9rem}
