/* ==========================================================================
   Pukka Candles — yönetim paneli tasarımı
   Yenilendi: 30 Temmuz 2026 (Trendyol paleti)

   NE DEĞİŞTİ: yalnızca görünüm. Bu dosyada tek bir sınıf adı yeniden
   adlandırılmadı, hiçbir şablon düzenlenmedi. Panelin bütün düğmeleri,
   formları, filtreleri ve rotaları dünkü hâliyle çalışıyor — yalnızca
   üzerlerindeki kıyafet değişti.

   YÖN: satıcı paneli dili. Yoğun ama nefes alan yerleşim, kartlara
   bölünmüş içerik, ince ayraçlı sık tablolar, hap biçimli durum
   rozetleri.

   İKİ TEMA: varsayılan Trendyol paleti (turuncu-beyaz), düğmeyle koyu
   temaya geçiliyor. Koyu tema kaldırılmadı — uzun oturumlarda gözü
   yormadığı için isteyen ona geçebiliyor.

   YAPI
     1. Değişkenler         2. Taban ve yerleşim
     3. Kenar çubuğu        4. Sayfa başlığı (üst şerit)
     5. Kartlar             6. Özet kutuları
     7. Tablolar            8. Rozetler
     9. Düğmeler           10. Bildirimler
    11. Tanım listeleri    12. Giriş ekranı
    13. Duyarlı davranış

   Form denetimleri, filtreler, görsel ızgarası ve sayfalama
   admin-panel.css içinde.
   ========================================================================== */

/* 1. Değişkenler ---------------------------------------------------------

   İKİ TEMA VAR ve ikisi de yalnızca bu bölümde tanımlı. Aşağıdaki
   kuralların hiçbiri sabit renk kullanmaz, hepsi buradaki değişkenleri
   okur.

     varsayılan             → Trendyol (turuncu-beyaz)
     [data-tema="koyu"]     → koyu

   Tema seçimi `<html>` değil `<body>` üzerinde: panelin dışındaki
   sayfalar bundan etkilenmesin diye. Seçim tarayıcıda saklanıyor
   (admin-tema.js), sunucuya bir şey yazılmıyor.

   VARSAYILAN DEĞİŞTİ (30 Temmuz 2026): önceden koyu tema varsayılandı,
   artık Trendyol paleti varsayılan. Koyu tema kaldırılmadı — düğmeyle
   erişilebiliyor. Daha önce "açık tema" seçmiş bir tarayıcıda kayıtlı
   değer artık karşılıksız kalıyor ve varsayılana düşüyor; sonuç yine
   açık tema olduğu için kimse fark etmiyor.
   ------------------------------------------------------------------------ */

