/* ============================================================
   SellClosed — Customer Admin önizlemesi · ortak kabuk stilleri

   MARKA KAYNAĞI: @sellclosed/brand (packages/brand)
   Bu dosya hiçbir marka değeri TANIMLAMAZ. Aşağıdaki köprü bloğu,
   prototipin kendi token adlarını marka paketinin `--sc-*`
   token'larına BAĞLAR. Renk, altın rampası, tipografi ve gölge
   kararları yalnız packages/brand/src/ altında değişir; buradaki
   adlar yalnızca o kararların bu prototipteki karşılığıdır.

   Onaylı kararlar (packages/brand/README.md Bölüm 1):
     · Logo yönü      B — Kenetlenme
     · Altın          Parlak açık altın (material.$active = "bright")
     · Yardımcı renk  Mevcut roller; kırmızı/koral yok

   Tema: theme.js her zaman açık bir data-theme yazar.
     data-theme="dark"  → marka paketinin [data-theme="dark"] bloğu
     data-theme="light" → marka paketinin :root varsayılanları
   Bu yüzden aşağıdaki köprü TEK bloktur ve iki temayı da kendiliğinden
   izler; ayrı bir gündüz paleti tutulmaz.
   ============================================================ */

@import url('../../../packages/brand/fonts/fonts.css');
@import url('../../../packages/brand/generated/tokens.css');

/* ============================================================
   ÖLÇÜ EŞLEŞMELİ YEDEK YAZI TİPİ
   ------------------------------------------------------------
   EN: Inter is loaded with font-display:swap by the approved brand
   package (packages/brand/fonts/fonts.css) and that package is NOT
   modified here. Until Inter arrives the stack falls back to Segoe UI,
   which is NARROWER: measured on this build, Inter renders the top-bar
   strings at 109.04% of Segoe UI (regular) and 108.34% (semibold). That
   is why the main nav grew 521.1px -> 549.9px and the search field
   256.6px -> 281.6px the moment the font landed, pushing the whole top
   bar sideways on every navigation.
   This face re-uses the SAME locally installed fallback and only
   corrects its metrics, so pre-swap text occupies the width Inter will
   occupy. Nothing is hidden, no delay is added, no glyph is replaced:
   once Inter loads the rendering is identical to before.
   TR: Inter, onaylı marka paketinde font-display:swap ile yüklenir ve o
   paket burada DEĞİŞTİRİLMEZ. Inter gelene kadar yığın Segoe UI'ye
   düşer; Segoe UI daha DARDIR: bu derlemede ölçüldü — Inter üst çubuk
   metinlerini Segoe UI'nin %109,04'ü (düz) ve %108,34'ü (yarı kalın)
   genişliğinde çizer. Ana menünün 521,1px -> 549,9px ve arama alanının
   256,6px -> 281,6px büyümesinin, yani her geçişte üst çubuğun yana
   kaymasının nedeni budur.
   Bu yüz AYNI yerel yedeği kullanır ve yalnız ölçüsünü düzeltir; font
   gelmeden önceki metin, Inter'in kaplayacağı genişliği kaplar. Hiçbir
   şey gizlenmez, gecikme eklenmez, glif değiştirilmez: Inter yüklendikten
   sonra görüntü eskisiyle birebir aynıdır.
   ============================================================ */
/* Ölçülen oranlar (Inter / Segoe UI, aynı px):
     ağırlık 400 → %108,21–108,97 · ağırlık 500 → %105,84 · ağırlık 600 → %111,63
   Tek bir size-adjust üç ağırlıkta da doğru olamaz, bu yüzden ağırlık
   aralıkları ayrı yüzlerle tanımlanır. */
@font-face{
  font-family:'Inter Olcu Yedegi';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.94%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:111.4%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}

/* ============================================================
   Üst çubuk için DİL BAŞINA ölçü eşlemeli yedek

   EN: A single size-adjust cannot be right for every language: the same
   fallback face is 0,2% too narrow for Turkish and 1,5% too wide for the
   English bold "+ New" label. That leftover error is exactly the menu and
   "+ New" movement measured at first paint. The ratio below is not a
   guess: the REAL top-bar strings of each language were measured twice in
   this build — once with Inter and once with the fallback face alone —
   and the correction is Inter ÷ fallback (tools: verification/
   menu-hareketi-20260921/02-olcu-ustcubuk.txt).

   Only the metric changes; the glyphs, the brand stack and its order stay
   as the approved package defines them, and packages/brand is NOT touched.
   The scope is the top bar, because that is where the movement is seen and
   where the ratio was measured; the rest of the page keeps the general
   face.

   TR: Tek bir size-adjust her dil için doğru olamaz: aynı yedek yüz Türkçe
   için %0,2 dar, İngilizce yarı kalın "+ New" etiketi için %1,5 geniştir.
   Kalan bu hata, ilk boyamada ölçülen menü ve "+ Yeni" hareketinin ta
   kendisidir. Aşağıdaki oran tahmin değildir: her dilin GERÇEK üst çubuk
   metinleri bu derlemede iki kez ölçüldü — bir kez Inter ile, bir kez
   yalnız yedek yüzle — ve düzeltme Inter ÷ yedek oranıdır (kanıt:
   verification/menu-hareketi-20260921/02-olcu-ustcubuk.txt).

   Yalnız ÖLÇÜ değişir; glifler, marka yığını ve sırası onaylı paketteki
   gibi kalır, packages/brand DEĞİŞTİRİLMEZ. Kapsam üst çubuktur; hareket
   orada görülür ve oran orada ölçülmüştür, sayfanın kalanı genel yüzü
   kullanır.
   ============================================================ */
@font-face{
  font-family:'Inter Olcu Yedegi TR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:108.17%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi TR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi TR';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:112.64%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi EN';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.65%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi EN';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi EN';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:107.99%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi DE';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.32%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi DE';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi DE';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:107.15%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi RU';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.23%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi RU';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi RU';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:112.47%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi AR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.46%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi AR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi AR';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:110.76%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi FR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.57%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi FR';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi FR';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:108.01%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi ES';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:100 450; font-style:normal;
  size-adjust:107.66%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi ES';
  src:local('Segoe UI'), local('Helvetica Neue'), local('Arial'), local('Liberation Sans');
  font-weight:451 550; font-style:normal;
  size-adjust:105.8%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}
@font-face{
  font-family:'Inter Olcu Yedegi ES';
  src:local('Segoe UI Semibold'), local('Segoe UI'), local('Helvetica Neue'), local('Arial');
  font-weight:551 900; font-style:normal;
  size-adjust:107.36%; ascent-override:92%; descent-override:23%; line-gap-override:0%;
}

