/* ==========================================================================
   MySYS UI Kit — myv2.css   ·   v2.0.0
   Production tasarım sistemi (framework'süz, tek dosya). Eşi: myv2.js
   Cache-busting: <link rel="stylesheet" href="myv2.css?v=2.0.0">
   Tek dosyalık, framework'süz tasarım sistemi.
   Ortak palet: slate nötr + mavi primary + subtle shadow.

   Kullanım:
     <link rel="stylesheet" href="mysys-ui.css">
   Bootstrap/Metronic ile birlikte de çalışır; kendi sınıfları `mys-` /
   `is-` / semantik önekleriyle isolate edilmiştir, Bootstrap sınıflarını
   ezmez.

   Tema renkleri: --primary token'ları override edilerek değiştirilir.

   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TASARIM TOKEN'LARI  (:root)
   Bir projede değer değiştirmek istiyorsan BURAYI override et, bileşen
   kurallarına dokunma.
   -------------------------------------------------------------------------- */
:root {
  /* Nötr yüzeyler */
  --bg:            #FAFBFC;   /* sayfa zemini */
  --bg-soft:       #F3F5F8;   /* girintili panel / tablo başlık zemini */
  --card:          #FFFFFF;   /* kart, panel, input zemini */
  --border:        #EEF1F4;   /* varsayılan çizgi */
  --border-strong: #E3E7EC;   /* input / vurgulu ayraç */

  /* Metin */
  --text:       #222A38;   /* birincil metin, başlık */
  --text-soft:  #5B6472;   /* ikincil metin, açıklama */
  --text-faint: #9AA3B2;   /* placeholder, meta, disabled */
  --text-on-primary: #FFFFFF;

  /* Marka / primary — TENANT BAZLI OVERRIDE EDİLEBİLİR (white-label) */
  --primary:        #3D6FD6;
  --primary-hover:  #305CBB;
  --primary-active: #274E9E;
  --primary-soft:   #EAF0FE;   /* açık zemin (seçili nav, hafif buton) */
  --primary-softer: #F4F7FE;   /* çok açık tint */
  --primary-ring:   rgba(61,111,214,0.28); /* focus halkası — primary'yi izlesin */

  /* Semantik — her biri: base (metin/ikon), soft (zemin), softer (tint) */
  --blue:   #4A7FE8; --blue-soft:   #EAF0FE; --blue-softer:   #F4F7FE;
  --green:  #2FAE7C; --green-soft:  #E7F8F1; --green-softer:  #F2FBF7;
  --red:    #E25C5C; --red-soft:    #FCEAEA; --red-softer:    #FEF4F4;
  --yellow: #E8A93B; --yellow-soft: #FDF3E2; --yellow-softer: #FFFAEF;
  --purple: #8B7FE8; --purple-soft: #F0EEFD; --purple-softer: #F7F6FE;
  --cyan:   #38B6C9; --cyan-soft:   #E4F6F9; --cyan-softer:   #F2FBFC;

  /* Anlam takma adları (bileşenler bunları kullanır) */
  --success: var(--green);  --success-soft: var(--green-soft);
  --danger:  var(--red);    --danger-soft:  var(--red-soft);
  --warning: var(--yellow); --warning-soft: var(--yellow-soft);
  --info:    var(--blue);   --info-soft:    var(--blue-soft);

  /* Yarıçap */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  /* Gölge — mavi-tint, çok yumuşak */
  --shadow-sm: 0 1px 2px rgba(20,30,50,0.04), 0 1px 1px rgba(20,30,50,0.03);
  --shadow-md: 0 6px 20px rgba(30,40,70,0.06), 0 1px 3px rgba(30,40,70,0.04);
  --shadow-lg: 0 16px 40px rgba(30,40,70,0.10), 0 2px 6px rgba(30,40,70,0.05);
  --shadow-dropdown: 0 12px 34px rgba(20,30,50,0.18), 0 4px 12px rgba(20,30,50,0.12); /* dropdown/menü — daha belirgin */
  --shadow-focus: 0 0 0 3px var(--primary-ring);

  /* Tipografi */
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-heading: 'Manrope', var(--font-body);
  --font-mono:    'SFMono-Regular', 'Consolas', 'Courier New', monospace;

  --fs-xs:   11px;
  --fs-sm:   12.5px;
  --fs-base: 13px;    /* gövde varsayılan — yoğun veri arayüzü */
  --fs-md:   14px;
  --fs-lg:   16px;
  --fs-xl:   18px;
  --fs-2xl:  22px;
  --fs-3xl:  30px;

  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semi:   600;
  --fw-bold:   700;
  --fw-black:  800;

  --lh-tight: 1.25;
  --lh-base:  1.5;

  /* Boşluk ölçeği (4px tabanı) */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px; --sp-12: 48px;

  /* Layout */
  --sidebar-w: 248px;
  --sidebar-w-collapsed: 76px;
  --header-h: 68px;

  --transition: 140ms ease;
}

/* --------------------------------------------------------------------------
   2. TEMEL RESET  (yalnızca gerekli, Bootstrap ile çakışmayan miktar)
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

body.mys {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* --------------------------------------------------------------------------
   3. TİPOGRAFİ
   -------------------------------------------------------------------------- */
.mys h1, .mys h2, .mys h3, .mys h4, .mys h5, .mys h6,
.mys .h1, .mys .h2, .mys .h3, .mys .h4, .mys .h5, .mys .h6 {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--text);
  margin: 0 0 var(--sp-3);
}
.mys h1, .mys .h1 { font-size: var(--fs-3xl); font-weight: var(--fw-black); letter-spacing: -0.02em; }
.mys h2, .mys .h2 { font-size: var(--fs-2xl); font-weight: var(--fw-black); letter-spacing: -0.01em; }
.mys h3, .mys .h3 { font-size: var(--fs-xl); }
.mys h4, .mys .h4 { font-size: var(--fs-lg); }
.mys h5, .mys .h5 { font-size: var(--fs-md); }
.mys h6, .mys .h6 { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-soft); }

.mys p { margin: 0 0 var(--sp-3); }
.mys small, .mys .text-sm { font-size: var(--fs-sm); }
.mys .text-xs   { font-size: var(--fs-xs); }
.mys .text-soft  { color: var(--text-soft); }
.mys .text-faint { color: var(--text-faint); }
.mys .text-muted { color: var(--text-faint); }
.mys .fw-semi { font-weight: var(--fw-semi); }
.mys .fw-bold { font-weight: var(--fw-bold); }

.mys a { color: var(--primary); text-decoration: none; transition: color var(--transition); }
.mys a:hover { color: var(--primary-hover); text-decoration: underline; }

.mys hr { border: 0; border-top: 1px solid var(--border); margin: var(--sp-5) 0; }

.mys code, .mys kbd, .mys samp {
  font-family: var(--font-mono);
  font-size: 0.9em;
}
.mys code {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 1px 6px;
  color: var(--red);
}
.mys kbd {
  background: var(--text);
  color: #fff;
  border-radius: 6px;
  padding: 2px 7px;
  font-size: var(--fs-xs);
  box-shadow: inset 0 -2px 0 rgba(0,0,0,0.25);
}
.mys pre {
  background: #1B2130;
  color: #E7EAF0;
  border-radius: var(--radius-sm);
  padding: var(--sp-4);
  overflow: auto;
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
.mys pre code { background: none; border: 0; color: inherit; padding: 0; }

.mys blockquote {
  margin: 0 0 var(--sp-4);
  padding: var(--sp-3) var(--sp-4);
  border-left: 3px solid var(--primary);
  background: var(--primary-softer);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--text-soft);
}

.mys ul, .mys ol { margin: 0 0 var(--sp-4); padding-left: var(--sp-5); }
.mys li { margin-bottom: var(--sp-1); }
.mys dl { margin: 0 0 var(--sp-4); }
.mys dt { font-weight: var(--fw-semi); }
.mys dd { margin: 0 0 var(--sp-2); color: var(--text-soft); }

.mys mark { background: var(--yellow-soft); color: var(--text); padding: 0 3px; border-radius: 3px; }

/* --------------------------------------------------------------------------
   4. LAYOUT — App shell, sidebar, topnav, grid, kart
   -------------------------------------------------------------------------- */

/* GRID APP SHELL (önerilen) — üstte tam-genişlik topbar, solda sidebar, sağda içerik.
   <body class="mys"><div class="mys-app">
       <header class="mys-topnav-bar">…</header>
       <aside class="mys-sidebar">…</aside>
       <main  class="mys-content">…</main>
   </div></body>
   Sidebar'ı katlamak için .mys-app'e is-collapsed ekle. Sidebar'sız sayfa için
   .mys-app--no-sidebar. */
