/* ============================================================
   ARENA v5 — EMBER Design System  (v2.21.0 — kullanıcı paleti)
   Kimlik: mat kömür zemin (#121214 / #1E1E24) + kehribar-turuncu
   vurgu (#F59E0B / #FF7A00) + nane yeşili emanet onayı (#34D399);
   başlık #FFFFFF, detay #A1A1AA. Sora display.
   Kapsam: PAZAR (misafir) / KUPA (müşteri) / ATÖLYE (satıcı)
   ve KULE (admin) — v2.21.7'den itibaren DÖRT ALAN da EMBER
   kimliğinde: admin-body NOVA geri-yükleme blokları kaldırıldı,
   konsol artık ön yüzle aynı font/palet/zemin ailesini paylaşır.
   Erişilebilirlik: odak halkaları, reduced-motion, koyu mod.
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-var-latin-ext.woff2') format('woff2-variations');
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-var-latin.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Sora';
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url('../fonts/sora-var-latin.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Sora';
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url('../fonts/sora-var-latin-ext.woff2') format('woff2-variations');
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/space-grotesk-var-latin.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/space-grotesk-var-latin-ext.woff2') format('woff2-variations');
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Tokens — EMBER (standart: koyu kömür + kehribar) ----------
   Kullanıcı paleti: zemin #121214 · yüzey #1E1E24 · vurgu #F59E0B/#FF7A00 ·
   ikincil #34D399 (başarılı işlem + güvenli emanet onayı) ·
   başlık #FFFFFF · detay #A1A1AA. */
