/*
 * Novera360 kurumsal arayüz sistemi (K90, 9 Ekim 2026) — Dynamics 365 Finance & Operations kullanım modelleri,
 * Novera360 kimliğiyle. Kaynak: docs/arayuz-mimarisi.md. novera.css ve novera-grid.css'ten SONRA yüklenir.
 *
 * İki katman:
 *   1) KABUK (tüm ekranlar): logo, 56 px üst çubuk, 252 / 64 px sol menü, ortam göstergesi, standart tema renkleri.
 *   2) BİLEŞENLER (yalnız .ds kapsamı = pilot ekranlar): Action Pane, kayıt başlığı, kategori sekmesi, FastTab,
 *      FactBox, Details Master kayıt listesi, işlem toplamları, çalışma alanı (workspace), liste yoğunluğu.
 *      Bir ekranı yeni düzene almak = kapsayıcıya "ds" sınıfı (+ kayıtlarda data-ds-record) vermek. Diğer ekranlar
 *      kullanıcı onayı olmadan dönüştürülmez.
 *
 * Renk ve ölçüler Novera360'ın kendi tasarım değerleridir; Microsoft'un resmî ölçüleri değildir.
 * Kurallar: degrade, parıltı, renkli şerit, hap rozet, büyük harfli aralıklı başlık YOK; kırmızı yalnız hata ve kritik uyarı.
 */

/* =====================================================================
   1) KABUK — tüm ekranlar
   ===================================================================== */

/* --- Standart tema değerleri (diğer temalar kendi renklerini korur) --- */
:root:not([data-theme]), [data-theme-preview="standart"] {
    --font-sans: 'Segoe UI', 'Segoe UI Variable Text', 'Segoe UI Web', 'Inter', Arial, sans-serif;
    --brand-navy: #17365d;
    --bg: #f4f6f9; --app-bg: #f4f6f9; --surface: #ffffff; --surface-muted: #f8fafc;
    --border: #dfe4ea; --border-strong: #c9d1db; --neutral-soft: #eef1f5;
    --text: #172b4d; --text-muted: #64748b; --text-faint: #7b8798;
    --primary: #2563a6; --primary-hover: #1d4f86; --primary-soft: #eaf1fa; --on-primary: #ffffff;
    --link: #2563a6; --link-hover: #1d4f86; --accent: #2563a6; --brand-teal: #2563a6;
    --ok: #238468; --ok-soft: #e9f5f1; --warning: #c58a2d; --warning-soft: #fbf4e8; --error: #c42b1c; --error-soft: #fdf1ef;
    --shell-bg: #17365d; --shell-hover: #21487a; --shell-active: #2a5a94; --shell-text: #e3e9f1; --shell-text-muted: #a9b7c9;
    --sitemap-bg: #ffffff; --sitemap-active: #eaf1fa;
}

/* --- Ölçüler --- */
:root { --menubar-h: 56px; --subbar-h: 38px; }
:root[data-density="sik"] { --menubar-h: 52px; }
.appbar { height: var(--menubar-h); }
.app { --sidebar-w: var(--sidebar-open-w, 252px); }
.app.is-collapsed { --sidebar-w: 64px; }
@media (max-width: 900px) { .app, .app.is-collapsed { --sidebar-w: 264px; } }

/* --- Logo --- */
.brand-logo { display: inline-flex; align-items: center; height: 28px; line-height: 0; flex: none; }
.brand-logo__img { display: block; height: 100%; width: auto; }
.brand-logo--light .brand-logo__img--dark,
.brand-logo--dark .brand-logo__img--light,
.brand-logo--auto .brand-logo__img--dark { display: none; }
/* Üst çubukta: koyu zeminde "Novera" beyaz sürüm; açık üst çubuklu temada (Sade) renkli sürüm */
.brand-logo--shell .brand-logo__img--light { display: var(--logo-light-display, none); }
.brand-logo--shell .brand-logo__img--dark { display: var(--logo-dark-display, block); }
:root[data-theme="sade"] { --logo-light-display: block; --logo-dark-display: none; }
.appbar__brand { gap: 0; padding: 0 8px 0 4px; text-shadow: none; }
.appbar__brand .brand-logo { height: 44px; margin: -6px 0; }
:root[data-density="sik"] .appbar__brand .brand-logo { height: 38px; margin: -5px 0; }
.auth-page--signin .auth-logo .brand-logo { height: 64px; }
.auth-page--signin .auth-logo { margin-bottom: 20px; }
.popup-win__bar .brand-logo { height: 20px; }

/* --- Çalışma ortamı göstergesi --- */
.appbar__env {
    display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; flex: none;
    border: 1px solid var(--shell-line); border-radius: 4px; color: var(--shell-text); font-size: 11.5px; font-weight: 600; white-space: nowrap;
}
.appbar__env::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3fb98a; }
.appbar__env--test, .appbar__env--dev { border-color: transparent; background: #c58a2d; color: #fff; }
.appbar__env--test::before, .appbar__env--dev::before { background: #fff; }
:root[data-theme="sade"] .appbar__env--live { color: var(--text-muted); border-color: var(--border); }

/* --- Sol menü: 13 px, beyaz zemin, seçili madde açık mavi --- */
.sitemap__item { min-height: 34px; font-size: 13px; }
button.sitemap__heading { font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--text); }
/* Bulunulan ekranın grubu: bordo yerine işlem mavisi (kırmızı / bordo yalnız hata ve kritik uyarıda) */
.sitemap__group.is-current > button.sitemap__heading { color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); }
.sitemap__sub { font-size: 13px; }
.sitemap__section { margin: 10px 10px 2px; font-size: 11.5px; font-weight: 600; color: var(--text-faint); }
.app.is-collapsed .sitemap__section { display: none; }
.sidebar, .sitemap { border-right: 1px solid var(--border); }
/* Daraltılmış menüde açıklama balonu (novera-ds.js): kaydırılan alanın dışında, sabit konumda */
.ds-tip {
    position: fixed; z-index: 90; max-width: 280px; padding: 5px 9px; border-radius: 4px; pointer-events: none;
    background: #1f2937; color: #fff; font-size: 12.5px; line-height: 1.35; box-shadow: var(--shadow-pop); white-space: nowrap;
}

/* --- Konum satırı (breadcrumb) --- */
.subbar { min-height: var(--subbar-h); }


