/* ============================================================
   DOST — Flat & minimalist tema (light/dark)
   CSS değişken temelli; tasarım workflow'undan üretildi.
   ============================================================ */

:root {
  /* === DOST Tasarım Token'ları — Light (varsayılan) === */
  /* Yüzeyler: nötr-soğuk gri */
  --dost-bg: #f7f8fa;             /* sayfa zemini */
  --dost-surface: #ffffff;        /* kart/panel/tablo zemini */
  --dost-surface-2: #eef0f4;      /* ikincil yüzey: hover satır, kod, disabled input */
  --dost-border: #d7dbe2;         /* ince kenarlık, ayraç */
  --dost-border-strong: #b9bfca;  /* belirgin/etkileşimli kenarlık (input) */

  /* Metin — hepsi --dost-surface (#fff) üzerinde AA+ */
  --dost-text: #1c2128;           /* gövde, ~16.2:1 */
  --dost-text-muted: #5a6573;     /* ikincil/yardımcı, ~5.9:1 */
  --dost-text-subtle: #67717f;    /* etiket/placeholder, ~4.95:1 */

  /* Primary — ölçülü kurumsal indigo-mavi */
  --dost-primary: #2f5bd0;        /* beyaz metinle ~5.95:1 (AA) */
  --dost-primary-hover: #2548ad;
  --dost-primary-active: #1d3b91;
  --dost-primary-soft: #e8eefb;   /* yumuşak vurgu zemini (seçili nav, badge) */
  --dost-primary-soft-text: #1d3b91; /* soft zemin üzerine metin (~8.6:1) */
  --dost-on-primary: #ffffff;     /* primary zemin üzerine metin */

  /* Bağlantı */
  --dost-link: #2548ad;           /* gövde üzerinde ~8.0:1 */
  --dost-link-hover: #16306f;

  /* Durum renkleri — soft zemin + okunur koyu metin (çift kodlama) */
  --dost-success: #1f7a4d;
  --dost-success-soft: #e3f3ea;
  --dost-success-text: #155c39;
  --dost-warning: #9a6700;        /* kehribar — beyaz metinle AA */
  --dost-warning-soft: #fbf2dd;
  --dost-warning-text: #7a5200;
  --dost-danger: #c2362f;
  --dost-danger-soft: #fbe6e5;
  --dost-danger-text: #9e2b25;
  --dost-info: #1d6fb8;
  --dost-info-soft: #e4f0fa;
  --dost-info-text: #155a96;

  /* Etkileşim / odak — net halka */
  --dost-focus-ring: #2f5bd0;     /* outline rengi (2px + 2px offset) */
  --dost-focus-soft: rgba(47, 91, 208, 0.30); /* input 3px yumuşak halka */

  /* Yüzey efektleri — flat: tek katman, çok hafif gölge */
  --dost-shadow: 0 1px 2px rgba(20, 28, 40, 0.06);
  --dost-shadow-overlay: 0 4px 16px rgba(20, 28, 40, 0.12); /* dropdown/modal */

  /* Ölçek */
  --dost-radius: 6px;
  --dost-radius-sm: 4px;
  --dost-radius-lg: 8px;
  --dost-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --dost-font-mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", "SF Mono", Menlo, Consolas, monospace;
}

