/* Global UI standardization layer.
   - Sticky footer: az içerikte bile viewport altında (mobil + masaüstü).
   - Pagination tablolar: iç dikey scroll yok, sayfa ile kayar.
   - Tema .footer { position:absolute } devre dışı. */

:root {
  --crm-page-x: 12px;
  --crm-section-gap: 1rem;
  --crm-row-gap-y: 1rem;
  --crm-footer-gap: 1rem;
  --crm-topbar-h: 70px;
}

/* ── Viewport tabanı ── */
html {
  height: 100%;
  overflow-x: hidden;
}

body {
  min-height: 100%;
  min-height: 100dvh;
  overflow-x: hidden;
  max-width: 100vw;
}

/* ── Sticky footer iskeleti ── */
#wrapper {
  display: block;
  width: 100%;
  max-width: 100vw;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
}

#wrapper > .content-page {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto;
  min-height: calc(100vh - var(--crm-topbar-h)) !important;
  min-height: calc(100dvh - var(--crm-topbar-h)) !important;
  min-width: 0;
  width: auto;
  max-width: 100%;
}

.content-page {
  display: flex !important;
  flex-direction: column !important;
  min-height: calc(100vh - var(--crm-topbar-h)) !important;
  min-height: calc(100dvh - var(--crm-topbar-h)) !important;
  padding-bottom: 0 !important;
  padding-left: var(--crm-page-x) !important;
  padding-right: var(--crm-page-x) !important;
  position: relative;
  overflow-x: hidden;
  overflow-y: visible;
  box-sizing: border-box;
  width: auto;
  max-width: 100%;
}

.content-page > .content {
  flex: 1 1 auto !important;
  display: block;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  overflow: visible;
  box-sizing: border-box;
}

/* Chart.js containers: stop flex resize loops without overriding page heights. */
.chart-container,
.small-chart-container {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  overflow: hidden;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
}
.chart-container canvas,
.small-chart-container canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100% !important;
}
.avg-gauge-wrap {
  min-height: 0;
  overflow: hidden;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
}

/* Card içi flex yapısı: chart-container uzamasın */
.card-body.d-flex.flex-column > .chart-container,
.card-body.d-flex.flex-column > .avg-gauge-wrap {
  flex: 0 0 auto !important;
}

.content-page .container-fluid {
  max-width: 100%;
  box-sizing: border-box;
}

/* Content spacing */
.content-page .content > .container-fluid {
  padding-top: 1rem;
  padding-bottom: 1.25rem;
}

.content-page .content .container-fluid:first-child {
  padding-top: 1rem;
}

.content-page .content .card {
  border-radius: 12px;
}

.crm-filter-card,
.crm-analytics-page .card.border-0.shadow-sm {
  border-radius: 12px;
}

.content-page > .content > .container-fluid {
  margin-bottom: 0 !important;
}

.content-page > .content > .container-fluid > .row {
  --bs-gutter-x: var(--crm-section-gap);
  --bs-gutter-y: var(--crm-row-gap-y);
}

.content-page > .content > .container-fluid > .row + .row {
  margin-top: 0;
}

.content-page > .content > .container-fluid:last-child {
  padding-bottom: 0.25rem;
}

.crm-page-footer-spacer {
  display: none;
}

/* ── Footer: viewport altına yapışık ── */
.content-page > .footer,
.content-page > footer.footer,
#wrapper > .footer,
#wrapper > footer.footer {
  position: relative !important;
  bottom: auto !important;
  top: auto !important;
  left: 0 !important;
  right: auto !important;
  display: block !important;
  flex: 0 0 auto !important;
  flex-shrink: 0;
  width: 100% !important;
  max-width: 100% !important;
  margin-top: auto !important;
  padding-top: var(--crm-footer-gap);
  box-sizing: border-box;
  clear: both;
}

/* Footer content-page dışında (legacy) */
#wrapper > .footer,
#wrapper > footer.footer {
  margin-left: 240px;
  width: calc(100% - 240px);
  max-width: calc(100vw - 240px);
  padding-right: 12px;
}

body[data-leftbar-size=condensed] #wrapper > .footer,
body[data-leftbar-size=condensed] #wrapper > footer.footer {
  margin-left: 70px;
  width: calc(100% - 70px);
  max-width: calc(100vw - 70px);
}