/* Üst çubuk, belgenin diline göre kendi ölçü eşlemeli yedeğini kullanır. */
html[lang="tr"] .topbar{ font-family:'Inter','Inter Olcu Yedegi TR','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="en"] .topbar{ font-family:'Inter','Inter Olcu Yedegi EN','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="de"] .topbar{ font-family:'Inter','Inter Olcu Yedegi DE','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="ru"] .topbar{ font-family:'Inter','Inter Olcu Yedegi RU','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="ar"] .topbar{ font-family:'Inter','Inter Olcu Yedegi AR','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="fr"] .topbar{ font-family:'Inter','Inter Olcu Yedegi FR','Segoe UI','Helvetica Neue',Arial,sans-serif; }
html[lang="es"] .topbar{ font-family:'Inter','Inter Olcu Yedegi ES','Segoe UI','Helvetica Neue',Arial,sans-serif; }

/* Yedek, Inter ile mevcut yedeklerin ARASINA girer; marka yığını ve
   sırası korunur, yalnız ölçü boşluğu kapatılır. */
:root{
  --sc-font-family-sans:'Inter','Inter Olcu Yedegi','Segoe UI','Helvetica Neue',Arial,sans-serif;
  --sc-font-family-numeric:'Inter','Inter Olcu Yedegi','Segoe UI',Arial,sans-serif;
}

/* ---------- 1. Marka köprüsü ---------- */
:root{
  /* yüzeyler */
  --chrome:var(--sc-surface-raised);        /* üst bar, sol kolon, footer */
  --chrome-2:var(--sc-surface-raised);
  --bg:var(--sc-surface-page);              /* çalışma alanı */
  --panel:var(--sc-surface-raised);         /* kart */
  --panel-2:var(--sc-surface-sunken);       /* iç kart / hover */
  --line:var(--sc-border-subtle);
  --line-soft:var(--sc-border-subtle);

  /* türetilmiş yüzeyler — tema ile birlikte değişir */
  --panel-3:var(--sc-skeleton-base);        /* iz/track, avatar, ilerleme */
  --surface-hi:var(--sc-surface-hover);     /* buton hover */
  --surface-hi-2:var(--sc-surface-hover);
  --line-2:var(--sc-border-default);        /* hover kenarlık */
  --line-3:var(--sc-border-default);
  --hover:var(--sc-surface-hover);
  --hover-soft:var(--sc-surface-hover);
  --scrim:var(--sc-surface-overlay);
  --shadow-card:var(--sc-shadow-md);
  --inset-hi:var(--sc-material-black-specular-edge-strong);
  --dot-halo:var(--sc-surface-hover);

  /* altın — ZEMİN olarak parlak rampa, METİN olarak okunabilir ton */
  --gold:var(--sc-brand-text);
  --gold-bright:var(--sc-brand-text);   /* tonlu zemin üzerinde okunur altın metin */
  /* Grafik serileri: rampanın iki sabit durak rengi — iki temada da ayırt edilir */
  --gold-series-a:var(--sc-gold-core);
  --gold-series-b:var(--sc-gold-flat);
  --gold-deep:var(--sc-gold-shadow);
  --gold-grad:var(--sc-gold-ramp);
  --gold-grad-2:var(--sc-gold-ramp);
  --gold-hover-grad:linear-gradient(145deg,
      var(--sc-color-gold-50) 0%, var(--sc-gold-highlight) 22%,
      var(--sc-gold-core) 52%, var(--sc-gold-flat) 100%);
  --gold-active-grad:linear-gradient(145deg,
      var(--sc-gold-core) 0%, var(--sc-gold-flat) 52%, var(--sc-gold-shadow) 100%);
  --gold-off-grad:linear-gradient(145deg,
      var(--sc-surface-disabled), var(--sc-surface-disabled));
  --gold-off-ink:var(--sc-text-disabled);
  --gold-glow:var(--sc-brand-subtle-border);
  --gold-dim:var(--sc-brand-subtle-bg);
  --gold-line:var(--sc-brand-subtle-border);   /* altın tonlu kenarlık */
  --gold-shadow-glow:var(--sc-shadow-brand-glow);

  /* metin */
  --ink:var(--sc-text-primary);
  --ink-2:var(--sc-text-secondary);
  --ink-3:var(--sc-text-tertiary);
  --on-gold:var(--sc-gold-on-surface);

  /* anlam renkleri — marka paketindeki roller */
  --verified:var(--sc-finance-positive-text);   /* YALNIZ doğrulanmış tahsilat */
  --verified-bg:var(--sc-finance-positive-subtle-bg);
  --ok-line:var(--sc-finance-positive-subtle-border);
  --warn:var(--sc-warning-text);
  --warn-bg:var(--sc-warning-subtle-bg);
  --warn-line:var(--sc-warning-subtle-border);
  --info:var(--sc-ai-text);                     /* AI / otomasyon */
  --info-bg:var(--sc-ai-subtle-bg);
  --info-line:var(--sc-ai-subtle-border);
  --danger:var(--sc-danger-text);
  --danger-bg:var(--sc-danger-subtle-bg);
  --danger-line:var(--sc-danger-subtle-border);
  /* bildirim/uyarı kutularında okunur metin tonları */
  --warn-ink:var(--sc-warning-text);
  --gold-ink:var(--sc-brand-text);
  --danger-ink:var(--sc-danger-text);

  /* bileşene özel yüzeyler */
  --surface-press:var(--sc-surface-sunken);
  --track:var(--sc-skeleton-base);
  --knob:var(--sc-border-interactive);
  --avatar-org-bg:var(--sc-surface-sunken);
  --stripe:repeating-linear-gradient(45deg,
      var(--sc-skeleton-base), var(--sc-skeleton-base) 5px,
      var(--sc-surface-sunken) 5px, var(--sc-surface-sunken) 10px);
  --cptab-bg:var(--sc-surface-raised);
  --stage-bg:var(--sc-surface-sunken);
  --tile-bg:var(--sc-surface-raised);
  --tile-bg-2:var(--sc-surface-sunken);

  /* ölçü — marka paketinin yarıçap, boşluk, süre ve easing ölçeği */
  --r-sm:var(--sc-radius-sm); --r:var(--sc-radius-md);
  --r-lg:var(--sc-radius-lg); --r-pill:var(--sc-radius-pill);
  --rail:248px; --bar:56px;
  --sp-1:var(--sc-space-1); --sp-2:var(--sc-space-2); --sp-3:var(--sc-space-3);
  --sp-4:var(--sc-space-4); --sp-5:var(--sc-space-5); --sp-6:var(--sc-space-6);
  --shadow:var(--sc-shadow-lg);
  --ease:var(--sc-ease-standard);
  --t-fast:var(--sc-duration-fast); --t:var(--sc-duration-base); --t-slow:900ms;

  /* kontrol ölçüleri — onaylı buton aileleri (katalog 05-ui-components) */
  --ctrl-sm:var(--sc-size-control-sm);
  --ctrl-md:var(--sc-size-control-md);
  --ctrl-lg:var(--sc-size-control-lg);
  --touch-min:var(--sc-size-touch-target-min);
  --focus-ring:var(--sc-focus-ring);
  --focus-shadow:var(--sc-shadow-focus);
}

/* Gece temasında kart gölgeleri ve panel zeminleri obsidyen düzlemlerini kullanır */
:root[data-theme="dark"]{
  --chrome:var(--sc-surface-void);
  --chrome-2:var(--sc-surface-raised);
  --panel-2:var(--sc-surface-top);
  --surface-press:var(--sc-surface-void);
  --stage-bg:var(--sc-surface-void);
  --avatar-org-bg:var(--sc-surface-top);
  --tile-bg-2:var(--sc-surface-void);
  --shadow-card:var(--sc-material-black-contact-shadow);
}

/* Açık temada altın zemin üzerindeki parlama fazla ağır kalmasın */
:root[data-theme="light"] .btn-gold{ box-shadow:var(--sc-shadow-sm); }
:root[data-theme="light"] .cp-tab{ box-shadow:var(--sc-shadow-md); }
:root[data-theme="light"] .cp-panel{ box-shadow:var(--sc-shadow-lg); }
:root[data-theme="light"] .menu{ box-shadow:var(--sc-shadow-lg); }
/* altın rozet açık temada da koyu metinli parlak zemin kalır */
:root[data-theme="light"] .badge-dot{ color:var(--on-gold); }

/* ---------- 2. Temel ---------- */
*,*::before,*::after{ box-sizing:border-box; }
/* hidden özniteliği bileşen display kurallarını yenmeli */
[hidden]{ display:none !important; }
html,body{ margin:0; padding:0; }
/* EN: The module body is injected by script, so a page starts short and
   grows past the viewport a moment later. The scrollbar then appears and
   clientWidth drops by its width, shifting the whole shell sideways on
   every navigation. Reserving the gutter up front removes the shift
   without hiding the page or delaying anything.
   TR: Modül gövdesi betikle eklendiği için sayfa kısa başlar ve biraz
   sonra görünen alanı aşar. Kaydırma çubuğu o anda belirir, clientWidth
   çubuk genişliği kadar düşer ve her geçişte bütün kabuk yana kayar.
   Boşluğu baştan ayırmak bu kaymayı sayfayı gizlemeden ve yapay gecikme
   eklemeden ortadan kaldırır. */
/* ÖNEMLİ — kökte `overflow-x:hidden` varken Chrome `scrollbar-gutter`
   boşluğunu AYIRMAZ (ölçüldü: içerik kısalınca clientWidth 1425→1440).
   Bu yüzden kökte yatay kilit YOKTUR; yatay taşma kilidi gövdededir.
   Boşluk ayrıldığı için kaydırma çubuğu belirip kaybolduğunda kabuk
   yana kaymaz. */
html{ background:var(--bg); scrollbar-gutter:stable; }
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--sc-font-family-sans);
  font-size:15px; line-height:var(--sc-line-height-normal);
  /* Sayısal hizalama marka tipografi kurallarından gelir (tnum + cv05) */
  font-feature-settings:var(--sc-font-feature-numeric);
  -webkit-font-smoothing:antialiased;
  /* Yatay taşma KÖKTE de gövdede de kilitlidir.
     Kökteki kilit kaydırma kabını köke taşır (scrollbar-gutter orada
     uygulanır); gövdedeki kilit ise RTL de dışarı kayan yüzeylerin
     belgeyi genişletmesini engeller. İkisi birlikte gerekir. */
  overflow-x:hidden;
}
h1,h2,h3,h4{ margin:0; font-weight:650; letter-spacing:-.01em; }
p{ margin:0; }
button{ font:inherit; color:inherit; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
.material-symbols-outlined{
  font-family:'Material Symbols Outlined'; font-weight:400; font-style:normal;
  line-height:1; letter-spacing:normal; text-transform:none; display:inline-block;
  white-space:nowrap; word-wrap:normal; direction:ltr; font-variation-settings:'FILL' 0,'wght' 400;
  -webkit-font-feature-settings:'liga'; -webkit-font-smoothing:antialiased;
  font-size:20px; flex:none;
  /* EN: Icon names are ligature TEXT. With font-display:swap the fallback
     font draws the literal word ("add", "notifications") at word width
     until the icon font arrives, then the whole top bar and side column
     reflow — this was the jitter seen when moving between modules.
     Material Symbols glyphs are exactly 1em, so reserving a 1em box up
     front matches the final metrics and clips the literal text. No icon
     is hidden and no artificial delay is added.
     TR: İkon adları ligature METNİDİR. font-display:swap ile ikon fontu
     gelene kadar yedek font "add", "notifications" gibi kelimeyi kelime
     genişliğinde çizer; font gelince üst çubuk ve sol kolon yeniden
     yerleşir — modüller arası geçişte görülen sallanma buydu. Material
     Symbols glifleri tam 1em'dir; kutuyu baştan 1em ayırmak nihai ölçüyle
     birebir örtüşür ve ligature metnini kırpar. Hiçbir ikon gizlenmez,
     yapay gecikme eklenmez. */
  width:1em; height:1em; overflow:hidden;
}
:focus-visible{
  outline:var(--sc-border-width-focus) solid var(--focus-ring);
  outline-offset:var(--sc-border-focus-offset); border-radius:var(--r-sm);
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
/* "İçeriğe atla" bağlantısı klavyeyle odaklanınca görünür olmalı;
   aksi hâlde odaklanabilir ama hiç görünmeyen bir kontrol oluyordu. */
a.sr-only:focus{
  position:fixed; top:10px; left:10px; z-index:2147483001;
  width:auto; height:auto; min-height:44px; padding:0 16px; margin:0;
  overflow:visible; clip:auto; display:inline-flex; align-items:center;
  background:var(--gold-grad); color:var(--on-gold);
  font-size:13.5px; font-weight:700; border-radius:var(--r-sm);
  box-shadow:0 8px 26px rgba(0,0,0,.5);
}

/* ---------- 3. Altın yardımcıları ---------- */
.gold{ color:var(--gold); }
.gold-text{
  background:var(--gold-grad-2); -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
.edge-gold{ position:relative; }
.edge-gold::before{
  content:""; position:absolute; left:14px; right:14px; top:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-glow) 18%,var(--gold) 50%,var(--gold-glow) 82%,transparent);
  opacity:.75; pointer-events:none;
}

/* ---------- 4. Butonlar ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  height:var(--ctrl-md); min-height:var(--ctrl-md); padding:0 var(--sp-4);
  border-radius:var(--r); border:1px solid var(--line);
  background:var(--panel-2); color:var(--ink); cursor:pointer; white-space:nowrap;
  font-size:13.5px; font-weight:560; letter-spacing:.005em;
  transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
             transform var(--t-fast) var(--ease), box-shadow var(--t) var(--ease);
}
/* siyah buton: hover'da daha AÇIK yüzeye geçer */
.btn:hover{ background:var(--surface-hi); border-color:var(--line-2); }
.btn:active{ background:var(--surface-press); transform:translateY(1px); }
.btn[aria-pressed="true"], .btn.is-on{
  background:var(--gold-dim); border-color:var(--gold-line); color:var(--gold);
}
/* Devre dışı: marka yüzeyi + imleç + etkileşim kilidi (yalnız renk değişikliği değil).
   Tıklama engeli app.js/markUnavailable() tarafından ayrıca uygulanır. */
.btn[disabled], .btn[aria-disabled="true"]{
  background:var(--sc-surface-disabled); border-color:var(--sc-border-subtle);
  color:var(--sc-text-disabled); cursor:not-allowed; transform:none; box-shadow:none;
  pointer-events:auto;
}
.btn[disabled]:hover, .btn[aria-disabled="true"]:hover{
  background:var(--sc-surface-disabled); border-color:var(--sc-border-subtle);
}
.btn[disabled]:active, .btn[aria-disabled="true"]:active{ transform:none; }
.btn .material-symbols-outlined{ font-size:var(--sc-size-icon-md); }

.btn-gold{
  position:relative; overflow:hidden; border:0;
  background:var(--gold-grad); color:var(--on-gold); font-weight:700;
  box-shadow:0 1px 0 var(--sc-material-black-specular-edge-strong) inset, var(--sc-shadow-brand-glow);
}
/* altın buton: hover'da KARARMAZ, hafifçe aydınlanır (.btn:hover'ı ezer) */
.btn-gold:hover{
  background:var(--gold-hover-grad);
  border-color:transparent;
  box-shadow:0 1px 0 var(--sc-material-black-specular-edge-gold) inset, var(--sc-shadow-brand-glow);
}
.btn-gold:active{
  background:var(--gold-active-grad);
  transform:translateY(1px);
}
.btn-gold[disabled], .btn-gold[aria-disabled="true"]{
  background:var(--gold-off-grad); color:var(--gold-off-ink); opacity:.6;
  box-shadow:none; cursor:not-allowed; transform:none;
}
.btn-gold[disabled]::after, .btn-gold[aria-disabled="true"]::after{ display:none; }
/* yavaş, ölçülü altın ışık geçişi */
.btn-gold::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg,transparent 38%,var(--hover) 50%,transparent 62%);
  transform:translateX(-130%);
  animation:sheen 7s var(--ease) infinite;
  pointer-events:none;
}
@keyframes sheen{ 0%,72%{transform:translateX(-130%)} 88%,100%{transform:translateX(130%)} }

.btn-ghost{ background:transparent; border-color:transparent; color:var(--ink-2); }
.btn-ghost:hover{ background:var(--hover); color:var(--ink); }
.btn-outline-gold{ background:transparent; border-color:var(--gold-line); color:var(--gold); }
.btn-outline-gold:hover{ background:var(--gold-dim); border-color:var(--gold); }
/* --- Buton ölçek ailesi (onaylı katalog: 05-ui-components) ---
   1) standart .btn    → --ctrl-md (40px) · ikon 20
   2) kompakt  .btn-sm → --ctrl-sm (32px) · tablo ve satır içi aksiyonlar · ikon 16
   3) yalnız ikon .btn-icon → kare; standart veya kompaktla birlikte kullanılır
   Butonlar ortak genişliğe ZORLANMAZ; yalnız yükseklik/dolgu ailesi ortaktır. */
.btn-sm{
  height:var(--ctrl-sm); min-height:var(--ctrl-sm); padding:0 var(--sp-3);
  font-size:var(--sc-font-size-sm);
}
.btn-sm .material-symbols-outlined{ font-size:var(--sc-size-icon-sm); }
.btn-icon{ width:var(--ctrl-md); padding:0; }
.btn-sm.btn-icon{ width:var(--ctrl-sm); }
/* aynı aksiyon kolonundaki butonlar ortak genişlik alır (kırpma/font küçültme yok) */
td.act-col .btn{ width:100%; }
.act-col{ white-space:nowrap; }
/* "+ Yeni": sorun simgenin ölçüsü değil, arkasındaki yüzeyin kaba durmasıydı —
   buton 40 px ailesindeyken yanındaki arama alanı 34 px idi. Görünür zemin üst
   çubuğun kendi ölçüsüne (34 px) ve köşe yarıçapına hizalanır; dolgu, ikon–metin
   boşluğu ve gölge birlikte inceltilir. Altın marka görünümü korunur. */
#newBtn{
  height:34px; min-height:34px; padding:0 13px; gap:6px;
  border-radius:var(--r-sm); font-size:13px;
  box-shadow:0 1px 0 var(--sc-material-black-specular-edge) inset;
}
#newBtn:hover{ box-shadow:0 1px 0 var(--sc-material-black-specular-edge-gold) inset; }
#newBtn .material-symbols-outlined{ font-size:18px; }

.btn-danger{ background:var(--danger-bg); border-color:var(--danger-line); color:var(--danger-ink); }
.btn-danger:hover{ background:var(--danger-bg); }

/* ---------- 5. Üst bar ---------- */
.topbar{
  position:fixed; inset:0 0 auto 0; height:var(--bar); z-index:60;
  display:flex; align-items:center; gap:0; padding-inline:0 var(--sp-4);
  background:var(--chrome); border-bottom:1px solid var(--line);
}
/* marka bloğu sol kolonun genişliğini kaplar ve içinde ortalanır */
.brand{
  display:flex; align-items:center; justify-content:center; gap:10px;
  flex:0 0 var(--rail); width:var(--rail); height:100%;
  border-inline-end:1px solid var(--line-soft);
  text-decoration:none; color:inherit;
}
.brand:hover{ background:var(--hover); }
.brand:focus-visible{ outline-offset:-3px; }
/* Marka kilidi — dosya adı yazılmaz; @sellclosed/brand runtime'ı role göre çözer.
   Yatay duo kilidi kelime markasını zaten taşır, bu yüzden ayrı bir metin yoktur.
   Logo oranı bozulmaz: yalnız yükseklik verilir, genişlik otomatiktir. */
/* EN: The lockup slot is EMPTY until the brand runtime injects the
   image — there is no <img> yet, so sizing the image reserves nothing.
   The box is reserved on the container from the lockup's own viewBox
   ratio (528×128 at 40px tall = 165px). No new size is invented.
   TR: Kilit yuvası, marka çalışma zamanı görseli yerleştirene kadar
   BOŞTUR; <img> henüz yoktur, bu yüzden görsele ölçü vermek hiçbir yer
   ayırmaz. Kutu kapsayıcıda, kilidin kendi viewBox oranından ayrılır
   (528×128, 40 px yükseklikte 165 px). Yeni ölçü tanımlanmaz. */
.brand-lockup{ display:block; line-height:0; width:165px; height:40px; }
/* Yükseklik verilir, genişlik otomatiktir — logo oranı ve geometrisi korunur.
   Kilit dosyasının viewBox'ı 528×128 ve işaret y=10..118 aralığında durur: kutunun
   yaklaşık %84'ü görünür işaret, kalanı asset iç boşluğudur. Bu yüzden GÖRÜNEN logoyu
   ~%25 büyütmek için kutu 32 → 40 px yapılır (görünen ~27 → ~34 px).
   56 px üst barda 8 px, 248 px sol kolonda ~41 px yanal boşluk kalır. */
/* Oran baştan bildirilir: görsel yüklenmeden de kutu aynı genişlikte
   durur, dar ekranda üst çubuk logo gelince kaymaz. Kilit viewBox'ı
   528×128'dir; oran buradan gelir, yeni bir ölçü tanımlanmaz. */
.brand-lockup img{ display:block; height:40px; width:auto; aspect-ratio:528 / 128; }
/* Dar ekranda yalnız onaylı kompakt işaret gösterilir (kelime markası düşürülür):
   üst çubukta arama, + Yeni, tema, bildirim ve Copilot birlikte sığar. */
.brand-lockup-sm{ display:none; line-height:0; width:34px; height:34px; }
.brand-lockup-sm img{ display:block; height:34px; width:34px; }
/* Dar alanlarda yalnız onaylı kompakt varyant kullanılır (footer, toplantı başlığı) */
.brand-chip{ display:inline-block; line-height:0; vertical-align:-3px; }
.brand-chip img{ display:block; }