[data-theme="dark"] {
  /* === DOST Tasarım Token'ları — Dark === */
  /* Gerçek koyu yüzeyler (saf siyah değil), AA+ */
  --dost-bg: #0f1115;             /* sayfa tabanı */
  --dost-surface: #161a20;        /* kart/panel/tablo zemini */
  --dost-surface-2: #1f242c;      /* ikincil yüzey: hover satır, kod */
  --dost-border: #2a313b;         /* ince kenarlık */
  --dost-border-strong: #3a4350;  /* belirgin kenarlık */

  /* Metin — --dost-surface (#161a20) üzerinde AA+ */
  --dost-text: #e6e9ee;           /* gövde, ~14.4:1 */
  --dost-text-muted: #a3adba;     /* ikincil, ~7.7:1 */
  --dost-text-subtle: #8893a1;    /* etiket/placeholder, ~5.6:1 */

  /* Primary — dark'ta açılır (parlak), üzeri koyu metin */
  --dost-primary: #6f97f0;        /* koyu zemine karşı parlak */
  --dost-primary-hover: #87a8f4;
  --dost-primary-active: #a0bbf7;
  --dost-primary-soft: #1b2740;   /* yumuşak vurgu zemini */
  --dost-primary-soft-text: #aac2f8; /* soft zemin üzerine metin */
  --dost-on-primary: #0f1115;     /* açık primary üzeri koyu metin (~6.6:1) */

  /* Bağlantı */
  --dost-link: #88aaf4;           /* koyu zeminde ~7.6:1 */
  --dost-link-hover: #aac2f8;

  /* Durum renkleri — dark'ta açılmış tonlar */
  --dost-success: #4cc38a;
  --dost-success-soft: #15271e;
  --dost-success-text: #6ed7a4;
  --dost-warning: #e0a93a;
  --dost-warning-soft: #2a2212;
  --dost-warning-text: #f0c160;
  --dost-danger: #f0726a;
  --dost-danger-soft: #2e1715;
  --dost-danger-text: #f59289;
  --dost-info: #58a6e8;
  --dost-info-soft: #122637;
  --dost-info-text: #79b8ef;

  /* Etkileşim / odak */
  --dost-focus-ring: #6f97f0;
  --dost-focus-soft: rgba(111, 151, 240, 0.35);

  /* Gölge — koyu temada yükseklik daha çok kenarlıkla */
  --dost-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  --dost-shadow-overlay: 0 6px 24px rgba(0, 0, 0, 0.55);
}

/* === DOST temel + tipografi (değişken-temelli, flat, minimalist) === */

/* Tema bağlantı noktaları */
:root { color-scheme: light; }
[data-theme="dark"] { color-scheme: dark; }

*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background-color: var(--dost-bg);
  color: var(--dost-text);
  font-family: var(--dost-font-sans);
  font-size: 0.9375rem;          /* 15px — tablo/form yoğun ekranlar için dengeli */
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  transition: background-color 0.15s ease, color 0.15s ease;
}

/* Başlıklar — sade, iki ağırlık, net hiyerarşi */
h1, h2, h3, h4, h5, h6 {
  color: var(--dost-text);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
}
h1 { font-size: 1.75rem; }
h2 { font-size: 1.375rem; }
h3 { font-size: 1.125rem; }
h4 { font-size: 1rem; }
h5 { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dost-text-muted); }
h6 { font-size: 0.8125rem; color: var(--dost-text-muted); }

p { margin: 0 0 1rem; }

small, .small, .text-muted { color: var(--dost-text-muted); }

/* Bağlantılar */
a {
  color: var(--dost-link);
  text-decoration: none;
  text-underline-offset: 2px;
  transition: color 0.12s ease;
}
a:hover {
  color: var(--dost-link-hover);
  text-decoration: underline;
}

/* Net, erişilebilir odak halkası — tüm etkileşimli ögeler */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--dost-focus-ring);
  outline-offset: 2px;
  border-radius: var(--dost-radius-sm);
}
/* Fareyle tıklamada halka çıkmasın (yalnız klavyede) */
:focus:not(:focus-visible) { outline: none; }

/* Seçim rengi */
::selection {
  background: var(--dost-primary-soft);
  color: var(--dost-primary-soft-text);
}

/* Ayraç */
hr {
  border: 0;
  border-top: 1px solid var(--dost-border);
  margin: 1.5rem 0;
  opacity: 1;
}

