/* ============================================================
   MARQUE by EGM — ürün kimliği katmanı (v2 "Precision Light")
   Yükleme sırası: app.css'ten SONRA gelmeli (head.html'de son CSS).

   v2 tasarım dili — v1'den bilinçli kopuş:
   - Chrome AÇIK: beyaz sidebar/header, hairline ayraçlar (v1 koyuydu)
   - Vurgu: kobalt mavi (v1 çam yeşiliydi)
   - Tipografi: Inter her yerde, IBM Plex Mono veri hücrelerinde
     (v1'deki Fraunces serif tamamen kaldırıldı)
   - Derinlik: yumuşak, kısık gölgeler (v1 tamamen gölgesizdi)
   - Kapsam: .nk-body üzerinden GLOBAL — tüm sayfalar aynı anda
     bu dili giyer. (v1 body.marque-app ile sayfa sayfa açılıyordu;
     hibrit görünümün sebebi buydu.) body'deki eski marque-app
     class'ları zararsızdır, kaldırılmaları gerekmez.

   Yapısal sözleşme: view'lardaki mq-* class adları ve davranışları
   (rail=grid, panel=yüzey, tb-stack=mobil kart, idcard, status...)
   AYNEN korunur; yalnız görsel tanımları değişti. Yeni sınıf
   uydurma — önce buradaki sözlüğe bak.
   ============================================================ */

/* ------------------------------------------------------------
   1. Fontlar (self-host, latin + latin-ext)
   Inter değişken (variable) dosyadır; tek dosya tüm ağırlıkları
   taşır. IBM Plex Mono statik 400/500.
   ------------------------------------------------------------ */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/marque/inter-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/marque/inter-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/marque/ibmplexmono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/marque/ibmplexmono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/marque/ibmplexmono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/marque/ibmplexmono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ------------------------------------------------------------
   2. Tasarım token'ları
   Token ADLARI v1 ile aynı bırakıldı (view'lar/inline kullanımlar
   kırılmasın); DEĞERLER v2 diline göre yeniden atandı.
   --mq-ivory artık "canvas" (çalışma alanı zemini) demektir.
   ------------------------------------------------------------ */
:root {
  /* zemin */
  --mq-ink: #171a20;        /* en koyu: başlık metni, solid vurgu */
  --mq-ink-soft: #232730;   /* koyu yüzey üstü yükseltme */
  --mq-ink-line: #343946;   /* koyu zeminde hairline */
  --mq-ivory: #eceef2;      /* canvas — çalışma alanı zemini (bilinçli olarak beyazdan uzak) */
  --mq-surface: #ffffff;    /* kart / panel / modal / chrome yüzeyi */
  --mq-line: #e5e7ec;       /* açık zeminde hairline */

  /* metin */
  --mq-text: #20242b;
  --mq-text-mute: #6a7280;
  --mq-ivory-text: #f5f6f8;      /* koyu zeminde ana metin */
  --mq-ivory-mute: #9aa1ac;      /* koyu zeminde ikincil metin */

  /* vurgu — tek renk: kobalt */
  --mq-accent: #2b4fd8;
  --mq-accent-ink: #1e3aa6;
  --mq-accent-wash: #edf1fd;     /* vurgu renginin soluk zemini */

  /* durum — kısık doygunluk; soluk zemin + koyu metin formülü */
  --mq-ok: #1a7f45;    --mq-ok-wash: #e9f6ee;
  --mq-warn: #a86a08;  --mq-warn-wash: #fdf4e4;
  --mq-err: #c03a30;   --mq-err-wash: #fbedec;
  --mq-info: #46648c;  --mq-info-wash: #eef2f8;

  /* biçim */
  --mq-radius: 14px;       /* yüzeyler: kart, panel, drawer */
  --mq-radius-sm: 10px;    /* kontroller: input, çip, satır köşesi */
  --mq-pill: 999px;        /* butonlar: hap formu */
  --mq-shadow-sm: 0 1px 2px rgba(23, 26, 32, 0.05);
  --mq-shadow-md: 0 4px 14px rgba(23, 26, 32, 0.07);
  --mq-shadow-lg: 0 18px 44px rgba(23, 26, 32, 0.14);
  --mq-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mq-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mq-font-mono: 'IBM Plex Mono', Consolas, 'Courier New', monospace;
}

::selection {
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
}

/* ============================================================
   3. UYGULAMA CHROME'U — .nk-body üzerinden GLOBAL
   DashLite iskeleti (nk-*) korunur, kimlik bu katmanla giydirilir.
   ============================================================ */

/* --- zemin & tipografi --- */
body.nk-body {
  background: var(--mq-ivory);
  color: var(--mq-text);
  font-family: var(--mq-font-body);
  -webkit-font-smoothing: antialiased;
}

body.nk-body.bg-lighter {
  background: var(--mq-ivory) !important;
}

.nk-body h1, .nk-body h2, .nk-body h3,
.nk-body h4, .nk-body h5, .nk-body h6 {
  font-family: var(--mq-font-body);
  color: var(--mq-text);
  letter-spacing: -0.01em;
}

.nk-body .nk-block-title.page-title {
  font-weight: 700;
  font-size: 24px;
  letter-spacing: -0.015em;
  color: var(--mq-text);
}

.nk-body .nk-block-des,
.nk-body .text-soft {
  color: var(--mq-text-mute) !important;
}

/* veri hücreleri — VIN / plaka / tutar / tarih */
.nk-body .mq-mono,
.nk-body .tb-amount {
  font-family: var(--mq-font-mono);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.nk-body .amount {
  font-family: var(--mq-font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--mq-text);
}

.nk-body .mq-date {
  font-family: var(--mq-font-mono);
  font-size: 12.5px;
  color: var(--mq-text-mute);
}

/* --- sidebar: açık chrome --- */
.nk-body .nk-sidebar,
.nk-body .nk-sidebar.is-light {
  background: var(--mq-surface);
  border-right: 1px solid var(--mq-line);
  display: flex;
  flex-direction: column;
}

.nk-body .nk-sidebar-element.nk-sidebar-head {
  background: transparent;
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .nk-sidebar .nk-sidebar-content {
  flex: 1 1 auto;
  min-height: 0;
}

.nk-body .nk-menu-heading .overline-title,
.nk-body .nk-menu-heading .overline-title.text-primary-alt {
  color: var(--mq-text-mute) !important;
  font-family: var(--mq-font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
}

.nk-body .nk-menu-link {
  color: var(--mq-text-mute);
  border-radius: var(--mq-radius-sm);
  margin: 0 10px;
  padding-left: 14px;
  padding-right: 14px;
}

.nk-body .nk-menu-icon .icon {
  color: var(--mq-text-mute) !important;
}

.nk-body .nk-menu-link:hover,
.nk-body .nk-menu-item:hover > .nk-menu-link {
  color: var(--mq-text);
  background: var(--mq-ivory);
}

.nk-body .nk-menu-item.active > .nk-menu-link,
.nk-body .nk-menu-item.current-page > .nk-menu-link {
  color: var(--mq-accent-ink);
  background: var(--mq-accent-wash);
}

.nk-body .nk-menu-link:hover .nk-menu-icon .icon,
.nk-body .nk-menu-item:hover > .nk-menu-link .nk-menu-icon .icon {
  color: var(--mq-text) !important;
}

.nk-body .nk-menu-item.active > .nk-menu-link .nk-menu-icon .icon,
.nk-body .nk-menu-item.current-page > .nk-menu-link .nk-menu-icon .icon {
  color: var(--mq-accent) !important;
}

.nk-body .nk-menu-sub .nk-menu-link {
  color: var(--mq-text-mute);
  margin: 0;
}

.nk-body .nk-menu-sub .nk-menu-link:hover {
  color: var(--mq-accent-ink);
  background: transparent;
}

.nk-body .nk-menu-badge {
  background: var(--mq-ivory);
  color: var(--mq-text-mute);
  border: 1px solid var(--mq-line);
  border-radius: 999px;
  font-family: var(--mq-font-mono);
  font-size: 10px;
}

.nk-body .nk-menu-badge.badge-danger {
  background: var(--mq-err);
  border-color: var(--mq-err);
  color: #fff;
}

.nk-body .nk-sidebar .nk-nav-toggle .icon {
  color: var(--mq-text-mute);
}

/* --- kabuk ölçüleri: sidebar 264px (DashLite 290'ı ezer) --- */
.nk-body .nk-sidebar,
.nk-body .nk-sidebar.nk-sidebar-fixed {
  width: 264px;
}

@media (min-width: 1200px) {
  .nk-body .nk-sidebar + .nk-wrap {
    padding-left: 264px;
  }
}

/* --- sidebar başlığı: kiracı markası --- */
.mqs-side-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 65px;
  padding: 0 20px;
}

.mqs-side-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
}

.mqs-side-brand:hover {
  text-decoration: none;
}

.mqs-side-logo {
  display: block;
  max-height: 32px;
  max-width: 150px;
  width: auto;
  height: auto;
}

.mqs-side-tenant {
  display: inline-block;
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  color: var(--mq-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 170px;
}

.mqs-side-close .icon {
  color: var(--mq-text-mute);
}

.mqs-side-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* --- sidebar altı: oturum kartı + ürün imzası --- */
.mqs-side-foot {
  flex: 0 0 auto;
  padding: 12px 16px 14px;
  border-top: 1px solid var(--mq-line);
}

.mqs-side-user {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.mqs-side-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: var(--mq-radius-sm);
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.mqs-side-user-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.mqs-side-user-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mq-text);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mqs-side-user-role {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  line-height: 1.3;
}

a.mqs-side-user-out {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: var(--mq-radius-sm);
  color: var(--mq-text-mute);
  text-decoration: none;
}

a.mqs-side-user-out:hover {
  background: var(--mq-err-wash);
  color: var(--mq-err);
}

.mqs-side-sig {
  margin-top: 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.mqs-side-sig span {
  font-weight: 500;
  letter-spacing: 0.14em;
  opacity: 0.65;
}

/* --- header: açık chrome --- */
.nk-body .nk-header,
.nk-body .nk-header.is-light {
  background: var(--mq-surface);
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .nk-header .nk-quick-nav-icon .icon,
.nk-body .nk-header .nk-nav-toggle .icon {
  color: var(--mq-text-mute);
}

.mqs-head-wrap {
  align-items: center;
  gap: 14px;
}

/* --- header sol: bağlam (kiracı + sayfa adı) --- */
.mqs-head-context {
  min-width: 0;
}

.mqs-head-kicker {
  display: block;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  line-height: 1.3;
}

.mqs-head-title {
  display: block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--mq-text);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* --- header mobil marka --- */
.mqs-head-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.mqs-head-logo {
  display: block;
  max-height: 30px;
  max-width: 130px;
  width: auto;
  height: auto;
}

.mqs-head-tenant {
  font-size: 14px;
  font-weight: 700;
  color: var(--mq-text);
  white-space: nowrap;
}

.mqs-head-burger .icon {
  color: var(--mq-text-mute);
}

/* --- header sağ: aksiyonlar --- */
.mqs-head-tools .nk-quick-nav {
  align-items: center;
}

a.mqs-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border: 1px solid var(--mq-accent);
  border-radius: var(--mq-radius-sm);
  background: var(--mq-accent);
  color: #fff;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: var(--mq-shadow-sm);
  transition: background 0.15s ease, border-color 0.15s ease;
}

a.mqs-cta:hover {
  background: var(--mq-accent-ink);
  border-color: var(--mq-accent-ink);
  color: #fff;
  text-decoration: none;
}

a.mqs-cta.mqs-cta-icon {
  width: 36px;
  height: 36px;
  padding: 0;
}

a.mqs-head-iconbtn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  background: var(--mq-surface);
  color: var(--mq-text-mute);
  text-decoration: none;
}

a.mqs-head-iconbtn:hover {
  color: var(--mq-text);
  border-color: var(--mq-text-mute);
}

a.mqs-head-iconbtn .icon {
  font-size: 17px;
}

.mqs-head-dot {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--mq-err);
  border: 2px solid var(--mq-surface);
}

/* --- header kullanıcı menüsü --- */
a.mqs-user-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.mqs-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: var(--mq-radius-sm);
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.mqs-user-meta {
  flex-direction: column;
  min-width: 0;
}

.mqs-user-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--mq-text);
  line-height: 1.3;
  white-space: nowrap;
}

.mqs-user-role {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  line-height: 1.3;
}

.mqs-user-caret {
  color: var(--mq-text-mute);
  font-size: 14px;
}

/* --- header dropdown gövdesi --- */
.mqs-drop {
  padding: 0;
  overflow: hidden;
}

.mqs-drop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--mq-line);
}

.mqs-drop-user {
  justify-content: flex-start;
  background: var(--mq-ivory);
}

