/* ═══════════════════════════════════════════════════════════════════
   AKYA TMGDK — tasarım sistemi
   ───────────────────────────────────────────────────────────────────
   Karakter: yoğun, keskin, profesyonel (Linear/Notion yönü).
   Gölge yerine ince ayraç; küçük yarıçap; sıkı satır; tabular rakam.
   Gölge yalnızca YÜZEN katmanda (menü, açılır panel) kullanılır.

   İki yoğunluk, tek sistem:
     <body data-yogunluk="siki">   iç ekranlar (varsayılan)
     <body data-yogunluk="rahat">  müşteriye giden sayfalar, giriş

   Eski değişken adları (--akya-mavi, --yuzey, --golge, --yaricap …)
   KORUNDU: 50 şablon bunları kullanıyor, değerleri güncellendi;
   sayfalar dokunulmadan yeni görünüme geçer.
   ═══════════════════════════════════════════════════════════════════ */

/* ═══ 1. TOKEN — RENK ═══ */
:root {
  color-scheme: light;

  /* Vurgu — sakin orman yeşili (marka) */
  --akya-mavi: #217A61;         /* birincil vurgu (eski ad korundu) */
  --akya-mavi-koyu: #1A6350;    /* hover */
  --akya-mor: #B07C2E;          /* sıcak ikincil — çok az kullanılır */
  --akya-lacivert: #16211B;     /* koyu aksan */

  --bg: #F6F7F4;                /* zemin */
  --yuzey: #FFFFFF;             /* kart / panel */
  --yuzey-2: #FAFBF9;           /* ikincil yüzey — tablo başlığı, girinti */
  --yuzey-kenar: rgba(24, 38, 31, 0.13);   /* ana ayraç — çizgi baskın */
  --yuzey-kenar-soluk: rgba(24, 38, 31, 0.07);
  --metin: #16211B;
  --metin-ikincil: #64716B;
  --metin-soluk: #8B968F;

  /* Gölge — düzlemde neredeyse yok; yalnızca katman gölgesi belirgin */
  --golge: 0 1px 1px rgba(24, 38, 31, 0.03);
  --golge-hover: 0 1px 2px rgba(24, 38, 31, 0.06);
  --golge-katman: 0 4px 12px rgba(24, 38, 31, 0.10), 0 12px 32px rgba(24, 38, 31, 0.10);

  /* Durum */
  --iyi: #217A61;
  --uyari: #B07C2E;
  --kotu: #B4483C;
  --notr: #64716B;
  --iyi-zemin: rgba(33, 122, 97, 0.09);
  --uyari-zemin: rgba(176, 124, 46, 0.10);
  --kotu-zemin: rgba(180, 72, 60, 0.09);
  --notr-zemin: rgba(100, 113, 107, 0.09);

  --header-bg: rgba(246, 247, 244, 0.82);
  --hover: rgba(24, 38, 31, 0.05);
  --sec: rgba(33, 122, 97, 0.10);
}

/* ═══ 2. TOKEN — KOYU TEMA ═══
   data-theme="dark" kök elemana <head>'deki script tarafından, ekran
   çizilmeden önce konur (yanlış tema parlaması olmaz). */
:root[data-theme="dark"] {
  color-scheme: dark;
  --akya-mavi: #4FBE99;
  --akya-mavi-koyu: #6BD1AF;
  --akya-mor: #D2A458;
  --akya-lacivert: #D7DED9;

  --bg: #101412;
  --yuzey: #171C19;
  --yuzey-2: #1C221E;
  --yuzey-kenar: rgba(255, 255, 255, 0.11);
  --yuzey-kenar-soluk: rgba(255, 255, 255, 0.06);
  --metin: #E6EBE7;
  --metin-ikincil: #929C96;
  --metin-soluk: #6E7873;

  --golge: none;
  --golge-hover: none;
  --golge-katman: 0 4px 14px rgba(0, 0, 0, 0.45), 0 14px 40px rgba(0, 0, 0, 0.5);

  --iyi: #4FBE99;
  --uyari: #D2A458;
  --kotu: #D9786A;
  --notr: #929C96;
  --iyi-zemin: rgba(79, 190, 153, 0.13);
  --uyari-zemin: rgba(210, 164, 88, 0.14);
  --kotu-zemin: rgba(217, 120, 106, 0.13);
  --notr-zemin: rgba(146, 156, 150, 0.12);

  --header-bg: rgba(16, 20, 18, 0.82);
  --hover: rgba(255, 255, 255, 0.06);
  --sec: rgba(79, 190, 153, 0.13);
}

/* ═══ 3. TOKEN — ÖLÇÜ ═══
   Yoğunluk iki çarpanla ayarlanır: tipografi ve boşluk. Sayfa
   <body data-yogunluk="rahat"> derse ölçek açılır, sistem aynı kalır. */
