/* ============================================================================
   qumanda — Yön C "Hareket Defteri" · pilot katmanı
   Yükleme sırası: bootstrap → voerp-theme.css → voerp-theme-system.css → qumanda.css
   İlke: mevcut token ADLARI korunur (906 var() kullanımı bozulmaz), DEĞERLER buradan gelir.
   Marka adı "qumanda" küçük harf; text-transform bu ada hiçbir yerde uygulanmaz.
   6 Kasım 2026: değerler Kurumsal Kimlik Kılavuzu v1.0'dan (Kasım 2026) alındı — 5 renk, tek sinyal.
   Kaynak kopyası: ~/qumanda/kurumsal-kimlik/v1.0-kilavuz-20261105/ (SHA256SUMS ile).
   ============================================================================ */

/* ---------- 1. TOKEN DEĞERLERİ — Kimlik v1.0 ---------- */
:root {
  /* ilkel: kılavuz §03 */
  --q-karbon: #141312; --q-kagit: #F3F0EA; --q-sinyal: #E63A1B; --q-notr: #8C8880; --q-cizgi: #D3D1C7;
  --q-kagit-2: #FFFFFF; --q-karbon-2: #1F1D1B; --q-sinyal-soft: #FBE4DE; --q-sinyal-dark: #B82B12;
  --q-notr-2: #B8B4AC; --q-cizgi-dark: #2E2B28;
  /* kılavuz Nötr (#8C8880) Kağıt üstünde 3,4:1 — küçük metin için koyultulmuş ton (≈4,9:1); Nötr yalnız pasif/placeholder */
  --q-notr-metin: #6B6760;
  /* yazı: kılavuz §04 qumanda Sans = Outfit; rakam hizası tabular-nums ile (§26) */
  --q-font: "Outfit", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --q-font-narrow: "Outfit", "Inter", system-ui, sans-serif;
  --q-font-mono: "Outfit", "Inter", system-ui, sans-serif;
  /* köşe: kılavuz §08 radius-s/m/l; denetimler s (30 px yükseklikte m pill'e döner), kartlar m */
  --q-radius-s: 8px; --q-radius-m: 10px; --q-radius-l: 14px;
  --q-radius: var(--q-radius-s);
  --q-row: 32px;
  /* ray (kenar çubuğu): kılavuz §07 "Kenar çubuğu Karbon, aktif öğe Kağıt" — her iki temada aynı */
  /* 7 Kasım, operatör: ray siyah değil, Sinyal de değil → NÖTR (Kağıt zemin, Karbon yazı); aktif öğe Sinyal; zemin beyaz */
  /* 7 Kasım, operatör: ray zemini uygulama zeminiyle (#F4F3F0) çakıştı → bir ton koyu nötr */
  /* 7 Kasım, operatör: siyah çok koyu, nötr biçimsiz, Sinyal yorucu → marka paletine 6. renk: PETROL #1F4B57 (Sinyal'in tamamlayıcısı).
     Alternatifler: Lacivert-gri #2C3E50 (hover #364B5E) · Yosun #3D4F3F (hover #4A5F4B) — yalnız --q-petrol ve hover değişir. */
  --q-petrol: #1F4B57; --q-petrol-2: #163A44; --q-petrol-hover: #285B69;
  --q-rail-bg: var(--q-petrol); --q-rail-fg: #F3F0EA; --q-rail-muted: #B9CDD2;
  --q-rail-rule: rgba(255, 255, 255, .16); --q-rail-hover: var(--q-petrol-hover);
  --q-rail-active-bg: var(--q-sinyal); --q-rail-active-fg: #FFFFFF;
  --q-primary-bg: var(--q-sinyal); --q-primary-fg: #FFFFFF; --q-primary-hover: var(--q-sinyal-dark);
}
:root,
html[data-theme="light"] {
  /* 7 Kasım, operatör: "her şey çok beyaz" → zemin beyazın koyu tonu, kutular saf beyaz, ikincil yüzeyler arada */
  --bg-primary: #F4F3F0;
  --bg-secondary: #FAF9F7;
  --bg-tertiary: #ECEAE5;
  --surface-primary: #FFFFFF;
  --surface-secondary: #FAF9F7;
  --surface-tertiary: #F4F3F0;
  --surface-hover: #FFF6F3;
  --surface-active: var(--q-sinyal-soft);
  --border-primary: var(--q-cizgi);
  --border-secondary: #C4C1B6;
  --border-strong: var(--q-notr);
  --text-primary: var(--q-karbon);
  --text-secondary: #3B3835;
  --text-muted: var(--q-notr-metin);
  --text-disabled: var(--q-notr);
  --text-inverse: var(--q-kagit);
  /* vurgu = Karbon: kılavuz §03 "Sinyal dekoratif kullanılmaz; birincil buton Karbon" — bağlantı, odak, aktif durum Karbon */
  --accent-primary: var(--q-sinyal-dark);   /* bağlantı, odak, aktif: 5,8:1 beyaz üstünde */
  --accent-hover: #9A2410;
  --accent-active: #7E1D0D;
  --accent-soft: var(--q-sinyal-soft);
  /* durumlar: başarı/bilgi/bekleme sessizdir (Karbon/Nötr); yalnız aksiyon isteyen istisna Sinyal */
  --success: var(--q-cizgi-dark);
  --success-hover: var(--q-karbon);
  --success-bg: #E9E6DF;
  --warning: var(--q-sinyal-dark);
  --warning-hover: #9A2410;
  --warning-bg: #FFF3EF;
  --danger: var(--q-sinyal-dark);
  --danger-hover: #9A2410;
  --danger-bg: var(--q-sinyal-soft);
  --info: var(--q-sinyal-dark);
  --info-hover: #9A2410;
  --info-bg: var(--q-sinyal-soft);
  --input-bg: var(--q-kagit-2);
  --input-border: var(--q-notr);
  --input-hover-border: var(--q-notr-metin);
  --input-focus: var(--q-sinyal);
  --input-placeholder: #7A766E;
  --input-disabled-bg: #ECE9E2;

  --content-link: var(--q-sinyal-dark); --content-link-hover: #9A2410;
  --q-ink: var(--q-karbon);
  --q-rule: var(--q-cizgi);
  --q-rule-strong: var(--q-notr);
}

html[data-theme="dark"] {
  --bg-primary: var(--q-karbon);
  --bg-secondary: #1A1816;
  --bg-tertiary: var(--q-karbon-2);
  --surface-primary: var(--q-karbon-2);
  --surface-secondary: #242220;
  --surface-tertiary: #2A2724;
  --surface-hover: #2A2724;
  --surface-active: #353230;
  --border-primary: var(--q-cizgi-dark);
  --border-secondary: #3A3733;
  --border-strong: var(--q-notr);
  --text-primary: var(--q-kagit);
  --text-secondary: var(--q-cizgi);
  --text-muted: var(--q-notr-2);
  --text-disabled: var(--q-notr-metin);
  --text-inverse: var(--q-karbon);
  --accent-primary: #F0725A;
  --accent-hover: #F58E7A;
  --accent-active: #F9A896;
  --accent-soft: #3A1D16;
  --success: var(--q-cizgi);
  --success-bg: #2A2724;
  --warning: #F0725A;
  --warning-bg: #3A1D16;
  --danger: #F0725A;            /* Sinyal, Karbon üstünde metin için açıltılmış (≈5,3:1) */
  --danger-hover: #F58E7A;
  --danger-bg: #3A1D16;
  --info: #F0725A;
  --info-bg: #3A1D16;
  --input-bg: var(--q-karbon-2);
  --input-border: var(--q-notr-metin);
  --input-hover-border: var(--q-notr);
  --input-focus: #F0725A;
  --input-placeholder: var(--q-notr);
  --input-disabled-bg: #2A2724;
  --content-link: #F0725A; --content-link-hover: #F58E7A;
  --q-ink: var(--q-kagit);
  --q-rule: var(--q-cizgi-dark);
  --q-rule-strong: var(--q-notr-metin);
  --q-rail-bg: var(--q-petrol-2); --q-rail-fg: var(--q-kagit); --q-rail-hover: #1F4B57; --q-rail-rule: rgba(255,255,255,.14); --q-rail-muted: #9DB6BC;
  --q-rail-active-bg: var(--q-sinyal); --q-rail-active-fg: #FFFFFF;
  --q-primary-bg: var(--q-sinyal); --q-primary-fg: #FFFFFF; --q-primary-hover: #F0725A;
}

/* ---------- 2. TABAN ---------- */
html, body { font-family: var(--q-font); }
body { background: var(--bg-primary); color: var(--text-primary); font-size: 15px; line-height: 1.5; }
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4 { font-family: var(--q-font-narrow); font-weight: 600; letter-spacing: 0; }
.card, .btn, .form-control, .form-select, .badge, .alert, .dropdown-menu, .modal-content, .table { border-radius: var(--q-radius); }
.card { box-shadow: none; border: 1px solid var(--border-primary); }
.card-header { background: var(--surface-secondary); border-bottom: 1px solid var(--border-primary); font-family: var(--q-font-narrow); font-weight: 600; }
.btn { font-family: var(--q-font-narrow); font-weight: 600; letter-spacing: .01em; }
.btn-primary { background: var(--q-ink); border-color: var(--q-ink); color: var(--text-inverse); }
.btn-primary:hover, .btn-primary:focus { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--text-inverse); }
.btn-outline-secondary, .btn-outline-primary { border-color: var(--q-ink); color: var(--q-ink); background: var(--surface-primary); }
.btn-outline-secondary:hover, .btn-outline-primary:hover { background: var(--accent-soft); color: var(--q-ink); border-color: var(--q-ink); }
.btn-outline-danger { color: var(--danger); border-color: var(--danger); }
.form-control, .form-select { border: 1px solid var(--input-border); background: var(--input-bg); color: var(--text-primary); box-shadow: none; }
.form-control:focus, .form-select:focus { border-color: var(--input-focus); box-shadow: 0 0 0 2px var(--accent-soft); }
.form-label { font-weight: 500; color: var(--text-secondary); font-size: .86rem; margin-bottom: .25rem; }
:focus-visible { outline: 2px solid var(--accent-primary); outline-offset: 2px; }
.q-mono, .q-num { font-family: var(--q-font-mono); font-variant-numeric: tabular-nums; }
.q-num { text-align: right; }
.q-neg { color: var(--danger); }   /* Sinyal-koyu: aksiyon isteyen istisna (negatif bakiye, geciken vade) */
.q-muted { color: var(--text-muted); }
.q-small { font-size: .8rem; }

/* ---------- 3. ÇERÇEVE: ray (kenar çubuğu) ---------- */
.q-rail { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--q-rail-bg); border-right: 1px solid var(--q-rail-rule); padding: .55rem 0 1rem; font-size: .86rem; }
.q-rail .q-wm { display: flex; align-items: center; gap: .5rem; padding: .7rem .95rem .75rem; text-decoration: none; }
.q-rail .q-wm .q-wm-l { width: auto; height: 2.4rem; max-width: 100%; }   /* renkli yatay kilit, koyu zemin (kılavuz §02; operatör kararı 6 Kasım: tek renk değil) */
.q-stamp { margin: .2rem .7rem .7rem; border: 1px solid var(--q-rail-fg); padding: .45rem .6rem; font-size: .78rem; line-height: 1.3; }
.q-stamp b { display: block; font-family: var(--q-font-narrow); font-size: .95rem; font-weight: 600; color: var(--q-rail-fg); }
.q-stamp span { color: var(--q-rail-muted); }
.q-stamp .q-stamp-sw { display: block; margin-top: .3rem; }
.q-stamp .q-stamp-sw .btn { padding: 0; border: 0; background: none; color: var(--q-rail-fg); font-family: var(--q-font); font-weight: 500; font-size: .76rem; text-decoration: underline; text-underline-offset: 3px; }
.q-rail .q-grp { font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--q-rail-muted); padding: .7rem .95rem .15rem; }
.q-rail a.q-nav { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .27rem .95rem; color: var(--q-rail-fg); text-decoration: none; font-family: var(--q-font-narrow); font-weight: 500; font-size: .9rem; white-space: nowrap; }
.q-rail a.q-nav:hover { background: var(--q-rail-hover); }
.q-rail a.q-nav.active { background: var(--q-rail-active-bg); color: var(--q-rail-active-fg); }
.q-rail a.q-nav .q-cnt { font-family: var(--q-font-mono); font-size: .7rem; color: var(--q-rail-muted); }
.q-rail a.q-nav.active .q-cnt { color: var(--q-rail-muted); }
.q-rail a.q-nav.q-sub { padding-left: 1.6rem; font-weight: 400; font-size: .84rem; }
.q-rail details.q-sec { margin: 0; }
.q-rail details.q-sec > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; padding: .27rem .95rem; font-family: var(--q-font-narrow); font-weight: 500; font-size: .9rem; color: var(--q-rail-fg); }
.q-rail details.q-sec > summary::-webkit-details-marker { display: none; }
.q-rail details.q-sec > summary::after { content: "+"; color: var(--q-rail-muted); font-family: var(--q-font-mono); }
.q-rail details.q-sec[open] > summary::after { content: "−"; }
.q-rail details.q-sec > summary:hover { background: var(--q-rail-hover); }
.q-rail-foot { margin-top: 1rem; padding: .6rem .95rem 0; border-top: 1px solid var(--q-rail-rule); font-size: .76rem; color: var(--q-rail-muted); }
.q-rail-foot form { display: inline; }
.q-rail-foot .btn { padding: 0; border: 0; background: none; color: var(--q-rail-muted); font: inherit; text-decoration: underline; text-underline-offset: 3px; }
.q-theme { display: inline-flex; gap: .2rem; margin-left: .4rem; }
.q-theme .voerp-theme-option { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border: 1px solid var(--q-rail-rule); background: var(--q-rail-hover); color: var(--q-rail-muted); padding: 0; font-size: .85rem; line-height: 1; }   /* 6 Kasım: yazı yerine ikon (güneş / ay / yarım daire) */
.q-theme .voerp-theme-option .bi { font-size: inherit; line-height: 1; }
.q-theme .voerp-theme-option[aria-pressed="true"] { background: var(--q-rail-hover); color: var(--q-rail-fg); border-color: var(--q-rail-fg); }   /* 7 Kasım, operatör: beyaz dolgu ikonu öldürüyor — aktif = parlak ikon + çerçeve, zemin koyu kalır */
.q-theme .voerp-theme-option:hover { color: var(--q-rail-fg); }

/* ana alan */
.q-main { min-width: 0; padding: 0 !important; background: var(--surface-primary); min-height: 100vh; }
.q-main > .q-body { padding: 0 1.1rem 2rem; }
.q-topline { display: flex; align-items: center; gap: 1rem; padding: .35rem 1.1rem; border-bottom: 1px solid var(--q-rule); font-size: .78rem; color: var(--text-muted); background: var(--bg-secondary); }
.q-topline .q-crumb a { color: var(--text-muted); text-decoration: none; }
.q-topline .q-crumb a:hover { color: var(--q-ink); text-decoration: underline; }
.q-topline .q-kbd { margin-left: auto; font-family: var(--q-font-mono); font-size: .7rem; }
.q-topline kbd { font: inherit; border: 1px solid var(--q-rule-strong); padding: 0 .3rem; color: var(--text-secondary); background: var(--surface-primary); }

/* ---------- 4. SAYFA BAŞLIĞI KALIBI ---------- */
.q-head { display: grid; grid-template-columns: 1fr auto; gap: .6rem 1.5rem; padding: .9rem 0 .6rem; border-bottom: 2px solid var(--q-ink); align-items: end; }
.q-head h1 { margin: 0; font-family: var(--q-font-narrow); font-weight: 700; font-size: 1.55rem; line-height: 1; }
.q-head .q-sub { font-size: .8rem; color: var(--text-muted); margin-top: .35rem; font-family: var(--q-font-mono); }
.q-head .q-act { display: flex; gap: .4rem; justify-content: flex-end; flex-wrap: wrap; align-items: center; }
.q-btn { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--q-font-narrow); font-weight: 600; font-size: .84rem; padding: .32rem .75rem; border: 1px solid var(--q-ink); background: var(--surface-primary); color: var(--q-ink); text-decoration: none; white-space: nowrap; line-height: 1.3; }
.q-btn:hover { background: var(--accent-soft); color: var(--q-ink); }
.q-btn.q-primary { background: var(--q-ink); color: var(--text-inverse); }
.q-btn.q-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--text-inverse); }
.q-btn.q-quiet { border-color: transparent; text-decoration: underline; text-underline-offset: 3px; padding-inline: .3rem; }
.q-btn.q-danger { border-color: var(--danger); color: var(--danger); }
.q-btn kbd { font-family: var(--q-font-mono); font-size: .66rem; font-weight: 400; border: 1px solid currentColor; padding: 0 .25rem; opacity: .75; }
@media (max-width: 760px) { .q-head { grid-template-columns: 1fr; } .q-head .q-act { justify-content: flex-start; } }

