/* ═══════════════════════════════════════════════════════════════════════
   Antlaşma — Site CSS
   Reset, Typography, Layout ve Utility sınıfları
   Tokens.css'e bağımlıdır.
   ═══════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════
   Bootstrap 5.3 Bridge (v69)
   Bootstrap'in --bs-* CSS değişkenlerini bizim tasarım token'larımıza
   yönlendirir. Bu sayede .table, .card, .modal, .form-control, .dropdown-menu,
   .list-group, .page-link, .alert vb. TÜM Bootstrap komponentleri:
   • Light mode'da → beyaz/açık tema (default davranış korunur)
   • Dark mode'da → bizim slate paletimizle otomatik renk değiştirir
   _Host.cshtml içinde data-bs-theme="dark" zaten set ediliyor; bu blok
   yalnızca varsayılan Bootstrap dark paletini bizim premium paletimizle
   override eder.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
  /* Body */
  --bs-body-bg:           var(--bg-base);
  --bs-body-color:        var(--text-body);
  --bs-emphasis-color:    var(--text-heading);
  --bs-secondary-color:   var(--text-subtle);
  --bs-tertiary-color:    var(--text-disabled);
  --bs-secondary-bg:      var(--bg-surface-2);
  --bs-tertiary-bg:       var(--bg-surface-3);
  --bs-border-color:      var(--border);
  --bs-border-color-translucent: var(--border-subtle);
  --bs-link-color:        var(--primary);
  --bs-link-hover-color:  var(--primary-hover);

  /* Table */
  --bs-table-color:       var(--text-body);
  --bs-table-bg:          transparent;
  --bs-table-border-color: var(--border-subtle);
  --bs-table-striped-bg:  var(--bg-surface-2);
  --bs-table-hover-bg:    var(--bg-surface-2);
  --bs-table-hover-color: var(--text-heading);
  --bs-table-active-bg:   var(--accent-soft);
  --bs-table-active-color: var(--text-heading);

  /* Form */
  --bs-form-control-bg:   var(--bg-surface);
  --bs-form-control-color: var(--text-body);

  /* Card / Modal */
  --bs-card-bg:           var(--bg-surface);
  --bs-card-color:        var(--text-body);
  --bs-card-border-color: var(--border);
  --bs-card-cap-bg:       var(--bg-surface-2);
  --bs-card-cap-color:    var(--text-heading);
  --bs-modal-bg:          var(--bg-surface);
  --bs-modal-color:       var(--text-body);
  --bs-modal-border-color: var(--border);
  --bs-modal-header-border-color: var(--border-subtle);
  --bs-modal-footer-border-color: var(--border-subtle);

  /* Dropdown */
  --bs-dropdown-bg:       var(--bg-surface);
  --bs-dropdown-color:    var(--text-body);
  --bs-dropdown-border-color: var(--border);
  --bs-dropdown-link-color: var(--text-body);
  --bs-dropdown-link-hover-bg: var(--bg-surface-2);
  --bs-dropdown-link-hover-color: var(--text-heading);
  --bs-dropdown-link-active-bg: var(--accent-soft);
  --bs-dropdown-link-active-color: var(--primary);
  --bs-dropdown-header-color: var(--text-subtle);

  /* List group */
  --bs-list-group-bg:     var(--bg-surface);
  --bs-list-group-color:  var(--text-body);
  --bs-list-group-border-color: var(--border);
  --bs-list-group-action-color: var(--text-body);
  --bs-list-group-action-hover-bg: var(--bg-surface-2);
  --bs-list-group-action-hover-color: var(--text-heading);
  --bs-list-group-active-bg: var(--primary);
  --bs-list-group-active-color: var(--text-on-accent);
  --bs-list-group-active-border-color: var(--primary);

  /* Pagination */
  --bs-pagination-bg:        var(--bg-surface);
  --bs-pagination-color:     var(--text-body);
  --bs-pagination-border-color: var(--border);
  --bs-pagination-hover-bg:  var(--bg-surface-2);
  --bs-pagination-hover-color: var(--text-heading);
  --bs-pagination-active-bg: var(--primary);
  --bs-pagination-active-color: var(--text-on-accent);
  --bs-pagination-active-border-color: var(--primary);
  --bs-pagination-disabled-bg: var(--bg-surface);
  --bs-pagination-disabled-color: var(--text-disabled);

  /* Nav / Navbar / Tabs */
  --bs-nav-link-color:        var(--text-body);
  --bs-nav-link-hover-color:  var(--primary);
  --bs-nav-tabs-border-color: var(--border);
  --bs-nav-tabs-link-active-bg: var(--bg-surface);
  --bs-nav-tabs-link-active-color: var(--text-heading);
  --bs-nav-tabs-link-active-border-color: var(--border) var(--border) var(--bg-surface);
  --bs-navbar-color:          var(--text-body);
  --bs-navbar-hover-color:    var(--primary);
  --bs-navbar-active-color:   var(--primary);
  --bs-navbar-brand-color:    var(--text-heading);

  /* Accordion */
  --bs-accordion-bg:          var(--bg-surface);
  --bs-accordion-color:       var(--text-body);
  --bs-accordion-border-color: var(--border);
  --bs-accordion-button-bg:   var(--bg-surface);
  --bs-accordion-button-color: var(--text-heading);
  --bs-accordion-button-active-bg: var(--accent-soft);
  --bs-accordion-button-active-color: var(--primary);

  /* Breadcrumb */
  --bs-breadcrumb-divider-color: var(--text-subtle);
  --bs-breadcrumb-item-active-color: var(--text-subtle);
}

/* Bootstrap 5.3 native dark mode override — bizim paletimizi kullansın */
[data-bs-theme="dark"] {
  --bs-body-bg:           var(--bg-base);
  --bs-body-color:        var(--text-body);
  --bs-emphasis-color:    var(--text-heading);
  --bs-secondary-color:   var(--text-subtle);
  --bs-tertiary-color:    var(--text-disabled);
  --bs-secondary-bg:      var(--bg-surface-2);
  --bs-tertiary-bg:       var(--bg-surface-3);
  --bs-border-color:      var(--border);
  --bs-border-color-translucent: var(--border-subtle);

  --bs-table-color:       var(--text-body);
  --bs-table-bg:          transparent;
  --bs-table-border-color: var(--border-subtle);
  --bs-table-striped-bg:  var(--bg-surface-2);
  --bs-table-striped-color: var(--text-body);
  --bs-table-hover-bg:    var(--bg-surface-2);
  --bs-table-hover-color: var(--text-heading);
  --bs-table-active-bg:   var(--accent-soft);
  --bs-table-active-color: var(--text-heading);

  --bs-form-control-bg:   var(--bg-surface);
  --bs-form-control-color: var(--text-body);

  --bs-card-bg:           var(--bg-surface);
  --bs-card-color:        var(--text-body);
  --bs-card-border-color: var(--border);
  --bs-card-cap-bg:       var(--bg-surface-2);
  --bs-card-cap-color:    var(--text-heading);
  --bs-modal-bg:          var(--bg-surface);
  --bs-modal-color:       var(--text-body);
  --bs-modal-border-color: var(--border);

  --bs-dropdown-bg:       var(--bg-surface);
  --bs-dropdown-color:    var(--text-body);
  --bs-dropdown-border-color: var(--border);
  --bs-dropdown-link-color: var(--text-body);
  --bs-dropdown-link-hover-bg: var(--bg-surface-2);
  --bs-dropdown-link-hover-color: var(--text-heading);

  --bs-list-group-bg:     var(--bg-surface);
  --bs-list-group-color:  var(--text-body);
  --bs-list-group-border-color: var(--border);

  --bs-pagination-bg:        var(--bg-surface);
  --bs-pagination-color:     var(--text-body);
  --bs-pagination-border-color: var(--border);
  --bs-pagination-hover-bg:  var(--bg-surface-2);
  --bs-pagination-hover-color: var(--text-heading);
  --bs-pagination-disabled-bg: var(--bg-surface);
  --bs-pagination-disabled-color: var(--text-disabled);

  --bs-accordion-bg:          var(--bg-surface);
  --bs-accordion-color:       var(--text-body);
  --bs-accordion-border-color: var(--border);
  --bs-accordion-button-bg:   var(--bg-surface);
  --bs-accordion-button-color: var(--text-heading);

  /* Bootstrap'in .table-light / .table-dark gibi sabit-renkli varyantlarını
     dark mode'da bizim paletimize çekiyoruz — aksi halde tablo başlıkları
     hâlâ beyaz arkaplan + siyah text çıkar (Patron'un "beyaz tablo" sorunu). */
  --bs-table-light-bg:       var(--bg-surface-2);
  --bs-table-light-color:    var(--text-heading);
  --bs-table-light-border-color: var(--border);
  --bs-table-dark-bg:        var(--bg-surface-3);
  --bs-table-dark-color:     var(--text-heading);
  --bs-table-dark-border-color: var(--border-strong);
  --bs-table-warning-bg:     var(--warning-soft);
  --bs-table-warning-color:  var(--warning);
  --bs-table-warning-border-color: var(--warning-soft);
  --bs-table-success-bg:     var(--success-soft);
  --bs-table-success-color:  var(--success);
  --bs-table-success-border-color: var(--success-soft);
  --bs-table-danger-bg:      var(--danger-soft);
  --bs-table-danger-color:   var(--danger);
  --bs-table-danger-border-color: var(--danger-soft);
  --bs-table-info-bg:        var(--info-soft);
  --bs-table-info-color:     var(--info);
  --bs-table-info-border-color: var(--info-soft);
  --bs-table-active-bg:      var(--accent-soft);
  --bs-table-active-color:   var(--text-heading);
}

/* ─── Bootstrap thead.table-light / thead.table-dark direct overrides ───
   Bootstrap bu class'ları --bs-table-* değişkenleri yerine doğrudan
   inline-vari renklerle stillendirir (5.3'ün eski uyumluluk katmanı).
   Bu nedenle dark mode'da bunları zorla bizim paletimize çekiyoruz.
   `:where()` ile spesifite şişirmiyoruz; `!important` Bootstrap'in
   `--bs-table-bg` cascadingini geçmek için gerekli. */
[data-bs-theme="dark"] .table-light,
[data-bs-theme="dark"] .table > .table-light,
[data-bs-theme="dark"] .table > thead.table-light,
[data-bs-theme="dark"] .table > tbody > tr.table-light,
[data-bs-theme="dark"] .table > thead.table-light > tr > th {
  --bs-table-color: var(--text-heading);
  --bs-table-bg: var(--bg-surface-2);
  --bs-table-border-color: var(--border);
  color: var(--text-heading) !important;
  background-color: var(--bg-surface-2) !important;
}

[data-bs-theme="dark"] .table-dark,
[data-bs-theme="dark"] .table > .table-dark,
[data-bs-theme="dark"] .table > thead.table-dark,
[data-bs-theme="dark"] .table > tbody > tr.table-dark,
[data-bs-theme="dark"] .table > thead.table-dark > tr > th {
  --bs-table-color: var(--text-heading);
  --bs-table-bg: var(--bg-surface-3);
  --bs-table-border-color: var(--border-strong);
  color: var(--text-heading) !important;
  background-color: var(--bg-surface-3) !important;
}

[data-bs-theme="dark"] .table-warning,
[data-bs-theme="dark"] .table > tbody > tr.table-warning,
[data-bs-theme="dark"] .table > tbody > tr.table-warning > td {
  --bs-table-color: var(--warning);
  --bs-table-bg: var(--warning-soft);
  --bs-table-border-color: var(--border-subtle);
  color: var(--warning) !important;
  background-color: var(--warning-soft) !important;
}

[data-bs-theme="dark"] .table-success,
[data-bs-theme="dark"] .table > tbody > tr.table-success,
[data-bs-theme="dark"] .table > tbody > tr.table-success > td {
  --bs-table-color: var(--success);
  --bs-table-bg: var(--success-soft);
  --bs-table-border-color: var(--border-subtle);
  color: var(--success) !important;
  background-color: var(--success-soft) !important;
}

[data-bs-theme="dark"] .table-danger,
[data-bs-theme="dark"] .table > tbody > tr.table-danger,
[data-bs-theme="dark"] .table > tbody > tr.table-danger > td {
  --bs-table-color: var(--danger);
  --bs-table-bg: var(--danger-soft);
  --bs-table-border-color: var(--border-subtle);
  color: var(--danger) !important;
  background-color: var(--danger-soft) !important;
}

[data-bs-theme="dark"] .table-info,
[data-bs-theme="dark"] .table > tbody > tr.table-info,
[data-bs-theme="dark"] .table > tbody > tr.table-info > td {
  --bs-table-color: var(--info);
  --bs-table-bg: var(--info-soft);
  --bs-table-border-color: var(--border-subtle);
  color: var(--info) !important;
  background-color: var(--info-soft) !important;
}

[data-bs-theme="dark"] .table-secondary,
[data-bs-theme="dark"] .table > tbody > tr.table-secondary,
[data-bs-theme="dark"] .table > tbody > tr.table-secondary > td {
  --bs-table-color: var(--text-body);
  --bs-table-bg: var(--bg-surface-2);
  --bs-table-border-color: var(--border-subtle);
  color: var(--text-body) !important;
  background-color: var(--bg-surface-2) !important;
}

/* Bootstrap .alert-light, .bg-light, .text-dark gibi sabit-renk yardımcıları
   dark mode'da görünmez yazı/beyaz arkaplan üretiyor. Override ediyoruz. */
[data-bs-theme="dark"] .bg-light {
  background-color: var(--bg-surface-2) !important;
  color: var(--text-heading) !important;
}
[data-bs-theme="dark"] .bg-white {
  background-color: var(--bg-surface) !important;
  color: var(--text-body) !important;
}
[data-bs-theme="dark"] .text-dark {
  color: var(--text-heading) !important;
}
[data-bs-theme="dark"] .text-muted {
  color: var(--text-subtle) !important;
}
[data-bs-theme="dark"] .text-black {
  color: var(--text-heading) !important;
}
[data-bs-theme="dark"] .alert-light {
  background-color: var(--bg-surface-2);
  color: var(--text-body);
  border-color: var(--border);
}
[data-bs-theme="dark"] .border-light {
  border-color: var(--border) !important;
}
[data-bs-theme="dark"] .shadow-sm,
[data-bs-theme="dark"] .shadow {
  box-shadow: var(--shadow-md) !important;
}

/* Form elemanları: Bootstrap 5.3 native dark zaten çoğunu yapar, ama
   placeholder ve focus state'i bizim accent'a çekelim. */
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder {
  color: var(--text-disabled);
  opacity: 1;
}
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 0.2rem var(--accent-soft);
}
[data-bs-theme="dark"] .form-check-input:checked {
  background-color: var(--primary);
  border-color: var(--primary);
}

/* Input-group-text sabit gri default Bootstrap'ten geliyor */
[data-bs-theme="dark"] .input-group-text {
  background-color: var(--bg-surface-2);
  color: var(--text-body);
  border-color: var(--border);
}

/* Bootstrap badge'leri (badge-secondary vb. sabit renk olabilenler) */
[data-bs-theme="dark"] .badge.bg-light {
  background-color: var(--bg-surface-2) !important;
  color: var(--text-heading) !important;
}
[data-bs-theme="dark"] .badge.text-dark {
  color: var(--text-heading) !important;
}

/* Close button (modal X) Bootstrap'in default'ta siyah; dark'ta görünmez */
[data-bs-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* ═══════════════════════════════════════════════════════════════════════
   /Bootstrap Bridge sonu
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Base ─────────────────────────────────────────────────────────────── */
html {
  scroll-behavior: smooth;
  font-size: 16px; /* Base 16px */
}

body {
  font-family: var(--font-sans);
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background-color: var(--bg-base);
  color: var(--text-body);
  line-height: var(--leading-normal);
  font-size: var(--text-base);
  transition: background-color var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out);
}

a {
  color: var(--primary);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}

a:hover {
  color: var(--primary-hover);
}

/* ── Typography ───────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  color: var(--text-heading);
  margin-top: 0;
  margin-bottom: var(--space-4);
}

.section-title, h1, h2 {
  font-weight: 700;
  letter-spacing: var(--tracking-tighter);
  line-height: var(--leading-tight);
}

h3, h4 {
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-snug);
}

h1 { font-size: var(--text-4xl); }
@media (min-width: 768px) { h1 { font-size: var(--text-5xl); } }

h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

.section-eyebrow {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-2);
  display: block;
}

.lead {
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
}

.text-subtle { color: var(--text-subtle); }
.text-disabled { color: var(--text-disabled); }

/* ── Layout & Spacing ─────────────────────────────────────────────────── */
.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-padding-x);
  padding-right: var(--container-padding-x);
}

.container-narrow {
  max-width: var(--container-narrow);
}

section {
  padding-top: var(--space-12);
  padding-bottom: var(--space-12);
}

@media (min-width: 768px) {
  section {
    padding-top: var(--space-24);
    padding-bottom: var(--space-24);
  }
}

section.section-hero {
  padding-top: var(--space-16);
  padding-bottom: var(--space-12);
}

@media (min-width: 768px) {
  section.section-hero {
    padding-top: var(--space-32);
    padding-bottom: var(--space-24);
  }
}

/* ── Touch Targets & Mobile ───────────────────────────────────────────── */
input, textarea, select {
  font-size: max(16px, var(--text-base)); /* iOS zoom fix */
}

* {
  -webkit-tap-highlight-color: transparent;
}

/* ── Accessibility ────────────────────────────────────────────────────── */
*:focus {
  outline: none;
}

*:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
  border-radius: 4px;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 9999;
  padding: 0.75rem 1.25rem;
  background: var(--primary);
  color: var(--text-on-accent);
  border-radius: var(--radius-md);
  font-weight: 600;
}

.skip-link:focus {
  top: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── Transition Utilities ─────────────────────────────────────────────── */
.page-transition-enter {
  opacity: 0;
}

.page-transition-enter-active {
  opacity: 1;
  transition: opacity var(--duration-normal) var(--ease-out);
}

/* ── Bootstrap Essential Overrides (Global Forms & Tables) ────────────── */
table.table {
  width: 100%;
  color: var(--text-body);
}

.table th, .table td {
  padding: var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
}

.table th {
  font-weight: 600;
  color: var(--text-heading);
  text-align: left;
}

/* ── Utilities ────────────────────────────────────────────────────────── */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.d-flex { display: flex; }
.align-items-center { align-items: center; }
.justify-content-center { justify-content: center; }
.justify-content-between { justify-content: space-between; }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.w-100 { width: 100%; }
.mt-2 { margin-top: var(--space-2); }
.mt-4 { margin-top: var(--space-4); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-4 { margin-bottom: var(--space-4); }

/* ── Navbar ───────────────────────────────────────────────────────────── */
.navbar {
  background-color: var(--bg-surface) !important;
  border-bottom: 1px solid var(--border) !important;
  transition: background-color var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out);
}

.navbar.scrolled {
  box-shadow: var(--shadow-md);
}

.navbar-brand {
  color: var(--text-heading) !important;
}

.navbar .nav-link {
  color: var(--text-body) !important;
  font-weight: 500;
  transition: color var(--duration-fast) var(--ease-out);
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
  color: var(--primary) !important;
}

.navbar-toggler {
  border-color: var(--border-strong);
}

.navbar-logo {
  height: 40px;
  width: 40px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 800;
  font-size: var(--text-lg);
}

/* ── Ripple Effect ─────────────────────────────────────────────────────── */
.ripple-circle {
  position: absolute;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  transform: scale(0);
  animation: ripple-animation 0.6s linear;
  pointer-events: none;
}
@keyframes ripple-animation {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

/* ── Blazor Error UI ───────────────────────────────────────────────────── */
#blazor-error-ui {
  background: var(--bg-surface);
  color: var(--text-body);
  border-top: 3px solid var(--danger);
  box-shadow: var(--shadow-lg);
  display: none;
  left: 0;
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 2000;
  padding: var(--space-3) var(--space-4);
  align-items: center;
  justify-content: space-between;
}

#blazor-error-ui .reload {
  background-color: var(--primary);
  color: #fff;
  border-radius: var(--radius-sm);
  padding: var(--space-1) var(--space-3);
  text-decoration: none;
  font-weight: 500;
  font-size: var(--text-sm);
  margin-left: var(--space-2);
}

#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: var(--space-4);
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
}

/* ── UI Polish Utility Helpers ─────────────────────────────────────────── */
.text-accent {
  color: var(--accent) !important;
}
.bg-accent {
  background-color: var(--accent) !important;
  color: var(--text-on-accent) !important;
}
.bg-accent-soft {
  background-color: var(--accent-soft) !important;
  color: var(--accent) !important;
}
.border-accent {
  border-color: var(--accent) !important;
}
.btn-pill {
  border-radius: 50px;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  transition: all var(--duration-fast) var(--ease-out);
  border: 1px solid var(--border);
  background-color: var(--bg-surface);
  color: var(--text-subtle);
}
.btn-pill:hover {
  background-color: var(--bg-surface-2);
  color: var(--text-heading);
}
.btn-accent-active {
  background-color: var(--accent) !important;
  color: var(--text-on-accent) !important;
  border-color: var(--accent) !important;
}
.btn-pill-inactive {
  background-color: var(--bg-surface) !important;
  color: var(--text-subtle) !important;
  border-color: var(--border) !important;
}

/* ── Sticky Save Bar ──────────────────────────────────────────────────── */
.sticky-save-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--bg-surface);
  border-top: 1px solid var(--border-strong);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
  z-index: 1080; /* FIX: chat-widget ve topbar'ın üstünde kalsın */
  animation: slideUp var(--duration-normal) var(--ease-out);
}
/* FIX: bar açıkken içerik sonu görünür kalsın — Settings sayfası gövdesine ek nefes */
.has-sticky-save-bar, .admin-content { scroll-padding-bottom: 7rem; }
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

/* ── Settings Grid Card hover border ──────────────────────────────────── */
.setting-card {
  transition: border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}
.setting-card:hover {
  border-color: var(--border-strong) !important;
  box-shadow: var(--shadow-md);
}

/* ── Cloud Topbar Reset ────────────────────────────────────────────────── */
.cloud-topbar {
  margin: 0 !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  background: var(--bg-surface) !important;
  box-shadow: none !important;
}

/* ── Button Overrides (B2B SaaS Amber Theme) ────────────────────────── */
.btn-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--text-on-primary) !important;
  transition: background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--primary-hover) !important;
  border-color: var(--primary-hover) !important;
  color: var(--text-on-primary) !important;
}
.btn-primary:focus-visible {
  box-shadow: 0 0 0 2px var(--border-focus) !important;
}

.btn-outline-primary {
  color: var(--accent) !important;
  border-color: var(--accent) !important;
  background-color: transparent !important;
  transition: background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
  color: var(--text-on-accent) !important;
}
.btn-outline-primary:focus-visible {
  box-shadow: 0 0 0 2px var(--border-focus) !important;
}

/* ── Custom Theme Overrides ─────────────────────────────────────────── */
.bg-theme-surface {
  background-color: var(--bg-surface) !important;
}

.card-title {
  color: var(--text-heading) !important;
}

.navbar-nav {
  gap: 0.5rem !important;
}

.navbar .nav-link {
  white-space: nowrap !important;
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.navbar .dropdown-toggle {
  font-size: 0.8rem !important;
}

@media (min-width: 992px) and (max-width: 1200px) {
  .nav-premium-text {
    display: none !important;
  }
  .nav-premium .premium-icon {
    margin-right: 0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   PREMIUM LAYER (v69) — "Refined Industrial Luxury"
   Bu blok dosyanın sonunda; önceki kuralları kasıtlı override eder.
   Class isimleri değişmedi — markup'a dokunulmadı.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Atmosfer: zemin ışıması + ince grain ────────────────────────────────── */
/* v70 — SAKİN ZEMİN
   Kaldırılanlar ve gerekçeleri:
   · background-attachment: fixed → her scroll'da tam sayfa repaint tetikler.
     Uzun ihale tablolarında ve mobilde gözle görülür jank yapar.
   · mesh gradient katmanları → sürekli compositing maliyeti, görsel gürültü.
   Kurumsal bir veri ekranında zemin "fark edilmemelidir"; dikkat içerikte kalmalı. */
body {
  font-family: var(--font-sans);
  letter-spacing: -0.011em;
  background-color: var(--bg-base);
}

/* v70 — GRAIN KATMANI KALDIRILDI
   Neden: tam ekran `position: fixed` + `mix-blend-mode: overlay` katmanı, her
   karede GPU compositing gerektirir ve scroll performansını düşürür. Ayrıca
   grain dekoratif GÜRÜLTÜDÜR — gün boyu tabloya bakan bir kullanıcının gözünü
   yorar; "huzurlu kullanım" hedefiyle doğrudan çelişir.
   Yan fayda: grain yüzünden `.page, main, header...` öğelerine zorlanan
   `z-index: 1` de kalktı. O kural gereksiz stacking context yaratıyor ve
   modal/dropdown katmanlarında sonradan çözülmesi zor çakışmalar üretiyordu. */


/* ── Premium Tipografi ──────────────────────────────────────────────────── */
h1, h2, h3, .hero-title, .section-title, .cta-banner h2, .auction-card-title,
.admin-header h1, .admin-header h2, .page-header h1, .page-header h2 {
  font-family: var(--font-display);
  font-optical-sizing: auto;
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
}

h1, .hero-title, .section-title {
  font-weight: 600;
  letter-spacing: var(--tracking-tighter);
  line-height: var(--leading-tight);
}

h4, h5, h6 { font-family: var(--font-sans); }

/* Sayılar (fiyatlar) tablo-hizalı — auction platformu için kritik */
.stat-card-value, .auction-card-price .value, .hero-stat-value,
.price, [data-numeric] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}

.section-eyebrow, .hero-eyebrow {
  font-family: var(--font-sans);
}

/* ── Premium Buton Sistemi (amber-only spec) ────────────────────────────── */
.btn {
  font-family: var(--font-sans);
  font-weight: 600;
  letter-spacing: -0.005em;
  border-radius: var(--radius-md);
  transition: transform var(--duration-fast) var(--ease-out),
              box-shadow var(--duration-fast) var(--ease-out),
              background-color var(--duration-fast) var(--ease-out),
              border-color var(--duration-fast) var(--ease-out),
              color var(--duration-fast) var(--ease-out);
}
.btn:active { transform: translateY(0); }

.btn-lg {
  padding: 0.8rem 1.6rem;
  font-size: var(--text-base);
  border-radius: var(--radius-lg);
}
.btn-sm { border-radius: var(--radius-sm); }

/* PRIMARY — değerli metal: altın gradient + glow */
.btn-primary {
  background-image: var(--accent-gradient) !important;
  background-color: var(--accent) !important;
  border: 1px solid var(--accent-active) !important;
  color: var(--text-on-accent) !important;
  box-shadow: var(--shadow-sm), var(--shadow-inset-top);
}
.btn-primary:hover, .btn-primary:focus {
  background-image: var(--accent-gradient) !important;
  border-color: var(--accent-active) !important;
  color: var(--text-on-accent) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-glow), var(--shadow-inset-top);
}
.btn-primary:active { transform: translateY(0); box-shadow: var(--shadow-sm); }

/* SECONDARY — cam / nötr yüzey (mavi default'u eziyoruz) */
.btn-secondary, .btn-light, .btn-outline-secondary {
  background-color: var(--bg-surface) !important;
  background-image: none !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text-heading) !important;
  box-shadow: var(--shadow-sm);
}
.btn-secondary:hover, .btn-light:hover, .btn-outline-secondary:hover,
.btn-secondary:focus, .btn-light:focus, .btn-outline-secondary:focus {
  background-color: var(--bg-surface-2) !important;
  border-color: var(--accent) !important;
  color: var(--text-heading) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

/* OUTLINE-PRIMARY — altın çerçeve */
.btn-outline-primary {
  background: transparent !important;
  border: 1px solid var(--accent) !important;
  color: var(--accent) !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
  background-image: var(--accent-gradient) !important;
  border-color: var(--accent-active) !important;
  color: var(--text-on-accent) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-glow);
}

/* GHOST — minimal */
.btn-ghost, .btn-link {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--text-body) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
.btn-ghost:hover, .btn-link:hover {
  background-color: var(--accent-soft) !important;
  color: var(--accent) !important;
}

/* SUCCESS / DANGER / DARK — status butonları (tutarlı, solid) */
.btn-success {
  background-color: var(--success) !important;
  border: 1px solid var(--success) !important;
  color: #fff !important;
}
.btn-success:hover, .btn-success:focus {
  filter: brightness(1.06); transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.btn-danger {
  background-color: var(--danger) !important;
  border: 1px solid var(--danger) !important;
  color: #fff !important;
}
.btn-danger:hover, .btn-danger:focus {
  filter: brightness(1.06); transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
.btn-dark {
  background-color: var(--bg-surface-3) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text-heading) !important;
}
.btn-dark:hover, .btn-dark:focus { transform: translateY(-1px); box-shadow: var(--shadow-md); }

/* ── Navbar: cam efekti ─────────────────────────────────────────────────── */
.navbar {
  background-color: var(--glass-bg) !important;
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border) !important;
  transition: background-color var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
.navbar.scrolled {
  box-shadow: var(--shadow-md);
  border-bottom-color: var(--border) !important;
}
.navbar-brand { font-family: var(--font-display); font-weight: 600; }
.navbar-logo {
  background-image: var(--accent-gradient);
  box-shadow: var(--shadow-glow);
  font-family: var(--font-sans);
}

/* ── Kart genel (Bootstrap .card premium) ───────────────────────────────── */
.card {
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-fast) var(--ease-out),
              box-shadow var(--duration-fast) var(--ease-out),
              border-color var(--duration-fast) var(--ease-out);
}
.card.shadow-sm { box-shadow: var(--shadow-md) !important; }

/* ── Form alanları premium ──────────────────────────────────────────────── */
.form-control, .form-select {
  border-radius: var(--radius-md);
  border: 1px solid var(--border-strong);
  background-color: var(--bg-surface);
  color: var(--text-body);
  transition: border-color var(--duration-fast) var(--ease-out),
              box-shadow var(--duration-fast) var(--ease-out);
}
.form-control:focus, .form-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
  background-color: var(--bg-surface);
  color: var(--text-body);
}

/* ── Badge premium ──────────────────────────────────────────────────────── */
.badge {
  font-family: var(--font-sans);
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--radius-full);
  padding: 0.32em 0.7em;
}

/* ── Seçim rengi + scrollbar ────────────────────────────────────────────── */
::selection { background: var(--accent-soft-hover); color: var(--text-heading); }
* { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background: var(--text-disabled); background-clip: content-box; }

