/* ==========================================================================
   ArmaganFX — Tema 04 "adrevival · Sinema"
   Referans DNA: REFERANSLAR.md § 04 (adrevival.io, 02.09.2026 ölçümü)
   Bu dosya bağımsızdır. Başka temanın CSS'i import EDİLMEZ.

   ÖLÇÜM NOTU
   - Ölçülen değerler (font, H1/H2/H3, harf aralığı, zemin, metin, vurgu, köşe,
     geçiş) REFERANSLAR.md'den birebir alındı; yanlarında "[ölçüm]" yazıyor.
   - Referansta bulunmayan (bölüm boşluğu, ara boyutlar, yüzey tonları, kâr/zarar
     renkleri) değerler türetildi; yanlarında "[türetilmiş]" yazıyor. Uydurma ölçüm yok.
   - Kontrast oranları WCAG 2.1 formülüyle hesaplandı (bkz. her token yanındaki yorum).
     Hedef: normal metin 4.5:1 · büyük başlık ve kontrol kenarlığı 3:1.

   SAYFA AJANLARINA NOT — <head> içine bunu koy:
     <link rel="preconnect" href="https://fonts.googleapis.com">
     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
     <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap">
     <link rel="stylesheet" href="assets/theme.css">
     <noscript><style>
       .reveal,.split .split__c{opacity:1!important;transform:none!important;filter:none!important}
       .ticker__track{animation:none!important}
     </style></noscript>
   app.js <html> etiketine "js" sınıfı ekler; JS çalışmazsa hiçbir şey gizlenmez.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap');

/* ==========================================================================
   1. TOKENLAR
   ========================================================================== */
:root{
  /* --- Yüzeyler ------------------------------------------------------- */
  --bg:            #000000;   /* [ölçüm] saf siyah — referansın zemini */
  --surface:       #0B0B0F;   /* [türetilmiş] kart zemini · beyaz metin 19.64:1 */
  --surface-2:     #121218;   /* [türetilmiş] iç kutu · beyaz metin 18.66:1 */
  --surface-3:     #1A1A22;   /* [türetilmiş] hover/aktif · beyaz metin 17.29:1 */
  --surface-inset: #08080B;   /* [türetilmiş] gömük alan (tablo başlığı, input) */

  /* --- Metin ---------------------------------------------------------- */
  --txt:   #FFFFFF;   /* [ölçüm] birincil · siyahta 21.00:1 · #1A1A22 üstünde 17.29:1 */
  --txt-2: #8C9EB2;   /* [ölçüm] ikincil mavi-gri · siyahta 7.65:1 · #1A1A22 üstünde 6.30:1 */
  --txt-3: #7A8B9E;   /* [türetilmiş] üçüncül · siyahta 6.01:1 · #1A1A22 üstünde 4.95:1 */
  --txt-on-accent: #FFFFFF; /* indigo dolgu üstünde 6.03:1 */
  --txt-on-bright: #04121A; /* lime/camgöbeği dolgu üstünde en düşük 10.50:1 */

  /* --- Vurgu ---------------------------------------------------------- */
  --accent:        #4B4BE9;  /* [ölçüm] indigo — SADECE dolgu/kenarlık. Siyahta 3.48:1
                                (3:1 geçer, 4.5:1 GEÇMEZ → küçük metin olarak KULLANMA) */
  --accent-hover:  #3A3AD6;  /* [türetilmiş] · beyaz metin 7.62:1 */
  --accent-txt:    #8A8AFF;  /* [türetilmiş] indigo METİN tonu · siyahta 7.16:1 · #1A1A22 üstünde 5.89:1 */
  --accent-soft:   rgba(75,75,233,.14);  /* dekoratif dolgu */
  --accent-line:   rgba(75,75,233,.42);  /* dekoratif kenarlık */
  --lime:          #E1FF34;  /* [ölçüm] "Most popular" rozeti · siyahta 18.56:1 · üstünde koyu mürekkep 16.77:1 */

  /* --- Camgöbeği duyuru gradyanı (imza efekt 3) ------------------------ */
  --cyan-1: #5EEAD4;  /* [türetilmiş] koyu mürekkep üstünde 12.83:1 */
  --cyan-2: #35E0F0;  /* [türetilmiş] koyu mürekkep üstünde 11.81:1 */
  --cyan-3: #22D3EE;  /* [türetilmiş] koyu mürekkep üstünde 10.50:1 */

  /* --- Kâr / zarar ----------------------------------------------------- */
  --up:   #4ADE80;  /* [türetilmiş] kâr/yükseliş · siyahta 12.05:1 · #1A1A22 üstünde 9.92:1 */
  --down: #FF8A7A;  /* [türetilmiş] zarar/düşüş · siyahta 9.17:1 · #1A1A22 üstünde 7.55:1 */
  --wait: #F0B429;  /* [türetilmiş] bekliyor durumu · siyahta 11.27:1 · #1A1A22 üstünde 9.27:1 */
  --up-soft:   rgba(74,222,128,.12);
  --down-soft: rgba(255,138,122,.12);
  --wait-soft: rgba(240,180,41,.12);

  /* --- Fiyat kartı metalik tonları (referans: 3 farklı sıcak ton) ------ */
  --metal-1:      #E2A97A;  /* [türetilmiş] bronz — aylık · siyahta 10.19:1 */
  --metal-1-deep: #B8794A;  /* dekoratif gradyan ucu */
  --metal-2:      #F0B429;  /* [türetilmiş] altın — 3 aylık (en çok seçilen) · siyahta 11.27:1 */
  --metal-2-deep: #E9A81B;  /* dekoratif gradyan ucu */
  --metal-3:      #EFE2C8;  /* [türetilmiş] şampanya — yıllık · siyahta 16.38:1 */
  --metal-3-deep: #D8C4A0;  /* dekoratif gradyan ucu */

  /* --- Çizgiler -------------------------------------------------------- */
  --line:      rgba(255,255,255,.10);  /* DEKORATİF ayraç — 1.21:1, metin/kontrol için KULLANMA */
  --line-2:    rgba(255,255,255,.16);  /* DEKORATİF güçlü ayraç — 1.44:1 */
  --border-ctl:#6A7686;  /* KONTROL kenarlığı (input, buton, sekme) · siyahta 4.55:1 ·
                            #1A1A22 üstünde 3.74:1 → 3:1 kuralını her yüzeyde geçer */
  --focus:     #E1FF34;  /* odak halkası (lime) · siyahta 18.56:1 */

  /* --- Tipografi ölçeği (px) ------------------------------------------- */
  --font: 'Instrument Sans','Schibsted Grotesk',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --fs-h1:   64px;  /* [ölçüm] */
  --fs-h2:   48px;  /* [ölçüm] */
  --fs-h3:   18px;  /* [ölçüm] H3 = gövde-büyük */
  --fs-body: 16px;  /* [ölçüm] */
  --fs-sm:   14px;  /* [türetilmiş] */
  --fs-xs:   12px;  /* [türetilmiş] etiket/eyebrow */
  --fs-num:  24px;  /* [türetilmiş] KPI ara boyut */
  --fs-num-lg:32px; /* [türetilmiş] KPI büyük sayı */
  --fs-price:44px;  /* [türetilmiş] fiyat rakamı */

  --lh-h1:   1.1;   /* [ölçüm] 70.4/64 */
  --lh-h2:   1.1;   /* [ölçüm] 52.8/48 */
  --lh-h3:   1.5;   /* [ölçüm] 27/18 */
  --lh-body: 1.6;   /* [türetilmiş] */
  --lh-tight:1.2;   /* [türetilmiş] sayılar */

  --ls-h1:   0.52px;   /* [ölçüm] POZİTİF — bu fontun karakteri, negatife çevirme */
  --ls-h2:   0.52px;   /* [ölçüm] */
  --ls-h3:   0.585px;  /* [ölçüm] */
  --ls-base: 0.008em;  /* [ölçüm] genel pozitif harf aralığı */
  --ls-caps: 0.10em;   /* [türetilmiş] eyebrow/etiket */

  --w-reg: 400;
  --w-mid: 500;  /* [ölçüm] başlıkların ağırlığı — bold DEĞİL */
  --w-semi:600;

  /* --- Aralık ölçeği (4px tabanlı) ------------------------------------- */
  --s1:4px;  --s2:8px;  --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s8:32px; --s10:40px; --s12:48px; --s14:56px; --s16:64px;
  --s20:80px; --s24:96px; --s30:120px; --s36:144px;

  --sec-y:      120px;  /* [türetilmiş] bölüm dikey boşluğu */
  --sec-y-lg:   144px;  /* [türetilmiş] son CTA */
  --hero-top:   128px;  /* [türetilmiş] */
  --hero-bot:    96px;  /* [türetilmiş] */
  --container:  1200px; /* [türetilmiş] */
  --container-narrow: 860px;

  /* --- Köşe ------------------------------------------------------------ */
  --r-4:  4px;    /* [ölçüm] */
  --r-8:  8px;    /* [ölçüm] */
  --r-16: 16px;   /* [ölçüm] BASKIN yarıçap */
  --r-pill: 999px;/* [türetilmiş] sadece nokta/avatar */

  /* --- Hareket --------------------------------------------------------- */
  --dur-1: .2s;   /* [ölçüm] */
  --dur-2: .3s;   /* [ölçüm] */
  --dur-3: .4s;   /* [ölçüm] */
  --dur-reveal: .85s; /* [ölçüm] blurin 0.85s */
  --ease: cubic-bezier(.22,.61,.36,1);  /* [ölçüm] */
  --ease-soft: ease;

  /* --- İmza efekt ayarları (buradan kısılıp açılır) -------------------- */
  --reveal-y: 14px;
  --reveal-blur: 8px;
  --reveal-ms: 70ms;        /* kaydırma animasyonu kademesi (60–80ms bandı) */
  --split-y: 14px;
  --split-blur: 8px;
  --split-ms-letter: 26ms;  /* HARF modu: 60–80ms bandı harf başına çok yavaş kalıyor,
                               bu yüzden harf kademesi 26ms; 70ms bandı KELİME/blok kademesinde */
  --split-ms-word: 70ms;    /* KELİME modu kademesi */
  --halo-size: 900px;
  --halo-opacity: .30;
  --ticker-dur: 42s;
}

