/*
 * Mobil uyumluluk katmanı
 * Yoğun veri tablolarını kartlara dönüştürmeden; yatay kaydırma, dokunma hedefleri,
 * esnek araç çubukları ve tam ekran modal davranışı sağlar.
 */

:root {
  --mobile-page-gutter: clamp(8px, 3vw, 16px);
  --mobile-safe-top: env(safe-area-inset-top, 0px);
  --mobile-safe-right: env(safe-area-inset-right, 0px);
  --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
  --mobile-safe-left: env(safe-area-inset-left, 0px);
}

html,
body,
#appMain {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
canvas {
  max-width: 100%;
}

.tab-content,
.tab-content > *,
.header-left,
.header-right,
.toolbar,
.toolbar-actions {
  min-width: 0;
}

/* JS tarafından işaretlenen bütün yatay veri bölgeleri. */
.mobile-scroll-region {
  max-width: 100%;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}

.mobile-scroll-region:focus-visible {
  outline: 2px solid #6cb6f5;
  outline-offset: -2px;
}

/* Kapalı tam ekran katmanları mobil tarayıcıda dokunmayı asla yakalamamalı. */
.sidebar-overlay:not(.is-active),
.modal-backdrop[style*="display:none"],
.modal-backdrop[style*="display: none"],
.rev-modal-backdrop[style*="display:none"],
.rev-modal-backdrop[style*="display: none"],
.fk-modal-backdrop[style*="display:none"],
.fk-modal-backdrop[style*="display: none"],
.gorsel-sync-backdrop[style*="display:none"],
.gorsel-sync-backdrop[style*="display: none"],
.product-report-backdrop[style*="display:none"],
.product-report-backdrop[style*="display: none"],
.system-error-modal-backdrop[style*="display:none"],
.system-error-modal-backdrop[style*="display: none"] {
  pointer-events: none !important;
}

.sidebar-overlay.is-active {
  pointer-events: auto !important;
}

