/* ==========================================================================
   cart.css — Sepet sayfası (Faz 6)
   Tüm renk/ölçü değerleri theme.css token'larından gelir; iş mantığı renk
   değerlerine dokunmaz (clinerules md.2). Mobil-first: 640 / 1024 kırılımları.
   ========================================================================== */

.cart { padding: 1.75rem 0 3rem; }
.cart__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem;
}
.cart__title { font-size: var(--fs-30); font-weight: 700; letter-spacing: var(--ls-tight); }
.cart__count { font-size: var(--fs-14); color: var(--text-2); }

.cart__layout { display: grid; gap: 1.5rem; }
@media (min-width: 1024px) {
  .cart__layout { grid-template-columns: minmax(0, 1fr) 22.5rem; gap: 2rem; align-items: start; }
}

/* 1) BOŞ SEPET ---------------------------------------------------------------- */
.cart__empty {
  display: grid; justify-items: center; gap: .7rem; text-align: center;
  padding: 3.5rem 1.5rem;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-1);
}
.cart__emptyIcon { color: var(--text-3); }
.cart__empty h2 { font-size: var(--fs-20); font-weight: 600; }
.cart__empty p { color: var(--text-2); font-size: var(--fs-14); }
.cart__empty .btn { margin-top: .5rem; }

/* 2) SATIRLAR ----------------------------------------------------------------- */
.cart__list { display: grid; gap: .75rem; }

.cart__row {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: .9rem;
  padding: .9rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.cart__row:hover { border-color: var(--border-2); box-shadow: var(--shadow-1); }
.cart__row.is-busy { opacity: .55; pointer-events: none; }

@media (min-width: 640px) {
  .cart__row { grid-template-columns: 6rem minmax(0, 1fr) auto; align-items: start; }
}

.cart__media {
  position: relative; display: grid; place-items: center; aspect-ratio: 1;
  overflow: hidden; border-radius: var(--radius-sm);
  background: var(--bg-muted); color: var(--text-3);
  font-size: var(--fs-24); font-weight: 700; text-decoration: none;
}
.cart__media img { width: 100%; height: 100%; object-fit: cover; }

.cart__body { display: grid; gap: .35rem; min-width: 0; }
.cart__name { font-weight: 600; font-size: var(--fs-15); color: var(--text); }
.cart__name:hover { color: var(--brand); }
.cart__metaRow { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cart__meta { font-size: var(--fs-12); color: var(--text-3); }
.cart__meta--warn { color: var(--r-600); font-weight: 600; }

.cart__qtyForm { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .2rem; }
.cart__qty {
  width: 4.25rem; padding: .4rem .5rem; font: inherit; font-size: var(--fs-14);
  color: var(--text); background: var(--bg);
  border: 1px solid var(--border-2); border-radius: var(--radius-sm);
}
.cart__qty:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--ring); }
.cart__stock { font-size: var(--fs-12); color: var(--text-3); }
.cart__qtyApply { padding: .4rem .7rem; font-size: var(--fs-13); }

.cart__prices {
  grid-column: 1 / -1;
  display: flex; align-items: center; justify-content: flex-end; gap: .75rem;
  padding-top: .6rem; border-top: 1px solid var(--border);
}
@media (min-width: 640px) {
  .cart__prices { grid-column: auto; flex-direction: column; align-items: flex-end;
                  gap: .35rem; padding-top: 0; border-top: 0; min-width: 9rem; }
}
.cart__unit { font-size: var(--fs-12); color: var(--text-3); }
.cart__lineTotal { font-size: var(--fs-16); font-weight: 700; }
.cart__remove {
  display: grid; place-items: center; width: 1.9rem; height: 1.9rem;
  border: 1px solid var(--border); border-radius: var(--radius-pill);
  background: transparent; color: var(--text-3); cursor: pointer;
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast);
}
.cart__remove:hover { color: var(--r-600); border-color: var(--r-300); background: var(--r-50); }

