/*
 * ELCO ERP — Bootstrap 5.3.8 üzerine ELCO teması. Görünüm ana ELCO ERP (Python) uygulamasıyla aynıdır:
 * koyu yeşil yan menü, açık üst çubuk (geri · konum · saat), üst etiketli büyük sayfa başlığı,
 * beyaz paneller, açık zeminli form alanları ve yumuşak renkli etiketler.
 * Bootstrap: assets/vendor/bootstrap-5.3.8 (değiştirilmez). Burada renkler ve ölçüler Bootstrap
 * değişkenlerine bağlanır; Bootstrap'ta olmayan parçalar (kabuk, giriş ekranı, özet kartları,
 * mobil tablo kartları, sayı hücreleri) tanımlanır.
 * Tema <html data-bs-theme="light|dark"> ile seçilir. Yazılar zemine göre en az 4.5:1 kontrastlıdır.
 * Yazı boyutları sol menü dışında Bootstrap standardıdır (1rem; -sm .875rem; small .875em; h1–h6 Bootstrap).
 */

:root,
[data-bs-theme="light"] {
    --elco-sidebar: #172d30;
    --elco-sidebar-hover: rgba(255, 255, 255, .04);
    --elco-sidebar-active: #304748;
    --elco-sidebar-text: #a9bfba;
    --elco-sidebar-active-text: #edf3d9;
    --elco-sidebar-muted: #91a99f;
    --elco-sidebar-line: rgba(255, 255, 255, .086);
    --elco-accent: #a8cb91;
    --elco-primary: #172d30;
    --elco-primary-hover: #294548;
    --elco-primary-rgb: 23, 45, 48;
    --elco-green: #34725f;
    --elco-focus: #a9c5ab;
    --elco-focus-ring: rgba(148, 187, 168, .55);
    --elco-page: #f5f5f0;
    --elco-topbar: #f9f9f5;
    --elco-field: #fbfcf9;
    --elco-field-border: #dbe1d6;
    --elco-head: #fafbf8;
    --elco-row-line: #eff1ec;
    --elco-row-hover: #fafbf7;
    --elco-hover-soft: #f4f6f0;
    --elco-eyebrow: #587260;
    --elco-th: #465c52;
    --elco-crumb-sep: #c0c8be;
    --elco-accent-hover: #8cac90;

    /* Bootstrap kart, form alanı ve açılır listeleri gövde rengiyle boyar: gövde beyaz, sayfa zemini ayrı. */
    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-body-color: #203235;
    --bs-body-color-rgb: 32, 50, 53;
    --bs-emphasis-color: #172d30;
    --bs-secondary-color: #636e6b;
    --bs-secondary-bg: #eef0ec;
    --bs-tertiary-bg: #fafbf8;
    --bs-border-color: #e1e5de;
    --bs-border-color-translucent: rgba(23, 45, 48, .12);
    --bs-heading-color: #172d30;

    --bs-primary: #172d30;
    --bs-primary-rgb: 23, 45, 48;
    --bs-primary-text-emphasis: #172d30;
    --bs-primary-bg-subtle: #e3ebea;
    --bs-primary-border-subtle: #c3d3d1;
    --bs-success: #34725f;
    --bs-success-rgb: 52, 114, 95;
    --bs-success-text-emphasis: #285a4b;
    --bs-success-bg-subtle: #e8f1ea;
    --bs-success-border-subtle: #c5dccd;
    --bs-warning: #bd7034;
    --bs-warning-rgb: 189, 112, 52;
    --bs-warning-text-emphasis: #9a5420;
    --bs-warning-bg-subtle: #faf0e3;
    --bs-warning-border-subtle: #efd6b8;
    --bs-danger: #b45246;
    --bs-danger-rgb: 180, 82, 70;
    --bs-danger-text-emphasis: #9d463b;
    --bs-danger-bg-subtle: #faeeeb;
    --bs-danger-border-subtle: #efd3cd;
    --bs-info: #3e6c8a;
    --bs-info-rgb: 62, 108, 138;
    --bs-info-text-emphasis: #335a73;
    --bs-info-bg-subtle: #e9f1f6;
    --bs-info-border-subtle: #c9dbe7;
    --bs-link-color: #3e6c8a;
    --bs-link-color-rgb: 62, 108, 138;
    --bs-link-hover-color: #2c5068;
    --bs-link-hover-color-rgb: 44, 80, 104;
    --bs-border-radius: .4375rem;
    --bs-border-radius-lg: .75rem;
    --bs-font-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

[data-bs-theme="dark"] {
    --elco-sidebar: #0b1517;
    --elco-sidebar-hover: rgba(255, 255, 255, .05);
    --elco-sidebar-active: #1d3236;
    --elco-primary: #2f7a63;
    --elco-primary-hover: #3a8f75;
    --elco-primary-rgb: 47, 122, 99;
    --elco-green: #74c3a3;
    --elco-focus: #4f8a73;
    --elco-focus-ring: rgba(116, 195, 163, .35);
    --elco-page: #0f1a1c;
    --elco-topbar: #122023;
    --elco-field: #111f22;
    --elco-field-border: #2f4447;
    --elco-head: #1a2b2e;
    --elco-row-line: #22363a;
    --elco-row-hover: #182a2d;
    --elco-hover-soft: #1d3033;
    --elco-eyebrow: #8fb39a;
    --elco-th: #b5c7bf;
    --elco-crumb-sep: #4a5c59;
    --elco-accent-hover: #4f8a73;

    --bs-body-bg: #152427;
    --bs-body-bg-rgb: 21, 36, 39;
    --bs-body-color: #e2eae7;
    --bs-body-color-rgb: 226, 234, 231;
    --bs-emphasis-color: #f1f5f3;
    --bs-secondary-color: #94a5a0;
    --bs-secondary-bg: #213538;
    --bs-tertiary-bg: #1a2b2e;
    --bs-border-color: #2a3d40;
    --bs-heading-color: #e2eae7;

    --bs-primary: #2f7a63;
    --bs-primary-rgb: 47, 122, 99;
    --bs-primary-text-emphasis: #cfe0da;
    --bs-primary-bg-subtle: #1b3a30;
    --bs-primary-border-subtle: #2d5446;
    --bs-success: #74c3a3;
    --bs-success-rgb: 116, 195, 163;
    --bs-success-text-emphasis: #9bd6be;
    --bs-success-bg-subtle: #1b3a30;
    --bs-success-border-subtle: #2d5446;
    --bs-warning: #e3a066;
    --bs-warning-rgb: 227, 160, 102;
    --bs-warning-text-emphasis: #e9b688;
    --bs-warning-bg-subtle: #3a2a1a;
    --bs-warning-border-subtle: #5a4128;
    --bs-danger: #e8897b;
    --bs-danger-rgb: 232, 137, 123;
    --bs-danger-text-emphasis: #eea397;
    --bs-danger-bg-subtle: #3d2420;
    --bs-danger-border-subtle: #5a322b;
    --bs-info: #8cb8d6;
    --bs-info-rgb: 140, 184, 214;
    --bs-info-text-emphasis: #a9cbe2;
    --bs-info-bg-subtle: #1b2f3c;
    --bs-info-border-subtle: #2c4659;
    --bs-link-color: #8cb8d6;
    --bs-link-color-rgb: 140, 184, 214;
    --bs-link-hover-color: #b0d0e6;
    --bs-link-hover-color-rgb: 176, 208, 230;
}

body { background-color: var(--elco-page); }

/* Bootstrap 5.3 bağlantıların altını çizer; uygulamada yalnız üzerine gelince çizilir. */
a { text-decoration: none; }
a:hover { text-decoration: underline; }
a.btn:hover, a.nav-link:hover, a.dropdown-item:hover, a.card:hover, a.app-brand:hover, .page-link:hover { text-decoration: none; }

/* ---------------------------------------------------------------- Düğmeler
 * Bootstrap'ın derlenmiş CSS'i btn-success / warning / info … renklerini sabit yazar (#198754 …),
 * tema değişkenlerini kullanmaz. Burada sekiz rengin hepsi ELCO tonlarıyla yeniden tanımlanır.
 * --b: dolgu, --h: üzerine gelince, --t: dolgu üstündeki yazı, --o: kenarlıklı düğmenin yazısı.
 * Beyaz yazılı dolgular en az 4.5:1 kontrastlıdır (WCAG AA).
 *
 * Kullanım kuralı (her alanda tek dolgulu düğme):
 *   asıl işlem (Yeni …, Fatura kes, Sevk et …) btn-primary · kaydet / onayla btn-success
 *   düzenle btn-outline-warning · yazdır / CSV / içe aktar / yedek btn-outline-info
 *   ara / süz / kopyala / ilgili sayfaya git btn-outline-secondary
 *   sil / geri al / iptal btn-outline-danger · vazgeç / ← geri btn-link
 */
:root,
[data-bs-theme="light"] {
    --eb-primary: #172d30;   --eb-primary-h: #213f43;   --eb-primary-t: #fff;   --eb-primary-o: #172d30;
    --eb-secondary: #5d6b67; --eb-secondary-h: #4d5956; --eb-secondary-t: #fff; --eb-secondary-o: #4d5956;
    --eb-success: #34725f;   --eb-success-h: #2a5d4d;   --eb-success-t: #fff;   --eb-success-o: #285a4b;
    --eb-danger: #b45246;    --eb-danger-h: #9d463b;    --eb-danger-t: #fff;    --eb-danger-o: #9d463b;
    --eb-warning: #a65d24;   --eb-warning-h: #8c4e1e;   --eb-warning-t: #fff;   --eb-warning-o: #8c4e1e;
    --eb-info: #3e6c8a;      --eb-info-h: #335a73;      --eb-info-t: #fff;      --eb-info-o: #335a73;
    --eb-light: #eef0ec;     --eb-light-h: #e1e5de;     --eb-light-t: #203235;  --eb-light-o: #4d5956;
    --eb-dark: #0f1a1c;      --eb-dark-h: #203235;      --eb-dark-t: #fff;      --eb-dark-o: #0f1a1c;
    --eb-dark-border: #0f1a1c;
}
[data-bs-theme="dark"] {
    --eb-primary: #2f7a63;   --eb-primary-h: #3a8f75;   --eb-primary-t: #fff;    --eb-primary-o: #9bd6be;
    --eb-secondary: #4a5c59; --eb-secondary-h: #566a66; --eb-secondary-t: #fff;  --eb-secondary-o: #b5c2be;
    --eb-success: #74c3a3;   --eb-success-h: #8bd0b4;   --eb-success-t: #0f1a1c; --eb-success-o: #9bd6be;
    --eb-danger: #e8897b;    --eb-danger-h: #eea397;    --eb-danger-t: #0f1a1c;  --eb-danger-o: #eea397;
    --eb-warning: #e3a066;   --eb-warning-h: #e9b688;   --eb-warning-t: #0f1a1c; --eb-warning-o: #e9b688;
    --eb-info: #8cb8d6;      --eb-info-h: #a9cbe2;      --eb-info-t: #0f1a1c;    --eb-info-o: #a9cbe2;
    --eb-light: #e2eae7;     --eb-light-h: #f1f5f3;     --eb-light-t: #0f1a1c;   --eb-light-o: #e2eae7;
    --eb-dark: #0b1517;      --eb-dark-h: #1a2c2f;      --eb-dark-t: #e2eae7;    --eb-dark-o: #e2eae7;
    --eb-dark-border: #3a5054; /* koyu zeminde koyu düğme kaybolmasın */
}
.btn-primary,   .btn-outline-primary   { --b: var(--eb-primary);   --h: var(--eb-primary-h);   --t: var(--eb-primary-t);   --o: var(--eb-primary-o);   --e: var(--b); }
.btn-secondary, .btn-outline-secondary { --b: var(--eb-secondary); --h: var(--eb-secondary-h); --t: var(--eb-secondary-t); --o: var(--eb-secondary-o); --e: var(--b); }
.btn-success,   .btn-outline-success   { --b: var(--eb-success);   --h: var(--eb-success-h);   --t: var(--eb-success-t);   --o: var(--eb-success-o);   --e: var(--b); }
.btn-danger,    .btn-outline-danger    { --b: var(--eb-danger);    --h: var(--eb-danger-h);    --t: var(--eb-danger-t);    --o: var(--eb-danger-o);    --e: var(--b); }
.btn-warning,   .btn-outline-warning   { --b: var(--eb-warning);   --h: var(--eb-warning-h);   --t: var(--eb-warning-t);   --o: var(--eb-warning-o);   --e: var(--b); }
.btn-info,      .btn-outline-info      { --b: var(--eb-info);      --h: var(--eb-info-h);      --t: var(--eb-info-t);      --o: var(--eb-info-o);      --e: var(--b); }
.btn-light,     .btn-outline-light     { --b: var(--eb-light);     --h: var(--eb-light-h);     --t: var(--eb-light-t);     --o: var(--eb-light-o);     --e: var(--b); }
.btn-dark,      .btn-outline-dark      { --b: var(--eb-dark);      --h: var(--eb-dark-h);      --t: var(--eb-dark-t);      --o: var(--eb-dark-o);      --e: var(--eb-dark-border); }
:is(.btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-warning, .btn-info, .btn-light, .btn-dark) {
    --bs-btn-color: var(--t); --bs-btn-bg: var(--b); --bs-btn-border-color: var(--e);
    --bs-btn-hover-color: var(--t); --bs-btn-hover-bg: var(--h); --bs-btn-hover-border-color: var(--h);
    --bs-btn-active-color: var(--t); --bs-btn-active-bg: var(--h); --bs-btn-active-border-color: var(--h);
    --bs-btn-disabled-color: var(--t); --bs-btn-disabled-bg: var(--b); --bs-btn-disabled-border-color: var(--e);
}
/* "2b" (kullanıcının seçtiği, dugme-ornekleri.html): Bootstrap'ın kenarlıklı düğmesi — şeffaf zemin, kendi renginde
   çerçeve ve yazı; üzerine gelince kendi rengiyle dolar. Ölçüler (yükseklik, köşe, yazı) ana ELCO ERP ile aynıdır. */
:is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-success, .btn-outline-danger, .btn-outline-warning,
    .btn-outline-info, .btn-outline-light, .btn-outline-dark) {
    --bs-btn-color: var(--o); --bs-btn-bg: transparent; --bs-btn-border-color: var(--e);
    --bs-btn-hover-color: var(--t); --bs-btn-hover-bg: var(--b); --bs-btn-hover-border-color: var(--b);
    --bs-btn-active-color: var(--t); --bs-btn-active-bg: var(--b); --bs-btn-active-border-color: var(--b);
    --bs-btn-disabled-color: var(--o); --bs-btn-disabled-bg: transparent; --bs-btn-disabled-border-color: var(--e);
}
.btn-link { --bs-btn-color: var(--bs-link-color); --bs-btn-hover-color: var(--bs-link-hover-color); --bs-btn-active-color: var(--bs-link-hover-color); text-decoration: none; }
.btn-link:hover { text-decoration: underline; }
/* Yazı boyu ve iç boşluk Bootstrap'ın standardıdır (1rem; -sm .875rem; -lg 1.25rem). Burada yalnız köşe, kalınlık ve odak halkası ayarlanır. */
.btn {
    --bs-btn-font-weight: 500; --bs-btn-border-radius: 7px; --bs-btn-border-radius-sm: 6px; --bs-btn-border-radius-lg: 8px;
    --bs-btn-focus-box-shadow: 0 0 0 3px var(--elco-focus-ring);
    white-space: nowrap;
}