/* ---------- 5. SORGU ÇUBUĞU (filtre) ---------- */
.q-bar { display: flex; gap: .5rem; align-items: center; padding: .45rem 0; border-bottom: 1px solid var(--q-rule); font-size: .82rem; flex-wrap: wrap; }
.q-bar .q-search { font: inherit; font-size: .84rem; padding: .3rem .5rem; border: 1px solid var(--q-rule-strong); background: var(--input-bg); color: var(--text-primary); min-width: 260px; flex: 1 1 260px; max-width: 420px; }
.q-chip { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--q-font-mono); font-size: .74rem; padding: .14rem .5rem; border: 1px solid var(--q-ink); background: var(--surface-primary); color: var(--q-ink); text-decoration: none; cursor: pointer; }
.q-chip.q-on { background: var(--accent-soft); border-color: var(--accent-primary); }
.q-chip .q-x { color: var(--text-muted); }
.q-chip:hover { background: var(--accent-soft); }
.q-bar .q-r { margin-left: auto; color: var(--text-muted); font-family: var(--q-font-mono); font-size: .74rem; display: flex; gap: .6rem; align-items: center; }
.q-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.q-filters { border-bottom: 1px solid var(--q-rule); background: var(--bg-secondary); }
.q-filters[hidden] { display: none; }
.q-filters .q-fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem .8rem; padding: .6rem 0; }
.q-filters label { display: block; font-size: .72rem; color: var(--text-muted); margin-bottom: .15rem; }
.q-filters .form-control, .q-filters .form-select { font-size: .82rem; padding: .25rem .45rem; }
.q-filters .q-fact { display: flex; gap: .4rem; align-items: end; }

/* ---------- 6. MİZAN ŞERİDİ ---------- */
.q-mizan { display: grid; grid-template-columns: auto repeat(3, auto) 1fr; gap: 0 2rem; padding: .45rem 0; border-bottom: 1px solid var(--q-ink); font-size: .76rem; font-family: var(--q-font-mono); background: var(--bg-secondary); align-items: center; }
.q-mizan .q-lab { font-family: var(--q-font); color: var(--text-muted); }
.q-mizan span b { display: block; font-size: .95rem; font-weight: 600; }
.q-mizan .q-neg b { color: var(--danger); }
@media (max-width: 760px) { .q-mizan { grid-template-columns: repeat(2, auto); gap: .3rem 1.2rem; } }

/* ---------- 7. DEFTER TABLOSU ---------- */
.q-ledger-wrap { overflow-x: auto; }
.q-ledger { width: 100%; border-collapse: collapse; font-size: .84rem; }
.q-ledger thead th { font-family: var(--q-font-narrow); font-weight: 600; font-size: .74rem; letter-spacing: .03em; color: var(--text-muted); text-align: left; padding: .38rem .6rem; border-bottom: 1px solid var(--q-ink); white-space: nowrap; position: sticky; top: 0; background: var(--surface-primary); z-index: 1; }
.q-ledger thead th.q-num { text-align: right; }
.q-ledger thead th a { color: inherit; text-decoration: none; }
.q-ledger thead th a:hover { color: var(--q-ink); }
.q-ledger tbody td { padding: .32rem .6rem; border-bottom: 1px solid var(--q-rule); white-space: nowrap; vertical-align: top; height: var(--q-row); }
.q-ledger .q-v { border-left: 1px solid var(--q-rule-strong); }
.q-ledger .q-nm { white-space: normal; min-width: 230px; }
.q-ledger .q-nm a { color: var(--q-ink); text-decoration: none; font-weight: 500; }
.q-ledger .q-nm a:hover { text-decoration: underline; }
.q-ledger .q-nm small { display: block; font-family: var(--q-font-mono); font-size: .7rem; color: var(--text-muted); }
.q-ledger .q-d { color: var(--text-muted); font-family: var(--q-font-mono); font-size: .76rem; width: 72px; }
.q-ledger tr.q-day td { border-top: 1px solid var(--q-rule-strong); }
.q-ledger tr.q-day td.q-d { color: var(--q-ink); font-weight: 600; }
.q-ledger tbody tr:hover td { background: var(--surface-hover); }
.q-ledger tbody tr.q-sel td, .q-ledger tbody tr:focus-within td { background: var(--surface-active); }
.q-ledger tbody tr[tabindex]:focus { outline: 2px solid var(--accent-primary); outline-offset: -2px; }
.q-ledger .q-st { display: inline-block; font-size: .72rem; padding: .02rem .4rem; border: 1px solid var(--q-rule-strong); color: var(--text-secondary); vertical-align: middle; margin-left: .3rem; }
.q-ledger .q-st.q-pas { color: var(--text-muted); border-style: dashed; }
.q-ledger .q-st.q-blk { color: var(--danger); border-color: var(--danger); }
.q-ledger .q-st.q-warn { color: var(--warning); border-color: var(--warning); }
.q-ledger tr.q-det td { background: var(--surface-active); white-space: normal; padding: .6rem 1rem .8rem; border-bottom: 2px solid var(--accent-primary); }
.q-ledger tr.q-det[hidden] { display: none; }
.q-detgrid { display: grid; grid-template-columns: 1fr 1fr auto; gap: .6rem 2rem; font-size: .82rem; }
@media (max-width: 900px) { .q-detgrid { grid-template-columns: 1fr; } }
.q-detgrid h5 { margin: 0 0 .25rem; font-family: var(--q-font-narrow); font-size: .9rem; font-weight: 700; }
.q-detgrid .q-mini td { padding: .12rem .4rem; border: 0; font-size: .78rem; white-space: nowrap; }
.q-detgrid .q-acts { display: flex; flex-direction: column; gap: .35rem; align-self: start; }
.q-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .45rem 0; font-family: var(--q-font-mono); font-size: .76rem; color: var(--text-muted); border-top: 1px solid var(--q-ink); flex-wrap: wrap; }
.q-foot a { color: var(--q-ink); text-decoration: none; padding: 0 .3rem; }
.q-foot a:hover { text-decoration: underline; }
.q-empty { padding: 2.2rem 1rem; text-align: center; color: var(--text-muted); font-size: .9rem; }
.q-empty b { display: block; color: var(--q-ink); font-family: var(--q-font-narrow); font-size: 1.05rem; margin-bottom: .2rem; }

/* ---------- 8. VADE CETVELİ (D'den alındı) ---------- */
.q-vade { font-family: var(--q-font-mono); font-size: .76rem; white-space: nowrap; }
.q-vade i { display: inline-block; width: 64px; height: 7px; border: 1px solid var(--q-rule-strong); vertical-align: middle; margin-right: .4rem; position: relative; font-style: normal; background: var(--surface-primary); }
.q-vade i::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: var(--p, 0%); background: var(--accent-primary); }
.q-vade.q-w i::after { background: var(--warning); }
.q-vade.q-b i::after { background: var(--danger); }
.q-vade.q-b { color: var(--danger); }
.q-vade.q-w { color: var(--warning); }
.q-ruler { background: var(--surface-primary); border: 1px solid var(--q-rule); padding: .6rem .8rem; }
.q-ruler .q-l { font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); margin-bottom: .4rem; font-family: var(--q-font-narrow); }
.q-ruler .q-bar2 { position: relative; height: 10px; background: var(--bg-tertiary); border: 1px solid var(--q-rule-strong); }
.q-ruler .q-bar2 i { position: absolute; top: 0; bottom: 0; background: var(--accent-primary); }
.q-ruler .q-bar2 i.q-w { background: var(--warning); } .q-ruler .q-bar2 i.q-b { background: var(--danger); }
.q-ruler .q-t { display: flex; justify-content: space-between; font-family: var(--q-font-mono); font-size: .68rem; color: var(--text-muted); margin-top: .25rem; }
.q-ruler .q-leg { font-size: .76rem; color: var(--text-secondary); margin-top: .3rem; }

/* ---------- 9. CARİ KARTI (detay) ---------- */
.q-card-head { display: grid; grid-template-columns: 1fr auto; gap: .8rem 2rem; padding: .9rem 0 .7rem; border-bottom: 2px solid var(--q-ink); align-items: start; }
@media (max-width: 900px) { .q-card-head { grid-template-columns: 1fr; } }
.q-card-head h1 { margin: 0; font-family: var(--q-font-narrow); font-weight: 700; font-size: 1.5rem; line-height: 1.1; }
.q-card-head .q-code { font-family: var(--q-font-mono); font-size: .76rem; color: var(--text-muted); margin-top: .3rem; }
.q-bal { display: flex; gap: 1.6rem; align-items: end; flex-wrap: wrap; }
.q-bal .q-l { font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); font-family: var(--q-font-narrow); }
.q-bal .q-v { font-family: var(--q-font-mono); font-size: 1.55rem; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.q-bal .q-v.q-neg { color: var(--danger); }
.q-bal .q-s { font-size: .76rem; color: var(--text-secondary); }
.q-sections { display: grid; grid-template-columns: 1fr 320px; gap: 1.2rem 2rem; padding-top: 1rem; }
@media (max-width: 1000px) { .q-sections { grid-template-columns: 1fr; } }
.q-sec { margin-bottom: 1.4rem; }
.q-sec > h2 { font-family: var(--q-font-narrow); font-size: 1rem; font-weight: 700; margin: 0 0 .4rem; padding-bottom: .25rem; border-bottom: 1px solid var(--q-ink); display: flex; justify-content: space-between; align-items: baseline; }
.q-sec > h2 small { font-family: var(--q-font-mono); font-weight: 400; font-size: .72rem; color: var(--text-muted); }
.q-kv { display: grid; grid-template-columns: max-content 1fr; gap: .2rem .9rem; margin: 0; font-size: .84rem; }
.q-kv dt { color: var(--text-muted); font-weight: 400; }
.q-kv dd { margin: 0; }
.q-kv dd.q-num { text-align: left; }
.q-kv .q-none { color: var(--text-muted); font-style: italic; }
.q-kv .q-none a { color: var(--accent-primary); font-style: normal; }
.q-side .q-ruler + .q-ruler { margin-top: .6rem; }
.q-side .q-acts { display: grid; gap: .35rem; margin: .8rem 0; }
.q-audit { font-size: .76rem; color: var(--text-muted); border-top: 1px solid var(--q-rule); padding-top: .6rem; margin-top: 1.2rem; }
.q-audit dl { display: grid; grid-template-columns: max-content 1fr; gap: .1rem .8rem; margin: 0; }
.q-audit dd { margin: 0; font-family: var(--q-font-mono); }

/* ---------- 10. İŞLEM FORMU ---------- */
.q-form { max-width: 980px; padding-bottom: 4.5rem; }
.q-form .q-fs { border: 0; border-top: 1px solid var(--q-ink); padding: .8rem 0 .4rem; margin: .8rem 0 0; }
.q-form .q-fs > legend { float: none; width: auto; font-family: var(--q-font-narrow); font-size: .95rem; font-weight: 700; padding: 0 .4rem 0 0; margin: 0 0 .2rem; }
.q-form .q-fs .q-hint { font-size: .78rem; color: var(--text-muted); margin: 0 0 .6rem; }
.q-form .q-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: .7rem .9rem; }
.q-form .q-grid > * { grid-column: span 12; }
@media (min-width: 720px) { .q-form .q-c3 { grid-column: span 3; } .q-form .q-c4 { grid-column: span 4; } .q-form .q-c6 { grid-column: span 6; } }
.q-form .q-req::after { content: " *"; color: var(--danger); }
.q-form .q-err { color: var(--danger); font-size: .78rem; margin-top: .2rem; }
.q-form .q-err::before { content: "⚠ "; }
.q-form .q-ferr { border: 1px solid var(--danger); background: var(--danger-bg); padding: .6rem .8rem; font-size: .84rem; margin: .8rem 0; }
.q-form .q-ferr ul { margin: .3rem 0 0; padding-left: 1.1rem; }
.q-form .is-invalid { border-color: var(--danger); }
.q-formbar { position: sticky; bottom: 0; display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .6rem 1.1rem; margin: 1rem -1.1rem 0; background: var(--bg-secondary); border-top: 1px solid var(--q-ink); z-index: 2; }
.q-formbar .q-note { font-size: .76rem; color: var(--text-muted); font-family: var(--q-font-mono); }
.q-formbar .q-busy { display: none; }
.q-formbar.q-sending .q-busy { display: inline; }
.q-formbar.q-sending .q-btn.q-primary { opacity: .7; pointer-events: none; }

/* ---------- 11. GENEL: mesajlar, rozetler ---------- */
.alert { border-radius: var(--q-radius-m); border-left-width: 3px; }
.badge { border-radius: 999px; font-weight: 500; }   /* kılavuz: rozet pill */
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ---------- 12. ESKİ .sidebar KURALLARINI GEÇERSİZ KIL (özgüllük: aside.sidebar.q-rail) ---------- */
aside.sidebar.q-rail, html[data-theme="dark"] aside.sidebar.q-rail, html[data-theme="light"] aside.sidebar.q-rail {
  background: var(--q-rail-bg); color: var(--q-rail-fg); border-right: 1px solid var(--q-rail-rule); box-shadow: none; }
aside.sidebar.q-rail::before, aside.sidebar.q-rail::after { content: none; display: none; }
aside.sidebar.q-rail .q-wm, aside.sidebar.q-rail .q-stamp b, aside.sidebar.q-rail details.q-sec > summary, aside.sidebar.q-rail a.q-nav { color: var(--q-rail-fg); }
aside.sidebar.q-rail .q-stamp { border-color: var(--q-rail-fg); }
aside.sidebar.q-rail a.q-nav.active { background: var(--q-rail-active-bg); color: var(--q-rail-active-fg); }
aside.sidebar.q-rail a.q-nav:hover:not(.active), aside.sidebar.q-rail details.q-sec > summary:hover { background: var(--q-rail-hover); color: var(--q-rail-fg); }
aside.sidebar.q-rail .q-grp, aside.sidebar.q-rail .q-stamp span, aside.sidebar.q-rail .q-rail-foot, aside.sidebar.q-rail .q-cnt { color: var(--q-rail-muted); }

/* ---------- 13. DAR EKRAN ---------- */
@media (max-width: 991.98px) {
  .q-topline { padding-left: 3.6rem; min-height: 2.85rem; }      /* yüzen menü düğmesi için yer; eski tema düğmeyi ≤991.98 px'te gösterir (8 Kasım) */
}
@media (max-width: 767.98px) {
  .q-topline .q-kbd { display: none; }                            /* klavye ipuçları dokunmatikte anlamsız */
  .q-main > .q-body { padding-inline: .8rem; }
  .q-bar .q-search { min-width: 0; max-width: none; flex-basis: 100%; }
  .q-bar .q-r { margin-left: 0; width: 100%; justify-content: space-between; }
  .q-formbar { margin-inline: -.8rem; padding-inline: .8rem; }
}

/* ---------- 14. BOOTSTRAP DÜĞME ÖZGÜLLÜĞÜ ---------- */
html[data-theme] .btn-primary, html .btn-primary { background: var(--q-ink); border-color: var(--q-ink); color: var(--text-inverse); }
html[data-theme] .btn-primary:hover, html .btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--text-inverse); }
html[data-theme] .btn-outline-primary, html .btn-outline-primary, html[data-theme] .btn-outline-secondary, html .btn-outline-secondary { border-color: var(--q-ink); color: var(--q-ink); background: var(--surface-primary); }
html[data-theme] .btn-success, html .btn-success { background: var(--success); border-color: var(--success); }