/* ==========================================================================
   2. TEMEL / RESET
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* Yatay taşma kilidi SADECE html'de. body'ye overflow verilirse body kaydırma
   kabı olur ve position:sticky nav çalışmaz — o tuzağa düşme. */
html{max-width:100%;overflow-x:hidden}
body{
  max-width:100%;
  margin:0;
  background:var(--bg);
  color:var(--txt);
  font-family:var(--font);
  font-size:var(--fs-body);
  font-weight:var(--w-reg);
  line-height:var(--lh-body);
  letter-spacing:var(--ls-base);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
p{margin:0 0 var(--s4)}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
hr{border:0;border-top:1px solid var(--line);margin:var(--s10) 0}
::selection{background:var(--accent);color:var(--txt-on-accent)}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
/* "İçeriğe geç" gibi .sr-only öğeler ODAKLANINCA görünür olmalı — kırpma odak
   halkasını da gizliyordu (demir kural 8). Öğe .btn olduğu için kenarlık ve
   44px yükseklik hazır gelir; yeni renk yok. */
.sr-only:focus,
.sr-only:focus-visible{
  position:fixed;top:var(--s3);left:var(--s3);z-index:100;
  width:auto;height:auto;margin:0;
  overflow:visible;clip:auto;clip-path:none;white-space:normal;
}

/* --- Başlık hiyerarşisi ------------------------------------------------ */
h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--w-mid)}
h1,.h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}
h2,.h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}
h3,.h3,.lead{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}
h4,.h4{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-base);font-weight:var(--w-mid)}
.lead{color:var(--txt-2);font-weight:var(--w-reg)}
.muted{color:var(--txt-2)}
.muted-3{color:var(--txt-3)}
.small{font-size:var(--fs-sm);line-height:1.5}
.xs{font-size:var(--fs-xs);line-height:1.45}
/* Referansın karakteri POZİTİF harf aralığı; tabular-nums sütun hizasını zaten
   verdiği için aralık hizayı bozmaz (her rakama eşit uygulanır). */
.num{font-variant-numeric:tabular-nums;letter-spacing:var(--ls-base)}
.up{color:var(--up)}
.down{color:var(--down)}

.eyebrow{
  display:inline-block;font-size:var(--fs-xs);line-height:1;font-weight:var(--w-semi);
  letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--txt-2);
  margin-bottom:var(--s4);
}

/* --- Odak --------------------------------------------------------------- */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-radius:var(--r-4);
}
.card :focus-visible,.price :focus-visible{outline-offset:2px}

/* ==========================================================================
   3. YERLEŞİM
   ========================================================================== */
.container,.wrap{
  width:100%;max-width:var(--container);
  margin-inline:auto;padding-inline:var(--s6);
}
.wrap--narrow{max-width:var(--container-narrow)}
.sec{position:relative;padding-block:var(--sec-y)}
.sec--tight{padding-block:var(--s20)}
.sec--cta{padding-block:var(--sec-y-lg)}
.sec--hero{padding-block:var(--hero-top) var(--hero-bot)}
.sec--edge{border-top:1px solid var(--line)}
.sec__head{max-width:720px;margin-bottom:var(--s12)}
.sec__head--center{margin-inline:auto;text-align:center}
.sec__head p{margin-top:var(--s4);color:var(--txt-2);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}

.grid{display:grid;gap:var(--s6)}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.row--between{justify-content:space-between}
.row--end{justify-content:flex-end}
.stack{display:flex;flex-direction:column;gap:var(--s4)}
.mt-4{margin-top:var(--s4)} .mt-6{margin-top:var(--s6)} .mt-8{margin-top:var(--s8)}
.mt-12{margin-top:var(--s12)}

/* ==========================================================================
   4. DUYURU ŞERİDİ (imza efekt 3 — camgöbeği gradyan) + KAYAN ŞERİT
   ========================================================================== */
