/* ============================================================
   NextSaaS — TEMA DÜZELTMELERİ (yalnızca gerçek düzeltmeler)

   ÖNEMLİ: Bu dosyaya artık "eksik Tailwind utility" YAZILMAZ.
   Eksik utility'ler assets/theme-utilities.css'te, temanın kendi
   .cshtml bölümleri taranarak Tailwind ile ÜRETİLİR:

     npx @tailwindcss/cli@4.1.18 -i tailwind/input.css \
       -o NextSaaS/assets/theme-utilities.css --minify

   Elle yazılan utility kopyaları katmansız (unlayered) olduğu için
   main.css'in @layer utilities kurallarını EZİYOR ve md:/xl: responsive
   varyantlarını devre dışı bırakıyordu (2026-07-26 hero bozulması).
   ============================================================ */
/* ============================================================
   Dark mode — header/menü yüzey zeminleri
   TW v4'te opacity'li bg-accent/60 util'i dark:bg-* ile eşit özgüllükte
   olup sıra nedeniyle kazanabiliyor; explicit .dark .X kuralı (özgüllük 0,2,0)
   garantiyle bunları koyulaştırır. (2026-07-22 header dark fix)
   ============================================================ */
.dark .header-one { background-color: var(--color-background-9) !important; border-color: var(--color-stroke-6) !important; }
.dark .sidebar { background-color: var(--color-background-6) !important; }
.dark .dropdown-menu { background-color: var(--color-background-6) !important; }
.dark .nav-hamburger { background-color: var(--color-background-6) !important; }
.dark .nav-hamburger-close { background-color: var(--color-background-7) !important; }

/* ============================================================
   Fiyat planları — dinamik ortalama (1/2/3 kart hepsinde ortalı)
   grid-cols-12 + col-span-4 sabit yapı 2 kartta sola yaslıyordu.
   flex + justify-center ile kart sayısından bağımsız ortalanır.
   (2026-07-22)
   ============================================================ */
.ns-plan-grid { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: 2.5rem 2rem; }
.ns-plan-grid > .ns-plan-item { width: 100%; max-width: 380px; }
@media (min-width: 1024px) {
  .ns-plan-grid > .ns-plan-item { flex: 0 1 340px; max-width: 380px; }
}

/* ============================================================
   Sayfa preloader (yüklenirken spinner). Tema-aware (light/dark).
   window.load'da fade-out; 4sn güvenlik zaman aşımı. (2026-07-22)
   ============================================================ */
#ns-preloader { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; background-color: var(--color-background-2); transition: opacity .45s ease, visibility .45s ease; }
.dark #ns-preloader { background-color: var(--color-background-5); }
#ns-preloader.ns-hidden { opacity: 0; visibility: hidden; }
.ns-preloader-spinner { width: 48px; height: 48px; border: 4px solid rgba(0,0,0,.12); border-top-color: var(--color-secondary); border-radius: 50%; animation: ns-preloader-spin .8s linear infinite; }
.dark .ns-preloader-spinner { border-color: rgba(255,255,255,.15); border-top-color: var(--color-accent); }
@keyframes ns-preloader-spin { to { transform: rotate(360deg); } }


/* ============================================================
   Hero header-clearance — İÇ <main> negatif margin ile dış main'in 110px'ini iptal.
   Yapı: _Layout <main pt-[110px]> (login/section-dışı sayfalar için sabit header
   boşluğu) → @RenderBody() → Render.cshtml KENDİ <main>'i (page-builder section'ları).
   Section'lar bu 110px'i miras alıp aşağı iniyordu → header ile hero ARKA PLANI arasında
   body-zemin şeridi kalıyor, hero "menünün altına" girmiyordu. İç main dıştakinin
   padding'ini iptal eder → full-bleed hero header'ın ALTINDAN başlar (demo gibi); hero
   kendi pt-[320px]/md:200/xl:260 (main.css'te DERLENMİŞ) ile içeriği header'dan temizler.
   Login/section-dışı sayfalarda iç main YOK → 110px boşluk korunur. (2026-07-22)
   ============================================================ */
main > main { margin-top: -110px; }

/* Login/hesap DARK MOD token'ları ORTAK account.css'e (.dark) taşındı — dark'ı olan
   TÜM temalar (NextSaaS + Nexsas + ileride) tek yerden kapsansın diye. Burada yalnız
   sticky footer kaldı; o gerçekten temaya özel (her temanın footer/layout yapısı farklı). */

/* Sticky footer — kısa sayfalarda (login, hesap) footer ortada kalmayıp dibe otursun.
   preloader/header/theme-toggle position:fixed (flex dışı) → yalnız main+footer dizilir. */
/* :has(> footer) → yalnız site footer'ı olan sayfalarda (public). Builder canvas
   (Preview.cshtml) body'sinde footer YOK (yapı: body>#smooth-wrapper) → canvas'a
   sızıp layout bozmaz. */
body:has(> footer) { display: flex; flex-direction: column; min-height: 100vh; }
body:has(> footer) > main { flex: 1 0 auto; }
body:has(> footer) > footer { flex-shrink: 0; }
