/* LOGO Kokpit — ek tema katmanı (site.css'in üstüne). site.css Bootstrap --bs-* token'larını kullanır;
   burada yalnız kokpite özgü KPI/grafik/durum bileşenleri. */

/* — KPI delta yön renkleri (yön semantiği: artış İYİ mi KÖTÜ mü) — */
.kmp-kpi__delta { display:inline-flex; align-items:center; gap:.2rem; font-size:.8rem; font-weight:600; margin-top:.2rem; }
.kmp-kpi__delta.up   { color:#16a34a; }   /* iyi yön (yeşil ▲) */
.kmp-kpi__delta.down { color:#dc2626; }   /* kötü yön (kırmızı) */
.kmp-kpi__delta.flat { color:var(--bs-secondary-color); }

/* — Grafik renk token'ları (tek yer; tema-duyarlı). Grafikler hex yerine bunları kullanır. — */
:root {
  --kmp-chart-1:#0d6efd; --kmp-chart-2:#6610f2; --kmp-chart-target:#fd7e14;
  --kmp-chart-grid:var(--bs-border-color); --kmp-chart-axis:var(--bs-secondary-color);
  --kmp-chart-age1:#16a34a; --kmp-chart-age2:#0dcaf0; --kmp-chart-age3:#fd7e14; --kmp-chart-age4:#dc3545;
  --kmp-chart-p1:#0d6efd; --kmp-chart-p2:#6610f2; --kmp-chart-p3:#16a34a; --kmp-chart-p4:#fd7e14;
  --kmp-chart-p5:#0dcaf0; --kmp-chart-p6:#d63384; --kmp-chart-p7:#ffc107; --kmp-chart-p8:#20c997;
}
[data-bs-theme="dark"] {
  --kmp-chart-1:#4d9bff; --kmp-chart-2:#a98eff; --kmp-chart-target:#ffa94d;
  --kmp-chart-p1:#4d9bff; --kmp-chart-p2:#a98eff; --kmp-chart-p3:#4ade80; --kmp-chart-p4:#ffa94d;
  --kmp-chart-p5:#3dd5f3; --kmp-chart-p6:#f783ac; --kmp-chart-p7:#ffd43b; --kmp-chart-p8:#38d9a9;
}

/* — Grafik kartı — */
.kmp-chart-card { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.75rem; padding:1rem 1.1rem; }
.kmp-chart-card > h6 { font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); margin:0 0 .7rem; display:flex; align-items:center; justify-content:space-between; }
.kmp-chart-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1rem; padding:0 1rem 1rem; }

/* — Çizgi/alan grafiği: min/max değer etiketleri + x-tarih ekseni (esnemez, HTML) — */
.kmp-chart { position:relative; }
.kmp-chart circle { cursor:pointer; }
.kmp-chart__ymax, .kmp-chart__ymin { position:absolute; right:2px; font-size:.66rem; color:var(--bs-secondary-color);
  font-variant-numeric:tabular-nums; background:var(--bs-body-bg); padding:0 .15rem; pointer-events:none; }
.kmp-chart__ymax { top:-2px; }
.kmp-chart__ymin { bottom:-2px; }
.kmp-chart__xaxis { display:flex; justify-content:space-between; font-size:.66rem; color:var(--bs-secondary-color); margin-top:.1rem; }

/* — Yatay bar (rank list) — */
.kmp-rank { display:flex; flex-direction:column; gap:.5rem; }
.kmp-rank__row { display:grid; grid-template-columns:minmax(80px,140px) 1fr auto; align-items:center; gap:.6rem; font-size:.85rem; }
.kmp-rank__name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kmp-rank__track { height:14px; border-radius:7px; background:var(--bs-tertiary-bg); overflow:hidden; }
.kmp-rank__fill { height:100%; border-radius:7px; background:linear-gradient(90deg,var(--kmp-chart-1),var(--kmp-chart-2)); }
.kmp-rank__val { font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap; }

