/* selvi.org v7 arayüzü — OTOMATİK ÜRETİLİR (scripts/build-sd-css.py, kaynak: css/sd/*.css). Elle düzenlemeyin. */
/* ==== 00-temel.css ==== */
/* ==========================================================================
   selvi.org v7 · "Kor · modern dark" (superdesign iç sayfa tasarımı)
   00 · Token'lar, eski değişken takma adları, sıfırlama, temel
   Kaynak: yangin-db/alternatif-ic-sayfa/7-superdesign/tema.css (token'lar değiştirilmeden)
   ========================================================================== */
:root {
  --background: oklch(0.135 0.004 270);
  --background-deep: oklch(0.105 0.004 270);
  --foreground: oklch(0.975 0.002 270);
  --card: oklch(0.175 0.005 270);
  --card-foreground: oklch(0.975 0.002 270);
  --popover: oklch(0.185 0.006 270);
  --primary: oklch(0.975 0.002 270);
  --primary-foreground: oklch(0.155 0.004 270);
  --secondary: oklch(0.225 0.006 270);
  --muted: oklch(0.205 0.005 270);
  --muted-foreground: oklch(0.73 0.01 270);
  --subtle-foreground: oklch(0.6 0.01 270);
  --accent: oklch(0.80 0.15 62);
  --accent-strong: oklch(0.72 0.17 48);
  --accent-foreground: oklch(0.2 0.05 55);
  --accent-soft: oklch(0.80 0.15 62 / 0.12);
  --water: oklch(0.88 0.05 215);
  --destructive: oklch(0.63 0.2 25);
  --border: oklch(1 0 0 / 0.08);
  --border-strong: oklch(1 0 0 / 0.14);
  --input: oklch(1 0 0 / 0.1);
  --ring: oklch(0.80 0.15 62 / 0.7);
  --font-sans: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --radius: 0.875rem;
  --radius-md: 10px;
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 6px);
  --shadow-xs: 0 1px 0 0 oklch(1 0 0 / 0.05) inset, 0 1px 2px 0 oklch(0 0 0 / 0.4);
  --shadow-sm: 0 1px 0 0 oklch(1 0 0 / 0.06) inset, 0 2px 6px -1px oklch(0 0 0 / 0.5);
  --shadow: 0 1px 0 0 oklch(1 0 0 / 0.06) inset, 0 8px 20px -6px oklch(0 0 0 / 0.55);
  --shadow-md: 0 1px 0 0 oklch(1 0 0 / 0.07) inset, 0 14px 32px -10px oklch(0 0 0 / 0.6);
  --shadow-lg: 0 1px 0 0 oklch(1 0 0 / 0.07) inset, 0 24px 48px -16px oklch(0 0 0 / 0.65);
  --shadow-xl: 0 1px 0 0 oklch(1 0 0 / 0.08) inset, 0 36px 72px -20px oklch(0 0 0 / 0.75);
  --shadow-2xl: 0 0 0 1px oklch(1 0 0 / 0.07), 0 50px 100px -30px oklch(0 0 0 / 0.85), 0 0 140px -50px oklch(0.80 0.15 62 / 0.22);
  --tracking-normal: -0.011em;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --kap: 1200px;
  --yan: clamp(16px, 4vw, 32px);
  --ust-h: 64px;

  /* okuma (iç sayfa) */
  --prose-size: clamp(17px, 16.2px + 0.25vw, 18px);
  --prose-leading: 1.72;
  --prose-measure: calc(35 * var(--prose-size));   /* px cinsinden: callout/ilk paragraf ile aynı sağ kenar */
  --prose-fg: oklch(0.90 0.004 270);
  --prose-strong: oklch(0.985 0 0);
  --prose-heading: oklch(0.975 0.002 270);
  --prose-link: oklch(0.80 0.15 62);
  --prose-link-line: oklch(0.80 0.15 62 / 0.45);
  --prose-rule: oklch(1 0 0 / 0.07);
  --h2-size: clamp(1.55rem, 1.2rem + 1vw, 2rem);
  --h1-sayfa: clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem);   /* dizin ve özel sayfa H1 ölçeği (baslik-l) */
  --h3-size: 1.18rem;
  --ok: oklch(0.86 0.13 165);
  --bad: oklch(0.72 0.17 25);

  /* Eski (mor cam) değişkenlerin takma adları — calc.css, cviz.css, oviz.css, viz-*.css, uye.css bunları okur */
  --bg: var(--background);
  --bg-secondary: oklch(0.155 0.005 270);
  --card-solid: oklch(0.165 0.005 270);
  --card-border: var(--border);
  --card-border-hover: var(--border-strong);
  --glass-tint: oklch(1 0 0 / 0.02);
  --text: var(--foreground);
  --text-secondary: var(--muted-foreground);
  --text-muted: var(--subtle-foreground);
  --accent-light: oklch(0.86 0.11 66);
  --accent-glow: oklch(0.80 0.15 62 / 0.25);
  --accent-fire: var(--accent);
  --accent-mep: oklch(0.82 0.09 210);
  --accent-santiye: oklch(0.76 0.11 250);
  --purple-gradient: linear-gradient(135deg, var(--accent), var(--accent-strong));
  --radius-sm: 10px;
  --transition: 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  --max-width: 1200px;
  --font: var(--font-sans);
}

/* ---------- Sıfırlama (eski style.css ile aynı temel: diğer CSS dosyaları buna dayanır) ---------- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { background: var(--background); color-scheme: dark; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 84px; }
@media (max-width: 1023px) { html.sd-toc-var { scroll-padding-top: 140px; } }   /* yapışkan telefon İçindekiler şeridi */
body {
  min-height: 100vh;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: var(--tracking-normal);
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; height: auto; display: block; }
svg { flex-shrink: 0; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
h1, h2, h3, h4 { font-weight: 600; color: var(--foreground); text-wrap: balance; }
p { text-wrap: pretty; }
::selection { background: oklch(0.80 0.15 62 / 0.35); color: var(--foreground); }
:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 6px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.mono { font-family: var(--font-mono); letter-spacing: 0; }
.soluk { color: var(--subtle-foreground); }
.kap { max-width: var(--kap); margin-inline: auto; padding-inline: var(--yan); }
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }
svg.i { width: 16px; height: 16px; display: inline-block; vertical-align: middle; }
.atla { position: fixed; left: 16px; top: -60px; z-index: 100; background: var(--primary); color: var(--primary-foreground); padding: 10px 14px; border-radius: 10px; font-weight: 500; transition: top .2s var(--ease-out); }
.atla:focus { top: 12px; }
.sd-capa { display: block; height: 0; outline: none; }

/* ==== 10-krom.css ==== */
/* ==========================================================================
   10 · Kabuk: üst çubuk, menüler, komut paleti, kapanış, alt bilgi, ortak bileşenler
   (7-superdesign/tema.css'ten; Tailwind sınıfları düz CSS'e çevrildi)
   ========================================================================== */

/* ---------- Üst çubuk ---------- */
.ust { position: fixed; inset: 0 0 auto 0; z-index: 50; border-bottom: 1px solid transparent; transition: background-color .35s, border-color .35s; }
.ust.kaydi, .ust.acik { background: oklch(0.135 0.004 270 / 0.78); -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); border-bottom-color: var(--border); }
.ust-ic { display: flex; align-items: center; gap: 28px; height: var(--ust-h); }
.sd-yazi, .sd-dizin { --kap: 1320px; }   /* üst çubuk, kapanış ve alt bilgi aynı genişlikte */
.logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15.5px; letter-spacing: -0.02em; color: var(--foreground); white-space: nowrap; }
.logo svg { width: 26px; height: 26px; flex: none; }
.ust-menu { display: flex; align-items: center; gap: 2px; list-style: none; }
.ust-link { display: inline-flex; align-items: center; gap: 4px; padding: 7px 11px; border-radius: 8px; color: var(--muted-foreground); font-size: 13.5px; line-height: 1.4; white-space: nowrap; background: transparent; border: 0; cursor: pointer; transition: color .2s, background-color .2s; }
.ust-link:hover, .ust-link[aria-expanded="true"], .ust-link.etkin { color: var(--foreground); }
.ust-link:hover, .ust-link[aria-expanded="true"] { background: oklch(1 0 0 / 0.05); }
.ust-link.etkin { position: relative; }
.ust-link.etkin::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 1px; height: 1px; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: .8; }
.ust-link svg { width: 14px; height: 14px; opacity: .7; transition: transform .25s var(--ease-out); }
.ust-link[aria-expanded="true"] svg { transform: rotate(180deg); }
.menu { position: relative; }
.menu-panel { position: absolute; top: calc(100% + 10px); left: -12px; width: 380px; padding: 8px; border-radius: 16px; background: oklch(0.175 0.005 270 / 0.94); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border: 1px solid var(--border-strong); box-shadow: var(--shadow-xl); opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.98); transform-origin: top left; transition: opacity .18s, transform .25s var(--ease-out), visibility 0s .25s; }
.menu:hover .menu-panel:not(.kapali), .menu:has(.menu-panel :focus-visible) .menu-panel:not(.kapali), .menu-panel.acik { opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .25s var(--ease-out), visibility 0s; }
.menu-panel.kapali { opacity: 0 !important; visibility: hidden !important; }
.menu-oge { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: 10px; transition: background-color .15s; }
.menu-oge:hover, .menu-oge:focus-visible { background: oklch(1 0 0 / 0.05); }
.menu-oge .ikon { width: 36px; height: 36px; border-radius: 9px; display: grid; place-items: center; background: oklch(1 0 0 / 0.04); border: 1px solid var(--border); color: var(--muted-foreground); transition: color .2s, border-color .2s; }
.menu-oge:hover .ikon { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.3); }
.menu-oge .ikon svg { width: 17px; height: 17px; }
.menu-oge b { display: block; font-weight: 500; font-size: 14px; color: var(--foreground); }
.menu-oge small { display: block; color: var(--subtle-foreground); font-size: 12.5px; line-height: 1.35; }

.ust-sag { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.ara-dugme { display: inline-flex; align-items: center; gap: 10px; height: 34px; padding: 0 6px 0 12px; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.04); color: var(--muted-foreground); font-size: 13.5px; cursor: pointer; transition: border-color .2s, background-color .2s, color .2s; }
.ara-dugme:hover { color: var(--foreground); border-color: oklch(1 0 0 / 0.22); background: oklch(1 0 0 / 0.07); }
.ara-dugme svg { width: 15px; height: 15px; }
kbd, .kbd { font-family: var(--font-mono); font-size: 11px; line-height: 1; padding: 4px 6px; border-radius: 6px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.05); color: var(--muted-foreground); white-space: nowrap; }
.dil { font-family: var(--font-mono); font-size: 12px; padding: 7px 9px; border-radius: 8px; color: var(--muted-foreground); border: 1px solid transparent; }
.dil:hover { color: var(--foreground); border-color: var(--border); }
.menu-dugme { display: none; width: 36px; height: 36px; place-items: center; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.04); color: var(--foreground); cursor: pointer; }
.menu-dugme svg { width: 18px; height: 18px; }
.mobil-menu { border-top: 1px solid var(--border); background: oklch(0.135 0.004 270 / 0.97); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); max-height: calc(100vh - var(--ust-h)); max-height: calc(100dvh - var(--ust-h)); overflow-y: auto; overscroll-behavior: contain; }
.mobil-menu[hidden] { display: none; }
.mobil-menu .kap { padding-bottom: 16px; }
.mobil-menu a { display: flex; justify-content: space-between; align-items: center; min-height: 48px; padding: 12px 4px; border-bottom: 1px solid var(--border); font-size: 15px; color: var(--foreground); }
.mobil-menu a::after { content: ""; width: 15px; height: 15px; flex: none; background: var(--subtle-foreground);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat; }
.mobil-menu a[aria-current] { color: var(--accent); }

/* üyelik düğmesi (uye.js #navLinks'e çizer) */
.sd-uye { display: flex; align-items: center; list-style: none; gap: 6px; }
.sd-uye:empty { display: none; }
.sd-uye .uye-nav-li { display: flex; align-items: center; gap: 6px; }
.sd-uye .uye-nav-btn { height: 34px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.04); color: var(--muted-foreground) !important; font-size: 13px; font-weight: 500; gap: 7px; }
.sd-uye .uye-nav-btn:hover { color: var(--foreground) !important; background: oklch(1 0 0 / 0.08); }
.sd-uye .uye-nav-btn--fav { color: var(--accent) !important; border-color: oklch(0.80 0.15 62 / 0.35); background: var(--accent-soft); }

/* okuma ilerleme çubuğu (yalnız yazı) */
.okuma-cubuk { display: none; }
.sd-yazi .okuma-cubuk { display: block; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none; overflow: hidden; }
.okuma-cubuk span { display: block; height: 100%; width: 100%; transform-origin: 0 50%; transform: scaleX(var(--ilerleme, 0)); background: linear-gradient(90deg, oklch(0.72 0.17 48 / 0), var(--accent-strong) 30%, var(--accent)); box-shadow: 0 0 12px 0 oklch(0.80 0.15 62 / 0.6); }

@media (max-width: 1099px) {
  .ust-menu { display: none; }
  .menu-dugme { display: grid; }
}
@media (min-width: 1100px) { .mobil-menu { display: none !important; } }
@media (max-width: 640px) {
  .ara-dugme .ara-yazi, .ara-dugme kbd { display: none; }
  .ara-dugme { padding: 0 10px; }
  .sd-uye .uye-nav-btn { padding: 0 10px; }
  .ust-ic { gap: 12px; }
}
@media (max-width: 380px) { .logo > span { display: none; } }
@media (pointer: coarse) { .ara-dugme kbd, .kapanis-arama kbd { display: none; } }

/* ---------- Ortak bileşenler ---------- */
.ust-etiket { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-foreground); }
.ust-etiket::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px 2px oklch(0.80 0.15 62 / 0.6); }
.baslik-l { font-size: clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem); line-height: 1.02; letter-spacing: -0.045em; font-weight: 600; }
.dugme-ana { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: 11px; background: var(--primary); color: var(--primary-foreground); font-weight: 500; font-size: 14.5px; border: 0; cursor: pointer; box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.6) inset, 0 8px 22px -8px oklch(0 0 0 / 0.7); transition: background-color .2s, transform .15s; }
.dugme-ana:hover { background: oklch(0.92 0.002 270); }
.dugme-ana:active { transform: scale(.98); }
.dugme-ana svg, .dugme-ikincil svg { width: 16px; height: 16px; }
.dugme-ikincil { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 11px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.03); color: var(--foreground); font-weight: 500; font-size: 14.5px; cursor: pointer; transition: background-color .2s, border-color .2s; }
.dugme-ikincil:hover { background: oklch(1 0 0 / 0.07); border-color: oklch(1 0 0 / 0.22); }
.kart { position: relative; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); }
.isik { position: relative; }
.isik::after { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 4; background: radial-gradient(320px circle at var(--mx, 50%) var(--my, -20%), oklch(0.80 0.15 62 / 0.6), oklch(1 0 0 / 0.08) 40%, transparent 70%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .3s; }
.isik:hover::after, .isik:focus-within::after { opacity: 1; }
.cip { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.03); color: var(--muted-foreground); font-size: 13px; cursor: pointer; transition: color .2s, border-color .2s, background-color .2s; }
.cip:hover { color: var(--foreground); border-color: var(--border-strong); background: oklch(1 0 0 / 0.06); }
.pencere-ust { display: flex; align-items: center; gap: 14px; height: 40px; padding: 0 14px; border-bottom: 1px solid var(--border); background: oklch(0.16 0.005 270 / 0.9); }
.noktalar { display: flex; gap: 7px; }
.noktalar i { width: 11px; height: 11px; border-radius: 50%; background: oklch(1 0 0 / 0.12); display: block; }
.adres { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-mono); font-size: 12px; color: var(--muted-foreground); }
.adres span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 12px; border-radius: 8px; background: oklch(1 0 0 / 0.04); border: 1px solid var(--border); max-width: 520px; }
.rozet { font-family: var(--font-mono); font-size: 11px; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--border-strong); color: var(--muted-foreground); white-space: nowrap; }
.rozet.kor { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.3); background: var(--accent-soft); }

