/* Tooltip, altındaki kontrolün fare olaylarını engellemez. */
.tooltip { pointer-events: none; }

/* Ortak bileşenler. Bootstrap ve mevcut arayüz sınıfları aynı tasarım değişkenlerini kullanır. */

/* Yalnız veri/filtre bölgeleri: global gizleme ve mevcut overflow düzeni korunur. */
body :is(.lean-analysis-scroll, .lean-product-group-bars) {
  scrollbar-width: thin !important;
  -ms-overflow-style: auto !important;
  scrollbar-color: var(--color-muted) var(--color-surface);
}
body :is(.lean-analysis-scroll, .lean-product-group-bars)::-webkit-scrollbar {
  display: block !important;
  width: 10px !important;
  height: 10px !important;
}
body :is(.lean-analysis-scroll, .lean-product-group-bars)::-webkit-scrollbar-track {
  background: var(--color-surface);
}
body :is(.lean-analysis-scroll, .lean-product-group-bars)::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: var(--radius-control);
  background: var(--color-muted);
  background-clip: padding-box;
}

/* Filtre listeleri tabloyla aynı yumuşak kaydırma çubuğunu kullanır. */
body .lean-catalog-filter-scroll { scrollbar-width: auto !important; -ms-overflow-style: auto !important; scrollbar-color: auto; }
body .lean-catalog-filter-scroll::-webkit-scrollbar { display: block !important; width: 10px !important; height: 10px !important; }
body .lean-catalog-filter-scroll::-webkit-scrollbar-track { background: var(--color-surface); }
body .lean-catalog-filter-scroll::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: var(--radius-control); background: color-mix(in srgb, var(--color-muted) 40%, var(--color-surface)); background-clip: padding-box; }
body .lean-catalog-filter-scroll::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--color-muted) 65%, var(--color-surface)); background-clip: padding-box; }
body .lean-catalog-filter-scroll::-webkit-scrollbar-button,
body .lean-catalog-filter-scroll::-webkit-scrollbar-corner { display: none; width: 0; height: 0; }

/* Butonlar. */
.btn {
  --lean-btn-height: var(--button-height-md);
  --lean-btn-padding-inline: var(--button-padding-inline);
  --lean-btn-font-size: var(--font-size-sm);
  --lean-btn-background: transparent;
  --lean-btn-border: transparent;
  --lean-btn-color: var(--color-primary);
  --lean-btn-hover-background: var(--color-primary-soft);
  --lean-btn-hover-border: transparent;
  --lean-btn-hover-color: var(--lean-btn-color);
  --lean-btn-active-background: var(--lean-btn-hover-background);
  display: inline-flex;
  box-sizing: border-box;
  min-height: var(--lean-btn-height);
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0 var(--lean-btn-padding-inline);
  border: 1px solid var(--lean-btn-border);
  border-radius: var(--radius-control);
  background: var(--lean-btn-background);
  font-family: var(--font-sans);
  font-size: var(--lean-btn-font-size);
  font-weight: var(--button-font-weight);
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color var(--duration-fade) ease, border-color var(--duration-fade) ease, color var(--duration-fade) ease;
}
.btn:not(.lean-page-actions-toggle):not(.lean-ui-lang__toggle) {
  color: var(--lean-btn-color) !important;
}
/* Birleşik alanların ortak kenarı korunur; aşağıdaki etkileşim kuralları önceliklidir. */
.input-group .form-control + .btn.btn-outline-light {
  border-left-color: transparent;
}
.btn:not(.lean-page-actions-toggle):not(.lean-ui-lang__toggle):is(:focus, .active, :disabled, .disabled) {
  border-color: var(--lean-btn-border);
  background: var(--lean-btn-background);
}
.btn:not(.lean-page-actions-toggle):not(.lean-ui-lang__toggle):hover:not(:disabled):not(.disabled) {
  border-color: var(--lean-btn-hover-border);
  background: var(--lean-btn-hover-background);
  color: var(--lean-btn-hover-color) !important;
  text-decoration: none;
}
.btn:not(.lean-page-actions-toggle):not(.lean-ui-lang__toggle):active:not(:disabled):not(.disabled) {
  --lean-btn-current-background: var(--lean-btn-active-background);
  border-color: var(--lean-btn-hover-border);
  background: var(--lean-btn-current-background);
  color: var(--lean-btn-hover-color) !important;
}
.btn:focus:not(:focus-visible), .btn:active:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none !important;
}
.btn.btn:focus-visible {
  outline: var(--border-width) solid var(--color-focus-ring);
  outline-offset: 2px;
  box-shadow: none;
}
.btn:disabled, .btn.disabled, fieldset:disabled .btn {
  cursor: not-allowed;
  opacity: 0.65;
  pointer-events: none;
}
.btn.is-loading:disabled { cursor: wait; }
.btn.is-loading[aria-busy="true"] { opacity: 1; cursor: wait; }
.btn .lean-action-hidden-icon { display: none !important; }
/* Yükleme göstergeleri ortak animasyonu kullanır; yerleşimi ilgili bileşen yönetir. */
:is(.lean-product-refresh-spinner, .lean-image-loading-spinner, .lean-dashboard-loading-ring, .lean-app-preloader .preloader-icon) {
  display: inline-block;
  width: var(--loading-ring-size, var(--loading-size-md));
  height: var(--loading-ring-size, var(--loading-size-md));
  flex: none;
  border: var(--loading-ring-stroke) solid var(--color-border);
  border-top-color: var(--color-primary);
  border-radius: 50%;
}
:is(.lean-product-refresh-spinner, .lean-image-loading-spinner, .lean-dashboard-loading-ring, .lean-app-preloader .preloader-icon, .lean-action-spinner, .lean-shell-language-spinner) {
  animation: lean-action-spin var(--duration-spinner) linear infinite;
}
@keyframes lean-action-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  :is(.lean-product-refresh-spinner, .lean-image-loading-spinner, .lean-dashboard-loading-ring, .lean-app-preloader .preloader-icon, .lean-action-spinner, .lean-shell-language-spinner, .lean-select-spinner) { animation: none; }
}
.btn > svg { display: block; flex: none; width: var(--icon-size-md); height: var(--icon-size-md); }
.btn :is(.lean-icon, .lean-cart-feedback-icon) { color: inherit; }
.btn:not(.lean-ui-lang__toggle) > i {
  flex: none;
  margin: 0;
  font-size: var(--icon-size-md);
  font-weight: normal;
  line-height: 1;
}