.announce{
  position:relative;z-index:60;
  background:linear-gradient(90deg,var(--cyan-1) 0%,var(--cyan-2) 48%,var(--cyan-3) 100%);
  color:var(--txt-on-bright);
  font-size:var(--fs-sm);font-weight:var(--w-mid);
  overflow:hidden;
}
.announce__inner{
  max-width:var(--container);margin-inline:auto;padding:var(--s1) var(--s6);
  display:flex;align-items:center;justify-content:center;gap:var(--s3);
  min-height:44px;flex-wrap:wrap;text-align:center;
}
/* Şeritteki bağlantı 44px dokunma hedefi (demir kural 4). Bileşenin kendi kuralı —
   üç sayfanın <style> bloğunda tekrarlanmaz; kabın dikey dolgusu bu yüzden --s1. */
.announce a{
  display:inline-flex;align-items:center;min-height:44px;
  text-decoration:underline;text-underline-offset:3px;
}
.announce a:focus-visible{outline-color:var(--txt-on-bright)}
.announce__dot{
  width:8px;height:8px;border-radius:var(--r-pill);
  background:var(--txt-on-bright);flex:none;
}
.announce svg{width:16px;height:16px;flex:none}

/* Kayan şerit — .ticker__track içeriği JS ile ya da elde İKİ KEZ yazılır */
.ticker{
  position:relative;overflow:hidden;
  border-block:1px solid var(--line);
  background:var(--surface-inset);
  padding-block:var(--s3);
}
.ticker--onbright{background:transparent;border:0;padding:0}
.ticker__track{
  display:flex;align-items:center;gap:var(--s8);
  width:max-content;
  animation:tk-scroll var(--ticker-dur) linear infinite;
}
.ticker:hover .ticker__track,.ticker:focus-within .ticker__track{animation-play-state:paused}
.ticker__item{
  display:inline-flex;align-items:center;gap:var(--s2);
  font-size:var(--fs-sm);color:var(--txt-2);white-space:nowrap;
}
.ticker__item .num{color:var(--txt)}
.ticker__item svg{width:14px;height:14px}
.ticker__sep{width:4px;height:4px;border-radius:var(--r-pill);background:var(--border-ctl);flex:none}
@keyframes tk-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ==========================================================================
   5. NAV + MOBİL ÇEKMECE
   ========================================================================== */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color var(--dur-2) var(--ease-soft),background var(--dur-2) var(--ease-soft);
}
.nav.is-stuck{border-bottom-color:var(--line-2);background:rgba(0,0,0,.9)}
.nav__inner{
  max-width:var(--container);margin-inline:auto;padding:var(--s3) var(--s6);
  min-height:72px;display:flex;align-items:center;gap:var(--s6);
}
.nav__logo{display:inline-flex;align-items:center;gap:var(--s2);min-height:44px;font-weight:var(--w-mid)}
.nav__logo svg{width:26px;height:26px}
.nav__logo-txt{font-size:var(--fs-h3);letter-spacing:var(--ls-h3)}
.nav__links{display:flex;align-items:center;gap:var(--s1);margin-left:auto}
.nav__link{
  display:inline-flex;align-items:center;gap:var(--s2);
  min-height:44px;padding:0 var(--s4);border-radius:var(--r-8);
  color:var(--txt-2);font-size:var(--fs-sm);font-weight:var(--w-mid);
  transition:color var(--dur-1) var(--ease-soft),background var(--dur-1) var(--ease-soft);
}
.nav__link:hover{color:var(--txt);background:var(--surface-2)}
.nav__link[aria-current="page"],.nav__link.is-active{color:var(--txt);background:var(--surface-2)}
.nav__link svg{width:18px;height:18px}
.nav__actions{display:flex;align-items:center;gap:var(--s2);margin-left:var(--s4)}
.nav__links + .nav__actions{margin-left:var(--s4)}
.nav__badge{margin-left:var(--s2)}

.navbtn{
  display:none;align-items:center;justify-content:center;
  width:44px;height:44px;margin-left:auto;
  border:1px solid var(--border-ctl);border-radius:var(--r-8);
  color:var(--txt);
  transition:background var(--dur-1) var(--ease-soft);
}
.navbtn:hover{background:var(--surface-2)}
.navbtn svg{width:22px;height:22px}

.drawer{position:fixed;inset:0;z-index:70}
.drawer[hidden]{display:none}
.drawer__backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.72);
  opacity:0;transition:opacity var(--dur-2) var(--ease-soft);
}
.drawer__panel{
  position:absolute;inset-block:0;right:0;
  width:min(360px,86vw);
  background:var(--surface);
  border-left:1px solid var(--line-2);
  padding:var(--s5) var(--s5) var(--s10);
  display:flex;flex-direction:column;gap:var(--s4);
  overflow-y:auto;
  transform:translateX(100%);
  transition:transform var(--dur-3) var(--ease);
}
.drawer.is-open .drawer__backdrop{opacity:1}
.drawer.is-open .drawer__panel{transform:translateX(0)}
.drawer__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);min-height:44px}
.drawer__close{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid var(--border-ctl);border-radius:var(--r-8);color:var(--txt);
}
.drawer__close svg{width:22px;height:22px}
.drawer__nav{display:flex;flex-direction:column;gap:var(--s1);margin-top:var(--s4)}
.drawer__link{
  display:flex;align-items:center;gap:var(--s3);
  min-height:52px;padding:0 var(--s4);border-radius:var(--r-8);
  color:var(--txt-2);font-size:var(--fs-h3);font-weight:var(--w-mid);letter-spacing:var(--ls-h3);
}
.drawer__link:hover{background:var(--surface-2);color:var(--txt)}
.drawer__link[aria-current="page"],.drawer__link.is-active{color:var(--txt);background:var(--surface-2)}
.drawer__link svg{width:20px;height:20px;color:var(--txt-3)}
.drawer__foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--s3);padding-top:var(--s6)}
body.is-locked{overflow:hidden}

/* ==========================================================================
   6. BUTONLAR
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  min-height:44px;padding:0 var(--s6);
  border-radius:var(--r-8);border:1px solid transparent;
  font-size:var(--fs-sm);font-weight:var(--w-mid);letter-spacing:var(--ls-base);
  text-align:center;white-space:nowrap;
  transition:background var(--dur-1) var(--ease-soft),border-color var(--dur-1) var(--ease-soft),
             color var(--dur-1) var(--ease-soft),transform var(--dur-1) var(--ease-soft);
}
.btn svg{width:18px;height:18px;flex:none}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;pointer-events:none}

.btn--primary{background:var(--accent);color:var(--txt-on-accent)}       /* beyaz/indigo 6.03:1 */
.btn--primary:hover{background:var(--accent-hover)}                      /* beyaz/hover 7.62:1 */
.btn--secondary{background:transparent;color:var(--txt);border-color:var(--border-ctl)} /* kenarlık 4.55:1 */
.btn--secondary:hover{background:var(--surface-2);border-color:var(--txt-3)}
.btn--ghost{background:transparent;color:var(--txt-2);border-color:transparent}
.btn--ghost:hover{background:var(--surface-2);color:var(--txt)}
.btn--lime{background:var(--lime);color:var(--txt-on-bright)}            /* 16.77:1 */
.btn--lime:hover{filter:brightness(.94)}
.btn--danger{background:transparent;color:var(--down);border-color:var(--border-ctl)}
.btn--danger:hover{background:var(--down-soft);border-color:var(--down)}
.btn--ok{background:transparent;color:var(--up);border-color:var(--border-ctl)}
.btn--ok:hover{background:var(--up-soft);border-color:var(--up)}

