:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#FAFAF7;color:#131312}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}.watchbar{gap:6px}
.watchbar .wall{border:1px solid var(--line);border-radius:var(--r-cip);padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface);transition:background .14s,color .14s}
.watchbar .wall.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.wchip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-cip);overflow:hidden}
.wchip button{font-size:12px;color:var(--muted);padding:5px 4px 5px 11px}
.wchip button:hover{color:var(--text)}
.wchip .x{padding:5px 9px 5px 4px;color:var(--faint);font-size:14px;line-height:1}
.wchip .x:hover{color:var(--crit)}
.wnote{font-size:11px;color:var(--faint);margin-left:4px;max-width:52ch;line-height:1.5}
#ev-watch-add{border:1px dashed var(--line2);border-radius:var(--r-cip);padding:5px 12px;font-size:12px;color:var(--muted);transition:color .14s,border-color .14s}
#ev-watch-add:hover{color:var(--accent);border-color:var(--accent)}
.ph .out{display:flex;gap:8px;align-items:center;margin-left:4px}
.seg{display:inline-flex;background:var(--surface2);border-radius:var(--r-cip);padding:2px;gap:2px}
.seg button{font-size:11.5px;font-weight:550;color:var(--muted);border-radius:var(--r-cip);padding:3px 11px;border:0;transition:background .14s,color .14s}
.seg button:hover{color:var(--text)}
.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh1);font-weight:600}

/* Kompakt görünüm: tarama için. 185 kayıtta sayfa 50.000 px'den ~13.000 px'e iner. */
.ev-mini{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.5}
.ev-mini b{font-weight:600;color:var(--text)}
.ev-mini .na{color:var(--faint);font-style:italic}
.ev-mini .pt.ok{color:var(--ok);font-weight:600}
.ev-mini .pt.warn{color:var(--high);font-weight:600}
.ev-mini .pt.na{color:var(--faint)}
.ev-mini .cv{font-variant-numeric:tabular-nums}
.ev-mini .cv.c9{color:var(--crit);font-weight:600}
.ev-mini .cv.c7{color:var(--high);font-weight:600}
.ev-mini .more{font-size:11.5px;color:var(--accent);border-bottom:1px dashed currentColor;padding:0}
.ev-tri{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.ev-tri span{font-size:10.5px;line-height:1.6;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--faint);white-space:nowrap}
.ev-tri span.hot{border-color:var(--high);color:var(--high);font-weight:600}
.ev-tri .cwe{border-style:dashed}
.ev-tri .rw{border-color:var(--crit);color:var(--crit);font-weight:700}
.ev-tri .due{border-color:var(--med);color:var(--med)}
.ev-tri .trend.up{border-color:var(--crit);color:var(--crit);font-weight:700}
.ev-tri .trend.dn{border-color:var(--ok);color:var(--ok)}
.ev-mini .adv{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.evl:not(.compact) .ev-mini{display:none}
.evl.compact .ev-card{padding:11px 20px;gap:2px 16px;align-items:baseline}
.evl.compact .ev-card p,.evl.compact .evfacts,.evl.compact .srcs,.evl.compact .evwait,
.evl.compact .ev-card .meta,.evl.compact .ev-card .when div,.evl.compact .ev-card .when .wl,
.evl.compact .ev-base{display:none}
.evl.compact .ev-card h3{font-size:14.5px;margin:2px 0 0}
.evl.compact .ev-new{margin-bottom:0}
.evl.compact .ev-src2,.evl.compact .ev-kevb{margin-bottom:0}

/* dağılım kutuları artık filtre düğmesi */
.bk{cursor:pointer;text-align:left;font-family:inherit}
.bk.on{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}

#to-top{position:fixed;right:18px;bottom:18px;z-index:30;width:42px;height:42px;border-radius:var(--r-cip);
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh2);color:var(--muted);
  font-size:16px;line-height:1;display:none;align-items:center;justify-content:center;transition:color .14s,border-color .14s}
#to-top:hover{color:var(--accent);border-color:var(--accent)}
#to-top.show{display:flex}
.ph .out button,.ph .out a{font-size:11.5px;font-weight:550;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-cip);padding:3px 10px;text-decoration:none;transition:color .14s,border-color .14s}
.ph .out button:hover,.ph .out a:hover{color:var(--accent);border-color:var(--accent)}
.nplayers{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.nplayers .lbl{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-right:4px}
.pchip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-cip);padding:5px 11px;font-size:12.5px;font-weight:550;color:var(--muted);display:inline-flex;align-items:center;gap:5px;transition:background .14s,color .14s,border-color .14s}
.pchip:hover{color:var(--text);border-color:var(--line2)}
.pchip.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.pchip.multi{border-color:var(--accent)}
.pchip .n{font-family:"IBM Plex Mono",monospace;font-size:10.5px;opacity:.7}
.pchip i{font-style:normal;font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 4px}
.pchip.on i{background:var(--bg);color:var(--text)}
.pnote{flex-basis:100%;font-size:11px;color:var(--faint);line-height:1.5;margin-top:2px}
/* WCAG 2.2 AA · 2.5.8 Hedef Boyutu: tıklanabilir hedef en az 24×24 CSS px
   olmalı. Bu düğmeler 20 px yüksekliğindeydi ve cümle içi bağlantı muafiyeti
   kapsamına girmiyorlar (haber kartının altında ayrı bir sıra hâlinde duruyor,
   çevrelerinde metin yok). Ölçüm: mobil genişlikte 10 hedef sınırın altındaydı.
   Yazı boyutu ve görünüm korunur; yalnızca dokunma alanı büyütülür. */
.nw .cmini{font:inherit;color:var(--muted);padding:2px 0;min-height:24px;display:inline-flex;align-items:center;border-bottom:1px dotted var(--line2)}
.nw .cmini:hover{color:var(--accent);border-color:var(--accent)}
.nw .cmini+.cmini::before{content:" · ";color:var(--faint);border:0}
.nw .rk .dtag{display:block;font-size:10.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 6px;white-space:nowrap}
#nhead .clr{font-size:11.5px;font-weight:600;color:var(--accent);border-bottom:1px dashed currentColor;margin-left:10px;padding:0}
.nw .cont{display:inline-block;font-size:10.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-cip);padding:2px 9px;margin-left:8px;cursor:help}
.vnrow{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:center}
.vnrow .lbl{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.07em;font-weight:600;margin-right:4px}
.vchip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-cip);padding:5px 12px;font-size:12.5px;font-weight:550;color:var(--muted);display:inline-flex;align-items:center;gap:6px;transition:background .14s,color .14s,border-color .14s;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vchip:hover:not(:disabled){color:var(--text);border-color:var(--line2)}
.vchip.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.vchip .n{font-family:"IBM Plex Mono",monospace;font-size:10.5px;opacity:.7}
.vchip.off{opacity:.45;cursor:not-allowed}
.vchip.stale{border-style:dashed;border-color:var(--high)}
.vchip.stale::after{content:"·";color:var(--high);font-weight:700}
.vnpanel{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface2) 45%,transparent)}
.vnhead{padding:12px 20px 8px;font-size:13px;color:var(--muted)}
.vnhead .sg{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.vnitem{display:grid;grid-template-columns:96px 1fr;gap:4px 16px;padding:12px 20px;border-top:1px solid var(--line)}
.vnitem .d{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.vnitem h4{margin:4px 0 0;font-size:14.5px;font-weight:600;line-height:1.4;letter-spacing:-.012em;overflow-wrap:anywhere}
.vnitem h4 a{text-decoration:none}
.vnitem h4 a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.vnitem p{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.vnitem .s{margin-top:6px;font-size:11px;color:var(--faint)}
.vnitem .k{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.03em;border-radius:var(--r-cip);padding:2px 9px;background:var(--surface2);color:var(--muted)}
.vnitem .k.product{background:var(--accent-soft);color:var(--accent)}
.vnitem .k.report{background:var(--med-soft);color:var(--med)}
.vnitem .k.threat{background:var(--crit-soft);color:var(--crit)}
.vnitem .k.vuln{background:var(--high-soft);color:var(--high)}
.vnitem .k.ai{background:var(--ok-soft);color:var(--ok)}
.vnitem .k.en{background:transparent;border:1px dashed var(--line2);color:var(--faint);font-weight:600;margin-left:5px}
.vnitem .k.also{background:var(--accent-soft);color:var(--accent);margin-left:5px;cursor:help}
.vnitem .k.crypto{background:var(--med-soft);color:var(--med)}
.vnitem .k.identity{background:var(--accent-soft);color:var(--accent)}
.vnitem .k.ops,.vnitem .k.cloud{background:var(--surface3);color:var(--muted)}
.vnitem .orig{color:var(--faint);font-style:italic}
.vnhead .old{display:block;margin-top:4px;color:var(--high);font-weight:600}
.vnhead .beyan{display:block;margin-top:5px;color:var(--med);font-weight:600}
.vnrow .vnote{flex-basis:100%;font-size:11px;color:var(--faint);line-height:1.5;margin-top:2px}
@media (max-width:640px){.vnitem{grid-template-columns:1fr}}
.canli{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:700;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:2px 9px;cursor:help}
.evbreak{padding:8px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.evbreak .sg{margin-top:8px;line-height:1.6}
.bkhead{font-size:12.5px;margin-bottom:8px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.bkhead .srt{color:var(--faint);font-size:11px}
.bkrow{display:flex;gap:8px;flex-wrap:wrap}
.bk{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--r2);padding:10px 14px;font-size:12px;line-height:1.3;min-width:134px;background:var(--surface);transition:border-color .14s}
.bk:hover{border-color:var(--line2)}
.bk b{font-size:19px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bk i{font-style:normal;font-size:10px;color:var(--faint);letter-spacing:.02em}
.bk.kev_added{border-color:var(--crit);background:var(--crit-soft)}
.bk.kev_added b{color:var(--crit)}
.bk.poc_published b{color:var(--high)}
.bk.patch_published b{color:var(--ok)}
.bk.new_vuln b{color:var(--accent)}
.evbreak .ev-kevb{margin:0 2px;vertical-align:baseline}
#ev-range button .n{display:inline-block;margin-left:7px;padding:0 6px;border-radius:var(--r-cip);background:color-mix(in srgb,var(--faint) 20%,transparent);font-size:10.5px;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
#ev-range button.on .n{background:color-mix(in srgb,var(--bg) 26%,transparent)}
#vd-body p.sum{color:var(--text);font-size:13.5px;line-height:1.55;margin:-4px 0 12px}
details.arch{border-top:1px solid var(--line);margin:0}
details.arch>summary{cursor:pointer;list-style:none;padding:14px 20px;font-weight:550;font-size:13px;color:var(--muted);display:flex;gap:9px;align-items:center;transition:color .14s,background .14s}
details.arch>summary:hover{color:var(--text)}
details.arch>summary::-webkit-details-marker{display:none}
details.arch>summary::before{content:"▸";opacity:.6}
details.arch[open]>summary::before{content:"▾"}

details.arch .ac{display:none}
details.arch[open] .ao{display:none}
details.arch[open] .ac{display:inline}
details.arch .tblwrap{border-top:1px solid var(--line);max-height:70vh;overflow:auto}


/* Fontlar yerelden. Google Fonts her ziyaretçinin IP adresini Google'a
   iletiyordu; panonun tek üçüncü taraf bağımlılığı ve tek veri sızıntısı oydu.
   Inter değişken sürüm: 400-700 aralığının tamamı tek dosyada — sabit ağırlıklı
   dört dosya 559 KB tutuyordu, bu kurulum 167 KB. */
/* TÜRKÇE GLİF ALT KÜMESİ — 10 Ekim 2026'da ölçülerek kuruldu.
   146 HTML sayfası ve bütün JSON verisi tarandı: latin-ext aralığında
   88 bin karakter içinde yalnızca 20 farklı glif kullanılıyor ve bunların
   6'sı Türkçe (ı zaten latin alt kümesinde). Kalan 14'ü kaynak
   başlıklarındaki Letonca/Çekçe/Lehçe adlardan geliyor ve TOPLAM 44 kez
   görünüyor.
   Yani Inter'in 83 KB'lik latin-ext dosyası, beş glif (ğ Ğ ş Ş İ) için
   her sayfada iniyordu. Alt küme üretildi: 83 KB → 3 KB.
   İKİ KATMAN, ÇAKIŞMAYAN ARALIK: dar Türkçe alt kümesi her zaman iner
   (3 KB), tam latin-ext yalnızca o nadir 14 glifden biri sayfada geçerse
   iner. unicode-range'ler kesişmediği için tarayıcı doğru olanı seçer ve
   hiçbir glif kaybolmaz. */
/* NADİR GLİF ALT KÜMESİ. Ana sayfanın HTML'inde bu glifler yok ama
   tarayıcı yine de 83 KB'lik latin-ext'i indiriyordu: görünümler
   haber başlıklarını JSON'dan İSTEMCİDE çiziyor ve č ā ł ž oradan
   geliyor. Ölçülen 14 glif kendi 4,7 KB'lik dosyasına alındı; tam
   latin-ext yalnızca bu 19'un dışında bir glif çıkarsa iner — yani
   yeni bir dil gelse bile hiçbir karakter kaybolmaz. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-400-700-ext2.woff2) format('woff2');unicode-range:U+0101, U+0113, U+0123, U+012B, U+010C-010D, U+011B, U+0142, U+0151, U+0160-0161, U+016B, U+016F, U+017E}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-ext2.woff2) format('woff2');unicode-range:U+0101, U+0113, U+0123, U+012B, U+010C-010D, U+011B, U+0142, U+0151, U+0160-0161, U+016B, U+016F, U+017E}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-ext2.woff2) format('woff2');unicode-range:U+0101, U+0113, U+0123, U+012B, U+010C-010D, U+011B, U+0142, U+0151, U+0160-0161, U+016B, U+016F, U+017E}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-400-700-tr.woff2) format('woff2');unicode-range:U+011E-011F, U+015E-015F, U+0130}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-tr.woff2) format('woff2');unicode-range:U+011E-011F, U+015E-015F, U+0130}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-tr.woff2) format('woff2');unicode-range:U+011E-011F, U+015E-015F, U+0130}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100, U+0102-010B, U+010E-0112, U+0114-011A, U+011C-011D, U+0120-0122, U+0124-012A, U+012C-012F, U+0131-0141, U+0143-0150, U+0152-015D, U+0162-016A, U+016C-016E, U+0170-017D, U+017F-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100, U+0102-010B, U+010E-0112, U+0114-011A, U+011C-011D, U+0120-0122, U+0124-012A, U+012C-012F, U+0131-0141, U+0143-0150, U+0152-015D, U+0162-016A, U+016C-016E, U+0170-017D, U+017F-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-400-700-latin-ext.woff2) format('woff2');unicode-range:U+0100, U+0102-010B, U+010E-0112, U+0114-011A, U+011C-011D, U+0120-0122, U+0124-012A, U+012C-012F, U+0131-0141, U+0143-0150, U+0152-015D, U+0162-016A, U+016C-016E, U+0170-017D, U+017F-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Inter-400-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}



:root{
  --bg:#FAFAF7; --surface:#FFFFFF; --surface2:#F3F3EF; --surface3:#EBEBE5; --line:#E8E8E1; --line2:#D8D8D0;
  --text:#131312; --muted:#5E5E57; --faint:#71716A;
  --accent:#1F4FD8; --accent-soft:#EDF1FF;
  --crit:#BE2320; --crit-soft:#FBEAE9; --high:#B4520C; --high-soft:#FBEFE4;
  --med:#8A5B00; --med-soft:#FAF2DA; --info:#1F4FD8; --info-soft:#EDF1FF; --ok:#12724A; --ok-soft:#E4F3EB;
  --sh1:0 1px 2px rgba(19,19,18,.04), 0 1px 3px rgba(19,19,18,.03);
  --sh2:0 1px 2px rgba(19,19,18,.05), 0 10px 28px -12px rgba(19,19,18,.16);
  --r-cip:4px;--on-accent:#FFFFFF;--r:8px; --r2:6px; --r3:4px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0D0D0C; --surface:#161615; --surface2:#1E1E1C; --surface3:#262623; --line:#292926; --line2:#3A3A35;
    --text:#EDEDE9; --muted:#A5A59E; --faint:#9A9A92;
    --accent:#8AADFF; --accent-soft:#18213A;
    --crit:#F58585; --crit-soft:#33191A; --high:#F0A368; --high-soft:#331F13;
    --med:#DFBB53; --med-soft:#2E270F; --info:#8AADFF; --info-soft:#18213A; --ok:#63CE93; --ok-soft:#10291C;
    --sh1:0 1px 2px rgba(0,0,0,.5); --sh2:0 2px 6px rgba(0,0,0,.45), 0 14px 32px -14px rgba(0,0,0,.7);
    --r-cip:4px;--on-accent:#FFFFFF;--r:8px; --r2:6px; --r3:4px;
  }
}
:root[data-theme="dark"]{
  --bg:#0D0D0C; --surface:#161615; --surface2:#1E1E1C; --surface3:#262623; --line:#292926; --line2:#3A3A35;
  --text:#EDEDE9; --muted:#A5A59E; --faint:#9A9A92;
  --accent:#8AADFF; --accent-soft:#18213A;
  --crit:#F58585; --crit-soft:#33191A; --high:#F0A368; --high-soft:#331F13;
  --med:#DFBB53; --med-soft:#2E270F; --info:#8AADFF; --info-soft:#18213A; --ok:#63CE93; --ok-soft:#10291C;
  --sh1:0 1px 2px rgba(0,0,0,.5); --sh2:0 2px 6px rgba(0,0,0,.45), 0 14px 32px -14px rgba(0,0,0,.7);
  --r-cip:4px;--on-accent:#FFFFFF;--r:8px; --r2:6px; --r3:4px;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--text);font:15px/1.6 "Inter",system-ui,-apple-system,"Segoe UI",sans-serif;padding-inline:clamp(16px,3.5vw,44px);padding-block:0 96px;max-width:1320px;margin:0 auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.006em}
::selection{background:var(--accent);color:var(--on-accent)}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vtOut .18s ease both}
  ::view-transition-new(root){animation:vtIn .24s cubic-bezier(.2,.7,.3,1) both}
}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:12px;top:12px;z-index:100;background:var(--accent);color:var(--on-accent);padding:10px 18px;border-radius:10px;font-weight:600;text-decoration:none;box-shadow:var(--sh2);
  transform:translateY(-200%);transition:transform .16s cubic-bezier(.2,.7,.3,1)}
.skip:focus,.skip:focus-visible{transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.skip{transition:none}}
main:focus{outline:none}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:99px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--faint)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media (prefers-contrast:more){
  :root{--line:#9A9A94;--line2:#6B6B65;--faint:#4A4A45;--muted:#2A2A27}
  :root:not([data-theme="light"]){--line:#5A5A55;--line2:#7A7A74;--faint:#C8C8C2;--muted:#DCDCD6}
  .ev-card,.kpi,section.panel{border-width:1px}
  .chip,.trsort button,.layers button{border-width:1.5px}
}
@media print{
  .top,.nav,.filters,#to-top,.ph .out,.trsort,.trfilt,.evbreak,.skip,.drawer{display:none!important}
  body{background:#fff;color:#000;padding:0;max-width:none;font-size:11pt}
  section.panel,details.arch{break-inside:avoid;box-shadow:none;border:1px solid var(--line2)}
  .ev-card{break-inside:avoid;content-visibility:visible}
  .evl.compact .ev-card p,.evl.compact .evfacts{display:block}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:var(--faint)}
  .hero h2{font-size:18pt}
}
/* Sekme değişiminde kısa bir yumuşama: display:none -> block geçişinde animasyon
   yeniden başlar. 'both' ile bitiş durumu transform:none kalır, içerideki
   position:sticky başlıklar bozulmaz. */
@keyframes vin{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  #view-overview,#view-news,#view-vuln,#view-cti,#view-kons,#view-ai,#view-ransom,#view-cyber,#view-okuma{
    animation:vin .3s cubic-bezier(.2,.7,.3,1) both}
}
a{color:inherit}
.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
h1,h2,h3{margin:0;text-wrap:balance}
p,li,.ev-mini,.evfacts{text-wrap:pretty}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);padding-block:14px 12px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
.brand{display:flex;align-items:center;gap:10px;flex:none}
.brand h1{font-size:17px;font-weight:650;letter-spacing:-.025em;white-space:nowrap}
.brand h1::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-right:9px;vertical-align:1px}
.brand .sub{color:var(--muted);font-size:13px;font-weight:400}
.status{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--faint);font-size:11.5px;flex:none;white-space:nowrap}
.thm{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:color .14s,border-color .14s}
.thm:hover{color:var(--text);border-color:var(--line2)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.dot.idle{background:var(--faint);box-shadow:0 0 0 3px var(--surface2)}
.filters{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin:22px 0 -4px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-cip);padding:5px 13px;font-size:12.5px;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:6px;transition:background .14s ease,color .14s ease,border-color .14s ease}
.chip:hover{background:var(--surface2);color:var(--text);border-color:var(--line2)}
.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.chip .go{color:var(--accent);font-weight:700;margin-left:2px}
.chip .n{font-family:"IBM Plex Mono",monospace;font-size:11px;opacity:.75}

/* kpi */

/* Görünüm kapsayıcıları konteyner bağlamı olur: içlerindeki bileşenler
   EKRANIN değil KENDİ kutularının genişliğine tepki verir. Katlanabilir
   ekranda, bölünmüş pencerede ve yan panelde doğru olan budur. */
main > div[id^="view-"] { container-type: inline-size; container-name: gorunum; }
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;margin-block:22px}
.kpi{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 15px;box-shadow:var(--sh1);overflow:hidden}
.kpi::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--line2);opacity:.9}
.kpi .l{font-size:11px;color:var(--faint);font-weight:600;letter-spacing:.055em;text-transform:uppercase}
.kpi .v{font-size:34px;font-weight:680;line-height:1.05;margin-top:8px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.kpi .d{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.45}
/* Renk yükü tek odakta: yalnızca en acil KPI'nin rakamı renkli, diğerlerinde
   anlamı 2px'lik üst şerit taşır. Böylece satır sakin kalır, göz bir yere gider. */
.kpi.crit::before{background:var(--crit)} .kpi.crit .v{color:var(--crit)}
.kpi.high::before{background:var(--high)}
.kpi.accent::before{background:var(--accent)}
.kpi[data-go]{cursor:pointer;transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,border-color .18s}
.kpi[data-go]:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--line2)}
.kpi[data-go] .d::after{content:" →";color:var(--faint);transition:color .18s}
.kpi[data-go]:hover .d::after{color:var(--accent)}
.panel.flash{outline:2px solid var(--accent);outline-offset:2px;transition:outline-color .8s}
.afilters{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line)}
.afilters .chip{padding:3px 10px}