:root {
  --olcek: 1;          /* tipografi çarpanı */
  --bosluk: 1;         /* boşluk çarpanı */

  --t-xs:  calc(11px   * var(--olcek));   /* uppercase etiket */
  --t-sm:  calc(12.5px * var(--olcek));   /* ikincil, tablo içi */
  --t-md:  calc(14px   * var(--olcek));   /* gövde */
  --t-lg:  calc(15.5px * var(--olcek));   /* öne çıkan gövde */
  --t-xl:  calc(18px   * var(--olcek));   /* bölüm başlığı */
  --t-2xl: calc(22px   * var(--olcek));   /* sayfa başlığı */
  --t-3xl: calc(28px   * var(--olcek));   /* sayı / vurgu */

  --s1: calc(4px  * var(--bosluk));
  --s2: calc(8px  * var(--bosluk));
  --s3: calc(12px * var(--bosluk));
  --s4: calc(16px * var(--bosluk));
  --s5: calc(24px * var(--bosluk));
  --s6: calc(32px * var(--bosluk));
  --s7: calc(48px * var(--bosluk));
  --s8: calc(64px * var(--bosluk));

  --r-sm: 4px;
  --r: 6px;
  --r-lg: 10px;
  --r-tam: 999px;
  --yaricap: var(--r);          /* eski ad */
  --yaricap-buyuk: var(--r-lg); /* eski ad */

  --gecis: 0.12s cubic-bezier(0.2, 0, 0.2, 1);
  --yazi: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter",
          "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --yazi-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

body[data-yogunluk="rahat"] { --olcek: 1.1; --bosluk: 1.45; }

/* Kenar boşluğu sıfırlaması YALNIZCA yeni sisteme geçmiş sayfalarda
   (data-yogunluk taşıyanlar). Henüz geçmemiş şablonlar <style>'ını
   _stil.html'den ÖNCE yazıyor; oradaki `body { margin: 0 auto }`
   burada ezilseydi sayfa ortalanmayı kaybederdi. Göç bitince bu
   koşul kaldırılıp body'ye taşınabilir. */
body[data-yogunluk] { margin: 0; }

/* ═══ 4. TEMEL ═══ */
* { box-sizing: border-box; }

/* scrollbar-gutter: uzun/kısa sayfalar arasında geçerken kaydırma çubuğu
   gelip gidince ortalanan içerik yatayda kaymasın diye yer hep ayrılır. */
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scrollbar-gutter: stable;
}

body {
  background: var(--bg);
  color: var(--metin);
  font-family: var(--yazi);
  font-size: var(--t-md);
  line-height: 1.5;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-variant-numeric: tabular-nums;
}

a { color: var(--akya-mavi); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
  letter-spacing: -0.018em;
  font-weight: 600;
  color: var(--metin);
  margin: 0;
}
h1 { font-size: var(--t-2xl); font-weight: 650; }
h2 { font-size: var(--t-xl); margin: var(--s6) 0 var(--s3); }
h3 { font-size: var(--t-lg); margin: var(--s5) 0 var(--s2); }

::selection { background: var(--sec); }

strong, b { font-weight: 600; }
code, kbd, .mono { font-family: var(--yazi-mono); font-size: 0.92em; }
hr { border: none; border-top: 1px solid var(--yuzey-kenar); margin: var(--s5) 0; }

/* Sayfalar arası yumuşak geçiş */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation-duration: 0.14s; }
::view-transition-new(root) { animation-duration: 0.18s; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ═══ 5. SAYFA İSKELETİ ═══ */
.sayfa {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 var(--s5) var(--s8);
  min-width: 0;
}
/* Dar ekranda tek bir taşan öğe (uzun rozet, geniş tablo) tüm gövdeyi
   yatayda kaydırıyordu; taşma o öğenin kendi kutusunda kalır. */
@media (max-width: 720px) {
  html, body { overflow-x: hidden; }
  .sayfa > * { max-width: 100%; }
  .istatistik-serit { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
}
.sayfa--dar { max-width: 720px; }
.sayfa--genis { max-width: 1440px; }

/* Sayfa başlığı: başlık + açıklama solda, eylemler sağda */
.sayfa-bas {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
  flex-wrap: wrap;
  padding: var(--s6) 0 var(--s4);
  margin-bottom: var(--s5);
  border-bottom: 1px solid var(--yuzey-kenar);
}
.sayfa-bas__metin { min-width: 0; }
.sayfa-bas h1 { margin: 0; }
.sayfa-bas .aciklama {
  margin: var(--s2) 0 0;
  color: var(--metin-ikincil);
  font-size: var(--t-sm);
  max-width: 68ch;
}
.sayfa-bas__eylem { display: flex; gap: var(--s2); flex-shrink: 0; align-items: center; }

/* Sayfa gövdesi — geçiş dönemindeki şablonlar bu ölçüyü body'de kullanır;
   yeni şablonlar .sayfa sarmalayıcısıyla aynı sonucu alır. */
.sayfa-baslik { margin: var(--s6) 0 var(--s1); font-size: var(--t-2xl); font-weight: 650; }
.alt-baslik { font-size: var(--t-sm); color: var(--metin-ikincil); margin: 0 0 var(--s5); }
.geri-link {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--t-sm); color: var(--metin-ikincil); text-decoration: none;
  margin-top: var(--s5);
}
.geri-link:hover { color: var(--metin); text-decoration: none; }
.geri-link + .sayfa-baslik { margin-top: var(--s2); }

/* Üst etiket — h2'nin eski yeşil çubuğunun yerini alır */
.ust-etiket {
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--metin-soluk);
}