.mqs-drop-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.mqs-drop-count {
  font-family: var(--mq-font-mono);
  font-size: 11px;
  color: var(--mq-err);
}

.mqs-drop-body {
  max-height: 320px;
  overflow-y: auto;
}

.mqs-alert-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--mq-line);
}

.mqs-alert-row:last-child {
  border-bottom: none;
}

.mqs-alert-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: var(--mq-radius-sm);
  background: var(--mq-warn-wash);
  color: var(--mq-warn);
}

.mqs-alert-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.mqs-alert-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mq-text);
  line-height: 1.35;
}

.mqs-alert-sub {
  font-family: var(--mq-font-mono);
  font-size: 11px;
  color: var(--mq-text-mute);
  line-height: 1.4;
  margin-top: 1px;
}

.mqs-alert-empty {
  padding: 22px 16px;
  text-align: center;
  font-size: 12.5px;
  color: var(--mq-text-mute);
}

.mqs-drop-foot {
  padding: 10px 16px;
  border-top: 1px solid var(--mq-line);
  text-align: center;
}

/* --- sayfa başlığı bandı (view'lardaki nk-block-head) --- */
.nk-body .nk-content-body > .nk-block-head {
  border-bottom: 1px solid var(--mq-line);
  padding-bottom: 16px;
  margin-bottom: 22px;
}

/* içerik dolgu ritmi — geniş ekranda nefes payı */
@media (min-width: 1280px) {
  .nk-body .nk-content > .container-fluid {
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* --- footer --- */
.nk-body .nk-footer {
  background: transparent;
  border-top: 1px solid var(--mq-line);
}

.nk-body .nk-footer-copyright {
  font-size: 12px;
  color: var(--mq-text-mute);
}

/* ------------------------------------------------------------
   4. Bileşen giydirmeleri (Bootstrap 4 + DashLite sözlüğü)
   ------------------------------------------------------------ */

/* --- butonlar --- */
.nk-body .btn {
  border-radius: var(--mq-radius-sm);
  font-family: var(--mq-font-body);
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: none;
}

.nk-body .btn-primary {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
  color: #fff;
  box-shadow: var(--mq-shadow-sm);
}

.nk-body .btn-primary:hover,
.nk-body .btn-primary:focus,
.nk-body .btn-primary:not(:disabled):not(.disabled):active {
  background: var(--mq-accent-ink);
  border-color: var(--mq-accent-ink);
  color: #fff;
  box-shadow: var(--mq-shadow-sm);
}

.nk-body .btn-outline-primary,
.nk-body .btn-dim.btn-outline-primary {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  color: var(--mq-accent);
}

.nk-body .btn-outline-primary:hover,
.nk-body .btn-dim.btn-outline-primary:hover {
  background: var(--mq-accent-wash);
  border-color: var(--mq-accent);
  color: var(--mq-accent-ink);
}

.nk-body .btn-white,
.nk-body .btn-outline-light,
.nk-body .btn-light {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  color: var(--mq-text-mute);
}

.nk-body .btn-white:hover,
.nk-body .btn-outline-light:hover,
.nk-body .btn-light:hover {
  color: var(--mq-text);
  border-color: var(--mq-text-mute);
  background: var(--mq-surface);
}

.nk-body .btn-success {
  background: var(--mq-ok);
  border-color: var(--mq-ok);
}

.nk-body .btn-danger {
  background: var(--mq-err);
  border-color: var(--mq-err);
}

.nk-body .btn-warning {
  background: var(--mq-warn);
  border-color: var(--mq-warn);
  color: #fff;
}

.nk-body .btn-info {
  background: var(--mq-info);
  border-color: var(--mq-info);
}

.nk-body .btn-secondary,
.nk-body .btn-dark {
  background: var(--mq-ink);
  border-color: var(--mq-ink);
  color: var(--mq-ivory-text);
}

.nk-body .btn-secondary:hover,
.nk-body .btn-dark:hover {
  background: var(--mq-ink-soft);
  border-color: var(--mq-ink-soft);
  color: var(--mq-ivory-text);
}

.nk-body .btn-trigger {
  color: var(--mq-text-mute);
}

.nk-body .btn:focus-visible {
  outline: 2px solid var(--mq-accent);
  outline-offset: 2px;
}

/* --- kartlar: yumuşak yükseltme --- */
.nk-body .card {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-sm);
}

.nk-body .card .card-inner {
  background: transparent;
}

.nk-body .card-title .title {
  color: var(--mq-text);
  font-weight: 600;
}

.nk-body .card-title .subtitle,
.nk-body .card-title p {
  color: var(--mq-text-mute);
}

/* --- tablo (nk-tb-list) --- */
.nk-body .nk-tb-list {
  color: var(--mq-text);
}

.nk-body .nk-tb-item:not(:last-child) .nk-tb-col {
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .nk-tb-item.nk-tb-head .nk-tb-col {
  border-bottom: 1px solid var(--mq-line);
  background: var(--mq-ivory);
}

.nk-body .nk-tb-head .sub-text {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.nk-body tbody .nk-tb-item:hover {
  background: var(--mq-ivory);
}

.nk-body div.nk-tb-list .nk-tb-item:not(.nk-tb-head):hover {
  background: var(--mq-ivory);
}

.nk-body .nk-tb-col {
  font-size: 13.5px;
}

.nk-body .tb-lead {
  color: var(--mq-text);
  font-weight: 600;
}

.nk-body .user-card .user-info span:not(.tb-lead) {
  font-family: var(--mq-font-mono);
  font-size: 12px;
  color: var(--mq-text-mute);
}

.nk-body .user-avatar,
.nk-body .user-avatar.bg-dim-primary {
  background: var(--mq-accent-wash) !important;
  color: var(--mq-accent-ink) !important;
  text-transform: uppercase;
  font-weight: 600;
}

/* düz bootstrap tabloları */
.nk-body .table {
  color: var(--mq-text);
}

.nk-body .table thead th {
  border-color: var(--mq-line);
}

.nk-body .table td {
  border-color: var(--mq-line);
}

/* --- rozetler: soluk zemin + koyu metin formülü --- */
.nk-body .badge {
  border-radius: 5px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.nk-body .badge-success { background: var(--mq-ok-wash); color: var(--mq-ok); }
.nk-body .badge-warning { background: var(--mq-warn-wash); color: var(--mq-warn); }
.nk-body .badge-danger:not(.nk-menu-badge):not(.badge-pill) { background: var(--mq-err-wash); color: var(--mq-err); }
.nk-body .badge-info { background: var(--mq-info-wash); color: var(--mq-info); }
.nk-body .badge-primary { background: var(--mq-accent-wash); color: var(--mq-accent-ink); }
.nk-body .badge-secondary { background: var(--mq-ivory); color: var(--mq-text-mute); }

.nk-body .badge-dot.badge-success { background: transparent; color: var(--mq-ok); }
.nk-body .badge-dot.badge-danger { background: transparent; color: var(--mq-err); }
.nk-body .badge-dot.badge-warning { background: transparent; color: var(--mq-warn); }

/* --- dropdown --- */
.nk-body .dropdown-menu {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-md);
}

.nk-body .link-list-opt a {
  color: var(--mq-text);
}

.nk-body .link-list-opt a:hover {
  background: var(--mq-ivory);
  color: var(--mq-accent-ink);
}

.nk-body .link-list-opt a .icon {
  color: var(--mq-text-mute);
}

.nk-body .dropdown-menu .divider {
  border-color: var(--mq-line);
}

/* --- formlar --- */
.nk-body .form-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.nk-body .form-control {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  color: var(--mq-text);
  font-family: var(--mq-font-body);
  box-shadow: none;
}

.nk-body .form-control::placeholder {
  color: #b0b5bd;
}

.nk-body .form-control:focus {
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px rgba(43, 79, 216, 0.13);
  outline: none;
}

.nk-body select.form-control,
.nk-body .custom-select {
  background-color: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  color: var(--mq-text);
}

.nk-body .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--mq-accent);
  border-color: var(--mq-accent);
}

.nk-body .input-group-text {
  background: var(--mq-ivory);
  border: 1px solid var(--mq-line);
  color: var(--mq-text-mute);
  border-radius: var(--mq-radius-sm);
}

/* select2 (bundle.js içinden) */
.nk-body .select2-container--default .select2-selection--single,
.nk-body .select2-container--default .select2-selection--multiple {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
}

.nk-body .select2-container--default.select2-container--focus .select2-selection--single,
.nk-body .select2-container--default.select2-container--focus .select2-selection--multiple {
  border-color: var(--mq-accent);
}

.select2-dropdown {
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  box-shadow: var(--mq-shadow-md);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--mq-accent);
}

/* --- modal --- */
.nk-body .modal-content {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-lg);
  color: var(--mq-text);
}

.nk-body .modal-header {
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .modal-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--mq-text);
}

.nk-body .modal-footer,
.nk-body .modal-footer.bg-light {
  background: var(--mq-ivory) !important;
  border-top: 1px solid var(--mq-line);
  border-radius: 0 0 var(--mq-radius) var(--mq-radius);
}

/* --- sekmeler --- */
.nk-body .nav-tabs .nav-link {
  color: var(--mq-text-mute);
  border-bottom: 2px solid transparent;
}

.nk-body .nav-tabs .nav-link:hover {
  color: var(--mq-text);
}

.nk-body .nav-tabs .nav-link.active {
  color: var(--mq-accent-ink);
  border-bottom-color: var(--mq-accent);
}

/* --- profil listeleri (detay sayfaları) --- */
.nk-body .profile-ud-label {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.nk-body .profile-ud-value {
  color: var(--mq-text);
  font-size: 13.5px;
}

/* --- linkler --- */
.nk-body .text-primary {
  color: var(--mq-accent) !important;
}

.nk-body .link-primary,
.nk-body a.link {
  color: var(--mq-accent);
}

.nk-body .link-primary:hover,
.nk-body a.link:hover {
  color: var(--mq-accent-ink);
}

/* --- alert --- */
.nk-body .alert {
  border-radius: var(--mq-radius-sm);
  border: 1px solid transparent;
}

.nk-body .alert-success { background: var(--mq-ok-wash); border-color: rgba(26, 127, 69, 0.25); color: var(--mq-ok); }
.nk-body .alert-danger { background: var(--mq-err-wash); border-color: rgba(192, 58, 48, 0.25); color: var(--mq-err); }
.nk-body .alert-warning { background: var(--mq-warn-wash); border-color: rgba(168, 106, 8, 0.25); color: var(--mq-warn); }
.nk-body .alert-info { background: var(--mq-info-wash); border-color: rgba(70, 100, 140, 0.25); color: var(--mq-info); }

/* --- DataTables kontrolleri --- */
.nk-body .dataTables_filter input {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
}

.nk-body .dataTables_length select {
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  color: var(--mq-text);
}

.nk-body .dataTables_info,
.nk-body .dataTables_length label {
  color: var(--mq-text-mute);
  font-size: 12.5px;
}

.nk-body .pagination .page-link {
  color: var(--mq-text-mute);
  border: 1px solid var(--mq-line);
  background: var(--mq-surface);
  font-family: var(--mq-font-mono);
  font-size: 12.5px;
}

.nk-body .pagination .page-item.active .page-link {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
  color: #fff;
}

.nk-body .pagination .page-link:hover {
  background: var(--mq-ivory);
  color: var(--mq-text);
}

/* --- SweetAlert2 / toastr (responder çıktıları) --- */
.nk-body .swal2-popup {
  font-family: var(--mq-font-body);
  border-radius: var(--mq-radius);
  color: var(--mq-text);
}

.nk-body .swal2-popup .swal2-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--mq-text);
}

.nk-body .swal2-popup .btn-primary,
.nk-body .swal2-popup .swal2-confirm {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
}

#toast-container > div {
  font-family: var(--mq-font-body);
  border-radius: var(--mq-radius-sm);
  box-shadow: var(--mq-shadow-md);
  opacity: 0.98;
}

/* --- loader kimliğe boyanır --- */
.nk-body .loading-overlay {
  background: rgba(236, 238, 242, 0.85) !important;
}

.nk-body .circle-loader {
  border-color: rgba(23, 26, 32, 0.12) !important;
  border-top-color: var(--mq-accent) !important;
}

/* --- boş durum --- */
.nk-body .mq-empty {
  text-align: center;
  padding: 72px 24px;
}

.nk-body .mq-empty-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: -0.01em;
  color: var(--mq-text);
  margin: 0 0 8px;
}

.nk-body .mq-empty-text {
  font-size: 13.5px;
  color: var(--mq-text-mute);
  max-width: 380px;
  margin: 0 auto 22px;
}

.nk-body .mq-empty-sm {
  padding: 40px 24px;
}