/* NOT: Şablon örneğindeki `.mys-app` grid + `.mys-shell` flex layout sistemi bu UYGULAMADA KULLANILMIYOR.
   Gerçek kabuk `class="mys" id="mys-app"` + myv2-shell.css'te position:fixed ile kurulu (grid DEĞİL).
   Ölü grid kuralları kaldırıldı — class `.mys-app`/`.mys-shell` hiçbir view'da yok (id `mys-app` var). */

/* --- ÜST YATAY NAV / TOPBAR --- */
.mys-topnav-bar {
  grid-area: topbar;
  height: var(--header-h); background: var(--card);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 6px; padding: 0 20px;
  position: sticky; top: 0; z-index: 40;
}
.mys-topnav-logo {
  display: flex; align-items: center; gap: var(--sp-2); height: 100%;
  padding-right: 18px; margin-right: 8px; border-right: 1px solid var(--border);
  font-family: var(--font-heading); font-weight: var(--fw-black); font-size: var(--fs-lg); cursor: pointer;
}
/* Logo: 30px sabit yükseklik yerine KUTU (yükseklik + genişlik sınırı) + object-fit:contain.
   Depolar farklı oranlarda logo yüklüyor (yatay ideal, ama kare ve DİKEY de var). Kutu yaklaşımı her oranı
   oranı bozmadan mümkün olduğunca büyütür: geniş logo genişliğe, dikey/kare logo yüksekliğe oturur.
   44px (eski 30px) → topbar 68px içinde belirgin ama nefesli; max-width geniş logonun nav'ı itmesini engeller. */
.mys-topnav-logo img { height: 44px; max-width: 200px; object-fit: contain; display: block; }

/* Hamburger — sadece mobilde görünür, off-canvas sidebar'ı açar.
   .mys öneki: .mys-icon-btn'in display:flex'ini ezmek için özgüllük 0,2,0 */
.mys .mys-hamburger { display: none; }
/* Mobil karartma perdesi — masaüstünde gizli (grid'e girmesin) */
.mys-sidebar-backdrop { display: none; }

/* Profil butonu — pill (avatar + ad/rol + chevron), prototip yerleşimi */
.mys-profile-btn { display: flex; align-items: center; gap: 9px; padding: 5px 10px 5px 5px; border-radius: var(--radius-pill); border: 1px solid var(--border); background: var(--card); cursor: pointer; }
.mys-profile-btn:hover { background: var(--bg-soft); }
.mys-profile-btn > svg { width: 13px; height: 13px; color: var(--text-faint); }
.mys-profile-meta { display: flex; flex-direction: column; line-height: 1.2; text-align: left; }
.mys-profile-meta b { font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--text); }
.mys-profile-meta span { font-size: 10.5px; color: var(--text-faint); }
.mys-topnav { display: flex; align-items: center; gap: 2px; height: 100%; }
.mys-topnav { flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; } /* kalan alanı alır, çok öğede iç kaydırma yapar → sağ utility'ler yerinde kalır */
.mys-topnav::-webkit-scrollbar { display: none; }
.mys-topnav-item {
  display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 12px;
  font-size: 13px; font-weight: var(--fw-bold); color: var(--text-soft);
  border-bottom: 2.5px solid transparent; cursor: pointer; white-space: nowrap;
  transition: color var(--transition), background var(--transition), border-color var(--transition);
  text-decoration: none;
}
.mys-topnav-item svg { width: 17px; height: 17px; flex-shrink: 0; }

/* İkon kalem uçları yuvarlak — nokta/kısa çizgi ikonlar (ör. yardım "?") düzgün görünsün */
.mys-topnav-item svg, .mys-nav-item svg, .mys-ic svg, .mys-icon-btn svg,
.mys-dropdown__item svg, .mys-lang-btn svg, .mys-stat__icon svg {
  stroke-linecap: round; stroke-linejoin: round;
}

/* Sidebar bağlam anahtarlama — top menü seçimine göre sol menü değişir */
.mys-sidebar-contexts { display: block; }          /* bağlam kapsayıcısı */
.mys-sidebar-context { display: none; }
.mys-sidebar-context.is-active { display: block; }
/* .mys öneki: genel `.mys a` link rengini (0,1,1) ezmek için özgüllük yükseltilir → nav gri kalır */
.mys .mys-topnav-item { color: var(--text-soft); }
.mys .mys-topnav-item:hover { color: var(--text); background: var(--bg-soft); text-decoration: none; } /* seçili olmayan → gri kalır, sadece koyulaşır */
.mys .mys-topnav-item.is-active { color: var(--primary); border-bottom-color: var(--primary); } /* yalnızca aktif item mavi */
.mys-topnav-right { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-shrink: 0; }

/* Topbar ikon butonları — ayar / bildirim / yardım (36px, hover'da soft zemin, badge noktası) */
.mys-icon-btn {
  width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; position: relative;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-soft); background: none; border: 0; cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.mys-icon-btn:hover { background: var(--bg-soft); color: var(--text); }
/* STANDART: topbar utility ikonları <a> olsa bile NÖTR GRİ kalsın (`.mys a` marka rengini ezmesin).
   Marka rengi yalnız aktif nav + primary aksiyon + badge'e ayrılır → profesyonel, white-label güvenli. */
.mys .mys-icon-btn { color: var(--text-soft); text-decoration: none; }
.mys .mys-icon-btn:hover { color: var(--text); background: var(--bg-soft); }
.mys-icon-btn svg { width: 18px; height: 18px; }
.mys-icon-btn__dot { position: absolute; top: 7px; right: 8px; min-width: 7px; height: 7px; border-radius: var(--radius-pill); background: var(--danger); border: 2px solid var(--card); }
.mys-icon-btn__count { position: absolute; top: 3px; right: 3px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: var(--radius-pill); background: #E5383B; color: #fff; font-size: 10px; font-weight: var(--fw-bold); display: flex; align-items: center; justify-content: center; border: 2px solid var(--card); box-shadow: 0 0 0 1px rgba(229,56,59,0.35); }
/* Dikkat isteyen okunmamis bildirim (ör. aga yeni urun) varken zil rozeti yanip soner. */
.mys-icon-btn__count.is-alert { animation: mys-badge-blink 1.1s ease-in-out infinite; }
@keyframes mys-badge-blink {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 1px rgba(229,56,59,0.35); }
  50%      { opacity: 0.45; transform: scale(0.88); box-shadow: 0 0 0 4px rgba(229,56,59,0.25); }
}
@media (prefers-reduced-motion: reduce) { .mys-icon-btn__count.is-alert { animation: none; } }
/* Panel değiştirici (eski panele dön) — ikon-only (PM: topbar kalabalık). Diğer utility ikonlarından
   AYRILSIN diye İKONUN TAMAMI mavi↔mor nefes alır (nokta/rozet yerine tüm ikon); hover'da pulse durur ve
   sabit primary'ye oturur (kullanıcı buldu → dikkat çekmeye gerek yok). Açıklama data-tip tooltip'inde. */
