:root{
  --bg:#0f1420; --panel:#171e2e; --panel2:#1e2740; --cizgi:#2a3450;
  --yazi:#e8edf7; --soluk:#95a1bd; --mavi:#3b82f6; --mavi2:#2563eb;
  --yesil:#22c55e; --kirmizi:#ef4444; --sari:#f59e0b; --mor:#8b5cf6;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--yazi)}

/* ---- Giriş ---- */
.giris-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.giris-kutu{background:var(--panel);padding:32px;border-radius:16px;width:340px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.giris-kutu h1{margin:0;font-size:26px}
.giris-kutu .alt{color:var(--soluk);margin:4px 0 20px}
.giris-kutu label{display:block;font-size:13px;color:var(--soluk);margin:12px 0 4px}
.giris-kutu input{width:100%;padding:11px;border-radius:9px;border:1px solid var(--cizgi);background:var(--panel2);color:var(--yazi);font-size:15px}
.giris-kutu button{width:100%;margin-top:18px;padding:12px;border:0;border-radius:9px;background:var(--mavi);color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.giris-kutu button:hover{background:var(--mavi2)}
.hata{background:rgba(239,68,68,.15);color:#fca5a5;padding:10px;border-radius:8px;font-size:14px;margin-bottom:8px}
.ipucu{margin-top:20px;font-size:13px;color:var(--soluk);border-top:1px solid var(--cizgi);padding-top:14px;line-height:1.7}
.ipucu code{background:var(--panel2);padding:2px 6px;border-radius:5px;color:var(--yazi)}

/* ---- Ders ekranı ---- */
.ust{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--cizgi)}
.ust h2{margin:0;font-size:17px}
.ust .rozet{font-size:12px;padding:3px 9px;border-radius:20px;background:var(--panel2);color:var(--soluk)}
.ust .rozet.canli{background:rgba(34,197,94,.18);color:#86efac}
.ust .sag{margin-left:auto;display:flex;gap:8px;align-items:center}
.dugme{padding:9px 14px;border:0;border-radius:8px;background:var(--panel2);color:var(--yazi);cursor:pointer;font-size:14px;font-weight:500}
.dugme:hover{background:var(--cizgi)}
.dugme.mavi{background:var(--mavi)} .dugme.mavi:hover{background:var(--mavi2)}
.dugme.yesil{background:var(--yesil);color:#052e16}
.dugme.kirmizi{background:var(--kirmizi)}
.dugme.sari{background:var(--sari);color:#3a2a00}
.dugme:disabled{opacity:.5;cursor:not-allowed}

.govde{display:flex;height:calc(100vh - 57px)}
.sahne{flex:1;padding:14px;overflow:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}

.tile{background:#000;border-radius:12px;overflow:hidden;position:relative;aspect-ratio:4/3;border:2px solid transparent}
.tile.konusan{border-color:var(--yesil)}
.tile.hoca-tile{border-color:var(--mavi)}
.tile video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.tile .yer-tutucu{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;background:linear-gradient(135deg,#1e2740,#2a3450);color:#4b587d}
.tile .isim{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.6);padding:3px 9px;border-radius:7px;font-size:13px;display:flex;gap:6px;align-items:center}
.tile .durum{position:absolute;right:8px;top:8px;display:flex;gap:5px}
.tile .durum span{width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;font-size:13px}
.tile .durum .kapali{background:rgba(239,68,68,.85)}
.tile .el{position:absolute;left:8px;top:8px;font-size:22px;animation:salla 1s infinite}
@keyframes salla{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}

.tile .kontrol{position:absolute;inset:0;background:rgba(10,14,25,.82);opacity:0;transition:.15s;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:8px}
.tile:hover .kontrol{opacity:1}
.tile .kontrol .satir{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.tile .kontrol button{padding:6px 10px;font-size:12px;border:0;border-radius:7px;cursor:pointer;background:var(--panel2);color:var(--yazi)}
.tile .kontrol button:hover{background:var(--cizgi)}

/* ---- Sohbet ---- */
.sohbet{width:320px;background:var(--panel);border-left:1px solid var(--cizgi);display:flex;flex-direction:column}
.sohbet h3{margin:0;padding:12px 14px;font-size:15px;border-bottom:1px solid var(--cizgi)}
.sohbet .hedef{padding:8px 12px;border-bottom:1px solid var(--cizgi);display:flex;gap:6px;align-items:center;font-size:13px}
.sohbet .hedef select{flex:1;padding:6px;border-radius:7px;background:var(--panel2);color:var(--yazi);border:1px solid var(--cizgi)}
.mesajlar{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:9px}
.msj{background:var(--panel2);padding:8px 11px;border-radius:10px;font-size:14px;max-width:90%}
.msj.benim{align-self:flex-end;background:var(--mavi2)}
.msj .kim{font-size:11px;color:var(--soluk);margin-bottom:2px;display:flex;gap:6px}
.msj.benim .kim{color:#cfe0ff}
.msj .etiket{font-size:10px;padding:1px 6px;border-radius:10px;background:rgba(0,0,0,.3)}
.msj .etiket.ozel{background:rgba(139,92,246,.4)} .msj .etiket.grup{background:rgba(245,158,11,.4)}
.yazma{display:flex;gap:6px;padding:10px;border-top:1px solid var(--cizgi)}
.yazma input{flex:1;padding:9px;border-radius:8px;border:1px solid var(--cizgi);background:var(--panel2);color:var(--yazi)}
.yazma button{padding:9px 14px;border:0;border-radius:8px;background:var(--mavi);color:#fff;cursor:pointer}

/* alt araç çubuğu (öğrenci) */
.arac{display:flex;gap:8px;justify-content:center;padding:10px;background:var(--panel);border-top:1px solid var(--cizgi)}

.bildirim{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50}
.bildirim .b{background:var(--panel2);border:1px solid var(--cizgi);padding:10px 14px;border-radius:10px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.4);animation:gir .2s}
@keyframes gir{from{transform:translateY(10px);opacity:0}}

.grid-multi{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}

/* ---- Sunum / ekran paylaşımı ---- */
.sunum{flex-direction:column;background:#000;border-radius:12px;overflow:hidden;margin-bottom:14px;border:2px solid var(--mor)}
.sunum-ust{padding:6px 12px;background:var(--panel2);font-size:13px;color:var(--yazi);display:flex;align-items:center;justify-content:space-between}
.sunum-nav{display:flex;gap:6px;align-items:center}
.sunum-nav button{padding:3px 10px;border:0;border-radius:6px;background:var(--cizgi);color:var(--yazi);cursor:pointer}
#sunumVideo,#sunumResim{width:100%;max-height:62vh;object-fit:contain;background:#000;display:block}
#sunumCanvas{max-width:100%;max-height:62vh;margin:0 auto;display:block;background:#fff}

.sunum-panel{background:var(--panel);border:1px solid var(--cizgi);border-radius:12px;padding:14px;margin-bottom:14px;max-width:520px}
.sp-ust{font-size:15px;font-weight:600;margin-bottom:8px;overflow:hidden}
.sunum-oge{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--cizgi);font-size:14px}
.sunum-oge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Beyaz tahta ---- */
#tahtaCanvas{width:100%;max-height:62vh;background:#fff;display:block;cursor:crosshair;touch-action:none}
.th-arac{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.th-arac button{padding:3px 8px;border:0;border-radius:6px;background:var(--cizgi);color:var(--yazi);cursor:pointer;font-size:12px}
.th-renk{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;display:inline-block}
.th-renk.secili{border-color:#fff;box-shadow:0 0 0 2px var(--mavi)}

/* ---- Mobil sohbet düğmesi ---- */
.sohbet-dugme{display:none}
@media(max-width:820px){
  .sohbet-dugme{display:inline-block}
  .grid-multi{grid-template-columns:1fr 1fr}
  .sohbet{position:fixed;top:0;right:0;height:100%;width:88%;max-width:340px;z-index:60;
          transform:translateX(100%);transition:transform .2s;border-left:1px solid var(--cizgi)}
  .sohbet.acik{transform:translateX(0)}
  .ust h2{font-size:15px}
  .arac{flex-wrap:wrap}
}
@media(max-width:480px){ .grid-multi{grid-template-columns:1fr} }