/* 3) SATIŞTAN KALKMIS KALEMLER ------------------------------------------------ */
.cart__unavailable {
  display: grid; gap: .5rem; margin-bottom: .9rem; padding: .75rem .9rem;
  background: var(--r-50); border: 1px solid var(--r-200); border-radius: var(--radius-md);
  list-style: none;
}
.cart__unavailItem { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.cart__unavailBody { display: grid; gap: .15rem; }
.cart__unavailName { font-size: var(--fs-14); font-weight: 600; text-decoration: line-through; color: var(--text-2); }

.cart__continue {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: 1rem;
  font-size: var(--fs-14); font-weight: 500; color: var(--brand);
}
.cart__continue:hover { color: var(--brand-2); }

/* 4) ÖZET PANELİ -------------------------------------------------------------- */
.cart__side { min-width: 0; }
@media (min-width: 1024px) { .cart__side { position: sticky; top: 6.5rem; } }

.cart__summary {
  display: grid; gap: .9rem;
  padding: 1.35rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-2);
}
.cart__sideTitle { font-size: var(--fs-18); font-weight: 700; }

/* Kupon */
.cart__couponForm { display: grid; gap: .35rem; }
.cart__couponRow { display: flex; gap: .5rem; }
.cart__couponRow .form-control { flex: 1; text-transform: uppercase; }
.cart__couponMsg { font-size: var(--fs-12); margin-top: .15rem; }
.cart__couponMsg--ok { color: #1c6b33; }
.cart__couponMsg--error { color: var(--r-600); }

.cart__couponApplied {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .65rem .75rem;
  background: var(--brand-soft); border: 1px dashed var(--b-300); border-radius: var(--radius-sm);
}
.cart__couponInfo { display: grid; gap: .1rem; min-width: 0; }
.cart__couponCode { font-weight: 700; font-size: var(--fs-14); letter-spacing: var(--ls-wide); color: var(--brand-text); }
.cart__couponLabel { font-size: var(--fs-12); color: var(--brand-text); opacity: .85; }
.cart__couponRemove {
  display: grid; place-items: center; width: 1.7rem; height: 1.7rem; flex: none;
  border: 1px solid var(--b-300); border-radius: var(--radius-pill);
  background: transparent; color: var(--brand-text); cursor: pointer;
}
.cart__couponRemove:hover { background: var(--surface); }

/* Kargo notu */
.cart__shipNote {
  display: flex; align-items: center; gap: .5rem;
  padding: .6rem .7rem;
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-sm);
  font-size: var(--fs-13); color: var(--text-2);
}
.cart__shipNote svg { flex: none; color: var(--brand); }