.btn--sm{min-height:44px;padding:0 var(--s4);font-size:var(--fs-xs)}     /* 44px dokunma hedefi korunur */
.btn--lg{min-height:52px;padding:0 var(--s8);font-size:var(--fs-body)}
.btn--block{display:flex;width:100%}
.btn--icon{width:44px;padding:0}

/* ==========================================================================
   7. ROZET / PILL / ETİKET
   ========================================================================== */
.badge,.pill,.tag{
  display:inline-flex;align-items:center;gap:var(--s2);
  font-size:var(--fs-xs);font-weight:var(--w-mid);line-height:1;
  letter-spacing:var(--ls-base);white-space:nowrap;
}
.badge{
  padding:6px var(--s3);border-radius:var(--r-8);
  border:1px solid var(--line-2);background:var(--surface-2);color:var(--txt-2);
}
.badge svg{width:14px;height:14px}
.badge--accent{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-txt)} /* --accent-txt @ --accent-soft: --bg üstünde 6.63:1 · --surface üstünde 6.13:1 */
.badge--lime{border-color:transparent;background:var(--lime);color:var(--txt-on-bright)}              /* 16.77:1 */
.badge--live{border-color:var(--line-2);color:var(--txt)}
.badge--admin{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-txt)}

.pill{
  padding:8px var(--s4);border-radius:var(--r-8);
  border:1px solid var(--line-2);background:var(--surface);color:var(--txt-2);
  min-height:36px;
}

.tag{padding:5px var(--s3);border-radius:var(--r-4);border:1px solid transparent}
/* Oranlar tintli dolgunun ALTINDAKİ gerçek zemine göre hesaplandı (%12 tint dahil). */
.tag--up{background:var(--up-soft);color:var(--up)}       /* --up-soft @ --surface 9.27:1 · hover --surface-2 8.58:1 */
.tag--down{background:var(--down-soft);color:var(--down)} /* --down-soft @ --surface 7.29:1 · hover 6.77:1 */
.tag--wait{background:var(--wait-soft);color:var(--wait)} /* --wait-soft @ --surface 8.72:1 · hover 8.08:1 */
.tag--filled{background:var(--up-soft);color:var(--up)}
.tag--neutral{background:var(--surface-3);color:var(--txt-2)}

.dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--up);flex:none}
.dot--wait{background:var(--wait)}
.dot--off{background:var(--txt-3)}
.dot--live{position:relative}
.dot--live::after{
  content:"";position:absolute;inset:-4px;border-radius:var(--r-pill);
  border:1px solid var(--up);opacity:.55;
  animation:dot-pulse 2.2s var(--ease-soft) infinite;
}
@keyframes dot-pulse{0%{transform:scale(.7);opacity:.7}70%{transform:scale(1.25);opacity:0}100%{opacity:0}}

/* ==========================================================================
   8. KART
   ========================================================================== */
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-16);
  padding:var(--s6);
  transition:border-color var(--dur-2) var(--ease-soft),background var(--dur-2) var(--ease-soft);
}
.card--flat{background:transparent}
.card--pad-lg{padding:var(--s8)}
.card--inset{background:var(--surface-2)}
.card--hover:hover{border-color:var(--line-2);background:var(--surface-2)}
.card__head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  flex-wrap:wrap;margin-bottom:var(--s5);
}
.card__title{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--w-mid)}
.card__body > * + *{margin-top:var(--s4)}
.card__foot{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}
.card__ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-8);
  background:var(--accent-soft);border:1px solid var(--accent-line);
  color:var(--accent-txt);margin-bottom:var(--s5);
}
.card__ic svg{width:22px;height:22px}

/* ==========================================================================
   9. TABLO (+ mobilde karta dönen varyant)
   ========================================================================== */
.table-wrap{
  width:100%;overflow-x:auto;
  border:1px solid var(--line);border-radius:var(--r-16);
  background:var(--surface);
  -webkit-overflow-scrolling:touch;
}
.table-wrap--flush{border:0;border-radius:0;background:transparent}
.table{font-size:var(--fs-sm);min-width:640px}
.table caption{text-align:left;padding:var(--s5) var(--s5) 0;color:var(--txt-2);font-size:var(--fs-sm)}
.table thead th{
  /* sticky DEĞİL: nav zaten top:0'da sabit, ikisi üst üste binerdi */
  background:var(--surface-inset);
  text-align:left;font-weight:var(--w-mid);font-size:var(--fs-xs);
  letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--txt-2);
  padding:var(--s4) var(--s5);
  border-bottom:1px solid var(--line-2);
  white-space:nowrap;
}
.table tbody td{
  padding:var(--s4) var(--s5);
  border-bottom:1px solid var(--line);
  color:var(--txt);vertical-align:middle;
}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background var(--dur-1) var(--ease-soft)}
.table tbody tr:hover{background:var(--surface-2)}
.table td.is-muted{color:var(--txt-2)}
.table .cell-actions{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:flex-end}
.table th.ta-r,.table td.ta-r{text-align:right}

/* Mobil kart varyantı — her <td> için data-l="Başlık" ZORUNLU */
@media (max-width:560px){
  .table--cards{min-width:0}
  .table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .table--cards,.table--cards tbody,.table--cards tr,.table--cards td{display:block;width:100%}
  /* display:block, [hidden] kuralını ezerdi — arama satır gizlediğinde şart */
  .table--cards tr[hidden],.table--cards td[hidden]{display:none}
  .table--cards tr{
    border:1px solid var(--line);border-radius:var(--r-16);
    background:var(--surface-2);padding:var(--s2) var(--s4);margin-bottom:var(--s3);
  }
  .table--cards tr:hover{background:var(--surface-2)}
  .table--cards tbody td{
    display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
    padding:var(--s3) 0;border-bottom:1px solid var(--line);text-align:right;
  }
  .table--cards tbody tr td:last-child{border-bottom:0}
  .table--cards tbody td::before{
    content:attr(data-l);
    color:var(--txt-2);font-size:var(--fs-xs);font-weight:var(--w-mid);
    letter-spacing:var(--ls-caps);text-transform:uppercase;
    text-align:left;flex:none;
  }
  .table--cards .cell-actions{justify-content:flex-end}
  .table-wrap:has(.table--cards){border:0;background:transparent;border-radius:0}
}

/* ==========================================================================
   10. KPI KARTI
   ========================================================================== */
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.kpi{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-16);
  padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2);
}
.kpi__label{
  display:flex;align-items:center;gap:var(--s2);
  font-size:var(--fs-xs);font-weight:var(--w-mid);letter-spacing:var(--ls-caps);
  text-transform:uppercase;color:var(--txt-2);
}
.kpi__label svg{width:16px;height:16px;color:var(--txt-3)}
.kpi__value{
  font-size:var(--fs-num-lg);line-height:var(--lh-tight);font-weight:var(--w-mid);
  font-variant-numeric:tabular-nums;color:var(--txt);   /* harf aralığı --ls-base kalır */
}
.kpi__meta{font-size:var(--fs-sm);color:var(--txt-2)}
.kpi--accent{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 70%),var(--surface)}
.kpi--up .kpi__value{color:var(--up)}
.kpi--wait .kpi__value{color:var(--wait)}

