/* List */
.cart-list{ display:flex; flex-direction:column; gap:12px; }
.cart-row{
  display:grid;
  grid-template-columns: 56px 1fr auto;
  gap:14px;
  padding:12px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
}
.cart-row .thumb{
  width:56px;height:56px;border-radius:12px;
  background:#f2f6ff; display:grid; place-items:center;
}
.cart-row .info .name{ font-weight:800; color:#0b2a6a; }
.cart-row .info .note{ font-size:12px; color:#64748b; margin-top:2px; }
.cart-row .controls{ display:flex; align-items:center; gap:10px; margin-top:8px; }
.qty{ display:inline-flex; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; }
.qty button{ background:#f8fafc; border:none; padding:8px 12px; cursor:pointer; }
.qty input{ width:52px; border:none; text-align:center; }

.cart-row .line{ font-weight:800; display:flex; align-items:center; }

/* Coupon & totals */
.coupon-wrap{ display:flex; align-items:center; gap:8px; margin:14px 0; }
.coupon-wrap input{ flex:1; padding:10px 12px; border:1px solid #e2e8f0; border-radius:10px; }
.totals{ display:grid; gap:6px; background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:12px; }
.totals > div{ display:flex; justify-content:space-between; }
.totals .grand{ font-weight:900; font-size:18px; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px;
  border-radius:999px; border:1px solid #e2e8f0; background:#fff; cursor:pointer; font-weight:700; }
.btn.link{ border:none; background:transparent; padding:6px 8px; }
.btn.danger{ color:#dc2626; }
.btn.primary{ background:linear-gradient(180deg,#2b6ef2,#1a4ccf); color:#fff; border-color:#1a4ccf; }
.btn.primary:hover{ filter:brightness(1.05); }
.btn.full{ width:100%; justify-content:center; box-shadow:0 10px 18px rgba(43,110,242,.25); }

/* Misc */
.muted{ color:#64748b; }
.empty{ padding:12px; border:1px dashed #e5e7eb; border-radius:12px; background:#fff; }
.hide{ display:none; }