@media (max-width: 1024px) {
  body.sidebar-pinned .app-header,
  body.sidebar-pinned .tab-bar,
  body.sidebar-pinned .tab-content {
    width: 100% !important;
    margin-left: 0 !important;
  }

  .app-header {
    padding-right: max(12px, var(--mobile-safe-right));
    padding-left: max(12px, var(--mobile-safe-left));
  }

  .header-left {
    flex: 1 1 auto;
    overflow: hidden;
  }

  .header-right {
    flex: 0 0 auto;
  }

  .admin-panel,
  .stok-alarm-admin-page,
  .sysmon,
  .mr-page {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .admin-panel {
    padding-right: 20px;
    padding-left: 20px;
  }

  .pivot-main-content {
    min-width: 0;
  }

  .pivot-sidebar {
    width: min(300px, 38vw);
    min-width: min(300px, 38vw);
  }

  .set-analysis-table-wrap,
  .set-analysis-table-wrap.set-analysis-uyum-wrap,
  .set-analysis-table-wrap.set-analysis-kutu-wrap,
  #content-stok .table-container,
  .products-table-container {
    overflow-x: auto !important;
  }

  .set-analysis-toolbar,
  .set-analysis-need-toolbar .sa-toolbar-row,
  .rev-modern-toolbar,
  .sysmon-header,
  .sysmon-header-actions {
    flex-wrap: wrap;
  }

  .set-analysis-toolbar-left,
  .set-analysis-toolbar-right,
  .sa-toolbar-row-left,
  .sa-toolbar-row-right,
  .rev-filter-controls,
  .rev-toolbar-btn-group {
    min-width: 0;
    flex-wrap: wrap;
  }
}

@media (max-width: 768px) {
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    padding-bottom: var(--mobile-safe-bottom);
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    max-width: 100%;
    font-size: 16px !important;
  }

  .app-header {
    height: 56px;
    gap: 8px;
  }

  .sidebar-toggle-btn {
    min-width: 42px;
    min-height: 42px;
    padding: 0 11px;
  }

  .sidebar-toggle-text,
  .brand-subtitle,
  .error-indicator-label,
  .system-status-title,
  .system-status-sep,
  .system-status-uptime-pill,
  .system-status-arrow,
  .brand-logo-frame,
  .user-info-text,
  .user-avatar-btn > .fa-chevron-down {
    display: none !important;
  }

  .app-brand {
    gap: 8px;
  }

  .logo-icon-box {
    width: 34px;
    height: 34px;
  }

  .brand-title {
    font-size: 13px;
    white-space: nowrap;
  }

  .header-right {
    gap: 6px;
  }

  .error-indicator-pill,
  .system-status-container,
  .user-avatar-btn {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    box-sizing: border-box;
    justify-content: center;
    padding: 0;
  }

  .system-status-container {
    display: flex !important;
  }

  .system-status-popover,
  .sync-popover {
    position: fixed !important;
    top: 64px !important;
    right: max(8px, var(--mobile-safe-right)) !important;
    left: max(8px, var(--mobile-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 72px - var(--mobile-safe-bottom));
    overflow-y: auto;
  }

  .current-view-dropdown-menu,
  .header-subnav-menu {
    position: fixed !important;
    top: 64px !important;
    right: max(8px, var(--mobile-safe-right)) !important;
    left: max(8px, var(--mobile-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 72px - var(--mobile-safe-bottom));
  }

  .app-sidebar {
    width: min(320px, calc(100vw - 36px)) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 36px) !important;
    padding-left: var(--mobile-safe-left);
  }

  .sidebar-header {
    padding-top: var(--mobile-safe-top);
    height: calc(60px + var(--mobile-safe-top));
  }

  .sidebar-icon-btn,
  .nav-toggle-btn {
    min-width: 38px;
    min-height: 38px;
  }

  .nav-item-main,
  .nav-sub-item {
    min-height: 44px;
  }

  .tab-content {
    width: 100% !important;
    max-width: 100%;
    min-height: calc(100dvh - 56px);
  }

  .toolbar,
  .stok-toolbar,
  .products-toolbar,
  .set-analysis-toolbar,
  .rev-modern-toolbar,
  .pivot-toolbar,
  .sysmon-toolbar,
  .sysmon-log-toolbar,
  .sysmon-db-toolbar {
    gap: 6px;
  }

  /* Veri yoğun ekranlarda araç çubuklarını dikey olarak büyütme. */
  .products-toolbar {
    flex-direction: column;
    align-items: stretch !important;
    padding: 5px var(--mobile-page-gutter) !important;
  }

  .products-search {
    flex: 0 0 34px !important;
    height: 34px;
    padding-block: 3px !important;
  }

  .products-search input {
    height: 26px !important;
  }

  .products-toolbar .toolbar-actions {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap !important;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 2px;
  }

  .products-toolbar .toolbar-actions > * {
    flex: 0 0 auto !important;
  }

  .products-filter-summary {
    width: auto !important;
    min-width: 112px;
  }

  /* Ürün Vitrini: mobilde iki sütunlu, sıkı ve yatay kaydırmalı kontroller. */
  .vitrin-toolbar {
    gap: 5px;
    padding: 5px var(--mobile-page-gutter);
  }

  .vitrin-toolbar-top {
    gap: 5px;
  }

  .vitrin-search-box {
    flex: 1 0 100%;
    min-width: 0;
    max-width: none;
    height: 34px;
    box-sizing: border-box;
    padding: 3px 8px;
  }

  .vitrin-filter-buttons,
  .vitrin-actions-right {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap !important;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 2px;
  }

  .vitrin-filter-buttons > *,
  .vitrin-actions-right > * {
    flex: 0 0 auto !important;
  }

  .vitrin-filter-btn,
  .vitrin-actions-right .toolbar-btn {
    min-height: 34px;
    padding: 4px 8px;
    font-size: 10px;
  }

  .vitrin-chips-bar {
    min-height: 0;
    padding: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: thin;
  }

  .vitrin-filter-chip,
  .vitrin-chip-info,
  .vitrin-chip-summary {
    flex: 0 0 auto;
  }

  .vitrin-scroll-container {
    padding: 7px var(--mobile-page-gutter) 12px;
  }

  .vitrin-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .vitrin-card {
    border-radius: 7px;
  }

  .vitrin-card-image-wrap {
    aspect-ratio: 1 / 1.2;
  }

  .vitrin-card-body {
    gap: 3px;
    padding: 6px;
  }

  .vitrin-card-title {
    min-height: 26px;
    font-size: 10.5px;
    line-height: 1.25;
  }

  .vitrin-card-meta {
    gap: 2px;
    padding-top: 0;
  }

  .vitrin-meta-tag {
    padding: 1px 3px;
    font-size: 8px;
  }

  .vitrin-meta-tag.is-barcode {
    display: none;
  }

  .vitrin-card-actions {
    gap: 3px;
    padding-top: 4px;
  }

  .vitrin-action-btn {
    min-height: 28px;
    font-size: 8px;
  }

  .vitrin-pagination-bar {
    gap: 5px;
    padding: 5px var(--mobile-page-gutter);
  }

  .toolbar-actions,
  .products-toolbar .toolbar-actions,
  .set-analysis-toolbar-left,
  .set-analysis-toolbar-right,
  .sa-toolbar-row-left,
  .sa-toolbar-row-right,
  .rev-filter-controls,
  .rev-toolbar-btn-group,
  .pivot-toolbar-left,
  .pivot-toolbar-right,
  .sysmon-toolbar,
  .sysmon-log-toolbar,
  .sysmon-db-toolbar {
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
  }

  .toolbar-btn,
  .rev-modern-btn,
  .pivot-toolbar-btn,
  .sysmon-btn,
  .admin-subtab-btn,
  .ut-subtab-btn,
  .maliyet-sub-tab,
  .mr-view-btn {
    min-height: 40px;
  }

  .search-box,
  .products-search,
  .rev-modern-search,
  .rev-search-box,
  .sysmon-search,
  .sysmon-field,
  .sysmon-field select,
  .sysmon-field input {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  .kpi-bar,
  .products-kpi-bar,
  .rev-kpi-bar,
  .set-analysis-summary,
  .sysmon-kpis {
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .rev-kpi-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 10px var(--mobile-page-gutter);
  }

  .rev-metric-card {
    min-width: 0;
  }

  .rev-modern-toolbar,
  .set-analysis-toolbar,
  .set-analysis-need-toolbar,
  .pivot-toolbar {
    padding-right: var(--mobile-page-gutter);
    padding-left: var(--mobile-page-gutter);
  }

  .rev-filter-controls > *,
  .rev-filter-controls .rev-select-wrap,
  .rev-filter-controls select {
    flex: 1 1 150px;
    min-width: 0;
  }

  .rev-toolbar-btn-group > button,
  .toolbar-actions > button {
    flex: 1 1 auto;
  }

  .mr-page,
  .admin-panel,
  .stok-alarm-admin-page,
  .sysmon {
    padding-right: var(--mobile-page-gutter) !important;
    padding-left: var(--mobile-page-gutter) !important;
  }

  .mr-grid,
  .mr-left-center-group,
  .stok-alarm-grid,
  .admin-form-grid,
  .sysmon-grid,
  .urun-gruplari-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .pivot-main-content {
    display: flex;
    flex-direction: column;
  }

  .pivot-sidebar {
    width: 100% !important;
    min-width: 0 !important;
    max-height: 42dvh;
    border-right: 0;
    border-bottom: 1px solid #d9e7f2;
  }

  .pivot-content-area {
    width: 100%;
    min-width: 0;
  }

  /* Tablolar mobilde veri kaybetmeden yatay kayar. */
  .table-container,
  .products-table-container,
  .set-analysis-table-wrap,
  .set-analysis-table-wrap.set-analysis-uyum-wrap,
  .set-analysis-table-wrap.set-analysis-kutu-wrap,
  .pivot-table-container,
  .pivot-result,
  .maliyet-table-wrap,
  .fk-table-wrapper,
  .rev-table-container,
  .admin-table-wrap,
  .ut-table-wrap,
  .stok-alarm-table-wrap,
  .stok-gereksiz-bulk-table-wrap,
  .satm-table-wrap,
  .sirt-table-wrapper,
  .set-analysis-components-wrap,
  .set-uyum-detail-table-wrap,
  .set-uyum-preview-table-wrap,
  .set-spec-table-container,
  .report-table-wrap,
  .system-error-table-container,
  .sysmon-table-wrap {
    max-width: 100%;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mobile-scroll-region.is-scrollable:not(.at-scroll-end) {
    box-shadow: inset -18px 0 14px -17px rgba(15, 23, 42, 0.65);
  }

  .mobile-scroll-region.is-scrollable:not(.at-scroll-start) {
    box-shadow: inset 18px 0 14px -17px rgba(15, 23, 42, 0.65);
  }

  .mobile-scroll-region.is-scrollable:not(.at-scroll-start):not(.at-scroll-end) {
    box-shadow:
      inset 18px 0 14px -17px rgba(15, 23, 42, 0.65),
      inset -18px 0 14px -17px rgba(15, 23, 42, 0.65);
  }

  #stokTable,
  .products-table,
  .set-analysis-table,
  .pivot-table,
  .fk-table,
  .maliyet-table,
  .rev-table,
  .ut-table,
  .admin-table,
  .stok-alarm-table,
  .satm-table,
  .stok-gereksiz-preview-table,
  .sirt-table,
  .sysmon-table,
  .system-error-table,
  .report-table,
  .set-spec-table,
  .set-uyum-detail-table {
    width: max-content;
    max-width: none;
  }

  #stokTable,
  .products-table {
    min-width: 1180px;
  }

  .set-analysis-table,
  .rev-table,
  .pivot-table {
    min-width: 1040px;
  }

  /* Genişletilen bileşen tablosu ana tablonun sütun ölçülerini değiştirmesin. */
  #setAnalysisTableWrap > .set-analysis-table {
    width: 1040px;
    table-layout: fixed;
  }

  #setAnalysisTableWrap .set-analysis-detail-row > td {
    max-width: 0;
    padding: 0 5px 8px 30px;
  }

  #setAnalysisTableWrap .set-analysis-detail-card {
    width: 100%;
    min-width: 0;
  }

  #setAnalysisTableWrap .set-analysis-components-wrap table {
    width: 1120px;
    min-width: 1120px;
    table-layout: fixed;
  }

  .fk-table,
  .maliyet-table,
  .ut-table,
  .sirt-table,
  .set-spec-table,
  .set-uyum-detail-table {
    min-width: 820px;
  }

  .admin-table,
  .stok-alarm-table,
  .satm-table,
  .stok-gereksiz-preview-table,
  .sysmon-table,
  .system-error-table,
  .report-table {
    min-width: 680px;
  }

  table th,
  table td {
    overflow-wrap: normal;
  }

  .column-filter-dropdown.show,
  .products-filter-dropdown.show,
  .vitrin-column-filter-dropdown.show,
  .custom-filter-menu.show,
  .ficommerce-col-menu.show,
  .jetstok-col-menu.show,
  .identity-stock-info-popover.show,
  .vitrin-sort-dropdown.show,
  .sysmon-filter-dropdown {
    position: fixed !important;
    top: 64px !important;
    right: max(8px, var(--mobile-safe-right)) !important;
    bottom: auto !important;
    left: max(8px, var(--mobile-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 72px - var(--mobile-safe-bottom)) !important;
    overflow-y: auto;
  }

  .custom-filter-menu.show,
  .ficommerce-col-menu.show,
  .jetstok-col-menu.show,
  .identity-stock-info-popover.show,
  .vitrin-sort-dropdown.show {
    margin: 0 !important;
    min-width: 0 !important;
    border-radius: 12px !important;
    z-index: 16000 !important;
  }

  .modal-backdrop,
  .rev-modal-backdrop,
  .fk-modal-backdrop,
  .gorsel-sync-backdrop,
  .product-report-backdrop,
  .system-error-modal-backdrop {
    padding: max(8px, var(--mobile-safe-top)) max(8px, var(--mobile-safe-right)) max(8px, var(--mobile-safe-bottom)) max(8px, var(--mobile-safe-left)) !important;
    align-items: flex-end !important;
  }

  .admin-modal,
  .rev-modal,
  .fk-modal-box,
  .note-modal,
  .gorsel-sync-dialog,
  .urun-gruplari-dialog,
  .product-report-modal,
  .system-error-modal-dialog,
  .stok-alarm-test-modal-dialog,
  .sysmon-row-modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 16px - var(--mobile-safe-top) - var(--mobile-safe-bottom)) !important;
    margin: 0 !important;
    border-radius: 16px 16px 10px 10px !important;
  }

  .admin-modal-body,
  .rev-modal-body,
  .fk-modal-body,
  .gorsel-sync-body,
  .urun-gruplari-body,
  .product-report-body,
  .system-error-modal-body,
  .satm-body,
  .sysmon-row-modal-body {
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .admin-modal-header,
  .admin-modal-footer,
  .rev-modal-header,
  .rev-modal-footer,
  .fk-modal-header,
  .fk-modal-footer,
  .gorsel-sync-header,
  .gorsel-sync-footer,
  .urun-gruplari-header,
  .urun-gruplari-footer,
  .system-error-modal-header,
  .system-error-modal-footer,
  .satm-header,
  .satm-footer {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px !important;
  }

  .admin-modal-footer > button,
  .rev-modal-footer > button,
  .fk-modal-footer > button,
  .gorsel-sync-footer > button,
  .urun-gruplari-footer > button,
  .satm-footer > button {
    min-height: 42px;
    flex: 1 1 120px;
  }

  .rev-modal [style*="grid-template-columns"],
  .gorsel-sync-dialog [style*="grid-template-columns"],
  .admin-modal [style*="grid-template-columns"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #toastContainer {
    top: auto;
    right: max(8px, var(--mobile-safe-right));
    bottom: max(8px, var(--mobile-safe-bottom));
    left: max(8px, var(--mobile-safe-left));
    width: auto;
    pointer-events: none;
  }

  #toastContainer .toast {
    width: 100%;
    max-width: none;
    pointer-events: auto;
  }
}

