/* ═══════════════════════════════════════════════════════════════
   İYİLİK HALİ — ORTAK EKOSİSTEM TEMASI (moss / toprak paleti)
   Kanonik kaynak: IyilikHali.Web.Portal/wwwroot/css/site.css :root
   Bu dosya, ekosistemdeki HER app'in wwwroot/css klasörüne AYNI
   İÇERİKLE kopyalanır ve app'in kendi CSS dosyalarından SONRA,
   index.html/App.razor <head>'ının EN SONUNA linklenir — böylece
   eski TEAL (#06919D/#057A84) marka token'larını moss'a çevirir.
   Katman/komponent yapısına DOKUNMAZ — sadece renk/font token'ı.
   ═══════════════════════════════════════════════════════════════ */

/* Portal ile birebir aynı yazı tipleri */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Public+Sans:ital,wght@0,300..800;1,400..700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* ── Kanonik moss/toprak token'ları (Portal site.css ile birebir aynı) ── */
  --bg: #f5f1ea;
  --bg-2: #ece5d7;
  --paper: #faf7f0;
  --ink: #1c1f19;
  --ink-2: #2d322a;
  --muted: #6a6458;
  --rule: #d9d1bf;
  --moss: #3d5a3d;
  --moss-2: #6b8e6b;
  --moss-soft: #e4ece0;
  --clay: #b97a4a;
  --gold: #c9a766;
  --alert: #a83e2c;

  --font-display: "Instrument Serif", Georgia, "Times New Roman", serif;
  --font-sans: "Public Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "Fira Mono", monospace;

  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;

  /* NOT: --sand kasıtlı olarak burada TANIMLANMAZ — Academy/Assistant/Scale/
     Portal'ın kendi --sand'i (açık krem, #F6F4EF) zaten kart/gövde zemini
     olarak kullanılıyor ve teal değil; Portal'ın kendi --sand'i (#c9b89a,
     koyu kum) ile üzerine yazılırsa o app'lerin kart zeminleri koyu tona
     döner (regresyon). Bu yüzden --sand app'lerin kendi haline bırakılır. */
}

/* ── Geriye uyum eşlemesi: eski TEAL değişken adları → moss karşılığı ──
   Academy/Assistant/Career/Editor/Expert/Management/Patient/Scale/Shield
   kendi CSS dosyalarını DEĞİŞTİRMEDEN, bu eşleme sayesinde moss görür.
   (--ink zaten yukarıda kanonik olarak tanımlı; Portal'ın kendi ana CTA
   butonu da var(--ink) kullanıyor — yani eski app'lerin buton/aktif-durum
   rengi de aynı mantıkla moss ekosisteminin "ink" tonuna hizalanıyor.) */
:root {
  --teal: #1c1f19;                        /* eski marka rengi → ink (Portal .btn-ink ile aynı mantık) */
  --teal-dark: #2d4a2d;                    /* eski koyu marka/hover → koyu moss */
  --teal-glow: rgba(28, 31, 25, .15);      /* Shield odak/gölge rengi */

  --ink-dark: #2d4a2d;                     /* Academy/Editor/Expert/Management/Scale eski koyu marka/hover */
  --ink-light: #e4ece0;                    /* Assistant/Scale eski açık tint → moss-soft */
  --ink-muted: #6a6458;                    /* Shield soluk metin → muted */

  --portal-soft-primary: rgba(28, 31, 25, .10);   /* Patient "info" rozet zemini */
  --portal-soft-primary-fg: #2d4a2d;              /* Patient "info" rozet metni */
  --ih-soft-primary-bg: rgba(28, 31, 25, .10);    /* Clinic "info" rozet zemini */
  --ih-soft-primary-fg: #2d4a2d;                  /* Clinic "info" rozet metni */

  /* Shield'in koyu panel yapısı (kart/kenar menü/üst bar/kenarlık) açık moss'a çevrilir */
  --bg-card: #faf7f0;
  --bg-sidebar: #ece5d7;
  --bg-topbar: #faf7f0;
  --border: #d9d1bf;
}

/* ── Temel gövde kuralı — her app'te en son burası söz sahibi ── */
body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--ink);
}