/* ---------------------------------------------------------------- Form alanları (ana uygulama: açık zemin, ince çerçeve; yazı boyu Bootstrap standardı) */

.form-control, .form-select {
    color: var(--bs-body-color); background-color: var(--elco-field); border-color: var(--elco-field-border); border-radius: 6px;
}
.form-control::placeholder { color: var(--bs-secondary-color); opacity: .9; }
textarea.form-control { min-height: 70px; }
.form-control-sm, .form-select-sm { border-radius: 6px; }
.form-control:focus, .form-select:focus {
    background-color: var(--bs-body-bg); border-color: var(--elco-focus);
    box-shadow: 0 0 0 1px var(--bs-body-bg), 0 0 0 3px var(--elco-focus-ring);
}
.form-control:disabled, .form-select:disabled, .form-control[readonly] { background-color: var(--bs-secondary-bg); }
.form-label { font-weight: 500; color: var(--bs-body-color); }
.form-check-input { border-color: var(--elco-field-border); }
.form-check-input:focus { border-color: var(--elco-focus); box-shadow: 0 0 0 3px var(--elco-focus-ring); }
.form-check-input:checked { background-color: var(--elco-green); border-color: var(--elco-green); }
.input-group-text { background-color: var(--elco-head); border-color: var(--elco-field-border); }

