/* =====================================================================
   Uyumluluk katmani
   ---------------------------------------------------------------------
   Eski Color Admin temasindan kalan yardimci siniflari Bootstrap 5 /
   Edudash temasi altinda calisir halde tutar.

   Sayfalar kademeli olarak modernlestirildikce bu dosya kuculmeli ve
   sonunda silinmelidir. Yeni kod bu siniflari KULLANMAMALIDIR.
   ===================================================================== */

/* =====================================================================
   Genel yazi boyutu
   Tema olculeri rem tabanli; kok boyutu 16px -> 15px yapmak tum arayuzu
   (menu, tablo, kart, form) orantili olarak bir tik kucultur.
   ===================================================================== */
html{font-size:15px}

/* =====================================================================
   Yerlesim sikilastirma - icerik alani kazanmak icin
   Sidebar genisligi ile .dashboard-main marji BIRBIRINE ESIT olmali,
   yoksa icerik menunun altina girer. Her kirilim noktasinda ikisi de
   ayni degerle guncellenir.
   ===================================================================== */
.dashboard-main-body{padding:.625rem .75rem}

@media (min-width:1200px){
    .sidebar{width:12.5rem}
    .dashboard-main{margin-inline-start:12.5rem}
}
@media (min-width:1400px){
    .sidebar{width:14.5rem}
    .dashboard-main{margin-inline-start:14.5rem}
    .dashboard-main-body{padding:.75rem 1rem}
}
@media (min-width:1650px){
    .sidebar{width:15.5rem}
    .dashboard-main{margin-inline-start:15.5rem}
}

/*
 * Daraltilmis menu: .sidebar.active genisligi SABIT 86px, ama temanin
 * icerik marji 5.375rem idi. Kok font 16px -> 15px yapilinca 5.375rem
 * 80.6px'e dustu ve icerik menunun altina giriyordu. Piksel ile esitliyoruz.
 */
@media (min-width:1199px){
    .dashboard-main.active{margin-inline-start:86px}
}

/* Baslik satiri ile icerik arasi */
.dashboard-main-body > .breadcrumb{margin-bottom:.875rem!important}
.dashboard-main-body > .breadcrumb h1{margin-bottom:.125rem!important}

/* Ust bar ve alt bilgi de biraz alcalsin */
.navbar-header{padding-block:.5rem}
.d-footer{padding:.75rem 1rem}

/* Kart ic bosluklari */
.card-body.p-24{padding:1rem!important}
.mb-24{margin-bottom:1rem!important}

/* Tablolar biraz daha sik olsun */
.table{font-size:.875rem}
.table > :not(caption) > * > *{padding:.55rem .6rem}
.table thead th{font-size:.8rem;font-weight:600;letter-spacing:.01em}

/* --- Kenar bosluklari: m-r-5, m-b-10, m-t-20, m-l-15 ... --- */
.m-r-0{margin-right:0!important}.m-r-1{margin-right:1px!important}.m-r-2{margin-right:2px!important}
.m-r-3{margin-right:3px!important}.m-r-5{margin-right:5px!important}.m-r-10{margin-right:10px!important}
.m-r-15{margin-right:15px!important}.m-r-20{margin-right:20px!important}.m-r-25{margin-right:25px!important}
.m-r-30{margin-right:30px!important}.m-r-40{margin-right:40px!important}.m-r-50{margin-right:50px!important}

.m-l-0{margin-left:0!important}.m-l-1{margin-left:1px!important}.m-l-2{margin-left:2px!important}
.m-l-3{margin-left:3px!important}.m-l-5{margin-left:5px!important}.m-l-10{margin-left:10px!important}
.m-l-15{margin-left:15px!important}.m-l-20{margin-left:20px!important}.m-l-25{margin-left:25px!important}
.m-l-30{margin-left:30px!important}.m-l-40{margin-left:40px!important}.m-l-50{margin-left:50px!important}

.m-t-0{margin-top:0!important}.m-t-1{margin-top:1px!important}.m-t-2{margin-top:2px!important}
.m-t-3{margin-top:3px!important}.m-t-5{margin-top:5px!important}.m-t-10{margin-top:10px!important}
.m-t-15{margin-top:15px!important}.m-t-20{margin-top:20px!important}.m-t-25{margin-top:25px!important}
.m-t-30{margin-top:30px!important}.m-t-40{margin-top:40px!important}.m-t-50{margin-top:50px!important}

.m-b-0{margin-bottom:0!important}.m-b-1{margin-bottom:1px!important}.m-b-2{margin-bottom:2px!important}
.m-b-3{margin-bottom:3px!important}.m-b-5{margin-bottom:5px!important}.m-b-10{margin-bottom:10px!important}
.m-b-15{margin-bottom:15px!important}.m-b-20{margin-bottom:20px!important}.m-b-25{margin-bottom:25px!important}
.m-b-30{margin-bottom:30px!important}.m-b-40{margin-bottom:40px!important}.m-b-50{margin-bottom:50px!important}

.p-0{padding:0!important}.p-5{padding:5px!important}.p-10{padding:10px!important}
.p-15{padding:15px!important}.p-20{padding:20px!important}

