/* ==========================================================================
   Biletstore — Site köprüsü
   Tasarım kitini (tokens.css → theme.css → components.css) mevcut Laravel
   önyüzüne bağlar: eski style.css'in global kurallarını nötralize eder ve
   layout seviyesindeki parçaları (üst not, arama katmanı, offcanvas, hesap
   menüsü, çerez bandı, toast, SweetAlert, yukarı çık) token'larla boyar.
   Yükleme sırası: bootstrap → style.css → tokens → theme → components → bb-site
   ========================================================================== */

/* --- Eski global kuralların nötralizasyonu ------------------------------ */
html, body {
  font-family: var(--font-sans);
  color: var(--text-primary);
  background: var(--surface-canvas);
}
a:hover { color: inherit; }
/* style.css'teki global `section { padding: 2rem 0 }` tasarım kitinde yok; boşlukları py-* sınıfları verir */
section { padding: 0; }
.btn { transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-outline-primary:hover { transform: none; box-shadow: none; }
.btn-primary {
  background-color: var(--bs-btn-bg);
  border: 1px solid var(--bs-btn-border-color);
  color: var(--bs-btn-color);
}
.btn-primary:hover { background-color: var(--bs-btn-hover-bg); border-color: var(--bs-btn-hover-border-color); color: var(--bs-btn-hover-color); }
.btn-primary:focus-visible { box-shadow: var(--focus-accent); }
.btn-outline-primary {
  --bs-btn-color: var(--text-accent);
  --bs-btn-border-color: var(--accent-solid);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--accent-solid);
  --bs-btn-hover-border-color: var(--accent-solid);
  --bs-btn-active-bg: var(--accent-hover);
  --bs-btn-active-border-color: var(--accent-hover);
  border-width: 1px;
}
.btn-outline-secondary {
  --bs-btn-color: var(--text-primary);
  --bs-btn-border-color: var(--border-default);
  --bs-btn-hover-color: var(--text-primary);
  --bs-btn-hover-bg: var(--surface-overlay);
  --bs-btn-hover-border-color: var(--border-strong);
}
.text-muted { color: var(--text-muted) !important; }
.text-danger { color: var(--text-accent) !important; }
.bg-white, .bg-light { background-color: var(--surface-raised) !important; }
.border, .border-top, .border-bottom, .border-start, .border-end { border-color: var(--border-subtle) !important; }
.shadow, .shadow-sm, .shadow-lg { box-shadow: none !important; }
hr { border-color: var(--border-subtle); opacity: 1; }

/* Bootstrap bileşenleri: dropdown / modal / offcanvas / accordion / tablo */
.dropdown-menu {
  --bs-dropdown-bg: var(--surface-raised);
  --bs-dropdown-color: var(--text-primary);
  --bs-dropdown-border-color: var(--border-subtle);
  --bs-dropdown-link-color: var(--text-secondary);
  --bs-dropdown-link-hover-color: var(--text-primary);
  --bs-dropdown-link-hover-bg: var(--surface-overlay);
  --bs-dropdown-link-active-color: var(--text-accent);
  --bs-dropdown-link-active-bg: var(--accent-soft);
  --bs-dropdown-divider-bg: var(--border-subtle);
  --bs-dropdown-header-color: var(--text-muted);
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--border-subtle) !important;
  box-shadow: none !important;
  margin-top: .5rem !important;
  animation: none;
}
.dropdown-item { font-size: .875rem; }
.dropdown-item.active, .dropdown-item:active { background: var(--accent-soft); color: var(--text-accent); font-weight: 500; }
.modal-content {
  --bs-modal-bg: var(--surface-raised);
  --bs-modal-color: var(--text-primary);
  --bs-modal-border-color: var(--border-subtle);
  --bs-modal-header-border-color: var(--border-subtle);
  --bs-modal-footer-border-color: var(--border-subtle);
  border-radius: var(--radius-lg);
}
.offcanvas {
  --bs-offcanvas-bg: var(--surface-raised);
  --bs-offcanvas-color: var(--text-primary);
  --bs-offcanvas-border-color: var(--border-subtle);
}
.accordion {
  --bs-accordion-bg: var(--surface-raised);
  --bs-accordion-color: var(--text-primary);
  --bs-accordion-border-color: var(--border-subtle);
  --bs-accordion-btn-color: var(--text-primary);
  --bs-accordion-active-color: var(--text-primary);
  --bs-accordion-active-bg: var(--surface-overlay);
  --bs-accordion-btn-focus-box-shadow: var(--focus-accent);
  --bs-accordion-btn-focus-border-color: var(--accent-solid);
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%239A9AA4' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23DC0B2D' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
}

/* Legacy style.css Bootstrap grid'ini bozuyordu (.col-lg-3 → %50 <1200px, .col-md-4/6 → %100 <768px).
   Genişlik kontrolünü Bootstrap'ın kendi col-* sınıflarına geri ver. */