/* ==========================================================================
   11. SEKME (role=tablist)
   ========================================================================== */
.tabs{display:block}
.tabs__list{
  display:flex;gap:var(--s1);flex-wrap:wrap;
  padding:var(--s1);border:1px solid var(--line);border-radius:var(--r-16);
  background:var(--surface);margin-bottom:var(--s6);
}
.tabs__list--plain{background:transparent;border:0;padding:0;gap:var(--s2)}
.tab{
  display:inline-flex;align-items:center;gap:var(--s2);
  min-height:44px;padding:0 var(--s5);border-radius:var(--r-8);
  color:var(--txt-2);font-size:var(--fs-sm);font-weight:var(--w-mid);
  border:1px solid transparent;
  transition:background var(--dur-1) var(--ease-soft),color var(--dur-1) var(--ease-soft),
             border-color var(--dur-1) var(--ease-soft);
}
.tab svg{width:18px;height:18px}
.tab:hover{color:var(--txt);background:var(--surface-2)}
.tab[aria-selected="true"]{
  background:var(--surface-3);color:var(--txt);border-color:var(--border-ctl); /* kenarlık 3.74:1 */
}
.tabs__list--plain .tab{border-color:var(--border-ctl)}
.tabs__list--plain .tab[aria-selected="true"]{background:var(--accent);color:var(--txt-on-accent);border-color:var(--accent)}
.tab__count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-4);
  background:var(--surface-inset);color:var(--txt-2);font-size:var(--fs-xs);
}
.tab[aria-selected="true"] .tab__count{background:rgba(0,0,0,.35);color:var(--txt)}
.tabpanel[hidden]{display:none}
.tabpanel > * + *{margin-top:var(--s6)}

/* ==========================================================================
   12. FORM
   ========================================================================== */
.form{display:flex;flex-direction:column;gap:var(--s5)}
.form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.field{display:flex;flex-direction:column;gap:var(--s2)}
.label{font-size:var(--fs-sm);font-weight:var(--w-mid);color:var(--txt)}
.label .req{color:var(--down)}
.input,.select,.textarea{
  width:100%;min-height:48px;                    /* form alanı min 48px */
  padding:var(--s3) var(--s4);
  background:var(--surface-inset);
  border:1px solid var(--border-ctl);            /* kontrol kenarlığı 4.25:1 */
  border-radius:var(--r-8);
  color:var(--txt);font-size:var(--fs-body);
  transition:border-color var(--dur-1) var(--ease-soft),background var(--dur-1) var(--ease-soft);
}
.textarea{min-height:120px;resize:vertical;line-height:var(--lh-body)}
.input::placeholder,.textarea::placeholder{color:var(--txt-3)}  /* 5.63:1 */
.input:hover,.select:hover,.textarea:hover{border-color:var(--txt-3)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--accent-txt);background:var(--surface-2)}
.select{
  appearance:none;-webkit-appearance:none;
  padding-right:var(--s10);
  background-image:linear-gradient(45deg,transparent 50%,var(--txt-2) 50%),
                   linear-gradient(135deg,var(--txt-2) 50%,transparent 50%);
  background-position:calc(100% - 22px) calc(50% + 2px),calc(100% - 16px) calc(50% + 2px);
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
}
/* İkon KABIN değil INPUTUN kutusuna bağlanır: alanda <label> ya da <span class="help">
   olsun olmasın ikon her zaman inputla dikey ortalanır. */
.field__ctl{position:relative;display:block}
.field--search .input{padding-left:var(--s12)}
.field--search .field__ctl svg{
  position:absolute;left:var(--s4);top:50%;transform:translateY(-50%);
  width:20px;height:20px;color:var(--txt-3);pointer-events:none;
}
.help{font-size:var(--fs-sm);color:var(--txt-2)}
.msg{
  display:none;align-items:center;gap:var(--s2);
  padding:var(--s3) var(--s4);border-radius:var(--r-8);
  font-size:var(--fs-sm);border:1px solid transparent;
}
.msg.is-on{display:flex}
.msg--ok{background:var(--up-soft);border-color:var(--up);color:var(--up)}
.msg--err{background:var(--down-soft);border-color:var(--down);color:var(--down)}
.msg svg{width:18px;height:18px;flex:none}

.switchbar{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end}
.switchbar .field{min-width:180px;flex:1 1 180px}

/* ==========================================================================
   13. BOŞ DURUM
   ========================================================================== */
.empty{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s3);
  padding:var(--s16) var(--s6);
  border:1px dashed var(--line-2);border-radius:var(--r-16);
  background:var(--surface);
}
/* display:flex, tarayıcının [hidden]{display:none} kuralını eziyordu; JS ile
   açılıp kapanan boş durumlar için gizlemeyi bileşenin kendisi geri verir. */
.empty[hidden]{display:none}
.empty__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:var(--r-16);
  background:var(--surface-2);border:1px solid var(--line-2);color:var(--txt-3);
}
.empty__icon svg{width:26px;height:26px}
.empty__title{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--w-mid)}
.empty__text{color:var(--txt-2);max-width:44ch}

/* ==========================================================================
   14. FİYAT KARTI (metalik tonlar)
   ========================================================================== */
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);align-items:start}
.price{
  position:relative;isolation:isolate;
  background:var(--surface);
  border:1px solid var(--line-2);
  border-radius:var(--r-16);
  padding:var(--s8) var(--s6) var(--s6);
  display:flex;flex-direction:column;gap:var(--s5);
  overflow:hidden;
  transition:border-color var(--dur-2) var(--ease-soft),transform var(--dur-2) var(--ease);
}
.price::before{  /* metalik üst bant */
  content:"";position:absolute;inset-inline:0;top:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--metal,var(--metal-2)),var(--metal-deep,var(--metal-2-deep)),transparent);
}
.price::after{   /* metalik hâle */
  content:"";position:absolute;z-index:-1;top:-40%;left:50%;
  width:340px;height:340px;transform:translateX(-50%);
  background:radial-gradient(circle,var(--metal,var(--metal-2)) 0%,transparent 68%);
  opacity:.10;pointer-events:none;
}
.price:hover{border-color:var(--border-ctl)}
.price--m1{--metal:var(--metal-1);--metal-deep:var(--metal-1-deep)}  /* bronz — aylık */
.price--m2{--metal:var(--metal-2);--metal-deep:var(--metal-2-deep)}  /* altın — 3 aylık */
.price--m3{--metal:var(--metal-3);--metal-deep:var(--metal-3-deep)}  /* şampanya — yıllık */
.price.is-popular{border-color:var(--metal-2-deep)}
.price__flag{
  position:absolute;top:var(--s4);right:var(--s4);
  background:var(--lime);color:var(--txt-on-bright);           /* 16.77:1 */
  padding:6px var(--s3);border-radius:var(--r-8);
  font-size:var(--fs-xs);font-weight:var(--w-semi);line-height:1;
}
.price__tier{
  font-size:var(--fs-sm);font-weight:var(--w-semi);
  letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--metal,var(--metal-2));                            /* en düşük 9.53:1 */
}
.price__amt{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap}
.price__num{
  font-size:var(--fs-price);line-height:var(--lh-tight);font-weight:var(--w-mid);
  font-variant-numeric:tabular-nums;                    /* harf aralığı --ls-base kalır */
}
.price__period{color:var(--txt-2);font-size:var(--fs-sm)}
.price__note{color:var(--txt-2);font-size:var(--fs-sm)}
.price__list{display:flex;flex-direction:column;gap:var(--s3);margin:0}
.price__list li{display:flex;align-items:flex-start;gap:var(--s3);font-size:var(--fs-sm);color:var(--txt-2)}
.price__list svg{width:18px;height:18px;flex:none;color:var(--metal,var(--metal-2));margin-top:2px}
.price .btn{margin-top:auto}