/* ── Sayfa giriş animasyonu (yalnızca public hero — panellerde flash riski yok) ── */
@media (prefers-reduced-motion: no-preference) {
  .hero .hero-eyebrow { animation: sac-rise var(--duration-slow) var(--ease-out) both; }
  .hero .hero-title   { animation: sac-rise var(--duration-slow) var(--ease-out) 80ms both; }
  .hero .hero-subtitle{ animation: sac-rise var(--duration-slow) var(--ease-out) 160ms both; }
  .hero .hero-cta     { animation: sac-rise var(--duration-slow) var(--ease-out) 240ms both; }
  @keyframes sac-rise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CONTRAST SAFETY & EKSİK DASHBOARD SINIFLARI (v69)
   ───────────────────────────────────────────────────────────────────────────
   Markup'ta kullanılan ama hiçbir CSS'te tanımlı OLMAYAN ~42 custom class
   burada tanımlanıyor. Hepsi tema-adaptif: her iki modda da garantili kontrast.
   Amaç: "açık üstüne açık" / "koyu üstüne koyu" yazı sorunlarını kökten bitirmek.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Eksik metin yardımcıları (tema-adaptif) ────────────────────────────── */
.text-heading, .text-theme-heading, .dashboard-text-heading, .topbar-title { color: var(--text-heading) !important; }
.text-body, .text-theme-body, .dashboard-text-body { color: var(--text-body) !important; }
.text-theme-muted, .dashboard-text-subtle, .text-subtle-color, .card-subtitle-custom { color: var(--text-subtle) !important; }

/* Renkli istatistik sayıları — kart yüzeyinde her iki modda okunur */
.text-dash-stat-1 { color: var(--accent) !important; }
.text-dash-stat-2 { color: var(--info) !important; }
.text-dash-stat-3 { color: var(--success) !important; }
.text-dash-stat-4 { color: var(--support-accent) !important; }

/* ── KPI / Dashboard kartları ───────────────────────────────────────────── */
.kpi-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
.kpi-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--border-strong); }
.kpi-card .card-body { padding: var(--space-5); }

/* Toplam hacim kartı — premium koyu vurgu kartı (HER İKİ MODDA koyu → text-white güvenli) */
.total-volume-card {
  background: linear-gradient(140deg, #211f26 0%, #0b0a0d 100%) !important;
  border: 1px solid var(--border-strong) !important;
  border-top: 3px solid var(--accent) !important;
  position: relative; overflow: hidden;
}
.total-volume-card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 80% at 100% 0%, rgba(240,180,41,0.12) 0%, transparent 60%);
}
.total-volume-card .card-body { position: relative; z-index: 1; }
.total-volume-card .text-white { color: #ffffff !important; }
.total-volume-subtitle { color: rgba(255,255,255,0.72) !important; font-weight: 600; }
.total-volume-desc { color: rgba(255,255,255,0.52) !important; }

/* ── Stat alt-parçaları ─────────────────────────────────────────────────── */
.stat-value { font-family: var(--font-display); font-weight: 600; color: var(--text-heading); font-variant-numeric: tabular-nums; line-height: 1; }
.stat-label { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--text-subtle); }
.stat-icon {
  width: 44px; height: 44px; border-radius: var(--radius-md);
  background: var(--accent-soft); color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center; font-size: var(--text-lg);
}

/* ── Avatar daireleri ───────────────────────────────────────────────────── */
/* :where() = 0 spesifite → markup'taki bg-primary/bg-success utility'leri kazanır.
   Ama bg utility YOKSA bu koyu nötr zemin devreye girer → beyaz yazı güvenli. */