/* layout */
.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px}
@media (max-width:900px){.grid{grid-template-columns:1fr}}
.col{display:flex;flex-direction:column;gap:20px;min-width:0}
section.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0;overflow:hidden;box-shadow:var(--sh1)}
.ph{display:flex;align-items:baseline;gap:10px;padding:16px 20px 14px;border-bottom:1px solid var(--line)}
.ph h2{font-size:16px;font-weight:650;letter-spacing:-.018em}
.ph .cnt{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.ph .right{margin-left:auto;font-size:11.5px;color:var(--faint);max-width:62ch;text-align:right;line-height:1.5}
@media (max-width:720px){
  .ph{flex-wrap:wrap;gap:6px 10px}
  .ph .right{margin-left:0;order:3;width:100%;text-align:left;max-width:none}
  .ph .out{margin-left:auto}
}
.list{display:flex;flex-direction:column}
.item{display:grid;grid-template-columns:3px 1fr;gap:0 16px;padding:14px 18px 14px 0;border-bottom:1px solid var(--line);transition:background .14s}
.item:hover{background:color-mix(in srgb,var(--surface2) 55%,transparent)}
.item:last-child{border-bottom:0}
.item .stripe{border-radius:0 2px 2px 0;background:var(--line)}
.item.critical .stripe{background:var(--crit)}
.item.high .stripe{background:var(--high)}
.item.medium .stripe{background:var(--med)}
.item.info .stripe{background:var(--info)}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:11px;color:var(--muted);margin-bottom:4px}
.tag{border-radius:4px;padding:1px 6px;font-weight:600;font-size:11px;letter-spacing:.02em}
.tag.critical{background:var(--crit-soft);color:var(--crit)}
.tag.high{background:var(--high-soft);color:var(--high)}
.tag.medium{background:var(--med-soft);color:var(--med)}
.tag.info{background:var(--info-soft);color:var(--info)}
.tag.vendor{background:var(--surface2);color:var(--text)}
.tag.action{background:var(--accent-soft);color:var(--accent)}
.tag.sample{border:1px dashed var(--line);color:var(--faint);font-weight:500}
.item h3{font-size:14.5px;font-weight:600;line-height:1.4;letter-spacing:-.012em}
.item h3 a{text-decoration:none}
.item h3 a:hover{text-decoration:underline}
.item p{margin:4px 0 0;color:var(--muted);font-size:13px;max-width:70ch}
.empty{padding:20px 16px;color:var(--faint);font-size:13px}

/* tabs */
.tabs{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{padding:6px 10px;font-size:13px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tab.on{color:var(--text);border-bottom-color:var(--accent)}

/* regs */
.regs{display:flex;flex-direction:column}
.reg{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:start}
.reg:last-child{border-bottom:0}
.reg .cd{text-align:center;border-radius:6px;padding:6px 4px;background:var(--surface2)}
.reg .cd b{display:block;font-size:20px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.reg .cd small{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.reg.due .cd{background:var(--crit-soft)} .reg.due .cd b{color:var(--crit)}
.reg.soon .cd{background:var(--high-soft)} .reg.soon .cd b{color:var(--high)}
.reg.live .cd{background:var(--ok-soft)} .reg.live .cd b{color:var(--ok);font-size:13px;padding-block:4px}
.reg.wait .cd{background:var(--med-soft)} .reg.wait .cd b{color:var(--med);font-size:13px;padding-block:4px}
.reg h3{font-size:13px;font-weight:600}
.reg p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.reg .date{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}

/* stack */

.regulators{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line)}
.regulator{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.regulator .n{font-weight:600;font-size:13px}
.regulator .n a{text-decoration:none}
.regulator .n a:hover{text-decoration:underline}
.regulator .w{font-size:11px;color:var(--muted)}
.regulator .last{font-size:12px;margin-top:4px;padding-top:6px;border-top:1px dashed var(--line)}
.regulator .last .mono{color:var(--faint);font-size:11px;display:block}
.regulator.alert .n::before,.regulator.warn .n::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--crit);vertical-align:1px}
.regulator.warn .n::before{background:var(--high)}
.breaches{display:flex;flex-direction:column}
.breach{display:grid;grid-template-columns:78px 1fr;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:13px;align-items:baseline}
.breach:last-child{border-bottom:0}
.breach .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.breach a{text-decoration:none}
.breach a:hover{text-decoration:underline}
.breach .x{font-size:11px;color:var(--muted)}
.insight{padding:10px 16px;background:var(--accent-soft);color:var(--text);font-size:12px;border-bottom:1px solid var(--line)}
.insight b{color:var(--accent)}
.rw{display:grid;grid-template-columns:78px 1fr auto;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:13px;align-items:baseline}
.rw:last-child{border-bottom:0}
.rw.hot .v{color:var(--high)}
.rw .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.rw .v{font-weight:500}
.rw .sec{font-size:11px;color:var(--muted);margin-left:6px}
.rw .g{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--crit-soft);color:var(--crit);border-radius:4px;padding:1px 6px;white-space:nowrap}
.groups{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line)}
.groups span{font-family:"IBM Plex Mono",monospace;font-size:11px;border:1px solid var(--line);border-radius:4px;padding:2px 7px;color:var(--muted)}
.groups span b{color:var(--text);font-weight:600}
.tag.ot{background:var(--info-soft);color:var(--info);border:1px solid transparent}
.otsrc{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-top:1px solid var(--line)}
.otsrc a{font-size:11px;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:4px;padding:2px 7px}
.otsrc a:hover{color:var(--text);border-color:var(--text)}
/* views */
/* Dokuz sekme yatayda 1343 piksel istiyor, kapsayıcı en fazla 1288 veriyor:
   şerit HİÇBİR ekran boyutunda sığmıyordu. Yatay kaydırma vardı ama
   kaydırma çubuğu gizlendiği için kaydığına dair hiçbir işaret yoktu;
   dokuzuncu sekme (Okuma Listesi) kullanıcıya görünmüyordu.
   Geniş ekranda şerit artık SARIYOR — hepsi aynı anda görünür.
   Dar ekranda sarmak 5 satır nav demek olurdu; orada kaydırma kalır ama
   kenar solmasıyla devamı olduğu belli edilir. */
.nav{display:flex;flex-wrap:wrap;gap:2px;order:3;width:100%;margin:2px 0 0;min-width:0;padding:3px;background:var(--surface2);border-radius:var(--r);scrollbar-width:none;-ms-overflow-style:none}
.nav::-webkit-scrollbar{display:none}
.nav button{padding:6px 10px;border-radius:var(--r-cip);font-weight:500;font-size:13px;color:var(--muted);border:0;white-space:nowrap;transition:background .16s ease,color .16s ease;display:inline-flex;align-items:center;gap:6px}
.nav button:hover{color:var(--text)}
.nav button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh1);font-weight:600}
.nav button .b{display:inline-block;min-width:17px;padding:0 5px;border-radius:var(--r-cip);background:color-mix(in srgb,var(--faint) 22%,transparent);color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:10.5px;line-height:17px;text-align:center}
.nav button.on .b{background:var(--text);color:var(--bg)}
.nav button{flex:1 1 auto;justify-content:center}
@media (max-width:760px){
  .nav{flex-wrap:nowrap;overflow-x:auto;border-radius:var(--r-cip)}
  .nav button{flex:0 0 auto}
  .nav.kaydir-sag{mask-image:linear-gradient(to right,#000 86%,transparent)}
  .nav.kaydir-sol{mask-image:linear-gradient(to left,#000 86%,transparent)}
  .nav.kaydir-sag.kaydir-sol{mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
}
/* Okuma listesi görünümü. Mevcut kurallar eşli yazılmış; dokuzuncu görünüm
   için ikisi yeterli: kendisi yalnızca seçiliyken görünür, seçiliyken de
   diğerlerinin hepsi gizlenir. */
html:not([data-view="okuma"]) #view-okuma{display:none}
[data-view="okuma"] #view-overview,[data-view="okuma"] #view-news,[data-view="okuma"] #view-vuln,
[data-view="okuma"] #view-cti,[data-view="okuma"] #view-kons,[data-view="okuma"] #view-ai,
[data-view="okuma"] #view-ransom,[data-view="okuma"] #view-cyber,[data-view="okuma"] .filters{display:none}
[data-view="overview"] #view-ransom, [data-view="ransom"] #view-overview, [data-view="ransom"] .filters{display:none}
.rgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px}
@media (max-width:900px){.rgrid{grid-template-columns:1fr}}
.srcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line)}
.src{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.src .n{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}
.src .n a{text-decoration:none}
.src .n a:hover{text-decoration:underline}
.src .k{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:1px 6px;border-radius:3px;background:var(--surface2);color:var(--muted)}
.src .k.api{background:var(--ok-soft);color:var(--ok)}
.src .k.x{background:var(--info-soft);color:var(--info)}
.src .k.paid{background:var(--med-soft);color:var(--med)}
.src .w{font-size:12px;color:var(--muted)}
.src .st{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.bars{padding:8px 16px 12px;display:flex;flex-direction:column;gap:5px}
.bar{display:grid;grid-template-columns:110px 1fr 28px;gap:8px;align-items:center;font-size:12px}
.bar .lbl{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .trk{height:12px;background:var(--surface2);border-radius:0 4px 4px 0;overflow:hidden}
.bar .fil{height:100%;background:var(--info);border-radius:0 4px 4px 0;min-width:2px}
.bar .val{font-family:"IBM Plex Mono",monospace;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.bar:hover .fil{filter:brightness(1.15)}
.rfilters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line)}
.rfilters select,.rfilters input{font:inherit;font-size:12px;color:var(--text);background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:4px 8px}
.rfilters input{min-width:180px}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}
.tbl td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl td.d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);white-space:nowrap}
.tbl td.g span{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--crit-soft);color:var(--crit);border-radius:4px;padding:1px 6px;white-space:nowrap}
.tbl tr.hot td.v{color:var(--high);font-weight:600}
.tbl td.v a{text-decoration:none}
.tbl td.v a:hover{text-decoration:underline}
.tbl td .ds{display:block;font-size:11px;color:var(--faint);margin-top:2px;max-width:48ch}
.tblwrap{overflow-x:auto}
.claim{display:grid;grid-template-columns:78px 1fr;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:13px}
.claim:last-child{border-bottom:0}
.claim .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.claim .h{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:2px}
.claim .acct{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--info)}
.claim .tag{font-size:10px}
.claim p{margin:0;color:var(--muted);font-size:12px}
.claim a{text-decoration:none}
.claim a:hover{text-decoration:underline}
/* watchlist */
.months{display:flex;align-items:flex-end;gap:6px;padding:12px 16px 8px;height:120px}
.month{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.month .f{width:100%;background:var(--info);border-radius:4px 4px 0 0;min-height:2px}
.month .l{font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--muted)}
.month .n{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--text)}
.month:hover .f{filter:brightness(1.15)}
.gprof{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--line)}
.gp{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.gp .n{display:flex;align-items:baseline;gap:8px}
.gp .n b{font-size:13px}
.gp .n span{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}
.gp p{margin:0;font-size:12px;color:var(--muted)}
.gp .st{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.gp .st span{font-family:"IBM Plex Mono",monospace;font-size:10px;background:var(--surface2);border-radius:3px;padding:1px 5px;color:var(--text)}
/* CTI view */
[data-view="overview"] #view-cti, [data-view="ransom"] #view-cti, [data-view="cti"] #view-overview, [data-view="cti"] #view-ransom, [data-view="cti"] .filters{display:none}
/* Rapor Analizi 2026 görünümü */
[data-view="overview"] #view-kons, [data-view="ransom"] #view-kons, [data-view="cti"] #view-kons, [data-view="news"] #view-kons,
[data-view="kons"] #view-overview, [data-view="kons"] #view-ransom, [data-view="kons"] #view-cti, [data-view="kons"] .filters{display:none}
[data-view="overview"] #view-news, [data-view="ransom"] #view-news, [data-view="cti"] #view-news, [data-view="kons"] #view-news,
[data-view="news"] #view-overview, [data-view="news"] #view-ransom, [data-view="news"] #view-cti, [data-view="news"] #view-kons, [data-view="news"] .filters{display:none}
html:not([data-view="ai"]) #view-ai{display:none}
html:not([data-view="cyber"]) #view-cyber{display:none}
html:not([data-view="vuln"]) #view-vuln{display:none}
[data-view="vuln"] #view-overview, [data-view="vuln"] #view-ransom, [data-view="vuln"] #view-cti, [data-view="vuln"] #view-kons, [data-view="vuln"] #view-news, [data-view="vuln"] #view-ai, [data-view="vuln"] #view-cyber, [data-view="vuln"] .filters{display:none}
[data-view="ai"] #view-vuln, [data-view="cyber"] #view-vuln, [data-view="news"] #view-vuln, [data-view="cti"] #view-vuln, [data-view="kons"] #view-vuln, [data-view="ransom"] #view-vuln{display:none}
#view-vuln{display:flex;flex-direction:column;gap:20px;padding-top:28px}
[data-view="cyber"] #view-overview, [data-view="cyber"] #view-ransom, [data-view="cyber"] #view-cti, [data-view="cyber"] #view-kons, [data-view="cyber"] #view-news, [data-view="cyber"] #view-ai, [data-view="cyber"] .filters{display:none}
[data-view="ai"] #view-cyber{display:none}
#view-cyber{display:flex;flex-direction:column;gap:20px;padding-top:28px}
#view-cyber .kpis{margin:0;grid-template-columns:repeat(5,minmax(0,1fr))}

@media (max-width:640px){}
.stk{width:100%;border-collapse:collapse;font-size:13px} .stk th{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-weight:600;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none;position:sticky;top:0;background:var(--surface);z-index:1} .stk th.on{color:var(--text)} .stk th.num,.stk td.num{text-align:right;font-family:"IBM Plex Mono",monospace;font-size:12.5px}
.stk tbody tr{content-visibility:auto;contain-intrinsic-size:auto 56px}
.stk td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top} .stk tbody tr{transition:background .14s} .stk tbody tr[data-cve]{cursor:pointer}
.stk tbody tr[data-cve]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px} .stk tbody tr:hover td{background:var(--surface2)} .stk tr:last-child td{border-bottom:0}
.stk td .nm{font-weight:600} .stk td .sg{font-size:11.5px;color:var(--muted)} .stk td .tk{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}
.stk .up{color:var(--ok)} .stk .dn{color:var(--crit)} .stk tr.dim td{opacity:.55} .stk td.rk{font-family:"IBM Plex Mono",monospace;color:var(--accent);font-weight:700;width:30px}
.stk tr.hi td:first-child{box-shadow:inset 3px 0 0 var(--accent)}