.nk-body .mq-empty-sm .mq-empty-title {
  font-size: 15.5px;
}

/* ------------------------------------------------------------
   5. Tablo → kart mobil deseni (standart: .mq-tb-stack)
   <768px'te satırlar karta dönüşür; td'lere data-label verilir.
   ------------------------------------------------------------ */
@media (max-width: 767.98px) {
  .nk-body .mq-tb-stack thead {
    display: none;
  }

  .nk-body .mq-tb-stack,
  .nk-body .mq-tb-stack tbody {
    display: block;
    width: 100%;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-item {
    display: block;
    background: var(--mq-surface);
    border: 1px solid var(--mq-line);
    border-radius: var(--mq-radius);
    box-shadow: var(--mq-shadow-sm);
    margin-bottom: 12px;
    padding: 6px 16px;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-item:hover {
    background: var(--mq-surface);
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    border-bottom: 1px solid var(--mq-line);
    padding: 10px 0;
    font-size: 13px;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col:last-child {
    border-bottom: none;
  }

  /* DashLite'ın kırılım gizlemelerini stack içinde geçersiz kıl */
  .nk-body .mq-tb-stack tbody .nk-tb-col.tb-col-sm,
  .nk-body .mq-tb-stack tbody .nk-tb-col.tb-col-md,
  .nk-body .mq-tb-stack tbody .nk-tb-col.tb-col-lg,
  .nk-body .mq-tb-stack tbody .nk-tb-col.tb-col-xl {
    display: flex !important;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col.mq-stack-hide {
    display: none !important;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col[data-label]::before {
    content: attr(data-label);
    flex: 0 0 auto;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mq-text-mute);
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col.nk-tb-col-tools {
    justify-content: flex-end;
    padding-top: 8px;
    padding-bottom: 8px;
  }
}

/* ============================================================
   6. Marque bileşen dili — sayfa başlığı, ray, panel
   ============================================================ */

/* --- sayfa başlığı --- */
.nk-body .mq-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .mq-page-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--mq-text);
  margin: 0;
}

.nk-body .mq-page-sub {
  font-size: 12.5px;
  color: var(--mq-text-mute);
  margin: 5px 0 0;
}

/* toplu donusumde aciklama <p>'leri mq-page-sub icinde kalabilir */
.nk-body .mq-page-sub p {
  margin: 0;
  font-size: inherit;
  color: inherit;
}

.nk-body .mq-page-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* --- sessiz aksiyon butonu — <a> ve <button> ikisinde de çalışır.
       Tek buton sınıfı budur; yeni bir buton adı icat etme. --- */
.nk-body .mq-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 15px;
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  background: var(--mq-surface);
  color: var(--mq-text);
  font-family: var(--mq-font-body);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--mq-shadow-sm);
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.nk-body .mq-action:hover {
  border-color: var(--mq-accent);
  color: var(--mq-accent-ink);
  text-decoration: none;
}

.nk-body .mq-action:focus-visible {
  outline: 2px solid var(--mq-accent);
  outline-offset: 2px;
}

.nk-body .mq-action-solid {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
  color: #fff;
}

.nk-body .mq-action-solid:hover {
  background: var(--mq-accent-ink);
  border-color: var(--mq-accent-ink);
  color: #fff;
}

/* --- uyarı şeridi --- */
.nk-body a.mq-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 20px;
  border: 1px solid var(--mq-line);
  border-left: 3px solid var(--mq-warn);
  border-radius: var(--mq-radius-sm);
  background: var(--mq-warn-wash);
  color: var(--mq-text);
  font-size: 13px;
  text-decoration: none;
}

.nk-body a.mq-notice:hover {
  border-left-color: var(--mq-accent);
}

.nk-body .mq-notice .icon {
  color: var(--mq-warn);
  font-size: 16px;
}

/* --- ray: KPI'lar hairline bölmeli tek yüzeyde --- */
.nk-body .mq-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-sm);
  overflow: hidden;
}

.nk-body .mq-rail-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nk-body .mq-rail-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nk-body .mq-rail-tight {
  margin-top: 16px;
}

.nk-body .mq-rail-item {
  padding: 18px 20px;
  border-left: 1px solid var(--mq-line);
  border-top: none;
}

.nk-body .mq-rail-item:first-child {
  border-left: none;
}

.nk-body .mq-kpi-label {
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  margin-bottom: 10px;
}

.nk-body .mq-kpi-cur {
  font-family: var(--mq-font-mono);
  font-size: 9.5px;
  letter-spacing: 0.04em;
}

.nk-body .mq-kpi-value {
  font-family: var(--mq-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.1;
  color: var(--mq-text);
}

.nk-body .mq-kpi-foot {
  font-size: 12px;
  color: var(--mq-text-mute);
  margin-top: 8px;
}

.nk-body .mq-delta-ok {
  color: var(--mq-ok);
  font-weight: 600;
}

.nk-body .mq-delta-err {
  color: var(--mq-err);
  font-weight: 600;
}

.nk-body .mq-delta-mute {
  color: var(--mq-text-mute);
}

/* --- panel: hairline çerçeve + yumuşak gölge --- */
.nk-body .mq-panel {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-sm);
  padding: 20px 22px;
}

.nk-body .mq-panel-full {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.nk-body .mq-panel-flush {
  padding: 0;
  overflow: hidden;
}

.nk-body .mq-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.nk-body .mq-panel-head-pad {
  padding: 20px 22px 0;
}

.nk-body .mq-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  margin: 0;
}

.nk-body .mq-panel-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nk-body .mq-mt {
  margin-top: 20px;
}

/* --- lejant: grafik paletiyle birebir (statistics.js ile senkron) --- */
.nk-body .mq-legend {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

.nk-body .mq-legend li {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--mq-text-mute);
}

.nk-body .mq-legend-foot {
  margin-top: 18px;
  justify-content: center;
}

.nk-body .mq-swatch {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  flex: 0 0 auto;
}

.nk-body .mq-swatch-accent { background: var(--mq-accent); }
.nk-body .mq-swatch-ok { background: var(--mq-ok); }
.nk-body .mq-swatch-warn { background: var(--mq-warn); }
.nk-body .mq-swatch-info { background: var(--mq-info); }
.nk-body .mq-swatch-neutral { background: var(--mq-line); }

/* --- grafik kutuları: Chart.js maintainAspectRatio:false → açık yükseklik şart --- */
.nk-body .mq-chart-box {
  position: relative;
  height: 300px;
}

.nk-body .mq-chart-donut {
  height: 220px;
  flex-grow: 1;
}

/* --- bölüm başlığı --- */
.nk-body .mq-section {
  margin-top: 34px;
}

.nk-body .mq-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--mq-line);
}

.nk-body .mq-section-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--mq-text);
  margin: 0;
}

.nk-body a.mq-section-link {
  font-size: 12px;
  font-weight: 600;
  color: var(--mq-text-mute);
  text-decoration: none;
}

.nk-body a.mq-section-link:hover {
  color: var(--mq-accent);
}

.nk-body .mq-subhead {
  margin: 22px 0 10px;
}

/* --- etiket (SERVICE / WARRANTY) --- */
.nk-body .mq-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.nk-body .mq-tag-service {
  background: var(--mq-warn-wash);
  color: var(--mq-warn);
}

.nk-body .mq-tag-warranty {
  background: var(--mq-info-wash);
  color: var(--mq-info);
}

/* --- durum çipi: soluk zemin + koyu metin + nokta --- */
.nk-body .mq-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.nk-body .mq-status::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}

.nk-body .mq-status-ok { background: var(--mq-ok-wash); color: var(--mq-ok); }
.nk-body .mq-status-warn { background: var(--mq-warn-wash); color: var(--mq-warn); }
.nk-body .mq-status-info { background: var(--mq-info-wash); color: var(--mq-info); }
.nk-body .mq-status-err { background: var(--mq-err-wash); color: var(--mq-err); }
.nk-body .mq-status-neutral { background: var(--mq-ivory); color: var(--mq-text-mute); }

/* --- sayı hücreleri: kanonik sınıf `.mq-mono` (bölüm 3'te tanımlı).
       Yeni bir sayı sınıfı ekleme — mq-mono kullan. --- */
.nk-body .mq-tier {
  display: inline-block;
  padding: 1px 6px;
  border: 1px solid var(--mq-line);
  border-radius: 4px;
  font-family: var(--mq-font-mono);
  font-size: 11px;
  color: var(--mq-text-mute);
}