/* EN: When a translation runs longer than Turkish the module row can run out
   of room. `overflow:hidden` cut the last module off silently — in German,
   Russian, French and Spanish "Reports" was partly or wholly invisible and
   could not be reached by pointer. Scrolling keeps every module reachable
   without shrinking the text, cropping it, or changing the row's own width,
   so the neighbouring controls still do not move. The scrollbar is suppressed
   because the bar is 56 px tall; measured menu movement did not get worse.
   TR: Çeviri Türkçeden uzun olduğunda modül satırı sığmayabilir.
   `overflow:hidden` son modülü sessizce kesiyordu — Almanca, Rusça,
   Fransızca ve İspanyolcada "Raporlar" kısmen ya da tamamen görünmez kalıyor
   ve işaretleçle ulaşılamıyordu. Kaydırma, yazıyı küçültmeden, kırpmadan ve
   satırın kendi genişliğini değiştirmeden her modülü erişilebilir tutar;
   komşu kontroller yine yerinden oynamaz. Çubuk 56 px olduğu için kaydırma
   çubuğu gizlenir; ölçülen menü hareketi kötüleşmedi. */
.mainnav{
  /* modül menüsü ana içerikle aynı noktadan başlar */
  margin-inline-start:26px;
  display:flex; align-items:center; gap:0; min-width:0;
  overflow-x:auto; overflow-y:hidden;
  scrollbar-width:none; -ms-overflow-style:none; overscroll-behavior-x:contain;
}
.mainnav::-webkit-scrollbar{ width:0; height:0; }
.mainnav a{
  position:relative; padding:9px 8px; border-radius:var(--r-sm);
  font-size:13.5px; color:var(--ink-3); white-space:nowrap;
  transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
}
.mainnav a:hover{ color:var(--ink); background:var(--hover); }
.mainnav a[aria-current="page"]{ color:var(--ink); }
.mainnav a[aria-current="page"]::after{
  content:""; position:absolute; left:8px; right:8px; bottom:-1px; height:2px;
  background:var(--gold-grad-2); border-radius:2px;
}
/* Üst menü dokuz kalemdir (Tahsilatlar, owner kararı K42, 7 Ekim 2026): 1600 px altında kalem iç boşluğu daralır,
   böylece 1440 px'te Türkçe menü kaydırmadan sığar; uzun dillerde yukarıdaki yatay kaydırma geçerli kalır. */
@media (max-width:1599px){
  .mainnav{ margin-inline-start:18px; }
  .mainnav a{ padding:9px 6px; font-size:13px; }
  .mainnav a[aria-current="page"]::after{ left:6px; right:6px; }
}

.util{ margin-inline-start:auto; display:flex; align-items:center; gap:var(--sp-2); flex:none; }
.search{
  display:flex; align-items:center; gap:8px; height:34px; padding:0 11px;
  background:var(--chrome-2); border:1px solid var(--line); border-radius:var(--r-sm);
  color:var(--ink-3); font-size:13px;
  /* Alanın genişliği içeriğinden DEĞİL, bileşenlerinin sabit
     ölçülerinden gelir: girdi 145px, aralıklar sabit. Böylece font
     geldiğinde arama alanı büyümez ve solundaki hiçbir kontrol yer
     değiştirmez. ⌘K rozeti owner incelemesinde kaldırıldı (2 Ekim 2026):
     anlamı anlaşılmıyordu ve tıklanınca alanla aynı şeyi yapıyordu;
     ⌘K / Ctrl+K kısayolu çalışmaya devam eder (assets/shell.js). */
  transition:border-color var(--t-fast) var(--ease), box-shadow var(--t) var(--ease);
}
.search:hover{ border-color:var(--line-2); }
/* EN: The magnifier is a real <button>, and it had no rule of its own, so it
   was rendered with the user-agent button skin: a separate grey box
   (measured rgb(107,107,107) in dark, rgb(240,240,240) in light) with a 2px
   outset border, inside the search field. It now carries the field's own
   ground and no border, so only the icon is visible — the same picture as
   before the button existed. It stays a button: hit area, accessible name,
   keyboard focus and the search it opens are unchanged, and the focus ring
   is kept.
   TR: Büyüteç gerçek bir <button>'dır ve kendine ait bir kuralı yoktu; bu
   yüzden tarayıcının varsayılan düğme kaplamasıyla çiziliyordu: arama
   alanının içinde ayrı bir gri kutu (ölçüldü: gecede rgb(107,107,107),
   gündüzde rgb(240,240,240)) ve 2px outset kenarlık. Artık alanın kendi
   zeminini taşır ve kenarlığı yoktur; yalnız ikon görünür — düğme
   eklenmeden önceki görüntünün aynısı. Düğme olmaya devam eder: tıklama
   alanı, erişilebilir ad, klavye odağı ve açtığı arama değişmez; odak
   işareti korunur. */
.search .scsr-btn{
  appearance:none; -webkit-appearance:none;
  background:transparent; border:0; padding:0; margin:0;
  color:var(--ink-3); font:inherit; line-height:0;
  display:inline-flex; align-items:center; justify-content:center;
  flex:none; width:20px; height:20px; border-radius:var(--r-sm);
  cursor:pointer;
}
.search .scsr-btn .material-symbols-outlined{ font-size:19px; color:inherit; }
.search .scsr-btn:hover{ color:var(--ink); }
.search .scsr-btn:focus-visible{ outline:var(--focus-ring); outline-offset:2px; }

.search:focus-within{ border-color:var(--focus-ring); box-shadow:0 0 0 3px var(--sc-ai-subtle-bg); }
.search input{
  background:transparent; border:0; outline:0; color:var(--ink);
  font:inherit; font-size:13px; min-width:0;
  /* EN: An <input> with no explicit width takes its INTRINSIC width from
     the the "size" attribute times the current font's average character
     width — so the search field, and with it the whole right-hand side
     of the top bar, grew by 11px the moment Inter replaced the fallback.
     Pinning the width makes the field font-independent. 175px is the
     width it already settles at in every language and at every
     breakpoint where the field is visible (measured), so the layout is
     unchanged; below 768px the input is display:none and unaffected.
     TR: Açık genişliği olmayan bir <input>, İÇSEL genişliğini "size"
     özniteliği ile o anki fontun ortalama karakter genişliğinin
     çarpımından alır; bu yüzden Inter yedeğin yerine geçtiği anda arama
     alanı ve onunla birlikte üst çubuğun bütün sağ tarafı 11px büyüyordu.
     Genişliği sabitlemek alanı fonttan bağımsız kılar. 175px, alanın
     görünür olduğu her dilde ve her kırılma noktasında zaten oturduğu
     değerdir (ölçüldü); yerleşim değişmez. 768px altında girdi
     display:none olduğu için etkilenmez.
     EN: Narrowed to 145px (owner review, 2 Oct 2026) so the Turkish module row, now carrying
     "Müşteri Yönetimi", fits at 1440px; the placeholder measures 139px and is not cut.
     TR: 145px'e indirildi (owner incelemesi, 2 Ekim 2026): "Müşteri Yönetimi" ile Türkçe modül
     satırı 1440px'te sığsın; yer tutucu 139px ölçülür ve kesilmez. */
  width:145px;
}
.iconbtn{
  position:relative; width:34px; height:34px; display:grid; place-items:center;
  border-radius:var(--r-sm); border:1px solid transparent; background:transparent;
  color:var(--ink-2); cursor:pointer;
  transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.iconbtn:hover{ background:var(--hover); color:var(--ink); }
.badge-dot{
  position:absolute; top:3px; right:3px; min-width:15px; height:15px; padding:0 3px;
  border-radius:var(--r-pill); background:var(--gold-grad); color:var(--on-gold);
  font-size:9.5px; font-weight:800; display:grid; place-items:center;
}
.lang{ background:transparent; border:0; font-size:12.5px; font-weight:600; color:var(--ink-2); padding:0 9px; height:34px;
  display:inline-flex; align-items:center; gap:5px; border-radius:var(--r-sm); cursor:pointer; }
.lang:hover{ background:var(--hover); }

/* Gece/gündüz düğmesi — üst çubuktaki diğer ikon düğmeleriyle aynı ölçüde.
   Durumu değil YAPILACAK İŞLEMİ anlatır (etiketi theme.js yazar).

   EN: This rule used to force 19px while every other top-bar icon is
   20px, so the sun/moon glyph rendered one pixel smaller than the bell
   beside it — the comment claimed parity but the value broke it. The
   override is removed so the icon inherits the shared 20px. The button
   box stays 34×34, so nothing moves; only the optical mismatch is gone.
   TR: Bu kural 19px'e zorluyordu; üst çubuktaki diğer bütün ikonlar
   20px olduğu için güneş/ay glifi yanındaki zilden bir piksel küçük
   çiziliyordu — yorum eşitlik iddia ediyor, değer bozuyordu. Geçersiz
   kılma kaldırıldı, ikon ortak 20px'i devralır. Düğme kutusu 34×34
   kalır; hiçbir şey yer değiştirmez, yalnız görsel uyumsuzluk biter. */
.themebtn[aria-pressed="true"] .material-symbols-outlined{ color:var(--gold); }
.themebtn:hover .material-symbols-outlined{ color:var(--gold-bright); }

.navtoggle{ display:none; }

/* ---------- 6. Sol kolon ---------- */
.rail{
  position:fixed; top:var(--bar); left:0; bottom:0; width:var(--rail); z-index:55;
  background:var(--chrome); border-right:1px solid var(--line);
  display:flex; flex-direction:column;
  transition:transform var(--t) var(--ease);
}
.rail-head{ padding:16px 16px 10px; flex:none; }
.rail-head .k{ font-size:10.5px; letter-spacing:.12em; color:var(--gold); font-weight:700; }
.rail-head .t{ font-size:14px; font-weight:650; margin-top:3px; }
/* dar ekranda ana modüller sol kolona devreder */
.rail-modules{ display:none; padding:2px 10px 10px; border-bottom:1px solid var(--line-soft); margin-bottom:6px; }
.rail-modules .k{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
  font-weight:700; padding:4px 11px 6px; }
.rail-modules a{ display:block; padding:8px 11px; border-radius:var(--r-sm);
  color:var(--ink-3); font-size:13.5px; }
.rail-modules a:hover{ background:var(--hover); color:var(--ink); }
.rail-modules a.is-active{ color:var(--gold); background:var(--gold-dim); }

.rail-nav{ padding:4px 10px; overflow-y:auto; flex:1; }
.rail-nav a{
  position:relative; display:flex; align-items:center; gap:10px;
  padding:9px 11px; border-radius:var(--r-sm); color:var(--ink-3); font-size:13.5px;
  transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.rail-nav a:hover{ background:var(--hover); color:var(--ink); }
.rail-nav a.is-active{ background:var(--gold-dim); color:var(--ink); }
/* Menü adı kart başlığının kendisidir; uzun başlık tek satırda kısalır, tam ad title'dadır. */
.rail-nav a > span:last-child{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Menüden gidilen kart kısa süre altın halkayla işaretlenir. */
.card.nav-hedef{ animation:navHedef 1.6s var(--ease) 1; }
@keyframes navHedef{ 0%, 35%{ box-shadow:0 0 0 2px var(--gold); } 100%{ box-shadow:0 0 0 2px transparent; } }
.rail-nav a.is-active::before{
  content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px;
  border-radius:0 3px 3px 0; background:var(--gold-grad-2);
}
.rail-nav .material-symbols-outlined{ font-size:19px; color:inherit; }

.rail-foot{ border-top:1px solid var(--line-soft); padding:8px 10px; flex:none; }
/* Şirket ve kullanıcı satırları ince: yalnız baş harf + ad (açıklama ve rol çipi owner incelemesiyle kalktı). */
.rail-foot .orgblock, .rail-foot .userblock{ padding:6px 8px; gap:9px; }
.rail-foot .avatar{ width:26px; height:26px; font-size:10.5px; border-radius:8px; }
.rail-foot .avatar.user{ border-radius:50%; }
.rail-foot .rail-sep{ margin:4px 4px; }
/* Satır kendi sayfasındaysa (şirket sayfası / Hesabım) seçili görünür. */
.orgblock[aria-current="page"], .userblock[aria-current="page"]{ background:var(--gold-dim); border-color:var(--gold-line); }
/* Hesabım sayfası: profil içeriği tek kartta, düzenleme düğmeleri kartın altında. */
.he-card{ padding:22px 24px; }
.he-card .scdr-sec{ margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line-soft); scroll-margin-top:calc(var(--bar) + 14px); }
.he-card .scdr-sec:last-child{ border-bottom:0; padding-bottom:0; }
/* Panelin baş satırı (ad + e-posta) sayfada başlıkla aynı bilgiyi tekrar ederdi. */
.he-card .scdr-ctx{ display:none; }
/* Düzenle / Kaydet düğmeleri kartın üstünde, sağda: düzenlenen profil alanlarının hemen üzerinde. */
.he-foot{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; margin:-4px 0 4px; }
.he-foot:empty{ display:none; }
.orgblock, .userblock{
  width:100%; display:flex; align-items:center; gap:10px; text-align:left;
  padding:9px 10px; border-radius:var(--r); border:1px solid transparent;
  background:transparent; cursor:pointer;
  transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.orgblock:hover,.userblock:hover{ background:var(--hover); border-color:var(--line); }
.orgblock{ border-color:var(--line-soft); background:var(--chrome-2); }
.avatar{
  width:30px; height:30px; border-radius:9px; flex:none; display:grid; place-items:center;
  font-size:11.5px; font-weight:800; letter-spacing:.02em;
}
.avatar.org{ background:var(--avatar-org-bg); color:var(--gold);
  border:1px solid var(--gold-line); box-shadow:0 0 12px var(--gold-dim); }
.avatar.user{ background:var(--panel-3); color:var(--ink); border:1px solid var(--line); border-radius:50%; }
.blk-txt{ min-width:0; flex:1; }
/* EN: These two lines used to end in `nowrap/hidden/ellipsis`, and a second
   copy further down the same file (same specificity, so it always won) set
   `normal/visible/clip`. The row must WRAP — the measured row-height fix
   depends on it — so the winning behaviour is written here once and the
   duplicate is gone. Long names still wrap instead of being cut.
   TR: Bu iki satır `nowrap/hidden/ellipsis` ile bitiyordu; aynı dosyanın
   aşağısındaki ikinci kopya (aynı özgüllük, hep o kazanıyordu)
   `normal/visible/clip` diyordu. Satır SARMALIDIR — ölçülen satır yüksekliği
   düzeltmesi buna dayanır — bu yüzden kazanan davranış burada bir kez yazılı
   ve kopya kaldırıldı. Uzun adlar kesilmek yerine yine alt satıra iner. */
.blk-txt .n{ font-size:12.5px; font-weight:620;
  display:block; white-space:normal; overflow:visible; text-overflow:clip; line-height:1.25; }
.blk-txt .s{ font-size:11px; color:var(--ink-3);
  display:block; white-space:normal; overflow:visible; text-overflow:clip; line-height:1.3; margin-top:2px; }
.role-chip{
  display:inline-block; margin-top:3px; font-size:10px; font-weight:700; letter-spacing:.03em;
  color:var(--gold); border:1px solid var(--gold-line); background:var(--gold-dim);
  border-radius:var(--r-pill); padding:1px 7px;
}
.rail-sep{ height:1px; background:var(--line-soft); margin:8px 4px; }
/* EN: The rail's bottom block is anchored to the bottom (.rail-foot has
   margin-top:auto), so while the parser is still emitting this two-row block
   the block is short and everything above it — the organisation row and the
   user row — sits lower and then jumps up. Measured over a real HTTP
   connection at 200 KB/s with a 4x CPU throttle: #orgBtn and #userBtn moved up
   1,75 / 46 / 148,62 px depending on where the paint landed, and the element
   text went from "settingsAyarlar" to "settingsAyarlar helpDestek" — the
   second row simply had not been parsed yet. Reserving the height of the two
   REAL rows (measured: 2 x 32,75 px + 2 px gap; on a coarse pointer the rows
   are 44 px) keeps the block at its final height from the first frame. This is
   not an arbitrary page height: it is this component's own measured height.
   TR: Sol kolonun alt bloğu alta sabitlenir (.rail-foot margin-top:auto), bu
   yüzden ayrıştırıcı bu iki satırlık bloğu hâlâ yazarken blok kısa kalır ve
   üstündeki kurum ve kullanıcı satırları daha aşağıda durup sonra yukarı
   zıplar. Gerçek HTTP bağlantısında 200 KB/sn ve 4 kat işlemci kısıtıyla
   ölçüldü: #orgBtn ve #userBtn, boyamanın denk geldiği yere göre 1,75 / 46 /
   148,62 px yukarı kaydı ve ögenin metni "settingsAyarlar"dan
   "settingsAyarlar helpDestek"e döndü — ikinci satır henüz ayrıştırılmamıştı.
   İKİ GERÇEK satırın yüksekliğini ayırmak (ölçülen: 2 x 32,75 px + 2 px
   boşluk; kaba işaretleyicide satırlar 44 px) bloğu ilk kareden itibaren son
   yüksekliğinde tutar. Bu, sayfaya verilen rastgele bir yükseklik değildir;
   bu bileşenin kendi ölçülen yüksekliğidir. */
/* Destek owner incelemesiyle kalktı (2 Ekim 2026): ayrılan yükseklik TEK satırdır (Ayarlar); 13 Ekim 2026 boyut eşitlemesinden sonra 38,25 px ölçüldü. */
.rail-links{ display:flex; flex-direction:column; gap:2px; min-height:38.25px; }
/* Destek artık gerçek bir kontrol (button); bağlantılarla aynı yüzeydedir. */
/* Alttaki Şirket Ayarları bağlantısı sol menünün diğer satırlarıyla aynı boyuttadır (owner, 13 Ekim 2026): yazı 13,5 px, simge
   19 px. Simge boyutu her modül sayfasının işaretlemesinde satır içi yazılı olduğu için burada !important ile eşitlenir. */
.rail-links a, .rail-links button{ display:flex; align-items:center; gap:10px; padding:9px 11px;
  width:100%; text-align:left; border:0; background:transparent; cursor:pointer;
  border-radius:var(--r-sm); font-size:13.5px; color:var(--ink-3); }
.rail-links .material-symbols-outlined{ font-size:19px !important; flex:none; }
.rail-links a:hover, .rail-links button:hover{ background:var(--hover); color:var(--ink); }

/* ---------- 7. Ana alan ---------- */
.main{
  margin-left:var(--rail); padding:calc(var(--bar) + 22px) 26px 26px;
  min-height:100vh;
}
.page-head{ display:flex; align-items:flex-start; gap:var(--sp-4); flex-wrap:wrap; }
.page-head h1{ font-size:23px; }
.page-sub{ font-size:12.5px; color:var(--ink-3); margin-top:4px; }

/* görünüm seçici */
.viewswitch{
  display:inline-flex; gap:3px; padding:3px; border-radius:var(--r-pill);
  background:var(--chrome-2); border:1px solid var(--line);
}
.viewswitch button{
  border:0; background:transparent; color:var(--ink-3); cursor:pointer;
  padding:7px 15px; border-radius:var(--r-pill); font-size:13px; font-weight:600;
  transition:color var(--t-fast) var(--ease), background var(--t) var(--ease);
  white-space:nowrap;
}
.viewswitch button:hover{ color:var(--ink); }
.viewswitch button[aria-selected="true"]{
  background:var(--gold-grad); color:var(--on-gold); font-weight:700;
  box-shadow:0 2px 10px var(--gold-dim);
}
.headmeta{ margin-left:auto; text-align:right; font-size:12px; color:var(--ink-3); }

.chips{ display:flex; gap:7px; flex-wrap:wrap; align-items:center; margin-top:14px; }
.chip{
  padding:6px 12px; border-radius:var(--r-sm); border:1px solid var(--line);
  background:var(--chrome-2); font-size:12.5px; color:var(--ink-2); cursor:pointer;
  transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.chip:hover{ border-color:var(--line-2); color:var(--ink); }
.chip[aria-pressed="true"]{ border-color:var(--gold); color:var(--gold); background:var(--gold-dim); }
.chip.static{ cursor:default; border-style:dashed; color:var(--ink-3); }
.chip-ic{ display:inline-flex; align-items:center; gap:6px; }
.chip-ic .material-symbols-outlined{ font-size:16px; }
/* Tarih aralığı paneli: çiplerin hemen altında, sayfa akışında (üst katman değil). */
.donem-ozel{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; margin-top:10px; padding:12px 14px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--panel); }
.donem-ozel[hidden]{ display:none; }
.donem-alan{ display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:620; color:var(--ink-2); }
.donem-alan input{ height:36px; padding:0 10px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--panel-2); color:var(--ink); font:inherit; font-size:13px; color-scheme:inherit; }
.donem-alan input:focus{ outline:none; border-color:var(--gold); box-shadow:var(--focus-shadow); }
.donem-hata{ flex-basis:100%; font-size:12px; font-weight:600; color:var(--danger-ink); }
.donem-hata[hidden]{ display:none; }
.donem-not{ flex-basis:100%; font-size:11.5px; color:var(--ink-3); }
.chip.static:hover{ border-color:var(--line); color:var(--ink-3); }

/* ---------- 8. Kart ve ızgara ---------- */
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:18px 20px; position:relative;
  transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease),
             transform var(--t) var(--ease);
}
.card:hover{ border-color:var(--line-3); box-shadow:var(--shadow-card); }
.card h2{ font-size:13px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3); font-weight:700; }
.card .hint{ font-size:12px; color:var(--ink-3); }
.card-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.card-head .right{ margin-left:auto; font-size:12px; color:var(--ink-3); }