/* ==========================================================================
   15. SSS (details/summary)
   ========================================================================== */
.faq{display:flex;flex-direction:column;gap:var(--s3)}
.faq__item{
  border:1px solid var(--line);border-radius:var(--r-16);
  background:var(--surface);overflow:hidden;
  transition:border-color var(--dur-2) var(--ease-soft),background var(--dur-2) var(--ease-soft);
}
.faq__item[open]{border-color:var(--line-2);background:var(--surface-2)}
.faq__q{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  min-height:64px;padding:var(--s4) var(--s6);
  cursor:pointer;list-style:none;
  font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--w-mid);
}
.faq__q::-webkit-details-marker{display:none}
.faq__q::marker{content:""}
.faq__q:hover{color:var(--txt)}
.faq__ic{
  flex:none;width:24px;height:24px;color:var(--txt-2);
  transition:transform var(--dur-2) var(--ease),color var(--dur-2) var(--ease-soft);
}
.faq__item[open] .faq__ic{transform:rotate(180deg);color:var(--accent-txt)}
.faq__a{padding:0 var(--s6) var(--s6);color:var(--txt-2);max-width:72ch}
/* Metin içi bağlantı 20px kalıyordu; satır içi öğede dikey dolgu satır yüksekliğini
   değiştirmeden dokunma hedefini 44px'in üstüne çıkarır (demir kural 4). */
.faq__a a{padding-block:var(--s3);text-decoration:underline;text-underline-offset:3px}
.faq__item[open] .faq__a{animation:faq-in var(--dur-3) var(--ease) both}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ==========================================================================
   16. RİSK KUTUSU
   ========================================================================== */
.risk{
  display:flex;gap:var(--s5);
  padding:var(--s6);
  background:var(--surface);
  border:1px solid var(--line-2);
  border-left:3px solid var(--wait);
  border-radius:var(--r-16);
}
.risk__ic{flex:none;width:28px;height:28px;color:var(--wait)}  /* 10.54:1 */
.risk__body{display:flex;flex-direction:column;gap:var(--s2)}
.risk__title{
  font-size:var(--fs-sm);font-weight:var(--w-semi);
  letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--wait);
}
.risk__text{color:var(--txt-2);max-width:78ch}
.risk__text strong{color:var(--txt);font-weight:var(--w-semi)}
.risk--compact{padding:var(--s5);gap:var(--s4)}
.risk--compact .risk__ic{width:22px;height:22px}

.demo-note{
  display:flex;align-items:flex-start;gap:var(--s2);
  font-size:var(--fs-sm);color:var(--txt-2);
  padding:var(--s3) var(--s4);
  border:1px dashed var(--line-2);border-radius:var(--r-8);
  background:var(--surface-inset);
}
.demo-note svg{width:18px;height:18px;flex:none;color:var(--txt-3);margin-top:1px}

/* ==========================================================================
   17. İSTATİSTİK ŞERİDİ
   ========================================================================== */
.stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--line);border-radius:var(--r-16);
  background:var(--surface);overflow:hidden;
}
.stat{
  padding:var(--s8) var(--s6);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:var(--s2);
}
.stat:last-child{border-right:0}
.stat__num{
  font-size:var(--fs-h2);line-height:var(--lh-tight);font-weight:var(--w-mid);
  font-variant-numeric:tabular-nums;                    /* harf aralığı --ls-base kalır */
}
.stat__label{font-size:var(--fs-sm);color:var(--txt-2)}
.stat--up .stat__num{color:var(--up)}
.stat--accent .stat__num{color:var(--accent-txt)}
.stat--metal .stat__num{color:var(--metal-2)}

/* ==========================================================================
   18. ADIM KARTI
   ========================================================================== */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);counter-reset:step}
.step{
  position:relative;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-16);
  padding:var(--s8) var(--s6) var(--s6);
  display:flex;flex-direction:column;gap:var(--s3);
}
.step__n{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-8);
  background:var(--accent-soft);border:1px solid var(--accent-line);
  color:var(--accent-txt);            /* --accent-txt @ --accent-soft, --surface üstünde 6.13:1 */
  font-size:var(--fs-h3);font-weight:var(--w-semi);font-variant-numeric:tabular-nums;
  margin-bottom:var(--s2);
}
.step__title{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--w-mid)}
.step__text{color:var(--txt-2)}

/* ==========================================================================
   19. ÖZELLİK KARTI
   ========================================================================== */
.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.feature{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-16);
  padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3);
  transition:border-color var(--dur-2) var(--ease-soft),background var(--dur-2) var(--ease-soft);
}
.feature:hover{border-color:var(--line-2);background:var(--surface-2)}
.feature__ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-8);
  background:var(--surface-3);border:1px solid var(--line-2);color:var(--accent-txt);
  margin-bottom:var(--s2);
}
.feature__ic svg{width:22px;height:22px}
.feature__title{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--w-mid)}
.feature__text{color:var(--txt-2);font-size:var(--fs-sm)}

/* ==========================================================================
   20. HERO
   ========================================================================== */
.hero{position:relative;overflow:hidden}
.hero__inner{position:relative;z-index:1;max-width:900px}
.hero__inner--center{margin-inline:auto;text-align:center}
.hero__title{margin-block:var(--s5) var(--s6)}
.hero__lead{color:var(--txt-2);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);max-width:62ch}
.hero__inner--center .hero__lead{margin-inline:auto}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s8)}
.hero__inner--center .hero__actions{justify-content:center}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--s5);margin-top:var(--s8);color:var(--txt-2);font-size:var(--fs-sm)}
.hero__inner--center .hero__meta{justify-content:center}
.hero__panel{position:relative;z-index:1;margin-top:var(--s16)}

/* --- Hâle + ızgara (dekoratif zemin) ---------------------------------- */
.halo{
  position:absolute;z-index:0;pointer-events:none;
  width:var(--halo-size);height:var(--halo-size);
  left:50%;top:-40%;transform:translateX(-50%);
  background:radial-gradient(circle,var(--accent) 0%,transparent 62%);
  opacity:var(--halo-opacity);filter:blur(30px);
}
.halo--cyan{background:radial-gradient(circle,var(--cyan-3) 0%,transparent 62%);opacity:.16}
.halo--left{left:12%;transform:none}
.halo--right{left:auto;right:0;transform:none}
.grid-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,var(--bg) 10%,transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,var(--bg) 10%,transparent 72%);
  opacity:.6;
}

/* ==========================================================================
   21. ALT BİLGİ
   ========================================================================== */
