/* Yeni tasarım (REFACTOR_PLAN.md 3.10, 3.12). Önce telefon: temel kurallar 360-430 px için, geniş ekran @media ile.
   Bootstrap ve jQuery yok. Renkler WCAG AA: metin #111827/#374151/#4B5563 beyaz ve #F7F8FA üzerinde ≥ 4.5:1.
   Artış mavi, düşüş turuncu (kırmızı/yeşil değil: renk körlüğü). Dokunma hedefleri ≥ 44-48 px. */
:root {
  --zemin: #F7F8FA; --yuzey: #FFFFFF; --cizgi: #E5E7EB; --cizgi-koyu: #D1D5DB;
  --metin: #111827; --metin-2: #374151; --metin-3: #4B5563;
  --vurgu: #1D4ED8; --vurgu-koyu: #1E3A8A; --vurgu-acik: #EEF2FF;
  --dusus: #9A3412; --dusus-acik: #FFF1E6; --notr-acik: #F3F4F6;
  --yaricap: 12px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--zemin); color: var(--metin);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px; line-height: 1.5; font-variant-numeric: tabular-nums;
}
a { color: var(--vurgu); }
a:hover { color: var(--vurgu-koyu); }
h1, h2, h3 { line-height: 1.25; }
.gizli { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }

/* --- üst bant ve menü --- */
.ust { background: var(--yuzey); border-bottom: 1px solid var(--cizgi); }
.ust .kap { display: flex; align-items: center; justify-content: space-between; min-height: 56px; gap: 12px; }
.logo { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--metin); font-weight: 700; font-size: 17px; }
.logo span:first-child { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 6px; background: var(--vurgu); color: #fff; font-size: 13px; }
.logo b { color: var(--vurgu); font-weight: 700; }
/* En dar telefonlar (360 px): logo yazısı küçülür, düğmeler 48 px kalır (dokunma hedefi) */
@media (max-width: 379.98px) {
  .ust .kap { gap: 4px; }
  .logo { font-size: 15px; gap: 6px; }
}
.ara > summary, .menu > summary { list-style: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 8px; cursor: pointer; }
.ara > summary::-webkit-details-marker, .menu > summary::-webkit-details-marker { display: none; }
.menu nav { position: absolute; left: 0; right: 0; top: 56px; z-index: 10; background: var(--yuzey); border-bottom: 1px solid var(--cizgi);
  padding: 8px 16px 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.menu nav a { display: flex; align-items: center; min-height: 48px; text-decoration: none; color: var(--metin); font-weight: 500; }
.ust { position: relative; }
.ust-nav { display: none; }
@media (min-width: 992px) {
  .menu { display: none; }
  .ust-nav { display: flex; flex-wrap: wrap; gap: 4px; }
  .ust-nav a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; text-decoration: none; color: var(--metin); font-weight: 500; border-radius: 8px; }
  .ust-nav a:hover { background: var(--zemin); }
}

/* --- sayfa düzeni: ana içerik + yan sütun (telefonda alt alta) --- */
.duzen { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; padding-top: 16px; padding-bottom: 16px; }
.duzen > main { flex: 999 1 560px; min-width: 0; }
.duzen > aside { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
/* Yan sütun 1200 px'ten itibaren yanda; altında içeriğin altında (tablolar 992-1199 px'te de tam genişlikte, kaymasın) */
@media (max-width: 1199.98px) { .duzen > main { flex-basis: 100%; } }
@media (min-width: 1200px) { .duzen > aside { max-width: 336px; } }

.yol { font-size: 14px; color: var(--metin-3); display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.yol li + li::before { content: "›"; margin-right: 6px; }
.yol a { text-decoration: none; }
h1 { margin: 12px 0 8px; font-size: 26px; letter-spacing: -0.01em; }
@media (min-width: 768px) { h1 { font-size: 32px; } }
.ozet-metni { margin: 0 0 12px; color: var(--metin-2); max-width: 760px; }
.kaynak { margin: 0 0 16px; font-size: 13px; color: var(--metin-3); }
h2 { font-size: 20px; margin: 28px 0 10px; }

.kutular { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 16px; max-width: 560px; }
.kutu { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 10px; padding: 10px 12px; }
.kutu b { display: block; font-size: 22px; line-height: 1.2; }
.kutu span { font-size: 13px; color: var(--metin-3); }

.arac { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-bottom: 12px; }
.arac .donem { font-weight: 600; }
.ara-kutu { flex: 1 1 220px; max-width: 320px; height: 48px; padding: 0 14px; border: 1px solid var(--cizgi-koyu); border-radius: 10px;
  font: inherit; font-size: 16px; background: var(--yuzey); color: var(--metin); }

/* --- puan tablosu: tek HTML; masaüstünde tablo, telefonda kart (3.12) --- */
.tablo-kutu { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); overflow-x: auto; }
.puan-tablo { width: 100%; border-collapse: collapse; font-size: 15px; }
.puan-tablo caption { text-align: left; padding: 14px 16px 6px; font-weight: 600; }
.puan-tablo thead th { background: var(--notr-acik); font-size: 13px; font-weight: 600; color: var(--metin-2); text-align: left; padding: 10px 12px; white-space: nowrap; }
.puan-tablo td, .puan-tablo tbody th { padding: 10px 12px; border-top: 1px solid var(--cizgi); vertical-align: middle; }
.puan-tablo tbody th { text-align: left; font-weight: 500; }
.puan-tablo thead th.kaydir { white-space: normal; min-width: 96px; }
@media (min-width: 768px) { .puan-tablo tbody th.ad { min-width: 160px; } }
/* Tablet ve küçük dizüstü (yan sütun ana sütunu daraltır): sıkı hücreler, başlık alt satıra geçebilir; tablo kaymasın */
@media (min-width: 768px) and (max-width: 1279.98px) {
  .puan-tablo td, .puan-tablo tbody th, .puan-tablo thead th { padding-left: 8px; padding-right: 8px; }
  .puan-tablo thead th { white-space: normal; }
}
@media (min-width: 992px) { .puan-tablo tbody th.ad { min-width: 220px; } }
.puan-tablo .sayi { text-align: right; white-space: nowrap; }
.puan-tablo td.taban { font-weight: 700; }
.ad a { color: var(--metin); text-decoration: none; }
.ad a:hover { text-decoration: underline; }
.ad small { display: block; font-size: 13px; font-weight: 400; color: var(--metin-3); }
.rozet { display: inline-block; font-size: 13px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.rozet.artis { background: var(--vurgu-acik); color: var(--vurgu-koyu); }
.rozet.dusus { background: var(--dusus-acik); color: var(--dusus); }
.rozet.yok { background: var(--notr-acik); color: var(--metin-2); }
.dolmadi { color: var(--dusus); }
.grafik svg { display: block; }
.puan-tablo td.onceki { color: var(--metin-2); }
.puan-tablo small.sira { display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); }
.puan-tablo thead th small { display: block; font-weight: 400; color: var(--metin-3); }

@media (max-width: 767.98px) {
  .tablo-kutu.kartlar { background: none; border: 0; overflow: visible; }
  .kartlar .puan-tablo caption, .kartlar .puan-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kartlar .puan-tablo, .kartlar .puan-tablo tbody { display: block; }
  .kartlar .puan-tablo tr {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; column-gap: 12px; row-gap: 2px;
    grid-template-areas: "ad ad taban" "tavan tavan taban" "kadro kadro taban" "gecmis gecmis gecmis";
    background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); padding: 14px; margin-bottom: 10px;
  }
  .kartlar .puan-tablo td, .kartlar .puan-tablo tbody th { padding: 0; border: 0; }
  .kartlar .ad { grid-area: ad; font-weight: 600; line-height: 1.35; }
  .kartlar td.taban { grid-area: taban; text-align: right; font-size: 22px; line-height: 1.1; }
  .kartlar td.taban::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); }
  .kartlar td.taban small.sira { font-size: 13px; }
  .kartlar td.tavan, .kartlar td.kadro, .kartlar td.siralama { text-align: left; font-size: 13px; color: var(--metin-2); }
  .kartlar td.siralama { grid-area: siralama; }
  .kartlar td.siralama::before { content: attr(data-label) " "; }
  .kartlar td.tavan { grid-area: tavan; margin-top: 6px; }
  .kartlar td.kadro { grid-area: kadro; }
  .kartlar td.tavan::before, .kartlar td.kadro::before { content: attr(data-label) " "; }
  .kartlar td.onceki { margin-top: 6px; text-align: left; font-size: 13px; color: var(--metin-2); }
  .kartlar td.onceki::before { content: attr(data-label) ": "; color: var(--metin-3); }
  .kartlar td.onceki { grid-area: gecmis; justify-self: start; }
  .kartlar td.o2 { margin-left: 9em; }        /* önceki iki dönem aynı satırda */
}
.puan-tablo tr[hidden] { display: none !important; }
.hepsi:not(:checked) ~ .tablo-kutu tr.fazla { display: none; }
.hepsi:checked ~ .daha { display: none; }
.daha { display: flex; align-items: center; justify-content: center; width: 100%; height: 48px; margin-top: 4px; border: 1px solid var(--vurgu);
  border-radius: 10px; background: var(--yuzey); color: var(--vurgu); font-weight: 600; font-size: 15px; cursor: pointer; }