/* — Yaşlandırma yığılı bar — */
.kmp-aging { display:flex; height:26px; border-radius:7px; overflow:hidden; border:1px solid var(--bs-border-color); }
.kmp-aging__seg { display:flex; align-items:center; justify-content:center; font-size:.72rem; color:#fff; white-space:nowrap; min-width:0; }
.kmp-aging__legend { display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin-top:.5rem; font-size:.76rem; color:var(--bs-secondary-color); }
.kmp-aging__dot { display:inline-block; width:.7rem; height:.7rem; border-radius:2px; margin-right:.3rem; vertical-align:middle; }

/* — Durum desenleri — */
.kmp-skel { background:linear-gradient(90deg,var(--bs-tertiary-bg) 25%,var(--bs-secondary-bg) 37%,var(--bs-tertiary-bg) 63%); background-size:400% 100%; animation:kmpShimmer 1.4s ease infinite; border-radius:.5rem; }
@keyframes kmpShimmer { 0%{background-position:100% 0} 100%{background-position:-100% 0} }
@media (prefers-reduced-motion: reduce){ .kmp-skel { animation:none; } }
.kmp-empty { display:flex; align-items:center; gap:.5rem; color:var(--bs-secondary-color); background:var(--bs-tertiary-bg); border:1px dashed var(--bs-border-color); border-radius:.6rem; padding:1.2rem; justify-content:center; }
.kmp-stale { background:var(--bs-warning-bg-subtle); border:1px solid var(--bs-warning-border-subtle); color:var(--bs-warning-text-emphasis); border-radius:.5rem; padding:.4rem .7rem; font-size:.8rem; }
.kmp-errbanner { background:var(--bs-danger-bg-subtle); border:1px solid var(--bs-danger-border-subtle); color:var(--bs-danger-text-emphasis); border-radius:.5rem; padding:.6rem .9rem; margin:0 1rem 1rem; }

/* — Mod rozeti (SNAPSHOT/CANLI) — */
.kmp-mode { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; padding:.15rem .5rem; border-radius:1rem; white-space:nowrap; }
.kmp-mode--snap { background:var(--bs-secondary-bg); color:var(--bs-secondary-color); }
.kmp-mode--live { background:var(--bs-success-bg-subtle); color:var(--bs-success-text-emphasis); }

/* — Filtre çubuğu (topbar) — */
.kmp-filterbar { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.kmp-filterbar .form-select-sm, .kmp-filterbar .form-control-sm { font-size:.82rem; }
@media (max-width:767.98px){ .kmp-filterbar .kmp-hide-sm { display:none; } }

/* — Risk skoru noktaları (SMMM) — */
.kmp-risk { letter-spacing:1px; }
.kmp-risk--low { color:#16a34a; } .kmp-risk--mid { color:#d97706; } .kmp-risk--high { color:#dc2626; }

#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; width:100%; padding:.6rem 1.25rem; background:#b32121; color:#fff; z-index:1000; }
#blazor-error-ui .dismiss { cursor:pointer; position:absolute; right:.75rem; top:.5rem; }

/* ───────────────────────── Admin alanı (/admin/*) ───────────────────────── */
.kmp-admin { padding:1rem 1rem 2rem; }
.kmp-admin__head { display:flex; align-items:center; gap:.6rem 1rem; flex-wrap:wrap; margin-bottom:1rem; }
.kmp-admin__head h1 { font-size:1.3rem; font-weight:700; margin:0; letter-spacing:-.01em; }
.kmp-admin__head .kmp-admin__sub { color:var(--bs-secondary-color); font-size:.85rem; }
.kmp-admin__head .ms-auto { margin-left:auto; }
/* Admin tablo: site.css .erp-table üstüne; satır hover + sticky başlık + nazik kenarlık */
.kmp-admin-table { width:100%; border-collapse:collapse; font-size:.88rem; background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.6rem; overflow:hidden; }
.kmp-admin-table th, .kmp-admin-table td { padding:.5rem .7rem; border-bottom:1px solid var(--bs-border-color); text-align:left; vertical-align:middle; }
.kmp-admin-table thead th { background:var(--bs-tertiary-bg); font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; color:var(--bs-secondary-color); position:sticky; top:0; z-index:1; }
.kmp-admin-table tbody tr:last-child td { border-bottom:none; }
.kmp-admin-table tbody tr:hover { background:var(--bs-primary-bg-subtle); }
.kmp-admin-table .kmp-admin-actions { white-space:nowrap; text-align:right; }
.kmp-admin-wrap { border-radius:.6rem; overflow:auto; max-height:none; }
/* Satır-içi SVG ikon (KmpIcon) — currentColor, metinle aynı eksende hizalı */
.kmp-ico { vertical-align:-.125em; flex:0 0 auto; }
/* Kompakt KARE ikon butonu (grid satır aksiyonları): metin yerine ikon → aksiyon kolonu daralır, grid yatay taşmaz.
   btn-outline-* renk/anlam korunur (danger=sil kırmızı vb.); title ile erişilebilir ipucu. */
.kmp-iconbtn { --bs-btn-padding-x:0; --bs-btn-padding-y:0; width:1.9rem; height:1.9rem; display:inline-flex;
    align-items:center; justify-content:center; line-height:1; font-size:.95rem; vertical-align:middle; }
.kmp-iconbtn + .kmp-iconbtn { margin-left:.22rem; }
/* Durum/etiket rozetleri */
.kmp-badge { display:inline-flex; align-items:center; gap:.25rem; font-size:.72rem; font-weight:600; padding:.12rem .5rem; border-radius:1rem; }
.kmp-badge--ok { background:var(--bs-success-bg-subtle); color:var(--bs-success-text-emphasis); }
.kmp-badge--off { background:var(--bs-secondary-bg); color:var(--bs-secondary-color); }
.kmp-badge--sys { background:var(--bs-primary-bg-subtle); color:var(--bs-primary-text-emphasis); }
.kmp-badge--logo { background:var(--bs-info-bg-subtle,#cff4fc); color:var(--bs-info-text-emphasis,#055160); }
.kmp-badge--warn { background:var(--bs-warning-bg-subtle); color:var(--bs-warning-text-emphasis); }
.kmp-grouptags { display:flex; flex-wrap:wrap; gap:.25rem; }
.kmp-grouptag { font-size:.72rem; background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); border-radius:.8rem; padding:.05rem .5rem; white-space:nowrap; }
/* Admin form alanı (kart) */
.kmp-admin-card { background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.75rem; padding:1.1rem 1.2rem; margin-bottom:1rem; }
.kmp-admin-card h6 { font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); margin:0 0 .8rem; }
.kmp-toast { position:fixed; right:1rem; bottom:1rem; z-index:1100; background:var(--bs-success-bg-subtle); color:var(--bs-success-text-emphasis); border:1px solid var(--bs-success-border-subtle); border-radius:.6rem; padding:.6rem .9rem; font-size:.86rem; box-shadow:0 .5rem 1.5rem rgba(0,0,0,.18); animation:kmpToastIn .2s var(--kmp-ease,ease); }
.kmp-toast--err { background:var(--bs-danger-bg-subtle); color:var(--bs-danger-text-emphasis); border-color:var(--bs-danger-border-subtle); }
@keyframes kmpToastIn { from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:translateY(0)} }
.kmp-empty-row td { text-align:center; color:var(--bs-secondary-color); padding:1.5rem; }
@media (prefers-reduced-motion: reduce){ .kmp-toast { animation:none; } }

/* ── Dashboard page engine (D1) ── */
.kmp-dash { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:var(--dash-row,80px); gap:var(--dash-gap,8px); padding:0 1rem 1rem; }
.kmp-dash-item { min-width:0; }
/* Tile yüzeyi = kampus .kmp-kpi dili (yumuşak gölge + hover-lift). İç scroll yalnız gövdede. */
.kmp-dash-tile { height:100%; display:flex; flex-direction:column; background:var(--bs-body-bg); border:1px solid var(--bs-border-color); border-radius:.75rem; padding:.85rem .95rem; overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 1px 3px rgba(0,0,0,.03); transition:transform .15s var(--kmp-ease,ease), box-shadow .15s, border-color .15s; }
.kmp-dash-tile:hover { box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08); }
/* KPI kartı kendi krom + accent çubuğunu taşır → tile'ı çıplaklaştır (kutu-içinde-kutu YOK, accent kenara taşar). */
.kmp-dash-tile--bare { padding:0; border:none; background:none; box-shadow:none; overflow:visible; }
.kmp-dash-tile--bare:hover { box-shadow:none; }
.kmp-dash-tile--bare > :only-child { height:100%; }
.kmp-dash-tile__title { margin:0 0 .5rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); flex:0 0 auto; }
.kmp-dash-tile__body { flex:1 1 auto; min-height:0; overflow:auto; }
.kmp-dash-tile__err { display:flex; align-items:center; gap:.45rem; height:100%; background:var(--bs-danger-bg-subtle); border:1px solid var(--bs-danger-border-subtle);
  color:var(--bs-danger-text-emphasis); border-radius:.5rem; padding:.6rem .7rem; font-size:.82rem; }