.mys-icon-btn--switch svg { animation: mys-switch-pulse 2.2s ease-in-out infinite; }
.mys-icon-btn--switch:hover svg { animation: none; opacity: 1; color: var(--primary); }
@keyframes mys-switch-pulse {
  0%, 100% { color: #3D6FD6; opacity: 1; }    /* mavi */
  50%      { color: #8B7FE8; opacity: 0.55; } /* mor */
}
@media (prefers-reduced-motion: reduce) { .mys-icon-btn--switch svg { animation: none; color: var(--primary); } }
/* Topbar ikon butonu tooltip'i — TÜM sağ butonlarda TUTARLI (native title + Metronic tooltip karışıklığını
   bitirir; data-tip ile framework'süz, sidebar daraltılmış tooltip'iyle aynı koyu stil). aria-label a11y'yi taşır. */
.mys-topnav-right .mys-icon-btn[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%);
  background: #1F2733; color: #fff; font-size: 11.5px; font-weight: var(--fw-semi);
  padding: 5px 9px; border-radius: 6px; white-space: nowrap; z-index: 60;
  pointer-events: none; box-shadow: 0 6px 18px rgba(20,30,50,0.18);
}

/* Dil seçici */
.mys-lang-btn { display: flex; align-items: center; gap: 7px; padding: 7px 10px 7px 8px; border-radius: 10px; font-size: var(--fs-base); font-weight: var(--fw-semi); color: var(--text-soft); background: none; border: 0; cursor: pointer; }
.mys-lang-btn:hover { background: var(--bg-soft); }
.mys-lang-btn__flag { font-size: 16px; line-height: 1; }
.mys-lang-btn svg { width: 12px; height: 12px; opacity: 0.6; }

/* --- SOL SIDEBAR (zengin) — gradient ikon çipleri, gruplar, badge, katlanır alt-menü --- */
.mys-sidebar {
  grid-area: sidebar;
  background: var(--card); border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  height: calc(100vh - var(--header-h));
  position: sticky; top: var(--header-h);
  transition: width var(--transition);
}
.mys-sidebar__brand { /* opsiyonel — logo topbar'daysa gerekmez */
  height: var(--header-h); display: flex; align-items: center; gap: var(--sp-3);
  padding: 0 var(--sp-4); border-bottom: 1px solid var(--border);
  font-family: var(--font-heading); font-weight: var(--fw-black); font-size: var(--fs-lg); flex-shrink: 0;
}
.mys-sidebar__search { padding: 14px 12px 4px; flex-shrink: 0; }
.mys-search-hint { margin: 6px 2px 0; font-size: 0.82rem; line-height: 1.35; color: var(--text-faint); }
.mys-sidebar__nav { padding: 12px; overflow-y: auto; overflow-x: hidden; flex: 1; }
.mys-sidebar__foot { padding: 12px; border-top: 1px solid var(--border); flex-shrink: 0; }

.mys-nav-group { margin-bottom: 4px; }
.mys-nav-group__label,
.mys-nav-section { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-faint); font-weight: var(--fw-bold); padding: 14px 12px 6px; white-space: nowrap; }