/* Kod / monospace */
code, kbd, samp, pre {
  font-family: var(--dost-font-mono);
  font-size: 0.875em;
}
code {
  background: var(--dost-surface-2);
  color: var(--dost-text);
  padding: 0.1em 0.35em;
  border-radius: var(--dost-radius-sm);
  border: 1px solid var(--dost-border);
}
pre {
  background: var(--dost-surface-2);
  border: 1px solid var(--dost-border);
  border-radius: var(--dost-radius);
  padding: 0.875rem 1rem;
  overflow: auto;
  line-height: 1.5;
}
pre code { background: none; border: 0; padding: 0; }

/* İnce, temaya uyumlu kaydırma çubuğu */
* { scrollbar-width: thin; scrollbar-color: var(--dost-border-strong) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb {
  background: var(--dost-border-strong);
  border-radius: 6px;
  border: 2px solid var(--dost-bg);
}
*::-webkit-scrollbar-track { background: transparent; }

/* Hareket azaltma tercihi */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   DOST — Bootstrap 5 flat/minimalist override
   Tüm bileşenler --dost-* değişkenleriyle; gradyan/ağır gölge yok.
   ============================================================ */

/* --- Bootstrap değişken köprüsü (renk yardımcıları çalışsın) --- */
:root, [data-theme="dark"] {
  --bs-body-bg: var(--dost-bg);
  --bs-body-color: var(--dost-text);
  --bs-border-color: var(--dost-border);
  --bs-primary: var(--dost-primary);
  --bs-primary-rgb: 47, 91, 208;
  --bs-link-color: var(--dost-link);
  --bs-link-hover-color: var(--dost-link-hover);
  --bs-border-radius: var(--dost-radius);
  --bs-border-radius-sm: var(--dost-radius-sm);
  --bs-border-radius-lg: var(--dost-radius-lg);
}

/* --- Navbar --- */
.navbar {
  background-color: var(--dost-surface) !important;
  border-bottom: 1px solid var(--dost-border);
  box-shadow: none;
  padding: 0.5rem 1rem;
}
.navbar .navbar-brand {
  color: var(--dost-text);
  font-weight: 600;
  letter-spacing: -0.01em;
}
.navbar .navbar-text { color: var(--dost-text-muted); }
.navbar-toggler {
  border-color: var(--dost-border);
  color: var(--dost-text);
  border-radius: var(--dost-radius);
  padding: 0.35rem 0.5rem;
}
.navbar-toggler:focus { box-shadow: none; outline: 2px solid var(--dost-focus-ring); outline-offset: 2px; }

/* --- Sidebar (Blazor .sidebar) --- */
.sidebar {
  background-color: var(--dost-surface);
  border-right: 1px solid var(--dost-border);
}

/* --- Nav linkleri --- */
.nav-link {
  color: var(--dost-text-muted);
  border-radius: var(--dost-radius);
  padding: 0.4rem 0.7rem;
  font-weight: 500;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.nav-link:hover {
  color: var(--dost-text);
  background-color: var(--dost-surface-2);
}
.nav-link.active,
.nav-link[aria-current="page"] {
  color: var(--dost-primary);
  background-color: var(--dost-primary-soft);
  font-weight: 600;
}
.nav-link:focus-visible { outline: 2px solid var(--dost-focus-ring); outline-offset: 2px; }
.nav-link.disabled { color: var(--dost-text-subtle); }

/* Nav-tabs — alt çizgi stili (flat) */
.nav-tabs { border-bottom: 1px solid var(--dost-border); }
.nav-tabs .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  margin-bottom: -1px;
  background: none;
}
.nav-tabs .nav-link:hover { border-bottom-color: var(--dost-border-strong); background: none; }
.nav-tabs .nav-link.active {
  color: var(--dost-primary);
  background: none;
  border-bottom-color: var(--dost-primary);
}

/* Nav-pills */
.nav-pills .nav-link { border-radius: var(--dost-radius); }
.nav-pills .nav-link.active {
  background-color: var(--dost-primary-soft);
  color: var(--dost-primary);
}

/* --- Kart --- */
.card {
  background-color: var(--dost-surface);
  border: 1px solid var(--dost-border);
  border-radius: var(--dost-radius-lg);
  box-shadow: var(--dost-shadow);
  color: var(--dost-text);
}
.card-header {
  background-color: transparent;
  border-bottom: 1px solid var(--dost-border);
  font-weight: 600;
  padding: 0.875rem 1.125rem;
}
.card-footer {
  background-color: transparent;
  border-top: 1px solid var(--dost-border);
}
.card-body { padding: 1.125rem; }
.card-title { color: var(--dost-text); font-weight: 600; }
.card-subtitle { color: var(--dost-text-muted); }

/* --- Tablo --- */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--dost-text);
  --bs-table-border-color: var(--dost-border);
  color: var(--dost-text);
  border-color: var(--dost-border);
  vertical-align: middle;
}
.table > thead { color: var(--dost-text-muted); }
.table > thead th {
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.01em;
  text-transform: none;
  border-bottom: 1px solid var(--dost-border-strong);
  padding: 0.625rem 0.75rem;
  background-color: transparent;
}
.table > tbody td,
.table > tbody th {
  border-top: 1px solid var(--dost-border);
  padding: 0.625rem 0.75rem;
}
.table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: transparent;
  background-color: var(--dost-surface-2);
  color: var(--dost-text);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: transparent;
  background-color: color-mix(in srgb, var(--dost-surface-2) 55%, transparent);
  color: var(--dost-text);
}
.table-bordered,
.table-bordered > :not(caption) > * > * {
  border-color: var(--dost-border);
}