/* giriş animasyonu (betik gerektirmez) + kaydırınca belirme (yalnız .js varken gizli başlar) */
.giris { animation: sd-giris 0.9s var(--ease-out) both; animation-delay: calc(var(--s, 0) * 70ms + 80ms); }
@keyframes sd-giris { from { opacity: 0; transform: translateY(14px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
.js [data-belir] { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); transition-delay: calc(var(--s, 0) * 80ms); }
.js [data-belir].gorundu { opacity: 1; transform: none; }

/* ---------- Komut paleti ---------- */
.palet { width: min(680px, calc(100vw - 24px)); max-height: min(560px, calc(100svh - 120px)); margin: 12vh auto auto; padding: 0; border-radius: 18px; border: 1px solid var(--border-strong); background: oklch(0.175 0.005 270 / 0.95); -webkit-backdrop-filter: blur(28px) saturate(150%); backdrop-filter: blur(28px) saturate(150%); color: var(--foreground); box-shadow: var(--shadow-2xl); overflow: hidden; }
.palet[open] { display: flex; flex-direction: column; animation: sd-palet .18s var(--ease-out); }
.palet::backdrop { background: oklch(0.105 0.004 270 / 0.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
@keyframes sd-palet { from { opacity: 0; transform: scale(.98) translateY(-6px); } to { opacity: 1; transform: none; } }
.palet-ust { display: flex; align-items: center; gap: 12px; height: 60px; padding: 0 16px 0 20px; border-bottom: 1px solid var(--border); flex: none; }
.palet-ust svg { width: 18px; height: 18px; color: var(--muted-foreground); }
.palet-ust input { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; color: var(--foreground); font-size: 17px; }
.palet-ust input::placeholder { color: var(--subtle-foreground); }
.palet-ust input::-webkit-search-cancel-button { -webkit-appearance: none; }
.palet-sonuc { flex: 1; overflow: auto; padding: 6px; scrollbar-width: thin; min-height: 120px; }
.palet-alt { flex: none; display: flex; align-items: center; gap: 16px; padding: 10px 16px; border-top: 1px solid var(--border); font-size: 12px; color: var(--subtle-foreground); }
.palet-alt span { display: inline-flex; align-items: center; gap: 6px; }
.palet-alt .sag { margin-left: auto; font-family: var(--font-mono); }
.palet-kapat { display: inline-grid; place-items: center; min-width: 40px; min-height: 40px; margin-right: -8px; background: none; border: 0; cursor: pointer; padding: 0; }
.sonuc-grup { padding: 10px 10px 6px; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--subtle-foreground); }
.sonuc { display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 9px 10px; border-radius: 10px; cursor: pointer; scroll-margin: 6px; color: var(--foreground); }
.sonuc[aria-selected="true"], .sonuc:hover { background: oklch(1 0 0 / 0.06); }
.sonuc[aria-selected="true"] { box-shadow: inset 2px 0 0 0 var(--accent); }
.sonuc-ikon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: oklch(1 0 0 / 0.04); border: 1px solid var(--border); color: var(--muted-foreground); }
.sonuc-ikon svg { width: 16px; height: 16px; }
.sonuc[data-hesap] .sonuc-ikon { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.25); background: var(--accent-soft); }
.sonuc-govde { min-width: 0; }
.sonuc-baslik { display: block; font-size: 14.5px; font-weight: 500; color: var(--foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sonuc-ozet { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12.5px; line-height: 1.45; color: var(--subtle-foreground); }
.sonuc-ozet mark, .sonuc-baslik mark { background: transparent; color: var(--accent); }
.sonuc-tur { font-family: var(--font-mono); font-size: 11px; color: var(--muted-foreground); padding: 3px 7px; border-radius: 6px; border: 1px solid var(--border); white-space: nowrap; }
.sonuc-alt { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; padding: 10px 10px 6px; border-top: 1px solid var(--border); font-size: 12.5px; color: var(--subtle-foreground); }
.sonuc-alt a { color: var(--foreground); display: inline-flex; gap: 6px; align-items: center; }
.sonuc-alt a:hover { color: var(--accent); }
.sonuc-alt svg { width: 14px; height: 14px; }
.sonuc-yok { padding: 22px 12px; text-align: center; color: var(--muted-foreground); font-size: 14px; }
.sonuc-daha { display: block; width: calc(100% - 20px); margin: 6px 10px 4px; padding: 9px; border-radius: 10px; border: 1px dashed var(--border-strong); background: transparent; color: var(--muted-foreground); font-size: 13px; cursor: pointer; }
.sonuc-daha:hover { color: var(--foreground); border-color: oklch(1 0 0 / 0.24); }
@media (max-width: 640px) { .palet { margin-top: 8vh; } .sonuc-tur, .palet-alt .palet-esc { display: none; } .sonuc { grid-template-columns: 34px 1fr; } }

/* ---------- Kapanış + alt bilgi ---------- */
.kapanis { position: relative; overflow: hidden; text-align: center; padding-block: clamp(88px, 11vw, 150px); border-top: 1px solid var(--border); }
.kapanis::before { content: ""; position: absolute; left: 50%; top: 100%; width: 1100px; height: 700px; transform: translate(-50%, -55%); background: radial-gradient(closest-side, oklch(0.80 0.15 62 / 0.16), oklch(0.72 0.17 48 / 0.05) 55%, transparent); pointer-events: none; }
.kapanis-ic { position: relative; }
.kapanis-arama { margin: 34px auto 0; max-width: 560px; width: 100%; display: flex; align-items: center; gap: 12px; height: 58px; padding: 0 10px 0 18px; border-radius: 16px; border: 1px solid var(--border-strong); background: oklch(0.175 0.005 270 / 0.7); color: var(--subtle-foreground); font-size: 16px; cursor: text; text-align: left; box-shadow: var(--shadow-xl); transition: border-color .2s; }
.kapanis-arama:hover { border-color: oklch(1 0 0 / 0.24); }
.kapanis-arama svg { width: 18px; height: 18px; }
.kapanis-arama span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kapanis-cipler { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.alt-bilgi { border-top: 1px solid var(--border); padding-block: 56px 40px; font-size: 14px; }
.alt-izgara { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 40px; }
.alt-marka p { margin-top: 16px; max-width: 300px; color: var(--muted-foreground); line-height: 1.6; }
.alt-marka .alt-sosyal { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.alt-sosyal a { display: inline-flex; align-items: center; gap: 7px; color: var(--muted-foreground); transition: color .2s; }
.alt-sosyal a:hover { color: var(--foreground); }
.alt-sosyal svg { width: 15px; height: 15px; }
.alt-bilgi h2 { font-size: 12px; font-family: var(--font-mono); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); margin-bottom: 14px; }
.alt-bilgi ul { display: flex; flex-direction: column; gap: 9px; list-style: none; }
.alt-bilgi ul a { color: var(--muted-foreground); transition: color .2s; }
.alt-bilgi ul a:hover { color: var(--foreground); }
.alt-son { margin-top: 48px; padding-top: 22px; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--subtle-foreground); }
.alt-son a { color: var(--muted-foreground); text-decoration: underline; text-decoration-color: oklch(1 0 0 / 0.2); text-underline-offset: 3px; }
.alt-son a:hover { color: var(--foreground); }
@media (max-width: 960px) { .alt-izgara { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; } .alt-marka { grid-column: 1 / -1; } }
@media (max-width: 640px) { .alt-bilgi ul a, .alt-son a, .alt-sosyal a { display: inline-block; padding: 10px 0; } .alt-bilgi ul { gap: 0; } }

/* ---------- Bildirim ---------- */
.bildirim { position: fixed; left: 50%; bottom: 28px; z-index: 60; transform: translate(-50%, 12px); opacity: 0; pointer-events: none; padding: 10px 16px; border-radius: 999px; border: 1px solid var(--border-strong); background: oklch(0.2 0.006 270 / 0.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: var(--shadow-xl); font-size: 13.5px; color: var(--foreground); transition: opacity .18s, transform .3s var(--ease-out); white-space: nowrap; max-width: calc(100vw - 32px); overflow: hidden; text-overflow: ellipsis; }
.bildirim.gor { opacity: 1; transform: translate(-50%, 0); }
.bildirim::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 10px; vertical-align: middle; border-radius: 50%; background: var(--ok); box-shadow: 0 0 8px var(--ok); }

/* ---------- v7.1 düzeltmeleri ---------- */
/* üye düğmesi komşularıyla aynı hizada (uye.css'teki eski dar ekran margin-top'unu ezer) */
.sd-uye .uye-nav-li { margin-top: 0; }
/* telefonda üst çubuk dokunma alanları ≥ 40 px */
@media (max-width: 1023px) {
  .ara-dugme, .sd-uye .uye-nav-btn { height: 40px; }
  .menu-dugme { width: 40px; height: 40px; }
  .dil { display: inline-grid; place-items: center; min-width: 40px; min-height: 40px; padding: 0 8px; }
  .cip { min-height: 40px; }
}
@media (max-width: 640px) { .ara-dugme { min-width: 40px; justify-content: center; } }
/* dokunmatikte klavye ipuçları anlamsız */
@media (pointer: coarse) { .palet-alt { display: none; } }
/* üst çubuk, kapanış ve alt bilgi her sayfa türünde aynı genişlikte (sayfadan sayfaya logo zıplamasın) */
.ust-ic, .kapanis .kap, .alt-bilgi .kap { max-width: 1320px; }
/* üye düğmesi sonradan eklenir: yerini baştan ayır (CLS); betik yoksa yer ayrılmaz */
.js .sd-uye:empty { display: block; width: 76px; height: 34px; }
@media (max-width: 1023px) { .js .sd-uye:empty { width: 72px; height: 40px; } }
@media (max-width: 380px) { .js .sd-uye:empty { width: 44px; } }
/* palet kapat: dokunmatikte "esc" yerine × */
.palet-x { display: none; }
@media (pointer: coarse) { .palet-kapat kbd { display: none; } .palet-x { display: block; width: 20px !important; height: 20px !important; color: var(--muted-foreground); } .palet-kapat { min-width: 44px; min-height: 44px; } }
/* üye düğmesi yer tutucusu yalnız uye.js yüklenen sayfalarda */
.js .sd-uye:empty { display: none; }
html.js:has(script[src*="/js/uye.js"]) .sd-uye:empty { display: block; }

/* ==== 20-yazi.css ==== */
/* ==========================================================================
   20 · Yazı sayfası: başlık alanı (3B sahne), üç sütun (İçindekiler · gövde · bağlam), ilgili yazılar
   (7-superdesign/yazi.css; sitenin gerçek işaretlemesine — .breadcrumb, .post-category, .post-meta,
   .post-content, .related-posts — bağlandı. Yapı scripts/sd_chrome.py'den gelir.)
   ========================================================================== */
.sd-yazi { --kap: 1320px; }
.sd-yazi .blog-article { max-width: none; margin: 0; padding: 0; }

/* ---------- Başlık alanı ---------- */
.yazi-bas { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(540px, 74vh, 690px); display: flex; align-items: flex-end; }
.yazi-bas .sahne { position: absolute; inset: 0; z-index: -1; }
.yazi-bas .sahne canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 1.2s var(--ease-out); }
.yazi-bas .sahne canvas.hazir { opacity: 1; }
.yazi-bas .sahne-yedek { position: absolute; inset: 0; background:
  radial-gradient(40% 50% at 72% 34%, oklch(0.80 0.15 62 / 0.10), transparent 70%),
  url("/images/sd/sahne.webp") 70% 40% / cover no-repeat, var(--background); }
.yazi-bas .sahne-ortu { position: absolute; inset: 0; pointer-events: none; background:
  linear-gradient(90deg, oklch(0.135 0.004 270 / 0.95) 0%, oklch(0.135 0.004 270 / 0.84) 36%, oklch(0.135 0.004 270 / 0.32) 64%, transparent 84%),
  linear-gradient(180deg, oklch(0.135 0.004 270 / 0.55) 0%, transparent 18%, transparent 62%, var(--background) 100%); }
.yazi-bas-ic { position: relative; width: 100%; padding-top: 128px; padding-bottom: 52px; }
.yazi-bas-ic > * { max-width: 860px; }
/* başlık metni hareketsiz gelir (LCP); hareket sahnede ve künye satırında */
/* künye satırı da hareketsiz: içerik hiçbir koşulda animasyona bağlı kalmasın */
@keyframes sd-belir { from { opacity: 0; transform: translateY(8px); } }

/* sayfa yolu */
.yazi-bas .breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; margin: 0; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0; color: var(--subtle-foreground); }
.yazi-bas .breadcrumb a { color: var(--muted-foreground); transition: color .2s; }
.yazi-bas .breadcrumb a:hover { color: var(--foreground); }
.yazi-bas .breadcrumb .sep { margin: 0 10px; color: oklch(1 0 0 / 0.22); }
.yazi-bas .breadcrumb > span:last-child { color: var(--foreground); }

/* kategori hapı */
.yazi-bas .post-category { display: inline-flex; align-items: center; gap: 8px; margin-top: 26px; padding: 4px 12px 4px 10px; border-radius: 999px; border: 1px solid oklch(0.80 0.15 62 / 0.28); background: var(--accent-soft) !important; color: var(--accent) !important; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; box-shadow: var(--shadow-xs); }
.yazi-bas .post-category::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px 1px currentColor; }
.yazi-bas[data-kat="en12845"] .post-category { color: var(--water) !important; border-color: oklch(0.88 0.05 215 / 0.3); background: oklch(0.88 0.05 215 / 0.1) !important; }

.yazi-bas h1 { margin-top: 20px; font-size: clamp(2.05rem, 1.15rem + 2.55vw, 3.45rem); line-height: 1.05; letter-spacing: -0.045em; font-weight: 600;
  background: linear-gradient(180deg, oklch(0.99 0 0) 40%, oklch(0.99 0 0 / 0.68) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; padding-bottom: 0.06em; }
.yazi-ozet { margin-top: 20px; max-width: 660px !important; font-size: clamp(16.5px, 0.95rem + 0.3vw, 19px); line-height: 1.55; color: var(--muted-foreground); }

/* künye satırı: yazar · tarih · standart · okuma süresi · bölüm  /  etiketler ··· paylaş */
.yazi-meta { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; font-size: 13.5px; color: var(--muted-foreground); }
.yazi-meta .post-meta { display: contents; }
.yazi-meta .post-meta :is(.dot, .sep) { display: none; }
.yazi-meta time, .yazi-meta .post-meta > span:not(.dot):not(.sep), .meta-oge { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0; color: var(--muted-foreground); line-height: 1.4; }
.yazi-meta time::before { content: ""; width: 14px; height: 14px; flex: none; background: var(--subtle-foreground);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat; }
.yazi-meta .post-meta > span:not(.dot):not(.sep) { padding: 3px 8px; border-radius: 7px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.025); }
.meta-oge svg { width: 14px; height: 14px; color: var(--subtle-foreground); }
.sd-kir { order: 98; flex: 1 0 100%; height: 0; margin-top: 8px; border-top: 1px solid var(--border); }
.yazi-meta .post-tags { order: 99; flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 12px; }
.yazi-meta .post-tags > span { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); margin-right: 4px; }
.yazi-meta .post-tags a { font-family: var(--font-mono); font-size: 12px; padding: 4px 9px; border-radius: 7px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.025); color: var(--muted-foreground); transition: color .2s, border-color .2s; }
.yazi-meta .post-tags a:hover { color: var(--foreground); border-color: var(--border-strong); }
.yazi-meta .paylas { order: 100; margin-left: auto; margin-top: 4px; }
.yazi-meta .uye-yildiz { order: 97; margin-left: 0; height: 34px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.04); color: var(--muted-foreground); font-family: var(--font-sans); font-size: 13px; font-weight: 400; }
.yazi-meta .uye-yildiz:hover { color: var(--foreground); border-color: oklch(1 0 0 / 0.22); background: oklch(1 0 0 / 0.07); }
.yazi-meta .uye-yildiz.is-on { background: var(--accent); color: var(--accent-foreground); }
.paylas { display: flex; flex-wrap: wrap; gap: 8px; }
.paylas-dugme { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.04); color: var(--muted-foreground); font-size: 13px; cursor: pointer; transition: color .2s, border-color .2s, background-color .2s; }
.paylas-dugme:hover { color: var(--foreground); border-color: oklch(1 0 0 / 0.22); background: oklch(1 0 0 / 0.07); }
.paylas-dugme svg { width: 15px; height: 15px; }
.paylas-dugme.tamam { color: var(--ok); border-color: oklch(0.86 0.13 165 / 0.4); }

/* ---------- Telefon: katlanır içindekiler ---------- */
.toc-mobil-kap { display: none; }
.toc-mobil { border: 1px solid var(--border-strong); border-radius: 14px; background: oklch(0.165 0.005 270 / 0.86); -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); box-shadow: var(--shadow-lg); overflow: hidden; }
.toc-mobil summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 11px 14px; min-height: 46px; cursor: pointer; font-size: 14.5px; font-weight: 500; }
.toc-mobil summary::-webkit-details-marker { display: none; }
.toc-mobil-sol { display: inline-flex; align-items: center; gap: 9px; flex: none; }
.toc-mobil-sol svg { width: 16px; height: 16px; color: var(--accent); }
.toc-mobil-aktif { flex: 1; min-width: 0; text-align: right; font-family: var(--font-mono); font-size: 12px; font-weight: 400; color: var(--subtle-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toc-ok { width: 16px !important; height: 16px !important; flex: none; color: var(--muted-foreground); transition: transform .3s var(--ease-out); }
.toc-mobil[open] .toc-ok { transform: rotate(180deg); }
.toc-mobil .toc-liste { padding: 4px 10px 12px; border-top: 1px solid var(--border); max-height: 60vh; overflow: auto; }

/* ---------- Üç sütun ---------- */
.yazi-izgara { display: grid; grid-template-columns: 208px minmax(0, 1fr) 272px; gap: 52px; align-items: start; padding-top: 40px; padding-bottom: 24px; }
.toc { position: sticky; top: 92px; max-height: calc(100vh - 112px); overflow: auto; scrollbar-width: none; padding-top: 6px; }
.toc::-webkit-scrollbar { display: none; }
.toc-baslik { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.toc-baslik::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px 2px oklch(0.80 0.15 62 / 0.6); }
.toc-liste { display: flex; flex-direction: column; list-style: none; }
.toc-liste a { position: relative; display: grid; grid-template-columns: 26px 1fr; gap: 4px; padding: 7px 10px 7px 14px; font-size: 13.5px; line-height: 1.4; color: var(--muted-foreground); transition: color .25s, background-color .25s; border-radius: 0 8px 8px 0; }
.toc .toc-liste a { border-left: 1px solid var(--border-strong); }
.toc-liste a:hover { color: var(--foreground); background: oklch(1 0 0 / 0.03); }
.toc-liste .no { font-family: var(--font-mono); font-size: 11px; color: var(--subtle-foreground); padding-top: 2px; transition: color .25s; }
.toc-liste a .dolu { position: absolute; left: -1px; top: 0; width: 1px; height: 100%; background: var(--accent); transform-origin: 50% 0; transform: scaleY(var(--p, 0)); opacity: .55; }
.toc-liste a.aktif { color: var(--foreground); background: linear-gradient(90deg, oklch(0.80 0.15 62 / 0.08), transparent 80%); }
.toc-liste a.aktif .no { color: var(--accent); }
.toc-liste a.aktif .dolu { opacity: 1; box-shadow: 0 0 10px oklch(0.80 0.15 62 / 0.7); }
.toc-liste a.okundu .dolu { transform: scaleY(1); opacity: .35; }
.toc-alt { margin-top: 22px; display: flex; flex-direction: column; gap: 10px; }
.toc-ara { display: flex; align-items: center; gap: 9px; height: 36px; padding: 0 6px 0 12px; border-radius: 10px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.03); color: var(--muted-foreground); font-size: 12.5px; cursor: pointer; transition: color .2s, border-color .2s; }
.toc-ara:hover { color: var(--foreground); border-color: oklch(1 0 0 / 0.22); }
.toc-ara svg { width: 14px; height: 14px; }
.toc-ara kbd { margin-left: auto; }
.toc-basa { display: inline-flex; align-items: center; gap: 7px; padding-left: 2px; font-size: 12.5px; color: var(--subtle-foreground); transition: color .2s; }
.toc-basa:hover { color: var(--foreground); }
.toc-basa svg { width: 13px; height: 13px; }

/* ---------- Gövde (okuma tipografisi) ---------- */
.govde { min-width: 0; font-size: var(--prose-size); line-height: var(--prose-leading); color: var(--prose-fg); letter-spacing: -0.006em; counter-reset: bolum; overflow-wrap: break-word; }
.govde .post-content { font-size: inherit; line-height: inherit; color: inherit; }
:is(.govde, .govde > .post-content) > :is(p, ul, ol, dl, blockquote, h2, h3, h4, .callout, .tip, nav.toc) { max-width: var(--prose-measure); }
.govde p { margin: 0 0 1.3em; }
.govde strong, .govde b { color: var(--prose-strong); font-weight: 600; }
.govde em { color: inherit; }
.govde > .post-content > p:first-of-type { font-size: 1.08em; line-height: 1.66; color: oklch(0.93 0.003 270); }
.govde :is(p, li, td, dd, figcaption, .callout, blockquote) a:not([class]) { color: var(--prose-link); text-decoration: underline; text-decoration-color: var(--prose-link-line); text-underline-offset: 3px; text-decoration-thickness: 1px; transition: text-decoration-color .2s; }
.govde :is(p, li, td, dd, figcaption, .callout, blockquote) a:not([class]):hover { text-decoration-color: var(--prose-link); }
:is(.govde, .govde > .post-content) > h2 { position: relative; margin: 2.6em 0 0.75em; padding-top: 30px; border-top: 1px solid var(--prose-rule); font-size: var(--h2-size); line-height: 1.16; letter-spacing: -0.035em; color: var(--prose-heading); font-weight: 600; }
:is(.govde, .govde > .post-content) > h2::before { counter-increment: bolum; content: counter(bolum, decimal-leading-zero); display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: .06em; color: var(--accent); }
:is(.govde, .govde > .post-content) > h2::after { content: ""; position: absolute; left: 0; top: -1px; width: 56px; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); }
.govde .post-content > h2:first-child { margin-top: 0.4em; }
.govde h3 { margin: 1.9em 0 0.6em; font-size: var(--h3-size); line-height: 1.35; letter-spacing: -0.02em; color: var(--prose-heading); font-weight: 600; }
.govde h4 { margin: 1.6em 0 0.5em; font-size: 1.02em; line-height: 1.4; color: var(--prose-heading); font-weight: 600; }
.govde ul, .govde ol { padding-left: 1.3em; margin: 0 0 1.4em; }
.govde li { margin-bottom: 0.45em; }
.govde li::marker { color: var(--accent); }
.govde ol > li::marker { font-family: var(--font-mono); font-size: .86em; }
.capa { position: absolute; left: -30px; bottom: 4px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; color: var(--subtle-foreground); opacity: 0; transition: opacity .2s, color .2s; }
.capa svg { width: 15px; height: 15px; }
.govde h2:hover .capa, .capa:focus-visible { opacity: 1; }
.capa:hover { color: var(--accent); }