/* ═══ 6. YÜZEYLER ═══
   Kart, tablo, panel: beyaz yüzey + 1px ayraç, gölge yok.
   Eski seçiciler korundu — şablonlar dokunulmadan yeni görünüme geçer. */
fieldset, .kart, table, .envanter-kart, .ara-sonuclar, .madde-karti,
.firma-kart, .madde-block, .ozet-kutu, .ziyaret-kart {
  background: var(--yuzey);
  border: 1px solid var(--yuzey-kenar);
  border-radius: var(--r);
  box-shadow: var(--golge);
  color: var(--metin);
  transition: border-color var(--gecis), background var(--gecis);
}
.kart { padding: var(--s5); margin-bottom: var(--s4); }
fieldset { padding: var(--s5); margin: 0 0 var(--s4); min-width: 0; }
legend {
  padding: 0 var(--s2); margin-left: calc(-1 * var(--s2));
  font-size: var(--t-lg); font-weight: 600; color: var(--metin);
}
.kart--sik { padding: var(--s4); }
.kart:hover, .firma-kart:hover { border-color: rgba(24, 38, 31, 0.22); }
:root[data-theme="dark"] .kart:hover,
:root[data-theme="dark"] .firma-kart:hover { border-color: rgba(255, 255, 255, 0.2); }

.kart-bas {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s3); margin: 0 0 var(--s3);
  padding-bottom: var(--s3); border-bottom: 1px solid var(--yuzey-kenar-soluk);
}
.kart-bas h2, .kart-bas h3 { margin: 0; font-size: var(--t-lg); }

/* ═══ 7. KABUK — SOL KENAR ÇUBUĞU ═══
   Yerleşim html'e verilir: sayfaların kendi <style>'ındaki body kuralları
   (max-width, margin: 0 auto, padding) böylece bozulmadan çalışır. */
:root { --yan-g: 232px; }

/* Yalnızca kabuklu sayfalar yer açar — giriş ve müşteriye giden
   sayfalar (_header.html include etmeyenler) tam genişlikte kalır. */
html:has(.yan) { padding-left: var(--yan-g); }

.yan {
  position: fixed; inset: 0 auto 0 0; z-index: 45;
  width: var(--yan-g);
  display: flex; flex-direction: column;
  background: var(--yuzey);
  border-right: 1px solid var(--yuzey-kenar);
  overflow-y: auto; overscroll-behavior: contain;
}

.yan-marka {
  display: flex; align-items: center; gap: var(--s2);
  padding: var(--s4) var(--s3); text-decoration: none; flex-shrink: 0;
}
.yan-marka:hover { text-decoration: none; }
.logo-simge {
  width: 26px; height: 26px; border-radius: var(--r-sm); flex-shrink: 0;
  background: var(--akya-mavi); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
}
.marka-metin { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.marka-metin b { font-size: var(--t-md); font-weight: 600; color: var(--metin); }
.marka-metin > span { font-size: 10.5px; color: var(--metin-soluk); }

.yan-govde { flex: 1; padding: 0 var(--s2) var(--s4); }
.yan-grup { margin-bottom: var(--s4); }
.yan-baslik {
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--metin-soluk);
  padding: 0 var(--s2) var(--s1);
}
.yan-link {
  display: flex; align-items: center; gap: var(--s2);
  padding: 6px var(--s2); margin-bottom: 1px;
  border-radius: var(--r-sm); text-decoration: none;
  font-size: var(--t-sm); font-weight: 500; color: var(--metin-ikincil);
  transition: background var(--gecis), color var(--gecis);
}
.yan-link:hover { background: var(--hover); color: var(--metin); text-decoration: none; }
.yan-link .ikon { color: var(--metin-soluk); }
.yan-link:hover .ikon { color: var(--metin-ikincil); }
.yan-link.aktif { background: var(--sec); color: var(--akya-mavi); font-weight: 600; }
.yan-link.aktif .ikon { color: var(--akya-mavi); }