/* --- Formlar --- */
.form-label {
  color: var(--dost-text);
  font-weight: 500;
  font-size: 0.875rem;
  margin-bottom: 0.3rem;
}
.col-form-label, .form-text { color: var(--dost-text-muted); }
.form-text { font-size: 0.8125rem; }

.form-control,
.form-select {
  background-color: var(--dost-surface);
  color: var(--dost-text);
  border: 1px solid var(--dost-border-strong);
  border-radius: var(--dost-radius);
  padding: 0.45rem 0.7rem;
  font-size: 0.9375rem;
  box-shadow: none;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.form-control::placeholder { color: var(--dost-text-subtle); }
.form-control:hover, .form-select:hover { border-color: var(--dost-text-subtle); }
.form-control:focus,
.form-select:focus {
  background-color: var(--dost-surface);
  color: var(--dost-text);
  border-color: var(--dost-primary);
  box-shadow: 0 0 0 3px var(--dost-focus-soft);
  outline: none;
}
.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
  background-color: var(--dost-surface-2);
  color: var(--dost-text-muted);
  border-color: var(--dost-border);
  opacity: 1;
}
/* form-select oku currentColor olmadığından temaya göre nötr gri SVG */
.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235a6573' stroke-width='1.5' d='M4 6l4 4 4-4'/%3e%3c/svg%3e");
}
[data-theme="dark"] .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23a3adba' stroke-width='1.5' d='M4 6l4 4 4-4'/%3e%3c/svg%3e");
}

/* Checkbox / radio / switch */
.form-check-input {
  background-color: var(--dost-surface);
  border: 1px solid var(--dost-border-strong);
}
.form-check-input:checked {
  background-color: var(--dost-primary);
  border-color: var(--dost-primary);
}
.form-check-input:focus {
  border-color: var(--dost-primary);
  box-shadow: 0 0 0 3px var(--dost-focus-soft);
}
.form-check-label { color: var(--dost-text); }