.btn-primary {
  --lean-btn-background: var(--color-primary);
  --lean-btn-border: var(--color-primary);
  --lean-btn-color: var(--color-on-primary);
  --lean-btn-hover-background: var(--color-primary-hover);
  --lean-btn-hover-border: var(--color-primary-hover);
  --lean-btn-hover-color: var(--color-on-primary-hover);
  --lean-btn-active-background: color-mix(in srgb, var(--lean-btn-hover-background) 90%, #000);
}
.btn-outline-primary {
  --lean-btn-tone: var(--color-primary);
  --lean-btn-tone-soft: var(--color-primary-soft);
  --lean-btn-tone-text: var(--color-primary);
}
.btn-secondary, .btn-outline-secondary {
  --lean-btn-tone: var(--color-secondary);
  --lean-btn-tone-hover: var(--color-secondary-hover);
  --lean-btn-tone-soft: var(--color-secondary-subtle);
  --lean-btn-tone-text: var(--color-secondary-text);
  --lean-btn-tone-ink: var(--color-on-secondary);
  --lean-btn-tone-hover-ink: var(--color-on-secondary-hover);
}
.btn-warning, .btn-outline-warning {
  --lean-btn-tone: var(--color-warning);
  --lean-btn-tone-hover: color-mix(in srgb, var(--color-warning) 95%, #000);
  --lean-btn-tone-soft: var(--color-warning-subtle);
  --lean-btn-tone-text: var(--color-warning-text);
  --lean-btn-tone-ink: var(--color-text);
}
.btn-info, .btn-outline-info {
  --lean-btn-tone: var(--color-info);
  --lean-btn-tone-hover: color-mix(in srgb, var(--color-info) 90%, #000);
  --lean-btn-tone-soft: var(--color-info-subtle);
  --lean-btn-tone-text: var(--color-info-text);
  --lean-btn-tone-ink: var(--color-surface);
}
.btn-success, .btn-outline-success {
  --lean-btn-tone: var(--color-success);
  --lean-btn-tone-hover: color-mix(in srgb, var(--color-success) 90%, #000);
  --lean-btn-tone-soft: var(--color-success-subtle);
  --lean-btn-tone-text: var(--color-success-text);
  --lean-btn-tone-ink: var(--color-surface);
}
.btn-danger, .btn-outline-danger {
  --lean-btn-tone: var(--color-danger);
  --lean-btn-tone-hover: var(--color-danger-hover);
  --lean-btn-tone-soft: var(--color-danger-subtle);
  --lean-btn-tone-text: var(--color-danger-text);
  --lean-btn-tone-ink: var(--color-surface);
}
.btn-secondary, .btn-warning, .btn-info, .btn-success, .btn-danger {
  --lean-btn-background: var(--lean-btn-tone);
  --lean-btn-border: var(--lean-btn-tone);
  --lean-btn-color: var(--lean-btn-tone-ink);
  --lean-btn-hover-background: var(--lean-btn-tone-hover);
  --lean-btn-hover-border: var(--lean-btn-tone-hover);
  --lean-btn-hover-color: var(--lean-btn-tone-hover-ink, var(--lean-btn-tone-ink));
  --lean-btn-active-background: color-mix(in srgb, var(--lean-btn-hover-background) 90%, #000);
}
.btn-outline, .btn-default, .btn-light, .btn-dark,
.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger,
.btn-outline-info, .btn-outline-warning, .btn-outline-light, .btn-outline-dark {
  --lean-btn-background: var(--color-surface);
  --lean-btn-border: var(--color-border);
  --lean-btn-color: var(--lean-btn-tone-text, var(--color-text));
  --lean-btn-hover-background: var(--lean-btn-tone-soft, var(--color-primary-soft));
  --lean-btn-hover-border: var(--lean-btn-tone, var(--color-primary));
  --lean-btn-hover-color: var(--lean-btn-tone-text, var(--color-primary-text));
  --lean-btn-active-background: color-mix(in srgb, var(--lean-btn-hover-background) 92%, var(--color-muted));
}
.btn-ghost, .btn-link {
  --lean-btn-background: transparent;
  --lean-btn-border: transparent;
  --lean-btn-active-background: color-mix(in srgb, var(--color-primary-soft) 92%, var(--color-muted));
}
.btn-md { --lean-btn-height: var(--button-height-md); --lean-btn-padding-inline: var(--button-padding-inline); --lean-btn-font-size: var(--font-size-sm); }
.btn-sm, .btn-xs, .btn-group-sm > .btn { --lean-btn-height: var(--button-height-sm); --lean-btn-padding-inline: var(--button-padding-inline); --lean-btn-font-size: var(--font-size-sm); }
.btn-lg, .btn-group-lg > .btn { --lean-btn-height: var(--button-height-lg); --lean-btn-padding-inline: var(--button-padding-inline-lg); --lean-btn-font-size: var(--font-size-md); }
.btn.btn-icon { width: var(--lean-btn-height); min-width: var(--lean-btn-height); --lean-btn-padding-inline: 0px; }
.btn.btn-icon > i { margin: 0; }
.btn.lean-list-filter-toggle { position: relative; flex: none; width: var(--control-height); min-width: var(--control-height); height: var(--control-height); padding: 0; }
.lean-list-filter-toggle[aria-expanded='true'] { --lean-btn-background: var(--color-primary-soft); --lean-btn-border: var(--color-primary-border); --lean-btn-color: var(--color-primary-text); }
.lean-list-filter-toggle[data-active-count]::after,
.lean-shell-cart-count { position: absolute; top: -3px; right: -3px; display: inline-flex; min-width: 13px; height: 13px; align-items: center; justify-content: center; border: 0; border-radius: var(--radius-control); padding: 0 2px; background: var(--color-secondary); color: var(--color-surface); font-size: 9px; font-weight: var(--font-weight-bold); line-height: 1; }
.lean-list-filter-toggle[data-active-count]::after { content: attr(data-active-count); }

.btn.list-row-action {
  --lean-btn-background: transparent;
  --lean-btn-border: transparent;
  --lean-btn-color: var(--color-muted);
  --lean-btn-hover-background: var(--color-primary);
  --lean-btn-hover-border: transparent;
  --lean-btn-hover-color: var(--color-on-primary);
  width: 32px;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
}
.btn.list-row-action:not(:disabled):not(.disabled):not([aria-disabled='true']) { --lean-btn-color: var(--color-text); }
.btn.list-row-action > svg, .btn.list-row-action > i { width: var(--icon-size-md); height: var(--icon-size-md); font-size: var(--icon-size-md); }
.btn.list-row-action--danger { --lean-btn-hover-background: var(--color-danger-subtle); --lean-btn-hover-color: var(--color-danger-text); }
.btn.list-row-action--info { --lean-btn-hover-background: var(--color-info-subtle); --lean-btn-hover-color: var(--color-info-text); }
.btn.list-row-action:focus-visible {
  background: var(--lean-btn-hover-background);
  color: var(--lean-btn-hover-color) !important;
}
.btn.list-row-action--danger:focus-visible { outline-color: var(--color-danger); }
.btn.list-row-action--info:focus-visible { outline-color: var(--color-info); }
.changeViewBtn.btn-outline-primary {
  --lean-btn-border: var(--color-primary-border);
  --lean-btn-background: var(--color-primary-soft);
}

/* DataTables yazdırma kontrolleri dinamik üretilir; olay bağlantıları korunur. */
.dt-buttons .dt-button.btn {
  display: inline-flex !important;
  min-height: var(--lean-btn-height);
  padding: 0 var(--lean-btn-padding-inline);
  border: 1px solid var(--lean-btn-border) !important;
  border-radius: var(--radius-control);
  background: var(--lean-btn-background) !important;
  color: var(--lean-btn-color) !important;
  font-family: var(--font-sans);
  font-size: var(--lean-btn-font-size);
  font-weight: var(--button-font-weight);
  line-height: 1.25;
  text-shadow: none;
  text-transform: none;
  box-shadow: none;
}
.dt-buttons .dt-button.btn:is(:hover, :active):not(:disabled):not(.disabled) {
  border-color: var(--lean-btn-hover-border) !important;
  background: var(--lean-btn-current-background, var(--lean-btn-hover-background)) !important;
  color: var(--lean-btn-hover-color) !important;
}


.btn-close, .modal .btn-close {
  display: inline-flex;
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  flex: none;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--color-muted);
  opacity: 1;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.btn-close::before {
  content: '';
  width: var(--icon-size-md);
  height: var(--icon-size-md);
  background: currentColor;
  mask: var(--tabler-mask-x) center / contain no-repeat;
}
.btn-close:hover:not(:disabled) { background: var(--color-primary-soft); color: var(--color-primary); opacity: 1; }
.btn-close:focus:not(:focus-visible) { outline: none; box-shadow: none; }
.btn-close:focus-visible { outline: var(--border-width) solid var(--color-focus-ring); outline-offset: 2px; box-shadow: none; }

/* Rozetler ve durum göstergeleri. */
.badge {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: var(--radius-control);
  padding: 2px 10px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.6;
  white-space: nowrap;
}
.badge-neutral {
  background: var(--color-primary-soft);
  color: var(--color-muted);
}
.badge-success {
  --status-border: var(--color-success-border);
  background: var(--color-success-subtle);
  color: var(--color-success-text);
}
.badge-warning {
  --status-border: var(--color-warning-border);
  background: var(--color-warning-subtle);
  color: var(--color-warning-text);
}
.badge-danger {
  --status-border: var(--color-danger-border);
  background: var(--color-alert-surface-strong);
  color: var(--color-alert-text);
}
.badge-info {
  --status-border: var(--color-info-border);
  background: var(--color-info-subtle);
  color: var(--color-info-text);
}
.badge-secondary {
  --status-border: var(--color-secondary-border);
  background: var(--color-secondary-subtle);
  color: var(--color-secondary-text);
}
.badge:is(.badge-success, .badge-warning, .badge-danger, .badge-info, .badge-secondary) { box-shadow: inset 0 0 0 1px var(--status-border); }
/* Noktalı durumlar yüzeysiz kalır; tablo ölçüleri değişmez. */
.badge:has(> .status-dot) {
  min-height: 0;
  justify-content: flex-start;
  gap: 7px;
  padding: 0;
  background: transparent;
  box-shadow: none;
  color: var(--color-text);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  vertical-align: middle;
}
.status-dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--status-color, var(--color-muted)); }
.badge-success { --status-color: var(--color-success); }
.badge-warning { --status-color: var(--color-warning); }
.badge-danger { --status-color: var(--color-danger); }
.badge-neutral { --status-color: var(--color-muted); }
.badge-info { --status-color: var(--color-info); }
.badge-secondary { --status-color: var(--color-secondary); }
.status-dot:is(.badge-success, .badge-warning, .badge-danger, .badge-neutral, .badge-info, .badge-secondary) { background: var(--status-color); }

/* Eski bileşenlerin nötr renkleri ortak palete bağlanır. */
.text-body, .text-dark, .text-black { color: var(--color-text) !important; }
.text-muted, .text-body-secondary, .text-body-tertiary { color: var(--color-muted) !important; }
.bg-light, .bg-body, .bg-body-secondary, .bg-body-tertiary, .bg-gray { background-color: var(--color-background) !important; }
.bg-gray { color: var(--color-text); }
.bg-white { background-color: var(--color-surface) !important; }
.form-text, .dropdown-header, .list-group-item.disabled { color: var(--color-muted); }
.card, .modal-content, .popover, .list-group-item:where(:not([class*='list-group-item-'])) { color: var(--color-text); }
.input-group-text, .page-link, .toast-header, .popover-header { color: var(--color-text); }
.input-group-text, .toast-header, .popover-header { background-color: var(--color-background); }
.dropdown-menu, .popover, .list-group-item:where(:not([class*='list-group-item-'])) { background-color: var(--color-surface); }
.page-item.disabled .page-link { color: var(--color-muted); background-color: var(--color-surface); }
.page-link:hover { color: var(--color-primary); background-color: var(--color-primary-soft); }
.page-item.active .page-link, .list-group-item.active { color: var(--color-on-primary); background-color: var(--color-primary); }
.lean-part-oem-list,
.lean-part-field .lean-product-code,
.lean-catalog-product-meta .lean-catalog-product-code,
.lean-product-detail-meta .lean-product-code { color: var(--color-text); }
body .dataTables_wrapper :is(.dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_processing, .dataTables_paginate) { color: var(--color-muted); }
body .dataTables_wrapper .dataTables_paginate .paginate_button:not(.current):not(.disabled) { color: var(--color-text) !important; }
body .dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.current):not(.disabled) { background: var(--color-primary-soft); color: var(--color-primary) !important; }
body .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { background: var(--color-primary); color: var(--color-on-primary) !important; }
body .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
body .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
body .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { background: transparent; color: var(--color-muted) !important; }

/* Yalnız kenarlık rengi uyarlanır; genişlikler ve gizli kenarlar korunur. Etkileşim ve doğrulama kuralları önceliklidir. */
.img-thumbnail,
.card .card,
.card-footer,
.input-group-text,
.dropdown-menu,
.accordion-button,
.accordion-collapse,
.list-group-item,
.list-group-item[class*='list-group-item-'],
.alert[class*='alert-'],
.toast,
.toast-header,
.popover,
.popover-header,
.dropdown-header,
.dropdown-divider,
.card-body + .demo-code-preview,
.nav-tabs,
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus,
.page-link,
.page-link:hover,
.page-item.disabled .page-link,
.navbar-light .navbar-toggler,
.vakata-context,
.vakata-context ul,
.vakata-context .vakata-context-separator > a,
.vakata-context .vakata-context-separator > a:hover,
.vakata-context li > a .vakata-contextmenu-sep,
.jstree-default-responsive .jstree-wholerow {
  border-color: var(--color-border);
}
hr { color: var(--color-border); opacity: 1; }
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  border-color: var(--color-border) var(--color-border) var(--color-surface);
}
.page-item.active .page-link,
.list-group-item.active { border-color: var(--color-primary); }

/* Açılır bilgi oklarının şeffaf yan kenarları korunur. */
.bs-popover-top > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^='top'] > .popover-arrow::before { border-top-color: var(--color-border); }
.bs-popover-end > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^='right'] > .popover-arrow::before { border-right-color: var(--color-border); }
.bs-popover-bottom > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^='bottom'] > .popover-arrow::before { border-bottom-color: var(--color-border); }
.bs-popover-start > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^='left'] > .popover-arrow::before { border-left-color: var(--color-border); }
.bs-popover-bottom .popover-header::before,
.bs-popover-auto[data-popper-placement^='bottom'] .popover-header::before { border-bottom-color: var(--color-border); }