/* gövde sonu paylaş */
.paylas-son { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0 0; border-top: 1px solid var(--border); font-size: 14px; color: var(--subtle-foreground); }

/* ---------- Sağ: bağlam paneli (sd.js doldurur) ---------- */
.ray { position: sticky; top: 92px; padding-top: 6px; }
.ray-ic { display: flex; flex-direction: column; gap: 26px; }
.ray-etiket { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); margin-bottom: 10px; }
.ray-durum { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 14px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.02); }
.ray-durum .ray-etiket { margin-bottom: 2px; }
.ray-durum > div:last-child { min-width: 0; }
.halka { position: relative; width: 48px; height: 48px; flex: none; }
.halka svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.halka circle { fill: none; stroke-width: 2.5; }
.halka-iz { stroke: oklch(1 0 0 / 0.08); }
.halka-dolu { stroke: var(--accent); stroke-linecap: round; stroke-dasharray: 119.4; stroke-dashoffset: calc(119.4 * (1 - var(--ilerleme, 0))); filter: drop-shadow(0 0 4px oklch(0.80 0.15 62 / 0.6)); }
.halka span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-mono); font-size: 11px; color: var(--foreground); }
.ray-bolum { font-size: 14px; font-weight: 500; line-height: 1.35; color: var(--foreground); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ray-kalan { margin-top: 3px; font-family: var(--font-mono); font-size: 11.5px; color: var(--subtle-foreground); }
.ray-hesap { display: block; border-radius: 14px; overflow: hidden; }
.pencere-ust.mini { height: 30px; padding: 0 10px; gap: 8px; }
.pencere-ust.mini .noktalar { gap: 5px; }
.pencere-ust.mini .noktalar i { width: 8px; height: 8px; }
.pencere-ust.mini .adres { justify-content: flex-start; }
.pencere-ust.mini .adres span { font-size: 10.5px; padding: 2px 8px; border-radius: 6px; }
.ray-hesap-govde { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; padding: 14px 14px 10px; }
.ray-hesap-govde img { width: 52px; height: 52px; border-radius: 12px; background: oklch(0.12 0.004 270); box-shadow: inset 0 0 0 1px var(--border-strong); object-fit: cover; }
.ray-hesap-govde b { display: block; font-size: 13.5px; font-weight: 500; line-height: 1.35; color: var(--foreground); }
.ray-hesap-govde small { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; font-size: 12px; line-height: 1.4; color: var(--subtle-foreground); }
.ray-hesap-git { display: flex; align-items: center; justify-content: space-between; margin: 0 14px 14px; padding-top: 10px; border-top: 1px solid var(--border); font-size: 12.5px; font-weight: 500; color: var(--foreground); transition: color .2s; }
.ray-hesap:hover .ray-hesap-git { color: var(--accent); }
.ray-hesap-git svg { width: 14px; height: 14px; }
.ray-uyg { display: grid; grid-template-columns: 36px 1fr 16px; gap: 12px; align-items: center; padding: 10px; margin: 0 -10px; border-radius: 12px; transition: background-color .2s; }
.ray-uyg:hover { background: oklch(1 0 0 / 0.04); }
.ray-uyg img { width: 36px; height: 36px; border-radius: 9px; box-shadow: 0 0 0 1px oklch(1 0 0 / 0.1); }
.ray-uyg b { display: block; font-size: 13.5px; font-weight: 500; color: var(--foreground); }
.ray-uyg small { display: block; font-size: 12px; color: var(--subtle-foreground); line-height: 1.35; }
.ray-uyg svg { width: 15px; height: 15px; color: var(--subtle-foreground); }
.paylas.dikey { flex-direction: column; }
.paylas.dikey .paylas-dugme { width: 100%; }

/* ---------- İlgili yazılar ---------- */
.sd-yazi .related-posts { position: relative; max-width: var(--kap); margin: 32px auto 0; padding: clamp(56px, 6vw, 88px) var(--yan) 8px; border-top: 0; }
.sd-yazi .related-posts::before { content: ""; position: absolute; top: 0; left: 50%; width: 100vw; transform: translateX(-50%); border-top: 1px solid var(--border); }
.sd-yazi .related-posts__title { display: block; font-size: clamp(1.9rem, 1.2rem + 2vw, 2.8rem); line-height: 1.05; letter-spacing: -0.04em; font-weight: 600; color: var(--foreground); -webkit-text-fill-color: currentColor; background: none; margin-bottom: 36px; }
.sd-yazi .related-posts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.sd-yazi .related-card { position: relative; display: flex; flex-direction: column; gap: 0; min-height: 210px; padding: 22px 22px 64px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); overflow: hidden; transition: border-color .25s, transform .3s var(--ease-out); }
.sd-yazi .related-card::before { content: ""; position: absolute; top: auto; left: auto; height: 34px; opacity: 1; right: 20px; bottom: 20px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--border-strong); background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3b5bd' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / 15px no-repeat; transition: transform .25s var(--ease-out), background-color .25s, border-color .25s; }
.sd-yazi .related-card:hover { border-color: var(--border-strong); transform: translateY(-3px); box-shadow: var(--shadow-md); }
.sd-yazi .related-card:hover::before { transform: rotate(-45deg); background-color: var(--primary); border-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316161a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E"); }
.sd-yazi .related-card__cat { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--accent) !important; }
.sd-yazi .related-card__cat::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px 1px currentColor; }
.sd-yazi .related-card[data-cat="en12845"] .related-card__cat { color: var(--water) !important; }
.sd-yazi .related-card__title { margin-top: 14px; font-size: 17.5px; font-weight: 500; line-height: 1.34; letter-spacing: -0.02em; color: var(--foreground); }
.sd-yazi .related-card:hover .related-card__title { color: var(--foreground); }
.sd-yazi .related-card .uye-kart-yildiz { position: absolute; left: 18px; bottom: 22px; margin: 0; color: var(--accent); }

/* ---------- Duyarlı ---------- */
@media (max-width: 1279px) {
  .yazi-izgara { grid-template-columns: 200px minmax(0, 1fr); gap: 48px; }
  .ray { display: none; }
  .govde { max-width: 760px; }
}
@media (max-width: 1023px) {
  .yazi-izgara { grid-template-columns: minmax(0, 1fr); padding-top: 20px; }
  .toc { display: none; }
  .toc-mobil-kap.dolu { display: block; position: sticky; top: 72px; z-index: 20; margin-top: 4px; }
  .govde { max-width: 760px; margin-inline: auto; width: 100%; }
  .yazi-bas .sahne-ortu { background:
    linear-gradient(90deg, oklch(0.135 0.004 270 / 0.9) 0%, oklch(0.135 0.004 270 / 0.62) 60%, oklch(0.135 0.004 270 / 0.32) 100%),
    linear-gradient(180deg, oklch(0.135 0.004 270 / 0.5) 0%, transparent 20%, transparent 50%, var(--background) 100%); }
  .capa { display: none; }
}
@media (max-width: 640px) {
  .yazi-bas { min-height: 0; }
  .yazi-bas-ic { padding-top: 112px; padding-bottom: 30px; }
  .yazi-bas .sahne-yedek { background-position: 62% 30%; }
  .yazi-bas .sahne-ortu { background: linear-gradient(180deg, oklch(0.135 0.004 270 / 0.35) 0%, oklch(0.135 0.004 270 / 0.62) 34%, oklch(0.135 0.004 270 / 0.88) 62%, var(--background) 100%); }
  .yazi-bas h1 { font-size: clamp(1.75rem, 1.2rem + 3vw, 2.15rem); line-height: 1.1; }
  .yazi-meta { gap: 10px 16px; margin-top: 22px; }
  .yazi-meta .paylas { margin-left: 0; }
  :is(.govde, .govde > .post-content) > h2 { margin-top: 2.2em; padding-top: 24px; }
  .sd-yazi .related-posts__grid { grid-template-columns: 1fr; }
  .sd-yazi .related-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .yazi-bas .sahne canvas { transition: none; }
  .sd-yazi .related-card:hover { transform: none; }
}

/* ---------- v7.1 düzeltmeleri ---------- */
/* başlık metni zaten "1. …" diye numaralıysa CSS sayacı basılmaz (çift numara olmasın) */
.govde.el-numarali :is(.govde, .govde > .post-content) > h2::before { content: none; }
.govde.el-numarali :is(.govde, .govde > .post-content) > h2 { padding-top: 26px; }
.toc-liste.el-numarali a { grid-template-columns: 1fr; }
.toc-liste.el-numarali .no { display: none; }
/* H2'den hemen önceki <hr> + H2'nin kendi üst çizgisi = çift ayraç */
.govde .post-content > hr:has(+ h2) { display: none; }
/* İçindekiler yoksa (< 2 bölüm) tek sütun, ortada */
html:not(.sd-toc-var) .yazi-izgara { grid-template-columns: minmax(0, 760px); justify-content: start; }   /* başlık alanıyla aynı sol kenar */
html:not(.sd-toc-var) .yazi-izgara > :is(.toc, .ray) { display: none; }
/* uzun İçindekiler: taşınca alt solma; etkin madde sd.js ile görünür alanda tutulur */
.toc-kaydir.tasiyor { -webkit-mask-image: linear-gradient(#000 calc(100% - 48px), transparent); mask-image: linear-gradient(#000 calc(100% - 48px), transparent); }
.toc-kaydir.tasiyor.sonda { -webkit-mask-image: none; mask-image: none; }
/* kırıntı yolu: ayraç bir sonraki öğeye bağlı (satır sonunda yalnız kalmasın) */
.yazi-bas .breadcrumb > .sep { display: none; }
.yazi-bas .breadcrumb > :not(.sep) ~ :not(.sep)::before { content: "/"; margin: 0 10px; color: oklch(1 0 0 / 0.22); }
.yazi-bas .breadcrumb > * { white-space: nowrap; }
.yazi-bas .breadcrumb > span:last-child { white-space: normal; }
/* telefonda dokunma alanları */
@media (max-width: 640px) {
  .yazi-bas .breadcrumb a { display: inline-block; padding: 10px 0; }
  .yazi-meta .post-tags a, .paylas-dugme, .yazi-meta .uye-yildiz { min-height: 40px; display: inline-flex; align-items: center; }
  .toc-mobil .toc-liste a { min-height: 44px; align-items: center; padding-block: 10px; }
  .sd-yazi .related-card .uye-kart-yildiz { min-width: 40px; min-height: 40px; }
}
/* sade (dizin/yasal metin) sayfalarda bağlantı listesi kor duvarı olmasın */
.govde.sade li > a:not([class]) { color: var(--foreground); text-decoration-color: oklch(1 0 0 / 0.22); }
.govde.sade li > a:not([class]):hover { color: var(--accent); text-decoration-color: var(--accent); }
/* künye satırı: sonradan eklenen favori düğmesi (34/40 px) satırı büyütmesin */
.yazi-meta time, .yazi-meta .meta-oge { min-height: 34px; }
@media (max-width: 640px) { .yazi-meta time, .yazi-meta .meta-oge { min-height: 40px; } }
/* bağlam paneli: bölüm adı 1–2 satır arasında değişirken panel oynamasın */
.ray-bolum { min-height: 2.7em; }
/* İçindekiler: liste kendi kutusunda kayar; Ara / Başa dön her zaman görünür */
.toc { overflow: visible; display: flex; flex-direction: column; }
.toc-ic { display: flex; flex-direction: column; min-height: 0; max-height: calc(100vh - 118px); }
.toc-kaydir { min-height: 0; overflow: auto; scrollbar-width: none; }
.toc-kaydir::-webkit-scrollbar { display: none; }
.toc-alt { flex: none; }
/* telefon İçindekiler listesi taşınca alt solma */
.toc-mobil .toc-liste.tasiyor { -webkit-mask-image: linear-gradient(#000 calc(100% - 40px), transparent); mask-image: linear-gradient(#000 calc(100% - 40px), transparent); }

/* ==== 30-icerik.css ==== */
/* ==========================================================================
   30 · İçerik bileşenleri — eski style.css'teki TÜM bileşenler yeni temaya taşındı
   (yerleşim değerleri korunur, renk/yazı/yüzey yeni token'lardan). Yazılarda .govde içinde,
   uygulama/dizin/özel sayfalarda doğrudan kullanılır.
   ========================================================================== */

/* ---------- Genel yazı gövdesi (yazı dışı sayfalarda da: iletişim, KVKK vb.) ---------- */
.blog-article { max-width: 780px; margin: 0 auto; padding: 120px var(--yan) 60px; }
.blog-article > h1 { font-size: clamp(2rem, 1.3rem + 2.2vw, 3rem); line-height: 1.08; letter-spacing: -0.04em; margin-bottom: 20px; }
.post-content { font-size: 1.05rem; line-height: 1.8; color: var(--prose-fg); overflow-wrap: break-word; }
.post-content > p { margin-bottom: 20px; }
.post-content h2 { font-size: 1.6rem; line-height: 1.2; letter-spacing: -0.03em; margin: 44px 0 18px; }
.post-content h3 { font-size: 1.18rem; letter-spacing: -0.02em; margin: 30px 0 14px; }
.post-content ul, .post-content ol { padding-left: 24px; margin-bottom: 22px; }
.post-content li { margin-bottom: 8px; }
.post-content li::marker { color: var(--accent); }
.post-content strong { color: var(--prose-strong); font-weight: 600; }
.post-content a:not([class]) { color: var(--prose-link); text-decoration: underline; text-decoration-color: var(--prose-link-line); text-underline-offset: 3px; text-decoration-thickness: 1px; }
.post-content a:not([class]):hover { text-decoration-color: var(--prose-link); }
.post-content hr { border: 0; height: 1px; margin: 2.2em 0; background: linear-gradient(90deg, transparent, oklch(1 0 0 / 0.12) 20%, oklch(1 0 0 / 0.12) 80%, transparent); }
.post-content blockquote { margin: 1.8em 0; padding: 18px 22px; border-left: 2px solid var(--accent); border-radius: 0 12px 12px 0; background: oklch(1 0 0 / 0.025); color: var(--foreground); }
.post-content blockquote p:last-child { margin-bottom: 0; }
.post-content code, .post-content kbd, .post-content samp { font-family: var(--font-mono); font-size: 0.86em; padding: 2px 7px; border-radius: 6px; background: oklch(1 0 0 / 0.06); border: 1px solid var(--border); color: oklch(0.92 0.04 70); letter-spacing: 0; }
.post-content pre { margin: 1.6em 0; padding: 16px 18px; border-radius: 12px; background: var(--background-deep); border: 1px solid var(--border); overflow-x: auto; font-size: 14px; }
.post-content pre code { padding: 0; border: 0; background: none; }
.post-content figure { margin: 2em 0; }
.post-content figure img { width: 100%; border-radius: 14px; border: 1px solid var(--border); }
.post-content figcaption { margin-top: 12px; font-size: 0.85em; line-height: 1.6; color: var(--muted-foreground); text-align: left; font-style: normal; }
.post-content img { border-radius: 12px; }
.post-content dl { margin: 0 0 1.4em; }
.post-content dt { color: var(--foreground); font-weight: 600; margin-top: .8em; }
.post-content dd { margin: .2em 0 0 1.2em; }

/* ---------- Tablolar (pencere çerçevesi) ---------- */
.post-content table, .data-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 1.6em 0 1.8em; font-size: 14.5px; line-height: 1.45; font-variant-numeric: tabular-nums; border: 1px solid var(--border-strong); border-radius: 14px; overflow: hidden; background: linear-gradient(180deg, oklch(0.18 0.006 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow-md); }
.post-content th, .data-table th { text-align: left; vertical-align: bottom; padding: 12px 16px; font-size: 12.5px; font-weight: 500; line-height: 1.4; color: var(--muted-foreground); background: oklch(1 0 0 / 0.035); border-bottom: 1px solid var(--border-strong); }
.post-content td, .data-table td { padding: 10px 16px; border-bottom: 1px solid var(--border); color: var(--prose-fg); vertical-align: top; }
.post-content tbody tr:last-child td, .data-table tbody tr:last-child td, .post-content tr:last-child td { border-bottom: 0; }
.post-content tbody tr:hover td, .data-table tbody tr:hover td { background: oklch(1 0 0 / 0.03); }
.post-content td:first-child, .data-table td:first-child { color: var(--foreground); }
.post-content caption, .data-table caption { caption-side: top; text-align: left; padding: 12px 16px; font-family: var(--font-mono); font-size: 12px; color: var(--muted-foreground); border-bottom: 1px solid var(--border); background: oklch(0.16 0.005 270); }
.data-table tr.is-on td { background: oklch(0.80 0.15 62 / 0.12) !important; color: var(--foreground); }
.data-table tr.is-on td:first-child { box-shadow: inset 2px 0 0 var(--accent); }
.table-wrap, .tw { margin: 1.6em 0 1.8em; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; border-radius: 14px; }
.table-wrap > table, .tw > table { margin: 0; }
div[style*="overflow-x"] > table { margin: 0; }
div[style*="overflow-x"] { margin: 1.6em 0 1.8em; border-radius: 14px; }
@media (max-width: 768px) {
  .post-content table, .data-table { font-size: 13.5px; }
  .post-content th, .post-content td, .data-table th, .data-table td { padding-inline: 12px; }
}

/* ---------- Kısa cevap kutusu, uyarı ---------- */
.callout { position: relative; margin: 1.4em 0 1.8em; padding: 18px 22px 18px 24px; border-radius: 14px; border: 1px solid var(--border); background: radial-gradient(120% 140% at 0% 0%, oklch(0.80 0.15 62 / 0.07), transparent 55%), oklch(0.16 0.005 270); font-size: 0.97em; line-height: 1.66; }
.callout::before { content: ""; position: absolute; left: -1px; top: 16px; bottom: 16px; width: 2px; border-radius: 2px; background: var(--accent); box-shadow: 0 0 14px oklch(0.80 0.15 62 / 0.6); }
.callout strong { color: var(--prose-strong); }
.callout > :first-child > strong:first-child, .callout > strong:first-child { color: var(--accent); }
.callout p:last-child, .callout ul:last-child { margin-bottom: 0; }
.callout-ok::before { background: var(--ok); box-shadow: 0 0 14px oklch(0.86 0.13 165 / 0.5); }
.callout-ok strong { color: var(--ok); }

/* ---------- Yazı içi içindekiler (eski; sd.js kendi İçindekiler'ini kurunca gizler) ---------- */
nav.toc { margin: 0.6em 0 1.8em; padding: 16px 20px; border-radius: 14px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.02); font-size: 0.92em; }
nav.toc strong { display: block; margin-bottom: 8px; font-family: var(--font-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); }
nav.toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 24px; }
nav.toc li { margin-bottom: 4px; break-inside: avoid; }
nav.toc a { color: var(--muted-foreground); text-decoration: none; }
nav.toc a:hover { color: var(--foreground); }
.sd-toc-var nav.toc { display: none; }
@media (max-width: 640px) { nav.toc ol { columns: 1; } }

/* ---------- Şekiller ---------- */
figure.diagram { margin: 1.6em 0 2em; padding: 18px; border-radius: 16px; border: 1px solid var(--border); background: oklch(0.15 0.005 270); }
figure.diagram svg { display: block; margin: 0 auto; max-width: 100%; height: auto; }
figure.diagram figcaption { text-align: center; }

/* ---------- Yazı içi küçük hesap kutusu ---------- */
.calc-box { margin: 1.6em 0 2em; padding: 20px 22px; border-radius: 16px; border: 1px solid oklch(0.80 0.15 62 / 0.2); background: radial-gradient(90% 160% at 0% 0%, oklch(0.80 0.15 62 / 0.06), transparent 60%), linear-gradient(180deg, oklch(0.18 0.006 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow-md); font-size: 15px; }
.calc-box label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: var(--muted-foreground); }
.calc-box input, .calc-box select { height: 42px; padding: 0 12px; background: var(--background-deep); border: 1px solid var(--border-strong); border-radius: 10px; color: var(--foreground); font-size: 15px; font-family: var(--font-mono); }
.calc-box input:focus, .calc-box select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px oklch(0.80 0.15 62 / 0.15); }
.calc-box .calc-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.calc-box .calc-result { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); font-size: 1.05rem; font-weight: 600; color: var(--foreground); }
.calc-box .calc-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.calc-box .calc-quick button, .calc-box .calc-mode button { font-size: 13px; min-height: 32px; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.03); color: var(--muted-foreground); cursor: pointer; }
.calc-box .calc-quick button:hover, .calc-box .calc-mode button:hover, .calc-box .calc-mode button[aria-pressed="true"] { border-color: oklch(0.80 0.15 62 / 0.55); color: var(--foreground); background: var(--accent-soft); }