:where(.avatar-circle, .avatar-box, .avatar-large, .avatar-small, .avatar, .support-avatar) {
  background-color: #3d3a45;
  color: #ffffff;
}
.avatar-circle, .avatar-box, .support-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--radius-full); font-weight: 700; flex-shrink: 0;
}
.avatar-circle, .support-avatar { width: 44px; height: 44px; font-size: var(--text-lg); }
.avatar-box { width: 48px; height: 48px; font-size: var(--text-lg); }
.avatar-large { width: 64px; height: 64px; font-size: var(--text-2xl); border-radius: var(--radius-full); display:inline-flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0; }
.avatar-small { width: 32px; height: 32px; font-size: var(--text-sm); border-radius: var(--radius-full); display:inline-flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0; }
.avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-full); }
.avatar-wrap { position: relative; display: inline-flex; }
.avatar-fallback { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.support-avatar { background-color: var(--support-accent); }  /* tek başına: mor daire + beyaz */

/* Accent gradient chip — koyu-altın gradient (beyaz yazı okunur, sabit) */
.bg-gradient-accent, .user-avatar-box {
  background-image: linear-gradient(135deg, #b8780a 0%, #6b4404 100%) !important;
  color: #ffffff !important;
}

/* ── Rol / durum rozetleri (soft zemin + renkli yazı = her iki modda okunur) ─ */
.badge-system-admin { background: var(--danger-soft); color: var(--danger); }
.badge-seller       { background: var(--success-soft); color: var(--success); }
.badge-buyer        { background: var(--info-soft); color: var(--info); }
.badge-trader       { background: var(--accent-soft); color: var(--accent); }
.badge-support      { background: rgba(147,51,234,0.12); color: var(--support-accent); }
.badge-pro,
.badge-recommended,
.badge-current      { background: var(--accent-soft); color: var(--accent); }
.badge-live         { background: var(--success-soft); color: var(--success); }
.badge-neutral,
.badge-status,
.badge-field        { background: var(--bg-surface-2); color: var(--text-body); border: 1px solid var(--border); }
.badge-sm, .badge-small-text { font-size: var(--text-xs); padding: 0.28em 0.6em; }
.badge-icon-container {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: var(--radius-sm);
  background: var(--accent-soft); color: var(--accent);
}
/* Tüm bu rozetler ortak pill görünümü alsın */
.badge-system-admin, .badge-seller, .badge-buyer, .badge-trader, .badge-support,
.badge-pro, .badge-recommended, .badge-current, .badge-live, .badge-neutral, .badge-status, .badge-field {
  display: inline-flex; align-items: center; gap: 0.3em;
  font-weight: 600; font-size: var(--text-xs); letter-spacing: 0.01em;
  padding: 0.32em 0.7em; border-radius: var(--radius-full);
}

/* ── Flexbox Sticky Footer ── */
.page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
#main-content {
  flex: 1 0 auto;
  padding-bottom: var(--space-24); /* Add extra padding at the bottom of the main content so floating buttons don't get stuck under the footer */
}

/* ── Footer — premium koyu bant (HER İKİ MODDA koyu → text-white güvenli) ── */
.footer {
  flex-shrink: 0;
  background: linear-gradient(180deg, #161519 0%, #0b0a0d 100%);
  border-top: 1px solid var(--border-strong);
  padding: var(--space-16) 0 var(--space-10);
  margin-top: auto;
  position: relative;
  z-index: 10;
}
.footer, .footer p, .footer li, .footer .small, .footer small { color: rgba(255,255,255,0.62); }
.footer h5, .footer h6 { color: #ffffff; }
.footer h5 { font-family: var(--font-display); }
.footer-link-hover { transition: color var(--duration-fast) var(--ease-out); }
.footer-link-hover:hover { color: white !important; text-decoration: none; }
.footer .navbar-logo { background-image: var(--accent-gradient); }
.footer hr { border-color: rgba(255,255,255,0.12); }

/* ── Topbar / sidebar yardımcıları ──────────────────────────────────────── */
.topbar-title { font-family: var(--font-display); font-weight: 600; color: var(--text-heading); }

/* Bildirim çanı — tema-adaptif (light modda görünür) */
.notif-bell-btn { color: var(--text-body) !important; }
.notif-bell-btn:hover { color: var(--accent) !important; }

/* Mobil sidebar toggle — yüzen premium buton */
.mobile-sidebar-toggle {
  display: none;
  position: fixed; top: 14px; left: 14px; z-index: 1100;
  width: 44px; height: 44px; border-radius: var(--radius-md);
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); color: var(--text-heading);
  align-items: center; justify-content: center; font-size: var(--text-lg);
  box-shadow: var(--shadow-md); cursor: pointer;
}
.sidebar-overlay {
  display: none; position: fixed; inset: 0; z-index: 1015;
  background: rgba(0,0,0,0.5);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
@media (max-width: 991.98px) {
  .mobile-sidebar-toggle { display: inline-flex; }
  .sidebar-overlay.show { display: block; }
}

.logout-btn { width: 42px; height: 42px; }

/* ── KONTRAST SERTLEŞTİRME — kalan kenar durumlar ───────────────────────── */
/* Light modda: text-white yalnızca koyu/renkli zeminde güvenli. Aşağıdaki
   bilinen-açık konteynerlerde text-white'ı nötralize ediyoruz (defansif). */
.navbar:not(.scrolled) .text-white,
.cloud-topbar .text-white,
.topbar .text-white { color: var(--text-heading) !important; }

/* btn-info üzerine text-white (açık camgöbeği zeminde zayıf kontrast) → koyu yazı */
.btn-info { color: var(--text-on-accent) !important; }
.btn-info.text-white { color: #06283d !important; }

/* Dark modda Bootstrap'in solid renkli zeminlerinde yazı netliği garantisi */
[data-bs-theme="dark"] .bg-primary,
[data-bs-theme="dark"] .bg-secondary,
[data-bs-theme="dark"] .bg-info,
[data-bs-theme="dark"] .bg-success,
[data-bs-theme="dark"] .bg-danger,
[data-bs-theme="dark"] .bg-dark { color: #ffffff; }
[data-bs-theme="dark"] .bg-warning { color: #1a1407; }

/* Dark modda: yanlışlıkla koyu yazı utility'leri açık zemine düşerse netle */
[data-bs-theme="dark"] .text-body-secondary { color: var(--text-subtle) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   v70 — Dark-mode Bootstrap Utility Köprüsü
   ───────────────────────────────────────────────────────────────────────────
   Denetim bulgusu: razor'da ~370 adet bg-light(129)/text-dark(106)/bg-white(41)
   kullanımı var ve Bootstrap 5.3 data-bs-theme bunları FLIP ETMEZ (literal
   utility'lerdir) → gece modunda beyaz kutular/okunmaz metin. Hepsini tek tek
   düzeltmek yerine bu köprü dark altında token'lara remap eder. Yeni kod
   token/utility-doğru yazıldıkça köprü zamanla küçülür.
   ═══════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .bg-light        { background-color: var(--bg-surface-2) !important; }
[data-theme="dark"] .bg-white        { background-color: var(--bg-surface) !important; }
[data-theme="dark"] .text-dark       { color: var(--text-heading) !important; }
[data-theme="dark"] .border-light    { border-color: var(--border) !important; }
[data-theme="dark"] .table-light > * { background-color: var(--bg-surface-2) !important; color: var(--text-body) !important; }
/* bg-light içindeki ikincil metinler dark'ta da okunur kalsın */
[data-theme="dark"] .bg-light .text-muted,
[data-theme="dark"] .bg-white .text-muted { color: var(--text-subtle) !important; }
/* badge'lerde text-dark kombinasyonu (bg-warning text-dark) zaten koyu zemin
   istemiyor — onları köprüden muaf tut.
   DARK-BADGE-001: kural yalnızca AÇIK zeminli rozetlere uygulanır. Önceden bütün .badge.text-dark'ı yakalıyordu;
   karanlık temada koyulaşan bg-light rozetlerine de koyu yazı basıp okunmaz yapıyordu (ihale sayfasındaki "Satıcı"). */
[data-theme="dark"] .badge.text-dark:is(.bg-warning, .bg-info) { color: var(--text-on-accent) !important; }

/* GLOBAL-FX v1: para birimi seçici rozeti + bilgilendirici çeviri */
.fx-badge { font-weight: 700; font-size: .8rem; letter-spacing: .02em; color: var(--text-heading); }
.fx-badge-sm { display:inline-grid; place-items:center; width:1.4rem; height:1.4rem; border-radius:6px;
  background: var(--accent-soft); color: var(--accent); font-weight:700; }
.fx-indicative { font-style: italic; opacity: .85; }

/* --- Custom Dark Theme Fixes for Create Auction UI --- */
[data-theme="dark"] .create-auction-section-box .form-control[type="file"]::file-selector-button,
[data-bs-theme="dark"] .create-auction-section-box .form-control[type="file"]::file-selector-button {
    background-color: var(--bs-primary);
    color: white;
    border: none;
    padding: 0.375rem 0.75rem;
    margin-inline-end: 1rem;
    border-radius: 4px;
    cursor: pointer;
}
[data-theme="dark"] .create-auction-section-box .form-control[type="file"],
[data-bs-theme="dark"] .create-auction-section-box .form-control[type="file"] {
    background-color: var(--bg-surface-2, #1a1d20) !important;
    border-color: var(--border-color, #495057) !important;
    color: var(--text-primary, #f8f9fa) !important;
}
[data-theme="dark"] .create-auction-section-box .input-group .btn-outline-secondary,
[data-bs-theme="dark"] .create-auction-section-box .input-group .btn-outline-secondary {
    background-color: var(--bg-surface-2, #1a1d20) !important;
    color: var(--text-primary, #f8f9fa) !important;
    border-color: var(--border-color, #495057) !important;
}
[data-theme="dark"] .create-auction-section-box .input-group .btn-outline-secondary:hover,
[data-bs-theme="dark"] .create-auction-section-box .input-group .btn-outline-secondary:hover {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}

/* FIX: .main-pt MainLayout'ta kullanılıyor ama tanımsızdı → fixed-top navbar
   public sayfalarda form/başlık üstünü kapatıyordu. Navbar ~72px + nefes payı. */
.main-pt { padding-top: 96px; }
@media (max-width: 991px) { .main-pt { padding-top: 84px; } }

/* ═══════════════════════════════════════════════════════════════════════════
   v70 — CAM YÜZEY (backdrop-filter) KOŞULLU DEVRE DIŞI
   ───────────────────────────────────────────────────────────────────────────
   `backdrop-filter` arkasındaki her pikseli yeniden örnekler; scroll sırasında
   ve üst üste binen cam yüzeylerde ölçülebilir maliyet üretir. Masaüstünde
   sorun değil, mobilde ve düşük donanımda hissedilir.

   ÇÖZÜM: Efekt masaüstünde KORUNUR (marka kimliği), aşağıdaki üç durumda
   kapatılır ve yerine opak bir yüzey konur — görünüm bozulmaz, yalnızca
   bulanıklık gider:
     · dar ekran (mobil/tablet)
     · kullanıcı saydamlık azaltma tercihi belirtmişse
     · kullanıcı hareket azaltma tercihi belirtmişse (aynı ailede bir tercih)
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 991.98px) {
  .glass, .glass-panel, .navbar-glass, .modal-content,
  .premium-card, .sidebar-glass, [class*="glass"] {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background-color: var(--bg-surface);
  }
}

@media (prefers-reduced-transparency: reduce) {
  .glass, .glass-panel, .navbar-glass, .modal-content,
  .premium-card, .sidebar-glass, [class*="glass"] {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background-color: var(--bg-surface);
  }
}


/* ═══ UI-FIX-001: TIKLANABİLİR İLAN KARTI ═══════════════════════════════════
   Kartın tamamı tıklanabilir yapıldı (Index.razor, Ihaleler.razor).
   Kart <a> ile SARILMADI çünkü içinde zaten bağlantılar var ve iç içe <a>
   geçersiz HTML'dir; bunun yerine role="link" + tabindex + onclick kullanıldı.

   Bu kurallar o yaklaşımın eksik parçalarını tamamlar:
   - imleç değişmezse kullanıcı tıklanabilir olduğunu anlamaz
   - klavye odağı görünmezse erişilebilirlik iddiası boş kalır
   - iç bağlantılar üstte kalmalı ki kendi hedeflerine gitsinler
   ════════════════════════════════════════════════════════════════════════ */
.auction-card--clickable { cursor: pointer; }

.auction-card--clickable:focus-visible {
    outline: 2px solid var(--bs-primary, #ffc107);
    outline-offset: 2px;
}

.auction-card--clickable a { position: relative; z-index: 2; }


/* MOBILE-WEB-001: Antlaşma mobil uygulamasının içindeki web ekranı — uygulamanın kendi üst çubuğu ve
   menüsü olduğu için sitenin üst menüsü, alt bilgisi ve yüzen düğmeleri gizlenir. */
html.in-app #mainNav, html.in-app footer.footer { display: none !important; }
html.in-app .main-pt { padding-top: 12px !important; }

/* MOBILE-WEB-002: uygulama içi web ekranında panelin kendi üst çubuğu, yan menüsü ve çerez kutusu gizlenir
   (gezinmeyi uygulama yapar; uygulama içinde yalnızca zorunlu çerezler kullanılır, isteğe bağlı çerez yazılmaz). */
html.in-app .cloud-topbar, html.in-app .topbar, html.in-app .mobile-sidebar-toggle, html.in-app #mainSidebar,
html.in-app .sidebar-overlay, html.in-app #cookie-consent { display: none !important; }
html.in-app .admin-content, html.in-app .dashboard-main-content { padding-left: 12px !important; padding-right: 12px !important; }
html.in-app body, html.in-app .app-container { overflow-x: hidden; }

/* PANEL-RESP-001: telefonda panel üst çubuğu satıra sığmıyor, sayfayı yana genişletiyordu */
@media (max-width: 767.98px) {
  .app-container { overflow-x: hidden; }
  .cloud-topbar { flex-wrap: wrap; gap: .5rem; padding-left: 56px !important; }
  .cloud-topbar .topbar-brand small, .cloud-topbar .user-identity, .cloud-topbar .istanbul-clock { display: none !important; }
  .cloud-topbar .topbar-actions { gap: .4rem !important; flex-wrap: wrap; }
  .cloud-topbar .topbar-actions > a.btn { padding: .35rem .7rem !important; font-size: .82rem; }
  .cloud-topbar .user-cloud-widget { padding-right: .25rem !important; }
  .cloud-topbar .user-cloud-widget .avatar-circle { margin-right: 0 !important; }
}

/* AUCTION-PAUSE-001: ihale arası duyuru bandı — okunaklı, yüksek kontrast */
.launch-banner { background: #10151a; color: #f3f5f7; border-bottom: 3px solid #F0B429; padding: .9rem 0; font-size: 1rem; line-height: 1.55; }
.launch-banner .container { max-width: 1100px; }
.launch-banner i { color: #F0B429; font-size: 1.1rem; }
.launch-banner b { color: #ffffff; font-weight: 700; }
.launch-banner.on-home { margin-top: 96px; }
@media (max-width: 991px) { .launch-banner.on-home { margin-top: 84px; } .launch-banner { font-size: .95rem; } }
a.launch-banner-cta, a.launch-banner-cta:visited { background: #F0B429; color: #10151a !important; font-weight: 800; border-radius: 99px; padding: .4rem 1.1rem; text-decoration: none; white-space: nowrap; opacity: 1; }
a.launch-banner-cta:hover { background: #ffc94d; color: #10151a !important; }
html.in-app .launch-banner.on-home { margin-top: 0; }
body:has(.launch-banner.on-home) .ihale-hero { padding-top: 32px; }

/* AUCTION-PAUSE-001: ana sayfa açılış öncesi paneli */
.prelaunch { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.5rem 1.6rem; box-shadow: 0 10px 28px rgba(0,0,0,.08); }
.prelaunch-kicker { color: #F0B429; font-weight: 800; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; margin-bottom: .35rem; }
.prelaunch-title { font-size: 1.5rem; font-weight: 800; color: var(--text-heading); margin: 0 0 .9rem; }
.prelaunch-steps { margin: 0 0 1.2rem; padding-left: 1.2rem; display: grid; gap: .6rem; color: var(--text-body); font-size: 1rem; line-height: 1.5; }
.prelaunch-steps b { color: var(--text-heading); }

/* AUCTION-PAUSE-001: Duyurular — açılış bilgisi */
.launch-info { background: var(--bg-surface); border: 1px solid var(--border); border-left: 4px solid #F0B429; border-radius: 18px; padding: 1.5rem; }
.launch-info-head h2 { font-size: 1.5rem; font-weight: 800; color: var(--text-heading); margin: .6rem 0 .3rem; }
.launch-info-head p, .launch-info-foot { color: var(--text-body); font-size: 1rem; line-height: 1.55; }
.launch-info-foot { margin: 1rem 0 0; }
.launch-info-foot a { font-weight: 700; }

a.pp-btn.launch-btn, a.pp-btn.launch-btn:visited { background: #F0B429; border-color: #F0B429; color: #10151a !important; font-weight: 800; }
a.pp-btn.launch-btn:hover { background: #ffc94d; border-color: #ffc94d; color: #10151a !important; }
a.pp-btn.launch-btn i { color: #10151a; }

.launch-news-card { height: 100%; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 1.2rem 1.25rem; }
.launch-news-ic { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(240,180,41,.14); color: #F0B429; font-size: 1.1rem; margin-bottom: .6rem; }
.launch-news-card h3 { font-size: 1.1rem; font-weight: 800; color: var(--text-heading); margin: 0 0 .4rem; }
.launch-news-card p { color: var(--text-body); font-size: .95rem; line-height: 1.55; margin: 0; }
.launch-news-card a { font-weight: 700; }

/* ══ FEEDBACK-001: Tavsiye ve Şikâyet ══════════════════════════════════════ */
.fb-kinds { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.25rem; }
@media (max-width: 640px) { .fb-kinds { grid-template-columns: 1fr; } }
.fb-kind { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; text-align: left; padding: 1.25rem 1.3rem; border-radius: 18px;
  background: var(--bg-surface); border: 2px solid var(--border); color: inherit; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.fb-kind:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.08); }
.fb-kind.on { border-color: #F0B429; box-shadow: 0 0 0 4px rgba(240,180,41,.16); }
.fb-kind-ic { width: 46px; height: 46px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.fb-kind-ic.tip { background: rgba(163,196,132,.18); color: #6f9a4e; }
.fb-kind-ic.bad { background: rgba(220,90,70,.14); color: #c4523f; }
.fb-kind-t { font-size: 1.2rem; font-weight: 800; color: var(--text-heading); }
.fb-kind-d { font-size: .95rem; line-height: 1.5; color: var(--text-body); }
.fb-card { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 20px; padding: 1.6rem 1.7rem; box-shadow: 0 12px 32px rgba(0,0,0,.06); }
@media (max-width: 640px) { .fb-card { padding: 1.2rem 1.1rem; } }
.fb-label { display: block; font-weight: 700; font-size: .95rem; color: var(--text-heading); margin: 1rem 0 .4rem; }
.fb-input { border-radius: 12px; padding: .7rem .9rem; font-size: 1rem; }
.fb-chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.fb-chip { border: 1px solid var(--border); background: var(--bg-surface-2, var(--bg-surface)); color: var(--text-body); border-radius: 999px; padding: .45rem .95rem; font-size: .92rem; font-weight: 600; cursor: pointer; }
.fb-chip.on { background: #F0B429; border-color: #F0B429; color: #10151a; }
.fb-count { text-align: right; font-size: .8rem; color: var(--text-subtle); margin-top: .25rem; }
.fb-muted { color: var(--text-subtle); font-weight: 400; }
.fb-privacy { font-size: .88rem; color: var(--text-subtle); margin: 1rem 0; line-height: 1.5; }
.fb-privacy i { color: #F0B429; margin-right: .3rem; }
.pp-btn.fb-submit { background: #F0B429; border-color: #F0B429; color: #10151a; font-weight: 800; padding: .8rem 1.6rem; font-size: 1.02rem; }
.pp-btn.fb-submit:hover { background: #ffc94d; color: #10151a; }
.pp-btn.fb-submit:disabled { opacity: .6; }
.fb-done { text-align: center; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 20px; padding: 2.4rem 1.5rem; }
.fb-done-ic { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; background: rgba(163,196,132,.2); color: #6f9a4e; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.fb-done h2 { font-weight: 800; color: var(--text-heading); }
.fb-done p { font-size: 1.02rem; color: var(--text-body); }

/* ══ SEO-GUIDES-001: rehberler ══════════════════════════════════════════ */
.guide-card { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.3rem 1.4rem; border-radius: 18px; background: var(--bg-surface); border: 1px solid var(--border); text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.guide-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.08); border-color: #F0B429; }
.guide-card-ic { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(240,180,41,.14); color: #F0B429; font-size: 1.15rem; margin-bottom: .3rem; }
.guide-card-k { font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-subtle); }
.guide-card-t { font-size: 1.15rem; font-weight: 800; color: var(--text-heading); line-height: 1.3; }
.guide-card-d { font-size: .95rem; color: var(--text-body); line-height: 1.5; flex: 1; }
.guide-card-go { font-weight: 700; color: #c48f12; margin-top: .3rem; }
.guide-crumb { font-size: .9rem; color: var(--text-subtle); margin-bottom: 1rem; }
.guide-crumb a { color: inherit; }
.guide-body { font-size: 1.06rem; line-height: 1.75; color: var(--text-body); }
.guide-body h2 { font-size: 1.35rem; font-weight: 800; color: var(--text-heading); margin: 1.8rem 0 .6rem; }
.guide-body ul { padding-left: 1.25rem; margin-bottom: 1rem; }
.guide-body li { margin-bottom: .35rem; }
.guide-body b { color: var(--text-heading); }
.guide-note { background: rgba(240,180,41,.10); border-left: 4px solid #F0B429; border-radius: 10px; padding: .75rem 1rem; font-size: .97rem; }
.guide-cta { margin-top: 1.8rem; padding: 1rem 1.2rem; border-radius: 14px; background: var(--bg-surface); border: 1px solid var(--border); font-weight: 600; }
.guide-cta a { color: #c48f12; font-weight: 800; }
.guide-more { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.guide-more h2 { font-size: 1.15rem; font-weight: 800; color: var(--text-heading); }
.guide-more a { font-weight: 600; }
/* SEO-GROWTH-002: rehberde alt başlık, sıralı adımlar ve görünür güncelleme tarihi */
.guide-body h3 { font-size: 1.12rem; font-weight: 800; color: var(--text-heading); margin: 1.3rem 0 .45rem; }
.guide-body ol { padding-left: 1.4rem; margin-bottom: 1rem; }
.guide-updated { font-size: .88rem; color: var(--text-subtle); margin: -.5rem 0 1.2rem; }

/* FRONT-FOOTER-001: alt bilgi sosyal simgeleri (koyu zeminde açık simge) */
.ft-social { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); color: #f3f5f7; background: transparent; text-decoration: none; transition: background .15s, border-color .15s; }
.ft-social:hover, .ft-social:focus-visible { background: rgba(255,255,255,.1); border-color: #F0B429; color: #F0B429; }
/* FRONT-LEAN-001: açılış bandı tek satır, sade */
.launch-banner { padding: .55rem 0; font-size: .92rem; }
/* FRONT-BOOT-001: uygulama bağlanana kadar boş ekran yerine marka iskeleti */
#boot-shell { position: fixed; inset: 0; z-index: 1; display: flex; flex-direction: column; background: var(--bg-body, #f6f7f9); }
#boot-shell .bs-bar { height: 64px; display: flex; align-items: center; gap: 10px; padding: 0 24px; border-bottom: 1px solid rgba(0,0,0,.06); font: 800 1.15rem system-ui, sans-serif; color: #10151a; }
#boot-shell .bs-bar img { width: 28px; height: 28px; }
#boot-shell .bs-line { height: 3px; width: 30%; background: #F0B429; animation: bsmove 1.1s ease-in-out infinite; }
@keyframes bsmove { 0% { transform: translateX(-100%); } 100% { transform: translateX(400%); } }
[data-theme="dark"] #boot-shell { background: #0f1317; } [data-theme="dark"] #boot-shell .bs-bar { color: #f3f5f7; border-color: rgba(255,255,255,.08); }

/* HOME-DEDUP-001: ana sayfa slider'ı masaüstünde alçak */
@media (min-width: 992px) { #mainHeroDisplay { --hero-ar: 3 / 1; } }

/* ═══════════════════════════════════════════════════════════════════════════
   Antlaşma — Homepage · "Refined Industrial Luxury"
   Hero · canlı ihaleler · kategori · trust · CTA · testimonials
   Class isimleri v68 ile birebir. Tokens.css'e bağımlı.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 640px;
  color: var(--text-heading);
  overflow: hidden;
  display: flex;
  align-items: center;
  padding-top: var(--space-20);
  padding-bottom: var(--space-16);
}
/* katmanlı ışıma — altın halo */
.hero::before {
  content: "";
  position: absolute;
  top: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 1100px;
  height: 700px;
  background: radial-gradient(circle at 50% 40%, var(--accent-glow) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
/* ince ızgara dokusu — endüstriyel referans */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--border-subtle) 1px, transparent 1px),
    linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 35%, #000 0%, transparent 75%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 35%, #000 0%, transparent 75%);
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
}
.hero .container { position: relative; z-index: 1; }

@media (min-width: 768px) {
  .hero { padding-top: var(--space-32); padding-bottom: var(--space-24); }
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.4rem 1rem;
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--accent-soft-hover);
  color: var(--accent);
  border-radius: var(--radius-full);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin-bottom: var(--space-6);
  box-shadow: var(--shadow-sm);
}
.hero-eyebrow .dot {
  width: 7px; height: 7px; border-radius: var(--radius-full);
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--accent-soft);
  animation: pulse 1.8s ease-in-out infinite;
}

.hero-title {
  font-family: var(--font-display);
  font-optical-sizing: auto;
  color: var(--text-heading);
  font-size: var(--text-hero);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: var(--tracking-tighter);
  margin-bottom: var(--space-6);
  text-wrap: balance;
}
.hero-title .text-accent {
  color: var(--accent);
  font-style: italic;       /* Fraunces italik — editöryel lüks vurgu */
}

.hero-subtitle {
  color: var(--text-subtle);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  max-width: 620px;
  margin-bottom: var(--space-8);
}
.hero.text-center .hero-subtitle { margin-left: auto; margin-right: auto; }

.hero-cta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-8); }
.hero.text-center .hero-cta { justify-content: center; }

.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); max-width: 560px; }
.hero-stat {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
}
.hero-stat-value {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 600;
  color: var(--accent);
  letter-spacing: var(--tracking-tighter);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.hero-stat-label {
  font-size: var(--text-xs); color: var(--text-subtle); margin-top: var(--space-2);
  text-transform: uppercase; letter-spacing: var(--tracking-wide);
}

/* ── LIVE MARKET ───────────────────────────────────────────────────────── */
.market-header {
  display: flex; align-items: end; justify-content: space-between;
  gap: var(--space-4); margin-bottom: var(--space-8); flex-wrap: wrap;
}
.live-pill {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 0.35rem 0.85rem; background: var(--success-soft); color: var(--success);
  border: 1px solid var(--success-soft); border-radius: var(--radius-full);
  font-size: var(--text-sm); font-weight: 700;
}
.live-pill .dot {
  width: 7px; height: 7px; border-radius: var(--radius-full);
  background: var(--success); box-shadow: 0 0 0 4px var(--success-soft);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%     { opacity: 0.55; transform: scale(0.82); }
}

/* ── AUCTION CARDS — premium derinlik + lift + altın kenar ──────────────── */
.auction-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-5);
}
.auction-card {
  position: relative;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: var(--text-body);
  display: flex; flex-direction: column;
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
/* üstte ince altın çizgi — hover'da belirir */
.auction-card::after {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--accent-gradient);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--duration-normal) var(--ease-out);
}
.auction-card:hover {
  transform: translateY(-6px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-lg);
}
.auction-card:hover::after { transform: scaleX(1); }

.auction-card-image {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, var(--bg-surface-2), var(--bg-surface-3));
  background-size: cover; background-position: center;
  position: relative;
}
.auction-status-badge {
  position: absolute; top: var(--space-3); left: var(--space-3);
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  color: var(--text-heading);
}
.auction-card-body { padding: var(--space-5); flex: 1; display: flex; flex-direction: column; gap: var(--space-2); }
.auction-card-title {
  font-family: var(--font-display);
  color: var(--text-heading); font-weight: 600; font-size: var(--text-lg);
  line-height: var(--leading-snug); margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.auction-title-link { color: inherit; text-decoration: none; }
.auction-title-link:hover { color: var(--accent); }
.auction-card-meta { color: var(--text-subtle); font-size: var(--text-sm); line-height: var(--leading-snug); }
.auction-card-time { font-size: var(--text-sm); color: var(--accent); font-weight: 600; }
.auction-card-price {
  margin-top: auto; padding-top: var(--space-4);
  border-top: 1px solid var(--border-subtle);
  display: flex; justify-content: space-between; align-items: end;
}
.auction-card-price .label {
  font-size: var(--text-xs); text-transform: uppercase;
  letter-spacing: var(--tracking-wide); color: var(--text-subtle);
}
.auction-card-price .value {
  font-family: var(--font-display);
  font-size: var(--text-2xl); font-weight: 600; color: var(--text-heading);
  font-variant-numeric: tabular-nums; line-height: 1;
}

/* ── CATEGORY CARDS ─────────────────────────────────────────────────────── */
.category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); }
.category-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3);
  padding: var(--space-6); background: var(--bg-surface);
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  color: var(--text-body); text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
.category-card:hover {
  transform: translateY(-4px); border-color: var(--border-strong); box-shadow: var(--shadow-md);
}
.category-card .icon {
  width: 52px; height: 52px; border-radius: var(--radius-md);
  background: var(--accent-soft); color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center; font-size: var(--text-xl);
  transition: background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}
.category-card:hover .icon { background: var(--accent-soft-hover); transform: scale(1.06); }
.category-card .name { font-family: var(--font-display); font-weight: 600; color: var(--text-heading); font-size: var(--text-lg); }
.category-card .desc { color: var(--text-subtle); font-size: var(--text-sm); }

/* ── TRUST BAND ─────────────────────────────────────────────────────────── */
.trust-band {
  background: var(--bg-surface-2);
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  padding: var(--space-16) 0;
}
.trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-6); }
.trust-item { text-align: center; padding: var(--space-6); }
.trust-item-icon {
  width: 68px; height: 68px; margin: 0 auto var(--space-4);
  border-radius: var(--radius-full);
  background: var(--accent-soft); color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center; font-size: var(--text-2xl);
  box-shadow: inset 0 0 0 1px var(--accent-soft-hover);
  transition: transform var(--duration-normal) var(--ease-spring);
}
.trust-item:hover .trust-item-icon { transform: translateY(-4px) scale(1.04); }
.trust-item h6 { font-family: var(--font-display); color: var(--text-heading); font-weight: 600; font-size: var(--text-lg); margin-bottom: var(--space-2); }
.trust-item p { color: var(--text-subtle); font-size: var(--text-sm); margin: 0; }

/* ── CTA BANNER — dramatik altın ───────────────────────────────────────── */
.cta-banner {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--bg-surface-2) 0%, var(--bg-surface) 100%);
  color: var(--text-heading);
  border: 1px solid var(--border);
  border-radius: var(--radius-2xl);
  padding: var(--space-20) var(--space-16);
  box-shadow: var(--shadow-lg);
  text-align: center;
}
.cta-banner::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(50% 80% at 0% 0%, var(--accent-soft) 0%, transparent 55%),
    radial-gradient(50% 80% at 100% 100%, var(--accent-soft) 0%, transparent 55%);
}
.cta-banner > * { position: relative; z-index: 1; }
.cta-banner h2 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 600;
  margin-bottom: var(--space-3); letter-spacing: var(--tracking-tighter);
}
.cta-banner p { color: var(--text-subtle); font-size: var(--text-lg); margin: 0 auto var(--space-8); max-width: 560px; }

/* ── PARTNER LOGOS ──────────────────────────────────────────────────────── */
.partner-logos {
  background: transparent;
  border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle);
  padding: var(--space-10) 0;
}
.partner-logo {
  font-family: var(--font-display);
  font-size: var(--text-lg); font-weight: 600; color: var(--text-subtle);
  filter: grayscale(100%); opacity: 0.55;
  transition: opacity var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
  display: inline-flex; align-items: center;
}
.partner-logo:hover { filter: grayscale(0%); opacity: 1; color: var(--text-heading); }

/* ── TESTIMONIALS — cam kartlar + tırnak aksanı ─────────────────────────── */
.testimonials { background: transparent; border-top: 1px solid var(--border-subtle); padding: var(--space-20) 0; }
.testimonial-card {
  position: relative; overflow: hidden;
  background: var(--bg-surface);
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-6); height: 100%; display: flex; flex-direction: column;
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
.testimonial-card::before {
  content: "\201C";                 /* dekoratif tırnak */
  position: absolute; top: -0.35em; right: 0.25em;
  font-family: var(--font-display);
  font-size: 7rem; line-height: 1; color: var(--accent-soft-hover);
  pointer-events: none;
}
.testimonial-card:hover { transform: translateY(-5px); border-color: var(--border-strong); box-shadow: var(--shadow-lg); }
.testimonial-card .avatar { background-image: var(--accent-gradient) !important; color: var(--text-on-accent) !important; box-shadow: var(--shadow-sm); }
.testimonial-card .card-text { color: var(--text-body); line-height: var(--leading-relaxed); }
.testimonial-card .text-warning { color: var(--accent) !important; }

/* ── RESPONSIVE ─────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hero { min-height: auto; }
  .hero-stats { grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
  .hero-stat { padding: var(--space-3); }
  .hero-stat-value { font-size: var(--text-xl); }
  .cta-banner { padding: var(--space-12) var(--space-5); }
  .auction-card:hover { transform: translateY(-3px); }
}

/* ── v70: Yaklaşan İhaleler şeridi (önceki inline hardcoded gradient yerine) ── */
.upcoming-strip {
  background:
    radial-gradient(60% 80% at 10% 0%, var(--accent-soft) 0%, transparent 60%),
    var(--bg-surface-2);
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
}
.upcoming-strip .section-title { color: var(--text-heading); }
.upcoming-card {
  width: 260px;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
  overflow: hidden;
}
.upcoming-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.upcoming-card .card-img-top { height: 130px; object-fit: cover; }
.upcoming-card .upcoming-title { color: var(--text-heading); }
.upcoming-card .upcoming-count { color: var(--info); }
.upcoming-card .btn-upcoming {
  display: block; width: 100%;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  padding: .4rem;
  font-size: var(--text-sm); font-weight: 600;
  color: var(--text-heading); text-align: center; text-decoration: none;
  transition: background .15s ease;
}
.upcoming-card .btn-upcoming:hover { background: var(--accent-soft); border-color: var(--accent); }

/* Anasayfa hero slider */
.hero-carousel-section .hero-bg-wrapper {
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  background-color: var(--bg-surface-2);
  display: flex;
  align-items: flex-end;
}
.hero-carousel-section .hero-content-overlay {
  width: 100%;
  padding: 1.5rem 2rem;
  background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.1) 70%, transparent);
  color: #fff;
  pointer-events: none;
}
.hero-carousel-section .hero-content-overlay > * {
  pointer-events: auto;
}
.hero-carousel-section .hero-content-overlay h3 {
  color: #fff;
  font-size: clamp(1.2rem, 3vw, 1.75rem);
}
.hero-carousel-section .hero-content-overlay p {
  font-size: clamp(0.85rem, 2vw, 1rem);
}
@media (max-width: 576px) {
  .hero-carousel-section .hero-content-overlay {
    padding: 0.75rem 1rem;
  }
}

.btn-xs {
  padding: 0.22rem 0.6rem;
  font-size: 0.75rem;
  line-height: 1.2;
}




/* AUCTION-FOCUS-001: ihale önce — ana sayfa üst bölümü */
.ihale-hero { padding: 104px 0 28px; background:
    radial-gradient(1200px 400px at 85% -10%, rgba(240,180,41,.12), transparent 60%),
    linear-gradient(180deg, var(--bg-surface-2), var(--bg-base)); border-bottom: 1px solid var(--border-subtle, var(--border)); }
@media (max-width: 991px) { .ihale-hero { padding-top: 92px; } }
.ihale-hero-title { font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 800; line-height: 1.15; color: var(--text-heading); margin: .4rem 0 .8rem; letter-spacing: -.01em; }
.ihale-hero-lead { color: var(--text-body); font-size: 1.05rem; line-height: 1.6; max-width: 620px; margin-bottom: 1.2rem; }
.ihale-path { display: flex; flex-direction: column; gap: .45rem; height: 100%; padding: 1.2rem; border-radius: 16px; text-decoration: none;
    background: var(--bg-surface); border: 1px solid var(--border); box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ihale-path:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.10); border-color: var(--accent); }
.ihale-path-ic { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.ihale-path-ic.up { background: rgba(52,201,138,.14); color: var(--success, #1e9e6a); }
.ihale-path-ic.down { background: rgba(76,134,190,.16); color: var(--primary); }
.ihale-path-t { font-weight: 800; font-size: 1.12rem; color: var(--text-heading); }
.ihale-path-d { color: var(--text-subtle); font-size: .92rem; line-height: 1.5; flex: 1; }
.ihale-path-go { color: var(--accent); font-weight: 700; font-size: .92rem; }
.ihale-types { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .9rem; }
.ihale-types span { font-size: .78rem; padding: .25rem .65rem; border-radius: 999px; background: var(--bg-surface); border: 1px solid var(--border); color: var(--text-subtle); }
@media (max-width: 575px) { .ihale-hero { padding-top: 112px; } .ihale-hero-lead { font-size: .98rem; } }

/* ═══════════════════════════════════════════════════════════════════════════
   Antlaşma — Dashboard · "Refined Industrial Luxury"
   Admin · Seller · Buyer · Trader · Auditor · Support panelleri
   Class isimleri v68 ile birebir. Tokens.css'e bağımlı.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── PANEL LAYOUT ───────────────────────────────────────────────────────── */
.app-container { background-color: var(--bg-base); min-height: 100vh; display: flex; }
.main-wrapper {
  flex-grow: 1; display: flex; flex-direction: column;
  min-height: 100vh; min-width: 0; background-color: var(--bg-content);
}
.dashboard-main-content, .admin-content, .dashboard-content, .panel-content {
  padding: var(--space-8); flex-grow: 1;
}

/* ── SIDEBAR — cam + altın aktif durum ──────────────────────────────────── */
.sidebar, .premium-sidebar {
  background: var(--bg-surface);
  border-right: 1px solid var(--border);
  width: 264px; height: 100vh; position: sticky; top: 0;
  display: flex; flex-direction: column; flex-shrink: 0; z-index: 1020;
  padding: var(--space-4);
}
.sidebar-brand {
  padding: var(--space-2) var(--space-3) var(--space-6);
  display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0;
}
.sidebar-brand .brand-text {
  font-family: var(--font-display);
  color: var(--text-heading); font-weight: 600; font-size: var(--text-lg);
  letter-spacing: var(--tracking-tight);
}
.sidebar-nav { flex-grow: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.sidebar-heading, .sidebar-section-label {
  font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider);
  text-transform: uppercase; color: var(--text-disabled);
  padding: var(--space-4) var(--space-3) var(--space-2);
}
.sidebar-heading:first-child, .sidebar-section-label:first-child { padding-top: 0; }

.sidebar-link {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-md);
  color: var(--text-subtle); font-size: var(--text-sm); font-weight: 500;
  text-decoration: none; position: relative;
  transition: background var(--duration-fast) var(--ease-out),
              color var(--duration-fast) var(--ease-out);
}
.sidebar-link:hover { background: var(--bg-surface-2); color: var(--text-heading); }
.sidebar-link.active {
  background: var(--accent-soft); color: var(--accent); font-weight: 600;
}
.sidebar-link.active::before {
  content: ''; position: absolute; left: -4px; top: 50%; transform: translateY(-50%);
  width: 3px; height: 62%; background: var(--accent-gradient);
  border-radius: var(--radius-full); box-shadow: 0 0 8px var(--accent-glow);
}
.sidebar-link .icon { width: 18px; height: 18px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.sidebar-footer { padding-top: var(--space-4); border-top: 1px solid var(--border-subtle); margin-top: auto; }

/* ── TOPBAR — cam ───────────────────────────────────────────────────────── */
.topbar, .cloud-topbar {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--border);
  padding: var(--space-3) var(--space-8);
  display: flex; align-items: center; justify-content: space-between;
  position: sticky; top: 0; z-index: 1010;
}
.topbar-brand h4 { margin: 0; font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; }
.topbar-actions { display: flex; align-items: center; gap: var(--space-4); }
.user-cloud-widget { display: flex; align-items: center; gap: var(--space-3); cursor: pointer; }
.user-identity { display: flex; flex-direction: column; }
.user-name { font-size: var(--text-sm); font-weight: 600; color: var(--text-heading); }
.user-role { font-size: var(--text-xs); color: var(--text-subtle); }

/* ── STAT CARDS — premium derinlik + altın aksan ───────────────────────── */
.stat-card {
  position: relative; overflow: hidden;
  background: var(--bg-surface);
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-1);
  box-shadow: var(--shadow-sm);
  transition: transform var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}
.stat-card::before {
  content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px;
  background: var(--accent-gradient); opacity: 0;
  transition: opacity var(--duration-normal) var(--ease-out);
}
.stat-card:hover {
  transform: translateY(-4px); border-color: var(--border-strong); box-shadow: var(--shadow-md);
}
.stat-card:hover::before { opacity: 1; }
.stat-card-label {
  font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wide);
  text-transform: uppercase; color: var(--text-subtle);
}
.stat-card-value {
  font-family: var(--font-display);
  font-size: var(--text-4xl); font-weight: 600; letter-spacing: var(--tracking-tighter);
  color: var(--text-heading); line-height: 1; font-variant-numeric: tabular-nums;
}
.stat-card-delta {
  display: inline-flex; align-items: center; gap: var(--space-1);
  font-size: var(--text-xs); font-weight: 600; color: var(--success); margin-top: var(--space-2);
}
.stat-card-delta.negative { color: var(--danger); }
.stat-card.bg-primary, .stat-card.bg-success, .stat-card.bg-warning, .stat-card.bg-danger, .stat-card.bg-info,
.stat-card.stat-primary, .stat-card.stat-success, .stat-card.stat-warning, .stat-card.stat-danger, .stat-card.stat-purple {
  background: var(--bg-surface) !important; color: var(--text-body) !important;
}

/* ── PAGE HEADER ────────────────────────────────────────────────────────── */
.admin-header, .page-header {
  margin-bottom: var(--space-8); padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--border-subtle);
}
.admin-header h1, .admin-header h2, .page-header h1, .page-header h2 {
  font-family: var(--font-display);
  color: var(--text-heading); font-weight: 600; letter-spacing: var(--tracking-tighter);
  margin-bottom: var(--space-2);
}
.admin-header .lead, .page-header .lead { color: var(--text-subtle); font-size: var(--text-sm); margin: 0; }

/* ── DASHBOARD TABLES — premium ─────────────────────────────────────────── */
.dashboard-table, .premium-table {
  background: var(--bg-surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm);
}
.dashboard-table table, .premium-table table { margin: 0; width: 100%; }
.dashboard-table thead, .premium-table thead { background-color: var(--bg-surface-2); }
.dashboard-table th, .premium-table th {
  color: var(--text-subtle); font-size: var(--text-xs); font-weight: 700;
  text-transform: uppercase; letter-spacing: var(--tracking-wide);
  padding: var(--space-3) var(--space-5);
  border-bottom: 1px solid var(--border); text-align: left;
}
.dashboard-table td, .premium-table td {
  padding: var(--space-4) var(--space-5); color: var(--text-body);
  border-bottom: 1px solid var(--border-subtle); vertical-align: middle;
}
.dashboard-table tbody tr:last-child td, .premium-table tbody tr:last-child td { border-bottom: none; }
.dashboard-table tbody tr, .premium-table tbody tr { transition: background var(--duration-fast) var(--ease-out); }
.dashboard-table tbody tr:hover, .premium-table tbody tr:hover { background-color: var(--bg-surface-2); }

/* ── MOBILE ─────────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  .sidebar, .premium-sidebar {
    position: fixed; transform: translateX(-100%);
    transition: transform var(--duration-normal) var(--ease-out);
    box-shadow: var(--shadow-xl);
  }
  .sidebar.show, .premium-sidebar.show { transform: translateX(0); }
  .dashboard-main-content, .admin-content, .dashboard-content, .panel-content { padding: var(--space-4); }
  .topbar, .cloud-topbar { padding: var(--space-3) var(--space-4); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   UI-DENSITY-001 — Yönetim ekranlarında nefes payı
   ───────────────────────────────────────────────────────────────────────────
   "Ferahlık" hissi renkten değil boşluktan gelir. Ölçek zaten tam
   (--space-0..32); sorun kartların ölçeğin ALT ucunu kullanmasıydı.
   Burada yalnızca yönetim/panel yüzeylerini gevşetiyoruz — pazar
   sayfalarının yoğunluğu bilinçli, ona dokunulmuyor.
   ═══════════════════════════════════════════════════════════════════════════ */
.dashboard-main-content .card {
  border-radius: var(--radius-lg);
}
.dashboard-main-content .card-body { padding: var(--space-6); }
.dashboard-main-content .card + .card { margin-top: var(--space-4); }
.dashboard-main-content .row > [class^="col"] { margin-bottom: var(--space-4); }

/* Bölüm başlıkları arasında görsel nefes — ekran "duvar" gibi okunmasın. */
.dashboard-main-content section + section,
.dashboard-main-content .dashboard-section + .dashboard-section { margin-top: var(--space-8); }

/* Tablo satırları: 8px'lik dikey padding satırları birbirine yapıştırıyordu. */
.dashboard-main-content .table > :not(caption) > * > * {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
}

@media (max-width: 767.98px) {
  /* Mobilde aynı boşluk ekranı yer,  bir kademe sıkılaştır. */
  .dashboard-main-content .card-body { padding: var(--space-4); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SET-FIND-001 — Ayarlar ekranı: arama, sekme sayacı, sonuç rozeti
   Tüm değerler token'dan; dark mode otomatik.
   ═══════════════════════════════════════════════════════════════════════════ */
.settings-search .input-group-text,
.settings-search .form-control {
  background: var(--bg-surface);
  border-color: var(--border);
}
.settings-search .form-control:focus {
  box-shadow: none;
  border-color: var(--color-primary-500);
}

/* Sekme başına ayar sayısı — boş sekmeye tıklamayı gereksiz kılar. */
.tab-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.35rem; height: 1.35rem; padding: 0 var(--space-1);
  border-radius: var(--radius-full, 999px);
  font-size: var(--text-xs); font-weight: 700; line-height: 1;
  background: var(--bg-surface-3); color: var(--text-subtle);
}
.btn-accent-active .tab-count {
  background: var(--bg-surface); color: var(--text-heading);
}

/* Arama sonucunda ayarın hangi sekmeye ait olduğunu gösteren rozet:
   kullanıcı hem ayarı bulur hem yerini öğrenir. */
.search-hit { display: flex; flex-direction: column; }
.search-hit-tab {
  display: inline-flex; align-items: center; gap: var(--space-1);
  margin-bottom: var(--space-1);
  font-size: var(--text-xs); font-weight: 600;
  color: var(--text-subtle);
}
.search-hit-tab i { opacity: .7; }

/* ═══════════════════════════════════════════════════════════════════════════
   CONTRAST-001 — HER ZAMAN KOYU OLAN YÜZEYLER
   ───────────────────────────────────────────────────────────────────────────
   Sorun: Giriş sayfasının sol paneli gibi bazı yüzeylerin arka planı SABİT
   koyu (gradient ile), ama içindeki metin TEMAYA BAĞLI token kullanıyor
   (.text-muted, --text-subtle, --text-disabled). Bu token'lar açık temada
   koyu gri değer alır → koyu lacivert zeminde metin okunamaz hâle gelir.

   Ekran görüntüsündeki "siyah üstüne siyah yazı" tam olarak budur ve yalnızca
   AÇIK temada görünür; karanlık temada tesadüfen düzgün görünür.

   Çözüm: Arka planı sabit koyu olan yüzeyleri işaretleyip metin token'larını
   o kapsam içinde açık değerlere sabitliyoruz. Temaya bağlı olmaktan çıkıyor,
   çünkü yüzeyin kendisi de temaya bağlı değil.

   Yeni bir sabit-koyu bölüm eklerken kapsayıcıya .on-dark-surface ekleyin.
   ═══════════════════════════════════════════════════════════════════════════ */
.login-left-panel,
.on-dark-surface {
  --text-body:     rgba(255, 255, 255, .92);
  --text-heading:  #ffffff;
  --text-subtle:   rgba(255, 255, 255, .72);
  --text-muted:    rgba(255, 255, 255, .64);
  --text-disabled: rgba(255, 255, 255, .48);
  --border:        rgba(255, 255, 255, .16);
  color: var(--text-body);
}

/* Bootstrap yardımcı sınıfları !important taşıdığı için token override'ı
   tek başına yetmiyor; bu kapsamda onları da bastırıyoruz. */
.login-left-panel .text-muted,
.on-dark-surface .text-muted    { color: var(--text-muted) !important; }
.login-left-panel .text-subtle,
.on-dark-surface .text-subtle   { color: var(--text-subtle) !important; }
.login-left-panel .text-dark,
.on-dark-surface .text-dark     { color: var(--text-heading) !important; }
.login-left-panel .text-body,
.on-dark-surface .text-body     { color: var(--text-body) !important; }

/* Tersi durum: her zaman AÇIK olan yüzeylerde (beyaz kart, yazdırma görünümü)
   karanlık temada açık metin beyaz zemine düşüyordu. */
.on-light-surface {
  --text-body:     #1f2937;
  --text-heading:  #0f172a;
  --text-subtle:   #475569;
  --text-muted:    #64748b;
  --text-disabled: #94a3b8;
  --border:        #e2e8f0;
  color: var(--text-body);
}
.on-light-surface .text-muted { color: var(--text-muted) !important; }
.on-light-surface .text-white { color: var(--text-heading) !important; }

/* ── DASHBOARD FOOTER · TEMA UYUMLU ───────────────────────────────────────── */
.dashboard-footer,
.trader-footer,
.buyer-footer,
.admin-footer,
.seller-footer,
.dashboard-main-content .footer,
.main-wrapper .footer,
.app-container .footer {
  background: var(--bg-surface) !important;
  background-color: var(--bg-surface) !important;
  background-image: none !important;
  color: var(--text-subtle) !important;
  border-top: 1px solid var(--border) !important;
  padding: var(--space-4) 0 !important;
}

.dashboard-footer span,
.trader-footer span,
.buyer-footer span,
.admin-footer span,
.seller-footer span,
.dashboard-main-content .footer span,
.main-wrapper .footer span,
.app-container .footer span {
  color: var(--text-subtle) !important;
}

/* SIDEBAR-COLLAPSE-001: açılır-kapanır menü bölümleri */
.sb-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: 0; text-align: left; cursor: pointer; color: inherit; }
.sb-toggle:hover { opacity: 1; filter: brightness(1.25); }
.sb-chev { font-size: .6rem; opacity: .6; transition: transform .2s ease; transform: rotate(-90deg); }
.sb-sec.open .sb-chev { transform: rotate(0deg); }
.sb-sec .sb-body { display: none; }
.sb-sec.open .sb-body { display: block; }

/* ═══════════════════════════════════════════════════════════════════════════
   Antlaşma — premium.css · Üyelik Tier Kartları
   ───────────────────────────────────────────────────────────────────────────
   Premium.razor'daki semantik hook'lar (tier-card, data-tier, tier-recommended
   vb.) bugüne kadar HİÇBİR css'te tanımlı değildi → sayfa stilsiz render
   oluyordu. Bu dosya o sistemi tokens.css üzerinden kurar:
   · tüm renkler token → gece/gündüz otomatik uyumlu
   · --tier-*-gradient token'ları İLK KEZ kullanılıyor
   · cam yüzey + atmosferik glow + editöryel tipografi (v69 esteti)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────────────────────── */
.premium-hero {
  text-align: center;
  padding: 3.5rem 1rem 1.5rem;
}
.premium-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-heading);
  margin-bottom: 0.5rem;
}
.premium-hero h1 .accent { color: var(--accent); }
.premium-lead {
  color: var(--text-subtle);
  font-size: var(--text-lg);
  max-width: 560px;
  margin: 0 auto;
}

/* ── Bölüm ────────────────────────────────────────────────────────────── */
.premium-tiers-section {
  position: relative;
  padding: 1.5rem 0 4rem;
}
.premium-tiers-section::before {            /* atmosferik ışıma */
  content: "";
  position: absolute; inset: 0;
  background: var(--mesh-1), var(--mesh-2);
  pointer-events: none;
}

/* ── Kart ─────────────────────────────────────────────────────────────── */
.tier-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.75rem 1.5rem 1.5rem;
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: var(--shadow-md);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: hidden;
}
.tier-card:hover {
  transform: translateY(-6px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-lg);
}

/* Tier kimliği: kartın üst şeridi data-tier'a göre renklenir */
.tier-card::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: var(--border-strong);
}
.tier-card[data-tier="gold"]::before     { background: var(--tier-gold-gradient); }
.tier-card[data-tier="platinum"]::before { background: var(--tier-platinum-gradient); }
.tier-card[data-tier="diamond"]::before  { background: var(--tier-diamond-gradient); }

/* ── Önerilen (Platinum) — sahnenin yıldızı ──────────────────────────── */
.tier-recommended {
  border-color: var(--accent);
  box-shadow: var(--shadow-glow), var(--shadow-lg);
  transform: scale(1.03);
  z-index: 2;
}
.tier-recommended:hover { transform: scale(1.03) translateY(-6px); }

.tier-badge-recommended {
  position: absolute; top: 14px; right: -34px;
  transform: rotate(38deg);
  background: var(--accent-gradient);
  color: var(--text-on-accent);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 0.3rem 2.6rem;
  box-shadow: var(--shadow-sm);
  pointer-events: none;
}
.tier-badge-current {
  position: absolute; top: 14px; left: 14px;
  background: var(--success-soft);
  color: var(--success);
  border: 1px solid var(--success);
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.25rem 0.7rem;
}
.tier-current { border-color: var(--success); }

/* ── Başlık bloğu ─────────────────────────────────────────────────────── */
.tier-header { text-align: center; padding-bottom: 1.1rem; border-bottom: 1px dashed var(--border); }
.tier-icon {
  width: 58px; height: 58px;
  margin: 0 auto 0.9rem;
  display: grid; place-items: center;
  border-radius: 16px;
  color: #fff;
  font-size: 1.35rem;
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.25);
}
/* inline BadgeColor gradient'ı kalsa da tier bazlı token görünümü baskın olsun */
.tier-card[data-tier="free"]     .tier-icon { background: var(--bg-surface-3) !important; color: var(--text-subtle); }
.tier-card[data-tier="gold"]     .tier-icon { background: var(--tier-gold-gradient) !important; }
.tier-card[data-tier="platinum"] .tier-icon { background: var(--tier-platinum-gradient) !important; }
.tier-card[data-tier="diamond"]  .tier-icon { background: var(--tier-diamond-gradient) !important; color: #23445c; }

.tier-name {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  color: var(--text-heading);
  margin: 0 0 0.35rem;
}
.tier-price { display: flex; align-items: baseline; justify-content: center; gap: 0.2rem; }
.tier-price-currency { font-size: var(--text-base); color: var(--text-subtle); font-weight: 600; }
.tier-price-amount {
  font-family: var(--font-display);
  font-size: 2.1rem;
  font-weight: 650;
  color: var(--text-heading);
  letter-spacing: -0.02em;
}
.tier-price-period { font-size: var(--text-sm); color: var(--text-muted); }

/* ── Özellik listesi ──────────────────────────────────────────────────── */
.tier-features {
  list-style: none;
  padding: 1.1rem 0 1.25rem;
  margin: 0;
  flex-grow: 1;
}
.tier-features li {
  display: flex; align-items: flex-start; gap: 0.55rem;
  padding: 0.32rem 0;
  font-size: var(--text-sm);
  color: var(--text-body);
}
.feature-check { color: var(--success); margin-top: 2px; flex-shrink: 0; }
.tier-recommended .feature-check { color: var(--accent); }

/* ── CTA ──────────────────────────────────────────────────────────────── */
.tier-cta {
  display: block; width: 100%;
  padding: 0.7rem 1rem;
  border-radius: 12px;
  font-weight: 700;
  font-size: var(--text-sm);
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
  border: 1px solid var(--border-strong);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  cursor: pointer;
}
.tier-cta:hover { transform: translateY(-1px); }

.tier-primary {
  background: var(--accent-gradient);
  border-color: transparent;
  color: var(--text-on-accent);
  box-shadow: var(--shadow-sm);
}
.tier-primary:hover { box-shadow: var(--shadow-glow); color: var(--text-on-accent); }

.tier-secondary {
  background: var(--bg-surface);
  color: var(--text-heading);
}
.tier-secondary:hover { background: var(--bg-surface-2); color: var(--text-heading); }

/* ── Dar ekran ────────────────────────────────────────────────────────── */
@media (max-width: 991px) {
  .tier-recommended { transform: none; }
  .tier-recommended:hover { transform: translateY(-6px); }
  .tier-card { margin-bottom: 1rem; }
}

/* ── PREMIUM-CTA-002: kart düğmeleri ───────────────────────────────────────
   Premium.razor düğmeleri .btn-tier / .btn-tier-primary / .btn-tier-secondary kullanıyordu ama bu sınıflar
   hiç tanımlı değildi: düğmeler tarayıcının çıplak varsayılanıyla çıkıyor, .tier-cta da (düğme için yazılmış)
   sarmalayıcıya çerçeve basıyordu. Sarmalayıcı sadeleşti; düğmeler kademe rengini taşıyor. */
.tier-card .tier-cta {
  display: block; padding: 0; border: 0; background: none; box-shadow: none;
  margin-top: auto; transform: none !important; cursor: default;
}
.btn-tier {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; min-height: 48px; padding: .75rem 1.1rem;
  border-radius: 14px; border: 1px solid var(--border-strong);
  font-weight: 700; font-size: var(--text-sm); letter-spacing: .02em; line-height: 1.2;
  background: var(--bg-surface); color: var(--text-heading);
  position: relative; overflow: hidden; cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}
.btn-tier i.fa-arrow-right { transition: transform .18s ease; }
.btn-tier:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 10px 24px -12px rgba(0,0,0,.45); }
.btn-tier:not(:disabled):hover i.fa-arrow-right { transform: translateX(4px); }
.btn-tier:not(:disabled):active { transform: translateY(0); }
.btn-tier:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.btn-tier:disabled { opacity: .55; cursor: not-allowed; }

.btn-tier-secondary:not(:disabled):hover { background: var(--bg-surface-2); border-color: var(--accent); }

/* Ana düğme: hafif parıltı geçişi */
.btn-tier-primary {
  background: var(--accent-gradient); border-color: transparent; color: var(--text-on-accent);
  box-shadow: 0 8px 22px -10px rgba(240,180,41,.65);
}
.btn-tier-primary::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-120%);
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
}
.btn-tier-primary:not(:disabled):hover::after { transform: translateX(120%); transition: transform .8s ease; }

/* Kademe renkleri */
.tier-card[data-tier="gold"]     .btn-tier:not(.btn-tier-current):not(.btn-tier-secondary) { background: var(--tier-gold-gradient); border-color: transparent; color: #2b1d02; }
.tier-card[data-tier="platinum"] .btn-tier:not(.btn-tier-current):not(.btn-tier-secondary) { background: var(--accent-gradient); border-color: transparent; color: var(--text-on-accent); }
.tier-card[data-tier="diamond"]  .btn-tier:not(.btn-tier-current):not(.btn-tier-secondary) { background: var(--tier-diamond-gradient); border-color: transparent; color: #12324a; }

.btn-tier-current {
  background: rgba(var(--bs-success-rgb), .12); border-color: rgba(var(--bs-success-rgb), .45);
  color: var(--success); opacity: 1 !important; cursor: default !important;
}
.tier-card .tier-cta-note { display: block; margin-top: .5rem; font-size: .75rem; text-align: center; color: var(--text-muted); }

/* ── PREMIUM-CHECKOUT-002: satın alma penceresi ───────────────────────── */
.pm-modal .modal-content { border: 0; border-radius: 20px; overflow: hidden; background: var(--bg-surface); color: var(--text-body); }
.pm-head { padding: 1.5rem 1.5rem 1.25rem; color: #fff; position: relative; }
.pm-head[data-tier="gold"]     { background: var(--tier-gold-gradient); color: #2b1d02; }
.pm-head[data-tier="platinum"] { background: var(--tier-platinum-gradient); }
.pm-head[data-tier="diamond"]  { background: var(--tier-diamond-gradient); color: #12324a; }
.pm-head .btn-close { position: absolute; top: 1rem; right: 1rem; }
.pm-head-icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.4rem; background: rgba(255,255,255,.28); }
.pm-price { font-size: 2rem; font-weight: 800; line-height: 1; }
.pm-price small { font-size: .9rem; font-weight: 600; opacity: .8; }
.pm-body { padding: 1.25rem 1.5rem 1.5rem; }
.pm-perks { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .4rem; }
.pm-perks li { display: flex; gap: .55rem; font-size: var(--text-sm); }
.pm-perks i { color: var(--success); margin-top: 3px; }
.pm-label { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: .6rem; }
.pm-method {
  display: flex; align-items: center; gap: .85rem; width: 100%; text-align: left;
  padding: .85rem 1rem; border-radius: 14px; border: 1.5px solid var(--border); background: var(--bg-surface);
  color: var(--text-heading); transition: border-color .15s, background-color .15s, transform .15s;
}
.pm-method:not(:disabled):hover { border-color: var(--accent); transform: translateY(-1px); }
.pm-method.active { border-color: var(--accent); background: rgba(240,180,41,.08); }
.pm-method:disabled { opacity: .5; cursor: not-allowed; }
.pm-method-icon { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; display: grid; place-items: center; background: var(--bg-surface-2); color: var(--accent); }
.pm-method small { display: block; font-weight: 400; color: var(--text-muted); }
.pm-bank { border: 1px dashed var(--border-strong); border-radius: 14px; padding: 1rem; background: var(--bg-surface-2); }
.pm-copy { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .4rem 0; border-bottom: 1px solid var(--border); font-size: var(--text-sm); }
.pm-copy:last-of-type { border-bottom: 0; }
.pm-copy code { color: var(--text-heading); background: none; font-size: .85rem; word-break: break-all; }
.pm-secure { font-size: .75rem; color: var(--text-muted); text-align: center; margin-top: 1rem; }

/* LAUNCH-MEMBERSHIP-001: komisyonsuz dönem bilgisi */
.pm-launch { display: flex; gap: .9rem; padding: 1rem; border-radius: 14px;
  background: rgba(var(--bs-success-rgb), .10); border: 1px solid rgba(var(--bs-success-rgb), .35); color: var(--text-body); }
.pm-launch-icon { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(var(--bs-success-rgb), .18); color: var(--success); font-size: 1.15rem; }

/* ============================================================================
   admin-premium.css — Kontrast güvenlik ağı + premium dashboard cilası
   En son yüklenir (premium.css'ten sonra). Token-tabanlı, tema-uyumlu.
   Amaç: (1) siyah-üstü-siyah / tema-kör utility kusurlarını kapatmak,
         (2) admin panelini AdminLTE/NopCommerce temizliğine yaklaştırmak.
   ============================================================================ */

/* ── 1) KONTRAST GÜVENLİK AĞI ───────────────────────────────────────────────
   Tema-kör Bootstrap utility'lerini HER İKİ tema attribute'u için
   (data-theme ve data-bs-theme) token'a bağla. bg-dark üstüne DAİMA açık metin. */
[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black,
[data-bs-theme="dark"] .text-dark,
[data-bs-theme="dark"] .text-black { color: var(--text-heading) !important; }

[data-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-light { background-color: var(--bg-surface-2) !important; color: var(--text-body) !important; }

[data-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-white { background-color: var(--bg-surface) !important; color: var(--text-body) !important; }

[data-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-muted { color: var(--text-subtle) !important; }

/* bg-dark: her iki temada da koyu zemin → metin DAİMA açık (siyah-üstü-siyah biter) */
.bg-dark, .bg-dark * { color: #f3f1ee !important; }
.bg-dark .text-muted { color: rgba(243,241,238,.65) !important; }

/* Admin içeriğinde hiçbir öğe yanlış miras rengine düşmesin */
.dashboard-main-content, .admin-content { color: var(--text-body); }

/* ── 2) PREMIUM KART SİSTEMİ ─────────────────────────────────────────────────
   Yumuşak yüzey, ince kenar, hafif derinlik, ferah iç boşluk. */
.admin-content .card,
.dashboard-main-content .card,
.admin-content .stat-card {
  background: var(--bg-surface);
  color: var(--text-body);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16,15,26,.04), 0 1px 3px rgba(16,15,26,.06);
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.admin-content .card:hover,
.dashboard-main-content .card:hover {
  box-shadow: 0 4px 12px rgba(16,15,26,.07), 0 2px 4px rgba(16,15,26,.05);
  border-color: var(--border-strong);
}
.admin-content .card-header,
.dashboard-main-content .card-header {
  background: transparent;
  border-bottom: 1px solid var(--border-subtle);
  font-weight: 600;
  color: var(--text-heading);
  padding: var(--space-4) var(--space-5);
}
.admin-content .card-body { padding: var(--space-5); }

/* ── 3) STAT / KPI KARTLARI ──────────────────────────────────────────────────
   Büyük okunur rakam, sade etiket, sol renkli vurgu şeridi. */
.admin-content .stat-card {
  position: relative;
  padding: var(--space-5);
  overflow: hidden;
}
.admin-content .stat-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--accent); opacity: .9;
}
.admin-content .stat-card.stat-primary::before { background: var(--accent); }
.admin-content .stat-card.stat-success::before { background: var(--success); }
.admin-content .stat-card.stat-warning::before { background: var(--warning); }
.admin-content .stat-card.stat-danger::before  { background: var(--danger); }
.admin-content .stat-card .stat-value,
.admin-content .stat-card .stat-number {
  color: var(--text-heading);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}
.admin-content .stat-card .stat-label,
.admin-content .stat-card .stat-title {
  color: var(--text-subtle);
  font-size: var(--text-sm);
  font-weight: 500;
}

/* ── 4) TABLOLAR — temiz, okunur, hover ──────────────────────────────────────*/
.admin-content .table,
.dashboard-main-content .table {
  --bs-table-bg: transparent;
  color: var(--text-body);
  border-color: var(--border-subtle);
}
.admin-content .table > thead {
  background: var(--bg-surface-2);
}
.admin-content .table > thead th {
  color: var(--text-subtle);
  font-weight: 600;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  border-bottom: 1px solid var(--border);
  padding: var(--space-3) var(--space-4);
  white-space: nowrap;
}
.admin-content .table > tbody td {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: middle;
  color: var(--text-body);
}
.admin-content .table > tbody tr { transition: background .12s ease; }
.admin-content .table > tbody tr:hover { background: var(--bg-surface-2); }
.admin-content .table > tbody tr:last-child td { border-bottom: none; }

/* ── 5) TOPBAR — sade, ince alt çizgi, ferah ─────────────────────────────────*/
.cloud-topbar {
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
  backdrop-filter: saturate(1.05);
}
.cloud-topbar .topbar-title { color: var(--text-heading); letter-spacing: -.01em; }
.user-cloud-widget {
  background: var(--bg-surface-2) !important;
  border-color: var(--border) !important;
}

/* ── 6) SIDEBAR — net aktif/hover durumu ────────────────────────────────────*/
.sidebar-link {
  color: var(--text-subtle);
  border-radius: 10px;
  transition: background .14s ease, color .14s ease;
}
.sidebar-link:hover {
  background: var(--bg-surface-2);
  color: var(--text-heading);
}
.sidebar-link.active {
  background: var(--accent-soft);
  color: var(--accent-active);
  font-weight: 600;
}
.sidebar-link.active .icon { color: var(--accent); }

/* ── 7) BUTON & ROZET TUTARLILIĞI ───────────────────────────────────────────*/
.admin-content .btn { border-radius: 10px; font-weight: 600; }
.admin-content .btn-sm { border-radius: 8px; }
.admin-content .badge { font-weight: 600; letter-spacing: .01em; border-radius: 7px; }

/* Bölüm başlıkları — net hiyerarşi */
.admin-content h1, .admin-content h2, .admin-content h3,
.admin-content h4, .admin-content h5 { color: var(--text-heading); letter-spacing: -.01em; }
.admin-content .section-title,
.dashboard-main-content .section-title {
  color: var(--text-heading);
  font-weight: 700;
  letter-spacing: -.02em;
}

/* Form kontrolleri — token yüzeyi (dark'ta da okunur) */
.admin-content .form-control,
.admin-content .form-select {
  background: var(--bg-surface);
  color: var(--text-body);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.admin-content .form-control:focus,
.admin-content .form-select:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.admin-content .form-control::placeholder { color: var(--text-disabled); }

/* FIX: sabit alt bandın form butonlarını (Kaydet/Vazgeç) kapatmaması için içerik alt boşluğu */
.admin-content { padding-bottom: 6rem !important; }
@media (max-width: 768px){ .admin-content { padding-bottom: 7rem !important; } }

/* FIX: sticky topbar (z-1010) anchor/odak kaydırmalarında başlıkları kapatmasın */
.admin-content { scroll-margin-top: 84px; }
.admin-content h1, .admin-content h2, .admin-content h3 { scroll-margin-top: 84px; }

/* Dashboard / Panel Footer tema uyumu */
.dashboard-footer,
.trader-footer,
.buyer-footer,
.admin-footer,
.seller-footer,
.dashboard-main-content .footer,
.main-wrapper .footer {
  background: var(--bg-surface) !important;
  background-color: var(--bg-surface) !important;
  background-image: none !important;
  color: var(--text-subtle) !important;
  border-top: 1px solid var(--border) !important;
}
.dashboard-footer *,
.trader-footer *,
.buyer-footer *,
.admin-footer *,
.seller-footer * {
  color: var(--text-subtle) !important;
}

/* PANEL-MOBILE-001: telefonda üst çubuk tek satır — açıklama, saat ve kullanıcı adı gizlenir, düğmeler simgeye iner */
@media (max-width: 767.98px) {
    .cloud-topbar { padding: .5rem .75rem .5rem 4rem !important; gap: .5rem; }
    .cloud-topbar .topbar-brand small,
    .cloud-topbar .topbar-actions > .istanbul-clock,
    .cloud-topbar .user-identity,
    .cloud-topbar .user-cloud-widget .fa-chevron-down,
    .cloud-topbar .tb-label { display: none !important; }
    .cloud-topbar .topbar-title { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cloud-topbar .topbar-brand { min-width: 0; flex: 1 1 auto; }
    .cloud-topbar .topbar-actions { gap: .4rem !important; flex: 0 0 auto; flex-wrap: nowrap; }
    .cloud-topbar .topbar-actions .btn { padding: .35rem .6rem !important; }
    .cloud-topbar .topbar-actions .btn .me-2 { margin-right: 0 !important; }
    .cloud-topbar .user-cloud-widget { padding: 2px !important; }
    .cloud-topbar .user-cloud-widget .avatar-circle { margin-right: 0 !important; }
}

/* Özel Gün Temaları */

.special-theme-banner {
    margin-top: 75px; /* Navbar yüksekliği */
    width: 100%;
    z-index: 1020;
    position: relative;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    animation: slideDownBanner 0.5s ease-out;
}

@keyframes slideDownBanner {
    from { transform: translateY(-100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.special-theme-banner.custom-bg {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}
.special-theme-banner.custom-bg::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.4);
}
.special-theme-banner.custom-bg .container {
    position: relative;
    z-index: 1;
}

/* Temalar */

/* 1. Ramazan / Kurban Bayramı */
.theme-ramadan {
    background: linear-gradient(135deg, #198754, #146c43);
}
.theme-ramadan .theme-icon::before {
    content: "\f186"; /* fa-moon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #ffd700;
}

/* 2. Milli Bayramlar (23 Nisan, 29 Ekim vs.) */
.theme-republic {
    background: linear-gradient(135deg, #dc3545, #b02a37);
}
.theme-republic .theme-icon::before {
    content: "\f005"; /* fa-star */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #fff;
}

/* 3. Yılbaşı */
.theme-newyear {
    background: linear-gradient(135deg, #0dcaf0, #0aa2c0);
}
.theme-newyear .theme-icon::before {
    content: "\f7b5"; /* fa-holly-berry or snowflake */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #fff;
}

/* 4. Genel Kutlama */
.theme-celebration {
    background: linear-gradient(135deg, #6f42c1, #59359a);
}
.theme-celebration .theme-icon::before {
    content: "\f561"; /* fa-glass-cheers */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #ffd700;
}

.theme-icon {
    font-size: 1.25rem;
    animation: floatIcon 2s ease-in-out infinite;
}

@keyframes floatIcon {
    0% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
    100% { transform: translateY(0); }
}

.theme-message {
    font-size: 1.05rem;
    letter-spacing: 0.5px;
}

/* SPECIAL-DAY-002: 29 Ekim görsel şeridi */
.republic-hero { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 14px 16px; color: #fff; overflow: hidden;
    background: radial-gradient(80% 160% at 50% 0%, rgba(255,255,255,.18), rgba(255,255,255,0) 60%),
                linear-gradient(100deg, #9e0712 0%, #e30a17 35%, #c8091a 65%, #8f0611 100%); }
.republic-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: repeating-linear-gradient(100deg, rgba(255,255,255,0) 0 60px, rgba(255,255,255,.05) 60px 120px); animation: republicWave 8s linear infinite; }
@keyframes republicWave { from { background-position: 0 0; } to { background-position: 240px 0; } }
.republic-flag { width: 66px; height: 44px; flex: 0 0 auto; filter: drop-shadow(0 4px 10px rgba(0,0,0,.35)); animation: republicFlag 3s ease-in-out infinite; transform-origin: left center; }
@keyframes republicFlag { 0%,100% { transform: skewY(0deg); } 50% { transform: skewY(-3deg); } }
.republic-text { text-align: center; position: relative; z-index: 1; }
.republic-title { font-weight: 800; font-size: clamp(1.05rem, 2.2vw, 1.45rem); letter-spacing: .01em; text-shadow: 0 2px 8px rgba(0,0,0,.25); }
.republic-sub { font-size: .85rem; opacity: .9; margin-top: 2px; }
@media (prefers-reduced-motion: reduce) { .republic-hero::after, .republic-flag { animation: none; } }

/* SPECIAL-DAY-003: 28 Ekim arifesi */
.republic-eve { display: flex; align-items: center; justify-content: center; gap: 20px; padding: 14px 18px; color: #fff;
    background: radial-gradient(90% 180% at 0% 50%, rgba(227,10,23,.55), rgba(227,10,23,0) 60%), linear-gradient(100deg, #2a0d0f 0%, #4a1216 50%, #7a0b13 100%); }
.republic-eve-img { height: 76px; width: auto; max-width: 140px; object-fit: cover; border-radius: 8px; filter: sepia(.35) contrast(1.05);
    box-shadow: 0 6px 18px rgba(0,0,0,.45); border: 2px solid rgba(255,255,255,.25); }
.republic-eve-quote { margin: 0; text-align: left; max-width: 760px; }
.republic-eve-quote blockquote { margin: 0; font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 700;
    font-size: clamp(1.1rem, 2.4vw, 1.6rem); line-height: 1.25; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.republic-eve-quote figcaption { margin-top: 4px; font-size: .82rem; opacity: .85; }
@media (max-width: 575px) { .republic-eve-img { height: 60px; } .republic-eve { gap: 12px; } }

/* SPECIAL-DAY-004: şerit doğrudan sabit üst menünün altına oturur; altındaki içerik ayrıca boşluk bırakmaz */
.special-theme .special-theme-banner { margin-top: 61px; }
.special-theme main.main-pt { padding-top: 0; }
.special-theme .launch-banner.on-home { margin-top: 0; }
.special-theme .special-theme-banner { animation: none; }
@media (max-width: 575px) { .special-theme .special-theme-banner { margin-top: 99px; } .republic-eve { flex-direction: column; text-align: center; } .republic-eve-quote { text-align: center; } }

.republic-eve-photo { display: flex; flex-direction: column; align-items: center; }
.republic-eve-photo figcaption { font-size: .68rem; opacity: .75; margin-top: 3px; }

/* ═══════════════════════════════════════════════════════════════════════════
   MUH-001 — ÖN MUHASEBE MODÜLÜ · "Defter" görsel dili
   ───────────────────────────────────────────────────────────────────────────
   NEDEN AYRI BİR GÖRSEL DİL: Modül platformun geri kalanından farklı bir işi
   yapıyor — ihale heyecanı değil, kayıt disiplini. Bu yüzden vurgu rengi
   platformun lacivert/amber aksiyonundan ayrışıyor: BAKIR (#B87333), firmanın
   işlediği metalin rengi. Sayılar tabular-nums ile hizalanıyor; satır
   ayraçları defter çizgisi inceliğinde. Paraşüt'ün mint yeşilinden bilinçli
   olarak uzak duruldu.

   TOKEN UYUMU: Renkler tokens.css değişkenlerine fallback ile bağlı; tema
   değişkeni yoksa sabit değere düşer, böylece dosya tek başına da çalışır.
   Yükleme sırası: special-themes.css SONRASI, fixes.css ÖNCESİ.
   ═══════════════════════════════════════════════════════════════════════════ */

.muh-shell {
  --muh-copper: #B87333;
  --muh-copper-soft: rgba(184, 115, 51, 0.10);
  --muh-copper-line: rgba(184, 115, 51, 0.28);
  --muh-ink: rgb(var(--color-neutral-900, 17 24 39));
  --muh-muted: rgb(var(--color-neutral-500, 107 114 128));
  --muh-surface: rgb(var(--color-neutral-0, 255 255 255));
  --muh-rule: rgb(var(--color-neutral-200, 229 231 235));
  --muh-pos: #15803D;
  --muh-neg: #B91C1C;
}

/* Koyu temada yüzeyler ve çizgiler yeniden tanımlanır — bakır sabit kalır,
   çünkü modülün kimliği o. */
[data-theme="dark"] .muh-shell,
.dark-theme .muh-shell {
  --muh-ink: rgb(var(--color-neutral-50, 249 250 251));
  --muh-muted: rgb(var(--color-neutral-400, 156 163 175));
  --muh-surface: rgb(var(--color-neutral-800, 31 41 55));
  --muh-rule: rgba(255, 255, 255, 0.10);
  --muh-copper-soft: rgba(184, 115, 51, 0.16);
  --muh-pos: #4ADE80;
  --muh-neg: #FCA5A5;
}

/* ── Başlık bandı ─────────────────────────────────────────────────────── */

.muh-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--muh-copper);
  margin-bottom: 1rem;
}

.muh-head__title {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--muh-ink);
  margin: 0;
}

.muh-head__title i { color: var(--muh-copper); }

.muh-head__sub {
  font-size: 0.8rem;
  color: var(--muh-muted);
  margin: 0.15rem 0 0;
}

/* ── Alt navigasyon (pill) ────────────────────────────────────────────── */

.muh-nav {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.muh-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.42rem 0.85rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--muh-muted);
  border: 1px solid transparent;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.muh-nav a:hover {
  color: var(--muh-copper);
  background: var(--muh-copper-soft);
}

.muh-nav a.active {
  color: var(--muh-copper);
  background: var(--muh-copper-soft);
  border-color: var(--muh-copper-line);
}

.muh-nav a:focus-visible {
  outline: 2px solid var(--muh-copper);
  outline-offset: 2px;
}

/* ── Kartlar ──────────────────────────────────────────────────────────── */

.muh-card {
  background: var(--muh-surface);
  border: 1px solid var(--muh-rule);
  border-radius: 0.9rem;
  padding: 1rem 1.1rem;
  height: 100%;
}

.muh-card--accent { border-top: 3px solid var(--muh-copper); }

.muh-kpi__label {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muh-muted);
  margin-bottom: 0.3rem;
}

.muh-kpi__value {
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--muh-ink);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}

.muh-kpi__hint {
  font-size: 0.74rem;
  color: var(--muh-muted);
  margin-top: 0.25rem;
}

/* ── Defter tablosu ───────────────────────────────────────────────────── */

.muh-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
}

.muh-table thead th {
  text-align: left;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muh-muted);
  font-weight: 700;
  padding: 0.55rem 0.6rem;
  border-bottom: 2px solid var(--muh-copper-line);
  white-space: nowrap;
}

.muh-table tbody td {
  padding: 0.55rem 0.6rem;
  border-bottom: 1px solid var(--muh-rule);
  color: var(--muh-ink);
  vertical-align: middle;
}

.muh-table tbody tr:hover td { background: var(--muh-copper-soft); }

.muh-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.muh-table tfoot td {
  padding: 0.6rem;
  border-top: 2px solid var(--muh-copper-line);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.muh-pos { color: var(--muh-pos); font-variant-numeric: tabular-nums; }
.muh-neg { color: var(--muh-neg); font-variant-numeric: tabular-nums; }
.muh-num { font-variant-numeric: tabular-nums; }

/* ── Durum rozetleri ──────────────────────────────────────────────────── */

.muh-badge {
  display: inline-block;
  padding: 0.18rem 0.5rem;
  border-radius: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.muh-badge--draft  { background: rgba(107, 114, 128, 0.14); color: #4B5563; }
.muh-badge--final  { background: var(--muh-copper-soft);    color: var(--muh-copper); }
.muh-badge--cancel { background: rgba(185, 28, 28, 0.12);   color: #B91C1C; }
.muh-badge--sale   { background: rgba(21, 128, 61, 0.12);   color: #15803D; }
.muh-badge--buy    { background: rgba(31, 79, 122, 0.12);   color: #1F4F7A; }

[data-theme="dark"] .muh-badge--draft { color: #D1D5DB; }

/* ── Çubuk grafik (CSS, kütüphane yok) ────────────────────────────────── */

.muh-bars {
  display: flex;
  align-items: flex-end;
  gap: 0.35rem;
  height: 130px;
  padding-top: 0.5rem;
}

.muh-bars__col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  min-width: 0;
}

.muh-bars__stack {
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  height: 100px;
}

.muh-bars__bar {
  width: 42%;
  min-height: 2px;
  border-radius: 3px 3px 0 0;
  transition: height 0.3s ease;
}

.muh-bars__bar--in  { background: var(--muh-copper); }
.muh-bars__bar--out { background: rgba(107, 114, 128, 0.45); }

.muh-bars__label {
  font-size: 0.65rem;
  color: var(--muh-muted);
  white-space: nowrap;
}

.muh-legend {
  display: flex;
  gap: 0.9rem;
  font-size: 0.74rem;
  color: var(--muh-muted);
  margin-top: 0.4rem;
}

.muh-legend span::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 2px;
  margin-right: 0.35rem;
}

.muh-legend .in::before  { background: var(--muh-copper); }
.muh-legend .out::before { background: rgba(107, 114, 128, 0.45); }

/* ── Boş durum ────────────────────────────────────────────────────────── */

.muh-empty {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--muh-muted);
}

.muh-empty i {
  font-size: 2rem;
  color: var(--muh-copper);
  opacity: 0.55;
  margin-bottom: 0.6rem;
  display: block;
}

/* ── Butonlar ─────────────────────────────────────────────────────────── */

.btn-muh {
  background: var(--muh-copper);
  border: 1px solid var(--muh-copper);
  color: #fff;
  font-weight: 600;
}

.btn-muh:hover, .btn-muh:focus {
  background: #9C601F;
  border-color: #9C601F;
  color: #fff;
}

.btn-muh-outline {
  background: transparent;
  border: 1px solid var(--muh-copper-line);
  color: var(--muh-copper);
  font-weight: 600;
}

.btn-muh-outline:hover, .btn-muh-outline:focus {
  background: var(--muh-copper-soft);
  color: var(--muh-copper);
}

/* ── Satır düzenleyici (fatura formu) ─────────────────────────────────── */

.muh-line-grid {
  display: grid;
  grid-template-columns: minmax(140px, 3fr) 90px 110px 80px 80px 90px 110px 36px;
  gap: 0.4rem;
  align-items: center;
}

.muh-line-grid input,
.muh-line-grid select {
  font-size: 0.82rem;
  padding: 0.3rem 0.45rem;
}

.muh-line-grid .muh-line-total {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.84rem;
  color: var(--muh-ink);
}

.muh-line-head {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muh-muted);
  font-weight: 700;
}

@media (max-width: 991px) {
  .muh-line-grid {
    grid-template-columns: 1fr 1fr;
  }
  .muh-line-head { display: none; }
  .muh-bars { height: 110px; }
}

@media (prefers-reduced-motion: reduce) {
  .muh-nav a,
  .muh-bars__bar { transition: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Antlaşma — FE-CSS-001 · Eksik sınıf tanımları (ADDITIVE FIX)
   ───────────────────────────────────────────────────────────────────────────
   Bu dosyadaki HER seçici, denetim öncesinde projede HİÇBİR yerde tanımlı
   DEĞİLDİ (ne wwwroot/css/*.css içinde, ne de ilgili .razor dosyasının kendi
   <style> bloğunda). Yani bu sınıflar markup'ta kullanılıyor ama hiçbir kurala
   eşleşmiyordu → ilgili bileşenler "yapısal olarak var ama stilsiz" render
   oluyordu (fiyatlandırma kartları, herkese açık profil, teklif zaman çizelgesi,
   boş-durum ekranları, skeleton yükleyiciler, reklam slider'ı vb.).

   REGRESYON RİSKİ YOK: hiçbir mevcut kural değiştirilmedi/ezilmedi. Buradaki
   seçiciler şu an sıfır elemana uyuyor; tanımlandıklarında yalnızca daha önce
   boş kalan yerleri doldururlar. Bir sayfa kendi <style> bloğunda aynı sınıfı
   sonradan tanımlarsa (DOM'da <link>'ten sonra geldiği için) o kazanır.

   Tüm değerler tokens.css değişkenlerinden türetilir → light/dark otomatik uyumlu.
   Yükleme sırası: _Host.cshtml'de EN SON (special-themes.css'ten sonra).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────────────────
   1) REKLAM SLIDER'I (Shared/Components/AdSlider.razor)
   Bileşenin tüm sınıfları tanımsızdı → reklam alanı stilsiz/bozuk çıkıyordu.
   ─────────────────────────────────────────────────────────────────────────── */
.promo-carousel-wrapper {
    padding: var(--space-6) 0;
}

.promo-carousel {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
}

.promo-item {
    position: relative;
    display: block;
    text-decoration: none;
    line-height: 0; /* görselin altındaki inline boşluğu kaldırır */
}

.promo-carousel .promo-pic {
    width: 100%;
    height: auto;
    max-height: 260px;
    object-fit: cover;
    display: block;
    transition: transform var(--duration-normal) var(--ease-out);
}

.promo-item:hover .promo-pic {
    transform: scale(1.02);
}

.promo-carousel .promo-tag {
    position: absolute;
    top: var(--space-3);
    inset-inline-end: var(--space-3);
    z-index: 2;
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--text-on-accent);
    background: var(--accent);
    line-height: 1.6;
}

.promo-indicators {
    position: absolute;
    bottom: var(--space-3);
    inset-inline-start: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: var(--space-2);
    z-index: 2;
    padding: 0.35rem 0.6rem;
    border-radius: var(--radius-full);
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(6px);
}

.promo-indicator-btn {
    width: 9px;
    height: 9px;
    padding: 0;
    border: none;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.55);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
}

.promo-indicator-btn:hover { background: rgba(255, 255, 255, 0.85); }

.promo-indicator-btn.active {
    background: var(--accent-bright);
    width: 22px;
}

@media (max-width: 767.98px) {
    .promo-carousel .promo-pic { max-height: 160px; }
}

/* ───────────────────────────────────────────────────────────────────────────
   2) SKELETON YÜKLEYİCİLER
   .skeleton yalnızca Shared/Components/UI/Skeleton.razor'un kendi <style>
   bloğunda tanımlıydı; 18 sayfa ise bileşeni kullanmadan düz
   class="skeleton skeleton-text-short" yazıyor → o sayfalarda hiçbir stil
   uygulanmıyordu. Buraya taşındı + eksik varyantlar eklendi.
   ─────────────────────────────────────────────────────────────────────────── */
.skeleton {
    background-color: var(--bg-surface-3, #e2e8f0);
    display: inline-block;
    width: 100%;
    min-height: 10px;
    border-radius: var(--radius-xs);
    animation: skeleton-loading 1.5s infinite ease-in-out;
}

.skeleton-animated { animation: skeleton-loading 1.5s infinite ease-in-out; }

.skeleton-title {
    height: 1.6em;
    width: 45%;
    margin-bottom: var(--space-3);
    border-radius: var(--radius-sm);
}

.skeleton-text-short {
    height: 1em;
    width: 60%;
    margin-bottom: var(--space-2);
}

.skeleton-text-long {
    height: 1em;
    width: 100%;
    margin-bottom: var(--space-2);
}

@keyframes skeleton-loading {
    0%   { opacity: 0.6; }
    50%  { opacity: 0.3; }
    100% { opacity: 0.6; }
}

/* ───────────────────────────────────────────────────────────────────────────
   3) BOŞ DURUM (EMPTY STATE) — 7+ sayfada kullanılıyordu, hiç tanımlı değildi
   ─────────────────────────────────────────────────────────────────────────── */
.empty-state {
    text-align: center;
    padding: var(--space-12) var(--space-4);
    color: var(--text-subtle);
}

.empty-icon,
.empty-state-icon {
    font-size: var(--text-5xl);
    line-height: 1;
    color: var(--text-disabled);
    margin-bottom: var(--space-4);
    display: block;
}

.empty-state-title {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--text-heading);
    margin-bottom: var(--space-2);
}

.empty-state-description {
    font-size: var(--text-sm);
    color: var(--text-subtle);
    max-width: 46ch;
    margin: 0 auto var(--space-5);
    line-height: var(--leading-normal);
}

.empty-state-cta { margin-top: var(--space-4); }

/* ───────────────────────────────────────────────────────────────────────────
   4) ÜYELİK FİYATLANDIRMA (Pages/MembershipPricing.razor)
   Sayfanın tüm kart yapısı tanımsızdı → düz liste gibi görünüyordu.
   ─────────────────────────────────────────────────────────────────────────── */
.section-subtitle {
    color: var(--text-subtle);
    font-size: var(--text-lg);
    max-width: 60ch;
    margin: 0 auto;
}

.billing-toggle {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border-radius: var(--radius-full);
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
}

.billing-toggle-btn {
    border: none;
    background: transparent;
    color: var(--text-body);
    padding: 0.45rem 1.15rem;
    border-radius: var(--radius-full);
    font-weight: 600;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
}

.billing-toggle-btn:hover { color: var(--text-heading); }

.billing-toggle-btn.active {
    background: var(--accent);
    color: var(--text-on-accent);
    box-shadow: var(--shadow-sm);
}

.save-badge {
    display: inline-block;
    margin-inline-start: var(--space-2);
    padding: 0.1rem 0.5rem;
    border-radius: var(--radius-full);
    background: var(--success-soft);
    color: var(--success);
    font-size: var(--text-xs);
    font-weight: 700;
}

.pricing-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform var(--duration-normal) var(--ease-out),
                box-shadow var(--duration-normal) var(--ease-out);
}

.pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.pricing-header {
    padding: var(--space-6) var(--space-5) var(--space-5);
    text-align: center;
    border-bottom: 1px solid var(--border-subtle);
}

.pricing-header-gradient {
    background: var(--accent-gradient);
    color: var(--text-on-accent);
    border-bottom-color: transparent;
}

.pricing-header-gradient .pricing-name,
.pricing-header-gradient .pricing-amount,
.pricing-header-gradient .currency,
.pricing-header-gradient .period,
.pricing-header-gradient .pricing-subtitle { color: var(--text-on-accent); }

.pricing-icon {
    font-size: var(--text-3xl);
    line-height: 1;
    margin-bottom: var(--space-3);
    display: block;
}

.pricing-name {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: var(--space-1);
}

.pricing-subtitle {
    font-size: var(--text-sm);
    color: var(--text-subtle);
}

.pricing-amount {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
    margin: var(--space-3) 0 0;
    color: var(--text-heading);
}

.pricing-amount .amount {
    font-family: var(--font-display);
    font-size: var(--text-4xl);
    font-weight: 700;
    line-height: 1;
}

.pricing-amount .currency { font-size: var(--text-xl); font-weight: 600; }
.pricing-amount .period   { font-size: var(--text-sm); color: var(--text-subtle); }

.pricing-annual-total {
    font-size: var(--text-xs);
    color: var(--text-subtle);
    margin-top: var(--space-2);
}

.pricing-badge {
    position: absolute;
    top: var(--space-4);
    inset-inline-end: var(--space-4);
    z-index: 2;
    padding: 0.2rem 0.65rem;
    border-radius: var(--radius-full);
    background: var(--accent);
    color: var(--text-on-accent);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}

.pricing-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: var(--space-5);
}

.pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-5);
    flex: 1 1 auto;
}

.pricing-features li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-2) 0;
    font-size: var(--text-sm);
    color: var(--text-body);
    border-bottom: 1px solid var(--border-subtle);
}

.pricing-features li:last-child { border-bottom: none; }

/* ───────────────────────────────────────────────────────────────────────────
   5) HERKESE AÇIK PROFİL (Pages/PublicProfile.razor)
   ─────────────────────────────────────────────────────────────────────────── */
.profile-hero {
    padding: var(--space-10) 0 var(--space-6);
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
}

.profile-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    box-shadow: var(--shadow-sm);
}

.profile-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.profile-avatar {
    width: 96px;
    height: 96px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--bg-surface);
    box-shadow: var(--shadow-md);
    background: var(--bg-surface-3);
}

.profile-avatar-fallback {
    width: 96px;
    height: 96px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-gradient);
    color: var(--text-on-accent);
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    border: 3px solid var(--bg-surface);
    box-shadow: var(--shadow-md);
}

.profile-name {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--text-heading);
    line-height: var(--leading-tight);
    margin-bottom: var(--space-1);
}

.profile-bio {
    color: var(--text-body);
    line-height: var(--leading-normal);
    max-width: 65ch;
    margin-bottom: var(--space-3);
}

.profile-location,
.profile-since {
    font-size: var(--text-sm);
    color: var(--text-subtle);
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.profile-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6);
    margin-top: var(--space-4);
}

.profile-stat {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.profile-stat strong {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    color: var(--text-heading);
}

.profile-stat span {
    font-size: var(--text-xs);
    color: var(--text-subtle);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
}

.profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.profile-tier-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius-full);
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
}

.profile-rating-star { color: var(--accent-bright); }

.profile-auction-img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: var(--radius-md);
    background: var(--bg-surface-3);
}

/* ───────────────────────────────────────────────────────────────────────────
   6) TEKLİF ZAMAN ÇİZELGESİ (Shared/Components/BidTimeline.razor)
   Dikey çizgi + nokta yapısı tamamen tanımsızdı → düz liste görünüyordu.
   ─────────────────────────────────────────────────────────────────────────── */
.bid-timeline-wrapper { position: relative; }

.bid-timeline {
    position: relative;
    list-style: none;
    padding: 0;
    margin: 0;
}

.bid-timeline-item {
    position: relative;
    padding-inline-start: var(--space-8);
    padding-bottom: var(--space-5);
}

.bid-timeline-item:last-child { padding-bottom: 0; }

.timeline-dot {
    position: absolute;
    inset-inline-start: 0;
    top: 4px;
    width: 12px;
    height: 12px;
    border-radius: var(--radius-full);
    background: var(--accent);
    border: 2px solid var(--bg-surface);
    box-shadow: 0 0 0 2px var(--accent-soft);
    z-index: 1;
}

.timeline-line,
.timeline-connector {
    position: absolute;
    inset-inline-start: 5px;
    top: 16px;
    bottom: 0;
    width: 2px;
    background: var(--border);
}

.bid-timeline-item:last-child .timeline-line,
.bid-timeline-item:last-child .timeline-connector { display: none; }

.timeline-content {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
}

/* ───────────────────────────────────────────────────────────────────────────
   7) ÜYELİK ÖDEME ADIMLARI (Pages/MembershipCheckout.razor)
   ─────────────────────────────────────────────────────────────────────────── */
.checkout-container { max-width: 960px; margin: 0 auto; }

.checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin-bottom: var(--space-8);
}

.checkout-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-subtle);
}

.checkout-step.active { color: var(--accent); }
.checkout-step.completed { color: var(--success); }

.step-num {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: var(--text-sm);
    background: var(--bg-surface-2);
    border: 2px solid var(--border);
    color: inherit;
}

.checkout-step.active .step-num {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--text-on-accent);
}

.checkout-step.completed .step-num {
    background: var(--success);
    border-color: var(--success);
    color: #fff;
}

.step-label {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    font-weight: 600;
}

.checkout-step-line {
    flex: 0 1 80px;
    height: 2px;
    background: var(--border);
    margin-bottom: 18px;
}

.payment-method-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-3);
}

.payment-method-card {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 2px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg-surface);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
}

.payment-method-card:hover { border-color: var(--border-strong); }

.payment-method-card.active,
.payment-method-card.selected {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.payment-icon {
    font-size: var(--text-2xl);
    line-height: 1;
    color: var(--accent);
}

.tier-icon-box {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-xl);
}

/* ───────────────────────────────────────────────────────────────────────────
   8) İHALE DETAY panelleri (Pages/AuctionDetail.razor)
   Format'a özel paneller ve fiyat bölümü tanımsızdı.
   ─────────────────────────────────────────────────────────────────────────── */
.price-section {
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    background: var(--bg-surface-2);
    border: 1px solid var(--border);
}

/* PRICE-CARD-001: Kural kutunun TAMAMINA 4xl kalın gösterim yazı tipi ve 1 satır aralığı veriyordu; etiket ve açıklama
   satırları (birim, ton/kg notu, toplam) da o boyutta basılıp fiyatı boğuyordu. Büyük yazı yalnızca fiyat rakamında. */
/* PRICE-CARD-002: sade fiyat kartı — ana fiyat (KDV hariç etiketli), KDV dahil satırı, toplam tutar ve başlangıç
   fiyatı için iki kutu, küçük kg/ton anahtarı. Renkler tema değişkenlerinden (iki temada da okunur). */
.current-price { line-height: 1.45; color: var(--text-heading); }
.pc-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .35rem; }
.pc-head > small { font-size: var(--text-xs); letter-spacing: .06em; color: var(--text-muted); }
.pc-units { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; overflow: hidden; }
.pc-units button { border: 0; background: transparent; color: var(--text-muted); font-size: var(--text-xs); font-weight: 600; padding: .2rem .7rem; }
.pc-units button.on { background: var(--accent); color: var(--text-on-accent); }
.pc-amount { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; font-family: var(--font-display); font-weight: 700;
    font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem); line-height: 1.1; }
.pc-suffix { font-family: var(--font-body); font-size: var(--text-lg); font-weight: 500; color: var(--text-muted); }
.pc-tag { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; color: var(--text-muted);
    border: 1px solid var(--border); border-radius: 999px; padding: .1rem .55rem; }
.current-price .price-meta { margin-top: .35rem; font-family: var(--font-body); font-size: var(--text-sm); font-weight: 400; color: var(--text-muted); }
.current-price .price-meta strong { font-weight: 600; color: var(--text-body); }
.pc-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin-top: 1rem; }
.pc-tile { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: .7rem .85rem; }
.pc-tile-l { font-size: var(--text-xs); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.pc-tile-v { margin-top: .15rem; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; color: var(--text-heading); }
.pc-tile-s { margin-top: .1rem; font-size: var(--text-xs); color: var(--text-muted); }
.pc-rows { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; margin: 1rem 0 0; padding-top: .75rem;
    border-top: 1px solid var(--border-subtle); font-size: var(--text-sm); }
.pc-rows dt { font-weight: 400; color: var(--text-muted); }
.pc-rows dd { margin: 0; font-weight: 600; color: var(--text-heading); text-align: right; }
.pc-buynow { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border-subtle); }
.pc-buynow-row { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin-bottom: .25rem; }
.pc-buynow-v { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; color: var(--success); }

.countdown-section {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--danger-soft);
    color: var(--danger);
    font-weight: 600;
}

.deposit-info-box,
.driver-info-box,
.info-box {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--info-soft);
    border: 1px solid var(--border-subtle);
    color: var(--text-body);
    font-size: var(--text-sm);
}

.dutch-panel,
.japanese-panel {
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    border: 1px solid var(--accent-soft-hover);
    background: var(--accent-soft);
}

.dutch-price {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
}

.yankee-banner {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--warning-soft);
    color: var(--warning);
    font-weight: 600;
}

