:root{
  --pri:#f6a42e; --pri-d:#e8941f; --pri-l:#fff8ed;
  --ink:#1e293b; --slate:#475569; --mut:#94a3b8; --line:#e5e8ec; --bg:#f4f6f8;
  --ok:#16a34a; --danger:#dc2626; --radius:14px; --shadow:0 8px 26px -16px rgba(30,41,59,.28);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
.page{padding:22px 18px 60px}
.muted{color:var(--slate)}.sm{font-size:12.5px}.nowrap{white-space:nowrap}.mt0{margin-top:0}
.right{text-align:right}.center{text-align:center}

/* Topbar */
.topbar{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.tb-inner{display:flex;align-items:center;justify-content:space-between;height:58px;gap:12px}
.tb-brand{font-weight:800;font-size:17px;display:flex;align-items:center;gap:8px}
.tb-logo{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--pri-l);font-size:15px}
.tb-right{display:flex;align-items:center;gap:10px}
.tb-user{text-align:right;line-height:1.15;font-size:14px}
.tb-user strong{display:block}.tb-meta{font-size:12px;color:var(--mut)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:10px;padding:9px 15px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap;font-family:inherit}
.btn-sm{padding:6px 11px;font-size:12.5px}
.btn-lg{padding:12px 20px;font-size:15px}
.btn-block{width:100%}
.btn-primary{background:var(--pri);color:#3b2500;box-shadow:0 8px 18px -8px rgba(246,164,46,.6)}
.btn-primary:hover{background:var(--pri-d)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--pri);color:var(--pri-d)}
.btn-danger{background:#fef2f2;color:var(--danger);border-color:#fecaca}
.btn-danger:hover{background:var(--danger);color:#fff}
.btn-wa{background:#22c55e;color:#04310f}
.btn-wa:hover{background:#16a34a}
.back{display:inline-block;color:var(--slate);font-weight:600;margin-bottom:14px}
.back:hover{color:var(--pri-d)}

/* Inputs */
.input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:14px;background:#fff;color:var(--ink);font-family:inherit}
.input:focus,select:focus,textarea:focus{outline:0;border-color:var(--pri);box-shadow:0 0 0 3px rgba(246,164,46,.15)}
.input-lg{padding:12px 13px;font-size:15.5px}
label{font-size:12.5px;font-weight:700;color:var(--slate)}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* Cards / panels */
.card,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:18px;margin-bottom:18px}
.panel-h{margin:0 0 14px;font-size:16px;padding-bottom:10px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.stu-card{padding:15px;display:flex;flex-direction:column;gap:4px}
.stu-card:hover{border-color:#fcd9a5;box-shadow:0 12px 28px -18px rgba(30,41,59,.3);transform:translateY(-2px);transition:.15s}
.stu-card h3{margin:0;font-size:16px}
.badge{display:inline-flex;align-items:center;gap:4px;background:var(--pri-l);color:var(--pri-d);border:1px solid #fcd9a5;border-radius:100px;padding:2px 10px;font-size:12px;font-weight:700}
.badge-soft{background:#f1f5f9;color:var(--slate);border-color:#e2e8f0}

/* Tables */
.table-scroll{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th,.tbl td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle;overflow-wrap:break-word;word-break:break-word}
.tbl th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--mut)}

/* Program haftalık grid */
.grid-table{width:100%;border-collapse:collapse;font-size:13px}
.grid-table th,.grid-table td{border:1px solid var(--line);padding:0}
.grid-table thead th{background:var(--pri-l);color:var(--pri-d);padding:8px 6px;font-size:12px;text-align:center}
.grid-table .time-col{background:#f8fafc;font-weight:700;text-align:center;padding:6px;white-space:nowrap;min-width:96px}
.grid-table td textarea,.grid-table .time-col input{width:100%;border:0;border-radius:0;padding:7px 6px;font-size:12.5px;resize:vertical;min-height:38px;background:transparent}
.grid-table td textarea:focus,.grid-table .time-col input:focus{box-shadow:inset 0 0 0 2px var(--pri);outline:0}
.grid-cell{white-space:pre-wrap;padding:7px 6px;min-height:34px;font-size:12.5px}

/* Görev listesi editör satırı */
.task-row{display:grid;grid-template-columns:130px 150px 1fr 34px;gap:8px;margin-bottom:8px;align-items:center}
.task-row .del{cursor:pointer;color:var(--danger);font-weight:800;text-align:center;user-select:none}

/* Alerts */
.alert{border-radius:11px;padding:11px 14px;margin-bottom:14px;font-size:14px;font-weight:600;border:1px solid}
.alert-success{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.alert-error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.alert-info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}

/* Auth */
.auth-page{background:linear-gradient(180deg,#f8fafc,#eef1f5)}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 24px;box-shadow:0 24px 60px -30px rgba(30,41,59,.5)}
.auth-brand{font-weight:800;font-size:19px;display:flex;align-items:center;gap:9px}
.auth-sub{color:var(--slate);font-size:13px;margin:6px 0 18px}

/* Empty */
.empty{text-align:center;padding:44px 20px;color:var(--slate);background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}
.empty-ic{font-size:38px;margin-bottom:6px}

/* Layout helpers */
.split{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.foot{border-top:1px solid var(--line);background:#fff;color:var(--mut);font-size:13px;text-align:center;padding:16px}
h1.pt{font-size:clamp(20px,3vw,26px);margin:2px 0 14px}

@media(max-width:820px){.split{grid-template-columns:1fr}.tb-user{display:none}.task-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}}
@media(max-width:520px){.row2,.row3{grid-template-columns:1fr}}

/* Program yazdırma başlığı (profesyonel) */
.pg-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;border-bottom:3px solid var(--pri)}
.pg-brand{display:flex;align-items:center;gap:14px}
.pg-logo{height:38px;width:auto;max-width:120px;object-fit:contain}
.pg-kurum{font-weight:800;font-size:19px;color:var(--ink);line-height:1.15}
.pg-tag{font-size:12.5px;color:var(--slate);margin-top:3px;letter-spacing:.3px}
.pg-date{font-size:12px;color:var(--slate);text-align:right;white-space:nowrap}
.pg-date b{display:block;font-size:15px;color:var(--pri-d);margin-top:2px}
.pg-title-row{margin:16px 0 18px}
.pg-title-row h1{margin:0;font-size:22px;color:var(--ink)}
.pg-student{margin-top:6px;color:var(--slate);font-size:14px}
.pg-student b{color:var(--ink)}
.pg-sec-h{margin:22px 0 8px;font-size:15px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:7px}
.pg-sec-h:before{content:"";width:4px;height:16px;background:var(--pri);border-radius:3px;display:inline-block}
.pg-note{margin-top:18px;padding:12px 14px;background:var(--pri-l);border:1px solid #fcd9a5;border-radius:10px;font-size:14px}
.pg-foot{display:none}

/* ===== Görüşme / Rehberlik Notları — ekran kartları (YALNIZ EKRAN, yazdırılmaz) ===== */
.note-list{display:flex;flex-direction:column;gap:10px}
.note-card{
  background:var(--pri-l);
  border:1px solid #fcd9a5;
  border-left:4px solid var(--pri);
  border-radius:var(--radius);
  padding:13px 15px;
  box-shadow:var(--shadow);
}
.note-body{
  white-space:pre-wrap;
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink);
  font-weight:500;
}
.note-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid #fcd9a5;
  font-size:12.5px;
  color:var(--slate);
}
.note-who{font-weight:700;color:var(--ink)}
.note-del{
  color:var(--danger);
  background:none;
  border:0;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:600;
  line-height:1;
  padding:2px 6px;
  border-radius:6px;
  white-space:nowrap;
}
.note-del:hover{background:#fef2f2}

/* ===== Öğrenci sayfası düzeni: sol notlar/SMS · sağ program kartları ===== */
.ogr-grid{display:grid;grid-template-columns:minmax(320px,380px) 1fr;gap:18px;align-items:start}
.prog-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.prog-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:106px;transition:.15s}
.prog-card:hover{border-color:#fcd9a5;transform:translateY(-2px);box-shadow:0 12px 26px -16px rgba(30,41,59,.32)}
.prog-card-title{font-weight:700;font-size:13.5px;color:var(--ink);line-height:1.3;word-break:break-word}
.prog-card-date{font-size:11.5px;color:var(--slate);margin-top:5px}
.prog-card-actions{display:flex;gap:6px}
.prog-card-actions .btn{flex:1;padding:5px 6px;font-size:12px}
@media(max-width:900px){.ogr-grid{grid-template-columns:1fr}}

/* ===== Anasayfa haftalık görüşme takvimi ===== */
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.cal-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.cal-range{color:var(--slate);font-size:13.5px}
.cal-nav{display:flex;gap:6px}
.appt-form{display:flex;flex-wrap:wrap;gap:8px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:14px}
.appt-form .input{flex:1;min-width:120px}
.appt-form select[name=student_id]{flex:2;min-width:190px}
.appt-form .btn{flex:0 0 auto}
/* Öğrenci arama (autocomplete) */
.stu-ac{position:relative;flex:2;min-width:200px}
.stu-ac .input{width:100%}
.ac-list{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:250px;overflow-y:auto}
.ac-item{padding:8px 11px;cursor:pointer;font-size:13.5px;display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid var(--line)}
.ac-item:last-child{border-bottom:0}
.ac-item:hover{background:var(--pri-l)}
.ac-cls{font-size:11.5px;color:var(--slate);white-space:nowrap}
.ac-empty{padding:9px 11px;color:var(--mut);font-size:13px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px}
.cal-day{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:118px}
.cal-day h4{margin:0 0 8px;font-size:12.5px;font-weight:800;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:4px;border-bottom:1px solid var(--line);padding-bottom:6px}
.cal-day h4 span{font-weight:600;color:var(--mut);font-size:11px}
.cal-empty{color:var(--mut);text-align:center;margin:12px 0;font-size:13px}
.appt{position:relative;background:#fff;border:1px solid var(--line);border-left:3px solid var(--pri);border-radius:9px;padding:7px 9px;margin-bottom:8px}
.appt.done{border-left-color:var(--ok);background:#f0fdf4}
.appt-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.appt-time{font-weight:800;font-size:12px;color:var(--pri-d)}
.appt.done .appt-time{color:#15803d}
.appt-badge{font-size:10px;font-weight:700;color:#15803d;background:#dcfce7;border-radius:100px;padding:1px 7px}
.appt-name{display:block;font-weight:700;font-size:13px;color:var(--ink);margin-top:2px;padding-right:16px}
a.appt-name:hover{color:var(--pri-d)}
.appt.done .appt-name{text-decoration:line-through;color:var(--slate)}
.appt-cls{font-size:11px;color:var(--slate)}
.appt-note{font-size:11.5px;color:var(--slate);margin-top:3px}
.appt-del-f{position:absolute;top:5px;right:5px;margin:0}
.appt-del{background:none;border:0;color:var(--mut);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px;border-radius:5px}
.appt-del:hover{background:#fef2f2;color:var(--danger)}
@media(max-width:900px){.cal-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.cal-grid{grid-template-columns:repeat(2,1fr)}}

/* Takvim: eylem çubuğu + yoklama + gün/saat düzenleme */
.cal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.appt-tools{display:flex;gap:3px;margin-top:7px;align-items:center}
.at-f{margin:0;display:inline}
.at-btn{width:25px;height:25px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;font-size:12px;line-height:1;color:var(--slate);padding:0;font-family:inherit}
.at-btn:hover{border-color:var(--pri);color:var(--pri-d)}
.at-on-yes{background:#dcfce7;border-color:#86efac;color:#15803d}
.at-on-no{background:#fef2f2;border-color:#fecaca;color:var(--danger)}
.at-del{margin-left:auto}
.at-del:hover{background:#fef2f2;border-color:#fecaca;color:var(--danger)}
.appt.att-yes{border-left-color:var(--ok)}
.appt.att-no{border-left-color:var(--danger)}
.att-b-yes{background:#dcfce7;color:#15803d}
.att-b-no{background:#fef2f2;color:var(--danger)}
.appt-edit{margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}
.appt-edit form{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.appt-edit .input{padding:5px 7px;font-size:12px}
.appt-edit select.input{flex:1;min-width:88px}
.cal-print-head{margin-bottom:10px;font-size:15px;color:var(--ink)}
.cph-sub{font-size:12px;color:var(--slate);margin-top:2px}

/* Marka: logo + slogan (ekran) */
.tb-logo-img{height:28px;width:auto;max-width:96px;object-fit:contain;border-radius:6px;background:#fff}
.foot-slogan{font-weight:700;color:var(--slate);margin-bottom:5px;font-size:13px}
.auth-slogan{font-size:12px;color:var(--slate);text-align:center;margin:4px 0 14px;line-height:1.4}
.auth-logo{display:block;max-height:56px;max-width:150px;margin:8px auto 2px;object-fit:contain}

/* Haftalık randevu listesi yazdırma (A4 yatay, 5mm) */
@media print{
  @page{size:A4 landscape;margin:5mm}
  html,body{background:#fff}
  .no-print,.topbar,.foot,.back{display:none !important}
  .print-only{display:block}
  .page{padding:0 !important}
  .panel{box-shadow:none !important;border:0 !important;padding:0 !important;margin:0 !important;background:transparent !important}
  .cal-head{display:none}
  .cal-grid{grid-template-columns:repeat(7,1fr) !important;gap:4px}
  .cal-day{background:#fbfbfc !important;border:1px solid #ccc;min-height:155px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cal-day h4{border-bottom:1px solid #999}
  .appt{border:1px solid #ddd;border-left:3px solid #f6a42e !important;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .appt.att-no{border-left-color:#dc2626 !important}
  .appt.att-yes{border-left-color:#16a34a !important}
  .appt-name,.appt-time{color:#1e293b !important}
}

/* ---- Yazdırma / PDF — YATAY A4, editoryal (temiz, bol beyaz alan, ince çizgiler) ---- */
.print-only{display:none}
@media print{
  /* A4 yatay; dört kenardan tam 5mm (kullanılabilir 287mm × 200mm) */
  @page{size:A4 landscape;margin:5mm}

  html,body{margin:0;padding:0;background:#fff}
  /* print-color-adjust kalıtsaldır: tüm renkli zeminleri baskıda korur */
  body{color:#1e293b;-webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* Tüm arayüzü gizle (butonlar, topbar, alt bilgi, paylaşım kutuları) */
  .no-print,.topbar,.foot,.btn,button{display:none !important}
  .print-only{display:block}

  /* Sayfa kabuğunu sıfırla → içerik tam genişlik, kenardan kenara */
  .page{padding:0 !important;margin:0 !important}
  .wrap{max-width:none !important;width:auto !important;margin:0 !important;padding:0 !important}
  .split{display:block !important}
  .panel,.card{box-shadow:none !important;border:0 !important;border-radius:0 !important;
    padding:0 !important;margin:0 !important;background:transparent !important}
  #printArea{box-shadow:none !important;border:0 !important;padding:0 !important;margin:0 !important;background:#fff !important}

  /* okunur temel tipografi + dikeyde sayfayı doldur (flex kolon, min sayfa yüksekliği) */
  #printArea{font-size:13px;line-height:1.4;display:flex;flex-direction:column;min-height:195mm}

  /* ---- Masthead: solda logo+kurum, sağda tarih, altta koyu ince çizgi ---- */
  .pg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
    padding:0 0 7px;margin:0;border-bottom:2px solid #1e293b}
  .pg-brand{display:flex;align-items:center;gap:12px}
  .pg-logo{height:30px;max-width:120px;width:auto;object-fit:contain}
  .pg-kurum{font-size:17px;font-weight:800;color:#111827;line-height:1.1;letter-spacing:-.01em}
  .pg-tag{margin-top:3px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:#64748b}
  .pg-date{text-align:right;font-size:8.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;
    color:#94a3b8;white-space:nowrap;line-height:1.2}
  .pg-date b{display:block;margin-top:2px;font-size:12.5px;font-weight:800;
    letter-spacing:normal;text-transform:none;color:#1e293b}

  /* ---- Başlık satırı: solda program adı (turuncu tik), sağda öğrenci/sınıf/dönem ---- */
  .pg-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;
    margin:11px 0 12px;padding-bottom:9px;border-bottom:1px solid #e2e6ea;break-after:avoid;page-break-after:avoid}
  .pg-title-row h1{margin:0;flex:0 1 auto;min-width:0;overflow-wrap:break-word;
    font-size:24px;font-weight:800;color:#111827;line-height:1.12;letter-spacing:-.02em;
    padding-left:11px;border-left:5px solid #f6a42e}
  .pg-student{margin:0;flex:0 1 auto;max-width:52%;text-align:right;
    font-size:12.5px;color:#475569;line-height:1.45}
  .pg-student b{color:#111827;font-weight:700}

  /* ---- Haftalık grid: tam genişlik, dar Saat sütunu + 7 eşit gün, sarmalı hücreler ---- */
  .table-scroll{overflow:visible !important;margin:0;flex:1 0 auto}   /* kalan dikey alanı kaplasın */
  .grid-table{width:100%;height:100%;table-layout:fixed;border-collapse:collapse;font-size:13.5px}
  .grid-table thead{display:table-header-group}                 /* sayfa taşarsa gün başlığı tekrarlar */
  .grid-table th,.grid-table td{border:1px solid #d6dbe1;padding:0;vertical-align:top}
  /* Satırlar dikeyde sayfayı doldursun: her satır en az bu yükseklikte; tablo height:100% ile
     boşluğu satırlara paylaştırır → az satırda bile tablo aşağı doğru genişler. */
  .grid-table tbody td{height:56px}
  .grid-table thead th{background:#fdf0d9 !important;color:#8f5a0a;border:1px solid #e6cfa8;
    padding:9px 5px;font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:center;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* Saat sütunu: "10.00 - 10.50" tek satıra sığacak genişlik (inline 96px + base min-width ezilir).
     table-layout:fixed olduğu için dar kalırsa nowrap metin taşıp gün sütununa biner → yeterli genişlik ver. */
  .grid-table thead th:first-child,.grid-table .time-col{
    width:112px !important;min-width:0 !important;max-width:112px !important}
  .grid-table .time-col{background:#f5f7f9 !important;font-weight:700;font-size:12px;color:#334155;
    text-align:center;padding:8px 6px;white-space:nowrap;vertical-align:middle;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .grid-cell{white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;hyphens:auto;
    padding:9px 9px;min-height:40px;font-size:13.5px;line-height:1.45;color:#1e293b}
  .grid-table tr{break-inside:avoid;page-break-inside:avoid}   /* satırı asla ortadan kesme */

  /* ---- Görev / Ödev bölümü ---- */
  .pg-sec-h{margin:14px 0 6px;font-size:13px;font-weight:800;color:#111827;
    display:flex;align-items:center;gap:6px;break-after:avoid;page-break-after:avoid}
  .pg-sec-h:before{content:"";width:4px;height:13px;background:#f6a42e;border-radius:2px;display:inline-block;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
  .tbl th,.tbl td{text-align:left;padding:7px 9px;border-bottom:1px solid #d6dbe1;vertical-align:top;color:#1e293b}
  .tbl th{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;
    border-bottom:1.5px solid #cbd2d9}
  .tbl tr{break-inside:avoid;page-break-inside:avoid}

  /* ---- Not: minimal, beyaz zemin + turuncu sol şerit ---- */
  .pg-note{margin:12px 0 0;padding:7px 0 7px 12px;border:0;border-left:3px solid #f6a42e;border-radius:0;
    background:#fff;font-size:12.5px;color:#1e293b;break-inside:avoid;page-break-inside:avoid;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}

  /* bölüm bütünlüğü */
  .pg-head{break-inside:avoid;break-after:avoid;page-break-inside:avoid}
  .empty{border:1px dashed #cbd2d9;color:#64748b;padding:26px 20px}

  /* ---- Alt bilgi (baskıda görünür) ---- */
  .pg-foot{display:block;margin-top:12px;padding-top:6px;border-top:1px solid #e2e6ea;
    font-size:8.5px;color:#94a3b8;text-align:center;letter-spacing:.02em}
}
/* ===== Giriş ekranı tasarım iyileştirmesi ===== */
.auth-card{padding-top:26px}
.auth-brand{justify-content:center;font-size:21px}
.auth-logo{display:block;max-height:62px;max-width:180px;margin:14px auto 8px;object-fit:contain}
.auth-sub{text-align:center;font-weight:800;color:var(--ink);font-size:15px;margin:2px 0 6px;letter-spacing:-.01em}
.auth-slogan{text-align:center;font-size:12px;color:var(--slate);line-height:1.5;margin:0 auto 16px;max-width:300px}

/* ===== Program Takip / Durum (tamamlandı yeşil / tamamlanmadı kırmızı) ===== */
/* İlerleme + açıklama şeridi */
.pg-status-bar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;margin:0 0 16px;padding:12px 15px;background:#f8fafc;border:1px solid var(--line);border-radius:12px}
.pg-prog{flex:1 1 240px;min-width:220px}
.pg-prog-track{height:12px;background:#e2e8f0;border-radius:100px;overflow:hidden}
.pg-prog-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:100px;transition:width .3s}
.pg-prog-label{margin-top:6px;font-size:13px;color:var(--slate)}
.pg-prog-label b{color:var(--ink);font-size:15px}
.pg-legend{display:flex;gap:16px;font-size:12.5px;font-weight:700;white-space:nowrap}
.pg-legend .lg-done{color:#15803d}
.pg-legend .lg-undone{color:#b91c1c}
/* Tıklanabilir grid hücreleri */
.grid-table.grid-status td{padding:0}
.sc-cell{position:relative;cursor:pointer;padding:7px 18px 7px 6px !important;min-height:38px;white-space:pre-wrap;font-size:12.5px;user-select:none;transition:background .12s}
.sc-cell:hover{filter:brightness(.97)}
.sc-cell:focus{outline:2px solid var(--pri);outline-offset:-2px}
.sc-done{background:#dcfce7;color:#14532d}
.sc-undone{background:#fef2f2;color:#7f1d1d}
.sc-mark{position:absolute;top:2px;right:4px;font-size:11px;font-weight:800;opacity:.7}
.sc-done .sc-mark{color:#15803d}
.sc-undone .sc-mark{color:#dc2626}
/* Görev/ödev durum etiketleri */
.sc-tag{display:inline-block;border:1px solid;border-radius:100px;padding:3px 11px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;line-height:1.3;white-space:nowrap}
.sc-tag-done{background:#dcfce7;color:#15803d;border-color:#86efac}
.sc-tag-undone{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.tbl-status .sc-done-row>td{background:#f0fdf4}
.tbl-status .sc-undone-row>td{background:#fffafa}

@media print{
  /* Renkli durum hücreleri baskıda korunur */
  .grid-table.grid-status .sc-cell{position:relative;padding:4px 12px 4px 6px !important}
  .grid-table.grid-status .sc-done{background:#dcfce7 !important;color:#14532d !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .grid-table.grid-status .sc-undone{background:#fde8e8 !important;color:#7f1d1d !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sc-mark{position:absolute;top:1px;right:3px;font-size:8.5px;font-weight:800}
  /* Görev etiketleri <button> olabilir; genel button gizlemesini ez */
  .sc-tag{display:inline-block !important;border:1px solid;border-radius:100px;padding:1px 7px;font-size:8.5px;font-weight:800;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sc-tag-done{background:#dcfce7 !important;color:#15803d !important;border-color:#86efac !important}
  .sc-tag-undone{background:#fde8e8 !important;color:#b91c1c !important;border-color:#f0b4b4 !important}
  .tbl-status .sc-done-row>td{background:#f2fdf5 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .tbl-status .sc-undone-row>td{background:#fef6f6 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* İlerleme şeridi baskıda görünür */
  .pg-status-bar{display:flex !important;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:16px;
    margin:9px 0 11px;padding:6px 10px;border:1px solid #cbd2d9;border-radius:6px;background:#fff !important;break-inside:avoid}
  .pg-prog{flex:1;min-width:0}
  .pg-prog-track{height:7px;background:#e5e7eb !important;border-radius:100px;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pg-prog-fill{height:100%;background:#16a34a !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pg-prog-label{margin-top:3px;font-size:9px;color:#475569}
  .pg-prog-label b{font-size:11px;color:#111827}
  .pg-legend{display:flex;gap:12px;font-size:9px;font-weight:800;white-space:nowrap}
  .pg-legend .lg-done{color:#15803d}
  .pg-legend .lg-undone{color:#b91c1c}
}

/* Gün başlığı altındaki tarih (ufak punto) */
.grid-table thead th .th-date{display:block;font-size:10px;font-weight:500;opacity:.75;margin-top:1px;letter-spacing:.02em}
@media print{
  .grid-table thead th .th-date{font-size:8px;font-weight:600;opacity:.8;margin-top:0}
}

/* SMS önizleme modalı */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}
.modal-overlay[hidden]{display:none}
.modal{background:#fff;border-radius:var(--radius);padding:20px;max-width:540px;width:100%;box-shadow:0 24px 60px -12px rgba(15,23,42,.45);max-height:90vh;overflow-y:auto}
.sms-preview{white-space:pre-wrap;overflow-wrap:break-word;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:13px;line-height:1.55;font-family:inherit;margin:0;max-height:300px;overflow-y:auto}