.stack{ display:flex; flex-direction:column; gap:16px; margin-top:18px; }
.grid{ display:grid; gap:16px; }
.g-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.g-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.g-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.g-8-4{ grid-template-columns:minmax(0,2.6fr) minmax(0,1fr); }
/* Satış › Öncelikli Müşteri Adayları dar sütunda: durum etiketi ve aksiyon bağlantısı iki satıra
   inebilir, tablo yatay kaydırma çubuğu açmaz (owner incelemesi, 2 Ekim 2026). */
#sec-satis-leadler td .tag{ white-space:normal; line-height:1.3; }
#sec-satis-leadler td.act-col .btn{ white-space:normal; height:auto; line-height:1.25; padding-block:6px; text-align:center; }

/* metrik */
.metric .lbl{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); font-weight:700; }
.metric .val{ font-size:34px; font-weight:700; letter-spacing:-.02em; line-height:1.12; margin-top:6px;
  font-variant-numeric:tabular-nums; }
.metric .val.v{ color:var(--verified); }
.metric .note{ font-size:12px; color:var(--ink-3); margin-top:5px; }
.delta{
  display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:650;
  color:var(--verified); background:var(--verified-bg); border-radius:var(--r-pill); padding:2px 9px;
  margin-left:8px; vertical-align:6px;
}
/* Önceki döneme göre düşüş: aynı rozet, uyarı tonunda; yön ok simgesiyle de söylenir. */
.delta.down{ color:var(--warn-ink); background:var(--warn-bg); }
.bar.neg .fl{ background:var(--warn); }
[data-compare] .vl{ white-space:nowrap; }
.metric-sm .val{ font-size:22px; }

/* pipeline */
.pipe{ display:flex; align-items:stretch; gap:8px; flex-wrap:wrap; }
/* kompakt pipeline: daha az yükseklik ve boşluk */
.pipe{ gap:6px; }
.pipe .step{
  flex:1 1 118px; min-width:0; background:var(--panel-2); border:1px solid var(--line);
  border-radius:var(--r-sm); padding:7px 10px;
}
.pipe .step .k{ font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); font-weight:700; }
.pipe .step .n{ font-size:16px; font-weight:700; margin-top:1px; line-height:1.2; font-variant-numeric:tabular-nums; }
.pipe .step .r{ font-size:10.5px; color:var(--gold); margin-top:1px; line-height:1.25; }
.pipe .arr{ font-size:16px; }
.pipe .arr{ align-self:center; color:var(--gold-deep); flex:none; }

/* bar listesi */
.bars{ margin-top:4px; }
.bar{ display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid var(--line-soft); }
.bar:last-child{ border-bottom:0; }
/* Patron: kaynak (7) ve kanal (6) tabloları yan yana eşit yükseklikte; satırlar kartı eşit böler,
   son satırlar aynı hizada biter (owner incelemesi, 2 Ekim 2026). */
#sec-kaynak, #sec-kanal{ display:flex; flex-direction:column; }
#sec-kaynak .bars, #sec-kanal .bars{ flex:1; display:flex; flex-direction:column; }
#sec-kaynak .bar, #sec-kanal .bar{ flex:1; }
.bar .nm{ flex:0 0 180px; font-size:13.5px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bar .tr{ display:block; flex:1; height:7px; background:var(--panel-3); border-radius:4px; overflow:hidden; min-width:40px; }
/* EN: The bar fill used to run a `grow` entrance animation (scaleX .02 -> 1)
   on every page load, so every chart re-animated on every visit. It carries
   no information the value itself does not, and it made the fill's measured
   box move after the first visible frame. Removed, not shortened.
   TR: Dolgu her sayfa açılışında `grow` giriş animasyonunu (scaleX .02 -> 1)
   çalıştırıyordu; her ziyarette bütün grafikler yeniden canlanıyordu. Değerin
   kendisinin taşımadığı bir bilgi taşımaz ve ilk görünür kareden sonra
   ölçülen kutuyu oynatıyordu. Kısaltılmadı, kaldırıldı. */
.bar .fl{ display:block; height:7px; border-radius:4px; background:var(--gold-grad-2); }
.bar .vl{ flex:0 0 116px; text-align:right; font-size:13px; color:var(--ink-2); font-variant-numeric:tabular-nums; }
.bar.unknown .fl{ background:var(--stripe); }

/* tablo */
.tbl-wrap{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; }
th{
  text-align:left; font-size:10px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-3); font-weight:700; padding:9px 12px; border-bottom:1px solid var(--line);
  white-space:nowrap;
}
td{ padding:9px 10px; border-bottom:1px solid var(--line-soft); font-size:13px; vertical-align:middle; }
td .lead-n{ font-weight:620; white-space:nowrap; }
tr:last-child td{ border-bottom:0; }
tbody tr{ transition:background var(--t-fast) var(--ease); }
tbody tr:hover{ background:var(--hover-soft); }
td.num, th.num{ text-align:right; font-variant-numeric:tabular-nums; }
tfoot td{ font-weight:700; border-top:1px solid var(--line); }

/* rozet */
.tag{
  display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:650;
  border-radius:var(--r-sm); padding:3px 9px; border:1px solid var(--line);
  background:var(--panel-2); color:var(--ink-2); white-space:nowrap;
}
.tag.gold{ color:var(--gold); border-color:var(--gold-line); background:var(--gold-dim); }
.tag.ok{ color:var(--verified); border-color:var(--ok-line); background:var(--verified-bg); }
.tag.warn{ color:var(--warn); border-color:var(--warn-line); background:var(--warn-bg); }
.tag.ai{ color:var(--info); border-color:var(--info-line); background:var(--info-bg); }
.tag.mut{ color:var(--ink-3); }
.score{
  display:inline-grid; place-items:center; min-width:30px; height:24px; padding:0 7px;
  border-radius:var(--r-sm); font-size:12.5px; font-weight:700;
  color:var(--gold); border:1px solid var(--gold-line); background:var(--gold-dim);
}

/* uyarı bandı */
.notice{
  display:flex; gap:10px; align-items:flex-start; border-radius:var(--r);
  padding:11px 13px; font-size:12.5px; border:1px solid;
}
.notice.warn{ border-color:var(--warn-line); background:var(--warn-bg); color:var(--warn-ink); }
.notice.info{ border-color:var(--line); background:var(--panel-2); color:var(--ink-2); }
.notice.gold{ border-color:var(--gold-line); background:var(--gold-dim); color:var(--gold-ink); }
.notice .material-symbols-outlined{ font-size:17px; flex:none; margin-top:1px; }
.notice button{ margin-left:auto; flex:none; }