/* --- kimlik hücresi: monogram plakası + ad/alt satır --- */
.nk-body .mq-idcard {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.nk-body .mq-monogram {
  display: inline-flex;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--mq-radius-sm);
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
  font-family: var(--mq-font-body);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nk-body .mq-idcard-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.nk-body .mq-idcard-name {
  color: var(--mq-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nk-body .mq-idcard-sub {
  color: var(--mq-text-mute);
  font-family: var(--mq-font-mono);
  font-size: 11.5px;
  line-height: 1.35;
}

.nk-body .mq-muted {
  color: var(--mq-text-mute);
}

/* --- liste tablosu sarmalayıcı: dar ekranda yatay kaydırır --- */
.nk-body .mq-table-wrap {
  overflow-x: auto;
}

/* --- geniş analiz tablosu: yatay kaydırma (stack'e uygun değil) --- */
.nk-body .mq-table-scroll {
  overflow-x: auto;
  margin: 0 -22px;
  padding: 0 22px;
}

.nk-body .mq-table thead th {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  border-top: none;
  border-bottom: 1px solid var(--mq-line);
  white-space: nowrap;
}

.nk-body .mq-table tbody td {
  border-top: 1px solid var(--mq-line);
  vertical-align: middle;
  font-size: 13px;
}

.nk-body .mq-table tbody tr:hover {
  background: var(--mq-ivory);
}

/* --- metodoloji notu --- */
.nk-body .mq-note {
  border-top: 1px solid var(--mq-line);
  margin-top: 16px;
  padding-top: 12px;
}

.nk-body .mq-note summary {
  cursor: pointer;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  list-style: none;
}

.nk-body .mq-note summary::-webkit-details-marker {
  display: none;
}

.nk-body .mq-note summary::before {
  content: '+ ';
  font-family: var(--mq-font-mono);
}

.nk-body .mq-note[open] summary::before {
  content: '\2212 ';
}

.nk-body .mq-note summary:hover {
  color: var(--mq-accent);
}

.nk-body .mq-note p {
  font-size: 12px;
  line-height: 1.65;
  color: var(--mq-text-mute);
  margin: 10px 0 0;
}

/* --- responsive: 1280 / 768 / 390 --- */
@media (max-width: 1199.98px) {
  .nk-body .mq-rail,
  .nk-body .mq-rail-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nk-body .mq-rail-item:nth-child(odd) {
    border-left: none;
  }

  .nk-body .mq-rail-item:nth-child(n+3) {
    border-top: 1px solid var(--mq-line);
  }
}

@media (max-width: 575.98px) {
  .nk-body .mq-page-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .nk-body .mq-page-title {
    font-size: 21px;
  }

  .nk-body .mq-rail,
  .nk-body .mq-rail-3,
  .nk-body .mq-rail-2 {
    grid-template-columns: minmax(0, 1fr);
  }

  .nk-body .mq-rail-item {
    border-left: none;
  }

  .nk-body .mq-rail-item + .mq-rail-item {
    border-top: 1px solid var(--mq-line);
  }

  .nk-body .mq-panel {
    padding: 16px;
  }

  .nk-body .mq-panel-head-pad {
    padding: 16px 16px 0;
  }

  .nk-body .mq-table-scroll {
    margin: 0 -16px;
    padding: 0 16px;
  }
}

/* ============================================================
   7. AUTH SAHNESİ (signin / getstarted / forgot / reset)
   Kapsam: body.marque-auth — v2'de AÇIK sahne (v1 koyuydu).
   Chrome kurallarından sonra gelir ki body zemini kazansın.
   ============================================================ */
body.nk-body.marque-auth {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--mq-ivory);
  background-image: radial-gradient(ellipse 90% 70% at 50% -10%, #ffffff 0%, var(--mq-ivory) 62%);
  color: var(--mq-text);
  font-family: var(--mq-font-body);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

.mq-auth {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 20px;
}

.mq-auth-inner {
  width: 100%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* --- marka bloğu --- */
.mq-brand {
  text-align: center;
  margin-bottom: 36px;
}

a.mq-wordmark {
  display: inline-block;
  font-family: var(--mq-font-body);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: 0.3em;
  text-indent: 0.3em; /* letter-spacing'in sağa kaçırdığı optik merkezi düzeltir */
  text-transform: uppercase;
  color: var(--mq-ink);
  text-decoration: none;
  line-height: 1.2;
}

a.mq-wordmark:hover,
a.mq-wordmark:focus {
  color: var(--mq-ink);
  text-decoration: none;
}

.mq-brand-sub {
  display: block;
  margin-top: 8px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.42em;
  text-indent: 0.42em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

/* --- kart --- */
.mq-card {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-md);
  padding: 40px;
  color: var(--mq-text);
}

.mq-card-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 21px;
  letter-spacing: -0.015em;
  line-height: 1.25;
  color: var(--mq-text);
  margin: 0 0 6px;
}

.mq-card-lead {
  font-size: 13.5px;
  color: var(--mq-text-mute);
  margin: 0 0 28px;
}

/* --- form --- */
.marque-auth .mq-field {
  margin-bottom: 20px;
}

.mq-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.marque-auth .mq-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  margin-bottom: 8px;
}

.marque-auth a.mq-link-quiet {
  font-size: 12px;
  color: var(--mq-accent);
  text-decoration: none;
}

.marque-auth a.mq-link-quiet:hover {
  color: var(--mq-accent-ink);
  text-decoration: underline;
}

.marque-auth .form-control.mq-input {
  height: 46px;
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  color: var(--mq-text);
  font-family: var(--mq-font-body);
  font-size: 14px;
  padding: 0 14px;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.marque-auth .form-control.mq-input::placeholder {
  color: #b0b5bd;
}

.marque-auth .form-control.mq-input:focus {
  background: var(--mq-surface);
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px rgba(43, 79, 216, 0.13);
  outline: none;
}

/* şifre göster/gizle ikonu (NioApp.Passcode markup'ı korunur) */
.marque-auth .form-icon.mq-passcode {
  color: var(--mq-text-mute);
  height: 46px;
  line-height: 46px;
}

.marque-auth .form-icon.mq-passcode:hover {
  color: var(--mq-text);
}

/* --- birincil buton --- */
.marque-auth .mq-btn {
  display: block;
  width: 100%;
  height: 48px;
  margin-top: 26px;
  background: var(--mq-accent);
  border: 1px solid var(--mq-accent);
  border-radius: var(--mq-radius-sm);
  color: #fff;
  font-family: var(--mq-font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: var(--mq-shadow-sm);
  transition: background-color .15s ease, border-color .15s ease;
}

.marque-auth .mq-btn:hover {
  background: var(--mq-accent-ink);
  border-color: var(--mq-accent-ink);
  color: #fff;
}

.marque-auth .mq-btn:focus-visible {
  outline: 2px solid var(--mq-accent);
  outline-offset: 2px;
}

/* buton olarak kullanılan linkler (ör. getstarted'daki mailto CTA) */
.marque-auth a.mq-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

/* --- kart altı --- */
.mq-alt {
  text-align: center;
  margin: 24px 0 0;
  font-size: 13px;
  color: var(--mq-text-mute);
}

.mq-alt a {
  color: var(--mq-text);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--mq-line);
  padding-bottom: 1px;
}

.mq-alt a:hover {
  color: var(--mq-accent-ink);
  border-bottom-color: var(--mq-accent);
  text-decoration: none;
}

.mq-foot {
  margin-top: 48px;
  text-align: center;
  font-size: 11.5px;
  color: var(--mq-text-mute);
}

.mq-foot .mq-monogram {
  display: block;
  width: auto;
  height: auto;
  border: none;
  background: transparent;
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
  margin-bottom: 8px;
}

/* getstarted — davet sayfası */
.mq-contact-alt {
  text-align: center;
  font-size: 13px;
  color: var(--mq-text-mute);
  margin: 16px 0 0;
}

.mq-contact-alt a {
  color: var(--mq-accent);
  text-decoration: none;
  font-family: var(--mq-font-mono);
  font-size: 12.5px;
}

.mq-contact-alt a:hover {
  color: var(--mq-accent-ink);
  text-decoration: underline;
}

.mq-legal-nav {
  display: flex;
  justify-content: center;
  gap: 22px;
  margin-bottom: 14px;
}

.mq-legal-nav a {
  font-size: 11.5px;
  color: var(--mq-text-mute);
  text-decoration: none;
}

.mq-legal-nav a:hover {
  color: var(--mq-text);
  text-decoration: none;
}

/* --- uyarılar (includes/alerts markup'ı) --- */
.marque-auth .alert {
  border-radius: var(--mq-radius-sm);
  border: 1px solid transparent;
  font-size: 13px;
  padding: 12px 38px 12px 14px;
  margin-bottom: 20px;
}

.marque-auth .alert .icon {
  margin-right: 6px;
}

.marque-auth .alert-success {
  background: var(--mq-ok-wash);
  border-color: rgba(26, 127, 69, 0.25);
  color: var(--mq-ok);
}

.marque-auth .alert-danger {
  background: var(--mq-err-wash);
  border-color: rgba(192, 58, 48, 0.25);
  color: var(--mq-err);
}

/* --- parsley doğrulama mesajları --- */
.marque-auth .parsley-errors-list {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  font-size: 12px;
  color: var(--mq-err);
}

.marque-auth .form-control.parsley-error {
  border-color: var(--mq-err);
}

/* --- simcify loader'ı bu sahnede --- */
.marque-auth .loading-overlay {
  background: rgba(236, 238, 242, 0.88) !important;
}

.marque-auth .circle-loader {
  border-color: rgba(23, 26, 32, 0.12) !important;
  border-top-color: var(--mq-accent) !important;
}

/* hukuk/yardım modal'ları (Bootstrap 4 markup'ı) */
.marque-auth .modal-content {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-lg);
  color: var(--mq-text);
}

.marque-auth .modal-header {
  border-bottom: 1px solid var(--mq-line);
}

.marque-auth .modal-title {
  font-family: var(--mq-font-body);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  color: var(--mq-text);
}

.marque-auth .mq-legal-body {
  white-space: pre-wrap;
  text-align: left;
  font-family: var(--mq-font-body);
  font-size: 13px;
  line-height: 1.6;
  color: var(--mq-text);
  max-height: 68vh;
  overflow-y: auto;
}

/* --- auth responsive --- */
@media (max-width: 480px) {
  .mq-auth {
    padding: 32px 16px;
    align-items: flex-start;
  }

  a.mq-wordmark {
    font-size: 22px;
  }

  .mq-brand {
    margin-bottom: 28px;
  }

  .mq-card {
    padding: 28px 22px;
  }

  .mq-foot {
    margin-top: 36px;
  }
}

@media (min-width: 1600px) {
  .mq-auth-inner {
    max-width: 420px;
  }
}

/* ============================================================
   8. YAPISAL DİL — v2.1 "Atelier"
   Palet değişimi değil, biçim değişimi. Bu bölüm dosyanın SONUNDA
   durur ve yukarıdaki temel tanımları bilerek ezer (aynı özgüllük,
   sonra gelen kazanır). Dört hamle:
   a) CRUD modal'ları sağdan açılan tam boy panele (drawer) dönüşür
   b) Tablolar çizgili grid yerine "yüzen satır" diline geçer
   c) Form alanları filled (dolgulu) stile geçer
   d) Butonlar pill formuna, birincil aksiyon mürekkep rengine geçer
   ============================================================ */

/* --- a) Drawer: Bootstrap modal mekaniği korunur, sahne değişir --- */
.nk-body .modal.fade .modal-dialog {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  margin: 0;
  width: 480px;
  max-width: 94vw;
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.nk-body .modal.show .modal-dialog {
  transform: none;
}

.nk-body .modal .modal-dialog.modal-lg {
  width: 720px;
}

.nk-body .modal .modal-dialog.modal-xl {
  width: 980px;
}

.nk-body .modal .modal-dialog.modal-sm {
  width: 400px;
}

.nk-body .modal .modal-content {
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
  border-radius: 0;
  border: none;
  border-left: 1px solid var(--mq-line);
  box-shadow: var(--mq-shadow-lg);
}

.nk-body .modal .modal-header {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--mq-surface);
  padding: 18px 24px;
}

.nk-body .modal .modal-footer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  padding: 14px 24px;
}

.nk-body .modal .modal-content > a.close,
.nk-body .modal .modal-content .modal-header + a.close {
  z-index: 4;
}

@media (max-width: 575.98px) {
  .nk-body .modal.fade .modal-dialog,
  .nk-body .modal .modal-dialog.modal-lg,
  .nk-body .modal .modal-dialog.modal-xl {
    width: 100vw;
    max-width: 100vw;
  }

  .nk-body .modal .modal-content {
    border-left: none;
  }
}

/* --- b) Yüzen satırlar: table tabanlı nk-tb-list --- */
.nk-body table.nk-tb-list {
  border-collapse: separate;
  border-spacing: 0 8px;
}

.nk-body table.nk-tb-list .nk-tb-item.nk-tb-head .nk-tb-col,
.nk-body .nk-tb-item.nk-tb-head .nk-tb-col {
  background: transparent;
  border: none;
}

.nk-body table.nk-tb-list tbody .nk-tb-col {
  background: var(--mq-surface);
  border-top: 1px solid var(--mq-line);
  border-bottom: 1px solid var(--mq-line);
}

.nk-body table.nk-tb-list tbody .nk-tb-col:first-child {
  border-left: 1px solid var(--mq-line);
  border-top-left-radius: var(--mq-radius-sm);
  border-bottom-left-radius: var(--mq-radius-sm);
}

.nk-body table.nk-tb-list tbody .nk-tb-col:last-child {
  border-right: 1px solid var(--mq-line);
  border-top-right-radius: var(--mq-radius-sm);
  border-bottom-right-radius: var(--mq-radius-sm);
}

.nk-body table.nk-tb-list tbody .nk-tb-item:hover .nk-tb-col {
  background: var(--mq-surface);
  border-color: #c9cfda;
}

/* div tabanlı nk-tb-list (eski dashboard blokları) aynı dile boyanır */
.nk-body div.nk-tb-list .nk-tb-item:not(.nk-tb-head) {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  margin-bottom: 8px;
}

.nk-body div.nk-tb-list .nk-tb-item:not(.nk-tb-head) .nk-tb-col {
  border-bottom: none;
}

/* tablo sahnesi: panel kutusu yerine çıplak zemin — satırlar yüzer */
.nk-body .mq-tableau {
  background: transparent;
  border: none;
  padding: 0;
}

/* mobil stack devraldığında satır aralığını stack kartları belirler */
@media (max-width: 767.98px) {
  .nk-body table.nk-tb-list.mq-tb-stack {
    border-spacing: 0;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col,
  .nk-body .mq-tb-stack tbody .nk-tb-col:first-child,
  .nk-body .mq-tb-stack tbody .nk-tb-col:last-child {
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--mq-line);
    border-radius: 0;
  }

  .nk-body .mq-tb-stack tbody .nk-tb-col:last-child {
    border-bottom: none;
  }
}

/* DataTables kontrolleri çıplak zeminde toolbar gibi durur */
.nk-body .dataTables_filter input {
  border-radius: var(--mq-pill);
  padding-left: 16px;
  padding-right: 16px;
}

.nk-body .dataTables_length select {
  border-radius: var(--mq-pill);
}

/* --- c) Filled form alanları --- */
.nk-body .form-control,
.nk-body select.form-control,
.nk-body .custom-select,
.nk-body .dataTables_filter input,
.nk-body .dataTables_length select,
.nk-body .select2-container--default .select2-selection--single,
.nk-body .select2-container--default .select2-selection--multiple {
  background: var(--mq-ivory);
  border-color: transparent;
}

.nk-body .form-control:focus,
.nk-body select.form-control:focus,
.nk-body .custom-select:focus,
.nk-body .dataTables_filter input:focus,
.nk-body .select2-container--default.select2-container--focus .select2-selection--single,
.nk-body .select2-container--default.select2-container--focus .select2-selection--multiple {
  background: var(--mq-surface);
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px rgba(43, 79, 216, 0.13);
}

.nk-body .input-group-text {
  border-color: transparent;
}

/* drawer içindeki filled alanlar zeminden ayrışsın diye hairline alır */
.nk-body .modal .form-control,
.nk-body .modal select.form-control,
.nk-body .modal .custom-select {
  border-color: var(--mq-line);
}

.marque-auth .form-control.mq-input {
  background: var(--mq-ivory);
  border-color: transparent;
}

.marque-auth .form-control.mq-input:focus {
  background: var(--mq-surface);
  border-color: var(--mq-accent);
}

/* --- d) Pill butonlar; birincil aksiyon mürekkep --- */
.nk-body .btn,
.nk-body .mq-action,
a.mqs-cta,
.marque-auth .mq-btn,
.nk-body .pagination .page-link,
.nk-body .swal2-popup .swal2-styled {
  border-radius: var(--mq-pill);
}

.nk-body .btn-primary,
.nk-body .mq-action-solid,
a.mqs-cta,
.nk-body .swal2-popup .btn-primary,
.nk-body .swal2-popup .swal2-confirm,
.marque-auth .mq-btn {
  background: var(--mq-ink);
  border-color: var(--mq-ink);
  color: #fff;
}

.nk-body .btn-primary:hover,
.nk-body .btn-primary:focus,
.nk-body .btn-primary:not(:disabled):not(.disabled):active,
.nk-body .mq-action-solid:hover,
a.mqs-cta:hover,
.marque-auth .mq-btn:hover {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
  color: #fff;
}

.nk-body a.mqs-head-iconbtn {
  border-radius: var(--mq-pill);
}

.nk-body .pagination .page-item.active .page-link {
  background: var(--mq-ink);
  border-color: var(--mq-ink);
  color: #fff;
}

/* avatar/monogram: hap değil, yumuşak kare kalır ama yeni radius'u alır */
.nk-body .mq-monogram,
.mqs-side-user-avatar,
.mqs-user-avatar {
  border-radius: var(--mq-radius-sm);
}

/* sekmeler: çizgi yerine hap segment */
.nk-body .nav-tabs {
  border-bottom: none;
  gap: 4px;
}

.nk-body .nav-tabs .nav-link {
  border: none;
  border-radius: var(--mq-pill);
  padding: 8px 16px;
  color: var(--mq-text-mute);
}

.nk-body .nav-tabs .nav-link:hover {
  background: var(--mq-ivory);
  color: var(--mq-text);
}

.nk-body .nav-tabs .nav-link.active {
  background: var(--mq-ink);
  color: #fff;
  border-bottom: none;
}

.nk-body .nav-tabs .nav-link.active .icon {
  color: #fff;
}

/* sayfa başlığı: daha ağır, daha büyük */
.nk-body .mq-page-title,
.nk-body .nk-block-title.page-title {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.022em;
}

/* ------------------------------------------------------------
   9. Tablo mekanizması — ERP kalitesi
   Kural: yüzen-satır sahnesinde YATAY KAYDIRMA YOK. Kolonlar
   tb-col-sm/md/lg/xl kırılımlarıyla gizlenir; her satırın esas
   bilgisi (kimlik + durum + aksiyon) her genişlikte görünür kalır.
   Sıralama ham değerle yapılır: para/tarih/adet hücrelerine
   data-order, araç (tools) başlıklarına data-orderable="false".
   ------------------------------------------------------------ */
.nk-body .mq-tableau .mq-table-wrap {
  overflow: visible;
}

/* satır yüksekliği ve ritim */
.nk-body table.nk-tb-list tbody .nk-tb-col {
  padding-top: 14px;
  padding-bottom: 14px;
  vertical-align: middle;
}

.nk-body table.nk-tb-list .nk-tb-head .nk-tb-col {
  padding-top: 6px;
  padding-bottom: 10px;
}

/* DataTables toolbar: arama sağda pill, uzunluk solda, bilgi altta */
.nk-body .dataTables_wrapper .dataTables_filter {
  margin-bottom: 10px;
}

.nk-body .dataTables_wrapper .dataTables_filter input {
  min-width: 220px;
}

.nk-body .dataTables_wrapper .dataTables_info {
  padding-top: 12px;
}

.nk-body .dataTables_wrapper .pagination {
  margin-top: 8px;
  gap: 4px;
}

.nk-body .pagination .page-link {
  border-color: transparent;
  background: transparent;
}

.nk-body .pagination .page-link:hover {
  background: var(--mq-surface);
  border-color: var(--mq-line);
}

/* sıralama durumu: aktif kolon başlığı mürekkep + kobalt ok */
.nk-body table.dataTable thead .sorting_asc .sub-text,
.nk-body table.dataTable thead .sorting_desc .sub-text,
.nk-body table.dataTable thead th.sorting_asc,
.nk-body table.dataTable thead th.sorting_desc {
  color: var(--mq-text);
}

.nk-body table.dataTable thead .sorting:before,
.nk-body table.dataTable thead .sorting:after,
.nk-body table.dataTable thead .sorting_asc:before,
.nk-body table.dataTable thead .sorting_asc:after,
.nk-body table.dataTable thead .sorting_desc:before,
.nk-body table.dataTable thead .sorting_desc:after {
  color: var(--mq-accent);
}

/* ------------------------------------------------------------
   10. Drawer form kalitesi
   ------------------------------------------------------------ */
.nk-body .modal .modal-body {
  padding: 22px 24px;
}

.nk-body .modal .modal-body > p:first-child {
  font-size: 12.5px;
  color: var(--mq-text-mute);
  margin-bottom: 18px;
}

.nk-body .modal .form-group {
  margin-bottom: 4px;
}

.nk-body .modal .form-note {
  font-size: 11.5px;
  color: var(--mq-text-mute);
  margin-top: 6px;
}

.nk-body .modal textarea.form-control {
  min-height: 84px;
}

/* satır kalemleri (quote/invoice/estimate kurucuları):
   her kalem kendi yüzeyinde bir grup olarak okunur */
.nk-body .modal .item-lines > .row {
  background: var(--mq-ivory);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius-sm);
  padding: 10px 12px 16px;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 12px;
}

.nk-body .modal .item-lines > .row .form-control {
  background: var(--mq-surface);
  border-color: var(--mq-line);
}

.nk-body .modal .item-totals {
  border-top: 1px solid var(--mq-line);
  padding-top: 14px;
}

.nk-body .modal .item-totals .sub-total,
.nk-body .modal .item-totals .tax-total,
.nk-body .modal .item-totals .grand-total {
  font-family: var(--mq-font-mono);
  font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------
   11. KOYU SIDEBAR — kabuğa kontrast, canvas'a nefes
   Chrome: koyu mürekkep sidebar + açık header/içerik.
   ------------------------------------------------------------ */
.nk-body .nk-sidebar,
.nk-body .nk-sidebar.is-light {
  background: var(--mq-ink);
  border-right: 1px solid var(--mq-ink);
}

.nk-body .nk-sidebar-element.nk-sidebar-head {
  border-bottom: 1px solid var(--mq-ink-line);
}

/* kiracı markası: koyu zeminde beyaz plaka (koyu logolar da okunur) */
.nk-body .nk-sidebar .mqs-side-brand {
  background: #ffffff;
  border-radius: var(--mq-radius-sm);
  padding: 7px 14px;
  max-width: 100%;
}

.nk-body .nk-sidebar .mqs-side-tenant {
  color: var(--mq-ink);
}

.nk-body .nk-sidebar .mqs-side-close .icon {
  color: #8d95a5;
}

.nk-body .nk-sidebar .nk-menu-heading .overline-title {
  color: #6f7787 !important;
}

.nk-body .nk-sidebar .nk-menu-link {
  color: #a6adb9;
}

.nk-body .nk-sidebar .nk-menu-icon .icon {
  color: #7d8595 !important;
}

.nk-body .nk-sidebar .nk-menu-link:hover,
.nk-body .nk-sidebar .nk-menu-item:hover > .nk-menu-link {
  background: var(--mq-ink-soft);
  color: var(--mq-ivory-text);
}

.nk-body .nk-sidebar .nk-menu-link:hover .nk-menu-icon .icon,
.nk-body .nk-sidebar .nk-menu-item:hover > .nk-menu-link .nk-menu-icon .icon {
  color: var(--mq-ivory-text) !important;
}

.nk-body .nk-sidebar .nk-menu-item.active > .nk-menu-link,
.nk-body .nk-sidebar .nk-menu-item.current-page > .nk-menu-link {
  background: rgba(84, 111, 227, 0.20);
  color: #ffffff;
}

.nk-body .nk-sidebar .nk-menu-item.active > .nk-menu-link .nk-menu-icon .icon,
.nk-body .nk-sidebar .nk-menu-item.current-page > .nk-menu-link .nk-menu-icon .icon {
  color: #9db1f4 !important;
}

.nk-body .nk-sidebar .nk-menu-sub .nk-menu-link {
  color: #8d95a5;
  background: transparent;
}

.nk-body .nk-sidebar .nk-menu-sub .nk-menu-link:hover {
  color: #ffffff;
  background: transparent;
}

.nk-body .nk-sidebar .nk-menu-badge {
  background: rgba(255, 255, 255, 0.07);
  border-color: transparent;
  color: #8d95a5;
}

.nk-body .nk-sidebar .nk-menu-badge.badge-danger {
  background: var(--mq-err);
  color: #fff;
}

.nk-body .nk-sidebar .nk-nav-toggle .icon {
  color: #8d95a5;
}

.nk-body .nk-sidebar .mqs-side-foot {
  border-top: 1px solid var(--mq-ink-line);
}

.nk-body .nk-sidebar .mqs-side-user-avatar {
  background: rgba(84, 111, 227, 0.22);
  color: #b9c6f5;
}

.nk-body .nk-sidebar .mqs-side-user-name {
  color: var(--mq-ivory-text);
}

.nk-body .nk-sidebar .mqs-side-user-role {
  color: #7c8492;
}

.nk-body .nk-sidebar a.mqs-side-user-out {
  color: #8d95a5;
}

.nk-body .nk-sidebar a.mqs-side-user-out:hover {
  background: rgba(192, 58, 48, 0.24);
  color: #f2a49e;
}

.nk-body .nk-sidebar .mqs-side-sig {
  color: #6a7280;
}

/* ------------------------------------------------------------
   12. Sekmeler, sıralama okları, select oku, sahne filtreleri
   ------------------------------------------------------------ */

/* sekme çubuğu: DashLite'ın alt çizgisi/mavi vurgusu tamamen kalkar */
.nk-body .nav-tabs,
.nk-body .nav-tabs.nav-tabs-card,
.nk-body .nav-tabs.nav-tabs-mb-icon {
  border-bottom: 0 !important;
  background: transparent;
  padding: 14px 0;
  margin: 0 0 4px;
  gap: 4px;
}

.nk-body .nav-tabs .nav-item {
  border: none;
  padding: 0;
  margin: 0;
}

.nk-body .nav-tabs .nav-link:before,
.nk-body .nav-tabs .nav-link:after {
  display: none !important;
}

/* sekme şeridi sarmalayıcı: kaydırma çubuğu GÖSTERMEDEN yatay kayar */
.nk-body .mq-tabs-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}

.nk-body .mq-tabs-wrap::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.nk-body .mq-tabs-wrap .nav-tabs {
  flex-wrap: nowrap;
  white-space: nowrap;
}

/* sıralama okları: sakin; yalnız aktif kolonda belirgin (mavi çizgi hissi biter) */
.nk-body table.dataTable thead .sorting:before,
.nk-body table.dataTable thead .sorting:after {
  color: var(--mq-text-mute);
  opacity: 0.35;
}

.nk-body table.dataTable thead .sorting_asc:before,
.nk-body table.dataTable thead .sorting_asc:after,
.nk-body table.dataTable thead .sorting_desc:before,
.nk-body table.dataTable thead .sorting_desc:after {
  color: var(--mq-text);
  opacity: 0.9;
}

/* native select: özel ok, tarayıcı varsayılanı biter */
.nk-body select.form-control,
.nk-body .custom-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236a7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 8px;
  padding-right: 34px;
}