/* =====================================================================
   2) BİLEŞENLER — yalnız .ds kapsamı (pilot ekranlar)
   ===================================================================== */

.ds {
    --ds-h-page: 22px; --ds-h-record: 20px; --ds-h-section: 16px; --ds-h-fasttab: 14px;
    --ds-fs: 13px; --ds-fs-th: 12px; --ds-fs-label: 12px; --ds-fs-help: 11px; --ds-fs-kpi: 24px;
    --ds-actionpane-h: 44px; --ds-fasttab-h: 40px; --ds-factbox-w: 340px; --ds-navlist-w: 272px;
    --ds-radius: 6px; --ds-line: var(--border);
    --ds-sticky-top: calc(var(--menubar-h) + 8px);
    font-size: var(--ds-fs);
}
.content:has(> .ds), .content.ds { padding-left: 20px; padding-right: 20px; }

/* --- Tipografi --- */
.ds .page-header h1, .ds .ds-page-title { font-size: var(--ds-h-page); font-weight: 600; line-height: 1.25; }
.ds :is(.card__header h2, .ui-section__head h2, .ds-section-title) { font-size: var(--ds-h-section); font-weight: 600; }
.ds .field > label, .ds .field-label, .ds .field legend { font-size: var(--ds-fs-label); font-weight: 500; color: var(--text-muted); }
.ds :is(input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="search"], input[type="tel"], select, textarea) { font-size: var(--ds-fs); }
.ds :is(input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="search"], input[type="tel"], select) { height: 34px; }
.ds .help, .ds .ds-help { font-size: var(--ds-fs-help); color: var(--text-muted); }
.ds .table th { font-size: var(--ds-fs-th); font-weight: 600; color: var(--text-muted); }
.ds .table td { font-size: var(--ds-fs); }
.ds .table tbody tr.is-selected > td, .ds .table tbody tr:has(> td input[type="checkbox"]:checked) > td { background: var(--primary-soft); }

/* --- Action Pane: sayfanın üstünde tek işlem şeridi --- */
.ds-actionpane {
    position: sticky; top: var(--ds-sticky-top); z-index: 20;
    display: flex; align-items: center; flex-wrap: wrap; gap: 2px; min-height: var(--ds-actionpane-h); padding: 4px 8px; margin: 0 0 12px;
    background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none;
}
.ds-actionpane > form { display: contents; }
.ds-actionpane__sep { width: 1px; align-self: stretch; margin: 6px 6px; background: var(--ds-line); }
.ds-actionpane__spacer { flex: 1; }
.ds-actionpane :is(.button, .menu__trigger.button, .ds-cmd) {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px;
    border: 0; border-radius: 4px; background: transparent; color: var(--text); font: inherit; font-size: 13px; font-weight: 500; box-shadow: none; text-decoration: none; cursor: pointer;
}
.ds-actionpane :is(.button, .ds-cmd) .icon { width: 16px; height: 16px; color: var(--primary); }
.ds-actionpane :is(.button, .ds-cmd):hover:not(:disabled):not([aria-disabled="true"]) { background: var(--neutral-soft); color: var(--text); }
.ds-actionpane :is(.button--primary, .ds-cmd--primary) { color: var(--primary); font-weight: 600; }
.ds-actionpane :is(.button, .ds-cmd):is(:disabled, [aria-disabled="true"]) { color: var(--text-faint); cursor: not-allowed; }
.ds-actionpane :is(.button, .ds-cmd):is(:disabled, [aria-disabled="true"]) .icon { color: var(--text-faint); }
.ds-actionpane .menu { position: relative; }
.ds-actionpane .menu__panel { min-width: 240px; }
.ds-actionpane__status { margin-left: 8px; font-size: 12px; color: var(--text-muted); }

/* --- Liste ekranı (List page) --- */
.ds-list > .page-header { margin-bottom: 8px; }
.ds-list .actionbar { position: sticky; top: var(--ds-sticky-top); z-index: 20; min-height: var(--ds-actionpane-h); padding: 4px 8px; margin: 0 0 12px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--surface); box-shadow: none; }
.ds-list .actionbar :is(.button, .menu__trigger.button) { height: 34px; border: 0; background: transparent; color: var(--text); font-size: 13px; font-weight: 500; box-shadow: none; }
.ds-list .actionbar .button .icon { color: var(--primary); }
.ds-list .actionbar .button:hover:not(:disabled) { background: var(--neutral-soft); }
.ds-list .actionbar .button--primary { color: var(--primary); font-weight: 600; }
.ds-list .actionbar .button:disabled { color: var(--text-faint); }
.ds-list .card { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none; }

/* --- Kayıt düzeni: [kayıt listesi] [ana alan] [FactBox] --- */
.ds-record { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.ds-record.has-navlist { grid-template-columns: var(--ds-navlist-w) minmax(0, 1fr); }
.ds-record.has-factbox { grid-template-columns: minmax(0, 1fr) var(--ds-factbox-w); }
.ds-record.has-navlist.has-factbox { grid-template-columns: var(--ds-navlist-w) minmax(0, 1fr) var(--ds-factbox-w); }
.ds-record.has-factbox:has(> .factbox.is-collapsed) { grid-template-columns: minmax(0, 1fr); }
.ds-record.has-navlist.has-factbox:has(> .factbox.is-collapsed) { grid-template-columns: var(--ds-navlist-w) minmax(0, 1fr); }
.ds-record.is-navlist-closed.has-navlist { grid-template-columns: minmax(0, 1fr); }
.ds-record.is-navlist-closed.has-navlist.has-factbox { grid-template-columns: minmax(0, 1fr) var(--ds-factbox-w); }
.ds-record.is-navlist-closed.has-navlist.has-factbox:has(> .factbox.is-collapsed) { grid-template-columns: minmax(0, 1fr); }
.ds-record.is-navlist-closed > .ds-navlist { display: none; }
.ds-record > :is(.ds-record__main, .doc-page__main) { min-width: 0; }
/* Bölümleri kategori içi sırayla dizmek için (müşteri kartı: aynı içerik pencerede başka sırada) */
.ds-record__main--ordered { display: flex; flex-direction: column; }
.ds-record__main--ordered > * { min-width: 0; }
/* Eski kayıt düzeni (doc-page) bu kapsamda ızgarayı tasarım sistemine bırakır */
.ds-record.doc-page { display: grid; }

/* Eski kayıt düzeni (doc-page: satış siparişi vb.) bu kapsamda: başlık kartı çerçeveli, FactBox kapatılabilir ve tek panel */
.ds-record .doc-header { margin-bottom: 12px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none; }
.ds-record .doc-commandbar [data-factbox-toggle] { display: inline-flex; }
.ds-record.doc-page > .factbox { top: var(--ds-sticky-top); max-height: calc(100vh - var(--ds-sticky-top) - 12px); background: var(--surface); border: 1px solid var(--ds-line); box-shadow: none; }
.ds-record.doc-page > .factbox > .factbox__head { display: flex; }
.ds-record.doc-page > .factbox > .factbox__part { margin: 0; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--ds-line); border-radius: 0; background: transparent; box-shadow: none; }
.ds-record.doc-page > .factbox > .factbox__part h3 { text-transform: none; letter-spacing: 0; font-size: 13px; }