/* Doğrulama (Bootstrap + Blazor .valid/.invalid/.validation-message) */
.form-control.is-invalid,
.form-control.invalid,
.form-select.is-invalid {
  border-color: var(--dost-danger);
  background-image: none;
}
.form-control.is-invalid:focus,
.form-control.invalid:focus {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--dost-danger) 28%, transparent);
}
.form-control.is-valid,
.form-control.valid,
.form-control.modified.valid {
  border-color: var(--dost-success);
  background-image: none;
}
.invalid-feedback,
.validation-message {
  color: var(--dost-danger-text);
  font-size: 0.8125rem;
}
.valid-feedback { color: var(--dost-success-text); }

/* --- Butonlar --- */
.btn {
  border-radius: var(--dost-radius);
  font-weight: 500;
  padding: 0.45rem 0.9rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  box-shadow: none;
  transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.btn:focus-visible,
.btn:focus {
  outline: 2px solid var(--dost-focus-ring);
  outline-offset: 2px;
  box-shadow: none;
}
.btn:active { transform: translateY(0.5px); }

.btn-primary {
  --bs-btn-bg: var(--dost-primary);
  --bs-btn-border-color: var(--dost-primary);
  --bs-btn-color: var(--dost-on-primary);
  --bs-btn-hover-bg: var(--dost-primary-hover);
  --bs-btn-hover-border-color: var(--dost-primary-hover);
  --bs-btn-hover-color: var(--dost-on-primary);
  --bs-btn-active-bg: var(--dost-primary-active);
  --bs-btn-active-border-color: var(--dost-primary-active);
  --bs-btn-active-color: var(--dost-on-primary);
  --bs-btn-disabled-bg: var(--dost-primary);
  --bs-btn-disabled-border-color: var(--dost-primary);
  --bs-btn-disabled-color: var(--dost-on-primary);
}

.btn-secondary,
.btn-outline-secondary {
  --bs-btn-bg: var(--dost-surface);
  --bs-btn-border-color: var(--dost-border-strong);
  --bs-btn-color: var(--dost-text);
  --bs-btn-hover-bg: var(--dost-surface-2);
  --bs-btn-hover-border-color: var(--dost-border-strong);
  --bs-btn-hover-color: var(--dost-text);
  --bs-btn-active-bg: var(--dost-surface-2);
  --bs-btn-active-border-color: var(--dost-text-subtle);
  --bs-btn-active-color: var(--dost-text);
}

.btn-outline-primary {
  --bs-btn-color: var(--dost-primary);
  --bs-btn-border-color: var(--dost-primary);
  --bs-btn-bg: transparent;
  --bs-btn-hover-bg: var(--dost-primary-soft);
  --bs-btn-hover-border-color: var(--dost-primary);
  --bs-btn-hover-color: var(--dost-primary);
  --bs-btn-active-bg: var(--dost-primary);
  --bs-btn-active-border-color: var(--dost-primary);
  --bs-btn-active-color: var(--dost-on-primary);
}

.btn-danger {
  --bs-btn-bg: var(--dost-danger);
  --bs-btn-border-color: var(--dost-danger);
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--dost-danger) 88%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--dost-danger) 88%, #000);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--dost-danger) 78%, #000);
  --bs-btn-active-color: #fff;
}

.btn-success {
  --bs-btn-bg: var(--dost-success);
  --bs-btn-border-color: var(--dost-success);
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--dost-success) 88%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--dost-success) 88%, #000);
  --bs-btn-hover-color: #fff;
}

.btn-link {
  --bs-btn-color: var(--dost-link);
  --bs-btn-hover-color: var(--dost-link-hover);
  text-decoration: none;
  font-weight: 500;
}
.btn-link:hover { text-decoration: underline; }