.mys-nav-item {
  display: flex; align-items: center; gap: 11px;
  padding: 7px 12px; border-radius: var(--radius-sm);
  color: var(--text-soft); font-size: 13.5px; font-weight: var(--fw-medium);
  cursor: pointer; white-space: nowrap; position: relative;
  transition: background var(--transition), color var(--transition); margin-bottom: 2px;
}
/* .mys öneki: `.mys a` link rengini ezmek için (sidebar nav item'ları da <a>) → gri kalır */
.mys .mys-nav-item { color: var(--text-soft); }
.mys .mys-nav-item:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }
.mys .mys-nav-item.is-active { background: var(--primary-soft); color: var(--primary); font-weight: var(--fw-semi); }
.mys-nav-item__label { overflow: hidden; text-overflow: ellipsis; flex: 1; }
.mys-nav-item__badge { font-size: 10.5px; font-weight: var(--fw-bold); background: var(--bg-soft); color: var(--text-soft); padding: 1px 7px; border-radius: var(--radius-pill); }
.mys-nav-item.is-active .mys-nav-item__badge { background: var(--primary); color: #fff; }
.mys-nav-item__arrow { width: 14px; height: 14px; color: var(--text-faint); flex-shrink: 0; transition: transform var(--transition); }
.mys-nav-item.is-expanded .mys-nav-item__arrow { transform: rotate(180deg); }

/* Gradient ikon çipi — premium his buradan gelir (32px, gradient + iç highlight + gölge) */
.mys-ic { width: 32px; height: 32px; flex-shrink: 0; border-radius: 10px; display: flex; align-items: center; justify-content: center; transition: transform var(--transition), box-shadow var(--transition); }
.mys-ic svg { width: 17px; height: 17px; stroke-width: 2; }
.mys-nav-item:hover .mys-ic { transform: translateY(-1px); }
.mys-ic--blue   { background: linear-gradient(150deg,#EAF1FE,#D8E6FD); color: #3D6FD6; box-shadow: 0 2px 5px rgba(74,127,232,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--green  { background: linear-gradient(150deg,#E8F9F1,#D3F3E4); color: #239B6C; box-shadow: 0 2px 5px rgba(47,174,124,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--yellow { background: linear-gradient(150deg,#FEF4E0,#FCE8C5); color: #B9821F; box-shadow: 0 2px 5px rgba(232,169,59,0.18), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--red    { background: linear-gradient(150deg,#FDEAEA,#FBD9D9); color: #CC4949; box-shadow: 0 2px 5px rgba(226,92,92,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--purple { background: linear-gradient(150deg,#F1EEFD,#E4DEFB); color: #6E5FCC; box-shadow: 0 2px 5px rgba(139,127,232,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--cyan   { background: linear-gradient(150deg,#E4F6F9,#CDEEF3); color: #1E8A9B; box-shadow: 0 2px 5px rgba(56,182,201,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--orange { background: linear-gradient(150deg,#FFF0E4,#FDDFC6); color: #C46B22; box-shadow: 0 2px 5px rgba(233,142,60,0.18), inset 0 1px 0 rgba(255,255,255,0.8); }
.mys-ic--pink   { background: linear-gradient(150deg,#FDEBF2,#FBD7E6); color: #C24D82; box-shadow: 0 2px 5px rgba(226,92,150,0.16), inset 0 1px 0 rgba(255,255,255,0.8); }

/* Katlanır alt-menü (accordion). Varsayılan GİZLİ; parent'a (data-mys-submenu) tıklayınca myv2.js .is-open ekler
   → açılır, parent .is-expanded ile ok döner. Şu an yalnız admin nav (Admin/Settings) kullanır; müşteri navı
   .mys-sidebar-context kullanır → bu değişiklik müşteri kabuğunu etkilemez. */
.mys-nav-sub { padding: 2px 0 6px; overflow: hidden; display: none; }
.mys-nav-sub.is-open { display: block; }
.mys-nav-sub-item { display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 44px; font-size: 12.5px; font-weight: var(--fw-semi); color: var(--text-soft); cursor: pointer; border-radius: var(--radius-sm); margin: 0 8px; }
.mys-nav-sub-item:hover { background: var(--bg-soft); color: var(--text); }
.mys-nav-sub-item.is-active { background: var(--primary-soft); color: var(--primary); }
.mys-nav-sub-item.is-disabled { opacity: 0.5; pointer-events: none; }
.mys-nav-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--text-faint); }
.mys-nav-count { margin-left: auto; font-size: 10.5px; font-weight: var(--fw-bold); color: var(--text-faint); background: var(--bg-soft); padding: 0 6px; border-radius: var(--radius-pill); }
/* Sidebar grup ayraci — nav-item grupları arasi ince yatay cizgi (or. gonderi turleri: musteri/FBA/depo/iade). */
.mys-nav-divider { height: 0; margin: 7px 12px; border: 0; border-top: 1px solid var(--border); }
/* Katlanmış (collapsed) durum kuralları → myv2-shell.css `#mys-app.is-collapsed` (gerçek eleman id `mys-app`,
   class `.mys-app` DEĞİL). Buradaki eski `.mys-app.is-collapsed` kuralları ölüydü → kaldırıldı. */

/* Destek kartı (sidebar dibi) */
.mys-support { display: flex; align-items: center; gap: 10px; background: var(--green-softer); border: 1px solid var(--green-soft); border-radius: var(--radius-md); padding: 12px; }
.mys-support__ic { width: 32px; height: 32px; flex-shrink: 0; background: var(--green); border-radius: 9px; display: flex; align-items: center; justify-content: center; }
.mys-support__ic svg { width: 17px; height: 17px; stroke: #fff; }
.mys-support__txt { font-size: var(--fs-xs); color: var(--text-soft); line-height: 1.4; overflow: hidden; }

/* Katlama butonu — sidebar'ın EN ALTINDA (prototip yerleşimi) */
.mys-collapse-btn {
  width: 100%; margin-top: 10px; display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 8px; border-radius: var(--radius-sm);
  color: var(--text-faint); background: none; border: 0; cursor: pointer;
  font-size: var(--fs-sm); font-weight: var(--fw-semi);
  transition: background var(--transition), color var(--transition);
}
.mys-collapse-btn:hover { background: var(--bg-soft); color: var(--text-soft); }
.mys-collapse-btn svg { width: 14px; height: 14px; transition: transform 0.25s ease; }

/* Eski flat nav ikonu (geriye dönük uyumluluk) */
.mys-nav-item__icon { width: 18px; height: 18px; flex: 0 0 18px; }

.mys-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mys-topbar {
  height: var(--header-h);
  flex: 0 0 var(--header-h);
  background: var(--card);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: var(--sp-4);
  padding: 0 var(--sp-6);
  position: sticky; top: 0; z-index: 20;
}
.mys-topbar__spacer { flex: 1; }
.mys-content { padding: var(--sp-6); flex: 1; }

.mys-grid { display: grid; gap: var(--sp-4); }
.mys-grid--2 { grid-template-columns: repeat(2, 1fr); }
.mys-grid--3 { grid-template-columns: repeat(3, 1fr); }
.mys-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .mys-grid--3, .mys-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px)  { .mys-grid--2, .mys-grid--3, .mys-grid--4 { grid-template-columns: 1fr; } }

.mys-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
.mys-card__head {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5);
  border-bottom: 1px solid var(--border);
}
.mys-card__title { font-family: var(--font-heading); font-weight: var(--fw-bold); font-size: var(--fs-md); margin: 0; }
.mys-card__body { padding: var(--sp-5); }
.mys-card__foot { padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--border); background: var(--bg-soft); border-radius: 0 0 var(--radius-md) var(--radius-md); }

/* İstatistik kartı (dashboard) — HERO varyant: sol renkli ikon çipi + değer +
   etiket, hover'da yukarı kalkar. Prototip imza kartı. `mys-card` ile birlikte
   kullan: <div class="mys-card mys-stat mys-stat--blue"> */
.mys-stat {
  display: flex; align-items: center; gap: 14px; padding: 18px;
  border-radius: var(--radius-lg);
  transition: transform var(--transition), box-shadow var(--transition);
}
.mys-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.mys-stat__icon {
  width: 44px; height: 44px; border-radius: 12px; flex: 0 0 44px;
  display: flex; align-items: center; justify-content: center;
  background: var(--primary-soft); color: var(--primary);
}
.mys-stat__icon svg { width: 21px; height: 21px; }
.mys-stat__body { min-width: 0; }
.mys-stat__value { font-family: var(--font-heading); font-size: 23px; font-weight: var(--fw-black); letter-spacing: -0.01em; line-height: 1.1; color: var(--text); }
.mys-stat__label { font-size: var(--fs-sm); color: var(--text-soft); font-weight: var(--fw-semi); margin-top: 2px; }
.mys-stat__delta { font-size: var(--fs-sm); font-weight: var(--fw-bold); margin-top: 3px; display: inline-flex; align-items: center; gap: 3px; color: var(--text-faint); }
.mys-stat__delta.is-up { color: var(--green); }
.mys-stat__delta.is-down { color: var(--red); }
/* Renk varyantları — 3px renkli sol kenar + ikon çipini boyar (prototip imzası) */
.mys-stat--blue   { border-left: 3px solid var(--blue); }
.mys-stat--green  { border-left: 3px solid var(--green); }
.mys-stat--yellow { border-left: 3px solid var(--yellow); }
.mys-stat--red    { border-left: 3px solid var(--red); }
.mys-stat--purple { border-left: 3px solid var(--purple); }
.mys-stat--blue   .mys-stat__icon { background: var(--blue-soft);   color: var(--blue); }
.mys-stat--green  .mys-stat__icon { background: var(--green-soft);  color: var(--green); }
.mys-stat--yellow .mys-stat__icon { background: var(--yellow-soft); color: #B5810F; }
.mys-stat--red    .mys-stat__icon { background: var(--red-soft);    color: var(--red); }
.mys-stat--purple .mys-stat__icon { background: var(--purple-soft); color: var(--purple); }

/* KPI kartı — KOMPAKT varyant: üstte renkli aksan çizgisi, uppercase etiket,
   değer, up/down değişim. İkonsuz, yoğun KPI şeritleri için.
   <div class="mys-card mys-kpi mys-kpi--green"> */
.mys-kpi { padding: 16px 18px; border-top: 3px solid var(--border-strong); }
.mys-kpi__label { font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 6px; }
.mys-kpi__value { font-family: var(--font-heading); font-size: var(--fs-2xl); font-weight: var(--fw-black); letter-spacing: -0.01em; color: var(--text); }
.mys-kpi__change { font-size: var(--fs-sm); font-weight: var(--fw-bold); margin-top: 4px; color: var(--text-faint); display: inline-flex; align-items: center; gap: 3px; }
.mys-kpi__change.is-up { color: var(--green); }
.mys-kpi__change.is-down { color: var(--red); }
.mys-kpi--blue   { border-top-color: var(--blue); }
.mys-kpi--green  { border-top-color: var(--green); }
.mys-kpi--yellow { border-top-color: var(--yellow); }
.mys-kpi--red    { border-top-color: var(--red); }
.mys-kpi--purple { border-top-color: var(--purple); }

/* Hero karşılama banner'ı — dashboard imza bloğu (prototiplerin .welcome'ı).
   Varsayılan gradient primary'den türer; tenant kendi marka gradient'ini
   inline `style="background:linear-gradient(...)"` ile override eder. */
.mys-hero {
  position: relative; overflow: hidden;
  border-radius: var(--radius-lg); padding: 28px 32px; color: #fff;
  background: linear-gradient(105deg, var(--primary) 0%, var(--primary-hover) 55%, var(--primary-active) 100%);
  display: flex; align-items: center; gap: var(--sp-6);
}
.mys-hero__body { position: relative; z-index: 2; flex: 1; min-width: 0; }
.mys-hero__eyebrow { font-size: 11.5px; font-weight: var(--fw-black); color: rgba(255,255,255,0.9); letter-spacing: 0.05em; margin-bottom: 6px; display: inline-flex; align-items: center; gap: 6px; }
.mys-hero__title { font-family: var(--font-heading); font-size: 25px; font-weight: var(--fw-black); letter-spacing: -0.01em; margin: 0 0 6px; color: #fff; }
.mys-hero__text { font-size: 13.5px; color: rgba(255,255,255,0.88); max-width: 440px; line-height: 1.6; margin: 0; }
.mys-hero__actions { display: flex; gap: 10px; margin-top: 18px; }
.mys-hero__art { position: relative; z-index: 2; flex-shrink: 0; opacity: 0.95; display: flex; align-items: center; }
@media (max-width: 680px) { .mys-hero { flex-direction: column; align-items: flex-start; } .mys-hero__art { display: none; } }

/* --------------------------------------------------------------------------
   5. BUTONLAR
   -------------------------------------------------------------------------- */
.mys-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: var(--fw-semi);
  line-height: 1;
  padding: 9px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
  white-space: nowrap;
  text-decoration: none;
  user-select: none;
}
.mys-btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.mys-btn:disabled, .mys-btn.is-disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

.mys-btn--primary { background: var(--primary); color: var(--text-on-primary); }
.mys-btn--primary:hover { background: var(--primary-hover); color: #fff; text-decoration: none; }
.mys-btn--primary:active { background: var(--primary-active); }
/* <a> olarak kullanılan primary buton: `.mys a` (0,1,1) özgüllüğü `.mys-btn--primary`yi (0,1,0)
   eziyordu → metin primary mavisine dönüp MAVİ ZEMİNDE KAYBOLUYORDU (yalnız :hover doğruydu).
   Aynı `.mys` önek tekniği nav/topbar/dropdown kurallarında da kullanılıyor. */
.mys a.mys-btn--primary,
.mys a.mys-btn--primary:link,
.mys a.mys-btn--primary:visited,
a.mys-btn--primary:link,
a.mys-btn--primary:visited { color: var(--text-on-primary); }

.mys-btn--secondary { background: var(--card); color: var(--text); border-color: var(--border-strong); }
.mys-btn--secondary:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }

.mys-btn--ghost { background: transparent; color: var(--text-soft); }
.mys-btn--ghost:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }

.mys-btn--danger { background: var(--danger); color: #fff; }
.mys-btn--danger:hover { background: #C94A4A; color: #fff; text-decoration: none; }

.mys-btn--success { background: var(--success); color: #fff; }
.mys-btn--success:hover { background: #279970; color: #fff; text-decoration: none; }

.mys-btn--soft { background: var(--primary-soft); color: var(--primary); }
.mys-btn--soft:hover { background: #DCE7FD; text-decoration: none; }

.mys-btn--light { background: #fff; color: var(--primary); } /* renkli/gradient zemin üstünde (ör. hero) */
.mys-btn--light:hover { background: rgba(255,255,255,0.88); color: var(--primary); text-decoration: none; }
.mys-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255,255,255,0.6); }
.mys-btn--outline-light:hover { background: rgba(255,255,255,0.14); color: #fff; text-decoration: none; }

.mys-btn--sm { padding: 6px 12px; font-size: var(--fs-sm); }
.mys-btn--lg { padding: 12px 22px; font-size: var(--fs-md); }
.mys-btn--icon { padding: 9px; }
.mys-btn--block { display: flex; width: 100%; }

.mys-btn-group { display: inline-flex; }
.mys-btn-group .mys-btn { border-radius: 0; border-right-width: 0; }
.mys-btn-group .mys-btn:first-child { border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.mys-btn-group .mys-btn:last-child { border-radius: 0 var(--radius-sm) var(--radius-sm) 0; border-right-width: 1px; }

/* --------------------------------------------------------------------------
   6. ROZET / PILL / ETİKET
   -------------------------------------------------------------------------- */
.mys-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--fs-xs); font-weight: var(--fw-bold);
  padding: 2px 8px; border-radius: 6px; line-height: 1.6;
}
.mys-badge--gray   { background: var(--bg-soft); color: var(--text-soft); }
.mys-badge--blue   { background: var(--blue-soft); color: var(--blue); }
.mys-badge--green  { background: var(--green-soft); color: var(--green); }
.mys-badge--red    { background: var(--red-soft); color: var(--red); }
.mys-badge--yellow { background: var(--yellow-soft); color: #B5810F; }
.mys-badge--purple { background: var(--purple-soft); color: var(--purple); }

/* Semantik alias'lar — renk adlarını sayfa koduna sızdırmamak için */
.mys-badge--success { background: var(--green-soft); color: var(--green); }
.mys-badge--danger  { background: var(--red-soft); color: var(--red); }
.mys-badge--warning { background: var(--yellow-soft); color: #B5810F; }

/* Durum pill (nokta + metin) */
.mys-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--fs-sm); font-weight: var(--fw-semi);
  padding: 3px 10px; border-radius: var(--radius-pill);
  background: var(--bg-soft); color: var(--text-soft);
}
.mys-pill__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mys-pill--success { background: var(--green-soft); color: var(--green); }
.mys-pill--danger  { background: var(--red-soft); color: var(--red); }
.mys-pill--warning { background: var(--yellow-soft); color: #B5810F; }
.mys-pill--info    { background: var(--blue-soft); color: var(--blue); }

/* --------------------------------------------------------------------------
   7. FORM ELEMANLARI  (endüstri standardı + validation state'leri)
   -------------------------------------------------------------------------- */
/* Form grid — kolonlar sayfada inline grid-template-columns ile verilir.
   (Tanım eksikti: display:grid olmayınca inline kolon tanımları ölü kalıyor,
   alanlar tek sütuna yığılıyordu — 2026-09-02. Legacy'de bu sınıfı kullanan
   view yok; GLOBAL form sayfaları kullanır.) */
.mys-form-grid { display: grid; gap: var(--sp-4, 12px); align-items: start; }

.mys-form-group { margin-bottom: var(--sp-4); }
.mys-label {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--fs-sm); font-weight: var(--fw-semi);
  color: var(--text); margin-bottom: 6px;
}
.mys-label .req { color: var(--red); }           /* zorunlu alan yıldızı */
.mys-hint { font-size: var(--fs-xs); color: var(--text-faint); margin-top: 5px; }

.mys-input, .mys-select, .mys-textarea {
  display: block; width: 100%;
  font-family: var(--font-body); font-size: var(--fs-base);
  color: var(--text); background: var(--card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  transition: border-color var(--transition), box-shadow var(--transition);
  appearance: none;
}
.mys-input::placeholder, .mys-textarea::placeholder { color: var(--text-faint); }
.mys-input:hover, .mys-select:hover, .mys-textarea:hover { border-color: #CBD2DB; }
.mys-input:focus, .mys-select:focus, .mys-textarea:focus {
  outline: none; border-color: var(--primary); box-shadow: var(--shadow-focus);
}
.mys-input:disabled, .mys-select:disabled, .mys-textarea:disabled,
.mys-input[readonly] { background: var(--bg-soft); color: var(--text-soft); cursor: not-allowed; }
.mys-textarea { min-height: 92px; resize: vertical; }

.mys-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235B6472' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
  padding-right: 36px;
}

/* Input + ikon / önek-sonek (ör. telefon +90) */
.mys-input-affix { display: flex; align-items: stretch; }
.mys-input-affix > .mys-input { border-radius: 0; }
.mys-input-affix > :first-child { border-top-left-radius: var(--radius-sm); border-bottom-left-radius: var(--radius-sm); }
.mys-input-affix > :last-child  { border-top-right-radius: var(--radius-sm); border-bottom-right-radius: var(--radius-sm); }
.mys-affix {
  display: flex; align-items: center; padding: 0 12px;
  background: var(--bg-soft); border: 1px solid var(--border-strong);
  color: var(--text-soft); font-size: var(--fs-sm); white-space: nowrap;
}
.mys-input-affix > .mys-affix + .mys-input { border-left: 0; }
.mys-input-affix > .mys-input + .mys-affix { border-left: 0; }

/* Checkbox & radio */
.mys-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: var(--fs-base); }
.mys-check input[type="checkbox"], .mys-check input[type="radio"] {
  width: 17px; height: 17px; accent-color: var(--primary); cursor: pointer; margin: 0;
}

/* Switch (toggle) */
.mys-switch { position: relative; display: inline-block; width: 40px; height: 22px; }
.mys-switch input { opacity: 0; width: 0; height: 0; }
.mys-switch__track {
  position: absolute; inset: 0; background: var(--border-strong);
  border-radius: var(--radius-pill); transition: background var(--transition); cursor: pointer;
}
.mys-switch__track::before {
  content: ""; position: absolute; height: 16px; width: 16px; left: 3px; top: 3px;
  background: #fff; border-radius: 50%; transition: transform var(--transition); box-shadow: var(--shadow-sm);
}
.mys-switch input:checked + .mys-switch__track { background: var(--primary); }
.mys-switch input:checked + .mys-switch__track::before { transform: translateX(18px); }
.mys-switch input:focus-visible + .mys-switch__track { box-shadow: var(--shadow-focus); }

/* --- VALIDATION STATE'LERİ --- */
/* :user-invalid = kullanıcı alanla etkileşince (blur/submit) geçersizse boyar,
   sayfa açılışında değil. Desteklemeyen tarayıcılar için .is-invalid ile
   aynı görünümü JS/server verir. */
.mys-input:user-invalid,
.mys-select:user-invalid,
.mys-textarea:user-invalid,
.mys-input.is-invalid, .mys-select.is-invalid, .mys-textarea.is-invalid {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(226,92,92,0.18);
}
.mys-input.is-valid, .mys-select.is-valid, .mys-textarea.is-valid,
.mys-input:user-valid { border-color: var(--green); }

/* Hata / başarı mesajı (server + client ortak) */
.mys-feedback {
  display: none; align-items: center; gap: 6px;
  font-size: var(--fs-xs); font-weight: var(--fw-medium); margin-top: 6px;
}
.mys-feedback--error { color: var(--danger); }
.mys-feedback--success { color: var(--success); }
/* Alan geçersizken kardeş hata mesajını göster (CSS-only fallback) */
.mys-input:user-invalid ~ .mys-feedback--error,
.mys-textarea:user-invalid ~ .mys-feedback--error,
.mys-select:user-invalid ~ .mys-feedback--error,
.mys-input.is-invalid ~ .mys-feedback--error,
.mys-textarea.is-invalid ~ .mys-feedback--error,
.mys-select.is-invalid ~ .mys-feedback--error,
.mys-feedback.is-shown { display: flex; }

/* ASP.NET MVC unobtrusive validation köprüsü:
   field-validation-error / input-validation-error sınıflarını da boyar. */
.mys .input-validation-error { border-color: var(--danger) !important; box-shadow: 0 0 0 3px rgba(226,92,92,0.18); }
.mys .field-validation-error { color: var(--danger); font-size: var(--fs-xs); font-weight: var(--fw-medium); display: block; margin-top: 6px; }
.mys .validation-summary-errors { color: var(--danger); }

/* --------------------------------------------------------------------------
   8. UYARI / ALERT & TOAST
   -------------------------------------------------------------------------- */
.mys-alert {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  font-size: var(--fs-base);
}
.mys-alert__icon { flex: 0 0 18px; margin-top: 1px; }
.mys-alert__title { font-weight: var(--fw-bold); margin: 0 0 2px; }
.mys-alert--info    { background: var(--blue-softer);   border-color: var(--blue-soft);   color: #2C4E8F; }
.mys-alert--success { background: var(--green-softer);  border-color: var(--green-soft);  color: #1E7A56; }
.mys-alert--warning { background: var(--yellow-softer); border-color: var(--yellow-soft); color: #97690B; }
.mys-alert--danger  { background: var(--red-softer);    border-color: var(--red-soft);    color: #B03A3A; }

/* z-index 1090 = Bootstrap toast katmani: acik modal (1050) ustunde kalir. 1000'ken musteri ana
   sayfasindaki acilis duyuru modali uyari kutusunu yarisina kadar ortup butonunu tiklanamaz yapiyordu. */
.mys-toast-stack { position: fixed; top: var(--sp-4); right: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-2); z-index: 1090; }
.mys-toast {
  display: flex; align-items: center; gap: var(--sp-3);
  background: var(--card); border: 1px solid var(--border);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius-sm); box-shadow: var(--shadow-lg);
  padding: var(--sp-3) var(--sp-4); min-width: 280px;
}
.mys-toast--success { border-left-color: var(--success); }
.mys-toast--danger  { border-left-color: var(--danger); }
.mys-toast--warning { border-left-color: var(--warning); }

/* --------------------------------------------------------------------------
   9. TABLO
   -------------------------------------------------------------------------- */
.mys-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--card); }
.mys-table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.mys-table thead th {
  text-align: left; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--text-faint); font-weight: var(--fw-bold);
  padding: var(--sp-3) var(--sp-4); background: var(--bg-soft);
  border-bottom: 1px solid var(--border); white-space: nowrap;
}
.mys-table tbody td { padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--border); vertical-align: middle; }
.mys-table tbody tr:last-child td { border-bottom: 0; }
.mys-table tbody tr:hover { background: var(--primary-softer); }
.mys-table--striped tbody tr:nth-child(even) { background: var(--bg-soft); }
.mys-table--compact thead th, .mys-table--compact tbody td { padding: 7px var(--sp-3); }
.mys-table td.num, .mys-table th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   10. NAVİGASYON YARDIMCILARI — breadcrumb, tabs, pagination
   -------------------------------------------------------------------------- */
.mys-breadcrumb { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); color: var(--text-faint); list-style: none; padding: 0; margin: 0; }
.mys-breadcrumb li { display: flex; align-items: center; gap: var(--sp-2); margin: 0; }
.mys-breadcrumb li:not(:last-child)::after { content: "/"; color: var(--border-strong); }
.mys-breadcrumb a { color: var(--text-soft); }
.mys-breadcrumb .is-current { color: var(--text); font-weight: var(--fw-semi); }

.mys-tabs { display: flex; gap: var(--sp-1); border-bottom: 1px solid var(--border); }
.mys-tab {
  padding: var(--sp-3) var(--sp-4); font-size: var(--fs-base); font-weight: var(--fw-semi);
  color: var(--text-soft); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color var(--transition), border-color var(--transition); background: none; border-top: 0; border-left: 0; border-right: 0;
}
.mys-tab:hover { color: var(--text); }
.mys-tab.is-active { color: var(--primary); border-bottom-color: var(--primary); }

.mys-pagination { display: flex; gap: 4px; align-items: center; }
.mys-page {
  min-width: 32px; height: 32px; padding: 0 8px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-strong); background: var(--card);
  border-radius: var(--radius-sm); color: var(--text-soft); font-weight: var(--fw-semi);
  font-size: var(--fs-sm); cursor: pointer; transition: all var(--transition);
}
.mys-page:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }
.mys-page.is-active { background: var(--primary); border-color: var(--primary); color: #fff; }
.mys-page:disabled, .mys-page.is-disabled { opacity: 0.45; pointer-events: none; }

/* --------------------------------------------------------------------------
   11. AVATAR / PROGRESS / SPINNER / TOOLTIP / MODAL / DROPDOWN
   -------------------------------------------------------------------------- */
.mys-avatar {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  aspect-ratio: 1; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--primary-soft); color: var(--primary);
  font-weight: var(--fw-bold); font-size: var(--fs-sm);
}
.mys-avatar--sm { width: 26px; height: 26px; font-size: var(--fs-xs); }
.mys-avatar--lg { width: 48px; height: 48px; font-size: var(--fs-lg); }
.mys-avatar--gradient { background: linear-gradient(135deg, var(--blue), var(--purple)); color: #fff; } /* topbar profil */

.mys-progress { height: 8px; background: var(--bg-soft); border-radius: var(--radius-pill); overflow: hidden; }
.mys-progress__bar { height: 100%; background: var(--primary); border-radius: var(--radius-pill); transition: width var(--transition); }
.mys-progress__bar.is-success { background: var(--success); }
.mys-progress__bar.is-warning { background: var(--warning); }

.mys-spinner {
  width: 20px; height: 20px; border: 2.5px solid var(--border-strong);
  border-top-color: var(--primary); border-radius: 50%;
  animation: mys-spin 0.7s linear infinite; display: inline-block;
}
@keyframes mys-spin { to { transform: rotate(360deg); } }

.mys-tooltip { position: relative; display: inline-flex; }
.mys-tooltip__bubble {
  position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  background: var(--text); color: #fff; font-size: var(--fs-xs); font-weight: var(--fw-medium);
  padding: 5px 9px; border-radius: 6px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity var(--transition); z-index: 50;
}
.mys-tooltip:hover .mys-tooltip__bubble { opacity: 1; }

.mys-modal-backdrop {
  position: fixed; inset: 0; background: rgba(20,30,50,0.45);
  display: flex; align-items: center; justify-content: center; z-index: 900; padding: var(--sp-4);
}
.mys-modal {
  background: var(--card); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  width: 100%; max-width: 480px; max-height: 90vh; overflow: auto;
}
.mys-modal__head { display: flex; align-items: center; padding: var(--sp-5); border-bottom: 1px solid var(--border); }
.mys-modal__title { font-family: var(--font-heading); font-weight: var(--fw-bold); font-size: var(--fs-lg); margin: 0; flex: 1; }
.mys-modal__body { padding: var(--sp-5); }
.mys-modal__foot { display: flex; justify-content: flex-end; gap: var(--sp-2); padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--border); }