/* ---------------------------------------------------------------- Paneller, tablolar, etiketler */

.card {
    --bs-card-border-color: var(--bs-border-color); --bs-card-border-radius: 12px; --bs-card-inner-border-radius: 11px;
    --bs-card-cap-padding-y: 18px; --bs-card-cap-padding-x: 20px; --bs-card-cap-bg: transparent;
    --bs-card-spacer-y: 20px; --bs-card-spacer-x: 22px;
    box-shadow: none;
}
.card-header { border-bottom-color: var(--bs-border-color); }
.card-header :is(h2, h3, h4, .h4, .h5, .h6) { margin-bottom: 0; font-weight: 700; letter-spacing: -.3px; }
/* Kart başlığının altındaki açıklama Bootstrap "small" boyutunda. */
.card-header p { font-size: .875em; }
.card-body > :is(h2, h3).h6:first-child, .card-body > :is(h2, h3).h5:first-child { font-weight: 700; letter-spacing: -.2px; margin-bottom: 14px; }
.card-footer { padding: 14px 20px; background: var(--elco-head); border-top-color: var(--bs-border-color); }
.card-footer.bg-transparent { background: var(--bs-body-bg) !important; }
/* Panelin üstündeki arama / süzgeç şeridi: Bootstrap card-header içinde form (ana uygulamadaki "toolbar"). */
form.card-header { padding-top: 16px; padding-bottom: 16px; }
.card-header .form-check { margin-bottom: 0; }
.card-header .search-input { flex-basis: 11rem; }
/* Arama ve tarih aralığı: Bootstrap Input group; simgeler soluk. */
.input-group-text .bi { color: var(--bs-secondary-color); }
.date-range { flex: 0 1 21rem; width: auto; }
.date-range .form-control { min-width: 0; }
.page-link.active, .active > .page-link { font-weight: 700; }

