/* Sonuç kartları — kart yeniden tasarımı (8 Eki 2026; docs/TASARIM.md "Kart yeniden tasarımı"): ilan kartı (üst şerit · gövde · alt
   şerit), kadro kartı, kurum kartı. Çalışma şekline göre renk ailesi `tur-<aile>` sınıfıyla `--t-serit/--t-zemin/--t-metin`e bağlanır
   (eşleme app/web/kart_gorunum.py). ara.css/katalog.css'ten sonra yüklenir; `.ilan` taban kuralları Başvurularım satırında sürdüğü için
   ilan kartı kuralları `.ilan.kart` ile sınırlı. Renkler yalnız app.css :root token'larından (tests/test_tasarim_tokenlari.py). */

/* ---- renk aileleri ---- */
.kart{--t-serit:var(--tur-kit-serit);--t-zemin:var(--tur-kit-zemin);--t-metin:var(--tur-kit-metin)}
.tur-akademik{--t-serit:var(--tur-akademik-serit);--t-zemin:var(--tur-akademik-zemin);--t-metin:var(--tur-akademik-metin)}
.tur-isci{--t-serit:var(--tur-isci-serit);--t-zemin:var(--tur-isci-zemin);--t-metin:var(--tur-isci-metin)}
.tur-memur{--t-serit:var(--tur-memur-serit);--t-zemin:var(--tur-memur-zemin);--t-metin:var(--tur-memur-metin)}
.tur-sozlesmeli{--t-serit:var(--tur-sozlesmeli-serit);--t-zemin:var(--tur-sozlesmeli-zemin);--t-metin:var(--tur-sozlesmeli-metin)}
.tur-kurum{--t-serit:var(--tur-kurum-serit);--t-zemin:var(--tur-kurum-zemin);--t-metin:var(--tur-kurum-metin)}

/* ---- ortak çerçeve ---- */
.ilan.kart,.kadro.kart,.kurum.kart{background:var(--beyaz);border:1px solid var(--kenar-kart);border-radius:var(--r-kart-yeni);box-shadow:var(--golge-kart);
  padding:0;display:flex;flex-direction:column;gap:0;min-width:0;cursor:pointer;position:relative;
  transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}
.ilan.kart:hover,.kadro.kart:hover,.kurum.kart:hover{border-color:var(--kart-kenar-hover);box-shadow:var(--golge-kart-hover);transform:translateY(-1px)}
.ilan.kart:focus-within,.kadro.kart:focus-within,.kurum.kart:focus-within{border-color:var(--aksan)}
/* seçili/aktif (sağ panelde açık) kart: teal kenar; 1 px kenar + 1 px halka → düzen kaymaz */
.ilan.kart.secili,.ilan.kart.secili:hover{border:1px solid var(--aksan);padding:0;box-shadow:0 0 0 1px var(--aksan),var(--golge-kart-hover);transform:none}
.kadro.kart,.kurum.kart{overflow:hidden}  /* ilan kartında yok: il "+N" listesi kartın dışına taşar */
.kart h3 a{color:var(--metin);text-decoration:none}
.kart:hover h3 a{color:var(--aksan-koyu);text-decoration:underline}
.tur-etiket{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;background:var(--t-zemin);color:var(--t-metin);
  font-size:12.5px;font-weight:800;white-space:nowrap}
/* nane "Sana uygun mu?" (ziyaretçi) ve karar etiketi (üye) aynı yerde, aynı boyda */
.kart .rozet-nokta.kart-uygun{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:0;border-radius:12px;
  background:var(--aksan-zemin);color:var(--aksan-koyu);font-size:14px;font-weight:700;text-decoration:none}
.kart .rozet-nokta.kart-uygun::before{display:none}
.kart .rozet-nokta.kart-uygun:hover{background:var(--nane-hover);text-decoration:none}
.kart .rozet-nokta.kart-uygun .ik{color:currentColor}
.kart .rozet-nokta.kart-karar,.kart .kart-alt .rozet-nokta.iptal{height:40px;padding:0 16px 0 14px;border-radius:12px;font-size:14px}

/* ---- ilan kartı: (A) üst şerit ---- */
.ilan.kart .kart-serit{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;padding:20px 22px;background:var(--t-serit);
  border-bottom:1px solid var(--t-zemin);border-radius:calc(var(--r-kart-yeni) - 1px) calc(var(--r-kart-yeni) - 1px) 0 0}