/* ---------- 15. KART CETVELLERİ ---------- */
.q-rulers { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; padding-top: .8rem; }
@media (max-width: 900px) { .q-rulers { grid-template-columns: 1fr; } }

/* ---------- 16. İKONLAR (Bootstrap Icons; her zaman etiketle birlikte) ---------- */
.q-rail a.q-nav { justify-content: flex-start; }
.q-rail a.q-nav > span:not(.q-cnt) { flex: 1 1 auto; }
.q-ico { width: 1.15rem; flex: 0 0 1.15rem; text-align: center; font-size: .95rem; color: var(--text-muted); margin-right: .45rem; line-height: 1; }
.q-rail a.q-nav.active .q-ico { color: var(--text-inverse); }
.q-rail details.q-sec > summary { align-items: center; }
.q-rail details.q-sec > summary > span { flex: 1 1 auto; }
.q-btn .bi { font-size: .9em; }
.q-head .q-act .q-btn .bi, .q-card-head .q-act .q-btn .bi { color: inherit; }

/* ============================================================================
   17. GLOBAL BİRLEŞTİRME KATMANI — 62 şablonun paylaştığı kalıplar tek dile çevrilir.
   Eski tema 94 yerde !important kullandığı ve html[data-theme] ile özgüllük yükselttiği için
   bu katman da gerektiği yerde !important kullanır; hepsi burada, gerekçesi: eski katmanı
   düzenlemeden (geri alınabilir) üstüne yazmak.
   ============================================================================ */

/* --- ray metni: eski html[data-theme] .sidebar a kuralını kapat --- */
html aside.sidebar.q-rail a.q-nav, html[data-theme] aside.sidebar.q-rail a.q-nav,
html aside.sidebar.q-rail details.q-sec > summary, html[data-theme] aside.sidebar.q-rail details.q-sec > summary { color: var(--q-rail-fg) !important; }
html aside.sidebar.q-rail a.q-nav.active, html[data-theme] aside.sidebar.q-rail a.q-nav.active { color: var(--q-rail-active-fg) !important; background: var(--q-rail-active-bg) !important; box-shadow: none !important; }
html aside.sidebar.q-rail a.q-nav:hover:not(.active), html[data-theme] aside.sidebar.q-rail a.q-nav:hover:not(.active) { background: var(--q-rail-hover) !important; color: var(--q-rail-fg) !important; }
html[data-theme] aside.sidebar.q-rail { color: var(--q-rail-fg) !important; background: var(--q-rail-bg) !important; border-color: var(--q-rail-rule) !important; }
html[data-theme] aside.sidebar.q-rail .q-grp, html[data-theme] aside.sidebar.q-rail .q-stamp span, html[data-theme] aside.sidebar.q-rail .q-rail-foot { color: var(--q-rail-muted) !important; }
html[data-theme] aside.sidebar.q-rail .q-stamp b, html[data-theme] aside.sidebar.q-rail .q-wm { color: var(--q-rail-fg) !important; }

/* --- gradient, cam, gölge: her yerde kapalı --- */
[class*="voerp-"], .card, .app-index-hero, .voerp-dashboard-hero { background-image: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.shadow, .shadow-sm, .shadow-lg, .card, [class*="voerp-"] { box-shadow: none !important; }
.rounded, .rounded-1, .rounded-2, .rounded-3, .rounded-4, .rounded-pill, .card, .btn, .badge, .alert, .form-control, .form-select, .input-group-text, .page-link, .dropdown-menu, .modal-content, .list-group-item, .progress, [class*="voerp-"] { border-radius: 0 !important; }

/* --- eski üst çubuk kalıntısı (sayfa içi başlık) ve standart sayfa başlığı --- */
main .d-flex.flex-wrap.justify-content-between.align-items-center.gap-2.mb-4, main .d-flex.flex-wrap.justify-content-between.align-items-start.gap-3.mb-4, .voerp-page-header, main > .container-fluid > .d-flex.justify-content-between.mb-4 {
  display: flex !important; align-items: flex-end !important; padding: .9rem 0 .6rem !important; margin: 0 0 .8rem !important; border: 0 !important; border-bottom: 2px solid var(--q-ink) !important; background: transparent !important; }
main h1.h3, main h1.h2, main h1.h4, main .voerp-page-header h1, main .voerp-page-title { font-family: var(--q-font-narrow) !important; font-weight: 700 !important; font-size: 1.55rem !important; line-height: 1 !important; color: var(--q-ink) !important; margin: 0 !important; }
main h1 + p.text-muted, main h1 + .text-muted, main .voerp-page-subtitle { font-family: var(--q-font-mono); font-size: .78rem; color: var(--text-muted) !important; margin: .35rem 0 0 !important; }
.voerp-title-icon, .voerp-page-header .voerp-page-icon { display: none !important; }

/* --- kartlar: düz bölüm --- */
.card { border: 1px solid var(--q-rule) !important; background: var(--surface-primary) !important; color: var(--text-primary); margin-bottom: 1rem; }
.card-header { background: transparent !important; border-bottom: 1px solid var(--q-ink) !important; padding: .45rem .9rem !important; font-family: var(--q-font-narrow) !important; font-weight: 700; font-size: .95rem; color: var(--q-ink) !important; }
.card-header .text-muted, .card-header .small { font-family: var(--q-font); font-weight: 400; }
.card-body { padding: .8rem .9rem; }
.card h2.h5, .card h3.h6, .card .h5, .card .h6, .card-title { font-family: var(--q-font-narrow) !important; font-weight: 700 !important; color: var(--q-ink) !important; padding-bottom: .25rem; border-bottom: 1px solid var(--q-ink); margin-bottom: .6rem !important; display: block; }
.card-header .bi, .card h2 .bi, .card h3 .bi { display: none !important; }
.bg-white, .bg-light { background: var(--surface-primary) !important; }
.border { border-color: var(--q-rule) !important; }

/* --- KPI kutuları, mini-stat, paneller, hızlı eylemler: hepsi aynı düz kutu --- */
.voerp-kpi-card, .voerp-mini-stat, .voerp-dashboard-panel, .voerp-quick-action, .voerp-stock-panel, .voerp-status-item, .voerp-readiness-item {
  background: var(--surface-primary) !important; border: 1px solid var(--q-rule) !important; color: var(--text-primary) !important; }
.voerp-kpi-card { padding: .6rem .8rem !important; }
.voerp-kpi-label, .voerp-mini-label, .voerp-kpi-subtitle { font-family: var(--q-font-narrow) !important; font-size: .68rem !important; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted) !important; }
.voerp-kpi-value, .voerp-mini-value { font-family: var(--q-font-mono) !important; font-variant-numeric: tabular-nums; font-weight: 600 !important; font-size: 1.25rem !important; color: var(--q-ink) !important; letter-spacing: 0 !important; }
.voerp-kpi-icon, .voerp-mini-icon, .voerp-panel-icon, .voerp-quick-action-icon, .voerp-readiness-item-icon, .voerp-nav-icon { background: transparent !important; border: 0 !important; width: auto !important; height: auto !important; color: var(--text-muted) !important; box-shadow: none !important; }
.voerp-panel-header, .voerp-section-title, .voerp-panel-heading { font-family: var(--q-font-narrow) !important; font-weight: 700 !important; color: var(--q-ink) !important; border-bottom: 1px solid var(--q-ink); background: transparent !important; }
.voerp-quick-action-title { font-family: var(--q-font-narrow) !important; font-weight: 600 !important; color: var(--q-ink) !important; }
.voerp-quick-action-description { color: var(--text-muted) !important; font-size: .8rem !important; }
.voerp-dashboard-hero, .app-index-hero { background: var(--bg-secondary) !important; border: 1px solid var(--q-rule) !important; border-left: 3px solid var(--q-ink) !important; padding: .9rem 1.1rem !important; margin-bottom: 1rem !important; color: var(--text-primary) !important; }
.voerp-dashboard-hero *, .app-index-hero * { color: inherit !important; text-shadow: none !important; }
.voerp-dashboard-hero h1, .app-index-hero h1, .app-index-hero .display-5, .app-index-hero .display-6 { font-family: var(--q-font-narrow) !important; font-size: 1.55rem !important; font-weight: 700 !important; }
.app-index-hero input[disabled], .app-index-hero .form-control:disabled { display: none !important; }

/* --- rozetler: dolgu değil çerçeve + metin --- */
.badge { font-family: var(--q-font) !important; font-weight: 500 !important; font-size: .72rem !important; padding: .08rem .42rem !important; border: 1px solid var(--q-rule-strong) !important; background: transparent !important; color: var(--text-secondary) !important; vertical-align: middle; }
.badge.text-bg-success, .badge.bg-success { border-color: var(--success) !important; color: var(--success) !important; }
.badge.text-bg-danger, .badge.bg-danger { border-color: var(--danger) !important; color: var(--danger) !important; }
.badge.text-bg-warning, .badge.bg-warning { border-color: var(--warning) !important; color: var(--warning) !important; }
.badge.text-bg-primary, .badge.bg-primary, .badge.text-bg-info, .badge.bg-info { border-color: var(--accent-primary) !important; color: var(--accent-primary) !important; }
.badge.text-bg-secondary, .badge.bg-secondary, .badge.text-bg-light, .badge.bg-light, .badge.text-bg-dark, .badge.bg-dark { border-color: var(--q-rule-strong) !important; color: var(--text-secondary) !important; }

/* --- düğmeler --- */
.btn { font-family: var(--q-font-narrow) !important; font-weight: 600 !important; letter-spacing: .01em; box-shadow: none !important; }
html .btn-primary, html[data-theme] .btn-primary { background: var(--q-ink) !important; border-color: var(--q-ink) !important; color: var(--text-inverse) !important; }
html .btn-primary:hover, html[data-theme] .btn-primary:hover { background: var(--accent-hover) !important; border-color: var(--accent-hover) !important; color: var(--text-inverse) !important; }
html .btn-outline-primary, html .btn-outline-secondary, html .btn-outline-dark, html .btn-light, html .btn-secondary,
html[data-theme] .btn-outline-primary, html[data-theme] .btn-outline-secondary, html[data-theme] .btn-outline-dark, html[data-theme] .btn-light, html[data-theme] .btn-secondary { background: var(--surface-primary) !important; border-color: var(--q-ink) !important; color: var(--q-ink) !important; }
html .btn-outline-primary:hover, html .btn-outline-secondary:hover, html[data-theme] .btn-outline-primary:hover, html[data-theme] .btn-outline-secondary:hover { background: var(--accent-soft) !important; color: var(--q-ink) !important; }
html .btn-success, html[data-theme] .btn-success { background: var(--success) !important; border-color: var(--success) !important; color: var(--text-inverse) !important; }
html .btn-danger, html[data-theme] .btn-danger { background: var(--danger) !important; border-color: var(--danger) !important; color: var(--control-danger-fg) !important; }
html .btn-outline-danger, html[data-theme] .btn-outline-danger { background: var(--surface-primary) !important; border-color: var(--danger) !important; color: var(--danger) !important; }
html .btn-outline-success, html[data-theme] .btn-outline-success { border-color: var(--success) !important; color: var(--success) !important; background: var(--surface-primary) !important; }
html .btn-warning, html .btn-outline-warning, html[data-theme] .btn-warning, html[data-theme] .btn-outline-warning { border-color: var(--warning) !important; color: var(--warning) !important; background: var(--surface-primary) !important; }
.btn-group .btn { border-radius: 0 !important; }

/* --- tablolar: defter dili --- */
.table-responsive { border: 1px solid var(--q-rule); }
.table { font-size: .84rem !important; color: var(--text-primary) !important; margin-bottom: 0 !important; }
html .table > thead > tr > th, html[data-theme] .table > thead > tr > th { font-family: var(--q-font-narrow) !important; font-weight: 600 !important; font-size: .72rem !important; letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted) !important; background: var(--surface-primary) !important; border-bottom: 1px solid var(--q-ink) !important; padding: .4rem .6rem !important; white-space: nowrap; }
html .table > tbody > tr > td, html[data-theme] .table > tbody > tr > td { padding: .34rem .6rem !important; border-bottom: 1px solid var(--q-rule) !important; vertical-align: top; background: transparent !important; }
html .table > tbody > tr:hover > td, html[data-theme] .table > tbody > tr:hover > td { background: var(--surface-hover) !important; }
.table td.text-end, .table th.text-end, .table .text-end { font-family: var(--q-font-mono); font-variant-numeric: tabular-nums; font-size: .82rem; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background: transparent !important; }
.table .badge { margin-left: .2rem; }

/* --- formlar --- */
.form-label { font-family: var(--q-font) !important; font-weight: 500 !important; font-size: .84rem !important; color: var(--text-secondary) !important; }
.form-control, .form-select, .input-group-text { border: 1px solid var(--input-border) !important; background: var(--input-bg) !important; color: var(--text-primary) !important; font-size: .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--input-focus) !important; box-shadow: 0 0 0 2px var(--accent-soft) !important; }
.form-text, .form-check-label { color: var(--text-muted); font-size: .8rem; }
.invalid-feedback, .text-danger.small { font-size: .78rem; }

/* --- uyarılar, sayfalama, açılır menü --- */
.alert { border: 1px solid var(--q-rule) !important; border-left: 3px solid var(--q-rule-strong) !important; background: var(--surface-secondary) !important; color: var(--text-primary) !important; padding: .55rem .8rem; }
.alert-danger { border-left-color: var(--danger) !important; } .alert-success { border-left-color: var(--success) !important; } .alert-warning { border-left-color: var(--warning) !important; } .alert-info { border-left-color: var(--accent-primary) !important; }
.page-link { border-color: var(--q-rule) !important; color: var(--q-ink) !important; font-family: var(--q-font-mono); font-size: .8rem; }
.page-item.active .page-link { background: var(--q-ink) !important; border-color: var(--q-ink) !important; color: var(--text-inverse) !important; }
.dropdown-menu { border: 1px solid var(--q-ink) !important; background: var(--surface-primary) !important; box-shadow: 0 6px 16px rgba(0,0,0,.12) !important; }
.dropdown-item { font-size: .88rem; color: var(--text-primary) !important; } .dropdown-item:hover { background: var(--surface-active) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-primary { color: var(--accent-primary) !important; }
/* eski tema `html[data-theme] a` (0,1,1) kuralını geçmek için aynı özgüllük */
html a, html[data-theme] a { color: var(--accent-primary); }
html a:hover, html[data-theme] a:hover { color: var(--accent-hover); }
html .q-btn, html[data-theme] .q-btn, html .q-rail .q-btn, html[data-theme] .q-rail .q-btn { color: inherit; }
.q-btn, .q-rail .q-btn { color: var(--q-ink); } .q-rail .q-btn, .q-rail .q-stamp .q-stamp-btn { color: var(--q-rail-fg); }
html .q-btn.q-primary, html[data-theme] .q-btn.q-primary { color: var(--text-inverse); }
html .q-btn.q-danger, html[data-theme] .q-btn.q-danger { color: var(--danger); }
.nav-tabs .nav-link { border-radius: 0 !important; color: var(--text-secondary); } .nav-tabs .nav-link.active { border-color: var(--q-rule) var(--q-rule) transparent !important; color: var(--q-ink) !important; border-bottom: 2px solid var(--q-ink) !important; }
.progress { height: 8px; background: var(--bg-tertiary); } .progress-bar { background: var(--accent-primary); }
.list-group-item { border-color: var(--q-rule) !important; background: var(--surface-primary) !important; }
.modal-content { border: 1px solid var(--q-ink) !important; }

/* ---------- 18. DASHBOARD / BÖLÜM BAŞLIKLARI ---------- */
.voerp-eyebrow, .voerp-dashboard-lead, .voerp-section-heading p { display: none !important; }
.voerp-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; border-bottom: 1px solid var(--q-ink); margin: 1.2rem 0 .6rem; padding-bottom: .25rem; }
.voerp-section-heading h2 { font-family: var(--q-font-narrow) !important; font-weight: 700 !important; font-size: 1rem !important; margin: 0 !important; color: var(--q-ink) !important; }
.voerp-section-heading .btn { padding: .2rem .6rem !important; font-size: .8rem !important; }
.voerp-finance-strip { display: flex; gap: .8rem; flex-wrap: wrap; }
.voerp-dashboard section { margin-bottom: 1.2rem; }
.voerp-kpi-card .bi, .voerp-mini-stat .bi { color: var(--text-muted) !important; }