/* Bootstrap kenarlık yardımcılarındaki !important renklerini geçersiz kılar. */
.border { border-color: var(--color-border) !important; }
.border-top { border-top-color: var(--color-border) !important; }
.border-end { border-right-color: var(--color-border) !important; }
.border-bottom { border-bottom-color: var(--color-border) !important; }
.border-start { border-left-color: var(--color-border) !important; }
.border-light, .border-dark { border-color: var(--color-border) !important; }
.border-primary { border-color: var(--color-primary) !important; }
.border-info { border-color: var(--color-info) !important; }
.border-secondary { border-color: var(--color-secondary) !important; }
.border-success { border-color: var(--color-success) !important; }
.border-warning { border-color: var(--color-warning) !important; }
.border-danger { border-color: var(--color-danger) !important; }
.border-white { border-color: var(--color-surface) !important; }

/* Sayfaya ait DataTables stilleri ortak stillerden sonra yüklenebilir. */
.table,
.table > :not(caption) > * > *,
body .dataTables_wrapper table.dataTable,
body .dataTables_wrapper table.dataTable :is(thead, tbody, tfoot) :is(th, td),
body .dataTables_wrapper table.dataTable:is(.row-border, .cell-border, .display) tbody :is(th, td),
body .dataTables_wrapper table.dataTable.cell-border tbody tr :is(th, td):first-child,
body .dataTables_wrapper.no-footer .dataTables_scrollBody {
  border-color: var(--color-border);
}
body .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
body .dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled) {
  border-color: var(--color-primary);
}

