/* Canlı ders modülü: haftalık takvim, ders notu/ek dosya, hesaplanmış durumlar, program üretimi */

/* durumlar */
.durum--attendance_pending { color: #8a4b00; background: #ffe8c7; }
.canli-ders-karti--yoklama, .ders-duzenleme--yoklama { box-shadow: inset 4px 0 0 var(--sari); }
.canli-ders-karti--canli, .ders-duzenleme--canli, .ogrenci-canli-kart--canli { box-shadow: inset 4px 0 0 var(--kirmizi); }
.canli-ders-rozetler { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.canli-ders-rozetler .buton { min-height: 34px; padding: 0 12px; font-size: 11px; }
.canli-ders-uyari { margin-bottom: 16px; }
.canli-ders-filtre form .buton--cizgi { margin-left: auto; }
.canli-ders-bolum-islem { display: flex; align-items: center; gap: 10px; }
.canli-ders-bolum-islem .buton { min-height: 36px; padding: 0 13px; font-size: 11px; }

/* ders notu (öğrenci kartı, kayıt ekranı, yönetim) */
.ders-notu { display: grid; gap: 8px; margin-top: 13px; padding: 12px 14px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fafbfc; font-size: 12px; line-height: 1.55; }
.ders-notu p { margin: 0; }
.ders-notu-etiket { display: block; margin-bottom: 3px; color: var(--soluk); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ders-notu-ipucu { padding: 8px 10px; border-left: 3px solid var(--sari); border-radius: 6px; background: #fff8e6; }
.ders-dosyalar { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ders-dosyalar li { display: flex; align-items: center; gap: 10px; min-width: 0; font-size: 12px; }
.ders-dosyalar li a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--kirmizi); font-weight: 700; }
.ders-dosyalar li small { color: var(--soluk); white-space: nowrap; }
.ders-dosya-sil { margin-left: auto; }
.ders-dosya-sil .metin-dugme { font-size: 11px; }

/* öğretmen: ders notu formu (details) */
.ders-not-detay { margin: 0 22px 20px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fafbfc; }
.ders-not-detay summary { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; font-size: 12px; font-weight: 800; list-style: none; }
.ders-not-detay summary::-webkit-details-marker { display: none; }
.ders-not-detay summary::before { content: '▸'; color: var(--soluk); }
.ders-not-detay[open] summary::before { content: '▾'; }
.ders-not-detay .ders-dosyalar { padding: 0 14px 14px; }
.ders-not-formu { display: grid; gap: 11px; padding: 2px 14px 14px; }
.ders-not-formu label { display: grid; gap: 6px; color: var(--soluk); font-size: 10px; font-weight: 750; }
.ders-not-formu textarea, .ders-not-formu input { width: 100%; padding: 10px 11px; border: 1px solid var(--cizgi); border-radius: 9px; color: var(--metin); background: #fff; font: inherit; font-weight: 500; }
.ders-not-formu textarea { min-height: 84px; resize: vertical; line-height: 1.5; }
.ders-not-formu input[type="file"] { padding: 8px; }
.ders-not-formu textarea:focus, .ders-not-formu input:focus { border-color: var(--kirmizi); outline: 3px solid rgba(201, 15, 29, .08); }
.ders-not-islem { display: flex; justify-content: flex-end; }

/* yoklama ekranı: not alanları */
.yoklama-ders-notu { margin: 6px 0 4px; padding: 16px 18px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fafbfc; }
.yoklama-ders-notu .kart-baslik { margin-bottom: 12px; padding: 0; }
.yoklama-ders-notu h3 { margin: 0 0 3px; font-size: 14px; }
.yoklama-not-alanlari { display: grid; grid-template-columns: 1.4fr 1fr; gap: 11px; margin-bottom: 10px; }
.yoklama-not-alanlari label:first-child { grid-row: span 2; }
.yoklama-not-alanlari label { display: grid; gap: 6px; color: var(--soluk); font-size: 10px; font-weight: 750; }
.yoklama-not-alanlari textarea, .yoklama-not-alanlari input { width: 100%; padding: 10px 11px; border: 1px solid var(--cizgi); border-radius: 9px; color: var(--metin); background: #fff; font: inherit; font-weight: 500; }
.yoklama-not-alanlari textarea { min-height: 100%; resize: vertical; line-height: 1.5; }
.yoklama-not-alanlari input[type="file"] { padding: 8px; }

/* yönetim: sınıf detayı */
.sinif-detay-islemler { display: flex; align-items: center; gap: 10px; }
.sinif-detay-islemler .buton { min-height: 36px; padding: 0 13px; font-size: 11px; }
.ders-duzenleme-baslik small { display: block; margin-top: 2px; font-weight: 600; }
.ders-ertele { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin-top: 12px; padding: 12px 14px; border: 1px dashed #d9dce2; border-radius: 12px; background: #fafbfc; }
.ders-ertele label { display: grid; min-width: 220px; gap: 6px; color: var(--soluk); font-size: 10px; font-weight: 750; }
.ders-ertele small { flex-basis: 100%; color: var(--soluk); font-size: 10px; }
.ders-yonetim-ek { margin-top: 10px; }
.ders-yonetim-ek .ders-notu { margin-top: 0; }
.ders-yonetim-ek > .ders-dosyalar { margin-top: 10px; }
.program-karti { margin-bottom: 20px; }
.program-formu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; padding: 0 22px 16px; border-bottom: 1px solid #eceef1; }
.program-formu label, .program-kaydir label { display: grid; gap: 6px; color: var(--soluk); font-size: 10px; font-weight: 750; }
.program-formu input, .program-formu select, .program-kaydir input { width: 100%; min-height: 42px; padding: 0 11px; border: 1px solid var(--cizgi); border-radius: 9px; color: var(--metin); background: #fff; font: inherit; }
.program-formu input:focus, .program-formu select:focus, .program-kaydir input:focus { border-color: var(--kirmizi); outline: 3px solid rgba(201, 15, 29, .08); }
.program-gunler { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; grid-column: 1 / -1; margin: 0; padding: 0; border: 0; }
.program-gunler legend { width: 100%; margin-bottom: 4px; padding: 0; color: var(--soluk); font-size: 10px; font-weight: 750; }
.program-gun { position: relative; }
.program-gun input { position: absolute; opacity: 0; pointer-events: none; }
.program-gun span { display: inline-flex; min-width: 46px; height: 36px; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid var(--cizgi); border-radius: 99px; background: #fff; font-size: 11px; font-weight: 800; cursor: pointer; transition: .15s ease; }
.program-gun input:checked + span { border-color: var(--kirmizi); color: #fff; background: var(--kirmizi); }
.program-gun input:focus-visible + span { outline: 3px solid rgba(201, 15, 29, .18); }
.program-genis { grid-column: span 2; }
.program-islem { display: flex; grid-column: 1 / -1; justify-content: flex-end; }
.program-kaydir { display: grid; grid-template-columns: minmax(0, 1fr) 120px auto; align-items: end; gap: 12px; padding: 16px 22px 20px; }
.program-kaydir strong { display: block; font-size: 13px; }
.program-kaydir small { display: block; margin-top: 3px; color: var(--soluk); font-size: 11px; }

/* takvim */
.takvim-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; padding: 16px 20px; }
.takvim-gezinti { display: flex; gap: 8px; }
.takvim-gezinti .buton, .takvim-islemler .buton { min-height: 36px; padding: 0 13px; font-size: 11px; }
.takvim-baslik { text-align: center; }
.takvim-baslik h2 { margin: 0 0 2px; font-size: 17px; }
.takvim-baslik small { color: var(--soluk); font-size: 11px; }
.takvim-islemler { display: flex; align-items: center; gap: 14px; }
.takvim-lejant { display: inline-flex; align-items: center; gap: 6px; color: var(--soluk); font-size: 11px; font-weight: 700; }
.takvim-lejant i { width: 10px; height: 10px; border-radius: 3px; }
.takvim-lejant--sinif { background: var(--kirmizi); }
.takvim-lejant--birebir { background: #3f568c; }
.takvim-karti { padding: 0; overflow: hidden; }
.takvim-izgara { display: grid; grid-template-columns: 62px repeat(7, minmax(0, 1fr)); grid-template-rows: auto repeat(var(--takvim-satir, 13), minmax(58px, auto)); overflow-x: auto; }
.takvim-kose, .takvim-gun-baslik { position: sticky; top: 0; z-index: 2; background: #fff; border-bottom: 1px solid var(--cizgi); }
.takvim-gun-baslik { display: flex; align-items: baseline; justify-content: center; gap: 6px; padding: 12px 6px 10px; border-left: 1px solid #eceef1; font-size: 12px; }
.takvim-gun-baslik strong { font-weight: 800; }
.takvim-gun-baslik span { color: var(--soluk); font-weight: 700; }
.takvim-gun-baslik em { padding: 2px 7px; border-radius: 99px; color: #fff; background: var(--kirmizi); font-size: 9px; font-style: normal; font-weight: 800; }
.takvim-gun-baslik.takvim-bugun { color: var(--kirmizi); }
.takvim-saat { display: flex; align-items: flex-start; justify-content: flex-end; padding: 6px 8px 0 0; border-top: 1px solid #eceef1; color: var(--soluk); font-size: 10px; font-weight: 700; }
.takvim-hucre { display: grid; gap: 5px; min-width: 0; padding: 4px; border-top: 1px solid #eceef1; border-left: 1px solid #eceef1; }
.takvim-hucre.takvim-bugun { background: #fff7f7; }
.takvim-olay { display: grid; gap: 2px; min-width: 0; padding: 7px 8px; border-left: 3px solid var(--kirmizi); border-radius: 8px; background: #fdebed; font-size: 11px; line-height: 1.35; }
.takvim-olay--birebir { border-left-color: #3f568c; background: #e6edff; }
.takvim-olay--completed { border-left-color: #086b49; background: #e9f7f0; }
.takvim-olay--attendance_pending { border-left-color: var(--sari); background: #fff4dc; }
.takvim-olay--live { box-shadow: 0 0 0 2px rgba(201, 15, 29, .25); }
.takvim-olay time { color: var(--soluk); font-size: 10px; font-weight: 800; }
.takvim-olay-baslik { overflow: hidden; color: var(--metin); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.takvim-olay small { overflow: hidden; color: var(--soluk); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.takvim-olay .durum { justify-self: start; padding: 3px 7px; font-size: 9px; }
.takvim-katil { justify-self: start; margin-top: 2px; padding: 4px 9px; border-radius: 99px; color: #fff; background: var(--kirmizi); font-size: 10px; font-weight: 800; }
.takvim-katil:hover { background: var(--kirmizi-koyu); }
.takvim-kilit { color: var(--soluk); font-size: 9px; font-weight: 700; }
.takvim-bos { margin: 0; border-top: 1px solid var(--cizgi); border-radius: 0; }
.takvim-tarihsiz { margin-top: 18px; }

@media (max-width: 900px) {
  .program-formu { grid-template-columns: 1fr 1fr; }
  .program-genis { grid-column: 1 / -1; }
  .program-kaydir { grid-template-columns: 1fr; }
  .yoklama-not-alanlari { grid-template-columns: 1fr; }
  .yoklama-not-alanlari label:first-child { grid-row: auto; }
  .takvim-ust { justify-content: center; }
  /* mobil: saat ızgarası yerine gün gün liste (DOM sırası gün → saat) */
  .takvim-izgara { display: block; }
  .takvim-kose, .takvim-saat, .takvim-hucre:not(.takvim-hucre--dolu) { display: none; }
  .takvim-gun-baslik { position: static; justify-content: flex-start; padding: 12px 14px; border-left: 0; background: #fafbfc; }
  .takvim-hucre { border-left: 0; padding: 8px 12px; }
  .takvim-olay-baslik, .takvim-olay small { white-space: normal; }
}