/* ---------- Kaynak kutusu ---------- */
.source-box { margin: 2em 0; padding: 18px 22px; border-radius: 14px; border: 1px dashed var(--border-strong); background: oklch(1 0 0 / 0.015); font-size: 15px; line-height: 1.6; color: var(--muted-foreground); }
.source-box .source-label, .source-label { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 8px; font-family: var(--font-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); }
.source-box .source-label::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px oklch(0.80 0.15 62 / 0.6); }
.source-box p { margin: 0 0 .6em; color: var(--muted-foreground); }
.source-box p:last-child { margin-bottom: 0; }
.source-box strong { color: var(--foreground); }
.source-box a { color: var(--prose-link); text-decoration: underline; text-decoration-color: var(--prose-link-line); text-underline-offset: 3px; }
.source-box ul { margin: .4em 0 0; padding-left: 1.2em; }

/* ---------- Uygulama kartları (App Store) ---------- */
.app-cta-card { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 20px; align-items: start; margin: 14px 0; padding: 22px 24px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); color: var(--foreground); font-size: 15px; line-height: 1.6; text-decoration: none !important; overflow: hidden; transition: border-color .25s, transform .25s var(--ease-out); }
.app-cta-card:hover { border-color: var(--border-strong); transform: translateY(-2px); }
.app-cta-logo { width: 64px; height: 64px; flex: none; border-radius: 15px; overflow: hidden; box-shadow: 0 0 0 1px oklch(1 0 0 / 0.1), 0 10px 24px -8px oklch(0 0 0 / 0.7); }
.app-cta-logo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 15px; }
.app-cta-content { min-width: 0; }
.app-cta-content h3, .app-cta-content h4 { margin: 0 0 6px; font-size: 18px; line-height: 1.3; letter-spacing: -0.02em; font-weight: 600; color: var(--foreground); }
.app-cta-content p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.6; color: var(--muted-foreground); }
.app-cta-content p strong { color: var(--foreground); }
.app-cta-action { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--foreground); transition: color .2s, gap .25s var(--ease-out); }
.app-cta-action::after { content: "\2192"; transition: transform .25s var(--ease-out); }
.app-cta-card:hover .app-cta-action { color: var(--accent); }
.app-cta-card:hover .app-cta-action::after { transform: translateX(4px); }
.govde .app-cta-card + .app-cta-card { margin-top: 14px; }
.govde .app-cta-card:first-of-type { margin-top: 2em; }
@media (max-width: 640px) {
  .app-cta-card { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
  .app-cta-logo { width: 56px; height: 56px; }
}

/* ---------- Yangın hesabı kartı (calc-links: yazının başı ve sonu) ---------- */
.calc-links { display: grid; gap: 12px; margin: 1.6em 0 2em; }
.calc-links--end { margin: 2em 0 1.6em; }
.calc-link-card { position: relative; display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 18px; padding: 16px 18px 16px 16px; border-radius: var(--radius-xl); border: 1px solid oklch(0.80 0.15 62 / 0.2); background: radial-gradient(90% 160% at 0% 50%, oklch(0.80 0.15 62 / 0.08), transparent 60%), linear-gradient(180deg, oklch(0.18 0.006 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); color: var(--foreground); text-decoration: none !important; transition: border-color .25s, transform .25s var(--ease-out); }
.calc-link-card:hover, .calc-link-card:focus-visible { border-color: oklch(0.80 0.15 62 / 0.45); transform: translateY(-2px); }
.calc-links .calc-link-card img { width: 64px; height: 64px; max-width: 64px; margin: 0; border-radius: 14px; object-fit: cover; background: oklch(0.12 0.004 270); box-shadow: inset 0 0 0 1px var(--border-strong); border: 1px solid var(--border-strong); }
.calc-link-card__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.calc-link-card__eyebrow { font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.calc-link-card__title { font-size: 16.5px; font-weight: 500; line-height: 1.35; letter-spacing: -0.015em; color: var(--foreground); }
.calc-link-card__desc { font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
.calc-link-card__go { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border-radius: 10px; background: var(--primary); color: var(--primary-foreground); font-size: 13.5px; font-weight: 500; white-space: nowrap; box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.6) inset, 0 6px 16px -6px oklch(0 0 0 / 0.6); transition: background-color .2s; }
.calc-link-card:hover .calc-link-card__go { background: oklch(0.92 0.002 270); }
@media (max-width: 640px) {
  .calc-link-card { grid-template-columns: 52px 1fr; gap: 14px; padding: 14px; }
  .calc-links .calc-link-card img { width: 52px; height: 52px; max-width: 52px; }
  .calc-link-card__go { grid-column: 1 / -1; justify-content: center; }
}

/* ---------- Eski CTA, yazar kartı (geriye uyumluluk) ---------- */
.post-cta { margin: 2em 0; padding: 26px; border-radius: var(--radius-xl); border: 1px solid oklch(0.80 0.15 62 / 0.22); background: radial-gradient(90% 160% at 50% 0%, oklch(0.80 0.15 62 / 0.08), transparent 60%), oklch(0.16 0.005 270); text-align: center; }
.post-cta h4 { font-size: 1.2rem; margin-bottom: 10px; }
.post-cta p { color: var(--muted-foreground); margin-bottom: 18px; font-size: .95rem; }
.author-bio { margin: 2.4em 0; padding: 28px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: oklch(0.16 0.005 270); display: flex; gap: 22px; align-items: flex-start; }
.author-bio-avatar { width: 64px; height: 64px; min-width: 64px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-mono); font-weight: 500; color: var(--foreground); background: radial-gradient(circle at 30% 25%, oklch(0.30 0.01 270), oklch(0.17 0.005 270)); box-shadow: 0 0 0 1px oklch(1 0 0 / 0.14), 0 0 0 4px var(--background), 0 0 0 5px oklch(0.80 0.15 62 / 0.55); }
.author-bio h4 { font-size: 1.1rem; margin-bottom: 8px; }
.author-bio p { color: var(--muted-foreground); font-size: .92rem; line-height: 1.6; margin-bottom: 0; }

/* ---------- Etiketler, kategori, künye (yazı dışı sayfalar) ---------- */
.post-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 22px; font-size: .8rem; }
.post-tags > span { color: var(--subtle-foreground); letter-spacing: .08em; text-transform: uppercase; font-family: var(--font-mono); font-size: .7rem; margin-right: 2px; }
.post-tags a { font-family: var(--font-mono); padding: 4px 9px; border-radius: 7px; border: 1px solid var(--border); color: var(--muted-foreground); }
.post-tags a:hover { border-color: var(--border-strong); color: var(--foreground); }
.post-category { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px; border-radius: 999px; border: 1px solid oklch(0.80 0.15 62 / 0.28); background: var(--accent-soft); color: var(--accent); font-size: 12.5px; font-weight: 500; margin-bottom: 18px; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 0; margin-bottom: 32px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); font-family: var(--font-mono); font-size: 12.5px; color: var(--muted-foreground); }
.post-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--subtle-foreground); }
.post-meta > .dot:first-child { display: none; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; font-family: var(--font-mono); font-size: 12.5px; color: var(--subtle-foreground); }
.breadcrumb a { color: var(--muted-foreground); }
.breadcrumb a:hover { color: var(--foreground); }
.breadcrumb .sep { color: oklch(1 0 0 / 0.22); }

/* ---------- Sayfa başlığı (dizin, uygulama, özel sayfalar) ---------- */
.detail-hero { position: relative; padding: 148px 24px 64px; text-align: center; overflow-x: clip; isolation: isolate; }
.detail-hero::before { content: ""; position: absolute; left: 50%; top: -10%; width: 1100px; max-width: 160vw; height: 640px; transform: translateX(-50%); background: radial-gradient(closest-side, oklch(0.80 0.15 62 / 0.10), oklch(0.72 0.17 48 / 0.03) 55%, transparent); pointer-events: none; z-index: -1; }
.detail-hero h1 { font-size: clamp(2.2rem, 1.3rem + 3vw, 3.9rem); line-height: 1.04; letter-spacing: -0.045em; font-weight: 600; margin-bottom: 18px;
  background: linear-gradient(180deg, oklch(0.99 0 0) 40%, oklch(0.99 0 0 / 0.68) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; padding-bottom: .06em; }
.detail-hero .subtitle, .detail-hero > p { font-size: clamp(16.5px, 0.95rem + 0.3vw, 19px); line-height: 1.55; color: var(--muted-foreground); max-width: 700px; margin: 0 auto 30px; }
.detail-hero .hero-badges { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.hero-badge { display: inline-flex; align-items: center; min-height: 32px; padding: 5px 13px; border-radius: 999px; border: 1px solid var(--border-strong); background: oklch(0.175 0.005 270 / 0.6); color: var(--muted-foreground); font-size: 13px; font-weight: 400; transition: border-color .2s, color .2s; }
a.hero-badge:hover, .hero-badge:hover { border-color: oklch(1 0 0 / 0.24); color: var(--foreground); }
.detail-logo { width: 88px; height: 88px; min-width: 88px; max-width: 88px; margin: 0 auto 26px; border-radius: 22px; overflow: hidden; display: block; box-shadow: 0 0 0 1px oklch(1 0 0 / 0.12), 0 18px 40px -12px oklch(0 0 0 / 0.8), 0 0 60px -20px oklch(0.80 0.15 62 / 0.5); }
.detail-logo img { width: 88px; max-width: 88px; height: 88px; object-fit: cover; display: block; }
.hero { position: relative; min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 140px 24px 80px; overflow-x: clip; }
.hero h1 { font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 1.04; letter-spacing: -0.045em; margin-bottom: 20px; }
.hero .subtitle { font-size: clamp(1.05rem, 2.5vw, 1.3rem); color: var(--muted-foreground); max-width: 620px; margin-bottom: 12px; }
.hero .tagline { font-family: var(--font-mono); font-size: .85rem; color: var(--accent); letter-spacing: .04em; }

/* ---------- Bölüm başlıkları, özellik ızgaraları ---------- */
.section-title { text-align: center; font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.6rem); line-height: 1.08; letter-spacing: -0.04em; font-weight: 600; margin-bottom: 14px; color: var(--foreground); }
.section-subtitle { text-align: center; color: var(--muted-foreground); margin: 0 auto 44px; max-width: 640px; font-size: 1rem; }
.features-section, .how-section, .faq-section { padding-block: clamp(64px, 7vw, 100px); }
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.feature-card { position: relative; padding: 28px 24px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); transition: border-color .25s, transform .3s var(--ease-out); overflow: hidden; }
.feature-card:hover { border-color: var(--border-strong); transform: translateY(-3px); }
.feature-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 12px; border: 1px solid oklch(0.80 0.15 62 / 0.25); background: var(--accent-soft); font-size: 1.35rem; line-height: 1; }
.feature-card h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 8px; letter-spacing: -0.015em; }
.feature-card p { font-size: .92rem; color: var(--muted-foreground); line-height: 1.6; }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; counter-reset: step; }
.step { position: relative; counter-increment: step; padding: 34px 24px 26px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: oklch(0.16 0.005 270); }
.step::before { content: counter(step, decimal-leading-zero); position: absolute; top: -13px; left: 22px; min-width: 30px; height: 26px; padding: 0 8px; border-radius: 8px; display: grid; place-items: center; font-family: var(--font-mono); font-size: 11.5px; color: var(--accent); background: var(--background); border: 1px solid oklch(0.80 0.15 62 / 0.35); }
.step h3 { font-size: 1rem; font-weight: 600; margin: 4px 0 8px; }
.step p { font-size: .92rem; color: var(--muted-foreground); }
.categories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.category-chip { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.02); font-size: .92rem; color: var(--foreground); transition: border-color .2s, background-color .2s; }
.category-chip:hover { border-color: var(--border-strong); background: oklch(1 0 0 / 0.05); }
.category-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; box-shadow: 0 0 8px currentColor; }
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 8px 0 24px; border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--border); background: var(--border); }
.stat { text-align: left; padding: 22px 22px 20px; background: oklch(0.155 0.005 270); }
.stat-number { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.6rem); font-weight: 600; letter-spacing: -0.04em; line-height: 1.05; color: var(--foreground); font-variant-numeric: tabular-nums; }
.stat-label { margin-top: 6px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .04em; color: var(--subtle-foreground); }
.cta-section { position: relative; text-align: center; padding-block: clamp(72px, 8vw, 110px); overflow-x: clip; }
.cta-section::before { content: ""; position: absolute; left: 50%; top: 50%; width: 900px; max-width: 150vw; height: 420px; transform: translate(-50%, -50%); background: radial-gradient(closest-side, oklch(0.80 0.15 62 / 0.10), transparent); pointer-events: none; }
.cta-section h2 { position: relative; font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.6rem); line-height: 1.08; letter-spacing: -0.04em; margin-bottom: 14px; }
.cta-section p { position: relative; color: var(--muted-foreground); margin-bottom: 30px; font-size: 1.05rem; }
.cta-buttons { position: relative; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- Düğmeler (eski sınıflar yeni görünümde) ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 11px; font-size: 14.5px; font-weight: 500; border: 1px solid transparent; cursor: pointer; transition: background-color .2s, border-color .2s, transform .15s; text-decoration: none !important; }
.btn:active { transform: scale(.98); }
.btn-fire, .btn-mep, .btn-santiye, .btn-cfd { background: var(--primary); color: var(--primary-foreground) !important; box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.6) inset, 0 8px 22px -8px oklch(0 0 0 / 0.7); }
.btn-fire:hover, .btn-mep:hover, .btn-santiye:hover, .btn-cfd:hover { background: oklch(0.92 0.002 270); }
.btn-outline { border-color: var(--border-strong); background: oklch(1 0 0 / 0.03); color: var(--foreground) !important; }
.btn-outline:hover { background: oklch(1 0 0 / 0.07); border-color: oklch(1 0 0 / 0.22); }