/* Kartlar. */
.card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  box-shadow: none;
}
.card-header,
.card-footer {
  background: transparent;
}
.card-header {
  display: flex;
  box-sizing: border-box;
  min-height: var(--card-header-height);
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--color-border);
  padding: var(--row-padding-block) var(--card-padding-inline);
}
.card-body {
  padding: var(--card-padding);
}
.card-title,
.lean-dashboard-section-heading h2,
.lean-dashboard-chart-heading h2,
.lean-dashboard-products-heading h2,
.lean-finance-heading h2,
.lean-dashboard-analysis .lean-analysis-heading h2 {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--card-title-font-size);
  font-weight: var(--card-title-font-weight);
  font-style: normal;
  line-height: 1.5;
  letter-spacing: normal;
  text-transform: uppercase;
}
.card-subtitle {
  margin: 2px 0 0;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
}
.card-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Sekmeler yalnız görünümü paylaşır; veri yükleme ve klavye davranışı ilgili ekrana aittir. */
.lean-tab-bar { display: flex; box-sizing: border-box; min-height: var(--card-header-height); align-items: center; justify-content: space-between; gap: 12px; padding: var(--row-padding-block) var(--card-padding-inline); background: var(--color-surface); }
.lean-tabs { display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); width: fit-content; max-width: 100%; min-width: 0; gap: 8px; background: var(--color-surface); }
.lean-tab { position: relative; display: inline-flex; box-sizing: border-box; min-width: 0; min-height: var(--tab-height); align-items: center; justify-content: center; gap: 6px; margin: 0; border: 0; border-bottom: 2px solid transparent; border-radius: var(--radius-control); padding: var(--card-padding); background: transparent; color: var(--color-muted); font: inherit; font-family: var(--font-sans); font-size: var(--tab-font-size); font-weight: var(--tab-font-weight); font-style: normal; line-height: 1.5; letter-spacing: normal; text-transform: uppercase; text-align: center; white-space: nowrap; cursor: pointer; transition: color var(--duration-fade) ease, border-color var(--duration-fade) ease; }
.lean-tab:is([aria-selected='true'], [aria-pressed='true']) { border-bottom-color: var(--tab-active-color, var(--color-primary)); color: var(--tab-active-color, var(--color-primary)); }
.lean-tab:focus:not(:focus-visible) { outline: none; }
.lean-tab:focus-visible { outline: 2px solid var(--color-focus-ring); outline-offset: -3px; }
.lean-tab:disabled { cursor: default; }
.lean-tab :is(.lean-icon, .lean-tab-icon) { display: inline-flex; flex: none; width: var(--icon-size-md); height: var(--icon-size-md); align-items: center; justify-content: center; }
@media (prefers-reduced-motion: reduce) { .lean-tab { transition: none; } }