.mys-dropdown { position: relative; display: inline-block; }
.mys-dropdown__menu {
  position: absolute; top: calc(100% + 6px); right: 0; min-width: 200px;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: var(--shadow-dropdown); padding: 6px; z-index: 100;
}
.mys-dropdown__item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--radius-sm);
  font-size: var(--fs-base); cursor: pointer;
}
/* .mys öneki: dropdown item'ları genelde <a> → `.mys a` mavisini ez */
.mys .mys-dropdown__item { color: var(--text-soft); }
.mys .mys-dropdown__item:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }
.mys-dropdown__divider { height: 1px; background: var(--border); margin: 6px 0; }

/* Dropdown genişletmeleri — başlık, grup etiketi, iki-satır item, geniş menü */
.mys-dropdown__menu--wide { min-width: 268px; }
.mys-dropdown__head { padding: 10px 12px 6px; font-size: 11.5px; font-weight: var(--fw-black); color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.04em; }
.mys-dropdown__label { padding: 8px 12px 4px; font-size: 10.5px; font-weight: var(--fw-bold); color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.05em; }
.mys-dd-text { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.mys-dd-text b { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--text); }
.mys-dd-text small { font-size: var(--fs-xs); color: var(--text-faint); font-weight: var(--fw-medium); }
.mys-dropdown__item .mys-ic { width: 30px; height: 30px; }
.mys-dropdown__check { margin-left: auto; color: var(--primary); flex-shrink: 0; }