/* ---------- Ekran görüntüleri ---------- */
.screenshot-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.screenshot-card { border-radius: var(--radius-xl); border: 1px solid var(--border); background: oklch(0.16 0.005 270); overflow: hidden; transition: border-color .25s, transform .3s var(--ease-out); }
.screenshot-card:hover { border-color: var(--border-strong); transform: translateY(-3px); }
.screenshot-card img { width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; object-position: top; background: var(--background-deep); border-bottom: 1px solid var(--border); }
.screenshot-card h3 { font-size: 1.02rem; font-weight: 600; padding: 16px 20px 4px; }
.screenshot-card p { font-size: .88rem; color: var(--muted-foreground); padding: 0 20px 20px; line-height: 1.55; }
.card-screenshot { margin: 0 -8px 20px; border-radius: 12px; overflow: hidden; max-height: 280px; }
.card-screenshot img { width: 100%; height: 280px; object-fit: cover; object-position: top center; background: var(--background-deep); border-radius: 12px; }
.promo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.promo-card { border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--border); transition: border-color .25s, transform .3s var(--ease-out); }
.promo-card:hover { border-color: var(--border-strong); transform: translateY(-3px); }
.promo-card img { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; background: var(--background-deep); }

/* ---------- Uygulama kartları (eski cam kart) ---------- */
.apps-section { padding: 40px 0 110px; }
.apps-section h2 { text-align: center; font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-foreground); margin-bottom: 44px; }
.apps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: stretch; }
.apps-grid article { display: flex; }
.apps-grid article .glass-card { flex: 1; }
.glass-card { position: relative; display: flex; flex-direction: column; padding: 32px 28px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); overflow: hidden; transition: border-color .25s, transform .3s var(--ease-out); }
.glass-card:hover { border-color: var(--border-strong); transform: translateY(-4px); }
.card-icon { position: relative; width: 64px; height: 64px; border-radius: 15px; display: flex; align-items: center; justify-content: center; margin-bottom: 22px; overflow: hidden; box-shadow: 0 0 0 1px oklch(1 0 0 / 0.1), 0 10px 24px -8px oklch(0 0 0 / 0.7); }
.card-icon img { width: 100%; height: 100%; object-fit: cover; }
.card-badge { position: absolute; top: 14px; right: 14px; font-family: var(--font-mono); font-size: 10.5px; padding: 3px 8px; border-radius: 6px; border: 1px solid oklch(0.80 0.15 62 / 0.3); background: var(--accent-soft); color: var(--accent); text-transform: uppercase; letter-spacing: .04em; }
.card-title { font-size: 1.35rem; font-weight: 600; letter-spacing: -0.025em; margin-bottom: 10px; }
.card-desc { color: var(--muted-foreground); font-size: .95rem; margin-bottom: 22px; flex: 1; }
.card-features { list-style: none; margin-bottom: 26px; }
.card-features li { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: .88rem; color: var(--muted-foreground); }
.card-features li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; background: var(--accent); box-shadow: 0 0 8px oklch(0.80 0.15 62 / 0.6); }

/* ---------- SSS akordeonu (uygulama sayfaları) ---------- */
.faq-list { max-width: 820px; margin: 0 auto; border-top: 1px solid var(--border); }
.faq-item { position: relative; border-bottom: 1px solid var(--border); }
.faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 2px; background: none; border: 0; cursor: pointer; font-size: 1.05rem; font-weight: 500; letter-spacing: -0.015em; color: var(--foreground); text-align: left; list-style: none; transition: color .2s; }
.faq-question::-webkit-details-marker { display: none; }
.faq-question:hover { color: var(--accent); }
.faq-arrow { flex-shrink: 0; width: 28px; height: 28px; padding: 5px; border-radius: 8px; border: 1px solid var(--border-strong); color: var(--muted-foreground); transition: transform .3s var(--ease-out), color .2s, border-color .2s; }
.faq-item.open .faq-arrow, .faq-item[open] .faq-arrow { transform: rotate(180deg); color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.4); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s var(--ease-out); }
.faq-item.open .faq-answer { max-height: 900px; }
details.faq-item .faq-answer { max-height: none; }
.faq-answer p { padding: 0 48px 20px 2px; color: var(--muted-foreground); font-size: .95rem; line-height: 1.7; }

/* ---------- Kaydırma animasyonu (eski .fade-in: görünür kalır) ---------- */
.fade-in { opacity: 1; transform: none; }

/* ---------- Duyarlı ---------- */
@media (max-width: 1024px) {
  .features-grid, .categories-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .apps-grid { grid-template-columns: 1fr; max-width: 440px; margin: 0 auto; }
  .features-grid, .categories-grid { grid-template-columns: 1fr; }
  .screenshot-grid, .promo-grid { grid-template-columns: 1fr; max-width: 340px; margin: 0 auto; }
  .stats-row { grid-template-columns: repeat(2, 1fr); }
  .detail-hero { padding: 116px 20px 48px; }
  .hero { min-height: 50vh; padding: 110px 20px 50px; }
  .blog-article { padding: 100px var(--yan) 40px; }
  .post-content { font-size: 1rem; }
  .author-bio { flex-direction: column; }
  .faq-answer p { padding-right: 4px; }
}
@media (max-width: 480px) {
  .container { padding: 0 16px; }
  .stat-number { font-size: 1.8rem; }
}
@media print {
  .ust, .alt-bilgi, .kapanis, .palet, .toc, .ray, .toc-mobil-kap, .paylas, .paylas-son, .yazar-kutu, .related-posts, .sahne, .no-print { display: none !important; }
  body { background: #fff; color: #000; }
  .yazi-bas h1 { -webkit-text-fill-color: #000; color: #000; background: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
  .giris { animation: none !important; }
  .js [data-belir] { opacity: 1 !important; transform: none !important; }
}

/* ---------- İpucu kutusu, iki sütun (EN ikizlerde stil bloğu olmayan sayfalar dahil) ---------- */
.tip { position: relative; max-width: var(--prose-measure); margin: 1.4em 0 1.8em; padding: 18px 22px 18px 24px; border-radius: 14px; border: 1px solid var(--border); background: radial-gradient(120% 140% at 0% 0%, oklch(0.88 0.05 215 / .07), transparent 55%), oklch(0.16 0.005 270); font-size: .97em; line-height: 1.66; }
.tip::before { content: ""; position: absolute; left: -1px; top: 16px; bottom: 16px; width: 2px; border-radius: 2px; background: var(--water); box-shadow: 0 0 14px oklch(0.88 0.05 215 / .5); }
.tip strong { color: var(--water); }
.tip p:last-child { margin-bottom: 0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 20px 0; }
@media (max-width: 680px) { .two-col { grid-template-columns: 1fr; } }
/* gövdede satır içi turkuaz boyanmış eski kutular → yeni "su" kutusu */
.callout[style*="4ECDC4"], .callout[style*="22d3ee"], .tip[style] { position: relative; padding: 18px 22px 18px 24px !important; margin: 1.4em 0 1.8em !important; border-radius: 14px !important; border: 1px solid var(--border) !important; background: radial-gradient(120% 140% at 0% 0%, oklch(0.88 0.05 215 / .07), transparent 55%), oklch(0.16 0.005 270) !important; }
.callout[style*="4ECDC4"]::before, .callout[style*="22d3ee"]::before { background: var(--water); box-shadow: 0 0 14px oklch(0.88 0.05 215 / .5); }
.callout[style*="4ECDC4"] strong, .callout[style*="22d3ee"] strong { color: var(--water); }

/* ---------- v7.1: tablo kaydırma kabı (sd.js sarmalayıcısı olmayan tabloları .table-wrap ile sarar) ---------- */
.table-wrap, .tw, div[style*="overflow-x"] { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
  background:
    linear-gradient(90deg, var(--background) 30%, transparent) left / 28px 100% no-repeat local,
    linear-gradient(270deg, var(--background) 30%, transparent) right / 28px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, oklch(0 0 0 / .55), transparent) left / 14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, oklch(0 0 0 / .55), transparent) right / 14px 100% no-repeat scroll; }
.table-wrap > table, .tw > table, div[style*="overflow-x"] > table { min-width: 100%; max-width: none; }
.table-wrap.genis > table { min-width: max(100%, 36rem); }   /* 4+ sütun: sıkışmak yerine kayar */
.table-wrap.kayar { box-shadow: inset -1px 0 0 var(--border); }
/* çok uzun tablolar: kendi kaydırma kutusu + yapışkan başlık satırı */
.table-wrap.uzun { max-height: min(78vh, 900px); overflow: auto; border: 1px solid var(--border-strong); }
.table-wrap.uzun > table { border: 0; border-radius: 0; box-shadow: none; }
.table-wrap.uzun thead th { position: sticky; top: 0; z-index: 1; background: oklch(0.19 0.006 270); }
/* kaydırma kabı çerçeveyi taşır; tablo saydam → kenar gölgeleri (kaydırma ipucu) görünür */
.table-wrap { border: 1px solid var(--border-strong); border-radius: 14px; box-shadow: var(--shadow-md);
  background:
    linear-gradient(90deg, oklch(0.165 0.005 270) 30%, oklch(0.165 0.005 270 / 0)) left / 32px 100% no-repeat local,
    linear-gradient(270deg, oklch(0.165 0.005 270) 30%, oklch(0.165 0.005 270 / 0)) right / 32px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, oklch(0 0 0 / .6), transparent) left / 16px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, oklch(0 0 0 / .6), transparent) right / 16px 100% no-repeat scroll,
    oklch(0.165 0.005 270); }
.table-wrap > table, .table-wrap.uzun > table { border: 0; border-radius: 0; box-shadow: none; background: transparent; margin: 0; }
.table-wrap.kayar::after { content: none; }

/* ==== 40-dizin.css ==== */
/* ==========================================================================
   40 · Dizin sayfaları: blog ana sayfası (TR/EN), kategori dizinleri (blog/<kategori>/, en/blog/<kategori>/),
   İçindekiler (icindekiler/) ve Archive (en/archive/) — 7-superdesign iç sayfa dili.
   - Sayfa başlığı (section.detail-hero) yazı başlık alanının dilinde ve SOLA YASLI: yazı sayfasıyla aynı
     okuma ekseni (kırıntı → H1 → açıklama → etiketler → süzgeç → ızgara tek bir sol kenarda); uzun
     açıklamalar ortalı bloktan daha rahat okunur; sağda yazı başlığındaki 3B sahnenin durağan karesi.
   - Kartlar (.blog-card) tasarımdaki .ilgili-kart: mono büyük harf kategori + nokta, başlık, özet,
     alt satırda künye + ok dairesi, kenar ışığı (.isik, js/sd.js ekler). Bağlantı tüm karta yayılır.
   - Süzgeçler .cip dilinde (nfpa-filter.js, İçindekiler ix-* araçları).
   İşaretleme DEĞİŞMEZ: üreticilerin bıraktığı eski satır içi renkler (style="background:#C084FC" …)
   burada !important ile ezilir. Kategori rengi satır içi renk kodundan (update-blog-latest.py COLORS)
   ya da sayfanın kanonik adresinden okunur. Yalnız .sd-dizin sınıflarına bağlıdır; hesap dizinlerini
   (yangin-hesaplari/, en/calculators/ — onlar da .sd-dizin) etkilemez.
   ========================================================================== */
.sd-dizin { --dz-kap: 1320px; }
/* üst çubuk dizinlerde 1320 px (10-krom); kapanış ve alt bilgi de aynı kenara otursun */
.sd-dizin:has(> .detail-hero, > main.ix-wrap) { --kap: 1320px; }

/* ---------- Sayfa başlığı ---------- */
.sd-dizin .detail-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(420px, 58vh, 540px);
  display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start;
  padding: 136px max(var(--yan), calc((100% - var(--dz-kap)) / 2 + var(--yan))) 52px;
  text-align: left;
}
/* sahne: yazı başlığındaki 3B boru ağının durağan karesi + perde (metin tarafı koyu) */
.sd-dizin .detail-hero::before {
  content: ""; position: absolute; inset: 0; width: auto; height: auto; max-width: none; transform: none; z-index: -1; pointer-events: none;
  background:
    linear-gradient(90deg, oklch(0.135 0.004 270 / 0.97) 0%, oklch(0.135 0.004 270 / 0.88) 36%, oklch(0.135 0.004 270 / 0.42) 64%, oklch(0.135 0.004 270 / 0.12) 88%),
    linear-gradient(180deg, oklch(0.135 0.004 270 / 0.62) 0%, transparent 24%, transparent 56%, var(--background) 100%),
    radial-gradient(38% 52% at 74% 32%, oklch(0.80 0.15 62 / 0.10), transparent 70%),
    url("/images/sd/sahne.webp") 74% 38% / cover no-repeat,
    var(--background);
}
.sd-dizin .detail-hero > * { max-width: 860px; }

/* kırıntı yolu (mono) — son öğe kategori hapı */
.sd-dizin .detail-hero .breadcrumb { justify-content: flex-start !important; align-items: center; gap: 6px 0; margin: 0 !important; font-size: 12.5px; letter-spacing: 0; }
.sd-dizin .detail-hero .breadcrumb a { display: inline-block; padding: 10px 6px; margin: -10px -6px; transition: color .2s; }   /* dokunma alanı ≥ 40 px, yerleşim aynı */
.sd-dizin .detail-hero .breadcrumb .sep { margin: 0 10px; }
.sd-dizin .detail-hero .breadcrumb > span:last-child {
  display: inline-flex; align-items: center; gap: 8px; padding: 3px 11px 3px 9px; border-radius: 999px;
  border: 1px solid oklch(0.80 0.15 62 / 0.28); background: var(--accent-soft); color: var(--accent);
  font-family: var(--font-sans); font-size: 12.5px; font-weight: 500; letter-spacing: 0; box-shadow: var(--shadow-xs);
}
.sd-dizin .detail-hero .breadcrumb > span:last-child::before,
.sd-dizin .ix-head .post-category::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px 1px currentColor; }

/* büyük degrade H1 (degrade 30-icerik'ten; satır içi renk -webkit-text-fill-color ile görünmez) */
.sd-dizin .detail-hero h1 { margin: 24px 0 0; font-size: var(--h1-sayfa, clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem)); line-height: 1.02; letter-spacing: -0.05em; }   /* sayfa H1 ölçeği: DESIGN baslik-l (tüm dizin / özel sayfalarda aynı) */
.sd-dizin .detail-hero > h1:first-child { margin-top: 0; }
.sd-dizin .detail-hero .subtitle { margin: 20px 0 0; max-width: 680px; text-align: left; }

/* başlık altı etiket satırı (tasarımdaki "etiketler" satırı) */
.sd-dizin .detail-hero .hero-badges { justify-content: flex-start; gap: 6px; width: 100%; margin-top: 30px !important; padding-top: 22px; border-top: 1px solid var(--border); }
.sd-dizin .detail-hero .hero-badge { min-height: 0; padding: 4px 9px; border-radius: 7px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.025); color: var(--muted-foreground); font-family: var(--font-mono); font-size: 12px; line-height: 1.45; letter-spacing: 0; box-shadow: none; }

/* ---------- Gövde ---------- */
.sd-dizin main.container { max-width: var(--dz-kap); padding: 8px var(--yan) clamp(72px, 8vw, 112px) !important; }

/* bölüm başlıkları (blog ana sayfası, EN 12845 bölümleri, HVAC) */
.sd-dizin .section-title { display: flex; align-items: center; gap: 14px; margin: 40px 0 22px !important; text-align: left !important; font-size: var(--h2-size); line-height: 1.12; letter-spacing: -0.035em; }
.sd-dizin .section-title::before,
.sd-dizin .ix-newest h2::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px 2px oklch(0.80 0.15 62 / 0.55); }
.sd-dizin .blog-grid + .section-title { margin-top: 64px !important; padding-top: 44px; border-top: 1px solid var(--border); }
.sd-dizin main.container > .section-title:first-child,
.sd-dizin main.container > section:first-child > .section-title:first-child { margin-top: 20px !important; }

/* blog ana sayfası: kategori bağlantıları (.cip dili) */
.sd-dizin main a.hero-badge {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 16px !important; border-radius: 999px;
  border: 1px solid var(--border); background: oklch(1 0 0 / 0.03); color: var(--secondary-foreground, oklch(0.94 0.003 270));
  font-size: 14px !important; font-weight: 500; letter-spacing: -0.01em; box-shadow: none;
  transition: color .2s, border-color .2s, background-color .2s;
}
.sd-dizin main a.hero-badge:hover { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.4); background: var(--accent-soft); }

/* ---------- Kart ızgarası (.ilgili-kart dili) ---------- */
.sd-dizin .blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.sd-dizin .blog-grid > article { display: flex; min-width: 0; }
.sd-dizin .blog-card {
  position: relative; flex: 1; min-width: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto 1fr auto; column-gap: 16px;
  padding: 22px; border-radius: var(--radius-xl);
  border: 1px solid var(--border) !important;
  background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270));
  box-shadow: var(--shadow) !important;
  transition: border-color .25s, transform .3s var(--ease-out), box-shadow .3s;
}
.sd-dizin .blog-card:hover { border-color: var(--border-strong) !important; transform: translateY(-3px); box-shadow: var(--shadow-md) !important; }