/* Tablolar. */
.table,
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-md);
  color: var(--color-text);
}
.table { min-width: 100%; margin-bottom: 0; }
/* DataTables sıralama işaretlerinin mevcut hizası korunur. */
table.dataTable thead .sorting:before,
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after {
  top: 50%;
  transform: translateY(-50%);
}
.table th,
.data-table th,
.table td,
.data-table td {
  border-bottom: 1px solid var(--color-table-divider);
  padding: 13px var(--card-padding-inline);
  text-align: left;
  vertical-align: middle;
}
.table thead th,
.data-table thead th {
  background: var(--color-surface-subtle);
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.table tbody td,
.data-table tbody td {
  color: var(--color-text);
  font-size: var(--font-size-md);
}
.table tbody tr:hover,
.data-table tbody tr:hover {
  background: var(--color-surface-subtle);
}
/* Tablo başlığı yalnız kaydırılabilir sarmalayıcı içinde sabitlenir. */
.table-responsive > .table > thead th,
.data-table-wrap > .data-table > thead th,
.data-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.data-table-wrap {
  overflow: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
}
.data-table-empty {
  padding: 24px var(--card-padding-inline);
  color: var(--color-hint);
  font-size: var(--font-size-md);
  text-align: center;
}
.data-table-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px var(--card-padding-inline);
  border-top: 1px solid var(--color-border);
}
.data-table-pagination-summary {
  color: var(--color-hint);
  font-size: var(--font-size-sm);
}
.data-table-pagination-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}
.data-table-pagination-button {
  min-height: 30px;
  min-width: 30px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}
.data-table-pagination-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.data-table-actions-column {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

/* Form alanları. */
.form-label,
.field-label {
  display: block;
  margin-bottom: 4px;
  color: var(--color-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: normal;
  text-transform: none;
}
.select2-container--default .select2-selection .select2-selection__rendered,
.select2-container--classic .select2-selection .select2-selection__rendered,
.select2-container--default .select2-results__option,
.select2-container--classic .select2-results__option { color: var(--color-text); }
.select2-container--default .select2-selection .select2-selection__placeholder,
.select2-container--classic .select2-selection .select2-selection__placeholder { color: var(--color-muted); }
.select2-container--default .select2-selection,
.select2-container--classic .select2-selection,
.select2-dropdown { background-color: var(--color-surface); }
.select2-container--classic .select2-selection { background-image: none; }
.select2-container--default .select2-results__option--selected,
.select2-container--classic .select2-results__option--selected,
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable { background-color: var(--color-primary-soft); color: var(--color-primary); }
.select2-container--default .select2-results__option--disabled,
.select2-container--classic .select2-results__option--disabled { color: var(--color-muted); }
.select2-dropdown,
.select2.select2-container .select2-selection,
.select2-container--default .select2-selection,
.select2-container--default .select2-selection__choice,
.select2-container--default .select2-selection__choice__remove,
.select2-container--classic .select2-selection,
.select2-container--classic .select2-selection__choice,
.select2-container--classic .select2-selection__arrow,
.select2-container .select2-search--dropdown .select2-search__field,
.form-check-input {
  border-color: var(--color-border);
}
.form-check-input:checked,
.form-check-input[type='checkbox']:indeterminate {
  border-color: var(--color-primary);
  background-color: var(--color-primary);
}
.form-check-input {
  transition: none;
}
.form-check-input:active {
  filter: none;
}
.input-group .btn.btn-light,
.input-group .btn.btn-outline-light { border-color: var(--lean-btn-border); }
.input-group .btn.btn-light:hover,
.input-group .btn.btn-outline-light:hover { border-color: var(--lean-btn-hover-border); }
.input-group .form-control + .btn.btn-outline-light { border-right-color: var(--lean-btn-border); }
.input-group .form-control + .btn.btn-outline-light:hover { border-right-color: var(--lean-btn-hover-border); }

.form-control,
.field-input,
.ui-input,
.form-select {
  display: block;
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  padding: 6px 12px;
  color: var(--color-text);
  font-family: inherit;
  font-size: var(--font-size-control);
  line-height: 1.4;
  transition: border-color 0.18s, box-shadow 0.18s;
}
input.form-control,
input.field-input,
input.ui-input { height: 40px; padding: 0 12px; }
/* Çoklu ve çok satırlı seçimler Bootstrap yerleşimini korur. */
.form-select:not([multiple]):not([size]) {
  height: 40px;
  padding: 0 40px 0 12px;
}
.form-control::placeholder,
.field-input::placeholder,
.ui-input::placeholder {
  color: var(--color-muted);
}
.form-control:focus,
.field-input:focus,
.ui-input:focus,
.form-select:focus {
  color: var(--color-text);
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-soft);
  outline: none;
}
.form-check-input:focus {
  border-color: var(--color-primary);
  box-shadow: none;
  outline: none;
}
.form-check-input:focus-visible {
  outline: var(--border-width) solid var(--color-focus-ring);
  outline-offset: 2px;
}
.select2-container--default.select2-container--focus .select2-selection,
.select2-container--default.select2-container--open .select2-selection,
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection,
.select2-container--classic .select2-selection:focus,
.select2-container--classic.select2-container--open .select2-selection {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px var(--color-primary-soft) !important;
}
.select2-container .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px var(--color-primary-soft);
  outline: none;
}
/* Geçersiz alan yalnız kenarlık rengiyle işaretlenir. */
.form-control[aria-invalid='true'],
.field-input[aria-invalid='true'],
.ui-input[aria-invalid='true'],
.form-control.is-invalid,
.form-select.is-invalid {
  border-color: var(--color-danger);
  background-image: none;
}
.form-control[aria-invalid='true']:focus,
.field-input[aria-invalid='true']:focus,
.ui-input[aria-invalid='true']:focus,
.form-control.is-invalid:focus,
.form-select.is-invalid:focus {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px var(--color-danger-subtle);
}
.form-control:disabled,
.field-input:disabled,
.ui-input:disabled,
.form-select:disabled {
  background: var(--color-primary-soft);
  color: var(--color-muted);
  cursor: not-allowed;
}
/* Kimlik doğrulama formlarının alan boşlukları auth.css içinde yönetilir. */
.field,
.ui-field {
  display: grid;
  align-content: start;
  gap: 4px;
  margin-bottom: 8px;
}
.field-input-wrap {
  position: relative;
}
.field-hint,
.ui-field-hint {
  color: var(--color-hint);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.6;
}
.field-error,
.ui-field-error {
  display: block;
  margin-top: 0;
  color: var(--color-danger);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: 1.4;
}