body.admin {
  /* Sistem yazı tipleri: indirilmeyi beklemez, rakamlarda okunaklıdır. */
  --font-display: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-body: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  /* Ölçüler.

     Yarıçaplar küçüldü: Trendyol arayüzü yumuşak değil, dik köşeye yakın
     duruyor. Düğme ve girdilerde 4px, kartlarda 8px. */
  --y-yaricap: 4px;
  --y-yaricap-lg: 8px;
  --y-yan: 252px;
  --y-gecis: 140ms ease;

  /* ---- TRENDYOL TEMASI (varsayılan) ----------------------------------

     Turuncu #FF6A00, Trendyol logosundaki tondan alındı. Metin rengi
     saf siyah değil #333 — Trendyol da öyle kullanıyor ve uzun
     listelerde daha yumuşak duruyor.
     ------------------------------------------------------------------- */

  --y-bg: #f5f5f5;
  --y-yuzey: #ffffff;
  --y-yuzey-alt: #fafafa;

  --y-kenar: #e6e6e6;
  --y-kenar-koyu: #d5d5d5;

  --y-metin: #333333;
  --y-metin-soluk: #666666;
  --y-metin-silik: #8a8a8a;

  /*
     Dolgu turuncusu markanın tonu.

     DÜRÜST NOT: #FF6A00 üzerine beyaz metin 2,87:1 kontrast veriyor,
     erişilebilirlik sınırı 4,5:1. Trendyol da bu şekilde kullanıyor ve
     marka rengine sadık kalınması istendi. Kontrastı yükseltmek isteyen
     tek satır değiştirir:  --y-vurgu: #c24f00;
  */
  --y-vurgu: #ff6a00;
  --y-vurgu-koyu: #e85d00;
  --y-vurgu-acik: #fff3e9;
  --y-vurgu-metin: #ffffff;

  /* Bağlantı rengi ayrı ve koyu: küçük puntoda beyaz zemine karşı
     4,5:1'i geçmesi gerekiyor, dolgu turuncusu geçemiyor. */
  --y-baglanti: #c24f00;

  --y-ok: #00a365;
  --y-ok-bg: #e8f7f0;
  --y-ok-kenar: #c2e8d8;
  --y-uyari: #9a6100;
  --y-uyari-bg: #fff6e5;
  --y-uyari-kenar: #f5dfb0;
  --y-tehlike: #d32f2f;
  --y-tehlike-bg: #fdecea;
  --y-tehlike-kenar: #f5c6c2;
  --y-ters-metin: #ffffff;
  --y-notr-bg: #f0f0f0;

  --y-golge: 0 1px 2px rgba(0, 0, 0, 0.05);
  --y-golge-lg: 0 4px 16px rgba(0, 0, 0, 0.12);

  --y-ok-ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23666666' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---- KOYU TEMA ---------------------------------------------------------

   Zemin saf siyah değil, hafif mavi kaçan bir kömür. Saf siyah üzerine
   beyaz metin harflerin kenarında titreşim yaratır ve uzun okumada
   yorar.

   Vurgu turuncusu koyu zeminde açıldı: #FF6A00 koyu üzerinde de okunuyor
   ama biraz parlak kalıyordu.
   ------------------------------------------------------------------------ */

body.admin[data-tema="koyu"] {
  --y-bg: #141820;
  --y-yuzey: #1c222c;
  --y-yuzey-alt: #222933;

  --y-kenar: #2b3340;
  --y-kenar-koyu: #3a4454;

  --y-metin: #e6eaf0;
  --y-metin-soluk: #a8b3c2;
  --y-metin-silik: #7d8899;

  --y-vurgu: #ff7a1a;
  --y-vurgu-koyu: #ff8c3a;
  --y-vurgu-acik: #33261a;
  --y-vurgu-metin: #14100c;
  --y-baglanti: #ff9a4d;

  --y-ok: #7fc9a3;
  --y-ok-bg: #1e332a;
  --y-ok-kenar: #2e4d3d;
  --y-uyari: #e8b667;
  --y-uyari-bg: #33291a;
  --y-uyari-kenar: #4d3d24;
  --y-tehlike: #ec8b83;
  --y-tehlike-bg: #35211f;
  --y-tehlike-kenar: #52322e;
  --y-ters-metin: #141820;
  --y-notr-bg: #262e3a;

  --y-golge: none;
  --y-golge-lg: 0 8px 24px rgba(0, 0, 0, 0.45);

  --y-ok-ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23a8b3c2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Tema değişimi ani olmasın; yalnızca renkler yumuşasın, yerleşim
   animasyona girmesin. */
body.admin,
body.admin .panel,
body.admin .stat,
body.admin .admin-side,
body.admin .admin-head,
body.admin .table thead th,
body.admin .filters {
  transition: background-color 180ms ease, border-color 180ms ease,
    color 180ms ease;
}

/* Hareket azaltma tercihi olan kullanıcıda geçiş yok. */
@media (prefers-reduced-motion: reduce) {
  body.admin * {
    transition: none !important;
  }
}

/* 2. Taban ve yerleşim ----------------------------------------------------

   YOĞUNLUK. Trendyol paneli küçük punto ve dar boşluklarla çalışıyor:
   ekranda tek seferde daha çok satır görünüyor. Taban ölçü 13px'e indi.
   Bu, "eski görünüyor" hissinin en büyük tek sebebiydi — önceki 15px
   ölçü, yönetim aracından çok bir web sayfası gibi duruyordu.
   ------------------------------------------------------------------------ */

body.admin {
  margin: 0;
  background: var(--y-bg);
  color: var(--y-metin);
  font-family: var(--font-body);
  font-size: 0.8125rem;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

body.admin a {
  color: var(--y-baglanti);
  text-decoration: none;
}

body.admin a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.admin :focus-visible {
  outline: 2px solid var(--y-vurgu);
  outline-offset: 1px;
  border-radius: 2px;
}

/*
   Başlıklar: büyük harf ve harf aralığı YOK.

   Önceki tasarımda etiketler büyük harfe çevrilip harf aralığı
   açılıyordu. O dil 2015'in yönetim panellerine ait; bugünkü satıcı
   panelleri normal cümle düzeniyle yazıyor ve ayrımı punto/renk ile
   yapıyor.
*/
body.admin h1,
body.admin h2,
body.admin h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: 0;
}

body.admin code {
  padding: 0.1em 0.35em;
  border: 1px solid var(--y-kenar);
  border-radius: 3px;
  background: var(--y-yuzey-alt);
  color: var(--y-metin-soluk);
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 0.85em;
}

.admin-shell {
  display: grid;
  grid-template-columns: 1fr;
  min-height: 100vh;
  align-items: start;
}

.proto-banner {
  padding: 0.5rem 1rem;
  background: var(--y-uyari-bg);
  color: var(--y-uyari);
  font-size: 0.8125rem;
  text-align: center;
}

/* 3. Kenar çubuğu --------------------------------------------------------- */

.admin-side {
  display: flex;
  flex-direction: column;
  padding: 0;
  background: var(--y-yuzey);
  border-bottom: 1px solid var(--y-kenar);
  color: var(--y-metin);
}

/*
   Marka bloğu, üst şeritle aynı yükseklikte (56px) ve altında aynı
   çizgi var. Böylece kenar çubuğunun üstü ile içerik başlığı tek bir
   yatay bant gibi okunuyor — Trendyol panelindeki his bu.
*/
.admin-brand {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 56px;
  padding: 0 1rem;
  border-bottom: 1px solid var(--y-kenar);
}

.admin-brand__logo {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--y-vurgu);
}

.admin-brand__tag {
  color: var(--y-metin-silik);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.admin-nav {
  display: grid;
  gap: 0;
  padding: 0.5rem 0;
}

/*
   Menü maddesi: 40px, ikonlu, normal yazı.

   İkonlar `mask-image` ile basılıyor — böylece rengi metinden
   devralıyorlar ve seçili maddede turuncuya dönüyorlar. Şablona hiçbir
   şey eklenmedi; ikon eşlemesi adresin sonuna bakıyor.
*/
.admin-nav a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 40px;
  padding: 0 1rem;
  border: 0;
  border-radius: 0;
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
  font-weight: 400;
  text-decoration: none;
  transition: background var(--y-gecis), color var(--y-gecis);
}

.admin-nav a::before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: var(--ikon, none) no-repeat center / 16px 16px;
  mask: var(--ikon, none) no-repeat center / 16px 16px;
  opacity: 0.85;
}