.not { font-size: 13px; color: var(--metin-3); margin: 8px 0 0; }

/* son dönemde açılmayan programlar: küçük, sade tablo */
.kapanan { font-size: 14px; }
.kapanan td { white-space: nowrap; }

/* --- reklam: yer önceden ayrılır (CLS yok), telefonda 2, masaüstünde 2 --- */
.reklam { display: block; margin: 20px 0; min-height: 280px; text-align: center; }
.reklam .etiket { display: block; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--metin-3); margin-bottom: 4px; }
.reklam-yan { min-height: 600px; margin: 0; }
@media (max-width: 1199.98px) { .reklam-yan { display: none; } }
@media (min-width: 1200px) { .reklam-mobil { display: none; } }

/* --- sık sorulanlar --- */
.sss details { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); padding: 12px 14px; margin-bottom: 8px; }
.sss summary { font-weight: 600; min-height: 28px; cursor: pointer; }
.sss p { margin: 8px 0 0; color: var(--metin-2); }

/* --- ilgili sayfalar --- */
.ilgili h2 { font-size: 17px; margin: 0 0 8px; }
.liste { list-style: none; margin: 0; padding: 0; background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); }
.liste li + li { border-top: 1px solid var(--cizgi); }
.liste a { display: flex; align-items: center; min-height: 52px; padding: 6px 14px; text-decoration: none; color: var(--metin); }
.liste a:hover { background: var(--zemin); }