/* finansal şerit */
.fin{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.fin > div{ padding:4px 20px; border-left:1px solid var(--line-soft); }
.fin > div:first-child{ border-left:0; padding-left:0; }
.fin .lbl{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); font-weight:700; }
.fin .val{ font-size:26px; font-weight:700; margin-top:5px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.fin .val.v{ color:var(--verified); }
.fin .sub{ font-size:11.5px; color:var(--ink-3); margin-top:4px; }
/* Yönetici › Dönem Finansal Özeti grafiği: tek birimli dört tutar ortak ₺ ölçeğinde, her biri kendi
   satırında (huni/yığın değil). İnce dikey işaret önceki dönemdir; yeşil yalnız doğrulanmış satırda.
   Mantıksal özellikler: Arapçada çubuklar sağdan büyür. */
.fc{ position:relative; container-type:inline-size; }
.fc-legend{ display:flex; gap:16px; justify-content:flex-end; font-size:11.5px; color:var(--ink-3); margin:0 0 4px; }
.fc-key{ display:inline-flex; align-items:center; gap:6px; }
.fc-key-bar{ width:14px; height:8px; border-radius:2px; background:var(--gold-grad-2); }
.fc-key-prev{ width:2px; height:12px; border-radius:1px; background:var(--ink-2); }
.fc-row, .fc-axis{ display:grid; grid-template-columns:minmax(150px,220px) minmax(0,1fr) minmax(170px,200px); column-gap:18px; }
.fc-row{ align-items:center; padding:12px 0; border-bottom:1px solid var(--line-soft); }
.fc-lbl b{ display:block; font-size:13.5px; font-weight:650; color:var(--ink); }
.fc-lbl span, .fc-val span{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:2px; }
.fc-track{ position:relative; height:24px; border-inline-start:1px solid var(--line);
  background-image:linear-gradient(to right, var(--line-soft) 1px, transparent 1px);
  background-size:var(--fc-adim, 25%) 100%; box-shadow:inset -1px 0 var(--line-soft); }
.fc-bar{ position:absolute; inset-inline-start:0; top:5px; bottom:5px; background:var(--gold-grad-2);
  border-start-end-radius:4px; border-end-end-radius:4px; transition:filter var(--t-fast) var(--ease); }
.fc-bar.v{ background:var(--verified); }
.fc-track:hover .fc-bar{ filter:brightness(1.15); }
.fc-prev{ position:absolute; top:1px; bottom:1px; width:2px; margin-inline-start:-1px; border-radius:1px;
  background:var(--ink-2); box-shadow:0 0 0 2px var(--panel); }
.fc-val{ text-align:end; }
.fc-val b{ display:block; font-size:16px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.fc-row.is-verified .fc-val b{ color:var(--verified); }
.fc-val span{ font-variant-numeric:tabular-nums; }
.fc-val em{ font-style:normal; font-size:11.5px; font-weight:600; color:var(--ink-3); margin-inline-start:4px; }
.fc-row.is-verified .fc-val em{ color:var(--ink-3); }
.fc-axis-in{ grid-column:2; position:relative; height:18px; font-size:10.5px; color:var(--ink-3); font-variant-numeric:tabular-nums; }
.fc-axis-in span{ position:absolute; top:5px; transform:translateX(-50%); white-space:nowrap; }
.fc-axis-in span:first-child{ transform:none; }
.fc-axis-in span:last-child{ transform:translateX(-100%); }
[dir="rtl"] .fc-axis-in span{ transform:translateX(50%); }
[dir="rtl"] .fc-axis-in span:first-child{ transform:none; }
[dir="rtl"] .fc-axis-in span:last-child{ transform:translateX(100%); }
[dir="rtl"] .fc-track{ background-image:linear-gradient(to left, var(--line-soft) 1px, transparent 1px); box-shadow:inset 1px 0 var(--line-soft); }
.fc-tip{ transform:translate(-50%, calc(-100% - 8px)); }
@container (max-width: 600px){
  .fc-row{ grid-template-columns:minmax(0,1fr) auto; row-gap:8px; }
  .fc-track{ grid-column:1 / -1; grid-row:2; }
  .fc-axis{ grid-template-columns:minmax(0,1fr); }
  .fc-axis-in{ grid-column:1; }
}

/* ajanda / toplantı */
.agenda{ display:flex; flex-direction:column; }
.agenda .day{
  display:flex; align-items:center; gap:10px; margin:14px 0 8px;
  font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700;
}
.agenda .day::after{ content:""; flex:1; height:1px; background:var(--line-soft); }
.agenda .day:first-child{ margin-top:0; }
.mrow{
  display:flex; flex-wrap:wrap; gap:12px 14px; align-items:center;
  padding:11px 12px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--panel-2); margin-bottom:8px;
  transition:border-color var(--t) var(--ease), transform var(--t) var(--ease);
}
.mrow:hover{ border-color:var(--gold-line); transform:translateX(2px); }
.mrow.live{ border-color:var(--gold-line); box-shadow:0 0 0 1px var(--gold-dim) inset; }
.mrow .when{ flex:0 0 78px; }
.mrow .who{ flex:1 1 220px; }
.mrow .act{ flex:0 0 auto; margin-left:auto; }
.mrow .when .t{ font-size:15px; font-weight:700; font-variant-numeric:tabular-nums; }
.mrow .when .d{ font-size:11px; color:var(--ink-3); }
.mrow .who{ min-width:0; overflow-wrap:normal; }
.mrow .who .c{ font-size:13.5px; font-weight:620; }
.mrow .who .s{ font-size:12px; color:var(--ink-3); margin-top:2px; }
.mrow .act{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.pulse-dot{
  width:7px; height:7px; border-radius:50%; background:var(--gold); flex:none;
  box-shadow:0 0 0 0 var(--gold-glow); animation:pulse 2.6s var(--ease) infinite;
}
@keyframes pulse{ 0%{box-shadow:0 0 0 0 var(--gold-glow)} 70%{box-shadow:0 0 0 7px transparent} 100%{box-shadow:0 0 0 0 transparent} }

/* aktivite */
.feed li{ display:flex; gap:11px; padding:10px 0; border-bottom:1px solid var(--line-soft); }
.feed li:last-child{ border-bottom:0; }
.feed .tm{ flex:0 0 46px; font-size:12px; color:var(--ink-3); font-variant-numeric:tabular-nums; padding-top:1px; }
.feed .bd{ min-width:0; font-size:13.5px; }
.feed .bd .m{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:2px; }
.feed li.ai{ border-left:2px solid var(--info-line); padding-left:10px; margin-left:-12px; }
/* Son Aktiviteler: uzun dönemde kart kendi içinde kayar, en yeni üstte; gün başlığı kayarken
   üstte kalır. Yatay dolgu, AI satırının kenar çizgisinin kesilmemesi içindir. */
.feed-scroll{ max-height:440px; overflow-y:auto; margin-inline:-12px; padding-inline:12px;
  overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--line-3) transparent; }
.feed-scroll:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:var(--r-sm, 6px); }
.feed li.fday{ position:sticky; top:0; z-index:1; display:flex; align-items:center; gap:10px;
  margin-inline:-12px; padding:12px 12px 8px; background:var(--panel); border-bottom:0;
  font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.feed li.fday::after{ content:""; flex:1; height:1px; background:var(--line-soft); }
.feed li.fday:first-child{ padding-top:0; }
/* Son Aktiviteler yanındaki karta (AI Ajan Durumu) eşit boyda: liste kartın kalan yüksekliğini doldurur. */
.card:has(> .feed-scroll [data-activity]){ display:flex; flex-direction:column; }
.card > .feed-scroll:has([data-activity]){ flex:1 1 0; min-height:320px; max-height:none; }
.feed li.warn .tm{ color:var(--warn); font-weight:600; }
/* AI Ajan Durumu: her ajan bir kutu — AI tonunda ikon, durum noktası (aktif AI rengi, kurulum yarım
   uyarı, kurulum gerekli sönük ve kesikli kenar), büyük ölçü, onay bekleyen çıktı altın rozet. */
.ag-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; list-style:none; margin:2px 0 0; padding:0; }
.ag-in{ display:flex; flex-direction:column; gap:3px; height:100%; padding:12px 14px 13px; border:1px solid var(--line);
  border-radius:var(--r); background:linear-gradient(180deg, var(--panel-2), var(--panel)); color:inherit; text-decoration:none;
  transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t) var(--ease); }
.ag-in:hover{ border-color:var(--info-line); transform:translateY(-1px); box-shadow:var(--shadow-card); }
.ag-in:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.ag-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.ag-ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; flex:none;
  background:var(--info-bg); border:1px solid var(--info-line); color:var(--info); }
.ag-ic .material-symbols-outlined{ font-size:19px; }
.ag-st{ display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--ink-3); white-space:nowrap; }
.ag-st i{ width:7px; height:7px; border-radius:50%; background:var(--info); box-shadow:0 0 0 3px var(--info-bg); }
.is-yarim .ag-st i{ background:var(--warn); box-shadow:0 0 0 3px var(--warn-bg); }
.is-kurulum .ag-st i{ background:var(--ink-3); box-shadow:none; }
.is-kurulum .ag-in{ border-style:dashed; background:var(--panel); }
.is-kurulum .ag-ic{ background:transparent; color:var(--ink-3); border-color:var(--line); }
.ag-n{ font-size:13.5px; font-weight:650; color:var(--ink); }
.ag-v{ font-size:12px; color:var(--ink-3); }
.ag-v b{ font-size:20px; font-weight:700; color:var(--ink); margin-inline-end:5px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.is-kurulum .ag-v b{ color:var(--ink-3); }
.ag-s{ font-size:11.5px; color:var(--ink-3); }
.ag-onay{ align-self:flex-start; margin-top:5px; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:600;
  color:var(--gold); background:var(--gold-dim); border:1px solid var(--gold-line); }
@container (max-width: 380px){ .ag-grid{ grid-template-columns:minmax(0,1fr); } }
.card:has(> .ag-grid){ container-type:inline-size; }
/* Takip Görevleri: açık ve gecikmiş sayısı başlıkta etiket — gecikmiş uyarı renginde dikkat çeker. */
.tk-etiket{ display:inline-flex; gap:6px; flex-wrap:wrap; }
.tk-etiket b{ font-weight:750; font-variant-numeric:tabular-nums; }
#sec-ops-gorev .feed-scroll{ max-height:380px; }

/* kv listesi */
.kv{ display:flex; flex-direction:column; gap:2px; }
/* yatay sayaç dizilimi (tam genişlik kartlarda) */
.kv.kv-row{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px 14px; }
@media (max-width:1279px){ .kv.kv-row{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:850px){ .kv.kv-row{ grid-template-columns:minmax(0,1fr); } }
.kv a, .kv div.kvrow{
  display:flex; align-items:center; gap:10px; padding:10px 11px; border-radius:var(--r-sm);
  transition:background var(--t-fast) var(--ease);
}
.kv a:hover{ background:var(--hover); }
.kv .n{ font-size:20px; font-weight:700; min-width:44px; font-variant-numeric:tabular-nums; }
.kv .n.warn{ color:var(--warn); }
.kv .l{ font-size:13px; color:var(--ink-2); min-width:0; }
.kv .go{ margin-left:auto; color:var(--ink-3); font-size:12px; white-space:nowrap; }
/* dar kolonda hedef etiketi başlığı 3 satıra kırmasın: gerekirse alt satıra iner */
@media (max-width:1279px){
  .kv a, .kv div.kvrow{ flex-wrap:wrap; row-gap:1px; }
  .kv .go, .kv .go-na{ margin-left:auto; }
  .kv .l{ flex:1 1 auto; }
}

/* ---------- 9. Görünüm geçişi ---------- */
/* EN: The `viewin` entrance animation used to run on EVERY page load and
   every tab switch, sliding the whole view up from translateY(7px).
   Measured on first open and on refresh: `#view-kurumsal` moved dy=-7px
   after the first visible frame, on every page that has views. An
   animation the user sees on every navigation carries no information, so
   it is removed rather than shortened or masked. Deliberate view changes
   still swap instantly via the [hidden] rule below.
   TR: `viewin` giriş animasyonu HER sayfa açılışında ve HER sekme
   değişiminde çalışıyor, görünümün tamamını translateY(7px)'den yukarı
   kaydırıyordu. İlk açılış ve yenilemede ölçüldü: `#view-kurumsal` ilk
   görünür kareden sonra dy=-7px hareket ediyordu. Her gezinmede görülen
   animasyon bilgi taşımaz; kısaltılmaz veya örtülmez, kaldırılır.
   Bilinçli görünüm değişimi, dosyanın başındaki genel `[hidden]` kuralıyla
   anında olur; `.view` için ayrı bir kural GEREKMEZ ve kaldırıldı:
   `.view` ögeleri <section>'dır, hiçbir stil dosyasında `display` almazlar,
   genel kural ise `!important` taşır. */

/* ---------- 10. Copilot ---------- */
.cp-mobile{ display:none; }
.cp-tab{
  position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:58;
  display:flex; flex-direction:column; align-items:center; gap:9px;
  padding:15px 9px; cursor:pointer;
  background:var(--cptab-bg);
  border:1px solid var(--gold-line); border-right:0; border-radius:12px 0 0 12px;
  color:var(--gold); box-shadow:-6px 0 22px rgba(0,0,0,.45), 0 0 18px var(--gold-dim);
  transition:box-shadow var(--t) var(--ease), padding var(--t) var(--ease);
}
.cp-tab:hover{ box-shadow:-6px 0 26px rgba(0,0,0,.5), 0 0 26px var(--gold-dim); padding-inline:11px; }
.cp-tab .lbl{ writing-mode:vertical-rl; font-size:11.5px; font-weight:700; letter-spacing:.09em; }
/* Copilot yüzeylerinde genel robot simgesi yerine onaylı kenetlenme ikonu.
   Metin görünür olduğu için ikon dekoratiftir (data-sc-alt=""), iki kez okunmaz. */
/* EN: Brand logo slots are empty until the brand runtime injects the
   image, so their box is 0 tall at first paint and everything around
   them jumps when the image arrives. The declared data-sc-size is the
   final size, so the box is reserved from it up front. No new size is
   invented and the brand package is untouched.
   TR: Marka logosu yuvaları, marka çalışma zamanı görseli yerleştirene
   kadar boştur; ilk boyamada kutu 0 yüksekliktedir ve görsel gelince
   çevresi sıçrar. Bildirilen data-sc-size nihai ölçüdür; kutu baştan
   ondan ayrılır. Yeni ölçü tanımlanmaz, marka paketine dokunulmaz. */
[data-sc-logo][data-sc-size="18"]{ width:18px; height:18px; }
[data-sc-logo][data-sc-size="20"]{ width:20px; height:20px; }
[data-sc-logo][data-sc-size="28"]{ width:28px; height:28px; }
.cp-mark{ display:block; line-height:0; flex:none; }
.cp-mark img{ display:block; }
.cp-tab .cp-mark img{ width:20px; height:20px; }
.cp-tab .spark{
  width:6px; height:6px; border-radius:50%; background:var(--gold);
  animation:pulse 3.4s var(--ease) infinite;
}
/* ---------- 10b. SellClosed Asistan — sağ alt robot tetikleyicisi ----------
   EN: The bottom-right robot launcher replaces the right-edge vertical tab (owner, 13 Oct 2026).
       packages/brand/assistant/sellclosed-robot.js draws the robot inside the same #cpTab button;
       without WebGL the button keeps the brand logo in a compact round chip. With the panel open
       the robot moves beside the panel, so a second click still closes it. Narrow screens keep the
       top-bar trigger (section 13 hides #cpTab there).
   TR: Sağ alt robot tetikleyicisi sağ kenardaki dikey sekmenin yerini alır (owner, 13 Ekim 2026).
       Robotu marka paketi aynı #cpTab düğmesinin içine çizer; WebGL yoksa düğme marka logosunu
       küçük yuvarlak bir çipte tutar. Panel açıkken robot panelin yanına geçer; ikinci tıklama
       paneli yine kapatır. Dar ekranda üst bar tetikleyicisi kalır (13. bölüm #cpTab'ı gizler). */
.cp-tab.cp-robot{
  right:calc(20px + env(safe-area-inset-right, 0px)); bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  top:auto; left:auto; transform:none;
  display:grid; place-items:center; gap:0;
  width:148px; height:148px; padding:0;
  background:transparent; border:0; border-radius:50%; box-shadow:none;
  transition:right var(--t) var(--ease), left var(--t) var(--ease);
}
/* Gündüz temasının .cp-tab gölgesi robota taşınmaz (konum kuralları yukarıda; panel açık kuralı onları ezebilsin) */
:root[data-theme="light"] .cp-tab.cp-robot{ box-shadow:none; }
.cp-tab.cp-robot:hover{ box-shadow:none; padding:0; }
/* Zemin parıltısı: gece güçlü altın, gündüz koyu altın */
.cp-tab.cp-robot.scr-ready::before{
  content:""; position:absolute; left:12%; right:12%; bottom:3%; height:30%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(242, 210, 107, .42), transparent); pointer-events:none;
}
:root[data-theme="light"] .cp-tab.cp-robot.scr-ready::before{
  background:radial-gradient(closest-side, rgba(138, 100, 20, .26), transparent);
}
.cp-tab.cp-robot .cp-mark img{ width:28px; height:28px; }
.cp-tab.cp-robot.scr-ready .cp-mark{ display:none; }
/* Yedek görünüm (WebGL yok): logoyu taşıyan 56 px yuvarlak çip */
.cp-tab.cp-robot:not(.scr-ready),
:root[data-theme="light"] .cp-tab.cp-robot:not(.scr-ready){
  width:56px; height:56px; background:var(--cptab-bg); border:1px solid var(--gold-line);
  box-shadow:0 8px 22px rgba(0,0,0,.35), 0 0 18px var(--gold-dim);
}
.cp-tab.cp-robot:focus-visible{ outline:2px solid var(--sc-border-focus); outline-offset:2px; }
.cp-tab.cp-robot[aria-expanded="true"]{ right:calc(min(392px, 94vw) + 20px + env(safe-area-inset-right, 0px)); }
/* Ekran küçüldükçe robot da küçülür (owner, 13 Ekim 2026); dar ekranda (13. bölüm) yerini üst bar tetikleyicisi alır */
@media (max-width:1279px){ .cp-tab.cp-robot{ width:128px; height:128px; } }
@media (max-width:1023px){ .cp-tab.cp-robot{ width:112px; height:112px; } }
.cp-panel{
  position:fixed; top:var(--bar); right:0; bottom:0; width:392px; max-width:94vw; z-index:70;
  background:var(--chrome-2); border-left:1px solid var(--gold-line);
  display:flex; flex-direction:column;
  transform:translateX(102%); transition:transform var(--t) var(--ease);
  box-shadow:-18px 0 44px rgba(0,0,0,.55);
}
.cp-panel.open{ transform:none; }
.cp-head .cp-mark img{ width:18px; height:18px; }
.cp-head{ display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid var(--line); }
.cp-head h2{ font-size:15px; text-transform:none; letter-spacing:0; color:var(--ink); }
.cp-ctx{ display:flex; flex-wrap:wrap; gap:6px; padding:11px 16px; border-bottom:1px solid var(--line); background:var(--chrome); }
.cp-ctx span{ font-size:11px; color:var(--ink-2); border:1px solid var(--line);
  background:var(--panel-2); border-radius:var(--r-pill); padding:3px 9px; }
.cp-body{ padding:16px; overflow-y:auto; flex:1; }
.cp-msg{ border-left:2px solid var(--gold); background:var(--gold-dim);
  border-radius:0 var(--r) var(--r) 0; padding:13px 15px; font-size:13.5px; }
.cp-meta{ font-size:11.5px; color:var(--ink-3); margin-top:9px; }
.cp-warn{ font-size:11.5px; color:var(--ink-3); font-style:italic; margin-top:5px; }
.cp-chips{ display:flex; flex-direction:column; gap:7px; margin-top:16px; }
.cp-chips button{ text-align:left; justify-content:flex-start; height:auto; padding:10px 12px; }
.cp-foot{ padding:12px 16px; border-top:1px solid var(--line); display:flex; gap:8px; }
.cp-foot input{
  flex:1; min-width:0; background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-sm); padding:10px 12px; color:var(--ink); font:inherit; font-size:13.5px;
}
.cp-foot input:focus{ outline:0; border-color:var(--focus-ring); box-shadow:0 0 0 3px var(--sc-ai-subtle-bg); }