.field.is-invalid .form-control,
.field.is-invalid .field-input,
.field-error .form-control,
.field-error .field-input {
  border-color: var(--color-danger);
}

/* Modallar. */
.modal {
  position: fixed;
  inset: 0;
  z-index: 1080;
  height: 100dvh;
  overscroll-behavior: contain;
}
/* Bootstrap kapanışı modal kökünde bekler; kök ve panel geçiş süreleri eşit tutulur. */
.fade { transition-duration: var(--duration-fade); }
.modal.fade { opacity: 1; transition: opacity var(--duration-fade) ease-out; }
.modal.fade .modal-dialog { opacity: 0; transform: translateY(8px); transition: opacity var(--duration-fade) ease-out, transform var(--duration-fade) ease-out; }
.modal.show .modal-dialog { opacity: 1; transform: none; }
.modal-backdrop,
.modal-overlay {
  position: fixed;
  inset: 0;
  background: var(--color-overlay);
}
.modal-backdrop { z-index: 1070; touch-action: none; }
.modal-backdrop.fade { opacity: 0; transition: opacity var(--duration-fade) ease-out; }
.modal-backdrop.show { opacity: 1; }
.modal-panel,
.modal-content {
  position: relative;
  display: flex;
  overflow: hidden;
  max-height: 86vh;
  max-height: min(
    86vh,
    900px,
    calc(100dvh - var(--modal-root-padding) - var(--modal-root-padding))
  );
  flex-direction: column;
  border: 0;
  border-radius: var(--radius-control);
  background: var(--color-surface);
  box-shadow: var(--shadow-modal);
}
.modal-panel::before,
.modal-content::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: 3px;
  background: var(--color-primary);
  content: '';
}
.modal-dialog { --lean-modal-width: 580px; }
.modal-dialog:not([class*='modal-fullscreen']) {
  display: flex;
  align-items: center;
  min-height: calc(100% - var(--modal-root-padding) - var(--modal-root-padding));
  max-width: min(var(--lean-modal-width), calc(100% - var(--modal-root-padding) - var(--modal-root-padding)));
  margin: var(--modal-root-padding) auto;
}
.modal-dialog-scrollable { height: calc(100% - var(--modal-root-padding) - var(--modal-root-padding)); }
.modal-dialog.modal-xs { --lean-modal-width: 360px; }
.modal-dialog.modal-sm { --lean-modal-width: 460px; }
.modal-dialog.modal-md { --lean-modal-width: 580px; }
.modal-dialog.modal-lg { --lean-modal-width: 740px; }
.modal-dialog.modal-xl { --lean-modal-width: 940px; }
.modal-dialog.modal-xxl { --lean-modal-width: 1120px; }
.modal-header {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--color-border);
  padding: 12px;
}
.modal-header:has(.modal-description) { align-items: flex-start; }
.modal-heading { min-width: 0; flex: 1 1 auto; }
.modal-description { margin: 3px 0 0; color: var(--color-hint); font-size: var(--font-size-sm); overflow-wrap: anywhere; }
.modal-header-actions { display: inline-flex; flex: none; align-items: center; gap: 12px; }
.modal-icon { display: inline-flex; width: 38px; height: 38px; flex: none; align-items: center; justify-content: center; border-radius: var(--radius-control); background: var(--color-primary-soft); color: var(--color-primary); }
.modal-icon svg { width: var(--icon-size-lg); height: var(--icon-size-lg); }
.modal-title {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-bold);
  line-height: 1.3;
  text-transform: capitalize;
  overflow-wrap: anywhere;
}
.modal-body {
  position: relative;
  container: modal-body / inline-size;
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 12px;
  font-size: var(--font-size-md);
}
.modal .modal-section-title, .lean-shell-settings .modal-section-title {
  margin: 0 0 6px;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 4px;
  color: var(--color-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: 1.5;
  letter-spacing: .06em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
/* Kart ve bölüm başlıklarında işaret firma rengini, metin normal yazı rengini kullanır. */
.lean-profile-section-heading h3,
.lean-cart-summary h2 { text-transform: uppercase; }
.card-title::before,
.lean-dashboard-section-heading h2::before,
.lean-dashboard-chart-heading h2::before,
.lean-dashboard-products-heading h2::before,
.lean-finance-heading h2::before,
.lean-dashboard-analysis .lean-analysis-heading h2::before,
.lean-profile-section-heading h3::before,
.lean-cart-summary h2::before,
.modal .modal-section-title::before,
.lean-shell-settings .modal-section-title::before {
  content: '# ';
  color: var(--color-primary);
  white-space: pre;
}
.modal-form-grid > .modal-section-title { grid-column: 1 / -1; margin-bottom: 0; }
.modal-form-grid > .modal-section-title:not(:first-of-type) { margin-top: 12px; }
.modal-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
  padding: 12px;
}
.modal-footer > * { margin: 0; }
.modal-footer:has(.modal-footer-start) { display: grid; grid-template-columns: minmax(0, 1fr); }
.modal-footer-start { min-width: 0; overflow-wrap: anywhere; color: var(--color-hint); font-size: var(--font-size-xs); line-height: 1.45; }
.modal-footer-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; }
.modal-footer-actions > .btn { flex: 0 0 auto; min-width: 6.5rem; white-space: nowrap; }
/* Yeni form rolleri yalnız açıkça kullanıldıkları alanlara uygulanır. */
.modal-form-grid { display: grid; gap: 12px; }
.modal-form-grid > * { min-width: 0; }
.modal-form-grid > .field, .modal-form-grid > .ui-field { margin-bottom: 0; }
.modal-form-span, .modal-form-actions { grid-column: 1 / -1; }
@container modal-body (min-width: 560px) {
  .modal-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .fade, .modal.fade, .modal.fade .modal-dialog, .modal-backdrop.fade { transition: none; }
  .modal.fade .modal-dialog { transform: none; }
}
@media (max-width: 620px) {
  .modal { --modal-root-padding: 14px; }
  .modal-content { max-height: calc(100dvh - var(--modal-root-padding) - var(--modal-root-padding)); }
  .modal-header {
    padding: 12px;
  }
  .modal-title {
    font-size: var(--font-size-md);
  }
  .modal-body {
    padding: 12px;
  }
  .modal-footer {
    padding: 12px;
  }
  .modal-description { font-size: var(--font-size-xs); }
  .modal-icon { width: 32px; height: 32px; }
  .modal-footer:has(.modal-footer-actions) { display: grid; grid-template-columns: minmax(0, 1fr); }
  .modal-footer-actions { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; }
  .modal-footer-actions > .btn { width: 100%; min-width: 0; white-space: normal; }
}
body.modal-open {
  overflow: hidden;
  overscroll-behavior: none;
}
/* Modallar aynı arka plan kaydırma alanını ve konumunu korur. */
body.modal-open .lean-app-scroll { overflow-y: hidden !important; }
@media (min-width: 1024px) {
  body.modal-open:has(.lean-app-shell) { overflow: visible; }
}