.foot{border-top:1px solid var(--line);padding-block:var(--s16) var(--s10);background:var(--bg)}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--s10)}
.foot__brand{display:flex;flex-direction:column;gap:var(--s4);max-width:38ch}
.foot__brand p{color:var(--txt-2);font-size:var(--fs-sm)}
.foot__col h4{
  font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;
  color:var(--txt-3);margin-bottom:var(--s4);font-weight:var(--w-semi);
}
.foot__links{display:flex;flex-direction:column;gap:var(--s1)}
.foot__links a{
  display:inline-flex;align-items:center;gap:var(--s2);
  min-height:44px;color:var(--txt-2);font-size:var(--fs-sm);
  transition:color var(--dur-1) var(--ease-soft);
}
.foot__links a:hover{color:var(--txt)}
.foot__links svg{width:16px;height:16px}
.foot__bottom{
  margin-top:var(--s12);padding-top:var(--s6);border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:var(--s4);justify-content:space-between;
  color:var(--txt-2);font-size:var(--fs-sm);
}
.foot__note{color:var(--txt-3);font-size:var(--fs-sm);max-width:80ch}

/* ==========================================================================
   22. İMZA EFEKTLER
   html.js yoksa (JS kapalı / hata) HİÇBİR ŞEY gizlenmez.
   ========================================================================== */

/* 22a. blurin — kaydırmayla içeri gelme (imza efekt 2) */
.reveal{--d:calc(var(--i,0) * var(--reveal-ms))}
html.js .reveal{
  opacity:0;
  transform:translateY(var(--reveal-y));
  filter:blur(var(--reveal-blur));
  transition:opacity var(--dur-reveal) var(--ease) var(--d),
             transform var(--dur-reveal) var(--ease) var(--d),
             filter var(--dur-reveal) var(--ease) var(--d);
  will-change:opacity,transform,filter;
}
html.js .reveal.is-in{opacity:1;transform:none;filter:blur(0)}

/* 22b. harf harf açılan başlık (imza efekt 1) — JS .split__c üretir */
.split{display:block}
.split__c{display:inline-block;white-space:pre}
.split__w{display:inline-block;white-space:nowrap}
.split[data-split="word"] .split__c{--d:calc(var(--i,0) * var(--split-ms-word))}
.split[data-split="letter"] .split__c,
.split:not([data-split]) .split__c{--d:calc(var(--i,0) * var(--split-ms-letter))}
html.js .split .split__c{
  opacity:0;
  transform:translateY(var(--split-y));
  filter:blur(var(--split-blur));
  transition:opacity var(--dur-reveal) var(--ease) var(--d),
             transform var(--dur-reveal) var(--ease) var(--d),
             filter var(--dur-reveal) var(--ease) var(--d);
  will-change:opacity,transform,filter;
}
html.js .split.is-in .split__c{opacity:1;transform:none;filter:blur(0)}

/* 22c. gradyan metin vurgusu (sinema tonu) */
.grad{
  background:linear-gradient(180deg,var(--txt) 0%,var(--txt-2) 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .grad{color:var(--txt);-webkit-text-fill-color:currentColor}  /* 21:1 yedek */
}
.accent-word{color:var(--accent-txt)}   /* 7.16:1 — indigo METİN tonu */
.lime-word{color:var(--lime)}           /* 18.56:1 */

/* ==========================================================================
   22d. RENK YARDIMCILARI — bileşen kurallarını GEÇMELİ
   Sınıf iki kez yazıldı: özgüllük (0,2,0). Tablo/şerit içindeki renk
   kurallarının kâr/zarar rengini ezmesini böyle engelliyoruz. !important yok.
   ========================================================================== */
.up.up{color:var(--up)}         /* 12.05:1 (#000) · 9.92:1 (#1A1A22) */
.down.down{color:var(--down)}   /* 9.17:1 · 7.55:1 */
.wait.wait{color:var(--wait)}   /* 11.27:1 · 9.27:1 */
.muted.muted{color:var(--txt-2)}/* 7.65:1 · 6.30:1 */
.txt.txt{color:var(--txt)}      /* 21:1 · 17.29:1 */

/* ==========================================================================
   23. DUYARLI KIRILIMLAR — 1024 / 860 / 560
   ========================================================================== */
@media (max-width:1024px){
  :root{
    --fs-h1:52px; --fs-h2:40px; --fs-price:40px; --fs-num-lg:28px;
    --sec-y:96px; --sec-y-lg:112px; --hero-top:96px; --hero-bot:72px;
    --halo-size:720px;
  }
  .grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .features,.steps,.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .foot__grid{grid-template-columns:1fr 1fr 1fr;gap:var(--s8)}
  .foot__brand{grid-column:1 / -1}
}

@media (max-width:860px){
  :root{
    --fs-h1:42px; --fs-h2:32px; --fs-price:36px;
    --sec-y:80px; --sec-y-lg:96px; --hero-top:72px; --hero-bot:56px;
    --container:100%;
  }
  .nav__links,.nav__actions{display:none}
  .navbtn{display:inline-flex}
  .nav__inner{min-height:64px;gap:var(--s4)}
  .grid--2,.grid--3{grid-template-columns:1fr}
  .features,.steps,.price-grid{grid-template-columns:1fr}
  .form__row{grid-template-columns:1fr}
  .sec__head{margin-bottom:var(--s8)}
  .hero__panel{margin-top:var(--s12)}
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1 / -1}
}

@media (max-width:560px){
  :root{
    --fs-h1:34px; --fs-h2:27px; --fs-price:32px; --fs-num-lg:24px;
    --sec-y:64px; --sec-y-lg:72px; --hero-top:56px; --hero-bot:48px;
    --s6:16px;
    --halo-size:520px;
  }
  .container,.wrap{padding-inline:var(--s4)}
  .nav__inner{padding-inline:var(--s4)}
  .announce__inner{padding-inline:var(--s4);font-size:var(--fs-xs)}
  .kpi-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid var(--line);padding:var(--s6) var(--s5)}
  .stat:last-child{border-bottom:0}
  .card{padding:var(--s5)}
  .card--pad-lg{padding:var(--s6)}
  .risk{flex-direction:column;gap:var(--s3);padding:var(--s5)}
  .faq__q{padding:var(--s4);min-height:56px}
  .faq__a{padding:0 var(--s4) var(--s5)}
  .empty{padding:var(--s12) var(--s4)}
  .btn--block-sm{display:flex;width:100%}
  .hero__actions .btn{width:100%}
  .foot__grid{grid-template-columns:1fr;gap:var(--s8)}
  .tabs__list{width:100%}
  .tab{flex:1 1 auto;justify-content:center;padding-inline:var(--s3)}
}

/* ==========================================================================
   24. HAREKET AZALTMA — ZORUNLU
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    transition-delay:0ms!important;
    animation-delay:0ms!important;
    scroll-behavior:auto!important;
  }
  html.js .reveal,
  html.js .split .split__c{
    opacity:1!important;transform:none!important;filter:none!important;
  }
  .ticker__track{animation:none!important;width:auto;flex-wrap:wrap;justify-content:center}
  .dot--live::after{animation:none;opacity:0}
  .faq__item[open] .faq__a{animation:none}
  .btn:active{transform:none}
}

/* ---------- YATAY TASMA KILIDI -------------------------------------------
   Kapali mobil cekmece (.drawer) ekran disinda duruyor ama belge genisligini
   uzatiyordu: 600-790px arasi sayfa yatay kayiyordu. `clip`, `hidden`in aksine
   position:sticky'yi bozmaz. Denetci raporu 3 Eyl 2026.                     */