@media (max-width: 1199.98px) { .row > .col-lg-3 { flex: 0 0 auto; max-width: none; } }
@media (max-width: 767.98px)  { .row > .col-md-4, .row > .col-md-6 { flex: 0 0 auto; max-width: none; } }
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--text-primary);
  --bs-table-border-color: var(--border-subtle);
  --bs-table-striped-bg: var(--surface-overlay);
  --bs-table-hover-bg: var(--surface-overlay);
}
.pagination {
  --bs-pagination-bg: var(--surface-raised);
  --bs-pagination-color: var(--text-secondary);
  --bs-pagination-border-color: var(--border-subtle);
  --bs-pagination-hover-bg: var(--surface-overlay);
  --bs-pagination-hover-color: var(--text-primary);
  --bs-pagination-hover-border-color: var(--border-default);
  --bs-pagination-active-bg: var(--accent-soft);
  --bs-pagination-active-color: var(--text-accent);
  --bs-pagination-active-border-color: var(--accent-solid);
  --bs-pagination-disabled-bg: var(--surface-sunken);
  --bs-pagination-disabled-color: var(--text-muted);
  --bs-pagination-disabled-border-color: var(--border-subtle);
  --bs-pagination-focus-box-shadow: var(--focus-accent);
}
.alert { border-radius: var(--radius-md); border: 1px solid var(--border-subtle); }
.alert-danger  { color: var(--status-error);   background: var(--status-error-soft); }
.alert-success { color: var(--status-success); background: var(--status-success-soft); }
.alert-warning { color: var(--status-warning); background: var(--status-warning-soft); }
.alert-info    { color: var(--status-info);    background: var(--status-info-soft); }
.invalid-feedback { color: var(--status-error); }
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--status-error); }
.form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%239A9AA4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
.form-control:disabled, .form-select:disabled { background: var(--surface-overlay); color: var(--text-muted); }
.input-group-text { background: var(--surface-overlay); border-color: var(--border-subtle); color: var(--text-secondary); }
.nav-tabs { --bs-nav-tabs-border-color: var(--border-subtle); --bs-nav-tabs-link-active-bg: transparent; --bs-nav-tabs-link-active-color: var(--text-primary); --bs-nav-tabs-link-active-border-color: transparent transparent var(--accent-solid); }
.nav-link { color: var(--text-secondary); }
.nav-link:hover, .nav-link:focus { color: var(--text-primary); }
.breadcrumb { --bs-breadcrumb-divider-color: var(--text-muted); --bs-breadcrumb-item-active-color: var(--text-secondary); font-size: .8125rem; }
.breadcrumb a { color: var(--text-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--text-primary); }
.badge.bg-danger { background: var(--accent-solid) !important; color: #fff; }

/* Logo: temaya göre tek dosya */
[data-theme="light"] .bb-logo-dark { display: none !important; }
:root:not([data-theme="light"]) .bb-logo-light { display: none !important; }

/* --- Üst not şeridi ------------------------------------------------------ */
.bb-topnote {
  background: var(--surface-sunken); border-bottom: 1px solid var(--border-subtle);
  color: var(--text-muted); font-size: .71875rem; line-height: 1.5; text-align: center;
  padding: .4375rem 1rem;
}

/* --- Header ek parçaları ------------------------------------------------- */
.bb-header .bb-icon-btn { position: relative; text-decoration: none; }
.bb-header .bb-icon-btn i { font-size: 1rem; line-height: 1; }
.bb-icon-btn.dropdown-toggle::after { display: none; }
.bb-count {
  position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 .3125rem;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent-solid); color: #fff; font-size: .625rem; font-weight: 600;
  border-radius: var(--radius-full); border: 2px solid var(--surface-canvas);
}
.bb-lang {
  display: inline-flex; align-items: center; gap: .375rem; height: 40px; padding: 0 .75rem;
  border: 1px solid var(--border-default); border-radius: var(--radius-full);
  background: transparent; color: var(--text-secondary); font-size: .8125rem; font-weight: 500;
}
.bb-lang:hover { color: var(--text-primary); background: var(--surface-overlay); }
.bb-lang::after { display: none; }
.bb-lang img, .bb-flag { width: 18px; height: 12px; object-fit: cover; border-radius: 2px; }