/* Yükleme iskeleti. */
.skeleton {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-control);
  background: var(--color-skeleton);
  animation: lean-ui-skeleton-breathe 1.15s ease-in-out infinite;
  animation-delay: var(--skeleton-delay, 0s);
}
.skeleton::after {
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    rgb(255 255 255 / 0%) 0%,
    rgb(255 255 255 / 50%) 35%,
    rgb(255 255 255 / 95%) 50%,
    rgb(255 255 255 / 50%) 65%,
    rgb(255 255 255 / 0%) 100%
  );
  animation: lean-ui-skeleton-shimmer 1.15s linear infinite;
  animation-delay: var(--skeleton-delay, 0s);
  content: '';
}
@keyframes lean-ui-skeleton-shimmer {
  to { transform: translateX(100%); }
}
@keyframes lean-ui-skeleton-breathe {
  50% { opacity: 0.55; }
}

/* Bildirimler. */
#toast-container.toast-top-right {
  top: 24px;
  right: 24px;
  width: 356px;
  max-width: calc(100vw - 32px);
}
html:has(body.modal-open) { overflow: hidden; overscroll-behavior: none; }
.modal-header, .modal-footer { flex-shrink: 0; }
#toast-container > .toast {
  --toast-text: var(--color-text);
  --toast-border: var(--color-border);
  --toast-indicator: var(--color-muted);
  --toast-icon: var(--tabler-mask-info-circle);
  display: grid;
  grid-template-columns: var(--icon-size-md) minmax(0, 1fr);
  column-gap: 8px;
  row-gap: 2px;
  align-items: center;
  width: 100%;
  max-width: 100%;
  margin: 0 0 14px;
  overflow: visible;
  border: 1px solid var(--toast-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  padding: 12px 14px;
  box-shadow: var(--shadow-card);
  background-image: none !important;
  color: var(--toast-text);
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  letter-spacing: normal;
  font-size: var(--font-size-md);
  line-height: 1.5;
  opacity: 1;
  filter: none;
}
#toast-container > .toast:hover {
  box-shadow: var(--shadow-card);
  cursor: default;
}
#toast-container > .toast::before {
  content: '';
  grid-column: 1;
  grid-row: 1;
  width: var(--icon-size-md);
  height: var(--icon-size-md);
  margin: 0;
  border-radius: var(--radius-control);
  background: var(--toast-indicator);
  -webkit-mask: var(--toast-icon) center / contain no-repeat;
  mask: var(--toast-icon) center / contain no-repeat;
}
#toast-container > .toast:has(.toast-title)::before {
  grid-row: 1 / span 2;
}
#toast-container .toast-title,
#toast-container .toast-message {
  grid-column: 2;
  overflow-wrap: anywhere;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  line-height: 1.5;
}
#toast-container .toast-title + .toast-message {
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: 1.4;
}
#toast-container .toast-close-button svg { width: var(--icon-size-sm); height: var(--icon-size-sm); }
#toast-container > .toast-success {
  --toast-border: var(--color-success-border);
  --toast-text: var(--color-success-text);
  --toast-indicator: var(--color-success);
  --toast-icon: var(--tabler-mask-circle-check);
  background: var(--color-success-subtle);
}
#toast-container > .toast-info {
  --toast-border: var(--color-info-border);
  --toast-text: var(--color-info-text);
  --toast-indicator: var(--color-info);
  background: var(--color-info-subtle);
}
#toast-container > .toast-warning {
  --toast-border: var(--color-warning-border);
  --toast-text: var(--color-warning-text);
  --toast-indicator: var(--color-warning);
  --toast-icon: var(--tabler-mask-alert-triangle);
  background: var(--color-warning-subtle);
}
#toast-container > .toast-error {
  --toast-border: var(--color-alert-border);
  --toast-text: var(--color-alert-text);
  --toast-indicator: var(--color-danger);
  --toast-icon: var(--tabler-mask-circle-x);
  background: var(--color-danger-subtle);
}
#toast-container .toast-message a,
#toast-container .toast-message label { color: inherit; }
#toast-container .toast-close-button {
  position: absolute;
  top: 0;
  left: 0;
  right: auto;
  transform: translate(-35%, -35%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid var(--toast-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--toast-text);
  text-shadow: none;
  opacity: 1;
  filter: none;
  cursor: pointer;
}
#toast-container .toast-close-button:hover {
  background: var(--color-background);
  color: var(--toast-text);
  opacity: 1;
}
#toast-container .toast-close-button:focus { outline: none; }
#toast-container .toast-close-button:focus-visible {
  box-shadow: 0 0 0 2px var(--toast-border);
}
#toast-container .toast-progress {
  background: var(--toast-text);
  opacity: 0.2;
}
@media (max-width: 600px) {
  #toast-container.toast-top-right {
    top: 16px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}

/* Sayfa başlığı ve araç çubuğu. */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.page-title {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-semibold);
}
.page-subtitle {
  margin: 0;
  color: var(--color-hint);
  font-size: var(--font-size-sm);
}
.page-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.breadcrumb,
.page-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
  color: var(--color-muted);
  font-size: var(--font-size-sm);
  list-style: none;
}
.breadcrumb li + li::before {
  margin-right: 6px;
  color: var(--color-border);
  content: '/';
}