.bid-tabs {
    display: flex;
    gap: var(--space-1);
    border-bottom: 1px solid var(--border);
    margin-bottom: var(--space-4);
}

.proxy-rules-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: var(--text-sm);
    color: var(--text-body);
}

.proxy-rules-list li {
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--border-subtle);
}

/* ───────────────────────────────────────────────────────────────────────────
   9) TAMAMLANAN İHALELER kart yapısı (Pages/CompletedAuctions.razor)
   ─────────────────────────────────────────────────────────────────────────── */
.auction-image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    background: var(--bg-surface-3);
}

.auction-body { padding: var(--space-4); }

.auction-title {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text-heading);
    margin-bottom: var(--space-2);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.auction-info {
    font-size: var(--text-sm);
    color: var(--text-subtle);
}

/* ───────────────────────────────────────────────────────────────────────────
   10) MAĞAZA (Storefront / StoreDirectory)
   ─────────────────────────────────────────────────────────────────────────── */
.storefront-header {
    padding: var(--space-8) 0;
    background: var(--bg-surface-2);
    border-bottom: 1px solid var(--border);
}

.product-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform var(--duration-normal) var(--ease-out),
                box-shadow var(--duration-normal) var(--ease-out);
}

.product-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

/* ───────────────────────────────────────────────────────────────────────────
   11) FİYAT SAPMA rozetleri (PriceDriftIndicator / DriftWidget)
   ─────────────────────────────────────────────────────────────────────────── */