@media (max-width:700px){.mstrip.kev{grid-template-columns:repeat(6,minmax(0,1fr))}}
#kev-tbl td .cve{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--accent);text-decoration:none} #kev-tbl td .cve:hover{text-decoration:underline}
#kev-tbl .rw{font-size:10px;background:var(--crit-soft);color:var(--crit);border-radius:3px;padding:1px 5px;margin-left:6px}
.evl{display:flex;flex-direction:column}
.ev-card{padding:18px 20px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:132px 1fr;gap:4px 20px;transition:background .16s ease;
  content-visibility:auto;contain-intrinsic-size:auto 265px}
.evl.compact .ev-card{contain-intrinsic-size:auto 92px}
.ev-card:last-child{border-bottom:0}
.ev-card:hover{background:color-mix(in srgb,var(--surface2) 60%,transparent)}
.ev-card .when{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);line-height:1.65;font-variant-numeric:tabular-nums}
.ev-card .when b{display:block;color:var(--text);font-size:12.5px;font-weight:500;letter-spacing:-.01em;margin-bottom:1px}
.ev-card .when .fs{color:var(--faint);font-size:10px;opacity:.8}
.ev-new{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.02em;border-radius:var(--r-cip);padding:3px 10px;margin-bottom:8px;vertical-align:middle}
.ev-new.kev_added{background:var(--crit-soft);color:var(--crit)}
.ev-new.poc_published{background:var(--high-soft);color:var(--high)}
.ev-new.patch_published{background:var(--ok-soft);color:var(--ok)}
.ev-new.new_vuln{background:var(--accent-soft);color:var(--accent)}
.ev-new.vendor_advisory{background:var(--med-soft);color:var(--med)}
.ev-new.ics_advisory{background:var(--high-soft);color:var(--high)}
.bk.vendor_advisory b{color:var(--med)}
.bk.ics_advisory b{color:var(--high)}
.evfacts{display:flex;flex-wrap:wrap;gap:10px 28px;margin:12px 0 2px;padding:11px 0 0;border-top:1px solid var(--line)}
.evfacts>span{display:flex;flex-direction:column;gap:2px;font-size:12.5px;line-height:1.35;font-weight:500}
.evfacts>span i{font-style:normal;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600}
.evfacts .pt{font-weight:600}
.evfacts .pt.ok{color:var(--ok)}
.evfacts .pt.warn{color:var(--high)}
.evfacts .pt.na{color:var(--faint);font-weight:500}
.evfacts .pt i{color:var(--faint)}
.evfacts .pt a{text-decoration:none;opacity:.75;white-space:nowrap}
.evfacts .pt{max-width:38ch}
.evwait{font-size:11.5px;color:var(--faint);margin:8px 0 0;line-height:1.5;font-style:italic}
.ev-src2{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);color:var(--faint);border-radius:var(--r-cip);padding:3px 9px;margin:0 0 8px 6px;vertical-align:middle}
.ev-kevb{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.02em;background:var(--crit);color:var(--on-accent);border-radius:var(--r-cip);padding:3px 9px;margin:0 0 8px 6px;vertical-align:middle}
.ev-card.kev{background:color-mix(in srgb,var(--crit-soft) 26%,transparent);box-shadow:inset 3px 0 0 var(--crit)}
.ev-card.kev:hover{background:color-mix(in srgb,var(--crit-soft) 52%,transparent)}
.ev-card h3{font-size:15.5px;font-weight:600;line-height:1.4;margin:3px 0 6px;letter-spacing:-.015em}
.ev-card h3 a.cve{font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:500;color:var(--muted);text-decoration:none}
.ev-card h3 a.cve:hover{color:var(--accent)}
.ev-card .meta{font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin:4px 0}
.ev-card .meta .k{font-family:"IBM Plex Mono",monospace}
.ev-card p{font-size:13px;line-height:1.6;color:var(--muted);margin:4px 0 0;max-width:86ch}
.ev-card .srcs{margin-top:12px;display:flex;gap:16px;flex-wrap:wrap;background:none;grid-template-columns:none}
.ev-card .srcs a{font-size:12px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line2);padding-bottom:1px;transition:color .14s,border-color .14s}
.ev-card .srcs a:hover{color:var(--accent);border-color:var(--accent)}
.ev-card .srcs .cplink{font-size:12px;color:var(--faint);border-bottom:1px dashed var(--line2);padding:0 0 1px;transition:color .14s}
.ev-card .srcs .cplink:hover{color:var(--accent);border-color:var(--accent)}
.ev-base{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.04em;border:1px dashed var(--line2);color:var(--faint);border-radius:var(--r-cip);padding:3px 9px;margin:0 0 8px 6px;vertical-align:middle}
.ev-empty{padding:26px 20px;color:var(--muted);font-size:13.5px}
.stale{background:var(--med-soft);color:var(--med);border-radius:4px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:6px}
@media (max-width:640px){.ev-card{grid-template-columns:1fr}}
.trsort,.trfilt{display:flex;gap:7px;padding:12px 20px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}
.trsort .lbl,.trfilt .lbl{font-size:10px;color:var(--faint);margin-right:4px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.trsort button{border:1px solid var(--line);border-radius:var(--r-cip);padding:6px 13px;font-size:12.5px;font-weight:550;background:var(--surface);color:var(--muted);transition:background .14s,color .14s,border-color .14s}
.trsort button:hover{color:var(--text);border-color:var(--line2)}
.trsort button.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}
.trfilt select,.trfilt input{font:inherit;font-size:12.5px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);max-width:200px;transition:border-color .14s}
.trfilt select:hover,.trfilt input:hover{border-color:var(--line2)}
.trk td{vertical-align:top} .trk tr{cursor:pointer} .trk tr:hover td{background:var(--surface2)}
.ev{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;border-radius:3px;padding:1px 6px;margin:1px 3px 1px 0;white-space:nowrap;border:1px solid transparent}
.ev.success{background:var(--crit-soft);color:var(--crit);border-color:var(--crit)}
.ev.poc{background:var(--high-soft);color:var(--high);border-color:var(--high)}
.ev.historic{background:var(--surface2);color:var(--muted)}
.ev.unknown{background:transparent;color:var(--faint);border-color:var(--line)}
.trk .un{color:var(--faint);font-style:italic;font-size:12px}
/* Native <dialog>: odak tuzağı, arka planın etkisizleştirilmesi ve Esc tarayıcıdan
   gelir; bunları elle yazmak gereksiz ve hataya açıktı. */
.drawer{border:0;padding:0;margin:0 0 0 auto;max-width:min(680px,100%);width:min(680px,100%);
  height:100dvh;max-height:100dvh;background:transparent;color:inherit;overflow:visible}