.ilan.kart .bh{width:56px;height:56px;border-radius:16px;font-size:17px;background:var(--beyaz);color:var(--t-metin);border:1px solid var(--t-zemin);box-shadow:var(--golge-tarih)}
.ilan.kart .bh-logo{padding:6px}
.ilan.kart .bh-logo-koyu{background:var(--aksan);border-color:var(--aksan)}
.ilan.kart .orta{flex:1 1 220px;min-width:0}
.ilan.kart h3{margin:2px 0 0;font-size:18.5px;font-weight:800;letter-spacing:-.015em;line-height:1.3;overflow-wrap:anywhere}
.ilan.kart h3 a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}/* uzun kurum adı en çok 2 satır (14 Eki 2026) */
.ilan.kart .tur{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;font-size:12.5px;font-weight:700;color:var(--govde);line-height:1.4}
.kart-etiket{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 10px;border-radius:999px;background:var(--il-etiket-zemin);
  color:var(--govde);font-size:12.5px;font-weight:700;white-space:nowrap}
.kart-etiket .ik{width:14px;height:14px;color:var(--t-metin)}
.ilan.kart .il-metin{gap:5px}
.ilan.kart .etiket-cerceve{height:26px;background:var(--il-etiket-zemin);font-size:12.5px}
.ilan.kart .sag{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;margin-left:auto;text-align:center;padding:0}
/* takvim yaprağı: ay bandı aciliyet renginde, gün 26 px, altta kalan süre */
.tarih-kutu{width:92px;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--beyaz);border:1px solid var(--kenar-kart);
  border-radius:16px;box-shadow:var(--golge-tarih);overflow:hidden;padding-bottom:8px}
.tk-ay{align-self:stretch;padding:4px 0;font-size:11px;font-weight:800;letter-spacing:.08em;background:var(--aksan-zemin);color:var(--aksan-koyu)}
.tk-bugun .tk-ay{background:var(--acil);color:var(--beyaz)}
.tk-yakin .tk-ay{background:var(--acil-zemin);color:var(--acil)}
.tk-gecti .tk-ay{background:var(--notr-zemin);color:var(--ikincil)}
.tk-gun{margin-top:4px;font-size:26px;font-weight:800;line-height:1.1;color:var(--metin);font-variant-numeric:tabular-nums}
.tk-saat{font-size:11px;font-weight:700;color:var(--ucuncul);line-height:1.3}
.tarih-kutu .kalan.tk-alt{display:block;height:auto;margin-top:2px;padding:0 3px;letter-spacing:-.01em;border-radius:0;background:none;font-size:11px;font-weight:800;line-height:1.25;
  white-space:normal;text-align:center;color:var(--aksan-koyu)}
.tarih-kutu.tk-bugun .kalan.tk-alt,.tarih-kutu.tk-yakin .kalan.tk-alt{color:var(--acil)}
.tarih-kutu.tk-gecti .kalan.tk-alt{color:var(--ucuncul)}

/* ---- ilan kartı: (B) gövde ---- */
.kart-govde{display:flex;flex-direction:column;gap:12px;padding:18px 22px}
.ilan.kart .kart-bilgi{display:flex;flex-direction:column;gap:8px}
.ilan.kart .pozisyonlar,.ilan.kart .kosul-ozeti{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:baseline;margin:0;min-width:0}
.ilan.kart .kart-bilgi .etiket{flex:none;padding:0;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ucuncul)}
.ilan.kart .pozisyonlar .metin{font-size:14.5px;font-weight:600;line-height:1.45;color:var(--metin)}
.ilan.kart .kosul-ozeti .metin{font-size:14.5px;line-height:1.45;color:var(--govde)}
.ilan.kart .basvuru-yontemi .metin{white-space:normal}
.saat-kutu{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 12px;border-radius:10px;background:var(--uyari-sari);color:var(--saat-metin);font-size:13px;line-height:1.45}
.saat-kutu .ik{margin-top:2px;color:var(--saat-metin)}
.ilan.kart .karar-neden{margin:0;font-size:13.5px;line-height:1.5;color:var(--govde)}

/* ---- ilan kartı: (C) alt şerit ---- */
.ilan.kart .kart-alt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:auto 0 0;padding:14px 22px;background:var(--kart-alt-zemin);
  border-top:1px solid var(--yuzey2);border-radius:0 0 calc(var(--r-kart-yeni) - 1px) calc(var(--r-kart-yeni) - 1px)}