/* --- Kayıt başlığı --- */
.ds-record__head {
    margin: 0 0 12px; padding: 14px 18px 12px; background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none;
}
.ds-record__eyebrow { margin: 0 0 2px; font-size: 12px; color: var(--text-muted); }
.ds-record__titlebar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.ds-record__title, .ds-record .doc-header__title h1 { margin: 0; font-size: var(--ds-h-record); font-weight: 600; line-height: 1.3; }
.ds-record__title .mono { font-family: inherit; font-weight: 600; }
.ds-record__subtitle { margin: 2px 0 0; font-size: 12.5px; color: var(--text-muted); }
.ds-record__fields { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 12px 0 0; padding: 10px 0 0; border-top: 1px solid var(--ds-line); }
.ds-record__fields > div { min-width: 0; }
.ds-record__fields dt { font-size: 12px; color: var(--text-muted); }
.ds-record__fields dd { margin: 0; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ds-record__fields dd small { font-weight: 400; color: var(--text-muted); }
.ds-record__notes { margin: 0 0 12px; }

/* --- Kategori sekmeleri (detaylı kartta üst seviye; ortak sekme görünümü .doc-tabs__tab) --- */
.ds-cattabs { display: flex; align-items: flex-end; gap: 2px; flex-wrap: wrap; margin: 0 0 10px; }
.ds-cattabs__tools { margin-left: auto; display: flex; gap: 4px; align-self: center; }
.ds-cattabs__tools button { height: 28px; padding: 0 8px; border: 0; border-radius: 4px; background: transparent; color: var(--link); font: inherit; font-size: 12.5px; cursor: pointer; }
.ds-cattabs__tools button:hover { background: var(--neutral-soft); }
.ds-cat-hidden { display: none !important; }

/* --- FastTab: açılıp kapanan bilgi grubu; birden fazlası açık kalabilir; kapalıyken özet alanları görünür --- */
.ds :is(details.fasttab, details.ds-fasttab) {
    margin: 0 0 8px; padding: 0; background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none;
}
.ds :is(details.fasttab, details.ds-fasttab) > summary {
    display: flex; align-items: center; gap: 10px; min-height: var(--ds-fasttab-h); padding: 0 14px; margin: 0;
    list-style: none; cursor: pointer; pointer-events: auto; user-select: none;
    font-size: var(--ds-h-fasttab); font-weight: 600; color: var(--text); text-transform: none; letter-spacing: 0;
}
.ds :is(details.fasttab, details.ds-fasttab) > summary::-webkit-details-marker { display: none; }
.ds :is(details.fasttab, details.ds-fasttab) > summary::before {
    content: ""; flex: none; width: 7px; height: 7px; margin: 0 2px 0 1px;
    border-right: 1.6px solid var(--text-muted); border-bottom: 1.6px solid var(--text-muted);
    transform: rotate(-45deg); transition: transform .12s ease;
}
.ds :is(details.fasttab, details.ds-fasttab)[open] > summary::before { transform: rotate(45deg); margin-top: -3px; }
.ds :is(details.fasttab, details.ds-fasttab) > summary:hover { background: var(--surface-muted); }
.ds :is(details.fasttab, details.ds-fasttab) > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.ds :is(.fasttab__summary, .ds-fasttab__summary) {
    display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 16px; margin-left: auto; min-width: 0;
    font-size: 12.5px; font-weight: 400; color: var(--text-muted);
}
.ds :is(details.fasttab, details.ds-fasttab)[open] :is(.fasttab__summary, .ds-fasttab__summary) { display: none; }
.ds :is(.fasttab__summary, .ds-fasttab__summary) b { font-weight: 600; color: var(--text); }
.ds :is(.fasttab__body, .ds-fasttab__body) { padding: 12px 16px 16px; border-top: 1px solid var(--ds-line); }
.ds :is(.fasttab__body--flush, .ds-fasttab__body--flush) { padding: 0; }
.ds details.fasttab.has-error > summary, .ds details.ds-fasttab.has-error > summary { color: var(--error); }

/* Alan listesi: etiket solda, değer sağda (Dynamics form) */
.ds .summary-list { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 6px 16px; margin: 0; font-size: var(--ds-fs); }
.ds .summary-list dt { font-size: var(--ds-fs-label); color: var(--text-muted); padding-top: 1px; }
.ds .summary-list dd { margin: 0; font-size: var(--ds-fs); font-weight: 400; text-align: left; }
/* İki sütunlu alan listesi ana alan genişliğine göre (ekran değil) */
.ds-record__main:not(.doc-page__main) { container-type: inline-size; container-name: dsmain; }
@container dsmain (min-width: 860px) {
    .ds .summary-list.ds-two-col { grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) minmax(120px, 180px) minmax(0, 1fr); }
}