.drift-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 0.15rem 0.55rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 700;
    background: var(--bg-surface-2);
    color: var(--text-body);
    border: 1px solid var(--border);
}

.drift-meta {
    font-size: var(--text-xs);
    color: var(--text-subtle);
}

.stretched-link-child { position: relative; z-index: 2; }

/* ───────────────────────────────────────────────────────────────────────────
   12) GİRİŞ / KAYIT ekranı
   ─────────────────────────────────────────────────────────────────────────── */
.login-left-panel {
    background: var(--accent-gradient);
    color: var(--text-on-accent);
    padding: var(--space-12) var(--space-8);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.input-field,
.input {
    width: 100%;
    padding: 0.6rem 0.9rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
    background: var(--bg-surface);
    color: var(--text-body);
    font-size: var(--text-base);
    transition: border-color var(--duration-fast) var(--ease-out),
                box-shadow var(--duration-fast) var(--ease-out);
}

.input-field:focus,
.input:focus {
    outline: none;
    border-color: var(--border-focus);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.input-label {
    display: block;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--text-subtle);
    margin-bottom: var(--space-1);
}

.password-rules {
    list-style: none;
    padding: 0;
    margin: var(--space-2) 0 0;
    font-size: var(--text-xs);
    color: var(--text-subtle);
}

.password-rules li { padding: 2px 0; }

/* ───────────────────────────────────────────────────────────────────────────
   13) YÜKLEME / ÖNİZLEME kutuları
   ─────────────────────────────────────────────────────────────────────────── */
.upload-container { position: relative; }

.upload-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: var(--space-3);
}

.upload-preview-item {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--bg-surface-2);
    aspect-ratio: 1 / 1;
}

.upload-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.preview-display {
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    background: var(--bg-surface-2);
}

.payment-card-preview {
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    background: var(--brand-navy);
    color: #fff;
    box-shadow: var(--shadow-md);
}

/* ───────────────────────────────────────────────────────────────────────────
   14) ONAY DİYALOĞU iptal butonu (ConfirmDialog.razor)
   .swal-btn tanımlıydı ama .cancel varyantı yoktu → iptal butonu onay
   butonuyla aynı görünüyordu.
   ─────────────────────────────────────────────────────────────────────────── */
.swal-btn.cancel {
    background: var(--bg-surface-2);
    color: var(--text-body);
    border: 1px solid var(--border);
}

.swal-btn.cancel:hover {
    background: var(--bg-surface-3);
    color: var(--text-heading);
}

/* ───────────────────────────────────────────────────────────────────────────
   15) DÜZEN / YARDIMCI sınıflar (markup'ta kullanılıp tanımsız kalanlar)
   ─────────────────────────────────────────────────────────────────────────── */
.legal-document {
    line-height: var(--leading-relaxed);
    color: var(--text-body);
}

.legal-document h2,
.legal-document h3 {
    font-family: var(--font-display);
    color: var(--text-heading);
    margin-top: var(--space-8);
    margin-bottom: var(--space-3);
}

.admin-footer,
.seller-footer {
    padding: var(--space-4) 0;
    border-top: 1px solid var(--border);
    color: var(--text-subtle);
    font-size: var(--text-sm);
}

.notification-wrapper { position: relative; }

.sidebar-divider {
    height: 1px;
    background: var(--border);
    margin: var(--space-3) 0;
    border: none;
}

.premium-link { color: var(--accent) !important; }

.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    border: 1px solid var(--border);
    background: var(--bg-surface);
    color: var(--text-body);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
}

.theme-toggle:hover {
    background: var(--bg-surface-2);
    color: var(--text-heading);
}

.icon-box {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-2xl);
}

/* Küçük yardımcılar */
.cursor-pointer      { cursor: pointer; }
.transition-all      { transition: all var(--duration-normal) var(--ease-out); }
.white-space-normal  { white-space: normal !important; }
.ws-pre-wrap         { white-space: pre-wrap; }
.ws-pre-line, .cms-content { white-space: pre-line; word-break: break-word; line-height: 1.85; }
.cms-content p { margin-bottom: 1.25rem; }
.cms-content h2, .cms-content h3, .cms-content h4 { color: var(--text-heading); font-weight: 700; margin-top: 1.75rem; margin-bottom: 0.75rem; }
.z-index-1           { z-index: 1; }
.fallback-hidden     { display: none; }
.tracking-tight      { letter-spacing: var(--tracking-tight); }
.tracking-wider      { letter-spacing: var(--tracking-wider); }
.tracking-widest     { letter-spacing: 0.14em; }

/* WCAG: görsel olarak gizli ama ekran okuyucuya açık */
.wcag-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ───────────────────────────────────────────────────────────────────────────
   16) İKİNCİ TUR — kalan gerçek eksikler
   (.badge-status varyantları, navbar avatarları, sayfa sarmalayıcıları ve
    yalnızca BAŞKA bir sayfanın <style> bloğunda tanımlı olduğu için o sayfa
    render edilmediğinde kaybolan "kırılgan" sınıflar globale taşındı.)
   ─────────────────────────────────────────────────────────────────────────── */

/* .badge-status tanımlıydı; renk varyantları değildi → rozetler renksiz çıkıyordu. */
.status-active {
    background: var(--success-soft);
    color: var(--success);
}

.status-info {
    background: var(--info-soft);
    color: var(--info);
}

.status-neutral {
    background: var(--bg-surface-3);
    color: var(--text-subtle);
}

/* Navbar kullanıcı avatarları (Shared/MainLayout.razor) */
.profile-avatar-small,
.profile-avatar-large {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: var(--accent-gradient);
    color: var(--text-on-accent);
    font-weight: 700;
    overflow: hidden;
    flex-shrink: 0;
}

.profile-avatar-small {
    width: 34px;
    height: 34px;
    font-size: var(--text-sm);
}

.profile-avatar-large {
    width: 52px;
    height: 52px;
    font-size: var(--text-lg);
}

.profile-avatar-small img,
.profile-avatar-large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* İhale detay sayfası sarmalayıcıları */
.auction-detail-container { position: relative; }

.auction-detail-info { background: var(--bg-surface); }

/* Admin anasayfa bekleyen-onay kartı */
.pending-card {
    background: var(--bg-surface);
    border: 1px solid var(--warning-soft);
    border-inline-start: 3px solid var(--warning);
    border-radius: var(--radius-md);
}

.pending-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
    font-weight: 600;
    color: var(--text-heading);
}

/* Kırılgan bağımlılıklar: yalnızca Deposit* / Iletisim sayfalarının kendi
   <style> bloklarında tanımlıydılar; aynı sınıfı kullanan diğer sayfalarda
   (CompletedAuctions, Index) hiçbir stil uygulanmıyordu. */
.info-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--border-subtle);
    font-size: var(--text-sm);
}

.info-row:last-child { border-bottom: none; }

.custom-hover-card {
    transition: transform var(--duration-normal) var(--ease-out),
                box-shadow var(--duration-normal) var(--ease-out);
}

.custom-hover-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

/* ───────────────────────────────────────────────────────────────────────────
   17) ÜÇÜNCÜ TUR — FE-CSS-002 · İki gerçek kırık bileşen
   ─────────────────────────────────────────────────────────────────────────── */

/* (a) ONAY DİYALOĞU (Shared/Components/ConfirmDialog.razor)
   DÜZELTME NOTU: 14. bölümdeki "swal-btn tanımlıydı" ifadesi HATALIYDI.
   Doğrulandı: .swal-overlay / .swal-modal / .swal-icon / .swal-title /
   .swal-text / .swal-buttons / .swal-btn hiçbir CSS dosyasında ve hiçbir
   razor <style> bloğunda tanımlı DEĞİL (ConfirmDialog.razor'un <style> bloğu
   hiç yok). Sonuç: her onay diyaloğu overlay'siz, ortalanmamış, kutusuz —
   sayfanın içine düz metin gibi akıyordu. Uygulamanın her yerinde görünen
   bir hata. Aşağıdaki kurallar bileşenin gerçek markup'ına birebir uyar. */
.swal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1080;                      /* Bootstrap modal (1055) üstünde */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    animation: swal-fade var(--duration-fast) var(--ease-out);
}

.swal-modal {
    width: 100%;
    max-width: 420px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    padding: var(--space-8) var(--space-6) var(--space-6);
    text-align: center;
    animation: swal-pop var(--duration-normal) var(--ease-spring);
}

.swal-icon {
    width: 68px;
    height: 68px;
    margin: 0 auto var(--space-4);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-3xl);
    line-height: 1;
}

.swal-icon.success { background: var(--success-soft); color: var(--success); }
.swal-icon.danger  { background: var(--danger-soft);  color: var(--danger);  }
.swal-icon.info    { background: var(--info-soft);    color: var(--info);    }
.swal-icon.warning { background: var(--warning-soft); color: var(--warning); }

.swal-title {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: var(--space-2);
}

.swal-text {
    color: var(--text-body);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    margin-bottom: var(--space-6);
}

.swal-buttons {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
    flex-wrap: wrap;
}

.swal-btn {
    min-width: 118px;
    padding: 0.6rem 1.4rem;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-weight: 600;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
}

.swal-btn:disabled { opacity: 0.65; cursor: not-allowed; }

.swal-btn.confirm { background: var(--accent);  color: var(--text-on-accent); }
.swal-btn.success { background: var(--success); color: #fff; }
.swal-btn.danger  { background: var(--danger);  color: #fff; }
.swal-btn.confirm:hover:not(:disabled) { background: var(--accent-hover); }
.swal-btn.success:hover:not(:disabled),
.swal-btn.danger:hover:not(:disabled)  { filter: brightness(1.08); }

@keyframes swal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes swal-pop {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)    scale(1);    }
}

/* (b) ROL SIDEBAR TEMALARI
   .premium-sidebar dashboard.css'te tanımlı, ancak ona eşlik eden rol
   varyantları (trader/buyer/auditor/support-theme) hiçbir yerde yoktu →
   dört rolün sidebar'ı birbirinin aynısı görünüyordu. Her rol kendi vurgu
   rengiyle ayrışsın; sadece vurgu değişir, yapı aynı kalır. */
.premium-sidebar.trader-theme  { --sidebar-accent: var(--accent); }
.premium-sidebar.buyer-theme   { --sidebar-accent: var(--info); }
.premium-sidebar.auditor-theme { --sidebar-accent: var(--success); }
.premium-sidebar.support-theme { --sidebar-accent: var(--support-accent); }

.premium-sidebar[class*="-theme"] {
    border-inline-start: 3px solid var(--sidebar-accent, var(--accent));
}

.premium-sidebar[class*="-theme"] .nav-link.active,
.premium-sidebar[class*="-theme"] .sidebar-link.active {
    background: color-mix(in srgb, var(--sidebar-accent, var(--accent)) 14%, transparent);
    color: var(--sidebar-accent, var(--accent));
}

.premium-sidebar[class*="-theme"] .sidebar-brand i,
.premium-sidebar[class*="-theme"] .sidebar-role-badge {
    color: var(--sidebar-accent, var(--accent));
}

/* ───────────────────────────────────────────────────────────────────────────
   18) QR-BRAND-001 · Firma QR kodu (Shared/Components/FirmaQrKod.razor)
   QR görseli her zaman BEYAZ zeminde durur — karanlık temada da kontrast
   bozulmasın, telefon kamerası okuyabilsin.
   ─────────────────────────────────────────────────────────────────────────── */
.sac-qr-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
}

.sac-qr-canvas-wrap {
    display: inline-block;
    position: relative;   /* CIRCUIT-CRASH-002: spinner artık kardeş — üzerine bindirmek için */
    padding: var(--space-2);
    border-radius: var(--radius-lg);
    padding: 0;                       /* QR-CARD-002: kart kendi zeminini çiziyor */
    line-height: 0;
}

.sac-qr-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    min-height: 180px;
}

.sac-qr-img {
    display: block;
    width: 100%;
    max-width: 300px;
    height: auto;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.sac-qr-placeholder {
    /* CIRCUIT-CRASH-002: artık .sac-qr-container'ın KARDEŞİ (çocuğu değil) —
       JS o konteynerin içeriğini serbestçe yönetebilsin diye Blazor'ın
       render ağacından tamamen çıkarıldı. Konumlandırma burada telafi
       ediliyor: konteynerin üzerine bindirilip aynı görsel sonucu veriyor. */
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-disabled);
    font-size: var(--text-2xl);
    line-height: 1;
    pointer-events: none;
}

.sac-qr-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.sac-qr-help {
    font-size: var(--text-xs);
    color: var(--text-subtle);
    margin: 0;
    max-width: 46ch;
    line-height: var(--leading-normal);
}

@media print {
    .sac-qr-actions,
    .sac-qr-help { display: none; }
}

/* QR-BRAND-001 · Public profildeki QR paneli (Pages/PublicProfile.razor) */
.profile-qr-panel {
    margin-top: var(--space-5);
    padding-top: var(--space-5);
    border-top: 1px solid var(--border-subtle);
    animation: qr-panel-in var(--duration-normal) var(--ease-out);
}

@keyframes qr-panel-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0);    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   19) v70 — KURUMSAL B2B RENK ROLLERİ
   ───────────────────────────────────────────────────────────────────────────
   ROL AYRIMI (bu bölümün varlık sebebi):
   Eski temada `--primary` doğrudan `--accent`'e (altın) bağlıydı. Yani birincil
   aksiyon rengi ile "öne çıkan/premium" etiketi AYNI renkti. Kullanıcı bir altın
   öğe gördüğünde bunun "tıkla" mı yoksa "bu ilan öne çıkarılmış" mı demek
   olduğunu ayırt edemiyordu. v70'te ayrıldılar:

     primary (lacivert) = AKSİYON        — buton, link, nav
     accent  (altın)    = ÖNE ÇIKAN      — yalnızca rozet/etiket, asla CTA

   ERİŞİLEBİLİRLİK (WCAG 2.1):
   · Altın zemin üzerine BEYAZ metin AA'yı geçmez (3.78:1). Bu yüzden accent
     rozetleri koyu metinle (accent-dark) eşlenir, beyazla değil.
   · Her rozet, aynı ailenin *-light zemini + *-dark metni ile kurulur;
     tinted zemine düz siyah/gri metin konmaz.
   · Renk tek sinyal değildir: her rozet metin etiketiyle birlikte gelir.
     Yalnızca renge veya ikona dayalı durum göstergesi YAPILMAZ — bu tonların
     bir kısmı renk körü kullanıcılar için birbirine yeterince yakın.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Birincil aksiyon ─────────────────────────────────────────────────── */
.btn-primary,
.btn.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--text-on-primary);
}

.btn-primary:hover,
.btn.btn-primary:hover {
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
    color: var(--text-on-primary);
}

.btn-primary:active,
.btn.btn-primary:active { background-color: var(--primary-active); }

.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary-border);
    background-color: transparent;
}

.btn-outline-primary:hover {
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--text-on-primary);
}

a:not(.btn):not(.nav-link):not(.sidebar-link):not(.pp-btn):not(.ft-social) { color: var(--primary); }   /* FRONT-BTN-001 */
a:not(.btn):not(.nav-link):not(.sidebar-link):not(.pp-btn):not(.ft-social):hover { color: var(--primary-hover); }

/* ── İhale durum rozetleri ────────────────────────────────────────────────
   Her durum kendi renk ailesini kullanır; hiçbir aile iki durumu paylaşmaz.
   Metin etiketi ZORUNLUDUR (renk tek sinyal olamaz). */
.tender-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.3rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.tender-badge--draft     { background: var(--bg-surface-3);            color: var(--text-body); }
.tender-badge--open      { background: rgb(var(--color-primary-100));  color: rgb(var(--color-primary-800)); }
.tender-badge--closing   { background: rgb(var(--color-warning-light));color: rgb(var(--color-warning-dark)); }
.tender-badge--pending   { background: rgb(var(--color-pending-light));color: rgb(var(--color-pending-dark)); }
.tender-badge--awarded   { background: rgb(var(--color-success-light));color: rgb(var(--color-success-dark)); }
.tender-badge--rejected  { background: rgb(var(--color-danger-light)); color: rgb(var(--color-danger-dark)); }

/* Öne çıkan/premium — CTA DEĞİL, yalnızca etiket.
   Altın üstüne beyaz metin AA'yı geçmediği için koyu altın metin kullanılır. */
.tender-badge--featured  { background: rgb(var(--color-accent-light)); color: rgb(var(--color-accent-dark)); }

.tender-featured-label {
    color: rgb(var(--color-accent-dark));
    font-weight: 700;
    font-size: var(--text-xs);
    letter-spacing: 0.02em;
}