.ilan.kart .kart-alt .btn,.ilan.kart .kart-alt .btn2{height:40px;padding:0 16px;border-radius:12px;font-size:14px}
.ilan.kart .kart-alt .btn{gap:6px;color:var(--beyaz);font-weight:700;box-shadow:var(--golge-basvur)}
.ilan.kart .kart-alt .btn:hover{background:var(--aksan-koyu)}
.ilan.kart .kart-alt .btn .ik{width:16px;height:16px;color:currentColor}
.ilan.kart .fb-kume{margin-left:auto;display:inline-flex}
.ilan.kart .fb-kume .isaret-kume{display:inline-flex;gap:8px}
.ilan.kart .fb-kume .btn2{display:inline-flex;align-items:center;gap:6px;background:var(--beyaz);border:1px solid var(--kenar-inp);color:var(--metin)}
.ilan.kart .fb-kume .btn2:hover{background:var(--sat-hover)}
.ilan.kart .fb-kume .btn2.fb-favorite{background:var(--hata-zemin);border-color:var(--favori-kenar);color:var(--acil)}
.ilan.kart .fb-favorite .kalp-im.dolu{fill:currentColor;stroke:currentColor}
@media (max-width:600px){
  /* telefon: logo solda, takvim yaprağı sağda, ad ve etiketler alt satırda tam genişlik */
  .ilan.kart .kart-serit{padding:16px}
  .ilan.kart .orta{order:3;flex:1 1 100%}
  .ilan.kart .sag{order:2;flex:0 0 auto;flex-direction:column;align-items:center;padding-left:0}
  .kart-govde,.ilan.kart .kart-alt{padding-left:16px;padding-right:16px}
  .ilan.kart .pozisyonlar,.ilan.kart .kosul-ozeti{grid-template-columns:84px minmax(0,1fr);gap:8px}
}

/* ---- kadro kartı ---- */
/* Kart düzeni turu (14 Eki 2026): kart dikey flex (gövde esner → aynı satırdaki kartlar eşit boy); üst bölge sabit yükseklik: tek satır
   rozetler (sarmasız; "i" rozetin içinde) + 2 satırlık başlık alanı (kısa başlıkta da yer ayrılır). Dar kartta "Bugün son gün" → "Son gün". */