/* Profil başlığı (avatar + ad + e-posta) */
.mys-dd-profile { display: flex; align-items: center; gap: 11px; padding: 12px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.mys-dd-profile__name { font-weight: var(--fw-bold); font-size: var(--fs-md); color: var(--text); }
.mys-dd-profile__mail { font-size: var(--fs-xs); color: var(--text-faint); }

/* --- Taşma koruması: uzun ad/rol/email butonu ya da menüyü şişirmesin, "…" ile kesilsin --- */
.mys-profile-meta { max-width: 160px; overflow: hidden; }
.mys-profile-meta b, .mys-profile-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mys-dd-profile { min-width: 0; }
.mys-dd-profile > div { min-width: 0; flex: 1; }              /* email/ad kısalabilsin (flex çocuk) */
.mys-dd-profile > .mys-avatar { flex: 0 0 auto; }             /* avatar da div: flex:1 onu elipse çeviriyordu */
.mys-dd-profile__name, .mys-dd-profile__mail { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (min-width: 641px) { .mys-dropdown__menu { max-width: 340px; } } /* mobilde left/right zaten sınırlar */

/* Bildirim item'ı — okunmadı noktası + zaman */
.mys-notif-item { display: flex; gap: 10px; padding: 10px; border-radius: var(--radius-sm); cursor: pointer; }
.mys-notif-item:hover { background: var(--bg-soft); }
.mys-notif-item.is-unread { background: var(--primary-softer); }
.mys-notif-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); flex-shrink: 0; margin-top: 5px; }
.mys-notif-item__title { font-size: var(--fs-sm); color: var(--text); font-weight: var(--fw-semi); }
.mys-notif-item__time { font-size: 10.5px; color: var(--text-faint); margin-top: 2px; }