/* "🆕" (yeni yazı) — tek renkli rozet: kart etiketlerindeki U+1F195 her platformda aynı, etiket renginde çizilir.
   Platform emojisi ya mavi renkli kare (tek vurgu kuralını bozar; Safari font-variant-emoji'yi tanımaz) ya da Windows'ta
   11 px'te içi okunmayan kutulu glif (kırık karakter gibi) çıkıyordu. Metin değişmez: aynı karakter, yalnız glifi
   bu iki tek glifli yazı tipinden gelir (unicode-range yalnız U+1F195; harfler Geist Mono, SIL OFL 1.1; TR "YENİ", EN "NEW").
   Glif: harfler %90 ölçek, .08em aralık, 80/1000 em çerçeve; fontTools ile üretildi (sabit zaman damgası → aynı bayt). */
@font-face { font-family: "sd-yeni"; src: url("data:font/woff2;base64,d09GMgABAAAAAAMwAAoAAAAABwAAAALkAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAUAqBXIFXATYCJAMICwYABCAFiA4HKxtBBhFVlEaAHwm2W2jUrfGsw4OS3JSMX4Ln+f19v/Y55w4uh04AGxjBTH5IdepHKWRVtdI8S20ZpaqmfKLqUzH3hjHkUPaeXxcAU2urotNFmzcaPbE3e7h3T2KSPESG0t06/H/pYiGnH8ZuM+urYsIuyxksDJNAAYBSGJO4Hpqhv2y9wLTKMbCkGHUXl2VCN4E0NPKMtVdXYkgCFAogFKqDBXChJQE+QX5crIdBiII1s8KBDmAYvmNxh7tupNssMi3WXmf7ccwee9ux/j2vJLH2rmVCDzmDw86A8iwPl5rtWM5o3F3GHks0gTjaFg9bOYyJw+Lrt29PXqeHM6vvzaVLtEuXXscMblm3NgbO5h9HD9zYsHbvPthd+7Toseh5y8vd3bPf2m529SzJt7qzujffbXaf6N7oy4OBvgEAEECg21v9Ph40/olw9HuAt9f272k35Iaa7Of6DaBRwEQ44D2x/zMh136O8JpJDYAQFUDRQXgHxUXIZheCaxXeBUI4q1hF3CnwOMuBzT6pEo9GTCTwWUrfBYKv0rCKmC/wJEfVjvhU6yHhCExumU0/gbhnzGLWgaGL6iZlhg3yUcKg5V5CYTKs1x6SfJnepxhA/bRAE+9sPeHrsQ8IhpDQJWTWJarY4dkuR7YxvS5EgQHOhWjB/VEjUo7iYf9+fIlGj0CAWijM2Eu7XV2H8BPg16FUQRgVefkJJUfQCUhMQH4IDxCx1N//yNl1148p+iDYbXYH/ATinjELPlL3TyO4HCR0KWMSRPp8XK99lDDolemadWEyrNcel0lL17Wygv3Y6QW0sp7w9dgHWKZYaIHCqoTMusTVV6x/Gbsc2cYv+qFW6SfEjDsSXILvzslJJQKUo45kd7UZX9fQksUFYbe/fj++4L1ni3r9CyrYheIPBUeO4HzYru4IPxTHGyXRZaqoWCtdEydWByBA67j8fB8vR/CRqiMlZPt6vFAWrAbMNs91A7soI4MAAAAA") format("woff2"); unicode-range: U+1F195; font-display: block; }
@font-face { font-family: "sd-new"; src: url("data:font/woff2;base64,d09GMgABAAAAAAMoAAoAAAAABuQAAALeAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAUAqBRIFGATYCJAMICwYABCAFiAsHKxstBhEVlDCAnwe2rWJ9ER3PJMiNXx4Y+mnLsJ7J9i4Iai3rmZ0NATgiEo4AdRQbE5ZgUx74gdxfALApw72sdObbrpotP6WKr5xjr3AKJhwjHTBMra0KJKro9E1EemJv9hDzZOYhMpSkr5Y/dQs5/vygu3gOQv1WlD4uNtBRYEACwL8wpnBmuEL7/P+g0sSSXIqdvCH56NCuoAcagk40uzsKhQsgkQAGwxkfYAE3BfALxI/dcxOEVZ5SgA6kgWrwRwHoFthNNqn6pPnwMmrCbGipdoJJEfpkBM3fvNkBnVNmLc7KWrfEgoPLvMW82ax1b5NZg3ldV/zTU9jnRXRO6ePeHmNvLz53t3G87VvuRWHx8+zLotDx2aK428jHyPvUl5fssfKEctMc0wpCaAqE5VzO3ox/TtfnARCAgDvjk2erddIfE3PtBXg6nZ6gPxBiSDYZ0zIADYlK6N9OkwMZZEJmIgJJJ+tOXgFI0uhzJJjBbJ0ePvombCAY6QOSsRFgaXP6YSvuObggninw0eYAgsXcgWS1YGCZ36K3rMRcbeyDFbXSn0C4p5ilaoMmE3VNfxE2zkcJnU5qOT0lQ9XGKxKvtvfkS+ie/b/EF1tP8NXYBsw6yOGETFUfM+ikbFcNDbtzYdkJ7BzEf9MfrxBVZBXm78eXRfOYAvTBXFSRV+7W+AZ+gvou/EMQQaVefkJJASfBZAitj9RBGzYq/I9MrrkdU/RBYG9r7wh+AsE9xSzwkfifjMBlJ4FThqkg0ubCxoaPEjq9Zrje6CkZqja8KRetOG5krfqvmDkBrawn8NXYBrCUYk8WHCfIVPVxjZPPdqWh4Yt8V6n0E2KGO24EvtnJoBJBVm4VDTUXZqqta2xiAfE1qEPu4wu8t/K7dO9+0YW4tPyRD1oi35adNYmFQn2zcRt9TPUqVkpXBIOfW0BdlstP9m4pIIRkbEvk891m4f7XDpVDnuf8sWJqkJoIAA==") format("woff2"); unicode-range: U+1F195; font-display: block; }
/* kategori: mono büyük harf + parlayan nokta (eski renkli hap zemini ezilir) */
.sd-dizin .blog-card-category {
  grid-column: 1 / -1; grid-row: 1; justify-self: start; max-width: calc(100% - 44px);
  display: inline-flex; align-items: center; gap: 8px; padding: 0 !important; border: 0; border-radius: 0;
  background: none !important; color: var(--accent) !important;
  font-family: var(--font-mono); font-size: 11px; font-weight: 400; line-height: 1.45; letter-spacing: .08em; text-transform: uppercase;
  font-variant-emoji: text;
}
.sd-dizin .blog-card-category { font-family: "sd-yeni", var(--font-mono); }
.sd-dizin .blog-card-category:lang(en) { font-family: "sd-new", var(--font-mono); }
.sd-dizin .blog-card-category::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px 1px currentColor; }
/* kategori renkleri (yazı sayfasındaki ilgili kartlarla aynı): EN 12845 su · FM Global soğuk mavi · Çözümler yeşil; diğerleri kor */
.sd-dizin .blog-card-category[style*="#F5B841"] { color: var(--water) !important; }
.sd-dizin .blog-card-category[style*="#67E8F9"] { color: oklch(0.82 0.08 230) !important; }
.sd-dizin .blog-card-category[style*="#34D399"] { color: var(--ok) !important; }
html:has(link[rel="canonical"][href$="/en12845/"]) .sd-dizin .blog-card-category,
html:has(link[rel="canonical"][href$="/en12845/"]) .sd-dizin .detail-hero .breadcrumb > span:last-child { color: var(--water) !important; }
html:has(link[rel="canonical"][href$="/en12845/"]) .sd-dizin .detail-hero .breadcrumb > span:last-child { border-color: oklch(0.88 0.05 215 / 0.3); background: oklch(0.88 0.05 215 / 0.1); }
html:has(link[rel="canonical"][href$="/fmglobal/"]) .sd-dizin .blog-card-category { color: oklch(0.82 0.08 230) !important; }
html:has(link[rel="canonical"][href$="/cozumler/"]) .sd-dizin .blog-card-category { color: var(--ok) !important; }

.sd-dizin .blog-card h3 { grid-column: 1 / -1; grid-row: 2; margin-top: 14px; font-size: 18px; font-weight: 500; line-height: 1.32; letter-spacing: -0.02em; color: var(--foreground); text-wrap: pretty; }
.sd-dizin .blog-card h3 a { color: inherit; }
/* bağlantı tüm karta yayılır (kart = tek tıklama alanı, tasarımdaki gibi) */
.sd-dizin .blog-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--radius-xl); }
.sd-dizin .blog-card h3 a:focus-visible { outline: none; }
.sd-dizin .blog-card h3 a:focus-visible::after { outline: 2px solid var(--ring); outline-offset: 3px; }
/* uye.js favori yıldızı: kartın sağ üst köşesinde, yayılan bağlantının üstünde */
.sd-dizin .blog-card .uye-kart-yildiz { position: absolute; top: 10px; right: 10px; z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; min-width: 0; min-height: 0; margin: 0; padding: 0; border-radius: 11px; font-size: 15px; color: var(--accent); opacity: .55; transition: opacity .2s, background-color .2s; }
.sd-dizin .blog-card .uye-kart-yildiz:hover, .sd-dizin .blog-card .uye-kart-yildiz.is-on { opacity: 1; background: oklch(1 0 0 / 0.06); }

.sd-dizin .blog-card-excerpt { grid-column: 1 / -1; grid-row: 3; align-self: start; margin-top: 10px; font-size: 14.5px; line-height: 1.6; color: var(--muted-foreground); }
.sd-dizin .blog-card-meta { grid-column: 1; grid-row: 4; align-self: center; min-width: 0; margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-family: var(--font-mono); font-size: 11.5px; line-height: 1.4; letter-spacing: 0; color: var(--subtle-foreground); }
.sd-dizin .blog-card-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .7; }
/* ok dairesi */
.sd-dizin .blog-card::before {
  content: ""; grid-column: 2; grid-row: 4; align-self: end; margin-top: 20px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--border-strong);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3b5bd' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / 15px no-repeat;
  transition: transform .25s var(--ease-out), background-color .25s, border-color .25s;
}
.sd-dizin .blog-card:hover::before { transform: rotate(-45deg); background-color: var(--primary); border-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316161a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E"); }

/* NFPA dizinlerinin sonundaki ilerleme notu (eski mor kutu → kart) */
.sd-dizin main.container > div[style*="168, 85, 247"] {
  margin-top: 56px !important; padding: 24px 28px !important; text-align: left !important;
  border: 1px solid var(--border) !important; border-radius: var(--radius-xl) !important;
  background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)) !important; box-shadow: var(--shadow);
}
.sd-dizin main.container > div[style*="168, 85, 247"] p { max-width: 36em; color: var(--muted-foreground) !important; font-size: 14.5px !important; line-height: 1.65; }

/* ---------- NFPA süzgeci (js/nfpa-filter.js işaretlemesi; davranış ve durum kuralları betikte) ---------- */
.sd-dizin .nfpa-filter { max-width: none; margin: 0 0 36px; padding: 0; }
.sd-dizin .nfpa-filter__search { max-width: 760px; margin-bottom: 24px; }
.sd-dizin .nfpa-filter__search input {
  width: 100%; height: 54px; padding: 0 50px 0 50px; border-radius: 16px; border: 1px solid var(--border-strong);
  background: oklch(0.175 0.005 270 / 0.7); color: var(--foreground); font-size: 16px; letter-spacing: -0.01em;
  -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: var(--shadow-lg); outline: none;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.sd-dizin .nfpa-filter__search input::placeholder { color: var(--subtle-foreground); }
.sd-dizin .nfpa-filter__search input:hover { border-color: oklch(1 0 0 / 0.24); }
.sd-dizin .nfpa-filter__search input:focus { border-color: oklch(0.80 0.15 62 / 0.55); background: oklch(0.175 0.005 270 / 0.92); box-shadow: 0 0 0 4px oklch(0.80 0.15 62 / 0.14), var(--shadow-lg); }
.sd-dizin .nfpa-filter__search input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.sd-dizin .nfpa-filter__search svg { left: 19px; width: 18px; height: 18px; color: var(--muted-foreground); }
.sd-dizin .nfpa-filter__search button { right: 12px; width: 30px; height: 30px; border-radius: 9px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.05); color: var(--muted-foreground); font-size: 16px; transition: color .2s, background-color .2s; }
.sd-dizin .nfpa-filter__search button:hover { color: var(--foreground); background: oklch(1 0 0 / 0.1); }
.sd-dizin .nfpa-filter__label { justify-content: flex-start; gap: 16px; margin-bottom: 14px; font-family: var(--font-mono); font-size: 11.5px; font-weight: 400; letter-spacing: .08em; color: var(--subtle-foreground); }
.sd-dizin .nfpa-filter__label > span { display: inline-flex; align-items: center; gap: 8px; }
.sd-dizin .nfpa-filter__label > span::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 12px 2px oklch(0.80 0.15 62 / 0.6); }
.sd-dizin .nfpa-filter__clear { margin-left: auto; color: var(--accent); font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; }
.sd-dizin .nfpa-filter__clear:hover { color: var(--foreground); }
.sd-dizin .nfpa-filter__chips { gap: 8px; }
.sd-dizin .nfpa-chip {
  min-height: 38px; padding: 5px 7px 5px 14px; border-radius: 999px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.03);
  color: var(--muted-foreground); font-family: var(--font-sans); font-size: 13.5px; font-weight: 500; letter-spacing: -0.005em;
  box-shadow: none; transform: none; transition: color .2s, border-color .2s, background-color .2s, box-shadow .2s;
}
.sd-dizin .nfpa-chip:hover { color: var(--foreground); border-color: var(--border-strong); background: oklch(1 0 0 / 0.06); transform: none; }
.sd-dizin .nfpa-chip .count { min-width: 24px; padding: 3px 7px; border-radius: 999px; background: oklch(1 0 0 / 0.05); color: var(--muted-foreground); font-family: var(--font-mono); font-size: 11px; line-height: 1.25; }
.sd-dizin .nfpa-chip.is-active { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.45); background: var(--accent-soft); box-shadow: 0 10px 26px -14px oklch(0.80 0.15 62 / 0.55); }
.sd-dizin .nfpa-chip.is-active .count { background: oklch(0.80 0.15 62 / 0.18); color: var(--accent); }
.sd-dizin .nfpa-chip--toggle { padding-right: 12px; border-style: dashed; border-color: var(--border-strong); background: transparent; color: var(--foreground); }
.sd-dizin .nfpa-chip--toggle:hover { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.45); background: transparent; }
.sd-dizin .nfpa-chip--toggle .count { background: oklch(1 0 0 / 0.06); color: var(--muted-foreground); }
.sd-dizin .nfpa-filter__meta { margin-top: 18px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; color: var(--subtle-foreground); }
.sd-dizin .nfpa-filter__meta strong { color: var(--foreground); font-weight: 500; }
.sd-dizin .nfpa-empty { padding: 72px 24px; border: 1px dashed var(--border-strong); border-radius: var(--radius-xl); color: var(--muted-foreground); font-size: 15px; }

/* ---------- İçindekiler / Archive (scripts/build-index.py; satır içi <style> yalnız yedek renk) ---------- */
.sd-dizin main.ix-wrap { position: relative; isolation: isolate; max-width: var(--dz-kap); margin: 0 auto; padding: 0 var(--yan) clamp(72px, 8vw, 112px); display: grid; grid-template-columns: minmax(0, 1fr); }
.sd-dizin .ix-head { position: relative; padding: 136px 0 44px; }
.sd-dizin .ix-head::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); pointer-events: none;
  background:
    linear-gradient(90deg, oklch(0.135 0.004 270 / 0.97) 0%, oklch(0.135 0.004 270 / 0.88) 36%, oklch(0.135 0.004 270 / 0.42) 64%, oklch(0.135 0.004 270 / 0.12) 88%),
    linear-gradient(180deg, oklch(0.135 0.004 270 / 0.62) 0%, transparent 24%, transparent 56%, var(--background) 100%),
    url("/images/sd/sahne.webp") 74% 38% / cover no-repeat,
    var(--background);
}
.sd-dizin .ix-head .post-category { margin: 0; }
.sd-dizin .ix-head h1 { margin: 24px 0 0; max-width: 860px; font-size: var(--h1-sayfa, clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem)); line-height: 1.03; letter-spacing: -0.05em; font-weight: 600;
  background: linear-gradient(180deg, oklch(0.99 0 0) 40%, oklch(0.99 0 0 / 0.68) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; padding-bottom: .06em; }
.sd-dizin .ix-head p { margin-top: 20px; max-width: 640px; font-size: clamp(16.5px, 0.95rem + 0.3vw, 19px); line-height: 1.55; color: var(--muted-foreground); }

/* araçlar: arama + kategori + etiket çipleri */
.sd-dizin .ix-tools { position: static; top: auto; z-index: 5; margin: 0 0 28px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-xl); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); }
.sd-dizin .ix-tools .lbl { font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--subtle-foreground); }
.sd-dizin .ix-tools > .lbl { display: block; margin-bottom: 8px; }
.sd-dizin .ix-search {
  display: block; width: 100%; height: 46px; padding: 0 12px 0 40px; border-radius: 12px; border: 1px solid var(--border-strong);
  background: oklch(0.135 0.004 270 / 0.65) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e909a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") 14px 50% / 16px no-repeat;
  color: var(--foreground); font-size: 14.5px; transition: border-color .2s, box-shadow .2s;
}
.sd-dizin .ix-search::placeholder { color: var(--subtle-foreground); }
.sd-dizin .ix-search:hover { border-color: oklch(1 0 0 / 0.24); }
.sd-dizin .ix-search:focus { outline: none; border-color: oklch(0.80 0.15 62 / 0.55); box-shadow: 0 0 0 4px oklch(0.80 0.15 62 / 0.14); }
.sd-dizin .ix-row { gap: 6px; margin-top: 14px; }
.sd-dizin .ix-row .lbl { flex: 1 0 100%; margin: 0 0 2px; }
.sd-dizin .ix-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 11px; border-radius: 999px;
  border: 1px solid var(--border); background: oklch(1 0 0 / 0.03); color: var(--muted-foreground); font-size: 13px; line-height: 1.3;
  transition: color .2s, border-color .2s, background-color .2s;
}
.sd-dizin .ix-chip b { margin-left: 0; font-family: var(--font-mono); font-size: 11px; font-weight: 400; color: var(--subtle-foreground); }
.sd-dizin .ix-chip:hover { color: var(--foreground); border-color: var(--border-strong); background: oklch(1 0 0 / 0.06); }
.sd-dizin .ix-chip[aria-pressed="true"] { color: var(--accent); border-color: oklch(0.80 0.15 62 / 0.45); background: var(--accent-soft); }
.sd-dizin .ix-chip[aria-pressed="true"] b { color: var(--accent); }
.sd-dizin .ix-more { display: none; border-style: dashed; border-color: var(--border-strong); color: var(--foreground); }
.sd-dizin #ixClear { color: var(--muted-foreground); }
.sd-dizin .ix-status { margin: 0 0 0 auto; font-family: var(--font-mono); font-size: 12px; color: var(--muted-foreground); }