/* ---------- 19. TABLO İÇİ DÜĞME VE ROZETLER ---------- */
.table .btn { padding: .1rem .45rem !important; font-size: .74rem !important; line-height: 1.4 !important; }
.table .btn .bi { display: none !important; }
.table .badge { font-size: .68rem !important; }
.table td .small { font-size: .74rem; }

/* ---------- 20. SEKME ŞERİDİ (sayfa içi bölüm gezintisi) ve PANEL BAŞLIKLARI ---------- */
.q-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--q-ink); margin: 0 0 .9rem; overflow-x: auto; }
.q-tab { padding: .45rem .8rem; color: var(--text-secondary); text-decoration: none; font-family: var(--q-font-narrow); font-weight: 500; font-size: .9rem; border-bottom: 2px solid transparent; white-space: nowrap; }
.q-tab:hover { color: var(--q-ink); background: var(--surface-hover); }
.q-tab.active { color: var(--q-ink); border-bottom-color: var(--q-ink); font-weight: 600; }
.voerp-panel-toggle, .sidebar-section-toggle.voerp-panel-toggle { width: 100%; display: flex !important; justify-content: space-between; align-items: center; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--q-ink) !important; padding: .4rem 0 !important; color: var(--q-ink) !important; font-family: var(--q-font-narrow) !important; font-weight: 700 !important; font-size: .95rem !important; box-shadow: none !important; }
.voerp-stock-panel { border: 0 !important; padding: 0 !important; margin-bottom: 1.2rem !important; }
.voerp-section-title .voerp-nav-icon { display: none !important; }
.voerp-panel-count { font-family: var(--q-font-mono) !important; font-size: .72rem !important; }

/* ---------- 21. RAY RİTMİ: üst düzey satırlar tek boy, alt satırlar tek (daha küçük) boy ---------- */
html aside.sidebar.q-rail a.q-nav:not(.q-sub),
html aside.sidebar.q-rail details.q-sec > summary {
  display: flex !important; align-items: center; gap: 0; min-height: 2.1rem; padding: 0 .95rem !important; margin: 0 !important;
  font-family: var(--q-font-narrow) !important; font-size: .92rem !important; font-weight: 500 !important; line-height: 1.2; }
html aside.sidebar.q-rail details.q-sec { margin: 0 !important; padding: 0 !important; }
html aside.sidebar.q-rail details.q-sec > summary::after { margin-left: auto; font-size: .85rem; }
html aside.sidebar.q-rail a.q-nav.q-sub {
  display: flex !important; align-items: center; min-height: 1.75rem; padding: 0 .95rem 0 2.35rem !important; margin: 0 !important;
  font-family: var(--q-font) !important; font-size: .8rem !important; font-weight: 400 !important; line-height: 1.2; }
html aside.sidebar.q-rail a.q-nav.q-sub .q-ico { font-size: .8rem; width: 1rem; flex-basis: 1rem; margin-right: .4rem; }
html aside.sidebar.q-rail .q-grp { min-height: 1.6rem; display: flex; align-items: flex-end; padding: 0 .95rem .15rem !important; margin-top: .45rem; }
html aside.sidebar.q-rail details.q-sec[open] { padding-bottom: .15rem !important; }