/* ---------- 11. Açılır menü / modal ---------- */
.menu{
  position:fixed; z-index:200; isolation:isolate; width:300px; max-width:94vw; padding:7px;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow); display:none;
}
.menu.open{ display:block; animation:menuin 150ms var(--ease) both; }
@keyframes menuin{ from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none} }
.menu .mt{ padding:10px 11px 6px; }
.menu .mt .n{ font-size:13.5px; font-weight:650; }
.menu .mt .s{ font-size:11.5px; color:var(--ink-3); margin-top:2px; }
.menu .sep{ height:1px; background:var(--line-soft); margin:6px 4px; }
.menu .k{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
  font-weight:700; padding:7px 11px 4px; }
.menu button.mi, .menu a.mi{
  width:100%; display:flex; align-items:center; gap:10px; text-align:left;
  padding:9px 11px; border-radius:var(--r-sm); border:0; background:transparent;
  color:var(--ink); font-size:13.5px; cursor:pointer;
  transition:background var(--t-fast) var(--ease);
}
.menu button.mi:hover, .menu a.mi:hover{ background:var(--hover); }
.menu .mi .sub{ display:block; font-size:11.5px; color:var(--ink-3); margin-top:2px; }
.menu .mi.gold{ color:var(--gold); }
.menu .mi.gold .material-symbols-outlined{ color:var(--gold); }
.menu .mi.is-on{ background:var(--gold-dim); }
.menu .note{ font-size:11px; color:var(--ink-3); padding:8px 11px 4px; border-top:1px solid var(--line-soft); margin-top:5px; }
.menu .material-symbols-outlined{ font-size:18px; color:var(--ink-3); }

.scrim{
  position:fixed; inset:0; z-index:65; background:rgba(6,6,8,.62);
  opacity:0; pointer-events:none; transition:opacity var(--t) var(--ease);
}
.scrim.on{ opacity:1; pointer-events:auto; }

.modal{
  position:fixed; inset:0; z-index:80; display:none; padding:26px;
  overflow-y:auto;
}
.modal.open{ display:block; background:rgba(6,6,8,.72); backdrop-filter:blur(2px); }
.modal .sheet{
  max-width:880px; margin:0 auto; background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow); position:relative;
  animation:sheetin var(--t) var(--ease) both;
}
@keyframes sheetin{ from{opacity:0; transform:translateY(14px) scale(.99)} to{opacity:1; transform:none} }
.sheet-head{ display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line); }
.sheet-head h2{ font-size:17px; text-transform:none; letter-spacing:0; color:var(--ink); }
.sheet-body{ padding:20px 22px; }
.sheet-foot{ display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:16px 22px; border-top:1px solid var(--line); background:var(--chrome-2);
  border-radius:0 0 var(--r-lg) var(--r-lg); }
.sheet-foot .sp{ margin-left:auto; display:flex; gap:10px; }

/* form */
.form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.field label{ display:block; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-3); font-weight:700; margin-bottom:6px; }
.control{
  width:100%; background:var(--panel-2); border:1px solid var(--line); border-radius:var(--r-sm);
  padding:10px 12px; color:var(--ink); font:inherit; font-size:13.5px;
  transition:border-color var(--t-fast) var(--ease), box-shadow var(--t) var(--ease);
}
.control:focus{ outline:0; border-color:var(--focus-ring); box-shadow:0 0 0 3px var(--sc-ai-subtle-bg); }
textarea.control{ min-height:88px; resize:vertical; }
.chiprow{ display:flex; flex-wrap:wrap; gap:7px; }
.pchip{
  display:inline-flex; align-items:center; gap:7px; font-size:12.5px;
  border:1px solid var(--line); background:var(--panel-2); border-radius:var(--r-pill);
  padding:5px 11px; color:var(--ink-2);
}
.pchip.gold{ border-color:var(--gold-line); color:var(--gold); background:var(--gold-dim); }
.switchrow{ display:flex; align-items:flex-start; gap:12px; padding:13px 0; border-bottom:1px solid var(--line-soft); }
.switchrow:last-child{ border-bottom:0; }
.switch{
  position:relative; flex:none; width:42px; height:24px; border-radius:var(--r-pill);
  background:var(--track); border:1px solid var(--line); cursor:pointer; padding:0;
  transition:background var(--t) var(--ease), border-color var(--t) var(--ease);
}
.switch::after{
  content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%;
  background:var(--knob); transition:transform var(--t) var(--ease), background var(--t) var(--ease);
}
.switch[aria-checked="true"]{ background:var(--gold-dim); border-color:var(--gold); }
.switch[aria-checked="true"]::after{ transform:translateX(18px); background:var(--gold); }
.switchrow .txt .n{ font-size:13.5px; font-weight:620; }
.switchrow .txt .s{ font-size:12px; color:var(--ink-3); margin-top:3px; }

/* ---------- 12. Toplantı odası ---------- */
.room{ position:fixed; inset:0; z-index:85; background:var(--chrome); display:none; flex-direction:column; }
.room.open{ display:flex; }
.room-foot{ flex:none; padding:9px 16px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-3); }
.room-top{ display:flex; align-items:center; gap:14px; padding:11px 16px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.room-top .ttl{ min-width:0; }
.room-top .ttl .n{ font-size:14.5px; font-weight:650; }
.room-top .ttl .s{ font-size:11.5px; color:var(--ink-3); }
.rec{
  display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700;
  color:var(--danger-ink); border:1px solid var(--danger-line); background:var(--danger-bg);
  border-radius:var(--r-sm); padding:6px 11px;
}
.rec .d{ width:9px; height:9px; border-radius:50%; background:var(--danger); animation:recblink 2.2s var(--ease) infinite; }
@keyframes recblink{ 0%,100%{opacity:1} 50%{opacity:.35} }
.room-main{ flex:1; display:grid; grid-template-columns:minmax(0,1fr) 372px; min-height:0; }
.stage{ display:flex; flex-direction:column; min-width:0; padding:16px; gap:14px; background:var(--stage-bg); }
.tiles{ flex:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; gap:12px; min-height:0; }
.tile{
  position:relative; background:var(--tile-bg); border:1px solid var(--line);
  border-radius:var(--r); display:grid; place-items:center; min-height:130px; overflow:hidden;
}
.tile.speaking{ border-color:var(--gold-line); box-shadow:0 0 0 1px var(--gold-dim) inset, 0 0 26px var(--gold-dim); }
.tile .ini{ width:60px; height:60px; border-radius:50%; display:grid; place-items:center;
  background:var(--panel-3); color:var(--ink); font-size:19px; font-weight:800; border:1px solid var(--line); }
.tile .nm{ position:absolute; left:11px; bottom:10px; font-size:12px; color:var(--ink-2);
  background:rgba(8,8,10,.62); border-radius:var(--r-sm); padding:3px 9px; max-width:calc(100% - 22px);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tile .st{ position:absolute; right:10px; bottom:10px; display:flex; gap:6px; color:var(--ink-3); }
.tile .st .off{ color:var(--warn); }
.tile.share{ background:var(--tile-bg-2); }
.tile.share .ph{ text-align:center; color:var(--ink-3); font-size:12.5px; }
.controls{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; justify-content:center; }
.cbtn{
  width:44px; height:44px; border-radius:var(--r-pill); border:1px solid var(--line);
  background:var(--panel-2); color:var(--ink-2); display:grid; place-items:center; cursor:pointer;
  transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.cbtn:hover{ background:var(--surface-hi-2); color:var(--ink); }
.cbtn[aria-pressed="true"]{ border-color:var(--gold); color:var(--gold); background:var(--gold-dim); }
.cbtn.leave{ width:auto; padding:0 18px; gap:8px; border-color:var(--danger-line);
  background:var(--danger-bg); color:var(--danger-ink); font-weight:650; font-size:13.5px; }
.room-side{ border-left:1px solid var(--line); display:flex; flex-direction:column; min-width:0; background:var(--chrome-2); }
.tabs{ display:flex; gap:2px; padding:8px; border-bottom:1px solid var(--line); }
.tabs button{ flex:1; border:0; background:transparent; color:var(--ink-3); cursor:pointer;
  padding:9px 8px; border-radius:var(--r-sm); font-size:12.5px; font-weight:620; }
.tabs button:hover{ color:var(--ink); background:var(--hover); }
.tabs button[aria-selected="true"]{ color:var(--gold); background:var(--gold-dim); }
.side-body{ padding:16px; overflow-y:auto; flex:1; }
.status-row{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line-soft); }
.status-row:last-of-type{ border-bottom:0; }
.status-row .l{ font-size:13px; }
.status-row .r{ margin-left:auto; }
.prog{ height:3px; background:var(--panel-3); border-radius:3px; overflow:hidden; margin-top:7px; }
.prog i{ display:block; height:3px; width:42%; background:var(--gold-grad-2); border-radius:3px;
  animation:indet 2.6s var(--ease) infinite; }
@keyframes indet{ 0%{ transform:translateX(-100%) } 100%{ transform:translateX(240%) } }
.subhead{ font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3);
  font-weight:700; margin:18px 0 8px; }
.task{ display:flex; align-items:center; gap:10px; padding:10px 11px; border:1px solid var(--line);
  border-radius:var(--r); background:var(--panel); margin-bottom:8px; font-size:13px; }
.task .t{ min-width:0; flex:1; }

/* ---------- 13. Footer ---------- */
/* Kurumsal bağlantı bloğu kaldırıldı; alt bilgide yalnız marka işareti ve marka
   satırı kalır. Bloğun boşluğu ve ayırıcısı da birlikte temizlendi. */
.foot{
  margin-left:var(--rail); background:var(--chrome); border-top:1px solid var(--line);
  padding:14px 26px;
}
.foot-bottom{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  font-size:11.5px; color:var(--ink-3);
}
.foot-bottom .mark{ display:flex; align-items:center; gap:8px; }
/* Onaylı slogan alt bilgide TEK satır olarak durur; her karta tekrarlanmaz. */
.foot-slogan{ color:var(--gold); font-weight:600; letter-spacing:var(--sc-letter-spacing-wide); }
.foot-bottom .mark .brand-chip img{ width:18px; height:18px; }

/* ---------- 13a. Kısa bilgi alanı (açılır ayrıntı) ---------- */
.infobox{
  margin-top:10px; border:1px solid var(--line); border-radius:var(--r);
  background:var(--chrome-2);
}
.infobox > summary{
  display:flex; align-items:center; gap:9px; cursor:pointer; list-style:none;
  padding:9px 13px; min-height:40px; font-size:12.5px; color:var(--ink-2);
  border-radius:var(--r);
}
.infobox > summary::-webkit-details-marker{ display:none; }
.infobox > summary:hover{ background:var(--hover); color:var(--ink); }
.infobox > summary .material-symbols-outlined{ font-size:17px; color:var(--gold); }
.infobox .sum-t{ font-weight:600; }
.infobox .sum-more{ margin-left:auto; font-size:11.5px; color:var(--ink-3); }
.infobox .chev{ transition:transform var(--t) var(--ease); color:var(--ink-3) !important; }
.infobox[open] .chev{ transform:rotate(180deg); }
.infobody{ padding:2px 13px 12px 39px; }
.infobody ul{ display:flex; flex-direction:column; gap:6px; }
.infobody li{ font-size:12.5px; color:var(--ink-3); line-height:1.5; }
.infobody code{ font-size:11.5px; color:var(--gold); }

/* ---------- 13a2. İkincil metrikler (mobilde 2×2) ---------- */
.metrics-sec{
  display:grid; gap:16px 18px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  margin-top:18px; padding-top:14px; border-top:1px solid var(--line-soft);
}
.card > .metrics-sec:first-child{ margin-top:0; padding-top:0; border-top:0; }

/* ---------- 13a3. Kullanılamayan kontroller ---------- */
[data-na]{
  opacity:.42 !important; cursor:not-allowed !important; pointer-events:auto;
  text-decoration:none !important;
}
a[data-na]{ color:var(--ink-3) !important; }
[data-na]:hover{ background:transparent !important; border-color:var(--line) !important; }
.btn[data-na]:hover{ background:var(--panel-2) !important; }
.go-na{ color:var(--ink-3); font-size:12px; white-space:nowrap; }

/* ---------- 13b. Performans grafiği ---------- */
.charts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.chart{ min-width:0; }
.chart .ch-head{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:2px; }
.chart .ch-title{ font-size:13.5px; font-weight:650; }
.chart .ch-unit{
  font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--gold-line); background:var(--gold-dim);
  border-radius:var(--r-pill); padding:1px 8px;
}
.chart .ch-sub{ font-size:11.5px; color:var(--ink-3); margin-bottom:10px; }
.chart .ch-total{ margin-inline-start:auto; font-size:12.5px; font-weight:620; color:var(--ink);
  font-variant-numeric:tabular-nums; }
