/* ── Global Cart Slide-Out Panel ── */
.cart-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: .4s ease;
}
.cart-overlay.open {
  opacity: 1; visibility: visible;
}

.cart-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 400px; max-width: 100vw;
  background: var(--bg);
  box-shadow: -10px 0 30px rgba(0,0,0,0.1);
  z-index: 10000;
  transform: translateX(100%);
  transition: transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: flex; flex-direction: column;
  border-top-left-radius: var(--radius-xl);
  border-bottom-left-radius: var(--radius-xl);
  overflow: hidden;
}
.cart-overlay.open .cart-panel { transform: translateX(0); }

/* Header */
.cart-header {
  padding: calc(24px + var(--safe-area-top)) 24px 24px;
  border-bottom: 1px solid var(--border);
  display: flex; justify-content: space-between; align-items: center;
}
.cart-header h3 { font-family: var(--font-display); font-size: 1.5rem; color: var(--text); }
.cart-close {
  background: none; border: none; font-size: 1.5rem; color: var(--text2);
  cursor: pointer; transition: .3s;
}
.cart-close:hover { color: var(--error); transform: rotate(90deg); }

/* Items List */
.cart-body {
  flex: 1; overflow-y: auto; padding: 24px;
}
.cart-empty-msg {
  text-align: center; color: var(--text3); font-style: italic; font-family: var(--font-display);
  margin-top: 50% ; transform: translateY(-50%);
}

.cart-item {
  display: flex; gap: 16px; align-items: center;
  padding: 16px;
  margin-bottom: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  animation: fadeInRight .4s ease;
}
.cart-item:last-child { margin-bottom: 0; }
@keyframes fadeInRight { from {opacity:0; transform:translateX(20px);} to {opacity:1; transform:none;} }
.cart-item-img {
  width: 70px; height: 90px; border-radius: var(--radius-sm); object-fit: cover;
  border: 1px solid var(--border);
}
.cart-item-info { flex: 1; }
.cart-item-info h4 { font-size: 1rem; color: var(--text); font-weight: 600; margin-bottom: 4px; }
.cart-item-info p { color: var(--accent); font-weight: 500; }
.cart-item-remove {
  background: var(--bg2); border: 1px solid var(--border); color: var(--text3); cursor: pointer; padding: 8px; transition: .3s;
  border-radius: var(--radius-pill);
}
.cart-item-remove:hover { color: var(--error); }

/* Footer / Checkout */
.cart-footer {
  padding: 24px 24px calc(24px + var(--safe-area-bottom)); border-top: 1px solid var(--border); background: var(--bg2);
}
.cart-total {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px;
  font-family: var(--font-display); font-size: 1.4rem; color: var(--text);
}
.cart-checkout-btn {
  width: 100%; padding: 18px;
  background: var(--text); color: var(--bg);
  border: none; border-radius: var(--radius-pill);
  font-family: var(--font-body); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em;
  cursor: pointer; transition: .4s;
}
.cart-checkout-btn:hover { background: var(--accent); color: #fff; box-shadow: 0 4px 16px var(--accent-glow); }

@media (max-width: 640px) {
  .cart-panel {
    border-top-left-radius: var(--radius-xl);
    border-bottom-left-radius: 0;
    border-top-right-radius: var(--radius-xl);
  }
}

html[data-device="mobile"] .cart-overlay {
  background: rgba(20, 16, 12, 0.5);
}

html[data-device="mobile"] .cart-panel {
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  max-width: 100vw;
  height: min(90vh, calc(var(--viewport-height) - 12px - var(--safe-area-top)));
  border-top-left-radius: 30px;
  border-top-right-radius: 30px;
  border-bottom-left-radius: 0;
  box-shadow: 0 -18px 40px rgba(0, 0, 0, 0.14);
  transform: translateY(100%);
}

html[data-device="mobile"] .cart-overlay.open .cart-panel {
  transform: translateY(0);
}

html[data-device="mobile"] .cart-header {
  padding: 18px 18px 16px;
}

html[data-device="mobile"] .cart-body {
  padding: 18px;
}

html[data-device="mobile"] .cart-footer {
  padding: 18px 18px calc(18px + var(--safe-area-bottom));
}

html[data-device="mobile"] .cart-item {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 14px;
}

html[data-device="mobile"] .cart-item-img {
  width: 68px;
  height: 84px;
}

html[data-device="mobile"] .cart-total {
  margin-bottom: 18px;
  font-size: 1.2rem;
}
