/* Shopping owns its rhythm. Do not inherit chore-card or generic form spacing. */
.shopping-page{--shopping-gap:24px;display:grid;gap:var(--shopping-gap);min-width:0;max-width:1280px;margin-inline:auto}
.shopping-page>.page-heading,.shopping-page .staples>.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0}
.shopping-page .page-heading>div{min-width:0}
.shopping-page .page-heading .eyebrow{margin:0 0 10px;line-height:1.6}
.shopping-page .page-heading h1{margin:0 0 8px}
.shopping-page .page-heading p{margin:0}
.shopping-page .page-heading>button{flex-shrink:0;margin:0;font-size:14px}
.shopping-page .card{min-width:0;padding:24px;border:1px solid var(--line);border-radius:16px}
.shopping-page button{min-height:44px;line-height:1.4}
.shopping-page .text-button{padding:10px 12px}
.shopping-page .text-button.danger{color:#a2473d}
.shopping-page .text-button.danger:hover{background:#fbf0ed;border-radius:8px}
.shopping-page input:not([type=checkbox]),.shopping-page select{min-width:0;min-height:48px;border-color:#d9dbcf;color:inherit}
.shopping-page input[type=checkbox]{accent-color:#707451}

/* One workspace for adding, filtering, selecting and shopping. */
.shopping-page .add-item{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;margin:0 0 20px}
.shopping-page .add-item input,.shopping-page .add-item button{width:100%;height:48px;margin:0}
.shopping-page .shopping-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin:0;padding:0 0 20px}
.shopping-view-controls,.shopping-selection-controls,.shopping-bulk-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.shopping-view-controls label{margin:0}
.shopping-page .shopping-view-controls select{width:auto;min-width:144px;margin:0}
.shopping-selection-controls{gap:16px}
.shopping-selection-controls .check-label{min-height:44px;gap:10px;margin:0}
.shopping-selection-controls input{width:20px;height:20px;min-height:0;margin:0}
.shopping-selected-count{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.shopping-bulk-actions{gap:8px;margin-left:auto}
.shopping-page .shopping-row{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:16px 0;border-top:1px solid var(--line);margin:0}
.shopping-page .shopping-row-select{display:grid;place-items:center;width:44px;min-height:44px;margin:0;cursor:pointer}
.shopping-page .shopping-row-select input{width:20px;height:20px;margin:0}
.shopping-page .shopping-row .check{--check-size:44px;font-size:18px}
.shopping-row-copy{min-width:0;overflow-wrap:anywhere;line-height:1.5}
.shopping-row-copy strong{display:block;font-size:16px}
.shopping-row-copy small{margin-top:4px}
.shopping-page .shopping-row .icon-button{width:44px;height:44px;padding:0;border-radius:8px;justify-self:end}
.shopping-page .shopping-row .icon-button:hover{background:#f6f3ed}
.shopping-page .shopping-items .empty{margin:0;padding:32px 12px;text-align:center;border-top:1px solid var(--line)}

/* Account controls, catalog and receipts are distinct sections, not a wall of controls. */
.kroger-account{min-width:0;overflow-wrap:anywhere}
.shopping-page .kroger-account{margin:0}
.kroger-account .section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 16px}
.kroger-account h2{margin:0}
.kroger-account .section-head>[role=status]{font-size:13px;line-height:1.5;padding:6px 12px;border-radius:20px;background:#f0f1e7;color:#575b3f}
.kroger-account p{margin:0 0 12px;line-height:1.6}
.kroger-account p:last-child{margin-bottom:0}
.kroger-account button{min-height:44px}
.kroger-actions,.kroger-product-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.kroger-actions{margin-top:20px}
.kroger-actions p{flex-basis:100%;margin:0}
.kroger-actions+p{margin-top:16px}
.kroger-catalog{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.kroger-catalog h3{margin:0 0 10px}
.kroger-catalog .section-head h3{margin:0}
.kroger-selected-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 12px}
.kroger-selected .kroger-selected-actions button{margin:0}
.kroger-search{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:end;gap:12px;margin:20px 0 0}
.kroger-search label{display:grid;gap:8px;min-width:0;margin:0;line-height:1.5}
.kroger-search input{width:100%;min-width:0;height:48px;margin:0;box-sizing:border-box}
.kroger-search button{height:48px;min-height:48px;margin:0;align-self:end}
.kroger-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}
.kroger-results:not(:empty){margin-top:24px}
.kroger-product{display:flex;flex-direction:column;gap:16px;min-width:0;padding:20px;border:1px solid #e5e0d7;border-radius:12px;overflow-wrap:anywhere;background:#fff}
.kroger-product-copy{min-width:0;line-height:1.5}
.kroger-product-copy strong{display:block}
.kroger-product-copy p{margin:8px 0 0;font-size:14px;line-height:1.6}
.kroger-product-actions{margin-top:auto;align-items:stretch}
.kroger-product-actions button{flex:1 1 auto;margin:0}
.kroger-product-media{height:160px;display:grid;place-items:center;background:#fff;border-radius:8px;overflow:hidden;flex-shrink:0}
.kroger-product-media img{width:100%;height:160px;object-fit:contain}
.kroger-product-media img[hidden],.kroger-image-fallback[hidden]{display:none}
.kroger-image-fallback{color:var(--muted);font-size:14px;padding:16px;text-align:center}
.kroger-selected{margin-top:24px;padding:20px;background:#f7f7f0;border:1px solid #e2e3d6;border-radius:12px}
.kroger-selected>strong{display:block;margin-bottom:8px;line-height:1.5}
.kroger-selected button{margin:8px 0 12px}
.kroger-receipts{margin-top:24px;padding-top:12px;border-top:1px solid var(--line);max-height:28rem;overflow:auto;scrollbar-gutter:stable}
.kroger-receipts summary{cursor:pointer;min-height:44px;padding:12px 0;line-height:1.5}
.kroger-receipts article{border-top:1px solid var(--line);padding:20px 0}
.kroger-receipts article:last-child{padding-bottom:0}
.kroger-receipts article>strong{display:block;line-height:1.5;margin-bottom:8px}
.kroger-receipts article button{margin-top:8px}

/* Scope dialog corrections to Kroger. Generic dialogs have a viewport-wide max-width. */
dialog:has([data-kroger-dialog]){width:min(640px,calc(100vw - 32px));padding:28px;overflow-wrap:anywhere;color:#34372e}
dialog:has([data-kroger-dialog]) .section-head{align-items:flex-start;margin-bottom:20px}
dialog:has([data-kroger-dialog]) h2{margin:0;line-height:1.4}
dialog:has([data-kroger-dialog]) p{line-height:1.6;margin:0 0 16px}
dialog:has([data-kroger-dialog]) button{min-height:44px;min-width:44px}
dialog:has([data-kroger-dialog]) .check-label{display:flex;gap:12px;align-items:flex-start;margin:20px 0;min-height:44px;line-height:1.6}
dialog:has([data-kroger-dialog]) .check-label input{flex:0 0 20px;width:20px;height:20px;min-width:20px;min-height:20px;margin:2px 0 0}
dialog:has([data-kroger-dialog]) .modal-actions{flex-wrap:wrap;gap:12px;margin-top:24px}
dialog:has([data-kroger-dialog]) .kroger-product{margin-bottom:20px}

/* Receipt product rows preserve the requested 1:3 image/detail split at every width. */
.kroger-receipt-product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:16px;align-items:start;margin:0 0 16px;min-width:0}
.kroger-receipt-product .kroger-product-media{width:100%;min-width:0;height:auto;min-height:72px;aspect-ratio:1;max-height:144px;margin:0;border:1px solid var(--line);border-radius:10px}
.kroger-receipt-product .kroger-product-media img{width:100%;height:100%;max-height:144px;object-fit:contain}
.kroger-receipt-product .kroger-image-fallback{font-size:12px;padding:8px;line-height:1.5}
.kroger-receipt-copy{min-width:0;overflow-wrap:anywhere;line-height:1.5}
.kroger-receipt-copy strong{display:block;margin-bottom:8px}
.kroger-receipt-copy p{font-size:14px;margin:0 0 8px}
.kroger-receipt-store{font-size:13px;margin:0 0 12px}
@media(max-width:600px){.kroger-receipt-product{gap:12px}.kroger-receipt-product .kroger-product-media{min-height:0}.kroger-receipt-copy strong{font-size:14px}.kroger-receipt-copy p{font-size:13px}}

/* Retained worker history styles. The retired worker panel is not rendered. */
.shopping-connection{margin-bottom:1.25rem;min-width:0}.shopping-connection .section-head{gap:1rem;flex-wrap:wrap}.shopping-connection h2{margin:.3rem 0}.shopping-connection p,.shopping-connection li{overflow-wrap:anywhere}.shopping-connection-mode{font-size:.85rem;font-weight:650;padding:.5rem .75rem;border-radius:1rem;background:#f1eee5;color:#534b3e}.shopping-connection-actions{display:flex;gap:.75rem;flex-wrap:wrap}.shopping-connection button{min-height:44px}.shopping-connection-job{padding:1rem 0;border-top:1px solid #e5e0d7;margin-top:1rem}.shopping-connection-job small{display:block;color:#666}.shopping-connection-job details{margin-top:.75rem}.shopping-connection-job summary{cursor:pointer;min-height:44px;display:list-item;padding:.6rem 0}.shopping-connection-job h3{font-size:1rem}.shopping-review{padding-left:1.25rem;border-left:3px solid #b98431;margin-left:.25rem}.shopping-connection-jobs{max-height:34rem;overflow:auto}

@media(max-width:1100px){
 .shopping-bulk-actions{flex-basis:100%;margin-left:0}
}
@media(max-width:600px){
 .shopping-page{--shopping-gap:20px}
 .shopping-page>.page-heading,.shopping-page .staples>.page-heading{align-items:flex-start;flex-direction:column;gap:16px}
 .shopping-page .page-heading>button{width:100%}
 .shopping-page .card{padding:18px}
 .shopping-page .add-item,.kroger-search{grid-template-columns:minmax(0,1fr)}
 .shopping-page .shopping-toolbar{gap:12px;padding-bottom:16px}
 .shopping-view-controls,.shopping-selection-controls,.shopping-bulk-actions{width:100%}
 .shopping-page .shopping-view-controls select{flex:1}
 .shopping-selection-controls{justify-content:space-between;gap:8px}
 .shopping-bulk-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .shopping-bulk-actions .danger{grid-column:1/-1}
 .shopping-page .shopping-row{grid-template-columns:44px 44px minmax(0,1fr) 44px;gap:4px;padding:14px 0}
 .shopping-row-copy strong{font-size:15px}
 .shopping-row-copy small{font-size:12px}
 .kroger-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
 .kroger-actions button,.kroger-search button{width:100%}
 .kroger-catalog{margin-top:20px;padding-top:20px}
 .kroger-product{padding:16px}
 .kroger-selected{padding:16px}
 .kroger-selected button{width:100%}
 dialog:has([data-kroger-dialog]){padding:20px}
 dialog:has([data-kroger-dialog]) .modal-actions button{flex:1 1 100%}
 .shopping-connection-actions button{width:100%}.shopping-connection .section-head{align-items:flex-start}
}

/* Completed one-item test cleanup. No shared dialog or product-grid overrides. */
.shopping-page .kroger-history-actions{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.shopping-page .kroger-history-actions>p{margin:0 0 10px}
.shopping-page .kroger-history-actions>div,.shopping-page .kroger-receipt-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}
.shopping-page .kroger-history-actions button,.shopping-page .kroger-receipt-controls button{min-height:44px;max-width:100%;white-space:normal}
.shopping-page .kroger-receipt-controls{margin:0 0 14px}
.shopping-page .kroger-receipt-choice{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;cursor:pointer}
.shopping-page .kroger-receipt-choice input{flex:0 0 20px;width:20px;height:20px;margin:0}