.drawer::backdrop{background:rgba(0,0,0,.5);backdrop-filter:blur(2px)}
.drawer .dbox{background:var(--surface);width:100%;height:100%;overflow-y:auto;padding:26px 28px 60px;position:relative;box-shadow:-8px 0 30px rgba(0,0,0,.18)}
@media (prefers-reduced-motion:no-preference){
  .drawer[open]{animation:dlgIn .24s cubic-bezier(.2,.7,.3,1)}
  .drawer[open]::backdrop{animation:bdIn .24s ease}
}
@keyframes dlgIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes bdIn{from{opacity:0}to{opacity:1}}
.drawer .dclose{position:absolute;top:14px;right:16px;font-size:18px;border:1px solid var(--line);border-radius:6px;width:32px;height:32px;background:var(--surface)}
.drawer h3{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0 6px 4px 0}
.drawer .kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:13.5px;margin:14px 0}
.drawer .kv dt{color:var(--muted)} .drawer .kv dd{margin:0}
.drawer .tl{border-left:2px solid var(--line);margin:8px 0 0;padding-left:14px}
.drawer .tl .e{position:relative;padding:8px 0;font-size:13px}
.drawer .tl .e::before{content:"";position:absolute;left:-19px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--muted)}
.drawer .tl .e.success::before{background:var(--crit)} .drawer .tl .e.poc::before{background:var(--high)}
.drawer .tl .e .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.drawer .srcs a{display:inline-block;margin:0 10px 6px 0;font-size:13px}
.drawer .warn{background:var(--med-soft);color:var(--med);border-radius:6px;padding:10px 12px;font-size:12.5px;margin:12px 0}
@media (max-width:640px){.drawer .kv{grid-template-columns:1fr}.drawer .dbox{padding:22px 16px 50px}}
.stk tr.ent td{background:var(--high-soft)} .stk tr.ent td:first-child{box-shadow:inset 3px 0 0 var(--high)}
.stk .entb{display:inline-block;font-size:10px;font-weight:700;color:var(--high);background:var(--surface);border:1px solid var(--high);border-radius:3px;padding:0 5px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.stk .tg{display:inline-block;font-size:10px;border-radius:3px;padding:0 5px;margin-left:6px;vertical-align:middle} .stk .tg.mx{background:var(--med-soft);color:var(--med)} .stk .tg.cs{background:var(--surface2);color:var(--faint)}
[data-view="ai"] #view-overview, [data-view="ai"] #view-ransom, [data-view="ai"] #view-cti, [data-view="ai"] #view-kons, [data-view="ai"] #view-news, [data-view="ai"] .filters{display:none}
#view-ai{display:flex;flex-direction:column;gap:20px;padding-top:28px}
#view-ai .kpis{margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){}
.layers{display:flex;gap:7px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.layers button{border:1px solid var(--line);border-radius:var(--r-cip);padding:6px 13px;font-size:12.5px;font-weight:550;background:var(--surface);color:var(--muted);transition:background .14s,color .14s,border-color .14s}
.layers button:hover{color:var(--text);border-color:var(--line2)}
.layers button.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}
.layers .lbl{font-size:10px;color:var(--faint);align-self:center;margin-right:4px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.mstrip .allm{border-color:var(--line2)}
.mstrip .allm .ms2{color:var(--faint)}
.layerhelp{padding:12px 20px;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.6;color:var(--muted);background:color-mix(in srgb,var(--surface2) 45%,transparent)}
.layerhelp b{color:var(--text);font-weight:600}
.ai-item{padding:14px 20px;border-bottom:1px solid var(--line)} .ai-item:last-child{border-bottom:0}
.ai-item .m{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px;font-size:12px;color:var(--muted)}
.ai-item .m .r{font-family:"IBM Plex Mono",monospace;color:var(--accent);font-weight:700}
.ai-item h3{font-size:14.5px;font-weight:600;line-height:1.35;margin-bottom:6px} .ai-item h3 a{text-decoration:none} .ai-item h3 a:hover{text-decoration:underline}
.ai-item p{font-size:13.5px;line-height:1.55;color:var(--text)} .ai-item .why{margin-top:6px;font-size:13px;color:var(--muted)} .ai-item .why b{color:var(--accent)}
.theme{padding:14px 20px;border-bottom:1px solid var(--line)} .theme:last-child{border-bottom:0}
.theme h3{font-size:14.5px;font-weight:600;margin-bottom:6px} .theme p{font-size:13.5px;line-height:1.55} .theme .do{margin-top:8px;font-size:13px;background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:8px 10px}
.must{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--line)}
.must .c{background:var(--surface);padding:14px 16px} .must .c .n{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--accent);font-weight:700} .must .c b{display:block;font-size:14px;margin:4px 0 6px} .must .c p{font-size:13px;line-height:1.5;color:var(--muted)}
.csf{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1px;background:var(--line)}
.csf .f{background:var(--surface);padding:16px 18px} .csf .f .fn{display:flex;align-items:baseline;gap:8px;margin-bottom:4px} .csf .f .fn b{font-size:15px;letter-spacing:.02em} .csf .f .fn span{font-size:12px;color:var(--muted)}
.csf .f .q{font-size:12.5px;color:var(--accent);margin-bottom:10px}
.csf .f .now{font-size:12.5px;line-height:1.5;background:var(--accent-soft);border-radius:6px;padding:8px 10px;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:4px 6px;margin:4px 0 2px}
.chip2{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:12px;background:var(--surface);cursor:default}
.chip2 i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--muted)}
.chip2 em{font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:600}
.chip2 .up,.vt .up{color:var(--ok)} .chip2 .dn,.vt .dn{color:var(--crit)}
.chip2.pub{border-color:var(--accent-soft);background:var(--accent-soft)} .chip2.own i{color:var(--accent)} .chip2.prv i{color:var(--faint)}
.vt td.num,.vt th.num{text-align:right;font-family:"IBM Plex Mono",monospace;font-size:12px} .vt .vn2{font-size:11px;color:var(--muted);font-weight:400} .vt .own2{color:var(--accent);font-size:12px} .vt .prv2{color:var(--faint);font-size:12px}
.csf .f .lnk{display:block;text-align:left;font-size:12.5px;color:var(--accent);padding:2px 0;background:none;border:0} .csf .f .lnk:hover{text-decoration:underline}
.csf{margin:0}
.csf .f .cat{padding:8px 0;border-top:1px solid var(--line)} .csf .f .cat b{display:block;font-size:13px;margin-bottom:2px} .csf .f .cat .x{font-size:12.5px;line-height:1.5} .csf .f .cat .nn{font-size:12px;color:var(--muted);margin-top:2px}
.srcs2{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--line)}
.srcs2 .s{background:var(--surface);padding:10px 14px;font-size:12.5px} .srcs2 .s .no{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--faint);margin-right:6px} .ph.sub{padding:10px 20px;border-top:1px solid var(--line)} .ph.sub h2{font-size:13px;color:var(--muted)} .srcs2 .s a{font-weight:600;text-decoration:none} .srcs2 .s span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.kgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
@media (max-width:900px){.kgrid{grid-template-columns:1fr}}
@media (max-width:900px){.kgrid{grid-template-columns:1fr}}
.brief{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line)}
.brief .b{background:var(--surface);padding:12px 14px;display:flex;gap:10px;align-items:flex-start}
.brief .b .n{flex:none;width:26px;height:26px;border-radius:7px;background:var(--accent);color:var(--on-accent);font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:13px;line-height:26px;text-align:center}
.brief .b b{display:block;font-size:13px;margin-bottom:2px}
.brief .b p{margin:0;font-size:12px;color:var(--muted)}
.rep{display:grid;grid-template-columns:4px 84px 1fr;gap:0 12px;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);align-items:start}
.rep:last-child{border-bottom:0}
.rep .st{border-radius:0 2px 2px 0;background:var(--line);align-self:stretch}
.rep.vendor .st{background:var(--info)} .rep.analyst .st{background:var(--accent)} .rep.institution .st{background:var(--ok)} .rep.expert .st{background:var(--med)}
.rep .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);padding-top:3px;line-height:1.3}
.rep .d small{display:block;color:var(--faint);font-size:10px}
.rep h3{font-size:13px;font-weight:600;line-height:1.35}
.rep h3 a{text-decoration:none}
.rep h3 a:hover{text-decoration:underline}
.rep .m{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11px;color:var(--muted);margin:3px 0 4px;align-items:center}
.rep .m .src{font-weight:600;color:var(--text)}
.rep p{margin:0;font-size:12px;color:var(--muted);max-width:80ch}
.rep .th{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.rep .th span{font-size:10px;border-radius:3px;padding:1px 6px;background:var(--surface2);color:var(--muted);cursor:pointer}
.rep .th span:hover{background:var(--accent-soft);color:var(--accent)}
.tag.vendor{background:var(--info-soft);color:var(--info)} .tag.analyst{background:var(--accent-soft);color:var(--accent)} .tag.institution{background:var(--ok-soft);color:var(--ok)} .tag.expert{background:var(--med-soft);color:var(--med)}
.tcard{padding:12px 16px;border-bottom:1px solid var(--line)}
.tcard:last-child{border-bottom:0}
.tcard .h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-bottom:4px}
.tcard .h h3{font-size:14px;font-weight:600}
.tcard .h .n{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}
.tcard .tag.consensus{background:var(--ok-soft);color:var(--ok)} .tcard .tag.divergence{background:var(--high-soft);color:var(--high)} .tcard .tag.blindspot{background:var(--crit-soft);color:var(--crit)}
.tcard .desc{font-size:12px;color:var(--muted);margin:0 0 8px;max-width:90ch}
.tcard .cl{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;font-size:12px;background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.tcard .cl label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding-top:2px;white-space:nowrap}
.tcard .cl .board{font-weight:600;color:var(--text)}
.tcard .h{cursor:pointer;user-select:none}
.tcard .h h3::before{content:"▸";display:inline-block;width:14px;color:var(--faint);transition:transform .15s}
.tcard.open .h h3::before{transform:rotate(90deg)}
.tcard .board1{font-size:13px;font-weight:500;color:var(--text);margin:2px 0 0 14px;max-width:90ch}
.tcard .more{display:none;margin-top:8px}
.tcard.open .more{display:block}
.tcard:hover{background:var(--surface2)}
.tcard.open{background:var(--surface)}
.mstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:10px 16px;border-bottom:1px solid var(--line)}
@media (max-width:700px){.mstrip{grid-template-columns:repeat(6,minmax(0,1fr))}}
.mstrip button{border:1px solid var(--line);border-radius:6px;padding:6px 4px;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.mstrip button .ml{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.mstrip button .mn{font-family:"IBM Plex Mono",monospace;font-size:16px;font-weight:700;line-height:1.1}
.mstrip button .ms{font-size:9px;color:var(--faint)}
.sevsel{display:inline-flex;gap:4px;margin-right:10px}
.sevsel button{border:1px solid var(--line);border-radius:var(--r-cip);padding:3px 10px;font-size:11.5px;font-weight:600;background:var(--surface);color:var(--text)}
.sevsel button.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.kvexec .sevline{font-size:12.5px;color:var(--muted);margin:-4px 0 8px}
.mstrip button .ms2{font-size:9.5px;font-weight:600;color:var(--accent)}
.mstrip button.on .ms2{color:var(--bg);opacity:.85}
.mstrip button.has{border-color:var(--ok);background:var(--ok-soft)} .mstrip button.has .mn{color:var(--ok)}
.mstrip button.on{background:var(--text);border-color:var(--text)} .mstrip button.on .ml,.mstrip button.on .mn,.mstrip button.on .ms{color:var(--bg)}
.mstrip button.pending{opacity:.6;border-style:dashed}
.mstrip button:hover{transform:translateY(-1px)}
.kvexec{padding:14px 20px 12px;border-bottom:1px solid var(--line)}
.kvexec .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;margin-bottom:6px}
.kvexec h3{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin-bottom:10px}
.kvexec .g{display:grid;grid-template-columns:1fr;gap:8px}
.kvexec .b{background:var(--surface2);border-radius:8px;padding:10px 12px;font-size:13.5px;line-height:1.55}
.kvexec .b b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:3px}
.kvexec .b.us{background:var(--accent-soft)} .kvexec .b.us b{color:var(--accent)}
.kvexec .b.ls{background:var(--surface);border:1px solid var(--line)}
.kvexec .b.ls ol{margin:0;padding-left:20px} .kvexec .b.ls li{margin:4px 0}
.kvexec .v{display:inline-block;font-size:10.5px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-cip);padding:1px 7px;margin-left:4px;vertical-align:middle}
.kvexec details.sims{margin-top:8px} .kvexec details.sims summary{cursor:pointer;font-size:11.5px;color:var(--muted);list-style:none} .kvexec details.sims summary::-webkit-details-marker{display:none}
.kvexec details.sims p{font-size:12px;color:var(--muted);margin:6px 0}
.kvexec .sm{font-size:12px;margin-top:6px} .kvexec .sm b{display:block;font-size:11px;color:var(--muted);text-transform:none;letter-spacing:0} .kvexec .sm ul{margin:2px 0 0;padding-left:18px;color:var(--muted)}
.mstrip.kv{grid-template-columns:repeat(9,minmax(0,1fr));padding:10px 16px}
@media (max-width:700px){.mstrip.kv{grid-template-columns:repeat(5,minmax(0,1fr))}}
.mstrip.kv button{padding:5px 2px} .mstrip.kv button .mn{font-size:14px} .mstrip.kv button .ml{font-size:10px} .mstrip.kv button .ms{display:none}
.mstrip.kv button.arch{border-style:dashed}
.breach .sm{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45}
.breach .tg{display:inline-block;font-size:10px;font-weight:600;border-radius:4px;padding:0 5px;margin-right:4px;vertical-align:1px}
.breach .tg.r{background:var(--crit-soft);color:var(--crit)} .breach .tg.t{background:var(--info-soft);color:var(--info)} .breach .tg.a{background:var(--med-soft);color:var(--med);text-decoration:none}
.breach .n{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted)}
.mrep{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.mrep h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-weight:600}
.mrep .r{display:grid;grid-template-columns:78px 1fr;gap:8px;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13px;align-items:baseline}
.mrep .r:last-child{border-bottom:0}
.mrep .r .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.mrep .r a{text-decoration:none;font-weight:500} .mrep .r a:hover{text-decoration:underline}
.mrep .r .s{color:var(--muted);font-size:12px}
.exec{padding:14px 16px}
.exec h3{font-size:16px;font-weight:700;margin-bottom:2px;text-wrap:balance}
.exec .meta{font-size:11px;color:var(--faint);font-family:"IBM Plex Mono",monospace;margin-bottom:10px}
.exec .txt{font-size:14px;line-height:1.6;max-width:78ch}
.exec .txt p{margin:0 0 10px}
.exec .delta{margin-top:12px;padding:12px 14px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 6px 6px 0;max-width:78ch}
.exec .delta b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:4px}
.exec .delta p{margin:0;font-size:13px;line-height:1.55}
.exec .delta.next{border-left-color:var(--info);background:var(--info-soft)} .exec .delta.next b{color:var(--info)}
.exec .txt ul{margin:0 0 10px;padding-left:18px} .exec .txt li{margin-bottom:5px}
.exec .src{margin-top:10px}
.shared{padding:10px 16px;border-bottom:1px solid var(--line);background:var(--ok-soft);font-size:12px}
.shared b{color:var(--ok)}
.ev{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
/* Aynı gerekçe (WCAG 2.2 AA · 2.5.8): kaynak bağlantısı çipleri ayrı bir sıra
   hâlinde duruyor, cümle içi muafiyet kapsamına girmiyor. 20 px idi. */
.ev a{font-size:10px;font-family:"IBM Plex Mono",monospace;text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:3px 6px;min-height:24px;display:inline-flex;align-items:center;color:var(--muted)}
.ev a:hover{color:var(--text);border-color:var(--text)}
.div{padding:12px 16px;border-bottom:1px solid var(--line)}
.div:last-child{border-bottom:0}
.div h3{font-size:13px;font-weight:600;margin-bottom:8px}
.div .ab{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:600px){.div .ab{grid-template-columns:1fr}}
.div .side{border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:12px}
.div .side b{display:block;font-size:12px;margin-bottom:4px}
.div .side.a b{color:var(--info)} .div .side.b b{color:var(--high)}
.div .side ul{margin:0;padding-left:16px;color:var(--muted)}
.div .side li{margin-bottom:2px}
.div .read{margin-top:8px;font-size:12px;padding:8px 10px;background:var(--accent-soft);border-radius:6px}
.div .read b{color:var(--accent)}
.kfilters{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line);align-items:center}
.kfilters input{font:inherit;font-size:12px;color:var(--text);background:var(--surface2);border:1px solid var(--line);border-radius:6px;padding:4px 8px;min-width:180px;margin-left:auto}
.gap{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line)}
.gap .g{background:var(--surface);padding:8px 14px;font-size:12px}
.gap .g b{display:block;font-size:12px}
.gap .g span{color:var(--faint);font-size:11px}
.srcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:var(--line)}
.srcgrid .c{background:var(--surface);padding:8px 12px;font-size:12px;display:flex;flex-direction:column;gap:1px}
.srcgrid .c b{font-size:12px}
.srcgrid .c span{color:var(--faint);font-size:10px;font-family:"IBM Plex Mono",monospace}
#kbars .bar{grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) 28px}
#klist,#ktbl{max-height:72vh;overflow:auto}
#ktbl td.v a{font-weight:500}
.kfilters .mode{margin-left:auto;display:flex;gap:2px;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.kfilters .mode button{padding:4px 10px;font-size:12px;font-weight:600;color:var(--muted)}
.kfilters .mode button.on{background:var(--text);color:var(--bg)}
.kfilters input{margin-left:0}
#view-kons section.panel{scroll-margin-top:120px}
#kthemes{max-height:110vh;overflow:auto}
.cgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cgrid{grid-template-columns:1fr}}
.cat .ph h2 .num{display:inline-block;width:22px;height:22px;border-radius:6px;background:var(--text);color:var(--bg);font-family:"IBM Plex Mono",monospace;font-size:12px;line-height:22px;text-align:center;margin-right:8px}
.cat .srcline{display:flex;flex-wrap:wrap;gap:4px;padding:8px 16px;border-bottom:1px solid var(--line)}
.cat .srcline span{font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--muted);background:var(--surface2);border-radius:3px;padding:1px 6px}
.cat .srcline span.on{background:var(--ok-soft);color:var(--ok)}
.cat .srcline span.off{background:var(--med-soft);color:var(--med)}
.ci{display:grid;grid-template-columns:4px 64px 1fr;gap:0 10px;padding:8px 12px 8px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:start}
.ci:last-child{border-bottom:0}
.ci .st{border-radius:0 2px 2px 0;background:var(--line);align-self:stretch}
.ci.critical .st{background:var(--crit)} .ci.high .st{background:var(--high)} .ci.medium .st{background:var(--med)} .ci.info .st{background:var(--info)}
.ci .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);padding-top:2px}
.ci a{text-decoration:none;font-weight:500}
.ci a:hover{text-decoration:underline}
.ci .m{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.ci .m .s{font-family:"IBM Plex Mono",monospace}
.ci .n{font-size:12px;color:var(--muted);margin-top:2px}
.cat .more{padding:8px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
.cat .more button{color:var(--accent);font-weight:600}
/* Top 10 */
.top10{display:flex;flex-direction:column}
.t10{display:grid;grid-template-columns:34px 1fr auto;gap:0 12px;padding:10px 16px;border-bottom:1px solid var(--line);align-items:center}
.t10:last-child{border-bottom:0}
.t10.sub{opacity:.75}
.t10 .rk{font-family:"IBM Plex Mono",monospace;font-size:16px;font-weight:600;color:var(--text)}
.t10 .rk small{display:block;font-size:9px;color:var(--faint);font-weight:400}
.t10 a{text-decoration:none;font-weight:600;font-size:13px}
.t10 a:hover{text-decoration:underline}
.t10 .m{font-size:11px;color:var(--muted);margin-top:2px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.t10 .sc{font-family:"IBM Plex Mono",monospace;font-size:20px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.t10 .sc small{display:block;font-size:9px;color:var(--faint);font-weight:400}
.t10 .bars6{display:flex;gap:2px;height:6px;margin-top:5px;max-width:320px}
.t10 .bars6 span{background:var(--info);border-radius:2px;min-width:2px}
.t10 .bars6 span:nth-child(1){background:var(--crit)} .t10 .bars6 span:nth-child(2){background:var(--high)} .t10 .bars6 span:nth-child(3){background:var(--med)} .t10 .bars6 span:nth-child(4){background:var(--ok)} .t10 .bars6 span:nth-child(5){background:var(--info)} .t10 .bars6 span:nth-child(6){background:var(--accent)}
.t10 .tag.stable{background:var(--ok-soft);color:var(--ok)}
.t10 .tag.volatile{background:var(--med-soft);color:var(--med)}
.t10 .tag.lane-tehdit{background:var(--crit-soft);color:var(--crit)} .t10 .tag.lane-sektor{background:var(--accent-soft);color:var(--accent)} .t10 .tag.lane-trend{background:var(--info-soft);color:var(--info)}
.legend{display:flex;flex-wrap:wrap;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
.legend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:0}
.legend .l1::before{background:var(--crit)} .legend .l2::before{background:var(--high)} .legend .l3::before{background:var(--med)} .legend .l4::before{background:var(--ok)} .legend .l5::before{background:var(--info)} .legend .l6::before{background:var(--accent)}
.rule{padding:8px 16px;font-size:11px;color:var(--faint);border-top:1px solid var(--line)}
/* NVD Kullanım Koşulları bu bildirimin uygulamada görünür yerde yer almasını ister. */
.rule.nvdnote{color:var(--muted);font-weight:500}
/* Ay ayracı: tablo içinde hafif bir başlık satırı; veriyi bölmez, gruplar. */
tr.aygrup td{background:var(--surface2);padding:5px 10px;border-top:1px solid var(--line)}
tr.aygrup span{font-size:11.5px;font-weight:600;letter-spacing:.01em}
tr.aygrup i{font-style:normal;font-size:10.5px;color:var(--faint);margin-left:8px}
tr.aygrup:first-child td{border-top:0}
/* Veri boyutu rozeti: 83 satırın 79'unda boş duran ayrı bir sütun yerine,
   bilgi yalnızca var olduğu satırda kurban adının yanında görünür. */
#nplayers-gap:empty{display:none}
#nplayers-gap .yokcip{display:inline-block;padding:1px 7px;margin:2px 2px 0 0;border:1px dashed var(--line2);border-radius:var(--r-cip);font-size:11px;color:var(--faint)}
/* WCAG 2.2 AA · 2.5.8 Hedef Boyutu — kalan bağımsız hedefler.
   Mobil ölçümde 38 hedef 24 pikselin altındaydı: fidye tablosundaki kurban
   bağlantıları, kaynak listesi adları, CTI "Tümünü göster" düğmeleri ve rapor
   başlıkları. Hiçbiri cümle içi değil, muafiyet kapsamına girmiyorlar.
   Yalnızca dokunma alanı büyütülür; yazı boyutu ve düzen değişmez. */
.tbl td.v > a, .src .n > a, .rgrid .more > button, .kcard h3 > a{min-height:24px;display:inline-flex;align-items:center}
#view-cti .more > button, #view-kons h3 > a{min-height:24px;display:inline-flex;align-items:center}
#view-cti .more > button{padding:2px 8px}
/* Haberler sekmesinde serbest metin araması. Diğer üç sekmede vardı, burada
   yoktu: 107 şirketin geçtiği bir sayfada "Fortinet ara" diyememek boşluktu. */
#press-panel .psrc{display:grid;grid-template-columns:190px 1fr;gap:12px;padding:7px 0;border-top:1px solid var(--line)}
#press-panel .psrc:first-child{border-top:0}
/* WCAG 2.2 AA · 2.5.8: kaynak adı bağlantıları bağımsız hedeftir. */
#press-panel .pn a{font-weight:600;font-size:12.5px;min-height:24px;display:inline-flex;align-items:center}
#press-panel .pn .k{margin-left:6px;font-size:10px;color:var(--faint)}
#press-panel .pi a{display:flex;gap:9px;align-items:baseline;min-height:24px;font-size:12px;color:var(--muted);text-decoration:none}
#press-panel .pi a:hover{color:var(--accent)}
#press-panel .pi .d{flex:0 0 74px;font-size:10.5px;color:var(--faint);font-family:"IBM Plex Mono",monospace}
@media(max-width:720px){#press-panel .psrc{grid-template-columns:1fr;gap:3px}}
.okr{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.okr:first-child{border-top:0}
.okn{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--faint);text-align:right;padding-top:2px}
.okh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.okh a{font-size:14px;font-weight:600;min-height:24px;display:inline-flex;align-items:center}
.okd{font-size:10px;font-family:"IBM Plex Mono",monospace;color:var(--faint);border:1px solid var(--line2);border-radius:3px;padding:1px 5px}
.okt{font-size:10.5px;border-radius:var(--r-cip);padding:1px 7px;border:1px solid var(--line2);color:var(--faint);cursor:help}
.okt.dogrudan{color:var(--ok);border-color:var(--ok-soft)}
.okt.gnews{color:var(--med);border-color:var(--med-soft)}
.okt.bayat{color:var(--crit);border-color:var(--crit-soft)}
/* Günün özeti */
.oksay{display:flex;flex-wrap:wrap;gap:8px 22px;padding:2px 0 12px;font-size:12.5px;color:var(--muted);
  border-bottom:1px solid var(--line)}
.oksay b{font-family:"IBM Plex Mono",monospace;font-size:14px;color:var(--text);font-weight:600}
.okbas{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);
  margin:16px 0 0}
.okalt{margin:2px 0 9px;font-size:12px;max-width:74ch}
.okson{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:11.5px;max-width:82ch}
.okkl{display:grid;gap:0}
.okk{display:grid;grid-template-columns:26px 1fr;gap:11px;padding:10px 0;border-top:1px solid var(--line)}
.okk:first-child{border-top:0}
.okkn{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--faint);text-align:right;padding-top:2px}
.okkb{font-size:14.5px;font-weight:600;line-height:1.4;margin:0;color:var(--text)}
.okkm{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:11.5px}
.okkc{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--accent);background:var(--accent-soft);
  border-radius:3px;padding:1px 6px}
.okke{font-size:10.5px;color:var(--muted);border:1px solid var(--line2);border-radius:3px;padding:1px 6px}
.okke.syn{color:var(--med);border-color:var(--med-soft)}
.okkz{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--muted);max-width:78ch}
.okke.eyl{color:var(--crit);border-color:var(--crit-soft)}
.okkd{margin-top:6px}
.okkd summary{font-size:11.5px;color:var(--faint);cursor:pointer;min-height:24px;display:flex;align-items:center}
.okkd summary:hover{color:var(--accent)}
.okkul{margin:6px 0 0;padding-left:16px;display:grid;gap:5px}
.okkul li{font-size:12px;line-height:1.45}
.okkul a{display:inline-block;min-height:24px;line-height:1.6}
.okkul .sg{display:block;font-size:10.5px}
.koken{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:11.5px;color:var(--faint);
  display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}
.koken .e{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  border-radius:3px;padding:1px 6px;cursor:help}
.k-hesap  .e{color:var(--ok);   background:var(--ok-soft)}
.k-model  .e{color:var(--info); background:var(--info-soft)}
.k-alinti .e{color:var(--med);  background:var(--med-soft)}
/* Önizleme yalnızca uygulama açılana kadar görünür; sade tutulur. */
#onizleme{max-width:1288px;margin:0 auto;padding:0 18px 24px}
#onizleme section{border-top:1px solid var(--line);padding:14px 0}
#onizleme h2{font-size:17px;margin:0 0 2px}
#onizleme h3{font-size:14px;font-weight:600;margin:0 0 2px;line-height:1.4}
#onizleme ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
#onizleme p{margin:0;font-size:13px;color:var(--muted);max-width:80ch}
#onizleme .oz-m{font-size:11.5px;color:var(--faint);font-family:"IBM Plex Mono",monospace}
#onizleme .oz-not{padding:12px 0;font-size:12px;color:var(--faint)}
.tazserit{margin:10px 0 0;padding:9px 13px;font-size:12.5px;color:var(--med);
  background:var(--med-soft);border:1px solid var(--med-soft);border-radius:var(--r2)}
.tazserit .k{font-family:"IBM Plex Mono",monospace;font-size:11.5px}
.verserit{max-width:1288px;margin:10px auto 0;padding:10px 14px;font-size:12.5px;color:var(--crit);
  background:var(--crit-soft);border:1px solid var(--crit);border-radius:var(--r2)}
.verserit .k{font-family:"IBM Plex Mono",monospace;font-size:11.5px}
.brifnot{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:12px;max-width:84ch}
.lnk{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;
  min-height:24px}
.okilgi{margin:14px 0 4px;padding:12px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r2)}
.okih{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:12.5px}
.okih .sg{font-size:11.5px;max-width:64ch}
.okic{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0}
.okip{font-size:11.5px;padding:3px 10px;min-height:24px;border-radius:var(--r-cip);cursor:pointer;
  background:var(--surface);border:1px solid var(--line2);color:var(--muted)}
.okip:hover{border-color:var(--accent);color:var(--accent)}
.okip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}
.okim{margin:9px 0 0;font-size:12px;color:var(--muted)}
.okim .sg{display:block;font-size:11px;margin-top:2px}
.oket{font-size:10px;color:var(--faint);border:1px dashed var(--line2);border-radius:3px;padding:1px 5px}
.okke.ilg{color:var(--accent);border-color:var(--accent)}
.okk.ilgili{border-left:2px solid var(--accent);padding-left:9px;margin-left:-11px}
.okkw{font-size:10.5px;font-family:"IBM Plex Mono",monospace;color:var(--faint);
  border:1px solid var(--line2);border-radius:3px;padding:1px 6px;cursor:help}
.oktl{display:grid;gap:0}
.oktk{padding:10px 0;border-top:1px solid var(--line)}
.oktk.ilgili{border-left:2px solid var(--accent);padding-left:9px;margin-left:-11px}
.oktk:first-child{border-top:0}
.oktb{font-size:13.5px;font-weight:600;line-height:1.4;min-height:24px;display:inline-block}
.okbayat{margin:10px 0 0;padding:7px 11px;font-size:12px;color:var(--med);background:var(--med-soft);
  border-radius:var(--r3)}