/* ════════════════════════════════════════════════════════════════════
   ORTAK UYGULAMA KABUĞU — Klinik referans düzeni (koyu sol sidebar + üst bar)
   IhShell.razor (RCL tek kaynak, personel app'lerine linked-compile) bu sınıfları
   kullanır. Böylece Expert/Editor/Academy/Career/Scale/Shield/Management app'leri
   klinikle BİREBİR AYNI nav bar + sidebar düzenine kavuşur. Sadece .ih-* sınıflarını
   hedefler — global body/scroll'a dokunmaz (kapsam dışı Portal/Patient/Assistant korunur).
   Kaynak: Clinic/wwwroot/css/app.css (moss paleti ile birebir).
   ════════════════════════════════════════════════════════════════════ */
:root {
  --ih-primary: #3d5a3d;
  --ih-primary-dark: #344f34;
  --ih-primary-light: #e4ece0;
  --ih-secondary: #6b8e6b;
  --ih-bg-body: #f5f1ea;
  --ih-bg-sidebar: #1c2b1c;      /* derin moss */
  --ih-bg-header: #ffffff;
  --ih-text-primary: #1c1f19;
  --ih-text-muted: #9a917f;
  --ih-text-sidebar: #c8d8c2;
  --ih-border: #d9d1bf;
  --ih-shadow-sm: 0 1px 2px rgba(28,31,25,.05);
  --ih-sidebar-width: 270px;
}

/* Ana wrapper — tam ekran, iç kaydırma .ih-main'de (global overflow'a dokunmaz) */
.ih-app-wrapper {
  display: flex;
  height: 100vh;
  width: 100%;
  overflow: hidden;
  background: var(--ih-bg-body);
}

/* Sidebar — koyu moss zemin */
.ih-sidebar {
  width: var(--ih-sidebar-width);
  height: 100vh;
  background: var(--ih-bg-sidebar);
  color: var(--ih-text-sidebar);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 1000;
  transition: transform .3s;
}
.ih-sidebar::-webkit-scrollbar { width: 4px; }
.ih-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 4px; }

.ih-sidebar-brand {
  padding: 1.15rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  text-align: center;
}
.ih-sidebar-brand h5 { color: #fff; margin: 0; }
.ih-sidebar-brand small { color: rgba(255,255,255,.45); }

.ih-sidebar-scroll { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.12) transparent; }
.ih-sidebar-scroll::-webkit-scrollbar { width: 4px; }
.ih-sidebar-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 4px; }

/* Sidebar bölüm başlığı (opsiyonel gruplama) */
.ih-sidebar .nav-section-title {
  color: rgba(255,255,255,.5);
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;
  padding: .5rem .75rem .25rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
  margin: .5rem 0 .25rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.ih-sidebar .nav-section-title .mdi { font-size: .85rem; color: rgba(255,255,255,.6); }

/* Sidebar nav-link (NavLink) — koyu zemin, aktif = moss dolgu */
.ih-sidebar .nav-link {
  color: var(--ih-text-sidebar);
  padding: .55rem 1rem;
  margin: 1px .5rem;
  border-radius: 8px;
  font-size: .85rem;
  display: flex;
  align-items: center;
  gap: .6rem;
  transition: all .15s;
  text-decoration: none;
}
.ih-sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.ih-sidebar .nav-link.active { background: var(--ih-primary); color: #fff; font-weight: 600; }
.ih-sidebar .nav-link .mdi { font-size: 1.2rem; width: 24px; text-align: center; }

/* İçerik alanı */
.ih-content {
  flex: 1;
  min-width: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Üst bar */
.ih-topbar {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--ih-bg-header);
  border-bottom: 1px solid var(--ih-border);
  padding: .7rem 1.25rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  box-shadow: var(--ih-shadow-sm);
  min-height: 58px;
}
.ih-topbar h5 { margin: 0; font-size: 1rem; color: var(--ih-primary); }

/* Ana içerik — tek kaydırma noktası */
.ih-main { flex: 1; padding: 1.5rem; overflow-y: auto; overflow-x: hidden; }

/* Footer */
.ih-footer {
  background: var(--ih-bg-header);
  border-top: 1px solid var(--ih-border);
  padding: .6rem 1.25rem;
  text-align: center;
  color: var(--ih-text-muted);
  font-size: .78rem;
}

/* Mobil sidebar arka planı */
.ih-sidebar-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 999; }

/* Responsive — sidebar mobilde off-canvas */
@media (max-width: 992px) {
  .ih-sidebar { position: fixed; top: 0; left: 0; transform: translateX(-100%); }
  .ih-sidebar.show { transform: translateX(0); }
  .ih-content { width: 100%; }
}
