/* ============================================================
 * features/legal.css — sözleşme sihirbazı + çerez popup'ı
 * (JS karşılığı: js/features/legal/)
 * ============================================================ */

/* ── Sözleşme popup'ları — motorda (core/popup.js) ────────────
   'pol' = onay SİHİRBAZI (gate: geri tuşu/ESC/karartma kapatmaz);
   'polread' = salt-okunur "Oku" penceresi (kapatılabilir). İkisinin
   kabuğu/zemin reçetesi popup.css iskeletinden; burada yalnız boyut
   ve sihirbazın KATMAN kararı yaşar. */
.pp[data-pp="pol"] {
  /* --z-gate: splash hâlâ ekrandayken (boot 5. adım) açılabilir; modal
     katmanında kalsaydı splash'in altında görünmez olurdu (2026-07-10). */
  --pp-z: var(--z-gate);
  --pp-w: 560px; --pp-pad: 18px;
}
.pp[data-pp="polread"] { --pp-w: 560px; --pp-pad: 18px; }
.pol-head { padding: 20px 24px 0; }
.pol-head-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.pol-step { font-size: 12px; font-weight: 700; color: var(--text-3); }
.pol-badge { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: var(--r-full); }
.pol-badge.req { background: var(--danger-soft); color: var(--danger); }
.pol-badge.opt { background: var(--surface-2); color: var(--text-2); }
.pol-badge.on { background: var(--ok-soft); color: var(--ok); }
.pol-title { font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.pol-progress { height: 4px; border-radius: 4px; background: var(--surface-3); margin: 14px 0 0; overflow: hidden; }
.pol-progress-fill { height: 100%; background: var(--accent-grad); transition: width var(--tr-med); }
.pol-body {
  flex: 1; overflow-y: auto; padding: 16px 24px;
  font-size: 14px; line-height: 1.65; color: var(--text-2);
}
.pol-body h1, .pol-body h2, .pol-body h3 { color: var(--text); margin: 14px 0 6px; }
.pol-body h1 { font-size: 18px; } .pol-body h2 { font-size: 16px; } .pol-body h3 { font-size: 14.5px; }
.pol-body p { margin: 8px 0; }
.pol-body ul { margin: 8px 0; padding-left: 20px; }
/* border-top ve pol-msg'nin sabit boşluğu kaldırıldı (2026-07-06):
   pol-msg = kaydetme durumu/hata satırı — yalnız doluyken görünür */
.pol-foot {
  padding: 14px 24px 20px;
  display: flex; flex-direction: column; gap: 8px;
}
.pol-msg { font-size: 12.5px; color: var(--text-3); }
.pol-msg:empty { display: none; }
.pol-msg.error { color: var(--danger); }
.pol-ro-head { display: flex; align-items: center; gap: 10px; padding: 18px 24px 0; }
.pol-ro-head h2 { flex: 1; font-size: 17px; }

/* ── Çerez banner'ı — köşede yüzen kart (2026-07-10) ──────────────
   Toast metaforu: karartma/blur YOK, sayfayı bloklamaz — arkadaki
   uygulama (login ekranı dahil) kullanılabilir kalır, kullanıcıyı
   ortada dev bir modal ile korkutmaz. Yalnız kartın kendisi tıklanır
   (wrap pointer-events:none), böylece dışına tıklamak uygulamaya
   geçer, banner'ı yanlışlıkla kapatmaz.
   Konum: login ÖNCESİ sol-alt; login SONRASI desktop'ta sağ-alt
   (.cook-bd--right, cookies.js token'a bakarak ekler). */
.cook-bd {
  position: absolute;
  left: 18px; bottom: 18px; z-index: var(--z-toast);
  width: min(370px, calc(100vw - 36px));
  pointer-events: none;
  animation: cook-in var(--tr-med);
}
.cook-bd--right { left: auto; right: 18px; }
@keyframes cook-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
/* Çizgisiz premium yüzey: border YOK (kullanıcı kararı 2026-07-10);
   hacmi hero ışıması + gölge + cam kenar ışığı verir. */
.cook-banner {
  pointer-events: auto;
  width: 100%;
  background-color: var(--panel-bg);
  background-image: var(--bgg-img, none);
  border-radius: var(--r-lg); box-shadow: var(--shadow-3), var(--glass-edge);
  backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  overflow: hidden;
  display: flex; flex-direction: column; max-height: min(70svh, 560px);
}
.cook-head { display: flex; align-items: center; gap: 10px; padding: 16px 18px 0; }
.cook-head > i { font-size: 16px; color: var(--accent); }
.cook-head h3 { flex: 1; font-size: 15px; }
.cook-body { padding: 8px 18px; overflow-y: auto; font-size: 13px; line-height: 1.55; color: var(--text-2); }
.cook-cats { display: none; margin-top: 10px; }
.cook-banner.expanded .cook-cats { display: block; }
.cook-cat {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 10px 0; border-top: 1px solid var(--border);
}
.cook-cat-info b { font-size: 13px; color: var(--text); display: flex; gap: 8px; align-items: center; }
.cook-cat-info p { margin: 3px 0 0; font-size: 12px; color: var(--text-3); }
.cook-toggle-link { font-size: 12.5px; color: var(--accent); font-weight: 600; margin-top: 8px; }
.cook-foot { display: flex; gap: 8px; padding: 12px 18px 16px; flex-wrap: wrap; }
/* "Sadece zorunlu" dahil buton border'ları da çizgisiz (2026-07-10) */
.cook-foot .btn { flex: 1; font-size: 13px; border: 0; }
.cook-preserved { margin-top: 10px; font-size: 11.5px; color: var(--text-3); display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }

/* Mobil: köşe yerine alt-tam-genişlik şerit; yüzen dock'un ÜSTÜNDE
   otursun (dock ~76px + güvenli alan). Yine karartmasız/non-blocking. */
@media (max-width: 860px) {
  .cook-bd {
    left: 10px; right: 10px; width: auto;
    bottom: calc(84px + var(--safe-bottom));
  }
}

/* Profilden açılış — POPUP MOTORUNDA modal (2026-07-20 birleşme):
   sözleşme popup'ıyla aynı his (ortalanır, karartma+blur, dışına
   tıklamak/ESC/geri tuşu kapatır — hepsi motorda). Boot banner'ı
   köşede karartmasız kalır (üstteki .cook-bd — popup DEĞİL).
   'expanded' durum sınıfı modal yüzde kimlik köküne yazılır. */
.pp[data-pp="cookies"] { --pp-w: 440px; --pp-pad: 18px; }
.pp[data-pp="cookies"] .cook-body { flex: 1; min-height: 0; }
.pp[data-pp="cookies"].expanded .cook-cats { display: block; }