.okgl{display:flex;flex-wrap:wrap;gap:6px}
.okg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:var(--surface2);
  border:1px solid var(--line);border-radius:var(--r-cip);padding:3px 10px}
.okg b{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);font-weight:600}
@media(max-width:600px){.okk{grid-template-columns:20px 1fr;gap:8px}.oksay{gap:6px 16px}}
.okw{margin:3px 0 0;font-size:12.5px;color:var(--muted);max-width:76ch}
.oki{display:flex;gap:9px;align-items:baseline;margin-top:5px;min-height:24px;font-size:12px;color:var(--muted);text-decoration:none}
.oki:hover{color:var(--accent)}
.oki .d{flex:0 0 92px;font-size:10.5px;color:var(--faint);font-family:"IBM Plex Mono",monospace}
@media(max-width:600px){.okr{grid-template-columns:24px 1fr;gap:8px}}
.nsearch{display:flex;align-items:center;gap:10px;margin:6px 0 2px}
.nsearch input{flex:0 1 320px;min-height:32px;padding:6px 11px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:inherit;font:inherit;font-size:12.5px}
.nsearch input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.nsearch .sg{font-size:11.5px}
.pchip.off{opacity:.55;cursor:default}
.pchip.off .n{opacity:.7}
.tbl td.v .boyut{display:inline-block;margin-left:7px;padding:0 6px;border-radius:var(--r-cip);background:color-mix(in srgb,var(--faint) 18%,transparent);font-size:10.5px;font-family:"IBM Plex Mono",monospace;vertical-align:middle}
/* Birincil gösterge: altı kart eşit ağırlıktaydı, hiyerarşi yoktu.
   Sayfaya bakanın ilk sorusu "bu ay ne oldu" olduğu için o kart öne alınır. */