/* Ortak yan menü sınıfları. Aktif uygulama kabuğu app-shell.css içindedir. */
.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow-y: auto;
  padding: 8px 14px 24px;
}
.sidebar-link {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 40px;
  margin-top: 4px;
  border-radius: var(--radius-control);
  padding: 8px 11px;
  color: var(--color-muted);
  font-size: var(--font-size-md);
  text-transform: capitalize;
  transition: background-color 0.18s ease, color 0.18s ease;
}
.sidebar-link svg, .sidebar-link i {
  width: 16px;
  height: 16px;
  color: var(--color-sidebar-icon);
  font-size: var(--font-size-md);
  line-height: 1;
}
.sidebar-link:hover {
  background: var(--color-primary-soft);
  color: var(--color-primary);
  text-decoration: none;
}
.sidebar-link.active {
  background: var(--color-primary);
  color: var(--color-on-primary);
  font-weight: var(--font-weight-semibold);
  box-shadow: var(--shadow-sidebar-active);
  text-decoration: none;
}
.sidebar-link:hover svg, .sidebar-link:hover i, .sidebar-link.active svg, .sidebar-link.active i {
  color: currentColor;
}
.nav-group-label {
  display: block;
  padding: 0 10px;
  color: var(--color-sidebar-label);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

/* Ortak durum sınıfları. */
.is-loading { cursor: wait; }
.is-spinning { animation: lean-ui-spin 0.9s linear infinite; }
.is-current { font-weight: var(--font-weight-semibold); }
.is-hidden { display: none !important; }
@keyframes lean-ui-spin {
  to { transform: rotate(360deg); }
}

/* Klavye odağı ve erişilebilirlik. */
/* Ortak odak halkası, kendi kenarlık veya gölge durumunu yöneten bileşenleri etkilemez. */
:focus:not(:focus-visible) {
  outline: none;
}
:focus-visible {
  outline: var(--border-width) solid var(--color-focus-ring);
  outline-offset: 2px;
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Kaydırma çubuğu. */
.data-table-wrap::-webkit-scrollbar,
.textarea-scroll::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}
.data-table-wrap::-webkit-scrollbar-thumb,
.textarea-scroll::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: var(--radius-control);
  background: var(--color-border);
  background-clip: padding-box;
}
.data-table-wrap::-webkit-scrollbar-thumb:hover,
.textarea-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--color-muted);
  background-clip: padding-box;
}
.data-table-wrap::-webkit-scrollbar-track,
.textarea-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.data-table-wrap::-webkit-scrollbar-button,
.textarea-scroll::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}

/* Azaltılmış hareket tercihi. */
@media (prefers-reduced-motion: reduce) {
  .btn { transition: none; }
  .skeleton,
  .skeleton::after,
  .is-spinning {
    animation: none;
  }
}

/* Arayüz dili seçicisi. */
.lean-ui-lang__shell {
  display: inline-flex;
  align-items: stretch;
  overflow: visible;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.lean-ui-lang__shell:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-soft);
}
.lean-ui-lang__shell--header,
.lean-ui-lang__shell--auth {
  background: var(--color-surface);
}
.lean-ui-lang__icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 0 0.45rem 0 0.7rem;
  color: var(--color-muted);
  font-size: 1.05rem;
}
.lean-ui-lang__dropdown {
  display: inline;
  position: relative;
}
.lean-ui-lang__toggle {
  min-width: 6.75rem;
  max-width: 11rem;
  padding: 0.35rem 0.55rem 0.35rem 0.35rem;
  border: none !important;
  border-radius: var(--radius-control);
  background: transparent !important;
  box-shadow: none !important;
  color: var(--color-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  line-height: 1.25;
}
.lean-ui-lang__toggle:hover,
.lean-ui-lang__toggle:focus,
.lean-ui-lang__toggle:active,
.lean-ui-lang__toggle.show {
  color: var(--color-primary) !important;
  background: var(--color-primary-soft) !important;
}
.lean-ui-lang__toggle:focus {
  outline: none;
}
.lean-ui-lang__toggle-text {
  max-width: 7.5rem;
}
.lean-ui-lang__chev {
  flex-shrink: 0;
  margin-left: 0.2rem;
  font-size: 0.7rem;
  opacity: 0.65;
  transition: transform 0.2s ease;
}
.lean-ui-lang__toggle.show .lean-ui-lang__chev {
  transform: rotate(-180deg);
}
.lean-ui-lang__menu {
  z-index: 1060;
  min-width: 15rem;
  max-width: min(18rem, 92vw);
  max-height: min(22rem, 70vh);
  transition: margin-top var(--duration-fade), opacity var(--duration-fade);
  overflow-x: hidden;
  overflow-y: auto;
  margin-top: 0.45rem !important;
  padding: 0.4rem;
  border-radius: var(--radius-control) !important;
  background: var(--color-surface);
  box-shadow: 0 12px 40px rgb(12 26 50 / 14%), 0 4px 12px rgb(12 26 50 / 8%) !important;
}
.lean-ui-lang__menu .lean-ui-lang__option {
  border: none;
  border-radius: var(--radius-control);
  color: var(--color-hint);
  font-size: var(--font-size-md);
  transition: background-color 0.12s ease, color 0.12s ease;
}
.lean-ui-lang__menu .lean-ui-lang__option:focus {
  background: transparent;
  color: var(--color-primary);
}
.lean-ui-lang__menu .lean-ui-lang__option:hover:not(.is-current) {
  background: var(--color-primary-soft) !important;
  color: var(--color-primary);
}
.lean-ui-lang__menu .lean-ui-lang__option.is-current,
.lean-ui-lang__menu .lean-ui-lang__option.active {
  background: var(--color-primary-soft) !important;
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
}
.lean-ui-lang__opt-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
  padding: 0.2rem 0.35rem;
  border-radius: var(--radius-control);
  background: var(--color-surface-muted);
  color: var(--color-muted);
  font-family: var(--font-family-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.02em;
}
.lean-ui-lang__opt-name {
  font-weight: var(--font-weight-medium);
}
.lean-ui-lang__check {
  flex-shrink: 0;
  font-size: var(--font-size-lg);
}
@media (min-width: 768px) {
  .lean-ui-lang__toggle {
    min-width: 7.5rem;
    max-width: 12rem;
  }
  .lean-ui-lang__toggle-text {
    max-width: 8.5rem;
  }
}