/* Hesap menüsü (dropdown + offcanvas) */
.bb-account-menu { min-width: 260px; padding: .5rem !important; }
.bb-account-menu .dropdown-header { font-size: .71875rem; letter-spacing: .06em; text-transform: uppercase; padding: .5rem .75rem; }
.bb-account-menu .dropdown-item {
  display: flex; align-items: center; gap: .75rem; padding: .5625rem .75rem;
  border-radius: var(--radius-md); color: var(--text-secondary);
}
.bb-account-menu .dropdown-item i { width: 18px; text-align: center; color: var(--text-muted); }
.bb-account-menu .dropdown-item:hover { color: var(--text-primary); background: var(--surface-overlay); }
.bb-account-menu .dropdown-item:hover i { color: var(--text-accent); }
.bb-account-menu .dropdown-item.bb-logout, .bb-account-menu .dropdown-item.bb-logout i { color: var(--text-muted); }
.bb-account-menu .dropdown-divider { margin: .375rem .5rem; }
.bb-account-menu.bb-static { position: static; display: block; min-width: 0; width: 100%; border: 0 !important; padding: 0 !important; margin: 0 !important; background: transparent; }

/* --- Arama katmanı (tam ekran) ------------------------------------------ */
.search-overlay-fullscreen {
  background: rgba(10, 10, 12, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
[data-theme="light"] .search-overlay-fullscreen { background: rgba(22, 22, 23, .45); }
.search-overlay-fullscreen .search-overlay-content { max-width: 800px; padding: 5rem 1rem 2rem; }
.bb-search-panel {
  display: flex; flex-direction: column; min-height: 0; max-height: 100%;
  background: var(--surface-raised); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  padding: 1.5rem;
}
.bb-search-panel .bb-search { padding: .5rem .625rem .5rem 1.125rem; }
.bb-search-panel .bb-search input { font-size: 1rem; padding: .375rem 0; }
.bb-search-panel .search-clear-btn {
  margin: 0; padding: 0 .25rem; font-size: 1rem; color: var(--text-muted); background: none; border: 0;
}
.bb-search-panel .search-clear-btn:hover { color: var(--text-primary); }
.search-overlay-fullscreen .search-close-btn {
  position: absolute; top: 1.25rem; right: 1.25rem; width: 40px; height: 40px; font-size: 1rem;
  background: var(--surface-raised); border: 1px solid var(--border-default); color: var(--text-primary);
}
.search-overlay-fullscreen .search-close-btn:hover { background: var(--surface-overlay); transform: none; }
.search-overlay-fullscreen .search-results-container {
  background: transparent; border-radius: 0; box-shadow: none; padding: 0; margin-top: 1rem;
  max-height: none; flex: 1 1 auto; min-height: 0; overflow-y: auto; color: var(--text-primary);
}
.search-results-container::-webkit-scrollbar-track { background: transparent; }
.search-results-container::-webkit-scrollbar-thumb { background: var(--border-default); }
.search-welcome-message { padding: 2rem 1rem; color: var(--text-muted); }
.search-welcome-message i { font-size: 2rem; color: var(--border-default); margin-bottom: .75rem; }
.search-welcome-message p { font-size: .875rem; }
@media (max-width: 767.98px) {
  .search-overlay-fullscreen .search-overlay-content { padding: 4rem .75rem 1rem; }
  .bb-search-panel { padding: 1rem; }
}

/* --- Mobil offcanvas ---------------------------------------------------- */
.bb-offcanvas { width: min(360px, 88vw) !important; box-shadow: none; }
.bb-offcanvas .offcanvas-header { border-bottom: 1px solid var(--border-subtle); padding: 1rem 1.25rem; background: transparent; color: var(--text-primary); }
.bb-offcanvas .offcanvas-title { color: var(--text-primary) !important; }
.bb-offcanvas #inputMobileSearch { width: auto; border: 0; padding: .125rem 0; font-size: .9375rem; }
.bb-offcanvas #mobileSearchResponse {
  position: static; left: auto; right: auto; margin-top: .5rem; padding: .5rem;
  background: var(--surface-sunken); z-index: auto;
}
.bb-offcanvas .offcanvas-body { padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; }
.bb-offcanvas .bb-logo { height: 30px; }
.bb-offcanvas .mobile-search-response {
  background: var(--surface-sunken); border: 1px solid var(--border-subtle); border-radius: var(--radius-md);
  max-height: 50vh; overflow-y: auto;
}
.bb-mnav { display: grid; gap: .25rem; }
.bb-mnav a {
  display: flex; align-items: center; gap: .75rem; padding: .625rem .75rem; border-radius: var(--radius-md);
  color: var(--text-secondary); text-decoration: none; font-size: .9375rem;
}
.bb-mnav a:hover, .bb-mnav a.active { color: var(--text-primary); background: var(--surface-overlay); }
.bb-mnav a .bb-ico, .bb-mnav a i { color: var(--text-muted); }
.bb-mnav a.active .bb-ico { color: var(--text-accent); }
.bb-social { display: flex; gap: .5rem; }
.bb-social a {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-full); color: var(--text-secondary); text-decoration: none;
}
.bb-social a:hover { color: var(--text-primary); border-color: var(--border-default); }