/* --- Rozet --- */
.badge { font-weight: 600; padding: 0.3em 0.55em; border-radius: var(--dost-radius-sm); }
.badge.bg-primary,   .badge.text-bg-primary   { background-color: var(--dost-primary-soft) !important; color: var(--dost-primary-soft-text) !important; }
.badge.bg-secondary, .badge.text-bg-secondary { background-color: var(--dost-surface-2)    !important; color: var(--dost-text-muted)        !important; }
.badge.bg-success,   .badge.text-bg-success   { background-color: var(--dost-success-soft) !important; color: var(--dost-success-text)      !important; }
.badge.bg-danger,    .badge.text-bg-danger    { background-color: var(--dost-danger-soft)  !important; color: var(--dost-danger-text)       !important; }
.badge.bg-warning,   .badge.text-bg-warning   { background-color: var(--dost-warning-soft) !important; color: var(--dost-warning-text)      !important; }
.badge.bg-info,      .badge.text-bg-info      { background-color: var(--dost-info-soft)    !important; color: var(--dost-info-text)         !important; }

/* --- Uyarı kutuları --- */
.alert { border-radius: var(--dost-radius); border: 1px solid transparent; }
.alert-primary { background: var(--dost-primary-soft); border-color: color-mix(in srgb, var(--dost-primary) 30%, transparent); color: var(--dost-primary-soft-text); }
.alert-success { background: var(--dost-success-soft); border-color: color-mix(in srgb, var(--dost-success) 30%, transparent); color: var(--dost-success-text); }
.alert-danger  { background: var(--dost-danger-soft);  border-color: color-mix(in srgb, var(--dost-danger) 30%, transparent);  color: var(--dost-danger-text); }
.alert-warning { background: var(--dost-warning-soft); border-color: color-mix(in srgb, var(--dost-warning) 30%, transparent); color: var(--dost-warning-text); }
.alert-info    { background: var(--dost-info-soft);    border-color: color-mix(in srgb, var(--dost-info) 30%, transparent);    color: var(--dost-info-text); }

/* --- Dropdown / modal / overlay --- */
.dropdown-menu, .modal-content, .offcanvas, .popover {
  background-color: var(--dost-surface);
  border: 1px solid var(--dost-border);
  border-radius: var(--dost-radius-lg);
  box-shadow: var(--dost-shadow-overlay);
  color: var(--dost-text);
}
.dropdown-menu { padding: 0.25rem; }
.dropdown-item { color: var(--dost-text); border-radius: var(--dost-radius-sm); padding: 0.45rem 0.75rem; }
.dropdown-item:hover, .dropdown-item:focus { background-color: var(--dost-surface-2); color: var(--dost-text); }
.dropdown-item.active, .dropdown-item:active { background-color: var(--dost-primary-soft); color: var(--dost-primary-soft-text); }
.dropdown-divider { border-color: var(--dost-border); }
.modal-header, .modal-footer { border-color: var(--dost-border); }
.modal-backdrop.show { opacity: 0.4; }

/* --- List group --- */
.list-group { border-radius: var(--dost-radius); }
.list-group-item {
  background-color: var(--dost-surface);
  border-color: var(--dost-border);
  color: var(--dost-text);
}
.list-group-item.active {
  background-color: var(--dost-primary-soft);
  border-color: var(--dost-border);
  color: var(--dost-primary-soft-text);
}
.list-group-item-action:hover { background-color: var(--dost-surface-2); color: var(--dost-text); }

/* --- Pagination --- */
.page-link {
  color: var(--dost-text);
  background-color: var(--dost-surface);
  border-color: var(--dost-border);
}
.page-link:hover { background-color: var(--dost-surface-2); color: var(--dost-text); }
.page-link:focus { box-shadow: none; outline: 2px solid var(--dost-focus-ring); outline-offset: 2px; }
.page-item.active .page-link {
  background-color: var(--dost-primary);
  border-color: var(--dost-primary);
  color: var(--dost-on-primary);
}
.page-item.disabled .page-link { color: var(--dost-text-subtle); background-color: var(--dost-surface); }

