/* ============================================================
   EREN İNŞAAT — YÖNETİM PANELİ DÜZENİ
   panel-layout.js tarafından enjekte edilen kabuğun stilleri. (K2.5)
   ============================================================ */

.panel-govde { background: var(--bg); }

.p-kabuk {
  display: grid;
  grid-template-columns: var(--panel-sol) 1fr;
  grid-template-rows: var(--panel-ust) 1fr;
  grid-template-areas: "header header" "menu icerik";
  min-height: 100vh;
}

/* ------------------------------------------------------------ HEADER */
.p-header {
  grid-area: header; position: sticky; top: 0; z-index: 60;
  display: flex; align-items: center; gap: var(--bosluk-4);
  padding: 0 var(--bosluk-5) 0 var(--bosluk-4);
  background: rgba(12, 12, 24, .94); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--cizgi);
}

.p-marka {
  display: flex; align-items: center; gap: 10px; text-decoration: none;
  width: calc(var(--panel-sol) - var(--bosluk-4) - var(--bosluk-4)); flex: 0 0 auto;
}
.p-marka:hover { text-decoration: none; }
.p-marka-yazi { line-height: 1.15; min-width: 0; }
.p-marka-yazi b {
  display: block; font-size: 14px; font-weight: 700; letter-spacing: .16em; color: var(--metin);
}
.p-marka-yazi small {
  display: block; font-size: 9.5px; letter-spacing: .16em; color: var(--silik); text-transform: uppercase;
}

.p-menu-dugme { display: none; }

.p-ara { flex: 1 1 auto; max-width: 420px; }
.p-ara .girdi { background: var(--yuzey-2); }

.p-header-sag { display: flex; align-items: center; gap: var(--bosluk-3); margin-left: auto; flex: 0 0 auto; }

.p-ortam {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px;
  border-radius: 99px; border: 1px solid var(--cizgi-2); background: var(--yuzey-2);
  font-size: 12px; font-weight: 600; color: var(--metin-3); white-space: nowrap;
}
.p-ortam:hover { color: var(--metin); border-color: var(--cizgi-3); text-decoration: none; }
.p-ortam svg { width: 13px; height: 13px; }

.p-kullanici {
  display: flex; align-items: center; gap: 9px; padding: 5px 9px 5px 5px;
  background: transparent; border: 1px solid transparent; border-radius: 99px;
  cursor: pointer; font-family: inherit; color: var(--metin);
}
.p-kullanici:hover { background: var(--yuzey-2); border-color: var(--cizgi); }
.p-kullanici svg { width: 13px; height: 13px; color: var(--silik); }
.p-kullanici-yazi { text-align: left; line-height: 1.2; }
.p-kullanici-yazi b { display: block; font-size: 12.5px; font-weight: 600; }
.p-kullanici-yazi small { display: block; font-size: 10.5px; color: var(--silik); }

/* ------------------------------------------------------------ SOL MENÜ */
.p-menu {
  grid-area: menu; position: sticky; top: var(--panel-ust);
  height: calc(100vh - var(--panel-ust));
  display: flex; flex-direction: column;
  background: var(--yuzey); border-right: 1px solid var(--cizgi);
}
.p-menu-ic { flex: 1 1 auto; overflow-y: auto; padding: var(--bosluk-4) 10px; }

.p-menu-grup {
  font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  color: var(--cok-silik); padding: 14px 10px 6px;
}
.p-menu-grup:first-child { padding-top: 4px; }

.p-menu-oge {
  display: flex; align-items: center; gap: 11px;
  padding: 8px 10px; border-radius: var(--yaricap-s);
  font-size: 13px; font-weight: 550; color: var(--metin-3);
  text-decoration: none; position: relative; transition: background .13s ease, color .13s ease;
}
.p-menu-oge:hover { background: var(--yuzey-2); color: var(--metin); text-decoration: none; }
.p-menu-oge svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--silik); }
.p-menu-oge span { flex: 1 1 auto; min-width: 0; }

.p-menu-oge.aktif { background: var(--kirmizi-sis); color: var(--metin); font-weight: 650; }
.p-menu-oge.aktif svg { color: var(--kirmizi-ac); }
.p-menu-oge.aktif::before {
  content: ""; position: absolute; left: -10px; top: 50%; transform: translateY(-50%);
  width: 3px; height: 20px; background: var(--kirmizi); border-radius: 0 3px 3px 0;
}