.kadro.kart{display:flex;flex-direction:column}
.kadro-ust{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:var(--t-serit);border-bottom:1px solid var(--t-zemin);container-type:inline-size}
.kadro-ust-satir{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:nowrap;min-height:26px}
.kadro-ust-satir .tur-etiket{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kadro-ust-satir .kalan-satir{flex:0 0 auto}
.kadro.kart .kalan{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:var(--aksan-zemin);color:var(--aksan-koyu);font-size:12px;font-weight:800;white-space:nowrap}
.kadro.kart .kalan.bugun{background:var(--acil);color:var(--beyaz)}
.kadro.kart .kalan.yakin{background:var(--acil-zemin);color:var(--acil)}
.kadro.kart .kalan.gecti{background:var(--notr-zemin);color:var(--ikincil)}
.kadro.kart .kalan .son-gun-bilgi{margin-left:2px}
.kadro.kart .kalan .bilgi-dugme{width:28px;height:26px;margin:0 -8px 0 0;color:inherit;opacity:.85}
.kadro.kart .kalan .bilgi-dugme:hover,.kadro.kart .kalan .bilgi-dugme[aria-expanded="true"]{opacity:1;color:inherit}
.kadro.kart .kalan .bilgi-dugme:focus-visible{outline-color:currentColor;outline-offset:-4px}
.kalan .kalan-kisa{display:none}
@container (max-width:236px){.kalan .kalan-tam{display:none}.kalan .kalan-kisa{display:inline}}
.kadro.kart h3{margin:0;font-size:18px;font-weight:800;line-height:1.3;min-width:0;min-height:calc(2 * 1.3em)}
.kadro.kart h3 a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.kadro-govde{display:flex;flex-direction:column;gap:14px;padding:16px 18px;flex:1;min-width:0}
.kadro.kart .kadro-kurum{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;align-self:flex-start;font-size:13.5px;font-weight:600;color:var(--govde);text-decoration:none}
.kadro.kart .kadro-kurum span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kadro.kart .kadro-kurum:hover{color:var(--aksan-koyu);text-decoration:underline}
.kadro.kart .kadro-kurum .bh{width:30px;height:30px;border-radius:9px;font-size:11px;background:var(--t-zemin);color:var(--t-metin)}
.kadro.kart .kadro-kurum .bh-logo{padding:2px;background:var(--beyaz);border:1px solid var(--t-zemin)}
.kadro.kart .kadro-kurum .bh-logo-koyu{background:var(--aksan);border-color:var(--aksan)}
/* Kesik yazı yok (unvan süzgeci turu, 9 Eki 2026): kutular içeriği kadar genişler, sığmayan alt satıra iner ve satırı doldurur;
   "Ortaöğretim", "Afyonkarahisar" 360–1440 px her genişlikte tam okunur. */
.kadro.kart .kadro-bilgi{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.kadro.kart .kadro-bilgi li{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:max-content;padding:10px;border-radius:12px;background:var(--bilgi-kutu-zemin)}
.kadro.kart .kadro-bilgi b{font-size:13px;font-weight:800;color:var(--metin);line-height:1.35;white-space:nowrap}
.kadro.kart .kadro-bilgi b.kb-sayi{font-size:20px;line-height:1.1;color:var(--aksan)}
.kadro.kart .kadro-bilgi span{font-size:11.5px;color:var(--ucuncul)}
.kadro.kart .kadro-bilgi.bos{display:block;margin:0;font-size:13px;color:var(--ucuncul)}
.kadro-etiketler{display:flex;flex-wrap:wrap;gap:6px}
.kadro.kart .etiket-tum-bolum{background:var(--aksan-zemin);border-color:var(--aksan-kenar);color:var(--aksan-koyu)}
.kadro.kart .etiket-cerceve{height:26px;font-size:12.5px}
.kadro.kart .kadro-rozet{display:flex;margin-top:auto}
.kadro.kart .kadro-rozet:empty{display:none}
.kadro.kart .rozet-nokta.kart-uygun,.kadro.kart .rozet-nokta.kart-karar,.kadro.kart .kadro-rozet .rozet-nokta.iptal{flex:1;justify-content:center;height:38px}

/* ---- kurum kartı ---- */
.kurum-kapak{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;min-height:92px;padding:18px 18px 0;background:var(--t-zemin)}
.kurum.kart .bh{position:relative;z-index:1;width:60px;height:60px;margin-bottom:-34px;border-radius:18px;border:3px solid var(--beyaz);background:var(--beyaz);
  color:var(--t-metin);font-size:18px;box-shadow:var(--golge-tarih)}
.kurum.kart .bh-logo{padding:6px}
.kurum.kart .bh-logo-koyu{background:var(--aksan)}
.kurum-takip{margin:0;align-self:flex-start}
.takip-pill{position:relative;display:inline-flex;align-items:center;height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--takip-zemin);
  color:var(--metin);font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;text-decoration:none}
.takip-pill::after{content:"";position:absolute;inset:-6px -4px}  /* dokunma alanı 44 px */
.takip-pill:hover{background:var(--beyaz);color:var(--aksan-koyu);text-decoration:none}
.takip-pill.on{background:var(--aksan);color:var(--beyaz)}
.kurum-govde{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;padding:46px 18px 18px}
.kurum.kart h3{margin:0;font-size:16.5px;font-weight:800;line-height:1.3}
.kurum.kart h3 a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.kurum.kart .tur{margin:0;font-size:13px;color:var(--ucuncul)}
.kurum.kart .kurum-alt{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:14px;border:0}
.kurum-sayilar{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.kurum-sayilar .acik,.kurum-sayilar .yok{font-size:13px;font-weight:600;color:var(--govde)}
.kurum-sayilar b{margin-right:4px;font-size:26px;font-weight:800;line-height:1;color:var(--t-metin)}
.kurum-sayilar .yok b{color:var(--ucuncul)}
.kurum-sayilar .toplam{font-size:12.5px;color:var(--ucuncul)}
.kurum-cubuk{height:6px;border-radius:999px;background:var(--cubuk-zemin);overflow:hidden}
.kurum-cubuk span{display:block;height:100%;border-radius:inherit;background:var(--t-metin)}
@media (prefers-reduced-motion:reduce){.ilan.kart:hover,.kadro.kart:hover,.kurum.kart:hover{transform:none}}
/* "Neden?" listesi (karar kuralı turu, 9 Eki 2026): ✓ karşılanıyor · ✗ karşılanmıyor · ? belli değil — docs/kpss/10 */
.ilan.kart .neden-liste{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;line-height:1.45;color:var(--ikincil)}
.ilan.kart .neden{display:inline-flex;align-items:flex-start;gap:5px;min-width:0}
.ilan.kart .neden .im{width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px}
.ilan.kart .neden.ok .im{background:var(--uygun-zemin);color:var(--uygun-metin)}
.ilan.kart .neden.bad .im{background:var(--hayir-zemin);color:var(--hayir-metin)}
.ilan.kart .neden.ask .im{background:var(--uyari-zemin);color:var(--uyari-metin)}
.ilan.kart .neden .gorunmez{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