:root {
    --nz-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --nz-font-display: 'Sora', 'Inter', system-ui, sans-serif;

    /* Marka spektrumu: kehribar → turuncu (enerji) + nane yeşili (emanet güveni) */
    --nz-brand: #f59e0b;
    --nz-brand-2: #ff7a00;
    --nz-accent: #ff7a00;
    --nz-hot: #ff7a00;
    --nz-success: #34d399;
    --nz-danger: #f43f5e;
    --nz-warning: #fbbf24;
    --nz-info: #38bdf8;
    --nz-gold: #d97706;

    --nz-grad: linear-gradient(120deg, #f59e0b 0%, #ff7a00 100%);
    --nz-grad-cyan: linear-gradient(120deg, #34d399 0%, #6ee7b7 100%);
    --nz-grad-hot: linear-gradient(120deg, #ff7a00 0%, #f43f5e 100%);
    --nz-grad-soft: linear-gradient(135deg, rgba(245, 158, 11, .12), rgba(52, 211, 153, .10));

    --nz-bg: #121214;
    --nz-surface: #1e1e24;
    --nz-surface-2: #26262d;
    --nz-surface-3: #2e2e36;
    --nz-ink: #ffffff;
    --nz-ink-2: #d4d4d8;
    --nz-ink-3: #a1a1aa;
    --nz-faint: #71717a;
    --nz-border: #2a2a32;
    --nz-border-strong: #3a3a45;

    --nz-brand-soft: rgba(245, 158, 11, .14);
    --nz-accent-soft: rgba(255, 122, 0, .13);
    --nz-success-soft: rgba(52, 211, 153, .13);
    --nz-danger-soft: rgba(244, 63, 94, .13);
    --nz-warning-soft: rgba(251, 191, 36, .15);
    --nz-info-soft: rgba(56, 189, 248, .13);

    /* Türev yardımcılar — koyu zeminde küçük metin / etkileşim durumları.
       v2.21.7: KULE dahil tüm alanlar bu değerleri paylaşır. */
    --nz-brand-strong: #fbbf24;
    --nz-brand-bright: #fcd34d;
    --nz-brand-hover: #d97706;
    --nz-brand-active: #b45309;
    --nz-brand-shadow: rgba(245, 158, 11, .30);
    --nz-on-brand: #231303;
    --nz-on-success: #0b2b1d;
    --nz-success-strong: #6ee7b7;
    --nz-success-hover: #10b981;
    --nz-danger-strong: #fda4af;
    --nz-warning-strong: #fcd34d;
    --nz-info-strong: #7dd3fc;
    --nz-btn-dark-bg: #2e2e36;
    --nz-btn-dark-ink: #ffffff;
    --nz-selection: rgba(245, 158, 11, .28);

    --nz-radius-sm: 12px;
    --nz-radius: 16px;
    --nz-radius-lg: 22px;
    --nz-radius-xl: 30px;

    --nz-shadow-1: 0 1px 2px rgba(0, 0, 0, .40), 0 2px 8px rgba(0, 0, 0, .32);
    --nz-shadow-2: 0 8px 22px rgba(0, 0, 0, .45);
    --nz-shadow-3: 0 26px 60px rgba(0, 0, 0, .60);
    --nz-shadow-brand: 0 10px 26px rgba(245, 158, 11, .22);
    --nz-ring: 0 0 0 .25rem rgba(245, 158, 11, .28);

    --nz-head-h: 66px;
    --nz-topbar-h: 38px;

    /* Bootstrap köprüleri */
    --bs-body-bg: var(--nz-bg);
    --bs-body-color: var(--nz-ink);
    --bs-secondary-color: var(--nz-ink-3);
    --bs-tertiary-color: var(--nz-faint);
    --bs-secondary-bg: var(--nz-surface-2);
    --bs-tertiary-bg: var(--nz-surface-3);
    --bs-border-color: var(--nz-border);
    --bs-link-color: var(--nz-brand);
    --bs-link-hover-color: #fbbf24;
    --bs-primary: #f59e0b;
    --bs-primary-rgb: 245, 158, 11;
    --bs-danger-rgb: 244, 63, 94;
    --bs-success-rgb: 52, 211, 153;
    --bs-warning-rgb: 251, 191, 36;
    --bs-info-rgb: 56, 189, 248;
    --bs-emphasis-color: var(--nz-ink);
    /* v2.21.0: .bg-body/.text-body gibi yardımcılar RGB üçlüsü okur — EMBER'e köprüle */
    --bs-body-bg-rgb: 18, 18, 20;
    --bs-secondary-bg-rgb: 38, 38, 45;
    --bs-tertiary-bg-rgb: 46, 46, 54;
    --bs-body-color-rgb: 212, 212, 216;
    --bs-emphasis-color-rgb: 255, 255, 255;
    /* v2.21.7: .text-secondary Bootstrap sabiti (#6c757d) koyu zeminde soluk
       kalır (3.8:1) — EMBER ink-3 üçlüsüne köprülenir (≈7:1). */
    --bs-secondary-rgb: 161, 161, 170;
}

/* ---------- v2.21.7 — Bootstrap açık-palet kalıntı köprüleri ----------
   Bağlamsal tablo satır sınıfları (.table-primary/.table-danger/...)
   Bootstrap 5.3'te AÇIK palet zeminleriyle sabittir (#cfe2ff, #f8d7da...)
   ve [data-bs-theme=dark] altında da değişmez — EMBER kömür zeminde
   açık-mavi/açık-pembe bantlar olarak patlar (okunmaz). Yalnız kullanılan
   sınıflar köprülenir; EMBER soft zeminler + ink metin ile. */
.table-primary {
    --bs-table-color: var(--nz-ink);
    --bs-table-bg: var(--nz-brand-soft);
    --bs-table-border-color: var(--nz-border);
    --bs-table-striped-bg: color-mix(in srgb, var(--nz-brand) 20%, transparent);
    --bs-table-striped-color: var(--nz-ink);
    --bs-table-active-bg: color-mix(in srgb, var(--nz-brand) 24%, transparent);
    --bs-table-active-color: var(--nz-ink);
    --bs-table-hover-bg: color-mix(in srgb, var(--nz-brand) 22%, transparent);
    --bs-table-hover-color: var(--nz-ink);
}
.table-danger {
    --bs-table-color: var(--nz-ink);
    --bs-table-bg: var(--nz-danger-soft);
    --bs-table-border-color: var(--nz-border);
    --bs-table-striped-bg: color-mix(in srgb, var(--nz-danger) 18%, transparent);
    --bs-table-striped-color: var(--nz-ink);
    --bs-table-active-bg: color-mix(in srgb, var(--nz-danger) 22%, transparent);
    --bs-table-active-color: var(--nz-ink);
    --bs-table-hover-bg: color-mix(in srgb, var(--nz-danger) 20%, transparent);
    --bs-table-hover-color: var(--nz-ink);
}
.table-warning {
    --bs-table-color: var(--nz-ink);
    --bs-table-bg: var(--nz-warning-soft);
    --bs-table-border-color: var(--nz-border);
    --bs-table-striped-bg: color-mix(in srgb, var(--nz-warning) 18%, transparent);
    --bs-table-striped-color: var(--nz-ink);
    --bs-table-active-bg: color-mix(in srgb, var(--nz-warning) 22%, transparent);
    --bs-table-active-color: var(--nz-ink);
    --bs-table-hover-bg: color-mix(in srgb, var(--nz-warning) 20%, transparent);
    --bs-table-hover-color: var(--nz-ink);
}
.table-secondary, .table-light, .table-active {
    --bs-table-color: var(--nz-ink);
    --bs-table-bg: var(--nz-surface-2);
    --bs-table-border-color: var(--nz-border);
    --bs-table-striped-bg: var(--nz-surface-3);
    --bs-table-striped-color: var(--nz-ink);
    --bs-table-active-bg: var(--nz-surface-3);
    --bs-table-active-color: var(--nz-ink);
    --bs-table-hover-bg: var(--nz-surface-3);
    --bs-table-hover-color: var(--nz-ink);
}
/* .text-danger Bootstrap.rgb (#f43f5e) koyu zeminde 4.47:1 — AA'nın altında;
   EMBER "koyu zeminde tehlike metni" belirteci danger-strong'a (≈7:1) köprülenir.
   !important ŞART — Bootstrap utility'si de !important taşır. */
.text-danger { color: var(--nz-danger-strong) !important; }

/* ---------- v2.21.7 — düz (solid) rozetler EMBER soft rozet diline ----------
   Bootstrap .text-bg-* pastel açık zemin + beyaz/siyah metinle sabittir;
   EMBER vurgu renkleri pastel olduğu için beyaz metin okunmaz hale gelir
   (amber üstü beyaz 1.7:1). Ön yüzdeki badge-soft-* diliyle eşitlenir. */
.text-bg-primary { color: var(--nz-brand-strong) !important; background-color: var(--nz-brand-soft) !important; }
.text-bg-secondary { color: var(--nz-ink-2) !important; background-color: var(--nz-surface-3) !important; }
.text-bg-success { color: var(--nz-success-strong) !important; background-color: var(--nz-success-soft) !important; }
.text-bg-danger { color: var(--nz-danger-strong) !important; background-color: var(--nz-danger-soft) !important; }
.text-bg-warning { color: var(--nz-warning-strong) !important; background-color: var(--nz-warning-soft) !important; }
.text-bg-info { color: var(--nz-info-strong) !important; background-color: var(--nz-info-soft) !important; }
.text-bg-light { color: var(--nz-ink) !important; background-color: var(--nz-surface-2) !important; }
.text-bg-dark { color: var(--nz-btn-dark-ink) !important; background-color: var(--nz-btn-dark-bg) !important; }

/* .bg-light açık-palet zemin utility'si koyu zeminde beyaz-duvar olur —
   EMBER surface-2'ye köprülenir (bootstrap utility !important taşır). */
.bg-light { background-color: var(--nz-surface-2) !important; }

/* ---------- Tokens — EMBER KOYU (gece varyantı) ---------- */
[data-bs-theme="dark"] {
    --nz-bg: #0c0c0e;
    --nz-surface: #17171b;
    --nz-surface-2: #1f1f25;
    --nz-surface-3: #272730;
    --nz-faint: #6a6a73;
    --nz-border: #232329;
    --nz-border-strong: #30303a;

    --nz-btn-dark-bg: #f4f4f5;
    --nz-btn-dark-ink: #18181b;

    --bs-body-bg-rgb: 12, 12, 14;
    --bs-secondary-bg-rgb: 31, 31, 37;
    --bs-tertiary-bg-rgb: 39, 39, 48;

    --nz-shadow-1: 0 1px 2px rgba(0, 0, 0, .50), 0 2px 8px rgba(0, 0, 0, .40);
    --nz-shadow-2: 0 8px 22px rgba(0, 0, 0, .55);
    --nz-shadow-3: 0 26px 60px rgba(0, 0, 0, .70);
}

/* ---------- KULE (admin) — EMBER kimliği (v2.21.7) ----------
   v2.21.0'daki NOVA geri-yükleme blokları KALDIRILDI: yönetim konsolu
   artık :root'taki EMBER token'larını olduğu gibi miras alır — ön yüzdeki
   font (Inter/Sora), kehribar vurgu, kömür zemin ve gölge ailesi aynen
   geçerlidir. EMBER'in açık varyantı yoktur; "light" çözümlemesi de
   :root EMBER zeminini gösterir (ön yüzle aynı davranış).
   Yalnız form denetimleri/scrollbar için color-scheme kilitlenir. */
body.admin-body {
    color-scheme: dark;
}

/* v2.21.0 NOT: eski "KARANLIK (derin orman)" token bloğu kaldırıldı —
   koyu mod artık EMBER gece varyantı; KULE de aynı varyantı paylaşır. */

/* ---------- Temel ---------- */
html { scroll-behavior: smooth; }
body {
    font-family: var(--nz-font-body);
    background: var(--nz-bg);
    color: var(--nz-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    /* v2.21.0: EMBER koyu zemin — form denetimleri/scrollbar da koyu render olur.
       admin-body kendi color-scheme'ini geri yükler (yukarıdaki blok). */
    color-scheme: dark;
}
h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--nz-font-display);
    letter-spacing: -.015em;
    font-weight: 700;
}
a { color: var(--nz-brand); text-decoration: none; }
a:hover { color: var(--bs-link-hover-color, #fbbf24); }
::selection { background: var(--nz-selection); }
:focus-visible { outline: 2px solid var(--nz-brand); outline-offset: 2px; border-radius: 6px; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--nz-border-strong); border-radius: 99px; border: 2px solid var(--nz-bg); }
::-webkit-scrollbar-thumb:hover { background: var(--nz-faint); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Düğmeler ---------- */
.btn {
    --bs-btn-border-radius: 999px;
    font-weight: 600;
    border-radius: 999px;
    transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-lg { --bs-btn-padding-y: .7rem; }
.btn-primary {
    --bs-btn-bg: var(--nz-brand);
    --bs-btn-border-color: var(--nz-brand);
    --bs-btn-hover-bg: var(--nz-brand-hover);
    --bs-btn-hover-border-color: var(--nz-brand-hover);
    --bs-btn-active-bg: var(--nz-brand-active);
    --bs-btn-active-border-color: var(--nz-brand-active);
    --bs-btn-disabled-bg: var(--nz-brand);
    --bs-btn-disabled-border-color: var(--nz-brand);
    color: var(--nz-on-brand);
    box-shadow: 0 4px 14px var(--nz-brand-shadow);
}
[data-bs-theme="dark"] .btn-primary {
    color: var(--nz-on-brand);
    box-shadow: 0 4px 16px var(--nz-brand-shadow);
}
[data-bs-theme="dark"] .btn-primary:hover { background: var(--nz-brand-bright); border-color: var(--nz-brand-bright); color: var(--nz-on-brand); }
.btn-outline-primary {
    --bs-btn-color: var(--nz-brand);
    --bs-btn-border-color: var(--nz-brand);
    --bs-btn-hover-bg: var(--nz-brand);
    --bs-btn-hover-border-color: var(--nz-brand);
    --bs-btn-active-bg: var(--nz-brand);
    --bs-btn-active-border-color: var(--nz-brand);
    --bs-btn-disabled-color: var(--nz-brand);
    --bs-btn-disabled-border-color: var(--nz-brand);
}
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-color: var(--nz-brand); --bs-btn-hover-color: var(--nz-on-brand); --bs-btn-active-color: var(--nz-on-brand); }
.btn-secondary { --bs-btn-bg: var(--nz-surface-3); --bs-btn-border-color: var(--nz-surface-3); --bs-btn-hover-bg: var(--nz-border-strong); --bs-btn-hover-border-color: var(--nz-border-strong); color: var(--nz-ink); }
[data-bs-theme="dark"] .btn-secondary { color: var(--nz-ink); }
.btn-outline-secondary { --bs-btn-color: var(--nz-ink-2); --bs-btn-border-color: var(--nz-border-strong); --bs-btn-hover-bg: var(--nz-surface-2); --bs-btn-hover-border-color: var(--nz-border-strong); --bs-btn-hover-color: var(--nz-ink); --bs-btn-disabled-color: var(--nz-ink-2); --bs-btn-disabled-border-color: var(--nz-border-strong); }
/* v2.21.7: Bootstrap kalan outline/link düğmeleri sabit açık-palet hex
   metinleriyle gelir (#0d6efd, #dc3545...) — koyu zeminde kontrast düşer.
   EMBER belirteçlerine köprülenir; hover zeminleri pastel olduğundan
   hover metni on-brand/on-success koyu tonuna geçer. */
.btn-link { --bs-btn-color: var(--nz-brand); --bs-btn-hover-color: var(--nz-brand-bright); --bs-btn-active-color: var(--nz-brand-bright); --bs-btn-disabled-color: var(--nz-faint); }
.btn-outline-success { --bs-btn-color: var(--nz-success-strong); --bs-btn-border-color: var(--nz-success); --bs-btn-hover-bg: var(--nz-success); --bs-btn-hover-border-color: var(--nz-success); --bs-btn-hover-color: var(--nz-on-success); --bs-btn-active-bg: var(--nz-success); --bs-btn-active-color: var(--nz-on-success); --bs-btn-disabled-color: var(--nz-success); --bs-btn-disabled-border-color: var(--nz-success); }
.btn-outline-danger { --bs-btn-color: var(--nz-danger-strong); --bs-btn-border-color: var(--nz-danger); --bs-btn-hover-bg: var(--nz-danger); --bs-btn-hover-border-color: var(--nz-danger); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--nz-danger); --bs-btn-active-color: #fff; --bs-btn-disabled-color: var(--nz-danger-strong); --bs-btn-disabled-border-color: var(--nz-danger); }
.btn-outline-warning { --bs-btn-color: var(--nz-warning-strong); --bs-btn-border-color: var(--nz-warning); --bs-btn-hover-bg: var(--nz-warning); --bs-btn-hover-border-color: var(--nz-warning); --bs-btn-hover-color: #21160a; --bs-btn-active-bg: var(--nz-warning); --bs-btn-active-color: #21160a; --bs-btn-disabled-color: var(--nz-warning); --bs-btn-disabled-border-color: var(--nz-warning); }
.btn-outline-info { --bs-btn-color: var(--nz-info-strong); --bs-btn-border-color: var(--nz-info); --bs-btn-hover-bg: var(--nz-info); --bs-btn-hover-border-color: var(--nz-info); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--nz-info); --bs-btn-active-color: #fff; --bs-btn-disabled-color: var(--nz-info); --bs-btn-disabled-border-color: var(--nz-info); }
.btn-success { --bs-btn-bg: var(--nz-success); --bs-btn-border-color: var(--nz-success); color: var(--nz-on-success); --bs-btn-hover-bg: var(--nz-success-hover); --bs-btn-hover-border-color: var(--nz-success-hover); --bs-btn-hover-color: var(--nz-on-success); --bs-btn-active-bg: var(--nz-success-hover); --bs-btn-active-color: var(--nz-on-success); }
.btn-danger { --bs-btn-bg: var(--nz-danger); --bs-btn-border-color: var(--nz-danger); }
.btn-warning { --bs-btn-bg: var(--nz-warning); --bs-btn-border-color: var(--nz-warning); color: #21160a; }
[data-bs-theme="dark"] .btn-warning { color: #21160a; }
.btn-info { --bs-btn-bg: var(--nz-info); --bs-btn-border-color: var(--nz-info); color: #fff; }
.btn-dark { --bs-btn-bg: var(--nz-btn-dark-bg); --bs-btn-border-color: var(--nz-btn-dark-bg); color: var(--nz-btn-dark-ink); }
[data-bs-theme="dark"] .btn-dark { --bs-btn-bg: var(--nz-btn-dark-bg); --bs-btn-border-color: var(--nz-btn-dark-bg); color: var(--nz-btn-dark-ink); }
.btn-light { --bs-btn-bg: var(--nz-surface); --bs-btn-border-color: var(--nz-border); color: var(--nz-ink); }
.btn-xl { padding: .9rem 1.9rem; font-size: 1.05rem; }
.btn-icon-only { width: 2.5rem; height: 2.5rem; display: inline-grid; place-items: center; padding: 0; }

.btn-gradient {
    background: var(--nz-grad);
    border: 0;
    color: #fff;
    box-shadow: var(--nz-shadow-brand);
}
.btn-gradient:hover, .btn-gradient:focus { background: var(--nz-grad); color: #fff; filter: saturate(1.12) brightness(1.05); transform: translateY(-1px); }
.btn-hot { background: var(--nz-grad-hot); border: 0; color: #fff; box-shadow: 0 6px 18px rgba(249, 115, 22, .30); }
.btn-hot:hover, .btn-hot:focus { background: var(--nz-grad-hot); color: #fff; filter: brightness(1.06); }
.btn-confirm { background: var(--nz-success); border: 0; color: #fff; }
.btn-confirm:hover { background: var(--nz-success-hover); color: #fff; }
.btn-glass {
    background: color-mix(in srgb, var(--nz-surface) 55%, transparent);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 1px solid var(--nz-border);
    color: var(--nz-ink);
}
.btn-glass:hover { background: var(--nz-surface); border-color: var(--nz-border-strong); color: var(--nz-ink); }
.btn-soft { background: var(--nz-surface-2); border: 1px solid transparent; color: var(--nz-ink-2); }
.btn-soft:hover { background: var(--nz-surface-3); color: var(--nz-ink); }
.btn-soft-primary { background: var(--nz-brand-soft); color: var(--nz-brand); border: 1px solid transparent; }
.btn-soft-primary:hover { background: var(--nz-brand); color: #fff; }
[data-bs-theme="dark"] .btn-soft-primary:hover { color: var(--nz-on-brand); }
.btn-soft-success { background: var(--nz-success-soft); color: var(--nz-success); border: 1px solid transparent; }
.btn-soft-success:hover { background: var(--nz-success); color: #fff; }
[data-bs-theme="dark"] .btn-soft-success { color: var(--nz-success-strong); }
[data-bs-theme="dark"] .btn-soft-success:hover { color: var(--nz-on-success); }
.btn-soft-warning { background: var(--nz-warning-soft); color: var(--nz-warning-strong); border: 1px solid transparent; }
.btn-soft-warning:hover { background: var(--nz-warning); color: #21160a; }
.btn-soft-danger { background: var(--nz-danger-soft); color: var(--nz-danger-strong); border: 1px solid transparent; }
.btn-soft-danger:hover { background: var(--nz-danger); color: #fff; }
[data-bs-theme="dark"] .btn-soft-danger { color: var(--nz-danger-strong); }
.btn-soft-secondary { background: var(--nz-surface-2); color: var(--nz-ink-2); border: 1px solid var(--nz-border); }
.btn-soft-secondary:hover { background: var(--nz-surface-3); color: var(--nz-ink); }

/* Ghost / ikon düğmeleri — auth sayfaları shells.css yüklemediği için
   v5'te theme.css'te tanımlı (v4'teki eksik kapatıldı). */
.btn-ghost {
    background: transparent;
    border: 1px solid transparent;
    color: var(--nz-ink-3);
    border-radius: 999px;
}
.btn-ghost:hover, .btn-ghost:focus { background: var(--nz-surface-2); color: var(--nz-ink); }
.btn-icon {
    width: 2.35rem; height: 2.35rem;
    display: inline-grid; place-items: center;
    padding: 0;
    border-radius: 999px;
}

/* ---------- Rozetler ---------- */
.badge { border-radius: 999px; font-weight: 600; letter-spacing: .01em; }
.badge-soft-primary { background: var(--nz-brand-soft); color: var(--nz-brand); }
[data-bs-theme="dark"] .badge-soft-primary { color: var(--nz-brand-strong); }
.badge-soft-success { background: var(--nz-success-soft); color: var(--nz-success); }
[data-bs-theme="dark"] .badge-soft-success { color: var(--nz-success-strong); }
.badge-soft-warning { background: var(--nz-warning-soft); color: var(--nz-gold); }
[data-bs-theme="dark"] .badge-soft-warning { color: var(--nz-warning-strong); }
.badge-soft-danger { background: var(--nz-danger-soft); color: var(--nz-danger); }
[data-bs-theme="dark"] .badge-soft-danger { color: var(--nz-danger-strong); }
.badge-soft-info { background: var(--nz-info-soft); color: var(--nz-info); }
[data-bs-theme="dark"] .badge-soft-info { color: var(--nz-info-strong); }
.badge-soft-secondary { background: var(--nz-surface-3); color: var(--nz-ink-3); }
.badge-soft-dark { background: var(--nz-ink-2); color: var(--nz-bg); }
.text-bg-primary-subtle { background: var(--nz-brand-soft) !important; color: var(--nz-brand) !important; }
[data-bs-theme="dark"] .text-bg-primary-subtle { color: var(--nz-brand-strong) !important; }
.text-bg-success-subtle { background: var(--nz-success-soft) !important; color: var(--nz-success) !important; }
[data-bs-theme="dark"] .text-bg-success-subtle { color: var(--nz-success-strong) !important; }
.text-bg-warning-subtle { background: var(--nz-warning-soft) !important; color: var(--nz-gold) !important; }
[data-bs-theme="dark"] .text-bg-warning-subtle { color: var(--nz-warning-strong) !important; }
.badge-level {
    display: inline-flex; align-items: center; gap: .3rem;
    background: var(--nz-grad); color: #fff; border-radius: 999px;
    padding: .28em .8em; font-size: .74rem; font-weight: 700;
}
.promo-badge {
    display: inline-flex; align-items: center; gap: .3rem;
    background: var(--nz-grad-hot); color: #fff; border-radius: 999px;
    padding: .26em .75em; font-size: .72rem; font-weight: 700;
}

/* ---------- Kartlar ---------- */
.card {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-lg);
    box-shadow: var(--nz-shadow-1);
    color: var(--nz-ink);
}
.card-header {
    background: transparent;
    border-bottom: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-lg) var(--nz-radius-lg) 0 0 !important;
    padding: 1rem 1.25rem;
    font-family: var(--nz-font-display);
}
.card-footer { background: transparent; border-top: 1px solid var(--nz-border); }
.card-glass {
    background: color-mix(in srgb, var(--nz-surface) 62%, transparent);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    border: 1px solid color-mix(in srgb, var(--nz-border) 70%, transparent);
}
.card-aurora {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--nz-border);
}
.card-aurora::before {
    content: '';
    position: absolute; inset: 0 0 auto 0; height: 3px;
    background: var(--nz-grad);
    border-radius: 999px;
}
.card-aurora::after {
    content: '';
    position: absolute; top: -70px; right: -70px;
    width: 220px; height: 220px; border-radius: 50%;
    background: radial-gradient(circle, var(--nz-brand-soft), transparent 68%);
    pointer-events: none;
}
.card-hover { transition: transform .18s ease, box-shadow .22s ease, border-color .22s ease; }
.card-hover:hover { transform: translateY(-3px); box-shadow: var(--nz-shadow-2); border-color: var(--nz-border-strong); }

/* ---------- Formlar ---------- */
.form-control, .form-select {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border-strong);
    color: var(--nz-ink);
    border-radius: var(--nz-radius-sm);
    padding: .55rem .9rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control::placeholder { color: var(--nz-faint); }
.form-control:focus, .form-select:focus {
    background: var(--nz-surface);
    border-color: var(--nz-brand);
    color: var(--nz-ink);
    box-shadow: var(--nz-ring);
}
.form-label { font-weight: 600; color: var(--nz-ink-2); font-size: .88rem; margin-bottom: .35rem; }
.required-label::after { content: ' *'; color: var(--nz-danger); font-weight: 700; }
.form-text { color: var(--nz-ink-3); }
.form-check-input { border-color: var(--nz-border-strong); }
.form-check-input:checked { background-color: var(--nz-brand); border-color: var(--nz-brand); }
.form-switch .form-check-input:checked { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }
.input-group-text {
    background: var(--nz-surface-2);
    border: 1px solid var(--nz-border-strong);
    color: var(--nz-ink-3);
    border-radius: var(--nz-radius-sm);
}
.input-group .form-control { border-radius: 0 var(--nz-radius-sm) var(--nz-radius-sm) 0; }
.input-group .input-group-text { border-radius: var(--nz-radius-sm) 0 0 var(--nz-radius-sm); }
.code-input {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 1.3rem;
    letter-spacing: .45em;
    text-align: center;
    padding-left: .45em;
}
.kbd-overlay { position: relative; }
.kbd-overlay kbd {
    position: absolute; right: .8rem; top: 50%; transform: translateY(-50%);
    background: var(--nz-surface-3); color: var(--nz-ink-3);
    border-radius: 8px; padding: .1em .5em; font-size: .72rem; pointer-events: none;
}

/* ---------- Tablolar ---------- */
.table {
    --bs-table-bg: transparent;
    color: var(--nz-ink-2);
    border-color: var(--nz-border);
    vertical-align: middle;
}
.table thead th {
    font-size: .74rem; text-transform: uppercase; letter-spacing: .07em;
    color: var(--nz-ink-3); font-weight: 700;
    border-bottom: 1px solid var(--nz-border-strong);
    /* v2.19.1 DÜZELTME: white-space:nowrap kaldırıldı — çok sütunlu tablolarda başlık
       genişliği tabloyu sütunundan taşırıyor, İşlem butonları yatay scroll'da
       kaybolup tıklanamaz oluyordu (ör. /yonetim/anomali-merkezi). Başlıklar
       artık gerektiğinde satır kırılıyor; tek kelimelik etiketler aynı görünür. */
}
/* v2.19.1 DÜZELTME: uzun kırılamayan token'lar (sipariş no, kural adı, e-posta)
   sütunun en-küçük genişliğini şişirip tabloyu sütunundan taşırmamalı.
   overflow-wrap:anywhere min-content'i küçültür — geniş yerde görünüm değişmez,
   dar yerde satır kırılır ve tablo sığar. */
.table td, .table th { overflow-wrap: anywhere; }
.table > :not(caption) > * > * { padding: .8rem .9rem; }
.table-light { --bs-table-bg: var(--nz-surface-2); --bs-table-color: var(--nz-ink-2); }
.table-condensed > :not(caption) > * > * { padding: .45rem .6rem; font-size: .86rem; }
.doc-table th { background: var(--nz-surface-2); }
.receipt-table td:first-child { color: var(--nz-ink-3); font-weight: 600; width: 42%; }
.attr-table td:first-child { color: var(--nz-ink-3); font-weight: 600; width: 34%; }
.avatar-cell img, .avatar-cell .avatar-sm { box-shadow: var(--nz-shadow-1); }

/* ---------- Açılır / Üst üste ---------- */
.dropdown-menu {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius);
    box-shadow: var(--nz-shadow-3);
    padding: .45rem;
}
.dropdown-item {
    color: var(--nz-ink-2);
    border-radius: 10px;
    padding: .5rem .8rem;
    font-size: .92rem;
    transition: background .12s ease, color .12s ease;
}
.dropdown-item:hover, .dropdown-item:focus { background: var(--nz-surface-2); color: var(--nz-ink); }
.dropdown-item.text-danger:hover { background: var(--nz-danger-soft); }
.dropdown-divider { border-color: var(--nz-border); opacity: 1; margin: .35rem .2rem; }

.modal-content {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-lg);
    box-shadow: var(--nz-shadow-3);
}
.modal-header { border-bottom: 1px solid var(--nz-border); }
.modal-footer { border-top: 1px solid var(--nz-border); }
.modal-backdrop { --bs-backdrop-opacity: .55; }

.toast {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius);
    box-shadow: var(--nz-shadow-3);
    color: var(--nz-ink);
}
.toast-container { z-index: 2000; }

/* ---------- Uyarılar ---------- */
.alert { border-radius: var(--nz-radius); border: 1px solid transparent; }
.alert-primary { background: var(--nz-brand-soft); color: var(--nz-brand); border-color: color-mix(in srgb, var(--nz-brand) 22%, transparent); }
[data-bs-theme="dark"] .alert-primary { color: var(--nz-brand-bright); }
.alert-success { background: var(--nz-success-soft); color: var(--nz-success); border-color: color-mix(in srgb, var(--nz-success) 22%, transparent); }
[data-bs-theme="dark"] .alert-success { color: var(--nz-success-strong); }
.alert-danger { background: var(--nz-danger-soft); color: var(--nz-danger); border-color: color-mix(in srgb, var(--nz-danger) 22%, transparent); }
[data-bs-theme="dark"] .alert-danger { color: var(--nz-danger-strong); }
.alert-warning { background: var(--nz-warning-soft); color: var(--nz-warning-strong); border-color: color-mix(in srgb, var(--nz-warning) 26%, transparent); }
[data-bs-theme="dark"] .alert-warning { color: var(--nz-warning-strong); }
.alert-info { background: var(--nz-info-soft); color: var(--nz-info); border-color: color-mix(in srgb, var(--nz-info) 22%, transparent); }
[data-bs-theme="dark"] .alert-info { color: var(--nz-info-strong); }
.alert-dark { background: var(--nz-ink); color: var(--nz-bg); }
.alert-light { background: var(--nz-surface-2); color: var(--nz-ink-2); border-color: var(--nz-border); }
.alert-soft-info { background: var(--nz-info-soft); color: var(--nz-info); border: 1px solid transparent; }
[data-bs-theme="dark"] .alert-soft-info { color: var(--nz-info-strong); }

/* ---------- Sayfalama / Sekmeler / Akordeon ---------- */
.pagination { --bs-pagination-border-radius: 999px; gap: .3rem; }
.page-item .page-link {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    color: var(--nz-ink-2);
    border-radius: 999px !important;
    font-weight: 600;
}
.page-item.active .page-link { background: var(--nz-brand); border-color: var(--nz-brand); color: #fff; }
[data-bs-theme="dark"] .page-item.active .page-link { color: var(--nz-on-brand); }
.page-item.disabled .page-link { background: var(--nz-surface-2); color: var(--nz-faint); }

.nav-tabs {
    border-bottom: 1px solid var(--nz-border);
    gap: .35rem;
}
.nav-tabs .nav-link {
    color: var(--nz-ink-3);
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    font-weight: 600;
    padding: .6rem 1rem;
    margin-bottom: -1px;
}
.nav-tabs .nav-link:hover { color: var(--nz-ink); }
.nav-tabs .nav-link.active {
    background: transparent;
    color: var(--nz-brand);
    border-bottom: 2px solid var(--nz-brand);
}
[data-bs-theme="dark"] .nav-tabs .nav-link.active { color: var(--nz-brand); background: transparent; }
.nav-pills { gap: .35rem; }
.nav-pills .nav-link { color: var(--nz-ink-2); border-radius: 999px; font-weight: 600; padding: .5rem 1.05rem; }
.nav-pills .nav-link:hover { background: var(--nz-surface-2); color: var(--nz-ink); }
.nav-pills .nav-link.active { background: var(--nz-brand); color: #fff; }
[data-bs-theme="dark"] .nav-pills .nav-link.active { color: var(--nz-on-brand); }

.accordion-item { background: var(--nz-surface); border: 1px solid var(--nz-border); border-radius: var(--nz-radius) !important; overflow: hidden; margin-bottom: .6rem; }
.accordion-button { background: var(--nz-surface); color: var(--nz-ink); font-weight: 600; box-shadow: none; }
.accordion-button:not(.collapsed) { background: var(--nz-brand-soft); color: var(--nz-brand); box-shadow: none; }
[data-bs-theme="dark"] .accordion-button:not(.collapsed) { color: var(--nz-brand-bright); }
.accordion-button:focus { box-shadow: var(--nz-ring); border-color: transparent; }
.faq-accordion .accordion-button { font-size: .98rem; padding: 1rem 1.2rem; }

/* ---------- Metin yardımcıları ---------- */
.text-gradient {
    background: var(--nz-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.text-brand { color: var(--nz-brand) !important; }
[data-bs-theme="dark"] .text-brand { color: var(--nz-brand) !important; }
.num-green { color: var(--nz-brand); font-variant-numeric: tabular-nums; font-weight: 700; }
[data-bs-theme="dark"] .num-green { color: var(--nz-brand-strong); }
.min-w-0 { min-width: 0; }
.w-40 { width: 40% !important; }
.hover-lift { transition: transform .18s ease, box-shadow .22s ease; }
.hover-lift:hover { transform: translateY(-3px); box-shadow: var(--nz-shadow-2); }
.divider-dot { display: flex; align-items: center; gap: .9rem; color: var(--nz-ink-3); font-size: .85rem; }
.divider-dot::before, .divider-dot::after { content: ''; flex: 1; height: 1px; background: var(--nz-border); }
.required-label { font-weight: 600; }
.stretched-link-wrap { position: relative; }
.first-child-no-radius:first-child { border-radius: var(--nz-radius-lg) var(--nz-radius-lg) 0 0; }
.last-child-no-border:last-child { border-bottom: 0; }
.is-empty { opacity: .55; border-style: dashed !important; }

/* ---------- Arka plan sahnesi (nz-*) ---------- */
.nz-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(52rem 30rem at 112% -8%, var(--nz-accent-soft), transparent 62%),
        radial-gradient(46rem 28rem at -12% 4%, var(--nz-brand-soft), transparent 60%),
        radial-gradient(38rem 24rem at 50% 118%, color-mix(in srgb, var(--nz-brand-2) 12%, transparent), transparent 66%);
}
.nz-bg::after {
    content: '';
    position: absolute; inset: 0;
    background-image: radial-gradient(color-mix(in srgb, var(--nz-border-strong) 62%, transparent) 1px, transparent 1px);
    background-size: 26px 26px;
    opacity: .5;
    -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.55), transparent 42%);
    mask-image: linear-gradient(180deg, rgba(0,0,0,.55), transparent 42%);
}
.nz-orb { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .5; }
.nz-orb-a { width: 420px; height: 420px; top: -140px; right: -100px; background: radial-gradient(circle, var(--nz-brand-soft), transparent 70%); }
.nz-orb-b { width: 360px; height: 360px; top: 30%; left: -160px; background: radial-gradient(circle, var(--nz-accent-soft), transparent 70%); }
.nz-orb-c { width: 300px; height: 300px; bottom: -120px; right: 22%; background: radial-gradient(circle, color-mix(in srgb, var(--nz-brand-2) 14%, transparent), transparent 70%); }
.nz-progress {
    position: fixed;
    top: 0; left: 0;
    height: 3px; width: 0;
    background: var(--nz-grad);
    z-index: 3000;
    border-radius: 0 999px 999px 0;
    transition: width .12s linear;
}

/* ---------- Boş durum / hata / bakım ---------- */
.empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    border: 1.5px dashed var(--nz-border-strong);
    border-radius: var(--nz-radius-lg);
    background: color-mix(in srgb, var(--nz-surface) 55%, transparent);
}
.empty-icon {
    width: 64px; height: 64px;
    margin: 0 auto 1rem;
    display: grid; place-items: center;
    font-size: 1.6rem;
    border-radius: 20px;
    background: var(--nz-brand-soft);
    color: var(--nz-brand);
}
[data-bs-theme="dark"] .empty-icon { color: var(--nz-brand-strong); }
.error-page { min-height: 60vh; display: grid; place-items: center; text-align: center; }
.error-code {
    font-family: var(--nz-font-display);
    font-size: clamp(4.5rem, 14vw, 9rem);
    font-weight: 800;
    line-height: 1;
    background: var(--nz-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.maintenance-wrap { min-height: 70vh; display: grid; place-items: center; }
.maintenance-card {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-xl);
    box-shadow: var(--nz-shadow-2);
    padding: 3rem 2.2rem;
    max-width: 460px;
    text-align: center;
}

/* ---------- İstatistik ailesi ---------- */
.stat-card { border-radius: var(--nz-radius-lg); }
.stat-icon {
    width: 2.75rem; height: 2.75rem;
    display: inline-grid; place-items: center;
    font-size: 1.15rem;
    border-radius: 14px;
    flex-shrink: 0;
}
.stat-value {
    font-family: var(--nz-font-display);
    font-size: 1.65rem;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.1;
}
.stat-delta { font-size: .78rem; font-weight: 600; }
.stat-delta.up { color: var(--nz-success); }
.stat-delta.down { color: var(--nz-danger); }
.stat-inline { display: inline-flex; align-items: baseline; gap: .4rem; }
.kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
    gap: 1rem;
}
.quick-stat-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.6rem;
    padding: .9rem 1.2rem;
    background: var(--nz-surface-2);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius);
    font-size: .9rem;
}
.quick-stat-strip strong { font-family: var(--nz-font-display); }
.funnel-track {
    height: 12px;
    background: var(--nz-surface-3);
    border-radius: 999px;
    overflow: hidden;
    display: flex;
}
.funnel-bar {
    height: 100%;
    background: var(--nz-grad);
    border-radius: 999px;
    min-width: 4px;
    transition: width .6s cubic-bezier(.2,.8,.2,1);
}

/* ---------- Zaman çizelgesi / adımlar / sihirbaz ---------- */
.timeline-item { position: relative; padding-inline-start: 2rem; padding-bottom: 1.4rem; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before {
    content: '';
    position: absolute; left: .44rem; top: 1.1rem; bottom: 0;
    width: 2px; background: var(--nz-border);
}
.timeline-item:last-child::before { display: none; }
.timeline-dot {
    position: absolute; left: 0; top: .28rem;
    width: 1rem; height: 1rem;
    border-radius: 50%;
    background: var(--nz-surface);
    border: 3px solid var(--nz-brand);
    box-shadow: 0 0 0 3px var(--nz-brand-soft);
}
.timeline-content { color: var(--nz-ink-2); font-size: .92rem; }
.step-card {
    display: flex; gap: 1rem; align-items: flex-start;
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-lg);
    padding: 1.2rem 1.3rem;
    height: 100%;
}
.step-num {
    width: 2.2rem; height: 2.2rem;
    display: grid; place-items: center;
    background: var(--nz-grad); color: #fff;
    font-family: var(--nz-font-display); font-weight: 700;
    border-radius: 12px;
    flex-shrink: 0;
}
.step-icon {
    width: 2.6rem; height: 2.6rem;
    display: grid; place-items: center;
    background: var(--nz-brand-soft); color: var(--nz-brand);
    border-radius: 14px;
    font-size: 1.1rem;
    flex-shrink: 0;
}
[data-bs-theme="dark"] .step-icon { color: var(--nz-brand-strong); }
.wizard { max-width: 860px; margin-inline: auto; }
.wizard-progress { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.6rem; }
.wizard-dots { display: flex; gap: .45rem; flex: 1; }
.wizard-dots span {
    height: 8px; flex: 1;
    background: var(--nz-surface-3);
    border-radius: 999px;
    transition: background .25s ease;
}
.wizard-dots span.done { background: var(--nz-brand); }
.wizard-dots span.now { background: var(--nz-grad); }
.wizard-bar { font-size: .8rem; color: var(--nz-ink-3); font-weight: 600; white-space: nowrap; }
.wizard-nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.wizard-step {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-lg);
    box-shadow: var(--nz-shadow-1);
    padding: 1.6rem;
}
.wizard-preview { border: 1.5px dashed var(--nz-border-strong); border-radius: var(--nz-radius); padding: 1.2rem; background: var(--nz-surface-2); }
.wizard-prev { color: var(--nz-ink-3); }

/* ---------- Flash indirim / geri sayım ---------- */
.pz-flash-wrap {
    background: var(--nz-grad-hot);
    border-radius: var(--nz-radius-lg);
    color: #fff;
    padding: 1.4rem 1.6rem;
    position: relative;
    overflow: hidden;
}
.pz-flash-wrap::after {
    content: '';
    position: absolute; right: -60px; top: -60px;
    width: 200px; height: 200px; border-radius: 50%;
    background: rgba(255, 255, 255, .12);
}
.pz-flash-title { font-family: var(--nz-font-display); font-weight: 800; letter-spacing: -.01em; }
.pz-flash-card {
    background: rgba(255, 255, 255, .13);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: var(--nz-radius);
    color: #fff;
    transition: transform .16s ease, background .16s ease;
}
.pz-flash-card:hover { transform: translateY(-3px); background: rgba(255, 255, 255, .2); }
.pz-flash-price { font-family: var(--nz-font-display); font-weight: 800; font-size: 1.15rem; }
.pz-flash-disc {
    background: #fff; color: #e11d48;
    border-radius: 999px; padding: .12em .55em;
    font-size: .72rem; font-weight: 800;
}
.pz-flash-cd { font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: .04em; }
.pz-flash-nocd { opacity: .85; font-size: .85rem; }
.pz-countdown {
    display: inline-flex; gap: .35rem; align-items: center;
    font-variant-numeric: tabular-nums;
}
.pz-countdown > span {
    background: var(--nz-ink);
    color: var(--nz-bg);
    border-radius: 10px;
    padding: .28em .55em;
    font-family: var(--nz-font-display);
    font-weight: 700;
    font-size: .92rem;
    min-width: 2.4em;
    text-align: center;
}
.flash-countdown { font-variant-numeric: tabular-nums; font-weight: 700; }

/* ---------- Pasaport (pz-pass) ---------- */
.pz-pass-booklet {
    background: var(--nz-surface);
    border: 1px solid var(--nz-border);
    border-radius: var(--nz-radius-xl);
    box-shadow: var(--nz-shadow-2);
    overflow: hidden;
    max-width: 720px;
    margin-inline: auto;
}
.pz-pass-cover {
    background: var(--nz-grad);
    color: #fff;
    padding: 2rem;
    position: relative;
    overflow: hidden;
}
.pz-pass-cover::after {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(18rem 12rem at 85% -20%, rgba(255,255,255,.25), transparent 60%);
    pointer-events: none;
}
.pz-pass-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; padding: 1.5rem 2rem; }
.pz-pass-label {
    font-size: .7rem; text-transform: uppercase; letter-spacing: .08em;
    color: var(--nz-ink-3); font-weight: 700; margin-bottom: .15rem;
}
.pz-pass-uuid { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; color: var(--nz-ink-2); word-break: break-all; }
.pz-pass-note { padding: 0 2rem 1.6rem; color: var(--nz-ink-3); font-size: .82rem; }
.pz-watermark {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    font-family: var(--nz-font-display); font-weight: 800;
    font-size: clamp(3rem, 10vw, 6rem);
    color: rgba(255, 255, 255, .10);
    transform: rotate(-14deg);
    pointer-events: none;
    user-select: none;
}

/* ---------- Yıldızlar / sekmeler ---------- */
.pz-stars { color: var(--nz-warning); letter-spacing: .06em; }
.pz-stars-ro { color: var(--nz-warning); letter-spacing: .06em; opacity: .9; }
.pz-tabs { display: flex; gap: .4rem; flex-wrap: wrap; }
.pz-tabs .btn { border-radius: 999px; }

/* ---------- Sohet / kayıt / log ---------- */
.chat-bubble { max-width: 78%; padding: .7rem 1rem; font-size: .93rem; line-height: 1.45; }
.chat-me {
    background: var(--nz-brand);
    color: #fff;
    border-radius: 18px 18px 4px 18px;
    margin-inline-start: auto;
}
[data-bs-theme="dark"] .chat-me { color: var(--nz-on-brand); }
.chat-them {
    background: var(--nz-surface-2);
    color: var(--nz-ink);
    border: 1px solid var(--nz-border);
    border-radius: 18px 18px 18px 4px;
}
.seller-reply {
    background: var(--nz-brand-soft);
    border-inline-start: 3px solid var(--nz-brand);
    border-radius: 0 12px 12px 0;
    padding: .6rem .9rem;
    font-size: .9rem;
}
.log-row {
    display: flex; gap: .8rem; align-items: flex-start;
    padding: .7rem .4rem;
    border-bottom: 1px dashed var(--nz-border);
}
.log-row:last-child { border-bottom: 0; }
.log-icon {
    width: 2.1rem; height: 2.1rem;
    display: grid; place-items: center;
    background: var(--nz-surface-2);
    color: var(--nz-ink-3);
    border-radius: 10px;
    flex-shrink: 0;
}
.log-meta { font-size: .78rem; color: var(--nz-ink-3); } /* v2.21.7: faint yerine ink-3 — kontrast */

/* ---------- Ödeme / aracılık / 2FA ---------- */
.gateway-option {
    display: flex; align-items: center; gap: .8rem;
    border: 1.5px solid var(--nz-border);
    border-radius: var(--nz-radius);
    padding: .85rem 1rem;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
    background: var(--nz-surface);
}
.gateway-option:hover { border-color: var(--nz-brand); transform: translateY(-1px); }
.gateway-radio { accent-color: var(--nz-brand); }
.selected-gateway, .gateway-option.selected-gateway {
    border-color: var(--nz-brand);
    background: var(--nz-brand-soft);
    box-shadow: 0 0 0 3px var(--nz-brand-soft);
}
.gateway-label { font-weight: 700; font-size: .92rem; }
.med-opt {
    border: 1.5px solid var(--nz-border);
    border-radius: var(--nz-radius);
    padding: .8rem 1rem;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.med-opt:hover { border-color: var(--nz-brand); }
.med-opt.selected-gateway { border-color: var(--nz-brand); background: var(--nz-brand-soft); }
.pa-fields { display: grid; gap: .8rem; }
.twofa-card { max-width: 460px; margin-inline: auto; }
.twofa-code {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 1.5rem; letter-spacing: .4em; text-align: center;
}
.twofa-icon {
    width: 70px; height: 70px;
    display: grid; place-items: center;
    margin: 0 auto 1rem;
    background: var(--nz-brand-soft);
    color: var(--nz-brand);
    border-radius: 22px;
    font-size: 1.8rem;
}
[data-bs-theme="dark"] .twofa-icon { color: var(--nz-brand-strong); }
.doc-card { height: 100%; }

/* ---------- Gösterim animasyonu (reveal) ---------- */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
.reveal-in { opacity: 1; transform: none; }

/* ---------- Sihirbaz — yüklü kurallar (v5, markup ile birebir) ---------- */
.wizard.wizard-active .wizard-step { display: none; }
.wizard.wizard-active .wizard-step.is-current { display: block; }
.wizard-step.is-current { animation: nzStepIn .3s ease; }
@keyframes nzStepIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.wizard-dots li {
    flex: 1;
    height: 8px;
    background: var(--nz-surface-3);
    border-radius: 999px;
    cursor: pointer;
    transition: background .25s ease, transform .2s ease;
    list-style: none;
}
.wizard-dots li:hover { transform: scaleY(1.4); }
.wizard-dots li.is-current { background: var(--nz-grad); }
.wizard-dots li.is-done { background: var(--nz-brand); }
.kpi-row .stat-icon { width: 2.4rem; height: 2.4rem; font-size: 1rem; }

/* ---------- v5 tamamlama bloğu (kapsam denetimi) ---------- */
.wizard-num {
    width: 2rem; height: 2rem;
    display: inline-grid; place-items: center;
    background: var(--nz-grad); color: #fff;
    font-family: var(--nz-font-display); font-weight: 700;
    border-radius: 10px; font-size: .9rem;
    flex-shrink: 0;
}
.wizard-label { font-weight: 700; font-size: .82rem; color: var(--nz-ink-2); white-space: nowrap; }
.wizard-next { min-width: 110px; }
.receipt-card { max-width: 640px; margin-inline: auto; }
@media print {
    .no-print { display: none !important; }
    .receipt-card, .card { box-shadow: none !important; border-color: #ddd !important; }
    body { background: #fff !important; color: #000 !important; }
}

/* v2.20.0 — varyant yönetimi yardımcıları */
.border-dashed { border: 1px dashed var(--nz-border, #d9dee5) !important; }
.vopt-row input[type="checkbox"] { flex: 0 0 auto; }

/* v2.20.0 — ilan detay varyant seçim paneli */
.variant-picker { border-top-width: 1px; }
.variant-picker .form-label { margin-bottom: .25rem; }
.variant-picker [data-vlabel] { min-width: 64px; text-align: center; line-height: 1.2; }
.variant-picker [data-vlabel] .d-block { font-size: .72rem; }
#variantTotal { font-size: 1.05rem; letter-spacing: .01em; }
.admin-table thead th { white-space: nowrap; } /* v2.20.0: kısa başlıklar sarılmasın; td anywhere kırılımı taşmayı engeller */