/* --- alt bant --- */
.alt { margin-top: 32px; background: #111827; color: #D1D5DB; font-size: 14px; }
.alt .kap { padding-top: 24px; padding-bottom: 32px; display: flex; flex-wrap: wrap; gap: 16px 48px; justify-content: space-between; }
.alt b { color: #fff; }
.alt p { margin: 8px 0 0; max-width: 480px; }
.alt nav { display: grid; grid-template-columns: repeat(2, minmax(0, auto)); gap: 0 24px; }
.alt nav a { color: #fff; min-height: 40px; display: flex; align-items: center; }

/* --- bölüm sayfası (3.10): grafik, filtreler, telefonda sıralı satırlar --- */
.grafik-kutu { margin: 0 0 16px; background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); padding: 14px; max-width: 760px; }
.grafik-kutu figcaption b { display: block; font-size: 15px; }
.grafik-kutu figcaption span { display: block; font-size: 12px; color: var(--metin-3); margin-bottom: 6px; }
.grafik-kutu svg { display: block; height: auto; max-width: 560px; }
.bolunmez { white-space: nowrap; }
.filtreler { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 8px 0 4px; }
.filtre { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.filtre label, .filtre-baslik { font-size: 14px; font-weight: 600; }
.filtre .ara-kutu { flex: none; width: 100%; max-width: 320px; }
.cipler { display: flex; flex-wrap: wrap; gap: 8px; }
.cip { height: 44px; padding: 0 14px; border-radius: 22px; border: 1px solid var(--cizgi-koyu); background: var(--yuzey); color: var(--metin);
  font: inherit; font-size: 14px; cursor: pointer; }
.cip[aria-pressed="true"] { border-color: var(--vurgu); background: var(--vurgu); color: #fff; font-weight: 600; }
.donem-not { font-size: 14px; font-weight: 400; color: var(--metin-3); }
.puan-tablo td.sira { color: var(--metin-3); font-size: 13px; width: 1%; }
@media (max-width: 767.98px) {
  .tablo-kutu.satirlar { overflow: visible; }
  .satirlar .puan-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .satirlar .puan-tablo, .satirlar .puan-tablo tbody { display: block; }
  .satirlar .puan-tablo tr { display: grid; grid-template-columns: 26px minmax(0, 1fr) minmax(0, 1fr) auto; column-gap: 10px; row-gap: 2px;
    grid-template-areas: "sira ad ad taban" "sira il il taban" "sira kadro kadro taban" "sira gecmis gecmis gecmis"; padding: 12px 14px; border-top: 1px solid var(--cizgi); }
  .satirlar .puan-tablo tbody tr:first-child { border-top: 0; }
  .satirlar .puan-tablo td, .satirlar .puan-tablo tbody th { padding: 0; border: 0; }
  .satirlar td.sira { grid-area: sira; width: auto; padding-top: 2px; }
  .satirlar .ad { grid-area: ad; font-weight: 500; line-height: 1.35; }
  .satirlar td.taban { grid-area: taban; font-size: 18px; text-align: right; }
  .satirlar td.taban::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); }
  .satirlar td.onceki { margin-top: 4px; text-align: left; font-size: 13px; }
  .satirlar td.onceki::before { content: attr(data-label) ": "; color: var(--metin-3); }
  .satirlar td.onceki { grid-area: gecmis; justify-self: start; }
  .satirlar td.o2 { margin-left: 9em; }
  .satirlar td.yuzdelik { grid-area: gecmis; text-align: left; font-size: 13px; color: var(--metin-3); margin-top: 4px; }
  .satirlar td.yuzdelik::before { content: attr(data-label) " "; }
  .satirlar td.il { grid-area: il; font-size: 13px; color: var(--metin-3); }
  .satirlar td.kadro { grid-area: kadro; font-size: 13px; color: var(--metin-3); text-align: left; }
  .satirlar td.kadro::before { content: attr(data-label) " "; }
  .satirlar td.tavan { display: none; }
}

/* --- şehir sayfaları (3.10): kurum ve sınav kartları --- */
.kartlar-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin: 0 0 8px; }
.kart { display: flex; flex-direction: column; gap: 4px; padding: 14px; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--yaricap); text-decoration: none; color: var(--metin); min-height: 48px; }
.kart:hover { border-color: var(--vurgu); }
.kart b { line-height: 1.35; }
.kart span { font-size: 14px; color: var(--metin-2); }
.kart .kart-ust { font-size: 12px; font-weight: 600; color: var(--vurgu-koyu); letter-spacing: 0.02em; }
.kart .kart-alt { font-size: 13px; color: var(--metin-3); }
.aralik { position: relative; display: block; height: 8px; margin-top: 6px; border-radius: 4px; background: var(--notr-acik); }
.aralik span { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: var(--vurgu); }
.dahasi > summary { list-style: none; margin: 4px 0 10px; }
.dahasi > summary::-webkit-details-marker { display: none; }
.dahasi[open] > summary { display: none; }