/* Tarih seçici (vanillajs-datepicker, Bootstrap 5 teması): renkler Bootstrap / ELCO değişkenlerine bağlanır, gece temasına uyar.
   Seçili gün kenarlıklıdır (dolgulu değil); bugün ve aralık yumuşak zeminle gösterilir. */
.datepicker-dropdown { z-index: 1030; }
.datepicker-picker { background-color: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: 10px; }
.datepicker-dropdown .datepicker-picker { box-shadow: 0 16px 60px rgba(23, 45, 48, .19); }
.datepicker-title, .datepicker-footer { background-color: var(--elco-head); box-shadow: none; border-top: 1px solid var(--bs-border-color); }
.datepicker-controls .btn { border-color: transparent; background-color: transparent; color: var(--bs-body-color); }
.datepicker-controls .btn:hover, .datepicker-controls .btn:focus, .datepicker-controls .btn:not(:disabled):active {
    border-color: var(--bs-border-color); background-color: var(--elco-hover-soft); color: var(--bs-emphasis-color);
}
.datepicker-controls .btn:focus, .datepicker-controls .btn:not(:disabled):active:focus { box-shadow: 0 0 0 3px var(--elco-focus-ring); }
.datepicker-controls .btn:disabled { border-color: transparent; background-color: transparent; color: var(--bs-secondary-color); }
.datepicker-footer .datepicker-controls .btn { color: var(--bs-link-color); }
.datepicker .dow { color: var(--elco-th); }
.datepicker-cell:not(.disabled):hover { background-color: var(--elco-hover-soft); }
.datepicker-cell.focused:not(.selected) { background-color: var(--bs-secondary-bg); }
.datepicker-cell.prev:not(.disabled), .datepicker-cell.next:not(.disabled), .datepicker-cell.disabled { color: var(--bs-secondary-color); }
.datepicker-cell.selected, .datepicker-cell.selected:hover,
.datepicker-cell.range-start:not(.selected), .datepicker-cell.range-end:not(.selected) {
    background-color: var(--bs-body-bg); color: var(--eb-primary-o); font-weight: 700; box-shadow: inset 0 0 0 2px var(--eb-primary-o);
}
.datepicker-cell.prev.selected, .datepicker-cell.next.selected { color: var(--eb-primary-o); }
.datepicker-cell.today:not(.selected), .datepicker-cell.today:not(.selected):not(.disabled) {
    background-color: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis);
}
.datepicker-cell.today.focused:not(.selected) { background-color: var(--bs-success-border-subtle); }
.datepicker-cell.range, .datepicker-cell.range.focused, .datepicker-cell.range:not(.disabled):not(.focused):not(.today):hover { background-color: var(--bs-secondary-bg); }
.datepicker-input.in-edit { border-color: var(--elco-focus); }
.datepicker-input.in-edit:focus, .datepicker-input.in-edit:active { box-shadow: 0 0 0 1px var(--bs-body-bg), 0 0 0 3px var(--elco-focus-ring); }
/* Tek başına duran tarih kutusunda sağda takvim simgesi (Bootstrap'ın açılır liste okundaki gibi SVG); aralıkta simge solda. */
.form-control.datepicker-input {
    padding-right: 2.25rem; background-repeat: no-repeat; background-position: right .75rem center; background-size: 16px 16px;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23636e6b'%3e%3cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .form-control.datepicker-input {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2394a5a0'%3e%3cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3e%3c/svg%3e");
}
.date-range .form-control.datepicker-input { padding-right: .75rem; background-image: none; }
/* Bağlantılı kart (stretched-link) üzerine gelince çerçeve yeşillenir. */
.card:has(.stretched-link):hover { border-color: var(--elco-accent-hover); }
.card-text.fs-2 { letter-spacing: -1px; font-variant-numeric: tabular-nums; }

.table {
    --bs-table-bg: transparent; --bs-table-hover-bg: var(--elco-row-hover); --bs-table-border-color: var(--elco-row-line);
    --bs-table-striped-bg: var(--elco-row-hover);
}
.table > thead th {
    font-weight: 700; letter-spacing: 0; text-transform: none;
    color: var(--elco-th); background: var(--elco-head); border-bottom: 1px solid var(--bs-border-color); white-space: nowrap;
}
.table > :not(caption) > * > * { padding: 14px 12px; }
.table-sm > :not(caption) > * > * { padding: 9px 10px; }
.table > tfoot > tr > * { background: var(--elco-head); }
.card > .table-responsive > .table > :not(caption) > tr > :first-child, .card > .table > :not(caption) > tr > :first-child { padding-left: 20px; }
.card > .table-responsive > .table > :not(caption) > tr > :last-child, .card > .table > :not(caption) > tr > :last-child { padding-right: 20px; }
.card > .table-responsive > .table > tbody > tr:last-child > *, .card > .table > tbody > tr:last-child > * { border-bottom-width: 0; }
.table td small, .table td .small { color: var(--bs-secondary-color); }
.table a { font-weight: 500; }

.badge {
    --bs-badge-font-weight: 500; --bs-badge-border-radius: 5px;
    display: inline-flex; align-items: center; gap: 5px; vertical-align: middle;
}
/* Üst etiket: Bootstrap "small" boyutunda, büyük harf. */
.eyebrow { font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--elco-eyebrow); }

