/* sezer.in çerez onayı — yalnızca --sz-* tokenları kullanılır, hiçbiri tanımlanmaz.
   Yedek değerler sadece sezerin-design.css yüklenemezse devreye girer.
   Tek istisna karartmanın rgba(0,0,0,.45) değeridir: tasarım katmanında bir
   scrim/overlay RENK tokenı yok, yalnızca --sz-z-overlay katman tokenı var. */

/* Kendi kendine yeten kutu modeli. Tema resetine GÜVENİLMEZ: content-box
   kaldığında max-height dolguyu saymaz ve kart kısa ekranlarda viewport'un
   dışına taşar. */
#sz-cc, #sz-cc *, #sz-cc *::before, #sz-cc *::after,
#sz-cc-reopen, #sz-cc-reopen *{
  box-sizing:border-box;
}

/* --- Karartma: yalnızca "Tercihler" paneli açıkken. Banner hâlinde yok,
       çünkü banner içeriği bloklamamalı. --- */
#sz-cc-scrim{
  position:fixed; inset:0;
  z-index:var(--sz-z-overlay, 1200);
  background:rgba(0,0,0,.45);
  opacity:0;
  transition:opacity var(--sz-dur-2, 180ms) var(--sz-ease-out, cubic-bezier(.16,1,.3,1));
}
#sz-cc-scrim[data-on]{ opacity:1; }