/* listeler */
.sd-dizin .ix-newest { margin: 0 0 28px; }
.sd-dizin .ix-newest h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: var(--h2-size); line-height: 1.15; letter-spacing: -0.03em; }
.sd-dizin .ix-newest .ix-list { border: 1px solid var(--border); border-radius: var(--radius-xl); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); }
.sd-dizin .ix-newest .ix-list li:first-child { border-top: 0; }
.sd-dizin .ix-list { padding: 2px 20px 6px; }
.sd-dizin .ix-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 13px 0; border-top: 1px solid var(--border); }
.sd-dizin .ix-list li > a { flex: 1 1 300px; min-width: 0; color: var(--foreground); font-size: 15px; font-weight: 500; line-height: 1.42; letter-spacing: -0.01em; transition: color .2s; }
.sd-dizin .ix-list li > a:hover { color: var(--accent); }
.sd-dizin .ix-list li > .uye-kart-yildiz { flex: none; margin: 0; color: var(--accent); }
.sd-dizin .ix-meta { flex: none; margin-left: auto; font-family: var(--font-mono); font-size: 11.5px; color: var(--subtle-foreground); white-space: nowrap; }
.sd-dizin .ix-tags { flex: 1 0 100%; font-family: var(--font-mono); font-size: 11px; line-height: 1.5; color: var(--subtle-foreground); }   /* opaklık yok: 11 px metin AA (≥ 4.5:1) */
.sd-dizin .ix-list li[hidden], .sd-dizin .ix-cat[hidden], .sd-dizin .ix-newest[hidden] { display: none !important; }

.sd-dizin .ix-cat { margin: 0 0 14px; border: 1px solid var(--border); border-radius: var(--radius-xl); background: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.155 0.005 270)); box-shadow: var(--shadow); overflow: hidden; }
.sd-dizin .ix-cat summary { display: flex; align-items: center; gap: 12px; padding: 18px 20px; transition: background-color .2s; }
.sd-dizin .ix-cat summary:hover { background: oklch(1 0 0 / 0.025); }
.sd-dizin .ix-cat summary h2 { display: inline-flex; align-items: center; gap: 12px; font-size: 18px; line-height: 1.3; letter-spacing: -0.02em; }
.sd-dizin .ix-cat summary h2::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px 1px oklch(0.80 0.15 62 / 0.6); }
.sd-dizin .ix-cat[data-cat="en12845"] summary h2::before { background: var(--water); box-shadow: 0 0 10px 1px oklch(0.88 0.05 215 / 0.6); }
.sd-dizin .ix-count { margin-left: 0; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border); font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: 0; color: var(--muted-foreground); }
.sd-dizin .ix-cat summary::after {
  content: ""; flex: none; margin-left: auto; width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--border-strong);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3b5bd' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 14px no-repeat;
  transition: transform .3s var(--ease-out);
}
.sd-dizin .ix-cat[open] > summary::after { transform: rotate(180deg); }
.sd-dizin .ix-cat .ix-list { padding: 0 20px 8px; }

/* geniş ekran: araçlar solda yapışkan sütun, listeler sağda */
@media (min-width: 1100px) {
  .sd-dizin main.ix-wrap { grid-template-columns: 316px minmax(0, 1fr); column-gap: 40px; }
  .sd-dizin .ix-head { grid-column: 1 / -1; }
  .sd-dizin .ix-tools { grid-column: 1; grid-row: 2 / span 2; align-self: start; position: sticky; top: calc(var(--ust-h) + 20px); max-height: calc(100vh - var(--ust-h) - 40px); max-height: calc(100dvh - var(--ust-h) - 40px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; margin: 0; }
  .sd-dizin .ix-newest { grid-column: 2; grid-row: 2; }
  .sd-dizin #ixAll { grid-column: 2; grid-row: 3; }
}
/* dar ekranda etiketler katlanır ("Tüm etiketler" düğmesi; betik yalnız sınıfı değiştirir) */
@media (max-width: 1099px) {
  .sd-dizin .ix-row--tags.is-folded { max-height: 120px; overflow: hidden; -webkit-mask: linear-gradient(180deg, #000 70%, transparent); mask: linear-gradient(180deg, #000 70%, transparent); }
  .sd-dizin .ix-more { display: inline-flex; }
}

/* ---------- Duyarlı ---------- */
@media (max-width: 1099px) {
  .sd-dizin .detail-hero { min-height: clamp(380px, 50vh, 480px); }
  .sd-dizin .detail-hero::before { background:
    linear-gradient(90deg, oklch(0.135 0.004 270 / 0.94) 0%, oklch(0.135 0.004 270 / 0.7) 60%, oklch(0.135 0.004 270 / 0.4) 100%),
    linear-gradient(180deg, oklch(0.135 0.004 270 / 0.55) 0%, transparent 22%, transparent 50%, var(--background) 100%),
    url("/images/sd/sahne.webp") 70% 36% / cover no-repeat, var(--background); }
}
@media (max-width: 640px) {
  .sd-dizin .detail-hero { min-height: 0; padding-top: 112px; padding-bottom: 34px; }
  .sd-dizin .detail-hero::before, .sd-dizin .ix-head::before { background:
    linear-gradient(180deg, oklch(0.135 0.004 270 / 0.4) 0%, oklch(0.135 0.004 270 / 0.66) 34%, oklch(0.135 0.004 270 / 0.9) 64%, var(--background) 100%),
    url("/images/sd/sahne.webp") 62% 26% / cover no-repeat, var(--background); }
  .sd-dizin .detail-hero h1, .sd-dizin .ix-head h1 { line-height: 1.06; letter-spacing: -0.045em; }
  .sd-dizin .detail-hero .hero-badges { margin-top: 24px !important; padding-top: 18px; }
  .sd-dizin .ix-head { padding: 112px 0 32px; }
  .sd-dizin .section-title { margin: 32px 0 18px !important; }
  .sd-dizin .blog-grid + .section-title { margin-top: 48px !important; padding-top: 32px; }
  .sd-dizin main a.hero-badge { min-height: 40px; padding: 8px 14px !important; font-size: 13.5px !important; }
  .sd-dizin .blog-card { padding: 20px; }
  .sd-dizin .blog-card h3 { font-size: 17px; }
  .sd-dizin .nfpa-filter__search input { height: 50px; font-size: 16px; }
  .sd-dizin .nfpa-filter__clear:not(.is-visible) { display: none; } /* görünmezken alt satıra sarıp boşluk bırakmasın */
  .sd-dizin .ix-tools { padding: 14px; }
  .sd-dizin .ix-list { padding-inline: 16px; }
  .sd-dizin .ix-cat summary { padding: 16px; }
  .sd-dizin .ix-cat .ix-list { padding: 0 16px 6px; }
  .sd-dizin .ix-list li > a { flex-basis: 100%; }
  .sd-dizin .ix-meta { margin-left: 0; }
}
@media (hover: none) {
  .sd-dizin .blog-card:hover { transform: none; }
}
/* dokunma alanları ≥ 40 px (telefon / tablet ve dokunmatik ekran) */
@media (max-width: 1099px), (pointer: coarse) {
  .sd-dizin .ix-chip, .sd-dizin .nfpa-chip { min-height: 40px; }
  .sd-dizin .nfpa-filter__search button { width: 40px; height: 40px; right: 7px; }
  .sd-dizin .ix-list li > a { padding-block: 10px; margin-block: -10px; }   /* satır bağlantısı ≥ 40 px, satır aralığı aynı */
  .sd-dizin .ix-list li > .uye-kart-yildiz { min-width: 40px; min-height: 40px; margin: -8px; }   /* favori yıldızı: dokunma alanı 40 px, görünür yer aynı */
}
@media (prefers-reduced-motion: reduce) {
  .sd-dizin .blog-card, .sd-dizin .blog-card::before { transition: none; }
  .sd-dizin .blog-card:hover { transform: none; }
}

/* ==== 50-sayfalar.css ==== */
/* ==========================================================================
   50 · Uygulama ve özel sayfalar (body.sd-sayfa): uygulamalar, SprinkCalc, MEP Calc, Şantiye Takip,
   Teklif, Temiz Oda, TS EN 12845 & BYKHY, SSS, arama, favoriler, iletişim, profil, 404.
   Yalnız görünüm: işaretleme ve metin değişmez. Satır içi style="" renkleri (eski mor/yeşil degrade düğmeler,
   kategori noktaları) öznitelik seçicileriyle !important ile yeni dile çekilir.
   Sayfa vurgusu: --v = "L C H" (oklch bileşenleri) → oklch(var(--v)) / oklch(var(--v) / .3)
   ========================================================================== */

/* ---------- Sayfa vurgusu (ölçülü ton; mor yok) ---------- */
.sd-sayfa { --v: 0.80 0.15 62; }                                   /* kor (öntanımlı) */
.sd-sayfa.page-fire { --v: 0.76 0.16 46; }                         /* SprinkCalc · ateş */
.sd-sayfa.page-mep { --v: 0.80 0.10 190; }                         /* MEP Calc · turkuaz */
.sd-sayfa.page-santiye { --v: 0.75 0.11 255; }                     /* Şantiye Takip · mavi */
.sd-sayfa.page-teklif { --v: 0.82 0.12 165; }                      /* Teklif · yeşil */
.sd-sayfa.page-cfd2 { --v: 0.80 0.10 230; }                        /* Temiz Oda · gök */
.sd-sayfa.page-fire:has(.detail-logo img[src*="tsen12845"]) { --v: 0.86 0.06 215; }   /* TS EN 12845 · su */
.sd-sayfa {
  --pencere-noktalar: radial-gradient(circle at 18px 50%, oklch(1 0 0 / 0.13) 0 4.5px, transparent 5px),
    radial-gradient(circle at 34px 50%, oklch(1 0 0 / 0.13) 0 4.5px, transparent 5px),
    radial-gradient(circle at 50px 50%, oklch(1 0 0 / 0.13) 0 4.5px, transparent 5px);
  --kart-yuzey: linear-gradient(180deg, oklch(0.175 0.005 270), oklch(0.152 0.005 270));
  --izgara: linear-gradient(oklch(1 0 0 / 0.04) 1px, transparent 1px), linear-gradient(90deg, oklch(1 0 0 / 0.04) 1px, transparent 1px);
}

/* ---------- Sayfa başlığı (detail-hero) ---------- */
.sd-sayfa .detail-hero { padding: 156px var(--yan) 76px; }
.sd-sayfa .detail-hero::before { top: -200px; width: 1240px; height: 780px; background: radial-gradient(closest-side, oklch(var(--v) / 0.15), oklch(var(--v) / 0.04) 55%, transparent); }
.sd-sayfa .detail-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: var(--izgara); background-size: 64px 64px; background-position: center -1px;
  -webkit-mask-image: radial-gradient(ellipse 52% 78% at 50% 0%, #000 12%, transparent 72%); mask-image: radial-gradient(ellipse 52% 78% at 50% 0%, #000 12%, transparent 72%); }
.sd-sayfa .detail-hero h1 { font-size: var(--h1-sayfa, clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem)); line-height: 1;   /* sayfa H1 ölçeği: DESIGN baslik-l (dizin ve özel sayfalarla aynı) */ letter-spacing: -0.052em; margin: 0 auto 22px; max-width: 14em;
  background: linear-gradient(180deg, oklch(0.99 0 0) 38%, oklch(0.99 0 0 / 0.6)) !important; -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important; padding-bottom: .07em; }
.sd-sayfa .detail-hero .subtitle { max-width: 660px; margin-bottom: 32px; color: var(--muted-foreground); }
.sd-sayfa .detail-hero .subtitle strong { color: var(--foreground); font-weight: 500; }
.sd-sayfa .hero-badges { gap: 8px; }
.sd-sayfa .hero-badge { min-height: 32px; padding: 5px 13px; gap: 8px; font-size: 13px; color: var(--muted-foreground); border: 1px solid var(--border-strong); background: oklch(0.175 0.005 270 / 0.6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.sd-sayfa .hero-badge:first-child { color: var(--foreground); border-color: oklch(var(--v) / 0.34); background: oklch(var(--v) / 0.1); }
.sd-sayfa .hero-badge:first-child::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: oklch(var(--v)); box-shadow: 0 0 10px 1px oklch(var(--v) / 0.7); }
.sd-sayfa .detail-logo { width: 92px !important; height: 92px !important; min-width: 92px !important; max-width: 92px !important; margin: 0 auto 30px; border: 0 !important; border-radius: 23px !important;
  box-shadow: 0 0 0 1px oklch(1 0 0 / 0.14), 0 0 0 7px oklch(1 0 0 / 0.025), 0 22px 44px -14px oklch(0 0 0 / 0.85), 0 0 90px -16px oklch(var(--v) / 0.6) !important; }
.sd-sayfa .detail-logo img { width: 100% !important; height: 100% !important; max-width: none !important; min-width: 0; }
/* hero içindeki satır içi düğme sırası (Teklif) */
.sd-sayfa .detail-hero > div[style*="display:flex"] { margin-top: 30px !important; gap: 10px !important; }

/* ---------- İstatistik şeridi ---------- */
.sd-sayfa .stats-row { margin: 0 0 8px; gap: 1px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: var(--border); box-shadow: var(--shadow-md); }
.sd-sayfa .stat { position: relative; padding: 24px 24px 22px; background: linear-gradient(180deg, oklch(0.168 0.005 270), oklch(0.148 0.005 270)); }
.sd-sayfa .stat::before { content: ""; display: block; width: 18px; height: 2px; margin-bottom: 18px; border-radius: 2px; background: oklch(var(--v)); box-shadow: 0 0 10px oklch(var(--v) / 0.7); }
.sd-sayfa .stat-number { font-size: clamp(1.9rem, 1.2rem + 1.7vw, 2.75rem); font-weight: 600; letter-spacing: -0.045em; line-height: 1.02; color: var(--foreground) !important;
  background: none !important; -webkit-text-fill-color: currentColor !important; overflow-wrap: anywhere; }
.sd-sayfa .stat-label { margin-top: 8px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-foreground); }   /* küçük mono etiket: DESIGN üst-etiket rengi, AA ≥ 4.5:1 */

/* ---------- Bölüm başlıkları: sol hizalı, iki tonlu (başlık beyaz · alt başlık soluk) ---------- */
.sd-sayfa .features-section, .sd-sayfa .how-section, .sd-sayfa .faq-section { padding-block: clamp(64px, 7.5vw, 112px); }
.sd-sayfa .section-title { text-align: left; max-width: 18em; margin-bottom: 6px; font-size: calc(var(--h2-size) * 1.25);   /* bölüm H2: tasarım h2 × 1,25 (en çok 40 px) */ line-height: 1.03; letter-spacing: -0.048em; }
.sd-sayfa .section-title::before { content: ""; display: block; width: 66px; height: 8px; margin: 0 0 22px;
  background: radial-gradient(circle at 4px 50%, oklch(var(--v)) 0 3px, transparent 3.6px), linear-gradient(90deg, oklch(var(--v) / 0.65), transparent) 14px 50% / 52px 1px no-repeat;
  filter: drop-shadow(0 0 6px oklch(var(--v) / 0.6)); }
.sd-sayfa .section-title:not(:has(+ .section-subtitle)) { margin-bottom: 40px; }
.sd-sayfa .section-subtitle { text-align: left; max-width: 24em; margin: 0 0 46px; font-size: clamp(1.3rem, 0.95rem + 1.1vw, 1.95rem); font-weight: 600; line-height: 1.12; letter-spacing: -0.04em; color: oklch(0.58 0.01 270); text-wrap: balance; }
/* başlığın altındaki ortalanmış düz metin blokları sola hizalanır (Teklif "Neden geliştirildi?") */
.sd-sayfa .features-section > div[style*="margin: 0 auto"] { max-width: 37em !important; margin-left: 0 !important; color: var(--prose-fg) !important; }   /* okuma ölçüsü */
.sd-sayfa .features-section > div[style*="margin: 0 auto"] strong { color: var(--foreground); font-weight: 600; }

/* ---------- Özellik kartları ---------- */
.sd-sayfa .features-grid { gap: 14px; }
.sd-sayfa .feature-card { padding: 26px 24px 24px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: var(--kart-yuzey); box-shadow: var(--shadow); transition: border-color .3s, transform .3s var(--ease-out); }
.sd-sayfa .feature-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: linear-gradient(90deg, transparent, oklch(var(--v) / 0.6), transparent); opacity: 0; transition: opacity .3s; }
.sd-sayfa .feature-card:hover { border-color: oklch(var(--v) / 0.28); transform: translateY(-3px); }
.sd-sayfa .feature-card:hover::before { opacity: 1; }
.sd-sayfa .feature-icon { width: 42px; height: 42px; margin-bottom: 22px; border-radius: 11px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.035); box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.06) inset; font-size: 1.15rem;
  filter: grayscale(1) brightness(1.12); transition: filter .35s, border-color .35s, background-color .35s; }