/* --- FactBox: sağdaki açılıp kapanabilen bilgi paneli --- */
.ds :is(aside.factbox, .ds-factbox) {
    position: sticky; top: var(--ds-sticky-top); max-height: calc(100vh - var(--ds-sticky-top) - 12px); overflow-y: auto;
    padding: 0; background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); box-shadow: none;
}
.ds .factbox__head { display: flex; align-items: center; justify-content: space-between; min-height: 40px; padding: 0 8px 0 14px; border-bottom: 1px solid var(--ds-line); }
.ds .factbox__head h2 { font-size: 14px; font-weight: 600; }
.ds .factbox__part { padding: 12px 14px; border-bottom: 1px solid var(--ds-line); background: transparent; box-shadow: none; border-radius: 0; margin: 0; }
.ds .factbox__part:last-child { border-bottom: 0; }
.ds .factbox__part h3 { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--text); text-transform: none; letter-spacing: 0; }
.ds-facts { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; margin: 0; }
.ds-facts dt { font-size: 12.5px; color: var(--text-muted); }
.ds-facts dd { margin: 0; font-size: 13px; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ds-facts dd.is-bad { color: var(--error); }
.ds-facts dd.is-good { color: var(--ok); }
.ds-facts dd small { font-weight: 400; color: var(--text-muted); }
.ds-facts__total { padding-top: 6px; border-top: 1px solid var(--ds-line); }
.ds-factbox__links { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
.ds-factbox__links a { display: block; padding: 4px 0; font-size: 13px; }

/* --- Details Master: soldaki kayıt listesi --- */
.ds-navlist {
    position: sticky; top: var(--ds-sticky-top); display: flex; flex-direction: column; max-height: calc(100vh - var(--ds-sticky-top) - 12px);
    background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); overflow: hidden;
}
.ds-navlist__head { display: flex; align-items: center; gap: 4px; padding: 8px; border-bottom: 1px solid var(--ds-line); }
.ds-navlist__head input[type="search"] { flex: 1; min-width: 0; height: 32px; }
.ds-navlist__items { flex: 1; min-height: 0; margin: 0; padding: 4px; list-style: none; overflow-y: auto; }
.ds-navlist__item { display: block; padding: 6px 10px; border-radius: 4px; color: var(--text); text-decoration: none; line-height: 1.3; }
.ds-navlist__item strong { display: block; font-size: 13px; font-weight: 600; }
.ds-navlist__item span { display: block; font-size: 12px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-navlist__item:hover { background: var(--neutral-soft); color: var(--text); }
.ds-navlist__item.is-active { background: var(--primary-soft); box-shadow: inset 3px 0 0 var(--primary); }
.ds-navlist__item.is-focus { outline: 2px solid var(--primary); outline-offset: -2px; }
.ds-navlist__foot { padding: 6px 10px; border-top: 1px solid var(--ds-line); font-size: 12px; color: var(--text-muted); }
.ds-navlist__empty { padding: 10px; font-size: 12.5px; color: var(--text-muted); }

/* --- Details Transaction: toplam ve kontrol alanı --- */
.ds-totals {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; margin: 0 0 12px; padding: 10px 16px;
    background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius);
}
.ds-totals__item span { display: block; font-size: 12px; color: var(--text-muted); }
.ds-totals__item strong { display: block; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ds-totals__item.is-bad strong { color: var(--error); }
.ds-totals__item.is-good strong { color: var(--ok); }
.ds-totals__status { margin-left: auto; }
.ds .jgrid__foot { border-radius: 0 0 var(--ds-radius) var(--ds-radius); }

/* --- Workspace / çalışma alanı --- */
.ds-ws__kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin: 0 0 16px; }
.ds-kpi { display: block; padding: 12px 14px; background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); color: var(--text); text-decoration: none; }
a.ds-kpi:hover { border-color: var(--primary); color: var(--text); }
.ds-kpi__label { display: block; font-size: 12.5px; color: var(--text-muted); }
.ds-kpi__value { display: block; margin-top: 4px; font-size: var(--ds-fs-kpi); font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ds-kpi__value small { font-size: 13px; font-weight: 400; color: var(--text-muted); }
.ds-kpi__note { display: block; margin-top: 2px; font-size: 12px; color: var(--text-muted); }
.ds-kpi.is-warning .ds-kpi__value { color: var(--warning); }
.ds-kpi.is-error .ds-kpi__value { color: var(--error); }
.ds-ws__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 12px; }
.ds-panel { background: var(--surface); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); }
.ds-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; padding: 0 14px; border-bottom: 1px solid var(--ds-line); }
.ds-panel__head h2 { margin: 0; font-size: 14px; font-weight: 600; }
.ds-panel__body { padding: 10px 14px 14px; }
.ds-links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; }

/* --- Liste yoğunluğu (Kompakt / Normal / Geniş; kolon düzeniyle birlikte kullanıcıya kaydedilir) --- */
.has-ncols[data-density="kompakt"] .table > tbody > tr > td { height: 34px; padding-top: 3px; padding-bottom: 3px; }
.has-ncols[data-density="normal"] .table > tbody > tr > td { height: 40px; padding-top: 6px; padding-bottom: 6px; }
.has-ncols[data-density="genis"] .table > tbody > tr > td { height: 48px; padding-top: 10px; padding-bottom: 10px; }
.ncols__density { display: inline-grid; place-items: center; }
/* Kompakt satırda satır içi düğme ve rozetler satırı büyütmesin */
.has-ncols[data-density="kompakt"] .table > tbody > tr > td :is(.button, .menu__trigger, .icon-button, .link-button) { height: 26px; min-height: 26px; padding-top: 0; padding-bottom: 0; }
.has-ncols[data-density="kompakt"] .table > tbody > tr > td :is(.badge, .status) { line-height: 18px; padding-top: 0; padding-bottom: 0; }