.p-menu-rozet {
  font-style: normal; font-size: 10.5px; font-weight: 700; padding: 1px 7px;
  border-radius: 99px; background: var(--kirmizi); color: #fff; flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
}

.p-menu-alt { padding: 12px 12px 14px; border-top: 1px solid var(--cizgi); }
.p-menu-not {
  display: flex; gap: 9px; align-items: flex-start;
  padding: 10px 11px; border-radius: var(--yaricap-s);
  background: var(--d-durakladi-sis); border: 1px solid rgba(245, 138, 21, .25);
}
.p-menu-not svg { width: 14px; height: 14px; color: var(--d-durakladi); flex: 0 0 auto; margin-top: 1px; }
.p-menu-not b { display: block; font-size: 11.5px; color: #F7CF9B; }
.p-menu-not span { display: block; font-size: 10.5px; color: var(--silik); line-height: 1.4; }

/* ------------------------------------------------------------ İÇERİK */
.p-icerik {
  grid-area: icerik; min-width: 0;
  display: flex; flex-direction: column;
  padding: var(--bosluk-5) var(--bosluk-5) 0;
}
.p-icerik-govde { flex: 1 1 auto; min-width: 0; padding-bottom: var(--bosluk-6); }

.p-footer {
  display: flex; align-items: center; justify-content: space-between; gap: var(--bosluk-4);
  padding: 14px 0; margin-top: auto;
  border-top: 1px solid var(--cizgi); font-size: 11.5px; color: var(--cok-silik); flex-wrap: wrap;
}
.p-footer b { color: var(--metin-3); font-weight: 600; }
.p-footer-orta { text-align: center; }

/* ------------------------------------------------------------ SAYFA İÇİ ORTAK KALIPLAR */
.bolum-baslik {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--bosluk-3); margin: var(--bosluk-5) 0 var(--bosluk-3); flex-wrap: wrap;
}
.bolum-baslik h3 { font-size: 15px; }
.bolum-baslik .yan { font-size: 12px; color: var(--silik); }

.iki-sutun { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: var(--bosluk-4); }
.uc-iki { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--bosluk-4); }

/* Proje satırı — listelerde tekrar eden kalıp */
.proje-satir { display: flex; align-items: center; gap: var(--bosluk-3); min-width: 0; }
.proje-kapak {
  width: 46px; height: 46px; border-radius: var(--yaricap-s); flex: 0 0 auto;
  overflow: hidden; background: var(--yuzey-3); border: 1px solid var(--cizgi-2);
}
.proje-kapak svg { width: 100%; height: 100%; display: block; }
.proje-bilgi { min-width: 0; }
.proje-bilgi b { display: block; font-size: 13.5px; color: var(--metin); font-weight: 600; }
.proje-bilgi small { display: block; font-size: 11.5px; color: var(--silik); }