.admin-nav a:hover {
  background: var(--y-yuzey-alt);
  color: var(--y-metin);
  text-decoration: none;
}

/* Seçili madde: turuncu metin, açık turuncu zemin, sol şerit.
   Şerit `inset` gölge ile veriliyor ki ::before ikonlara kalsın. */
.admin-nav a[aria-current="page"] {
  background: var(--y-vurgu-acik);
  color: var(--y-vurgu);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--y-vurgu);
}

.admin-nav a[aria-current="page"]::before {
  opacity: 1;
}

.admin-nav .badge {
  margin-left: auto;
}

/* Menü ikonları — adresin sonuna göre eşleniyor. */
.admin-nav a[href$="/panel"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9'/%3E%3Crect x='14' y='3' width='7' height='5'/%3E%3Crect x='14' y='12' width='7' height='9'/%3E%3Crect x='3' y='16' width='7' height='5'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/siparisler"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/urunler"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 16-9 5-9-5V8l9-5 9 5Z'/%3E%3Cpath d='m3 8 9 5 9-5'/%3E%3Cpath d='M12 13v8'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/kategoriler"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M3 18h18'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/stok"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h18v5H3z'/%3E%3Cpath d='M5 12v8h14v-8'/%3E%3Cpath d='M10 16h4'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/kampanyalar"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a2 2 0 0 1 0-4V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v2a2 2 0 0 1 0 4 2 2 0 0 1 0 4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2a2 2 0 0 1 0-4Z'/%3E%3Cpath d='M13 5v14'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/komisyon"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m19 5-14 14'/%3E%3Ccircle cx='7.5' cy='7.5' r='2.5'/%3E%3Ccircle cx='16.5' cy='16.5' r='2.5'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/yorumlar"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 14.5 8.5 21 9.3l-4.5 4.2 1.1 6.2L12 16.8 6.4 19.7l1.1-6.2L3 9.3l6.5-.8Z'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/mesajlar"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/yoneticiler"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
}

.admin-nav a[href$="/ayarlar"] {
  --ikon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1A1.6 1.6 0 0 0 9 19.4a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0 .3-1.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1A1.6 1.6 0 0 0 4.6 9a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1Z'/%3E%3C/svg%3E");
}