/* Grafik (2 Ekim 2026 yenilemesi): HTML sütunlar — uçta 4px yuvarlak, tabanda düz; ince
   kılavuz ve temiz ölçek; ortalama çizgisi; yalnız en yüksek gün etiketlenir; üzerine
   gelince/klavyeyle ipucu. Tek renk, gradient ve parıltı yok: Lead = altın (adet), tahsilat =
   doğrulanmış tahsilat rengi (tutar). İki seri ayrı kartlarda ve ayrı ölçeklerde durur.
   Zaman ekseni RTL'de de soldan sağa akar (dir="ltr"). */
.pc{ position:relative; border-radius:var(--r-sm); outline:none; }
.pc:focus-visible{ outline:var(--sc-border-width-focus) solid var(--focus-ring); outline-offset:4px; }
.pc-lead{ --pc-color:var(--gold-series-a); }
.pc-revenue{ --pc-color:var(--verified); }
.pc-plot{ position:relative; height:132px; margin:18px 54px 0 46px; }
.pc-gl{ position:absolute; left:0; right:0; height:0; border-top:1px solid var(--line-soft); }
.pc-gl-base{ border-top-color:var(--line); }
.pc-yl{ position:absolute; right:calc(100% + 8px); top:-7px; font-size:10.5px; line-height:14px;
  color:var(--ink-3); white-space:nowrap; font-variant-numeric:tabular-nums; }
.pc-cols{ position:absolute; inset:0; display:flex; align-items:flex-end; gap:2px; }
/* 45 günden uzun aralıkta sütun arası daralır; sütunlar kıl inceliğine inmez. */
.pc-dense .pc-cols{ gap:1px; }
.pc-dense .pc-col{ border-radius:2px 2px 0 0; }
.pc-slot{ flex:1 1 0; min-width:0; height:100%; display:flex; align-items:flex-end; justify-content:center;
  border-radius:4px 4px 0 0; transition:background var(--t-fast) var(--ease); }
.pc-col{ width:min(100%, 24px); min-height:2px; border-radius:4px 4px 0 0; background:var(--pc-color);
  opacity:.72; transition:opacity var(--t-fast) var(--ease); }
.pc-col.is-peak, .pc-slot.is-on .pc-col, .pc-col.is-today{ opacity:1; }
/* "Bugün" seçiliyken son 7 gün çizilir; bugünün sütunu arka plan bandıyla işaretlenir. */
.pc-slot:has(.is-today){ background:var(--hover); }
.pc-slot.is-on{ background:var(--hover); }
.pc-avg{ position:absolute; left:0; right:0; height:0; border-top:1px solid var(--ink-3); pointer-events:none; }
.pc-avg > span{ position:absolute; left:calc(100% + 6px); top:-13px; display:flex; flex-direction:column;
  font-size:10.5px; line-height:13px; color:var(--ink-2); white-space:nowrap; font-variant-numeric:tabular-nums; }
.pc-avg-k{ color:var(--ink-3); }
.pc-peak{ position:absolute; transform:translate(-50%, -5px); font-size:11px; font-weight:650; line-height:14px;
  color:var(--ink); white-space:nowrap; pointer-events:none; font-variant-numeric:tabular-nums; }
.pc-peak.is-start{ transform:translate(0, -5px); }
.pc-peak.is-end{ transform:translate(-100%, -5px); }
.pc-x{ position:relative; height:15px; margin:7px 54px 0 46px; font-size:10.5px; line-height:15px; color:var(--ink-3); }
/* Dar grafikte haftalık ara tarihler birbirine değiyordu (ör. "19. Aug.26. Aug."): yalnız ilk,
   orta ve son tarih kalır. Ölçü grafiğin kendi genişliğidir, ekranın değil. */
.chart{ container-type:inline-size; }
/* Kart darsa (tablet, açık yan menü) iki grafik alt alta dizilir; yan yana kaldıklarında
   30 sütun kıl inceliğine iniyordu. Ölçü kartın genişliğidir. */
#sec-performans{ container-type:inline-size; }
@container (max-width: 640px){ #sec-performans .charts{ grid-template-columns:minmax(0,1fr); } }
@container (max-width: 400px){ .pc-x span:nth-child(2), .pc-x span:nth-child(4){ display:none; } }
.pc-x span{ position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; }
.pc-x span:first-child{ transform:none; }
.pc-x span:last-child{ transform:translateX(-100%); }
.pc-tip{ position:absolute; top:0; z-index:3; transform:translate(-50%, calc(-100% - 6px)); display:flex;
  flex-direction:column; gap:1px; padding:6px 10px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--panel); box-shadow:var(--shadow); font-size:11px; color:var(--ink-3); white-space:nowrap;
  pointer-events:none; }
.pc-tip b{ font-size:13px; font-weight:650; color:var(--ink); font-variant-numeric:tabular-nums; }
.pc-tip[hidden]{ display:none; }
.ch-note2{ font-size:10.5px; color:var(--ink-3); margin-top:6px; }
.chart-note{
  margin-top:12px; font-size:11.5px; color:var(--ink-3);
  border-top:1px solid var(--line-soft); padding-top:10px;
}