/* liste sayfası (3.10): telefonda iki satırlı kayıt, sıra sütunu yok */
@media (max-width: 767.98px) {
  .liste-tablo .puan-tablo tr { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "ad taban" "il kadro"; }
  .liste-tablo td.kadro { text-align: right; }
  .liste-tablo td.il[data-label]::before { content: attr(data-label) " "; }
}

/* ana sayfa (3.10) */
.sinav-kartlari { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.sinav-kodu { font-size: 22px; }
.takvim a, .takvim .takvim-satir { display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 8px 14px; text-decoration: none; color: var(--metin); }
.takvim .gun { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 56px; height: 46px;
  border-radius: 8px; background: var(--vurgu-acik); color: var(--vurgu-koyu); }
.takvim .gun b { font-size: 18px; line-height: 1; }
.takvim .gun span { font-size: 10px; }
.takvim-ad { display: block; font-weight: 500; }
.takvim-tarih { display: block; font-size: 13px; color: var(--metin-3); }
.cip-link { display: inline-flex; align-items: center; text-decoration: none; background: var(--vurgu-acik); color: var(--vurgu-koyu); border-color: var(--vurgu-acik); font-weight: 500; }
.cip-link:hover { border-color: var(--vurgu); color: var(--vurgu-koyu); }
.cip-vurgu { background: var(--yuzey); border-color: var(--vurgu); color: var(--vurgu); font-weight: 600; }

/* başarı sırası olan tablolar (YKS): masaüstünde tavan sütunu gizli (telefon kartında görünür), tablo sığsın */
@media (min-width: 768px) { .puan-tablo.sirali .tavan { display: none; } .puan-tablo.sirali tbody th.ad { min-width: 150px; } }

/* geri sayım (3.11) */
.bildirim { font-weight: 600; margin: 0 0 12px; }
.sayac-kutu { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); padding: 14px; margin: 0 0 12px; text-align: center; max-width: 560px; }
.sayac-kutu p { margin: 0 0 8px; }
.sayac { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.sayac div { min-width: 72px; padding: 10px 8px; border-radius: 10px; background: var(--vurgu-acik); color: var(--vurgu-koyu); font-size: 13px; }
.sayac b { display: block; font-size: 30px; line-height: 1.1; color: var(--metin); }
.takvim-tablo tr.odak { background: var(--vurgu-acik); }
@media (max-width: 767.98px) {
  .takvim-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .takvim-tablo, .takvim-tablo tbody, .takvim-tablo tr, .takvim-tablo th, .takvim-tablo td { display: block; }
  .takvim-tablo tr { padding: 10px 14px; border-top: 1px solid var(--cizgi); }
  .takvim-tablo td, .takvim-tablo tbody th { border: 0; padding: 2px 0; }
  .takvim-tablo td::before { content: attr(data-label) ": "; color: var(--metin-3); font-size: 13px; }
}

/* öneri listesi (KPSS robotu bölüm kutusu): Android'de datalist klavye şeridine düştüğü için kendi listemiz */
.oneri-kap { position: relative; max-width: 320px; }
.oneri-kap .ara-kutu { max-width: none; }
.oneri-liste { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30; margin: 0; padding: 4px 0; list-style: none;
  max-height: min(50vh, 360px); overflow-y: auto; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--yaricap); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.oneri-liste[hidden] { display: none; }
.oneri-liste li { min-height: 48px; display: flex; align-items: center; padding: 6px 14px; cursor: pointer; line-height: 1.3; }
.oneri-liste li[aria-selected="true"], .oneri-liste li:hover { background: var(--vurgu-acik); }
.oneri-liste li.oneri-bos { color: var(--metin-3); cursor: default; }
@media (max-width: 767.98px) { .oneri-kap { max-width: none; } }

/* bilgi sayfaları (3.21): okunabilir satır uzunluğu */
.metin { max-width: 72ch; }
.metin ul { padding-left: 20px; }
.metin li { margin-bottom: 8px; }

/* çerez bandı (9.7): sabit konumlu, düzeni itmez; telefonda tam genişlik */
.cerez-bant { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50; max-width: 720px; margin: 0 auto; padding: 14px 16px;
  background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--yaricap); box-shadow: 0 6px 24px rgba(0,0,0,.18); }