.kpi.birincil{border-color:var(--accent)}
.kpi.birincil .v{font-size:1.45em}
.kpi.birincil .l{color:var(--accent)}
.foot .kimlik{display:block;margin-bottom:8px;color:var(--muted);max-width:74ch}
.foot .nvdnote{display:block;margin-bottom:6px;color:var(--muted);font-weight:500}
.foot .nvdnote .sg{font-weight:400;color:var(--faint)}
.rule.nvdnote .sg{display:block;margin-top:2px;font-weight:400;color:var(--faint)}
/* kaynak notu, TLP, onay, aksiyon durumu */
.tag.grade{font-family:"IBM Plex Mono",monospace;background:var(--surface2);color:var(--text);border:1px solid var(--line)}
.tag.grade.a{border-color:var(--ok);color:var(--ok)} .tag.grade.b{border-color:var(--info);color:var(--info)} .tag.grade.c{border-color:var(--med);color:var(--med)} .tag.grade.e,.tag.grade.f{border-color:var(--crit);color:var(--crit)}
.tag.tlp{font-family:"IBM Plex Mono",monospace;font-weight:700;letter-spacing:.03em}
.tag.tlp-clear{background:#fff;color:#111;border:1px solid #999} .tag.tlp-green{background:#1f8a4c;color:#fff} .tag.tlp-amber{background:#f3a80a;color:#111} .tag.tlp-red{background:#c8102e;color:#fff}
.tag.pending{background:var(--med-soft);color:var(--med);border:1px dashed var(--med)}
.tag.rejected{background:var(--surface2);color:var(--faint);text-decoration:line-through}
.item.pending{opacity:.8}
.kpi.warn .v{color:var(--med)}
.kpi.ok .v{color:var(--ok)}
/* kaynak sağlığı & kaçırma oranı */
.dot.warn{background:var(--med);box-shadow:0 0 0 3px var(--med-soft)}
.dot.bad{background:var(--crit);box-shadow:0 0 0 3px var(--crit-soft)}
.health{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
@media (max-width:600px){.health{grid-template-columns:1fr}}
.health .c{background:var(--surface);padding:10px 14px}
.health .c .l{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.health .c .l b{font-size:18px;color:var(--text)}
.health .c ul{margin:6px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px}
.health .c li{background:var(--surface2);border-radius:3px;padding:1px 6px;font-family:"IBM Plex Mono",monospace;font-size:11px}
.health .c.bad li{background:var(--crit-soft);color:var(--crit)} .health .c.warn li{background:var(--med-soft);color:var(--med)} .health .c.ok li{background:var(--ok-soft);color:var(--ok)}
.health-note{padding:8px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
.health-note.bad{color:var(--crit);font-weight:600}
.miss{display:grid;grid-template-columns:90px 1fr auto;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:13px;align-items:baseline}
.miss:last-child{border-bottom:0}
.miss .d{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.miss .r{font-family:"IBM Plex Mono",monospace;font-weight:600}
.miss ul{margin:2px 0 0;padding-left:16px;font-size:12px;color:var(--muted)}
/* büyük üreticiler */
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--line)}
.vcard{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.vcard .vn{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.vcard .vn b{font-size:14px}
.vcard .vn .rev{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.vcard .vi{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;font-size:12px;align-items:start}
.vcard .vi .k{font-family:"IBM Plex Mono",monospace;font-size:10px;border-radius:3px;padding:1px 5px;white-space:nowrap;margin-top:2px}
.vcard .vi .k.research{background:var(--info-soft);color:var(--info)} .vcard .vi .k.product{background:var(--ok-soft);color:var(--ok)} .vcard .vi .k.analist{background:var(--accent-soft);color:var(--accent)} .vcard .vi .k.ma{background:var(--med-soft);color:var(--med)}
.vcard .vi a{text-decoration:none;font-weight:500}
.vcard .vi a:hover{text-decoration:underline}
.vcard .vi .vd{font-size:11px;color:var(--faint);font-family:"IBM Plex Mono",monospace}
.vcard .vi .vnote{font-size:11px;color:var(--muted)}
.vfilters{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line)}
.foot{margin-top:20px;font-size:12px;color:var(--faint);display:flex;flex-wrap:wrap;gap:6px 16px}
@media (prefers-reduced-motion:no-preference){.dot{animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px transparent}}}
.core20 td{font-size:13px} .core20 td .p{display:block;font-size:11.5px;color:var(--faint)} .core20 td.sc{color:var(--muted);font-size:12.5px;max-width:30ch} .core20 td.why{max-width:40ch}
.core20 .st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:var(--r-cip);padding:2px 9px;white-space:nowrap}
.core20 .st.in{background:var(--ok-soft);color:var(--ok)} .core20 .st.ref{background:var(--med-soft);color:var(--med)} .core20 .st.wait{background:var(--surface2);color:var(--muted)}
.core20 td .note{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;max-width:40ch}
.core20 td a{text-decoration:none} .core20 td a:hover{text-decoration:underline}
/* ---- Rapor Analizi düzen rötuşları (en sonda: öncekileri ezer) ---- */
#view-kons,#view-overview,#view-ransom,#view-cti,#view-news{display:flex;flex-direction:column;gap:20px;padding-top:28px}
.watchlist{padding:12px 20px;font-size:13px;color:var(--muted)} .watchlist li{margin-bottom:4px}
#view-news .kpis{margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){}
.nw{display:grid;grid-template-columns:44px 1fr;gap:0 16px;padding:16px 20px;border-bottom:1px solid var(--line)}
.nw:last-child{border-bottom:0}
.nw .rk{font-family:"IBM Plex Mono",monospace;font-size:22px;font-weight:700;color:var(--text);line-height:1;padding-top:2px}
.nw .rk small{display:block;font-size:10px;color:var(--faint);font-weight:400;margin-top:4px}
.nw h3{font-size:16px;font-weight:600;line-height:1.35;letter-spacing:-.01em}
.nw .m{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin:6px 0 8px;font-size:12px;color:var(--muted)}
.nw .m .co{font-weight:500;color:var(--text)}
.nw p{margin:0;font-size:14px;line-height:1.55;color:var(--muted);max-width:86ch}
.nw .why{margin-top:8px;padding:9px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 6px 6px 0;font-size:13.5px;line-height:1.5;color:var(--text);max-width:86ch}
.nw .why b{color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:2px}
.nw .imp{display:inline-flex;gap:2px} .nw .imp i{width:7px;height:7px;border-radius:2px;background:var(--line)} .nw .imp i.on{background:var(--accent)}
.tag.k-product{background:var(--ok-soft);color:var(--ok)} .tag.k-platform{background:var(--info-soft);color:var(--info)} .tag.k-ai{background:var(--accent-soft);color:var(--accent)} .tag.k-ma{background:var(--high-soft);color:var(--high)} .tag.k-funding{background:var(--med-soft);color:var(--med)} .tag.k-partnership{background:var(--surface2);color:var(--text)} .tag.k-market{background:var(--surface2);color:var(--muted)} .tag.k-pq{background:var(--crit-soft);color:var(--crit)} .tag.k-tr{background:#E30A17;color:#fff}
.lead{padding:22px 24px;border-color:var(--text)}
.lead .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;margin-bottom:8px}
.lead h3{font-size:clamp(20px,2.4vw,26px);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:10px;max-width:40ch}
.lead p{margin:0 0 10px;font-size:15px;line-height:1.6;max-width:84ch}
.lead .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width:760px){.lead .grid2{grid-template-columns:1fr}}
.lead .box{background:var(--surface2);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.55}
.lead .box b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.lead .box.you{background:var(--accent-soft)} .lead .box.you b{color:var(--accent)}
.lead .evs{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.lead .evs button{border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:12.5px;font-weight:500;background:var(--surface)}
.lead .evs button:hover{border-color:var(--text)}
.lead .evs button .n{font-family:"IBM Plex Mono",monospace;color:var(--accent);margin-right:6px}
.ldet{margin-top:14px;border-top:1px solid var(--line)}
.ldet summary{list-style:none;cursor:pointer;padding:12px 0 4px;font-size:13.5px;font-weight:600;color:var(--accent)}
.ldet summary::-webkit-details-marker{display:none}
.ldet summary::before{content:"+ "} .ldet[open] summary::before{content:"– "}
.ld{padding:12px 0;border-bottom:1px dashed var(--line)} .ld:last-child{border-bottom:0}
.ld h4{font-size:14px;font-weight:600;margin-bottom:8px}
.ldg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:760px){.ldg{grid-template-columns:1fr}}
.ldg > div{background:var(--surface2);border-radius:8px;padding:10px 12px}
.ldg > div.ex{background:var(--accent-soft);grid-column:1/-1}
.ldg b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.ldg .ex b{color:var(--accent)}
.ldg p{margin:0;font-size:13.5px;line-height:1.55;max-width:none}
.nhead{padding:14px 20px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.4}
.nhead small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
#view-overview .kpis,#view-ransom .kpis,#view-cti .kpis{margin:0}
#view-overview .kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--r);font-size:13.5px}
.filterbar b{color:var(--accent)}
.filterbar button{margin-left:auto;border:1px solid var(--accent);color:var(--accent);border-radius:var(--r-cip);padding:4px 12px;font-weight:600;font-size:12.5px}
html[data-filter] #view-overview > .hero, html[data-filter] #view-overview > .kpis, html[data-filter] #view-overview > .panel:not(#panel-action), 
html[data-filter] #view-overview #panel-ot, html[data-filter] #view-overview #panel-health, html[data-filter] #view-overview #panel-regs, html[data-filter] #view-overview #panel-stack, html[data-filter] #view-overview #panel-kvkk, html[data-filter] #view-overview #panel-gov,
html[data-filter] #view-overview .grid > .col > .panel:not(#panel-action):not(#panel-feed):not(#panel-news):not(#panel-kvkk):not(#panel-gov):not(#panel-ot){display:none}
html[data-filter="KVKK"] #view-overview #panel-kvkk{display:block}
html[data-filter] #view-overview #panel-gov.has{display:block}
html[data-filter] #view-overview #panel-ot.has{display:block}
html[data-filter] #view-overview .grid{grid-template-columns:1fr}

@media (max-width:640px){}
details.fold summary .right{margin-left:auto;margin-right:12px}
details.rulefold{border-top:1px solid var(--line)}
details.rulefold summary{list-style:none;cursor:pointer;padding:10px 20px;font-size:12px;color:var(--muted);font-weight:500}
details.rulefold summary::-webkit-details-marker{display:none}
details.rulefold summary::before{content:"+ ";color:var(--faint)} details.rulefold[open] summary::before{content:"– "}
details.rulefold .rule{border-top:0;padding-top:0}
.cgrid{gap:20px} .rgrid{gap:20px}
#view-kons .kpis{margin:0;grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:900px){#view-kons .kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
.hero{max-width:70ch;padding:34px 0 10px}
.hero h2{font-size:clamp(28px,3.4vw,40px);font-weight:680;letter-spacing:-.037em;line-height:1.08;margin-bottom:14px}
.hero p{margin:0;font-size:16px;line-height:1.65;color:var(--muted);max-width:64ch}
.hero p b{color:var(--text);font-weight:600}
.kgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
details.fold{padding:0}
details.fold summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 20px;cursor:pointer}
details.fold summary::-webkit-details-marker{display:none}
details.fold summary h2{font-size:15px;font-weight:600}
details.fold summary::after{content:"+";margin-left:auto;font-size:18px;color:var(--faint)}
details.fold[open] summary{border-bottom:1px solid var(--line)} details.fold[open] summary::after{content:"–"}
.brief{grid-template-columns:1fr;background:transparent}
.brief .b{padding:14px 20px;border-bottom:1px solid var(--line);gap:14px}
.brief .b:last-child{border-bottom:0}
.brief .b .n{background:var(--text);color:var(--bg);border-radius:8px}
.brief .b b{font-size:15px;margin-bottom:3px}
.brief .b p{font-size:14px;line-height:1.55}
.tcard{padding:14px 20px}
.tcard .h h3{font-size:15px}
.tcard .board1{font-size:14px;line-height:1.5;margin-left:16px}
.tcard .n{font-size:12px}
.rep{padding:12px 16px 12px 0} .rep h3{font-size:14px}
.exec .h3,.exec h3{font-size:20px;letter-spacing:-.02em}
.exec .txt{font-size:15px;line-height:1.65}
.mstrip{padding:14px 20px}
.legend{padding:10px 20px;font-size:12px}
.afilters{padding:10px 20px}
.bars{padding:10px 20px 14px}
.shared{padding:12px 20px;font-size:13px}
.div{padding:14px 20px}
.kfilters{padding:10px 20px}
.tag{font-size:11px;font-weight:600;border-radius:5px}
.rule{padding:12px 20px;font-size:12.5px;line-height:1.55}
.srcgrid .c,.gap .g{padding:10px 16px}
@media (max-width:900px){.kgrid{grid-template-columns:1fr}}

/* ---------------------------------------------------------------------------
   DOKUNMA HEDEFİ — ölçümle belirlendi, kestirmeden değil.
   27 Eylül 2026, 375px genişlikte sayım:
     220 satır içi bağlantı   WCAG 2.5.8 "inline" muafiyeti kapsamında, sayılmaz
      67 gerçek kontrol
       7 tanesi 24px altında  → WCAG 2.2 AA 2.5.8 İHLALİ (hepsi button.more)
      50 tanesi 44px altında  → AAA 2.5.5

   1) 24px taban HER GİRDİDE geçerli: bu bir uygunluk eşiği, tercih değil.
   2) 44px yalnızca KABA İŞARETÇİDE (parmak). Fareyle gelen kullanıcıya 44px
      dayatmak, panonun tek değerli özelliğini — veri yoğunluğunu — öldürürdü.
      Bu panoda 18 bin düğüm var; her kontrolü 12px büyütmek tabloları
      kullanılamaz hâle getirir. Girdi türüne bağlamak hem AAA'yı parmakta
      karşılar hem yoğunluğu farede korur.
--------------------------------------------------------------------------- */
button, [role="tab"], select, summary,
.chip, .wchip, .pchip, .vchip, .okt, .okip, .okg {
  min-height: 24px;
}
button.more { min-height: 24px; padding-block: 4px; }

@media (pointer: coarse) {
  .nav button,
  .seg button,
  .layers button,
  .sevsel button,
  .trsort button,
  .filterbar button,
  #ev-range button,
  #to-top,
  .ph .out button, .ph .out a,
  .chip, .wchip, .pchip, .vchip,
  select {
    min-height: 44px;
  }
  button.more { min-height: 44px; }
}

/* .kpis: dört görünümde altı ayrı kural ve üç kırılma noktası vardı
   (1100px, 1000px, 640px). Hepsi ekran genişliğine bakıyordu, oysa şerit
   kendi kutusunun içinde daralıyor. Tek bir merdivene indirildi. */
/* ÖZGÜLLÜK NOTU: konteyner sorgusu özgüllük EKLEMEZ. İlk denemede bu
   kuralları düz ".kpis" ile yazdım ve ID'li temel kurallar
   ("#view-overview .kpis") onları yendi: 277px genişlikte şerit hâlâ 5 sütun
   çiziyordu, kartlar 45px'e sıkışıp metin kırpılıyordu. Seçiciler temel
   kurallarla aynı özgüllüğe getirildi. */
@container gorunum (max-width: 1040px) { #view-cyber .kpis, #view-ai .kpis, #view-news .kpis, #view-overview .kpis, #view-kons .kpis { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@container gorunum (max-width: 620px)  { #view-cyber .kpis, #view-ai .kpis, #view-news .kpis, #view-overview .kpis, #view-kons .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* Panel ızgaraları: iki sütundan tek sütuna geçiş de panelin kendi
   genişliğine bağlandı. Önceden 900px ekran sorgusuydu ve panel dar bir
   sütunda dururken bile iki sütun çiziyordu. */
@container gorunum (max-width: 880px) {
  .grid, .rgrid, .kgrid, .cgrid { grid-template-columns: 1fr; }
}

/* Yükleme şeridi hata şeridinden AYRI görünür: biri geçici, diğeri arıza. */
.verserit.yukl { border-color: var(--line2); background: var(--surface2); color: var(--muted); }

/* Türkiye gündemi şeridi. Kapsam etiketi başlıkla aynı satırda: kullanıcı
   "3 kayıt" görünce hangi pencereden geldiğini de görmeli. */
.okg-kutu { padding: 14px 16px; }
.okg-bas { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.okg-bas .n { font-family: "IBM Plex Mono", monospace; font-size: 12px; background: var(--surface2);
              border: 1px solid var(--line); border-radius: var(--r-cip); padding: 1px 6px; }
.okg-not { color: var(--faint); font-size: 12px; }
.okg-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--line); }
.okg-l li { background: var(--surface); padding: 10px 12px; }
.okg-l h3 { margin: 0 0 2px; font-size: 14px; font-weight: 600; }
.okg-l h3 a { text-decoration: none; }
.okg-l h3 a:hover { text-decoration: underline; }

/* TÜRKİYE GÖRÜNÜMÜ — görünürlük.
   Mevcut kurallar ikili kombinasyon matrisi ("A görünümündeyken B'yi gizle")
   biçiminde birikmiş; onuncu görünüm için o matrisi büyütmek dokuz yeni
   satır ve her yeni sekmede katlanan bir bakım borcu demekti. Bunun yerine
   tek ve kendi içinde tam bir kural: varsayılan gizli, kendi görünümünde
   görünür, kendi görünümündeyken diğerlerini gizler.
   NOT: eski matris olduğu gibi duruyor; bu değişiklik ona dokunmuyor. */
#view-agora { display: none; }
[data-view="agora"] #view-agora { display: block; }
[data-view="agora"] #view-overview, [data-view="agora"] #view-news,
[data-view="agora"] #view-vuln, [data-view="agora"] #view-cti,
[data-view="agora"] #view-kons, [data-view="agora"] #view-ai,
[data-view="agora"] #view-ransom, [data-view="agora"] #view-cyber,
[data-view="agora"] #view-okuma, [data-view="agora"] .filters { display: none; }

#view-turkiye { display: none; }
[data-view="turkiye"] #view-turkiye { display: block; }
[data-view="turkiye"] #view-overview,
[data-view="turkiye"] #view-news,
[data-view="turkiye"] #view-vuln,
[data-view="turkiye"] #view-cti,
[data-view="turkiye"] #view-kons,
[data-view="turkiye"] #view-ai,
[data-view="turkiye"] #view-ransom,
[data-view="turkiye"] #view-cyber,
[data-view="turkiye"] #view-okuma,
[data-view="turkiye"] .filters { display: none; }

/* KAPSAM SEÇİCİ — sekmelerden görsel olarak AYRI bir hiyerarşide.
   Sekme şeridi ince ve kaydırmalı; bu ise kalın 1px çerçeveli, dolu
   seçili durumlu ve her zaman görünür. Amaç: "nereye bakıyorum" sorusu
   ekranın en üstünde ve tek bakışta cevaplanmalı. */
.kapsam { display: inline-flex; gap: 0; margin: 0 0 10px; border: 1px solid var(--text);
          border-radius: var(--r-cip); overflow: hidden; background: var(--surface); }
.kapsam button { appearance: none; border: 0; background: transparent; cursor: pointer;
                 font: 600 14px/1 "Inter", system-ui, sans-serif; color: var(--muted);
                 padding: 9px 18px; min-height: 36px; display: inline-flex; align-items: center;
                 gap: 7px; letter-spacing: .01em; transition: background .12s, color .12s; }
.kapsam button + button { border-left: 1px solid var(--line2); }
.kapsam button:hover { background: var(--surface2); color: var(--text); }
.kapsam button.on { background: var(--text); color: var(--bg); }
.kapsam button.on .b { background: rgba(255,255,255,.22); color: inherit; border-color: transparent; }
.kapsam .b { font-family: "IBM Plex Mono", monospace; font-size: 11px; font-weight: 500;
             background: var(--surface2); border: 1px solid var(--line); border-radius: var(--r-cip);
             padding: 1px 5px; }
/* 3 Ekim 2026: kapsam ekseni COĞRAFİ değil ALAN oldu —
   Security | Network | IT Infrastructure. Türkiye artık ayrı bir kapsam
   değil, Security'nin altındaki bir alt şerit; iki şerit birlikte durur.
   Eski kural ("Türkiye kapsamındayken ana şerit gizlenir") kalktı. */
@media (pointer: coarse) { .kapsam button { min-height: 44px; } }

/* MINTO PİRAMİDİ — ana yargı, gerekçe, veri. Görsel hiyerarşi de bu sırayı
   izler: yargı en büyük ve en koyu, gerekçe orta, kaynak notu en silik.
   Okuyucu üç saniyede cevabı almalı; detay isteyen aşağı iner. */
.minto { padding: 2px 0 14px; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.minto-y { margin: 0 0 10px; font-size: 17px; line-height: 1.4; font-weight: 600; color: var(--text); }
.minto-g { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.minto-g li { background: var(--surface2); border: 1px solid var(--line);
              border-radius: var(--r-cip); padding: 3px 9px; font-size: 13px; color: var(--muted); }
.minto-g li b { color: var(--text); font-weight: 600; }
.minto-g .n { font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--faint); margin-left: 3px; }
.minto-k { margin: 0; font-size: 12.5px; color: var(--faint); }

/* AGORA — konuşma akışı. Dört karakterin KARŞILIKLI konuşması; ilk sürümde
   dört ayrı karttı ve aynı sayfada duran dört yazı gibi okunuyordu.
   Replikler tek sütunda sırayla akar, sol kenar çizgisi kimin konuştuğunu
   taşır. Renk tek taşıyıcı değil: ad her söz değişiminde yazılı. */
.konusma { display: grid; gap: 2px; }
.replik { border-left: 3px solid var(--line2); padding: 8px 0 8px 13px; }
.replik.devam { padding-top: 0; }
.replik .kim { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 3px; }
.replik .ad { font-size: 13.5px; font-weight: 700; }
.replik .unv { font-size: 11px; color: var(--faint); }
.replik .soz { margin: 0; font-size: 14px; line-height: 1.6; color: var(--text); max-width: 68ch; }
.replik.r-a { border-left-color: var(--accent); }
.replik.r-b { border-left-color: var(--med); }
.replik.r-c { border-left-color: var(--ok); }
.replik.r-d { border-left-color: var(--crit); }

/* DERSLER — konuşmanın sonucu, başlığı değil; bu yüzden konuşmanın ALTINDA
   ve görsel olarak daha ağır. */
.dersler { margin-top: 18px; border-top: 2px solid var(--line2); padding-top: 14px; }
.dersler h3 { margin: 0 0 6px; font-size: 15px; font-weight: 700; }
.dersler .dgiris { margin: 0 0 10px; font-size: 13px; color: var(--muted); line-height: 1.6; max-width: 70ch; }
.dersler ol { margin: 0; padding-left: 22px; display: grid; gap: 10px; }
.dersler li { font-size: 13.5px; line-height: 1.55; }
.dersler li b { display: block; font-weight: 650; color: var(--text); }
.dersler li .n { display: block; margin-top: 2px; font-size: 12.5px; color: var(--faint); line-height: 1.55; }

.agl .sevb { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase;
             letter-spacing: .05em; padding: 1px 6px; border-radius: var(--r-cip);
             border: 1px solid var(--line2); color: var(--muted); margin-right: 5px; }
.agl .sevb.s-critical { border-color: var(--crit); color: var(--crit); }
.agl .sevb.s-high     { border-color: var(--high); color: var(--high); }
.agl .eylb { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase;
             letter-spacing: .05em; padding: 1px 6px; border-radius: var(--r-cip);
             background: var(--crit); color: var(--bg); margin-right: 5px; }
.agesk { border-top: 1px solid var(--line); padding: 9px 0; }
.agesk > summary { cursor: pointer; font-weight: 600; font-size: 13.5px; }
.agesk > summary .sg { font-weight: 400; margin-left: 6px; }
.agesk .okg-l, .agesk .sesler { margin-top: 10px; }


/* DERSLER — konuşmanın sonucu, başlığı değil; bu yüzden dört sesin ALTINDA
   ve görsel olarak daha ağır. */
.dersler { margin-top: 16px; border-top: 2px solid var(--line2); padding-top: 14px; }
.dersler h3 { margin: 0 0 6px; font-size: 15px; font-weight: 700; }
.dersler .dgiris { margin: 0 0 10px; font-size: 13px; color: var(--muted); line-height: 1.6; max-width: 70ch; }
.dersler ol { margin: 0; padding-left: 22px; display: grid; gap: 10px; }
.dersler li { font-size: 13.5px; line-height: 1.55; }
.dersler li b { display: block; font-weight: 650; color: var(--text); }
.dersler li .n { display: block; margin-top: 2px; font-size: 12.5px; color: var(--faint); line-height: 1.55; }

/* TÜRKİYE ALT ŞERİDİ — Security alanının içinde, ana şeridin altında. */
.trnav { display: none; }
html[data-kapsam="security"] .trnav,
html:not([data-kapsam]) .trnav {
  display: flex; gap: 4px; flex-wrap: wrap; align-items: center;
  padding: 0 16px 10px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.trnav button { font-size: 13.5px; font-weight: 600; color: var(--muted); background: transparent;
  border: 1px solid transparent; border-radius: var(--r-cip); padding: 6px 13px; min-height: 34px;
  display: inline-flex; align-items: center; gap: 7px; transition: background .14s, color .14s; }
.trnav button:hover { color: var(--text); background: var(--surface2); }
.trnav button.on { color: var(--text); background: var(--surface2); border-color: var(--line2); }
.trnav .b { font-family: "IBM Plex Mono", monospace; font-size: 11px; font-weight: 600;
  color: var(--faint); background: var(--surface); border: 1px solid var(--line);
  border-radius: 999px; padding: 0 6px; line-height: 1.6; }

#view-ihlal { display: none; }
[data-view="ihlal"] #view-ihlal { display: block; }
[data-view="ihlal"] #view-overview, [data-view="ihlal"] #view-news, [data-view="ihlal"] #view-vuln,
[data-view="ihlal"] #view-cti, [data-view="ihlal"] #view-kons, [data-view="ihlal"] #view-ai,
[data-view="ihlal"] #view-ransom, [data-view="ihlal"] #view-cyber, [data-view="ihlal"] #view-okuma,
[data-view="ihlal"] #view-agora, [data-view="ihlal"] #view-turkiye,
[data-view="ihlal"] .filters { display: none; }

/* ARŞİV KAYDI — bir panel satırı değil, alıntılanabilir bir kayıt gibi
   görünmeli: kendi kutusu, kendi adresi, kendi atfı. */
.iak { border-top: 1px solid var(--line); padding: 13px 0; scroll-margin-top: 110px; }
.iak:first-child { border-top: 0; }
.iak h3 { margin: 3px 0 5px; font-size: 15px; font-weight: 650; }
.iab { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.iab time { font-family: "IBM Plex Mono", monospace; font-size: 11.5px; color: var(--faint); }
.iak .iao { margin: 0 0 7px; font-size: 13px; line-height: 1.55; color: var(--muted); max-width: 76ch; }
.iak-k { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 600;
  color: var(--faint); border: 1px solid var(--line2); border-radius: var(--r-cip); padding: 0 6px; line-height: 1.7; }
/* Kaldırılmış kayıt arşivin varlık sebebidir; en görünür işaret odur. */
.iax { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700;
  color: var(--bg); background: var(--crit); border-radius: var(--r-cip); padding: 1px 7px; line-height: 1.7; }
.iax.erken { background: var(--high); }
.iaalt { display: flex; gap: 14px; flex-wrap: wrap; }
.iaalt .lnk { font-size: 11.5px; color: var(--accent); background: none; border: 0;
  border-bottom: 1px dashed currentColor; padding: 0; cursor: pointer; }
.iak.vurgu { background: var(--surface2); outline: 2px solid var(--accent); outline-offset: 6px; border-radius: 4px; }

/* ÖĞRETİCİ KATMAN — ikincil ve kapalı gelir. CISO'nun okuma akışını bozmaz,
   öğrenen açtığında tam bir ders bulur. */
.ogren { border: 1px solid var(--line); border-radius: var(--r-cip); margin: 10px 0 2px;
         background: var(--surface2); }
.ogren > summary { cursor: pointer; padding: 8px 12px; font-size: 12.5px; color: var(--muted);
                   list-style: none; display: flex; gap: 6px; flex-wrap: wrap; align-items: baseline; }
.ogren > summary::-webkit-details-marker { display: none; }
.ogren > summary::before { content: "+"; font-family: "IBM Plex Mono", monospace;
                           color: var(--faint); margin-right: 2px; }
.ogren[open] > summary::before { content: "−"; }
.ogren > summary b { color: var(--text); font-weight: 650; }
.ogrenl { margin: 0; padding: 0 12px 10px; display: grid; gap: 6px; }
.ogrenl dt { font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
             color: var(--faint); font-weight: 600; }
.ogrenl dd { margin: 0 0 4px; font-size: 13px; line-height: 1.55; color: var(--text); }
.ogrennot { margin: 0; padding: 0 12px 10px; font-size: 11.5px; color: var(--faint); line-height: 1.5; }

#view-sinif { display: none; }
[data-view="sinif"] #view-sinif { display: block; }
[data-view="sinif"] #view-overview, [data-view="sinif"] #view-news, [data-view="sinif"] #view-vuln,
[data-view="sinif"] #view-cti, [data-view="sinif"] #view-kons, [data-view="sinif"] #view-ai,
[data-view="sinif"] #view-ransom, [data-view="sinif"] #view-cyber, [data-view="sinif"] #view-okuma,
[data-view="sinif"] #view-agora, [data-view="sinif"] #view-turkiye, [data-view="sinif"] #view-ihlal,
[data-view="sinif"] .filters { display: none; }

/* AÇIK SINIFI KARTI — örnek önde, tanım arkada. Kırmızı şapkanın itirazını
   karşılayan sıra bu: okuyan önce sahada istismar edilmiş kayıtları görüyor,
   tanımı sonra okuyor. */
.sfk { margin-bottom: 14px; scroll-margin-top: 110px; }
.sfk .cnt { font-family: "IBM Plex Mono", monospace; font-size: 12px; font-weight: 700;
            color: var(--bg); background: var(--crit); border-radius: var(--r-cip); padding: 1px 8px; }
.sfl .oz-m .mono { font-family: "IBM Plex Mono", monospace; }
.sfdaha { margin: 8px 0 0; font-size: 12px; color: var(--faint); }
.sfogren { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.sfurun { margin: 10px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.55; }
.sfcapa { margin: 8px 0 0; font-size: 11.5px; }
.sfcapa a { color: var(--accent); border-bottom: 1px dashed currentColor; text-decoration: none; }
.sfk.vurgu { outline: 2px solid var(--accent); outline-offset: 4px; }
.ogrenbag { margin: 0; padding: 0 12px 8px; font-size: 12px; }
.ogrenbag a { color: var(--accent); }

/* JAVASCRIPT GELMEDEN CANLI PANO KABUĞU GİZLİ KALIR.
   Ölçüm (3 Ekim 2026): JavaScript çalıştırmayan bir okuyucu 13 görünüm
   kapsayıcısı, 11 boş panel, 17 boş kabuk ve 3 tane "yükleniyor…" etiketi
   görüyordu — hiçbiri hiç dolmayacak. Sayfanın gerçek içeriği (#onizleme)
   bütün bu boş yapının ALTINDA kalıyordu. Dışarıdan yapılan "site bir SPA,
   kayıtlar görünmüyor" değerlendirmesinin görsel dayanağı buydu.
   Sayfanın kendi notu zaten doğru şeyi vaat ediyor: "Tarayıcıda uygulama
   açılınca yerini canlı panoya bırakır." Devrin bir yönü kuruluydu
   (app.js #onizleme'yi kaldırıyor); eksik olan ters yönüydü.
   app.js ilk satırında bayrağı "acik" yapar; yüklenemezse okuyucu boş
   paneller değil, tam ve okunabilir özeti görür. */
html[data-uygulama="kapali"] #icerik > div[id^="view-"]{display:none}
html[data-uygulama="kapali"] #icerik > .filters{display:none}

/* KAYIT SAYFASI — tek kayıtlık yaprak sayfa. Pano kabuğu ve app.js
   yüklenmediği için kendi dar yerleşimi var. Arama sonucundan gelen
   okuyucunun gördüğü ilk ve tek şey bu. */
body.kayitsayfa #icerik{max-width:760px;margin:0 auto;padding:18px}
.kayitsayfa .kayit{border-top:1px solid var(--line);padding:18px 0}
.kayitsayfa .kayit h2{font-size:22px;line-height:1.3;margin:0 0 6px}
.kayitsayfa .kayit .oz-m{font-size:12px;color:var(--faint);
  font-family:"IBM Plex Mono",monospace;margin:0 0 14px}
.kayit-uyari{font-size:13px;line-height:1.6;background:var(--surface2);
  border-left:3px solid var(--med);padding:10px 12px;margin:0 0 14px}
.kayit-alinti{margin:0 0 14px;padding:0 0 0 14px;
  border-left:3px solid var(--line2)}
.kayit-alinti p{margin:0 0 6px;font-size:14px;line-height:1.65}
.kayit-alinti cite{font-size:11.5px;color:var(--faint);font-style:normal;
  font-family:"IBM Plex Mono",monospace}
.kayit-isaret{margin:0 0 14px;padding:0 0 0 18px;font-size:13px;
  color:var(--muted)}
.kayit-bag{font-size:13px;margin:14px 0 0}
.kayit-komsu{font-size:12px;margin:18px 0 0;padding-top:12px;
  border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap}
.kayitalt{max-width:760px;margin:0 auto;padding:24px 18px;font-size:12px;
  color:var(--faint);border-top:1px solid var(--line)}

/* ======================= ALAN AYRIMI: üç kapsam =======================
   NEDEN GENEL KURAL: eski görünümler 47 ayrı [data-view] ikilisiyle
   gizleniyor (O(n²)). Beş yeni görünüm için ~60 seçici daha yazmak
   sürdürülebilir değil ve tam olarak bozulan yer orası olurdu. Yeni alanlar
   ALAN niteliğine bakan iki kuralla yönetiliyor; eski kurallara
   DOKUNULMADI. */

/* Network şeridi yalnızca Network alanında. */
.nwnav { display: none; }
html[data-kapsam="network"] .nwnav {
  display: flex; gap: 4px; flex-wrap: wrap; align-items: center;
  padding: 0 16px 10px; border-bottom: 1px solid var(--line);
  margin-bottom: 14px; order: 3; width: 100%; }
.nwnav button { font-size: 13.5px; font-weight: 600; color: var(--muted);
  background: transparent; border: 1px solid transparent;
  border-radius: var(--r-cip); padding: 6px 13px; min-height: 34px;
  display: inline-flex; align-items: center; gap: 7px;
  transition: background .14s, color .14s; }
.nwnav button:hover { color: var(--text); background: var(--surface2); }
.nwnav button.on { color: var(--text); background: var(--surface2);
  border-color: var(--line2); }
.nwnav .b { font-family: "IBM Plex Mono", monospace; font-size: 11px;
  font-weight: 600; color: var(--faint); background: var(--surface);
  border: 1px solid var(--line); border-radius: 999px; padding: 0 6px;
  line-height: 1.6; }

/* GÖRÜNÜM GİZLEME KURALLARI ÜRETİLİR — elle sayılmaz.
   Bu blok sayfalar.py tarafından app.js'teki görünüm haritasından yazılır;
   aradaki her şey ÜRETİMDE DEĞİŞTİRİLİR, elle düzenlenmez.

   NEDEN: burada görünümler tek tek sayılıyordu ve liste kaçınılmaz olarak
   geride kaldı. 4 Ekim 2026'da ölçüldü — /network/switch açıkken BEŞ panel
   birden görünüyordu (switch, wlan, ai, otomasyon, okuma), çünkü dört yeni
   görünüm gizleme listesine eklenmemişti ve nwokuma ile nwcerceve hiç
   eklenmemişti. Kullanıcı "Switch sekmesinde WLAN ve AI konuları var"
   dediğinde gördüğü şey buydu. Elle tutulan liste, tek kaynaktan üretilen
   kuralla değiştirildi: yeni görünüm eklemek artık CSS'i unutmaya
   elverişli değil. */
/* URETILEN-GORUNUM-BAS  -  sayfalar.py yazar, elle duzenlemeyin */
/* Butun gorunumler varsayilan gizli. */
#view-agora, #view-ai, #view-altyapi, #view-cti, #view-cyber, #view-ihlal, #view-kons, #view-news, #view-nw, #view-nwai, #view-nwcerceve, #view-nwokuma, #view-nwomur, #view-nwoto, #view-nwstandart, #view-nwswitch, #view-nwuretici, #view-nwwlan, #view-okuma, #view-overview, #view-ransom, #view-sinif, #view-turkiye, #view-vuln { display: none; }
/* Secili gorunum acik. */
[data-view="agora"] #view-agora,
[data-view="ai"] #view-ai,
[data-view="altyapi"] #view-altyapi,
[data-view="cti"] #view-cti,
[data-view="cyber"] #view-cyber,
[data-view="ihlal"] #view-ihlal,
[data-view="kons"] #view-kons,
[data-view="news"] #view-news,
[data-view="nw"] #view-nw,
[data-view="nwai"] #view-nwai,
[data-view="nwcerceve"] #view-nwcerceve,
[data-view="nwokuma"] #view-nwokuma,
[data-view="nwomur"] #view-nwomur,
[data-view="nwoto"] #view-nwoto,
[data-view="nwstandart"] #view-nwstandart,
[data-view="nwswitch"] #view-nwswitch,
[data-view="nwuretici"] #view-nwuretici,
[data-view="nwwlan"] #view-nwwlan,
[data-view="okuma"] #view-okuma,
[data-view="overview"] #view-overview,
[data-view="ransom"] #view-ransom,
[data-view="sinif"] #view-sinif,
[data-view="turkiye"] #view-turkiye,
[data-view="vuln"] #view-vuln {
  display: flex; flex-direction: column; gap: 20px; padding-top: 28px; }
/* URETILEN-GORUNUM-BIT */

/* Security DIŞI alanlarda Security görünümleri ve filtre şeridi gizli.
   Tek kural, 60 seçici yerine. */
html[data-kapsam="network"] #icerik > [id^="view-"]:not([id^="view-nw"]),
html[data-kapsam="network"] #icerik > .filters,
html[data-kapsam="altyapi"] #icerik > [id^="view-"]:not(#view-altyapi),
html[data-kapsam="altyapi"] #icerik > .filters { display: none !important; }
/* Security alanında Network ve altyapı görünümleri gizli. Tek kural:
   önceki sürüm görünümleri tek tek sayıyordu ve yeni eklenenleri kaçırdı. */
html[data-kapsam="security"] #icerik > [id^="view-nw"],
html[data-kapsam="security"] #view-altyapi { display: none !important; }

/* SEKME ÇUBUKLARI DA ALANA AİT. Yukarıdaki kural görünüm kaplarını ayırıyordu
   ama sekme şeridini ayırmıyordu: .trnav ve .nwnav için kural vardı, ASIL
   Security şeridi olan .nav için yoktu. Sonuç 3 Ekim'de ekranda ölçüldü:
   /network açıkken Network sekmelerinin hemen altında ikinci bir şerit —
   "Genel bakış · Agora · Açık Sınıfları · Zafiyet · CTI Brifing" — duruyordu.
   İki alanın sekmeleri aynı ekranda iç içe geçiyordu. Sekme şeridi, hangi
   alanda olduğunu söyleyen şeydir; yanlışı göstermek yön duygusunu bozar. */
html[data-kapsam="network"] .nav,
html[data-kapsam="altyapi"] .nav,
html[data-kapsam="network"] .trnav,
html[data-kapsam="altyapi"] .trnav { display: none !important; }
/* Simetrik: Security'de Network şeridi gizli. Daha önce yalnızca
   html[data-kapsam="network"] .nwnav GÖSTERİLİYORDU; gizleme tarafı
   varsayılana bırakılmıştı. */
html[data-kapsam="security"] .nwnav,
html[data-kapsam="altyapi"] .nwnav { display: none !important; }

/* ---------------------------- Network bileşenleri */
.nwsinyal { display: grid; gap: 10px; }
.nwsinyal .s { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px;
  align-items: baseline; border-top: 1px solid var(--line); padding: 10px 0 0; }
.nwsinyal .s:first-child { border-top: 0; }
.nwsinyal .t { font-weight: 650; font-size: 14.5px; }
.nwsinyal .n { font-family: "IBM Plex Mono", monospace; font-size: 12px;
  color: var(--faint); white-space: nowrap; }
.nwsinyal .u { grid-column: 1 / -1; font-size: 12px; color: var(--muted); }
.nwsinyal .o { grid-column: 1 / -1; font-size: 12.5px; }
.nwsinyal .o a { color: var(--text); }
.nwbar { grid-column: 1 / -1; height: 4px; background: var(--surface2);
  border-radius: 999px; overflow: hidden; }
.nwbar i { display: block; height: 100%; background: var(--text); }

.nwliste { display: grid; gap: 0; }
.nwliste .r { display: grid; grid-template-columns: 86px 1fr auto;
  gap: 4px 12px; align-items: baseline; border-top: 1px solid var(--line);
  padding: 9px 0; font-size: 13.5px; }
.nwliste .r:first-child { border-top: 0; }
.nwliste .d { font-family: "IBM Plex Mono", monospace; font-size: 11.5px;
  color: var(--faint); }
.nwliste .v { font-weight: 600; }
.nwliste .b2 { grid-column: 2; }
.nwliste .m { grid-column: 2 / -1; font-size: 11.5px; color: var(--faint);
  font-family: "IBM Plex Mono", monospace; }
.nwliste .yeni { background: var(--ok-soft); color: var(--ok);
  border-radius: var(--r-cip); padding: 0 5px; font-size: 10.5px;
  font-weight: 700; white-space: nowrap; }
.nwliste .yol { font-size: 10.5px; color: var(--faint); }

.nwom .r { grid-template-columns: 1fr 96px 96px; }
.nwom .bitti { color: var(--crit); }
.nwom .yakin { color: var(--med); }
.nwmq { display: grid; gap: 12px; }
.nwmq .r { border-top: 1px solid var(--line); padding: 10px 0 0; }
.nwmq .r:first-child { border-top: 0; }
.nwmq h3 { font-size: 14px; margin: 0 0 4px; }
.nwmq ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid;
  gap: 5px; }
.nwmq li { font-size: 13px; }
.nwmq .k { font-family: "IBM Plex Mono", monospace; font-size: 11px;
  color: var(--faint); }

/* ---------------------------- ÇERÇEVE bileşenleri */
#view-nwcerceve { display: none; }
[data-view="nwcerceve"] #view-nwcerceve {
  display: flex; flex-direction: column; gap: 20px; padding-top: 28px; }
html[data-kapsam="security"] #view-nwcerceve { display: none !important; }

/* T1 pazar yönü. Yön rozeti RENKLE DEĞİL, önce işaretle okunur: ↑ ↓ → —
   renk yalnızca destek. Renk körlüğünde de, ekran okuyucuda da aynı bilgi. */
.nwyon { margin: 0 0 14px; }
.nwyon:last-child { margin-bottom: 0; }
.nwyon h3 { font-size: 13px; margin: 0 0 6px; color: var(--muted); }
.nwyon ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nwyon li { font-size: 13px; border-left: 3px solid var(--line2);
  padding: 1px 0 1px 11px; }
.nwyon .yon { font-family: "IBM Plex Mono", monospace; font-weight: 700;
  font-size: 14px; margin-right: 5px; }
.nwyon .yon.up { color: var(--ok); }
.nwyon .yon.down { color: var(--high); }
.nwyon .yon.flat, .nwyon .yon.yok { color: var(--faint); }
.nwyon .k { font-family: "IBM Plex Mono", monospace; font-size: 11px;
  color: var(--faint); }
.nwyon .k2 { font-size: 12px; color: var(--muted); margin: 2px 0 1px;
  line-height: 1.5; }
.nwyon a { font-size: 11.5px; }

/* Çapraz kaynak: okunamayan satır SİLİNMEZ, soluk kalır. Eksik olanı
   göstermek, onu listeden düşürmekten dürüsttür. */
.nwcap { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.nwcap li { font-size: 13px; display: flex; gap: 8px; align-items: baseline;
  flex-wrap: wrap; border-left: 3px solid var(--line2); padding: 1px 0 1px 11px; }
.nwcap li.ok { border-left-color: var(--ok); }
.nwcap li.kapali { border-left-color: var(--faint); }
.nwcap li.kapali b, .nwcap li.kapali .k { color: var(--faint); }
.nwcap .k { font-family: "IBM Plex Mono", monospace; font-size: 11px;
  color: var(--muted); }
.nwcap .k2 { flex-basis: 100%; font-size: 11.5px; color: var(--faint); }
.nwcap .dz { font-size: 10.5px; font-weight: 700; border-radius: var(--r-cip);
  padding: 0 6px; text-transform: uppercase; letter-spacing: .02em; }
.nwcap .dz.acik { background: var(--ok-soft); color: var(--ok); }
.nwcap .dz.kapali { background: var(--surface2); color: var(--faint); }

/* T2 mimari radarı: teknoloji · durum · yaklaşım · gerekçe */
.nwradar { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nwradar li { font-size: 13px; border-left: 3px solid var(--line2);
  padding: 1px 0 1px 11px; }
.nwradar li.Now { border-left-color: var(--ok); }
.nwradar li.Next { border-left-color: var(--med); }
.nwradar li.Later { border-left-color: var(--faint); }
.nwradar .dz { font-size: 10.5px; font-weight: 700; border-radius: var(--r-cip);
  padding: 0 6px; margin-left: 6px; background: var(--surface2);
  color: var(--muted); text-transform: uppercase; letter-spacing: .02em; }
.nwradar .yk { font-size: 12.5px; font-weight: 600; margin: 3px 0 1px; }
.nwradar .k2 { font-size: 11.5px; color: var(--faint);
  font-family: "IBM Plex Mono", monospace; }

/* Markalar ve Gartner */
.nwmarka { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.nwmarka > li { border-left: 3px solid var(--line2); padding: 2px 0 2px 12px; }
.nwmarka .h { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.nwmarka .h b { font-size: 14.5px; }
.nwmarka .k2 { font-size: 11.5px; color: var(--faint);
  font-family: "IBM Plex Mono", monospace; }
.nwmarka .gt { margin: 3px 0 4px; font-size: 12px; }
.nwmarka .rz { font-size: 10.5px; font-weight: 700; border-radius: var(--r-cip);
  padding: 1px 7px; background: var(--ok-soft); color: var(--ok);
  text-transform: uppercase; letter-spacing: .02em; }
.nwmarka .yn { font-family: "IBM Plex Mono", monospace; font-weight: 700; }
.nwmarka .yn.up { color: var(--ok); }
.nwmarka .yn.down { color: var(--high); }
.nwmarka .yn.flat { color: var(--faint); }
.nwmarka .tk { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.nwmarka .ct { font-size: 10.5px; border: 1px solid var(--line);
  border-radius: 999px; padding: 0 7px; color: var(--muted); }
.nwmarka .sn { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 3px; }
.nwmarka .sn li { font-size: 12.5px; line-height: 1.45; }

/* Günün gündemi — C-LEVEL. Görsel hiyerarşi okuma sırasını zorlar:
   karar tipi rozeti ve başlık en üstte, karar cümlesi büyük, GEREKÇE
   KAPALI (teknik ayrıntı isteyene açılır), aksiyon ayrı kutuda. Yalnızca
   tezleri okuyan biri gündemi almış olmalı. */
.nwgun { list-style: none; margin: 0; padding: 0; counter-reset: g;
  display: grid; gap: 22px; }
.nwgun > li { counter-increment: g; border-left: 3px solid var(--line2);
  padding: 2px 0 2px 13px; }
.nwgun .et { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap;
  margin: 0 0 5px; }
.nwgun .et::before { content: counter(g); color: var(--faint);
  font-family: "IBM Plex Mono", monospace; font-weight: 700; font-size: 12px; }
.nwgun .kr { font-size: 10px; font-weight: 700; border-radius: var(--r-cip);
  padding: 1px 7px; text-transform: uppercase; letter-spacing: .03em;
  background: var(--surface2); color: var(--muted); }
.nwgun .kr.yat, .nwgun .kr.mim { background: var(--ok-soft); color: var(--ok); }
.nwgun .kr.mal { background: var(--ok-soft); color: var(--ok); }
.nwgun .kr.std { background: var(--surface2); color: var(--muted); }
.nwgun .kr.isl { background: var(--surface2); color: var(--med); }
.nwgun .kr.izl { background: var(--surface2); color: var(--faint); }
.nwgun .bas { font-size: 12.5px; color: var(--muted); font-weight: 600; }
.nwgun .tez { font-size: 16px; font-weight: 650; line-height: 1.45;
  margin: 0 0 9px; max-width: 70ch; }
.nwgun .ger { margin: 0 0 9px; }
.nwgun .ger > summary { font-size: 12px; color: var(--muted); cursor: pointer;
  user-select: none; }
.nwgun .ger[open] > summary { margin-bottom: 6px; }
.nwgun .day { margin: 0 0 6px; padding-left: 18px; display: grid; gap: 5px; }
.nwgun .day li { font-size: 13px; line-height: 1.55; color: var(--muted);
  max-width: 78ch; }
.nwgun .k2 { font-size: 11.5px; color: var(--faint); }
.nwgun .aks { margin: 0; font-size: 13.5px; line-height: 1.55;
  background: var(--surface2); border-radius: 8px; padding: 9px 12px;
  max-width: 76ch; }
.nwgun .aks.yok { background: none; padding: 0; color: var(--faint);
  font-size: 12.5px; }
.nwgun .kyn { margin: 0; font-size: 11.5px; }

/* Ağ okuma listesi. Ölçülemeyen satır soluk ama GÖRÜNÜR; bayat olan üstü
   çizili değil, yalnızca işaretli — okuyucu neden listede olduğunu görsün. */
.nwok { margin: 0 0 16px; }
.nwok:last-of-type { margin-bottom: 10px; }
.nwok h3 { font-size: 13.5px; margin: 0 0 2px; }
.nwok > .k2 { font-size: 12px; color: var(--muted); margin: 0 0 8px; }
.nwok ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.nwok li { font-size: 13px; border-left: 3px solid var(--line2);
  padding: 1px 0 1px 11px; }
.nwok li.olculdu { border-left-color: var(--ok); }
.nwok li.olculemedi { border-left-color: var(--faint); }
.nwok li.bayat { border-left-color: var(--high); }
.nwok li a { font-weight: 600; }
.nwok .dz { font-size: 10px; font-weight: 700; border-radius: var(--r-cip);
  padding: 0 6px; margin-left: 6px; background: var(--surface2);
  color: var(--muted); text-transform: uppercase; letter-spacing: .02em; }
.nwok .dz.olculdu { background: var(--ok-soft); color: var(--ok); }
.nwok .dz.bayat { color: var(--high); }
.nwok .ol { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 3px 0 1px;
  font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--muted); }
.nwok .k2 { font-size: 11.5px; color: var(--faint); line-height: 1.5; }

.nwkad { display: grid; gap: 14px; }
.nwkad .r { border-left: 3px solid var(--line2); padding: 2px 0 2px 12px; }
.nwkad .r.acik { border-left-color: var(--ok); }
.nwkad .r.kismi { border-left-color: var(--med); }
.nwkad .r.kapali { border-left-color: var(--faint); }
.nwkad .h { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.nwkad .kod { font-family: "IBM Plex Mono", monospace; font-size: 12px;
  font-weight: 700; color: var(--faint); }
.nwkad .h b { font-size: 15px; }
.nwkad .dz { font-size: 10.5px; font-weight: 700; border-radius: var(--r-cip);
  padding: 0 6px; text-transform: uppercase; letter-spacing: .02em; }
.nwkad .dz.acik { background: var(--ok-soft); color: var(--ok); }
.nwkad .dz.kismi { background: var(--surface2); color: var(--med); }
.nwkad .dz.kapali { background: var(--surface2); color: var(--faint); }
.nwkad .yt { font-family: "IBM Plex Mono", monospace; font-size: 11px;
  color: var(--faint); border: 1px solid var(--line); border-radius: 999px;
  padding: 0 6px; }
.nwkad .sr2 { margin: 4px 0 6px; font-size: 13.5px; font-weight: 600; }
.nwkad .kp, .nwkad .ek { margin: 0 0 3px; font-size: 12.5px;
  color: var(--muted); max-width: 82ch; line-height: 1.55; }
.nwkad .ek { color: var(--faint); }
.nwkad.kisa .r { padding-bottom: 0; }
.nwkad.kisa .sr2 { margin-bottom: 2px; }

.nwufuk { margin: 0 0 16px; }
.nwufuk h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .04em;
  color: var(--faint); margin: 0 0 6px; display: flex; gap: 8px;
  align-items: baseline; }
.nwufuk h3 .n { font-family: "IBM Plex Mono", monospace; }
.nwufuk .r { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px;
  border-top: 1px solid var(--line); padding: 8px 0; }
.nwufuk .t { font-weight: 650; font-size: 14px; }
.nwufuk .n { font-family: "IBM Plex Mono", monospace; font-size: 11.5px;
  color: var(--faint); white-space: nowrap; }
.nwufuk .g { grid-column: 1 / -1; font-size: 12px; color: var(--muted); }

.nwyetki { display: grid; gap: 0; }
.nwyetki .r { display: grid; grid-template-columns: 28px 1fr auto;
  gap: 10px; align-items: baseline; border-top: 1px solid var(--line);
  padding: 9px 0; }
.nwyetki .r:first-child { border-top: 0; }
.nwyetki .harf { font-family: "IBM Plex Mono", monospace; font-size: 15px;
  font-weight: 700; }
.nwyetki .t { font-size: 13.5px; }
.nwyetki .n { font-family: "IBM Plex Mono", monospace; font-size: 11.5px;
  color: var(--faint); white-space: nowrap; }

/* Kapatılmış darknet bağlantısı: metin kalır, tıklama kalkar. Kesik alt
   çizgi "burada bir bağlantı vardı ve kasıtlı olarak kapatıldı" der;
   gerekçe title'da yazılı. */
.bag-kapali{color:var(--muted);border-bottom:1px dashed var(--line2);cursor:help}

/* NE DEĞİŞTİ paneli: ölçümün zaman serisi. Yön rengi yalnızca iki gözlemi
   olan satırda görünür; tek gözlemde panel hiç satır çizmez. */
.gbas{font-size:13px;font-weight:600;margin:14px 0 6px;color:var(--fg)}
.gecl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.gecl li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;
  gap:4px 10px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-cip);
  background:var(--surface)}
.gecl .gad{font-weight:550;font-size:13px}
.gecl .gyon{font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}
.gecl .gyon.up{color:var(--up,#3fa66a)}
.gecl .gyon.down{color:var(--down,#d06060)}
.gecl .gyon.flat{color:var(--muted)}
.gecl .k2{grid-column:1/-1;font-size:11.5px;color:var(--muted)}

/* BAĞIMSIZ DAYANAK paneli. Dört hüküm, dört renk — ikisi "bilmiyoruz" der
   ve o ikisinin rengi kasıtlı olarak nötr: eksik bilgi, kötü haber değil. */
.dogl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dogl>li{border:1px solid var(--line);border-radius:var(--r-cip);
  padding:10px 12px;background:var(--surface)}
.dbas{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;justify-content:space-between}
.dhuk{font-size:11.5px;font-weight:600;border-radius:var(--r-cip);
  padding:2px 9px;border:1px solid var(--line2)}
.dhuk.dog-std{color:var(--up,#3fa66a);border-color:var(--up,#3fa66a)}
.dhuk.dog-tsl{color:var(--warn,#c99a3a);border-color:var(--warn,#c99a3a)}
.dhuk.dog-oku{color:var(--muted)}
.dhuk.dog-yok{color:var(--muted);border-style:dashed}
.dkan{font-size:12.5px;margin-top:5px}
.dnot{font-size:12px;color:var(--muted);margin-top:5px;
  border-left:2px solid var(--line2);padding-left:8px}

/* İHALE paneli: çeyrek başına bildirim çubuğu. Süren çeyrek eksiktir ve
   etiketinde öyle yazar; çubuğu kısa diye düşüş sanılmasın. */
.ihc{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.ihc li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.ihq{font-size:12.5px;font-weight:550;min-width:5.5em}
.ihbar{height:9px;background:var(--line);border-radius:5px;overflow:hidden}
.ihbar i{display:block;height:100%;background:var(--muted);border-radius:5px}
.ihn{font-size:12.5px;font-variant-numeric:tabular-nums;min-width:3em;text-align:right}

/* ÇOK-MODLU İZ rozeti: gündem maddesinin altında, haberin yanındaki ikinci
   sütun. "İz yok" kırmızı DEĞİL — yanlış demek değil, elimizde haberden
   başka bir şey yok demek. */
.iz{margin:6px 0 0;border-left:2px solid var(--line2);padding-left:9px}
.iz summary{cursor:pointer;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;
  font-size:12.5px;list-style:none}
.iz summary::-webkit-details-marker{display:none}
.izet{font-weight:600;font-size:11.5px;border:1px solid var(--line2);
  border-radius:var(--r-cip);padding:1px 8px;white-space:nowrap}
.iz-bir .izet{color:var(--up,#3fa66a);border-color:var(--up,#3fa66a)}
.iz-cok .izet{color:var(--up,#3fa66a)}
.iz-tek .izet{color:var(--warn,#c99a3a)}
.iz-yok .izet{color:var(--muted);border-style:dashed}

/* ÜRETİCİ C-LEVEL OKUMA. Olay türü rozeti renkle değil, AYRIMLA çalışır:
   karar doğuran olaylar (ürün, müşteri, ortaklık) belirgin; etkinlik ve
   teknik anlatım nötr — çünkü onlar karar girdisi değil. */
.uyk{border:1px solid var(--line);border-radius:var(--r-cip);padding:12px 14px;
  margin:0 0 10px;background:var(--surface)}
.uyad{font-size:15px}
.uyok{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.uyok li{font-size:13px;line-height:1.55;border-left:2px solid var(--line2);padding-left:9px}
.uyl{margin:4px 0 0;padding-left:20px;display:grid;gap:10px}
.uyl li{font-size:13px}
.uyb{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}
.uyan{font-size:12px;color:var(--muted);margin-top:2px}
.olay{font-size:10.5px;font-weight:600;border:1px solid var(--line2);
  border-radius:var(--r-cip);padding:1px 7px;white-space:nowrap;color:var(--muted)}
.olay.ol-ur,.olay.ol-mu,.olay.ol-or{color:var(--fg);border-color:var(--fg)}
.olay.ol-yo{border-style:dashed}

/* Makale metni durumu: okundu / okunamadı. İkisi görsel olarak ayrı,
   çünkü "okunamadı" bir eksiklik beyanıdır ve gizlenmemeli. */
.uymt{font-size:12px;margin-top:3px;padding-left:8px;border-left:2px solid var(--line2)}
.uymt.var{color:var(--fg)}
.uymt.yok{color:var(--muted);border-left-style:dashed}

/* Model yazımı yorum: hesaplanan okumanın üstünde ama görsel olarak AYRI.
   Sol şerit, "burada ölçüm değil yorum okuyorsunuz" der. */
.uymodel{border-left:3px solid var(--line2);padding:8px 0 2px 11px;margin:8px 0 2px;
  background:linear-gradient(90deg,var(--line) 0,transparent 60%)}
.uymet{font-size:13.5px;line-height:1.62}

/* GÜNDEM ARŞİVİ — maddenin kendi geçmişi. "Geçiş" olanı belirgin: karar
   tipinin ya da kesinliğin değişmesi, okuyucunun kendi kararını gözden
   geçirmesi gereken andır. */
.ars{font-size:11.5px;color:var(--muted);margin:4px 0 0}
.ars.yeni{color:var(--fg)}
.ars.gecis{color:var(--fg);border-left:2px solid var(--warn,#c99a3a);padding-left:8px}
.arsg{margin-top:2px}

/* KONU SEKMESİ: tek ekranda beş katmanın özeti. Sayı şeridi en üstte,
   çünkü okuyucunun ilk sorusu "burada ne kadar şey var". */
.konusay{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 10px;
  padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-cip);
  background:var(--surface);font-size:12.5px}
.konusay b{font-size:16px;font-variant-numeric:tabular-nums}

/* ON MADDE: sekmeye basan kişinin 10 saniyede okuyacağı şey. Numara
   belirgin, açıklama okunaklı, aksiyon ayrı satırda ve ayırt edilebilir —
   "ne biliyorum" ile "ne yapmalıyım" aynı cümlede olmamalı. */
.konul{margin:4px 0 14px;padding-left:22px;display:grid;gap:11px}
.konul li{font-size:13.5px;line-height:1.55}
.konul li b{font-size:14px}
.konua{margin-top:2px}
.konuk{margin-top:4px;font-size:12.5px;color:var(--fg);
  border-left:2px solid var(--warn,#c99a3a);padding-left:9px}

/* ===================================================================
   11 Ekim 2026 — İLK EKRAN ve MASAÜSTÜ PUNTO ÖLÇEĞİ
   Ölçüm (1440x900): gövde paragrafı 12,5-13px; 13 puntonun ALTINDA
   ~4.300 metin öğesi (1.528'i 11px, 623'ü 10px), 15px olan yalnız 103.
   Mobilde paragraf zaten 16px — yani sıkışık olan masaüstüydü ve
   okuyucunun çoğu orada. Taban bildirimlere (380 adet) dokunulmadı:
   çip ve rozet düzenini bozardı. Yalnızca OKUMA metni yükseltiliyor,
   yalnızca masaüstünde.
   =================================================================== */

/* Günün tek şeyi: başlık değil, HABERİN KENDİSİ. */
.hero-ust{margin:0 0 10px;font-size:12px;font-weight:650;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.hero-bas{font-size:clamp(25px,3.1vw,38px);font-weight:680;letter-spacing:-.034em;
  line-height:1.12;margin:0 0 13px;max-width:22ch}
.hero-bas a{color:inherit;text-decoration:none;
  border-bottom:2px solid color-mix(in srgb,var(--accent) 38%,transparent)}
.hero-bas a:hover{border-bottom-color:var(--accent)}
.hero-oz{margin:0;font-size:16.5px;line-height:1.62;color:var(--muted);max-width:62ch}
.hero-alt{margin:14px 0 0;font-size:13px;color:var(--faint)}
.hero-alt a{color:var(--accent)}
.hero{max-width:74ch}

@media (min-width:768px){
  /* Kayıt kartı: başlık ve özet, panonun asıl okuma yüzeyi. */
  article.item h3 a{font-size:16.5px;line-height:1.35}
  article.item p{font-size:15px;line-height:1.6;max-width:78ch}
  .ev-card p{font-size:15px;line-height:1.62}
  .iak .iao{font-size:15px;line-height:1.62}
  .iak h3 a{font-size:17px}
  .okkz{font-size:14.5px;line-height:1.6}
  .ai-item p,.theme p{font-size:15px;line-height:1.6}
  .must .c p{font-size:14.5px;line-height:1.58}
  .rep p{font-size:14px;line-height:1.58}
  .okkul li a{font-size:14px;line-height:1.5}
  .breach a{font-size:14px}
  .item .oz-m,.oz-m{font-size:12.5px}

  /* İKİNCİL KATMAN — düzyazı taşıyanlar. Ölçüldü: bunlar çip değil,
     cümle. "Bugünün özeti" maddeleri 12px, sızıntı açıklamaları 11px,
     kaynak notları 12px yazılıyordu. Etiket ve rozetler küçük kalır,
     cümle kuranlar okunur boya çıkar. */
  .ci .n{font-size:14.5px;line-height:1.58}
  td.v .ds,.tbl td .ds{font-size:13.5px;line-height:1.55;max-width:60ch}
  .miss div{font-size:13.5px;line-height:1.58}
  .more .cl{font-size:14px;line-height:1.56}
  td.sc.why{font-size:14px;line-height:1.55}
  .srcs2 .s span{font-size:13px}
  /* Özgüllük: taban kurallar .rep .th span / .miss .d biçiminde yazılmış,
     daha gevşek bir seçici onları yenemiyordu (ölçüldü, tutmadı). */
  .rep .th span{font-size:12px}
  .miss,.miss div,.miss>div{font-size:13.5px;line-height:1.55}
  .miss .d,.miss .r{font-size:12px}
  .tcard .desc{font-size:14px;line-height:1.56;max-width:78ch}
  .rule,details.rulefold .rule{font-size:13px;line-height:1.55}
  .ev-card .when .fs{font-size:11.5px}
  .ev-tri .hot{font-size:11.5px}
  .breach .sm{font-size:14px;line-height:1.58}
  .ph .right{font-size:13px;line-height:1.5}
  .srcs .src .w{font-size:13px;line-height:1.5}
  .reg.live p{font-size:13.5px;line-height:1.55}
  .tbl td.sc{font-size:13.5px;line-height:1.55}
  .rep .th span{font-size:13px}
}

/* Mobil okuma katmanı. İlk ölçümde "mobil zaten 16px" sanmıştım; o
   ölçüm sayfanın giriş paragrafınaydı. Kayıt KARTLARI telefonda da
   13px yazıyordu — masaüstüyle aynı kusur. Telefonda satır dar olduğu
   için punto daha da önemli. */
@media (max-width:767px){
  article.item h3 a{font-size:16px;line-height:1.35}
  article.item p,.ev-card p,.iak .iao{font-size:15px;line-height:1.6}
  .ci .n{font-size:14.5px;line-height:1.58}
  .breach .sm{font-size:14px;line-height:1.56}
  .okkz,.tcard .desc{font-size:14px;line-height:1.56}
  td.v .ds,.tbl td .ds{font-size:13px;line-height:1.5}
}

/* KART KÜNYESİ — sağlama bilgisi haberin ALTINDA.
   11 Ekim 2026: kart haberden önce yedi etiketle açılıyordu; CVE
   numarası, Admiralty derecesi (B3), TLP ve tarih başlığın altına
   indi. Künye soluk ve küçük kalır: oraya karar vermek için değil,
   kaydı kullanmaya karar verdikten SONRA bakılır. */
/* KONTRAST: ilk denemede color:var(--faint) + opacity:.85 yazmıştım;
   ölçüldü, 11 puntoda 3,53:1 çıktı ve WCAG AA eşiği (4,5:1) altında
   kaldı. Künyeyi geri plana atan şey soluklaştırma DEĞİL, konumudur:
   haberin altında, ince bir çizginin ardında. Renk okunur kalır. */
.item .meta.kunye{margin:9px 0 0;padding-top:7px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--muted)}
.item .meta.kunye .tag{font-size:11px;padding:1px 5px}
.item .meta.ust{margin-bottom:7px}

/* AGORA GİRİŞİ — konu, neden ve konuşanlar; sesten önce.
   11 Ekim 2026: konuşma en üste alınınca okuyucu adı geçen dört kişinin
   kim olduğunu ancak metnin sonunda öğreniyordu. */
.ag-giris{margin:0 0 18px;padding:14px 16px;background:var(--surface2);
  border:1px solid var(--line);border-radius:var(--r2)}
.ag-giris p{margin:0 0 7px;font-size:14px;line-height:1.55;color:var(--text)}
.ag-giris p:last-child{margin-bottom:0}
.ag-giris b{display:inline-block;min-width:92px;font-size:11.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.agg-kisi .agk{display:inline-flex;align-items:baseline;gap:5px;margin:0 10px 0 0}
.agg-kisi .agk b{display:inline;min-width:0;font-size:14px;font-weight:650;
  letter-spacing:0;text-transform:none;color:var(--text)}
.agg-kisi .agk i{font-style:normal;font-size:12.5px;color:var(--muted)}
.agg-kurgu{font-size:12.5px!important;color:var(--muted)!important;
  padding-top:8px;border-top:1px solid var(--line)}
@media (max-width:767px){
  .ag-giris b{display:block;min-width:0;margin-bottom:2px}
  .agg-kisi .agk{display:flex;margin:0 0 4px}
}

/* MUTABAKAT — konuşmanın sonucu, derslerden önce.
   11 Ekim 2026: iki haftanın konuşması da etkileyici bir imgeyle
   bitiyordu ("Biri yeter.", "Üç haftanın.") ve okuyan tarafların
   nerede buluştuğunu bilmeden kalkıyordu. Paylaşılan anlayış,
   kapanış cümlesinden başka bir şeydir ve kendi yerini hak eder. */
.mutabakat{margin:20px 0 0;padding:14px 16px;border-left:3px solid var(--accent);
  background:var(--accent-soft);border-radius:0 var(--r2) var(--r2) 0}
.mutabakat h3{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--accent)}
.mutabakat p{margin:0 0 7px;font-size:15px;line-height:1.6;color:var(--text)}
.mutabakat p:last-child{margin-bottom:0}
.mt-acik,.mt-kavram{font-size:13.5px!important;color:var(--muted)!important}
.mt-kavram{padding-top:8px;border-top:1px solid var(--line)}
.agg-ayrim .agg-olcut{display:block;margin-top:3px;font-size:13px;color:var(--muted)}

/* HAFTANIN GÜNDEMİ, KONUŞMADAN ÖNCE.
   11 Ekim 2026: konuşma en üste alınınca "Haftanın gündemi" paneli
   ~5000 piksel aşağıda kaldı ve okuyan, hakkında konuşulan olayları
   görmeden konuşmayı okuyordu. Giriş artık altı maddeyi de sayıyor;
   tam liste kaynak bağlantılarıyla birlikte aşağıdaki panelde durmaya
   devam ediyor. */
.agg-gundem{margin:4px 0 10px;padding:0 0 0 22px;counter-reset:agg}
.agg-gundem li{margin:0 0 5px;font-size:13.5px;line-height:1.5;color:var(--text)}
.agg-gundem li::marker{color:var(--muted);font-variant-numeric:tabular-nums}
.agg-g-b{font-weight:550}
.agg-g-t,.agg-g-k{font-size:12px;color:var(--faint);margin-left:7px;white-space:nowrap}
.agg-g-k{font-style:normal}
@media (max-width:767px){
  .agg-gundem li{font-size:14px}
  .agg-g-t,.agg-g-k{display:inline-block;margin:2px 7px 0 0}
}

/* İLGİ ALANI YILDIZI — çip süzer, yıldız sıralar.
   11 Ekim 2026: okuyucu kendi ilgilendiği üreticileri işaretler ve
   o kayıtlar listenin üstüne çıkar. HİÇBİR KAYIT GİZLENMEZ: 73 kaydın
   içinde 107 şirket var, dağılım uzun kuyruklu; süzmek haftanın dörtte
   üçünü yok ederdi. Seçim okuma listesindeki ilgi alanıyla aynı yerde
   (localStorage) saklanır, sunucuya gitmez. */
.pwrap{display:inline-flex;align-items:stretch;gap:0}
.pwrap .pchip{border-top-right-radius:0;border-bottom-right-radius:0}
.ilgi-yildiz{border:1px solid var(--line);border-left:0;
  border-radius:0 var(--r-cip) var(--r-cip) 0;padding:0 8px;cursor:pointer;
  background:var(--surface);color:var(--line2);font-size:13px;line-height:1;
  transition:color .14s,background .14s}
.ilgi-yildiz:hover{color:var(--warn,#c99a3a)}
.ilgi-yildiz.on{color:#fff;background:var(--warn,#c99a3a);border-color:var(--warn,#c99a3a)}
.pwrap.ilgili .pchip{border-color:var(--warn,#c99a3a)}
.pchip.analist{font-style:normal;opacity:.9}
.ilgi-ayrac{margin:16px 0 9px;font-size:11.5px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--warn,#c99a3a);padding-bottom:5px;
  border-bottom:1px solid color-mix(in srgb,var(--warn,#c99a3a) 32%,transparent)}
.ilgi-ayrac.sol{color:var(--muted);border-bottom-color:var(--line)}