.sd-sayfa .feature-card:hover .feature-icon { border-color: oklch(var(--v) / 0.35); background: oklch(var(--v) / 0.1); }   /* ikon üzerine gelince de tek renk kalır (renkli emojiye dönmez) */
.sd-sayfa .feature-card h3 { font-size: 1.04rem; letter-spacing: -0.02em; margin-bottom: 8px; }
.sd-sayfa .feature-card p { font-size: .92rem; line-height: 1.62; }
.sd-sayfa .feature-card p strong { color: var(--foreground); font-weight: 500; }
.sd-sayfa .feature-card h3 small { display: inline-block; margin-left: 6px; padding: 2px 6px; vertical-align: 2px; border-radius: 6px; border: 1px solid oklch(var(--v) / 0.35); background: oklch(var(--v) / 0.1); color: oklch(var(--v)) !important; font-family: var(--font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .04em; }

/* ---------- Ekran görüntüleri: ürün penceresi çerçevesi ---------- */
.sd-sayfa .screenshot-grid, .sd-sayfa .promo-grid { gap: 14px; }
.sd-sayfa .screenshot-card, .sd-sayfa .promo-card { position: relative; border-radius: var(--radius-xl); border: 1px solid var(--border); background: var(--kart-yuzey); box-shadow: var(--shadow-md); }
.sd-sayfa .screenshot-card::before, .sd-sayfa .promo-card::before { content: ""; display: block; height: 36px; border-bottom: 1px solid var(--border); background: var(--pencere-noktalar), oklch(0.16 0.005 270 / 0.92); }
.sd-sayfa .screenshot-card:hover, .sd-sayfa .promo-card:hover { border-color: oklch(var(--v) / 0.28); }
.sd-sayfa .screenshot-card img { border-bottom: 1px solid var(--border); }
/* tanıtım görseli kendi oranında (30-icerik'teki 9/16 kırpması kalkar). Yüklenmeden önce de yer ayrılır (CLS):
   'auto' tek başına width/height özniteliklerinden gelen oranı da siler ve tembel görsel 0 px yükseklikte kalırdı.
   Yedek oran mağaza görselleri (1242×2688 ≈ 1170×2532); attr() destekleyen tarayıcıda öznitelik oranı birebir. */
.sd-sayfa .promo-card img { aspect-ratio: auto 1242 / 2688; height: auto; object-fit: contain; }
.sd-sayfa .promo-card img[width][height] { aspect-ratio: auto attr(width type(<number>)) / attr(height type(<number>)); }
.sd-sayfa .screenshot-card h3 { padding: 18px 20px 4px; font-size: 1.02rem; letter-spacing: -0.02em; }
.sd-sayfa .screenshot-card p { padding: 0 20px 22px; }
.sd-sayfa .promo-grid div[style*="padding: 0 24px"] h3 { letter-spacing: -0.03em; }
.sd-sayfa .promo-grid div[style*="padding: 0 24px"] li { padding: 10px 0; border-bottom: 1px solid var(--border); color: var(--muted-foreground); }

/* ---------- Adımlar ---------- */
.sd-sayfa .steps { gap: 14px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.sd-sayfa .step { padding: 24px 24px 26px; border-radius: var(--radius-xl); border: 1px solid var(--border); background: var(--kart-yuzey); box-shadow: var(--shadow); }
.sd-sayfa .step::before { position: static; display: block; width: auto; min-width: 0; height: auto; margin: 0 0 18px; padding: 0; border: 0; border-radius: 0; background: none; font-family: var(--font-mono); font-size: 12px; line-height: 18px; letter-spacing: .06em; color: oklch(var(--v)); text-shadow: 0 0 12px oklch(var(--v) / 0.5); }
.sd-sayfa .step::after { content: ""; position: absolute; left: 56px; right: 24px; top: 33px; height: 1px; background: linear-gradient(90deg, oklch(var(--v) / 0.45), transparent); }
.sd-sayfa .step h3 { margin: 0 0 8px; font-size: 1.04rem; letter-spacing: -0.02em; }
.sd-sayfa .step p { font-size: .92rem; line-height: 1.62; }
.sd-sayfa .step p strong { color: var(--foreground); font-weight: 500; }

/* ---------- Kategori çipleri (MEP Calc, Şantiye, uygulamalar) ---------- */
.sd-sayfa .categories-grid { gap: 10px; }
.sd-sayfa .category-chip { min-height: 50px; padding: 12px 16px; gap: 12px; border-radius: 12px; border: 1px solid var(--border); background: oklch(1 0 0 / 0.02); font-size: 14.5px; }
.sd-sayfa .category-chip:hover { border-color: var(--border-strong); background: oklch(1 0 0 / 0.045); }
.sd-sayfa .category-dot { --d: 0.72 0.01 270; width: 7px; height: 7px; background: oklch(var(--d)) !important; box-shadow: 0 0 10px oklch(var(--d) / 0.55); }
.sd-sayfa .category-dot[style*="#FF6A3D"] { --d: 0.74 0.16 42; }
.sd-sayfa .category-dot[style*="#F97316"] { --d: 0.79 0.15 58; }
.sd-sayfa .category-dot[style*="#FF9A76"] { --d: 0.83 0.09 50; }
.sd-sayfa .category-dot[style*="#EF4444"] { --d: 0.70 0.17 25; }
.sd-sayfa .category-dot[style*="#06B6D4"] { --d: 0.80 0.10 205; }
.sd-sayfa .category-dot[style*="#4ECDC4"] { --d: 0.82 0.09 185; }
.sd-sayfa .category-dot[style*="#3B82F6"] { --d: 0.70 0.13 258; }
.sd-sayfa .category-dot[style*="#60A5FA"] { --d: 0.76 0.10 250; }
.sd-sayfa .category-dot[style*="#A78BFA"] { --d: 0.87 0.05 220; }
.sd-sayfa .category-dot[style*="#7C3AED"] { --d: 0.80 0.025 80; }
.sd-sayfa .category-dot[style*="#34D399"] { --d: 0.84 0.12 165; }
.sd-sayfa .category-dot[style*="#64748B"] { --d: 0.62 0.02 260; }
/* MEP Calc "3 standart" listesi: satır içi renkler (BS EN 12845 eskiden mor) → kor / turkuaz / su */
.sd-sayfa strong[style*="#FF6A3D"] { color: oklch(0.76 0.16 46) !important; }
.sd-sayfa strong[style*="#4ECDC4"] { color: oklch(0.82 0.09 185) !important; }
.sd-sayfa strong[style*="#A78BFA"] { color: var(--water) !important; }

/* ---------- SSS akordeonu (uygulama sayfaları): solda yapışkan başlık, sağda liste ---------- */
.sd-sayfa .faq-list, .sd-sayfa .faq { max-width: none; margin: 0 !important; border-top: 1px solid var(--border); }
.sd-sayfa .faq-item { border-bottom: 1px solid var(--border); }
.sd-sayfa .faq-item::before { content: ""; position: absolute; left: -1px; top: 20px; bottom: 20px; width: 2px; border-radius: 2px; background: oklch(var(--v)); box-shadow: 0 0 12px oklch(var(--v) / 0.6); opacity: 0; transition: opacity .3s; }
.sd-sayfa .faq-item.open::before { opacity: 1; }
.sd-sayfa .faq-question { padding: 22px 4px 22px 20px; font-size: 1.04rem; line-height: 1.45; }
.sd-sayfa .faq-question:hover { color: var(--foreground); }
.sd-sayfa .faq-question:hover .faq-arrow { color: var(--foreground); border-color: oklch(1 0 0 / 0.24); }
.sd-sayfa .faq-arrow { width: 30px; height: 30px; padding: 6px; border-radius: 9px; background: oklch(1 0 0 / 0.03); }
.sd-sayfa .faq-item.open .faq-arrow, .sd-sayfa .faq-item[open] .faq-arrow { color: oklch(var(--v)); border-color: oklch(var(--v) / 0.4); }
.sd-sayfa .faq-answer p { max-width: calc(36em + 76px); padding: 0 56px 24px 20px; font-size: .96rem; line-height: 1.72; color: var(--muted-foreground); }   /* okuma ölçüsü ~70 karakter */
.sd-sayfa .faq-answer p strong { color: var(--foreground); font-weight: 500; }
/* <details> SSS (Teklif): özet satırına ok kutusu */
.sd-sayfa summary.faq-question::after { content: ""; flex: none; width: 30px; height: 30px; border-radius: 9px; border: 1px solid var(--border-strong); background: oklch(1 0 0 / 0.03); transition: border-color .2s; }
.sd-sayfa summary.faq-question { position: relative; }
.sd-sayfa summary.faq-question::before { content: ""; position: absolute; right: 12px; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: var(--muted-foreground);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .3s var(--ease-out), background-color .2s; }
.sd-sayfa details[open] > summary.faq-question::before { transform: rotate(180deg); background: oklch(var(--v)); }
.sd-sayfa details[open] > summary.faq-question::after { border-color: oklch(var(--v) / 0.4); }
.sd-sayfa summary.faq-question::-webkit-details-marker { display: none; }
@media (min-width: 1024px) {
  .sd-sayfa .faq-section, .sd-sayfa .features-section:has(> .faq) { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); column-gap: 64px; align-items: start; }
  .sd-sayfa .faq-section > .section-title, .sd-sayfa .features-section:has(> .faq) > .section-title { position: sticky; top: 104px; margin-bottom: 0; }
}

/* ---------- Kapanış çağrısı (cta-section): kart ---------- */
.sd-sayfa .cta-section { width: min(1152px, calc(100% - 2 * var(--yan))); margin-block: clamp(32px, 5vw, 72px) clamp(56px, 7vw, 96px); padding: clamp(60px, 7vw, 100px) clamp(20px, 5vw, 64px);
  border-radius: 28px; border: 1px solid var(--border-strong); isolation: isolate; overflow: hidden;
  background: radial-gradient(70% 120% at 50% 0%, oklch(var(--v) / 0.13), transparent 62%), linear-gradient(180deg, oklch(0.17 0.005 270), oklch(0.135 0.004 270)); box-shadow: var(--shadow-xl); }
.sd-sayfa .cta-section::before { left: 0; top: 0; width: auto; height: auto; max-width: none; inset: 0; transform: none; z-index: -1; background: var(--izgara); background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 60% 80% at 50% 0%, #000 10%, transparent 70%); mask-image: radial-gradient(ellipse 60% 80% at 50% 0%, #000 10%, transparent 70%); }
.sd-sayfa .cta-section::after { content: ""; position: absolute; top: 0; left: 18%; right: 18%; height: 1px; background: linear-gradient(90deg, transparent, oklch(var(--v) / 0.85), transparent); }
.sd-sayfa .cta-section h2 { max-width: 17em; margin: 0 auto 16px; font-size: clamp(2rem, 1.2rem + 2.4vw, 3.25rem); line-height: 1.04; letter-spacing: -0.048em;
  background: linear-gradient(180deg, oklch(0.99 0 0) 40%, oklch(0.99 0 0 / 0.66)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-bottom: .06em; }
.sd-sayfa .cta-section p { max-width: 560px; margin: 0 auto 32px; color: var(--muted-foreground); }
.sd-sayfa .cta-buttons { gap: 10px; }

/* ---------- Düğmeler: satır içi degrade düğmeler (yeşil/gök) .dugme-ana diline ---------- */
.sd-sayfa .btn { min-height: 44px; padding: 0 18px; border-radius: 11px; font-size: 14.5px; font-weight: 500; letter-spacing: -0.01em; }
.sd-sayfa .btn[style*="gradient"], .sd-sayfa .btn-cfd { background: var(--primary) !important; color: var(--primary-foreground) !important; font-weight: 500 !important;
  box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.6) inset, 0 8px 22px -8px oklch(0 0 0 / 0.7) !important; }
.sd-sayfa .btn[style*="gradient"]:hover, .sd-sayfa .btn-cfd:hover { background: oklch(0.92 0.002 270) !important; transform: none; }
.sd-sayfa .btn[style*="padding"] { padding: 0 20px !important; }
.sd-sayfa .btn svg { width: 16px; height: 16px; }

/* ---------- Uygulamalar listesi (glass-card) ---------- */
.sd-sayfa main > .features-section.container { padding-block: 10px !important; }
.sd-sayfa main > .features-section.container:first-child { padding-top: 0 !important; }
.sd-sayfa main > .features-section.container:last-child { padding-bottom: clamp(72px, 9vw, 120px) !important; }
.sd-sayfa .glass-card { --v: 0.80 0.15 62; border-radius: 24px; border: 1px solid var(--border) !important; box-shadow: var(--shadow-lg);
  background: radial-gradient(60% 80% at 0% 0%, oklch(var(--v) / 0.075), transparent 60%), var(--kart-yuzey); }
.sd-sayfa .glass-card::before { content: ""; position: absolute; top: 0; left: 28px; right: 28px; height: 1px; background: linear-gradient(90deg, transparent, oklch(var(--v) / 0.75) 30%, transparent 85%); }
.sd-sayfa .glass-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; border-radius: inherit; background: var(--izgara); background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse 40% 60% at 100% 0%, #000, transparent 70%); mask-image: radial-gradient(ellipse 40% 60% at 100% 0%, #000, transparent 70%); }
.sd-sayfa .glass-card > * { position: relative; z-index: 1; }
.sd-sayfa .glass-card:hover { transform: none; border-color: var(--border-strong) !important; }
.sd-sayfa .glass-card[data-accent="fire"] { --v: 0.76 0.16 46; }
.sd-sayfa .glass-card[data-accent="mep"] { --v: 0.80 0.10 190; }
.sd-sayfa .glass-card[data-accent="santiye"] { --v: 0.75 0.11 255; }
.sd-sayfa .glass-card[style*="52, 211, 153"] { --v: 0.82 0.12 165; }
.sd-sayfa .glass-card[style*="56, 189, 248"] { --v: 0.80 0.10 230; }
.sd-sayfa .glass-card:has(img[src*="tsen12845"]) { --v: 0.86 0.06 215; }
.sd-sayfa .glass-card h2 { font-size: clamp(1.55rem, 1.2rem + 1vw, 1.95rem) !important; font-weight: 600 !important; letter-spacing: -0.035em; line-height: 1.1; }
.sd-sayfa .glass-card > div:first-child p { margin-top: 6px; font-family: var(--font-mono); font-size: 11.5px !important; letter-spacing: .07em; text-transform: uppercase; color: var(--subtle-foreground) !important; }
.sd-sayfa .glass-card > p { max-width: 36em; color: var(--muted-foreground) !important; }   /* okuma ölçüsü ~70 karakter */
.sd-sayfa .glass-card .card-icon { width: 64px; height: 64px; margin: 0; border-radius: 16px; box-shadow: 0 0 0 1px oklch(1 0 0 / 0.12), 0 12px 28px -10px oklch(0 0 0 / 0.8), 0 0 50px -12px oklch(var(--v) / 0.55); }
.sd-sayfa .glass-card .card-icon[style*="52,211,153"] { background: oklch(0.2 0.006 270) !important; border-color: var(--border-strong) !important; }
.sd-sayfa .glass-card > .btn { align-self: flex-start; }
.sd-sayfa .glass-card .feature-card { background: oklch(1 0 0 / 0.02); box-shadow: none; padding: 22px 20px 20px; }
.sd-sayfa .glass-card .feature-icon { margin-bottom: 18px; }

/* ---------- Teşekkür sayfası (iletisim-tesekkurler, contact-thank-you) ---------- */
.sd-sayfa .blog-article[style*="text-align"] { padding-top: 150px; }
.sd-sayfa .blog-article[style*="text-align"] > div:first-child { width: 88px; height: 88px; margin: 0 auto 30px !important; display: grid; place-items: center; border-radius: 50%; font-size: 2.1rem !important; line-height: 1; color: var(--ok);
  border: 1px solid oklch(0.86 0.13 165 / 0.35); background: radial-gradient(circle at 50% 35%, oklch(0.86 0.13 165 / 0.16), oklch(0.86 0.13 165 / 0.03) 70%);
  box-shadow: 0 0 0 8px oklch(1 0 0 / 0.025), 0 0 70px -10px oklch(0.86 0.13 165 / 0.5); }
.sd-sayfa .blog-article[style*="text-align"] > h1 { font-size: var(--h1-sayfa, clamp(2.1rem, 1.25rem + 2.9vw, 3.75rem)); letter-spacing: -0.05em; line-height: 1.02;
  background: linear-gradient(180deg, oklch(0.99 0 0) 40%, oklch(0.99 0 0 / 0.62)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-bottom: .06em; }
.sd-sayfa .blog-article[style*="text-align"] > p { color: var(--muted-foreground) !important; }
.sd-sayfa .blog-article[style*="text-align"] > p strong { color: var(--foreground); font-weight: 500; }
.sd-sayfa .blog-article[style*="text-align"] > div[style*="display:flex"] { gap: 10px !important; }

/* ---------- Duyarlı ---------- */
@media (max-width: 1023px) {
  .sd-sayfa .faq-section > .section-title { margin-bottom: 32px; }
}
@media (max-width: 768px) {
  .sd-sayfa .detail-hero { padding: 120px 20px 52px; }
  .sd-sayfa .detail-logo { width: 80px !important; height: 80px !important; min-width: 80px !important; max-width: 80px !important; border-radius: 20px !important; margin-bottom: 24px; }
  .sd-sayfa .section-subtitle { margin-bottom: 32px; }
  .sd-sayfa .features-grid[style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  .sd-sayfa .promo-grid[style*="grid-template-columns"] { grid-template-columns: 1fr !important; max-width: 420px; }
  .sd-sayfa .promo-grid div[style*="padding: 0 24px"] { padding: 8px 4px 0 !important; }
  .sd-sayfa .stat { padding: 20px 18px 18px; }
  .sd-sayfa .stat::before { margin-bottom: 14px; }
  .sd-sayfa .cta-section { border-radius: 22px; }
  .sd-sayfa .glass-card::before { left: 20px; right: 20px; }
  .sd-sayfa .glass-card .feature-card { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 16px; }
  .sd-sayfa .glass-card .feature-icon { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; }
  .sd-sayfa .glass-card .feature-card h3 { margin: 2px 0 4px; }
  .sd-sayfa .blog-article[style*="text-align"] { padding-top: 112px; }
}
@media (max-width: 640px) {
  .sd-sayfa .faq-question { padding: 18px 2px 18px 16px; font-size: 1rem; gap: 14px; }
  .sd-sayfa .faq-answer p { padding: 0 4px 20px 16px; }
  .sd-sayfa .glass-card > div:first-child { gap: 16px !important; }
  .sd-sayfa .glass-card .card-icon { width: 56px; height: 56px; border-radius: 14px; }
  .sd-sayfa .glass-card > div[style*="display:flex"] .btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .sd-sayfa .feature-card:hover { transform: none; }
}
/* SSS: satır uzunluğu okunur ölçüde */
.sd-sayfa .sss-item-question, .sd-sayfa .sss-item-body { max-width: 74ch; }

/* ==== 60-hesap.css ==== */
/* 60-hesap — bu bölüm ilgili sayfa grubunun yeni tasarım uyarlamalarını içerir. */
