/* 沿用原型cartView的版型與數量控制。 */
.cart-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:1.25rem;align-items:start}
.cart-layout>*{min-width:0}.cart-list{display:grid;gap:.75rem}
.cart-item{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:white}
.cart-thumb{width:112px;min-height:112px;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden}.cart-thumb img{width:100%;height:100%;min-height:100%;object-fit:cover}
.cart-item h3{margin:0 0 .25rem;line-height:1.35;overflow-wrap:anywhere}.cart-item p{overflow-wrap:anywhere}.cart-item .inline-actions{justify-content:flex-end}
.qty-control{display:inline-grid;grid-template-columns:36px 46px 36px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.qty-control button{border:0;background:var(--surface-soft);min-height:36px;cursor:pointer}.qty-control output{text-align:center;font-weight:800}
.summary{position:sticky;top:92px}.cart-layout .summary>.btn{display:flex;width:fit-content;margin-top:24px;margin-left:auto}.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
#cart-error{color:var(--danger,#a32c2c)}#cart-retry{margin-bottom:1rem}
@media(max-width:1024px){.cart-layout{grid-template-columns:1fr}.summary{position:static}}
@media(max-width:620px){.cart-item{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:.75rem;padding:.8rem}.cart-thumb{width:96px;min-height:96px}.cart-item .inline-actions{grid-column:1/-1;justify-content:flex-start}.qty-control button{min-height:44px}}