/* ------------------------------------------------------------ DUYARLI */
@media (max-width: 1100px) {
  .iki-sutun, .uc-iki { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .p-kabuk { grid-template-columns: 1fr; grid-template-areas: "header" "icerik"; }
  .p-menu-dugme { display: grid; }
  .p-marka { width: auto; }
  .p-ara { display: none; }
  .p-ortam span { display: none; }
  .p-menu {
    position: fixed; top: var(--panel-ust); left: 0; width: 260px; z-index: 55;
    transform: translateX(-100%); transition: transform .22s ease; box-shadow: var(--golge-3);
  }
  .menu-acik .p-menu { transform: translateX(0); }
  .p-icerik { padding: var(--bosluk-4) var(--bosluk-4) 0; }
  .p-kullanici-yazi { display: none; }
}

/* ============================================================
   KİMLİK EKRANLARI (giriş, şifremi unuttum, şifre sıfırlama)
   Bu ekranlarda panel kabuğu yoktur; ortak kalıp burada. (K2.5)
   ============================================================ */
.k-govde {
  min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
}
.k-sol {
  position: relative; overflow: hidden; padding: var(--bosluk-7);
  display: flex; flex-direction: column; justify-content: space-between;
  border-right: 1px solid var(--cizgi);
  background-image: radial-gradient(80% 60% at 20% 0%, rgba(204, 12, 24, .16) 0%, transparent 64%),
                    radial-gradient(70% 50% at 100% 100%, #0C1824 0%, transparent 62%);
}
.k-sol-logo { width: 132px; }
.k-sol h2 { font-size: 27px; letter-spacing: -.03em; max-width: 16ch; margin-bottom: var(--bosluk-3); }
.k-sol p { color: var(--metin-3); max-width: 44ch; font-size: 14px; }
.k-ozellik { display: flex; flex-direction: column; gap: 13px; margin-top: var(--bosluk-5); }
.k-ozellik div { display: flex; gap: 11px; align-items: flex-start; font-size: 13px; color: var(--metin-3); }
.k-ozellik svg { width: 16px; height: 16px; color: var(--kirmizi-ac); flex: 0 0 auto; margin-top: 2px; }
.k-sol-alt { font-size: 11.5px; color: var(--cok-silik); }

.k-sag { display: grid; place-items: center; padding: var(--bosluk-6) var(--bosluk-5); }
.k-kutu { width: 100%; max-width: 396px; }
.k-kutu > .marka-mini { display: none; }
.k-kutu h1 { font-size: 23px; margin-bottom: 6px; }
.k-kutu .alt-yazi { color: var(--silik); font-size: 13.5px; margin-bottom: var(--bosluk-5); }
.k-form { display: flex; flex-direction: column; gap: var(--bosluk-4); }
.k-form .btn { width: 100%; }
.k-ayrac { display: flex; align-items: center; gap: 12px; color: var(--cok-silik); font-size: 11px; margin: var(--bosluk-4) 0; }
.k-ayrac::before, .k-ayrac::after { content: ""; flex: 1; height: 1px; background: var(--cizgi); }
.k-alt-bag { text-align: center; font-size: 12.5px; color: var(--silik); margin-top: var(--bosluk-4); }
.k-demo-not {
  margin-top: var(--bosluk-5); padding: 12px 14px; border-radius: var(--yaricap-s);
  background: var(--d-durakladi-sis); border: 1px solid rgba(245, 138, 21, .25);
  font-size: 11.5px; color: var(--metin-3); display: flex; gap: 9px; align-items: flex-start;
}
.k-demo-not svg { width: 14px; height: 14px; color: var(--d-durakladi); flex: 0 0 auto; margin-top: 1px; }
.k-demo-not b { color: #F7CF9B; }

.k-adimlar { display: flex; gap: 7px; margin-bottom: var(--bosluk-5); }
.k-adim { flex: 1; height: 3px; border-radius: 99px; background: var(--yuzey-3); }
.k-adim.aktif { background: var(--kirmizi); }
.k-adim.gecti { background: var(--d-tamam); }

@media (max-width: 900px) {
  .k-govde { grid-template-columns: 1fr; }
  .k-sol { display: none; }
  .k-kutu > .marka-mini { display: flex; align-items: center; gap: 10px; justify-content: center; margin-bottom: var(--bosluk-5); }
}

/* ============================================================
   RAZOR PANELİ EKLERİ (demoda karşılığı yok — K1.8)
   ============================================================ */

/* `hidden` niteliği HER ZAMAN gizler. Tarayıcının varsayılan kuralı en düşük özgüllüktedir;
   `.btn` gibi kendi display değerini taşıyan bir sınıf onu ezer ve "gizli" işaretli öğe
   ekranda kalır (ilerleme sayfasının "Geri Al" düğmesi böyle görünür kaldı). */
[hidden] { display: none !important; }

/* Ortak sayfalama bileşeni kartın DİBİNE çizilir; demoda hiç kullanılmadığı için kendi
   dolgusu yoktur ve kart kenarına yapışık görünüyordu (proje listesi, denetim kaydı,
   ilerleme geçmişi). Ölçüler .kart-alt ile aynıdır. */
.kart > .sayfalama {
  padding: 12px 18px; border-top: 1px solid var(--cizgi); background: var(--yuzey-2);
}

/* Modalın tek çocuğu olan form, kaydırma sözleşmesini ÜSTLENİR: `.modal` display:flex +
   overflow:hidden'dır ve `.modal-govde` ancak flex kolonunun DOĞRUDAN çocuğuyken
   kaydırılır. Araya form girince gövde blok akışında kalır, kısıtlanmaz ve kısa ekranda
   modalın alt şeridi (Vazgeç + gönder düğmesi) kırpılıp ERİŞİLEMEZ olur (Blocks'ta
   ölçüldü). Eskiden her forma satır içi `style` yazılıyordu; kural TEK yerde durur. */
.modal > form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }

/* Aç/kapa YAPILMAYAN ağaç düğümü (proje aşamaları, şablon düzenleyici). Tasarım
   sistemindeki `.agac-bas` tıklanır bir akordeon başlığıdır (cursor:pointer, hover
   zemini); bu sayfalarda düğümler HEP açıktır ve başlık girdi/düğme taşır — el imleci
   "buraya tıkla" diye yalan söyler, hover ise olmayan bir eylemi vaat ederdi (K1.4/K1.8). */
.agac-bas.sabit { cursor: default; user-select: auto; }
.agac-bas.sabit:hover { background: transparent; }

/* Seçilemeyen onay kutusu (müşteriye kapalı proje müşteri hesabına atanamaz: kayıt onayı ve
   proje atama). Tasarım sistemindeki `.kutu-etiket` HER ZAMAN cursor:pointer'dır; devre dışı bir
   kutuda el imleci "buraya tıkla" diye yalan söyler — `.agac-bas.sabit` ile aynı gerekçe
   (K1.4/K1.8). Soluklaştırma kapalı olduğunu renk dışında da gösterir. */
.kutu-etiket.pasif { cursor: default; opacity: .55; }

/* Uyarı kutusunun ikonu BÜZÜLMEZ. panel.js SVG'yi `<span data-ikon>`'un İÇİNE yerleştirir; esnek
   kutunun çocuğu SVG değil SPAN'dır ve `.uyari svg { flex: 0 0 auto }` yanlış öğeye bağlı kalır.
   Dar kutuda uzun metin varken span büzülür, SVG (tema.css max-width:100%) onunla daralır ve ikon
   7x16 piksele ezilir — onay kartında ve ret penceresinde ölçüldü, şablon listesinde de 15x16 idi
   (K1.8: DOM testi bunu göremez, ekran görüntüsü gördü). */
.uyari > [data-ikon] { flex: 0 0 auto; }

/* Arama kutusu sarmalayıcısını DOLDURUR. `.filtre-serit .ara` en az genişliği `girdi-onek`
   sarmalayıcısına verir, içteki `.girdi` ise `width:auto` kalır; uzun yer tutucu ("Ad, e-posta veya
   telefon ara…") kesiliyordu. Genişlik yer tutucunun sığacağı ölçüdedir. */
.filtre-serit .girdi-onek.ara { min-width: 260px; }
.girdi-onek.ara .girdi { flex: 1 1 auto; min-width: 0; }

/* Dar ekranda ağaç satırları KIRILIR: `.agac-bas`/`.agac-yaprak` sarmaz ve `.agac-dugum`
   overflow:hidden olduğu için sağa düşen Düzenle/Sil düğmeleri kırpılır ve ERİŞİLEMEZ
   olurdu. Yaprağın 50px'lik girintisi de dar ekranda ad kutusuna yer bırakmaz. */
@media (max-width: 700px) {
  .agac-bas.sabit, .agac-yaprak.sabit { flex-wrap: wrap; }
  .agac-yaprak.sabit { padding-left: 14px; }

  /* Proje kutusu satırı (kayıt onayı): ad TAM satırı alır, ilerleme ve rozetler alt satıra iner. Sabit
     150px ilerleme yuvası + "Talep etti" + "Müşteriye kapalı" rozetleri 390px'te etiketi ~27px AŞIYOR,
     ad ~24px'e sıkışıyor ve sayfa yatay kayıyordu (faz3-kullanicilar.js §15 ölçtü; bağımsız denetim
     öngörmüştü). */
  .kutu-etiket { flex-wrap: wrap; row-gap: 6px; }
  .kutu-etiket > .proje-bilgi { flex: 1 1 calc(100% - 30px); }
}

/* Medya sayfaları (Plan/03 #14–#15). Demo `medya-yukle.html` bırakma alanını sayfanın KENDİ <style>
   bloğunda tanımlıyordu; panelde tasarım sistemine taşındı (K1.8: sınıf önce buraya eklenir). Demodaki
   `.kuyruk-*` kuralları taşınmadı: panelde yükleme kuyruğu yoktur (başlık istek başınadır). */
.birak {
  border: 2px dashed var(--cizgi-3); border-radius: var(--yaricap-l);
  padding: var(--bosluk-7) var(--bosluk-5); text-align: center;
  background: var(--yuzey-2); transition: border-color .16s ease, background .16s ease;
}
.birak.uzerinde { border-color: var(--kirmizi); background: var(--kirmizi-sis); }
.birak svg { width: 36px; height: 36px; color: var(--silik); margin: 0 auto var(--bosluk-3); }

/* Dosya kutusu GÖRÜNÜR kalır: betik kapalıyken de seçim yapılır ve tarayıcı seçimi kendisi yazar (K1.4).
   Yalnızca düğmesi tasarım sistemine (.btn-ikincil) uydurulur. */
.birak input[type="file"] {
  display: block; margin: var(--bosluk-3) auto 0; max-width: 100%;
  font-family: inherit; font-size: 12.5px; color: var(--metin-2);
}
.birak input[type="file"]::file-selector-button {
  font: inherit; font-weight: 600; margin-right: 10px; padding: 7px 13px; cursor: pointer;
  border-radius: var(--yaricap-s); border: 1px solid var(--cizgi-2); background: var(--yuzey-3); color: var(--metin);
}
.birak input[type="file"]::file-selector-button:hover { background: var(--yuzey-4); border-color: var(--cizgi-3); }
.dosya-ozeti { text-align: left; font-size: 12px; color: var(--metin-2); }
.dosya-ozeti ul { margin: 6px 0 0; padding-left: 18px; }
.dosya-ozeti li { word-break: break-all; }

/* Galeri kutucuğu bir BAĞLANTIDIR (_MedyaKutucugu): `.medya-oge` el imleci ve yükselme taşır. */
.medya-bag { display: block; color: inherit; text-decoration: none; border-radius: var(--yaricap-s); }
.medya-bag:hover { text-decoration: none; }
.medya-bag:focus-visible { outline: 2px solid var(--kirmizi); outline-offset: 2px; }

/* Galeri hücresi: kutucuk + altındaki eylem düğmeleri. */
.medya-hucre { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

/* Gösterge panelinin "son medya" satırındaki küçük görsel (Home/Index). */
.medya-onizleme {
  width: 40px; height: 30px; object-fit: cover; flex: 0 0 auto;
  border-radius: 4px; border: 1px solid var(--cizgi-2);
}

/* ---- Herkese açık yasal sayfalar (Yasal/Gizlilik, Yasal/HesapSilme — mağaza kaydındaki adresler, 2026-09-18).
   Kimlik düzeninin 396 px'lik kutusu uzun aydınlatma metni için okunaksızdı: tek sütun, okunur satır uzunluğu. */
.yasal-govde { min-height: 100vh; display: flex; flex-direction: column; }
.yasal-bas, .yasal-icerik { width: 100%; max-width: 820px; margin: 0 auto; padding-left: var(--bosluk-4); padding-right: var(--bosluk-4); }
.yasal-bas { padding-top: var(--bosluk-5); }
.yasal-icerik { flex: 1; padding-top: var(--bosluk-5); padding-bottom: var(--bosluk-6); }
.yasal-icerik h1 { font-size: 24px; margin-bottom: 6px; }
.yasal-tarih { color: var(--silik); font-size: 13px; margin-bottom: var(--bosluk-4); }
.yasal-metin h2 { font-size: 16px; margin: var(--bosluk-5) 0 var(--bosluk-2); }
.yasal-metin p, .yasal-metin li { color: var(--metin-2); font-size: 14.5px; line-height: 1.7; }
.yasal-metin p { margin: 0 0 var(--bosluk-3); }
.yasal-metin ul { margin: 0 0 var(--bosluk-3); padding-left: 22px; }
.yasal-form { max-width: 460px; }
.yasal-alt { text-align: center; font-size: 12px; color: var(--cok-silik); padding: var(--bosluk-4); }
.yasal-alt a { color: var(--metin-3); }