.kmp-dash-tile__err .retry { margin-left:auto; flex:0 0 auto; }
.kmp-dash-skel { display:flex; flex-direction:column; gap:.5rem; height:100%; }
.kmp-dash-label { font-size:.95rem; }
/* Mobil: tek kolon + satır-span sıfırla (yoksa satır boşlukları/üst üste biner); tile'lara taban yükseklik. */
@media (max-width:991.98px){
  .kmp-dash { grid-template-columns:1fr; grid-auto-rows:auto !important; }
  .kmp-dash-item { grid-column:1/-1 !important; grid-row:auto !important; }
  .kmp-dash-tile { min-height:120px; }
}

/* Edit mode (gridstack) */
.kmp-dash-editbar { position:sticky; top:0; z-index:10; display:flex; gap:.5rem; align-items:center; flex-wrap:wrap;
  padding:.5rem 1rem; background:var(--bs-tertiary-bg); border-bottom:1px solid var(--bs-border-color); }
.kmp-dash-editbar .spacer { flex:1; }
.kmp-dash-editbar__badge { font-size:.72rem; font-weight:600; padding:.15rem .55rem; border-radius:1rem; background:var(--bs-primary-bg-subtle); color:var(--bs-primary-text-emphasis); white-space:nowrap; }
.kmp-dash .grid-stack-item-content { inset:0; position:relative; }
.kmp-dash--edit .kmp-dash-tile { cursor:move; border-style:dashed; border-color:var(--bs-primary-border-subtle); }
/* gridstack sürükle placeholder'ı kampuslaştır */
.kmp-dash .grid-stack-placeholder > .placeholder-content { border:2px dashed var(--bs-primary); background:var(--bs-primary-bg-subtle); border-radius:.75rem; }
/* Sil düğmesi: gerçek dokunma alanı (~28px), hover'da belir, görünür odak halkası */
.kmp-dash-del { position:absolute; top:6px; right:6px; z-index:6; width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center;
  line-height:1; padding:0; border-radius:50%; opacity:0; transition:opacity .12s; }