/* Sekmeler: Bootstrap Tabs (nav-tabs) — seçili sekme dolgulu değil, kenarlıklı (beyaz zemin + çerçeve). */
.nav-tabs {
    --bs-nav-link-font-weight: 600;
    --bs-nav-link-color: var(--bs-secondary-color); --bs-nav-link-hover-color: var(--bs-emphasis-color);
    --bs-nav-tabs-border-color: var(--bs-border-color); --bs-nav-tabs-border-radius: 8px;
    --bs-nav-tabs-link-hover-border-color: var(--bs-border-color) var(--bs-border-color) transparent;
    --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
    --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
}
.nav-tabs .nav-link:not(.active):hover { background: var(--elco-hover-soft); }

.alert { --bs-alert-border-radius: 10px; }
.alert-light { --bs-alert-bg: var(--elco-head); --bs-alert-border-color: var(--bs-border-color); --bs-alert-color: var(--bs-body-color); }

.pagination {
    --bs-pagination-border-radius: 6px;
    --bs-pagination-color: var(--bs-body-color); --bs-pagination-bg: var(--bs-body-bg); --bs-pagination-border-color: var(--bs-border-color);
    --bs-pagination-hover-color: var(--bs-body-color); --bs-pagination-hover-bg: var(--elco-hover-soft); --bs-pagination-hover-border-color: var(--elco-accent-hover);
    /* Etkin sayfa dolgulu değil, kenarlıklı (2b: alandaki tek dolgu asıl işleme ayrılır). */
    --bs-pagination-active-bg: var(--bs-body-bg); --bs-pagination-active-color: var(--eb-primary-o); --bs-pagination-active-border-color: var(--eb-primary-o);
    --bs-pagination-focus-box-shadow: 0 0 0 3px var(--elco-focus-ring); --bs-pagination-disabled-bg: var(--bs-body-bg);
    gap: 4px; margin-bottom: 0;
}
.pagination .page-item .page-link { margin-left: 0; border-radius: var(--bs-pagination-border-radius); }

.dropdown-menu {
    --bs-dropdown-border-radius: 10px; --bs-dropdown-border-color: var(--bs-border-color); --bs-dropdown-link-active-bg: var(--elco-primary);
    --bs-dropdown-link-hover-bg: var(--elco-hover-soft);
    box-shadow: 0 16px 60px rgba(23, 45, 48, .19);
}
.modal {
    --bs-modal-border-radius: 14px; --bs-modal-inner-border-radius: 13px; --bs-modal-border-color: var(--bs-border-color);
    --bs-modal-header-padding: 22px 28px; --bs-modal-padding: 24px 28px; --bs-modal-footer-bg: var(--elco-head);
    --bs-modal-box-shadow: 0 25px 100px rgba(10, 37, 43, .2);
}
.modal-content { box-shadow: var(--bs-modal-box-shadow); }
.modal-title { font-weight: 600; letter-spacing: -.5px; }
.modal-footer { padding: 16px 28px; }
.modal-backdrop { --bs-backdrop-bg: #0b242c; --bs-backdrop-opacity: .4; }
.modal-backdrop.show { backdrop-filter: blur(3px); }
.progress { --bs-progress-bar-bg: var(--elco-green); --bs-progress-height: .5rem; --bs-progress-bg: var(--bs-secondary-bg); --bs-progress-border-radius: 99px; }
/* Progress genişliği: CSP satır içi style'a izin vermediği için %0–%100 sınıfları (progress_bar() yardımcısı kullanır). */
.w-pct-0{width:0%}.w-pct-1{width:1%}.w-pct-2{width:2%}.w-pct-3{width:3%}.w-pct-4{width:4%}.w-pct-5{width:5%}.w-pct-6{width:6%}.w-pct-7{width:7%}.w-pct-8{width:8%}.w-pct-9{width:9%}
.w-pct-10{width:10%}.w-pct-11{width:11%}.w-pct-12{width:12%}.w-pct-13{width:13%}.w-pct-14{width:14%}.w-pct-15{width:15%}.w-pct-16{width:16%}.w-pct-17{width:17%}.w-pct-18{width:18%}.w-pct-19{width:19%}
.w-pct-20{width:20%}.w-pct-21{width:21%}.w-pct-22{width:22%}.w-pct-23{width:23%}.w-pct-24{width:24%}.w-pct-25{width:25%}.w-pct-26{width:26%}.w-pct-27{width:27%}.w-pct-28{width:28%}.w-pct-29{width:29%}
.w-pct-30{width:30%}.w-pct-31{width:31%}.w-pct-32{width:32%}.w-pct-33{width:33%}.w-pct-34{width:34%}.w-pct-35{width:35%}.w-pct-36{width:36%}.w-pct-37{width:37%}.w-pct-38{width:38%}.w-pct-39{width:39%}
.w-pct-40{width:40%}.w-pct-41{width:41%}.w-pct-42{width:42%}.w-pct-43{width:43%}.w-pct-44{width:44%}.w-pct-45{width:45%}.w-pct-46{width:46%}.w-pct-47{width:47%}.w-pct-48{width:48%}.w-pct-49{width:49%}
.w-pct-50{width:50%}.w-pct-51{width:51%}.w-pct-52{width:52%}.w-pct-53{width:53%}.w-pct-54{width:54%}.w-pct-55{width:55%}.w-pct-56{width:56%}.w-pct-57{width:57%}.w-pct-58{width:58%}.w-pct-59{width:59%}
.w-pct-60{width:60%}.w-pct-61{width:61%}.w-pct-62{width:62%}.w-pct-63{width:63%}.w-pct-64{width:64%}.w-pct-65{width:65%}.w-pct-66{width:66%}.w-pct-67{width:67%}.w-pct-68{width:68%}.w-pct-69{width:69%}
.w-pct-70{width:70%}.w-pct-71{width:71%}.w-pct-72{width:72%}.w-pct-73{width:73%}.w-pct-74{width:74%}.w-pct-75{width:75%}.w-pct-76{width:76%}.w-pct-77{width:77%}.w-pct-78{width:78%}.w-pct-79{width:79%}
.w-pct-80{width:80%}.w-pct-81{width:81%}.w-pct-82{width:82%}.w-pct-83{width:83%}.w-pct-84{width:84%}.w-pct-85{width:85%}.w-pct-86{width:86%}.w-pct-87{width:87%}.w-pct-88{width:88%}.w-pct-89{width:89%}
.w-pct-90{width:90%}.w-pct-91{width:91%}.w-pct-92{width:92%}.w-pct-93{width:93%}.w-pct-94{width:94%}.w-pct-95{width:95%}.w-pct-96{width:96%}.w-pct-97{width:97%}.w-pct-98{width:98%}.w-pct-99{width:99%}.w-pct-100{width:100%}
.list-group {
    --bs-list-group-border-color: var(--elco-row-line); --bs-list-group-item-padding-y: 12px; --bs-list-group-item-padding-x: 20px;
    --bs-list-group-action-hover-bg: var(--elco-row-hover); --bs-list-group-action-active-bg: var(--elco-hover-soft);
    --bs-list-group-action-color: var(--bs-body-color); --bs-list-group-action-hover-color: var(--bs-emphasis-color);
    --bs-list-group-action-active-color: var(--bs-emphasis-color);
    --bs-list-group-active-bg: var(--elco-primary); --bs-list-group-active-border-color: var(--elco-primary);
}
.list-group-item small, .list-group-item .small { color: var(--bs-secondary-color); }
.card > .list-group-flush:last-child > .list-group-item:last-child { border-bottom-width: 0; }
/* Akordeon (Genel bakışın telefon görünümü): Bootstrap Accordion, yalnız tema değişkenleri. Köşe kartlarla aynı; açık başlık
 * kart alt çubuğu zemininde; odak halkası ve ok rengi temadan (Bootstrap'ın kendi değeri mavidir). */
.accordion {
    --bs-accordion-border-color: var(--bs-border-color); --bs-accordion-border-radius: 12px; --bs-accordion-inner-border-radius: 11px;
    --bs-accordion-active-bg: var(--elco-head); --bs-accordion-active-color: var(--bs-emphasis-color);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 3px var(--elco-focus-ring);
    --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon);
}
[data-bs-theme="dark"] .accordion-button::after {
    --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='%2394a5a0' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon);
}
.tooltip { --bs-tooltip-bg: var(--elco-primary); }
.breadcrumb {
    --bs-breadcrumb-divider-color: var(--elco-crumb-sep);
    --bs-breadcrumb-item-active-color: var(--bs-body-color);
    color: var(--bs-secondary-color); white-space: nowrap;
}
.breadcrumb-item.active { min-width: 0; font-weight: 500; }
.breadcrumb a { color: inherit; font-weight: 400; }
.breadcrumb a:hover { color: var(--bs-body-color); }
/* Başlık boyutları Bootstrap standardı (h1 2.5rem … h6 1rem); yalnız kalınlık ve harf aralığı ayarlanır. */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { letter-spacing: -.3px; }
.h4 { font-weight: 600; }
.h5, .h6 { font-weight: 700; }