.nk-body select.form-control::-ms-expand {
  display: none;
}

/* vehicle stages sahne filtresi: sistemdeki diğer piller (mq-chip)
   ile AYNI tasarım — tekil hap butonlar, hairline, aktif=mürekkep */
.nk-body .stage-filter-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 2px;
  width: auto;
  max-width: 100%;
  box-shadow: none;
}

.nk-body .btn.stage-filter,
.nk-body .btn.stage-filter.btn-dim.btn-outline-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 13px;
  border: 1px solid var(--mq-line);
  background: var(--mq-surface);
  color: var(--mq-text-mute);
  border-radius: var(--mq-pill);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: none;
}

.nk-body .btn.stage-filter:hover {
  border-color: var(--mq-accent);
  background: var(--mq-surface);
  color: var(--mq-text);
}

.nk-body .btn.stage-filter.active {
  background: var(--mq-ink);
  border-color: var(--mq-ink);
  color: #fff;
}

.nk-body .btn.stage-filter .badge,
.nk-body .btn.stage-filter .badge.badge-pill.badge-primary {
  background: var(--mq-ivory);
  color: var(--mq-text-mute);
  font-family: var(--mq-font-mono);
  font-size: 10px;
  border-radius: var(--mq-pill);
  padding: 2px 7px;
  margin-left: 6px;
}