@media (max-width: 520px) {
  .brand-text-wrap,
  .system-status-container,
  .error-indicator-pill.is-empty {
    display: none !important;
  }

  .header-left {
    flex: 0 1 auto;
  }

  .header-right {
    margin-left: auto;
  }

  .rev-kpi-bar,
  .sysmon-kpis,
  .sysmon-proc-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .products-toolbar .toolbar-actions > button,
  .stok-toolbar .toolbar-actions > button,
  .rev-toolbar-btn-group > button {
    flex: 1 1 calc(50% - 4px);
  }

  .set-analysis-filter-pills,
  .admin-subtabs,
  .ut-subtab-bar,
  .maliyet-sub-tabs,
  .mr-view-switch-bar,
  .product-report-tabs {
    max-width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .set-analysis-filter-pills > *,
  .admin-subtabs > *,
  .ut-subtab-bar > *,
  .maliyet-sub-tabs > *,
  .mr-view-switch-bar > *,
  .product-report-tabs > * {
    flex: 0 0 auto;
  }

  .sys-popover-header,
  .sync-popover-header,
  .urun-gruplari-header-left,
  .urun-gruplari-header-right {
    align-items: flex-start;
  }

  .sys-popover-title-text small,
  .header-subnav-item-desc,
  .urun-gruplari-header-meta {
    display: none;
  }
}

@media (max-width: 380px) {
  .app-header {
    padding-right: max(8px, var(--mobile-safe-right));
    padding-left: max(8px, var(--mobile-safe-left));
  }

  .sidebar-toggle-btn,
  .error-indicator-pill,
  .user-avatar-btn {
    width: 36px;
    min-width: 36px;
    height: 36px;
    min-height: 36px;
  }

  .products-toolbar .toolbar-actions > button,
  .stok-toolbar .toolbar-actions > button,
  .rev-toolbar-btn-group > button {
    flex-basis: 100%;
  }
}

@media (hover: none) and (pointer: coarse) {
  .col-resizer,
  .product-col-resizer {
    display: none !important;
    pointer-events: none !important;
  }

  .toolbar-btn,
  .th-filter-btn,
  .admin-modal-close,
  .gorsel-sync-close-btn,
  .sys-popover-btn {
    min-width: 40px;
    min-height: 40px;
  }

  .app-global-tooltip {
    display: none !important;
  }

  #stokTableBody td[data-row][data-col],
  #urunlerimizTableBody td[data-products-row][data-products-col],
  #stockSeasonalSalesTable td[data-season-row][data-season-col] {
    -webkit-touch-callout: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-sidebar,
  .sidebar-overlay,
  .mobile-scroll-region {
    scroll-behavior: auto !important;
  }
}