.no-margin{margin:0!important}.no-padding{padding:0!important}

/* --- Genislikler --- */
.width-50{width:50px!important}.width-60{width:60px!important}.width-70{width:70px!important}
.width-80{width:80px!important}.width-100{width:100px!important}.width-120{width:120px!important}
.width-150{width:150px!important}.width-200{width:200px!important}.width-250{width:250px!important}
.width-300{width:300px!important}.width-full{width:100%!important}

/* --- Yazi boyutlari --- */
.f-s-8{font-size:8px!important}.f-s-9{font-size:9px!important}.f-s-10{font-size:10px!important}
.f-s-11{font-size:11px!important}.f-s-12{font-size:12px!important}.f-s-13{font-size:13px!important}
.f-s-14{font-size:14px!important}.f-s-16{font-size:16px!important}.f-s-18{font-size:18px!important}
.f-s-20{font-size:20px!important}.f-w-600{font-weight:600!important}.f-w-700{font-weight:700!important}

/* --- Color Admin renk butonlari --- */
.btn-default{color:#212529;background-color:#e9ecef;border-color:#dee2e6}
.btn-default:hover{color:#212529;background-color:#dde1e5;border-color:#ced4da}
.btn-lime{color:#fff;background-color:#90ca4b;border-color:#90ca4b}
.btn-lime:hover{color:#fff;background-color:#7fb442;border-color:#7fb442}
.btn-inverse{color:#fff;background-color:#2d353c;border-color:#2d353c}
.btn-inverse:hover{color:#fff;background-color:#242a30;border-color:#242a30}
.btn-purple{color:#fff;background-color:#727cb6;border-color:#727cb6}
.btn-purple:hover{color:#fff;background-color:#656ea4;border-color:#656ea4}

.text-inverse{color:#2d353c!important}
.text-lime{color:#90ca4b!important}
.text-purple{color:#727cb6!important}
.bg-lime{background-color:#90ca4b!important}
.bg-inverse{background-color:#2d353c!important}

/* --- Eski .label bilesenini rozet gibi goster (BS5'te .label yok) --- */
.label{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;
       color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.375rem}
.label-default{background-color:#6c757d}.label-primary{background-color:#0d6efd}
.label-success{background-color:#198754}.label-info{background-color:#0dcaf0;color:#000}
.label-warning{background-color:#ffc107;color:#000}.label-danger{background-color:#dc3545}
.label-inverse{background-color:#2d353c}.label-lime{background-color:#90ca4b}

/* --- Kart basligindaki islem butonlari --- */
.card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.card-header-btn{display:flex;align-items:center;gap:.25rem;order:2}
.card-header .card-title{order:1;margin:0}

/* --- Eski tablo/form kucuk duzeltmeleri --- */
.table-valign-middle td,.table-valign-middle th{vertical-align:middle}
.input-group-append,.input-group-prepend{display:flex}
.input-group-append>.btn,.input-group-prepend>.btn{border-radius:0}
.input-group>.input-group-append:last-child>.btn{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}
.input-group>.input-group-prepend:first-child>.btn{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}

/* =====================================================================
   Liste sayfalari - Edudash "student.html" gorunumu
   Eski .card > .card-header > .card-body > table yapisini, sablonun
   kart + araç çubuğu + kenarlikli tablo desenine yaklastirir.
   ===================================================================== */

.card{border:0;border-radius:12px;background:var(--white,#fff)}
.card-header{background:transparent;border-bottom:1px solid #e5e7eb;padding:12px 20px;min-height:56px}
/* Not: --primary-light temada rgba(72,127,255,.15) yani neredeyse saydam bir
   mavi; yazi rengi icin --text-primary-light kullanilmali. Yanlis degisken
   yuzunden tum kart basliklari beyaz zeminde okunmuyordu. */
.card-header .card-title{font-size:1rem;font-weight:600;color:var(--text-primary-light,#111827)}
.card-body{padding:0}
.card-body>.table-responsive{padding:12px 20px}
.card-body>*:not(.table-responsive){padding-left:20px;padding-right:20px}
.card-footer{background:transparent;border-top:1px solid #e5e7eb;padding:12px 20px}

/* DataTables araç çubugu (uzunluk secimi / arama / butonlar) */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dt-buttons{margin-bottom:12px}
.dataTables_wrapper .dataTables_filter input{border:1px solid #d1d5db;border-radius:8px;padding:6px 12px}
.dataTables_wrapper .dataTables_length select{border:1px solid #d1d5db;border-radius:8px;padding:5px 10px}
.dataTables_wrapper .dt-button{border:1px solid #d1d5db!important;border-radius:8px!important;
    background:#fff!important;color:#4b5563!important;font-size:.875rem;padding:5px 12px!important;margin-right:6px}
.dataTables_wrapper .dt-button:hover{background:#f3f4f6!important}
.dataTables_wrapper .dataTables_paginate .paginate_button{border-radius:8px!important;border:0!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:#487fff!important;color:#fff!important}
.dataTables_wrapper .dataTables_info{color:#6b7280;font-size:.875rem}

/* =====================================================================
   Siralama ikonlari - eski DataTables (1.10) sayfalari icin
   ---------------------------------------------------------------------
   Tema DataTables 2 ile geliyor ve ikonlari <span class="dt-column-order">
   uzerinden ciziyor. Excel/Yazdir eklentileri hala 1.10'a bagli oldugu
   icin bazi sayfalar DT 1.10'u tekrar yukluyor; o surum baslik hucresine
   sadece .sorting / .sorting_asc / .sorting_desc siniflarini ekler ve
   ikonu "Glyphicons Halflings" fontundan cizmeye calisir. Bootstrap 5
   temasinda o font YOK - ikon yerine bos kutu cikiyordu.
   Asagidaki kurallar DT 2 gorunumunu (ustte ▲ / altta ▼) DT 1 sinif
   isimleriyle yeniden uretir.

   Ozgulluk notu: dataTables.bootstrap.min.css sayfa bazli yuklendigi icin
   compat.css'ten SONRA gelir. Bu yuzden secicilerde tr > th zinciri
   kullanildi - eski kurali !important'siz gecmek icin gerekli.

   Sayfalar DataTables 2'ye tasindikca bu blok silinebilir.
   ===================================================================== */
table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > th.sorting_asc,
table.dataTable thead > tr > th.sorting_desc,
table.dataTable thead > tr > th.sorting_asc_disabled,
table.dataTable thead > tr > th.sorting_desc_disabled,
table.dataTable thead > tr > td.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc{
    position:relative;padding-right:26px;cursor:pointer;
}

table.dataTable thead > tr > th.sorting::before,
table.dataTable thead > tr > th.sorting::after,
table.dataTable thead > tr > th.sorting_asc::before,
table.dataTable thead > tr > th.sorting_asc::after,
table.dataTable thead > tr > th.sorting_desc::before,
table.dataTable thead > tr > th.sorting_desc::after,
table.dataTable thead > tr > th.sorting_asc_disabled::before,
table.dataTable thead > tr > th.sorting_asc_disabled::after,
table.dataTable thead > tr > th.sorting_desc_disabled::before,
table.dataTable thead > tr > th.sorting_desc_disabled::after,
table.dataTable thead > tr > td.sorting::before,
table.dataTable thead > tr > td.sorting::after,
table.dataTable thead > tr > td.sorting_asc::before,
table.dataTable thead > tr > td.sorting_asc::after,
table.dataTable thead > tr > td.sorting_desc::before,
table.dataTable thead > tr > td.sorting_desc::after{
    position:absolute;right:10px;display:block;width:12px;
    font-family:inherit;font-size:.8em;line-height:9px;
    font-weight:400;color:inherit;opacity:.2;
}

/* Ust ok: artan */
table.dataTable thead > tr > th.sorting::before,
table.dataTable thead > tr > th.sorting_asc::before,
table.dataTable thead > tr > th.sorting_desc::before,
table.dataTable thead > tr > th.sorting_asc_disabled::before,
table.dataTable thead > tr > th.sorting_desc_disabled::before,
table.dataTable thead > tr > td.sorting::before,
table.dataTable thead > tr > td.sorting_asc::before,
table.dataTable thead > tr > td.sorting_desc::before{
    bottom:50%;content:"\25B2";
}

/* Alt ok: azalan */
table.dataTable thead > tr > th.sorting::after,
table.dataTable thead > tr > th.sorting_asc::after,
table.dataTable thead > tr > th.sorting_desc::after,
table.dataTable thead > tr > th.sorting_asc_disabled::after,
table.dataTable thead > tr > th.sorting_desc_disabled::after,
table.dataTable thead > tr > td.sorting::after,
table.dataTable thead > tr > td.sorting_asc::after,
table.dataTable thead > tr > td.sorting_desc::after{
    top:50%;content:"\25BC";
}

/* Etkin yon belirginlesir */
table.dataTable thead > tr > th.sorting_asc::before,
table.dataTable thead > tr > th.sorting_desc::after,
table.dataTable thead > tr > td.sorting_asc::before,
table.dataTable thead > tr > td.sorting_desc::after{opacity:.75}

/* O yone siralama kapaliysa ok hic gosterilmez */
table.dataTable thead > tr > th.sorting_asc_disabled::before,
table.dataTable thead > tr > th.sorting_desc_disabled::after{display:none}

table.dataTable thead > tr > th.sorting:hover,
table.dataTable thead > tr > th.sorting_asc:hover,
table.dataTable thead > tr > th.sorting_desc:hover{
    outline:2px solid rgba(0,0,0,.05);outline-offset:-2px;
}
[data-theme="dark"] table.dataTable thead > tr > th.sorting:hover,
[data-theme="dark"] table.dataTable thead > tr > th.sorting_asc:hover,
[data-theme="dark"] table.dataTable thead > tr > th.sorting_desc:hover{
    outline-color:rgba(255,255,255,.05);
}

/* --- Ozet rapor tablosu --- */
.w-44-px{width:44px}.h-44-px{height:44px}
.min-w-0{min-width:0}
.text-xs{font-size:.75rem}

.ozet-tablo{font-variant-numeric:tabular-nums;border-collapse:separate;border-spacing:0}
.ozet-tablo td.text-end,.ozet-tablo th.text-end{white-space:nowrap}

/* Yapiskan baslik - uzun listede sutun adlari kaybolmasin */
.ozet-tablo thead th{
    position:sticky;top:0;z-index:2;
    background:#f8fafc;border-bottom:1px solid #e2e8f0;
    white-space:nowrap;
}
/*
 * Sabit (sticky) SUTUN kullanilmiyor.
 * Denendi ve kaldirildi: sabit sutun icin sol ofsetin (left:170px gibi) pixel
 * olarak verilmesi gerekiyor, DataTables ise sutun genisliklerini calisma
 * aninda kendisi hesapliyor. Ikisi tutmadigi anda baslik satiri govdeden
 * kayiyor. Sadece sabit BASLIK birakildi - o guvenli.
 */
.ozet-tablo tbody tr:hover td{background:#f8fafc}

.ozet-tablo tfoot .ozet-toplam th{
    position:sticky;bottom:0;z-index:2;
    background:#f1f5f9;border-top:2px solid #cbd5e1;
    font-weight:700;color:#111827;white-space:nowrap;
}

/* Iki metin sutunlu surum: ilk iki sutun cok daralmasin (sabitlenmiyor) */
.ozet-tablo-2 thead th:first-child,
.ozet-tablo-2 tbody td:first-child{min-width:160px}
.ozet-tablo-2 thead th:nth-child(2),
.ozet-tablo-2 tbody td:nth-child(2){min-width:150px}

/* Kaydirma alani: yapiskan basligin ise yaramasi icin yukseklik siniri */
.ozet-kaydirma{max-height:calc(100vh - 340px);min-height:280px;overflow:auto}

/* --- Cok sutunlu tablolar icin sik surum (ekrana sigsin) ---
   Tema varsayilanlari genis: .bordered-table min-width:max-content, baslik
   padding 16px/1rem, table.dataTable hucrelerinde padding-inline-start 24px.
   Bu uclusu 13 sutunlu listelerde tabloyu ekran disina tasiriyordu.
   Secicilerde "table.ozet-tablo-sik > tbody > tr > td" zinciri, tema
   kuralini (!important olmadan) gecebilmek icin gerekli. */
table.ozet-tablo-sik{min-width:0;font-size:.8125rem}
table.ozet-tablo-sik>thead>tr>th{padding:8px 10px!important;font-size:.8125rem}
table.ozet-tablo-sik>tbody>tr>td{padding:6px 10px}
table.ozet-tablo-sik>tfoot>tr>th{padding:8px 10px!important;font-size:.8125rem}
/* Uzun metin sutunlari sarabilsin - satir yuksekligi buyumesin diye sinirli */
table.ozet-tablo-sik td.sar{white-space:normal;max-width:200px;overflow-wrap:anywhere}
/* Satir ici islem butonlari ve durum rozetleri de kuculsun */
table.ozet-tablo-sik .btn-sm{padding:2px 6px;font-size:.75rem;line-height:1.4}
table.ozet-tablo-sik .durum-aktif,
table.ozet-tablo-sik .durum-pasif,
table.ozet-tablo-sik .durum-bekleyen{padding:2px 8px;font-size:.75rem}

/* =====================================================================
   Kompakt liste/rapor sayfalari
   ---------------------------------------------------------------------
   Iki yoldan devreye girer:
     1) sayfa icerigini .rapor-kompakt sarar (elle duzenlenen sayfalar), veya
     2) sayfada .ozet-tablo sinifli bir tablo vardir (toplu gecis yapilan
        liste sayfalari - ayrica sarmalayici eklemeye gerek kalmasin diye).
   Genel .card-header / .card-body degerleri (12px 20px) genis tablolarda
   fazla yer harciyor.
   ===================================================================== */
.dashboard-main-body:has(.rapor-kompakt),
.dashboard-main-body:has(table.ozet-tablo){padding:.375rem .75rem}

.rapor-kompakt .card-header,
.dashboard-main-body:has(table.ozet-tablo) .card-header{padding:8px 10px;min-height:0}
.rapor-kompakt .card-body>.table-responsive,
.dashboard-main-body:has(table.ozet-tablo) .card-body>.table-responsive{padding:6px 10px}
.rapor-kompakt .card-body>*:not(.table-responsive),
.dashboard-main-body:has(table.ozet-tablo) .card-body>*:not(.table-responsive){padding-left:10px;padding-right:10px}
.rapor-kompakt .card.p-3{padding:.625rem!important}
.rapor-kompakt .mb-24{margin-bottom:.625rem!important}
/* Ust bosluklar kisaldi - kaydirma alani o kadar uzayabilir */
.rapor-kompakt .ozet-kaydirma{max-height:calc(100vh - 290px)}

/* --- Eski filtre formlari ---------------------------------------------
   Eski sayfalarda filtreler <form><table><tr><td> iskeletinde ve alanlarin
   hicbirinde bootstrap sinifi yok. Markup'a dokunmadan, tema alanlarina
   benzemeleri icin bicimlendiriliyor. Kapsam: sadece gecis yapilmis
   liste sayfalari. */
.dashboard-main-body:has(table.ozet-tablo) form>.table-responsive{padding:0}
.dashboard-main-body:has(table.ozet-tablo) form table{width:auto;margin:0;border:0}
.dashboard-main-body:has(table.ozet-tablo) form table td{
    padding:3px 6px;vertical-align:middle;border:0;white-space:nowrap;font-size:.8125rem;
}
.dashboard-main-body:has(table.ozet-tablo) form input[type="date"],
.dashboard-main-body:has(table.ozet-tablo) form input[type="text"],
.dashboard-main-body:has(table.ozet-tablo) form input[type="number"],
.dashboard-main-body:has(table.ozet-tablo) form input[type="search"],
.dashboard-main-body:has(table.ozet-tablo) form select{
    border:1px solid #d1d5db;border-radius:8px;padding:4px 8px;
    font-size:.8125rem;line-height:1.4;background:#fff;color:#111827;max-width:220px;
}
.dashboard-main-body:has(table.ozet-tablo) form input[type="submit"]{
    border:0;border-radius:8px;padding:5px 14px;font-size:.8125rem;
    background:#487fff;color:#fff;cursor:pointer;
}
.dashboard-main-body:has(table.ozet-tablo) form input[type="submit"]:hover{background:#2f68e6}
.dashboard-main-body:has(table.ozet-tablo) form input[type="checkbox"],
.dashboard-main-body:has(table.ozet-tablo) form input[type="radio"]{margin:0 4px 0 8px;vertical-align:middle}
/* Kart basligi ile filtre arasindaki eski <br>'ler bosluk yapmasin */
.dashboard-main-body:has(table.ozet-tablo) .card>br{display:none}
.dashboard-main-body:has(table.ozet-tablo) form[style*="margin-left"]{margin-left:0!important;padding:6px 10px}

[data-theme="dark"] .dashboard-main-body:has(table.ozet-tablo) form input[type="date"],
[data-theme="dark"] .dashboard-main-body:has(table.ozet-tablo) form input[type="text"],
[data-theme="dark"] .dashboard-main-body:has(table.ozet-tablo) form input[type="number"],
[data-theme="dark"] .dashboard-main-body:has(table.ozet-tablo) form input[type="search"],
[data-theme="dark"] .dashboard-main-body:has(table.ozet-tablo) form select{
    background:#111827;border-color:#374151;color:#e5e7eb;
}

/* DataTables arac cubugu bosluklari */
.dataTables_wrapper .dt-buttons{gap:6px;display:inline-flex}

/* =====================================================================
   Sayfalama - assets/js/dt-paging-tema.js ile birlikte calisir
   ---------------------------------------------------------------------
   O cizici, DT 1.10'a tema gorunumunde <button class="dt-paging-button">
   urettirir. Rengi/olcusu style.css'teki DT 2 kurallari verir; ancak DT 2
   cekirdek css'i (dataTables.min.css) bu sayfalarda yuklenmedigi icin
   butonun TEMEL sifirlamasi burada yapiliyor - yoksa ok butonlari
   tarayicinin gri <button> gorunumunde kaliyor.
   ===================================================================== */
.dataTables_wrapper .dataTables_paginate{float:none;text-align:right;margin:0}
.dataTables_wrapper .dataTables_info{float:none;padding:0}
.dt-paging .dt-paging-button{
    display:inline-flex;align-items:center;justify-content:center;
    box-sizing:border-box;min-width:2rem;
    border:1px solid transparent;border-radius:4px;
    background:transparent;color:inherit;
    font-size:.875rem;line-height:1;cursor:pointer;
}
.dt-paging .dt-paging-button:disabled,
.dt-paging .dt-paging-button.disabled{opacity:.45;cursor:default}
/* Tema, :hover'da tum butonlari maviye boyuyor - pasif ok butonlari haric tut.
   Secici tema kuralindan daha ozgul olmali (div.dt-container oneki bu yuzden). */
div.dt-container .dt-paging .dt-paging-button:disabled:hover,
div.dt-container .dt-paging .dt-paging-button.disabled:hover{
    background:transparent!important;color:inherit!important;
}
div.dt-container .dt-paging .dt-paging-button.ellipsis,
div.dt-container .dt-paging .dt-paging-button.ellipsis:hover{
    background:transparent!important;color:inherit!important;opacity:.6;
}

/* "Ara:" kutusu varsayilan olarak saga yaslidir - sola al.
   Uzunluk secimi ("50 kayit goster") ayni satirda yaninda dursun. */
.dt-ara{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dt-ara .dataTables_length{float:none;margin:0}
.dt-ara .dataTables_length label{
    display:flex;align-items:center;gap:8px;margin:0;
    font-size:.85rem;color:#6b7280;white-space:nowrap;
}
[data-theme="dark"] .dt-ara .dataTables_length label{color:#9ca3af}
.dt-ara .dataTables_filter{float:none;text-align:left;margin:0}
.dt-ara .dataTables_filter label{
    display:flex;align-items:center;gap:8px;margin:0;
    font-size:.85rem;color:#6b7280;white-space:nowrap;
}
.dt-ara .dataTables_filter input{margin:0;min-width:220px}
[data-theme="dark"] .dt-ara .dataTables_filter label{color:#9ca3af}

[data-theme="dark"] .ozet-tablo thead th{background:#111827;border-bottom-color:#374151}
[data-theme="dark"] .ozet-tablo tbody tr:hover td{background:#1f2937}
[data-theme="dark"] .ozet-tablo tfoot .ozet-toplam th{background:#1f2937;border-top-color:#4b5563;color:#f9fafb}

/* =====================================================================
   Segment secim butonlari (radio + .btn-check)
   ---------------------------------------------------------------------
   Bootstrap'in ".btn-check:checked + .btn" kurali yalnizca metin rengini
   beyaza cekiyor; temanin btn-outline-* siniflari zemin vermedigi icin
   secili buton "beyaz zemin + beyaz yazi" olarak gorunmez oluyordu.
   Renkler burada acikca veriliyor.
   ===================================================================== */
.secim-butonlari .btn-check + .btn{
    background:#fff;border:1px solid #d1d5db;color:#4b5563;
    font-weight:500;transition:background .15s,border-color .15s,color .15s;
}
.secim-butonlari .btn-check:not(:checked) + .btn:hover{background:#f3f4f6;color:#111827}
.secim-butonlari .btn-check:checked + .btn{
    background:#487fff!important;border-color:#487fff!important;color:#fff!important;
}
.secim-butonlari .btn-check:focus-visible + .btn{box-shadow:0 0 0 3px rgba(72,127,255,.25)}
[data-theme="dark"] .secim-butonlari .btn-check + .btn{
    background:#111827;border-color:#374151;color:#d1d5db;
}
[data-theme="dark"] .secim-butonlari .btn-check:not(:checked) + .btn:hover{background:#1f2937;color:#f9fafb}

/* =====================================================================
   Select2 - tema form alanlarina benzet
   (eklenti kendi varsayilan gorunumuyle geliyor: farkli yukseklik, kose
   yaricapi ve kenarlik rengi kullaniyordu)
   ===================================================================== */
.select2-container--default .select2-selection--single{
    height:40px;border:1px solid #d1d5db;border-radius:8px;
    display:flex;align-items:center;padding:0 10px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
    line-height:1.4;color:#111827;padding:0;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:38px;right:6px}
.select2-container--default.select2-container--open .select2-selection--single{border-color:#487fff}
.select2-dropdown{border-color:#d1d5db;border-radius:8px}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:#487fff}
.select2-container--default .select2-search--dropdown .select2-search__field{
    border:1px solid #d1d5db;border-radius:6px;padding:4px 8px;
}
[data-theme="dark"] .select2-container--default .select2-selection--single{
    background:#111827;border-color:#374151;
}
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered{color:#e5e7eb}
[data-theme="dark"] .select2-dropdown{background:#111827;border-color:#374151;color:#e5e7eb}

/* Durum rozetleri - sablondaki kullanim */
.durum-aktif{background:#e7f7ee;color:#16a34a;padding:4px 16px;border-radius:4px;font-weight:500;font-size:.875rem}
.durum-pasif{background:#fdeaea;color:#dc2626;padding:4px 16px;border-radius:4px;font-weight:500;font-size:.875rem}
.durum-bekleyen{background:#fff6e5;color:#d97706;padding:4px 16px;border-radius:4px;font-weight:500;font-size:.875rem}

/* =====================================================================
   Sol menu gorunumu
   Madde eklenmedi - yalnizca tipografi, aralik, aktif/hover durumlari.
   ===================================================================== */

/* Menu alani: daha rahat nefes alsin + kendi kaydirma cubugu */
.sidebar-menu-area{padding-inline:12px;padding-bottom:24px}
.sidebar-menu{display:flex;flex-direction:column;gap:2px}

/* Ust seviye baglantilar */
.sidebar-menu > li > a{
    display:flex;align-items:center;gap:10px;
    padding:9px 11px;border-radius:10px;
    font-size:.855rem;font-weight:500;line-height:1.3;
    color:#4b5563;
    transition:background-color .15s ease,color .15s ease;
}
.sidebar-menu > li > a > i{
    font-size:1.05rem;flex-shrink:0;width:20px;text-align:center;
    color:#9ca3af;transition:color .15s ease;
}
.sidebar-menu > li > a:hover{background:#f3f4f6;color:#111827}
.sidebar-menu > li > a:hover > i{color:#487fff}

/* Acilir menu oku */
.sidebar-menu > li.dropdown > a{position:relative;padding-right:30px}
.sidebar-menu > li.dropdown > a::after{
    content:"\ea4e";font-family:remixicon!important;   /* ri-arrow-down-s-line */
    position:absolute;right:10px;top:50%;transform:translateY(-50%);
    font-size:1rem;color:#9ca3af;transition:transform .2s ease;
}
.sidebar-menu > li.dropdown.dropdown-open > a::after,
.sidebar-menu > li.dropdown.open > a::after{transform:translateY(-50%) rotate(180deg)}

/* Aktif sayfa */
.sidebar-menu > li > a.active-page,
.sidebar-menu > li.active-page > a{
    background:#eaf1ff;color:#2f5fe0;font-weight:600;
}
.sidebar-menu > li > a.active-page > i,
.sidebar-menu > li.active-page > a > i{color:#2f5fe0}

/* Alt menu */
.sidebar-submenu{margin:2px 0 6px 0;padding-left:26px;position:relative}
.sidebar-submenu::before{
    content:"";position:absolute;left:15px;top:4px;bottom:4px;
    width:1px;background:#e5e7eb;
}
.sidebar-submenu > li > a{
    display:flex;align-items:center;gap:8px;
    padding:6px 10px;border-radius:8px;
    font-size:.8rem;color:#6b7280;line-height:1.35;
    transition:background-color .15s ease,color .15s ease;
}
.sidebar-submenu > li > a:hover{background:#f3f4f6;color:#111827}
.sidebar-submenu > li > a .circle-icon{font-size:.4rem;color:#c3c9d4;flex-shrink:0}
.sidebar-submenu > li > a.active-page,
.sidebar-submenu > li.active-page > a{color:#2f5fe0;font-weight:600;background:#eaf1ff}
.sidebar-submenu > li > a.active-page .circle-icon,
.sidebar-submenu > li.active-page > a .circle-icon{color:#2f5fe0}

/* Kullanici karti ve logo alani */
.sidebar-logo{padding:18px 16px 14px}
.profile-dropdown__button{border:1px solid #e5e7eb;transition:border-color .15s ease}
.profile-dropdown__button:hover{border-color:#c7d2fe}

/* Ince kaydirma cubugu */
.sidebar{scrollbar-width:thin;scrollbar-color:#d1d5db transparent}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}
.sidebar::-webkit-scrollbar-track{background:transparent}

/* Daraltilmis menu: yazilar gizlenince ikonlar ortalansin */
.sidebar.active .sidebar-menu > li > a{justify-content:center;padding-inline:8px}
.sidebar.active .sidebar-menu > li > a::after{display:none}

/* Koyu tema */
[data-theme="dark"] .sidebar-menu > li > a{color:#cbd5e1}
[data-theme="dark"] .sidebar-menu > li > a:hover{background:#1f2937;color:#f9fafb}
[data-theme="dark"] .sidebar-menu > li > a.active-page,
[data-theme="dark"] .sidebar-menu > li.active-page > a{background:#1e3a8a33;color:#93b4ff}
[data-theme="dark"] .sidebar-submenu::before{background:#374151}
[data-theme="dark"] .sidebar-submenu > li > a{color:#9ca3af}
[data-theme="dark"] .sidebar-submenu > li > a:hover{background:#1f2937;color:#f9fafb}
[data-theme="dark"] .profile-dropdown__button{border-color:#374151}

/* =====================================================================
   Logo boyutlandirma
   Logo genis formatli (420x131). Sidebar acikken tam yazi, daraltilinca
   sadece amblem gorunur; koyu temada aydinlatilmis surum kullanilir.
   ===================================================================== */
.sidebar-logo img.light-logo,
.sidebar-logo img.dark-logo{max-width:175px;height:auto}
.sidebar-logo img.logo-icon{max-width:38px;height:auto}

/* Acik tema: koyu logo + koyu amblem */
[data-theme="light"] .sidebar-logo img.dark-logo,
[data-theme="light"] .sidebar-logo img.logo-icon-dark{display:none!important}

/* Koyu tema: acik renkli logo + acik amblem */
[data-theme="dark"] .sidebar-logo img.light-logo,
[data-theme="dark"] .sidebar-logo img.logo-icon-light{display:none!important}

/* Giris ekrani */
.auth-logo{max-width:280px;height:auto}

/* ---------------------------------------------------------------
   Yoklama ekrani (mobil oncelikli)
   --------------------------------------------------------------- */
.yoklama-liste .yoklama-satir:last-child{border-bottom:0!important}
.yoklama-liste .yoklama-ad{flex:1 1 200px;min-width:0}
.yoklama-secim{display:flex;flex-wrap:wrap;gap:4px}
.yoklama-secim .btn{display:inline-flex;align-items:center;gap:4px;
    padding:6px 10px;font-size:.8125rem;line-height:1.2}
.yoklama-secim .btn i{font-size:1rem}

/* Kaydet cubugu ekranin altinda kalsin (mobilde uzun listelerde onemli) */
.yoklama-kaydet{position:sticky;bottom:0;z-index:5;padding:10px 0;
    background:var(--bg-color,#fff);border-top:1px solid var(--border-color,#e5e7eb)}

@media (max-width:575.98px){
    /* Dokunma hedefleri buyusun: ad ustte, 6 secenek 3'lu izgarada */
    .yoklama-satir .yoklama-ad{flex:1 1 100%}
    .yoklama-secim{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}
    .yoklama-secim .btn{justify-content:center;min-height:44px;padding:6px 4px}
    .yoklama-satir .not-ac{position:absolute;top:8px;right:12px}
    .yoklama-satir{position:relative}
}

/* Ogrenci karti: solda fotograf, sagda bilgi alanlari.
   Dar ekranda fotograf uste alinir. */
@media (max-width:575.98px){
    .ogrenci-kart{flex-wrap:wrap!important}
    .ogrenci-kart>div:first-child{width:100%!important;max-width:160px}
}

/* ---------------------------------------------------------------
   Ders plani takvimi
   --------------------------------------------------------------- */
.plan-takvim{width:100%;border-collapse:collapse;font-size:.8125rem}
.plan-takvim th{background:var(--neutral-100,#f3f4f6);padding:8px;text-align:center;
    font-weight:600;border:1px solid var(--border-color,#e5e7eb);white-space:nowrap}
.plan-takvim td{border:1px solid var(--border-color,#e5e7eb);vertical-align:top;
    padding:4px;min-width:130px;height:56px}
.plan-saat,.plan-saat-basligi{width:64px;min-width:64px!important;text-align:center;
    color:var(--text-secondary-light,#64748b);white-space:nowrap;background:var(--neutral-50,#f9fafb)}
.plan-ders{background:#e7f7ee;border-left:3px solid #16a34a;border-radius:4px;
    padding:4px 6px;margin-bottom:4px;cursor:grab}
.plan-ders:last-child{margin-bottom:0}
.plan-ders.plan-cakisma{background:#fdeaea;border-left-color:#dc2626}
.plan-detay{font-size:.6875rem;color:var(--text-secondary-light,#64748b);line-height:1.3}

/* Iptal edilen ders ve takvim olaylari (kamp, rezervasyon, bakim) */
.plan-ders.plan-iptal{background:#f3f4f6;border-left-color:#9ca3af;opacity:.75}
.plan-ders.plan-iptal>div:first-child{text-decoration:line-through}
.plan-olay{border-radius:4px;padding:4px 6px;margin-bottom:4px;border-left:3px solid #6366f1;background:#eef2ff}
.plan-olay-kamp{border-left-color:#2563eb;background:#eff6ff}
.plan-olay-etkinlik{border-left-color:#16a34a;background:#e7f7ee}
.plan-olay-bakim{border-left-color:#6b7280;background:#f3f4f6}
[data-theme="dark"] .plan-olay{background:#1e2235}
[data-theme="dark"] .plan-ders.plan-iptal{background:#22262e}
.plan-hedef{background:#eef2ff!important;outline:2px dashed #6366f1;outline-offset:-3px}
[data-theme="dark"] .plan-ders{background:#14321f}
[data-theme="dark"] .plan-ders.plan-cakisma{background:#3a1a1a}

@media (max-width:767.98px){
    .plan-takvim td{min-width:110px;height:auto}
    .plan-takvim th,.plan-takvim td{padding:3px}
}

/* ---------------------------------------------------------------
   Genel mobil uyum
   Sayfalarin tamami telefondan kullanilabilir olmali: yatay kaydirma
   olusmamali, filtre satirlari alt alta gecmeli, tablolar kendi
   icinde kaymali, dokunma hedefleri yeterince buyuk olmali.
   --------------------------------------------------------------- */
@media (max-width:767.98px){
    /* Sayfa gövdesi yatay tasmasin - genis tablolar kendi kutusunda kayar */
    .dashboard-main-body{padding-left:16px;padding-right:16px;overflow-x:hidden}
    .table-responsive{-webkit-overflow-scrolling:touch}

    /* Kart basliklari: baslik + buton alt alta */
    .card-header{flex-wrap:wrap;gap:8px}
    .card-header>*{min-width:0}

    /* Filtre satirlari: col-auto alanlar tam genislige yayilsin */
    .rapor-kompakt .card-header form .col-auto,
    .rapor-kompakt .card-body form .col-auto{flex:1 1 160px}
    .rapor-kompakt .card-header form .col-auto .btn,
    .rapor-kompakt .card-body form .col-auto .btn{width:100%;justify-content:center}

    /* Sayfa basligi filtre satirinin sagindayken mobilde alta gecer */
    .rapor-kompakt .card-header form .ms-auto{margin-left:0!important;flex:1 1 100%}

    /* Dokunma hedefleri (Apple/Google onerisi ~44px) */
    .btn-sm{padding:8px 12px}
    .form-control-sm,.form-select-sm{min-height:38px}

    /* Islem butonlari satir sonunda kalabalik yapmasin */
    td .d-flex.gap-1{flex-wrap:wrap;row-gap:4px}

    /* DataTables ust cubugu (uzunluk, arama, Excel/Yazdir) alt alta */
    .dt-container .dt-layout-row{flex-direction:column;gap:8px}
    .dt-container .dt-layout-cell{width:100%;text-align:left!important}
    .dataTables_wrapper .dt-buttons{flex-wrap:wrap}

    /* Modal telefonda kenarlara yapismasin */
    .modal-dialog{margin:12px}
}

/* Cok dar ekran: sayfalama butonlari tasmasin */
@media (max-width:575.98px){
    .dt-paging{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
    .dt-paging-button{padding:6px 10px}
}

/* --- Yazdirma --- */
@media print{
    .sidebar,.navbar-header,.d-footer,.card-header-btn,.no-print{display:none!important}
    .dashboard-main{margin-left:0!important}
    .dashboard-main-body{padding:0!important}
}