.cerez-bant[hidden] { display: none; }
.cerez-bant p { margin: 0 0 10px; font-size: 14px; }
.cerez-dugmeler { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.cerez-dugmeler .dugme { flex: 1 1 140px; }
.dugme.ikincil { background: transparent; color: var(--vurgu-koyu); border: 1px solid var(--cizgi); }
.dugme.ikincil:hover { background: var(--vurgu-acik); }
button.baglanti { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; min-height: 48px; }

/* karşılaştırma aracı (3.22): telefonda her satır bir kart, kurum adı etiket olarak */
@media (max-width: 767.98px) {
  .yanyana-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .yanyana-tablo, .yanyana-tablo tbody, .yanyana-tablo tr, .yanyana-tablo th, .yanyana-tablo td { display: block; text-align: left; }
  .yanyana-tablo tr { padding: 10px 14px; border-top: 1px solid var(--cizgi); }
  .yanyana-tablo td, .yanyana-tablo tbody th { border: 0; padding: 2px 0; }
  .yanyana-tablo tbody th { font-weight: 600; }
  .yanyana-tablo td::before { content: attr(data-label) ": "; color: var(--metin-3); font-size: 13px; }
}

/* site içi arama (3.10) */
.ust .kap > .ara { margin-left: auto; }
.ara > summary { cursor: pointer; }
.ara-yazi { display: none; }
.ara-panel { position: absolute; left: 0; right: 0; top: 56px; z-index: 11; background: var(--yuzey); border-bottom: 1px solid var(--cizgi);
  padding: 12px 16px 16px; box-shadow: 0 8px 16px rgba(17, 24, 39, 0.08); }
.ara-panel .ara-kutu { width: 100%; max-width: none; }
.ara-sonuc { margin-top: 8px; max-height: 60vh; overflow-y: auto; border: 0; }
.ara-sonuc:empty { display: none; }
.ara-sonuc a, .ara-sonuc span { display: flex; justify-content: space-between; gap: 12px; min-height: 48px; padding: 6px 4px; }
.ara-sonuc small { flex: none; font-size: 12px; color: var(--metin-3); }
@media (min-width: 992px) {
  .ust .kap > .ara { margin-left: 8px; }
  .ara > summary { width: auto; padding: 0 12px; gap: 6px; display: flex; align-items: center; border: 1px solid var(--cizgi-koyu); border-radius: 10px; height: 44px; }
  .ara-yazi { display: inline; }
  .ara-panel { left: auto; right: 16px; width: 520px; border: 1px solid var(--cizgi); border-radius: 12px; top: 60px; }
}

/* puan aracı (3.10) */
.arac-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--yaricap); padding: 16px; margin: 0 0 16px; }
.arac-form .filtre { flex: 1 1 180px; }
.dugme { height: 48px; padding: 0 20px; border: 0; border-radius: 10px; background: var(--vurgu); color: #fff; font: inherit; font-weight: 600;
  font-size: 16px; cursor: pointer; flex: 1 1 100%; }