/* Alt hesap bloğu */
.yan-hesap { flex-shrink: 0; border-top: 1px solid var(--yuzey-kenar-soluk); padding: var(--s2); }
.yan-hesap-buton {
  display: flex; align-items: center; gap: var(--s2);
  padding: 6px var(--s2); border-radius: var(--r-sm);
  cursor: pointer; list-style: none;
  font-size: var(--t-sm); color: var(--metin);
  transition: background var(--gecis);
}
.yan-hesap-buton::-webkit-details-marker, .yan-hesap-buton::marker { display: none; content: ""; }
.yan-hesap-buton:hover, .yan-hesap[open] .yan-hesap-buton { background: var(--hover); }
.yan-avatar { display: flex; flex-shrink: 0; }
.yan-hesap-ad { flex: 1; min-width: 0; font-weight: 500; }
.yan-hesap .hesap-panel { bottom: calc(100% + 6px); top: auto; left: 0; right: auto; width: calc(var(--yan-g) - var(--s4)); }

/* Mobil üst bar — masaüstünde gizli */
.mobil-bar { display: none; }
.yan-perde { display: none; }
.yan-anahtar { display: none; }

/* ── Mobil: çekmece ── */
@media (max-width: 860px) {
  /* Seçici, masaüstündeki html:has(.yan) kadar belirgin olmalı —
     yalnız `html` yazılırsa öncelik kaybeder ve boşluk mobilde kalır. */
  html:has(.yan) { padding-left: 0; }

  .mobil-bar {
    position: sticky; top: 0; z-index: 44;
    display: flex; align-items: center; gap: var(--s2);
    padding: var(--s2) var(--s3);
    background: var(--header-bg);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid var(--yuzey-kenar);
    margin-bottom: var(--s3);
  }
  .mobil-bar .marka { display: flex; align-items: center; gap: var(--s2); text-decoration: none; }
  .mobil-bar .marka b { font-size: var(--t-md); font-weight: 600; color: var(--metin); }

  .yan {
    transform: translateX(-100%);
    transition: transform 0.2s cubic-bezier(0.2, 0, 0.2, 1);
    box-shadow: var(--golge-katman);
    width: min(280px, 84vw);
  }
  .yan-anahtar:checked ~ .yan { transform: none; }

  .yan-perde {
    position: fixed; inset: 0; z-index: 44;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0; pointer-events: none;
    transition: opacity 0.2s;
  }
  .yan-anahtar:checked ~ .yan-perde { display: block; opacity: 1; pointer-events: auto; }
}

/* Yazdırma: kabuk çıkmaz */
@media print {
  html { padding-left: 0; }
  .yan, .mobil-bar, .yan-perde { display: none !important; }
}

/* ═══ 8. AÇILIR PANEL (yüzen katman — gölge burada) ═══ */
.hesap-menu { position: relative; }
.hesap-menu summary { list-style: none; cursor: pointer; }
.hesap-menu summary::-webkit-details-marker, .hesap-menu summary::marker { display: none; content: ""; }

.hamburger-buton {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: var(--r-sm);
  border: 1px solid var(--yuzey-kenar); color: var(--metin);
  cursor: pointer; flex-shrink: 0;
  transition: border-color var(--gecis), background var(--gecis);
}
.hamburger-buton:hover { background: var(--hover); }

.hesap-panel {
  position: absolute; right: 0; top: calc(100% + 6px); min-width: 220px;
  background: var(--yuzey); border: 1px solid var(--yuzey-kenar);
  border-radius: var(--r); box-shadow: var(--golge-katman);
  padding: var(--s1); z-index: 50;
}
.hesap-eposta {
  font-size: var(--t-xs); color: var(--metin-soluk);
  padding: var(--s2) var(--s3); margin-bottom: var(--s1);
  border-bottom: 1px solid var(--yuzey-kenar-soluk); word-break: break-all;
}
.hesap-panel a {
  display: block; padding: 6px var(--s3); border-radius: var(--r-sm);
  color: var(--metin); font-size: var(--t-sm); font-weight: 500; text-decoration: none;
}
.hesap-panel a:hover { background: var(--hover); text-decoration: none; }

/* Segment kontrol (tema seçici, sekme) */
.tema-secici, .segment {
  display: flex; gap: 2px; margin: var(--s2) var(--s1) var(--s1);
  padding: 2px; background: var(--hover); border-radius: var(--r);
}
.tema-secici button, .segment button {
  flex: 1; border: none; background: transparent; cursor: pointer;
  padding: 5px 6px; border-radius: var(--r-sm);
  font-size: var(--t-xs); font-weight: 600; font-family: inherit;
  color: var(--metin-ikincil); transition: background var(--gecis), color var(--gecis);
}
.tema-secici button:hover, .segment button:hover { color: var(--metin); }
.tema-secici button.aktif, .segment button.aktif {
  background: var(--yuzey); color: var(--metin);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.tema-baslik {
  font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--metin-soluk);
  padding: var(--s2) var(--s3) 2px;
}