body[data-leftbar-size=compact]:not([data-leftbar-size=condensed]) #wrapper > .footer,
body[data-leftbar-size=compact]:not([data-leftbar-size=condensed]) #wrapper > footer.footer {
  margin-left: 160px;
  width: calc(100% - 160px);
  max-width: calc(100vw - 160px);
}

/* ── Pagination / datatable: iç scroll yok ── */
.leads-page,
.crm-datatable-page,
.crm-analytics-page,
.crm-payment-page,
.notifications-page {
  position: static !important;
  overflow: visible !important;
  max-height: none !important;
}

.leads-page .card,
.leads-page .card-body,
.crm-datatable-page .card,
.crm-datatable-page .card-body,
.crm-analytics-page .card,
.crm-analytics-page .card-body,
.crm-payment-page .card,
.crm-payment-page .card-body,
.notifications-page .card,
.notifications-page .card-body {
  position: static !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  max-height: none !important;
  max-width: 100% !important;
  min-width: 0;
}

.leads-page .dataTables_wrapper,
.crm-datatable-page .dataTables_wrapper,
.crm-analytics-page .dataTables_wrapper,
.crm-payment-page .dataTables_wrapper,
.notifications-page .dataTables_wrapper {
  max-height: none !important;
  overflow-y: visible !important;
}

.leads-page .dataTables_wrapper .dataTables_scroll,
.leads-page .dataTables_wrapper .dataTables_scrollHead,
.leads-page .dataTables_wrapper .dataTables_scrollBody,
.crm-datatable-page .dataTables_wrapper .dataTables_scroll,
.crm-datatable-page .dataTables_wrapper .dataTables_scrollHead,
.crm-datatable-page .dataTables_wrapper .dataTables_scrollBody,
.crm-analytics-page .dataTables_wrapper .dataTables_scroll,
.crm-analytics-page .dataTables_wrapper .dataTables_scrollHead,
.crm-analytics-page .dataTables_wrapper .dataTables_scrollBody {
  max-height: none !important;
  height: auto !important;
  overflow-y: visible !important;
}

.leads-page .table-responsive,
.crm-datatable-page .table-responsive,
.crm-analytics-page .table-responsive,
.crm-payment-page .table-responsive {
  max-height: none !important;
  overflow-y: visible !important;
}

/* Log sayfaları: dikey scroll yok; yatay scroll log-pages.css'te */
.crm-log-page {
  position: static !important;
  overflow: visible !important;
  max-height: none !important;
}

.crm-log-page .card,
.crm-log-page .card-body {
  position: static !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  max-height: none !important;
  max-width: 100% !important;
  min-width: 0;
}

.crm-log-page .dataTables_wrapper .dataTables_scroll,
.crm-log-page .dataTables_wrapper .dataTables_scrollHead,
.crm-log-page .dataTables_wrapper .dataTables_scrollBody {
  max-height: none !important;
  height: auto !important;
  overflow-y: visible !important;
}

@media (max-width: 991.98px) {
  body {
    padding-bottom: 0 !important;
  }

  .content-page {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #wrapper > .footer,
  #wrapper > footer.footer {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 767.98px) {
  .navbar-custom {
    overflow: visible !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: var(--crm-topbar-h) !important;
    z-index: 1005;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  #wrapper {
    min-height: 100dvh;
  }

  #wrapper > .content-page {
    min-height: calc(100dvh - var(--crm-topbar-h)) !important;
    margin-top: var(--crm-topbar-h);
    padding-bottom: 0 !important;
  }

  .content-page {
    min-height: calc(100dvh - var(--crm-topbar-h)) !important;
  }

  .content-page > .content > .container-fluid {
    padding-bottom: 0.75rem;
    padding-left: var(--crm-page-x);
    padding-right: var(--crm-page-x);
  }

  .content-page > .footer,
  .content-page > footer.footer,
  #wrapper > .footer,
  #wrapper > footer.footer {
    padding-top: 0.75rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
  }

  #wrapper > .footer > .container-fluid,
  #wrapper > footer.footer > .container-fluid {
    padding-left: 12px;
    padding-right: 12px;
  }
}