html, body { overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }

/* ==========================================================================
   EK BİLEŞENLER — 12 sayfa teslimi (03 Eyl 2026)
   Yalnızca :root'taki mevcut değişkenler kullanıldı; yeni renk uydurulmadı.
   ========================================================================== */

/* ---- .hide GLOBAL — ID seçicileri ezmesin ------------------------------- */
.hide{display:none !important}

/* ---- Ortalanmış form düzeni (login / register / admin girişi / qr) ------ */
.auth{max-width:460px;margin-inline:auto;padding-block:var(--s16) var(--s20)}
.auth__head{margin-bottom:var(--s8)}
.auth__title{font-size:36px;line-height:var(--lh-tight);letter-spacing:var(--ls-h2);
  font-weight:var(--w-mid);margin:0}
.auth__sub{margin-top:var(--s3);font-size:var(--fs-sm);color:var(--txt-2)}
.auth__foot{margin-top:var(--s6);text-align:center;font-size:var(--fs-sm);color:var(--txt-2)}
.auth__foot a{color:var(--accent-txt);font-weight:var(--w-semi);
  text-decoration:underline;text-underline-offset:3px}
.divider{display:flex;align-items:center;gap:var(--s4);margin-block:var(--s8);
  font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--txt-3)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---- Dosya seçici ------------------------------------------------------- */
.file{width:100%;min-height:48px;padding:10px 12px;background:var(--surface-inset);
  color:var(--txt);border:1px solid var(--border-ctl);border-radius:8px;
  font:inherit;font-size:var(--fs-sm);cursor:pointer}
.file::file-selector-button{margin-right:12px;padding:8px 14px;border:1px solid var(--border-ctl);
  border-radius:999px;background:var(--surface-2);color:var(--txt);
  font:inherit;font-size:var(--fs-sm);font-weight:var(--w-semi);cursor:pointer}
.file:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.file-prev{margin-top:var(--s3);max-width:220px;border:1px solid var(--line);border-radius:8px}

/* ---- Kopyalanabilir alan ------------------------------------------------ */
.copy{display:flex;gap:var(--s2);align-items:stretch}
.copy__val{flex:1;min-width:0;min-height:48px;display:flex;align-items:center;
  padding:0 var(--s4);background:var(--surface-inset);border:1px solid var(--line);
  border-radius:8px;font-size:var(--fs-sm);color:var(--txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Liste satırı (satın alım / çekim / davet / kayıt) ------------------ */
.lrow{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:center;
  justify-content:space-between;padding-block:var(--s4);border-bottom:1px solid var(--line)}
.lrow:last-child{border-bottom:0}
.lrow__main{min-width:0}
.lrow__t{font-size:var(--fs-sm);font-weight:var(--w-mid);color:var(--txt)}
.lrow__s{margin-top:2px;font-size:var(--fs-xs);color:var(--txt-3)}
.lrow__side{display:flex;align-items:center;gap:var(--s3);flex:none}
.lrow__amt{font-size:var(--fs-sm);font-weight:var(--w-semi);font-variant-numeric:tabular-nums}
.lrow__note{flex-basis:100%;font-size:var(--fs-sm);color:var(--txt-2);line-height:var(--lh-body)}
.lrow__shot{margin-top:var(--s3);max-width:220px;border:1px solid var(--line);border-radius:8px}

/* ---- Avatar ------------------------------------------------------------- */
.avatar{width:56px;height:56px;border-radius:50%;flex:none;overflow:hidden;position:relative;
  background:var(--surface-3);display:grid;place-items:center}
.avatar--lg{width:88px;height:88px}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar__ph{font-size:var(--fs-h3);font-weight:var(--w-semi);color:var(--accent-txt);
  letter-spacing:var(--ls-base)}

/* ---- Sol menülü tam ekran düzen (profil) ------------------------------- */
.side{display:grid;grid-template-columns:248px minmax(0,1fr);gap:var(--s8);
  align-items:start;padding-block:var(--s12) var(--s20)}
.side__nav{position:sticky;top:96px;display:flex;flex-direction:column;gap:var(--s1);
  padding:var(--s3);border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.side__item{min-height:44px;display:flex;align-items:center;gap:var(--s3);
  padding:0 var(--s4);border-radius:10px;font-size:var(--fs-sm);font-weight:var(--w-mid);
  color:var(--txt-2);text-align:left;background:none;border:0;cursor:pointer;
  transition:background .18s ease,color .18s ease}
.side__item:hover{background:var(--surface-2);color:var(--txt)}
.side__item[aria-selected="true"]{background:var(--accent-soft);color:var(--txt)}
.side__item svg{width:17px;height:17px;flex:none}
.side__body{min-width:0;display:grid;gap:var(--s6)}

/* ---- Sohbet ------------------------------------------------------------- */
.chat{display:flex;flex-direction:column;height:calc(100vh - 88px);min-height:520px}
.chat__head{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;
  justify-content:space-between;padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.chat__list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:var(--s5);padding-block:var(--s6)}
.chat__msg{display:flex;gap:var(--s4);align-items:flex-start}
.chat__msg .avatar{width:40px;height:40px}
.chat__b{min-width:0;flex:1}
.chat__meta{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:baseline}
.chat__who{font-size:var(--fs-sm);font-weight:var(--w-semi);color:var(--txt)}
.chat__time{font-size:var(--fs-xs);color:var(--txt-3);font-variant-numeric:tabular-nums}
.chat__txt{margin-top:var(--s1);font-size:var(--fs-sm);line-height:var(--lh-body);
  color:var(--txt-2);overflow-wrap:anywhere}
.chat__composer{position:sticky;bottom:0;display:flex;gap:var(--s3);align-items:flex-end;
  padding:var(--s4) 0 var(--s6);background:var(--bg);border-top:1px solid var(--line)}
.chat__composer .textarea{min-height:52px;max-height:150px;resize:vertical}
.chat__lock{flex:1;display:grid;place-items:center;text-align:center;padding:var(--s16) var(--s5)}

/* ---- QR çerçevesi ve kamera -------------------------------------------- */
.qrbox{width:max-content;margin-inline:auto;padding:14px;background:#FFFFFF;
  border-radius:12px;min-width:172px;min-height:172px;display:grid;place-items:center}
.qrbox canvas,.qrbox img{display:block}
.camera{width:100%;max-width:380px;margin:var(--s5) auto 0;aspect-ratio:1;
  display:block;border-radius:16px;background:var(--surface-inset);object-fit:cover}

/* ---- Duyarlı ------------------------------------------------------------ */
@media (max-width:900px){
  .side{grid-template-columns:1fr;gap:var(--s6)}
  .side__nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none}
  .side__nav::-webkit-scrollbar{display:none}
  .side__item{white-space:nowrap}
}
@media (max-width:560px){
  .auth{padding-block:var(--s10) var(--s16)}
  .auth__title{font-size:30px}
  .copy{flex-direction:column}
  .chat{height:calc(100vh - 72px)}
}