.grid-stack-item:hover .kmp-dash-del, .kmp-dash-del:focus-visible { opacity:1; }
.kmp-dash-del:focus-visible { outline:2px solid var(--bs-danger); outline-offset:2px; }
.kmp-dash-toolbox { display:flex; flex-wrap:wrap; gap:.35rem; padding:.5rem 1rem; }
.kmp-dash-toolbox button { font-size:.8rem; }
.kmp-dash-prop { padding:.5rem 1rem; display:flex; flex-direction:column; gap:.5rem; max-width:420px; }
/* Seçili nesne vurgusu + inspector (özellik) paneli */
.kmp-dash-item--sel > .grid-stack-item-content, .kmp-dash-item--sel .kmp-dash-tile { outline:2px solid var(--bs-primary); outline-offset:1px; border-radius:.75rem; }
.kmp-dash-inspector { position:fixed; top:0; right:0; width:320px; max-width:92vw; height:100vh; z-index:1055; background:var(--bs-body-bg);
  border-left:1px solid var(--bs-border-color); box-shadow:-.5rem 0 1.5rem rgba(0,0,0,.14); display:flex; flex-direction:column; }
.kmp-dash-inspector__head { display:flex; align-items:center; justify-content:space-between; padding:.7rem 1rem; border-bottom:1px solid var(--bs-border-color); font-weight:600; }
.kmp-dash-inspector__body { padding:.3rem 1rem 1rem; overflow:auto; flex:1 1 auto; }
.kmp-dash-inspector__body .form-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; color:var(--bs-secondary-color); margin:.7rem 0 .15rem; display:block; }
.kmp-dash-inspector__foot { display:flex; gap:.5rem; align-items:center; padding:.7rem 1rem; border-top:1px solid var(--bs-border-color); }