/* --- Kart --- */
.sz-cc{
  position:fixed;
  isolation:isolate;
  left:var(--sz-space-4, 1rem);
  bottom:var(--sz-space-4, 1rem);
  z-index:var(--sz-z-modal, 1300);
  width:min(25.5rem, calc(100vw - var(--sz-space-8, 2rem)));
  max-height:calc(100dvh - var(--sz-space-8, 2rem));
  overflow-y:auto;
  overscroll-behavior:contain;

  padding:var(--sz-space-4, 1rem);
  background:var(--sz-panel, #fff);
  color:var(--sz-text, #22272e);
  border:1px solid var(--sz-border, #dde1e6);
  border-radius:var(--sz-radius-xl, 20px);
  box-shadow:var(--sz-shadow-lg, 0 12px 28px -6px rgba(0,0,0,.18));

  font-family:var(--sz-font-body, system-ui, sans-serif);
  font-size:var(--sz-text-xs, .8125rem);
  line-height:var(--sz-leading-normal, 1.65);
}

/* Üstte zümrüt şerit. Köşe yarıçapı kadar içeriden başlıyor ki oval köşeyi
   kesmesin; alt ucu yuvarlatılmış, kartın içine asılı duruyor. */
.sz-cc::before{
  content:"";
  position:absolute;
  top:0;
  left:var(--sz-radius-xl, 20px);
  right:var(--sz-radius-xl, 20px);
  height:3px;
  border-radius:0 0 var(--sz-radius-pill, 999px) var(--sz-radius-pill, 999px);
  background:linear-gradient(90deg, var(--sz-accent-strong, #047857), var(--sz-accent-deep, #065f46));
}

/* Giriş animasyonu */
@keyframes sz-cc-in{
  from{ opacity:0; transform:translateY(14px) scale(.97); }
  to  { opacity:1; transform:none; }
}
.sz-cc[data-ready]{
  animation:sz-cc-in var(--sz-dur-4, 400ms) var(--sz-ease-spring, cubic-bezier(.34,1.56,.64,1)) both;
}
@media (prefers-reduced-motion:reduce){
  .sz-cc[data-ready]{ animation:none; }
  #sz-cc-scrim{ transition:none; }
}

.sz-cc__title{
  margin:var(--sz-space-2, .5rem) 0 var(--sz-space-1, .25rem);
  font-family:var(--sz-font-head, system-ui, sans-serif);
  font-size:var(--sz-text-sm, .875rem);
  font-weight:var(--sz-weight-semibold, 600);
  letter-spacing:var(--sz-tracking-snug, -.01em);
  line-height:var(--sz-leading-snug, 1.3);
  color:var(--sz-text, #22272e);
}

.sz-cc__desc{
  margin:0;
  color:var(--sz-text-muted, #4d5661);
  font-size:var(--sz-text-xs, .8125rem);
}

.sz-cc__policy{
  color:var(--sz-accent-text, #047857);
  text-decoration:underline;
  text-underline-offset:2px;
  white-space:nowrap;
}
.sz-cc__policy:hover{ color:var(--sz-accent-text-hover, #065f46); }

/* --- Açılır tercih paneli: 0fr -> 1fr ile yumuşak, sabit yükseklik gerekmeden --- */
.sz-cc__panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows var(--sz-dur-3, 240ms) var(--sz-ease-out, cubic-bezier(.16,1,.3,1));
}
.sz-cc[data-open] .sz-cc__panel{ grid-template-rows:1fr; }

/* KAPALIYKEN ODAK ALINAMAZ — bu bloğu kaldırmayın.
   0fr satır + overflow:hidden içeriği yalnızca GÖRSEL olarak kırpar. İçerideki
   <button>'lar kendi yüksekliklerini (22px) korur, sekme sırasında kalır ve
   aria-hidden="true" bir kapsayıcının içinde odak alır. Bu iki ihlal demek:
   axe "aria-hidden-focus" ve WCAG 2.4.7 (odak ekranda görünmüyor).
   Tarayıcıda ölçüldü: panel kapalıyken Tab sırası
   Ayrıntılar -> [analytics] -> [ads] -> Reddet ... şeklindeydi.
   JS ayrıca panele `inert` koyuyor; buradaki visibility, inert desteklemeyen
   tarayıcılar için ikinci savunma hattıdır ve elemanı sekme sırasından çıkarır.
   Geçiş gecikmesi, kapanma animasyonu bitmeden görünürlüğün kaybolmamasını
   sağlar. */
.sz-cc__panel-inner{
  display:flex;
  flex-direction:column;
  gap:var(--sz-space-1, .25rem);
  margin-top:var(--sz-space-3, .75rem);
  overflow:hidden;
  visibility:hidden;
  transition:visibility 0s linear var(--sz-dur-3, 240ms);
}
.sz-cc[data-open] .sz-cc__panel-inner{
  visibility:visible;
  transition-delay:0s;
}
@media (prefers-reduced-motion:reduce){
  .sz-cc__panel{ transition:none; }
  .sz-cc__panel-inner{ transition:none; }
}

.sz-cc__row{
  display:flex;
  align-items:flex-start;
  gap:var(--sz-space-3, .75rem);
  padding:var(--sz-space-3, .75rem);
  background:var(--sz-surface-2, #eef1f4);
  border:1px solid var(--sz-border-subtle, #eaedf0);
  border-radius:var(--sz-radius-lg, 14px);
}

.sz-cc__row-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }

.sz-cc__row-title{
  font-size:var(--sz-text-xs, .8125rem);
  font-weight:var(--sz-weight-semibold, 600);
  color:var(--sz-text, #22272e);
}
.sz-cc__row-desc{
  font-size:var(--sz-text-2xs, .75rem);
  line-height:var(--sz-leading-snug, 1.3);
  color:var(--sz-text-subtle, #5f6a78);
}

.sz-cc__locked{
  flex:0 0 auto;
  margin-top:2px;
  padding:3px var(--sz-space-2, .5rem);
  font-size:var(--sz-text-2xs, .75rem);
  font-weight:var(--sz-weight-medium, 500);
  color:var(--sz-accent-text, #047857);
  background:var(--sz-accent-soft, #ecfdf5);
  border:1px solid var(--sz-accent-strong, #047857);
  border-radius:var(--sz-radius-pill, 999px);
  white-space:nowrap;
}

/* --- Anahtar --- */
.sz-cc__switch{
  flex:0 0 auto;
  position:relative;
  width:38px; height:22px;
  margin-top:2px;
  padding:0;
  border:1px solid var(--sz-border-strong, #c3c9d1);
  border-radius:var(--sz-radius-pill, 999px);
  background:var(--sz-surface, #fff);
  cursor:pointer;
  transition:background-color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1)),
             border-color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1));
}
.sz-cc__knob{
  position:absolute; top:2px; left:2px;
  width:16px; height:16px;
  border-radius:var(--sz-radius-pill, 999px);
  background:var(--sz-border-strong, #c3c9d1);
  transition:transform var(--sz-dur-2, 180ms) var(--sz-ease-spring, cubic-bezier(.34,1.56,.64,1)),
             background-color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1));
}
.sz-cc__switch[aria-checked="true"]{
  background:var(--sz-accent-strong, #047857);
  border-color:var(--sz-accent-strong, #047857);
}
.sz-cc__switch[aria-checked="true"] .sz-cc__knob{
  transform:translateX(16px);
  background:var(--sz-btn-fg, #fff);
}
@media (prefers-reduced-motion:reduce){
  .sz-cc__switch, .sz-cc__knob{ transition:none; }
}

/* --- Eylemler --------------------------------------------------------------
   "Tümünü reddet" ve "Tümünü kabul et" BİREBİR AYNI stile sahiptir: aynı zemin,
   aynı yazı rengi, aynı ölçü, aynı köşe, aynı hover, aynı basılma hareketi.
   Bu yüzden tek bir kuralda toplandılar; iki ayrı kural, ileride birinin
   sessizce farklılaşmasına davetiye çıkarırdı.

   NEDEN BÖYLE: Önceki sürümde reddet --sz-btn-muted-bg (gri), kabul
   --sz-btn-bg (zümrüt) idi. Ölçüldüğünde açık temada fark küçüktü (karta
   karşı kontrast 5,48 : 4,83 = 1,13x) ama KOYU temada uçurum açılıyordu:
   kabul 9,98, reddet 2,02 - yani 4,93x. Koyu temada reddet düğmesi kartın
   zemininde neredeyse kayboluyor, kabul düğmesi parlıyordu. EDPB 03/2022
   (aldatıcı tasarım kalıpları) tam olarak bu durumu sayıyor. Şimdi fark
   her iki temada da 1,00x.

   BU İKİ DÜĞMENİN GÖRÜNÜMÜNÜ AYRIŞTIRMAYIN. ---------------------------------- */
.sz-cc__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sz-space-2, .5rem);
  margin-top:var(--sz-space-4, 1rem);
}

.sz-cc__btn--reject,
.sz-cc__btn--accept{
  min-height:var(--sz-ctl-h, 44px);
  padding:0 var(--sz-space-3, .75rem);
  background:var(--sz-btn-bg, #047857);
  color:var(--sz-btn-fg, #fff);
  border:1px solid transparent;
  border-radius:var(--sz-radius-pill, 999px);
  font-family:inherit;
  font-size:var(--sz-text-xs, .8125rem);
  font-weight:var(--sz-weight-semibold, 600);
  line-height:1;
  cursor:pointer;
  transition:background-color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1)),
             transform var(--sz-dur-1, 120ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1));
}
.sz-cc__btn--reject:hover,
.sz-cc__btn--accept:hover{ background:var(--sz-btn-bg-hover, #065f46); }
.sz-cc__btn--reject:active,
.sz-cc__btn--accept:active{ transform:translateY(1px); }
@media (prefers-reduced-motion:reduce){
  .sz-cc__btn--reject, .sz-cc__btn--accept{ transition:none; }
  .sz-cc__btn--reject:active, .sz-cc__btn--accept:active{ transform:none; }
}

/* Üçüncül eylem — panel aç / seçimi kaydet */
.sz-cc__link{
  display:block;
  width:100%;
  min-height:36px;
  margin-top:var(--sz-space-2, .5rem);
  padding:0 var(--sz-space-3, .75rem);
  background:transparent;
  color:var(--sz-text-muted, #4d5661);
  border:1px solid var(--sz-border, #dde1e6);
  border-radius:var(--sz-radius-pill, 999px);
  font-family:inherit;
  font-size:var(--sz-text-2xs, .75rem);
  font-weight:var(--sz-weight-medium, 500);
  cursor:pointer;
  transition:border-color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1)),
             color var(--sz-dur-2, 180ms) var(--sz-ease-standard, cubic-bezier(.2,0,0,1));
}
.sz-cc__link:hover{
  color:var(--sz-accent-text, #047857);
  border-color:var(--sz-accent-strong, #047857);
}
.sz-cc__link--save{
  color:var(--sz-accent-text, #047857);
  border-color:var(--sz-accent-strong, #047857);
}
@media (prefers-reduced-motion:reduce){ .sz-cc__link{ transition:none; } }

/* --- Odak halkası: tema _reset.scss outline'ı kapattığı için !important --- */
.sz-cc button:focus-visible,
.sz-cc a:focus-visible,
.sz-cc-reopen__btn:focus-visible{
  outline:3px solid var(--sz-focus, #047857) !important;
  outline-offset:2px !important;
  border-radius:var(--sz-radius-pill, 999px);
}

/* --- Footer'daki yeniden açma bağlantısı --- */
.sz-cc-reopen{
  margin:var(--sz-space-3, .75rem) 0 0;
  text-align:center;
  font-size:var(--sz-text-2xs, .75rem);
}
/* RENK SEÇİMİ ÖLÇÜMLE YAPILDI — --sz-footer-link KULLANMAYIN.
   Bu bağlantı canlı sitede #footer'ın SONUNA giriyor ve oradaki #footer
   elemanının kendi arka planı YOK (rgba(0,0,0,0)); boyayan şey body:
   açık temada #f4f6f8, koyu temada #0b0e12.
   --sz-footer-link (#6ee7b7) temanın KENDİ koyu footer'ı (--sz-footer-bg
   #0f1a17) için üretilmiş bir token; bu zeminde geçerli değil. opacity:.75
   ile birlikte ölçüldüğünde açık temada kontrast 1,30:1 çıkıyordu - yani
   bağlantı pratikte görünmezdi. Bu yalnızca bir okunabilirlik sorunu değil:
   onayı geri çekmenin TEK yolu bu bağlantı, ve GDPR geri çekmenin en az
   vermek kadar kolay olmasını şart koşuyor.
   --sz-text-muted her iki temada da geçiyor: 6,88 (açık) / 11,48 (koyu).
   Hover'da --sz-accent-text: 5,06 / 10,06. opacity kaldırıldı. */
.sz-cc-reopen__btn{
  padding:2px 0;
  background:none;
  border:0;
  color:var(--sz-text-muted, #4d5661);
  font-family:inherit;
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
.sz-cc-reopen__btn:hover{ color:var(--sz-accent-text, #047857); }

/* --- Mobil: alt şerit, tam genişlik, yine oval --- */
@media (max-width:600px){
  .sz-cc{
    left:var(--sz-space-2, .5rem);
    right:var(--sz-space-2, .5rem);
    bottom:var(--sz-space-2, .5rem);
    width:auto;
    padding:var(--sz-space-4, 1rem);
    border-radius:var(--sz-radius-lg, 14px);
  }
  /* Şerit girintisi köşe yarıçapıyla aynı kalsın */
  .sz-cc::before{
    left:var(--sz-radius-lg, 14px);
    right:var(--sz-radius-lg, 14px);
  }
}

/* --- 360px'in altında düğmeler alt alta --- */
@media (max-width:360px){
  .sz-cc__actions{ grid-template-columns:1fr; }
}

/* hidden HER ZAMAN kazanır.
   Yukarıdaki display:block/grid kuralları olmasa bu satır gereksiz görünürdü ama
   değil: [hidden] yalnızca display:none'lık bir UA kuralıdır ve sınıf seçicisi
   onu ezer. JS yüklenmezse banner da bu sayede hiç görünmez. */
#sz-cc [hidden], .sz-cc[hidden], #sz-cc-scrim[hidden], .sz-cc-reopen[hidden]{
  display:none !important;
}
