:root {
  --zemin: #f4f5fb;
  --kart: #ffffff;
  --cizgi: #e7e8f2;
  --yazi: #1f2340;
  --soluk: #6b7090;
  --lacivert: #1b1f3b;
  --lacivert-2: #262b52;
  --mor: #6d4aff;
  --mor-acik: #efeaff;
  --mor-koyu: #4c2fd1;
  --mavi: #2563eb;
  --yesil: #16a34a;
  --yesil-acik: #e8f8ee;
  --turuncu: #d97706;
  --turuncu-acik: #fff4e0;
  --kirmizi: #dc2626;
  --kirmizi-acik: #fdecec;
  --golge: 0 1px 2px rgba(20, 22, 60, .04), 0 4px 16px rgba(20, 22, 60, .05);
  --yaricap: 16px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--zemin); color: var(--yazi);
  font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;
}
a { color: var(--mor); text-decoration: none; }
h1, h2, h3 { margin: 0 0 .4em; line-height: 1.25; }
h2 { font-size: 1.2rem; }
code { font-family: ui-monospace, Menlo, monospace; }
.soluk { color: var(--soluk); }
.kucuk { font-size: .82rem; }
.orta { text-align: center; }
.ust-bosluk { margin-top: 18px; }
.es-genislik { width: 100%; }