.admin-side__foot {
  margin-top: 0.75rem;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid var(--y-kenar);
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
}

.admin-side__foot a {
  display: inline-block;
  padding: 0.3rem 0;
  color: var(--y-metin-soluk);
}

.admin-side__foot a:hover {
  color: var(--y-vurgu);
}

.admin-side__logout {
  margin-top: 0.5rem;
}

.admin-side__logout .btn {
  width: 100%;
}

/* 4. Üst şerit ------------------------------------------------------------ */

.admin-main {
  min-width: 0;
  padding: 0;
}

/*
   Beyaz üst şerit. Kenar çubuğunun marka bloğuyla aynı yükseklikte ve
   aynı alt çizgiye sahip; ikisi birlikte ekranın üstünde tek bir bant
   oluşturuyor. Gölge yok — Trendyol paneli düz çizgilerle ayırıyor.
*/
.admin-head {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin: 0;
  min-height: 56px;
  padding: 0.5rem 1rem;
  background: var(--y-yuzey);
  border-bottom: 1px solid var(--y-kenar);
}

.admin-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
}

.admin-subtitle {
  margin: 0.1rem 0 0;
  color: var(--y-metin-silik);
  font-size: 0.75rem;
}

.admin-head > *:last-child:not(:only-child) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.admin-head ~ * {
  margin-inline: 1rem;
}

.admin-head + * {
  margin-top: 1rem;
}

.admin-main > *:last-child {
  margin-bottom: 1.5rem;
}

/* 5. Kartlar -------------------------------------------------------------- */

/* Düz kart: kenarlık var, gölge yok. */
.panel {
  padding: 0;
  background: var(--y-yuzey);
  border: 1px solid var(--y-kenar);
  border-radius: var(--y-yaricap-lg);
  box-shadow: none;
}

.panel + .panel,
.panel + form,
form + .panel {
  margin-top: 0.75rem;
}

/*
   Kart başlığı bir şerit: kartın üstünde, kendi alt çizgisiyle. İçerik
   kartın gövde boşluğunu alıyor — bu yüzden .panel'in kendi padding'i
   sıfır ve boşluk başlıkla gövdeye ayrı ayrı veriliyor.
*/
.panel__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--y-kenar);
  font-size: 0.875rem;
  font-weight: 600;
}

.panel__title > .btn {
  margin-left: auto;
}

/* Başlıktan sonraki her şeye gövde boşluğu. */
.panel > *:not(.panel__title):not(.table-wrap) {
  margin-inline: 1rem;
}

.panel > *:not(.panel__title):first-child {
  margin-top: 1rem;
}

.panel > *:last-child:not(.table-wrap) {
  margin-bottom: 1rem;
}

.panel__note {
  margin: 0.85rem 1rem;
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
  line-height: 1.55;
}

.panel__note:last-child {
  margin-bottom: 0.85rem;
}

.panel--note {
  border-left: 3px solid var(--y-vurgu);
}

.panel ul,
.panel ol {
  margin: 0 1rem 0.85rem;
  padding-left: 1.15rem;
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
}

.panel li + li {
  margin-top: 0.2rem;
}

/* 6. Özet kutuları -------------------------------------------------------- */

.stat-grid {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  margin-bottom: 0.75rem;
}

.stat {
  padding: 0.8rem 0.9rem;
  background: var(--y-yuzey);
  border: 1px solid var(--y-kenar);
  border-radius: var(--y-yaricap-lg);
  box-shadow: none;
}