.nk-body .btn.stage-filter.active .badge,
.nk-body .btn.stage-filter.active .badge.badge-pill.badge-primary {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

/* --- yan menülü sayfalar (settings vb.): card-aside + link-list-menu --- */
.nk-body .card-aside {
  background: var(--mq-surface);
  border-color: var(--mq-line);
}

.nk-body .link-list-menu a {
  color: var(--mq-text-mute);
  font-weight: 600;
  font-size: 13.5px;
  border-radius: var(--mq-radius-sm);
  margin: 2px 12px;
  padding: 10px 14px;
}

.nk-body .link-list-menu a .icon {
  color: var(--mq-text-mute);
}

.nk-body .link-list-menu a:hover {
  color: var(--mq-text);
  background: var(--mq-ivory);
}

.nk-body .link-list-menu a.active,
.nk-body .link-list-menu li a.active {
  color: var(--mq-accent-ink);
  background: var(--mq-accent-wash);
}

.nk-body .link-list-menu a.active .icon {
  color: var(--mq-accent);
}

.nk-body .link-list-menu a:after {
  display: none;
}

/* ------------------------------------------------------------
   13. MOBİL CİLALAR — telefon birinci sınıf vatandaş
   Tablo → kart dönüşümünü marque.js otomatik yapar (mq-tb-stack +
   thead'den data-label). Buradakiler yerleşim/dokunma cilaları.
   ------------------------------------------------------------ */
@media (max-width: 767.98px) {
  .nk-body .nk-content > .container-fluid {
    padding-left: 12px;
    padding-right: 12px;
  }

  /* DataTables kontrolleri: arama tam genişlik, uzunluk seçici gizli */
  .nk-body .dataTables_wrapper .dataTables_filter,
  .nk-body .dataTables_wrapper .dataTables_filter label {
    width: 100%;
    text-align: left;
  }

  .nk-body .dataTables_wrapper .dataTables_filter input {
    width: 100%;
    min-width: 0;
    margin-left: 0;
  }

  .nk-body .dataTables_wrapper .dataTables_length {
    display: none;
  }

  .nk-body .dataTables_wrapper .pagination {
    flex-wrap: wrap;
    justify-content: center;
  }

  .nk-body .dataTables_wrapper .dataTables_info {
    text-align: center;
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  /* sayfa aksiyonları: tam genişlik, butonlar eşit bölüşür */
  .nk-body .mq-page-actions {
    width: 100%;
  }

  .nk-body .mq-page-actions .mq-action {
    flex: 1 1 auto;
    justify-content: center;
  }

  .nk-body .mq-page-actions .input-group {
    width: 100%;
    flex: 1 1 100%;
  }

  /* drawer altbilgisi: butonlar tam genişlik, dokunması kolay */
  .nk-body .modal .modal-footer {
    flex-wrap: wrap;
    gap: 8px;
  }

  .nk-body .modal .modal-footer .btn,
  .nk-body .modal .modal-footer .mq-action {
    flex: 1 1 auto;
    justify-content: center;
  }

  /* sahne filtresi: tam genişlik, köşeler yumuşak, satır atlar */
  .nk-body .stage-filter-wrapper {
    width: 100%;
    border-radius: var(--mq-radius);
  }

  .nk-body .btn.stage-filter {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
  }

  /* KPI rayı: daha sıkı dolgu */
  .nk-body .mq-rail-item {
    padding: 14px 16px;
  }

  /* header araçları: dar ekranda nefes */
  .nk-body .mqs-head-tools .nk-quick-nav {
    gap: 2px;
  }

  /* yüzen satır köşeleri stack kartlarında zaten kart tarafından çizilir;
     stack kartlarına gölge + ferah dolgu */
  .nk-body .mq-tb-stack tbody .nk-tb-item {
    padding: 8px 16px;
  }
}

/* drawer başlığındaki kapatma linki */
.nk-body .modal .modal-content > a.close {
  position: absolute;
  top: 14px;
  right: 18px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--mq-pill);
  color: var(--mq-text-mute);
  background: var(--mq-ivory);
  z-index: 5;
}

.nk-body .modal .modal-content > a.close:hover {
  color: var(--mq-err);
  background: var(--mq-err-wash);
}

/* ------------------------------------------------------------
   14. v3 "RESKELETON" KABUĞU — ikon rayı + ikincil panel
   Konsept A (17 Tem 2026, sahibi onayladı): ~64px ikon rayı
   (modül seçer) + 236px ikincil panel (modülün sayfaları) +
   Ctrl-K komut paleti + breadcrumb + max-width içerik.
   Mobilde (<1200px) ray alta sekme çubuğuna dönüşür; sekmeler
   tam ekran sayfa listesi (sheet) açar.

   Kabuk JS'i: assets/js/marque-shell.js — bundle.js'in nk-menu
   mekaniğinden tamamen bağımsız. Eski .nk-sidebar/.mqs-side
   kuralları artık ölü (markup kalktı), zararsızdır.
   ------------------------------------------------------------ */
:root {
  --mq3-rail-w: 64px;
  --mq3-panel-w: 236px;
  --mq3-shell-w: calc(var(--mq3-rail-w) + var(--mq3-panel-w));
  --mq3-tabbar-h: 62px;
}

/* --- kabuk gövdesi: masaüstünde sabit sol blok --- */
.mq3-shell {
  display: none;
}

@media (min-width: 1200px) {
  .mq3-shell {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    z-index: 900;
    background: var(--mq-ink);
  }

  /* içerik kabuğa göre çekilir (comment düğümleri + seçicisini bozmaz) */
  .mq3-shell + .nk-wrap,
  body.mq3-on .nk-wrap {
    padding-left: var(--mq3-shell-w);
    transition: padding 200ms ease;
  }

  .mq3-shell + .nk-wrap > .nk-header-fixed,
  body.mq3-on .nk-wrap > .nk-header-fixed {
    left: var(--mq3-shell-w);
    transition: left 200ms ease;
  }

  body.mq3-collapsed .mq3-shell + .nk-wrap,
  body.mq3-collapsed.mq3-on .nk-wrap {
    padding-left: var(--mq3-rail-w);
  }

  body.mq3-collapsed .mq3-shell + .nk-wrap > .nk-header-fixed,
  body.mq3-collapsed.mq3-on .nk-wrap > .nk-header-fixed {
    left: var(--mq3-rail-w);
  }
}

/* --- ray --- */
.mq3-rail {
  width: var(--mq3-rail-w);
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 0 10px;
}

.mq3-rail-top {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
}

.mq3-rail-top::-webkit-scrollbar {
  display: none;
}

.mq3-rail-foot {
  flex: 0 0 auto;
  padding-top: 6px;
}

.mq3-rail-btn {
  position: relative;
  width: 56px;
  min-height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 7px 2px 6px;
  border: 0;
  background: transparent;
  border-radius: var(--mq-radius-sm);
  color: var(--mq-ivory-mute);
  cursor: pointer;
  text-decoration: none;
  -webkit-appearance: none;
  appearance: none;
}

.mq3-rail-btn svg {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
}

.mq3-rail-lbl {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
}

.mq3-rail-btn:hover {
  background: var(--mq-ink-soft);
  color: var(--mq-ivory-text);
  text-decoration: none;
}

.mq3-rail-btn.is-active {
  background: var(--mq-ink-soft);
  color: #ffffff;
}

.mq3-rail-btn.is-active::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 3px;
  background: var(--mq-accent);
}

.mq3-rail-badge {
  position: absolute;
  top: 3px;
  right: 5px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--mq-err);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

/* --- ikincil panel --- */
.mq3-panel {
  width: var(--mq3-panel-w);
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--mq-ink);
  border-left: 1px solid var(--mq-ink-line);
  border-right: 1px solid var(--mq-ink-line);
}

.mq3-panel-head {
  flex: 0 0 auto;
  padding: 14px 14px 12px;
  border-bottom: 1px solid var(--mq-ink-line);
}

/* kiracı markası: plakasız, şeffaf zemin — geniş logolara tam alan.
   (Beyaz plaka sahibin isteğiyle kaldırıldı; koyu renkli logosu olan bir
   kiracı gerekirse rgba(255,255,255,.9) wash geri eklenebilir.) */
.mq3-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 64px;
  padding: 0;
  background: transparent;
  border-radius: var(--mq-radius-sm);
  text-decoration: none;
}

.mq3-brand:hover {
  text-decoration: none;
}

/* OTOMATIK sığdırma: logo kutuyu (panel genişliği × 64px) doldurur,
   object-fit oranı koruyarak sığan EN BÜYÜK boyuta ölçekler.
   Geniş/kare/dikey — her logo için geçerli, logo başına ayar GEREKMEZ. */
.mq3-brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.mq3-brand-name {
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: -0.01em;
  color: #ffffff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mq3-panel-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 14px 10px;
  scrollbar-width: thin;
  scrollbar-color: var(--mq-ink-line) transparent;
}

.mq3-group-title {
  margin: 2px 10px 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-ivory-mute);
}

.mq3-sub {
  margin: 16px 10px 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mq-ivory-mute);
  opacity: 0.85;
}

.mq3-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  margin-bottom: 1px;
  border-radius: 9px;
  color: var(--mq-ivory-text);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.35;
}

.mq3-link:hover {
  background: var(--mq-ink-soft);
  color: #ffffff;
  text-decoration: none;
}

.mq3-link.is-active {
  background: var(--mq-accent);
  color: #ffffff;
}

.mq3-badge {
  margin-left: auto;
  min-width: 18px;
  padding: 1px 6px;
  border-radius: var(--mq-pill);
  background: var(--mq-err);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.mq3-panel-foot {
  flex: 0 0 auto;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--mq-ink-line);
}

.mq3-user {
  display: flex;
  align-items: center;
  gap: 9px;
}

.mq3-user-avatar {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--mq-ink-soft);
  color: var(--mq-ivory-text);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.mq3-user-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.mq3-user-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mq-ivory-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mq3-user-role {
  font-size: 10.5px;
  color: var(--mq-ivory-mute);
}

.mq3-user-out {
  margin-left: auto;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--mq-ivory-mute);
}

.mq3-user-out:hover {
  background: var(--mq-ink-soft);
  color: #fff;
}

.mq3-user-out svg {
  width: 16px;
  height: 16px;
}

.mq3-sig {
  margin-top: 9px;
  font-size: 9.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  color: var(--mq-ivory-mute);
  opacity: 0.7;
}

/* --- daraltılmış ray: panel gizli, ray hover'ında flyout --- */
@media (min-width: 1200px) {
  body.mq3-collapsed .mq3-panel {
    display: none;
  }

  body.mq3-collapsed .mq3-shell:hover .mq3-panel,
  body.mq3-collapsed .mq3-shell:focus-within .mq3-panel {
    display: flex;
    position: absolute;
    left: var(--mq3-rail-w);
    top: 0;
    bottom: 0;
    box-shadow: var(--mq-shadow-lg);
  }

  body.mq3-collapsed .mq3-rail-pin svg {
    transform: rotate(180deg);
  }
}

/* --- header: breadcrumb + palet düğmesi --- */
.mq3-crumb-line {
  display: flex;
  align-items: center;
  gap: 7px;
}

.mq3-crumb-module {
  font-size: 13px;
  font-weight: 600;
  color: var(--mq-text-mute);
  white-space: nowrap;
}

.mq3-crumb-sep {
  color: var(--mq-text-mute);
  opacity: 0.5;
  font-size: 12px;
}

.mq3-crumb-module[hidden],
.mq3-crumb-sep[hidden] {
  display: none;
}

.mq3-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-pill);
  background: var(--mq-surface);
  color: var(--mq-text-mute);
  font-size: 12.5px;
  font-family: var(--mq-font-body);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.mq3-search:hover {
  border-color: var(--mq-accent);
  color: var(--mq-text);
}

.mq3-search svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
}

@media (min-width: 1200px) {
  .mq3-search {
    min-width: 200px;
  }
}

.mq3-kbd {
  margin-left: auto;
  padding: 1px 6px;
  border: 1px solid var(--mq-line);
  border-radius: 5px;
  background: var(--mq-ivory);
  font-family: var(--mq-font-mono);
  font-size: 10px;
  color: var(--mq-text-mute);
  white-space: nowrap;
}

/* --- içerik: kenardan kenara his biter, max-width sahne --- */
.nk-body .nk-content > .container-fluid {
  max-width: 1340px;
  margin-left: auto;
  margin-right: auto;
}

/* --- mobil sekme çubuğu (marque-shell.js inşa eder) --- */
.mq3-tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 950;
  display: flex;
  height: calc(var(--mq3-tabbar-h) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--mq-surface);
  border-top: 1px solid var(--mq-line);
  box-shadow: 0 -4px 14px rgba(23, 26, 32, 0.06);
}

@media (min-width: 1200px) {
  .mq3-tabbar {
    display: none;
  }
}

@media (max-width: 1199.98px) {
  body.mq3-has-tabbar .nk-wrap {
    padding-bottom: calc(var(--mq3-tabbar-h) + env(safe-area-inset-bottom));
  }
}