/* ═══ 9. GİRDİLER ═══ */
input[type=text], input[type=email], input[type=password], input[type=date],
input[type=number], input[type=tel], input[type=search], select, textarea {
  font-family: inherit; font-size: var(--t-md);
  color: var(--metin); background: var(--yuzey);
  border: 1px solid var(--yuzey-kenar); border-radius: var(--r);
  padding: 7px 10px;
  transition: border-color var(--gecis), box-shadow var(--gecis);
}
textarea { line-height: 1.5; }
select {
  background-image:
    linear-gradient(45deg, transparent 50%, var(--metin-ikincil) 50%),
    linear-gradient(135deg, var(--metin-ikincil) 50%, transparent 50%);
  background-position: calc(100% - 15px) center, calc(100% - 11px) center;
  background-size: 4px 4px, 4px 4px; background-repeat: no-repeat;
  padding-right: 30px !important; -webkit-appearance: none; appearance: none;
}
select option { background: var(--yuzey); color: var(--metin); }
input::placeholder, textarea::placeholder { color: var(--metin-soluk); }
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--akya-mavi);
  box-shadow: 0 0 0 3px var(--sec);
}
input[type=checkbox], input[type=radio] { accent-color: var(--akya-mavi); }

label { font-size: var(--t-sm); font-weight: 550; color: var(--metin); }

/* Form alanı: etiket + girdi + ipucu */
.alan { display: flex; flex-direction: column; gap: 5px; margin-bottom: var(--s3); min-width: 0; }
.alan > label { font-weight: 600; }
.alan > input, .alan > select, .alan > textarea { width: 100%; }
.alan .ipucu { font-size: var(--t-xs); color: var(--metin-soluk); }
.alan-satir, .row { display: flex; gap: var(--s3); flex-wrap: wrap; }
.alan-satir > *, .row > div { flex: 1; min-width: 200px; }

/* Form etiketleri blok — göç etmiş sayfalar bunu artık kendi <style>'ında
   tekrarlamaz. Satır içi kullanımlar (.onay-alan, .satir) kendi kuralıyla
   bunu ezer, o yüzden yalnızca doğrudan form içeriğine uygulanır. */
form label { display: block; margin: var(--s3) 0 5px; font-weight: 600; }
/* Yalnızca formun/alan grubunun ilk etiketi üstten yapışır. `.row` içindeki
   sütunların her biri kendi ilk etiketine sahip olduğu için genel bir
   :first-of-type kuralı orada satırı üsttekine yapıştırıyordu. */
form > label:first-of-type, fieldset > label:first-of-type { margin-top: 0; }
.row { margin-top: var(--s3); }
.row > div > label:first-of-type { margin-top: 0; }
form .alan label, form .satir label, form .onay-alan label,
form .sartlar-onay label, form .onay-satiri label { margin: 0; }
form input[type=text], form input[type=email], form input[type=password],
form input[type=date], form input[type=tel], form input[type=search],
form select, form textarea { width: 100%; }
form input[type=checkbox], form input[type=radio] { width: auto; }
textarea { min-height: 80px; resize: vertical; }

/* Arama kutusu */
.arama-kutusu {
  width: 100%; padding: 8px 12px; font-size: var(--t-md);
  border-radius: var(--r); margin: 0 0 var(--s3);
}

/* ═══ 10. BUTONLAR ═══
   Birincil: ACIK .submit/.buton sınıfı VEYA class'sız çıplak submit.
   button[type=submit]:not([class]) sayesinde class'lı outline butonlar
   (.sil-buton/.mini-buton) dolu yeşil zemin ALMAZ — yeşil üstüne yeşil
   okunmazlığı oluşmaz. */
button.submit, .buton, button[type=submit]:not([class]) {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--akya-mavi) !important; color: #fff !important;
  border: 1px solid transparent; border-radius: var(--r);
  padding: 7px 14px; font-size: var(--t-sm); font-weight: 600;
  font-family: inherit; letter-spacing: -0.005em; cursor: pointer;
  transition: background var(--gecis), opacity var(--gecis);
}
button.submit:hover, .buton:hover, button[type=submit]:not([class]):hover {
  background: var(--akya-mavi-koyu) !important; text-decoration: none;
}
button.submit:active, .buton:active { opacity: 0.85; }
button.submit:disabled, .buton:disabled { opacity: 0.45; cursor: not-allowed; }
.buton.hepsi { background: var(--akya-lacivert) !important; }

/* Koyu temada vurgu rengi açık yeşile döner — üstündeki beyaz yazının
   kontrastı yetersiz kalıyordu, metin zemin rengine geçer. */