/* --- Footer ek parçaları ------------------------------------------------ */
.bb-footer .bb-trust-strip .mb-1 { font-size: .875rem; color: var(--text-primary); }
.bb-footer .bb-social a { font-size: .875rem; }
.bb-footer .newsletter-box.bb-newsletter { flex-direction: row; gap: .5rem; padding: .375rem .375rem .375rem 1rem; }
.bb-footer .newsletter-box.bb-newsletter input {
  height: auto; padding: 0; border: 0; border-radius: 0; background: transparent;
  color: var(--text-primary); font-family: inherit; font-size: .8125rem;
}
.bb-footer .newsletter-box.bb-newsletter input::placeholder { color: var(--text-muted); }
.bb-footer .newsletter-box.bb-newsletter button {
  flex: 0 0 auto; width: 36px; height: 36px; padding: 0; border-radius: var(--radius-full);
  background: var(--accent-soft); border: 1px solid var(--accent-solid); color: var(--text-accent);
}
.bb-footer .newsletter-box.bb-newsletter button:hover { background: var(--accent-solid); color: #fff; }
.bb-footer .newsletter-message { font-size: .75rem; margin: .5rem 0 0; }
.bb-footer .bb-payments { height: 22px; width: auto; opacity: .7; }
[data-theme="light"] .bb-footer .bb-payments { opacity: 1; }
.bb-legal { display: flex; flex-wrap: wrap; gap: .375rem 1rem; list-style: none; padding: 0; margin: 0; }

/* Yukarı çık */
#backToTop.bb-icon-btn {
  width: 44px; height: 44px; z-index: 1000; background: var(--surface-raised); color: var(--text-primary);
  box-shadow: none; border-radius: var(--radius-full);
}
#backToTop.bb-icon-btn:hover { background: var(--surface-overlay); }
@media (max-width: 991.98px) { #backToTop.bb-icon-btn { bottom: 4.75rem !important; } }

/* --- Çerez bandı -------------------------------------------------------- */
.cookie-consent-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999;
  max-width: 960px; margin: 0 auto; padding: 1rem 1.25rem;
  background: var(--surface-raised); border: 1px solid var(--border-default); border-radius: var(--radius-lg);
  color: var(--text-secondary);
}
.cookie-consent-banner .cookie-consent-text { font-size: .8125rem; line-height: 1.6; }
.cookie-consent-banner .cookie-consent-text .bb-ico { color: var(--text-accent); vertical-align: -3px; }
.cookie-consent-banner .cookie-policy-link { color: var(--text-accent); }
@media (max-width: 991.98px) { .cookie-consent-banner { bottom: 5rem; } }

/* --- jQuery Toast / SweetAlert2 ----------------------------------------- */
.jq-toast-wrap .jq-toast-single {
  background: var(--surface-raised) !important; color: var(--text-primary) !important;
  border: 1px solid var(--border-default); border-radius: var(--radius-md);
  font-family: var(--font-sans); font-size: .8125rem; box-shadow: none;
}
.jq-toast-single h2 { font-family: var(--font-sans); font-size: .875rem; font-weight: 500; }
.jq-toast-loader { background: var(--accent-solid) !important; }
.swal2-popup {
  background: var(--surface-raised) !important; color: var(--text-primary) !important;
  border: 1px solid var(--border-subtle); border-radius: var(--radius-lg) !important; font-family: var(--font-sans) !important;
}
.swal2-title { color: var(--text-primary) !important; font-weight: 500 !important; }
.swal2-content, .swal2-html-container { color: var(--text-secondary) !important; }
.swal2-styled.swal2-confirm { background: var(--accent-solid) !important; border-radius: var(--radius-full) !important; box-shadow: none !important; }
.swal2-styled.swal2-cancel { background: transparent !important; color: var(--text-primary) !important; border: 1px solid var(--border-default) !important; border-radius: var(--radius-full) !important; }
.swal2-input, .swal2-textarea, .swal2-select { background: var(--surface-sunken) !important; color: var(--text-primary) !important; border: 1px solid var(--border-subtle) !important; box-shadow: none !important; }

/* --- Mobil tab bar: sayfa altında içerik örtülmesin ---------------------- */
.bb-tabbar .bb-tab i { font-size: 1.0625rem; }
.bb-tabbar button.bb-tab { background: none; border: 0; padding: 0; }

/* --- Hesap sayfaları yan menü (profil.html) ---------------------------- */
.bb-side-link {
  display: flex; align-items: center; gap: .75rem; padding: .5rem .75rem; border-radius: var(--radius-md);
  color: var(--text-primary); text-decoration: none; font-size: .9375rem;
}
.bb-side-link:hover { background: var(--surface-overlay); color: var(--text-primary); }
.bb-side-link.active { background: var(--accent-soft); color: var(--text-accent); }
.bb-side-link.bb-muted { color: var(--text-muted); }