@supports not (height: 100dvh) {
  #wrapper {
    min-height: 100vh;
  }

  #wrapper > .content-page,
  .content-page {
    min-height: calc(100vh - var(--crm-topbar-h));
  }

  @media (max-width: 767.98px) {
    #wrapper > .content-page,
    .content-page {
      min-height: calc(100vh - var(--crm-topbar-h));
    }
  }
}

/* Consistent badge baseline alignment */
.badge {
  line-height: 1.1;
}

.alert.crm-alert-standard,
.alert:not(.alert-light):not(.alert-link) {
  display: flex;
  align-items: flex-start;
  gap: 0.25rem;
}

.alert .crm-alert-icon {
  flex-shrink: 0;
  font-size: 1.125rem;
  line-height: 1.35;
  margin-top: 0.1rem;
}

.alert .crm-alert-body {
  flex: 1 1 auto;
  min-width: 0;
}

.alert .btn-close {
  flex-shrink: 0;
  margin-left: auto;
}

@media (max-width: 767.98px) {
  .content-page .alert,
  .crm-analytics-page .alert,
  .notifications-page .list-group-item {
    max-width: 100%;
    box-sizing: border-box;
  }

  .alert.crm-alert-standard,
  .alert.alert-dismissible {
    position: relative;
    flex-wrap: wrap;
    padding-right: 2.75rem;
    word-wrap: break-word;
    overflow-wrap: anywhere;
  }

  .alert.crm-alert-standard .crm-alert-icon,
  .alert.alert-dismissible > .mdi:first-child {
    flex-shrink: 0;
  }

  .alert .btn-close {
    position: absolute;
    top: 0.6rem;
    right: 0.5rem;
    margin-left: 0;
  }

  .notifications-page .list-group-item .flex-grow-1 {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .notifications-page .header-actions {
    width: 100%;
  }

  .notifications-page .filter-bar {
    flex-wrap: wrap;
  }
}

/* Codex: requested admin/table pages should not create inner scroll areas. */
.table-responsive:has(.bundle-admin-table),
.table-responsive:has(.pricing-table),
.table-responsive:has(.matrix-table),
.table-responsive:has(.token-table),
.table-responsive:has(#datatable),
.table-responsive:has(.table-centered.table-sm),
.table-responsive.crm-no-inner-scroll {
  max-height: none !important;
  height: auto !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

.bundle-admin-table,
.pricing-table,
.matrix-table,
.token-table,
#datatable {
  width: 100% !important;
  table-layout: auto;
}

.bundle-admin-table th,
.bundle-admin-table td,
.pricing-table th,
.pricing-table td,
.matrix-table th,
.matrix-table td,
.token-table th,
.token-table td,
#datatable th,
#datatable td {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

#outputPre,
#crontab-box,
#crontab-preview {
  max-height: none !important;
  height: auto !important;
  overflow-y: visible !important;
}

/* Mobile filter bars: index/dashboard-style filters must fit the viewport. */
@media (max-width: 767.98px) {
  #gaFilterForm {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: visible !important;
  }

  #gaFilterForm > .col-auto,
  #gaFilterForm > [class*="col-"],
  #gaFilterForm #customDateFields,
  #gaFilterForm .filter-buttons,
  #gaFilterForm #applyBtnContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex: 0 0 auto !important;
  }

  #gaFilterForm #customDateFields {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
  }

  #gaFilterForm #customDateFields span.text-muted {
    display: none !important;
  }

  #gaFilterForm .form-control,
  #gaFilterForm .form-select,
  #gaFilterForm .btn,
  #gaFilterForm .badge {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #gaFilterForm .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    min-height: 34px;
  }

  #gaFilterForm .filter-buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    margin-top: 8px !important;
  }

  #gaFilterForm .filter-buttons > *,
  #gaFilterForm .filter-buttons .dropdown {
    width: 100% !important;
    max-width: 100% !important;
  }

  #gaFilterForm .filter-buttons .dropdown > .btn,
  #gaFilterForm .filter-buttons .dropdown button {
    width: 100% !important;
    max-width: 100% !important;
    bottom: auto !important;
    top: auto !important;
    position: relative;
  }

  #gaFilterForm .dropdown-menu,
  #gaFilterForm .dropdown-menu-end {
    width: 100% !important;
    max-width: calc(100vw - 24px) !important;
    min-width: 0 !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
  }

  #gaFilterForm label {
    width: 100%;
    justify-content: flex-start !important;
    white-space: normal !important;
  }
}