/* --------------------------------------------------------------------------
   12. Depo değiştirici
   -------------------------------------------------------------------------- */
.mys-wh-switcher { position: relative; }
.mys-wh-trigger {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 7px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  background: var(--card); font-weight: var(--fw-semi); font-size: var(--fs-sm); cursor: pointer;
}
.mys-wh-trigger:hover { background: var(--bg-soft); }
.mys-wh-flag { width: 18px; height: 13px; border-radius: 2px; object-fit: cover; }
.mys-wh-menu {
  position: absolute; top: calc(100% + 8px); right: 0; width: 300px;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: var(--shadow-dropdown); padding: var(--sp-2); z-index: 200;
}
.mys-wh-item { display: flex; align-items: center; gap: var(--sp-3); padding: 9px 10px; border-radius: var(--radius-sm); cursor: pointer; }
.mys-wh-item:hover { background: var(--bg-soft); }
.mys-wh-item.is-current { background: var(--primary-soft); }
.mys-wh-item__name { font-weight: var(--fw-semi); font-size: var(--fs-base); }
.mys-wh-item__meta { font-size: var(--fs-xs); color: var(--text-faint); }

/* --------------------------------------------------------------------------
   12.5 VERİ SAYFASI BİLEŞENLERİ  (interaktif-prototip-v2'den damıtıldı)
   Stok / sipariş / satın-alma gibi yoğun liste sayfalarının ortak pattern'leri.
   -------------------------------------------------------------------------- */

/* Arama kutusu — ikon + kenarlıksız input, focus-within'de kart zeminine geçer.
   Opsiyonel ⌘K ipucu için .mys-search__kbd. */
.mys-search {
  display: flex; align-items: center; gap: 9px;
  background: var(--bg-soft); border: 1px solid transparent;
  border-radius: var(--radius-sm); padding: 8px 12px; transition: all var(--transition);
}
.mys-search:focus-within { background: var(--card); border-color: var(--primary); box-shadow: var(--shadow-focus); }
.mys-search svg { width: 16px; height: 16px; color: var(--text-faint); flex: 0 0 16px; }
.mys-search input { border: 0; background: none; outline: none; font-family: var(--font-body); font-size: var(--fs-base); color: var(--text); width: 100%; }
/* Yükseklik sayfa (Metronic/DataTable) global `input`/line-height CSS'inden ETKİLENMESİN → sabitle.
   .mys ile özgüllük artırılır; appearance:none native search kutusu boyut farkını da nötrler. */
.mys .mys-search input { height: 20px; line-height: 20px; padding: 0; margin: 0; -webkit-appearance: none; appearance: none; box-sizing: content-box; }
.mys .mys-search input::-webkit-search-decoration,
.mys .mys-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.mys-search input::placeholder { color: var(--text-faint); }
.mys-search__kbd { font-size: var(--fs-xs); color: var(--text-faint); border: 1px solid var(--border-strong); background: var(--card); padding: 1px 6px; border-radius: 5px; white-space: nowrap; }

/* Filtre çubuğu — arama + select + buton yan yana, alta hizalı, sarar. */
.mys-filters { display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--sp-4); }
.mys-filters > * { margin: 0; }

/* Chip — seçilebilir yuvarlak etiket (filtre/kategori). .is-on ile aktif. */
.mys-chip {
  display: inline-flex; align-items: center; gap: 7px;
  border: 1.5px solid var(--border-strong); border-radius: var(--radius-pill);
  padding: 7px 14px; font-size: var(--fs-sm); font-weight: var(--fw-bold);
  color: var(--text-soft); background: var(--card); cursor: pointer; transition: all var(--transition);
}
.mys-chip:hover { border-color: var(--primary); }
.mys-chip.is-on { border-color: var(--primary); background: var(--primary-softer); color: var(--primary); }
.mys-chip__x { color: var(--text-faint); cursor: pointer; display: inline-flex; } /* kaldırılabilir chip */
.mys-chip__x:hover { color: var(--danger); }

/* Tag — küçük, salt-görsel etiket + tag satırı. */
.mys-tag-row { display: flex; gap: 6px; flex-wrap: wrap; }
.mys-tag { font-size: var(--fs-xs); padding: 2px 9px; border-radius: 6px; background: var(--bg-soft); border: 1px solid var(--border); color: var(--text-soft); font-weight: var(--fw-semi); }

/* Empty state — liste/sonuç boşken ortalanmış bilgilendirme. */
.mys-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-3); color: var(--text-faint); text-align: center; padding: var(--sp-10) var(--sp-4); }
.mys-empty__icon { width: 44px; height: 44px; opacity: 0.6; }
.mys-empty__title { font-weight: var(--fw-bold); color: var(--text-soft); font-size: var(--fs-md); }

/* Choice grid — seçilebilir seçenek kartları (ör. iade nedeni, plan seçimi).
   .is-selected ile vurgulanır; renk için modifier ekleyebilirsin. */
.mys-choice-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
@media (max-width: 680px) { .mys-choice-grid { grid-template-columns: repeat(2, 1fr); } }
.mys-choice {
  border: 2px solid var(--border-strong); background: var(--card); border-radius: var(--radius-md);
  padding: 14px 10px; text-align: center; cursor: pointer;
  font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--text-soft); transition: all var(--transition);
}
.mys-choice:hover { border-color: var(--primary); }
.mys-choice.is-selected { border-color: var(--primary); background: var(--primary-softer); color: var(--primary); }
.mys-choice.is-selected.mys-choice--danger { border-color: var(--danger); background: var(--red-soft); color: var(--danger); }

/* Kolon görünürlük — tablo kolon aç/kapa menüsü + gizleme yardımcısı. */
.mys-col-check { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 7px; font-size: var(--fs-sm); color: var(--text); font-weight: var(--fw-medium); cursor: pointer; }
.mys-col-check:hover { background: var(--bg-soft); }
.mys-col-check input { accent-color: var(--primary); }
.mys-hidden-col, td.mys-hidden-col, th.mys-hidden-col { display: none; }

/* Seçili tablo satırı (çoklu seçim). */
.mys-table tr.is-selected td { background: var(--primary-softer); }

/* --------------------------------------------------------------------------
   13. YARDIMCI SINIFLAR (utility)
   -------------------------------------------------------------------------- */
.mys-flex { display: flex; } .mys-flex-col { flex-direction: column; }
.mys-items-center { align-items: center; } .mys-justify-between { justify-content: space-between; }
.mys-gap-1 { gap: var(--sp-1);} .mys-gap-2 { gap: var(--sp-2);} .mys-gap-3 { gap: var(--sp-3);} .mys-gap-4 { gap: var(--sp-4);}
.mys-mt-2{margin-top:var(--sp-2)}.mys-mt-4{margin-top:var(--sp-4)}.mys-mb-2{margin-bottom:var(--sp-2)}.mys-mb-4{margin-bottom:var(--sp-4)}
.mys-w-full { width: 100%; } .mys-text-right { text-align: right; } .mys-text-center { text-align: center; }
.mys-hidden { display: none !important; }
.mys-only-desktop { }               /* ≤640px'de gizlenir (aşağıdaki media query) */
.mys .mys-only-mobile { display: none; }  /* sadece ≤1024px'de görünür (off-canvas menü içi bölümler) */

/* --------------------------------------------------------------------------
   13.5 RESPONSIVE — tablet & mobil
   -------------------------------------------------------------------------- */