/* Koyu temada tinted zeminler ışık saçmasın; ton korunur, parlaklık düşer. */
[data-theme="dark"] .tender-badge--open     { background: rgb(var(--color-primary-600) / 0.28);  color: rgb(var(--color-primary-200)); }
[data-theme="dark"] .tender-badge--closing  { background: rgba(239, 129, 64, 0.20);              color: #f5a878; }
[data-theme="dark"] .tender-badge--pending  { background: rgba(155, 134, 232, 0.20);             color: #c3b6f2; }
[data-theme="dark"] .tender-badge--awarded  { background: rgba(52, 201, 138, 0.18);              color: #7fdcb4; }
[data-theme="dark"] .tender-badge--rejected { background: rgba(239, 106, 98, 0.18);              color: #f4a09b; }
[data-theme="dark"] .tender-badge--featured { background: rgba(240, 180, 41, 0.18);              color: #f0c46a; }

/* ── İkincil metin okunabilirliği ─────────────────────────────────────────
   neutral-500 beyaz üzerinde AA'yı yalnızca büyük metin/ikon/kenarlık için
   geçer (4.25:1). Okunması gereken yardımcı metin neutral-600 (6.60:1) olmalı. */
.text-secondary-readable { color: rgb(var(--color-neutral-600)); }

/* ═══════════════════════════════════════════════════════════════════════════
   20) WALL-001 — KURUMSAL GÜVEN KARTI (Kapalı Bahçe)
   ───────────────────────────────────────────────────────────────────────────
   Tasarım ilkesi: firmanın DIŞARIDAKİ kimliği değil, PLATFORMDAKİ gücü
   gösterilir. Sakin, veri odaklı, süssüz — B2B alıcısı rozete değil rakama
   bakar. Renk yalnızca anlam taşıdığı yerde kullanılır.
   ═══════════════════════════════════════════════════════════════════════════ */

.trust-card {
    margin: var(--space-5) 0;
    padding: var(--space-5);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

/* ── Rozetler ─────────────────────────────────────────────────────────── */
.trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
}

.trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.7rem;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}

/* Her rozet kendi ailesinin light zemini + dark metni ile — tinted zemine
   düz gri/siyah konmaz. Metin etiketi her zaman var: renk tek sinyal değil. */
.trust-badge--verified { background: rgb(var(--color-success-light)); color: rgb(var(--color-success-dark)); }
.trust-badge--payout   { background: rgb(var(--color-primary-100));   color: rgb(var(--color-primary-800)); }
.trust-badge--tier     { background: rgb(var(--color-accent-light));  color: rgb(var(--color-accent-dark)); }
.trust-badge--tenure   { background: var(--bg-surface-2);             color: var(--text-body); }

[data-theme="dark"] .trust-badge--verified { background: rgba(52,201,138,.16);  color: #7fdcb4; }
[data-theme="dark"] .trust-badge--payout   { background: rgb(var(--color-primary-600) / .28); color: rgb(var(--color-primary-200)); }
[data-theme="dark"] .trust-badge--tier     { background: rgba(240,180,41,.16);  color: #f0c46a; }
[data-theme="dark"] .trust-badge--tenure   { background: var(--bg-surface-2);   color: var(--text-body); }

/* ── Metrikler ────────────────────────────────────────────────────────────
   Sabit sütun yerine auto-fit: 3 metrikte de 4 metrikte de dengeli durur. */
.trust-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--space-4);
}

.trust-metric {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: var(--space-3) var(--space-4);
    background: var(--bg-surface-2);
    border-radius: var(--radius-md);
}

.trust-metric__value {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    line-height: 1.1;
    color: var(--text-heading);
    font-variant-numeric: tabular-nums;   /* rakamlar hizalı kalsın */
}

.trust-metric__label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-body);
}

/* Yardımcı satır neutral-600 — AA geçer (6.60:1). neutral-500 bu boyutta yetersizdi. */
.trust-metric__sub {
    font-size: var(--text-xs);
    color: var(--text-subtle);
}

/* Başlık metriği (teslimat başarısı) vurgulanır ama BAĞIRMAZ:
   ince bir sol şerit, dolu renkli zemin değil. */
.trust-metric--headline {
    border-inline-start: 3px solid var(--success);
    background: rgb(var(--color-success-light) / 0.55);
}
.trust-metric--headline .trust-metric__value { color: rgb(var(--color-success-dark)); }

[data-theme="dark"] .trust-metric--headline {
    background: rgba(52,201,138,.10);
    border-inline-start-color: var(--success);
}
[data-theme="dark"] .trust-metric--headline .trust-metric__value { color: #7fdcb4; }

/* Geçmişi olmayan satıcı: ceza gibi görünmemeli — nötr ve davetkâr. */
.trust-metric--new { border-inline-start: 3px solid var(--border-strong); }
.trust-metric--new .trust-metric__value { font-size: var(--text-xl); color: var(--text-subtle); }

/* ── Kapalı bahçe notu ────────────────────────────────────────────────── */
.trust-note {
    margin: var(--space-4) 0 0;
    padding-top: var(--space-3);
    border-top: 1px solid var(--border-subtle);
    font-size: var(--text-xs);
    color: var(--text-subtle);
    line-height: var(--leading-normal);
}
.trust-note i { color: var(--primary); margin-inline-end: 0.35rem; }

@media (max-width: 575.98px) {
    .trust-card { padding: var(--space-4); }
    .trust-metrics { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--space-3); }
}

/* WALL-003: sektör rozeti + canlılık göstergesi */
.trust-badge--sector { background: rgb(var(--color-neutral-100)); color: rgb(var(--color-neutral-700)); }
[data-theme="dark"] .trust-badge--sector { background: var(--bg-surface-3); color: var(--text-body); }

.trust-badge__share {
    margin-inline-start: 0.3rem;
    padding: 0.05rem 0.35rem;
    border-radius: var(--radius-full);
    background: rgb(var(--color-neutral-0) / 0.7);
    font-size: 0.68rem;
    font-weight: 700;
}
[data-theme="dark"] .trust-badge__share { background: rgb(0 0 0 / 0.3); }

.trust-activity {
    margin: var(--space-4) 0 0;
    font-size: var(--text-xs);
    color: var(--text-subtle);
}
/* Renk tek sinyal DEĞİL — metin zaten "3 gün önce" diyor, nokta destekliyor. */
.trust-activity .activity-dot--fresh { color: var(--success); }
.trust-activity .activity-dot--warm  { color: var(--warning); }
.trust-activity .activity-dot--cold  { color: var(--text-disabled); }
.trust-activity i { font-size: 0.5rem; margin-inline-end: 0.4rem; vertical-align: middle; }

/* WALL-004: canlılık satırı — açık ihale + son işlem yan yana */
.trust-activity__live { font-weight: 600; color: var(--text-body); }
.trust-activity__sep  { margin: 0 0.4rem; opacity: 0.5; }

/* ═══════════════════════════════════════════════════════════════════════
   HOME-STATS-001 / HOME-CATS-001 / HOME-HOWITWORKS-001
   Anasayfa genişletmesi — mevcut token sistemi (tokens.css) kullanılıyor,
   yeni renk/font TANIMLANMADI. "Refined Industrial Luxury" diline sadık:
   Fraunces başlık, amber vurgu YALNIZCA rakamlarda (CTA değil, "öne çıkan
   bilgi" rolünde — tokens.css'teki rol ayrımına uygun).
   ═══════════════════════════════════════════════════════════════════════ */

/* ── İstatistik Şeridi ────────────────────────────────────────────────── */
.home-stats-strip {
    background: var(--bg-surface-2);
    border-top: 1px solid var(--border-subtle);
    border-bottom: 1px solid var(--border-subtle);
    padding: var(--space-8) 0;
}
.home-stats-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-10) var(--space-16);
    text-align: center;
}
.home-stat-value {
    font-family: var(--font-display);
    font-size: var(--text-4xl);
    font-weight: 600;
    color: var(--accent);
    line-height: var(--leading-tight);
}
.home-stat-label {
    font-size: var(--text-sm);
    color: var(--text-subtle);
    margin-top: var(--space-1);
}

/* ── Kategori Hızlı Erişim ────────────────────────────────────────────── */
.home-cats-section { padding: var(--space-16) 0; }
.home-cats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--space-4);
}
.home-cat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-6) var(--space-3);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    text-align: center;
    text-decoration: none;
    color: var(--text-heading);
    transition: border-color .15s ease, transform .15s ease;
}
.home-cat-card:hover {
    border-color: var(--primary-border);
    transform: translateY(-2px);
    color: var(--text-heading);
}
.home-cat-icon { font-size: var(--text-3xl); line-height: 1; }
.home-cat-name { font-size: var(--text-sm); font-weight: 600; }

/* ── Nasıl Çalışır ────────────────────────────────────────────────────── */
.home-how-section { padding: var(--space-20) 0; }
.home-how-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-8);
    margin-top: var(--space-10);
}
.home-how-step { text-align: center; padding: 0 var(--space-4); }
.home-how-number {
    width: 44px; height: 44px;
    margin: 0 auto var(--space-4);
    border-radius: var(--radius-full);
    background: var(--primary-soft);
    border: 1px solid var(--primary-border);
    color: var(--primary);
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--text-xl);
    display: flex; align-items: center; justify-content: center;
}
.home-how-step h3 {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    margin-bottom: var(--space-2);
}
.home-how-step p {
    color: var(--text-subtle);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
    max-width: 32ch;
    margin: 0 auto;
}

@media (max-width: 767px) {
    .home-stats-row { gap: var(--space-8); }
    .home-stat-value { font-size: var(--text-3xl); }
}

/* ═══ CLOCK-STYLE-001 — üst çubuktaki İstanbul saati ═══════════════════════
   Önceki hâl: yalın Bootstrap sınıfları + satır içi font-size, kendi stili
   yoktu. İki somut sorun vardı:
   1) Rakamlar orantılı genişlikteydi — saniye her değiştiğinde metnin eni
      değişiyor, saatin yanındaki her şey minik bir sıçrama yapıyordu.
      `font-variant-numeric: tabular-nums` bunu tamamen bitirir.
   2) Yanındaki TRY/TR düğmeleri "çip" görünümündeyken saat çıplak
      duruyordu — aynı dile getirildi.                                      */
/* CLOCK-002: iki satırlı saat — büyük saat/dakika/saniye, altında gün ve ay. */
.istanbul-clock {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.32rem 0.95rem 0.32rem 0.38rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--bg-surface) 0%, var(--bg-surface-2) 100%);
    box-shadow: 0 1px 2px rgba(16, 21, 26, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.04);
    color: var(--text-subtle);
    white-space: nowrap;
    user-select: none;
}
.istanbul-clock__icon {
    display: inline-grid;
    place-items: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: rgba(240, 180, 41, 0.16);
    color: #c98a00;
    font-size: 1.05rem;
}
[data-theme="dark"] .istanbul-clock__icon { color: #F0B429; }
.istanbul-clock__body {
    display: flex;
    flex-direction: column;
    line-height: 1.08;
}
.istanbul-clock__time {
    font-size: 1.12rem;
    font-weight: 700;
    color: var(--text-heading);
    /* Sabit genişlikli rakamlar — saniye ilerlerken başlık titremez. */
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.03em;
}
.istanbul-clock__date {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-muted);
    letter-spacing: 0.01em;
}
/* Dar ekranda saat, panel/profil düğmelerinin yerini daraltmasın (HEADER-OVERFLOW-001). */
@media (max-width: 991px) {
    .istanbul-clock { display: none; }
}
/* Herkese açık üst menü kalabalık: 1200–1500px arasında yalnızca saat satırı kalır (tarih gizlenir);
   menü satır içine girmeyen 1200px altında saat açılır menüde yer kaplamasın diye gizlenir. */
@media (max-width: 1499.98px) {
    #mainNav .istanbul-clock { padding-right: 0.75rem; }
    #mainNav .istanbul-clock__date { display: none; }
    #mainNav .istanbul-clock__icon { width: 1.8rem; height: 1.8rem; font-size: 0.95rem; }
}
@media (max-width: 1199.98px) {
    #mainNav .istanbul-clock { display: none; }
}

/* ═══ HEADER-OVERFLOW-001 — dar ekranda panel/profil kaybolması ═══════════
   BELİRTİ: Pencere daraltıldığında "Firma Paneli" düğmesi ve profil
   bölümü kayboluyordu.
   GERÇEK SEBEP: Öğeler CSS ile GİZLENMİYOR — üst çubuk o genişlikte
   TAŞIYOR. Navbar `navbar-expand-xl` olduğundan 1200px'in ÜSTÜNDE menü
   bağlantıları satır içi duruyor; yanına saat + tema + para birimi + dil
   + panel + profil eklenince toplam genişlik kabı aşıyor ve sondaki
   öğeler görünür alanın dışına itiliyor. Gizlenmiş gibi görünmelerinin
   sebebi bu — bu yüzden "d-none" aramak sonuç vermiyordu.
   ÇÖZÜM: Sağdaki eylem grubu asla küçülmesin (flex-shrink: 0), orta
   menü ise gerektiğinde daralsın. Böylece taşma orta menüde soğurulur,
   panel ve profil HER ZAMAN görünür kalır. */
#mainNav .navbar-nav {
    min-width: 0;          /* flex öğesinin içeriğinden küçülebilmesi için şart */
}
#mainNav .navbar-nav .nav-link {
    white-space: nowrap;
}
#mainNav > .container-fluid > .d-flex:last-child,
#mainNav .navbar-actions {
    flex-shrink: 0;
}
@media (min-width: 1200px) and (max-width: 1450px) {
    /* Bu aralıkta menü satır içi duruyor ama yer dar — menüyü sıkıştır,
       eylem düğmelerine dokunma. */
    #mainNav .navbar-nav .nav-link {
        padding-inline: 0.45rem;
        font-size: 0.925rem;
    }
}

/* ═══ HOME-STATS-002 / HOME-CATS-002 — yeni anasayfa öğeleri ══════════════ */

/* Aciliyet vurgusu: "24 saatte kapanıyor" sayısı diğerlerinden ayrışmalı —
   ziyaretçinin gözü önce oraya gitsin diye. Kırmızı DEĞİL amber kullanıldı;
   kırmızı bu arayüzde hata/iptal rengi, burada hata yok, aciliyet var. */