.mq3-tab {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 4px 2px;
  border: 0;
  background: none;
  color: var(--mq-text-mute);
  font-size: 10px;
  font-weight: 600;
  font-family: var(--mq-font-body);
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.mq3-tab:hover {
  text-decoration: none;
  color: var(--mq-text);
}

.mq3-tab svg {
  width: 22px;
  height: 22px;
}

.mq3-tab.is-active {
  color: var(--mq-accent);
}

.mq3-tab-dot {
  position: absolute;
  top: 6px;
  right: calc(50% - 16px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--mq-err);
}

/* --- mobil sayfa listesi (sheet) --- */
.mq3-sheet {
  position: fixed;
  inset: 0;
  z-index: 990;
  display: none;
  background: rgba(23, 26, 32, 0.45);
}

.mq3-sheet.is-open {
  display: block;
}

.mq3-sheet-card {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 84vh;
  display: flex;
  flex-direction: column;
  background: var(--mq-surface);
  border-radius: 18px 18px 0 0;
  padding-bottom: env(safe-area-inset-bottom);
}

.mq3-sheet-head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px 8px;
}

.mq3-sheet-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mq-text);
  letter-spacing: -0.01em;
}

.mq3-sheet-close {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: var(--mq-ivory);
  color: var(--mq-text-mute);
  cursor: pointer;
}

.mq3-sheet-close svg {
  width: 16px;
  height: 16px;
}

.mq3-sheet-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 4px 14px 18px;
}

/* sheet içindeki gruplar açık temaya döner */
.mq3-sheet .mq3-group {
  margin-bottom: 14px;
}

.mq3-sheet .mq3-group-title {
  color: var(--mq-text-mute);
  margin: 8px 10px 8px;
}

.mq3-sheet .mq3-sub {
  color: var(--mq-text-mute);
}

.mq3-sheet .mq3-link {
  min-height: 44px;
  color: var(--mq-text);
  font-size: 14px;
}

.mq3-sheet .mq3-link:hover {
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
}

.mq3-sheet .mq3-link.is-active {
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
}

/* --- komut paleti (Ctrl-K) --- */
.mq3-palette {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: none;
  background: rgba(23, 26, 32, 0.45);
  padding: 12vh 16px 0;
}

.mq3-palette.is-open {
  display: block;
}

.mq3-palette-card {
  max-width: 560px;
  margin: 0 auto;
  background: var(--mq-surface);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-lg);
  overflow: hidden;
}

.mq3-palette-input {
  width: 100%;
  padding: 16px 18px;
  border: 0;
  border-bottom: 1px solid var(--mq-line);
  outline: 0;
  background: transparent;
  color: var(--mq-text);
  font-size: 15px;
  font-family: var(--mq-font-body);
}

.mq3-palette-input::placeholder {
  color: var(--mq-text-mute);
}

.mq3-palette-list {
  max-height: 46vh;
  overflow-y: auto;
  padding: 8px;
}

.mq3-palette-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--mq-text);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
}

.mq3-palette-mod {
  margin-left: auto;
  font-size: 11px;
  color: var(--mq-text-mute);
  white-space: nowrap;
}

.mq3-palette-item.is-sel {
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
}

.mq3-palette-empty {
  padding: 18px;
  text-align: center;
  color: var(--mq-text-mute);
  font-size: 13px;
}

/* ------------------------------------------------------------
   18. TAŞMA GÜVENLİĞİ + SELECT2 DERİSİ (sahibi geri bildirimi)
   a) Yatay kaydırma HİÇBİR sayfada olmayacak. Kök neden:
      DataTables'ın dom şablonundaki Bootstrap .row'lar (üstte
      arama/uzunluk, altta sayfalama/info) negatif marginli —
      kapsayıcıdan 28px taşar ve zoom'dan bağımsız gövde
      kaydırması yaratır. Marjinler sıfırlanır + nk-wrap'e
      overflow-x: clip güvenlik ağı (clip, hidden'ın aksine
      scroll container yaratmaz; sticky bozulmaz).
   ------------------------------------------------------------ */
.nk-body .nk-wrap {
  overflow-x: clip;
}

.nk-body .dataTables_wrapper > .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.nk-body .dataTables_wrapper > .row > [class*="col"] {
  padding-left: 0;
  padding-right: 0;
}

.nk-body .datatable-wrap {
  border: 0;
}

.nk-body table.dataTable,
.nk-body table.nk-tb-list {
  max-width: 100%;
}

/* --- b) select2 (Select Item / Select Supplier vb.):
       dolgulu input diliyle aynı görünüm. select2 dropdown'ı
       body'ye eklenir; drawer (modal z:1050) üstünde kalması
       için z-index yükseltilir. --- */
/* yalnız yerindeki seçim kutusu tam genişlik olsun — select2 kutuyu
   orijinal select'in HEMEN yanına ekler. Açılır listenin kapsayıcısı
   da .select2-container'dır; ona dokunma (inline left/width alır). */
.nk-body select + .select2-container {
  width: 100% !important;
}

.nk-body .select2-container .select2-selection--single,
.nk-body .select2-container--default .select2-selection--single,
.nk-body .select2-container .select2-selection--multiple,
.nk-body .select2-container--default .select2-selection--multiple {
  min-height: 52px !important;
  height: auto !important;
  background: var(--mq-ivory);
  border: 1px solid transparent;
  border-radius: var(--mq-radius-sm);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.nk-body .select2-container--default.select2-container--open .select2-selection--single,
.nk-body .select2-container--default.select2-container--focus .select2-selection--single,
.nk-body .select2-container--default.select2-container--open .select2-selection--multiple {
  background: var(--mq-surface);
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px var(--mq-accent-wash);
}

.nk-body .select2-container .select2-selection--single .select2-selection__rendered,
.nk-body .select2-container--default .select2-selection--single .select2-selection__rendered {
  flex: 1 1 auto;
  line-height: 1.45 !important;
  padding: 0 38px 0 16px;
  color: var(--mq-text);
  font-size: 13.5px;
}

.nk-body .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--mq-text-mute);
}

.nk-body .select2-container--default .select2-selection--single .select2-selection__arrow {
  position: absolute;
  top: 0;
  right: 12px;
  height: 100%;
  width: 14px;
}

.nk-body .select2-container--default .select2-selection--single .select2-selection__arrow b {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 8px;
  margin: 0;
  border: none !important;
  transform: translate(-50%, -50%);
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236a7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E") no-repeat center/contain;
}

.nk-body .select2-container--default .select2-selection--multiple .select2-selection__rendered {
  padding: 6px 10px;
}

.nk-body .select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-pill);
  padding: 3px 10px;
  font-size: 12.5px;
  color: var(--mq-text);
}

.nk-body .select2-dropdown {
  border: 1px solid var(--mq-line);
  border-radius: 12px;
  box-shadow: var(--mq-shadow-md);
  overflow: hidden;
  z-index: 1090;
}

/* select2'nin YERİNDEKİ kutusu geme.css'te z-index alıyor
   (.select2-container 9999, modal içinde 1056/1057). Drawer'ın yapışkan
   başlığı z:3 olduğu için kutu, kaydırırken başlığın ÜZERİNDEN geçiyordu
   ("Create Work Order" yazısının üstünde kayan Client kutusu). Yerindeki
   kutu akışta kalmalı → z-index kaldırılır. Açılan liste .modal'a
   (modal-content DIŞINA) eklendiği için bu kuraldan etkilenmez. */
.nk-body .modal .modal-content .select2-container,
.nk-body .modal .modal-content .select2-container--open {
  z-index: auto;
}

.nk-body .select2-search--dropdown {
  padding: 10px 12px;
}

.nk-body .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--mq-line);
  border-radius: 9px;
  padding: 8px 12px;
  font-size: 13px;
  font-family: var(--mq-font-body);
  outline: none;
}

.nk-body .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px var(--mq-accent-wash);
}

.nk-body .select2-results__option {
  padding: 9px 14px;
  font-size: 13px;
  color: var(--mq-text);
}

.nk-body .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--mq-accent);
  color: #fff;
}

.nk-body .select2-container--default .select2-results__option[aria-selected="true"] {
  background: var(--mq-accent-wash);
  color: var(--mq-accent-ink);
}

/* --- c) Tablo sığdırma: uzun içerik kolonu GENİŞLETMEZ, sarar.
       Tablo hücresinde nowrap, kolonun min genişliğini en uzun
       metne eşitler (projects'te %80 zoom şart koşan buydu).
       overflow-wrap: anywhere uzun tek parça değerleri de
       (VIN, e-posta, kod) kırabilir → tablo her genişliğe sığar. --- */
.nk-body table.nk-tb-list .nk-tb-col {
  white-space: normal;
}

.nk-body table.nk-tb-list .mq-idcard-name {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

.nk-body table.nk-tb-list .mq-idcard-sub,
.nk-body table.nk-tb-list .tb-lead,
.nk-body table.nk-tb-list .tb-amount,
.nk-body table.nk-tb-list .mq-mono,
.nk-body table.nk-tb-list .mq-date,
.nk-body table.nk-tb-list .sub-text {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* kimlik hücresi flex: metin tarafı daralabilsin (flex min-width tuzağı) */
.nk-body .mq-idcard-text {
  min-width: 0;
}

/* durum çipi ve etiketler tek satır kalır (küçükler, kolonu zorlamaz) */
.nk-body table.nk-tb-list .mq-status,
.nk-body table.nk-tb-list .mq-tag {
  white-space: nowrap;
}

/* ------------------------------------------------------------
   15. v3 LİSTE ANATOMİSİ (Faz 2) — araç çubuğu + hover aksiyonlar
   Başlık bandı yerine tek araç çubuğu: kompakt başlık + arama +
   filtre çipleri + birincil aksiyon. JS bağlantısı: marque-list.js
   (data-list-target ile DataTables örneğine bağlanır; DataTables
   varsayılan arama/uzunluk kontrolleri gizlenir).
   Pilot: projects.html — kalıp diğer listelere buradan kopyalanır.
   ------------------------------------------------------------ */
.mq-listbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0 16px;
}

.mq-listbar-title {
  margin: 0 6px 0 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--mq-text);
  line-height: 1.2;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.mq-listbar-count {
  font-family: var(--mq-font-mono);
  font-size: 12.5px;
  font-weight: 500;
  color: var(--mq-text-mute);
}

.mq-listbar-search {
  position: relative;
  flex: 1 1 200px;
  max-width: 320px;
  min-width: 160px;
}

.mq-listbar-search svg {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--mq-text-mute);
  pointer-events: none;
}

.mq-listbar-input {
  width: 100%;
  height: 38px;
  padding: 0 14px 0 34px;
  border: 1px solid transparent;
  border-radius: var(--mq-pill);
  background: #e2e5ea;
  color: var(--mq-text);
  font-size: 13px;
  font-family: var(--mq-font-body);
  outline: 0;
}

.mq-listbar-input::placeholder {
  color: var(--mq-text-mute);
}

.mq-listbar-input:focus {
  background: var(--mq-surface);
  border-color: var(--mq-accent);
  box-shadow: 0 0 0 3px var(--mq-accent-wash);
}

/* --- filtre çipleri: yatay kayar, çubuk görünmez --- */
.mq-listbar-chips {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
  max-width: 100%;
  padding: 2px;
}

.mq-listbar-chips::-webkit-scrollbar {
  display: none;
}

.mq-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 13px;
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-pill);
  background: var(--mq-surface);
  color: var(--mq-text-mute);
  font-size: 12.5px;
  font-weight: 600;
  font-family: var(--mq-font-body);
  cursor: pointer;
  white-space: nowrap;
  -webkit-appearance: none;
  appearance: none;
}

.mq-chip:hover {
  border-color: var(--mq-accent);
  color: var(--mq-text);
}

.mq-chip.is-active {
  background: var(--mq-ink);
  border-color: var(--mq-ink);
  color: #ffffff;
}

.mq-chip-n {
  font-family: var(--mq-font-mono);
  font-size: 10.5px;
  font-weight: 500;
  padding: 1px 7px;
  border-radius: var(--mq-pill);
  background: var(--mq-ivory);
  color: var(--mq-text-mute);
}

.mq-chip.is-active .mq-chip-n {
  background: var(--mq-ink-soft);
  color: var(--mq-ivory-mute);
}

.mq-listbar-spacer {
  flex: 1 1 auto;
}

.mq-listbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* --- yönetilen tablo: DataTables'ın kendi arama/uzunluk kontrolü gizli --- */
.nk-body .dataTables_wrapper.mq-listbar-managed .dataTables_filter,
.nk-body .dataTables_wrapper.mq-listbar-managed .dataTables_length {
  display: none;
}

.nk-body .dataTables_wrapper.mq-listbar-managed > .row:first-child {
  margin: 0;
}