/* --- Pilot formları: daha sık alan aralığı, geniş alanda üç sütun --- */
.ds .ds-fasttab__body > .form-grid:not(.form-grid--dense), .ds .ds-fasttab__body form > .form-grid:not(.form-grid--dense) { gap: 10px 20px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ds .ds-fasttab__body .field .help { margin-top: 2px; }

/* --- Dar ekran: kayıt listesi gizlenir, FactBox çekmece olur (novera.js) --- */
@media (max-width: 1279px) {
    .ds-record.has-navlist, .ds-record.has-navlist.has-factbox { grid-template-columns: minmax(0, 1fr) var(--ds-factbox-w); }
    .ds-record.has-navlist:not(.has-factbox), .ds-record.has-navlist.has-factbox:has(> .factbox.is-collapsed) { grid-template-columns: minmax(0, 1fr); }
    .ds-record > .ds-navlist { display: none; }
}
@media (max-width: 1023px) {
    .ds-record, .ds-record.has-factbox, .ds-record.has-navlist.has-factbox { grid-template-columns: minmax(0, 1fr); }
    .ds-actionpane { position: static; }
}
@media print {
    .ds-actionpane, .ds-navlist, .ds-cattabs, .ds .factbox { display: none !important; }
    .ds-record, .ds-record.has-factbox, .ds-record.has-navlist { display: block; }
    .ds-cat-hidden { display: block !important; }
    .ds details.fasttab:not([open]) > *:not(summary), .ds details.ds-fasttab:not([open]) > *:not(summary) { display: block; }
}


/* =====================================================================
   3) DYNAMIC TEMASI (K96, 9 Ekim 2026) — Microsoft Dynamics 365 Finance görünümü
   Tema anahtarı "dynamics" (config/erp.php → themes; Sistem Yönetimi › Görünüm › Temalar). Yalnız
   <html data-theme="dynamics"> altında geçerlidir; menü yapısı, yazı tipi (Segoe UI) ve ekran düzeni tüm temalarda ortaktır.
   Değerler D365 Finance & Operations (Fluent 2) arayüzünden: 48 px koyu lacivert üst çubuk (silüetsiz, düz), beyaz site
   haritası (seçili madde açık gri zemin + mavi sol çizgi), #F3F2F1 zemin, #0F6CBD vurgu, Segoe UI 14 px, 4 px köşe,
   gölgesiz düz yüzeyler, altı çizgili (pivot) sekmeler, düz komut şeridi, 32 px alan ve düğme.
   ===================================================================== */
:root[data-theme="dynamics"], [data-theme-preview="dynamics"] {
    --font-sans: 'Segoe UI', 'Segoe UI Variable Text', 'Segoe UI Web', system-ui, -apple-system, 'Inter', Arial, sans-serif;
    --brand-navy: #0f2d5e;
    --bg: #f3f2f1; --app-bg: #f3f2f1; --surface: #ffffff; --surface-muted: #faf9f8;
    --border: #e1dfdd; --border-strong: #c8c6c4; --neutral-soft: #f3f2f1;
    --text: #242424; --text-muted: #616161; --text-faint: #707070;
    --primary: #0f6cbd; --primary-hover: #115ea3; --primary-soft: #ebf3fc; --on-primary: #ffffff;
    --link: #0f6cbd; --link-hover: #115ea3; --accent: #0f6cbd; --brand-teal: #0f6cbd;
    --ok: #107c10; --ok-soft: #e6f2e6; --warning: #9d5d00; --warning-soft: #fdf3e2; --error: #c50f1f; --error-soft: #fdf1ef;
    --shell-bg: #0f2d5e; --shell-hover: #1b3f75; --shell-active: #244b85; --shell-text: #ffffff; --shell-text-muted: #c7d3e6;
    --shell-strong: #ffffff; --shell-line: rgb(255 255 255 / 0.22); --shell-field: rgb(255 255 255 / 0.1);
    --search-bg: #ffffff; --search-text: #242424; --search-icon: #616161; --search-border: #ffffff;
    --sitemap-bg: #ffffff; --sitemap-active: #edebe9;
    --radius: 4px; --radius-sm: 4px; --radius-lg: 4px; --radius-xs: 2px;
    --shadow: none; --shadow-pop: 0 6.4px 14.4px rgb(0 0 0 / 0.13), 0 1.2px 3.6px rgb(0 0 0 / 0.11);
    --control-h: 32px; --control-h-sm: 32px; --gap: 12px;
    --menubar-h: 48px; --subbar-h: 36px;
    --tab-accent: #0f6cbd; --tab-accent-text: #242424; --tab-bg: transparent; --tab-bg-hover: #f3f2f1; --tab-border: transparent; --tab-text: #424242;
}
:root[data-theme="dynamics"][data-density="sik"] { --control-h: 28px; --control-h-sm: 28px; --menubar-h: 44px; --gap: 8px; }

/* --- Üst çubuk: düz ve silüetsiz, 48 px; beyaz logo; dikdörtgen arama kutusu --- */
:root[data-theme="dynamics"] .appbar { gap: 8px; padding: 0 8px 0 6px; box-shadow: none; }
:root[data-theme="dynamics"] .appbar::before, :root[data-theme="dynamics"] .appbar::after { content: none; }
:root[data-theme="dynamics"] .appbar__brand, :root[data-theme="dynamics"] .appbar__context { text-shadow: none; }
:root[data-theme="dynamics"] .appbar__brand .brand-logo { height: 40px; margin: -6px 0; }
:root[data-theme="dynamics"] .appbar__context { gap: 8px; font-size: 13px; }
:root[data-theme="dynamics"] .appbar__company { font-weight: 600; }
:root[data-theme="dynamics"] .appbar__plant { opacity: 1; color: var(--shell-text-muted); }
:root[data-theme="dynamics"] .appbar__env { height: 20px; font-size: 11px; border-radius: 2px; }
:root[data-theme="dynamics"] .appbar__search { max-width: 480px; }
:root[data-theme="dynamics"] .appbar__search input[type="search"] { height: 32px; border-radius: 2px; font-size: 14px; }
:root[data-theme="dynamics"] .appbar__search input[type="search"]:focus { border-color: var(--search-border); box-shadow: inset 0 -2px 0 var(--primary); }
:root[data-theme="dynamics"] .appbar__toggle { width: 36px; height: 36px; border-radius: 0; }
:root[data-theme="dynamics"] .menu--tool > .menu__trigger { padding: 0 11px; }
:root[data-theme="dynamics"] .avatar { width: 28px; height: 28px; font-size: 12px; background: #0f6cbd; }
:root[data-theme="dynamics"] .notify-count { background: #c50f1f; }
:root[data-theme="dynamics"] .appbar__help { width: 20px; height: 20px; font-size: 12px; }

/* --- Sol menü: beyaz, 14 px; seçili madde açık gri zemin + tam boy mavi sol çizgi; daraltılmış 48 px --- */
:root[data-theme="dynamics"] .app.is-collapsed { --sidebar-w: 48px; }
:root[data-theme="dynamics"] .sidebar, :root[data-theme="dynamics"] .sitemap { background: var(--sitemap-bg); border-right-color: var(--border); }
:root[data-theme="dynamics"] .sitemap__top { padding: 4px 0 6px; }
:root[data-theme="dynamics"] .sitemap__areas { padding: 0 0 8px; }
:root[data-theme="dynamics"] .sitemap__item { min-height: 36px; padding: 0 12px; border-radius: 0; font-size: 14px; gap: 12px; }
:root[data-theme="dynamics"] .sitemap__item:hover { background: #f3f2f1; }
:root[data-theme="dynamics"] .sitemap__item.is-active { background: var(--sitemap-active); font-weight: 600; }
:root[data-theme="dynamics"] .sitemap__item.is-active::before { top: 0; bottom: 0; width: 3px; border-radius: 0; background: var(--primary); }
:root[data-theme="dynamics"] .sitemap__item .icon { color: #424242; }
:root[data-theme="dynamics"] .sitemap__item.is-active .icon { color: var(--primary); }
:root[data-theme="dynamics"] .sitemap__sub { border-radius: 0; font-size: 13px; }
:root[data-theme="dynamics"] .sitemap__foldlist { padding-left: 42px; }
/* Grup başlıkları Dynamics gibi sıkı: 36 px satır, kenar boşluğu yok, tam genişlik */
:root[data-theme="dynamics"] button.sitemap__heading, :root[data-theme="dynamics"] .sitemap__group:first-child button.sitemap__heading { width: 100%; height: 36px; margin: 0; padding: 0 10px 0 12px; border-radius: 0; font-size: 14px; font-weight: 600; color: #424242; }
:root[data-theme="dynamics"] button.sitemap__heading:hover { background: #f3f2f1; }
:root[data-theme="dynamics"] .sitemap__group-chevron { width: 14px; height: 14px; }
:root[data-theme="dynamics"] .sitemap__group.is-open > ul { padding-bottom: 4px; }
:root[data-theme="dynamics"] .sitemap__group.is-current > button.sitemap__heading { color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); }
:root[data-theme="dynamics"] .sitemap__section { margin: 10px 12px 2px; font-size: 12px; color: #616161; }
:root[data-theme="dynamics"] .sitemap__switch { padding: 6px; }
:root[data-theme="dynamics"] .sitemap__switch > .sitemap__area-button, :root[data-theme="dynamics"] .sitemap__area-icon { border-radius: 2px; }
:root[data-theme="dynamics"] .app.is-collapsed .sitemap__item { padding: 0; }
:root[data-theme="dynamics"] .app.is-collapsed .sitemap__areas, :root[data-theme="dynamics"] .app.is-collapsed .sitemap__top { padding-left: 0; padding-right: 0; }

/* --- Konum satırı ve komut çubuğu --- */
:root[data-theme="dynamics"] .subbar { padding: 0 16px; font-size: 13px; }
:root[data-theme="dynamics"] .commandbar__navbtn, :root[data-theme="dynamics"] .commandbar__back { border-radius: 2px; }
:root[data-theme="dynamics"] .breadcrumb { font-size: 13px; }

/* --- İçerik ve tipografi: sayfa 20 · bölüm 16 · gövde 14 px --- */
:root[data-theme="dynamics"] .content { padding: 12px 16px 32px; }
:root[data-theme="dynamics"] :is(.page-header h1, .page-header--compact h1, .doc-header__title h1, .ds .page-header h1, .ds-page-title) { font-size: 20px; font-weight: 600; letter-spacing: 0; }
:root[data-theme="dynamics"] :is(.page-header p, .page-header--compact p) { font-size: 13px; }

/* --- Yüzeyler: 1 px çizgi, 4 px köşe, gölge yok --- */
:root[data-theme="dynamics"] :is(.card, .kpi, .ds-kpi, .ds-panel, .view-card, .ds-record__head, .ds-totals, .ds-navlist, .ds-actionpane, details.fasttab, details.ds-fasttab, aside.factbox, .ds-factbox) { border-radius: 4px; box-shadow: none; border-color: var(--border); }
:root[data-theme="dynamics"] .kpi { border-left: 1px solid var(--border); }
:root[data-theme="dynamics"] .menu__panel { border-radius: 4px; }
:root[data-theme="dynamics"] .menu__item { border-radius: 2px; font-size: 14px; }
:root[data-theme="dynamics"] .menu__group h4 { text-transform: none; letter-spacing: 0; font-size: 12px; }

/* --- Düğme ve alan: 32 px, 4 px köşe; birincil düğme Fluent mavisi; odakta alt çizgi --- */
:root[data-theme="dynamics"] .button { border-radius: 4px; padding: 0 12px; font-size: 14px; font-weight: 600; border-color: #c8c6c4; }
:root[data-theme="dynamics"] .button--small, :root[data-theme="dynamics"] .menu--bar > .menu__trigger.button { padding: 0 10px; font-size: 13px; }
:root[data-theme="dynamics"] .button:hover:not(:disabled):not(.button--primary) { background: #f3f2f1; }
:root[data-theme="dynamics"] .button--primary { background: var(--primary); border-color: var(--primary); color: #ffffff; }
:root[data-theme="dynamics"] .button--primary:hover:not(:disabled) { background: var(--primary-hover); border-color: var(--primary-hover); }
:root[data-theme="dynamics"] :is(input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="search"], input[type="password"], input[type="tel"], select, textarea) { border-color: #8a8886; border-radius: 4px; font-size: 14px; }
:root[data-theme="dynamics"] .content :is(input, select, textarea):focus { outline: none; border-color: #8a8886; box-shadow: inset 0 -2px 0 var(--primary); }
:root[data-theme="dynamics"] .field > label, :root[data-theme="dynamics"] .field-label { font-weight: 600; color: #242424; }

/* --- Tablolar: başlık cümle düzeni, 14 px; üzerine gelince gri, seçili satır açık mavi --- */
:root[data-theme="dynamics"] .table { font-size: 14px; }
:root[data-theme="dynamics"] .table th, :root[data-theme="dynamics"] .table--dense th { font-size: 13px; font-weight: 600; color: #424242; background: #faf9f8; text-transform: none; letter-spacing: 0; border-bottom: 1px solid var(--border-strong); }
:root[data-theme="dynamics"] .table td { font-size: 14px; }
:root[data-theme="dynamics"] .table tbody tr:hover > td { background-image: linear-gradient(var(--row-hover), var(--row-hover)); }
:root[data-theme="dynamics"] .table tbody tr[aria-selected="true"] > td, :root[data-theme="dynamics"] .table tbody tr.is-selected > td { background: #ebf3fc; }

/* --- Sekmeler: Fluent pivot — çerçevesiz, seçili sekmenin altında 3 px mavi çizgi (liste görünümleri, kayıt kartı, pencere) --- */
:root[data-theme="dynamics"] :is(.views, .doc-tabs, .tabs) { gap: 4px; padding: 0; border-bottom: 1px solid var(--border); }
:root[data-theme="dynamics"] :is(.views a, .doc-tabs__tab, .tabs [role="tab"]) { position: relative; height: 40px; padding: 0 12px; border: 0; border-radius: 0; background: transparent; color: #424242; font-size: 14px; font-weight: 400; }
:root[data-theme="dynamics"] :is(.views a, .doc-tabs__tab, .tabs [role="tab"])::after { content: "" !important; position: absolute; left: 8px; right: 8px; bottom: 0; height: 3px; border-radius: 2px 2px 0 0; background: transparent; }
:root[data-theme="dynamics"] :is(.views a, .doc-tabs__tab, .tabs [role="tab"]):hover { background: #f3f2f1; color: #242424; }
:root[data-theme="dynamics"] :is(.views a.is-active, .doc-tabs__tab.is-active, .tabs [role="tab"][aria-selected="true"]) { background: transparent; border-color: transparent; color: #242424; font-weight: 600; }
:root[data-theme="dynamics"] :is(.views a.is-active, .doc-tabs__tab.is-active, .tabs [role="tab"][aria-selected="true"])::after { background: var(--primary); }
:root[data-theme="dynamics"] .views a.is-active .count-pill, :root[data-theme="dynamics"] .tabs [role="tab"][aria-selected="true"] .tabs__n { background: var(--primary-soft); color: var(--primary); }
:root[data-theme="dynamics"] .view-card > .views { padding: 0 8px; border-bottom: 1px solid var(--border); }
:root[data-theme="dynamics"] .view-card > .views a { height: 40px; }

/* --- İşlem çubuğu (Action Pane): düz beyaz şerit, çerçevesiz komutlar, mavi simge --- */
:root[data-theme="dynamics"] .actionbar { gap: 2px; padding: 4px 6px; border-radius: 0; }
:root[data-theme="dynamics"] .actionbar :is(.button, .menu__trigger.button) { height: 32px; border: 0; background: transparent; color: #242424; font-size: 14px; font-weight: 400; box-shadow: none; }
:root[data-theme="dynamics"] .actionbar :is(.button, .menu__trigger.button) .icon { color: var(--primary); }
:root[data-theme="dynamics"] .actionbar :is(.button, .menu__trigger.button):hover:not(:disabled):not([aria-disabled="true"]) { background: #f3f2f1; color: #242424; }
:root[data-theme="dynamics"] .actionbar .button--primary { color: var(--primary); font-weight: 600; }
:root[data-theme="dynamics"] .actionbar .button:is(:disabled, [aria-disabled="true"]) { color: #a19f9d; opacity: 1; }
:root[data-theme="dynamics"] .actionbar .button:is(:disabled, [aria-disabled="true"]) .icon { color: #a19f9d; }
:root[data-theme="dynamics"] .ds-actionpane { border-radius: 0; }

/* --- Rozet, uyarı ve sayaç: düz --- */
:root[data-theme="dynamics"] .count-pill { border-radius: 10px; background: #f3f2f1; }
:root[data-theme="dynamics"] .badge { border-radius: 2px; }


/* =====================================================================
   4) VARSAYILAN PANO (K97, 9 Ekim 2026) — Dynamics 365 varsayılan pano düzeni (giriş sonrası açılan sayfa)
   Solda ay takvimi (bana atanan işlerin son tarihleri noktalı) ve bana atanan işler; sağda çalışma alanı kutucukları
   (kare, beyaz, 1 px çizgi, simge üstte, ad altta). Her temada aynı düzen; renkler tema değişkenlerinden.
   ===================================================================== */
.pano { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 16px; align-items: start; }
.pano__side { display: grid; gap: 12px; min-width: 0; }
.pano__main { min-width: 0; }
.pano .ds-panel__head h2 { display: flex; align-items: center; gap: 8px; }
.pano-cal__nav { display: flex; align-items: center; gap: 2px; }
.pano-cal__nav a { display: inline-grid; place-items: center; min-width: 28px; height: 28px; padding: 0 4px; border-radius: 4px; color: var(--text); font-size: 12px; font-weight: 600; text-decoration: none; }
.pano-cal__nav a:hover { background: var(--neutral-soft); color: var(--text); }
.pano-cal__nav .icon { width: 16px; height: 16px; }
.pano-cal__grid { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12.5px; }
.pano-cal__grid th { padding: 2px 0 6px; font-size: 11.5px; font-weight: 600; color: var(--text-muted); text-align: center; }
.pano-cal__grid td { padding: 1px; text-align: center; }
.pano-cal__day { position: relative; display: grid; place-items: center; height: 30px; border-radius: 4px; color: var(--text); text-decoration: none; font-variant-numeric: tabular-nums; }
.pano-cal__day.is-out { color: var(--text-faint); }
.pano-cal__day.is-today { background: var(--primary); color: var(--on-primary); font-weight: 600; }
.pano-cal__day.has-due::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--primary); }
.pano-cal__day.is-today.has-due::after { background: var(--on-primary); }
a.pano-cal__day:hover { background: var(--neutral-soft); color: var(--text); }
a.pano-cal__day.is-today:hover { background: var(--primary-hover); color: var(--on-primary); }
.pano-work { margin: 0; padding: 0; list-style: none; }
.pano-work li + li { border-top: 1px solid var(--border); }
.pano-work a { display: block; padding: 7px 0; color: var(--text); text-decoration: none; }
.pano-work a:hover strong { color: var(--link); }
.pano-work strong { display: block; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pano-work span { display: block; font-size: 12px; color: var(--text-muted); }
.pano-work span.is-late { color: var(--error); }
.pano-empty { margin: 0; }
.pano-alerts { margin: 8px 0 0; }
.pano__heading { margin: 0 0 10px; font-size: 14px; font-weight: 600; }
.pano-tiles { display: grid; grid-template-columns: repeat(auto-fill, 132px); gap: 10px; }
.pano-tile {
    display: flex; flex-direction: column; justify-content: space-between; gap: 12px; width: 132px; height: 132px; padding: 10px 12px;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--ds-radius, 6px); color: var(--text); text-decoration: none;
}
.pano-tile:hover, .pano-tile:focus-visible { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); color: var(--text); outline: none; }
.pano-tile > .icon { width: 28px; height: 28px; color: var(--primary); }
.pano-tile__text { display: block; min-width: 0; }
.pano-tile__title { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.pano-tile__sub { display: block; margin-top: 2px; font-size: 12px; color: var(--text-muted); }
@media (max-width: 900px) { .pano { grid-template-columns: minmax(0, 1fr); } .pano-tiles { grid-template-columns: repeat(auto-fill, 132px); } }
.pano-cal__nav .icon.is-flipped { transform: scaleX(-1); }

/* =====================================================================
   5) TABLO SATIR YÜKSEKLİĞİ (K132) — tüm tablolar (<html data-table-density>), tek tabloya özel ayar (.has-ncols[data-density]) önce gelir
   ===================================================================== */
:root[data-table-density="sik"] .table > :is(tbody, tfoot) > tr > :is(td, th) { height: 28px; padding-top: 2px; padding-bottom: 2px; line-height: 1.3; }
:root[data-table-density="kompakt"] .table > :is(tbody, tfoot) > tr > :is(td, th) { height: 34px; padding-top: 4px; padding-bottom: 4px; }
:root[data-table-density="normal"] .table > :is(tbody, tfoot) > tr > :is(td, th) { height: 40px; padding-top: 6px; padding-bottom: 6px; }
:root[data-table-density="genis"] .table > :is(tbody, tfoot) > tr > :is(td, th) { height: 48px; padding-top: 10px; padding-bottom: 10px; }
:root:is([data-table-density="sik"], [data-table-density="kompakt"]) .table > thead > tr > th { height: 32px; padding-top: 4px; padding-bottom: 4px; }
:root[data-table-density="sik"] .table > :is(tbody, tfoot) > tr > td :is(.button, .menu__trigger, .icon-button, .link-button, input, select) { height: 24px; min-height: 24px; padding-top: 0; padding-bottom: 0; }
:root[data-table-density="sik"] .table > :is(tbody, tfoot) > tr > td :is(.badge, .status) { line-height: 16px; padding-top: 0; padding-bottom: 0; }
/* Tek tabloya özel "Sıkı" */
.has-ncols[data-density="sik"] .table > :is(tbody, tfoot) > tr > :is(td, th) { height: 28px; padding-top: 2px; padding-bottom: 2px; line-height: 1.3; }
.has-ncols[data-density="sik"] .table > tbody > tr > td :is(.button, .menu__trigger, .icon-button, .link-button, input, select) { height: 24px; min-height: 24px; padding-top: 0; padding-bottom: 0; }
/* Tek tabloya özel ayar alt toplam satırına da uygulanır */
.has-ncols[data-density="kompakt"] .table > tfoot > tr > :is(td, th) { height: 34px; padding-top: 3px; padding-bottom: 3px; }
.has-ncols[data-density="normal"] .table > tfoot > tr > :is(td, th) { height: 40px; padding-top: 6px; padding-bottom: 6px; }
.has-ncols[data-density="genis"] .table > tfoot > tr > :is(td, th) { height: 48px; padding-top: 10px; padding-bottom: 10px; }

/* Tablonun sağ üstündeki iki düğme yan yana (satır yüksekliği solda, kolon düzeni sağda); önceden üst üste biniyordu */
.ncols__holder > .ncols__density { right: 32px; }
/* Görünen son kolon düğmelerin altında kalmaz (gizli isteğe bağlı kolonlar DOM'da sonda olabilir) */
.ncols thead th.ncol-last { padding-right: 62px; }

/* Uzun metin (K132, kullanıcı isteği 11 Ekim 2026): varsayılan tek satır; sığmayan metin "…" ile kısalır, üzerine gelince tamamı (novera.js).
   Açmak: tüm tablolar <html data-table-wrap="on"> (Temalar veya tablo menüsü), tek tablo .has-ncols[data-wrap="on"|"off"].
   Satır içi menü, düğme veya giriş alanı olan hücre kırpılmaz. */
:root:not([data-table-wrap="on"]) .table > tbody > tr > td { white-space: nowrap; }
:root:not([data-table-wrap="on"]) .table > tbody > tr > td:not(.num):not(:has(.menu, .button, input, select, textarea, .icon-button)) { max-width: 28rem; overflow: hidden; text-overflow: ellipsis; }
.has-ncols[data-wrap="off"] .table > tbody > tr > td { white-space: nowrap; }
.has-ncols[data-wrap="off"] .table > tbody > tr > td:not(.num):not(:has(.menu, .button, input, select, textarea, .icon-button)) { max-width: 28rem; overflow: hidden; text-overflow: ellipsis; }
.has-ncols[data-wrap="on"] .table > tbody > tr > td { white-space: normal; max-width: none; overflow: visible; text-overflow: clip; }
.pref-check { display: flex; align-items: flex-start; gap: 8px; margin-top: 12px; font-size: 13.5px; }
.pref-check input { margin-top: 3px; }

/* ERP sağ tık menüsü (K130, novera-context.js) — ortak .ngrid-menu görünümü üzerine kısayol ve alt not */
.erp-menu button { display: flex; align-items: center; gap: 16px; padding-left: 14px; }
.erp-menu__key { margin-left: auto; font-size: 11.5px; color: var(--text-faint); }
.erp-menu__foot { padding: 6px 14px 2px; border-top: 1px solid var(--border); margin-top: 4px; font-size: 11px; color: var(--text-faint); }

/* Satır üzerine gelme (K139, kullanıcı isteği 11 Ekim 2026: "bilançoda satıra mouse ile geldiğimde yazılar okunmuyor"):
   üzerine gelme satırın kendi zeminini DEĞİŞTİRMEZ, üstüne saydam katman ekler (background-image). Böylece koyu bant
   satırları (bilanço VARLIKLAR / KAYNAKLAR, ara toplamlar, seçili satır) zeminini ve yazı rengini korur, yazı okunur kalır.
   Tüm tablo türleri: .table, .pick-table, .fav-table, .ngrid__table, .rd-table. */
:root, [data-theme-preview] { --row-hover: color-mix(in srgb, var(--primary) 9%, transparent); }
:root:is([data-theme="gece"], [data-theme="grafit"], [data-theme="gece-mavisi"], [data-theme="siyah"]) { --row-hover: rgb(255 255 255 / 0.07); }