/* --- Çeşitli --- */
.breadcrumb { color: var(--dost-text-muted); }
.breadcrumb-item.active { color: var(--dost-text); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--dost-text-subtle); }
.text-primary { color: var(--dost-primary) !important; }
.text-muted   { color: var(--dost-text-muted) !important; }
.text-danger  { color: var(--dost-danger-text) !important; }
.text-success { color: var(--dost-success-text) !important; }
.text-warning { color: var(--dost-warning-text) !important; }
.border { border-color: var(--dost-border) !important; }
.bg-body, .bg-white { background-color: var(--dost-surface) !important; }
.spinner-border, .spinner-grow { color: var(--dost-primary); }

/* Blazor hata UI (MainLayout.razor'daki #blazor-error-ui) */
#blazor-error-ui {
  background: var(--dost-warning-soft);
  color: var(--dost-warning-text);
  border-top: 1px solid color-mix(in srgb, var(--dost-warning) 40%, transparent);
  box-shadow: var(--dost-shadow-overlay);
}

/* Blazor ErrorBoundary yedeği */
.blazor-error-boundary {
  background: var(--dost-danger, #b32121);
  color: #fff;
  padding: 1rem 1.25rem;
}
.blazor-error-boundary::after { content: "Bir hata oluştu."; }

/* Geçici bilgi penceresi (toast) — sağ üst köşe, kısa süreli */
#dost-toasts {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 1080;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}
.dost-toast {
  pointer-events: auto;
  cursor: pointer;
  min-width: 220px;
  max-width: 360px;
  padding: 0.6rem 0.9rem;
  border-radius: var(--dost-radius, 8px);
  box-shadow: var(--dost-shadow-overlay, 0 6px 20px rgba(0,0,0,.25));
  font-size: 0.9rem;
  color: #fff;
  opacity: 0;
  transform: translateX(1rem);
  transition: opacity .25s ease, transform .25s ease;
}
.dost-toast.show { opacity: 1; transform: none; }
.dost-toast-success { background: #2e7d32; }
.dost-toast-error { background: var(--dost-danger, #c62828); }

/* G97: ortak RichTextEditor + güvenli gösterim (HtmlView) */
.dost-rte-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0.35rem;
  border: 1px solid var(--dost-border, #ced4da);
  border-bottom: none;
  border-radius: var(--dost-radius, 6px) var(--dost-radius, 6px) 0 0;
  background: var(--dost-surface-2, rgba(0, 0, 0, 0.03));
}
.dost-rte-area {
  min-height: 140px;
  max-height: 420px;
  overflow-y: auto;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--dost-border, #ced4da);
  border-radius: 0 0 var(--dost-radius, 6px) var(--dost-radius, 6px);
  background: inherit;
}
.dost-rte-area:focus {
  outline: none;
  border-color: #86b7fe;
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}
.dost-rte-disabled .dost-rte-area {
  opacity: 0.65;
  background: var(--dost-surface-2, rgba(0, 0, 0, 0.03));
}
.dost-rte-area h1, .dost-rte-view h1,
.dost-rte-area h2, .dost-rte-view h2,
.dost-rte-area h3, .dost-rte-view h3 { font-size: 1.15rem; margin: 0.5rem 0 0.25rem; }
.dost-rte-area h4, .dost-rte-view h4,
.dost-rte-area h5, .dost-rte-view h5 { font-size: 1rem; margin: 0.4rem 0 0.2rem; }
.dost-rte-area p, .dost-rte-view p { margin: 0 0 0.4rem; }
.dost-rte-area blockquote, .dost-rte-view blockquote {
  border-left: 3px solid var(--dost-border, #ced4da);
  margin: 0.4rem 0;
  padding-left: 0.6rem;
  color: var(--dost-muted, #6c757d);
}
.dost-rte-view { overflow-wrap: anywhere; }

/* G103: adres defteri penceresi (AddressBookPicker) */
.dost-ab-backdrop {
  position: fixed; inset: 0; z-index: 1090;
  background: rgba(0, 0, 0, 0.45);
}
.dost-ab-modal {
  position: fixed; z-index: 1091;
  top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: min(760px, 94vw); max-height: 88vh;
  display: flex; flex-direction: column;
  background: var(--dost-surface, #fff); color: inherit;
  border-radius: var(--dost-radius, 8px);
  box-shadow: var(--dost-shadow-overlay, 0 8px 30px rgba(0,0,0,.35));
}
.dost-ab-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.75rem 1rem; border-bottom: 1px solid var(--dost-border, #dee2e6);
}
.dost-ab-body {
  padding: 0.75rem 1rem; overflow-y: auto; flex: 1;
}
.dost-ab-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.75rem; padding: 0.75rem 1rem; border-top: 1px solid var(--dost-border, #dee2e6);
}
.dost-ab-foot > div { display: flex; gap: 0.5rem; }
.dost-ab-section { border: 1px solid var(--dost-border, #e9ecef); border-radius: 6px; padding: 0.5rem 0.75rem; }
.dost-ab-sectitle { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; }

/* --- G117/G121: Duyuru panel ızgara şablonları (Yeni Duyuru + duyuru detayı PAYLAŞIR — tek kaynak).
   Kod → yerleşim: 1 tek; 21 yan yana; 22 alt alta; 31 3 sütun; 32 1 üst + 2 alt; 41 2×2; 42 4 sütun.
   Dar ekranda yalnız .dost-annl-stack-narrow taşıyan GERÇEK panel kapsayıcıları alt alta akar
   (şablon önizleme kartları etkilenmez). --- */
.dost-annl-single { display: grid; grid-template-columns: 1fr; }
.dost-annl-2-col { display: grid; grid-template-columns: 1fr 1fr; }
.dost-annl-2-row { display: grid; grid-template-columns: 1fr; }
.dost-annl-3-col { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.dost-annl-3-split { display: grid; grid-template-columns: 1fr 1fr; }
.dost-annl-3-split > :first-child { grid-column: 1 / -1; }
.dost-annl-4-grid { display: grid; grid-template-columns: 1fr 1fr; }
.dost-annl-4-col { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; }
@media (max-width: 720px) {
    .dost-annl-stack-narrow { grid-template-columns: 1fr !important; }
    .dost-annl-stack-narrow.dost-annl-3-split > :first-child { grid-column: auto; }
}

/* G121 duyuru DETAYI panelleri (AnnouncementViewPage) — editör önizlemesindeki .ann-panels/.ann-panel
   scoped CSS burada uygulanamaz; ızgara boşluğu + panel çerçevesi global tanımlanır (inceleme düzeltmesi:
   çok sütunlu şablonlarda paneller bitişik render oluyordu). */
.ann-view-panels { gap: 12px; }
.ann-view-panel {
    min-width: 0; padding: 8px;
    border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 6px;
    background: var(--bs-body-bg, #fff);
}

/* G244: birim seçici custom dropdown (AffiliationPicker) */
.dost-ud { position: relative; }
.dost-ud-btn { text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dost-ud-menu {
    /* G245: 1060 — UnitUserPicker sonuç listesi (1056) picker menüsünü örtmesin; kullanıcı
       AÇIKÇA açtığı menü her zaman üstte kazanır. */
    position: absolute; z-index: 1060; min-width: 100%; max-height: 280px;
    overflow-y: auto; margin-top: 2px;
}
.dost-ud .ud-measure {
    position: absolute; visibility: hidden; white-space: nowrap;
    pointer-events: none; left: 0; top: 0; height: 0; overflow: hidden;
}
.dost-ud .ud-short { display: none; }
.dost-ud.ud-compact .ud-long { display: none; }
.dost-ud.ud-compact .ud-short { display: inline; }
.dost-ud-item { white-space: normal; font-size: .875rem; }
.dost-ud-item.ud-hi { background: var(--bs-tertiary-bg, #e9ecef); }
.dost-ud-item .ud-code { opacity: .6; font-size: .8em; margin-left: .35rem; }