.nk-body .dataTables_wrapper.mq-listbar-managed .datatable-wrap {
  margin-top: 0 !important;
}

/* --- satır aksiyonları hover'da belirir (yalnız gerçek hover +
       geniş ekran; dokunmatikte her zaman görünür). Açık dropdown
       veya klavye odağı varken kaybolmaz. --- */
@media (hover: hover) and (min-width: 992px) {
  .nk-body .mq-tableau tbody .nk-tb-col-tools .nk-tb-actions {
    opacity: 0;
    transition: opacity 120ms ease;
  }

  .nk-body .mq-tableau tbody tr:hover .nk-tb-actions,
  .nk-body .mq-tableau tbody .nk-tb-actions:focus-within,
  .nk-body .mq-tableau tbody .nk-tb-actions:has(.show) {
    opacity: 1;
  }
}

/* ------------------------------------------------------------
   17. v3 DASHBOARD BENTO (Faz 5) — asimetrik kutu ızgarası
   12 kolonlu grid; kutular mq-b-3/4/6/8/12 ile yerleşir,
   mq-b-rows2 dikeyde iki satır kaplar (hero grafik).
   KPI'lar tek tek kutu olur (mq-tile) — rail bandından farklı,
   bilinçli bento dili. <1200px'te tek/çift kolona düşer.
   Pilot: overview.html.
   ------------------------------------------------------------ */
.mq-bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.mq-tile {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-sm);
  padding: 16px 18px;
  min-width: 0;
}

.mq-b-3 { grid-column: span 3; }
.mq-b-4 { grid-column: span 4; }
.mq-b-6 { grid-column: span 6; }
.mq-b-8 { grid-column: span 8; }
.mq-b-12 { grid-column: span 12; }
.mq-b-rows2 { grid-row: span 2; }

/* bento içindeki panel: dış marjini grid boşluğu yönetir,
   panel kutuyu doldurur; grafik kutusu esner (hero grafik) */
.mq-bento .mq-panel {
  margin: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.mq-bento .mq-chart-box {
  flex: 1 1 auto;
  min-height: 300px;
}

.mq-bento .mq-chart-box.mq-chart-donut {
  min-height: 220px;
}

@media (max-width: 1199.98px) {
  .mq-b-3 { grid-column: span 6; }
  .mq-b-4, .mq-b-6, .mq-b-8 { grid-column: span 12; }
  .mq-b-rows2 { grid-row: auto; }

  .mq-bento .mq-chart-box {
    flex: 0 0 auto;
    min-height: 0;
  }
}

@media (max-width: 575.98px) {
  .mq-b-3 { grid-column: span 12; }

  .mq-tile {
    padding: 14px 16px;
  }
}

/* --- boş durum illüstrasyon dili: sakin çizgi motifi --- */
.nk-body .mq-empty::before {
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 auto 10px;
  background-color: var(--mq-text-mute);
  opacity: 0.45;
  -webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 13h5l2 3h4l2-3h5'/></svg>") no-repeat center/contain;
  mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 13h5l2 3h4l2-3h5'/></svg>") no-repeat center/contain;
}

/* ------------------------------------------------------------
   16. v3 DETAY ANATOMİSİ (Faz 3) — iki kolon + yapışkan meta rayı
   Sekmeli card yerine: ana içerik kolonu + sağda sabit özet rayı
   (GitHub/Linear issue kalıbı). Pilot: client-details,
   project-details. <1200px'te tek kolona düşer, ray en alta iner.
   ------------------------------------------------------------ */
.mq-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

@media (min-width: 1200px) {
  .mq-detail {
    grid-template-columns: minmax(0, 1fr) 300px;
  }

  .mq-detail-side {
    position: sticky;
    top: 81px; /* sabit header (65px) + nefes */
  }
}

.mq-detail-main {
  min-width: 0;
}

/* ana kolondaki eski card-inner blokları: bilgi panelleri yüzey alır,
   tablo sahneleri (mq-table-wrap) çıplak kalır (v2 tablo kuralı) */
.nk-body .mq-detail-main > .card-inner {
  background: var(--mq-surface);
  border: 1px solid var(--mq-line);
  border-radius: var(--mq-radius);
  box-shadow: var(--mq-shadow-sm);
  padding: 20px 22px;
  margin-bottom: 14px;
}

.nk-body .mq-detail-main > .card-inner.mq-table-wrap {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  overflow: visible;
}

/* --- meta rayı kartı --- */
.mq-detail-card {
  padding: 18px;
}

.mq-detail-id {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--mq-line);
}

.mq-detail-id-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.mq-detail-name {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--mq-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mq-detail-code {
  font-size: 11.5px;
  color: var(--mq-text-mute);
}

.mq-detail-id .mq-status {
  margin-left: auto;
  flex: 0 0 auto;
}

.mq-detail-balance {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 0;
  border-bottom: 1px solid var(--mq-line);
}

.mq-detail-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mq-text-mute);
}

.mq-detail-amount {
  font-size: 20px;
  font-weight: 600;
  color: var(--mq-text);
}

.mq-detail-rows {
  margin: 6px 0 0;
}

.mq-detail-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--mq-line);
}

.mq-detail-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.mq-detail-row dt {
  flex: 0 0 auto;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mq-text-mute);
}

.mq-detail-row dd {
  margin: 0;
  min-width: 0;
  font-size: 12.5px;
  color: var(--mq-text);
  text-align: right;
  overflow-wrap: anywhere;
}

/* --- mobil: araç çubuğu dikey ritim --- */
@media (max-width: 575.98px) {
  .mq-listbar-title {
    flex: 1 1 100%;
  }

  .mq-listbar-search {
    flex: 1 1 100%;
    max-width: none;
  }

  .mq-listbar-chips {
    flex: 1 1 100%;
  }

  .mq-listbar-actions {
    flex: 1 1 100%;
    display: flex;
  }

  .mq-listbar-actions .mq-action {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* ------------------------------------------------------------
   18. v3 GERİBİLDİRİM DÜZELTMELERİ (sahibi, 16-17 Tem 2026)
   Dosyanın SONUNDA durur — üstteki tanımları bilerek ezer.
   ------------------------------------------------------------ */

/* a) ÇİFT OK: DashLite'ın .form-control-select::after Nioicon oku +
   bizim native select chevron'u üst üste biniyordu. DashLite'ınki
   kapatılır; tek ok = bölüm 12'deki svg chevron. */
.nk-body .form-control-select::after {
  display: none !important;
}

/* b) BUTON DİLİ TEKLEŞİR (sahibin talebi): tüm aksiyon butonları
   mürekkep zemin + beyaz metin; hover'da kobalt zemin. Ghost/dim
   varyantlar kalkar. Tehlike (btn-danger) ve iptal/kapat
   (btn-white/btn-outline-light/close) butonlarına dokunulmaz. */
.nk-body .mq-action,
.nk-body .mq-action-solid,
.nk-body .btn-primary:not(.btn-trigger),
.nk-body .btn-dim.btn-outline-primary,
.nk-body .btn-outline-primary:not(.btn-dim),
.nk-body .btn-white.btn-dim.btn-primary {
  background: var(--mq-ink);
  border: 1px solid var(--mq-ink);
  color: #ffffff;
}

.nk-body .mq-action:hover,
.nk-body .mq-action:focus,
.nk-body .mq-action-solid:hover,
.nk-body .mq-action-solid:focus,
.nk-body .btn-primary:not(.btn-trigger):hover,
.nk-body .btn-primary:not(.btn-trigger):focus,
.nk-body .btn-dim.btn-outline-primary:hover,
.nk-body .btn-dim.btn-outline-primary:focus,
.nk-body .btn-outline-primary:not(.btn-dim):hover,
.nk-body .btn-outline-primary:not(.btn-dim):focus,
.nk-body .btn-white.btn-dim.btn-primary:hover {
  background: var(--mq-accent);
  border-color: var(--mq-accent);
  color: #ffffff;
}

.nk-body .mq-action[disabled],
.nk-body button.mq-action:disabled {
  background: var(--mq-line);
  border-color: var(--mq-line);
  color: var(--mq-text-mute);
  cursor: not-allowed;
}

/* c) İkincil panel grup başlıkları (ray butonunun adını tekrarlayan
   "Vehicles" / "Inventory" satırı) mürekkep zeminde kayboluyordu.
   İki sebep vardı: renk fazla sönüktü ve app.css'in
   "h1,...,h6 { color:#364a63 }" kuralı tek sınıflı seçiciyi ezebiliyordu
   (#364a63 ≈ zemin rengi → görünmez). Bu yüzden özgüllük .nk-body
   .mq3-panel ile yükseltildi ve başlık okunur bir tona alındı; altına
   hairline eklenerek bağlantı listesinden ayrıldı.
   Mobil sayfa (.mq3-sheet) AÇIK zeminli olduğu için kapsam dışı. */
.mq3-group-title,
.mq3-sub {
  color: #b9c0cb;
}

.nk-body .mq3-panel .mq3-group-title,
.nk-body .mq3-panel .mq3-sub {
  color: var(--mq-ivory-text);
  opacity: 1;
}

.nk-body .mq3-panel .mq3-group-title {
  font-size: 11.5px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--mq-ink-line);
}

/* d) İçerik sahnesi ERP tablolarına dar geldi: 1340 → 1560 */
.nk-body .nk-content > .container-fluid {
  max-width: 1560px;
}

/* e) TABLO TAŞMALARI: yüzen-satır sahnesi taşınca sayfayı yatay
   kaydırıyor, detay kolonunda meta rayının altına giriyordu.
   Güvenlik ağı: yalnız gerektiğinde yatay kaydırma, dikey scrollbar
   asla (yatay bar yüksekliği dikey taşma sayılmasın). */
.nk-body .mq-tableau .mq-table-wrap,
.nk-body .mq-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
}

.nk-body .mq-detail-main > .card-inner.mq-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
}

/* f) Listbar içindeki ikincil arama kutusu (purchase orders "Only
   Search For Items") büyüyüp butonu itiyordu — sabit genişlik */
.mq-listbar-actions .input-group {
  flex: 0 0 auto;
  width: auto;
  max-width: 240px;
  flex-wrap: nowrap;
}

.mq-listbar-actions .input-group .form-control {
  height: 38px;
  font-size: 12.5px;
}

.mq-listbar-actions .input-group .btn {
  height: 38px;
  display: inline-flex;
  align-items: center;
}

/* g) Sayfa aksiyonları dar ekranda satır atlasın (project-details
   Prev/All/Next/More dizisi taşıyordu) */
.nk-body .mq-page-head {
  flex-wrap: wrap;
}

.nk-body .mq-page-actions {
  flex-wrap: wrap;
}

/* h) vehicle-stages sahne filtreleri sisteme uyar: mq-chip dili
   (vehicle-stages.css'in eski değerleri ezilir) */
.nk-body .stage-filter-wrapper {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 2px;
  gap: 6px;
  display: flex;
  flex-wrap: wrap;
}

.nk-body .btn.stage-filter {
  height: 34px;
  padding: 0 13px !important;
  border: 1px solid var(--mq-line) !important;
  border-radius: var(--mq-pill) !important;
  background: var(--mq-surface) !important;
  color: var(--mq-text-mute) !important;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: none !important;
}

.nk-body .btn.stage-filter:hover {
  border-color: var(--mq-accent) !important;
  color: var(--mq-text) !important;
}

.nk-body .btn.stage-filter.active {
  background: var(--mq-ink) !important;
  border-color: var(--mq-ink) !important;
  color: #ffffff !important;
}

.nk-body .btn.stage-filter .badge {
  background: var(--mq-ivory);
  color: var(--mq-text-mute);
  border-radius: var(--mq-pill);
  font-size: 10.5px;
  padding: 1px 7px;
}

.nk-body .btn.stage-filter.active .badge {
  background: var(--mq-ink-soft);
  color: var(--mq-ivory-mute);
}

/* ============================================================
   19) YAZDIRMA — kabuk kromu kagida gitmez (tum sayfalar)
   window.print() kullanan her sayfa icin guvenlik agi; sayfa-ozel
   @media print bloklari icerik duzenini yonetmeye devam eder.
   ============================================================ */
@media print {

  .nk-body .mq3-shell,
  .nk-body .mqs-head,
  .nk-body .mq3-tabbar,
  .nk-body .mq3-sheet,
  .nk-body .mq3-palette,
  .nk-body .mq-page-actions,
  .nk-body .no-print {
    display: none !important;
  }

  body.mq3-on .nk-wrap,
  .nk-body .nk-wrap {
    padding: 0 !important;
    margin: 0 !important;
  }

  .nk-body .nk-content > .container-fluid {
    max-width: 100% !important;
    padding: 0 !important;
  }

  .nk-body {
    background: #ffffff !important;
  }
}