:root[data-theme="dark"] button.submit,
:root[data-theme="dark"] .buton,
:root[data-theme="dark"] button[type=submit]:not([class]),
:root[data-theme="dark"] .eylem--birincil { color: var(--bg) !important; }
:root[data-theme="dark"] .eylem--birincil b { color: rgba(0, 0, 0, 0.55); }
:root[data-theme="dark"] .logo-simge { color: var(--bg); }

/* İkincil buton — ayraçlı, şeffaf */
.buton-2, .eylem, .mini-buton {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 7px 12px; border-radius: var(--r);
  font-size: var(--t-sm); font-weight: 500; font-family: inherit;
  white-space: nowrap; cursor: pointer; text-decoration: none;
  color: var(--metin); background: var(--yuzey);
  border: 1px solid var(--yuzey-kenar);
  transition: background var(--gecis), border-color var(--gecis);
}
.buton-2:hover, .eylem:hover, .mini-buton:hover {
  background: var(--hover); text-decoration: none;
}
.eylem b { font-weight: 600; color: var(--akya-mavi); }
.eylem--birincil {
  color: #fff; background: var(--akya-mavi); border-color: transparent;
}
.eylem--birincil:hover { background: var(--akya-mavi-koyu); }
.eylem--birincil b { color: rgba(255, 255, 255, 0.8); }
.eylem--pasif { opacity: 0.45; }
.eylem--pasif:hover { opacity: 0.6; }

/* Yıkıcı eylem */
.buton-sil, .sil-buton, .sil {
  color: var(--kotu) !important; background: transparent;
  border: 1px solid var(--yuzey-kenar);
}
.buton-sil:hover, .sil-buton:hover, .sil:hover { background: var(--kotu-zemin); border-color: var(--kotu); }

/* Eylem grubu */
.eylem-bolum { display: flex; flex-direction: column; gap: var(--s5); margin: var(--s5) 0; }
.eylem-grup { display: flex; flex-direction: column; gap: var(--s2); }
.eylem-etiket {
  font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--metin-soluk);
}
.eylem-satir { display: flex; flex-wrap: wrap; gap: var(--s2); }

/* ═══ 11. TABLO ═══ */
table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  overflow: hidden; font-size: var(--t-sm);
}
th, td { padding: 8px var(--s3); text-align: left; vertical-align: middle; }
thead th {
  background: var(--yuzey-2); color: var(--metin-ikincil);
  font-size: var(--t-xs); font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase;
  border-bottom: 1px solid var(--yuzey-kenar); white-space: nowrap;
}
tbody tr { border-top: 1px solid var(--yuzey-kenar-soluk); }
tbody tr:first-child { border-top: none; }
tbody tr:hover { background: var(--hover); }
td.sayi, th.sayi { text-align: right; font-variant-numeric: tabular-nums; }
.tablo-sarmal { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Geniş tablolar sayfayı yatayda taşırmasın.
   ESKI YAKLASIM BOZUKTU: tablo `display:block` yapilip kendi icinde
   kaydiriliyor, sonra thead/tbody `display:table` ile tablo davranisina
   dondurulmeye calisiliyordu. Ama bu ikisini AYRI TABLOLARA cevirir -
   her biri kendi sutun genisligini bagimsiz hesaplar ve BASLIKLAR
   HUCRELERLE HIZALANMAZ. Ustelik `.tablo-sarmal > table` tabloyu
   duzeltse de `table > thead` kurali gecerli kaldigi icin sarmalli
   tablolar da bozuluyordu - yani sitedeki BUTUN tablolar.

   Dogru yol: tablo normal tablo kalir, kaydirma isini SARMAL yapar.
   Sarmali unutmamak icin kontrol.py'de test var. */
table { max-width: 100%; }
.tablo-sarmal { overflow-x: auto; max-width: 100%; }

/* ═══ 12. LİSTE SATIRI (kart yerine sıkı satır) ═══ */
.liste { border: 1px solid var(--yuzey-kenar); border-radius: var(--r); overflow: hidden; background: var(--yuzey); }
.liste-satir {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s3); padding: var(--s3) var(--s4);
  border-top: 1px solid var(--yuzey-kenar-soluk);
  transition: background var(--gecis);
}
.liste-satir:first-child { border-top: none; }
.liste-satir:hover { background: var(--hover); }
.liste-satir__bilgi { flex: 1 1 auto; min-width: 0; }
.liste-satir__bilgi strong { font-size: var(--t-md); font-weight: 600; display: block; }
.liste-satir__alt { font-size: var(--t-xs); color: var(--metin-ikincil); margin-top: 3px; }
.liste-satir__islem { display: flex; gap: var(--s1); align-items: center; flex-shrink: 0; }
@media (max-width: 720px) {
  /* Dar ekranda işlem düğmeleri satırın altına tam genişlikte iner —
     yan yana kaldıklarında satırı yatayda taşırıyorlardı. */
  .liste-satir { flex-wrap: wrap; }
  .liste-satir__bilgi { flex: 1 0 100%; }
  .liste-satir__islem { flex: 1 0 100%; flex-wrap: wrap; }
}