/* Veri kaynağı — premium segmented (pill) switcher: Katalog · Görsel sorgu · Özel SQL */
.kmp-seg { display:flex; gap:.2rem; padding:.2rem; background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); border-radius:.6rem; }
.kmp-seg__btn { flex:1 1 0; min-width:0; display:flex; align-items:center; justify-content:center; gap:.2rem; padding:.34rem .25rem;
  font-size:.7rem; font-weight:600; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--bs-secondary-color);
  background:transparent; border:0; border-radius:.45rem; cursor:pointer; transition:background .18s cubic-bezier(.4,0,.2,1), color .18s, box-shadow .18s; }
.kmp-seg__btn:hover:not(.kmp-seg__btn--on) { color:var(--bs-body-color); background:color-mix(in srgb, var(--bs-body-color) 8%, transparent); }
.kmp-seg__btn--on { color:#fff; background:var(--bs-primary); box-shadow:0 1px 3px rgba(0,0,0,.18); }
.kmp-seg__btn:focus-visible { outline:2px solid var(--bs-primary); outline-offset:2px; }
.kmp-seg__ico { font-size:.82rem; line-height:1; }
.kmp-seg-hint { display:flex; gap:.4rem; align-items:flex-start; font-size:.7rem; line-height:1.3; color:var(--bs-secondary-color); margin:.45rem 0 .1rem; }
.kmp-seg-hint__dot { flex:0 0 auto; width:.5rem; height:.5rem; border-radius:50%; margin-top:.25rem; }
.kmp-seg-meta { display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; font-size:.7rem; margin-top:.3rem; }
.kmp-shape-badge { background:var(--bs-primary-bg-subtle); color:var(--bs-primary-text-emphasis); font-weight:600; }
@media (prefers-reduced-motion: reduce) { .kmp-seg__btn { transition:none; } }

/* Görünürlük chip seçici (admin sayfa düzenleme — persona/grup gating) */
.kmp-vis-group { margin-bottom:.5rem; }
.kmp-vis-cap { font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; color:var(--bs-secondary-color); margin-bottom:.25rem; }
.kmp-vis-chips { display:flex; flex-wrap:wrap; gap:.35rem; }
.kmp-vis-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .55rem; font-size:.78rem; border:1px solid var(--bs-border-color);
  border-radius:1rem; cursor:pointer; user-select:none; background:var(--bs-body-bg); transition:background .15s, border-color .15s, color .15s; }
.kmp-vis-chip:hover { border-color:var(--bs-primary); }
.kmp-vis-chip input { margin:0; }
.kmp-vis-chip--on { background:var(--bs-primary-bg-subtle); border-color:var(--bs-primary); color:var(--bs-primary-text-emphasis); font-weight:600; }

/* Wizard / sayfalı form — büyük formları adımlara böler (modal şişmez). Stepper başlığı + adım gövdesi. */
.kmp-steps { display:flex; gap:.4rem; margin-bottom:1rem; flex-wrap:wrap; }
.kmp-steps__item { display:flex; align-items:center; gap:.45rem; padding:.4rem .7rem; border:1px solid var(--bs-border-color);
  border-radius:2rem; background:var(--bs-body-bg); color:var(--bs-secondary-color); font-size:.8rem; font-weight:600; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s; }
.kmp-steps__item:hover { border-color:var(--bs-primary); color:var(--bs-body-color); }
.kmp-steps__num { display:inline-flex; align-items:center; justify-content:center; width:1.4rem; height:1.4rem; border-radius:50%;
  background:var(--bs-tertiary-bg); color:var(--bs-secondary-color); font-size:.72rem; flex:0 0 auto; }
.kmp-steps__item--on { border-color:var(--bs-primary); color:var(--bs-primary-text-emphasis); background:var(--bs-primary-bg-subtle); }
.kmp-steps__item--on .kmp-steps__num { background:var(--bs-primary); color:#fff; }
.kmp-steps__item--done .kmp-steps__num { background:var(--bs-success); color:#fff; }
.kmp-wizard__body { min-height:18rem; }   /* adımlar arası zıplamayı azalt */
@media (max-width:575px) { .kmp-steps__label { display:none; } }   /* mobilde sadece numara */
@media (prefers-reduced-motion: reduce) { .kmp-steps__item { transition:none; } }