/* ---------- 22. GÖSTERGE IZGARASI (dashboard) — tek tip kutu ---------- */
.q-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .7rem; margin: .9rem 0 1.2rem; }
.q-kpi { display: block; border: 1px solid var(--q-rule); background: var(--surface-primary); padding: .6rem .8rem .55rem; color: var(--text-primary); text-decoration: none; min-width: 0; }
a.q-kpi:hover { border-color: var(--q-ink); color: var(--text-primary); }
.q-kpi .q-kl { font-family: var(--q-font-narrow); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-kpi .q-kv { display: flex; align-items: baseline; gap: .35rem; margin-top: .2rem; font-family: var(--q-font-mono); font-variant-numeric: tabular-nums; font-weight: 600; font-size: clamp(1rem, 1.15vw + .5rem, 1.3rem); line-height: 1.2; white-space: nowrap; min-width: 0; }
.q-kpi .q-kv span { overflow: hidden; text-overflow: clip; }
.q-kpi .q-kv small { font-size: .68rem; font-weight: 500; color: var(--text-muted); font-family: var(--q-font-narrow); letter-spacing: .04em; }
.q-kpi .q-kv.q-neg { color: var(--danger); }
.q-kpi .q-ks { margin-top: .25rem; font-size: .76rem; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-kpi.q-kpi-bad { border-left: 3px solid var(--q-sinyal); } .q-kpi.q-kpi-warn { border-left: 3px solid var(--warning); }

/* ---------- 23. BAŞLANGIÇ: modül kutuları ---------- */
.q-kpis-3 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.q-modules { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: .8rem; margin-top: .4rem; }
.q-module { position: relative; border: 1px solid var(--q-rule); background: var(--surface-primary); padding: .9rem 1rem .9rem 3.4rem; min-height: 6.2rem; margin: 0; }
.q-module:hover { border-color: var(--q-ink); }
.q-module .q-mi { position: absolute; left: 1rem; top: .95rem; font-size: 1.45rem; line-height: 1; color: var(--accent-primary); }
.q-module h2 { font-family: var(--q-font-narrow); font-weight: 700; font-size: 1.1rem; margin: 0 0 .35rem; border: 0; padding: 0; }
.q-module h2 a { color: var(--q-ink); text-decoration: none; }
.q-module h2 a:hover { text-decoration: underline; }
.q-module .q-ml { display: flex; flex-wrap: wrap; gap: .2rem .9rem; font-size: .84rem; }
.q-module .q-ml a { color: var(--text-secondary); text-decoration: none; white-space: nowrap; }
.q-module .q-ml a::before { content: "›"; color: var(--text-muted); margin-right: .3rem; }
.q-module .q-ml a:hover { color: var(--accent-primary); text-decoration: underline; }
body kbd { font-family: var(--q-font-mono); font-size: .72em; border: 1px solid var(--q-rule-strong); padding: 0 .3rem; color: var(--text-secondary); background: var(--surface-primary); border-radius: 0; }

/* ---------- 24. BAKİYE ŞERİDİ: eş ölçü ---------- */
.q-bal { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, max-content)); gap: .4rem 2.2rem; align-items: start; }
.q-bal > div { display: grid; grid-template-rows: 1rem auto 1.1rem; min-width: 0; }
.q-bal .q-l { font-size: .68rem !important; line-height: 1rem; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); font-family: var(--q-font-narrow); white-space: nowrap; }
.q-bal .q-v { font-family: var(--q-font-mono) !important; font-size: 1.3rem !important; font-weight: 600 !important; line-height: 1.35 !important; font-variant-numeric: tabular-nums; white-space: nowrap; display: flex; align-items: baseline; gap: .35rem; }
.q-bal .q-v small { font-size: .68rem; font-weight: 500; font-family: var(--q-font-narrow); letter-spacing: .04em; color: var(--text-muted); }
.q-bal .q-v.q-neg { color: var(--danger); }
.q-bal .q-s { font-size: .76rem !important; line-height: 1.1rem; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-bal > div:first-child { padding-left: .6rem; border-left: 3px solid var(--q-ink); }
.q-bal > div:first-child .q-v.q-neg + .q-s, .q-bal > div:first-child .q-v { }

/* ---------- 25. GERİ DÜĞMESİ (üst şerit) ---------- */
.q-back { display: inline-flex; align-items: center; gap: .3rem; margin-right: .8rem; padding: .1rem .5rem; border: 1px solid var(--q-rule-strong); background: var(--surface-primary); color: var(--text-secondary); font: inherit; font-size: .76rem; line-height: 1.4; cursor: pointer; }
.q-back:hover { border-color: var(--q-ink); color: var(--q-ink); }
.q-back .bi { font-size: .85rem; }
@media (max-width: 767.98px) { .q-back span { display: none; } .q-back { padding: .1rem .4rem; } }
.q-module h2.h5 { font-family: var(--q-font-narrow) !important; font-weight: 700 !important; font-size: 1.1rem !important; margin: 0 0 .35rem !important; border: 0 !important; padding: 0 !important; display: flex; align-items: center; gap: .4rem; color: var(--q-ink) !important; }
.q-module h2 .q-cnt { font-family: var(--q-font-mono); font-size: .72rem; border: 1px solid var(--warning); color: var(--warning); padding: 0 .3rem; font-weight: 500; }
.q-module .q-notes { margin: .45rem 0 0; padding-left: 1rem; font-size: .8rem; color: var(--text-secondary); }
.q-head .q-search { font: inherit; font-size: .84rem; padding: .3rem .5rem; border: 1px solid var(--q-rule-strong); background: var(--surface-secondary); color: var(--text-muted); min-width: 200px; }
.q-head .q-search:disabled { cursor: not-allowed; }

/* §26 tek yazı tipi: rakamlar ve tutarlar aynı ailede, sütun hizası için tabular rakam */
html, body, .q-body, .q-rail, input, select, textarea, button, kbd, code, .q-kbd, .q-mizan, .q-bal, .q-kpi, .q-ledger, .q-vade { font-variant-numeric: tabular-nums lining-nums; }
body, .q-body { font-family: var(--q-font) !important; }
kbd, .q-kbd kbd { font-family: var(--q-font) !important; font-weight: 500; }
/* §27 genel bakış hızlı işlemler: başlık eylemleriyle aynı düğme ölçüsü, sola yaslı */
.q-act.q-quick { justify-content: flex-start; margin: .2rem 0 .4rem; }
/* §28 aranabilir seçim kutusu (qumanda-combo.js) */
.q-combo { position: relative; }
.q-combo .q-combo-native { position: absolute !important; opacity: 0; width: 1px; height: 1px; pointer-events: none; left: 0; bottom: 0; margin: 0; }
.q-combo .q-combo-in { padding-right: 1.6rem; }
.q-combo .q-combo-caret { position: absolute; right: .55rem; top: 50%; transform: translateY(-60%); color: var(--text-muted); cursor: pointer; line-height: 1; font-size: 1rem; }
.q-combo-list { position: absolute; z-index: 2000; margin: 0; padding: 0; list-style: none; max-height: 16rem; overflow-y: auto; background: var(--surface-primary); border: 1px solid var(--q-ink); box-shadow: none; font-family: var(--q-font); }
.q-combo-list li { padding: .3rem .6rem; font-size: .88rem; cursor: pointer; border-top: 1px solid var(--q-rule); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-combo-list li.q-hi, .q-combo-list li:hover { background: var(--accent-soft); color: var(--q-ink); }
.q-combo-list li[aria-selected="true"]::before { content: "✓ "; color: var(--accent-primary); }
.q-combo-list li.q-combo-empty { color: var(--text-muted); cursor: default; }
/* §29 ikon kutuları (5 Kasım, operatör): renkli kare ikonlar yuvarlak köşeli kutuda — başlangıç modülleri, panel ikonları, hızlı eylemler */
.q-module .q-mi { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; left: .85rem; top: .8rem; font-size: 1.1rem; color: var(--accent-primary); background: var(--accent-soft); border-radius: .5rem; }
.q-module { padding-left: 3.6rem; }
.voerp-panel-icon, .voerp-kpi-icon, .voerp-mini-icon, .voerp-readiness-item-icon { display: inline-flex !important; align-items: center; justify-content: center; width: 2.1rem !important; height: 2.1rem !important; color: var(--accent-primary) !important; background: var(--accent-soft) !important; border-radius: .5rem !important; font-size: 1rem; }
.q-ico { border-radius: .4rem; }
/* §30 dar ekran menü düğmesi: eski tema beyaz ikon (koyu ray varsayımı) → açık zeminde görünmüyordu (5 Kasım) */
.voerp-mobile-menu-button, html[data-theme] .voerp-mobile-menu-button {
  color: var(--q-ink) !important; background: var(--surface-primary) !important; border: 1px solid var(--q-ink) !important; border-radius: 0 !important;
  width: 2.25rem !important; height: 2.25rem !important; top: .3rem !important; left: .8rem !important; box-shadow: none !important; }
.voerp-mobile-menu-button .bi { color: var(--q-ink) !important; font-size: 1.15rem !important; }
.voerp-mobile-menu-button:hover, .voerp-mobile-menu-button:focus-visible { background: var(--accent-soft) !important; outline: 2px solid var(--accent-primary); outline-offset: 1px; }
body.voerp-sidebar-open .voerp-mobile-menu-button { background: var(--q-ink) !important; }
body.voerp-sidebar-open .voerp-mobile-menu-button .bi { color: var(--text-inverse) !important; }
@media (max-width: 991.98px) { body.voerp-sidebar-open .q-rail .q-wm { padding-left: 3.5rem; } } /* açıkken X düğmesi damgaya binmesin */
/* §31 dar ekran: geri düğmesi menü düğmesinin sağında, aynı satırda; çakışma yok (5 Kasım; eşik 991.98, 8 Kasım) */
@media (max-width: 991.98px) {
  .q-topline { padding-left: 3.9rem; }
  .q-topline .q-back { margin-left: 0; }
  .voerp-mobile-menu-button, html[data-theme] .voerp-mobile-menu-button { top: .3rem !important; left: .8rem !important; }
}
/* §32 şirket seçici (5 Kasım): damga içinde görünür düğme + sade liste */
.q-stamp .q-stamp-sw { display: block; margin-top: .4rem; }
.q-stamp .q-stamp-btn { font-size: .78rem; padding: .22rem .55rem; width: 100%; justify-content: center; }
.q-stamp .dropdown-menu { border: 1px solid var(--q-ink); border-radius: 0; padding: 0; min-width: 100%; }
.q-stamp .dropdown-item { font-family: var(--q-font); font-size: .84rem; padding: .4rem .7rem; border-top: 1px solid var(--q-rule); }
.q-stamp .dropdown-item:first-child { border-top: 0; }
.q-stamp .dropdown-item:hover { background: var(--accent-soft); color: var(--q-ink); }
.q-stamp .dropdown-item.active { background: var(--q-ink); color: var(--text-inverse); }
/* §33 firma seçim ekranı */
.q-pick .q-pick-item { display: block; text-decoration: none; color: var(--q-ink); }
.q-pick .q-pick-item:hover { border-color: var(--q-ink); background: var(--accent-soft); }
.q-pick .q-pick-item:focus-visible { outline: 2px solid var(--accent-primary); outline-offset: 2px; }
.q-pick .q-pick-go { color: var(--accent-primary); font-weight: 600; }
.q-note { border: 1px solid var(--q-rule-strong); border-left: 4px solid var(--q-ink); padding: .7rem .9rem; font-size: .9rem; background: var(--surface-primary); }
.q-note-warn { border-left-color: var(--warning); }
/* §34 Kimlik v1.0 (6 Kasım 2026): köşe dili ve ray düğmeleri */
.q-btn, .q-search, .q-head .q-search, .q-chip, .q-back, .q-stamp, .q-note, .q-combo-list, .q-stamp .dropdown-menu, .q-theme .voerp-theme-option, .voerp-mobile-menu-button, html[data-theme] .voerp-mobile-menu-button, body kbd, .q-ledger .q-st { border-radius: var(--q-radius-s) !important; }
.q-kpi, .q-module, .card, .q-pick .q-pick-item { border-radius: var(--q-radius-m); }
.q-combo-list { overflow: hidden auto; }   /* 7 Kasım: yatay gizli, dikey kaydırılabilir (operatör: seçenekler aşağı kaymıyordu) */
.q-rail .q-btn, .q-rail .q-stamp .q-stamp-btn { border-color: var(--q-rail-muted); background: transparent; color: var(--q-rail-fg); }
.q-rail .q-btn:hover, .q-rail .q-stamp .q-stamp-btn:hover { background: var(--q-rail-hover); color: var(--q-rail-fg); }
.q-rail .q-stamp .dropdown-menu { background: var(--surface-primary); }
.q-rail-foot .btn:hover, .q-topline .q-crumb a:hover { color: inherit; }
/* eski tema `html[data-theme] a` (0,1,1) kuralını geçmek için aynı özgüllük */
html a, html[data-theme] a { color: var(--accent-primary); }
html a:hover, html[data-theme] a:hover { color: var(--accent-hover); }
html .q-btn, html[data-theme] .q-btn, html .q-rail .q-btn, html[data-theme] .q-rail .q-btn { color: inherit; }
.q-btn, .q-rail .q-btn { color: var(--q-ink); } .q-rail .q-btn, .q-rail .q-stamp .q-stamp-btn { color: var(--q-rail-fg); }
html .q-btn.q-primary, html[data-theme] .q-btn.q-primary { color: var(--text-inverse); }
html .q-btn.q-danger, html[data-theme] .q-btn.q-danger { color: var(--danger); }

/* ============================================================================
   §35 Kimlik v1.0 — ESKİ TEMA (voerp-theme / voerp-theme-system / Bootstrap) TOKENLARI
   7 Kasım 2026, operatör: "tüm platform bu kimliğe bürünecek". Eski temanın 196 tokenı ve
   voerp-theme.css ilkelleri burada kimlik paletine bağlanır; mavi/yeşil/sarı hiçbir yerde kalmaz.
   Sıra: bu blok dosyanın SONUNDA olduğu için aynı özgüllükteki (html[data-theme]) eski tanımları geçer.
   ============================================================================ */
:root, html[data-theme="light"] {
  /* ilkel paletler → kimlik */
  --palette-neutral-0: #FFFFFF; --palette-neutral-25: #F7F5F0; --palette-neutral-50: #F7F5F0; --palette-neutral-100: var(--q-kagit);
  --palette-neutral-200: #ECE9E2; --palette-neutral-300: var(--q-cizgi); --palette-neutral-400: var(--q-notr); --palette-neutral-500: var(--q-notr-metin);
  --palette-neutral-700: #3B3835; --palette-neutral-900: var(--q-karbon); --palette-slate-950: var(--q-karbon);
  --palette-blue-50: var(--q-sinyal-soft); --palette-blue-500: var(--q-sinyal); --palette-blue-600: var(--q-sinyal-dark); --palette-blue-700: #9A2410;
  --palette-red-50: var(--q-sinyal-soft); --palette-red-600: var(--q-sinyal-dark); --palette-red-700: #9A2410;
  --palette-green-50: #E9E6DF; --palette-green-700: var(--q-cizgi-dark);
  --palette-amber-50: #ECE9E2; --palette-amber-700: var(--q-notr-metin);
  --palette-cyan-50: #E9E6DF; --palette-cyan-700: var(--q-cizgi-dark);
  --voerp-primary-50: #FFF3EF; --voerp-primary-100: var(--q-sinyal-soft); --voerp-primary-500: var(--q-sinyal); --voerp-primary-600: var(--q-sinyal-dark);
  --voerp-primary-700: #9A2410; --voerp-primary-800: #7E1D0D; --voerp-primary-900: #661708;
  --voerp-navy-700: var(--q-cizgi-dark); --voerp-navy-800: var(--q-karbon-2); --voerp-navy-900: var(--q-karbon); --voerp-navy-950: var(--q-karbon);
  --voerp-green-100: #E9E6DF; --voerp-green-600: var(--q-cizgi-dark); --voerp-green-700: var(--q-karbon);
  --voerp-teal-100: #E9E6DF; --voerp-teal-600: var(--q-cizgi-dark); --voerp-teal-700: var(--q-karbon);
  --voerp-amber-100: #ECE9E2; --voerp-amber-600: var(--q-notr-metin); --voerp-amber-700: #3B3835;
  --voerp-red-100: var(--q-sinyal-soft); --voerp-red-600: var(--q-sinyal-dark); --voerp-red-700: #9A2410;
  --voerp-bg: #F4F3F0; --voerp-bg-soft: #FAF9F7; --voerp-surface: #FFFFFF; --voerp-surface-soft: #F7F5F0;
  --voerp-border: var(--q-cizgi); --voerp-border-strong: #C4C1B6; --voerp-text: var(--q-karbon); --voerp-text-secondary: #3B3835;
  --voerp-muted: var(--q-notr-metin); --voerp-subtle: var(--q-notr);
  --voerp-radius-xs: var(--q-radius-s); --voerp-radius-sm: var(--q-radius-s); --voerp-radius: var(--q-radius-m); --voerp-radius-lg: var(--q-radius-l); --voerp-radius-xl: var(--q-radius-l);
  --voerp-shadow: none; --voerp-shadow-lg: none; --voerp-shadow-sm: none; --voerp-shadow-xs: none;
  /* yüzeyler */
  --surface-page: #F4F3F0; --surface-base: #FFFFFF; --surface-subtle: #F7F5F0; --surface-raised: #FFFFFF; --surface-overlay: #FFFFFF;
  --surface-input: #FFFFFF; --surface-readonly: #F7F5F0; --surface-disabled: #ECE9E2; --surface-selected: var(--q-sinyal-soft); --surface-sidebar: var(--q-petrol);
  --card-bg: #FFFFFF; --card-header-bg: #F7F5F0; --dropdown-bg: #FFFFFF; --modal-bg: #FFFFFF; --navbar-bg: #FFFFFF; --navbar-border: var(--q-cizgi);
  --modal-backdrop-color: rgba(20, 19, 18, .55); --tooltip-bg: var(--q-karbon);
  /* içerik */
  --content-primary: var(--q-karbon); --content-secondary: #3B3835; --content-muted: var(--q-notr-metin); --content-disabled: var(--q-notr);
  --content-inverse: var(--q-kagit); --content-link: var(--q-sinyal-dark); --content-link-hover: #9A2410;
  /* kenarlık ve odak */
  --border-default: var(--q-cizgi); --border-subtle: #ECE9E2; --border-disabled: #ECE9E2; --border-focus: var(--q-sinyal);
  --focus-ring: rgba(230, 58, 27, .22); --focus-ring-color: rgba(230, 58, 27, .40);
  /* denetimler */
  --control-primary-bg: var(--q-sinyal); --control-primary-fg: #FFFFFF; --control-primary-hover-bg: var(--q-sinyal-dark); --control-primary-active-bg: #9A2410;
  --control-danger-bg: var(--q-sinyal-dark); --control-danger-fg: #FFFFFF; --control-danger-hover-bg: #9A2410;
  --control-disabled-bg: #ECE9E2; --control-disabled-fg: var(--q-notr);
  /* geri bildirim: sessiz; yalnız tehlike Sinyal */
  --feedback-neutral-bg: #F7F5F0; --feedback-neutral-border: var(--q-cizgi); --feedback-neutral-fg: #3B3835;
  --feedback-success-bg: #E9E6DF; --feedback-success-border: var(--q-cizgi); --feedback-success-fg: var(--q-cizgi-dark);
  --feedback-info-bg: var(--q-sinyal-soft); --feedback-info-border: #F2B8A9; --feedback-info-fg: var(--q-sinyal-dark);
  --feedback-warning-bg: #FFF3EF; --feedback-warning-border: #F2B8A9; --feedback-warning-fg: var(--q-sinyal-dark);
  --feedback-danger-bg: var(--q-sinyal-soft); --feedback-danger-border: #F2B8A9; --feedback-danger-fg: var(--q-sinyal-dark);
  /* tablo */
  --table-bg: #FFFFFF; --table-border: var(--q-cizgi); --table-border-color: var(--q-cizgi); --table-header-bg: #F7F5F0; --table-row-bg: #FFFFFF; --table-row-alt-bg: #FBFAF7;
  --table-row-hover: #F7F5F0; --table-row-hover-bg: #F3F0EA; --table-row-selected: var(--q-sinyal-soft); --table-row-selected-bg: var(--q-sinyal-soft);
  /* gölge yok, kaydırma çubuğu nötr */
  --shadow-card: none; --shadow-raised: none; --shadow-soft: none; --shadow-overlay: 0 12px 32px rgba(20, 19, 18, .16); --shadow-color: rgba(20, 19, 18, .08);
  --scrollbar-thumb: var(--q-cizgi); --scrollbar-hover: var(--q-notr); --scrollbar-track: var(--q-kagit);
  /* eski kenar çubuğu tokenları (ray) */
  --sidebar-bg: var(--q-petrol); --sidebar-surface: var(--q-petrol); --sidebar-surface-hover: var(--q-petrol-hover); --sidebar-surface-active: var(--q-sinyal);
  --sidebar-hover: var(--q-petrol-hover); --sidebar-active: var(--q-sinyal); --sidebar-border: rgba(255,255,255,.16); --sidebar-border-color: rgba(255,255,255,.16);
  --sidebar-text: #F3F0EA; --sidebar-content: #F3F0EA; --sidebar-muted: #B9CDD2; --sidebar-content-muted: #B9CDD2;
  /* Bootstrap köprüsü */
  --bs-body-bg: #F4F3F0; --bs-body-bg-rgb: 244, 243, 240; --bs-body-color: var(--q-karbon); --bs-body-color-rgb: 20, 19, 18;
  --bs-emphasis-color: var(--q-karbon); --bs-heading-color: var(--q-karbon); --bs-border-color: var(--q-cizgi); --bs-border-color-translucent: #ECE9E2;
  --bs-link-color: var(--q-sinyal-dark); --bs-link-hover-color: #9A2410; --bs-link-color-rgb: 184, 43, 18; --bs-link-hover-color-rgb: 154, 36, 16;
  --bs-primary: var(--q-sinyal-dark); --bs-primary-rgb: 184, 43, 18; --bs-secondary: var(--q-notr-metin); --bs-secondary-rgb: 107, 103, 96;
  --bs-success: var(--q-cizgi-dark); --bs-success-rgb: 46, 43, 40; --bs-info: var(--q-sinyal-dark); --bs-info-rgb: 184, 43, 18;
  --bs-warning: var(--q-sinyal-dark); --bs-warning-rgb: 184, 43, 18; --bs-danger: var(--q-sinyal-dark); --bs-danger-rgb: 184, 43, 18;
  --bs-light: var(--q-kagit); --bs-light-rgb: 243, 240, 234; --bs-dark: var(--q-karbon); --bs-dark-rgb: 20, 19, 18;
  --bs-secondary-bg: #F7F5F0; --bs-tertiary-bg: #ECE9E2; --bs-secondary-color: var(--q-notr-metin); --bs-tertiary-color: var(--q-notr);
  --bs-focus-ring-color: rgba(230, 58, 27, .40); --bs-form-control-disabled-bg: #ECE9E2; --bs-tooltip-bg: var(--q-karbon); --bs-tooltip-color: var(--q-kagit);
  --bs-table-bg: #FFFFFF; --bs-table-border-color: var(--q-cizgi); --bs-table-color: var(--q-karbon); --bs-table-hover-bg: #F7F5F0; --bs-table-hover-color: var(--q-karbon);
  --bs-table-striped-bg: #FBFAF7; --bs-table-striped-color: var(--q-karbon);
  --bs-font-sans-serif: var(--q-font); --bs-body-font-family: var(--q-font);
  --bs-border-radius: var(--q-radius-s); --bs-border-radius-sm: var(--q-radius-s); --bs-border-radius-lg: var(--q-radius-m); --bs-border-radius-xl: var(--q-radius-l); --bs-border-radius-pill: 999px;
}
html[data-theme="dark"] {
  --palette-neutral-0: var(--q-karbon-2); --palette-neutral-25: #242220; --palette-neutral-50: #242220; --palette-neutral-100: #2A2724;
  --palette-neutral-200: var(--q-cizgi-dark); --palette-neutral-300: #3A3733; --palette-neutral-400: var(--q-notr-metin); --palette-neutral-500: var(--q-notr-2);
  --palette-neutral-700: var(--q-cizgi); --palette-neutral-900: var(--q-kagit); --palette-slate-950: var(--q-karbon);
  --palette-blue-50: #3A1D16; --palette-blue-500: #F0725A; --palette-blue-600: #F0725A; --palette-blue-700: #F58E7A;
  --palette-red-50: #3A1D16; --palette-red-600: #F0725A; --palette-red-700: #F58E7A;
  --palette-green-50: #2A2724; --palette-green-700: var(--q-cizgi); --palette-amber-50: #2A2724; --palette-amber-700: var(--q-notr-2);
  --palette-cyan-50: #2A2724; --palette-cyan-700: var(--q-cizgi);
  --voerp-primary-50: #2A1A15; --voerp-primary-100: #3A1D16; --voerp-primary-500: #F0725A; --voerp-primary-600: #F0725A;
  --voerp-primary-700: #F58E7A; --voerp-primary-800: #F9A896; --voerp-primary-900: #FCC3B6;
  --voerp-navy-700: var(--q-cizgi-dark); --voerp-navy-800: var(--q-karbon-2); --voerp-navy-900: var(--q-karbon); --voerp-navy-950: var(--q-karbon);
  --voerp-green-100: #2A2724; --voerp-green-600: var(--q-cizgi); --voerp-green-700: var(--q-kagit);
  --voerp-teal-100: #2A2724; --voerp-teal-600: var(--q-cizgi); --voerp-teal-700: var(--q-kagit);
  --voerp-amber-100: #2A2724; --voerp-amber-600: var(--q-notr-2); --voerp-amber-700: var(--q-cizgi);
  --voerp-red-100: #3A1D16; --voerp-red-600: #F0725A; --voerp-red-700: #F58E7A;
  --voerp-bg: var(--q-karbon); --voerp-bg-soft: #1A1816; --voerp-surface: var(--q-karbon-2); --voerp-surface-soft: #242220;
  --voerp-border: var(--q-cizgi-dark); --voerp-border-strong: #3A3733; --voerp-text: var(--q-kagit); --voerp-text-secondary: var(--q-cizgi);
  --voerp-muted: var(--q-notr-2); --voerp-subtle: var(--q-notr-metin);
  --surface-page: var(--q-karbon); --surface-base: var(--q-karbon-2); --surface-subtle: #242220; --surface-raised: #242220; --surface-overlay: #242220;
  --surface-input: var(--q-karbon-2); --surface-readonly: #242220; --surface-disabled: #2A2724; --surface-selected: #3A1D16; --surface-sidebar: var(--q-petrol-2);
  --card-bg: var(--q-karbon-2); --card-header-bg: #242220; --dropdown-bg: #242220; --modal-bg: var(--q-karbon-2); --navbar-bg: var(--q-karbon-2); --navbar-border: var(--q-cizgi-dark);
  --modal-backdrop-color: rgba(0, 0, 0, .7); --tooltip-bg: var(--q-kagit);
  --content-primary: var(--q-kagit); --content-secondary: var(--q-cizgi); --content-muted: var(--q-notr-2); --content-disabled: var(--q-notr-metin);
  --content-inverse: var(--q-karbon); --content-link: #F0725A; --content-link-hover: #F58E7A;
  --border-default: var(--q-cizgi-dark); --border-subtle: #242220; --border-disabled: #2A2724; --border-focus: #F0725A;
  --focus-ring: rgba(240, 114, 90, .25); --focus-ring-color: rgba(240, 114, 90, .45);
  --control-primary-bg: var(--q-sinyal); --control-primary-fg: #FFFFFF; --control-primary-hover-bg: #F0725A; --control-primary-active-bg: var(--q-sinyal-dark);
  --control-danger-bg: #F0725A; --control-danger-fg: var(--q-karbon); --control-danger-hover-bg: #F58E7A;
  --control-disabled-bg: #2A2724; --control-disabled-fg: var(--q-notr-metin);
  --feedback-neutral-bg: #242220; --feedback-neutral-border: var(--q-cizgi-dark); --feedback-neutral-fg: var(--q-cizgi);
  --feedback-success-bg: #2A2724; --feedback-success-border: var(--q-cizgi-dark); --feedback-success-fg: var(--q-cizgi);
  --feedback-info-bg: #3A1D16; --feedback-info-border: #6B2A1C; --feedback-info-fg: #F0725A;
  --feedback-warning-bg: #3A1D16; --feedback-warning-border: #6B2A1C; --feedback-warning-fg: #F0725A;
  --feedback-danger-bg: #3A1D16; --feedback-danger-border: #6B2A1C; --feedback-danger-fg: #F0725A;
  --table-bg: var(--q-karbon-2); --table-border: var(--q-cizgi-dark); --table-border-color: var(--q-cizgi-dark); --table-header-bg: #242220; --table-row-bg: var(--q-karbon-2); --table-row-alt-bg: #222120;
  --table-row-hover: #2A2724; --table-row-hover-bg: #2A2724; --table-row-selected: #3A1D16; --table-row-selected-bg: #3A1D16;
  --shadow-card: none; --shadow-raised: none; --shadow-soft: none; --shadow-overlay: 0 12px 32px rgba(0, 0, 0, .5); --shadow-color: rgba(0, 0, 0, .3);
  --scrollbar-thumb: var(--q-cizgi-dark); --scrollbar-hover: var(--q-notr-metin); --scrollbar-track: var(--q-karbon);
  --sidebar-bg: var(--q-karbon-2); --sidebar-surface: var(--q-karbon-2); --sidebar-surface-hover: #2A2724; --sidebar-surface-active: var(--q-sinyal);
  --sidebar-hover: #2A2724; --sidebar-active: var(--q-sinyal); --sidebar-border: #3A3733; --sidebar-border-color: #3A3733;
  --sidebar-text: var(--q-kagit); --sidebar-content: var(--q-kagit); --sidebar-muted: var(--q-notr-2); --sidebar-content-muted: var(--q-notr-2);
  --bs-body-bg: var(--q-karbon); --bs-body-bg-rgb: 20, 19, 18; --bs-body-color: var(--q-kagit); --bs-body-color-rgb: 243, 240, 234;
  --bs-emphasis-color: var(--q-kagit); --bs-heading-color: var(--q-kagit); --bs-border-color: var(--q-cizgi-dark); --bs-border-color-translucent: #242220;
  --bs-link-color: #F0725A; --bs-link-hover-color: #F58E7A; --bs-link-color-rgb: 240, 114, 90; --bs-link-hover-color-rgb: 245, 142, 122;
  --bs-primary: #F0725A; --bs-primary-rgb: 240, 114, 90; --bs-secondary: var(--q-notr-2); --bs-secondary-rgb: 184, 180, 172;
  --bs-success: var(--q-cizgi); --bs-success-rgb: 211, 209, 199; --bs-info: #F0725A; --bs-info-rgb: 240, 114, 90;
  --bs-warning: #F0725A; --bs-warning-rgb: 240, 114, 90; --bs-danger: #F0725A; --bs-danger-rgb: 240, 114, 90;
  --bs-light: #242220; --bs-light-rgb: 36, 34, 32; --bs-dark: var(--q-kagit); --bs-dark-rgb: 243, 240, 234;
  --bs-secondary-bg: #242220; --bs-tertiary-bg: #2A2724; --bs-secondary-color: var(--q-notr-2); --bs-tertiary-color: var(--q-notr-metin);
  --bs-focus-ring-color: rgba(240, 114, 90, .45); --bs-form-control-disabled-bg: #2A2724; --bs-tooltip-bg: var(--q-kagit); --bs-tooltip-color: var(--q-karbon);
  --bs-table-bg: var(--q-karbon-2); --bs-table-border-color: var(--q-cizgi-dark); --bs-table-color: var(--q-kagit); --bs-table-hover-bg: #2A2724; --bs-table-hover-color: var(--q-kagit);
  --bs-table-striped-bg: #222120; --bs-table-striped-color: var(--q-kagit);
}
/* zemin beyaz (7 Kasım, operatör); kartlar beyaz + Çizgi kenarlık; şeritler Kağıt */
.q-main { background: var(--bg-primary); }
.q-topline { background: var(--bg-primary); }
.q-kpi, .q-module, .card, .q-note, .q-combo-list { background: var(--surface-primary); }
/* tipografi: kılavuz §04 — başlıklar sıkı aralık, ağır kesim; etiketler geniş aralık */
h1, h2, h3, .h1, .h2, .h3, .q-head h1 { letter-spacing: -.02em; }
.q-head h1 { font-weight: 700; }
h4, h5, h6, .h4, .h5, .h6 { letter-spacing: -.01em; }
.q-kpi .q-kl, .q-bal .q-l, .q-rail .q-grp, .table thead th, th { letter-spacing: .08em; font-weight: 600; }
/* §36 kılavuz §08 "Tehlikeli aksiyon: ikincil + onay diyaloğu; Sinyal yok" — danger düğmeleri ikincil görünüm (7 Kasım) */
html .btn-danger, html[data-theme] .btn-danger, html .btn-outline-danger, html[data-theme] .btn-outline-danger, .q-btn.q-danger {
  background: var(--surface-primary) !important; border-color: var(--q-ink) !important; color: var(--q-ink) !important; }
html .btn-danger:hover, html[data-theme] .btn-danger:hover, html .btn-outline-danger:hover, html[data-theme] .btn-outline-danger:hover, .q-btn.q-danger:hover {
  background: var(--accent-soft) !important; color: var(--q-ink) !important; }
/* §37 Sinyal payı (7 Kasım, operatör): birincil düğme, başlık çizgisi, sekme, ikon kutusu, aktif seçim Sinyal; logo beyaz plaket üzerinde */
html .btn-primary, html[data-theme] .btn-primary, .q-btn.q-primary, html .q-btn.q-primary, html[data-theme] .q-btn.q-primary {
  background: var(--q-primary-bg) !important; border-color: var(--q-primary-bg) !important; color: var(--q-primary-fg) !important; }
html .btn-primary:hover, html[data-theme] .btn-primary:hover, .q-btn.q-primary:hover, html .q-btn.q-primary:hover, html[data-theme] .q-btn.q-primary:hover {
  background: var(--q-primary-hover) !important; border-color: var(--q-primary-hover) !important; color: var(--q-primary-fg) !important; }
html .btn-success, html[data-theme] .btn-success { background: var(--q-primary-bg) !important; border-color: var(--q-primary-bg) !important; color: var(--q-primary-fg) !important; }
.q-head { border-bottom-color: var(--q-sinyal); }
.q-tabs { border-bottom-color: var(--q-sinyal); }
.q-tab.active, .q-tab[aria-current="page"] { border-bottom-color: var(--q-sinyal); color: var(--accent-primary); }
.voerp-section-heading { border-bottom-color: var(--q-sinyal); }
.q-bal > div:first-child { border-left-color: var(--q-sinyal); }
.q-note { border-left-color: var(--q-sinyal); }
.q-module .q-mi, .voerp-panel-icon, .voerp-kpi-icon, .voerp-mini-icon, .voerp-readiness-item-icon { color: var(--q-sinyal-dark) !important; background: var(--q-sinyal-soft) !important; }
.q-module:hover, a.q-kpi:hover, .q-pick .q-pick-item:hover { border-color: var(--q-sinyal); }
.q-combo-list li[aria-selected="true"]::before { color: var(--q-sinyal); }
.q-stamp .dropdown-item.active { background: var(--q-sinyal); color: #FFFFFF; }
.q-ledger tr.q-det td { border-bottom-color: var(--q-sinyal); }
.q-vade i::after, .q-ruler .q-bar2 i { background: var(--q-sinyal); }
/* ray: renkli pozitif logo doğrudan nötr zeminde (kılavuz §02 açık zemin kilidi) */
.q-rail .q-wm { margin: 0; padding: .8rem .95rem .6rem; }
.q-rail .q-wm .q-wm-l { height: 2.2rem; }
.q-rail .q-stamp { border-color: var(--q-rail-rule); }
.q-rail .q-stamp b { color: var(--q-rail-fg); }
.q-rail a.q-nav .q-ico, html aside.sidebar.q-rail a.q-nav .q-ico { color: var(--q-sinyal-dark); opacity: 1; }
html aside.sidebar.q-rail a.q-nav.active .q-ico { color: var(--q-rail-active-fg); }
.q-rail .q-grp, html aside.sidebar.q-rail .q-grp { color: var(--q-rail-muted) !important; }
.q-theme .voerp-theme-option[aria-pressed="true"] { background: transparent; color: var(--q-sinyal-dark); border-color: var(--q-sinyal); }   /* dolgu yok; aktif Sinyal çerçeve + ikon */
.q-theme .voerp-theme-option { background: transparent; }
html a.q-kpi, html[data-theme] a.q-kpi, html .q-pick .q-pick-item, html[data-theme] .q-pick .q-pick-item { color: var(--text-primary); }   /* kart bağlantıları metin renginde; turuncu yalnız vurguda */
html .q-kpi .q-kv.q-neg, html[data-theme] .q-kpi .q-kv.q-neg { color: var(--danger); }
}
/* §39 ray üst/alt yerleşimi (7 Kasım, operatör: logo ve tema ikonları oturmuyor) */
.q-rail .q-wm, html aside.sidebar.q-rail .q-wm { display: flex; justify-content: center; align-items: center; margin: 0; padding: 1rem .95rem .8rem; border-bottom: 1px solid var(--q-rail-rule); margin-bottom: .6rem; }
.q-rail .q-wm .q-wm-l { width: 100%; max-width: 168px; height: auto; display: block; }
.q-rail-foot, html aside.sidebar.q-rail .q-rail-foot { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; margin-top: 1rem; padding: .7rem .95rem .3rem; border-top: 1px solid var(--q-rail-rule); font-size: .76rem; }
.q-rail-foot form { display: inline; }
.q-theme, .q-rail-foot .q-theme { display: inline-flex; gap: .3rem; margin-left: auto; }
.q-theme .voerp-theme-option, html[data-theme] .q-theme .voerp-theme-option, .q-rail-foot .voerp-theme-option {
  min-width: 0 !important; min-height: 0 !important; width: 1.75rem !important; height: 1.75rem !important; padding: 0 !important;
  display: inline-flex !important; align-items: center; justify-content: center; border-radius: var(--q-radius-s) !important;
  border: 1px solid var(--q-rail-rule) !important; background: transparent !important; color: var(--q-rail-muted) !important; font-size: .9rem; line-height: 1; }
.q-theme .voerp-theme-option .bi { font-size: .9rem; line-height: 1; }
.q-theme .voerp-theme-option:hover, html[data-theme] .q-theme .voerp-theme-option:hover { color: var(--q-rail-fg) !important; border-color: var(--q-rail-fg) !important; }
.q-theme .voerp-theme-option[aria-pressed="true"], html[data-theme] .q-theme .voerp-theme-option[aria-pressed="true"] { color: var(--q-sinyal-dark) !important; border-color: var(--q-sinyal) !important; background: transparent !important; }
/* koyu temada negatif (Kağıt) logo, açıkta pozitif */
.q-rail .q-wm .q-wm-dark { display: none; }
html[data-theme="dark"] .q-rail .q-wm .q-wm-light { display: none; }
html[data-theme="dark"] .q-rail .q-wm .q-wm-dark { display: block; }
/* §40 defter tablosu içi eylem hücresi (Kasa yönetimi, 7 Kasım) */
.q-ledger td.q-acts-row { white-space: nowrap; text-align: right; }
.q-ledger td.q-acts-row .q-btn { padding: .12rem .5rem; font-size: .76rem; margin-left: .15rem; vertical-align: middle; }
.q-ledger td.q-acts-row form { display: inline; }
.q-ledger td[rowspan] { vertical-align: top; }
/* §41 detay sayfaları: bölüm + anahtar/değer tablosu (kasa hareketi detayı, 7 Kasım) */
.q-sec h2.h6 { font-family: var(--q-font-narrow); font-weight: 700; font-size: .95rem; margin: 0 0 .4rem; padding-bottom: .25rem; border-bottom: 1px solid var(--q-sinyal); }
.q-sec { margin-bottom: 1.1rem; }
.q-kv-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.q-kv-table td { padding: .32rem .5rem; border-bottom: 1px solid var(--q-rule); vertical-align: top; }
.q-kv-table td:first-child { width: 10rem; white-space: nowrap; }
.q-kv-table td.q-num { text-align: left; font-variant-numeric: tabular-nums; }
.q-note b { display: block; font-family: var(--q-font-narrow); font-weight: 700; }
/* §42 ticari işlemler listesi: satır içi ürün listeleri (7 Kasım) */
.q-ledger td.q-lines { white-space: normal; min-width: 200px; font-size: .8rem; }
.q-ledger td.q-lines div { margin-bottom: .12rem; }
.q-ledger td.q-lines .q-st { margin-left: 0; }
.q-ledger tfoot td { padding: .4rem .6rem; border-top: 2px solid var(--q-ink); }
nav.q-foot b { padding: 0 .3rem; color: var(--q-sinyal-dark); }
/* §43 iki tonlu beyaz ve kutu dili (7 Kasım, operatör): zemin kırık beyaz, kutular saf beyaz + ince çerçeve + hafif yuvarlak köşe + çok hafif gölge */
:root { --q-box-shadow: 0 1px 2px rgba(20, 19, 18, .04), 0 1px 1px rgba(20, 19, 18, .03); }
html[data-theme="dark"] { --q-box-shadow: none; }
.q-ledger-wrap, .q-filters, .q-mizan, .q-body section.q-sec, .q-rulers > .q-ruler, .q-form, .voerp-panel, .card, .q-kpi, .q-module, .q-note, .q-pick .q-pick-item {
  background: var(--surface-primary); border: 1px solid var(--q-rule); border-radius: var(--q-radius-m); box-shadow: var(--q-box-shadow); }
.q-ledger-wrap { overflow: hidden; overflow-x: auto; }
.q-ledger-wrap .q-ledger { font-size: .84rem; }
.q-ledger thead th { background: var(--surface-secondary); }
.q-ledger tbody tr:last-child td { border-bottom: 0; }
.q-filters { padding: .7rem .9rem; margin: .5rem 0; }
.q-mizan { padding: .5rem .9rem; margin: .6rem 0; }
.q-body section.q-sec { padding: .8rem 1rem; }
.q-sec .q-ledger-wrap { border: 0; border-radius: 0; box-shadow: none; margin: 0 -1rem -0.8rem; width: calc(100% + 2rem); }
.q-sec .q-ledger-wrap .q-ledger thead th:first-child, .q-sec .q-ledger-wrap .q-ledger tbody td:first-child { padding-left: 1rem; }
.q-rulers > .q-ruler { padding: .7rem .9rem; }
.q-bar { border-bottom: 0; }
.q-bar .q-search, .q-head .q-search { border-radius: var(--q-radius-s); background: var(--surface-primary); }
.q-head { border-bottom: 0; padding-bottom: .3rem; }
.q-head h1::after { content: ""; display: block; width: 28px; height: 3px; background: var(--q-sinyal); border-radius: 2px; margin-top: .45rem; }   /* kılavuz: vurgu çizgisi */
.q-card-head { border-bottom: 0; }
.q-card-head h1::after { content: ""; display: block; width: 28px; height: 3px; background: var(--q-sinyal); border-radius: 2px; margin-top: .45rem; }
.voerp-section-heading { border-bottom: 0; margin-top: 1.4rem; }
.q-topline { background: transparent; border-bottom: 1px solid var(--q-rule); }
.q-kpi { padding: .7rem .9rem .65rem; }
.q-module { background: var(--surface-primary); }
.q-main > .q-body { padding-bottom: 2.5rem; }
/* §44 daraltılabilir panel (stok sayfası, 7 Kasım): başlık düğmesi + kutu. Sınıf adı test sözleşmesi: class="sidebar-section-toggle voerp-panel-toggle" */
.q-panel { background: var(--surface-primary); border: 1px solid var(--q-rule); border-radius: var(--q-radius-m); box-shadow: var(--q-box-shadow); margin: .9rem 0; overflow: hidden; }
.q-panel > .voerp-panel-toggle, html[data-theme] .q-panel > .voerp-panel-toggle { display: flex; align-items: center; gap: .6rem; width: 100%; padding: .6rem .9rem; border: 0; background: var(--surface-secondary); color: var(--q-ink); font: inherit; text-align: left; cursor: pointer; }
.q-panel > .voerp-panel-toggle:hover, html[data-theme] .q-panel > .voerp-panel-toggle:hover { background: var(--surface-hover); }
.q-panel > .voerp-panel-toggle .q-panel-title , html[data-theme] .q-panel > .voerp-panel-toggle .q-panel-title { font-family: var(--q-font-narrow); font-weight: 700; font-size: .95rem; display: inline-flex; align-items: center; gap: .45rem; }
.q-panel > .voerp-panel-toggle .q-panel-title .bi , html[data-theme] .q-panel > .voerp-panel-toggle .q-panel-title .bi { color: var(--q-sinyal-dark); }
.q-panel > .voerp-panel-toggle .q-panel-title small , html[data-theme] .q-panel > .voerp-panel-toggle .q-panel-title small { font-weight: 400; color: var(--text-muted); font-size: .78rem; }
.q-panel > .voerp-panel-toggle .q-st , html[data-theme] .q-panel > .voerp-panel-toggle .q-st { margin-left: 0; }
.q-panel > .voerp-panel-toggle .q-panel-caret , html[data-theme] .q-panel > .voerp-panel-toggle .q-panel-caret { margin-left: auto; color: var(--text-muted); transition: transform .18s; }
.q-panel > .voerp-panel-toggle[aria-expanded="true"] .q-panel-caret , html[data-theme] .q-panel > .voerp-panel-toggle[aria-expanded="true"] .q-panel-caret { transform: rotate(180deg); }
.q-panel > .voerp-panel-toggle[aria-expanded="true"], html[data-theme] .q-panel > .voerp-panel-toggle[aria-expanded="true"] { border-bottom: 1px solid var(--q-rule); }
.q-panel .q-ledger-wrap { border: 0; border-radius: 0; box-shadow: none; }
.q-panel .q-bar { padding: .55rem .9rem; border-bottom: 1px solid var(--q-rule); margin: 0; }
.q-panel .q-ledger-cap { padding: .45rem .9rem; font-size: .78rem; color: var(--text-muted); background: var(--surface-secondary); border-bottom: 1px solid var(--q-rule); }
.q-panel .q-ledger-cap b { font-weight: 600; color: var(--text-secondary); }
.q-panel-foot { padding: .55rem .9rem .8rem; border-top: 1px solid var(--q-rule); }
.q-panel-foot .q-ledger-wrap { border: 1px solid var(--q-rule); border-radius: var(--q-radius-s); }
.q-bar .q-inline { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; color: var(--text-muted); margin: 0; }
.q-bar .q-inline .form-select { width: auto; min-width: 9rem; font-size: .82rem; padding-block: .25rem; }
.q-chip.q-check { cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; }
.q-chip.q-check input { margin: 0; accent-color: var(--q-sinyal); }
.q-kpi .q-ks a { color: var(--accent-primary); }
@media (prefers-reduced-motion: reduce) { .q-panel > .voerp-panel-toggle .q-panel-caret , html[data-theme] .q-panel > .voerp-panel-toggle .q-panel-caret { transition: none; } }
a.q-st { text-decoration: none; }
a.q-st:hover { background: var(--surface-active); }
.q-panel > .voerp-panel-toggle, html[data-theme] .q-panel > .voerp-panel-toggle { border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; color: var(--q-ink) !important; background: var(--surface-secondary) !important; justify-content: flex-start !important; padding: .6rem .9rem !important; }
.q-panel > .voerp-panel-toggle:hover, html[data-theme] .q-panel > .voerp-panel-toggle:hover { background: var(--surface-hover) !important; color: var(--q-ink) !important; }
.q-panel > .voerp-panel-toggle::after, html[data-theme] .q-panel > .voerp-panel-toggle::after, .q-panel > .voerp-panel-toggle::before { content: none !important; display: none !important; }   /* eski temanın kendi oku */
/* §45 genel bakış panelleri (7 Kasım): bölüm başlığı ikon + eylem, istatistik ızgarası, liste */
.q-sec h2.h6 { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.q-sec h2.h6 small { font-weight: 400; color: var(--text-muted); font-size: .76rem; }
.q-sec h2.h6 .q-sec-ico { color: var(--q-sinyal-dark); font-size: .95rem; }
.q-sec h2.h6 .q-sec-act { margin-left: auto; font-size: .76rem; padding: .1rem .5rem; }
.q-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem .9rem; }
.q-stats > div { display: flex; flex-direction: column; gap: .1rem; padding: .5rem .7rem; background: var(--surface-secondary); border-radius: var(--q-radius-s); }
.q-stats > div span { font-family: var(--q-font-narrow); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.q-stats > div b { font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.q-list { display: flex; flex-direction: column; }
.q-list-item { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .5rem .2rem; border-top: 1px solid var(--q-rule); color: var(--text-primary); text-decoration: none; }
.q-list-item:first-child { border-top: 0; }
.q-list-item:hover { background: var(--surface-hover); color: var(--text-primary); }
.q-list-main { display: flex; flex-direction: column; min-width: 0; font-weight: 500; font-size: .9rem; }
.q-list-main small { font-family: var(--q-font-mono); font-size: .72rem; color: var(--text-muted); font-weight: 400; }
.q-list-side { display: flex; flex-direction: column; align-items: flex-end; gap: .15rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.q-list-side b { font-size: .95rem; }
.q-list-side .q-st { margin-left: 0; }
.q-list .q-empty { padding: 1.2rem .5rem; }
.voerp-dashboard .row.g-3 { margin-bottom: 0; }
/* §46 ray ≥992 px'te yapışkan. 768–991 aralığında eski tema rayı ekran dışı (fixed) çekmece yapar; buradaki sticky !important onu akışta tutup
   içeriği 100vh aşağı itiyordu → ilk ekran boş, "sayfa kayıyor" (Safari, 8 Kasım). Eşik eski temanın çekmece eşiğiyle hizalandı. */
@media (min-width: 992px) { aside.sidebar.q-rail, html[data-theme] aside.sidebar.q-rail { position: sticky !important; top: 0; height: 100vh; overflow-y: auto; } }
@media (max-width: 991.98px) { .q-rail, aside.sidebar.q-rail, html[data-theme] aside.sidebar.q-rail { height: auto; } }   /* çekmece: fixed top/bottom yüksekliği verir */
/* ray bölümleri (details.q-sec) sayfa kutusu değildir — §43 çakışması (7 Kasım, operatör: "beyaz iki sekme") */
.q-rail details.q-sec, html[data-theme] aside.sidebar.q-rail details.q-sec { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
/* ray daha koyu nötr (7 Kasım, operatör: "yine çok yakın"): #D8D4CA; damga kutusu şeffaf */
.q-rail .q-stamp, html[data-theme] aside.sidebar.q-rail .q-stamp { background: rgba(255,255,255,.35); border-color: var(--q-rail-rule); }
html[data-theme="dark"] .q-rail .q-stamp { background: rgba(255,255,255,.04); }
/* 7 Kasım, operatör: tema düğmelerinin arkasındaki açık kare ve damga kutusu → kap şeffaf, damga dolgusuz + yuvarlak köşe */
.q-theme, .voerp-theme-control, html[data-theme] .voerp-theme-control, .q-rail-foot .q-theme { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; }
.q-rail .q-stamp, html[data-theme] aside.sidebar.q-rail .q-stamp { background: transparent !important; border: 1px solid var(--q-rail-rule) !important; border-radius: var(--q-radius-m) !important; box-shadow: none !important; }
html[data-theme="dark"] .q-rail .q-stamp { background: transparent !important; }
.q-theme .voerp-theme-option, html[data-theme] .q-theme .voerp-theme-option { background: transparent !important; border-radius: var(--q-radius-s) !important; }
/* §47 petrol ray (7 Kasım): koyu zeminde negatif logo her iki temada; ikonlar açık ton, aktif Sinyal */
.q-rail .q-wm .q-wm-light { display: none; }
.q-rail .q-wm .q-wm-dark { display: block; }
.q-rail a.q-nav .q-ico, html aside.sidebar.q-rail a.q-nav .q-ico { color: #CFE0E4; opacity: 1; }
html aside.sidebar.q-rail a.q-nav.active .q-ico { color: #FFFFFF; }
.q-rail .q-grp, html aside.sidebar.q-rail .q-grp { color: var(--q-rail-muted) !important; }
.q-rail .q-stamp b { color: var(--q-rail-fg); }
.q-rail .q-stamp span { color: var(--q-rail-muted); }
.q-rail .q-btn, .q-rail .q-stamp .q-stamp-btn { border-color: var(--q-rail-rule); color: var(--q-rail-fg); background: rgba(255,255,255,.06); }
.q-rail .q-btn:hover, .q-rail .q-stamp .q-stamp-btn:hover { background: var(--q-rail-hover); color: var(--q-rail-fg); }
.q-rail-foot, html aside.sidebar.q-rail .q-rail-foot { color: var(--q-rail-muted) !important; }
.q-rail-foot .btn { color: var(--q-rail-fg) !important; }
.q-theme .voerp-theme-option, html[data-theme] .q-theme .voerp-theme-option { color: var(--q-rail-muted) !important; border-color: var(--q-rail-rule) !important; }
.q-theme .voerp-theme-option[aria-pressed="true"], html[data-theme] .q-theme .voerp-theme-option[aria-pressed="true"] { color: #FFFFFF !important; border-color: var(--q-sinyal) !important; background: var(--q-sinyal) !important; }
.q-rail .q-stamp .dropdown-menu { background: var(--surface-primary); }
@media (max-width: 991.98px) { body.voerp-sidebar-open .voerp-mobile-menu-button { background: var(--q-sinyal) !important; border-color: var(--q-sinyal) !important; } }
/* §48 sol menü daralt/genişlet (7 Kasım, operatör): mini ray yalnız ikon, tıklanabilir; tercih localStorage "q-rail"=mini */
.q-wm-row { display: flex; align-items: center; }
.q-wm-row .q-wm { flex: 1 1 auto; }
.q-rail-hide, .q-rail-expand { display: inline-flex; align-items: center; justify-content: center; width: 1.9rem; height: 1.9rem; border: 1px solid var(--q-rail-rule); border-radius: var(--q-radius-s); background: transparent; color: var(--q-rail-muted); font-size: .95rem; cursor: pointer; }
.q-rail-hide { margin-right: .7rem; }
.q-rail-hide:hover, .q-rail-expand:hover { color: var(--q-rail-fg); border-color: var(--q-rail-fg); }
.q-wm-mini { display: none; }
@media (min-width: 992px) {
  :root { --q-rail-mini-w: 3.6rem; }
  html.q-rail-mini aside.sidebar.q-rail { flex: 0 0 var(--q-rail-mini-w); width: var(--q-rail-mini-w); max-width: var(--q-rail-mini-w); overflow-x: hidden; }
  html.q-rail-mini .q-main { flex: 1 1 auto; max-width: calc(100% - var(--q-rail-mini-w)); width: calc(100% - var(--q-rail-mini-w)); }
  html.q-rail-mini .q-wm-row, html.q-rail-mini .q-rail .q-stamp, html.q-rail-mini .q-rail .q-grp, html.q-rail-mini .q-rail-foot form, html.q-rail-mini .q-rail-foot > span { display: none !important; }
  html.q-rail-mini .q-wm-mini { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: .8rem .4rem .6rem; border-bottom: 1px solid var(--q-rail-rule); margin-bottom: .5rem; }
  html.q-rail-mini .q-wm-mini img { width: 1.9rem; height: 1.9rem; display: block; }
  html.q-rail-mini .q-rail a.q-nav, html.q-rail-mini aside.sidebar.q-rail a.q-nav:not(.q-sub), html.q-rail-mini aside.sidebar.q-rail a.q-nav.q-sub,
  html.q-rail-mini .q-rail details.q-sec > summary, html.q-rail-mini aside.sidebar.q-rail details.q-sec > summary {
    justify-content: center !important; padding: 0 !important; min-height: 2.3rem !important; gap: 0 !important; margin: .1rem .4rem !important; border-radius: var(--q-radius-s); }
  html.q-rail-mini .q-rail a.q-nav span, html.q-rail-mini .q-rail a.q-nav .q-cnt, html.q-rail-mini .q-rail details.q-sec > summary span, html.q-rail-mini .q-rail details.q-sec > summary::after { display: none !important; }
  html.q-rail-mini .q-rail a.q-nav .q-ico, html.q-rail-mini aside.sidebar.q-rail a.q-nav.q-sub .q-ico, html.q-rail-mini .q-rail details.q-sec > summary .q-ico { font-size: 1.1rem; width: auto; flex-basis: auto; margin: 0; }
  html.q-rail-mini aside.sidebar.q-rail a.q-nav.q-sub { padding-left: 0 !important; opacity: .85; }
  html.q-rail-mini aside.sidebar.q-rail a.q-nav.q-sub .q-ico { font-size: .95rem; }
  html.q-rail-mini .q-rail-foot, html.q-rail-mini aside.sidebar.q-rail .q-rail-foot { padding: .6rem .3rem .3rem !important; justify-content: center; }
  html.q-rail-mini .q-theme { flex-direction: column; margin-left: 0; }
  html.q-rail-mini .q-rail .q-wm-mini .q-rail-expand { width: 1.7rem; height: 1.7rem; }
  html.q-rail-mini .q-rail a.q-nav.active { background: var(--q-rail-active-bg) !important; }
}
@media (max-width: 991.98px) { .q-rail-hide, .q-wm-mini { display: none !important; } }
/* §49 zebra satırlar (7 Kasım, operatör): listelerde çift satırlar zemin tonunda; hover ve seçili satır üstte.
   Açılır detay satırı (tr.q-det) olan tablolarda veri satırları 1,3,5… konumundadır → 4n+3 ile her ikinci veri satırı. */
.q-ledger:not(:has(tr.q-det)) tbody tr:nth-child(even) td { background: var(--bg-primary); }
.q-ledger:has(tr.q-det) tbody tr:nth-child(4n+3) td { background: var(--bg-primary); }
.q-ledger tbody tr:hover td { background: var(--surface-hover) !important; }
.q-ledger tbody tr.q-sel td, .q-ledger tbody tr:focus-within td { background: var(--surface-active) !important; }
.q-ledger tbody tr.q-det td { background: var(--surface-active) !important; }
.q-ledger tbody tr:last-child td { border-bottom: 0; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: var(--bg-primary); }
/* §50 form kalıbı ekleri (7 Kasım): kur alanı + düğme, ₺ önizleme kutusu, durum renkleri */
.q-form .q-inline-act { display: flex; gap: .4rem; align-items: stretch; }
.q-form .q-inline-act .form-control { flex: 1 1 auto; min-width: 0; }
.q-form .q-inline-act .q-btn { white-space: nowrap; }
.q-form .q-preview { display: flex; align-items: baseline; gap: .6rem; padding: .5rem .8rem; background: var(--surface-secondary); border: 1px solid var(--q-rule); border-radius: var(--q-radius-s); }
.q-form .q-preview .q-kl { font-family: var(--q-font-narrow); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.q-form .q-preview b { font-size: 1.1rem; font-variant-numeric: tabular-nums; min-height: 1.3em; }
.q-ok { color: var(--success); }
.q-form .q-fs .form-control, .q-form .q-fs .form-select { border-radius: var(--q-radius-s); }
.q-formbar { border-top: 1px solid var(--q-rule); background: var(--bg-primary); }
/* §51 fareyle sütun düzeni (qumanda-grid.js, 7 Kasım): sürükle-bırak, gizle/göster, genişlik */
.q-grid-host { position: relative; }
.q-grid-btn { position: absolute; top: .3rem; right: .35rem; width: 1.6rem; height: 1.6rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--q-rule); border-radius: var(--q-radius-s); background: var(--surface-primary); color: var(--text-muted); font-size: .85rem; cursor: pointer; z-index: 3; }
.q-grid-btn:hover { color: var(--q-sinyal-dark); border-color: var(--q-sinyal); }
.q-grid-menu { position: absolute; top: 2.1rem; right: .35rem; z-index: 20; min-width: 15rem; background: var(--surface-primary); border: 1px solid var(--q-rule-strong); border-radius: var(--q-radius-m); box-shadow: 0 10px 30px rgba(20,19,18,.14); padding: .6rem .8rem; display: flex; flex-direction: column; gap: .3rem; font-size: .84rem; }
.q-grid-menu-h { font-family: var(--q-font-narrow); font-weight: 700; margin-bottom: .2rem; }
.q-grid-menu-h small { display: block; font-weight: 400; color: var(--text-muted); font-size: .72rem; }
.q-grid-menu label { display: flex; align-items: center; gap: .45rem; cursor: pointer; margin: 0; }
.q-grid-menu input { accent-color: var(--q-sinyal); margin: 0; }
.q-grid-menu .q-btn { align-self: flex-start; margin-top: .3rem; }
.q-ledger thead th[draggable="true"] { cursor: grab; position: relative; user-select: none; }
.q-ledger thead th.q-col-drag { opacity: .5; }
.q-ledger thead th.q-col-over { box-shadow: inset 3px 0 0 var(--q-sinyal); }
.q-ledger thead th:last-child { padding-right: 2.2rem; }   /* ⚙ düğmesi için yer */
.q-col-resize { position: absolute; top: 0; right: 0; width: .5rem; height: 100%; cursor: col-resize; }
.q-col-resize:hover, .q-col-resizing .q-col-resize { background: var(--q-sinyal-soft); }
.q-col-hidden { display: none !important; }
/* §52 kabuk oluğu (8 Kasım): .container-fluid 10,8 px iç boşluk + .row −12 px dış boşluk → her yanda 1,2 px taşma, yatay kaydırma (Safari'de
   lastik bant). Kabuk tam genişlik; sütunlar zaten p-0. */
body > .container-fluid { padding-inline: 0; }
body > .container-fluid > .row { margin-inline: 0; }
body > .container-fluid > .row > aside.sidebar.q-rail, body > .container-fluid > .row > main.q-main { padding-inline: 0; }
/* §53 "belge yüzeyi + çekmece" form modeli (8 Kasım 2026; operatör onayı: NES portal kalıbının qumanda uyarlaması).
   JS (qumanda-doc.js) bölümleri çekmeceye taşır, yüzeyde özet kartlar + kenar özeti + yapışkan eylem çubuğu üretir. */
.q-doc { max-width: none; padding-bottom: 5rem; }
.q-doc-pre:empty { display: none; }
.q-doc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1rem; align-items: start; padding-top: .9rem; }
.q-doc-layout.q-noaside { grid-template-columns: minmax(0, 1fr); }
.q-doc-layout.q-noaside > .q-doc-aside { display: none; }
@media (max-width: 1099.98px) { .q-doc-layout { grid-template-columns: minmax(0, 1fr); } .q-doc-aside { position: static !important; } }
.q-doc-main { min-width: 0; }
/* özet kart */
.q-dcard { margin: 0 0 .75rem; }
.q-dcard > header { display: flex; align-items: center; gap: .65rem; padding: .7rem 1rem; border-bottom: 1px solid var(--q-rule); }
.q-dcard > header h2 { flex: 1; margin: 0; font-size: .98rem; font-weight: 600; font-family: var(--q-font-narrow); }
.q-dnum { display: inline-grid; place-items: center; min-width: 1.75rem; height: 1.75rem; border-radius: var(--q-radius-s); background: var(--bg-primary); color: var(--q-petrol); font: 600 .72rem var(--q-font-mono); letter-spacing: .04em; }
.q-dst { font-size: .74rem; color: var(--text-muted); white-space: nowrap; }
.q-dst::before { content: "●"; margin-right: .3rem; }
.q-dst.q-ok::before { color: var(--q-petrol); }
.q-dst.q-eksik::before, .q-dst.q-err::before { color: var(--q-sinyal); }
.q-dst.q-err { color: var(--danger); font-weight: 600; }
.q-dkv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem 1.2rem; padding: .85rem 1rem; }
@media (max-width: 900px) { .q-dkv { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.q-dkv > div { min-width: 0; cursor: pointer; border-radius: var(--q-radius-s); padding: .15rem .3rem; margin: -.15rem -.3rem; }
.q-dkv > div:hover, .q-dkv > div:focus-visible { background: var(--bg-primary); outline: none; }
.q-dkv small { display: block; font-size: .72rem; color: var(--text-muted); margin-bottom: .1rem; }
.q-dkv b { display: block; font-weight: 500; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-dkv b.q-bos { color: var(--q-notr); font-weight: 400; font-style: italic; }
.q-dlive { margin: 0 0 .75rem; }
/* kenar özeti */
.q-doc-aside { position: sticky; top: .75rem; background: var(--surface-primary); border: 1px solid var(--q-rule); border-radius: var(--q-radius-m); box-shadow: var(--q-box-shadow); overflow: hidden; }
.q-doc-aside > header { display: flex; justify-content: space-between; align-items: center; padding: .65rem .9rem; border-bottom: 1px solid var(--q-rule); }
.q-doc-aside > header h3 { margin: 0; font-size: .9rem; font-family: var(--q-font-narrow); }
.q-arow { display: flex; justify-content: space-between; gap: .6rem; width: 100%; padding: .5rem .9rem; border: 0; border-bottom: 1px dashed var(--q-rule); background: none; font: inherit; text-align: left; color: var(--text-primary); cursor: pointer; }
.q-arow:hover { background: var(--bg-primary); }
.q-arow small { color: var(--text-muted); font-size: .76rem; white-space: nowrap; }
.q-arow span { font-weight: 500; font-size: .84rem; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-arow span.q-bos { color: var(--danger); }
.q-doc-aside [data-q-aside] { padding: .7rem .9rem; font-size: .82rem; }
/* alt çubuk */
.q-doc-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; display: flex; align-items: center; gap: .6rem; padding: .55rem 1.1rem; background: color-mix(in srgb, var(--surface-primary) 92%, transparent); backdrop-filter: blur(6px); border-top: 1px solid var(--q-rule); }
@media (min-width: 992px) { .q-doc-bar { left: 16.6667%; } html.q-rail-mini .q-doc-bar { left: var(--q-rail-mini-w); } }
.q-doc-net { flex: 1; display: flex; align-items: baseline; gap: .5rem; min-width: 0; font-variant-numeric: tabular-nums; }
.q-doc-net .q-note { font-size: .74rem; color: var(--text-muted); font-family: var(--q-font-mono); }
.q-doc-acts { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.q-doc-acts .btn, .q-doc-acts .q-btn { font-size: .86rem; }
.q-doc-acts .btn-primary, .q-doc-acts .q-primary { background: var(--q-sinyal) !important; border-color: var(--q-sinyal) !important; color: #fff !important; }
.q-doc-acts .btn-primary:hover, .q-doc-acts .q-primary:hover { background: var(--q-sinyal-dark) !important; border-color: var(--q-sinyal-dark) !important; }
/* çekmece */
.q-drawer-mask { position: fixed; inset: 0; z-index: 1050; background: rgba(20,19,18,.28); opacity: 0; pointer-events: none; transition: opacity .2s; }
.q-drawer { position: fixed; top: 8px; bottom: 8px; right: 8px; z-index: 1051; width: min(620px, calc(100vw - 16px)); display: flex; flex-direction: column; background: var(--surface-primary); color: var(--text-primary); border: 1px solid var(--q-rule); border-radius: 16px; box-shadow: 0 20px 40px -8px rgba(20,19,18,.3); transform: translateX(calc(100% + 24px)); transition: transform .24s cubic-bezier(.2,.8,.2,1); visibility: hidden; }
html.q-doc-open .q-drawer-mask { opacity: 1; pointer-events: auto; }
html.q-doc-open .q-drawer { transform: none; visibility: visible; }
@media (prefers-reduced-motion: reduce) { .q-drawer, .q-drawer-mask { transition: none; } }
@media (max-width: 575.98px) { .q-drawer { top: 0; bottom: 0; right: 0; width: 100vw; border-radius: 0; } }
.q-drawer-head { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.1rem .75rem; border-bottom: 1px dashed var(--q-rule); }
.q-drawer-ico { width: 2.25rem; height: 2.25rem; border-radius: var(--q-radius-m); background: var(--bg-primary); color: var(--q-petrol); display: grid; place-items: center; font-size: 1rem; flex: none; }
.q-drawer-head h2 { margin: 0; font-size: 1rem; font-family: var(--q-font-narrow); }
.q-drawer-head p { margin: .1rem 0 0; font-size: .78rem; color: var(--text-muted); }
.q-drawer-x { margin-left: auto; padding: .25rem .5rem; }
.q-drawer-scroll { flex: 1; overflow: auto; padding: .25rem 1.1rem 1rem; overscroll-behavior: contain; }
.q-dsec { scroll-margin-top: .5rem; }
.q-dsub { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 .55rem; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); font-weight: 600; font-family: var(--q-font); }
.q-dsub::after { content: ""; flex: 1; border-top: 1px dashed var(--q-rule); }
.q-dsub .q-dnum { min-width: 1.5rem; height: 1.5rem; font-size: .66rem; }
.q-dhint { font-size: .78rem; color: var(--text-muted); margin: -.3rem 0 .6rem; }
/* çekmecede legacy kolonlar: ≤6 → yarım, geniş kolonlar tam */
.q-drawer .row { --bs-gutter-x: .6rem; --bs-gutter-y: .55rem; }
.q-drawer .row > [class*="col-"] { flex: 0 0 50%; max-width: 50%; }
.q-drawer .row > .col-12, .q-drawer .row > .col-md-12, .q-drawer .row > .col-lg-12, .q-drawer .row > .col-md-7, .q-drawer .row > .col-md-8, .q-drawer .row > .col-md-9, .q-drawer .row > .col-lg-8, .q-drawer .row > .col-xl-8 { flex: 0 0 100%; max-width: 100%; }
.q-drawer .q-grid { gap: .55rem .6rem; }
.q-drawer .q-grid > * { grid-column: span 12; }
.q-drawer .q-grid > .q-c3, .q-drawer .q-grid > .q-c4, .q-drawer .q-grid > .q-c6 { grid-column: span 6; }
@media (max-width: 575.98px) { .q-drawer .row > [class*="col-"], .q-drawer .q-grid > * { flex: 0 0 100%; max-width: 100%; grid-column: span 12; } }
/* "önek etiket | giriş" satırı */
.q-drawer .q-fld, .q-drawer .q-grid > div:has(> label.form-label), .q-drawer .row > [class*="col-"]:has(> label.form-label), .q-drawer .mb-3:has(> label.form-label), .q-drawer .mb-2:has(> label.form-label) {
  display: grid; grid-template-columns: 7.6rem minmax(0, 1fr); align-items: stretch; border: 1px solid var(--q-rule-strong); border-radius: var(--q-radius-s); background: var(--surface-primary); overflow: hidden; margin-bottom: 0; padding: 0; }
.q-drawer .q-fld:focus-within, .q-drawer .q-grid > div:has(> label.form-label):focus-within, .q-drawer .row > [class*="col-"]:has(> label.form-label):focus-within, .q-drawer .mb-3:has(> label.form-label):focus-within { border-color: var(--q-ink); box-shadow: 0 0 0 2px rgba(230,58,27,.16); }
.q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label { margin: 0; padding: .4rem .6rem; display: flex; align-items: center; font-size: .76rem; font-weight: 500; color: var(--text-primary); background: var(--bg-primary); border-right: 1px solid var(--q-rule); line-height: 1.2; }
.q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label .text-danger, .q-drawer label.q-req::after { color: var(--danger); }
.q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label ~ :is(.form-control, .form-select, .input-group, .q-inline-act, .q-combo) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; min-width: 0; }
.q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label ~ .input-group .form-control, .q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label ~ .input-group .form-select { border: 0; border-radius: 0; box-shadow: none; }
.q-drawer :is(.q-fld, .q-grid > div, .row > [class*="col-"], .mb-3, .mb-2) > label.form-label ~ :is(.form-text, .invalid-feedback, .q-err, .small, small, .text-muted, .alert, .q-preview, .d-flex, .q-small) { grid-column: 1 / -1; padding: .2rem .6rem .35rem; margin: 0; }
.q-drawer .form-control, .q-drawer .form-select { font-size: .9rem; padding-block: .45rem; }
.q-drawer .form-control.text-end, .q-drawer input[inputmode="decimal"] { font-variant-numeric: tabular-nums; }
.q-drawer .form-check { padding: .5rem .6rem; border: 1px solid var(--q-rule); border-radius: var(--q-radius-s); margin: 0; }
.q-drawer .alert { margin-top: .5rem; }
.q-drawer-foot { display: flex; gap: .6rem; align-items: center; padding: .7rem 1.1rem; border-top: 1px solid var(--q-rule); }
.q-drawer-foot .q-btn { padding: .5rem .9rem; }
.q-drawer-foot .q-primary { flex: 1; }
.q-drawer-ks { margin-left: auto; font-size: .72rem; color: var(--text-muted); }
.q-drawer-ks kbd { font: .7rem var(--q-font-mono); border: 1px solid var(--q-rule); border-radius: 4px; padding: 0 .3rem; }
html[data-theme="dark"] .q-drawer-mask { background: rgba(0,0,0,.55); }
.q-doc-bar .q-busy { display: none; }
.q-doc-bar .q-doc-net .q-note:empty { display: none; }
.q-doc-pre > .row:not(:has(*:not(:empty))) { display: none; }
/* §53 ek: çekmecedeki bölüm elemanı korunur (kart/fieldset); eski kart görünümü sıfırlanır, başlığı gizlenir */
.q-drawer .q-dsec, .q-drawer .q-dsec.card, html[data-theme] .q-drawer .q-dsec.card { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; }
.q-drawer .q-dsec > .card-header.q-dhead-hidden, .q-drawer .q-dsec > legend.q-dhead-hidden { display: none !important; }
.q-drawer .q-dsec > .card-body { padding: 0 !important; }
.q-drawer .q-dsec > .card-footer { border: 0; background: transparent; padding: .4rem 0 0; }
.q-dlive.card { margin-bottom: .75rem; }
@media (max-width: 575.98px) { .q-doc-net .q-note { display: none; } .q-doc { padding-bottom: 7rem; } .q-doc-acts { flex: 1; } .q-doc-acts .btn, .q-doc-acts .q-btn { flex: 1 1 auto; text-align: center; } }
/* §53 ek (8 Kasım, operatör: Safari'de alış/satış ekranında çekmece aşağı kaymış): çekmece <dialog> ile ÜST KATMANDA açılır;
   atadaki transform/filter/backdrop-filter konteyner bloğu yaratsa bile görünüm alanına sabitlenir. */
dialog.q-drawer { inset: 8px 8px 8px auto; margin: 0; padding: 0; max-width: none; max-height: none; height: auto; display: none; visibility: visible; color: var(--text-primary); }
dialog.q-drawer[open] { display: flex; }
dialog.q-drawer, html.q-doc-open dialog.q-drawer { transform: translateX(calc(100% + 24px)); }
dialog.q-drawer.q-in, html.q-doc-open dialog.q-drawer.q-in { transform: none; }
dialog.q-drawer::backdrop { background: rgba(20,19,18,.28); }
html[data-theme="dark"] dialog.q-drawer::backdrop { background: rgba(0,0,0,.55); }
@media (max-width: 575.98px) { dialog.q-drawer { inset: 0 0 0 auto; width: 100vw; border-radius: 0; } }
.q-drawer-mask[hidden] { display: none !important; }
/* §53 ek (8 Kasım, operatör: çekmecede bölümler arası boşluk; satırlar da aynı kalıpta) */
.q-drawer .q-dsec, .q-drawer .q-dsec.card.h-100 { height: auto !important; min-height: 0 !important; flex: none !important; }
.q-dsub > * { order: 0; } .q-dsub::after { order: 1; } .q-dsub-act { order: 2; display: flex; align-items: center; gap: .4rem; margin-left: .4rem; text-transform: none; letter-spacing: 0; font-weight: 500; }
.q-dsub-act .btn { font-size: .76rem; padding: .2rem .55rem; }
.q-dsub-act .form-check { margin: 0; padding-left: 2.4rem; min-height: 0; }
.q-dsub-act .form-check-label { font-size: .74rem; color: var(--text-primary); }
.q-drawer .voerp-line-row, .q-drawer .trade-line-row { border: 1px solid var(--q-rule) !important; border-radius: var(--q-radius-m) !important; padding: .65rem !important; margin-bottom: .6rem !important; background: var(--surface-primary); }
.q-drawer .voerp-line-row > .d-flex .btn { font-size: .74rem; }
.q-drawer .voerp-line-row .row { --bs-gutter-x: .5rem; --bs-gutter-y: .5rem; }
.q-drawer .voerp-line-row .form-check { border: 0; padding-block: .25rem; }
