/*
 * Uygulama stilleri - CoreUI 5 (static/vendor/coreui) USTUNE; yalniz CoreUI'de karsiligi olmayanlar.
 * Renkler CoreUI degiskenlerinden (--cui-*): aydinlik / karanlik mod otomatik.
 * Ekranlar CoreUI / Bootstrap siniflariyla yazilir (card, table, btn, badge, form-control, alert).
 */

/* ---- iskelet (base.html); CoreUI Free Admin Template style.scss karsiligi (MIT) ---- */
body { background-color: var(--cui-tertiary-bg); }
[data-coreui-theme=dark] body { background-color: var(--cui-dark-bg-subtle); }
[data-coreui-theme=dark] .footer { --cui-footer-bg: var(--cui-body-bg); }
.wrapper { width: 100%; padding-inline: var(--cui-sidebar-occupy-start, 0) var(--cui-sidebar-occupy-end, 0); will-change: auto;
           transition: padding .15s; }
.header > .container-fluid, .sidebar-header { min-height: calc(4rem + 1px); }
.sidebar-toggler { margin-inline-start: auto; }
.sidebar-narrow .sidebar-toggler, .sidebar-narrow-unfoldable:not(:hover) .sidebar-toggler { margin-inline-end: auto; }
.footer { min-height: calc(3rem + 1px); }
.sidebar-nav { overflow-y: auto; }