.home-stat--urgent .home-stat-value {
    color: var(--warning, #f0a500);
}
.home-stat--urgent .home-stat-label {
    color: var(--warning, #f0a500);
    opacity: 0.85;
}

/* Kategori kartı üstünde aktif ihale sayısı rozeti — kartın "boş mu dolu mu"
   olduğunu tıklamadan gösterir. */
.home-cat-card { position: relative; }
.home-cat-badge {
    position: absolute;
    top: 0.45rem;
    inset-inline-end: 0.45rem;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: var(--primary-soft);
    border: 1px solid var(--primary-border);
    color: var(--primary);
    font-size: 0.7rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.home-cats-all {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    white-space: nowrap;
}
.home-cats-all:hover { text-decoration: underline; }

/* CLAIMS-001: güven bandındaki öğe sayısı 3–5 arası değişir; sabit 4 sütun beşinci öğeyi tek başına alt satıra düşürüyordu. */
.trust-grid.trust-grid--auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1.5rem; }
a.trust-item { color: inherit; }
a.trust-item:hover h6, a.trust-item:focus-visible h6 { text-decoration: underline; }

/* TESTIMONIAL-001: firma yorumları */
.testimonial-card .verified-trade { font-size: .75rem; }
.testimonial-card blockquote { margin: 0; }

/* COOKIE-CONSENT-001: Detaylı çerez yönetimi — banner ve tercihler modalı */
.cookie-consent {
  position: fixed; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 1080;
  max-width: 860px; margin: 0 auto;
  display: flex; gap: 1.25rem; align-items: center; justify-content: space-between; flex-wrap: wrap;
  padding: 1.1rem 1.4rem; border-radius: 1rem;
  background: rgba(15, 23, 42, 0.96); backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #f1f5f9; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45); font-size: 0.88rem;
}
.cookie-consent[hidden] { display: none !important; }
.cookie-consent__content { flex: 1 1 360px; }
.cookie-consent__title { font-size: 0.95rem; font-weight: 700; margin-bottom: 0.25rem; color: #fff; display: flex; align-items: center; }
.cookie-consent__text { line-height: 1.5; color: #cbd5e1; font-size: 0.84rem; }
.cookie-consent a { color: #fbbf24; text-decoration: underline; text-underline-offset: 3px; }
.cookie-consent a:hover { color: #f59e0b; }
.cookie-consent__actions { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.cookie-consent__btn {
  padding: 0.48rem 0.95rem; border-radius: 999px; font-weight: 600; font-size: 0.82rem;
  cursor: pointer; transition: all 0.18s ease; display: inline-flex; align-items: center; justify-content: center;
}
.cookie-consent__btn--link {
  background: transparent; border: 1px solid rgba(255, 255, 255, 0.25); color: #cbd5e1;
}
.cookie-consent__btn--link:hover {
  background: rgba(255, 255, 255, 0.1); color: #fff; border-color: rgba(255, 255, 255, 0.4);
}
.cookie-consent__btn--secondary {
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.2); color: #fff;
}
.cookie-consent__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.16); color: #fff;
}
.cookie-consent__btn--primary {
  background: #f59e0b; border: 1px solid #f59e0b; color: #0f172a; font-weight: 700;
}
.cookie-consent__btn--primary:hover {
  background: #d97706; border-color: #d97706; color: #fff;
}

/* Çerez Tercihleri Modalı */
.cookie-modal-backdrop {
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(0, 0, 0, 0.65); backdrop-filter: blur(4px);
  z-index: 1089;
}
.cookie-modal-backdrop[hidden] { display: none !important; }
.cookie-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: calc(100% - 2rem); max-width: 680px; max-height: 88vh;
  background: #0f172a; border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 1.25rem; box-shadow: 0 25px 60px rgba(0, 0, 0, 0.6);
  z-index: 1090; display: flex; flex-direction: column; overflow: hidden;
  color: #e2e8f0; animation: cookieModalFadeIn 0.2s ease-out;
}
.cookie-modal[hidden] { display: none !important; }
@keyframes cookieModalFadeIn {
  from { opacity: 0; transform: translate(-50%, -47%) scale(0.97); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
.cookie-modal__header {
  padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex; justify-content: space-between; align-items: center;
}
.cookie-modal__heading { margin: 0; font-size: 1.15rem; font-weight: 700; color: #fff; display: flex; align-items: center; }
.cookie-modal__close {
  background: transparent; border: none; font-size: 1.6rem; color: #94a3b8;
  cursor: pointer; line-height: 1; padding: 0 0.25rem; transition: color 0.15s ease;
}
.cookie-modal__close:hover { color: #fff; }
.cookie-modal__body {
  padding: 1.25rem 1.5rem; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 1rem;
}
.cookie-modal__desc { font-size: 0.88rem; color: #94a3b8; line-height: 1.55; margin-bottom: 0.5rem; }
.cookie-category-item {
  background: rgba(30, 41, 59, 0.7); border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.85rem; padding: 1rem 1.15rem; transition: border-color 0.15s ease;
}
.cookie-category-item:hover { border-color: rgba(255, 255, 255, 0.18); }
.cookie-category-header {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.4rem; gap: 1rem;
}
.cookie-category-title-wrap { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.cookie-category-title { font-weight: 600; font-size: 0.95rem; color: #f8fafc; }
.cookie-category-desc { font-size: 0.82rem; color: #94a3b8; line-height: 1.5; margin: 0; }
.cookie-category-desc code { color: #fbbf24; background: rgba(0, 0, 0, 0.25); padding: 0.1rem 0.35rem; border-radius: 4px; }
.cookie-modal__policy-note {
  font-size: 0.82rem; color: #64748b; margin-top: 0.5rem; text-align: center;
}
.cookie-modal__policy-note a { color: #fbbf24; text-decoration: underline; }
.cookie-modal__footer {
  padding: 1.1rem 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.75rem;
  background: rgba(15, 23, 42, 0.95);
}

@media (max-width: 640px) {
  .cookie-consent { left: 0.75rem; right: 0.75rem; bottom: 0.75rem; padding: 1rem; }
  .cookie-consent__actions { width: 100%; }
  .cookie-consent__btn { flex: 1 1 calc(50% - 0.25rem); }
  .cookie-consent__btn--link { flex-basis: 100%; }
  .cookie-modal { width: calc(100% - 1rem); max-height: 94vh; }
  .cookie-modal__footer { flex-direction: column; }
  .cookie-modal__footer > button, .cookie-modal__footer > div { width: 100%; }
  .cookie-modal__footer > div { display: flex; gap: 0.5rem; }
  .cookie-modal__footer > div > button { flex: 1; }
}

/* BLAZOR-UI-TR-002: Türkçe yeniden bağlanma penceresi */
.reconnect-modal { display: none; position: fixed; inset: 0; z-index: 2000; background: rgba(0, 0, 0, .45); align-items: center; justify-content: center; }
.reconnect-modal.components-reconnect-show, .reconnect-modal.components-reconnect-failed, .reconnect-modal.components-reconnect-rejected { display: flex; }
.reconnect-modal__box { background: #111827; color: #f3f4f6; padding: 1rem 1.25rem; border-radius: .75rem; box-shadow: 0 10px 30px rgba(0, 0, 0, .4); max-width: 90vw; }
.reconnect-modal__show, .reconnect-modal__failed, .reconnect-modal__rejected { display: none; }
.components-reconnect-show .reconnect-modal__show, .components-reconnect-failed .reconnect-modal__failed, .components-reconnect-rejected .reconnect-modal__rejected { display: block; }

/* UI-OVERFLOW-001: telefonda alt bilginin 4 piksel sağa taşması (row g-5 negatif kenar boşluğu) */
@media (max-width: 575.98px) {
    footer .row.g-5 { --bs-gutter-x: 1.5rem; }
}

/* BRAND-LOGO-001: tema duyarlı logo (açık temada koyu, koyu temada açık sürüm) */
.brand-logo { width: auto; vertical-align: middle; }
.brand-logo--ondark { display: none; }
[data-theme="dark"] .brand-logo--onlight, [data-bs-theme="dark"] .brand-logo--onlight { display: none; }
[data-theme="dark"] .brand-logo--ondark, [data-bs-theme="dark"] .brand-logo--ondark { display: inline-block; }


/* MOBILE-FIRST-001: telefonda ilk ekran — sitenin ne olduğu öne, tekrar eden kampanya şeritleri geri */
.eg-hero-what { margin: 0 0 10px; font-size: 1rem; line-height: 1.45; }
.eg-hero-sectors { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.eg-hero-sectors li { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; font-size: .82rem; font-weight: 600;
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); }
@media (max-width: 767.98px) {
  .launch-banner.on-home { display: none; }   /* aynı Gold ve açılış bilgisi hemen altındaki kutuda */
  .republic-hero { padding: 6px 12px; gap: 10px; }
  .republic-hero .republic-flag { width: 33px; height: 22px; }
  .republic-hero .republic-title { font-size: .92rem; }
  .republic-hero .republic-sub { display: none; }
  .cookie-consent { padding: .75rem; }
  .cookie-consent__title { font-size: .95rem; }
  .cookie-consent__text { font-size: .78rem; line-height: 1.4; }
  .cookie-consent__btn { padding-top: .4rem; padding-bottom: .4rem; }
}

/* MOBILE-FIRST-002: telefonda ilk ekran görünüşü — tek satır üst menü, açık ve ferah kampanya kutusu, alta yaslı çerez şeridi */
@media (max-width: 767.98px) {
  header.navbar > .container-fluid { flex-wrap: nowrap; padding-left: 12px !important; padding-right: 12px !important; gap: 6px; }
  header.navbar .navbar-logo-text { font-size: 1.05rem; }
  header.navbar .theme-toggle { display: none; }
  header.navbar .navbar-toggler { order: 3; margin-left: 4px !important; padding: 4px 6px; }
  header.navbar .navbar-toggler + * , header.navbar .flex-nowrap.ms-auto { order: 2; }
  header.navbar .flex-nowrap.ms-auto { gap: 6px !important; }

  html:not([data-theme="dark"]) .eg-hero { color: #1d3b2a; background: linear-gradient(180deg, #f3faf5 0%, #ffffff 100%);
      border: 1px solid #d5eadc; box-shadow: 0 6px 20px -12px rgba(11,77,44,.35); padding: 18px 16px; }
  html:not([data-theme="dark"]) .eg-hero-what { color: #1d3b2a; }
  html:not([data-theme="dark"]) .eg-hero-what b { color: #0b4d2c; }
  html:not([data-theme="dark"]) .eg-hero-sectors li { background: #fff; border-color: #cfe5d6; color: #145c38; }
  html:not([data-theme="dark"]) .eg-hero-sectors i { color: #1a9a5e; }
  html:not([data-theme="dark"]) .eg-hero-title { color: #0b4d2c; font-size: 1.6rem; margin: 0 0 8px; }
  html:not([data-theme="dark"]) .eg-hero-offer { background: #f3f8f5; border-left-color: #1a9a5e; color: #1d3b2a; }
  html:not([data-theme="dark"]) .eg-hero-offer i { color: #1a9a5e; opacity: 1; }
  html:not([data-theme="dark"]) .eg-hero .eg-hero-cta { background: #0b4d2c; }
  html:not([data-theme="dark"]) .eg-hero .eg-hero-cta:hover { background: #13633a; }
  html:not([data-theme="dark"]) .eg-hero a.eg-hero-cta, html:not([data-theme="dark"]) .eg-hero a.eg-hero-cta:hover,
  html:not([data-theme="dark"]) .eg-hero a.eg-hero-cta:focus, html:not([data-theme="dark"]) .eg-hero a.eg-hero-cta i { color: #fff !important; }
  html:not([data-theme="dark"]) .eg-hero .pp-btn--ghost { color: #145c38; border-color: #9fcfb2; }
  .eg-hero-cta { width: 100%; justify-content: center; }

  .cookie-consent { left: 0 !important; right: 0 !important; bottom: 0 !important; border-radius: 16px 16px 0 0; padding: .7rem .85rem; }
  .cookie-consent__actions { flex-wrap: nowrap; gap: .35rem; }
  .cookie-consent__btn, .cookie-consent__btn--link { flex: 1 1 0 !important; font-size: .75rem; padding-left: .3rem; padding-right: .3rem; white-space: normal; line-height: 1.15; }
}

@media (max-width: 767.98px) {   /* MOBILE-FIRST-002: üst menü tek satır (61px) olunca altındaki boşluklar */
  .special-theme-banner { margin-top: 61px !important; }
  .ihale-hero { padding-top: 76px !important; }
  .page.special-theme .ihale-hero { padding-top: 14px !important; }
  header.navbar .navbar-brand img { height: 30px; }
  header.navbar .navbar-logo-text { font-size: .98rem; }
  header.navbar .flex-nowrap.ms-auto .btn { padding-left: .55rem !important; padding-right: .55rem !important; }
  header.navbar .navbar-toggler { flex: 0 0 auto; }
  header.navbar .navbar-toggler-icon { width: 1.25em; height: 1.25em; }
}
@media (max-width: 370px) { header.navbar .navbar-logo-text { display: none; } }

/* MOBILE-FIRST-003: sektör etiketleri bağlantı — çipin tamamı dokunulabilir */
.eg-hero-sectors li { padding: 0; }
.eg-hero-sectors a { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; color: inherit !important; text-decoration: none; }   /* genel a:not(.btn)… kuralı altın rengini veriyordu */
.eg-hero-sectors a:hover, .eg-hero-sectors a:focus-visible { background: rgba(255,255,255,.14); }
@media (max-width: 767.98px) {
  html:not([data-theme="dark"]) .eg-hero-sectors a:hover, html:not([data-theme="dark"]) .eg-hero-sectors a:focus-visible { background: #eef7f1; }
}
.sss-grp { scroll-margin-top: 80px; }

/* MOBILE-FIRST-004: çerez şeridi açık temada beyaz; koyu lacivert zemin ve turuncu düğme ilk ekranı kampanya/bahis sitesi gibi
   gösteriyordu. "Yalnızca zorunlular" ile "Tümünü kabul et" aynı büyüklükte ve aynı renk ailesinde (reddetmek kabul etmek kadar kolay). */
html:not([data-theme="dark"]) .cookie-consent { background: #fff; color: #1f2937; border-color: #d9e2dc; box-shadow: 0 -6px 24px rgba(15, 23, 42, .12); backdrop-filter: none; }
html:not([data-theme="dark"]) .cookie-consent__title { color: #0b4d2c; }
html:not([data-theme="dark"]) .cookie-consent__text { color: #374151; }
html:not([data-theme="dark"]) .cookie-consent a { color: #145c38; }
html:not([data-theme="dark"]) .cookie-consent a:hover { color: #0b4d2c; }
html:not([data-theme="dark"]) .cookie-consent__btn--link { color: #374151; border-color: #cbd5d0; }
html:not([data-theme="dark"]) .cookie-consent__btn--link:hover { background: #f3f8f5; color: #111827; border-color: #9fcfb2; }
html:not([data-theme="dark"]) .cookie-consent__btn--secondary { background: #fff; color: #0b4d2c; border-color: #0b4d2c; }
html:not([data-theme="dark"]) .cookie-consent__btn--secondary:hover { background: #eef7f1; color: #0b4d2c; }
html:not([data-theme="dark"]) .cookie-consent__btn--primary { background: #0b4d2c; border-color: #0b4d2c; color: #fff; }
html:not([data-theme="dark"]) .cookie-consent__btn--primary:hover { background: #13633a; border-color: #13633a; color: #fff; }

/* MOBILE-FIRST-004: açılış bandı (her sayfanın üstü) — siyah zemin, altın çizgi ve altın düğme yerine açık yeşil bant, yeşil düğme */
html:not([data-theme="dark"]) .launch-banner { background: #eef7f1; color: #1d3b2a; border-bottom: 1px solid #cfe5d6; }
html:not([data-theme="dark"]) .launch-banner i { color: #1a9a5e; }
html:not([data-theme="dark"]) .launch-banner b { color: #0b4d2c; }
a.launch-banner-cta, a.launch-banner-cta:visited { background: #0b4d2c; color: #fff !important; font-weight: 700; }
a.launch-banner-cta:hover { background: #13633a; color: #fff !important; }
[data-theme="dark"] .launch-banner { border-bottom-color: #1a9a5e; }
[data-theme="dark"] .launch-banner i { color: #7cf0ad; }
[data-theme="dark"] a.launch-banner-cta, [data-theme="dark"] a.launch-banner-cta:visited { background: #13774a; }
[data-theme="dark"] a.launch-banner-cta:hover { background: #178a55; }

/* MOBILE-MENU-001 (2026-11-03): telefonda açılan menü üst satırın içine (logo ile düğmeler arasına) sıkışıyordu;
   üst satır nowrap olduğu için. Açılan menü artık başlığın altında tam genişlik bir panel. */
@media (max-width: 1199.98px) {
  #mainNav .navbar-collapse { position: absolute; top: 100%; left: 0; right: 0; z-index: 1030;
      background: var(--bg-surface); border-bottom: 1px solid var(--border-color, rgba(127,127,127,.25));
      box-shadow: 0 12px 24px -12px rgba(0,0,0,.45); padding: .5rem 1rem 1rem;
      max-height: calc(100vh - 64px); overflow-y: auto; }
  #mainNav .navbar-collapse .navbar-nav { margin: 0 !important; align-items: stretch; }
}

/* ══ PUBLIC-UI-001: genel sayfaların ortak görsel dili ═══════════════════════════
   Hakkımızda · Hizmetler · İletişim · İhaleler · Duyurular
   Marka: zeytin #4d6b3c (koyu temada #8fb26f), antrasit #151a1f, krem #f2efe7. */

:root { --pp-accent: #4d6b3c; --pp-accent-2: #6f8f57; --pp-soft: rgba(77,107,60,.10); --pp-line: var(--bs-border-color); --pp-card: var(--bs-body-bg); --pp-muted: var(--bs-secondary-color); }
[data-theme="dark"], [data-bs-theme="dark"] { --pp-accent: #8fb26f; --pp-accent-2: #a9c48b; --pp-soft: rgba(143,178,111,.13); --pp-card: #151b22; }

/* Başlık bandı */
.ph { position: relative; overflow: hidden; color: #fff; padding: 72px 0 64px;
      background: radial-gradient(900px 420px at 85% 0%, rgba(169,196,139,.22), transparent 60%),
                  radial-gradient(700px 380px at 0% 100%, rgba(201,162,39,.12), transparent 60%),
                  linear-gradient(150deg, #1d2a1b 0%, #151a1f 58%, #0f1418 100%); }
.ph--compact { padding: 52px 0 44px; }
.ph-grid { position: absolute; inset: 0; pointer-events: none;
           background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
           background-size: 46px 46px; -webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 25%, transparent 75%); mask-image: radial-gradient(ellipse at 30% 40%, #000 25%, transparent 75%); }
.ph-mark { position: absolute; right: -60px; bottom: -90px; width: 420px; opacity: .07; pointer-events: none; }
.ph-kicker { display: inline-flex; align-items: center; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #a9c48b; margin-bottom: 14px; }
.ph-title { font-size: clamp(2rem, 4.2vw, 3.1rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.12; margin: 0 0 14px; color: #fff; max-width: 820px; }
.ph-sub { font-size: 1.12rem; color: rgba(255,255,255,.76); max-width: 680px; margin: 0; line-height: 1.6; }
@media (max-width: 768px) { .ph { padding: 48px 0 40px; } .ph-mark { width: 260px; right: -70px; bottom: -70px; } }

/* Bölümler */
.pp-section { padding: 64px 0; }
.pp-section--tight { padding: 40px 0; }
.pp-eyebrow { font-size: .76rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--pp-accent); margin-bottom: 10px; }
.pp-h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 800; letter-spacing: -.02em; margin-bottom: 12px; }
.pp-lead { color: var(--pp-muted); font-size: 1.05rem; line-height: 1.7; max-width: 720px; }
.pp-card { background: var(--pp-card); border: 1px solid var(--pp-line); border-radius: 18px; padding: 28px; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.pp-card--hover:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0,0,0,.08); border-color: color-mix(in srgb, var(--pp-accent) 40%, var(--pp-line)); }
.pp-ic { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--pp-soft); color: var(--pp-accent); font-size: 1.35rem; margin-bottom: 18px; }
.pp-num { font-size: .8rem; font-weight: 800; color: var(--pp-accent); letter-spacing: .08em; }
.pp-prose { font-size: 1.04rem; line-height: 1.8; color: var(--bs-body-color); }
.pp-prose p { margin-bottom: 1rem; }

/* Hikâye blokları (CMS metni) */
.pp-story { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 24px; padding: 34px 0; border-top: 1px solid var(--pp-line); }
.pp-story:first-child { border-top: 0; padding-top: 0; }
.pp-story-n { font-size: 2.2rem; font-weight: 800; color: var(--pp-accent); opacity: .35; line-height: 1; }
.pp-story h2 { font-size: 1.45rem; font-weight: 800; letter-spacing: -.015em; margin: 0 0 12px; }
@media (max-width: 576px) { .pp-story { grid-template-columns: 1fr; gap: 6px; } }

/* Çağrı bandı */
.pp-cta { position: relative; overflow: hidden; border-radius: 22px; padding: 44px; color: #fff;
          background: radial-gradient(600px 300px at 90% 0%, rgba(169,196,139,.25), transparent 60%), linear-gradient(135deg, #2c3d27, #151a1f); }
.pp-cta h2 { color: #fff; font-weight: 800; letter-spacing: -.02em; }
.pp-cta p { color: rgba(255,255,255,.78); }
.pp-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 12px; font-weight: 700; text-decoration: none; border: 1px solid transparent; transition: .15s; }
.pp-btn--pri { background: #F0B429; color: #10151a; }   /* FRONT-BTN-001: ana sayfadaki ana düğmeyle aynı */
.pp-btn--pri:hover { background: #f6c552; color: #10151a; }
.pp-btn--ghost { border-color: rgba(255,255,255,.35); color: #fff; }
.pp-btn--ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
.pp-btn--accent { background: var(--pp-accent); color: #fff; }
.pp-btn--accent:hover { filter: brightness(1.08); color: #fff; }

/* Bant içi sekmeler ve arama */
.ph-tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: 14px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); margin-top: 26px; }
.ph-tabs a { padding: 9px 18px; border-radius: 10px; color: rgba(255,255,255,.75); font-weight: 600; text-decoration: none; font-size: .92rem; }
.ph-tabs a.on { background: #a9c48b; color: #151a1f; }
.ph-search { display: flex; max-width: 640px; margin-top: 18px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.ph-search input { flex: 1; border: 0; padding: 14px 18px; font-size: 1rem; outline: none; color: #1f2328; background: #fff; }
.ph-search button { border: 0; background: var(--pp-accent); color: #fff; padding: 0 22px; font-weight: 700; }

/* Filtre çipleri */
.pp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-chip { border: 1px solid var(--pp-line); background: var(--pp-card); color: inherit; border-radius: 999px; padding: 7px 14px; font-size: .86rem; font-weight: 600; transition: .15s; }
.pp-chip:hover { border-color: var(--pp-accent); color: var(--pp-accent); }
.pp-chip.on { background: var(--pp-accent); border-color: var(--pp-accent); color: #fff; }

/* SSS (açılır sorular) */
details.pp-card summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
details.pp-card summary::-webkit-details-marker { display: none; }
details.pp-card summary::after { content: "+"; font-size: 1.3rem; font-weight: 400; color: var(--pp-accent); transition: transform .2s; }
details.pp-card[open] summary::after { transform: rotate(45deg); }

/* SITE-ANALYTICS-001 / SELLER-INSIGHTS-001 — Özet ekranları ortak görünümü (yönetici Özet + Firma Paneli).
   Tüm seçiciler .oz / .oz-* önekli; başka sayfaları etkilemez. Bileşenler: Pages/Admin/Ozet*.razor */
.oz {
    --oz-1: #0f766e; --oz-1-soft: rgba(15,118,110,.12); --oz-gold: #f0b429; --oz-x: #0f172a;
    --oz-up: #059669; --oz-down: #dc2626; --oz-warn: #b45309; --oz-warn-soft: rgba(217,119,6,.10);
    --oz-card-shadow: 0 1px 2px rgba(15,23,42,.04), 0 4px 16px rgba(15,23,42,.05);
    --oz-empty-fill: var(--bg-surface-2);
    max-width: 1880px;
}
[data-theme="dark"] .oz, [data-bs-theme="dark"] .oz, .dark .oz, .theme-dark .oz, .dark-mode .oz { --oz-1: #2dd4bf; --oz-1-soft: rgba(45,212,191,.14); --oz-x: #e5e7eb; --oz-card-shadow: none; }
.oz * { font-variant-numeric: tabular-nums; }
.oz-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin: 4px 0 18px; }
.oz-head h1 { font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; color: var(--text-heading); margin: 0; }
.oz-head .sub { display: flex; align-items: center; gap: 10px; color: var(--text-subtle); font-size: .9rem; margin-top: 2px; flex-wrap: wrap; }
.oz-head .tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.oz-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 6px 3px 10px; border-radius: 999px; background: var(--oz-1-soft); color: var(--oz-1); font-weight: 700; font-size: .82rem; }
.oz-chip button { border: 0; background: transparent; color: inherit; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; }
.oz-chip button:hover { background: rgba(0,0,0,.08); }
.oz-seg { display: inline-flex; background: var(--bg-surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 3px; gap: 2px; }
.oz-seg button { border: 0; background: transparent; padding: 6px 12px; border-radius: 7px; font-size: .84rem; font-weight: 600; color: var(--text-subtle); }
.oz-seg button.on { background: var(--bg-surface); color: var(--text-heading); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.oz-seg.sm button { padding: 4px 10px; font-size: .78rem; }
.oz-btn { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-heading); font-weight: 600; font-size: .86rem; text-decoration: none; }
.oz-btn:hover { border-color: var(--border-strong); color: var(--text-heading); }
.oz-btn.icon { width: 36px; padding: 0; justify-content: center; }
.oz-btn.primary, .oz-btn.primary i { background: var(--oz-gold); border-color: var(--oz-gold); color: #1a1405 !important; }
.oz-btn.primary:hover { filter: brightness(1.05); color: #1a1405; }
.oz-spin { width: 14px; height: 14px; border: 2px solid var(--border); border-top-color: var(--oz-1); border-radius: 50%; animation: ozspin .7s linear infinite; }
@keyframes ozspin { to { transform: rotate(360deg); } }
.oz-note, .oz-alert { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px; border-radius: 12px; background: var(--oz-1-soft); color: var(--text-body); font-size: .86rem; margin-bottom: 16px; }
.oz-note i { color: var(--oz-1); margin-top: 3px; }
.oz-alert { background: var(--oz-warn-soft); } .oz-alert i { color: var(--oz-warn); margin-top: 3px; }

.oz-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.oz-grid > *, .oz-stack > *, .oz-rail > * { margin: 0 !important; }
.oz-grid section.oz-platform { padding: 0 !important; }   /* genel "section { padding: 96px 0 }" kuralını ezer */
.oz-grid > .s4 { grid-column: span 4; } .oz-grid > .s5 { grid-column: span 5; } .oz-grid > .s6 { grid-column: span 6; }
.oz-grid > .s7 { grid-column: span 7; } .oz-grid > .s8 { grid-column: span 8; } .oz-grid > .s12 { grid-column: span 12; }
@media (max-width: 1199px) { .oz-grid > .s4, .oz-grid > .s5, .oz-grid > .s7, .oz-grid > .s8 { grid-column: span 12; } .oz-grid > .s6 { grid-column: span 6; } .oz-heat .cell { height: 18px; } }
@media (max-width: 767px) { .oz-grid > * { grid-column: span 12 !important; } .oz-grid { gap: 14px; } .oz-heat { gap: 2px; grid-template-columns: 30px repeat(24, minmax(0, 1fr)); } .oz-heat .cell { height: 12px; border-radius: 2px; } .oz-heat .hl { font-size: .55rem; } }

.oz-card { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 18px 20px; box-shadow: var(--oz-card-shadow); min-width: 0; }
.oz-hd { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.oz-hd h3 { font-size: 1rem; font-weight: 700; color: var(--text-heading); margin: 0; display: flex; align-items: center; gap: 8px; }
.oz-hd small, .oz-muted { color: var(--text-subtle); }
.oz-hd a { font-size: .82rem; font-weight: 600; color: var(--oz-1); text-decoration: none; }
.oz-foot { color: var(--text-subtle); font-size: .78rem; margin-top: 12px; line-height: 1.5; }
.oz-subhd { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--text-subtle); margin: 16px 0 6px; display: flex; gap: 6px; align-items: center; }
.oz-subhd.warn { color: var(--oz-warn); }
.oz-skel { border-radius: 10px; background: linear-gradient(90deg, var(--bg-surface-2) 25%, var(--border) 50%, var(--bg-surface-2) 75%); background-size: 200% 100%; animation: ozsk 1.3s infinite; }
@keyframes ozsk { to { background-position: -200% 0; } }
.oz-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 8px; padding: 26px 12px; color: var(--text-subtle); font-size: .86rem; min-height: 140px; }
.oz-empty i { font-size: 1.4rem; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--bg-surface-2); color: var(--oz-1); }
.oz-badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; font-size: .74rem; font-weight: 700; background: var(--bg-surface-2); color: var(--text-subtle); white-space: nowrap; }
.oz-badge.ok { background: rgba(5,150,105,.12); color: var(--oz-up); } .oz-badge.warn { background: var(--oz-warn-soft); color: var(--oz-warn); }

/* metrik sekmeleri */
.oz-main { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.oz-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--border); }
.oz-tab { text-align: left; border: 0; background: transparent; padding: 16px 20px 14px; display: flex; flex-direction: column; gap: 2px; position: relative; border-right: 1px solid var(--border); min-width: 0; }
.oz-tab:last-child { border-right: 0; }
.oz-tab:hover { background: var(--bg-surface-2); }
.oz-tab.on { background: var(--oz-1-soft); }
.oz-tab.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--oz-1); }
.oz-tab .lbl { font-size: .8rem; font-weight: 600; color: var(--text-subtle); }
.oz-tab.on .lbl { color: var(--oz-1); }
.oz-tab .val { font-size: 1.9rem; font-weight: 800; color: var(--text-heading); letter-spacing: -.02em; line-height: 1.15; }
.oz-tab .trow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.oz-spark { width: 72px; height: 24px; flex: none; }
.oz-spark .line { fill: none; stroke: var(--oz-1); stroke-width: 1.6; }
.oz-spark .fill { fill: var(--oz-1-soft); }
@media (max-width: 767px) { .oz-tabs { grid-template-columns: repeat(2, 1fr); } .oz-tab:nth-child(2) { border-right: 0; } .oz-tab:nth-child(-n+2) { border-bottom: 1px solid var(--border); } .oz-tab .val { font-size: 1.5rem; } }
.oz-delta { display: inline-flex; align-items: center; gap: 4px; font-size: .76rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.oz-delta.up { color: var(--oz-up); background: rgba(5,150,105,.1); } .oz-delta.down { color: var(--oz-down); background: rgba(220,38,38,.1); }
.oz-delta.flat, .oz-delta.muted { color: var(--text-subtle); background: var(--bg-surface-2); font-weight: 600; }
.oz-legend { display: flex; gap: 16px; padding: 14px 20px 0; font-size: .78rem; color: var(--text-subtle); }
.oz .sw { display: inline-block; width: 12px; height: 3px; border-radius: 2px; vertical-align: middle; margin-right: 6px; }
.oz .sw.cur { background: var(--oz-1); } .oz .sw.prev { background: repeating-linear-gradient(90deg, #94a3b8 0 4px, transparent 4px 7px); }

/* ana grafik */
.oz-chart { padding: 8px 20px 6px 56px; flex: 1; display: flex; flex-direction: column; }
.oz-chart .plot { position: relative; flex: 1; min-height: 250px; }
.oz-chart svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.oz-chart .grid { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--border); }
.oz-chart .grid:nth-child(5) { border-top-style: solid; }
.oz-chart .grid span { position: absolute; left: -44px; top: -9px; width: 38px; text-align: right; font-size: .72rem; color: var(--text-subtle); }
.oz-chart .pre { position: absolute; top: 0; bottom: 0; left: 0; background: repeating-linear-gradient(135deg, transparent 0 6px, var(--bg-surface-2) 6px 8px); border-right: 1px dashed var(--border-strong); }
.oz-chart .pre span { position: absolute; top: 8px; right: 8px; font-size: .72rem; color: var(--text-subtle); background: var(--bg-surface); padding: 1px 8px; border-radius: 999px; border: 1px solid var(--border); white-space: nowrap; }
.oz-chart path.cur { fill: none; stroke: var(--oz-1); stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.oz-chart path.prev { fill: none; stroke: #94a3b8; stroke-width: 1.6; stroke-dasharray: 5 4; }
.oz-chart .g1 { stop-color: var(--oz-1); stop-opacity: .22; } .oz-chart .g2 { stop-color: var(--oz-1); stop-opacity: 0; }
.oz-chart .cols { position: absolute; inset: 0; display: flex; }
.oz-chart .ccol { flex: 1; position: relative; }
.oz-chart .guide { position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid var(--border-strong); opacity: 0; }
.oz-chart .dot { position: absolute; left: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--bg-surface); border: 2.5px solid var(--oz-1); opacity: 0; }
.oz-chart .tip { position: absolute; top: 4px; left: calc(50% + 12px); z-index: 5; min-width: 170px; background: var(--text-heading); color: var(--bg-surface); border-radius: 10px; padding: 8px 11px; font-size: .78rem; box-shadow: 0 8px 24px rgba(0,0,0,.18); opacity: 0; pointer-events: none; transition: opacity .12s; }
.oz-chart .tip.left { left: auto; right: calc(50% + 12px); }
.oz-chart .tip .t-date { font-weight: 700; margin-bottom: 4px; white-space: nowrap; }
.oz-chart .tip .t-row { display: flex; align-items: center; gap: 2px; white-space: nowrap; } .oz-chart .tip .t-row b { margin-left: auto; padding-left: 12px; }
.oz-chart .tip .muted { opacity: .7; }
.oz-chart .ccol:hover .guide, .oz-chart .ccol:hover .dot, .oz-chart .ccol:hover .tip { opacity: 1; }
.oz-chart .xaxis { position: relative; height: 22px; margin-top: 6px; }
.oz-chart .xaxis span { position: absolute; transform: translateX(-50%); font-size: .72rem; color: var(--text-subtle); white-space: nowrap; }
.oz-substats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.oz-substats > div { padding: 12px 20px; display: flex; flex-direction: column; gap: 2px; border-right: 1px solid var(--border); }
.oz-substats > div:last-child { border-right: 0; }
.oz-substats span { font-size: .76rem; color: var(--text-subtle); font-weight: 600; }
.oz-substats b { font-size: 1.15rem; color: var(--text-heading); }
.oz-substats small { color: var(--text-subtle); font-size: .72rem; }
.oz-substats .oz-delta { align-self: flex-start; }
@media (max-width: 767px) { .oz-substats { grid-template-columns: repeat(2, 1fr); } .oz-chart { padding-left: 48px; } .oz-chart .plot { height: 200px; } }

/* sağ sütun */
.oz-rail, .oz-stack { display: flex; flex-direction: column; gap: 18px; }
.oz-stack > .grow { flex: 1; }
.oz-rail > .oz-live { flex: 1; }
.oz-live .pulse { width: 9px; height: 9px; border-radius: 50%; background: var(--text-subtle); display: inline-block; }
.oz-live .pulse.on { background: #10b981; box-shadow: 0 0 0 0 rgba(16,185,129,.6); animation: ozpulse 1.8s infinite; }
@keyframes ozpulse { 70% { box-shadow: 0 0 0 9px rgba(16,185,129,0); } 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); } }
.oz-live .live-top { display: flex; align-items: center; gap: 18px; }
.oz-live .big { font-size: 3rem; font-weight: 800; line-height: 1; color: var(--text-heading); letter-spacing: -.03em; }
.oz-live .side { font-size: .82rem; color: var(--text-subtle); display: grid; gap: 3px; } .oz-live .side b { color: var(--text-heading); }
.oz-live .minutes { display: flex; align-items: flex-end; gap: 2px; height: 44px; margin-top: 16px; }
.oz-live .minutes span { flex: 1; background: var(--bg-surface-2); border-radius: 2px; }
.oz-live .minutes span.on { background: var(--oz-1); }
.oz-live .minutes-axis { display: flex; justify-content: space-between; font-size: .7rem; color: var(--text-subtle); margin-top: 4px; }
.oz-live .feed { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 6px; max-height: 236px; overflow-y: auto; scrollbar-width: thin; }
.oz-live .ev { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: .84rem; }
.oz-live .ev:last-child { border-bottom: 0; }
.oz-live .ev .ic { width: 28px; height: 28px; border-radius: 8px; background: var(--bg-surface-2); display: grid; place-items: center; font-size: .8rem; }
.oz-live .ev .what { color: var(--text-heading); font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oz-live .ev .what small { display: block; color: var(--text-subtle); font-weight: 400; font-size: .74rem; }
.oz-live .ev .what small i { font-size: .7rem; }
.oz-live .ev .when { font-size: .74rem; color: var(--text-subtle); white-space: nowrap; }
.oz-todo .allclear { display: flex; gap: 12px; align-items: center; padding: 6px 0; }
.oz-todo .allclear > i { font-size: 1.6rem; color: var(--oz-up); }
.oz-todo .allclear b { display: block; color: var(--text-heading); } .oz-todo .allclear small { color: var(--text-subtle); }
.oz-todo .todo { display: grid; grid-template-columns: 30px 1fr auto 14px; gap: 10px; align-items: center; padding: 9px 10px; margin: 0 -10px; border-radius: 10px; color: var(--text-heading); text-decoration: none; font-size: .88rem; }
.oz-todo .todo:hover { background: var(--bg-surface-2); }
.oz-todo .todo > i:first-child { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--oz-warn-soft); color: var(--oz-warn); }
.oz-todo .todo b { color: var(--oz-warn); } .oz-todo .todo .go { color: var(--text-subtle); font-size: .7rem; }

/* kaynaklar, halka */
.oz-split { display: flex; gap: 20px; align-items: center; }
.oz-split.col { flex-direction: column; }
@media (max-width: 575px) { .oz-split { flex-direction: column; } }
.oz-donut { position: relative; width: var(--sz); height: var(--sz); flex: none; }
.oz-donut svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.oz-donut .track { fill: none; stroke: var(--bg-surface-2); stroke-width: 12; }
.oz-donut .seg { fill: none; stroke-width: 12; transition: stroke-width .15s; }
.oz-donut .seg:hover { stroke-width: 15; }
.oz-donut .center { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; pointer-events: none; }
.oz-donut .center .v { font-size: 1.5rem; font-weight: 800; color: var(--text-heading); line-height: 1; }
.oz-donut .center .l { font-size: .74rem; color: var(--text-subtle); margin-top: 2px; }
.oz-srclist { flex: 1; min-width: 0; width: 100%; }
.oz-srclist .src { display: grid; grid-template-columns: 30px 1fr auto auto; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); }
.oz-srclist .src:last-child { border-bottom: 0; }
.oz-srclist .ico { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: #fff; font-size: .82rem; }
.oz-srclist .nm { font-weight: 600; color: var(--text-heading); font-size: .88rem; min-width: 0; }
.oz-srclist .nm small { display: block; font-weight: 400; color: var(--text-subtle); font-size: .74rem; }
.oz-srclist .sh { color: var(--text-subtle); font-size: .8rem; } .oz-srclist b { color: var(--text-heading); min-width: 34px; text-align: right; }
.oz-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.oz-tag { font-size: .76rem; padding: 3px 9px; border-radius: 999px; background: var(--bg-surface-2); color: var(--text-subtle); } .oz-tag b { color: var(--text-heading); margin-left: 4px; }

/* harita */
.oz-mapwrap { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 18px; align-items: center; }
@media (max-width: 991px) { .oz-mapwrap { grid-template-columns: 1fr; } }
.oz-map svg { width: 100%; height: auto; display: block; }
.oz-map .il { fill: var(--oz-empty-fill); stroke: var(--bg-surface); stroke-width: .8; cursor: pointer; transition: fill .15s, opacity .15s; }
.oz-map .il.has { fill: color-mix(in srgb, var(--oz-1) calc(var(--t) * 100%), var(--oz-empty-fill)); }
.oz-map .il:hover { opacity: .8; stroke: var(--text-heading); stroke-width: 1.2; }
.oz-map .il.sel { fill: var(--oz-gold); stroke: var(--text-heading); stroke-width: 1.4; }
.oz-map .legend { display: flex; align-items: center; gap: 8px; font-size: .72rem; color: var(--text-subtle); margin-top: 8px; }
.oz-map .legend .ramp { width: 110px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, color-mix(in srgb, var(--oz-1) 22%, var(--oz-empty-fill)), var(--oz-1)); }
.oz-map .legend .sw.none { width: 10px; height: 10px; background: var(--oz-empty-fill); border: 1px solid var(--border); }
.oz-maplist .mrow { display: grid; grid-template-columns: 82px 1fr 34px; gap: 8px; align-items: center; width: 100%; border: 0; background: transparent; padding: 6px 8px; border-radius: 8px; font-size: .84rem; text-align: left; margin: 0; }
.oz-maplist .mrow:hover, .oz-maplist .mrow.sel { background: var(--bg-surface-2); }
.oz-maplist .nm { color: var(--text-heading); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oz-maplist .bar, .oz-hbar .bar { height: 7px; border-radius: 4px; background: var(--bg-surface-2); overflow: hidden; }
.oz-maplist .bar span, .oz-hbar .bar span { display: block; height: 100%; background: var(--oz-1); border-radius: 4px; }
.oz-maplist b { text-align: right; color: var(--text-heading); }

/* huni */
.oz-funnels { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.oz-act { display: grid; grid-template-columns: 110px 1fr; gap: 18px; align-items: center; }
.oz-act .act-base { text-align: center; padding: 16px 8px; border-radius: 14px; background: var(--oz-1-soft); }
.oz-act .act-base b { display: block; font-size: 2rem; font-weight: 800; color: var(--oz-1); line-height: 1; }
.oz-act .act-base span { font-size: .78rem; color: var(--text-subtle); }
.oz-act .act { display: grid; grid-template-columns: 130px 1fr 44px 28px; gap: 10px; align-items: center; padding: 5px 0; font-size: .86rem; }
.oz-act .act .nm { color: var(--text-heading); white-space: nowrap; }
.oz-act .act .bar { height: 8px; border-radius: 4px; background: var(--bg-surface-2); overflow: hidden; }
.oz-act .act .bar span { display: block; height: 100%; border-radius: 4px; background: var(--oz-1); }
.oz-act .act b { text-align: right; color: var(--text-heading); } .oz-act .act small { text-align: right; color: var(--text-subtle); }
@media (max-width: 991px) { .oz-funnels { grid-template-columns: 1fr; } }
.oz .fn-title { font-weight: 700; color: var(--text-heading); font-size: .9rem; margin-bottom: 10px; } .oz .fn-title small { font-weight: 400; color: var(--text-subtle); margin-left: 6px; }
.oz-fn { display: flex; align-items: stretch; }
.oz-fn .st { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.oz-fn .num { font-size: 1.35rem; font-weight: 800; color: var(--text-heading); }
.oz-fn .lab { font-size: .76rem; color: var(--text-subtle); min-height: 2.2em; line-height: 1.2; }
.oz-fn .fbar { height: 64px; background: var(--bg-surface-2); border-radius: 8px; display: flex; align-items: flex-end; overflow: hidden; margin-top: 6px; }
.oz-fn .fbar span { display: block; width: 100%; background: linear-gradient(180deg, var(--oz-1), color-mix(in srgb, var(--oz-1) 70%, #000)); border-radius: 8px 8px 0 0; }
.oz-fn .arrow { flex: none; width: 52px; display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 8px; gap: 2px; font-size: .74rem; font-weight: 700; color: var(--text-subtle); }
.oz-fn .arrow i { color: var(--border-strong); margin-bottom: 2px; }
.oz-fn .arrow.low { color: var(--oz-down); }

/* ısı haritası */
.oz-heat { display: grid; grid-template-columns: 40px repeat(24, minmax(0, 1fr)); gap: 4px; align-items: center; }
.oz-heat .dl { font-size: .74rem; color: var(--text-subtle); font-weight: 600; }
.oz-heat .cell { height: 26px; border-radius: 5px; background: color-mix(in srgb, var(--oz-1) calc(var(--t) * 100%), var(--bg-surface-2)); }
.oz-heat .hl { font-size: .66rem; color: var(--text-subtle); text-align: left; }
.oz-devs { display: grid; gap: 8px; width: 100%; }
.oz-devs > div { display: flex; align-items: center; gap: 8px; font-size: .88rem; color: var(--text-heading); }
.oz-devs .sw { width: 10px !important; height: 10px !important; border-radius: 3px !important; margin: 0 !important; }
.oz-devs i { color: var(--text-subtle); width: 16px; } .oz-devs b { margin-left: auto; }

/* listeler, tablolar */
.oz-hbar { display: grid; grid-template-columns: minmax(120px, 1.3fr) 2fr 44px; gap: 10px; align-items: center; padding: 6px 0; font-size: .86rem; }
.oz-hbar .nm { color: var(--text-heading); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oz-hbar b { text-align: right; color: var(--text-heading); }
a.oz-line { color: var(--text-heading) !important; }
.oz-line { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .86rem; color: var(--text-heading); text-decoration: none; }
.oz-line span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .oz-line b { color: var(--text-subtle); font-weight: 600; }
a.oz-line:hover span { color: var(--oz-1); }
.oz-line.warn b { color: var(--oz-warn); }
.oz-two { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 575px) { .oz-two { grid-template-columns: 1fr; } }
.oz-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.oz-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-subtle); font-weight: 700; padding: 0 8px 8px; text-align: right; border-bottom: 1px solid var(--border); }
.oz-table th:first-child, .oz-table td:first-child { text-align: left; padding-left: 0; }
.oz-table td { padding: 9px 8px; text-align: right; border-bottom: 1px solid var(--border); color: var(--text-heading); }
.oz-table tr:last-child td { border-bottom: 0; }
.oz-table td a { color: var(--text-heading) !important; font-weight: 600; text-decoration: none; } .oz-table td a:hover { color: var(--oz-1); }
.oz-table td small { color: var(--text-subtle); margin-left: 6px; }
.oz-table .inbar { display: block; height: 3px; background: var(--oz-1); opacity: .5; border-radius: 2px; margin-top: 5px; }
.oz-table code, .oz-howto code { background: var(--bg-surface-2); color: var(--oz-1); padding: 2px 7px; border-radius: 6px; font-size: .8rem; }
.oz-howto { display: grid; gap: 10px; font-size: .88rem; color: var(--text-body); }
.oz-howto .step { display: flex; gap: 10px; align-items: flex-start; }
.oz-howto .step span { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--oz-1-soft); color: var(--oz-1); font-weight: 800; font-size: .76rem; display: grid; place-items: center; }
.oz-howto > code { justify-self: start; font-size: .9rem; padding: 6px 12px; margin-left: 32px; }

/* platform */
.oz-platform { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 991px) { .oz-platform { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .oz-platform { grid-template-columns: 1fr; gap: 10px; } .oz-platform .pk { padding: 12px 14px; } }   /* PANEL-MOBILE-001 */
.oz-platform .pk { display: flex; gap: 14px; align-items: center; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 16px 18px; box-shadow: var(--oz-card-shadow); }
.oz-platform .pk > i { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(240,180,41,.14); color: #b7791f; font-size: 1.05rem; flex: none; }
.oz-platform b { display: block; font-size: 1.45rem; font-weight: 800; color: var(--text-heading); line-height: 1.1; }
.oz-platform span { font-size: .84rem; color: var(--text-heading); font-weight: 600; }
.oz-platform small { display: block; color: var(--text-subtle); font-size: .74rem; }
.oz-person, .oz-person:hover, .oz-person .nm { color: var(--text-heading) !important; }
.oz-person { display: grid; grid-template-columns: 38px 1fr auto auto; gap: 12px; align-items: center; padding: 8px 10px; margin: 0 -10px; border-radius: 10px; text-decoration: none; color: var(--text-heading); }
.oz-person:hover { background: var(--bg-surface-2); }
.oz-person .av { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--oz-1-soft); color: var(--oz-1); font-weight: 800; font-size: .82rem; }
.oz-person .av.sq { border-radius: 10px; background: var(--bg-surface-2); color: var(--text-subtle); font-size: .74rem; }
.oz-person .nm { font-weight: 600; font-size: .88rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oz-person .nm small { display: block; color: var(--text-subtle); font-weight: 400; font-size: .76rem; }
.oz-person .when { font-size: .76rem; color: var(--text-subtle); white-space: nowrap; }

/* ══ SELLER-INSIGHTS-001: Firma Paneli (.sp) ═════════════════════════════════════════════ */
.sp { margin: 18px 0 40px; }
.oz-badge.bad { background: rgba(220,38,38,.1); color: var(--oz-down); }
.oz-badge.gift { background: rgba(240,180,41,.16); color: #b7791f; }
a.oz-badge.star, a.oz-badge.star:hover { background: rgba(240,180,41,.16); color: #b7791f !important; text-decoration: none; }
.oz-btn.sm { height: 30px; padding: 0 11px; font-size: .8rem; }
.sp .ok { color: var(--oz-up); } .sp .bad { color: var(--oz-down); }
.sp .nowrap { white-space: nowrap; }
.sp-ic { color: var(--oz-1); font-size: .9rem; }
.sp-center { margin: 0 auto; display: flex; width: max-content; }
.sp-link { border: 0; background: none; padding: 0; color: var(--oz-1); font-weight: 700; font-size: inherit; }
.sp-link:hover { text-decoration: underline; }

/* başlıktaki piyasa şeridi */
.sp-fx { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-surface); font-size: .82rem; }
.sp-fx small { color: var(--text-subtle); font-weight: 600; font-size: .7rem; }
.sp-fx b { color: var(--text-heading); }
.sp-fx em { font-style: normal; font-size: .72rem; font-weight: 700; } .sp-fx em.up { color: var(--oz-up); } .sp-fx em.down { color: var(--oz-down); }

/* para şeridi */
.sp-kpis { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr; gap: 18px; }
@media (max-width: 1199px) { .sp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .sp-kpis { grid-template-columns: 1fr; } }
.sp-kpi { display: flex; gap: 14px; align-items: center; min-width: 0; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 16px 18px; box-shadow: var(--oz-card-shadow); text-decoration: none; color: var(--text-heading); }
a.sp-kpi, a.sp-kpi:hover { color: var(--text-heading) !important; }
a.sp-kpi:hover { border-color: var(--border-strong); }
.sp-kpi .lbl { display: block; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-subtle); }
.sp-kpi b { display: block; font-size: 1.45rem; font-weight: 800; color: var(--text-heading); line-height: 1.2; letter-spacing: -.01em; }
.sp-kpi small { display: block; color: var(--text-subtle); font-size: .78rem; margin-top: 2px; }
.sp-kpi small b.inl { display: inline; font-size: .82rem; }
.sp-kpi > .ic { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--oz-1-soft); color: var(--oz-1); font-size: 1.05rem; }
.sp-kpi.sp-hero { flex-direction: column; align-items: flex-start; gap: 4px; background: linear-gradient(135deg, var(--oz-1-soft), transparent 70%), var(--bg-surface); border-color: color-mix(in srgb, var(--oz-1) 35%, var(--border)); }
.sp-kpi.sp-hero .big { font-size: clamp(1.9rem, 2.6vw, 2.5rem); color: var(--oz-1); letter-spacing: -.03em; }
.sp-kpi.sp-hero .meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .84rem; color: var(--text-subtle); }
.sp-kpi.sp-hero .meta small { margin: 0; }
.sp-kpi.sp-hero .gift { font-size: .82rem; color: #b7791f; } .sp-kpi.sp-hero .gift b { display: inline; font-size: .9rem; color: #b7791f; }
.sp-ring { --p: 0; width: 64px; height: 64px; flex: 0 0 64px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .82rem; color: var(--text-heading);
    background: radial-gradient(closest-side, var(--bg-surface) 78%, transparent 80% 100%), conic-gradient(var(--oz-1) calc(var(--p) * 1%), var(--bg-surface-2) 0); }
.sp-ring.sm { width: 54px; height: 54px; flex-basis: 54px; font-size: .76rem; }
.sp-target { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.sp-target input { width: 150px; height: 30px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface-2); color: var(--text-heading); padding: 0 8px; font-size: .84rem; }
.sp-target .oz-btn { height: 30px; padding: 0 10px; font-size: .78rem; }

/* grafik boş durumu */
.sp-chart-empty { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; padding: 24px 20px 28px; min-height: 250px; }
.sp-chart-empty .oz-empty { min-height: 0; max-width: 460px; }

/* sağ sütun */
.sp-todo { flex: 1; }
.sp-todo .todo.danger > i:first-child { background: rgba(220,38,38,.1); color: var(--oz-down); }
.sp-todo .todo.info > i:first-child { background: var(--oz-1-soft); color: var(--oz-1); }
.sp-todo .todo.info b { color: var(--oz-1); }
.sp-setup-top { display: flex; gap: 12px; align-items: center; margin-bottom: 8px; }
.sp-setup-top small { color: var(--text-subtle); font-size: .78rem; line-height: 1.4; }
.sp-setup .step { display: grid; grid-template-columns: 22px 1fr 14px; gap: 8px; align-items: center; padding: 7px 8px; margin: 0 -8px; border-radius: 9px; font-size: .86rem; color: var(--text-heading) !important; text-decoration: none; }
.sp-setup a.step:hover { background: var(--bg-surface-2); }
.sp-setup .step > i:first-child { color: var(--text-subtle); }
.sp-setup .step.done { color: var(--text-subtle) !important; } .sp-setup .step.done > i { color: var(--oz-up); }
.sp-setup .go, .sp-row .go { color: var(--text-subtle); font-size: .7rem; }
.sp-upgrade { display: flex; flex-direction: column; gap: 3px; text-decoration: none; background: linear-gradient(135deg, rgba(240,180,41,.18), transparent 75%), var(--bg-surface); border-color: rgba(240,180,41,.45); }
a.sp-upgrade, a.sp-upgrade:hover { color: var(--text-heading) !important; }
.sp-upgrade .lbl { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #b7791f; display: flex; gap: 6px; align-items: center; }
.sp-upgrade b { font-size: 1.3rem; font-weight: 800; color: var(--text-heading); }
.sp-upgrade small { color: var(--text-subtle); font-size: .78rem; line-height: 1.45; }
.sp-upgrade .go { font-size: .82rem; font-weight: 700; color: #b7791f; margin-top: 4px; }

/* ilan tablosu */
.sp-scroll { overflow-x: auto; scrollbar-width: thin; }
.sp-scroll .oz-table { min-width: 560px; }
.sp-live { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #ef4444; animation: ozpulse 1.8s infinite; box-shadow: 0 0 0 0 rgba(239,68,68,.6); }
.sp-sub { display: block; font-size: .76rem; color: var(--text-subtle); margin-top: 3px; }
.sp-sub .oz-badge { font-size: .7rem; padding: 1px 7px; }
.sp-st { font-size: .45rem; vertical-align: 2px; margin-right: 5px; }
.sp-tip { display: inline-flex; align-items: center; gap: 5px; margin: 4px 6px 0 0; padding: 1px 8px; border-radius: 999px; font-size: .72rem; background: var(--oz-warn-soft); color: var(--oz-warn); }
a.sp-share { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-left: 6px; border-radius: 6px; background: rgba(37,211,102,.14); color: #1da851 !important; font-size: .8rem; vertical-align: 1px; }
a.sp-share:hover { background: #25d366; color: #fff !important; }

/* alıcı tarafı, fırsatlar */
.sp-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 8px; }
.sp-duo > div { padding: 10px 12px; border-radius: 12px; background: var(--bg-surface-2); }
.sp-duo b { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1.1; color: var(--text-heading); }
.sp-duo span { font-size: .78rem; color: var(--text-subtle); }
.sp-duo .ok b { color: var(--oz-up); } .sp-duo .bad b { color: var(--oz-down); }
.sp-row { display: grid; grid-template-columns: auto 1fr 14px; gap: 10px; align-items: center; padding: 8px; margin: 0 -8px; border-radius: 10px; text-decoration: none; color: var(--text-heading) !important; font-size: .86rem; }
.sp-row.static { grid-template-columns: 1fr auto; }
a.sp-row:hover { background: var(--bg-surface-2); }
.sp-row .nm { min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.sp-row .nm small { display: block; font-weight: 400; color: var(--text-subtle); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-mini { margin: 4px 0 8px; font-size: .8rem; padding: 8px 10px; }

/* kilitli piyasa verisi */
.sp-locked-card { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; background: linear-gradient(135deg, var(--oz-1-soft), transparent 60%), var(--bg-surface); }
.sp-locked-card h3 { font-size: 1.05rem; font-weight: 800; color: var(--text-heading); margin: 0 0 8px; }
.sp-locked-card > .min-w-0 { flex: 1 1 380px; }
.sp-lock-ic { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--bg-surface-2); color: var(--oz-1); font-size: 1.3rem; flex: none; }
.sp-lock-list { display: grid; gap: 5px; font-size: .88rem; color: var(--text-body); }
.sp-lock-list i { color: var(--oz-1); width: 18px; margin-right: 6px; }
.sp-locked-card small { display: block; color: var(--text-subtle); margin-top: 8px; font-size: .8rem; }

/* 12 aylık satış çubukları */
.sp-bars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; align-items: end; height: 220px; padding-top: 6px; }
.sp-bars .mc { display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; min-width: 0; }
.sp-bars .v { font-size: .68rem; color: var(--text-subtle); white-space: nowrap; min-height: 1em; }
.sp-bars .b { flex: 1; width: 100%; max-width: 46px; display: flex; align-items: flex-end; background: var(--bg-surface-2); border-radius: 8px; overflow: hidden; }
.sp-bars .b span { display: block; width: 100%; background: color-mix(in srgb, var(--oz-1) 55%, var(--bg-surface-2)); border-radius: 8px 8px 0 0; }
.sp-bars .mc.cur .b span { background: var(--oz-1); }
.sp-bars .m { font-size: .72rem; color: var(--text-subtle); }
.oz-platform a.pk, .oz-platform a.pk:hover { color: var(--text-heading) !important; text-decoration: none; }
.oz-platform a.pk:hover { border-color: var(--border-strong); }

/* yönetici Özet: bölüm başlıkları ve pazar yeri */
.oz-sechd { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin: 6px 0 12px; }
.oz-sechd h2 { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--text-heading); letter-spacing: -.01em; }
.oz-sechd small { color: var(--text-subtle); font-size: .8rem; }
.oz-market { margin-bottom: 26px; }
.oz-market .oz-platform span { display: inline-flex; gap: 6px; align-items: center; }
.oz-market .oz-platform .oz-spark, .oz-market .oz-platform svg { display: block; margin-top: 6px; max-width: 120px; }
.oz-market .nowrap { white-space: nowrap; }
.oz-market .oz-line b .oz-badge { font-size: .7rem; padding: 1px 7px; }

/* PANEL-SEARCH-001: Özet arama kutusu */
.oz-find { position: relative; display: flex; align-items: center; gap: 8px; height: 36px; width: 230px; padding: 0 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface); transition: width .2s ease, border-color .2s ease, box-shadow .2s ease; }
.oz-find:focus-within { width: 320px; border-color: var(--oz-1); box-shadow: 0 0 0 3px var(--oz-1-soft); }
.oz-find > i { color: var(--text-subtle); font-size: .8rem; }
.oz-find input, .oz-find input:focus { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; box-shadow: none; background: transparent; color: var(--text-heading); font-size: .86rem; padding: 0; }
.oz-find input::placeholder { color: var(--text-subtle); }
.oz-find input::-webkit-search-cancel-button { display: none; }
.oz-find kbd { font: 600 .66rem/1 inherit; padding: 3px 5px; border-radius: 5px; border: 1px solid var(--border); background: var(--bg-surface-2); color: var(--text-subtle); box-shadow: none; white-space: nowrap; }
.oz-find:focus-within kbd { display: none; }
.oz-find-list { position: absolute; top: calc(100% + 6px); left: 0; width: max(100%, 320px); z-index: 1060; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 14px 34px rgba(15,23,42,.18); padding: 6px; max-height: 380px; overflow: auto; }
.oz-find-list .it { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; padding: 8px 10px; border: 0; border-radius: 8px; background: none; text-align: left; color: var(--text-heading); font-size: .86rem; }
.oz-find-list .it:hover, .oz-find-list .it.on { background: var(--oz-1-soft); }
.oz-find-list .it i { color: var(--text-subtle); font-size: .72rem; }
.oz-find-list .it.on i { color: var(--oz-1); }
.oz-find-list .it .t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oz-find-list .it small { color: var(--text-subtle); font-size: .72rem; white-space: nowrap; }
.oz-find-list .none { padding: 10px; color: var(--text-subtle); font-size: .84rem; }
@media (max-width: 767px) { .oz-find, .oz-find:focus-within { width: 100%; } .oz-find kbd { display: none; } }
.oz-flash { animation: ozflash 1.7s ease; }
@keyframes ozflash { 0%, 45% { box-shadow: 0 0 0 3px var(--oz-1); } 100% { box-shadow: var(--oz-card-shadow, none); } }

/* PRESENCE-001: canlı kartta çevrimiçi üyeler */
.oz-live .live-members { display: flex; align-items: center; gap: 8px; width: 100%; margin: 10px 0 4px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface-2); color: var(--text-heading); font-size: .86rem; text-align: left; }
.oz-live .live-members:hover { border-color: var(--oz-1); }
.oz-live .live-members > i:first-child { color: var(--oz-1); }
.oz-live .live-members span { flex: 1; }
.oz-live .live-members .chev { font-size: .7rem; color: var(--text-subtle); transition: transform .2s; }
.oz-live .live-members.open .chev { transform: rotate(180deg); }
.oz-live .live-online { max-height: 320px; overflow: auto; margin-bottom: 8px; }

/* ══ INSIGHTS-003: Derin analiz (.da) — nabız, bulgular, sekmeler. Grafikler tek renk (vurgu) + gri;
   durum renkleri yalnızca bulgu/sağlık için, her zaman simge + yazıyla. ══════════════════════════════ */
.da { --da-bad: #dc2626; --da-warn: #b45309; --da-good: #047857; --da-info: var(--oz-1); }
[data-theme="dark"] .da, [data-bs-theme="dark"] .da, .dark .da, .theme-dark .da, .dark-mode .da { --da-bad: #f87171; --da-warn: #fbbf24; --da-good: #34d399; }
.da-busy .da-pulse, .da-busy .da-finds, .da-busy .da-body { opacity: .55; transition: opacity .2s; }

/* nabız */
.da-pulse { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
@media (max-width: 1399px) { .da-pulse { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .da-pulse { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.da-tile { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 16px 18px 14px; border-radius: 16px; border: 1px solid var(--border); background: var(--bg-surface); box-shadow: var(--oz-card-shadow); overflow: hidden; }
.da-tile::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--oz-1), transparent 85%); }
.da-tile .lbl { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-subtle); }
.da-tile .trow { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; min-width: 0; }
.da-tile .val { font-size: 1.85rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.05; color: var(--text-heading); white-space: nowrap; }
.da-tile .oz-spark { width: 64px; height: 26px; }
.da-tile .foot { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; margin-top: auto; }
.da-tile .foot small { color: var(--text-subtle); font-size: .72rem; line-height: 1.35; }
@media (max-width: 767px) { .da-tile { padding: 12px 14px; } .da-tile .val { font-size: 1.4rem; } .da-tile .oz-spark { width: 46px; } }

/* bulgular */
.da-sechd { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin: 4px 0 12px; }
.da-sechd h2 { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--text-heading); display: flex; gap: 8px; align-items: center; letter-spacing: -.01em; }
.da-sechd h2 i { color: var(--oz-1); }
.da-sechd .oz-muted { font-size: .8rem; }
.da-finds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 28px; }
@media (max-width: 1199px) { .da-finds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .da-finds { grid-template-columns: 1fr; gap: 10px; } }
.da-find { --t: var(--da-info); display: flex; gap: 12px; min-width: 0; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--border); border-left: 3px solid var(--t);
    background: linear-gradient(135deg, color-mix(in srgb, var(--t) 8%, transparent), transparent 55%), var(--bg-surface); box-shadow: var(--oz-card-shadow); }
.da-find.bad { --t: var(--da-bad); } .da-find.warn { --t: var(--da-warn); } .da-find.good { --t: var(--da-good); }
.da-find .ic { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: color-mix(in srgb, var(--t) 14%, transparent); color: var(--t); font-size: .95rem; }
.da-find .bd { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.da-find .tone { display: inline-flex; align-items: center; gap: 5px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--t); }
.da-find b { font-size: .95rem; color: var(--text-heading); line-height: 1.3; }
.da-find p { margin: 0; font-size: .84rem; color: var(--text-body); line-height: 1.5; }
.da-find .go { align-self: flex-start; margin-top: 4px; border: 0; background: none; padding: 0; font-size: .78rem; font-weight: 700; color: var(--oz-1); display: inline-flex; gap: 6px; align-items: center; }
.da-find .go:hover { text-decoration: underline; }
.da-find .go i { font-size: .66rem; }

/* sekmeler */
.da-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 4px; margin: 0 0 18px; border-radius: 14px; background: var(--bg-surface-2); border: 1px solid var(--border); }
.da-tabs::-webkit-scrollbar { display: none; }
.da-tabs button { flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; background: transparent; padding: 9px 14px; border-radius: 10px; font-size: .86rem; font-weight: 700; color: var(--text-subtle); white-space: nowrap; }
.da-tabs button:hover { color: var(--text-heading); }
.da-tabs button.on { background: var(--bg-surface); color: var(--text-heading); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.da-tabs button.on i { color: var(--oz-1); }
.da-tabs .dot { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; display: inline-grid; place-items: center; font-size: .66rem; font-weight: 800; background: var(--oz-warn-soft); color: var(--da-warn); }
.da-body { min-height: 320px; }
.da-kpis + .oz-grid { margin-top: 0; }

/* sütun grafiği (tek seri) + ipucu */
.da-cols { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); gap: var(--g, 3px); padding-top: 20px; border-bottom: 1px solid var(--border-strong); }
.da-cols .c { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; outline: none; }
.da-cols .c span { position: relative; display: block; width: 100%; max-width: 34px; background: color-mix(in srgb, var(--oz-1) 62%, var(--bg-surface)); border-radius: 4px 4px 0 0; transition: background .15s; }
.da-cols .c:hover span, .da-cols .c:focus span { background: var(--oz-1); }
.da-cols .c em { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 3px; font-style: normal; font-size: .7rem; font-weight: 700; color: var(--text-heading); white-space: nowrap; }
.da-colx { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: var(--g, 3px); margin-top: 6px; }
.da-colx span { font-size: .66rem; color: var(--text-subtle); text-align: center; white-space: nowrap; overflow: visible; }
.da [data-tip] { position: relative; }
.da [data-tip]:hover::after, .da [data-tip]:focus::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); z-index: 30; white-space: nowrap; padding: 5px 9px; border-radius: 8px;
    background: var(--text-heading); color: var(--bg-surface); font-size: .74rem; font-weight: 600; pointer-events: none; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.da-cols .c.l:hover::after, .da-cols .c.l:focus::after { left: 0; transform: none; }
.da-cols .c.r:hover::after, .da-cols .c.r:focus::after { left: auto; right: 0; transform: none; }

/* trafik */
.da-spikes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 6px 20px 18px; }
.da-spikes .oz-subhd { margin: 0 4px 0 0; }
.da-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface-2); font-size: .78rem; color: var(--text-body); }
.da-chip b { color: var(--text-heading); }
.da-chip i { color: var(--text-subtle); }

/* tablolar */
.da-scroll { overflow-x: auto; scrollbar-width: thin; }
.da-scroll .da-table { min-width: 480px; } .da-scroll .da-table.wide { min-width: 760px; }
.da-tall { max-height: 560px; overflow-y: auto; }
.da-table th { white-space: nowrap; position: sticky; top: 0; background: var(--bg-surface); z-index: 1; }
.da-table tr.dim td { color: var(--text-subtle); }
.da-table tbody tr:hover td { background: color-mix(in srgb, var(--oz-1) 5%, transparent); }
.da-src { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.da-src i { width: 16px; text-align: center; color: var(--text-subtle); }
.da-share { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; }
.da-share .bar, .da-meter { display: inline-block; width: 54px; height: 6px; border-radius: 3px; background: var(--bg-surface-2); overflow: hidden; vertical-align: middle; }
.da-meter { width: 46px; margin-right: 6px; }
.da-share .bar span, .da-meter span { display: block; height: 100%; background: var(--oz-1); border-radius: 3px; }
.da-path { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.da-msg { max-width: 380px; text-align: left !important; white-space: normal; word-break: break-word; font-size: .8rem; }
.oz-hbar .bar span.gray { background: var(--border-strong); }
.oz-hbar a.nm { color: var(--text-heading) !important; text-decoration: none; font-weight: 600; } .oz-hbar a.nm:hover { color: var(--oz-1) !important; }
.da-consent { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; font-size: .76rem; color: var(--text-subtle); line-height: 1.45; }
.da-consent i { color: #d69e2e; margin-top: 2px; }

/* davranış */
.da-flow { padding: 10px 0 12px; border-bottom: 1px solid var(--border); }
.da-flow:first-of-type { padding-top: 0; }
.da-flow:last-child { border-bottom: 0; padding-bottom: 0; }
.da-flow .hd { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 4px; font-size: .88rem; }
.da-flow .hd b { color: var(--text-heading); }
.da-flow .oz-hbar { padding: 3px 0; font-size: .82rem; }
.da-flow .oz-hbar .nm i { color: var(--text-subtle); font-size: .7rem; margin-right: 3px; }
.da-journeys th:last-child, .da-journeys td:last-child { text-align: left; }
.da-journeys td { vertical-align: top; }
.da-path-chips { display: flex; flex-wrap: wrap; gap: 4px 0; max-width: 560px; }
.da-path-chips span { position: relative; padding: 1px 8px; border-radius: 6px; background: var(--bg-surface-2); color: var(--text-body); font-size: .74rem; white-space: nowrap; max-width: 190px; overflow: hidden; text-overflow: ellipsis; }
.da-path-chips span + span { margin-left: 14px; overflow: visible; }
.da-path-chips span + span::before { content: "›"; position: absolute; left: -10px; color: var(--text-subtle); }
.da-path-chips .reg { background: var(--oz-1-soft); color: var(--oz-1); font-weight: 700; }
.da-path-chips em { font-style: normal; font-weight: 700; color: var(--text-subtle); margin-left: 4px; font-size: .7rem; }

/* üyeler, pazar, sağlık */
.da-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 18px; }
.da-kpi { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--border); background: var(--bg-surface); box-shadow: var(--oz-card-shadow); min-width: 0; }
.da-kpi b { display: flex; align-items: center; gap: 7px; font-size: 1.4rem; font-weight: 800; color: var(--text-heading); line-height: 1.15; letter-spacing: -.01em; }
.da-kpi b i { font-size: .9rem; }
.da-kpi span { font-size: .76rem; color: var(--text-subtle); line-height: 1.35; }
.da-kpi.bad { border-color: color-mix(in srgb, var(--da-bad) 45%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--da-bad) 7%, transparent), transparent 60%), var(--bg-surface); } .da-kpi.bad b i { color: var(--da-bad); }
.da-kpi.warn { border-color: color-mix(in srgb, var(--da-warn) 45%, var(--border)); background: linear-gradient(135deg, color-mix(in srgb, var(--da-warn) 7%, transparent), transparent 60%), var(--bg-surface); } .da-kpi.warn b i { color: var(--da-warn); }
.da-nudge { padding: 10px 0; border-bottom: 1px solid var(--border); }
.da-nudge:first-of-type { padding-top: 0; }
.da-nudge:last-child { border-bottom: 0; padding-bottom: 0; }
.da-nudge .hd { display: flex; align-items: center; gap: 8px; font-size: .88rem; margin-bottom: 7px; }
.da-nudge .hd i { color: var(--oz-1); width: 16px; text-align: center; }
.da-nudge .hd b { color: var(--text-heading); }
.da-nudge .hd .oz-badge { margin-left: auto; }
.da-nudge .ppl { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 24px; align-items: center; }
.da-nudge .ppl a { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface-2); font-size: .78rem; font-weight: 600; color: var(--text-heading) !important; text-decoration: none; }
.da-nudge .ppl a:hover { border-color: var(--oz-1); }
.da-nudge .ppl a i { color: var(--text-subtle); font-size: .68rem; }
.da-nudge .ppl .oz-muted { font-size: .76rem; }
/* INSIGHTS-EPOSTA-001: kişi çipinin yanında "doğrulama bağlantısı gönder" */
.da-nudge .ppl .da-send { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-left: -3px; padding: 0; border-radius: 50%; border: 1px solid var(--border); background: var(--bg-surface); color: var(--oz-1); font-size: .72rem; cursor: pointer; }
.da-nudge .ppl .da-send:hover:not(:disabled) { border-color: var(--oz-1); }
.da-nudge .ppl .da-send:disabled { opacity: .5; cursor: default; }
.da-nudge .ppl .da-sent { font-size: .74rem; font-weight: 600; margin-left: -2px; }
.da-cohort { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 3px; font-size: .78rem; }
.da-cohort th { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-subtle); text-align: center; padding: 0 4px 4px; white-space: nowrap; }
.da-cohort td { text-align: center; padding: 7px 4px; border-radius: 6px; font-weight: 700; color: var(--text-heading); }
.da-cohort th:nth-child(-n+2), .da-cohort td:nth-child(-n+2) { text-align: left; font-weight: 600; white-space: nowrap; }
.da-cohort td.na { color: var(--text-subtle); font-weight: 400; }
.da-cohort td.hi { color: #fff; }
[data-theme="dark"] .da-cohort td.hi, [data-bs-theme="dark"] .da-cohort td.hi, .dark .da-cohort td.hi, .theme-dark .da-cohort td.hi, .dark-mode .da-cohort td.hi { color: #042f2e; }
.da-meterbig { height: 14px; border-radius: 7px; background: var(--bg-surface-2); overflow: hidden; margin: 4px 0 10px; }
.da-meterbig span { display: block; height: 100%; border-radius: 7px; background: linear-gradient(90deg, #f0b429, #d97706); }
.da-camp { display: flex; align-items: baseline; gap: 8px; }
.da-camp b { font-size: 2rem; font-weight: 800; color: var(--text-heading); letter-spacing: -.02em; line-height: 1.1; }
.da-camp span { color: var(--text-subtle); font-size: .88rem; }
.da-facts { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 7px; font-size: .84rem; color: var(--text-body); }
.da-facts li { display: flex; gap: 9px; align-items: baseline; }
.da-facts i { color: var(--oz-1); width: 16px; text-align: center; flex: none; }
.da-facts b { color: var(--text-heading); }
.da-fresh { list-style: none; padding: 0; margin: 0; }
.da-fresh li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: .85rem; }
.da-fresh li:first-child { padding-top: 0; }
.da-fresh li:last-child { border-bottom: 0; padding-bottom: 0; }
.da-fresh i { color: var(--da-good); }
.da-fresh li.stale i { color: var(--da-warn); }
.da-fresh span { color: var(--text-heading); }
.da-fresh b { color: var(--text-subtle); font-weight: 600; font-size: .8rem; white-space: nowrap; }
.da-fresh em { font-style: normal; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 1px 8px; border-radius: 999px; background: color-mix(in srgb, var(--da-good) 12%, transparent); color: var(--da-good); }
.da-fresh li.stale em { background: var(--oz-warn-soft); color: var(--da-warn); }
@media (max-width: 767px) { .da-tabs button { padding: 8px 11px; font-size: .82rem; } .da-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .da-kpi b { font-size: 1.2rem; } .da-nudge .ppl { padding-left: 0; } .da-spikes { padding: 6px 14px 14px; } }
/* ══ OPP-RADAR-001: fırsat radarı, sektör seçimi, teklif karnesi (BID-CARD-001), davet kartı (INVITE-CARD-001) ══ */
.sp-hd-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.sp-bell { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface-2); color: var(--text-subtle); font-size: .76rem; font-weight: 700; }
.sp-bell.on { background: var(--oz-1-soft); border-color: transparent; color: var(--oz-1); }
.sp-bell:disabled { opacity: .6; }
.sp-radar-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.sp-radar-sum > div { padding: 8px 10px; border-radius: 12px; background: var(--bg-surface-2); min-width: 0; }
.sp-radar-sum b { display: block; font-size: 1.3rem; font-weight: 800; line-height: 1.1; color: var(--text-heading); }
.sp-radar-sum span { font-size: .74rem; color: var(--text-subtle); }
.sp-radar-sum .hl { background: rgba(240,180,41,.16); } .sp-radar-sum .hl b { color: #b7791f; }
.sp-sectors small { display: block; color: var(--text-subtle); font-size: .8rem; margin-bottom: 8px; line-height: 1.45; }
.sp-chips { display: flex; flex-wrap: wrap; gap: 6px; max-height: 236px; overflow-y: auto; padding: 2px; scrollbar-width: thin; }
.sp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-body); font-size: .8rem; font-weight: 600; line-height: 1.2; }
.sp-chip:hover:not(:disabled) { border-color: var(--oz-1); color: var(--oz-1); }
.sp-chip.on, .sp-chip.on:hover { background: var(--oz-1); border-color: var(--oz-1); color: var(--bg-surface); }
.sp-chip:disabled { opacity: .45; }
.sp-sectors-act { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.sp-reach { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: var(--oz-1-soft); font-size: .84rem; color: var(--text-body); max-width: 520px; text-align: left; }
.sp-reach > i { color: var(--oz-1); }
.sp-reach b { color: var(--text-heading); }
.sp-card3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.sp-card3 > div { padding: 8px 10px; border-radius: 12px; border: 1px solid var(--border); min-width: 0; }
.sp-card3 b { display: block; font-size: 1.05rem; font-weight: 800; color: var(--text-heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-card3 b small { font-size: .74rem; font-weight: 700; color: var(--oz-up); }
.sp-card3 span { font-size: .72rem; color: var(--text-subtle); }
.sp-invite { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(260px, 360px); gap: 18px; align-items: center; background: linear-gradient(135deg, var(--oz-1-soft), transparent 65%), var(--bg-surface); }
.sp-invite-ic { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--bg-surface-2); color: var(--oz-1); font-size: 1.3rem; }
.sp-invite h3 { font-size: 1.05rem; font-weight: 800; color: var(--text-heading); margin: 0 0 4px; }
.sp-invite p { margin: 0 0 6px; font-size: .86rem; color: var(--text-body); line-height: 1.5; }
.sp-invite .perks { display: grid; gap: 4px; font-size: .82rem; color: var(--text-body); line-height: 1.45; }
.sp-invite .perks i { color: #b7791f; width: 18px; margin-right: 4px; }
.sp-invite-act { display: grid; gap: 8px; }
.sp-copy { display: flex; gap: 6px; }
.sp-copy input { flex: 1; min-width: 0; height: 30px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface-2); color: var(--text-heading); padding: 0 8px; font-size: .78rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.sp-invite-act .row2 { display: flex; gap: 6px; flex-wrap: wrap; }
@media (max-width: 991px) { .sp-invite { grid-template-columns: auto minmax(0, 1fr); } .sp-invite-act { grid-column: 1 / -1; } }
@media (max-width: 575px) { .sp-invite { grid-template-columns: 1fr; gap: 12px; } .sp-invite-ic { display: none; } .sp-radar-sum b { font-size: 1.1rem; } .sp-card3 b { font-size: .95rem; } }
