/* Modern, Profesyonel Okul Ders Programı Stilleri */
:root {
  --primary: #2563eb;
  --primary-hover: #1d4ed8;
  --primary-light: #eff6ff;
  --secondary: #475569;
  --success: #10b981;
  --success-light: #ecfdf5;
  --danger: #ef4444;
  --danger-light: #fef2f2;
  --warning: #f59e0b;
  --warning-light: #fffbeb;
  --bg-main: #f8fafc;
  --card-bg: #ffffff;
  --border-color: #e2e8f0;
  --text-main: #0f172a;
  --text-muted: #64748b;
  --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  background-color: var(--bg-main);
  color: var(--text-main);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Header */
.app-header {
  background: white;
  border-bottom: 1px solid var(--border-color);
  padding: 0.85rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.brand-section {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.brand-logo {
  background: linear-gradient(135deg, #2563eb, #4f46e5);
  color: white;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1.25rem;
  box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.2);
}

.brand-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-main);
}

.brand-subtitle {
  font-size: 0.75rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.badge-tag {
  background: #e0e7ff;
  color: #3730a3;
  padding: 0.15rem 0.5rem;
  border-radius: 9999px;
  font-weight: 600;
  font-size: 0.7rem;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 8px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s ease;
  text-decoration: none;
}

.btn-primary {
  background: var(--primary);
  color: white;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);
}
.btn-primary:hover {
  background: var(--primary-hover);
}

.btn-success {
  background: var(--success);
  color: white;
}
.btn-success:hover {
  background: #059669;
}

.btn-outline {
  background: white;
  border-color: var(--border-color);
  color: var(--secondary);
}
.btn-outline:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.btn-danger-outline {
  background: white;
  border-color: #fecaca;
  color: var(--danger);
}
.btn-danger-outline:hover {
  background: var(--danger-light);
}

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.8rem;
  border-radius: 9999px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
}
.status-pill.valid {
  background: var(--success-light);
  color: #065f46;
  border: 1px solid #a7f3d0;
}
.status-pill.conflict {
  background: var(--danger-light);
  color: #991b1b;
  border: 1px solid #fecaca;
}

/* Tab Navigation */
/* ================= SOL MENÜ ================= */
.app-govde {
  display: flex;
  align-items: flex-start;
  min-height: calc(100vh - var(--ust, 70px));
}
.tabs-nav {
  position: sticky;
  top: var(--ust, 70px);
  flex: 0 0 220px;
  width: 220px;
  max-height: calc(100vh - var(--ust, 70px));
  overflow-y: auto;
  background: white;
  border-right: 1px solid var(--border-color);
  padding: 0.6rem 0.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  scrollbar-width: thin;
  transition: flex-basis 0.15s ease, width 0.15s ease;
}
.tabs-nav::-webkit-scrollbar { width: 4px; }
.tabs-nav::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

.nav-grup { display: flex; flex-direction: column; gap: 0.1rem; margin-top: 0.35rem; }
.nav-grup-baslik {
  display: flex; align-items: center; justify-content: space-between;
  background: none; border: none; cursor: pointer;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em;
  color: #94a3b8; padding: 0.45rem 0.6rem 0.25rem;
}
.nav-grup-baslik:hover { color: var(--text-muted); }
.nav-grup-ok { transition: transform 0.15s ease; }
.nav-grup.kapali .tab-btn { display: none; }
.nav-grup.kapali .nav-grup-ok { transform: rotate(-90deg); }
/* Kapalı grupta etkin sekme yine görünür: kullanıcı nerede olduğunu kaybetmesin */
.nav-grup.kapali .tab-btn.active { display: flex; }

