.tool-cell{resize:none;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface);width:100%;min-height:64px;font-family:var(--font-body);font-size:var(--text-14);color:var(--fg);transition:border-color var(--dur-state) ease, box-shadow var(--dur-state) ease;outline:none;padding:8px 10px;line-height:1.45}.tool-cell::placeholder{color:var(--fg-subtle)}.tool-cell:hover{border-color:var(--line-strong)}.tool-cell:focus{border-color:var(--line-selected);outline:none}.tool-chip{border-radius:var(--r-full);border:1.5px solid var(--line);background:var(--surface);min-height:36px;color:var(--fg-secondary);font-family:var(--font-body);font-size:var(--text-14);font-weight:var(--fw-semibold);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.tool-chip[aria-pressed=true]{background:var(--action-subtle);border-color:var(--brand-soft);color:var(--on-action-subtle)}.tool-chip:focus-visible{outline:var(--focus-line);outline-offset:var(--focus-offset)}.tool-action{border-radius:var(--r-full);border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--fg);font-family:var(--font-body);font-size:var(--text-16);font-weight:var(--fw-semibold);cursor:pointer;align-items:center;gap:8px;padding:10px 18px;transition:border-color .12s,background-color .12s;display:inline-flex}.tool-action:hover{border-color:var(--brand-soft);background:var(--action-subtle)}.tool-action[data-primary=true]{background:var(--action);border-color:var(--action);color:var(--on-action)}.tool-action[data-primary=true]:hover{background:var(--action-hover);border-color:var(--action-hover)}.tool-action:focus-visible{outline:var(--focus-line);outline-offset:var(--focus-offset)}.tool-action--busy{opacity:.75}.tool-action--unavailable{opacity:.5;cursor:not-allowed}.tool-cell--input{min-height:44px}.tool-cell--sm{min-height:36px;padding:6px 10px}.tool-chip--icon{padding-inline:10px}.tool-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-6);box-shadow:var(--sh-lg);text-align:left;padding:clamp(16px,3vw,28px)}.tool-controls{gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;display:flex}.tool-field{flex-direction:column;gap:6px;display:flex}.tool-field--week{flex:240px;max-width:360px}.tool-field--notes{margin-top:var(--s-5)}.tool-label{font-family:var(--font-body);font-size:var(--text-14);font-weight:var(--fw-semibold);color:var(--fg-secondary)}.tool-chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.tool-actions{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.tool-actions--top{margin-bottom:var(--s-5)}.tool-actions--bottom{margin-top:var(--s-6)}.tool-hint{font-family:var(--font-body);font-size:var(--text-14)}.tool-hint--subtle{color:var(--fg-subtle)}.tool-hint--muted{color:var(--fg-muted)}.tool-sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.tool-promo{justify-content:space-between;align-items:center;gap:var(--s-4);margin-top:var(--s-5);padding:var(--s-5) var(--s-6);border-radius:var(--r-6);background-color:var(--action-subtle);border:1px solid var(--action-subtle-line);text-align:left;flex-wrap:wrap;display:flex}.tool-promo__text{font-family:var(--font-body);font-size:var(--text-16);color:var(--fg-secondary);flex:320px;margin:0;line-height:1.55}.tool-promo__lead{color:var(--fg)}.tool-promo .btn{text-decoration:none}.tool-pack{margin-top:var(--s-5);padding:var(--s-5) var(--s-6);border-radius:var(--r-6);background-color:var(--surface);border:1px solid var(--line);text-align:left;position:relative}.tool-pack--sent{align-items:center;gap:var(--s-3);display:flex}.tool-pack__head{gap:var(--s-3);margin-bottom:var(--s-4);align-items:flex-start;display:flex}.tool-pack__row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.tool-pack__icon{color:var(--action);flex:none}.tool-pack__icon--top{margin-top:2px}.tool-pack__text{font-family:var(--font-body);font-size:var(--text-16);color:var(--fg-secondary);margin:0;line-height:1.5}.tool-pack__text--form{line-height:1.55}.tool-pack__strong{color:var(--fg)}.tool-pack__email{flex:240px;max-width:360px}.tool-pack__error{font-family:var(--font-body);font-size:var(--text-14);color:var(--danger-ink);margin:var(--s-2) 0 0}.tool-pack__note{font-family:var(--font-body);font-size:var(--text-12);color:var(--fg-subtle);margin:var(--s-3) 0 0}.tool-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.tool-group__head{justify-content:space-between;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-2);display:flex}.tool-group__count{font-family:var(--font-body);font-size:var(--text-12);font-weight:var(--fw-semibold);color:var(--on-action-subtle)}.tool-list{margin:0;padding:0;list-style:none}.tool-item{cursor:pointer;align-items:center;gap:10px;min-height:36px;display:flex;position:relative}.tool-item__text{font-family:var(--font-body);font-size:var(--text-16);color:var(--fg-secondary);font-weight:var(--fw-regular)}.tool-item__text--on{color:var(--fg);font-weight:var(--fw-semibold)}.tool-add{margin-top:var(--s-2);gap:6px;display:flex}.tool-menu-grid{gap:8px;display:grid}.tool-menu-row{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-6);background:var(--paper);grid-template-columns:1fr;align-items:stretch;gap:8px;display:grid}.tool-menu-head{display:none}.tool-menu-col{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-14);color:var(--on-action-subtle);padding:0 4px}.tool-menu-day{font-family:var(--font-display);font-weight:var(--fw-heavy);font-size:var(--text-16);color:var(--fg);letter-spacing:-.01em;align-self:center}.tool-menu-cell{flex-direction:column;gap:4px;display:flex}.tool-menu-meal-label{font-family:var(--font-body);font-size:var(--text-12);font-weight:var(--fw-semibold);color:var(--fg-muted);display:block}@media (min-width:768px){.tool-menu-row{grid-template-columns:110px repeat(var(--tool-cols), minmax(0, 1fr));background:0 0;border:0;border-radius:0;padding:0}.tool-menu-head{display:grid}.tool-menu-meal-label{display:none}}.tool-grocery-cols{column-count:1;column-gap:var(--s-5)}@media (min-width:640px){.tool-grocery-cols{column-count:2}}@media (min-width:1024px){.tool-grocery-cols{column-count:3}}.tool-grocery-section{break-inside:avoid;margin-bottom:var(--s-5)}.tool-print{display:none}@page tool-menu{size:A4 landscape;margin:10mm}@page tool-grocery{size:A4 portrait;margin:10mm}@media print{body:has(>.tool-print)>:not(.tool-print){display:none!important}body:has(>.tool-print){background:var(--surface)!important;min-height:0!important}.tool-print{color:#000;font-family:var(--font-body), system-ui, sans-serif;display:block!important}.tool-print[data-kind=menu]{page:tool-menu}.tool-print[data-kind=grocery]{page:tool-grocery}.tool-print h2{font-family:var(--font-display), system-ui, sans-serif;margin:0 0 2mm;font-size:18pt}.tool-print .tool-print-sub{color:var(--fg-secondary);margin:0 0 4mm;font-size:9.5pt}.tool-print table{border-collapse:collapse;table-layout:fixed;width:100%}.tool-print th,.tool-print td{border:.6pt solid var(--line-strong);vertical-align:top;text-align:left;padding:2mm;font-size:9.5pt}.tool-print th{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9pt;background:var(--action-subtle)!important}.tool-print td{white-space:pre-wrap;height:18mm}.tool-print .tool-print-day{width:13%}.tool-print .tool-print-notes{border:.6pt solid var(--line-strong);white-space:pre-wrap;min-height:22mm;margin-top:4mm;padding:2mm;font-size:9.5pt}.tool-print .tool-print-cols{column-count:3;column-gap:6mm;font-size:9pt}.tool-print .tool-print-section{break-inside:avoid;margin-bottom:3mm}.tool-print .tool-print-section h3{border-bottom:.6pt solid var(--line-strong);margin:0 0 1mm;padding-bottom:.6mm;font-size:10pt}.tool-print .tool-print-item{align-items:baseline;gap:1.6mm;line-height:1.5;display:flex}.tool-print .tool-print-box{border:.6pt solid var(--fg);flex-shrink:0;width:2.6mm;height:2.6mm;display:inline-block}.tool-print .tool-print-foot{color:var(--fg-muted);margin-top:3mm;font-size:8pt}}.tool-action--link{text-decoration:none}