/* ═══ 13. ROZET ═══ */
.rozet {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 7px; border-radius: var(--r-sm);
  font-size: var(--t-xs); font-weight: 600; line-height: 1.5;
  white-space: nowrap; vertical-align: middle;
  background: var(--notr-zemin); color: var(--notr);
}
.rozet--iyi { background: var(--iyi-zemin); color: var(--iyi); }
.rozet--uyari, .rozet.yakin { background: var(--uyari-zemin); color: var(--uyari); }
.rozet--kotu, .rozet.gecmis { background: var(--kotu-zemin); color: var(--kotu); }
.rozet--notr { background: var(--notr-zemin); color: var(--notr); }
.rozet-nokta { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }

/* ═══ 14. İSTATİSTİK ŞERİDİ ═══ */
.istatistik-serit {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 0 0 var(--s5);
  border: 1px solid var(--yuzey-kenar); border-radius: var(--r);
  overflow: hidden; background: var(--yuzey);
}
.istatistik {
  padding: var(--s3) var(--s4);
  border-left: 1px solid var(--yuzey-kenar-soluk);
}
.istatistik:first-child { border-left: none; }
.istatistik .sayi {
  font-size: var(--t-3xl); font-weight: 650; line-height: 1.15;
  letter-spacing: -0.03em; font-variant-numeric: tabular-nums;
}
.istatistik .etiket { font-size: var(--t-xs); color: var(--metin-ikincil); margin-top: 2px; }
.istatistik--uyari .sayi { color: var(--uyari); }
.istatistik--kotu .sayi { color: var(--kotu); }
.istatistik--iyi .sayi { color: var(--iyi); }

/* ═══ 15. UYARI / BİLDİRİM ═══ */
/* Varsayilan AKIS metni: kutu icinde duz metin+<strong>+<a> varsa
   flex kullanilmaz - yoksa her metin parcasi ayri sutuna dusup
   kelimeler alt alta siralaniyordu. Flex yalnizca __govde sarmalayicisi
   olan (ikon + govde) kutulara uygulanir, asagida. */
.uyari-kutu, .flash {
  display: block;
  padding: var(--s3) var(--s4); margin-bottom: var(--s3);
  line-height: 1.55;
  border-radius: var(--r); font-size: var(--t-sm);
  border: 1px solid var(--iyi); border-color: color-mix(in srgb, var(--iyi) 35%, transparent);
  background: var(--iyi-zemin); color: var(--metin);
}
/* flash hem başarı hem hata bildirimi taşıyor — nötr kalır, yanlış
   olumlu izlenimi vermesin. */
.flash {
  background: var(--notr-zemin);
  border-color: color-mix(in srgb, var(--notr) 30%, transparent);
}
.uyari-kutu--uyari, .uyari-kutu.yakin {
  background: var(--uyari-zemin); border-color: color-mix(in srgb, var(--uyari) 35%, transparent);
}
.uyari-kutu--kotu, .uyari-kutu.gecmis {
  background: var(--kotu-zemin); border-color: color-mix(in srgb, var(--kotu) 35%, transparent);
}
.uyari-kutu--notr, .uyari-kutu.yok {
  background: var(--notr-zemin); border-color: color-mix(in srgb, var(--notr) 30%, transparent);
}
.uyari-kutu:has(> .uyari-kutu__govde) {
  display: flex; align-items: flex-start; gap: var(--s2);
}
.uyari-kutu .ikon { flex-shrink: 0; margin-top: 1px; }
.uyari-kutu > .ikon:not(:only-child) { margin-right: 2px; }
.uyari-kutu__govde { min-width: 0; flex: 1; }
.uyari-kutu ul { margin: var(--s2) 0 0; padding-left: var(--s4); }
.uyari-kutu li { margin: 2px 0; }
.uyari-kutu a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Katlanır uyarı */
details.uyari-kutu { display: block; }
details.uyari-kutu > summary {
  display: flex; align-items: center; gap: var(--s2);
  cursor: pointer; list-style: none; font-weight: 500;
}
details.uyari-kutu > summary::-webkit-details-marker,
details.uyari-kutu > summary::marker { display: none; content: ""; }
details.uyari-kutu > summary .kat-ok { margin-left: auto; transition: transform var(--gecis); flex-shrink: 0; opacity: 0.5; }
details.uyari-kutu[open] > summary .kat-ok { transform: rotate(90deg); }