@media (min-width: 768px) { .dugme { flex: 0 0 auto; } }
.dugme:hover { background: var(--vurgu-koyu); }
.arac-sonuc h2 { margin-top: 8px; }
.arac-liste { counter-reset: sira; }
.arac-liste li a { flex-direction: column; align-items: flex-start; justify-content: center; padding: 10px 14px; }
.arac-liste b { font-weight: 600; line-height: 1.35; }
.arac-liste small { font-size: 13px; color: var(--metin-3); }
.arac-liste + .daha { margin-top: 8px; }
.arac-tanitim { background: var(--vurgu-koyu); color: #fff; border-radius: var(--yaricap); padding: 16px; margin: 24px 0 0; }
.arac-tanitim h2 { margin: 0 0 4px; color: #fff; }
.arac-tanitim p { margin: 0 0 12px; color: #DBE4FF; }
.arac-tanitim .cip-link { background: #fff; border-color: #fff; color: var(--vurgu-koyu); font-weight: 600; }

/* --- "kaç net" tablosu (3.10): bir test grubu tek hücrede, kırılım altta küçük; telefonda kart --- */
.netler td small { display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); white-space: normal; max-width: 190px; margin-left: auto; }
.netler thead th small { display: block; font-weight: 400; white-space: normal; max-width: 170px; margin-left: auto; }
.netler .puan-tablo tbody th.ad { min-width: 0; }
.netler td.tyt, .netler td.ayt, .netler td.ydt { font-weight: 600; }
@media (max-width: 767.98px) {
  .tablo-kutu.netler { overflow: visible; }
  .netler .puan-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .netler .puan-tablo, .netler .puan-tablo tbody { display: block; }
  .netler .puan-tablo tr { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; column-gap: 10px; row-gap: 4px;
    grid-template-areas: "sira ad taban" "sira tyt tyt" "sira ayt ayt" "sira ydt obp"; padding: 12px 14px; border-top: 1px solid var(--cizgi); }
  .netler .puan-tablo tbody tr:first-child { border-top: 0; }
  .netler .puan-tablo td, .netler .puan-tablo tbody th { padding: 0; border: 0; }
  .netler td.sira { grid-area: sira; width: auto; padding-top: 2px; }
  .netler .ad { grid-area: ad; font-weight: 500; line-height: 1.35; }
  .netler td.taban { grid-area: taban; text-align: right; font-size: 15px; }
  .netler td.taban::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); }
  .netler td.tyt { grid-area: tyt; text-align: left; }
  .netler td.ayt { grid-area: ayt; text-align: left; }
  .netler td.ydt { grid-area: ydt; text-align: left; }
  .netler td.obp { grid-area: obp; text-align: right; font-size: 13px; color: var(--metin-3); }
  .netler td.tyt::before, .netler td.ayt::before, .netler td.ydt::before, .netler td.obp::before { content: attr(data-label) " "; font-weight: 400; color: var(--metin-3); }
  .netler td small { max-width: none; margin-left: 0; }
}

/* --- puan hesaplama (3.10): test başına doğru/yanlış/net satırı --- */
.hesap-grup { border: 1px solid var(--cizgi); border-radius: var(--yaricap); background: var(--yuzey); margin: 0 0 16px; padding: 8px 14px 14px; }
.hesap-grup legend { font-weight: 700; padding: 0 6px; }
.hesap-satir { display: grid; grid-template-columns: minmax(0, 1fr) 72px 72px 56px; gap: 8px; align-items: center; padding: 4px 0; }
.hesap-satir small { display: block; font-size: 12px; color: var(--metin-3); }
.hesap-satir .ara-kutu { width: 100%; max-width: none; padding: 0 8px; text-align: center; }
.hesap-satir output { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.hesap-baslik { font-size: 12px; color: var(--metin-3); padding-bottom: 0; }
.hesap-baslik span:not(:first-child) { text-align: center; }
.hesap-baslik span:last-child { text-align: right; }
.hesap-grup .filtre { margin-top: 8px; }
.agirliklar th, .agirliklar td { white-space: nowrap; }
@media (max-width: 767.98px) {
  .hesap-sonuc .puan-tablo td, .hesap-sonuc .puan-tablo th { padding-left: 6px; padding-right: 6px; }
  .hesap-sonuc .puan-tablo thead th { white-space: normal; }
}
.hesap-sonuc .ad small { display: block; font-weight: 400; }
.hesap-sonuc td.taban { white-space: normal; }

/* --- tercih robotu (KPSS, 3.10) --- */
.robot .cip { display: inline-flex; align-items: center; }
.robot .cip[aria-pressed="true"] { border-color: var(--vurgu); background: var(--vurgu); color: #fff; font-weight: 600; }
.robot fieldset:disabled { opacity: .55; }
.robot .dugme { margin-top: 12px; }
#robot-tablolar h3 { margin: 24px 0 8px; font-size: 16px; }
.robot-tablo td.nit { font-size: 12px; color: var(--metin-3); white-space: normal; max-width: 160px; }
.robot-tablo tr.yetiyor td.taban { color: var(--vurgu); }
.robot-tablo tr.yetiyor td.taban::after { content: " ✓"; }
.robot-tablo .ad b { font-weight: 500; }
.robot-tablo td.unvan small { display: block; font-size: 12px; color: var(--metin-3); }
.nitelikler { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 12px; font-size: 14px; }
.nitelikler dt { font-weight: 700; font-variant-numeric: tabular-nums; }
.nitelikler dd { margin: 0; color: var(--metin-2); }
@media (max-width: 767.98px) {
  .satirlar .robot-tablo tr { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "ad taban" "unvan taban" "kadro tavan" "nit nit"; }
  .satirlar .robot-tablo td.unvan { grid-area: unvan; font-size: 14px; }
  .satirlar .robot-tablo td.unvan::before { content: attr(data-label) ": "; color: var(--metin-3); }
  .satirlar .robot-tablo td.unvan small { display: inline; margin-left: 4px; }
  .satirlar .robot-tablo td.tavan-g { grid-area: tavan; text-align: right; font-size: 13px; color: var(--metin-3); }
  .satirlar .robot-tablo td.tavan-g::before { content: attr(data-label) " "; }
  .satirlar .robot-tablo td.nit { grid-area: nit; max-width: none; }
  .satirlar .robot-tablo td.nit::before { content: attr(data-label) ": "; }
  .satirlar .robot-tablo td.taban::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 400; color: var(--metin-3); }
}

/* Bağlantı olarak düğme (robot yönlendirmesi) */
a.dugme { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; height: auto; padding: 10px 20px;
  text-decoration: none; color: #fff; line-height: 1.3; text-align: center; }
a.dugme:hover { color: #fff; }
.robot-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0 0 20px; }
.ozet-tablo { font-size: 14px; }
.ozet-tablo th, .ozet-tablo td { padding-left: 8px; padding-right: 8px; }
.ozet-tablo thead th { white-space: normal; }

/* --- nitelik kodu açıklama penceresi ve nitelik kodları sayfası (3.10) --- */
td.nit { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
td.nit:hover, td.nit[aria-expanded] { color: var(--vurgu); }
.nk-pencere { position: absolute; z-index: 30; width: min(420px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; padding: 14px 16px;
  background: var(--yuzey); border: 1px solid var(--cizgi-koyu); border-radius: var(--yaricap); box-shadow: 0 8px 24px rgba(17, 24, 39, .18); }
.nk-kapat { position: absolute; top: 4px; right: 4px; width: 44px; height: 44px; border: 0; background: none; font-size: 24px; cursor: pointer; color: var(--metin-3); }
.nk-pencere .nitelikler { margin: 0 32px 8px 0; }
.nk-hepsi { font-size: 14px; }
@media (max-width: 767.98px) {
  .nk-pencere { position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 55vh; border-radius: 16px 16px 0 0; }
}
.nitelik-listesi dd small { display: block; font-size: 12px; color: var(--metin-3); margin-top: 2px; }
.nitelik-listesi dt:target, .nitelik-listesi dt:target + dd { background: var(--vurgu-acik); }
.nitelik-listesi dt { scroll-margin-top: 80px; }
