.sh-controls{margin:var(--s4) 0 0}.sh-row{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.sh-link{font-family:var(--sans);color:var(--gold-text);font-size:13px}.sh-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-btn{min-height:44px;padding:10px var(--s4);cursor:pointer;font-family:var(--sans);letter-spacing:.01em;background:var(--surface);color:var(--green);border:1px solid var(--border-strong);border-radius:2px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.sh-btn:hover{border-color:var(--green)}.sh-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-btn[disabled]{opacity:.45;cursor:not-allowed}.sh-btn--primary{background:var(--green-deep);color:var(--text-on-green);border-color:var(--green-deep)}.sh-btn--danger{border-color:var(--terracotta);color:var(--terracotta)}.sh-btn--danger:hover{background:var(--terracotta);color:var(--surface-raised)}.sh-btn--small{min-height:44px;padding:8px var(--s3);font-size:13px}.sh-btn__mark{font-size:15px;line-height:1}.sh-panel{margin:var(--s4) 0 0;padding:var(--s4);background:var(--surface-sunken);border:1px solid var(--border);border-radius:2px}.sh-panel[hidden]{display:none}.sh-fieldset{margin:0 0 var(--s4);border:0;padding:0}.sh-legend{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);padding:0;font-size:11px;font-weight:600}.sh-scale{gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.sh-chip{min-width:56px;min-height:44px;padding:8px var(--s4);cursor:pointer;font-family:var(--sans);background:var(--surface);color:var(--green);border:1px solid var(--border-strong);border-radius:2px;flex-direction:column;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex}.sh-chip.is-on{background:var(--green-deep);color:var(--text-on-green);border-color:var(--green-deep)}.sh-chip:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-chip__n{opacity:.8;font-size:10.5px;font-weight:500}.sh-confirm{gap:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.sh-confirm__p{margin:0 0 var(--s2);font-family:var(--sans);color:var(--text);flex:100%;font-size:13.5px;line-height:1.6}.sh-confirm--inline{margin-top:var(--s3)}.sh-notice{margin:var(--s4) 0 0;padding:var(--s3) var(--s4);font-family:var(--sans);color:var(--text-muted);background:var(--surface-raised);border-left:3px solid var(--gold);font-size:13px;line-height:1.6}.sh-status{margin:0 0 var(--s5);padding:var(--s4) var(--s5);background:var(--surface-raised);border-left:4px solid var(--gold);border-radius:2px}.sh-status--warning{border-left-color:var(--terracotta)}.sh-status__h{font-family:var(--sans);letter-spacing:.01em;color:var(--text);margin:0;font-size:14px;font-weight:600}.sh-status__p{margin:var(--s2) 0 var(--s3);font-family:var(--sans);color:var(--text-muted);max-width:52em;font-size:13.5px;line-height:1.65}.sh-status .sh-confirm__p{color:var(--text)}.sh-notice--page{margin:0 0 var(--s5)}.sh-error{margin:var(--s3) 0 0;font-family:var(--sans);color:var(--terracotta);font-size:13px}.sh-main{padding-bottom:var(--s9)}.sh-page{min-height:62vh}.sh-loading{min-height:62vh;font-family:var(--sans);color:var(--text-muted);padding:var(--s6) 0;font-size:15px}.sh-head{padding:var(--s7) 0 var(--s5)}.sh-head__kicker{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin:0;font-size:11px;font-weight:600}.sh-head__h1{margin:var(--s3) 0 0;font-family:var(--serif-title);color:var(--green);font-size:clamp(2rem,5vw,3rem);font-weight:400;line-height:1.1}.sh-head__lede{margin:var(--s4) 0 0;max-width:40em;font-family:var(--sans);color:var(--text-muted);font-size:15px;line-height:1.7}.sh-summary{align-items:center;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.sh-summary__counts{font-family:var(--sans);color:var(--text-muted);margin:0;font-size:14px}.sh-summary__counts strong{color:var(--green);font-variant-numeric:tabular-nums}.sh-h2{margin:var(--s6) 0 var(--s4);font-family:var(--serif-title);color:var(--green);font-size:1.5rem;font-weight:400}.sh-h2:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.sh-recipes__list{margin:0;padding:0;list-style:none}.sh-recipes__list li{align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.sh-recipes__list li:first-child{border-top:0}.sh-recipes__title{min-width:12em;min-height:44px;font-family:var(--serif);color:var(--green);flex:1;align-items:center;font-size:1.05rem;display:inline-flex}.sh-recipes__title:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-recipes__mult{font-family:var(--sans);color:var(--gold-text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.sh-recipes__n{font-family:var(--sans);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.sh-section{margin-bottom:var(--s5)}.sh-section__h{align-items:baseline;gap:var(--s3);margin:0 0 var(--s3);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);font-size:11px;font-weight:600;display:flex}.sh-section__n{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.sh-list{margin:0;padding:0;list-style:none}.sh-list li{align-items:flex-start;gap:var(--s3);border-top:1px solid var(--border);display:flex}.sh-list li:first-child{border-top:0}.sh-item{align-items:flex-start;gap:var(--s4);padding:var(--s4) 0;cursor:pointer;flex:1;min-height:52px;display:flex}.sh-item input{width:24px;height:24px;accent-color:var(--green-deep);flex:none;margin-top:2px}.sh-item__body{flex-direction:column;gap:2px;display:flex}.sh-item__text{font-family:var(--serif);color:var(--text);font-size:1.08rem;line-height:1.45}.sh-item__from{font-family:var(--sans);color:var(--text-muted);font-size:12px}.sh-item__note{font-family:var(--sans);color:var(--gold-text);font-size:12px}.sh-item__pkg{font-family:var(--serif);color:var(--text-muted);font-size:.95rem}.sh-item:focus-within{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}.sh-list li.is-done .sh-item__text{color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:1px}.sh-btn--quiet{border-color:var(--border);color:var(--text-muted)}.sh-btn--quiet:hover{border-color:var(--border-strong);color:var(--text)}.sh-aside{margin:var(--s6) 0 0;padding-top:var(--s5);border-top:1px solid var(--border)}.sh-aside__h{margin:0}.sh-aside__toggle{align-items:center;gap:var(--s3);min-height:44px;padding:0 var(--s2);cursor:pointer;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);background:0 0;border:0;font-size:11px;font-weight:600;display:inline-flex}.sh-aside__toggle:hover{color:var(--green)}.sh-aside__toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}.sh-aside__n{background:var(--surface-sunken);min-width:22px;height:20px;color:var(--text-muted);letter-spacing:0;font-variant-numeric:tabular-nums;border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11.5px;font-weight:700;display:inline-flex}.sh-aside__p{margin:var(--s2) 0 var(--s3);max-width:46em;font-family:var(--sans);color:var(--text-muted);font-size:12.5px;line-height:1.6}.sh-aside__all{margin-top:var(--s3)}.sh-list--aside li{align-items:center}.sh-item--aside{align-items:flex-start;gap:var(--s4);padding:var(--s3) 0;min-height:44px;color:var(--text-muted);flex:1;display:flex}.sh-item--aside .sh-item__text{color:var(--text-muted);font-size:1rem}.sh-empty--aside{padding:var(--s5) 0 var(--s3)}.sh-add{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--border)}.sh-add__label{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:var(--s3);font-size:11px;font-weight:600;display:block}.sh-add__row{gap:var(--s3);flex-wrap:wrap;display:flex}.sh-add__input{min-width:11em;min-height:44px;padding:10px var(--s4);font-family:var(--sans);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:2px;flex:1;font-size:15px}.sh-add__input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-add__input[aria-invalid=true]{border-color:var(--terracotta)}.sh-add__select{min-height:44px;padding:8px var(--s3);font-family:var(--sans);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:2px;font-size:14px}.sh-add__select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-add__note{margin:var(--s3) 0 0;font-family:var(--sans);color:var(--text-muted);max-width:44em;font-size:12.5px;line-height:1.6}.sh-empty{padding:var(--s6) 0;max-width:42em}.sh-empty__h{font-family:var(--serif-title);color:var(--green);margin:0;font-size:1.5rem;font-weight:400}.sh-empty__p{margin:var(--s3) 0 0;font-family:var(--sans);color:var(--text-muted);font-size:15px;line-height:1.7}.sh-empty__cta{gap:var(--s3);margin-top:var(--s4);flex-wrap:wrap;display:flex}@media (max-width:520px){.sh-row .sh-btn,.sh-empty__cta .sh-btn,.sh-add__row .sh-add__input{flex:100%}}@media (prefers-reduced-motion:reduce){.sh-btn,.sh-chip{transition:none}}.sh-recipes__plan{font-family:var(--sans);color:var(--gold-text);text-underline-offset:3px;font-size:12px;text-decoration:underline}.sh-recipes__plan:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sh-reuse{margin:var(--s6) 0 0;padding:var(--s4);background:var(--surface-sunken);border:1px solid var(--border);border-radius:2px}.sh-reuse__h3{margin:var(--s4) 0 var(--s2);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);font-size:11px;font-weight:600}.sh-reuse__h3:first-of-type{margin-top:0}.sh-reuse__list{margin:0;padding:0;list-style:none}.sh-reuse__list li{align-items:baseline;gap:var(--s2) var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--border);font-family:var(--sans);color:var(--text);flex-wrap:wrap;font-size:14px;display:flex}.sh-reuse__list li:last-child{border-bottom:0}.sh-reuse__meals{color:var(--text-muted);font-size:12.5px}.sh-reuse__caveat{margin:var(--s3) 0 0;max-width:52em;font-family:var(--sans);color:var(--text);font-size:13px;line-height:1.65}