/* ═══ 15b. DOSYA BIRAKMA ALANI ═══ */
.dropzone {
  display: flex; flex-direction: column; align-items: center; gap: var(--s2);
  border: 1px dashed var(--yuzey-kenar); border-radius: var(--r);
  padding: var(--s6) var(--s4); text-align: center; cursor: pointer;
  font-size: var(--t-sm); color: var(--metin-ikincil);
  transition: background var(--gecis), border-color var(--gecis), color var(--gecis);
}
.dropzone .ikon { color: var(--metin-soluk); }
.dropzone:hover { background: var(--hover); border-color: var(--metin-soluk); }
.dropzone.surukleniyor {
  background: var(--sec); border-color: var(--akya-mavi);
  border-style: solid; color: var(--metin);
}
.dropzone.surukleniyor .ikon { color: var(--akya-mavi); }
.dropzone.yukleniyor { opacity: 0.6; pointer-events: none; }

/* ═══ 16. BOŞ DURUM ═══ */
.bos-durum {
  text-align: center; padding: var(--s7) var(--s4);
  border: 1px dashed var(--yuzey-kenar); border-radius: var(--r);
  color: var(--metin-ikincil);
}
.bos-durum .ikon { color: var(--metin-soluk); margin-bottom: var(--s3); }
.bos-durum strong { display: block; color: var(--metin); font-size: var(--t-lg); margin-bottom: var(--s1); }
.bos-durum p { margin: 0 auto; max-width: 46ch; font-size: var(--t-sm); }
.bos-durum .eylem-satir { justify-content: center; margin-top: var(--s4); }
.bos { color: var(--metin-ikincil); font-size: var(--t-sm); }   /* eski ad */

/* ═══ 17. İKON ═══ */
.ikon {
  display: inline-block; vertical-align: -0.15em;
  width: 16px; height: 16px; stroke-width: 1.75;
  fill: none; stroke: currentColor;
  stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}
.ikon--sm { width: 13px; height: 13px; }
.ikon--lg { width: 20px; height: 20px; }
.ikon--xl { width: 28px; height: 28px; stroke-width: 1.5; }

/* ═══ 18. YARDIMCI ═══ */
.metin-ikincil { color: var(--metin-ikincil); }
.metin-soluk { color: var(--metin-soluk); }
.kucuk { font-size: var(--t-sm); }
.mini { font-size: var(--t-xs); }
.satir { display: flex; align-items: center; gap: var(--s2); }
.satir--ara { justify-content: space-between; }
.sar { flex-wrap: wrap; }
.buyu { flex: 1; min-width: 0; }
.kes { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gizle { display: none !important; }
.ayrac { height: 1px; background: var(--yuzey-kenar); margin: var(--s4) 0; }

/* ═══ 19. ODAK SAYFA ═══
   Giriş, kayıt ve müşteriye giden tek işlik sayfalar (sözleşme onayı,
   Ek-3 daveti). Kabuk yok, tek kolon, "rahat" yoğunlukla kullanılır. */
.odak {
  max-width: 460px; margin: 0 auto;
  padding: var(--s8) var(--s5) var(--s6);
}
.odak--genis { max-width: 680px; }
.odak-bas { text-align: center; margin-bottom: var(--s5); }
.odak-logo {
  width: 44px; height: 44px; margin: 0 auto var(--s4);
  border-radius: var(--r-lg); background: var(--akya-mavi); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 19px; font-weight: 700;
}
.odak-bas h1 { font-size: var(--t-2xl); margin: 0 0 var(--s1); }
.odak-bas .alt-baslik { color: var(--metin-ikincil); font-size: var(--t-sm); margin: 0; }
.odak .kart { padding: var(--s5); }
.odak .alt { text-align: center; margin-top: var(--s4); font-size: var(--t-sm); color: var(--metin-ikincil); }
.odak button.submit, .odak .buton { width: 100%; padding: 10px 18px; font-size: var(--t-md); }
.odak-mesaj { text-align: center; }
.odak-mesaj p { color: var(--metin-ikincil); font-size: var(--t-md); margin: 0; }
.odak-simge {
  width: 44px; height: 44px; margin: 0 auto var(--s4); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.odak-simge .ikon { width: 22px; height: 22px; stroke-width: 2; }
.odak-simge--iyi { background: var(--iyi-zemin); color: var(--iyi); }
.odak-simge--kotu { background: var(--kotu-zemin); color: var(--kotu); }
.odak-simge--notr { background: var(--notr-zemin); color: var(--notr); }

footer {
  color: var(--metin-soluk); font-size: var(--t-xs);
  text-align: center; padding: var(--s6) 0 var(--s4);
  margin-top: var(--s7); border-top: 1px solid var(--yuzey-kenar-soluk);
}
footer strong { color: var(--metin-ikincil); font-weight: 600; }