/* ---------- form öğeleri ---------- */
label { display: block; font-size: .85rem; font-weight: 600; color: #3b4064; margin-bottom: 12px; }
label.yatay { display: flex; gap: 8px; align-items: center; font-weight: 500; }
input, select, textarea {
  display: block; width: 100%; margin-top: 5px; padding: 10px 12px;
  border: 1px solid var(--cizgi); border-radius: 10px; background: #fff; color: var(--yazi);
  font: inherit; font-weight: 400;
}
input[type=checkbox], input[type=radio] { display: inline-block; width: auto; margin: 0; accent-color: var(--mor); }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--mor-acik); border-color: var(--mor); }
input.saat { width: 104px; display: inline-block; padding: 6px 8px; margin: 0; }
select.kod-sec { width: auto; display: inline-block; padding: 6px 8px; margin: 0; font-size: .85rem; }
.dugme {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 18px; border: 0; border-radius: 10px; cursor: pointer;
  background: linear-gradient(135deg, var(--mor), #8b5cf6); color: #fff; font: inherit; font-weight: 600;
  box-shadow: 0 2px 8px rgba(109, 74, 255, .25);
}
.dugme:hover { filter: brightness(1.05); }
.dugme.ikincil { background: var(--mor-acik); color: var(--mor-koyu); box-shadow: none; }
.dugme.tehlike { background: var(--kirmizi-acik); color: var(--kirmizi); box-shadow: none; }
.dugme.tam { width: 100%; padding: 13px; font-size: 1rem; }
.kucuk-dugme { padding: 6px 12px; font-size: .82rem; }
.dugme-grup { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.dugme-grup form { margin: 0; }

.bildirim { padding: 12px 16px; border-radius: 12px; margin-bottom: 14px; font-size: .92rem; }
.bildirim.tamam { background: var(--yesil-acik); color: #166534; }
.bildirim.hata { background: var(--kirmizi-acik); color: #991b1b; }
.bildirim.bilgi { background: var(--mor-acik); color: var(--mor-koyu); }

.kart { background: var(--kart); border-radius: var(--yaricap); box-shadow: var(--golge); padding: 20px; margin-bottom: 18px; color: inherit; }
a.kart { display: block; }
.kart-baslik { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-weight: 700; margin-bottom: 12px; }
.kart-baslik a { font-weight: 600; font-size: .85rem; }
.bos-durum { color: var(--soluk); text-align: center; padding: 18px 0; margin: 0; }
.liste-satir { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--cizgi); color: inherit; }
.liste-satir:last-child { border-bottom: 0; }
.sayac { background: var(--mor-acik); color: var(--mor-koyu); border-radius: 99px; padding: 1px 9px; font-size: .78rem; font-weight: 700; }
.yeni { background: var(--kirmizi); color: #fff; border-radius: 6px; padding: 1px 6px; font-size: .68rem; font-weight: 700; }
.mini-rozet { display: inline-block; background: #eef0f7; color: var(--soluk); border-radius: 6px; padding: 0 6px; font-size: .72rem; font-weight: 600; }
.mini-rozet.kirmizi { background: var(--kirmizi-acik); color: var(--kirmizi); }
.mini-rozet.turuncu { background: var(--turuncu-acik); color: var(--turuncu); }
.durum { display: inline-block; border-radius: 99px; padding: 2px 10px; font-size: .75rem; font-weight: 700; background: #eef0f7; color: var(--soluk); white-space: nowrap; }
.durum.onay { background: var(--yesil-acik); color: var(--yesil); }
.durum.bekliyor { background: var(--turuncu-acik); color: var(--turuncu); }
.durum.red { background: var(--kirmizi-acik); color: var(--kirmizi); }
.gun-rozet { display: inline-block; background: var(--mor-acik); color: var(--mor-koyu); border-radius: 8px; padding: 2px 9px; margin: 2px 4px 2px 0; font-size: .82rem; font-weight: 700; }
.cubuk { height: 7px; background: #eef0f7; border-radius: 99px; overflow: hidden; margin-top: 5px; }
.cubuk span { display: block; height: 100%; background: linear-gradient(90deg, var(--mor), #a78bfa); border-radius: 99px; }
.kod { display: inline-block; min-width: 24px; text-align: center; border-radius: 6px; padding: 1px 5px; font-weight: 800; font-size: .8rem; }
.kod.g { background: var(--yesil-acik); color: var(--yesil); }
.kod.k { background: #fef9c3; color: #a16207; }
.kod.e { background: #e0f2fe; color: #0369a1; }
.kod.i, .kod.r { background: var(--mor-acik); color: var(--mor-koyu); }
.kod.d { background: var(--kirmizi-acik); color: var(--kirmizi); }
.kod.bos { color: #c0c3d6; }
.kopyala { color: var(--mor); cursor: pointer; border-bottom: 1px dashed currentColor; word-break: break-all; }
.kopyala.kopyalandi { color: var(--yesil); }
.geri { display: inline-block; margin-bottom: 12px; font-weight: 600; font-size: .9rem; }
details summary { cursor: pointer; margin-top: 8px; }

/* ---------- yönetim kabuğu ---------- */
.kabuk { display: flex; min-height: 100vh; }
.yan {
  width: 250px; flex: none; background: linear-gradient(180deg, var(--lacivert), #171a33); color: #c9cbe3;
  padding: 22px 14px; position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.marka { padding: 0 8px 18px; }
.marka-ad { color: #fff; font-size: 1.25rem; font-weight: 800; letter-spacing: -.01em; }
.marka-ad.koyu { color: var(--yazi); }
.marka-alt { font-size: .78rem; color: #9ea2c8; }
.marka-rozet { display: inline-block; margin-top: 6px; background: rgba(255,255,255,.08); border-radius: 6px; padding: 1px 8px; font-size: .7rem; color: #b8bbdd; }
.menu-baslik { font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: #6f74a3; margin: 18px 10px 6px; font-weight: 700; }
.yan nav a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; color: #d5d7ee; font-size: .9rem; font-weight: 500; }
.yan nav a:hover { background: rgba(255,255,255,.05); }
.yan nav a.aktif { background: rgba(255,255,255,.1); color: #fff; font-weight: 700; }
.yan .ikon { width: 22px; height: 22px; border-radius: 6px; background: rgba(255,255,255,.08); display: grid; place-items: center; font-size: .8rem; }
.yan .sayac { margin-left: auto; background: var(--turuncu); color: #fff; }
.ana { flex: 1; min-width: 0; padding: 22px 32px 40px; }
.ust { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.ust h1 { font-size: 1.6rem; color: var(--mor-koyu); margin: 0; letter-spacing: -.02em; }
.ust-alt { color: var(--soluk); font-size: .88rem; }
.kullanici { margin-left: auto; display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 99px; padding: 5px 14px 5px 5px; box-shadow: var(--golge); font-size: .88rem; white-space: nowrap; }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--mor); color: #fff; display: grid; place-items: center; font-weight: 700; }
.rozet { background: #fef3c7; color: #b45309; border-radius: 6px; padding: 0 6px; font-size: .68rem; font-weight: 800; }
.cikis { color: var(--kirmizi); font-weight: 600; }
.menu-ac { display: none; border: 0; background: #fff; border-radius: 10px; width: 40px; height: 40px; font-size: 1.2rem; box-shadow: var(--golge); cursor: pointer; }

.hos {
  display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
  background: linear-gradient(120deg, #1e1b4b 0%, #3b2a9a 45%, #7c4dff 100%); color: #fff;
  border-radius: 20px; padding: 26px 30px; margin-bottom: 20px; box-shadow: 0 10px 30px rgba(76, 47, 209, .25);
}
.hos h2 { font-size: 1.35rem; margin-bottom: 4px; }
.hos p { margin: 0; color: #d9d5ff; }
.hos-dugmeler { display: flex; gap: 10px; flex-wrap: wrap; }
.hos-dugmeler a { background: rgba(255,255,255,.14); color: #fff; padding: 10px 16px; border-radius: 12px; font-weight: 600; font-size: .9rem; backdrop-filter: blur(4px); }
.hos-dugmeler a:hover { background: rgba(255,255,255,.22); }

.istatistik { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 20px; }
.ist { background: #fff; border-radius: var(--yaricap); padding: 16px 18px; box-shadow: var(--golge); color: inherit; display: block; }
.ist-etiket { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--soluk); }
.ist-sayi { font-size: 2rem; font-weight: 800; line-height: 1.15; margin: 4px 0 2px; letter-spacing: -.02em; }
.ist-sayi small { font-size: 1rem; color: var(--soluk); font-weight: 600; }
.ist-sayi.kucuk-sayi { font-size: 1.15rem; padding: 8px 0 4px; }
.ist-alt { font-size: .78rem; color: var(--soluk); }
.mor { color: var(--mor); } .mavi { color: var(--mavi); } .yesil { color: var(--yesil); } .turuncu { color: var(--turuncu); } .kirmizi { color: var(--kirmizi); }
.kirmizi-yazi { color: var(--kirmizi); font-weight: 700; }

.izgara-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.izgara-2 > .kart, .izgara-2 > div > .kart { margin-bottom: 18px; }
.form-izgara { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0 14px; align-items: end; }
.form-dikey > label { max-width: 640px; }
.arac-cubugu { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.arac-cubugu form { margin: 0; }
.arac-cubugu input[type=date] { margin: 0; width: auto; }
input.ara { max-width: 320px; margin: 0; }
.tablo-kart input.ara { margin-bottom: 12px; }
.tablo-kart { padding: 8px 8px 4px; overflow-x: auto; }
.tablo-kart > input.ara { margin: 10px 10px 12px; }
.tablo { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tablo th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--soluk); padding: 10px 12px; border-bottom: 1px solid var(--cizgi); white-space: nowrap; }
.tablo td { padding: 10px 12px; border-bottom: 1px solid #f0f1f7; vertical-align: middle; }
.tablo.sik td, .tablo.sik th { padding: 6px 8px; }
.tablo tr:last-child td { border-bottom: 0; }
.tablo tr.tikla { cursor: pointer; }
.tablo tr.tikla:hover td { background: #faf9ff; }
.tablo tr.pasif td { opacity: .45; }
.tablo tr.eksik td { background: #fff8ef; }
.tablo tr.toplam td { font-weight: 800; border-top: 2px solid var(--cizgi); }
.tablo td.isi { background: rgba(109, 74, 255, calc(var(--o) * .22)); font-weight: 700; }
.tablo-alt { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px; flex-wrap: wrap; }
.nokta { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--mor); }
.dagilim { display: grid; grid-template-columns: 90px 1fr 34px; gap: 10px; align-items: center; font-size: .88rem; margin-bottom: 6px; }
.dagilim.genis { grid-template-columns: minmax(120px, 40%) 1fr 34px 60px; }
.dagilim .cubuk { margin: 0; height: 10px; }
.soru-ozet { display: block; color: inherit; padding: 8px 0; border-bottom: 1px solid var(--cizgi); }
.so-ust { display: flex; justify-content: space-between; gap: 10px; font-size: .9rem; }
.sutun-sirasi { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; counter-reset: s; }
.sutun-sirasi span { background: var(--mor-acik); color: var(--mor-koyu); padding: 3px 10px; border-radius: 8px; font-size: .8rem; font-weight: 700; counter-increment: s; }
.sutun-sirasi span::before { content: counter(s) ". "; opacity: .6; }
.ayrac { height: 1px; background: var(--cizgi); margin: 14px 0; }
.satir-arasi { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.kod-goster { background: var(--mor-acik); color: var(--mor-koyu); padding: 2px 8px; border-radius: 6px; font-size: 1rem; font-weight: 800; letter-spacing: .1em; }
.gun-duzen { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--cizgi); }
.gun-duzen b { width: 110px; }
.mini-gun span { display: inline-block; padding: 4px 9px; border-radius: 8px; border: 1px solid var(--cizgi); font-size: .8rem; cursor: pointer; }
.mini-gun input { display: none; }
.mini-gun input:checked + span { background: var(--mor); border-color: var(--mor); color: #fff; }
.mini-gun { margin: 0; }
.elle-ekle { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.elle-ekle input, .elle-ekle select { width: auto; margin: 0; }
.cevap-satir { padding: 8px 0; border-bottom: 1px solid var(--cizgi); }
.cevap-satir:last-child { border-bottom: 0; }
.cihaz { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--cizgi); }
.adimlar { padding-left: 20px; margin: 0; } .adimlar li { margin-bottom: 8px; }
.ay-gezgin { display: flex; align-items: center; gap: 12px; }
.ay-gezgin a { width: 34px; height: 34px; display: grid; place-items: center; background: #fff; border-radius: 10px; box-shadow: var(--golge); font-size: 1.2rem; font-weight: 700; }
.kucuk-gezgin a { width: 26px; height: 26px; font-size: 1rem; }

.takvim { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.tk-bas { font-size: .7rem; font-weight: 700; color: var(--soluk); text-align: center; }
.tk-gun { position: relative; aspect-ratio: 1.3; display: grid; place-items: center; border-radius: 8px; background: #f7f7fb; font-size: .85rem; font-weight: 600; color: #9aa0bf; }
.tk-gun i { position: absolute; right: 4px; bottom: 1px; font-style: normal; font-size: .62rem; font-weight: 800; }
.tk-gun.bugun { outline: 2px solid var(--mor); }
.bekl { background: #fff7d6 !important; color: #92400e !important; }
.eksik { background: #ffe4cc !important; color: #c2410c !important; }
.k-g { background: var(--yesil-acik) !important; color: var(--yesil) !important; }
.k-k { background: #fef9c3 !important; color: #a16207 !important; }
.k-e { background: #e0f2fe !important; color: #0369a1 !important; }
.k-i, .k-r { background: var(--mor-acik) !important; color: var(--mor-koyu) !important; }
.k-d { background: var(--kirmizi-acik) !important; color: var(--kirmizi) !important; }
.tatil { background: #eceef5 !important; color: #b3b7cc !important; text-decoration: line-through; }
.tk-aciklama { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .74rem; color: var(--soluk); margin-top: 10px; align-items: center; }
.tk-aciklama span { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: -6px; border: 1px solid rgba(0,0,0,.12); vertical-align: -2px; }

.kaydir { overflow-x: auto; }
.cizelge { border-collapse: separate; border-spacing: 2px; font-size: .78rem; }
.cizelge th { font-weight: 700; color: var(--soluk); min-width: 28px; font-size: .68rem; line-height: 1.1; padding: 4px 2px; }
.cizelge th.hs { color: #c3c6da; }
.cizelge td { text-align: center; border-radius: 5px; min-width: 26px; height: 26px; font-weight: 800; background: #fafafd; }
.cizelge td.yapis, .cizelge th.yapis { position: sticky; left: 0; background: #fff; text-align: left; white-space: nowrap; padding-right: 12px; font-weight: 600; z-index: 1; }

/* ---------- giriş sayfası ---------- */
.giris-zemin { background: linear-gradient(135deg, #1e1b4b, #4c2fd1 60%, #8b5cf6); }
.giris-orta { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.giris-kart { max-width: 400px; width: 100%; margin: 0 auto; }
.giris-ikon { width: 52px; height: 52px; border-radius: 14px; background: var(--mor-acik); color: var(--mor); display: grid; place-items: center; font-size: 1.5rem; margin-bottom: 12px; }

/* ---------- öğrenci (telefon) ---------- */
body.ogrenci { background: var(--zemin); }
.tel { max-width: 560px; margin: 0 auto; min-height: 100vh; padding-bottom: 90px; }
.tel-ust {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  background: linear-gradient(120deg, #1e1b4b, #3b2a9a 60%, #6d4aff); color: #fff;
  padding: calc(16px + env(safe-area-inset-top)) 18px 26px; border-radius: 0 0 24px 24px;
}
.tel-merhaba { font-weight: 800; font-size: 1.1rem; }
.tel-alt { font-size: .8rem; color: #cfcaff; }
.tel-cikis { color: #fff; background: rgba(255,255,255,.14); padding: 6px 12px; border-radius: 10px; font-size: .82rem; font-weight: 600; }
.tel-icerik { padding: 16px; margin-top: -14px; }
.tel-baslik { color: var(--mor-koyu); margin: 4px 2px 12px; }
.kahraman { background: #fff; border-radius: 18px; padding: 18px; box-shadow: var(--golge); margin-bottom: 14px; border-left: 5px solid var(--mor); }
.kahraman-ust { font-size: .78rem; font-weight: 700; color: var(--soluk); text-transform: uppercase; letter-spacing: .05em; }
.kahraman-buyuk { font-size: 1.3rem; font-weight: 800; color: var(--mor-koyu); margin: 4px 0; }
.uyari-kart { background: var(--turuncu-acik); color: #92400e; }
.bilgi-kart { background: #eef0ff; color: #3b2a99; }
.bilgi-kart b { color: #3b2a99; }
.kutucuklar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.kutucuk { background: #fff; border-radius: 16px; padding: 14px; box-shadow: var(--golge); }
.k-etiket { font-size: .7rem; font-weight: 800; color: var(--soluk); text-transform: uppercase; letter-spacing: .05em; }
.k-sayi { font-size: 1.8rem; font-weight: 800; }
.k-sayi small { font-size: .95rem; color: var(--soluk); }
.alt-menu {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; display: flex; justify-content: center;
  background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-top: 1px solid var(--cizgi);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
}
.alt-menu a { flex: 1; max-width: 112px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: .7rem; color: var(--soluk); font-weight: 600; padding: 4px 0; }
.alt-menu .ikon { position: relative; width: 38px; height: 28px; border-radius: 10px; display: grid; place-items: center; font-size: 1.05rem; }
.alt-menu .ikon i { position: absolute; top: -4px; right: -2px; background: var(--kirmizi); color: #fff; font-style: normal; font-size: .62rem; min-width: 16px; height: 16px; border-radius: 99px; display: grid; place-items: center; padding: 0 4px; }
.alt-menu a.aktif { color: var(--mor-koyu); }
.alt-menu a.aktif .ikon { background: var(--mor-acik); }
.gun-secici { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 10px; }
.gun-kutu { display: flex; align-items: center; gap: 12px; padding: 14px; border: 2px solid var(--cizgi); border-radius: 14px; margin: 0; cursor: pointer; font-size: 1rem; }
.gun-kutu input { width: 20px; height: 20px; }
.gun-kutu .gk-ad { flex: 1; font-weight: 700; color: var(--yazi); }
.gun-kutu .gk-alt { font-size: .78rem; color: var(--soluk); font-weight: 500; }
.gun-kutu:has(input:checked) { border-color: var(--mor); background: var(--mor-acik); }
.gun-kutu.dolu { opacity: .45; cursor: not-allowed; }
.gun-durum { margin-bottom: 10px; min-height: 1.2em; }
.onay { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; font-size: .85rem; background: #f7f7fb; padding: 10px; border-radius: 10px; }
.onay input { margin-top: 3px; }
.yoklama-satir { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--cizgi); }
.yoklama-satir:last-child { border-bottom: 0; }
.yoklama-satir.eksik { background: none !important; }
.yoklama-satir.eksik b { color: #c2410c; }
.yoklama-satir .sag { text-align: right; white-space: nowrap; font-size: .85rem; }
.sonuc-kart { text-align: center; padding: 34px 20px; }
.sonuc-ikon { width: 74px; height: 74px; border-radius: 50%; margin: 0 auto 14px; display: grid; place-items: center; font-size: 2.2rem; font-weight: 800; background: var(--yesil-acik); color: var(--yesil); }
.sonuc-kart.cikis .sonuc-ikon { background: var(--mor-acik); color: var(--mor); }
.sonuc-kart.bilgi .sonuc-ikon { background: #e0f2fe; color: #0369a1; }
.sonuc-kart.hata-kart .sonuc-ikon { background: var(--kirmizi-acik); color: var(--kirmizi); }
.sonuc-kart h2 { font-size: 1.6rem; }
.secenek { display: flex; gap: 12px; align-items: center; padding: 13px 14px; border: 2px solid var(--cizgi); border-radius: 12px; margin-bottom: 8px; font-weight: 500; font-size: .95rem; cursor: pointer; color: var(--yazi); }
.secenek:has(input:checked) { border-color: var(--mor); background: var(--mor-acik); }
.secenek input { width: 18px; height: 18px; }
.soru-aciklama { white-space: normal; }
.soru-form textarea, .soru-form > input { margin-bottom: 12px; }
.sirala { list-style: none; padding: 0; margin: 0 0 12px; }
.sirala li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 2px solid var(--cizgi); border-radius: 12px; margin-bottom: 8px; background: #fff; transition: transform .15s; }
.sira-no { width: 26px; height: 26px; border-radius: 50%; background: var(--mor); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .85rem; flex: none; }
.sira-ad { flex: 1; font-weight: 600; }
.sirala button { border: 0; background: var(--mor-acik); color: var(--mor-koyu); width: 36px; height: 36px; border-radius: 10px; font-size: .9rem; cursor: pointer; }
.sirala li:first-child .yukari, .sirala li:last-child .asagi { visibility: hidden; }
.yeni-kart { border-left: 4px solid var(--kirmizi); }
.duyuru-metin { margin-bottom: 8px; }
.soru-kart .kart-baslik { margin-bottom: 4px; }

.alan-baslik { font-size: .85rem; font-weight: 600; color: #3b4064; margin: 4px 0 6px; }
.secim-izgara { display: grid; grid-template-columns: 1fr 1fr; gap: 0 8px; margin-bottom: 8px; }
.secim-izgara .secenek { margin-bottom: 8px; padding: 11px 12px; }
.bilgi-satir { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--cizgi); font-size: .92rem; }
.bilgi-satir:last-child { border-bottom: 0; }
.bilgi-satir span { color: var(--soluk); }
.bilgi-satir b { text-align: right; word-break: break-all; }
.kart-baslik > span:last-child { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.kart-baslik .durum { white-space: nowrap; }

/* ---------- tablet ---------- */
body.tablet-govde { background: linear-gradient(135deg, #1e1b4b, #3b2a9a 55%, #6d4aff); color: #fff; overflow: hidden; }
.tablet { height: 100vh; display: flex; flex-direction: column; padding: 3vh 4vw; }
.tablet header, .tablet footer { display: flex; justify-content: space-between; align-items: center; }
.t-baslik { font-size: clamp(1.2rem, 2.6vw, 2rem); font-weight: 800; }
.t-alt { color: #cfcaff; font-size: clamp(.9rem, 1.5vw, 1.2rem); }
.t-saat { font-size: clamp(2rem, 6vw, 4.5rem); font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.tablet main { flex: 1; display: flex; align-items: center; justify-content: center; gap: 5vw; min-height: 0; }
.t-qr-kutu { background: #fff; border-radius: 28px; padding: 2.4vh; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
#qr { width: min(62vh, 46vw); height: min(62vh, 46vw); }
#qr svg { width: 100%; height: 100%; display: block; }
.t-baglanti { width: 100%; height: 100%; display: grid; place-items: center; color: var(--kirmizi); font-weight: 800; font-size: 1.4rem; }
.t-geri { height: 8px; background: #ece9ff; border-radius: 99px; overflow: hidden; margin-top: 1.6vh; }
.t-geri span { display: block; height: 100%; background: var(--mor); border-radius: 99px; transition: width .25s linear; }
.t-yan { max-width: 36vw; }
.t-yan h2 { font-size: clamp(1.3rem, 2.8vw, 2.3rem); }
.t-yan ol { font-size: clamp(1rem, 2vw, 1.5rem); padding-left: 1.3em; }
.t-yan ol li { margin-bottom: .4em; }
.t-not { color: #cfcaff; font-size: clamp(.85rem, 1.3vw, 1.05rem); }
.t-son div { background: rgba(255,255,255,.1); border-radius: 12px; padding: 8px 14px; margin-top: 8px; font-size: clamp(.9rem, 1.5vw, 1.15rem); }
.t-son div.giris b { color: #86efac; } .t-son div.cikis b { color: #c4b5fd; }
.tablet footer { color: #cfcaff; font-size: clamp(.9rem, 1.4vw, 1.1rem); }
.tablet-hata { padding: 10vh 8vw; }

/* ---------- dar ekran ---------- */
@media (max-width: 960px) {
  .izgara-2 { grid-template-columns: 1fr; }
  .yan { position: fixed; left: 0; top: 0; z-index: 30; transform: translateX(-100%); transition: transform .2s; box-shadow: 0 0 40px rgba(0,0,0,.3); }
  .yan.acik { transform: none; }
  .menu-ac { display: block; }
  .ana { padding: 16px; }
  .ust h1 { font-size: 1.25rem; }
  .k-ad { display: none; }
  .hos { padding: 20px; }
}
@media (max-width: 700px) and (orientation: portrait) {
  .tablet main { flex-direction: column; }
  #qr { width: 78vw; height: 78vw; }
  .t-yan { max-width: none; text-align: center; }
  .t-yan ol { display: inline-block; text-align: left; }
}
@media (orientation: portrait) and (min-width: 701px) {
  .tablet main { flex-direction: column; }
  #qr { width: 70vw; height: 70vw; }
  .t-yan { max-width: none; text-align: center; }
  .t-yan ol { display: inline-block; text-align: left; }
}
.satir-form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin: 0; }
.satir-form input[type=date] { width: auto; padding: 5px 8px; font-size: .85rem; }
td.sag .satir-form { justify-content: flex-end; }
.hatali-alan { border-color: var(--kirmizi) !important; background: var(--kirmizi-acik); }
.derece-tablo { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.derece-satir { border: 1px solid var(--cizgi, #e3e6f0); border-radius: 12px; padding: 10px 12px; }
.derece-ad { font-weight: 700; margin-bottom: 8px; }
.derece-secenek { display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 6px; }
.derece-secenek label { margin: 0; }
.derece-secenek input { position: absolute; opacity: 0; pointer-events: none; }
.derece-secenek span { display: block; text-align: center; padding: 9px 4px; border: 1.5px solid #d6d9e8; border-radius: 9px; font-weight: 600; cursor: pointer; }
.derece-secenek input:checked + span { background: var(--mor, #6d4aff); border-color: var(--mor, #6d4aff); color: #fff; }
.derece-secenek input:focus-visible + span { outline: 2px solid var(--mor, #6d4aff); outline-offset: 2px; }
.ek-not { display: block; margin-top: 14px; font-weight: 600; }
.ek-not textarea { margin-top: 6px; font-weight: 400; }
.form-kapak { border-top: 6px solid var(--mor); }
.form-kapak h2 { margin-bottom: 6px; }
.form-soru .fs-baslik { font-weight: 700; font-size: 1rem; margin-bottom: 8px; display: flex; gap: 8px; align-items: baseline; }
.fs-no { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 50%; background: var(--mor-acik); color: var(--mor); font-size: .78rem; font-weight: 800; margin-right: 6px; flex-shrink: 0; }
.zorunlu { color: var(--kirmizi); font-weight: 800; }
.hatali-soru { border: 2px solid var(--kirmizi); }
.form-soru textarea, .form-soru > input { width: 100%; }
.soru-araclar { display: flex; gap: 8px; align-items: center; font-size: .8rem; font-weight: 600; }
.soru-araclar form { display: inline-flex; gap: 2px; margin: 0; }
.soru-araclar button { background: none; border: 1px solid var(--cizgi); border-radius: 6px; padding: 2px 7px; cursor: pointer; font-size: .75rem; color: var(--yazi); }
.soru-araclar button:disabled { opacity: .35; cursor: default; }
.soru-araclar .sil-link { color: var(--kirmizi); border-color: transparent; }
.kaydirmali { max-height: 640px; overflow-y: auto; align-self: start; }
.iban { font-family: ui-monospace, Menlo, monospace; letter-spacing: .02em; }
.rol-rozet { display: inline-block; border-radius: 99px; padding: 2px 10px; font-size: .74rem; font-weight: 700; background: #eef0f7; color: var(--soluk); }
.rol-koordinator { background: var(--mor-acik); color: var(--mor); }
.rol-birim { background: #e6f4ff; color: #1f6fb2; }
.rol-lider { background: var(--turuncu-acik); color: var(--turuncu); }
.izin-listesi { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.izin-satir { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; border: 1px solid var(--cizgi); border-radius: 10px; margin: 0; cursor: pointer; }
.izin-satir:has(input:checked) { border-color: var(--mor); background: var(--mor-acik); }
.izin-satir span { display: flex; flex-direction: column; gap: 2px; }
.izin-satir small { font-weight: 400; }
.izin-satir.kilitli { opacity: .6; cursor: default; }
fieldset[disabled] .izin-satir { cursor: default; }
.hafta-satir { border-top: 1px solid var(--cizgi); padding: 10px 0; }
.hafta-satir summary { cursor: pointer; list-style: none; display: block; }
.hs-ust { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.hs-gun { display: flex; flex-wrap: wrap; gap: 4px; }
.hafta-satir.ozel b { color: var(--mor); }
.hafta-satir summary::-webkit-details-marker { display: none; }
.hafta-degistir { font-size: .8rem; font-weight: 700; color: var(--mor); }
.hafta-satir[open] .hafta-degistir { visibility: hidden; }
.hafta-satir form { margin-top: 10px; }
.kucuk-secici .gun-kutu { padding: 9px 12px; }
.haftalik-isaret { white-space: nowrap; gap: 6px; margin: 0; cursor: pointer; }
.izin-oneri { border-top: 1px solid var(--cizgi); padding: 10px 0; }
.izin-oneri:first-of-type { border-top: 0; }
.baglanti-dugme { background: none; border: 0; color: var(--mor); font-weight: 600; cursor: pointer; padding: 0 4px; font-size: .8rem; }
.yesil-yazi { color: var(--yesil); font-weight: 600; }
.uye-sec { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px; margin: 10px 0; max-height: 420px; overflow-y: auto; }
.uye-sec label { display: flex; gap: 8px; align-items: center; padding: 7px 10px; border: 1px solid var(--cizgi); border-radius: 9px; margin: 0; cursor: pointer; font-size: .88rem; }
.uye-sec label:has(input:checked) { border-color: var(--mor); background: var(--mor-acik); }
.ara-kutu { max-width: 320px; margin-top: 8px; }
.form-cevap-baslik { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--cizgi); }
.form-cevap-baslik:first-of-type { border-top: 0; margin-top: 0; }
.qr-anahtar { display: flex; align-items: center; gap: 8px; border-radius: 99px; padding: 5px 5px 5px 12px; font-size: .82rem; white-space: nowrap; box-shadow: var(--golge); }
.anahtarlar { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.anahtarlar + .kullanici { margin-left: 10px; }
.qr-anahtar.acik { background: var(--yesil-acik); color: var(--yesil); }
.qr-anahtar.kapali { background: var(--kirmizi-acik); color: var(--kirmizi); }
.qr-nokta { width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.qr-anahtar.acik .qr-nokta { animation: qr-nabiz 1.6s infinite; }
@keyframes qr-nabiz { 50% { opacity: .3; } }
.qr-anahtar button { border: 0; border-radius: 99px; padding: 5px 12px; font-weight: 700; cursor: pointer; background: #fff; color: inherit; }
@media (max-width: 700px) { .qr-anahtar span:not(.qr-nokta) { display: none; } }
.telif { text-align: center; font-size: .78rem; color: var(--soluk); padding: 22px 0 8px; }
.telif a { color: inherit; text-decoration: none; font-weight: 600; }
.telif a:hover { color: var(--mor); }
.giris-orta { align-content: center; gap: 14px; }
.giris-orta .telif { padding: 0; color: rgba(255,255,255,.75); }