.tab-btn {
  width: 100%;
  padding: 0.5rem 0.6rem;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--secondary);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  text-align: left;
  white-space: nowrap;
  transition: background 0.12s ease, color 0.12s ease;
}
.tab-btn > span:first-child { width: 1.4rem; text-align: center; flex-shrink: 0; }
.tab-btn:hover { background: #f1f5f9; color: var(--primary); }
.tab-btn.active {
  background: var(--primary-light);
  color: var(--primary);
  border-color: #bfdbfe;
}
.menu-daralt {
  display: flex; align-items: center; gap: 0.55rem;
  background: none; border: 1px dashed var(--border-color); border-radius: 8px;
  color: var(--text-muted); font-size: 0.75rem; font-weight: 600;
  padding: 0.35rem 0.6rem; cursor: pointer; margin-bottom: 0.2rem;
}
.menu-daralt:hover { color: var(--primary); border-color: #bfdbfe; }
.menu-daralt-ok { width: 1.4rem; text-align: center; transition: transform 0.15s ease; }

/* Daraltılmış menü: yalnız simgeler */
body.menu-dar .tabs-nav { flex-basis: 56px; width: 56px; padding-left: 0.3rem; padding-right: 0.3rem; }
body.menu-dar .nav-etiket,
body.menu-dar .nav-grup-ok { display: none; }
body.menu-dar .nav-grup-baslik { padding: 0; height: 0.6rem; border-top: 1px solid var(--border-color); margin: 0.3rem 0.4rem 0; }
body.menu-dar .nav-grup.kapali .tab-btn { display: flex; }
body.menu-dar .tab-btn { justify-content: center; padding: 0.5rem 0; }
body.menu-dar .menu-daralt { justify-content: center; padding: 0.35rem 0; }
body.menu-dar .menu-daralt-ok { transform: rotate(180deg); }

/* ================= AÇILIR MENÜLER (üst çubuk) ================= */
.acilir { position: relative; display: inline-flex; }
.acilir.bolunmus > .btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.acilir.bolunmus > .acilir-ok { border-top-left-radius: 0; border-bottom-left-radius: 0;
  border-left: 1px solid rgba(255,255,255,0.35); padding: 0 0.55rem; }
.acilir-menu {
  display: none; position: absolute; top: calc(100% + 4px); left: 0; z-index: 300;
  min-width: 230px; background: white; border: 1px solid var(--border-color);
  border-radius: 10px; box-shadow: 0 10px 25px -5px rgba(15,23,42,0.15);
  padding: 0.3rem; flex-direction: column;
}
.acilir-menu.sag { left: auto; right: 0; }
.acilir.acik > .acilir-menu { display: flex; }
.acilir-menu > button, .acilir-menu > a {
  display: flex; align-items: center; gap: 0.5rem; width: 100%;
  background: none; border: none; border-radius: 6px; cursor: pointer;
  padding: 0.5rem 0.65rem; font-size: 0.84rem; font-weight: 500; text-align: left;
  color: var(--text-main); text-decoration: none; font-family: inherit;
}
.acilir-menu > button:hover, .acilir-menu > a:hover { background: #f1f5f9; }
.acilir-menu > .tehlikeli { color: var(--danger); }
.acilir-menu > .tehlikeli:hover { background: var(--danger-light); }
.acilir-menu hr { border: none; border-top: 1px solid var(--border-color); margin: 0.25rem 0; }
.btn-simge { padding: 0.45rem 0.7rem; font-size: 1rem; }
.menu-mobil { display: none; background: none; border: 1px solid var(--border-color); border-radius: 8px;
  font-size: 1.1rem; padding: 0.3rem 0.6rem; cursor: pointer; }

/* Dar ekran: menü soldan açılan çekmece olur */
@media (max-width: 900px) {
  .tabs-nav { position: fixed; left: 0; top: 0; bottom: 0; max-height: none; z-index: 400;
    transform: translateX(-100%); transition: transform 0.2s ease; box-shadow: 4px 0 20px rgba(0,0,0,0.12); }
  body.menu-acik-mobil .tabs-nav { transform: none; }
  .menu-mobil { display: inline-block; }
  body.menu-dar .tabs-nav { flex-basis: 220px; width: 220px; }
  body.menu-dar .nav-etiket { display: inline; }
  .header-actions { flex-wrap: wrap; justify-content: flex-end; }
  .gizli-dar { display: none; }
}

/* Layout */
.app-container {
  flex: 1 1 auto;
  min-width: 0;             /* çarşaf tablosu esneyebilsin */
  max-width: 1600px;
  margin: 1.25rem auto;
  padding: 0 1.25rem;
}

.tab-pane {
  display: none;
}
.tab-pane.active {
  display: block;
}

.card {
  background: white;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
  padding: 1.25rem;
  margin-bottom: 1.5rem;
}

.card-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Controls Bar */
.controls-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  gap: 1rem;
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.select-input, .text-input {
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.85rem;
  outline: none;
  background: white;
}
.select-input:focus, .text-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

/* Timetable Grid */
.timetable-wrapper {
  overflow-x: auto;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: white;
}

.timetable {
  width: 100%;
  border-collapse: collapse;
  min-width: 1100px;
}

.timetable th, .timetable td {
  border: 1px solid var(--border-color);
  padding: 0.4rem 0.5rem;
  text-align: center;
  vertical-align: middle;
  font-size: 0.8rem;
}

.timetable th {
  background: #f8fafc;
  color: var(--secondary);
  font-weight: 700;
  white-space: nowrap;
}

.timetable th.day-header {
  background: #f1f5f9;
  font-size: 0.85rem;
}

.timetable td.row-header {
  background: #f8fafc;
  font-weight: 700;
  text-align: left;
  padding-left: 0.8rem;
  white-space: nowrap;
  position: sticky;
  left: 0;
  z-index: 10;
  box-shadow: 1px 0 2px rgba(0, 0, 0, 0.05);
}

.lunch-break-col {
  background: #fef3c7 !important;
  color: #92400e;
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.cell-slot {
  height: 60px;
  min-width: 95px;
  position: relative;
  transition: background 0.15s ease;
}

.cell-slot.drag-over-valid {
  background: #dcfce7 !important;
  border: 2px dashed #16a34a !important;
}

.cell-slot.drag-over-conflict {
  background: #fee2e2 !important;
  border: 2px dashed #dc2626 !important;
}

.cell-slot.drag-over-warning {
  background: #fef3c7 !important;
  border: 2px dashed #d97706 !important;
}

/* Lesson Card */
.lesson-card {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  padding: 0.3rem 0.4rem;
  cursor: grab;
  user-select: none;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  transition: transform 0.1s, box-shadow 0.1s;
  position: relative;
}

.lesson-card:active {
  cursor: grabbing;
}

.lesson-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* Kilitli Ders Kartları - Belirgin Amber / Altın Sarısı Tema */
.lesson-card.is-locked {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) !important;
  border: 1px solid #fcd34d !important;
  border-left: 4px solid #d97706 !important;
  box-shadow: 0 1px 3px rgba(217, 119, 6, 0.18), inset 0 0 0 1px rgba(245, 158, 11, 0.12);
}

.lesson-card.is-locked:hover {
  background: #fef08a !important;
  box-shadow: 0 4px 8px -1px rgba(217, 119, 6, 0.28) !important;
  border-color: #f59e0b !important;
}

.lesson-card.is-locked .lesson-subj {
  color: #78350f !important;
  font-weight: 800 !important;
}

.lesson-card.is-locked .lesson-meta,
.lesson-card.is-locked .lesson-meta span {
  color: #92400e !important;
}

.lesson-card.is-locked .subgroup-pill {
  background: #fde68a !important;
  color: #78350f !important;
  border: 1px solid #fcd34d !important;
}

.lesson-card.is-locked .birlesik-pill {
  background: #fed7aa !important;
  color: #9a3412 !important;
  border-color: #fdba74 !important;
}

.lesson-card.is-locked .teacher-chip {
  background: #fed7aa !important;
  color: #9a3412 !important;
}

.lesson-card .lock-btn {
  position: absolute;
  top: 2px;
  right: 17px;
  font-size: 0.65rem;
  cursor: pointer;
  opacity: 0.6;
  transition: transform 0.15s ease, opacity 0.15s ease;
}
.lesson-card .lock-btn:hover {
  opacity: 1;
  transform: scale(1.25);
}

.lesson-card .remove-btn {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 13px;
  height: 13px;
  line-height: 13px;
  text-align: center;
  font-size: 0.65rem;
  font-weight: 800;
  color: #94a3b8;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0.3;
  transition: all 0.15s ease;
  user-select: none;
}
.lesson-card:hover .remove-btn {
  opacity: 0.8;
}
.lesson-card .remove-btn:hover {
  opacity: 1 !important;
  color: #ffffff !important;
  background: #ef4444 !important;
  transform: scale(1.2);
}

.lesson-card.is-locked .lock-btn {
  opacity: 1 !important;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
  transform: scale(1.15);
}

.lesson-subj {
  font-weight: 700;
  font-size: 0.75rem;
  color: #1e3a8a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lesson-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.7rem;
  color: #3b82f6;
}

.subgroup-pill {
  background: #dbeafe;
  color: #1e40af;
  padding: 0.05rem 0.3rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 0.65rem;
}

.coteachers-pill {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
}

.teacher-chip {
  background: #e2e8f0;
  color: #1e293b;
  padding: 0.05rem 0.25rem;
  border-radius: 3px;
  font-size: 0.65rem;
}

/* Modals */
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(3px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.modal-backdrop.open {
  display: flex;
}

.modal-dialog {
  background: white;
  border-radius: 14px;
  width: 90%;
  max-width: 900px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
}

.modal-dialog.large {
  max-width: 1300px;
}

.modal-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal-header h3 {
  font-size: 1.15rem;
  font-weight: 700;
}
.modal-close {
  background: transparent;
  border: none;
  font-size: 1.4rem;
  cursor: pointer;
  color: var(--text-muted);
}

.modal-body {
  padding: 1.5rem;
  overflow-y: auto;
  flex: 1;
}

.modal-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border-color);
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  background: #f8fafc;
}

/* Split-Screen OCR Modal */
.split-screen-container {
  display: flex;
  gap: 1.5rem;
  height: 600px;
}

.split-pane {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: #f8fafc;
}

.split-pane-header {
  background: #e2e8f0;
  padding: 0.6rem 1rem;
  font-weight: 700;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.image-preview-area {
  flex: 1;
  overflow: auto;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0f172a;
}
.image-preview-area img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 4px;
}

.ocr-table-area {
  flex: 1;
  overflow: auto;
  padding: 1rem;
  background: white;
}

.editable-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.editable-table th, .editable-table td {
  border: 1px solid var(--border-color);
  padding: 0.4rem;
}
.editable-table th {
  background: #f1f5f9;
  font-weight: 700;
}
.editable-cell {
  outline: none;
  min-height: 24px;
}
.editable-cell:focus {
  background: #fef9c3;
  box-shadow: inset 0 0 0 1px #ca8a04;
}

/* Forms & Tables */
.data-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.5rem;
}
.data-table th, .data-table td {
  border: 1px solid var(--border-color);
  padding: 0.6rem 0.8rem;
  text-align: left;
  font-size: 0.85rem;
}
.data-table th {
  background: #f8fafc;
  font-weight: 700;
}
.data-table tr:hover td {
  background: #f8fafc;
}

/* Weekly Matrix for Teachers */
.avail-matrix {
  border-collapse: collapse;
  margin-top: 1rem;
}
.avail-matrix th, .avail-matrix td {
  border: 1px solid var(--border-color);
  padding: 0.4rem 0.5rem;
  text-align: center;
  font-size: 0.75rem;
}
.avail-cell {
  width: 38px;
  height: 32px;
  cursor: pointer;
  font-weight: 600;
  transition: background 0.1s;
}
.avail-cell.available {
  background: #dcfce7;
  color: #166534;
}
.avail-cell.unavailable {
  background: #fee2e2;
  color: #991b1b;
}
.avail-cell.duty {
  background: #fef3c7;
  color: #92400e;
}

/* Toast Notifications */
.toast-container {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.toast {
  background: #1e293b;
  color: white;
  padding: 0.75rem 1.25rem;
  border-radius: 8px;
  font-size: 0.85rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  animation: slideIn 0.2s ease;
}
.toast.success {
  border-left: 4px solid var(--success);
}
.toast.error {
  border-left: 4px solid var(--danger);
}
.toast.warning {
  border-left: 4px solid var(--warning);
}

@keyframes slideIn {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

/* Print Stylesheet */
@media print {
  body {
    background: white;
    color: black;
  }
  .app-header, .tabs-nav, .controls-bar, .header-actions, .btn, .modal-backdrop, .toast-container {
    display: none !important;
  }
  .app-container {
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  .card {
    border: none;
    box-shadow: none;
    padding: 0;
  }
  .timetable-wrapper {
    border: none;
    overflow: visible;
  }
  .timetable {
    min-width: 100%;
    font-size: 8pt;
  }
  .timetable th, .timetable td {
    border: 1px solid #000 !important;
    padding: 2px !important;
  }
  .lesson-card {
    border: 1px solid #999 !important;
    background: #f0f0f0 !important;
    box-shadow: none !important;
  }
  .lesson-card .lock-btn {
    display: none !important;
  }
  .print-header-banner {
    display: block !important;
    text-align: center;
    margin-bottom: 15px;
  }
}

.print-header-banner {
  display: none;
}

/* Sesli Asistan Butonu ve Animasyonları */
.voice-btn {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #334155;
  border-radius: 9999px;
  padding: 0.4rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.voice-btn:hover {
  background: #e2e8f0;
  border-color: #94a3b8;
}
.voice-btn.listening {
  background: #ef4444 !important;
  color: white !important;
  border-color: #dc2626 !important;
  animation: pulse-red 1.2s infinite;
}

@keyframes pulse-red {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
  70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* Blok Bölme Butonları */
.block-pills-container {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.35rem;
}
.block-pill-btn {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.25rem 0.6rem;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  color: #334155;
  transition: all 0.15s ease;
}
.block-pill-btn:hover {
  background: #e2e8f0;
}
.block-pill-btn.active {
  background: #2563eb;
  color: white;
  border-color: #1d4ed8;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);
}

/* Nöbet Çizelgesi Tablosu */
.duty-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
}
.duty-table th, .duty-table td {
  border: 1px solid var(--border-color);
  padding: 0.6rem 0.8rem;
  text-align: center;
  font-size: 0.85rem;
}
.duty-table th {
  background: #f1f5f9;
  font-weight: 700;
  color: var(--secondary);
}
.duty-loc-cell {
  background: #f8fafc;
  font-weight: 700;
  text-align: left !important;
  color: #1e293b;
}
.duty-assigned-tag {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  font-weight: 600;
  display: inline-block;
}

/* Kelebek Oturma Planı Grid & Sıra Stilleri */
.kelebek-room-container {
  display: grid;
  gap: 12px;
  padding: 1.25rem;
  background: #f8fafc;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  margin-top: 1rem;
}
.kelebek-desk-cell {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 10px;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 75px;
  position: relative;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.kelebek-desk-cell:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.kelebek-desk-num {
  position: absolute;
  top: 4px;
  left: 6px;
  font-size: 0.65rem;
  color: #94a3b8;
  font-weight: bold;
}
.kelebek-student-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  margin-top: 8px;
}
.kelebek-grade-tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 4px;
  margin-top: 3px;
}
.grade-9 { background: #dbeafe; color: #1d4ed8; border: 1px solid #bfdbfe; }
.grade-10 { background: #dcfce7; color: #15803d; border: 1px solid #bbf7d0; }
.grade-11 { background: #ffedd5; color: #c2410c; border: 1px solid #fed7aa; }
.grade-12 { background: #f3e8ff; color: #7e22ce; border: 1px solid #e9d5ff; }

/* Resmi MEB Belge Önizleme Formatı */
.official-doc-sheet {
  background: #ffffff;
  max-width: 800px;
  margin: 1.5rem auto;
  padding: 3rem 3.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  border: 1px solid #e2e8f0;
  font-family: "Times New Roman", Times, serif;
  color: #000000;
  line-height: 1.6;
}
.official-doc-sheet h4, .official-doc-sheet h3 {
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
}
.official-doc-sheet .doc-meta {
  display: flex;
  justify-content: space-between;
  margin: 1.5rem 0 1rem 0;
  font-size: 0.95rem;
}
.official-doc-sheet .doc-body {
  margin: 1.5rem 0;
  font-size: 1rem;
  text-align: justify;
  text-indent: 1.5rem;
}
.official-doc-sheet .doc-signatures {
  display: flex;
  justify-content: flex-end;
  margin-top: 3rem;
  text-align: center;
}
/* ========================================================
   YAZDIRMA KAPSAMI
   Eskiden buradaki blok "body * { visibility: hidden }" diyerek BÜTÜN sayfayı
   gizliyor, yalnızca resmî evrak sayfasını gösteriyordu. Bu blok, çarşaf
   programı için yazılmış yukarıdaki yazdırma kurallarını ezdiği ve evrak
   sayfası da gizli bir sekmenin içinde durduğu için, uygulamadaki DÖRT
   yazdırma butonu da boş sayfa üretiyordu.

   Artık kapsam gövdeye eklenen bir sınıfla seçiliyor:
     body.yazdir-evrak     → yalnızca resmî evrak sayfası
     (sınıf yoksa)         → normal çarşaf/nöbet yazdırması
   ======================================================== */
@media print {
  body.yazdir-evrak > *:not(.yazdir-alan) {
    display: none !important;
  }
  body.yazdir-evrak .yazdir-alan,
  body.yazdir-evrak .yazdir-alan * {
    visibility: visible !important;
  }
  body.yazdir-evrak .official-doc-sheet {
    position: static;
    width: 100%;
    margin: 0;
    padding: 1.5cm;
    box-shadow: none;
    border: none;
  }
  .official-doc-sheet {
    box-shadow: none;
    border: none;
  }
}

/* ======================================================== */
/* BÖLÜMLER & ALANLAR SEKME SEKME YÖNETİM STİLLERİ           */
/* ======================================================== */
.dept-nav-pills {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding: 0.4rem 0;
  margin-bottom: 1.25rem;
  scrollbar-width: thin;
  white-space: nowrap;
}

.dept-pill-btn {
  padding: 0.55rem 1.1rem;
  border-radius: 9999px;
  border: 1px solid var(--border-color);
  background: #f8fafc;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-main);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: all 0.15s ease;
  flex-shrink: 0;
}
.dept-pill-btn:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}
.dept-pill-btn.active {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
  box-shadow: 0 2px 5px rgba(37, 99, 235, 0.25);
}

.dept-banner {
  background: linear-gradient(135deg, #f8fafc 0%, #edf2f7 100%);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.dept-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.dept-stat-box {
  background: white;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.dept-stat-box .val {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--primary);
  margin-top: 0.25rem;
}
.dept-stat-box .lbl {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 600;
}

.dept-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-main);
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}



/* ========================================================
   GÜN BAZLI DERS SAATİ
   Bazı günler daha kısa olabilir; o günün son saatinden sonraki
   hücreler kapalı gösterilir ve ders bırakılamaz.
   ======================================================== */
/* Dönüşümlü hafta rozeti: dersin yalnızca A ya da B haftasında olduğunu gösterir */
.hafta-pill {
  display: inline-block;
  background: #ede9fe;
  color: #5b21b6;
  border: 1px solid #ddd6fe;
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0 4px;
  margin-left: 3px;
}

/* SÜRÜKLERKEN GEÇERLİ HEDEFLER.
   Piyasadaki çizelge programlarının en çok işe yarayan özelliği: kartı
   tuttuğun anda nereye konabileceğini görürsün. */
.cell-slot.cell-uygun {
  background: #dcfce7 !important;
  outline: 2px solid #22c55e;
  outline-offset: -2px;
}
.cell-slot.cell-uyarili {
  background: #fef9c3 !important;
  outline: 2px dashed #eab308;
  outline-offset: -2px;
}
.cell-slot.cell-yasak {
  background: #f8fafc !important;
  opacity: 0.45;
}
#hedefRozeti {
  display: none;
  align-items: center;
  gap: 0.5rem;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
}

/* ÖĞRENCİ BOŞLUĞU: öğrencinin gün içinde boş beklediği saat.
   Bu bir hata göstergesidir; kapalı saatten (okul yok) ayırt edilmelidir. */
.cell-slot.cell-bosluk {
  background: repeating-linear-gradient(45deg, #fee2e2, #fee2e2 6px, #fecaca 6px, #fecaca 12px) !important;
  outline: 2px dashed #ef4444;
  outline-offset: -2px;
}
.cell-slot.cell-bosluk::after {
  content: "boş";
  display: block;
  font-size: 0.6rem;
  color: #b91c1c;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
}

.cell-slot.cell-kapali {
  background: repeating-linear-gradient(
    45deg, #f1f5f9, #f1f5f9 6px, #e2e8f0 6px, #e2e8f0 12px
  );
  cursor: not-allowed;
  pointer-events: none;
}
@media print {
  .cell-slot.cell-kapali { background: #f3f4f6 !important; }
}

/* ========================================================
   RESMÎ EVRAK STİLLERİ (toplantı tutanakları, onaylar)
   Ekranda A4 kâğıt görünümü, yazdırmada temiz çıktı.
   ======================================================== */
.evrak-sayfa {
  background: #fff;
  padding: 2cm 1.8cm;
  max-width: 21cm;
  margin: 0 auto;
  box-shadow: 0 2px 14px rgba(0,0,0,0.10);
  font-family: "Times New Roman", Georgia, serif;
  font-size: 11.5pt;
  line-height: 1.5;
  color: #000;
}
.evrak-ust { text-align: center; margin-bottom: 0.9rem; }
.evrak-tc { font-weight: 700; letter-spacing: 0.06em; }
.evrak-yer { font-weight: 700; }
.evrak-okul { font-weight: 700; }
.evrak-ana-baslik {
  text-align: center; font-weight: 700; margin: 1.1rem 0 0.9rem;
  font-size: 12.5pt; line-height: 1.45;
}
.evrak-kunye { width: 100%; margin: 0.5rem 0 0.9rem; font-size: 10.5pt; }
.evrak-kunye td { padding: 0.12rem 0.25rem; vertical-align: top; }
.evrak-kunye td.sag { text-align: right; }
.evrak-kunye.buyuk { font-size: 12pt; }
.evrak-metin { text-align: justify; margin: 0.6rem 0; text-indent: 1.2cm; }
.evrak-metin.kucuk { font-size: 9.5pt; text-indent: 0; color: #333; }
.evrak-baslik {
  font-weight: 700; margin: 1.1rem 0 0.45rem; font-size: 11.5pt;
  border-bottom: 1px solid #000; padding-bottom: 0.15rem;
}
.evrak-gundem { margin: 0.3rem 0 0.9rem 1.3rem; }
.evrak-gundem li { margin-bottom: 0.22rem; }
.evrak-tablo { width: 100%; border-collapse: collapse; margin: 0.4rem 0 1rem; font-size: 10.5pt; }
.evrak-tablo.kucuk { font-size: 9pt; }
.evrak-tablo th, .evrak-tablo td { border: 1px solid #000; padding: 0.22rem 0.35rem; }
.evrak-tablo th { background: #ededed; font-weight: 700; text-align: center; }
.evrak-tablo td.sira, .evrak-tablo th.sira { width: 2.2rem; text-align: center; }
.evrak-tablo td.sayi { text-align: center; }
.evrak-tablo td.sol-baslik { font-weight: 600; background: #f6f6f6; }
.evrak-tablo td.imza-alani { min-width: 4.5rem; height: 1.5rem; }
.evrak-tablo tfoot td { background: #f2f2f2; }
.evrak-tablo .sag { text-align: right; }
.karar-madde { margin: 0.55rem 0; }
.karar-cizgi { border-bottom: 1px dotted #555; height: 1.15rem; margin-top: 0.25rem; }
.evrak-imza { text-align: right; margin-top: 2.2rem; line-height: 1.45; }
.evrak-imza div:first-child { font-weight: 700; }

/* Katılım kutuları: yönerge, toplantıya katılmayanların da tutanağı
   imzalamasını ister; çizelgede katılım durumu ayrı işaretlenir. */
.evrak-tablo th.kat-sutun { width: 3.1rem; font-size: 9pt; }
.evrak-tablo td.kat-kutu { width: 3.1rem; text-align: center; }
.evrak-tablo td.kat-kutu::before {
  content: ""; display: inline-block; width: 0.62rem; height: 0.62rem;
  border: 1px solid #000;
}
.evrak-not {
  border-left: 3px solid #444; background: #f6f6f6;
  padding: 0.4rem 0.7rem; margin: 0.7rem 0; font-size: 9.5pt;
}
.evrak-not ul { margin: 0.25rem 0 0 1rem; padding: 0; }

/* ========================================================
   GÜNDEM DÜZENLEYİCİ (ekran arayüzü — yazdırmada görünmez)
   Solda tutanağa girecek maddeler, sağda yönergeden gelen
   öneri havuzu; tıklayarak eklenir, ✕ ile çıkarılır.
   ======================================================== */
.gundem-duzen {
  display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 1rem; align-items: start;
}
@media (max-width: 62rem) { .gundem-duzen { grid-template-columns: 1fr; } }

.gundem-liste { list-style: none; margin: 0; padding: 0; counter-reset: gmadde; }
.gundem-satir {
  display: flex; align-items: flex-start; gap: 0.45rem;
  background: var(--card-bg, #fff); border: 1px solid var(--border-color, #cbd5e1);
  border-radius: 6px; padding: 0.4rem 0.5rem; margin-bottom: 0.35rem;
}
.gundem-satir.tasiniyor { opacity: 0.45; }
.gundem-satir.hedef { border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37,99,235,0.18); }
.gundem-satir .tut { cursor: grab; color: var(--text-muted, #64748b); user-select: none; line-height: 1.5; }
.gundem-satir .no {
  counter-increment: gmadde; font-weight: 700; font-size: 0.8rem;
  color: var(--text-muted, #64748b); min-width: 1.35rem; text-align: right; line-height: 1.5;
}
.gundem-satir .metin {
  flex: 1; font-size: 0.85rem; line-height: 1.45; border: none; outline: none;
  background: transparent; color: inherit; padding: 0.05rem 0.1rem; border-radius: 4px;
  font-family: inherit; resize: none; overflow: hidden; min-height: 1.35rem;
}
.gundem-satir .metin:focus { background: rgba(37,99,235,0.08); }
.gundem-satir .islem {
  border: none; background: transparent; cursor: pointer; font-size: 0.85rem;
  color: var(--text-muted, #64748b); padding: 0 0.2rem; line-height: 1.4;
}
.gundem-satir .islem:hover { color: #b91c1c; }

.gundem-bos {
  border: 1px dashed var(--border-color, #cbd5e1); border-radius: 6px;
  padding: 1rem; text-align: center; font-size: 0.85rem; color: var(--text-muted, #64748b);
}

.gundem-havuz {
  border: 1px solid var(--border-color, #cbd5e1); border-radius: 8px;
  padding: 0.7rem; max-height: 32rem; overflow-y: auto;
  background: var(--bg-subtle, #f8fafc);
}
.gundem-havuz h5 {
  margin: 0.7rem 0 0.35rem; font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--text-muted, #64748b);
}
.gundem-havuz h5:first-child { margin-top: 0; }
.oneri-madde {
  display: block; width: 100%; text-align: left; cursor: pointer;
  border: 1px solid var(--border-color, #cbd5e1); border-radius: 6px;
  background: var(--card-bg, #fff); color: inherit;
  padding: 0.35rem 0.5rem; margin-bottom: 0.3rem;
  font-size: 0.8rem; line-height: 1.4; font-family: inherit;
}
.oneri-madde:hover { border-color: #2563eb; background: rgba(37,99,235,0.06); }
.oneri-madde.ekli { opacity: 0.45; cursor: default; }
.oneri-madde.ekli:hover { border-color: var(--border-color, #cbd5e1); background: var(--card-bg, #fff); }
.oneri-madde .isaret { font-weight: 700; color: #2563eb; margin-right: 0.3rem; }
.oneri-madde.ekli .isaret { color: #16a34a; }

.katilimci-kutu {
  border: 1px solid var(--border-color, #cbd5e1); border-radius: 8px;
  padding: 0.75rem 0.9rem; margin-top: 1rem; font-size: 0.85rem;
}
.katilimci-kutu .rozet {
  display: inline-block; background: #eff6ff; color: #1d4ed8; font-weight: 700;
  border-radius: 999px; padding: 0.1rem 0.55rem; font-size: 0.78rem;
}
.katilimci-kutu .uyari {
  background: #fffbeb; border-left: 3px solid #f59e0b; color: #92400e;
  padding: 0.4rem 0.6rem; border-radius: 4px; margin-top: 0.45rem; font-size: 0.8rem;
}
.katilimci-kutu .adlar {
  margin-top: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.3rem;
  max-height: 8rem; overflow-y: auto;
}
.katilimci-kutu .adlar span {
  background: var(--bg-subtle, #f1f5f9); border-radius: 999px;
  padding: 0.1rem 0.5rem; font-size: 0.76rem;
}
.katilimci-kutu .dayanak { color: var(--text-muted, #64748b); font-size: 0.76rem; margin-top: 0.5rem; }

@media print {
  .evrak-sayfa { box-shadow: none; padding: 0; max-width: 100%; }
  .evrak-tablo { page-break-inside: auto; }
  .evrak-tablo tr { page-break-inside: avoid; }
  .evrak-tablo thead { display: table-header-group; }
}

/* Birleştirilmiş ders rozeti (birden çok şube birlikte) */
.birlesik-pill {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0 0.25rem;
  margin-left: 0.15rem;
  border-radius: 3px;
  background: #ede9fe;
  color: #5b21b6;
  border: 1px solid #ddd6fe;
}

/* ========================================================
   YERLEŞMEYEN DERSLER ÇEKMECESİ (UNPLACED COURSES DRAWER)
   ======================================================== */
.unplaced-drawer {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  margin-bottom: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: all 0.2s ease;
}
.unplaced-drawer.drag-target-active {
  background: #fef2f2 !important;
  border: 2px dashed #ef4444 !important;
}
.unplaced-drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 1rem;
  background: #f8fafc;
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e2e8f0;
}
.unplaced-drawer-header:hover {
  background: #f1f5f9;
}
.unplaced-badge {
  background: #ef4444;
  color: white;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 9999px;
  letter-spacing: 0.02em;
}
.unplaced-badge.zero {
  background: #10b981;
}
.unplaced-drawer-body {
  padding: 0.75rem 1rem;
  max-height: 240px;
  overflow-y: auto;
  background: #fafafa;
}
.unplaced-drawer.collapsed .unplaced-drawer-body {
  display: none;
}
.unplaced-courses-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.unplaced-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #f59e0b;
  border-radius: 6px;
  padding: 0.45rem 0.7rem;
  font-size: 0.78rem;
  cursor: grab;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  min-width: 175px;
  max-width: 220px;
  user-select: none;
}
.unplaced-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.08);
  border-color: #cbd5e1;
}
.unplaced-card:active {
  cursor: grabbing;
}
.unplaced-card .u-subj {
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.unplaced-card .u-meta {
  font-size: 0.72rem;
  color: #64748b;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 4px;
}
.unplaced-card .u-hours {
  background: #fef3c7;
  color: #92400e;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.7rem;
}

/* ========================================================
   AKADEMİK TAKVİM ETKİNLİK KARTLARI
   ======================================================== */
.calendar-event-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.65rem 0.9rem;
  border-bottom: 1px solid #e2e8f0;
  background: white;
  transition: background 0.15s ease;
}
.calendar-event-item:hover {
  background: #f8fafc;
}
.calendar-event-item:last-child {
  border-bottom: none;
}
.cal-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}
.cal-badge.resmi_tatil { background: #fee2e2; color: #991b1b; }
.cal-badge.ara_tatil { background: #e0e7ff; color: #3730a3; }
.cal-badge.yariyil_tatili { background: #fef3c7; color: #92400e; }
.cal-badge.kar_tatili { background: #e0f2fe; color: #0369a1; }
.cal-badge.idari_izin { background: #f3e8ff; color: #6b21a8; }
.cal-badge.diger { background: #f1f5f9; color: #475569; }

/* ========================================================
   RESMÎ MEB / aSc FORMATINDA HAFTALIK PROGRAM BASKI STİLLERİ
   (24.11.2025 Öğretmen Programları.pdf ile %100 Birebir)
   ======================================================== */
.meb-handout-page {
  box-sizing: border-box;
  background: #ffffff;
  color: #000000;
  font-family: Arial, "Helvetica Neue", Helvetica, "Segoe UI", sans-serif;
  padding: 8mm 10mm;
  width: 100%;
  margin: 0 auto;
  position: relative;
  page-break-after: always;
  break-after: page;
}

/* Modal İçindeki Önizleme Kapsayıcısı */
.meb-handout-preview-wrapper {
  background: #475569;
  padding: 24px 16px;
  overflow-y: auto;
  max-height: 72vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.meb-handout-preview-wrapper .meb-handout-page {
  width: 210mm;
  min-height: 297mm;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  background: #fff;
}

/* 1. T.C. Üst Başlığı */
.meb-tc-header {
  text-align: center;
  margin-bottom: 8px;
}
.meb-tc-header .meb-tc-title {
  font-size: 13pt;
  font-weight: 700;
  letter-spacing: 1.5px;
  line-height: 1.2;
}
.meb-tc-header .meb-tc-sub {
  font-size: 10pt;
  font-weight: 700;
  margin-top: 1px;
}
.meb-tc-header .meb-tc-school {
  font-size: 11pt;
  font-weight: 700;
  margin-top: 2px;
}

/* 2. Resmî Tebliğ Bloğu */
.meb-notice-block {
  margin-top: 6px;
  margin-bottom: 8px;
  font-size: 8.5pt;
  line-height: 1.35;
}
.meb-notice-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.meb-notice-meta-left {
  font-size: 8.5pt;
  line-height: 1.3;
}
.meb-notice-salutation {
  font-size: 9.5pt;
  font-weight: 700;
  text-align: center;
  flex: 1;
  padding-right: 60px;
}
.meb-notice-body {
  margin-top: 6px;
  text-align: left;
  font-size: 8.5pt;
}
.meb-notice-sign {
  text-align: right;
  margin-top: 6px;
  padding-right: 25px;
}
.meb-notice-sign .sign-name {
  font-size: 9pt;
  font-weight: 700;
}
.meb-notice-sign .sign-title {
  font-size: 8pt;
  font-weight: 700;
}

/* 3. Çizelge Üstü Okul Şeridi */
.meb-grid-school-strip {
  text-align: center;
  font-size: 8pt;
  font-weight: 700;
  border-top: 1px solid #000;
  border-left: 1px solid #000;
  border-right: 1px solid #000;
  padding: 3px 4px;
  background: #fdfdfd;
}

/* 4. 10 Ders Saatli + Öğle Aralı Çizelge */
.meb-timetable-grid {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 7.5pt;
  border: 1px solid #000;
}
.meb-timetable-grid th,
.meb-timetable-grid td {
  border: 1px solid #000;
  text-align: center;
  padding: 2px 1px;
  vertical-align: middle;
  box-sizing: border-box;
}
.meb-timetable-grid thead th {
  background: #f4f4f5;
  font-weight: 700;
  line-height: 1.15;
}
.meb-timetable-grid thead th.day-header {
  width: 10%;
}
.meb-timetable-grid thead th.period-header {
  width: 8.18%;
  font-size: 7pt;
}
.meb-timetable-grid thead th.lunch-header {
  width: 7.5%;
  font-size: 6.5pt;
  background: #e4e4e7;
}
.meb-timetable-grid thead .period-num {
  font-size: 7.5pt;
  font-weight: 700;
  display: block;
}
.meb-timetable-grid thead .period-time {
  font-size: 6.5pt;
  font-weight: 400;
  display: block;
  margin-top: 1px;
}
.meb-timetable-grid tbody td.day-cell {
  font-weight: 700;
  font-size: 8pt;
  background: #fafafa;
}
.meb-timetable-grid tbody td.lesson-cell {
  height: 38px;
  line-height: 1.2;
}
.meb-timetable-grid tbody td.lesson-cell .cell-subj {
  font-weight: 800;
  font-size: 8pt;
  color: #000;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.meb-timetable-grid tbody td.lesson-cell .cell-subtarget {
  font-weight: 600;
  font-size: 6.5pt;
  color: #222;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 1px;
}
.meb-timetable-grid tbody td.lunch-cell {
  background: #f4f4f5;
  color: #71717a;
  font-size: 6.5pt;
  letter-spacing: 1px;
  font-weight: 600;
}

/* 5. Künye & Bilgi Şeridi */
.meb-kunye-meta-top {
  display: flex;
  justify-content: space-between;
  font-size: 7.5pt;
  margin-top: 6px;
  padding: 0 2px;
}
.meb-kunye-list {
  margin-top: 4px;
  font-size: 7.5pt;
  line-height: 1.35;
}
.meb-kunye-row {
  display: flex;
}
.meb-kunye-label {
  width: 140px;
  font-weight: 600;
}
.meb-kunye-colon {
  width: 15px;
  text-align: center;
}
.meb-kunye-val {
  flex: 1;
}

/* 6. Ders Dağılım Cetveli (Summary Table) */
.meb-summary-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 8px;
  font-size: 7.5pt;
  border: 1px solid #000;
}
.meb-summary-table th,
.meb-summary-table td {
  border: 1px solid #000;
  padding: 2.5px 6px;
}
.meb-summary-table th {
  background: #f4f4f5;
  font-weight: 700;
}
.meb-summary-table .col-subj {
  width: 50%;
  text-align: left;
}
.meb-summary-table .col-hds {
  width: 15%;
  text-align: center;
}
.meb-summary-table .col-target {
  width: 35%;
  text-align: left;
}
.meb-summary-table tr.total-row {
  font-weight: 800;
  background: #fafafa;
}

/* 7. İmza / Tebellüğ Bloğu */
.meb-signatures-block {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
  padding: 0 20px;
  font-size: 8pt;
}
.meb-sig-box {
  text-align: center;
  min-width: 180px;
}
.meb-sig-box .sig-role {
  font-weight: 700;
  margin-bottom: 2px;
}
.meb-sig-box .sig-name {
  font-weight: 600;
}
.meb-sig-box .sig-dots {
  margin-top: 12px;
  letter-spacing: 2px;
}

/* 8. Baskı ve Çıktı Medyası (@media print) */
@media print {
  @page {
    size: A4 portrait;
    margin: 8mm 10mm 8mm 10mm;
  }
  body.yazdir-resmi-program > *:not(#resmiProgramPrintArea) {
    display: none !important;
  }
  body.yazdir-resmi-program #resmiProgramPrintArea {
    display: block !important;
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.yazdir-resmi-program .meb-handout-page {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    min-height: 270mm !important;
    page-break-after: always !important;
    break-after: page !important;
  }
  body.yazdir-resmi-program .meb-handout-page:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
  }
  .no-print {
    display: none !important;
  }
}




/* ========================================================
   DERS DAĞITIM ÇİZELGESİ (NORM)
   Öğretmen × şube matrisi; satır sabit, sütunlar kayar.
   ======================================================== */
.norm-tablo { border-collapse: separate; border-spacing: 0; font-size: 0.78rem; width: max-content; min-width: 100%; }
.norm-tablo th, .norm-tablo td { border-bottom: 1px solid var(--border-color, #e2e8f0); padding: 0.35rem 0.5rem; }
.norm-tablo thead th {
  position: sticky; top: 0; z-index: 3; background: var(--bg-subtle, #f1f5f9);
  font-weight: 700; text-align: center; white-space: nowrap; font-size: 0.72rem;
  border-bottom: 2px solid var(--border-color, #cbd5e1);
}
.norm-tablo .ogr-sutun {
  position: sticky; left: 0; z-index: 2; background: var(--card-bg, #fff);
  min-width: 11rem; font-weight: 600; border-right: 2px solid var(--border-color, #cbd5e1);
}
.norm-tablo thead .ogr-sutun { z-index: 4; background: var(--bg-subtle, #f1f5f9); }
.norm-tablo tbody tr:hover td { background: rgba(37, 99, 235, 0.05); }
.norm-tablo tbody tr:hover .ogr-sutun { background: rgba(37, 99, 235, 0.09); }
.norm-tablo .ozet-sutun { text-align: center; font-variant-numeric: tabular-nums; white-space: nowrap; }
.norm-hucre { text-align: center; min-width: 3.4rem; }
.norm-rozet {
  display: inline-block; background: #dbeafe; color: #1e40af; border-radius: 4px;
  padding: 0.05rem 0.3rem; font-size: 0.7rem; font-weight: 700; margin: 0.05rem;
}
.norm-rozet.grup { background: #fef3c7; color: #92400e; }
.norm-rozet.ortak { background: #dcfce7; color: #166534; }
.norm-satir-bos .ogr-sutun { color: #b91c1c; }
.norm-yuk { font-weight: 700; font-variant-numeric: tabular-nums; }
.norm-yuk.cok { color: #b91c1c; }
.norm-yuk.az { color: #b45309; }
.norm-yuk.yok { color: #b91c1c; }

.norm-kademe-pill {
  display: inline-block; border-radius: 999px; padding: 0.02rem 0.4rem;
  font-size: 0.68rem; font-weight: 700; margin-right: 0.15rem;
  background: var(--bg-subtle, #f1f5f9); color: var(--text-muted, #475569);
}
.norm-kademe-pill.MESEM { background: #ede9fe; color: #5b21b6; }
.norm-kademe-pill.AMP { background: #dbeafe; color: #1e40af; }
.norm-kademe-pill.AL { background: #ccfbf1; color: #115e59; }

.norm-sekmeler { display: flex; gap: 0.4rem; flex-wrap: wrap; border-bottom: 2px solid var(--border-color, #e2e8f0); }
.norm-sekme {
  border: none; background: transparent; cursor: pointer; font-family: inherit;
  font-size: 0.85rem; font-weight: 600; color: var(--text-muted, #64748b);
  padding: 0.5rem 0.85rem; border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.norm-sekme:hover { color: var(--text-color, #0f172a); }
.norm-sekme.etkin { color: #2563eb; border-bottom-color: #2563eb; }

.norm-kart {
  border: 1px solid var(--border-color, #e2e8f0); border-radius: 8px;
  padding: 0.65rem 0.85rem; margin-bottom: 0.5rem;
  display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap;
}
.norm-kart .bilgi { flex: 1; min-width: 16rem; font-size: 0.85rem; }
.norm-kart .alt { font-size: 0.76rem; color: var(--text-muted, #64748b); margin-top: 0.15rem; }
.norm-uyari {
  border-left: 3px solid #f59e0b; background: #fffbeb; color: #92400e;
  padding: 0.45rem 0.7rem; border-radius: 4px; margin-bottom: 0.4rem; font-size: 0.82rem;
}
.norm-uyari.agir { border-left-color: #dc2626; background: #fef2f2; color: #991b1b; }
.norm-bilgi {
  border-left: 3px solid #2563eb; background: #eff6ff; color: #1e3a8a;
  padding: 0.45rem 0.7rem; border-radius: 4px; margin-bottom: 0.4rem; font-size: 0.82rem;
}
.norm-grup-satir { display: flex; gap: 0.4rem; align-items: center; margin-bottom: 0.3rem; flex-wrap: wrap; }
.norm-grup-satir .etiket { font-weight: 700; font-size: 0.78rem; min-width: 4.2rem; }

/* Üst çubuk öğeleri tek satırda kalır (metin kırılması başlığı iki katına çıkarıyordu) */
.header-actions .btn, .header-actions .status-pill, .header-actions .voice-btn { white-space: nowrap; }
.header-actions { flex-wrap: nowrap; gap: 0.5rem; }
.brand-section { min-width: 0; }
.brand-subtitle { flex-wrap: nowrap; overflow: hidden; }
@media (max-width: 1280px) {
  .header-actions .gizli-dar, #voiceText { display: none; }
}

/* ================= DARALTILABİLİR KUTULAR ================= */
details.katlanir {
  border-radius: 8px; margin-bottom: 0.45rem; font-size: 0.84rem; overflow: hidden;
}
details.katlanir > summary {
  cursor: pointer; list-style: none; padding: 0.5rem 0.9rem; font-weight: 700;
  display: flex; align-items: center; gap: 0.4rem;
}
details.katlanir > summary::-webkit-details-marker { display: none; }
details.katlanir > summary::before { content: "▸"; font-size: 0.8rem; transition: transform 0.15s ease; }
details.katlanir[open] > summary::before { transform: rotate(90deg); }
.katlanir-ipucu { margin-left: auto; font-weight: 500; font-size: 0.72rem; opacity: 0.7; }
details.katlanir[open] .katlanir-ipucu { display: none; }
.katlanir-govde { padding: 0 0.9rem 0.7rem; }
.uyari-kirmizi { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.uyari-sari { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.durum-satiri { border-radius: 8px; padding: 0.4rem 0.9rem; font-size: 0.82rem; font-weight: 600; margin-bottom: 0.45rem; }
.durum-satiri.iyi { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; }

/* Yerleşmeyen dersler gövdesi alttan tutulup büyütülebilir */
.unplaced-drawer-body { resize: vertical; min-height: 60px; }

/* ===== Kısıt Merkezi ===== */
#kisitMerkezi { padding: 1rem; }
.km-ust { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.km-ust h2 { font-size: 1.15rem; margin: 0; }
.km-turler { display: flex; gap: 0.25rem; background: var(--bg-main); padding: 0.2rem; border-radius: 8px; border: 1px solid var(--border-color); }
.km-tur { border: 0; background: transparent; padding: 0.35rem 0.8rem; border-radius: 6px; cursor: pointer; font-weight: 600; color: var(--text-muted); }
.km-tur.aktif { background: var(--card-bg); color: var(--primary); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.km-kayit { font-size: 0.8rem; color: var(--text-muted); margin-left: auto; }
.km-kayit.tamam { color: var(--success); }
.km-kayit.hata { color: var(--danger); }
.km-govde { display: grid; gap: 0; min-height: 60vh; }
.km-sol { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.km-liste-ust { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--text-muted); }
.km-liste { overflow-y: auto; max-height: 68vh; border: 1px solid var(--border-color); border-radius: 8px; }
.km-oge { display: grid; grid-template-columns: auto 1fr; gap: 0.1rem 0.5rem; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--border-color); cursor: pointer; font-size: 0.86rem; }
.km-oge:hover { background: var(--bg-main); }
.km-oge.secili { background: var(--primary-light); }
.km-oge input { margin-top: 0.2rem; pointer-events: auto; }
.km-oge-ad small { display: block; color: var(--text-muted); font-size: 0.74rem; }
.km-rozetler { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0.25rem; }
.km-rozet { font-size: 0.68rem; padding: 0.05rem 0.4rem; border-radius: 999px; background: #e2e8f0; color: #334155; }
.km-r-kapali { background: var(--danger-light); color: #b91c1c; }
.km-r-gun { background: #ede9fe; color: #5b21b6; }
.km-r-kacin { background: var(--warning-light); color: #92400e; }
.km-bos, .km-bos-sag { color: var(--text-muted); padding: 1rem; font-size: 0.9rem; }
.km-ayirici { cursor: col-resize; background: transparent; position: relative; }
.km-ayirici::after { content: ""; position: absolute; left: 2px; top: 0; bottom: 0; width: 2px; background: var(--border-color); }
.km-ayirici:hover::after { background: var(--primary); }
.km-sag { padding-left: 0.9rem; min-width: 0; overflow-x: auto; }
.km-baslik { font-size: 1rem; margin: 0 0 0.5rem; }
.km-baslik small { color: var(--text-muted); font-weight: 400; }
.km-firca { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; font-size: 0.82rem; margin-bottom: 0.6rem; }
.km-f { border: 1px solid var(--border-color); background: var(--card-bg); border-radius: 6px; padding: 0.25rem 0.6rem; cursor: pointer; }
.km-f.aktif { border-color: var(--primary); background: var(--primary-light); color: var(--primary); font-weight: 600; }
.km-ipucu { color: var(--text-muted); font-size: 0.76rem; }
.km-izgara { border-collapse: separate; border-spacing: 3px; user-select: none; }
.km-izgara th { font-size: 0.75rem; color: var(--text-muted); font-weight: 600; padding: 0 0.3rem; cursor: pointer; white-space: nowrap; }
.km-gun-bas { text-align: right; }
.km-gun-bas.bos-gun { color: #5b21b6; }
.km-izgara th:hover { color: var(--primary); }
.km-h { width: 2.3rem; height: 1.9rem; border-radius: 5px; cursor: crosshair; border: 1px solid var(--border-color); }
.km-acik { background: var(--success-light); }
.km-kapali { background: #fca5a5; border-color: #f87171; }
.km-kacin { background: #fde68a; border-color: #f59e0b; }
.km-yok { background: transparent; }
.km-kurallar { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0.6rem; margin-top: 1rem; }
.km-kural { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.84rem; background: var(--bg-main); border: 1px solid var(--border-color); border-radius: 8px; padding: 0.5rem 0.6rem; }
.km-kural input[type=number], .km-kural select { width: 7rem; padding: 0.25rem 0.4rem; border: 1px solid #cbd5e1; border-radius: 5px; }
.km-kural small { color: var(--text-muted); font-size: 0.74rem; }
.km-kutu { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.km-kutu small { flex-basis: 100%; }
@media (max-width: 760px) {
  .km-govde { grid-template-columns: 1fr !important; }
  .km-ayirici { display: none; }
  .km-sag { padding-left: 0; margin-top: 1rem; }
}
.km-baslik small { margin-left: 0.4rem; }
.km-cekmece { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); background: var(--card-bg); box-shadow: -8px 0 24px rgba(15,23,42,.18); z-index: 1200; transform: translateX(105%); transition: transform .2s ease; display: flex; flex-direction: column; }
.km-cekmece.acik { transform: none; }
.km-cekmece-ust { display: flex; align-items: center; gap: 0.5rem; padding: 0.8rem 1rem; border-bottom: 1px solid var(--border-color); }
.km-cekmece-ust .km-kayit { margin-left: auto; }
.km-cekmece .km-sag { padding: 1rem; overflow-y: auto; }
.km-sag-menu { position: fixed; display: none; z-index: 1300; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 8px; box-shadow: 0 8px 24px rgba(15,23,42,.18); padding: 0.3rem; min-width: 250px; }
.km-sag-menu button { display: block; width: 100%; text-align: left; border: 0; background: transparent; padding: 0.45rem 0.7rem; border-radius: 5px; cursor: pointer; font-size: 0.86rem; color: var(--text-main); }
.km-sag-menu button:hover, .km-sag-menu button:focus { background: var(--primary-light); }
.km-sag-menu hr { border: 0; border-top: 1px solid var(--border-color); margin: 0.25rem 0; }
.km-satir-btn { border: 1px solid var(--border-color); background: var(--card-bg); border-radius: 6px; padding: 0.15rem 0.45rem; cursor: pointer; font-size: 0.8rem; }
.km-satir-btn:hover { border-color: #f87171; background: var(--danger-light); }

/* ===== Ders Görevlendirme ===== */
#dersGorevPanel { padding: 1rem; }
.dg-baslik h3 { margin: 0 0 0.3rem; font-size: 1.1rem; }
.dg-baslik h3 small { font-weight: 400; color: var(--text-muted); font-size: 0.85rem; }
.dg-baslik p { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 0.8rem; }
.dg-izgara { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0.7rem; margin-bottom: 0.7rem; }
.dg-kutu { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: 8px; padding: 0.7rem 0.8rem; display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.85rem; margin-bottom: 0.7rem; }
.dg-kutu label { display: flex; flex-direction: column; gap: 0.2rem; }
.dg-kutu label.dg-cip { flex-direction: row; display: inline-flex; }
.dg-kutu input[type=number] { width: 5rem; padding: 0.2rem 0.35rem; border: 1px solid #cbd5e1; border-radius: 5px; }
.dg-kutu select, .dg-kutu .text-input { max-width: 100%; }
.dg-satir { display: flex; gap: 0.35rem; flex-wrap: wrap; align-items: center; }
.dg-cip { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 999px; padding: 0.15rem 0.6rem; margin: 0.1rem 0.2rem 0.1rem 0; font-size: 0.8rem; }
.dg-etiket { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--primary-light); color: #1e3a8a; border-radius: 6px; padding: 0.15rem 0.5rem; margin: 0.15rem 0.25rem 0 0; font-size: 0.8rem; }
.dg-etiket button { border: 0; background: transparent; cursor: pointer; color: #64748b; }
.dg-soluk { color: var(--text-muted); font-size: 0.78rem; }
.dg-kapsam-ozet { background: #eef2ff; border-radius: 6px; padding: 0.4rem 0.55rem; display: flex; flex-direction: column; gap: 0.3rem; }
.kd-onizleme { background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 8px; padding: 0.6rem 0.9rem; margin-bottom: 1rem; font-size: 0.86rem; }
.kd-onizleme:empty { display: none; }
.dg-uyari { background: #fef3c7; color: #92400e; border-radius: 6px; padding: 0.35rem 0.5rem; }
.dg-bolum-oneri { background: #fff7ed; border: 1px solid #fdba74; border-radius: 8px; padding: 0.5rem 0.7rem; margin-bottom: 0.7rem; font-size: 0.85rem; }
.dg-bolum-oneri summary { cursor: pointer; }
.dg-bolum-oneri table { margin: 0.5rem 0; }
.dg-bolum-oneri .select-input { padding: 0.15rem 0.3rem; font-size: 0.8rem; }
.dg-eylem { display: flex; gap: 0.8rem; align-items: center; flex-wrap: wrap; margin: 0.4rem 0 0.8rem; }
.dg-tablo { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.dg-tablo th { text-align: left; color: var(--text-muted); font-weight: 600; padding: 0.3rem 0.4rem; border-bottom: 1px solid var(--border-color); }
.dg-tablo td { padding: 0.25rem 0.4rem; border-bottom: 1px solid var(--border-color); }
.dg-tablo tr.dg-degisti td { background: #fef9c3; }
.dg-arti { color: #15803d; font-weight: 600; }
.dg-eksi { color: #b91c1c; font-weight: 600; }
.dg-ozet { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; margin-bottom: 0.7rem; }
.dg-oneriler { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.7rem; font-size: 0.84rem; }
.dg-oneri { background: var(--warning-light); border-left: 4px solid var(--warning); padding: 0.45rem 0.7rem; border-radius: 6px; }
.dg-oneri.dg-ihtiyac { background: var(--danger-light); border-left-color: var(--danger); }
.dg-oneri.dg-adalet { background: var(--primary-light); border-left-color: var(--primary); }
.dg-kutu details summary, details.dg-kutu summary { cursor: pointer; }

/* ===== Alan Şefliği ===== */
#alanSefPanel { padding: 1rem; }
.as-ust { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 0.7rem; }
.as-ust h2 { margin: 0; font-size: 1.15rem; }
.as-ust .select-input { max-width: 22rem; }
.as-sekmeler { flex-wrap: wrap; margin-bottom: 0.8rem; width: fit-content; max-width: 100%; }
.as-girdi { width: 100%; min-width: 5rem; border: 1px solid #cbd5e1; border-radius: 5px; padding: 0.2rem 0.35rem; font-size: 0.8rem; background: var(--card-bg); }
.as-tablo td { vertical-align: top; }
.as-tablo .dg-cip { font-size: 0.74rem; }
@media (max-width: 760px) { .as-tablo { display: block; overflow-x: auto; } }

/* ===== Öğretmen devam istatistikleri ===== */
.di-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0.5rem; margin-bottom: 0.6rem; }
.di-kutu { border: 1px solid; border-radius: 8px; padding: 0.5rem 0.7rem; display: flex; flex-direction: column; background: var(--card-bg); }
.di-kutu small { font-size: 0.72rem; color: var(--text-muted); font-weight: 600; }
.di-kutu b { font-size: 1.3rem; }

/* ===== Evrak Merkezi ===== */
.evrak-sayfa-sonu { break-after: page; page-break-after: always; height: 0; border-top: 1px dashed #cbd5e1; margin: 1.2rem 0; }
@media print { .evrak-sayfa-sonu { border: 0; margin: 0; } }
table.evrak-teblig { width: 100%; margin-top: 1.6rem; border-collapse: collapse; font-size: 10.5pt; }
table.evrak-teblig td { width: 50%; vertical-align: top; text-align: center; padding: 0.3rem; line-height: 1.5; }
.evrak-ek { margin-top: 1.1rem; font-size: 10pt; }
.evrak-olur { text-align: center; margin: 1.6rem auto 0; width: 16rem; line-height: 1.5; }
.evrak-tablo.program td { font-size: 8pt; line-height: 1.15; height: 2.4rem; }
.evrak-tablo.program td small { font-size: 7pt; color: #333; }
.evrak-tablo.program td hr { border: 0; border-top: 1px dotted #999; margin: 1px 0; }
.evrak-ek-alanlar { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.6rem; }
.evrak-ek-alanlar textarea { width: 100%; min-height: 5rem; font-family: inherit; font-size: 0.85rem; padding: 0.5rem; border: 1px solid #cbd5e1; border-radius: 6px; }
.evrak-ek-alanlar .genis { grid-column: 1 / -1; }
.evrak-cok-secim { max-height: 9rem; overflow-y: auto; border: 1px solid #cbd5e1; border-radius: 6px; padding: 0.3rem; font-size: 0.8rem; background: #fff; }
.evrak-cok-secim label { display: block; }
.evrak-tablo.program { table-layout: fixed; width: 100%; }
.evrak-tablo.program th:first-child, .evrak-tablo.program td:first-child { width: 4.6rem; }
.evrak-tablo.program td { overflow-wrap: anywhere; padding: 0.12rem 0.15rem; }

/* ==========================================================================
   CANLI DAĞITIM DURUMU — dağıtım sürerken motorun ne yaptığı (bkz.
   engine/ilerleme.py). Arka plan bulanık ve tıklanamaz: dağıtım sürerken
   program elle değiştirilemez.
   ========================================================================== */
.canli-gunluk {
  height: 168px; overflow-y: auto; padding: 0.4rem 0.6rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.74rem; line-height: 1.55; background: #0f172a; color: #cbd5e1;
}
.canli-gunluk .gunluk-satir { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.canli-gunluk .gunluk-satir.onemli { color: #7dd3fc; font-weight: 700; }
.canli-gunluk .an { color: #64748b; margin-right: 6px; }
#distributionProgressModal { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ---- kart ilişkileri ekranı ---- */
.kisit-kat { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.8rem; }
.kisit-kat button {
  border: 1px solid #e2e8f0; background: #fff; border-radius: 999px;
  padding: 5px 13px; font-size: 0.8rem; cursor: pointer; color: #475569;
}
.kisit-kat button.active { background: #0f172a; color: #fff; border-color: #0f172a; }
.kisit-kart {
  border: 1px solid #e2e8f0; border-radius: 10px; padding: 0.7rem 0.85rem;
  background: #fff; display: flex; gap: 0.8rem; align-items: flex-start;
}
.kisit-kart:hover { border-color: #cbd5e1; }
.kisit-kart .asc {
  font-size: 0.66rem; font-weight: 700; color: #94a3b8;
  border: 1px solid #e2e8f0; border-radius: 5px; padding: 1px 5px;
}
.kisit-satir {
  display: grid; grid-template-columns: 1fr auto auto auto; gap: 0.6rem;
  align-items: center; padding: 0.5rem 0.7rem; border-radius: 9px;
  border: 1px solid #e2e8f0; background: #fff; margin-bottom: 0.35rem;
}
.kisit-satir.pasif { opacity: 0.55; }
.kisit-rozet {
  font-size: 0.68rem; font-weight: 700; padding: 2px 8px; border-radius: 999px;
}
.kisit-sert { background: #fee2e2; color: #b91c1c; }
.kisit-yumusak { background: #e0f2fe; color: #0369a1; }


/* ---- YOĞUNLUK: sığdır / normal ----
   Varsayılan hücre 210 piksele kadar büyüyordu. "Sığdır" modunda hücre
   dar tutulur ve metin kırpılır; ders adının tamamı title'da durur. */
.timetable.sik th, .timetable.sik td {
  padding: 2px 3px;
  font-size: 0.68rem;
  line-height: 1.15;
  max-width: 78px;
  min-width: 52px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.timetable.sik .ders-hucresi, .timetable.sik .slot-card {
  padding: 1px 2px;
  font-size: 0.66rem;
}
.timetable.sik .slot-teacher, .timetable.sik .slot-room { display: none; }


/* Çarşaf / Sayfa görünüm geçişi */
.gorunum-gecis { display:inline-flex; border:1px solid var(--border-color, #cbd5e1); border-radius:8px; overflow:hidden; }
.gorunum-gecis button { border:none; background:transparent; padding:0.3rem 0.7rem; font-size:0.8rem; font-weight:600;
  color:var(--text-muted, #64748b); cursor:pointer; }
.gorunum-gecis button + button { border-left:1px solid var(--border-color, #cbd5e1); }
.gorunum-gecis button.secili { background:#2563eb; color:#fff; }
.gorunum-gecis button:focus-visible { outline:2px solid #1d4ed8; outline-offset:-2px; }

/* ================= TELEFON (≤ 760 px) =================
   Yönetici paneli telefondan açılınca: üst çubuk sarılır, menü çekmece olur
   (dışına dokununca kapanır), sabit sütunlu formlar tek sütuna iner, tablolar
   kendi içinde yana kayar (sayfa kaymaz), pencereler tam ekran olur. Açılış
   ekranı Bugün'dür (js/mobil.js). Masaüstü görünüm değişmez. */
@media (max-width: 760px) {
  html, body { overflow-x: hidden; }
  .app-header { position: static; flex-wrap: wrap; padding: 0.5rem 0.7rem; gap: 0.45rem; }
  .brand-section { width: 100%; gap: 0.5rem; }
  .brand-logo, .brand-subtitle { display: none !important; }
  .brand-title { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: calc(100vw - 80px); }
  .header-actions { width: 100%; flex-wrap: wrap !important; justify-content: flex-start; gap: 0.35rem; }
  .header-actions .btn, .header-actions .status-pill { padding: 0.35rem 0.6rem; font-size: 0.78rem; }
  #fairnessScoreBtn, #globalVoiceBtn { display: none !important; }
  .acilir-menu { max-width: calc(100vw - 20px); }

  /* Menü çekmecesi: tam boy, altta karartma */
  .tabs-nav { width: 82vw !important; flex-basis: auto !important; max-width: 320px; padding-bottom: 4rem; }
  body.menu-acik-mobil::after { content: ""; position: fixed; inset: 0; background: rgba(15, 23, 42, 0.45); z-index: 390; }
  .tab-btn { padding-top: 0.6rem; padding-bottom: 0.6rem; }
  .menu-daralt { display: none !important; }

  .app-container { padding: 0 0.55rem; margin: 0.6rem auto 4rem; width: 100%; }
  .card { padding: 0.8rem 0.75rem; border-radius: 10px; margin-bottom: 0.8rem; }
  .card-title { flex-wrap: wrap; gap: 0.4rem; font-size: 0.98rem; }
  .controls-bar, .filter-group { flex-wrap: wrap; gap: 0.5rem; }

  /* Satır içi sabit sütunlu ızgaralar tek sütun; auto-fit/auto-fill olanlar kendiliğinden uyar */
  .app-container [style*="grid-template-columns"]:not([style*="minmax(1"]) {
    grid-template-columns: minmax(0, 1fr) !important; }
  .app-container [style*="display:grid"] > *, .app-container [style*="display: grid"] > * { min-width: 0; }
  .app-container [style*="display:flex"] > *, .app-container [style*="display: flex"] > * { max-width: 100%; }
  .app-container [style*="min-width"]:not(table) { min-width: 0 !important; }
  /* Masaüstünde yan yana sütun olan kutular (en küçük genişlik verilmiş) telefonda alt alta */
  .app-container [style*="display:flex"] > [style*="min-width"],
  .app-container [style*="display: flex"] > [style*="min-width"] { flex: 1 1 100% !important; }
  .app-container [style*="grid-column:span"], .app-container [style*="grid-column: span"] { grid-column: auto !important; }
  .app-container [style*="columns:"] { columns: 1 !important; }

  /* Yan yana dizilmiş satırlar alta sarılır */
  .app-container [style*="display:flex"], .app-container [style*="display: flex"],
  .app-container [style*="display:inline-flex"] { flex-wrap: wrap; }
  .app-container [style*="white-space:nowrap"] { white-space: normal !important; }

  /* Taşan öğeler */
  .app-container input, .app-container select, .app-container textarea { max-width: 100%; }
  .app-container img, .app-container svg { max-width: 100%; height: auto; }
  .app-container table:not(.timetable) { display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
  .timetable-wrapper { max-width: 100%; overflow: auto; }

  /* iPhone giriş kutusuna dokununca sayfayı büyütmesin (16 px altı yazıda büyütür) */
  input, select, textarea, .text-input, .select-input { font-size: 16px !important; }

  /* Dokunmaya uygun düğmeler */
  .btn { min-height: 36px; }

  /* Pencereler tam ekran */
  .modal-dialog, .modal-dialog.large { width: 100% !important; max-width: 100% !important; height: 100%; max-height: 100% !important; border-radius: 0; }
  .modal-header { padding: 0.7rem 0.9rem; }
  .modal-body { padding: 0.8rem; }
  .modal-footer { padding: 0.6rem 0.8rem; flex-wrap: wrap; }

  #hesapRozeti { font-size: 0.66rem !important; bottom: 6px !important; right: 6px !important; }
}

/* ===================== DERS ATAMA (js/ders_atama.js) ===================== */
.da-ust { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.da-ust h2 { margin: 0; font-size: 1.15rem; }
.da-ust-cubuk { margin-bottom: 0.75rem; }
.da-sekmeler { flex-wrap: wrap; margin-bottom: 0.75rem; }
.da-suzgec { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.da-suzgec .text-input { flex: 1 1 220px; }
.da-sinif-duzen { display: grid; grid-template-columns: 210px 1fr; gap: 1rem; align-items: start; }
.da-sinif-liste { display: flex; flex-direction: column; gap: 2px; max-height: 70vh; overflow: auto; border: 1px solid var(--border-color); border-radius: 8px; padding: 4px; }
.da-sinif { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; border: 0; background: transparent; padding: 0.4rem 0.55rem; border-radius: 6px; cursor: pointer; text-align: left; font-size: 0.86rem; }
.da-sinif:hover { background: var(--bg-main); }
.da-sinif.secili { background: var(--primary); color: #fff; }
.da-rozet { font-size: 0.72rem; background: #e2e8f0; color: #334155; border-radius: 10px; padding: 1px 7px; white-space: nowrap; }
.da-rozet.uyari { background: #fee2e2; color: #b91c1c; }
.da-baslik { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.da-ipucu { font-size: 0.78rem; color: var(--text-muted); margin: 0.35rem 0; }
.da-bos { color: var(--text-muted); text-align: center; padding: 1rem; }
.da-tablo { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.da-tablo th { text-align: left; font-size: 0.75rem; color: var(--text-muted); padding: 0.35rem; border-bottom: 1px solid var(--border-color); }
.da-tablo td { padding: 0.25rem 0.35rem; border-bottom: 1px solid var(--border-color); vertical-align: middle; }
.da-tablo .text-input { padding: 0.3rem 0.45rem; font-size: 0.85rem; }
.da-tablo .da-sayi, .da-ekle .da-sayi { width: 4.2rem; }
.da-tablo .da-blok { width: 5.5rem; }
.da-tablo .da-grup { width: 3.5rem; }
.da-tablo .da-ogr { width: 11rem; display: inline-block; }
.da-sag { text-align: right; }
.da-ogretmensiz td, td.da-ogretmensiz { background: #fdf2f8; }
.da-cip { display: inline-flex; align-items: center; gap: 2px; background: #e0e7ff; color: #3730a3; border-radius: 12px; padding: 1px 4px 1px 8px; margin: 1px 3px 1px 0; font-size: 0.8rem; }
.da-cip button { border: 0; background: transparent; cursor: pointer; color: #6366f1; font-size: 0.95rem; line-height: 1; }
.da-sil { padding: 0.2rem 0.45rem; }
.da-ekle { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.75rem; align-items: center; }
.da-ekle .text-input:first-child { flex: 1 1 200px; }
.da-kopya { margin-top: 0.75rem; border: 1px solid var(--border-color); border-radius: 8px; padding: 0.5rem 0.75rem; }
.da-kopya summary { cursor: pointer; font-weight: 600; font-size: 0.86rem; }
.da-kopya select { width: 100%; margin: 0.5rem 0; }
.da-izgara-kap { overflow: auto; max-height: 72vh; border: 1px solid var(--border-color); border-radius: 8px; }
.da-izgara { border-collapse: collapse; font-size: 0.78rem; }
.da-izgara th, .da-izgara td { border: 1px solid var(--border-color); padding: 0.25rem 0.35rem; white-space: nowrap; }
.da-izgara thead th { position: sticky; top: 0; background: var(--card-bg); z-index: 2; max-width: 7rem; }
.da-izgara thead th div { max-width: 7rem; overflow: hidden; text-overflow: ellipsis; }
.da-izgara .da-sabit { position: sticky; left: 0; background: var(--card-bg); z-index: 1; text-align: left; }
.da-izgara thead .da-sabit { z-index: 3; }
.da-izgara td { cursor: pointer; text-align: center; min-width: 3.2rem; }
.da-izgara td.da-dolu { background: #ecfdf5; }
.da-izgara td.da-izgara-bos:hover { background: var(--bg-main); }
.da-izgara td.da-toplam { font-weight: 700; cursor: default; }
.da-acilir { margin-top: 0.75rem; border: 2px solid var(--primary); border-radius: 10px; padding: 0.6rem 0.8rem; background: var(--card-bg); }
.da-ogr-satir { cursor: pointer; }
.da-ogr-satir:hover td { background: var(--bg-main); }
.da-cubuk { height: 8px; background: #e2e8f0; border-radius: 4px; overflow: hidden; }
.da-cubuk div { height: 100%; }
.da-ic { margin: 0.25rem 0 0.5rem; background: var(--bg-main); }
@media (max-width: 760px) {
  .da-sinif-duzen { grid-template-columns: 1fr; }
  .da-sinif-liste { flex-direction: row; overflow-x: auto; max-height: none; }
  .da-sinif { flex: 0 0 auto; }
}
.da-tablo td:first-child .text-input { width: 100%; min-width: 15rem; }
.da-sinif-icerik .da-tablo th:first-child { width: 34%; }

/* ===================== SINAV ANALİZİ (js/sinav_analizi.js) ===================== */
.sa-filtreler { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.4rem 0 0.6rem; }
.sa-filtre { display: flex; flex-direction: column; gap: 2px; font-size: 0.72rem; font-weight: 700; color: #52514e; }
.sa-filtre .select-input, .sa-filtre .text-input { font-size: 0.8rem; min-width: 8rem; }
.sa-sekmeler { display: flex; flex-wrap: wrap; gap: 0.25rem; border-bottom: 1px solid #e1e0d9; margin-bottom: 0.7rem; }
.sa-sekme { border: none; background: none; padding: 0.45rem 0.8rem; font-size: 0.82rem; font-weight: 600; color: #52514e; cursor: pointer; border-bottom: 2px solid transparent; }
.sa-sekme.aktif { color: #0b0b0b; border-bottom-color: #2a78d6; }
.sa-kutular { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.6rem; margin-bottom: 0.8rem; }
.sa-kutu { background: #fcfcfb; border: 1px solid rgba(11,11,11,0.10); border-radius: 8px; padding: 0.65rem 0.8rem; display: flex; flex-direction: column; gap: 2px; }
.sa-kutu small { font-size: 0.72rem; color: #52514e; font-weight: 600; }
.sa-kutu b { font-size: 1.55rem; color: #0b0b0b; line-height: 1.15; }
.sa-kutu span { font-size: 0.72rem; color: #898781; }
.sa-baslik { margin: 1rem 0 0.35rem; font-size: 0.92rem; color: #0b0b0b; }
.sa-baslik small { font-weight: 400; color: #898781; font-size: 0.75rem; margin-left: 0.3rem; }
.sa-svg { width: 100%; height: auto; max-width: 980px; display: block; background: #fcfcfb; border-radius: 6px; }
.sa-svg .sa-isaret:hover rect { fill: rgba(42,120,214,0.06); }
.sa-bant { display: flex; height: 26px; border-radius: 4px; overflow: hidden; gap: 2px; max-width: 980px; }
.sa-bant div { display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; min-width: 2px; }
.sa-lejant { display: flex; flex-wrap: wrap; gap: 0.9rem; font-size: 0.75rem; color: #52514e; margin-top: 0.35rem; }
.sa-lejant i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
.sa-isi { border-collapse: separate; border-spacing: 2px; font-size: 0.75rem; }
.sa-isi th { font-weight: 600; color: #52514e; padding: 0.2rem 0.4rem; white-space: nowrap; }
.sa-isi td { text-align: center; padding: 0.3rem 0.45rem; border-radius: 3px; font-variant-numeric: tabular-nums; min-width: 2.6rem; }
.sa-isi td.bos { color: #c3c2b7; }
.sa-uyari { margin: 0; padding-left: 1.1rem; font-size: 0.82rem; line-height: 1.6; }
.sa-not { font-size: 0.78rem; color: #52514e; margin: 0.4rem 0; }
.sa-tablo { font-size: 0.78rem; width: 100%; }
.sa-tablo td { font-variant-numeric: tabular-nums; }
.sa-bos { padding: 1.2rem; background: #f9f9f7; border-radius: 8px; font-size: 0.85rem; color: #52514e; }
.sa-pencere { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background: rgba(15,23,42,0.45); }
.sa-pencere-ic { background: #fff; border-radius: 10px; width: min(1180px, 97vw); max-height: 94vh; overflow: auto; padding: 1rem 1.2rem; }
.sa-birak { display: flex; flex-direction: column; gap: 0.35rem; align-items: center; text-align: center; border: 2px dashed #c3c2b7; border-radius: 10px; padding: 2rem 1rem; margin-top: 0.8rem; cursor: pointer; font-size: 0.85rem; color: #52514e; }
.sa-birak.ustunde { border-color: #2a78d6; background: #eff6ff; }
.sa-onizleme { overflow: auto; max-height: 56vh; border: 1px solid #e1e0d9; border-radius: 6px; }
.sa-onizleme table { border-collapse: collapse; font-size: 0.78rem; }
.sa-onizleme th { position: sticky; top: 0; background: #f1f5f9; padding: 0.3rem; vertical-align: top; min-width: 7rem; z-index: 1; }
.sa-onizleme th .select-input, .sa-onizleme th .text-input { width: 100%; font-size: 0.72rem; margin-top: 2px; }
.sa-onizleme .sa-baslik-ham { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 11rem; }
.sa-onizleme th.sa-sutun-puan, .sa-onizleme th.sa-sutun-soru, .sa-onizleme th.sa-sutun-toplam { background: #dbeafe; }
.sa-onizleme th.sa-sutun-yoksay { background: #f8fafc; color: #898781; }
.sa-onizleme td { border-top: 1px solid #f0efec; padding: 1px; }
.sa-onizleme td input { width: 100%; min-width: 4rem; border: 1px solid transparent; padding: 0.2rem 0.3rem; font-size: 0.78rem; background: transparent; }
.sa-onizleme td input:focus { border-color: #2a78d6; background: #fff; outline: none; }
.sa-onizleme td input.hatali { background: #fde8e8; border-color: #e34948; }
.sa-onizleme td input.soluk { color: #b0afa8; }
.sa-onizleme .sa-sira { color: #898781; text-align: right; padding: 0 0.3rem; }
@media (max-width: 700px) { .sa-filtre .select-input, .sa-filtre .text-input { min-width: 6rem; } }
.sa-onizleme td input.bos-ocr { background: #fff6d6; border-color: #fab219; }
.ogr-ayr-sec { display: block; font-size: 0.84rem; padding: 0.35rem 0.4rem; border-radius: 6px; margin-bottom: 0.25rem; }
.ogr-ayr-sec:hover { background: #f1f5f9; }
.ogr-ayr-sec input[type=radio] { margin-right: 0.35rem; }

/* İSG katılım belgesi (isg_belgesi.js) */
.isg-aciklama { font-size: 0.82rem; color: #52514e; line-height: 1.45; margin: 0.2rem 0 0.8rem; }
.isg-izgara { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 0.8rem; margin-bottom: 0.8rem; }
.isg-kutu { border: 1px solid #e1e0d9; border-radius: 8px; padding: 0.7rem 0.85rem; margin-bottom: 0.8rem; background: #fff; }
.isg-kutu h4 { margin: 0 0 0.5rem; font-size: 0.92rem; }
.isg-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.45rem 0.6rem; }
.isg-form label { display: flex; flex-direction: column; gap: 2px; font-size: 0.72rem; font-weight: 700; color: #52514e; }
.isg-form .isg-genis { grid-column: span 2; }
.isg-form .isg-onay { flex-direction: row; align-items: center; gap: 0.35rem; font-weight: 600; }
.isg-satir { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.5rem; font-size: 0.82rem; }
.isg-kucuk { font-size: 0.76rem; color: #52514e; }
label.isg-kucuk { display: flex; flex-direction: column; gap: 2px; font-weight: 700; }
.isg-no { font-size: 1rem; color: #1c5cab; }
.isg-uyari { background: #fff6e5; border: 1px solid #f2c46d; border-radius: 6px; padding: 0.4rem 0.6rem; margin-top: 0.5rem; font-size: 0.8rem; }
.isg-tablo-sar { overflow-x: auto; margin-top: 0.5rem; }
.isg-tablo { border-collapse: collapse; width: 100%; font-size: 0.8rem; }
.isg-tablo th, .isg-tablo td { border-bottom: 1px solid #e1e0d9; padding: 0.3rem 0.4rem; text-align: left; vertical-align: middle; }
.isg-tablo th { background: #f5f5f2; font-size: 0.74rem; }
.isg-tablo tr.isg-secili > td { background: #eef5fd; }
.isg-tablo .text-input { font-size: 0.78rem; padding: 0.2rem 0.35rem; }
.isg-tablo .isg-alan { min-width: 12rem; }
.isg-ic { background: #fafaf8; }
.isg-eksik { color: #b42318; font-weight: 700; }
.isg-eksik-not { color: #b42318; font-size: 0.7rem; }
.isg-islem { border-top: 1px solid #e1e0d9; padding-top: 0.6rem; }
.isg-hazir { margin-top: 0.6rem; padding: 0.6rem 0.75rem; border-radius: 8px; background: #eef8f0; border: 1px solid #9fd3ab; font-size: 0.85rem; }
@media (max-width: 600px) { .isg-form .isg-genis { grid-column: auto; } }
.isg-ic td:nth-child(3) { min-width: 10rem; }

/* Öğretmene ders verme paneli (ders_atama.js daOgrVerHtml) */
.da-ogrver { margin: 0.4rem 0 0.6rem; padding: 0.55rem 0.7rem; border: 1px dashed var(--primary, #2563eb); border-radius: 8px; background: var(--bg-card, #fff); }
.da-ogrver-baslik { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline; margin-bottom: 0.3rem; }
.da-ogrver-satir { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0.4rem 0; font-size: 0.82rem; }
.da-ogrver-satir .text-input { min-width: 14rem; }
.da-ogrver details summary { cursor: pointer; font-size: 0.82rem; font-weight: 600; margin: 0.3rem 0; }
.da-ogrver-satir .da-ogrver-saat { width: 4.5rem; min-width: 0; flex: 0 0 auto; }
.da-ogrver-satir .da-ogrver-sube { width: auto; flex: 0 1 auto; }

/* ÖĞRETMEN TEBLİĞ-TEBELLÜĞ — A4'e 2 program (yazdir_teblig.js) */
.meb-handout-page.tb2-sayfa { padding: 6mm 9mm; display: flex; flex-direction: column; }
.tb2-yarim { height: 137mm; box-sizing: border-box; overflow: hidden; display: flex; flex-direction: column;
  font-family: "Times New Roman", Times, serif; font-size: 9pt; color: #000; }
.tb2-ust { text-align: center; line-height: 1.25; font-size: 9.5pt; }
.tb2-sayi { display: flex; justify-content: space-between; margin-top: 2mm; }
.tb2-konu { margin-top: 0.5mm; }
.tb2-metin { text-align: justify; margin: 1.5mm 0 2mm; line-height: 1.35; text-indent: 8mm; }
.tb2-cizelge { width: 100%; border-collapse: collapse; table-layout: fixed; font-family: Arial, sans-serif; font-size: 7.2pt; }
.tb2-cizelge th, .tb2-cizelge td { border: 1px solid #000; padding: 1px 2px; text-align: center; vertical-align: middle; height: 8.6mm; overflow: hidden; }
.tb2-cizelge thead th { height: auto; background: #eee; font-weight: 700; }
.tb2-cizelge th span, .tb2-cizelge td span { display: block; font-size: 6.2pt; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb2-cizelge td b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tb2-cizelge .tb2-gun { width: 17mm; text-align: left; padding-left: 3px; }
.tb2-bilgi { font-size: 7.8pt; margin-top: 1.4mm; line-height: 1.3; }
.tb2-ders { white-space: normal; }
.tb2-imza { display: flex; justify-content: space-between; margin-top: auto; padding-top: 2mm; text-align: center; font-size: 8.5pt; }
.tb2-imza > div { width: 46%; line-height: 1.35; }
.tb2-rol { font-weight: 700; text-decoration: underline; }
.tb2-not { font-size: 7.5pt; margin-top: 4mm; }
.tb2-kesim { text-align: center; color: #777; font-size: 8pt; height: 6mm; line-height: 6mm; overflow: hidden; white-space: nowrap; }
@media print {
  body.yazdir-resmi-program .meb-handout-page.tb2-sayfa { padding: 0 !important; min-height: 0 !important; }
  body.yazdir-resmi-program .tb2-yarim { height: 134mm; }
}

/* Zil çizelgesi (Ayarlar, zil_cizelgesi.js) */
.zil-alani { margin-top: 1rem; border: 1px solid var(--border-color, #e2e8f0); border-radius: 8px; padding: 0.75rem 0.9rem; }
.zil-baslik { display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: center; margin-bottom: 0.5rem; }
.zil-ipucu { font-size: 0.76rem; color: var(--text-muted, #64748b); flex: 1 1 18rem; }
.zil-tablo-sar { overflow-x: auto; }
.zil-tablo { border-collapse: collapse; font-size: 0.82rem; }
.zil-tablo th, .zil-tablo td { padding: 0.2rem 0.6rem; border-bottom: 1px solid var(--border-color, #e2e8f0); text-align: left; white-space: nowrap; }
.zil-tablo thead th { font-size: 0.75rem; color: var(--text-muted, #64748b); }
.zil-tablo .zil-saat { width: 7.2rem; padding: 0.15rem 0.3rem; font-size: 0.82rem; display: inline-block; }
.zil-tablo tr.zil-ogle td, .zil-tablo tr.zil-ogle th { background: #fef9c3; color: #713f12; font-weight: 600; }
.zil-uyari { color: #b42318; font-size: 0.8rem; margin-top: 0.4rem; }
.meb-zil-notu { font-size: 7.5pt; margin-top: 2px; }

/* Rehberlik & Kulüp (rehberlik_kulup.js) */
.rk-bilgi { font-size: 0.8rem; line-height: 1.45; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 0.55rem 0.75rem; margin: 0.4rem 0 0.6rem; }
.rk-baslik { font-size: 0.95rem; margin: 1rem 0 0.4rem; }
.rk-baslik small { font-weight: 400; color: var(--text-muted, #64748b); }
.rk-satir { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0.4rem 0; }
.rk-kucuk { font-size: 0.75rem; color: var(--text-muted, #64748b); }
.rk-yok { color: #b45309; font-weight: 600; }
.rk-uyari { color: #b42318; font-size: 0.75rem; }
.rk-cip { display: inline-flex; align-items: center; gap: 0.2rem; background: #eef2ff; color: #3730a3; border-radius: 999px; padding: 0.1rem 0.5rem; margin: 0.1rem 0.25rem 0.1rem 0; font-size: 0.78rem; }
.rk-cip button { border: 0; background: none; cursor: pointer; color: #6366f1; padding: 0; }
.rk-tablo td { vertical-align: top; }