/* ≤ 1024px: sidebar off-canvas olur, üst bölüm nav'ı gizlenir, hamburger çıkar */
@media (max-width: 1024px) {
  .mys-app { grid-template-columns: 1fr; grid-template-areas: "topbar" "main"; }
  .mys .mys-hamburger { display: flex; }          /* topbar'da menü aç butonu */
  .mys-topnav { display: none; }                  /* üst bölüm nav'ı → sidebar'daki mobil kopyaya taşınır */
  .mys .mys-only-mobile { display: revert; }      /* sidebar içindeki "Bölümler" grubu görünür olur */

  .mys-sidebar {
    position: fixed; top: var(--header-h); left: 0; bottom: 0;
    width: var(--sidebar-w); height: auto; z-index: 70;
    transform: translateX(-100%); transition: transform 0.22s ease;
    box-shadow: var(--shadow-lg);
  }
  .mys-app.is-mobile-open .mys-sidebar { transform: translateX(0); }
  .mys-app.is-collapsed .mys-sidebar { width: var(--sidebar-w); } /* mobilde daraltma yok */
  .mys-app.is-collapsed .mys-nav-item__label,
  .mys-app.is-collapsed .mys-nav-item__badge,
  .mys-app.is-collapsed .mys-nav-group__label,
  .mys-app.is-collapsed .mys-sidebar__search { display: revert; } /* mobilde etiketler görünsün */

  /* Karartma perdesi */
  .mys-sidebar-backdrop { display: block; position: fixed; inset: 0; top: var(--header-h); background: rgba(20,30,50,0.4); z-index: 65; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; }
  .mys-app.is-mobile-open .mys-sidebar-backdrop { opacity: 1; pointer-events: auto; }

  /* Mobil: "Bölümler" (üst menü) grubunu, bağlam menüsünden görsel olarak ayır.
     Ayrı zeminli/kenarlıklı bir "bölüm seçici" paneli gibi görünür + altında ayraç + ipucu. */
  .mys-sidebar__nav > .mys-nav-group.mys-only-mobile {
    background: var(--bg-soft); border: 1px solid var(--border);
    border-radius: var(--radius-md); padding: 6px 8px 8px; margin: 0 0 12px;
  }
  .mys-sidebar__nav > .mys-only-mobile .mys-nav-item:hover { background: var(--card); } /* zeminle çakışmasın */
  .mys-sidebar-contexts { border-top: 1px solid var(--border); }
  .mys-sidebar-contexts::before {
    content: attr(data-section-label); text-transform: uppercase; display: block;
    font-size: 9.5px; font-weight: var(--fw-black); letter-spacing: 0.07em;
    color: var(--text-faint); padding: 10px 12px 0;
  }
}

/* ≤ 640px: içerik boşluğu küçülür, ikincil topbar öğeleri sadeleşir */
@media (max-width: 640px) {
  .mys-content { padding: var(--sp-4); }
  .mys-topnav-bar { padding: 0 12px; gap: 2px; }
  .mys-topnav-logo { padding-right: 10px; margin-right: 4px; }
  .mys-topnav-logo img { height: 36px; max-width: 130px; }  /* mobilde hamburger+ikonlara yer aç */
  .mys-hero { padding: 20px; }
  .mys-hero__title { font-size: var(--fs-xl); }
  .mys-hero__art { display: none; }
  .mys-profile-meta,                       /* profil butonunda sadece avatar kalsın */
  .mys-lang-btn span:not(.mys-lang-btn__flag),
  .mys-wh-trigger { font-size: 0; }        /* metin gizle, ikon/bayrak kalsın */
  .mys-wh-trigger { gap: 0; padding: 7px 9px; }
  .mys-lang-btn { padding: 7px; }
  .mys-only-desktop { display: none !important; }  /* yer açmak için yardım/ayar gizlenebilir */
  .mys-dropdown__menu, .mys-wh-menu { position: fixed; top: calc(var(--header-h) + 6px); right: 8px; left: 8px; width: auto; }
}

/* ≤440px (iPhone SE ~375px vb.): çok dar topbar. LOGO İLK KÜÇÜLEN olsun (orantılı, ~74px) → uzun yatay
   logolu depolarda bile profil/ikonlar kesilmez (asıl sorun buydu). Tüm ikon & özellikler kalır; yalnız
   logo yer açar, dokunma hedefleri (36px) korunur. */
@media (max-width: 440px) {
  .mys-topnav-bar { gap: 0; padding: 0 8px; }
  .mys-topnav-logo { flex-shrink: 1; min-width: 0; padding-right: 6px; margin-right: 0; }
  .mys-topnav-logo img { max-width: 74px; max-height: 34px; width: auto; height: auto; object-fit: contain; }
  .mys-topnav-right { gap: 1px; }
}

/* --------------------------------------------------------------------------
   13.5 SAYFA BAŞLIĞI · SAYFA İÇİ GEZİNME · PORTLET
   Lisans ekranları için yazıldı, ama sayfaya özel hiçbir şey içermez: aynı
   yerleşimi isteyen her sayfa kullanabilir. Amaç, sayfadan sayfaya geçerken
   başlığın ve butonların YER DEĞİŞTİRMEMESİ — her ekranda aynı kolonda,
   aynı sırada dursunlar.
   -------------------------------------------------------------------------- */

/* Başlık şeridi: solda kimlik (başlık + alt satır), sağda o sayfaya özel araçlar. */
.mys-pagehead {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: var(--sp-4); flex-wrap: wrap; margin-bottom: var(--sp-3);
}
.mys-pagehead__id { min-width: 0; }
.mys-pagetitle {
  font-family: var(--font-heading); font-size: var(--fs-2xl);
  font-weight: var(--fw-bold); line-height: var(--lh-tight);
  margin: 0 0 var(--sp-1); text-wrap: balance;
}
.mys-pagesub { color: var(--text-soft); font-size: var(--fs-sm); }
.mys-pagehead__tools { display: flex; gap: var(--sp-2); align-items: flex-end; flex-wrap: wrap; }
.mys-pagehead__tools .mys-input { width: auto; min-width: 110px; }

/* Araç kutusundaki etiketli alan (Ay / Yıl gibi). */
.mys-field { display: flex; flex-direction: column; gap: var(--sp-1); }
.mys-field--grow { flex: 1 1 220px; min-width: 0; }
.mys-flabel {
  color: var(--text-soft); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: 0.04em;
}

/* Kardeş sayfalar arası gezinme. Sıra HER SAYFADA aynıdır; açık olan sayfa
   işaretli ve tıklanamazdır — kullanıcı nerede olduğunu şeritten okur. */
.mys-pagenav {
  display: flex; gap: var(--sp-2); flex-wrap: wrap;
  margin-bottom: var(--sp-4);
}
.mys-pagenav__link {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 7px 14px; border-radius: var(--radius-pill);
  border: 1px solid var(--border-strong); background: var(--card);
  color: var(--text-soft); font-size: var(--fs-sm); font-weight: var(--fw-semi);
  text-decoration: none; transition: var(--transition);
}
.mys-pagenav__link:hover { background: var(--bg-soft); color: var(--text); text-decoration: none; }
.mys-pagenav__link.is-active {
  background: var(--primary-soft); border-color: var(--primary);
  color: var(--primary); cursor: default; pointer-events: none;
}

/* Portlet: başlığı, araçları ve katlanabilir gövdesi olan kart.
   Gövde varsayılan olarak sınırlı yükseklikte kaydırılır; "genişlet" ile
   ekran boyuna çıkar. Böylece uzun bir tablo altındakini gömmez. */
.mys-portlet {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  margin-bottom: var(--sp-4);
}
.mys-portlet__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--border);
}
.mys-portlet.is-collapsed .mys-portlet__head { border-bottom: 0; }
.mys-portlet__title {
  font-family: var(--font-heading); font-size: var(--fs-md);
  font-weight: var(--fw-bold); margin: 0;
  display: flex; align-items: baseline; gap: var(--sp-2);
}
.mys-portlet__count { font-size: var(--fs-xs); font-weight: var(--fw-medium); color: var(--text-faint); }
.mys-portlet__tools { display: flex; align-items: center; gap: var(--sp-2); }
.mys-portlet__body { padding: var(--sp-4); }
.mys-portlet.is-collapsed .mys-portlet__body { display: none; }

/* Kaydırma kabı — tablo başlığı yapışık kalır. */
.mys-portlet__scroll { max-height: 380px; overflow: auto; }
.mys-portlet.is-tall .mys-portlet__scroll { max-height: calc(100vh - 220px); }
.mys-portlet__scroll thead th {
  position: sticky; top: 0; z-index: 2;
  background: var(--bg-soft);
}

/* Portlet başlığındaki ikon butonu. */
.mys-iconbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 0;
  border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  background: var(--card); color: var(--text-soft);
  font-size: var(--fs-sm); line-height: 1; cursor: pointer;
  transition: var(--transition);
}
.mys-iconbtn:hover { background: var(--bg-soft); color: var(--text); }
.mys-iconbtn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.mys-iconbtn.is-on { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }

/* --------------------------------------------------------------------------
   14. KARANLIK MOD İSKELETİ (opsiyonel — sadece token override)
   <body class="mys" data-theme="dark"> ile aç. Bileşenler değişmez.
   -------------------------------------------------------------------------- */
[data-theme="dark"] {
  --bg: #0F1420; --bg-soft: #171E2C; --card: #1B2233;
  --border: #26304380; --border-strong: #313C52;
  --text: #E7EAF0; --text-soft: #A7B0C0; --text-faint: #6C7689;
  --primary-soft: #21315A; --primary-softer: #1A2540;
}