/* ---------- 13c. Modül özetleri ---------- */
.mods{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.mod{
  display:flex; flex-direction:column; gap:6px; min-width:0;
  background:var(--panel-2); border:1px solid var(--line); border-radius:var(--r);
  padding:12px 13px;
  transition:border-color var(--t) var(--ease), background var(--t) var(--ease);
}
.mod:hover{ border-color:var(--gold-line); background:var(--surface-hi); }
.mod .m-h{ display:flex; align-items:center; gap:7px; min-width:0; }
.mod .m-h .material-symbols-outlined{ font-size:16px; color:var(--gold); }
.mod .m-h .t{ font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mod .m-v{ font-size:17px; font-weight:700; font-variant-numeric:tabular-nums; line-height:1.2; }
.mod .m-v .u{ font-size:11.5px; font-weight:500; color:var(--ink-3); }
.mod .m-s{ font-size:11.5px; color:var(--ink-3); }
.mod .m-a{ margin-top:auto; font-size:12px; color:var(--gold); display:inline-flex; align-items:center; gap:4px; }
.mod:hover .m-a{ text-decoration:underline; }

/* ---------- 13d. Sağ paneli açan satırların durumu ----------
   EN: These rows open the right-hand panel, not a dropdown, so the chevron
   points at where the panel comes from and nudges instead of flipping.
   `[dir="rtl"]` mirrors `.chev` already, so the direction follows the layout.
   TR: Bu satırlar açılır menü değil sağ paneli açar; bu yüzden ok panelin
   geldiği yönü gösterir ve dönmek yerine kısa bir adım atar. `[dir="rtl"]`
   `.chev` i zaten aynalar, yani yön yerleşimi izler. */
.orgblock .chev, .userblock .chev{ transition:transform var(--t) var(--ease); flex:none; }
.orgblock[aria-expanded="true"], .userblock[aria-expanded="true"]{
  background:var(--gold-dim); border-color:var(--gold-line);
}
.orgblock[aria-expanded="true"] .chev, .userblock[aria-expanded="true"] .chev{ transform:translateX(3px); }
.menu .sheet-grip{ display:none; }

/* ---------- 14. Responsive ---------- */
/* Copilot sekmesi içeriği örtmesin: geniş ekranda sağda yer ayrılır */
@media (min-width:768px){
  .main{ padding-right:58px; }
  .foot{ padding-right:58px; }
}
@media (max-width:1439px){
  .search{ min-width:170px; }
}
@media (max-width:1279px){
  :root{ --rail:224px; }
  .charts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mods{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .main{ padding-left:20px; padding-right:20px; }
  /* Copilot sekmesi 768–1279 arasında da içeriği örtmemeli */
  .main, .foot{ padding-right:58px; }
  .g-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .g-8-4{ grid-template-columns:minmax(0,1fr); }
  .fin{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:16px; }
  .fin > div:nth-child(3){ border-left:0; padding-left:0; }
  .search{ min-width:150px; }
  /* 1280 altında ana modüller üst barda kırpılmak yerine sol kolona devreder */
  .mainnav{ display:none; }
  .rail-modules{ display:block; }
}
@media (max-width:1023px){
  .mods{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .g-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .g-2{ grid-template-columns:minmax(0,1fr); }
  .room-main{ grid-template-columns:minmax(0,1fr) 320px; }
  .search{ min-width:0; width:36px; padding:0; justify-content:center; }
  .search input{ display:none; }
  /* EN: At this width the field holds nothing but the magnifier, so the
     visible 36x34 box IS the control. The button was only 20x20 in the
     middle of it: pressing the edge of the box did nothing (measured —
     centre opened the search, all four edges did not). The button now fills
     the box, so the whole thing is one hit target. The icon keeps its own
     size (19px font), the ground stays transparent and no default button
     border comes back; the accessible name, keyboard focus and the search
     it opens are untouched. Desktop is unaffected: this only applies where
     the text field is hidden.
     TR: Bu genişlikte alanın içinde büyüteçten başka bir şey yoktur; yani
     görünen 36x34 kutu kontrolün kendisidir. Düğme bu kutunun ortasında
     yalnız 20x20 idi: kutunun kenarına basınca bir şey olmuyordu (ölçüldü —
     merkez aramayı açıyor, dört kenar açmıyordu). Düğme artık kutuyu
     doldurur, böylece tümü tek bir tıklama hedefidir. İkon kendi ölçüsünü
     korur (19px), zemin saydam kalır ve varsayılan düğme kenarlığı geri
     gelmez; erişilebilir ad, klavye odağı ve açtığı arama değişmez.
     Masaüstü etkilenmez: bu kural yalnız metin alanı gizliyken geçerlidir. */
  .search .scsr-btn{ width:100%; height:100%; border-radius:inherit; }
}
@media (max-width:767px){
  :root{ --bar:52px; }
  .navtoggle{ display:grid; }
  .mainnav{ display:none; }
  /* üst bar dar ekranda taşmasın: dil seçici kullanıcı menüsüne devreder */
  .topbar{ gap:9px; padding:0 10px; }
  .lang{ display:none; }
  /* 4 px aralık: sağdaki Copilot düğmesi ekran kenarına dayanmaz (owner incelemesi, 2 Ekim 2026). */
  .util{ gap:4px; min-width:0; }
  /* Dar ekranda yatay kilit yerine kompakt işaret: yer kazandırır, oran korunur. */
  .brand-lockup{ display:none; }
  .brand-lockup-sm{ display:block; }
  /* Dar ekranda dokunma hedefi 44 px altına inmez, ama görünen düğme masaüstündeki gibi
     ince kalır (owner incelemesi, 2 Ekim 2026: 44 px altın düğme çok kalın duruyordu).
     Altın düğme parıltı için overflow:hidden taşıdığından görünmez bir uzantı kesilirdi;
     bunun yerine düğme 44 px kalır, üst ve alt 5'er px saydam kenardır ve altın yalnız
     ortadaki 34 px'e boyanır. Köşe yarıçapı iç yüzeyde masaüstüyle aynı kalır. */
  #newBtn{ height:var(--touch-min); min-height:var(--touch-min); padding:0 10px;
    border-top:5px solid transparent; border-bottom:5px solid transparent; background-clip:padding-box;
    border-radius:var(--r-sm) / calc(var(--r-sm) + 5px); }
  /* Çok dar ekranda (360 px gibi) "Yeni" yalnız + simgesiyle görünür; ad ekran okuyucuda kalır. */
  @media (max-width:380px){
    #newBtn > span:not(.material-symbols-outlined){ position:absolute; width:1px; height:1px; overflow:hidden;
      clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
  }
  /* marka artık sol kolon genişliğine bağlı değil */
  .brand{ flex:none; width:auto; border-inline-end:0; justify-content:flex-start;
    margin-inline-start:2px; }
  .mainnav{ margin-inline-start:0; }
  .charts{ grid-template-columns:minmax(0,1fr); }
  .mods{ grid-template-columns:minmax(0,1fr); }
  .pc-plot{ height:112px; }

  /* kurum / kullanıcı menüsü mobilde alt panel olur */
  .menu.as-sheet{
    left:0 !important; right:0 !important; bottom:0 !important; top:auto !important;
    width:100% !important; max-width:100% !important;
    border-radius:16px 16px 0 0; padding:6px 10px calc(10px + env(safe-area-inset-bottom,0px));
    max-height:82vh; overflow-y:auto;
    box-shadow:0 -14px 40px rgba(0,0,0,.6);
    animation:sheetup var(--t) var(--ease) both;
  }
  @keyframes sheetup{ from{ transform:translateY(14px); opacity:0 } to{ transform:none; opacity:1 } }
  .menu.as-sheet .sheet-grip{
    display:block; width:38px; height:4px; border-radius:3px;
    background:var(--line-2); margin:6px auto 8px;
  }
  .menu.as-sheet .mi{ min-height:46px; }
  .rail{
    transform:translateX(-100%); width:290px; max-width:88vw;
    box-shadow:0 0 44px rgba(0,0,0,.6); z-index:72;
  }
  html.nav-open .rail{ transform:none; }
  .main{ margin-left:0; padding:calc(var(--bar) + 18px) 14px 22px; }
  .foot{ margin-left:0; padding:14px 14px 12px; }
  .page-head h1{ font-size:20px; }
  .headmeta{ margin-left:0; text-align:left; width:100%; }
  .viewswitch{ width:100%; overflow-x:auto; justify-content:flex-start; }
  .g-3,.g-4{ grid-template-columns:minmax(0,1fr); }
  .fin{ grid-template-columns:minmax(0,1fr); row-gap:14px; }
  .fin > div{ border-left:0; padding-left:0; padding-block:10px; border-top:1px solid var(--line-soft); }
  .fin > div:first-child{ border-top:0; padding-top:0; }
  .metric .val{ font-size:28px; }
  .fin .val{ font-size:23px; }
  .bar{ flex-wrap:wrap; }
  .bar .nm{ flex:1 0 100%; }
  .bar .vl{ flex:0 0 auto; text-align:left; }
  .mrow{ gap:8px 10px; }
  .mrow .when, .mrow .who{ flex:1 0 100%; }
  .mrow .act{ justify-content:flex-start; margin-left:0; width:100%; flex:1 0 100%; }
  .mrow .act .btn{ flex:0 1 auto; max-width:100%; }
  .mrow .tag{ max-width:100%; }
  .form-grid{ grid-template-columns:minmax(0,1fr); }
  .modal{ padding:0; }
  .modal .sheet{ border-radius:0; min-height:100%; border:0; }
  .sheet-foot{ border-radius:0; position:sticky; bottom:0; }
  .cp-panel{ top:0; width:100%; max-width:100%; }
  /* sağ kenardaki dikey sekme mobilde kaldırıldı; giriş üst barda */
  .cp-tab{ display:none !important; }
  .cp-mobile{ display:grid; }
  /* dokunma hedefi en az 44x44 */
  .btn, .btn-sm, .chip, .viewswitch button, .iconbtn, .cbtn, .menu .mi, .infobox > summary{ min-height:44px; }
  .iconbtn, .btn-icon{ min-width:44px; }
  .rail-nav a, .rail-modules a, .rail-links a, .rail-links button{ min-height:44px; }
  /* Satırlar burada 44 px; ayrılan yer de onunla birlikte büyür. */
  .rail-links{ min-height:44px; }
  /* dar ekranda oda tek kolona iner ve dikey kayar; karolar kontrollerle çakışmaz */
  .room{ overflow-y:auto; }
  /* ızgara yerine dikey akış: satır yüksekliği sıkışıp içerik üst üste binmesin */
  .room-main{ display:flex; flex-direction:column; min-height:0; }
  .stage{ flex:none; min-height:0; padding:12px; }
  .room-side{ flex:none; }
  /* karo ızgarası doğal yüksekliğini alır; flex:1 ile kısalıp içeriği taşırmaz */
  .tiles{ flex:none; grid-template-columns:minmax(0,1fr); grid-auto-rows:minmax(150px,auto); }
  .controls{ padding:4px 0 2px; }
  .room-side{ border-left:0; border-top:1px solid var(--line); max-height:none; }
  .room-top{ padding:10px 12px; }
  /* Mobilde alt bilgi tek satır marka bloğudur; logo ve yazı sola hizalı kalır.
     `> span[style]` kuralı kaldırıldı: on sayfanın hiçbirinin alt bilgisinde
     `style` öznitelikli span yok, kural hiçbir ögeye uygulanmıyordu. */
  .foot-bottom{ gap:8px 10px; }
}
@media (max-width:389px){
  .main{ padding-left:11px; padding-right:11px; }
  .card{ padding:15px 14px; }
  .metric .val{ font-size:25px; }
  .btn{ padding:0 11px; }
}

/* dokunma hedefleri */
@media (pointer:coarse){
  .btn, .chip, .viewswitch button, .iconbtn, .cbtn{ min-height:40px; }
  .rail-nav a, .menu .mi{ min-height:42px; }
}

/* ---------- 14b. Dar ekran gezinmesi (owner incelemesi, 2 Ekim 2026) ----------
   Telefonda yan çekmece yoktur: modüller alttaki sekme çubuğunda (+ Daha fazla), bu sayfanın
   bölümleri üst çubuğun altındaki şeritte. --bar iki çubuğun toplamıdır; böylece içeriğin üst
   boşluğu, sağdan açılan paneller ve sayfa içi kaydırma hedefleri şeridi kendiliğinden hesaba katar. */
.m-secnav, .m-tabbar{ display:none; }
.m-more[hidden]{ display:none; }
@media (max-width:767px){
  /* --bar düz piksel yazılır: betikler onu sayı olarak okur (parseInt), calc() okunamazdı. 52 + 44 = 96. */
  :root{ --m-top:52px; --m-sec:44px; --m-tab:60px; --bar:96px; }
  .topbar{ height:var(--m-top); }
  .navtoggle, #navToggle, #themeBtn, .rail{ display:none !important; }
  .m-secnav{ display:flex; align-items:center; gap:6px; position:fixed; top:var(--m-top); left:0; right:0;
    height:var(--m-sec); z-index:59; padding:0 10px; overflow-x:auto; overflow-y:hidden;
    scrollbar-width:none; overscroll-behavior-x:contain; background:var(--chrome); border-bottom:1px solid var(--line); }
  .m-secnav::-webkit-scrollbar{ display:none; }
  /* Çip 32px görünür, dokunma hedefi 44px'tir: üst/alt 6'şar px saydam kenar, çerçeve iç gölgedir. */
  .m-secnav{ gap:2px; }
  .m-secnav button{ flex:none; height:var(--m-sec); padding:0 13px; border-radius:999px;
    border:0; border-top:6px solid transparent; border-bottom:6px solid transparent; background-clip:padding-box;
    background-color:transparent; box-shadow:inset 0 0 0 1px var(--line);
    color:var(--ink-3); font:inherit; font-size:12.5px; white-space:nowrap; cursor:pointer; }
  .m-secnav button.is-on{ background-color:var(--gold-dim); box-shadow:inset 0 0 0 1px var(--gold-line); color:var(--ink); font-weight:650; }
  .m-sec-n{ display:inline-grid; place-items:center; min-width:18px; height:18px; margin-inline-start:6px; padding:0 5px;
    border-radius:999px; background:var(--warn-bg); border:1px solid var(--warn-line); color:var(--warn); font-size:10.5px; font-weight:700; }
  .m-tabbar{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; left:0; right:0; bottom:0; z-index:66;
    height:calc(var(--m-tab) + env(safe-area-inset-bottom, 0px)); padding-bottom:env(safe-area-inset-bottom, 0px);
    background:var(--chrome); border-top:1px solid var(--line); }
  .m-tabbar a, .m-tabbar button{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px; min-height:var(--m-tab); padding:6px 2px; border:0; background:transparent; color:var(--ink-3);
    font:inherit; font-size:10.5px; line-height:1.15; text-align:center; cursor:pointer; }
  .m-tabbar .material-symbols-outlined{ font-size:22px; }
  .m-tabbar span:last-child{ max-width:100%; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .m-tabbar [aria-current="page"], .m-tabbar [data-m-here], .m-tabbar [aria-expanded="true"]{ color:var(--gold); }
  .m-tabbar [aria-current="page"]::before, .m-tabbar [data-m-here]::before, .m-tabbar [aria-expanded="true"]::before{
    content:""; position:absolute; top:-1px; left:28%; right:28%; height:2px; border-radius:0 0 2px 2px; background:var(--gold-grad-2); }
  /* Daha fazla açıkken bulunulan sekme vurgusu Daha fazla'ya geçer. */
  html.m-more-open .m-tabbar [aria-current="page"]{ color:var(--ink-3); }
  html.m-more-open .m-tabbar [aria-current="page"]::before{ display:none; }
  body{ padding-bottom:calc(var(--m-tab) + env(safe-area-inset-bottom, 0px)); }
  .m-more{ position:fixed; left:0; right:0; top:0; bottom:calc(var(--m-tab) + env(safe-area-inset-bottom, 0px)); z-index:65;
    background:var(--bg); overflow-y:auto; overscroll-behavior:contain; }
  .m-more-head{ position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between;
    height:var(--m-top); padding:0 8px 0 16px; background:var(--chrome); border-bottom:1px solid var(--line); }
  .m-more-head b{ font-size:16px; font-weight:700; }
  .m-more-body{ padding:4px 10px 20px; }
  .m-more-k{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; padding:16px 8px 6px; }
  .m-more-body a{ display:flex; align-items:center; gap:12px; min-height:48px; padding:0 10px; border-radius:var(--r-sm);
    color:var(--ink); font-size:14.5px; }
  .m-more-body a:hover, .m-more-body a:focus-visible{ background:var(--hover); }
  .m-more-body .material-symbols-outlined{ font-size:21px; color:var(--ink-3); }
}
/* ---------- 15. Azaltılmış hareket ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .btn-gold::after{ display:none; }
  .pulse-dot, .rec .d, .prog i{ animation:none !important; }
  .prog i{ width:42%; }
}

/* =========================================================
   Ana menü kabuğu — owner kararı 2026-10-12 (AP-1 P1-D0)
   On bir kalem sıkıştırılmaz ve yatay kaydırılmaz; sığmayanlar "Daha fazla"
   menüsüne geçer (assets/shell.js navFit). Rehber bölüm başlığındadır (P0-K3).
   ========================================================= */
.mainnav{ overflow:hidden; flex:0 1 auto; }
.mainnav a[hidden]{ display:none; }
.navmore{ position:relative; flex:0 0 auto; display:flex; align-items:center; }
.navmore[hidden]{ display:none; }
.navmore-btn{
  display:inline-flex; align-items:center; gap:2px; padding:9px 8px; border:0; background:transparent;
  border-radius:var(--r-sm); font:inherit; font-size:13px; color:var(--ink-3); cursor:pointer; white-space:nowrap;
}
.navmore-btn:hover, .navmore-btn[aria-expanded="true"]{ color:var(--ink); background:var(--hover); }
.navmore-btn .material-symbols-outlined{ font-size:18px; }
.navmore-list{
  position:absolute; top:calc(100% + 6px); inset-inline-start:0; z-index:60; min-width:200px;
  display:grid; gap:2px; padding:6px; background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow); isolation:isolate;
}
.navmore-list[hidden]{ display:none; }
.navmore-list a{ padding:9px 10px; border-radius:var(--r-sm); font-size:13.5px; color:var(--ink-2); white-space:nowrap; }
.navmore-list a:hover, .navmore-list a:focus-visible{ background:var(--hover); color:var(--ink); outline:none; }
@media (max-width:1279px){ .navmore{ display:none; } }
.rail-nav a[data-guide-moved]{ display:none; }
.pg-guide{
  align-self:center; display:inline-flex; align-items:center; gap:6px; padding:7px 12px;
  border:1px solid var(--line); border-radius:999px; font-size:13px; font-weight:600; color:var(--ink-2);
  background:var(--panel); white-space:nowrap;
}
.pg-guide .material-symbols-outlined{ font-size:17px; color:var(--gold-ink, var(--ink-2)); }
.pg-guide:hover{ border-color:var(--gold-line, var(--line)); color:var(--ink); }
.pg-guide.is-on{ border-color:var(--gold-line); background:var(--gold-dim); color:var(--ink); }
.page-head .pg-guide{ margin-left:auto; }
.page-head .pg-guide + .headmeta{ margin-left:16px; }
@media (max-width:1023px){ .pg-guide{ min-height:44px; padding:10px 14px; } }
@media (max-width:767px){ .page-head .pg-guide{ margin-left:0; order:3; } }
/* Medya kabuk sayfası (AP-4'e kadar yönlendirir) */
.md-move{ display:flex; gap:16px; align-items:flex-start; padding:20px; }
.md-move-ic{ flex:0 0 44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--panel-2); }
.md-move-ic .material-symbols-outlined{ font-size:22px; color:var(--ink-2); }
.md-move-tx h2{ margin:0 0 6px; font-size:17px; }
.md-move-tx p{ margin:0 0 10px; color:var(--ink-2); font-size:13.5px; }
.md-move-note{ display:flex; gap:8px; align-items:center; font-size:12.5px !important; color:var(--ink-3) !important; }
.md-rules{ margin-top:14px; padding:16px 20px; }
.md-rules h3{ margin:0 0 8px; font-size:14px; }
.md-rules ul{ margin:0; padding-inline-start:18px; color:var(--ink-2); font-size:13.5px; display:grid; gap:4px; }
@media (prefers-reduced-motion:reduce){ .navmore-btn, .pg-guide{ transition:none; } }