/* Bootstrap Icons: düğme / menü öğesi / sekme esnek kutudur; "gap" simge ile metin arasına boşluk koyar
   (metin ayrı öğe sayılır), yalnız simgeli düğmede boşluk oluşmaz. */
.bi { line-height: 1; vertical-align: -.125em; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.btn > .bi { font-size: 1.1em; }
.dropdown-item { display: flex; align-items: center; gap: .5rem; }
.dropdown-item > .bi { width: 1.1rem; text-align: center; }
.nav-pills .nav-link, .nav-tabs .nav-link { display: inline-flex; align-items: center; gap: 7px; }
.alert > .bi:first-child, .card-title > .bi:first-child { margin-inline-end: .5rem; }

/* ---------------------------------------------------------------- Kabuk (ana ELCO ERP düzeni) */

.app-shell { display: flex; min-height: 100vh; }
.app-sidebar {
    --bs-offcanvas-width: 260px;
    --bs-offcanvas-bg: var(--elco-sidebar);
    --bs-offcanvas-color: var(--elco-sidebar-text);
    display: flex; flex-direction: column;
    background: var(--elco-sidebar);
    color: var(--elco-sidebar-text);
}
/* Geniş ekranda sabit sütun (Bootstrap offcanvas-lg burada arka planı şeffaf yapar; renk dış kutudadır). */
@media (min-width: 992px) {
    .app-side {
        position: sticky; top: 0; display: flex; flex-direction: column; flex: 0 0 238px; width: 238px; height: 100vh;
        overflow-y: auto; background: var(--elco-sidebar); scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .15) transparent;
    }
    .app-sidebar { flex: 1 0 auto; }
}
.app-sidebar-inner { display: flex; flex-direction: column; flex: 1 0 auto; padding: 32px 20px 18px; overflow-y: auto; }
.app-sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.app-brand { display: inline-flex; align-items: flex-end; gap: 11px; padding: 0 12px; color: #fff; text-decoration: none; }
.app-brand:hover { color: #fff; text-decoration: none; }
.app-brand img { display: block; width: 72px; height: auto; }
.app-brand-caption { margin-bottom: 6px; font-size: 10px; letter-spacing: 2px; color: #91a5a0; }
.app-nav { display: flex; flex-direction: column; margin-top: 22px; }
.nav-group + .nav-group { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--elco-sidebar-line); }
.nav-group-title { margin: 0 12px 7px; font-size: 9px; font-weight: 600; letter-spacing: 1.6px; line-height: 1.5; text-transform: uppercase; color: var(--elco-sidebar-muted); }
/* Yan menü: Bootstrap "nav nav-pills flex-column" — koyu zemin renkleri değişkenlerle verilir. */
.app-nav .nav-pills {
    --bs-nav-pills-border-radius: 8px; --bs-nav-pills-link-active-bg: var(--elco-sidebar-active); --bs-nav-pills-link-active-color: var(--elco-sidebar-active-text);
    --bs-nav-link-padding-x: 12px; --bs-nav-link-padding-y: 12px; --bs-nav-link-font-size: 13px; --bs-nav-link-font-weight: 400;
    --bs-nav-link-color: var(--elco-sidebar-text); --bs-nav-link-hover-color: #fff;
    display: flex; padding: 0; background: none; border: 0; border-radius: 0;
}
.app-nav .nav-link { display: flex; align-items: center; gap: 12px; min-height: 44px; line-height: 1.5; text-decoration: none; }
.app-nav .nav-link:not(.active):hover, .app-nav .nav-link:not(.active):focus-visible { background: var(--elco-sidebar-hover); }
.app-nav .bi { flex: 0 0 18px; width: 18px; font-size: 17px; text-align: center; }
.app-sidebar :focus-visible { outline: 2px solid #94bba8; outline-offset: 2px; }
.app-sidebar-foot { margin-top: auto; padding-top: 32px; }
.app-env { display: flex; align-items: center; gap: 9px; margin: 0 12px 22px; font-size: 11px; color: #c1ceca; }
.app-env i { flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--elco-accent); }
.app-env small { display: block; margin-top: 5px; font-size: 10px; color: #84a29b; }
.app-profile { display: flex; align-items: center; gap: 10px; padding: 19px 6px 0; border-top: 1px solid rgba(255, 255, 255, .063); color: #dde5df; text-decoration: none; }
.app-profile:hover { color: #fff; text-decoration: none; }
.app-profile b { display: block; overflow: hidden; font-size: 12px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.app-profile small { display: block; margin-top: 4px; overflow: hidden; font-size: 10px; color: #8da59f; text-overflow: ellipsis; white-space: nowrap; }
.app-profile > .bi { margin-left: auto; font-size: 12px; color: #8aa59d; }
.avatar { display: grid; place-items: center; flex: 0 0 33px; width: 33px; height: 33px; border-radius: 50%; background: #39524d; color: #dde5df; font-size: 11px; }

.app-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
/* Üst çubuk: Bootstrap Navbar (ana uygulamadaki açık şerit). */
.app-topbar {
    --bs-navbar-padding-y: 0; --bs-navbar-toggler-padding-y: 6px; --bs-navbar-toggler-padding-x: 9px;
    --bs-navbar-toggler-border-color: var(--bs-border-color); --bs-navbar-toggler-border-radius: 7px; --bs-navbar-toggler-focus-width: 3px;
    height: 74px; padding: 0 42px; background: var(--elco-topbar); border-bottom: 1px solid var(--bs-border-color);
    box-shadow: 0 2px 8px rgba(23, 45, 48, .04);
}
.app-topbar .navbar-toggler-icon { width: 1.25em; height: 1.25em; }
.app-topbar .btn-link[disabled] { opacity: .45; }
.clock { gap: 12px; margin-right: 8px; font-size: .875rem; color: var(--bs-secondary-color); }
.clock time { font-weight: 600; color: var(--bs-body-color); }

.app-content { width: 100%; max-width: 1550px; margin: 0 auto; padding: 37px 42px 20px; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.page-head-text { min-width: 0; }
.page-head h1 { margin: 9px 0 8px; font-weight: 600; letter-spacing: -1.1px; color: var(--bs-body-color); overflow-wrap: anywhere; }
.page-head p { margin: 0; color: var(--bs-secondary-color); }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 9px; }
.app-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 28px 2px 6px; font-size: .875rem; color: var(--bs-secondary-color); }
.footer-brand { display: flex; flex-direction: column; gap: 12px; }
.software-credit { display: flex; flex-direction: column; gap: 4px; }
.software-credit small { letter-spacing: .05em; }
.software-credit strong { font-weight: 600; color: var(--bs-body-color); }

@media (max-width: 1150px) {
    .app-topbar { padding: 0 25px; }
    .app-content { padding: 28px 25px 20px; }
}
@media (min-width: 992px) and (max-width: 1150px) {
    .app-side { flex-basis: 210px; width: 210px; }
    .app-sidebar-inner { padding: 30px 14px 18px; }
}
@media (max-width: 991.98px) {
    .app-topbar { height: 61px; padding: 0 14px; }
    .app-content { padding: 27px 18px 20px; }
    .page-head { flex-direction: column; align-items: flex-start; margin-bottom: 24px; }
    .page-actions { justify-content: flex-start; }
}

/* ---------------------------------------------------------------- Yardımcılar */

.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.thumb { width: 38px; height: 38px; object-fit: cover; border-radius: .4rem; border: 1px solid var(--bs-border-color); }
.thumb-empty { display: inline-flex; align-items: center; justify-content: center; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); font-size: .6rem; text-align: center; }
.photo-large { width: 120px; height: 120px; object-fit: cover; border-radius: .5rem; border: 1px solid var(--bs-border-color); }
.photo-preview { width: 96px; height: 96px; object-fit: cover; border-radius: .5rem; border: 1px solid var(--bs-border-color); }
.search-input { flex: 1 1 14rem; max-width: 24rem; }
.filter-select { width: auto; max-width: 16rem; }
.qty-input { max-width: 140px; }
.unit-input { max-width: 90px; }
.pct-input { max-width: 70px; }
.currency-select { max-width: 92px; }
.min-w-0 { min-width: 0; }
tr.reversed td { color: var(--bs-secondary-color); }
tr.reversed td.num { text-decoration: line-through; }
.dropdown-form { min-width: 18rem; }
.lines-table td { vertical-align: top; }
.lines-table .form-control, .lines-table .form-select { min-width: 80px; }
.lines-table [data-product-input] { min-width: 170px; }
.unit-cell { color: var(--bs-secondary-color); white-space: nowrap; }
/* Birim ve tutar yazısı satırdaki 38 px'lik Bootstrap kutusunun ortasına hizalanır (hücre 9 px + (38 − 24) / 2). */
.lines-table td.unit-cell, .lines-table td[data-line-total] { padding-top: 16px !important; }
.totals { min-width: 260px; }
.totals .grand { border-top: 1px solid var(--bs-border-color); padding-top: .4rem; font-size: 1.25rem; font-weight: 700; }
/* Çok seviyeli reçete ağacı: Bootstrap List group; alt seviyeler içeri girer. */
.tree .list-group-item.lvl-1 { padding-left: calc(var(--bs-list-group-item-padding-x) + 1.4rem); }
.tree .list-group-item.lvl-2 { padding-left: calc(var(--bs-list-group-item-padding-x) + 2.8rem); }
.tree .list-group-item:is(.lvl-3, .lvl-4, .lvl-5, .lvl-6) { padding-left: calc(var(--bs-list-group-item-padding-x) + 4.2rem); }
.code-block { font-family: var(--bs-font-monospace); font-size: .875em; line-height: 1.45; }

/* ---------------------------------------------------------------- Giriş / kurulum / hata (ana uygulamanın giriş ekranı) */

.guest-body { min-height: 100vh; background: var(--elco-page); }
.auth { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }
.auth-story {
    position: sticky; top: 0; display: flex; flex-direction: column; justify-content: space-between; height: 100vh;
    padding: 45px 65px; overflow: hidden; background: var(--elco-sidebar); color: #e6ecdf;
}
.auth-story .app-brand { padding: 0; }
.auth-story .eyebrow { color: #93b498; }
.auth-headline { margin: 25px 0; font-size: 64px; font-weight: 400; line-height: 1.06; letter-spacing: -3px; color: #e6ecdf; }
.auth-headline em { font-style: normal; color: #bed19f; }
.auth-lead { margin: 13px 0; line-height: 1.8; color: #91a79b; }
.auth-credit { padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: .875rem; line-height: 1.7; color: #a9bfba; }
.auth-credit strong { color: #e6ecdf; }
.auth-right { display: grid; place-items: center; padding: 40px; }
.auth-form { width: 100%; max-width: 340px; }
.auth-form-wide { max-width: 620px; }
.auth-title { margin: 15px 0; font-weight: 600; letter-spacing: -.5px; color: var(--bs-body-color); }
.auth-desc { margin: 12px 0 30px; line-height: 1.8; color: var(--bs-secondary-color); }
.auth-form .alert { margin-bottom: 22px; }
.auth-panel h2 { margin: 26px 0 6px; }
.btn-auth { justify-content: space-between; }
.auth-note { margin: 24px 0 30px; font-size: .875rem; text-align: center; color: var(--bs-secondary-color); }
@media (max-width: 1150px) {
    .auth-story { padding: 40px; }
    .auth-headline { font-size: 53px; }
}
@media (max-width: 760px) {
    .auth { grid-template-columns: 1fr; }
    .auth-story { position: static; gap: 12px; height: auto; min-height: 260px; padding: 24px 30px; }
    .auth-headline { margin: 20px 0 12px; font-size: 35px; letter-spacing: -1.5px; }
    .auth-headline br, .auth-lead { display: none; }
    .auth-credit { margin-top: 6px; padding-top: 14px; }
    .auth-right { place-items: start center; padding: 35px 27px; }
}

/* ---------------------------------------------------------------- Dar ekran
 * Liste sayfaları telefonda tablo yerine Bootstrap List group gösterir (d-none d-md-block / d-md-none);
 * yalnız okunan kalem tabloları Bootstrap'ın duyarlı tablosuyla (table-responsive) yana kaydırılır,
 * veri girilen kalem tabloları (table-stack) alt alta dizilir. */

@media (max-width: 767.98px) {
    form.card-header { padding: 14px; }
    .card-header .search-input, .card-header .date-range { flex: 1 1 100%; max-width: none; }
    .list-group-item.reversed { opacity: .7; }
    /* table-stack almamış kart tabloları sıkışmasın, yana kaydırılsın. */
    .card > .table-responsive > .table:not(.table-stack) { min-width: 640px; }
    /* Telefonda alt alta dizilen tablolar (table-stack): veri girilen kalem tabloları (sipariş, fatura, reçete, mal kabul,
     * sevkiyat, sayım, iade) ve telefonda liste karşılığı olmayan okuma tabloları (belge kalemleri, teslimat geçmişi, ekstre,
     * raporlar, birimler, bildirim kuralları…). Her satır bir blok olur, hücreler Bootstrap ızgara sınıflarıyla (col-6 col-md-auto
     * gibi) yerleşir, sütun başlığı hücrenin data-label'ından yazılır. Geniş ekranda sıradan tablodur. Bootstrap'ta karşılığı
     * olmadığı için buradadır. */
    .table-responsive:has(> .table-stack) { overflow-x: visible; }
    .table.table-stack, .table.table-stack > tbody, .table.table-stack > tfoot { display: block; }
    .table.table-stack > thead { display: none; }
    .table.table-stack > :is(tbody, tfoot) > tr { display: flex; flex-wrap: wrap; align-items: flex-start; padding: 8px 12px; border-bottom: 1px solid var(--bs-border-color); }
    .table.table-stack > :is(tbody, tfoot) > tr:last-child { border-bottom: 0; }
    .table.table-stack > :is(tbody, tfoot) > tr > :is(td, th) { display: block; padding: 4px 8px !important; border: 0; text-align: left; white-space: normal; }
    .table.table-stack > :is(tbody, tfoot) > tr > :is(td, th)[data-label]::before {
        content: attr(data-label); display: block; font-size: .75rem; line-height: 1.5; color: var(--bs-secondary-color);
    }
    .table.table-stack .form-control, .table.table-stack .form-select { max-width: none; min-width: 0; }
    /* Kart gövdesindeki kalem tablosu (form) gövdenin kenarına hizalanır; birim ve tutar yazısı kutuların hizasında durur. */
    .lines-table.table-stack > tbody > tr, .card-body .table.table-stack > tbody > tr { margin: 0 -8px; padding: 10px 0; }
    .table.table-stack > tbody > tr > td.unit-cell, .table.table-stack > tbody > tr > td[data-line-total] { line-height: 2.375rem; }
    /* Sekmeler tek satırda kalır, sığmazsa yana kaydırılır. */
    .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
    .nav-tabs .nav-link { white-space: nowrap; }
}
@media (max-width: 575.98px) {
    .nav-tabs { --bs-nav-link-padding-x: 12px; }
    .nav-tabs .nav-link > .bi { display: none; }
}

@media print {
    .app-side, .app-sidebar, .app-topbar, .app-footer, .page-actions, .no-print { display: none !important; }
}