.sidebar-brand { color: #fff; text-decoration: none; display: flex; align-items: center; gap: .5rem; min-width: 0; }
.sidebar-brand img { display: block; max-width: 180px; object-fit: contain; }
.marka-metin { display: flex; flex-direction: column; line-height: 1.15; font-weight: 700; white-space: normal; }
.marka-metin small { font-weight: 400; font-size: .72rem; opacity: .8; }
.sidebar-narrow-unfoldable:not(:hover) .marka-metin, .sidebar-narrow .marka-metin { display: none; }
.sidebar-nav .nav-link.disabled { white-space: normal; }
.sidebar-nav .nav-link.disabled .badge { margin-left: auto; flex-shrink: 0; font-size: .65rem; }
.proje-sekmeleri .nav-link { padding-top: .75rem; padding-bottom: .75rem; }
.header .aktif-proje { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.header .aktif-proje .ad { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40vw; }
.alt-bilgi { justify-content: center; color: var(--cui-secondary-color); font-size: .8rem; }
/* giris / kayit talebi: logo koyu seritte (acik renkli logolar beyaz zeminde kaybolur) */
.giris-baslik { background: #212631; color: #fff; padding: 1.75rem 1rem 1.25rem; }
.giris-logo { display: block; margin: 0 auto .75rem; max-height: 110px; max-width: 80%; object-fit: contain; }
.giris-ad { font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.giris-kurum { font-size: .85rem; opacity: .8; margin-top: .15rem; }
.poligon-eslesti { background: var(--cui-success-bg-subtle); color: var(--cui-success-text-emphasis); }
.poligon-degisecek { background: var(--cui-info-bg-subtle); color: var(--cui-info-text-emphasis); }
.poligon-eslesmedi { background: var(--cui-secondary-bg); color: var(--cui-secondary-color); }
.poligon-coklu { background: var(--cui-warning-bg-subtle); color: var(--cui-warning-text-emphasis); }
.poligon-gecersiz { background: var(--cui-danger-bg-subtle); color: var(--cui-danger-text-emphasis); }
.poligon-elle { background: var(--cui-primary-bg-subtle); color: var(--cui-primary-text-emphasis); }
.kullanici-talep { background: var(--cui-warning-bg-subtle); color: var(--cui-warning-text-emphasis); }
.kullanici-aktif { background: var(--cui-success-bg-subtle); color: var(--cui-success-text-emphasis); }
.kullanici-pasif { background: var(--cui-secondary-bg); color: var(--cui-secondary-color); }
.baslik-satiri { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.baslik-satiri h1 { margin: 0; }
.islemler form { display: inline; }

/* ---- durum rozetleri (badge ile: <span class="badge rozet proje-kontrolde">) ---- */
.rozet { background: var(--cui-secondary-bg); color: var(--cui-body-color); font-weight: 600; }
.durum-kaydedildi, .durum-a, .proje-onaylandi, .is-tamam { background: var(--cui-success-bg-subtle); color: var(--cui-success-text-emphasis); }
.durum-hata, .is-hata { background: var(--cui-danger-bg-subtle); color: var(--cui-danger-text-emphasis); }
.durum-onizleme, .durum-t, .proje-duzeltme, .is-bekliyor { background: var(--cui-warning-bg-subtle); color: var(--cui-warning-text-emphasis); }
.proje-kontrolde, .is-calisiyor { background: var(--cui-info-bg-subtle); color: var(--cui-info-text-emphasis); }
.durum-p, .proje-taslak, .proje-kapandi, .durum-iptal, .durum-veri_silindi { background: var(--cui-secondary-bg); color: var(--cui-secondary-color); }
tr.sinif-hatali > * { background: var(--cui-danger-bg-subtle) !important; }
tr.sinif-guncellenir > * { background: var(--cui-warning-bg-subtle) !important; }
.hiy-celiski { color: var(--cui-danger); font-weight: 600; }
.hiy-belirsiz { color: var(--cui-secondary-color); }

/* ---- formlar (templates/ortak/alan.html) ---- */
.secenek-kutulari > div { display: flex; flex-wrap: wrap; gap: .25rem 1.2rem; }
.secenek-kutulari label { display: inline-flex; align-items: center; gap: .35rem; }
.secenek-kutulari .form-check-input { margin-top: 0; }

/* ---- tablolar ---- */
table.bilgi { width: 100%; font-size: .875rem; }
table.bilgi th { color: var(--cui-secondary-color); font-weight: 400; padding-right: .75rem; vertical-align: top; white-space: nowrap; width: 1%; }
table.bilgi td { word-break: break-word; }
.sayilar td { text-align: right; }
.sayilar tr.toplam { font-weight: 700; }
.kose-kutusu { max-height: 28rem; overflow-y: auto; }
.koseler td, .koseler th { font-family: ui-monospace, Consolas, monospace; font-size: .8rem; }
.liste { columns: 3 14rem; padding-left: 1.2rem; }
pre.ham { max-height: 20rem; overflow: auto; font-size: .8rem; background: var(--cui-tertiary-bg); padding: .5rem; }
.matris th.small { min-width: 5.5rem; }
.etiket-tablosu td:nth-child(1) { width: 30%; word-break: break-all; }
.etiket-tablosu td:nth-child(2) { width: 30%; color: var(--cui-secondary-color); }
.etiket-tablosu tr.degisen > td:nth-child(3) { background: var(--cui-warning-bg-subtle); }

/* ---- harita ---- */
body.tam-ekran .wrapper { height: 100vh; min-height: 0 !important; }
body.tam-ekran .header { margin-bottom: 0 !important; }
body.tam-ekran .body { display: flex; flex-direction: column; min-height: 0; }
body.tam-ekran .body > .icerik { max-width: none; padding: 0 !important; flex: 1; min-height: 0; display: flex; flex-direction: column; }
body.tam-ekran .body > .icerik > .alert { margin: .5rem; }
body.tam-ekran .alt-bilgi { display: none !important; }
.harita-duzeni { display: flex; flex: 1; min-height: 0; }
.harita-duzeni.gomulu { height: 70vh; border: 1px solid var(--cui-border-color); border-radius: var(--cui-border-radius-lg); overflow: hidden;
                        margin-bottom: 1rem; }
.harita-panel { width: 300px; flex-shrink: 0; overflow-y: auto; padding: .7rem; background: var(--cui-body-bg);
                border-right: 1px solid var(--cui-border-color); font-size: .875rem; }
.harita-alani { flex: 1; position: relative; min-width: 0; }
.harita { position: absolute; inset: 0; }
.koordinat { position: absolute; left: .5rem; bottom: 2.2rem; background: var(--cui-body-bg); opacity: .92; padding: .25rem .5rem;
             border-radius: var(--cui-border-radius); font: 12px ui-monospace, Consolas, monospace; display: flex; gap: .5rem;
             align-items: center; flex-wrap: wrap; }
.koordinat select { font-size: 11px; max-width: 13rem; width: auto; }
.harita-panel .alan { display: block; margin-bottom: .6rem; }
.harita-panel .alan .form-select { margin-top: .15rem; }
.katmanlar details { margin-bottom: .4rem; }
.katmanlar summary { cursor: pointer; font-weight: 600; }
.katmanlar summary small { color: var(--cui-secondary-color); font-weight: 400; }
.tip-listesi { list-style: none; margin: .2rem 0 0; padding-left: 1.2rem; }
.renk-ornek { display: inline-block; width: 12px; height: 12px; border: 3px solid; border-radius: 2px; vertical-align: middle; margin-left: .2rem; }
.siniflar, .coklu-secim { border: 1px solid var(--cui-border-color); border-radius: var(--cui-border-radius); padding: .5rem; margin: 0 0 .6rem; }
.siniflar legend { font-size: .875rem; font-weight: 600; float: none; width: auto; margin: 0; padding: 0 .25rem; }
.coklu-secim .form-select { margin: .3rem 0; }
.bilgi-kutusu h3 { font-size: 1rem; margin: .8rem 0 .4rem; }
@media (max-width: 700px) {
  .harita-duzeni { flex-direction: column; }
  .harita-panel { width: auto; max-height: 35vh; border-right: 0; border-bottom: 1px solid var(--cui-border-color); }
  .harita-alani { min-height: 50vh; }
}

/* ---- ayarlar ---- */
.onizleme-ust { background: var(--cui-sidebar-bg, #212631); padding: .8rem 1rem; border-radius: var(--cui-border-radius); }
.logo-kucuk { max-height: 32px; vertical-align: middle; background: #212631; padding: 2px; border-radius: 4px; }
.onizleme-ust img { display: inline-block; }

/* ---- kenar menu: secili ana modul ve alt menu farkli renkte (kullanici karari) ---- */
/* ana modul: secili sayfasi icindeyse YA DA grubu tiklanip acildiysa (show) ana modul rengi (2026-10-07) */
.sidebar-nav > .nav-item > .nav-link.active,
.sidebar-nav .nav-group.show > .nav-group-toggle,
.sidebar-nav .nav-group:has(.nav-link.active) > .nav-group-toggle { color: #5cc8ff; font-weight: 600; }
.sidebar-nav > .nav-item > .nav-link.active .nav-icon,
.sidebar-nav .nav-group.show > .nav-group-toggle .nav-icon,
.sidebar-nav .nav-group:has(.nav-link.active) > .nav-group-toggle .nav-icon { color: #5cc8ff; }
/* acik ana modulun SECILMEMIS alt menuleri: ana modul renginin ~3 ton acigi (#5cc8ff + %45 beyaz), beyazdan ayrissin */
.sidebar-nav .nav-group.show .nav-group-items .nav-link:not(.active),
.sidebar-nav .nav-group.show .nav-group-items .nav-link:not(.active) .nav-icon { color: #a5e1ff; }
.sidebar-nav .nav-group.show .nav-group-items .nav-link:not(.active):hover { color: #d2f0ff; }
.sidebar-nav .nav-group-items .nav-link.active { color: #ffc940; font-weight: 600; background: rgba(255, 201, 64, .12);
  box-shadow: inset 3px 0 0 #ffc940; }
.sidebar-nav .nav-group-items .nav-link.active .nav-icon { color: #ffc940; }

/* ---- Proje Kontrol > Ozet haritasi ---- */
.proje-haritasi { height: 30rem; }
.proje-haritasi-kutu { position: absolute; min-width: 12rem; max-width: 18rem; z-index: 5; }
.proje-haritasi-bos { position: absolute; top: .75rem; left: 50%; transform: translateX(-50%); z-index: 4;
  background: var(--cui-body-bg); border: 1px solid var(--cui-border-color); border-radius: .375rem; padding: .35rem .75rem; }

/* ---- acilir agac secici (projeler/is_turu.py, js/agac_secici.js) ---- */
.agac-secici { position: relative; }
.agac-dugme { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.agac-panel { position: absolute; z-index: 1050; left: 0; right: 0; min-width: 22rem; margin-top: .125rem; }
.agac-liste { max-height: 22rem; overflow: auto; font-size: .875rem; }
.agac-satir { padding: .2rem .5rem; cursor: pointer; white-space: nowrap; }
.agac-satir:hover { background: var(--cui-tertiary-bg); }
.agac-satir.baslik { font-weight: 600; }
.agac-satir.pasif { color: var(--cui-secondary-color); }
.agac-satir.secili { background: var(--cui-primary-bg-subtle); }
.agac-ok { display: inline-block; width: 1rem; color: var(--cui-secondary-color); }
.agac-kod { font-family: var(--cui-font-monospace); font-size: .75rem; color: var(--cui-secondary-color); }


/* ---- Is Yonetimi (isler/) ---- */
.rozet.oncelik-dusuk { background: var(--cui-secondary-bg); color: var(--cui-secondary-color); }
.rozet.oncelik-normal { background: var(--cui-info-bg-subtle); color: var(--cui-info-text-emphasis); }
.rozet.oncelik-yuksek { background: var(--cui-warning); color: #212631; }
.rozet.oncelik-acil { background: var(--cui-danger); color: #fff; }
.rozet.gorev-yapilacak { background: var(--cui-secondary-bg); color: var(--cui-body-color); }
.rozet.gorev-suruyor { background: var(--cui-primary); color: #fff; }
.rozet.gorev-bekliyor { background: var(--cui-warning); color: #212631; }
.rozet.gorev-tamam { background: var(--cui-success); color: #fff; }
.rozet.gorev-iptal { background: var(--cui-dark); color: #fff; }
.asama-cubugu { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.asama-cubugu form { margin: 0; }
.kanban { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: 1rem; align-items: flex-start; }
.kanban-sutun { flex: 0 0 17rem; background: var(--cui-tertiary-bg); border-radius: .5rem; display: flex; flex-direction: column;
  max-height: calc(100vh - 16rem); }
.kanban-sutun.uzerinde { outline: 2px dashed var(--cui-primary); }
.kanban-baslik { display: flex; align-items: center; gap: .5rem; padding: .5rem .75rem; border-radius: .5rem .5rem 0 0; }
.kanban-kartlar { overflow-y: auto; padding: 0 .5rem .5rem; min-height: 3rem; display: flex; flex-direction: column; gap: .5rem; }
.kanban-kart[draggable="true"] { cursor: grab; }
.kanban-kart.suruklen { opacity: .5; }
.is-yorum { white-space: normal; word-break: break-word; }
.rozet.takvim-planlandi { background: var(--cui-info-bg-subtle); color: var(--cui-info-text-emphasis); }
.rozet.takvim-tamamlandi { background: var(--cui-success); color: #fff; }
.rozet.takvim-gelmedi { background: var(--cui-warning); color: #212631; }
.rozet.takvim-iptal { background: var(--cui-dark); color: #fff; }
.takvim-lejant { display: inline-block; width: .8rem; height: .8rem; border-radius: 2px; margin-right: .3rem; vertical-align: -1px; }
.takvim-tamam { opacity: .55; }

/* Is Yonetimi 3. asama: Gantt (is karti; cubuklar sunucuda yuzde olarak hesaplanir) */
.gantt-eksen { position: relative; height: 1.2rem; margin-left: 32%; font-size: .75rem; color: var(--cui-secondary-color); }
.gantt-eksen span { position: absolute; top: 0; white-space: nowrap; border-left: 1px solid var(--cui-border-color); padding-left: 2px; }
.gantt-satir { display: flex; align-items: center; gap: .5rem; min-height: 1.6rem; border-top: 1px solid var(--cui-border-color-translucent); }
.gantt-ad { width: 32%; flex: none; }
.gantt-alan { position: relative; flex: 1; height: 1.6rem; }
.gantt-cubuk { position: absolute; top: .35rem; height: .9rem; border-radius: .25rem; min-width: 4px; }
.gantt-cubuk.gantt-gecikti { outline: 2px solid var(--cui-danger); }
.gantt-bugun, .gantt-hedef { position: absolute; top: 0; bottom: 0; width: 0; border-left: 2px solid var(--cui-danger); opacity: .6; }
.gantt-hedef { border-left: 2px dashed var(--cui-warning); }
.gantt-lejant { display: inline-block; width: 12px; height: 0; vertical-align: middle; }
.gantt-bugun-l { border-top: 2px solid var(--cui-danger); }
.gantt-hedef-l { border-top: 2px dashed var(--cui-warning); }
.gantt-cubuk.gorev-yapilacak { background: var(--cui-secondary); }
.gantt-cubuk.gorev-suruyor { background: var(--cui-primary); }
.gantt-cubuk.gorev-bekliyor { background: var(--cui-warning); }
.gantt-cubuk.gorev-tamam { background: var(--cui-success); }

/* ---- idari sinir haritasi (idari/harita.py, js/idari_harita.js) ---- */
.idari-harita { height: 28rem; }
.idari-harita-ipucu { position: absolute; z-index: 6; pointer-events: none; white-space: nowrap; }
.idari-harita-lejant { display: inline-block; width: 1.4rem; vertical-align: middle; }

/* ortak altlik secici (js/altlik.js): sol ustte, yakinlastirma dugmelerinin yaninda */
.kays-altlik { top: .5em; left: 2.6em; }
.kays-altlik select { width: auto; min-width: 8.5rem; padding: .1rem 1.8rem .1rem .45rem; font-size: .8rem; line-height: 1.4;
  background-color: rgba(255, 255, 255, .92); color: #212631; border: 0; }

/* Parseller > Harita gosterimi (js/parsel_listesi_haritasi.js): liste sola kayar, harita sagdan gelir. Gorunmeyen panel
   animasyon bitince katlanir (liste-sabit / harita-sabit) ki sayfa yuksekligi gorunen panele uysun. */
.kaydirmali { overflow-x: hidden; }
.kaydirmali-ray { display: flex; align-items: flex-start; width: 100%; transition: transform .45s ease; }
.kaydirmali-panel { flex: 0 0 100%; min-width: 0; }
.kaydirmali.harita-acik .kaydirmali-ray { transform: translateX(-100%); }
.kaydirmali.liste-sabit #parsel-harita-paneli, .kaydirmali.harita-sabit #parsel-liste-paneli {
  height: 0; overflow: hidden; visibility: hidden; }
.kaydirmali.aninda .kaydirmali-ray { transition: none; }
.parsel-liste-haritasi { height: calc(100vh - 16rem); min-height: 24rem; }

/* Parseller listesi: pasif parsel satiri yumusak zeminli (gorsel ayristirma) */
.table > tbody > tr.satir-pasif > * { --cui-table-bg: #fdf6e7; --bs-table-bg: #fdf6e7; color: var(--cui-secondary-color); }
[data-coreui-theme=dark] .table > tbody > tr.satir-pasif > * { --cui-table-bg: rgba(255, 193, 7, .07); --bs-table-bg: rgba(255, 193, 7, .07); }
