/* ==========================================================
   Sami Küçüoğlu · Teknik Föy
   Tasarım dili: kalibrasyon raporu / bileşen veri föyü
   Tek köşe yarıçapı: 3px  ·  Tek vurgu rengi: sinyal kırmızısı
   ========================================================== */

:root{
  --paper:      #e4e7e3;
  --paper-2:    #d8dcd7;
  --paper-3:    #cdd2cc;
  --ink:        #14181a;
  --ink-2:      #4d5553;
  --ink-3:      #6f7773;
  --rule:       #a9b0ab;
  --rule-soft:  #bfc5c0;
  --mark:       #a72a17;
  --mark-deep:  #7d1f10;

  --r: 3px;

  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --rail: 58px;
  --wrap: 1080px;
  --gut: 24px;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.62;
  font-weight:400;
  overflow-x:hidden;
  padding-bottom:0;
}

img,svg{ max-width:100%; display:block; }
a{ color:var(--ink); text-underline-offset:3px; text-decoration-thickness:1px; }
a:hover{ color:var(--mark); }

::selection{ background:var(--mark); color:var(--paper); }

:focus-visible{ outline:2px solid var(--mark); outline-offset:2px; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:99;
  background:var(--ink); color:var(--paper); padding:10px 16px; border-radius:var(--r);
}
.skip:focus{ left:8px; top:8px; }

/* ---------- ölçüm rayı (imza öğe) ---------- */
.rail{
  position:fixed; top:0; left:0; bottom:0; width:var(--rail);
  border-right:1px solid var(--rule);
  background:var(--paper-2);
  z-index:60;
  display:flex; flex-direction:column; justify-content:space-between;
  align-items:center;
  padding:14px 0 16px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.04em;
  color:var(--ink-3);
}
.rail-ticks{
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(to bottom, var(--rule-soft) 0 1px, transparent 1px 24px);
  opacity:.55;
}
.rail-ticks::after{
  content:""; position:absolute; right:0; top:0; bottom:0; width:18px;
  background:repeating-linear-gradient(to bottom, var(--rule) 0 1px, transparent 1px 120px);
}
.rail-top,.rail-bottom{ position:relative; z-index:2; background:var(--paper-2); padding:6px 0; width:100%; text-align:center; }
.rail-read{
  position:absolute; z-index:2; left:0; right:0;
  top:50%; transform:translateY(-50%);
  background:var(--paper-2);
  padding:10px 0;
  text-align:center;
  color:var(--ink);
  font-size:11px;
  line-height:1.7;
}
.rail-read b{ color:var(--mark); font-weight:500; display:block; font-size:13px; }
.rail-read span{ display:block; color:var(--ink-3); }
.rail-marker{
  position:fixed; left:0; width:var(--rail); height:2px; background:var(--mark);
  z-index:61; top:0; will-change:transform;
}