/* Toplamlar */
.cart__totals { display: grid; gap: .45rem; }
.cart__totalRow { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; font-size: var(--fs-14); }
.cart__totalRow dt { color: var(--text-2); }
.cart__totalRow dd { font-weight: 500; }
.cart__totalNote { font-size: var(--fs-12); color: var(--text-3); }
.cart__discount { color: #1c6b33; font-weight: 600; }
.cart__totalRow--grand {
  margin-top: .35rem; padding-top: .6rem; border-top: 1px solid var(--border);
  font-size: var(--fs-18);
}
.cart__totalRow--grand dt { color: var(--text); font-weight: 700; }
.cart__totalRow--grand dd { font-weight: 700; }

.cart__checkout { margin-top: .35rem; }
.cart__checkout[disabled] { opacity: .55; cursor: not-allowed; }

.cart__trust { display: grid; gap: .4rem; list-style: none; padding: .75rem 0 0; border-top: 1px solid var(--border); }
.cart__trust li { display: flex; align-items: center; gap: .45rem; font-size: var(--fs-12); color: var(--text-3); }
.cart__trust svg { flex: none; color: var(--brand); }

/* ==========================================================================
   HIZLI SEPETE EKLEME LIGHTBOX'I (Faz 6 Ek)
   Ürün listelerindeki "Sepete Ekle": varyantı olan üründe varyant + adet seçimi
   bu katmanda yapılır (varyantsız ürün doğrudan eklenir, katman açılmaz).
   Seçenek düğmeleri product.css'teki .variant / .vopt sınıflarını kullanır —
   ürün detay sayfasıyla aynı görünüm, tek stil kaynağı (clinerules md.2).
   Katman _QuickAdd.cshtml'de Layout'a bir kez basılır (kart başına değil).
   ========================================================================== */

.qadd { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 1rem; }

/* [hidden] ile gizleme: theme.css'teki "img{display:block}" kuralı ve flex
   düzeni [hidden]'ı ezebildiği için açıkça uygulanır (drawer ile aynı çözüm). */
.qadd[hidden], .qadd [hidden] { display: none !important; }

.qadd__scrim {
  position: absolute; inset: 0; background: var(--scrim);
  opacity: 0; transition: opacity var(--t-base) var(--ease);
}
.qadd.is-open .qadd__scrim { opacity: 1; }

.qadd__dialog {
  position: relative; width: min(100%, 32rem); max-height: 90dvh; overflow-y: auto;
  display: flex; flex-direction: column; gap: 1rem;
  padding: 1.4rem;
  background: var(--surface); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-3);
  transform: translateY(.75rem); opacity: 0;
  transition: transform var(--t-slow) var(--ease-out), opacity var(--t-base) var(--ease);
}
.qadd.is-open .qadd__dialog { transform: none; opacity: 1; }
.qadd__dialog:focus { outline: none; }

.qadd__close {
  position: absolute; top: .7rem; right: .7rem;
  display: grid; place-items: center; width: 2.25rem; height: 2.25rem;
  border-radius: var(--radius-pill); color: var(--text-2);
  transition: background var(--t-fast) var(--ease), color var(--t-fast);
}
.qadd__close:hover { background: var(--bg-muted); color: var(--text); }

.qadd__head { display: flex; align-items: center; gap: .9rem; padding-right: 2.5rem; }
.qadd__media {
  flex: none; width: 4.5rem; height: 4.5rem; overflow: hidden;
  display: grid; place-items: center;
  background: var(--bg-muted); border-radius: var(--radius-md);
}
.qadd__media img { width: 100%; height: 100%; object-fit: cover; }
.qadd__mono { font-size: var(--fs-20); font-weight: 700; color: var(--text-3); }
.qadd__headBody { min-width: 0; }
.qadd__title { font-size: var(--fs-18); font-weight: 600; line-height: var(--lh-snug); }
.qadd__price { margin-top: .3rem; display: flex; align-items: baseline; gap: .5rem; font-size: var(--fs-16); }
.qadd__price b { font-weight: 600; }
.qadd__price del { color: var(--text-3); font-size: var(--fs-13); }

.qadd__status { font-size: var(--fs-12); color: var(--text-3); min-height: 1rem; }
.qadd__status:empty { display: none; }

.qadd__variants { display: grid; gap: .75rem; }

.qadd__qtyRow { display: flex; align-items: center; gap: .75rem; }
.qadd__qtyLabel { font-size: var(--fs-14); color: var(--text-2); }
.qadd__qty {
  width: 6rem; height: 2.6rem; padding: 0 .75rem;
  background: var(--bg-soft); color: var(--text);
  border: 1px solid var(--border-2); border-radius: var(--radius-sm);
  font-size: var(--fs-14); font-variant-numeric: tabular-nums;
}

.qadd__error { font-size: var(--fs-13); color: var(--r-600); }
.qadd__submit { width: 100%; }
.qadd__submit[disabled] { opacity: .55; cursor: not-allowed; }
.qadd__detail { align-self: center; font-size: var(--fs-13); color: var(--brand-text); text-decoration: underline; }

@media (min-width: 640px) {
  .qadd { padding: 2rem; }
  .qadd__dialog { padding: 1.6rem; }
}