/* Etiket normal yazı — büyük harf ve harf aralığı kaldırıldı. */
.stat__label {
  margin: 0;
  color: var(--y-metin-silik);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.stat__value {
  margin: 0.2rem 0 0;
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

.stat__hint {
  margin: 0.1rem 0 0;
  color: var(--y-metin-silik);
  font-size: 0.75rem;
}

.stat--alert {
  border-color: var(--y-uyari-kenar);
  background: var(--y-uyari-bg);
}

.stat--alert .stat__value {
  color: var(--y-uyari);
}

/* 7. Tablolar ------------------------------------------------------------- */

.table-wrap {
  overflow-x: auto;
  margin: 0;
}

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

/* Başlık satırı: gri zemin, normal yazı, küçük punto. */
.table thead th {
  padding: 0.55rem 1rem;
  background: var(--y-yuzey-alt);
  border-bottom: 1px solid var(--y-kenar);
  color: var(--y-metin-silik);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  text-align: left;
  white-space: nowrap;
}

.table tbody td,
.table tbody th {
  padding: 0.6rem 1rem;
  border-bottom: 1px solid var(--y-kenar);
  font-weight: 400;
  text-align: left;
  vertical-align: middle;
}

.table tbody tr:last-child td,
.table tbody tr:last-child th {
  border-bottom: 0;
}

.table tbody tr:hover {
  background: var(--y-yuzey-alt);
}

.table .muted {
  display: block;
  margin-top: 0.1rem;
  color: var(--y-metin-silik);
  font-size: 0.75rem;
}

.table__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  justify-content: flex-end;
}

/*
 | HÜCREDE display:flex KULLANILAMAZ.
 |
 | Bir <td> üzerinde display:flex, hücreyi tablo düzeninden tamamen
 | çıkarıyor: artık bir sütuna ait olmuyor, satır çizgileri altından
 | geçmiyor ve satırın sağına savruluyor. Siparişler listesindeki "Aç"
 | düğmelerinin tablodan kopuk görünmesinin sebebi buydu.
 |
 | Yukarıdaki kural yalnızca <div class="table__actions"> için gerekli
 | (yorumlar ekranında bir tane var). Hücrelerde geri alınıyor ve aynı
 | görünüm satır içi kutularla elde ediliyor: sağa yaslı, aralarında
 | boşluk, gerektiğinde alt satıra kayan.
 */
td.table__actions {
  display: table-cell;
  text-align: right;
}

td.table__actions > *,
td.table__actions > form {
  display: inline-block;
  margin: 0;
  vertical-align: middle;
}

td.table__actions > * + * {
  margin-left: 0.3rem;
}

.table__actions form {
  margin: 0;
}

.num,
.table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* 8. Rozetler ------------------------------------------------------------- */

/* Hap değil, yumuşak köşeli küçük etiket — Trendyol'un durum rozeti. */
body.admin .badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.45rem;
  border: 0;
  border-radius: 3px;
  background: var(--y-notr-bg);
  color: var(--y-metin-soluk);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
}

body.admin .badge--ok {
  background: var(--y-ok-bg);
  color: var(--y-ok);
}

body.admin .badge--warn {
  background: var(--y-uyari-bg);
  color: var(--y-uyari);
}

body.admin .badge--danger {
  background: var(--y-tehlike-bg);
  color: var(--y-tehlike);
}

body.admin .badge--muted {
  background: var(--y-notr-bg);
  color: var(--y-metin-silik);
}

.swatch {
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-right: 0.3rem;
  border: 1px solid var(--y-kenar-koyu);
  border-radius: 50%;
  background: var(--swatch, #ccc);
  vertical-align: -2px;
}

/* 9. Düğmeler ------------------------------------------------------------- */

body.admin .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 34px;
  padding: 0 0.75rem;
  border: 1px solid var(--y-kenar-koyu);
  border-radius: var(--y-yaricap);
  background: var(--y-yuzey);
  color: var(--y-metin);
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--y-gecis), border-color var(--y-gecis),
    color var(--y-gecis);
}

body.admin .btn:hover {
  background: var(--y-yuzey-alt);
  border-color: var(--y-metin-silik);
  text-decoration: none;
}

body.admin .btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

body.admin .btn--primary {
  background: var(--y-vurgu);
  border-color: var(--y-vurgu);
  color: var(--y-vurgu-metin);
}

body.admin .btn--primary:hover {
  background: var(--y-vurgu-koyu);
  border-color: var(--y-vurgu-koyu);
  color: var(--y-vurgu-metin);
}

body.admin .btn--sm {
  min-height: 28px;
  padding: 0 0.55rem;
  font-size: 0.75rem;
}

body.admin .btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--y-baglanti);
}

body.admin .btn--ghost:hover {
  background: var(--y-vurgu-acik);
  border-color: transparent;
}

body.admin .btn--danger {
  border-color: var(--y-tehlike-kenar);
  background: var(--y-yuzey);
  color: var(--y-tehlike);
}

body.admin .btn--danger:hover {
  background: var(--y-tehlike);
  border-color: var(--y-tehlike);
  color: var(--y-ters-metin);
}

/* 10. Bildirim şeritleri --------------------------------------------------- */

.flash {
  margin: 1rem 1rem 0;
  padding: 0.65rem 0.9rem;
  border: 1px solid transparent;
  border-radius: var(--y-yaricap);
  font-size: 0.8125rem;
}