/* ---------- üst şerit + CTA ---------- */
.topbar{
  border-bottom:1px solid var(--rule);
  background:var(--ink);
  color:var(--paper);
  font-size:13.5px;
}
.topbar a{ color:var(--paper); }
.topbar-in{
  max-width:var(--wrap); margin:0 auto; padding:9px var(--gut);
  display:flex; gap:18px; align-items:center; justify-content:space-between; flex-wrap:wrap;
}
.topbar-note{ font-family:var(--mono); font-size:12px; letter-spacing:.02em; color:#c8cdc9; }
.topbar-note b{ color:#fff; font-weight:500; }
.topbar-cta{ display:flex; gap:10px; align-items:center; }
.topbar-cta a{
  border:1px solid #3c4441; padding:5px 12px; border-radius:var(--r); text-decoration:none;
  font-size:13px; white-space:nowrap;
}
.topbar-cta a.solid{ background:var(--mark); border-color:var(--mark); color:#fff; }
.topbar-cta a:hover{ background:var(--mark); border-color:var(--mark); color:#fff; }

/* ---------- gezinme ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.nav-in{
  max-width:var(--wrap); margin:0 auto; padding:0 var(--gut);
  height:60px; display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{
  text-decoration:none; display:flex; align-items:baseline; gap:9px;
  font-weight:700; letter-spacing:-.02em; font-size:19px;
}
.brand i{
  font-style:normal; font-family:var(--mono); font-size:11px; color:var(--ink-3);
  border:1px solid var(--rule); padding:2px 5px; border-radius:var(--r); letter-spacing:0;
}
.menu{ display:flex; gap:26px; list-style:none; }
.menu a{
  text-decoration:none; font-size:15px; color:var(--ink-2); padding:4px 0;
  border-bottom:2px solid transparent;
}
.menu a:hover,.menu a.active{ color:var(--ink); border-bottom-color:var(--mark); }
.burger{ display:none; background:none; border:1px solid var(--rule); border-radius:var(--r); padding:7px 10px; cursor:pointer; font-family:var(--mono); font-size:12px; color:var(--ink); }

/* ---------- yerleşim ---------- */
.page{ margin-left:var(--rail); }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--gut); }

.clause{ border-top:1px solid var(--rule); padding:56px 0 60px; }
.clause:first-of-type{ border-top:0; }

.clause-head{
  display:grid; grid-template-columns:88px 1fr; gap:0 20px;
  margin-bottom:30px; align-items:start;
}
.clause-no{
  font-family:var(--mono); font-size:12px; color:var(--mark);
  padding-top:9px; letter-spacing:.02em;
}
.clause-head h2{
  font-size:clamp(26px,3.6vw,38px); font-weight:700; letter-spacing:-.025em; line-height:1.12;
}
.clause-head p{ color:var(--ink-2); max-width:62ch; margin-top:8px; font-size:16px; }

/* ---------- başlık künyesi (hero) ---------- */
.masthead{ padding:46px 0 42px; }
.masthead h1{
  font-size:clamp(36px,5.6vw,66px);
  font-weight:700; letter-spacing:-.04em; line-height:1.0;
  margin-bottom:18px;
}
.masthead .lede{
  font-size:clamp(18px,2.2vw,21px); max-width:56ch; color:var(--ink-2); line-height:1.5;
}
.masthead .lede b{ color:var(--ink); font-weight:600; }
.mast-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:46px; align-items:start; }
.mast-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }

.btn{
  display:inline-block; padding:11px 20px; border-radius:var(--r); text-decoration:none;
  font-size:15.5px; font-weight:600; border:1px solid var(--ink); background:transparent; color:var(--ink);
  cursor:pointer; font-family:var(--sans);
}
.btn-solid{ background:var(--mark); border-color:var(--mark); color:#fff; }
.btn-solid:hover{ background:var(--mark-deep); border-color:var(--mark-deep); color:#fff; }
.btn:hover{ background:var(--ink); color:var(--paper); }

/* revizyon tablosu */
.revtable{ width:100%; border-collapse:collapse; font-family:var(--mono); font-size:12.5px; }
.revtable caption{
  text-align:left; font-family:var(--sans); font-size:13px; color:var(--ink-3);
  padding-bottom:8px; border-bottom:1px solid var(--ink); margin-bottom:0;
}
.revtable th{
  text-align:left; font-weight:500; color:var(--ink-3); padding:8px 10px 8px 0;
  border-bottom:1px solid var(--rule); font-size:11px;
}
.revtable td{ padding:8px 10px 8px 0; border-bottom:1px solid var(--rule-soft); vertical-align:top; }
.revtable tr:last-child td,.revtable tr:last-child th{ border-bottom:0; }
.revtable td:first-child{ color:var(--mark); white-space:nowrap; }

/* ---------- defter satırları ---------- */
.ledger{ border-top:1px solid var(--ink); }
.row{
  display:grid; grid-template-columns:170px 1fr; gap:4px 24px;
  padding:16px 0; border-bottom:1px solid var(--rule-soft);
}
.row dt, .row .k{
  font-family:var(--mono); font-size:12px; color:var(--ink-3); padding-top:4px; letter-spacing:.01em;
}
.row dd, .row .v{ max-width:70ch; }
.row .v p + p{ margin-top:10px; }

/* ölçüm tablosu */
.spec{ width:100%; border-collapse:collapse; border-top:1px solid var(--ink); }
.spec th{
  text-align:left; font-size:11.5px; font-family:var(--mono); font-weight:500; color:var(--ink-3);
  padding:10px 12px 10px 0; border-bottom:1px solid var(--rule);
}
.spec td{ padding:14px 12px 14px 0; border-bottom:1px solid var(--rule-soft); vertical-align:top; font-size:15.5px; }
.spec td:first-child{ font-weight:600; width:210px; }
.spec td:last-child{ font-family:var(--mono); font-size:12.5px; color:var(--ink-2); white-space:nowrap; }
.spec .items{ color:var(--ink-2); font-size:15px; }

/* ---------- vaka çalışmaları ---------- */
.case{
  display:grid; grid-template-columns:1fr 1fr; gap:0 36px;
  border-bottom:1px solid var(--rule); padding:30px 0;
  align-items:start;
}
.case:first-of-type{ border-top:1px solid var(--ink); }
.case-media{ border:1px solid var(--rule); border-radius:var(--r); background:var(--paper-2); overflow:hidden; }
.case-media img{ width:100%; height:auto; }
.case-cap{
  font-family:var(--mono); font-size:11px; color:var(--ink-3);
  border-top:1px solid var(--rule); padding:6px 10px; background:var(--paper-3);
}
.case-body h3{ font-size:24px; letter-spacing:-.02em; line-height:1.2; margin-bottom:6px; }
.case-body h3 a{ text-decoration:none; }
.case-meta{ font-family:var(--mono); font-size:11.5px; color:var(--ink-3); margin-bottom:12px; }
.case-body p{ color:var(--ink-2); font-size:16px; max-width:52ch; }
.figures{ display:flex; gap:28px; margin:18px 0 16px; flex-wrap:wrap; }
.fig b{ display:block; font-family:var(--mono); font-size:22px; font-weight:500; color:var(--mark); line-height:1.1; }
.fig span{ font-size:12.5px; color:var(--ink-3); }
.readmore{ font-size:15px; font-weight:600; }

/* ---------- github listesi ---------- */
.repo-list{ border-top:1px solid var(--ink); }
.repo{
  display:grid; grid-template-columns:1fr auto; gap:6px 20px;
  padding:15px 0; border-bottom:1px solid var(--rule-soft); align-items:baseline;
}
.repo h3{ font-size:17px; font-weight:600; letter-spacing:-.01em; }
.repo h3 a{ text-decoration:none; border-bottom:1px solid var(--rule); }
.repo p{ grid-column:1/-1; color:var(--ink-2); font-size:15px; max-width:70ch; margin-top:2px; }
.repo .tag{ font-family:var(--mono); font-size:11.5px; color:var(--ink-3); white-space:nowrap; }
.loading{ font-family:var(--mono); font-size:13px; color:var(--ink-3); padding:18px 0; }

/* ---------- sss ---------- */
.faq{ border-top:1px solid var(--ink); }
.faq details{ border-bottom:1px solid var(--rule-soft); }
.faq summary{
  cursor:pointer; list-style:none; padding:16px 40px 16px 0; position:relative;
  font-size:17.5px; font-weight:600; letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; position:absolute; right:6px; top:14px;
  font-family:var(--mono); font-size:19px; color:var(--mark); font-weight:400;
}
.faq details[open] summary::after{ content:"-"; }
.faq .answer{ padding:0 40px 18px 0; color:var(--ink-2); max-width:68ch; font-size:16px; }
.faq .answer a{ color:var(--mark); }

/* ---------- iletişim ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; border-top:1px solid var(--ink); padding-top:26px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-family:var(--mono); font-size:11.5px; color:var(--ink-3); margin-bottom:5px; }
.field input,.field textarea,.field select{
  width:100%; padding:10px 12px; border:1px solid var(--rule); border-radius:var(--r);
  background:var(--paper-2); font-family:var(--sans); font-size:16px; color:var(--ink);
}
.field textarea{ min-height:110px; resize:vertical; }
.consent{ font-size:13.5px; color:var(--ink-3); display:flex; gap:9px; align-items:flex-start; margin-bottom:16px; }
.consent input{ margin-top:4px; }
.consent a{ color:var(--mark); }
.channels{ border-top:1px solid var(--rule-soft); }
.contact-only{ max-width:700px; }
.contact-only .row{ grid-template-columns:120px 1fr; }
.contact-only a{ font-size:clamp(18px,2.4vw,25px); font-weight:600; overflow-wrap:anywhere; }

/* ---------- kırıntı yolu ---------- */
.crumbs{
  font-family:var(--mono); font-size:11.5px; color:var(--ink-3);
  padding:14px 0 0; letter-spacing:.01em;
}
.crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.crumbs li::after{ content:"/"; margin-left:8px; color:var(--rule); }
.crumbs li:last-child::after{ content:""; }
.crumbs a{ color:var(--ink-2); }
.crumbs [aria-current]{ color:var(--ink); }

/* ---------- makale gövdesi ---------- */
.doc{ max-width:74ch; }
.doc h2{ font-size:27px; letter-spacing:-.02em; margin:34px 0 10px; }
.doc h3{ font-size:19px; margin:24px 0 8px; }
.doc p{ margin-bottom:14px; color:var(--ink-2); }
.doc p strong{ color:var(--ink); }
.doc ul,.doc ol{ margin:0 0 16px 20px; color:var(--ink-2); }
.doc li{ margin-bottom:7px; }
.doc figure{ margin:26px 0; border:1px solid var(--rule); border-radius:var(--r); overflow:hidden; background:var(--paper-2); }
.doc figcaption{ font-family:var(--mono); font-size:11px; color:var(--ink-3); padding:7px 10px; border-top:1px solid var(--rule); background:var(--paper-3); }
.doc blockquote{ border-left:2px solid var(--mark); padding-left:16px; margin:20px 0; color:var(--ink); font-size:18px; }

.related{ border-top:1px solid var(--ink); margin-top:44px; padding-top:16px; }
.related li{ list-style:none; border-bottom:1px solid var(--rule-soft); padding:12px 0; }
.related a{ font-weight:600; text-decoration:none; }
.related span{ display:block; font-size:14px; color:var(--ink-3); }

/* ---------- alt bilgi ---------- */
.footer{ border-top:1px solid var(--ink); background:var(--paper-2); margin-top:0; }
.footer-in{ max-width:var(--wrap); margin:0 auto; padding:34px var(--gut) 30px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:28px; }
.footer h4{ font-family:var(--mono); font-size:11.5px; color:var(--ink-3); font-weight:500; margin-bottom:10px; }
.footer ul{ list-style:none; }
.footer li{ margin-bottom:7px; font-size:15px; }
.footer a{ text-decoration:none; }
.footer a:hover{ text-decoration:underline; }
.colophon{
  border-top:1px solid var(--rule); font-family:var(--mono); font-size:11.5px; color:var(--ink-3);
  padding:12px var(--gut); max-width:var(--wrap); margin:0 auto;
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
}

/* ---------- sabit telefon çağrısı ---------- */
.callbar{ display:none; }

/* ---------- yönetim / hata sayfası ---------- */
.slab{ padding:60px 0 70px; }
.slab .code{ font-family:var(--mono); font-size:13px; color:var(--mark); margin-bottom:10px; }
.slab h1{ font-size:clamp(32px,6vw,58px); letter-spacing:-.035em; line-height:1.02; margin-bottom:14px; }
.slab p{ color:var(--ink-2); max-width:56ch; margin-bottom:22px; }

.panel{ border:1px solid var(--rule); border-radius:var(--r); background:var(--paper-2); padding:22px; max-width:420px; }
.panel h2{ font-size:20px; margin-bottom:4px; letter-spacing:-.02em; }
.panel .hint{ font-size:14px; color:var(--ink-3); margin-bottom:18px; }
.panel .err{ font-size:14px; color:var(--mark-deep); border-left:2px solid var(--mark); padding-left:10px; margin-bottom:14px; }

/* Vaka düzenleyici ve ek vaka sayfaları */
.page-simple{ margin-left:0; }
.admin-main{ padding-bottom:70px; }
.admin-main .slab{ padding-bottom:28px; }
.admin-main .slab p{ max-width:76ch; }
.admin-layout{ display:grid; grid-template-columns:minmax(250px, .8fr) minmax(350px, 1.2fr); gap:24px; align-items:start; }
.admin-card{ padding:25px; border:1px solid var(--rule); background:var(--paper-2); border-radius:var(--r); }
.admin-card h2{ margin-bottom:12px; font-size:24px; }
.admin-card p{ color:var(--ink-2); }
.admin-card .hint{ font-size:14px; margin-bottom:18px; }
.admin-list{ border-top:1px solid var(--rule); }
.admin-list > p{ padding-top:15px; }
.admin-item{ padding:15px 0; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.admin-item strong,.admin-item small{ display:block; }
.admin-item small{ color:var(--ink-3); }
.admin-actions{ display:flex; gap:9px; flex-wrap:wrap; }
.admin-actions .btn{ padding:8px 12px; font-size:14px; }
.admin-save{ margin-top:24px; }
.admin-save p{ margin-bottom:15px; }
.admin-status{ min-height:1.5em; margin-top:16px; font-size:14px; color:var(--mark-deep) !important; }
.dynamic-case{ max-width:75ch; }
.dynamic-case h1{ margin:6px 0 20px; }
.dynamic-case h2{ margin-top:30px; }
.dynamic-case > p{ max-width:70ch; }
.dynamic-figure{ margin:28px 0; border:1px solid var(--rule); }
.dynamic-figure img{ width:100%; height:auto; }
.dynamic-figure figcaption{ padding:8px 12px; font-size:13px; color:var(--ink-3); }

/* ---------- duyarlı ---------- */
@media (max-width:900px){
  .mast-grid,.contact-grid,.case,.admin-layout{ grid-template-columns:1fr; gap:26px; }
  .footer-in{ grid-template-columns:1fr 1fr; }
  .case-media{ order:-1; }
}

@media (max-width:760px){
  :root{ --rail:0px; }
  body{ font-size:16.5px; padding-bottom:62px; }
  .rail,.rail-marker{ display:none; }
  .page{ margin-left:0; }
  .clause-head{ grid-template-columns:1fr; gap:4px; }
  .clause-no{ padding-top:0; }
  .row{ grid-template-columns:1fr; gap:2px; }
  .contact-only .row{ grid-template-columns:1fr; }
  .menu{
    display:none; position:absolute; top:60px; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--rule); flex-direction:column; gap:0; padding:6px var(--gut) 14px;
  }
  .menu.open{ display:flex; }
  .menu a{ padding:10px 0; border-bottom:1px solid var(--rule-soft); width:100%; }
  .burger{ display:block; }
  .spec td:first-child{ width:auto; }
  .spec td:last-child{ white-space:normal; }
  .footer-in{ grid-template-columns:1fr; }
  .topbar-in{ gap:10px; }
  .topbar-note{ font-size:11.5px; }

  .callbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:var(--ink); border-top:1px solid var(--mark);
  }
  .callbar a{
    flex:1; text-align:center; padding:14px 8px; color:var(--paper); text-decoration:none;
    font-size:15px; font-weight:600;
  }
  .callbar a.primary{ background:var(--mark); color:#fff; }
  .callbar a + a{ border-left:1px solid #333b38; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation:none !important; transition:none !important; }
}

@media print{
  .rail,.nav,.topbar,.callbar,.rail-marker{ display:none; }
  body{ background:#fff; font-size:11pt; }
  .page{ margin-left:0; }
}
