.shopping-intro{font-size:13px;line-height:1.6;color:var(--muted);margin:4px 0 16px;max-width:70ch}
.shopping-plan{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding:8px 0 25px;border-bottom:1px solid var(--line)}
.shopping-plan .eyebrow{margin-bottom:0}
.shopping-period{display:flex;gap:4px;background:var(--line);padding:4px;border-radius:8px;margin-top:10px}
.shopping-period button{padding:10px 17px;border-radius:6px;font-size:13px;font-weight:600;min-height:44px;white-space:nowrap;color:var(--ink)}
.shopping-period button:hover{background:var(--paper)}
.shopping-period button.active{background:var(--white);color:var(--teal);box-shadow:0 1px 4px color-mix(in srgb,var(--ink) 14%,transparent)}
.shopping-progress{display:grid;gap:8px;min-width:220px;max-width:300px}
.shopping-progress-count{display:flex;align-items:baseline;gap:10px}
.shopping-progress strong{font:500 34px var(--display);color:var(--teal);font-variant-numeric:tabular-nums;line-height:1.1}
.shopping-progress small{font-size:20px;color:var(--muted)}.shopping-progress-count>span{font-size:12px;color:var(--muted)}
.shopping-progress progress{height:6px;width:100%;appearance:none;border:0;background:var(--line);border-radius:3px;overflow:hidden}
.shopping-progress progress::-webkit-progress-bar{background:var(--line)}.shopping-progress progress::-webkit-progress-value{background:var(--teal)}.shopping-progress progress::-moz-progress-bar{background:var(--teal)}
.shopping-progress-text{font-size:12px;line-height:1.5;color:var(--muted)}.shopping-progress-text.is-complete{color:var(--teal);font-weight:700}
.shopping-choices{display:grid;gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}
.shopping-choices-head{display:grid;gap:6px}.shopping-choices-head .eyebrow{margin-bottom:0}.shopping-choices-head p{font-size:12px;line-height:1.6;color:var(--muted)}
.shopping-choices-fields{display:flex;flex-wrap:wrap;gap:16px 20px}
.shopping-choices label{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%;font-size:12px;font-weight:600;color:var(--ink)}
.shopping-choices select{min-width:260px;max-width:100%;min-height:44px;background:var(--white);padding:10px 34px 10px 12px;border:1px solid var(--field-border);border-radius:6px;font:400 13px var(--body);color:var(--ink)}
.shopping-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;padding:28px 0}
.shopping-category{margin-bottom:30px}.shopping-category>header{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:2px solid var(--line)}
.shopping-category>header>svg{width:19px;height:19px;color:var(--teal)}.shopping-category h2{font-size:19px;font-weight:500;line-height:1.3}
.shopping-category header>span{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.shopping-row{display:grid;grid-template-columns:44px minmax(0,1fr) 112px;align-items:start;gap:8px;padding:12px 4px 12px 0;border-bottom:1px solid var(--line);transition:background .2s}
.shopping-check{display:grid;place-items:center;width:44px;height:44px;border-radius:6px;cursor:pointer}.shopping-check:hover{background:var(--paper)}
.shopping-check>input{appearance:auto;accent-color:var(--teal);width:22px;height:22px;margin:0;cursor:pointer}
.shopping-food{min-width:0;padding-top:10px}.shopping-food>strong{display:block;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.shopping-food>span{display:block;color:var(--muted);font-size:12px;margin-top:2px;line-height:1.5}
.shopping-food>small{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-top:6px}
.shopping-food details{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.6}.shopping-food summary{cursor:pointer;display:flex;align-items:center;min-height:44px;color:var(--teal);font-weight:600;width:max-content;max-width:100%}.shopping-food details p{margin-top:2px}
.shopping-amount{text-align:right;min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;padding-top:8px}.shopping-amount-label{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}.shopping-amount strong{display:block;font-size:15px;color:var(--ink);line-height:1.4}.shopping-amount span:not(.shopping-amount-label){display:block;font-size:12px;color:var(--muted);margin-top:2px}
.shopping-row.checked{background:var(--teal-light)}.shopping-row.checked .shopping-food>strong{text-decoration:line-through;color:var(--muted)}.shopping-row.checked .shopping-amount strong{color:var(--teal)}
.shopping-prepared-note{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--ink);line-height:1.6;margin-top:12px;padding:10px 12px;border-radius:6px;background:var(--coral-light)}.shopping-prepared-note svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:var(--coral)}
.shopping-summary{border-left:1px solid var(--line);padding-left:25px;align-self:start;position:sticky;top:90px}
.shopping-summary .eyebrow{margin-bottom:0}.shopping-summary h2{font-size:22px;margin:9px 0 18px;font-weight:500}.shopping-summary dl{margin:0 0 18px}.shopping-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}
.shopping-summary dt{color:var(--muted)}.shopping-summary dd{margin:0;font-weight:600}.shopping-summary>p,.shopping-caution p{font-size:12px;line-height:1.8;color:var(--muted)}
.shopping-caution{margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.shopping-caution>svg{width:19px;height:19px;color:var(--coral);margin-bottom:7px}.shopping-caution>strong{display:block;font-size:12px;margin-bottom:7px}
.shopping-summary>.btn{margin-top:20px;width:100%;padding:10px;font-size:12px}
.shopping-summary>.btn:disabled,[data-action=shopping-pdf]:disabled{cursor:not-allowed;opacity:.7}
.shopping-pending{padding:20px 0;border-top:2px solid var(--coral-accent)}.shopping-pending h2{display:flex;align-items:center;gap:10px;font-size:19px}.shopping-pending h2 svg{width:19px;color:var(--coral)}.shopping-pending>p{margin:10px 0;font-size:12px;line-height:1.6;color:var(--muted)}.shopping-pending>div{padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}.shopping-pending small{color:var(--coral)}
.shopping-empty{display:grid;justify-items:center;gap:12px;text-align:center;padding:56px 16px;margin-top:12px;border:1px dashed var(--field-border);border-radius:8px;background:var(--white)}.shopping-empty>svg{width:40px;height:40px;color:var(--teal)}.shopping-empty h2{font-size:20px}.shopping-empty p{font-size:13px;line-height:1.7;color:var(--muted);max-width:52ch}.shopping-empty em{font-style:normal;font-weight:700;color:var(--ink)}
@media(max-width:1150px){.shopping-layout{grid-template-columns:minmax(0,1fr) 220px;gap:23px}.shopping-summary{padding-left:20px}.shopping-row{grid-template-columns:44px minmax(0,1fr) 100px}}
@media(max-width:800px){.shopping-layout{grid-template-columns:minmax(0,1fr)}.shopping-summary{position:static;border-left:0;border-top:1px solid var(--line);padding:24px 0}.shopping-summary>.btn{width:auto}.shopping-summary h2{font-size:22px}}
@media(max-width:450px){.shopping-plan{flex-direction:column;gap:18px}.shopping-plan>div:first-child{width:100%}.shopping-period{width:100%}.shopping-period button{flex:1;font-size:12px;padding:9px 6px}.shopping-progress{width:100%;max-width:none}.shopping-progress strong{font-size:29px}.shopping-choices label{width:100%}.shopping-choices select{width:100%;min-width:0}.shopping-category h2{font-size:18px}.shopping-row{grid-template-columns:44px minmax(0,1fr) 84px;gap:4px}.shopping-amount strong{font-size:13px}.shopping-food>strong{font-size:13px}.shopping-layout{padding-top:22px}}