.flash--ok {
  background: var(--y-ok-bg);
  border-color: var(--y-ok-kenar);
  color: var(--y-ok);
}

.flash--error {
  background: var(--y-tehlike-bg);
  border-color: var(--y-tehlike-kenar);
  color: var(--y-tehlike);
}

.flash ul {
  margin: 0.3rem 0 0;
  padding-left: 1.1rem;
  color: inherit;
  font-size: 0.8125rem;
}

body.admin .callout {
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--y-kenar);
  border-left: 3px solid var(--y-vurgu);
  border-radius: var(--y-yaricap);
  background: var(--y-yuzey-alt);
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
}

.toast {
  position: fixed;
  left: 50%;
  bottom: 1.5rem;
  z-index: 90;
  transform: translateX(-50%);
  padding: 0.6rem 1rem;
  border-radius: var(--y-yaricap);
  background: var(--y-metin);
  color: var(--y-ters-metin);
  font-size: 0.8125rem;
  box-shadow: var(--y-golge-lg);
}

/* 11. Tanım listeleri ve satır listeleri ---------------------------------- */

.detail-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-items: start;
}

.detail {
  display: grid;
  gap: 0.6rem;
  margin: 0;
}

.detail dt {
  color: var(--y-metin-silik);
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.detail dd {
  margin: 0.1rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.55;
}

.order-lines {
  display: grid;
  margin: 0 0 0.6rem;
  padding: 0;
  list-style: none;
  font-size: 0.8125rem;
}

.order-lines li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--y-kenar);
}

.order-lines li:last-child {
  border-bottom: 0;
}

.order-lines li > span:last-child {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.summary__line {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.35rem 0;
  font-size: 0.8125rem;
}

.summary__line--rule,
.summary__line--total {
  margin-top: 0.25rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--y-kenar);
}

.summary__line--total {
  font-weight: 700;
}

/* 12. Giriş ekranı -------------------------------------------------------- */

.admin--login {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 2rem 1rem;
  background: var(--y-bg);
}

.login-box {
  width: min(24rem, 100%);
  padding: 1.5rem;
  border: 1px solid var(--y-kenar);
  border-radius: var(--y-yaricap-lg);
  background: var(--y-yuzey);
  box-shadow: var(--y-golge);
}

.login-box .admin-brand {
  min-height: 0;
  padding: 0 0 0.75rem;
  border-bottom: 0;
}

.login-box .admin-title {
  margin-bottom: 1rem;
  font-size: 1.15rem;
}

.login-box .form {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 0.75rem;
}

.login-box .btn {
  width: 100%;
  min-height: 40px;
}

.login-box__foot {
  margin: 1rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid var(--y-kenar);
  color: var(--y-metin-soluk);
  font-size: 0.8125rem;
}

/* 13. Duyarlı davranış ---------------------------------------------------- */

@media (min-width: 960px) {
  .admin-shell {
    grid-template-columns: var(--y-yan) 1fr;
  }

  .admin-side {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 0;
    border-bottom: 0;
    border-right: 1px solid var(--y-kenar);
    overflow-y: auto;
  }

  .admin-side__foot {
    margin-top: auto;
  }

  .admin-head {
    padding: 0.5rem 1.25rem;
  }

  .admin-head ~ * {
    margin-inline: 1.25rem;
  }
}

/* Dar ekranda kenar çubuğu üstte yatay bir şeride dönüşür. */
@media (max-width: 959px) {
  .admin-side {
    padding: 0 0 0.5rem;
  }

  .admin-brand {
    min-height: 48px;
  }

  .admin-nav {
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 0.35rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding: 0.5rem 1rem;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  .admin-nav a {
    scroll-snap-align: start;
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--y-kenar);
    border-radius: var(--y-yaricap);
    white-space: nowrap;
  }

  .admin-nav a[aria-current="page"] {
    border-color: var(--y-vurgu);
    box-shadow: none;
  }

  .admin-side__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0;
  }

  .admin-side__tema,
  .admin-side__logout {
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
  }

  .admin-side__tema .btn,
  .admin-side__logout .btn {
    width: 100%;
  }

  .admin-head {
    position: static;
  }
}

/* Yazdırma: kenar çubuğu ve düğmeler kâğıda basılmaz. */
@media print {
  .admin-side,
  .admin-head .btn,
  .table__actions {
    display: none;
  }

  .panel {
    border: 0;
    box-shadow: none;
    break-inside: avoid;
  }
}
