:root {
  --bg: #f6f5f1;
  --yuzey: #ffffff;
  --metin: #1d2329;
  --soluk: #5d6772;
  --cizgi: #d9dcd6;
  --kare-ince: #e3e6e0;
  --kare-kalin: #c5cbc2;
  --sinir: #2b3036;
  --vurgu: #c2410c;
  --vurgu-acik: #fde7d9;
  --ph-A: #8ec5ef;
  --ph-G: #f7cf86;
  --ph-D: #c7b0ef;
  --ph-L: #f3a3a3;
  --ph-C: #a7aaad;
  --ph-K7: #e6a1c7;
  --ph-K23: #9fd49a;
  --ph-K6: #c9c3e6;
  --ph-MC: #7fcdbf;
  --ph-M2C: #d9c17a;
  --bolge-opak: 0.62;
  --bant-tavlama: #0e7490;
  --bant-normal: #be185d;
  --bant-kuresel: #4d7c0f;
  --bant-gerilim: #6d28d9;
  --detay-opak: 0.26;
  --golge: rgba(0, 0, 0, .22);
  --yuzey-2: #f4f5f2;
  --kart-golge: 0 1px 2px rgba(16, 24, 32, .05), 0 1px 1px rgba(16, 24, 32, .03);
  color-scheme: light;
}
/* Gece modu: sistem ayarı (data-theme yoksa) ya da başlıktaki düğme (data-theme="dark") */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #15181b;
    --yuzey: #1e2226;
    --metin: #e6e8ea;
    --soluk: #a3acb4;
    --cizgi: #353c43;
    --kare-ince: #262b30;
    --kare-kalin: #39414a;
    --sinir: #dfe3e6;
    --vurgu: #fb923c;
    --vurgu-acik: #3a2618;
    --ph-A: #3b82b8;
    --ph-G: #a8802f;
    --ph-D: #7a60b5;
    --ph-L: #ad4a4a;
    --ph-C: #6c7074;
    --ph-K7: #a3568a;
    --ph-K23: #4a8c45;
    --ph-K6: #6d66a0;
    --ph-MC: #36897c;
    --ph-M2C: #8f7a33;
    --bolge-opak: 0.7;
    /* koyu zeminde bantlar parlak tonlarla, odak modunda fazlar biraz daha görünür */
    --bant-tavlama: #38bdf8;
    --bant-normal: #f472b6;
    --bant-kuresel: #a3e635;
    --bant-gerilim: #c4b5fd;
    --detay-opak: 0.42;
    --golge: rgba(0, 0, 0, .55);
    --yuzey-2: #22272c;
    --kart-golge: none;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #15181b;
  --yuzey: #1e2226;
  --metin: #e6e8ea;
  --soluk: #a3acb4;
  --cizgi: #353c43;
  --kare-ince: #262b30;
  --kare-kalin: #39414a;
  --sinir: #dfe3e6;
  --vurgu: #fb923c;
  --vurgu-acik: #3a2618;
  --ph-A: #3b82b8;
  --ph-G: #a8802f;
  --ph-D: #7a60b5;
  --ph-L: #ad4a4a;
  --ph-C: #6c7074;
  --ph-K7: #a3568a;
  --ph-K23: #4a8c45;
  --ph-K6: #6d66a0;
  --ph-MC: #36897c;
  --ph-M2C: #8f7a33;
  --bolge-opak: 0.7;
  /* koyu zeminde bantlar parlak tonlarla, odak modunda fazlar biraz daha görünür */
  --bant-tavlama: #38bdf8;
  --bant-normal: #f472b6;
  --bant-kuresel: #a3e635;
  --bant-gerilim: #c4b5fd;
  --detay-opak: 0.42;
  --golge: rgba(0, 0, 0, .55);
  --yuzey-2: #22272c;
  --kart-golge: none;
  color-scheme: dark;
}


/* =========================================================
   Temel
   ========================================================= */
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--metin);
  font: 14px/1.45 "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
[hidden] { display: none !important; }   /* display kuralı olan öğelerde de hidden çalışsın */
.soluk { color: var(--soluk); }
.kucuk { font-size: 12.5px; }

/* =========================================================
   Uygulama iskeleti: masaüstünde sayfa kaymaz, panel kendi içinde kayar
   ========================================================= */
.uygulama { display: flex; flex-direction: column; min-height: 100vh; }
@media (min-width: 1000px) {
  .uygulama { height: 100vh; height: 100dvh; }
}

/* Üst çubuk */
.appbar {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px;
  height: 56px; padding: 0 16px; flex: none;
  background: var(--yuzey); border-bottom: 1px solid var(--cizgi);
}
.marka { display: flex; align-items: center; gap: 10px; min-width: 0; }
.logo { width: 30px; height: 30px; flex: none; }
.logo rect { fill: var(--vurgu); }
.logo path { fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.marka-ad { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.marka-ad b { font-size: 15px; letter-spacing: -0.01em; }
.marka-ad span { font-size: 11.5px; color: var(--soluk); white-space: nowrap; }

/* Mod seçici */
.mod { display: inline-flex; padding: 3px; gap: 2px; background: var(--yuzey-2); border: 1px solid var(--cizgi); border-radius: 10px; }
.mod button {
  border: 0; background: transparent; padding: 6px 14px; border-radius: 7px; cursor: pointer;
  font-size: 13px; font-weight: 600; color: var(--soluk); white-space: nowrap;
}
.mod button:hover { color: var(--metin); }
.mod button.aktif { background: var(--yuzey); color: var(--metin); box-shadow: 0 1px 3px var(--golge); }
.mod #detayBtn.aktif { color: var(--vurgu); }

.appbar-sag { display: flex; justify-content: flex-end; gap: 6px; }
.ust-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 8px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--soluk); font-size: 13px;
}
.ust-btn:hover { background: var(--yuzey-2); color: var(--metin); border-color: var(--cizgi); }
.ust-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
#temaBtn svg path { fill: none; }

/* Çalışma alanı */
.calisma {
  flex: 1; min-height: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 12px; padding: 12px;
}

/* =========================================================
   Diyagram kartı
   ========================================================= */
.diyagram-kart {
  display: flex; flex-direction: column; min-width: 0; min-height: 0;
  background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 12px; box-shadow: var(--kart-golge);
  padding: 10px 12px 8px;
}
.diyagram-ust { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin-bottom: 8px; }

/* Nokta alanları (C, T) */
.nokta-alanlari { display: flex; gap: 8px; }
.alan {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 6px;
  width: 168px; padding: 4px 9px 8px; border: 1px solid var(--cizgi); border-radius: 9px; background: var(--yuzey-2);
}
.alan:focus-within { border-color: var(--vurgu); }
.alan-ad { font-weight: 700; font-size: 12.5px; color: var(--soluk); width: 12px; }
.alan input:not([type=range]) {
  width: 100%; min-width: 0; border: 0; background: transparent; color: var(--metin); padding: 2px 0;
  font: inherit; font-size: 16px; font-weight: 650; font-variant-numeric: tabular-nums; outline: none;
}
.birim { font-size: 12px; color: var(--soluk); white-space: nowrap; }
.alan input[type=range] {
  position: absolute; left: 9px; right: 9px; bottom: 2px; width: calc(100% - 18px); height: 6px; margin: 0;
  accent-color: var(--vurgu); cursor: pointer;
}

/* Görünüm düğmeleri */
.gorunum { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-left: auto; }
.gorunum > button, .pin-araclar > button, .sil-menu > button {
  height: 28px; padding: 0 10px; border-radius: 7px; cursor: pointer; font-size: 12.5px;
  border: 1px solid var(--cizgi); background: var(--yuzey); color: var(--metin);
}
.gorunum > button:hover, .pin-araclar > button:hover, .sil-menu > button:hover { border-color: var(--metin); }
.gorunum > button.aktif { background: var(--metin); color: var(--yuzey); border-color: var(--metin); }
.pin-yuva { display: inline-flex; margin-left: 6px; padding-left: 10px; border-left: 1px solid var(--cizgi); }
.pin-araclar { display: inline-flex; gap: 4px; }

/* Bilgi (i) düğmesi */
.bilgi-btn {
  flex: none; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; cursor: pointer;
  border: 1.3px solid var(--soluk); background: transparent; color: var(--soluk);
  font: italic 700 11.5px/1 Georgia, "Times New Roman", serif; padding: 0;
}
.bilgi-btn:hover { border-color: var(--vurgu); color: var(--vurgu); background: var(--vurgu-acik); }

/* Katman düğmeleri */
.katmanlar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; color: var(--soluk); margin: 0 0 8px; }
.katmanlar button {
  height: 26px; padding: 0 9px; border-radius: 6px; cursor: pointer; font-size: 12px;
  border: 1px dashed var(--cizgi); background: transparent; color: var(--soluk);
}
.katmanlar button.aktif { border-style: solid; border-color: var(--metin); color: var(--metin); background: var(--yuzey-2); }
.katmanlar button:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.katman-not { font-size: 11.5px; color: var(--soluk); font-style: italic; }

/* Çizim alanı */
#cizim { position: relative; flex: 1; min-height: 360px; width: 100%; }
#svg { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; user-select: none; }

/* Alt şerit: lejant + ipucu */
.diyagram-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; padding-top: 6px; border-top: 1px solid var(--cizgi); margin-top: 4px; }
.lejant { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 12px; color: var(--soluk); }
.lejant i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; margin-right: 5px; border: 1px solid var(--sinir); opacity: .9; }
.bant-lejant { flex-basis: 100%; }
.ipucu { margin-left: auto; font-size: 11.5px; color: var(--soluk); }
.kaynak-rozet { padding: 1px 9px; border-radius: 999px; background: var(--vurgu-acik); color: var(--metin); font-weight: 600; }

/* =========================================================
   SVG
   ========================================================= */
.izgara { pointer-events: none; }
.izgara .kare-ince { stroke: var(--sinir); stroke-opacity: .10; }
.izgara .kare-kalin { stroke: var(--sinir); stroke-opacity: .24; }
.bolge { stroke: var(--sinir); stroke-width: 1.1; stroke-linejoin: round; fill-opacity: var(--bolge-opak); }
.etiket { font-size: 13px; font-weight: 600; fill: var(--metin); text-anchor: middle; dominant-baseline: middle; pointer-events: none;
  paint-order: stroke; stroke: var(--yuzey); stroke-width: 3px; stroke-opacity: .7; }
.eksen text { font-size: 11.5px; fill: var(--soluk); font-variant-numeric: tabular-nums; }
.eksen .baslik { font-size: 12.5px; fill: var(--metin); font-weight: 600; }
.eksen line, .eksen path { stroke: var(--sinir); }
.inv-nokta { fill: var(--sinir); }
.inv-yazi { font-size: 11px; fill: var(--metin); paint-order: stroke; stroke: var(--yuzey); stroke-width: 3px; }
.sec-cizgi { stroke: var(--vurgu); stroke-width: 1.6; stroke-dasharray: 6 4; }
.sec-yatay { stroke-dasharray: 2 4; stroke-linecap: round; stroke-width: 2; }
.sec-nokta { fill: var(--vurgu); stroke: var(--yuzey); stroke-width: 2; }
.sec-uc { fill: var(--yuzey); stroke: var(--vurgu); stroke-width: 1.6; }
.hover-cizgi { stroke: var(--soluk); stroke-width: 1; stroke-dasharray: 1 3; }
.hover-kutu rect { fill: var(--yuzey); stroke: var(--cizgi); }
.hover-kutu text { font-size: 12px; fill: var(--metin); font-variant-numeric: tabular-nums; }

/* Isıl işlem bantları ve empirik çizgiler */
.bant { fill-opacity: .3; stroke-width: 1.6; stroke-opacity: 1; transition: opacity .15s; }
.bant.vurgu { fill-opacity: .5; stroke-width: 2.4; }
.bant.soluk { opacity: .15; }
/* empirik çizgiler: noktalı — seçimin kesikli turuncu çizgisiyle karışmasın */
.alas-cizgi { fill: none; stroke: var(--metin); stroke-width: 2.2; stroke-dasharray: 0.1 5; stroke-linecap: round; opacity: .9; }
.alas-nokta { fill: var(--metin); }
.alas-yazi { font-size: 11px; font-weight: 700; fill: var(--metin); paint-order: stroke; stroke: var(--yuzey); stroke-width: 3px; }
.nominal-isaret { fill: var(--metin); }
.nominal-yazi { font-size: 11.5px; font-weight: 600; fill: var(--metin); paint-order: stroke; stroke: var(--yuzey); stroke-width: 3px; }

/* Odak modu: ısıl işlem modunda faz renkleri geri plana çekilir, bantlar öne çıkar */
.detay-acik .bolge { fill-opacity: var(--detay-opak); stroke-opacity: .55; }
.detay-acik .etiket { fill: var(--soluk); font-weight: 600; }
/* kesitte çok sayıda küçük karbür bölgesi: sınırları ince */
.kesit-acik .bolge { stroke-width: .7; }
.kesit-acik:not(.detay-acik) .bolge { stroke-opacity: .7; }

/* Bant lejantı */
.bant-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border-radius: 6px; cursor: default; color: var(--metin); }
.bant-chip:hover { background: var(--vurgu-acik); }
.bant-chip i { width: 14px; height: 10px; border-radius: 2px; border: 0; opacity: .8; }
.bant-chip b { font-variant-numeric: tabular-nums; }

/* =========================================================
   Sağ panel (inceleyici)
   ========================================================= */
.panel { display: flex; flex-direction: column; gap: 10px; min-height: 0; overflow-y: auto; padding-right: 2px; scrollbar-gutter: stable; }
.kart {
  flex: none; background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 12px; box-shadow: var(--kart-golge);
  padding: 12px 14px;
}
.detay-kart { border-top: 3px solid var(--vurgu); }

/* Kart başlığı: başlık · bağlam · (i) · katla */
.kart-bas { display: flex; align-items: center; gap: 8px; margin: -2px 0 10px; min-height: 22px; }
.kart-bas h3 { margin: 0; font-size: 13.5px; font-weight: 650; letter-spacing: -0.005em; }
.kart-bas .meta { font-size: 12px; color: var(--soluk); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.kart-bas .bilgi-btn { margin-left: auto; }
.katla-btn {
  flex: none; width: 22px; height: 22px; border-radius: 6px; border: 0; background: transparent; color: var(--soluk); cursor: pointer;
  display: inline-grid; place-items: center; padding: 0;
}
.katla-btn:hover { background: var(--yuzey-2); color: var(--metin); }
.katla-btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s; }
.kart.kapali { padding-bottom: 10px; }
.kart.kapali > .kart-bas { margin-bottom: 0; }
.kart.kapali > :not(.kart-bas) { display: none !important; }
.kart.kapali .katla-btn svg { transform: rotate(-90deg); }

/* Kart içerikleri */
.buyuk { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.chip i { width: 12px; height: 12px; border-radius: 3px; border: 1px solid var(--sinir); display: inline-block; }
.uyari { margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: var(--vurgu-acik); font-size: 12.5px; border-left: 3px solid var(--vurgu); }

.faz-satir { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 8px 0; border-top: 1px solid var(--cizgi); }
.faz-satir:first-of-type { border-top: 0; padding-top: 0; }
.faz-satir .ad { font-weight: 600; }
.faz-satir .oran { font-weight: 700; font-variant-numeric: tabular-nums; font-size: 16px; }
.faz-satir .bilesim { grid-column: 1 / 3; color: var(--soluk); font-size: 12.5px; }
.cubuk { display: flex; height: 10px; border-radius: 5px; overflow: hidden; margin: 0 0 12px; background: var(--yuzey-2); }
.cubuk div { height: 100%; }

.kritik-ust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.kare { border: 1px solid var(--cizgi); border-radius: 9px; padding: 8px 6px; text-align: center; background: var(--yuzey-2); }
.kare b { display: block; font-size: 11.5px; color: var(--soluk); font-weight: 600; }
.kare span { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.kare.yok span { color: var(--soluk); font-weight: 400; }
table.liste { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
table.liste td { padding: 5px 2px; border-top: 1px solid var(--cizgi); vertical-align: top; }
table.liste td.sag { text-align: right; white-space: nowrap; }
table.liste tr.aktif td { background: var(--vurgu-acik); font-weight: 600; }

/* Çelik ve alaşım kartı */
.celik-ara { position: relative; margin-bottom: 8px; }
.celik-ara input {
  width: 100%; font: inherit; font-size: 13.5px; padding: 8px 10px 8px 32px; border-radius: 9px;
  border: 1px solid var(--cizgi); background: var(--yuzey-2) no-repeat 10px 50% / 15px; color: var(--metin);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8.5' cy='8.5' r='5.5'/%3E%3Cpath d='M13 13l4 4'/%3E%3C/svg%3E");
}
.celik-ara input:focus { outline: 2px solid var(--vurgu); outline-offset: -1px; background-color: var(--yuzey); }
.celik-liste {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20; max-height: 340px; overflow-y: auto;
  background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 10px; box-shadow: 0 12px 32px var(--golge); padding: 4px;
}
.celik-oge { position: relative; padding: 6px 30px 6px 9px; border-radius: 7px; cursor: pointer; font-size: 13px; line-height: 1.35; }
.celik-oge .alt { font-size: 11.5px; color: var(--soluk); }
.celik-oge:hover, .celik-oge.odak { background: var(--vurgu-acik); }
/* kendi kaydettiğin çelikler: listenin en üstünde, turuncu şeritle */
.celik-oge.kayitli { border-left: 3px solid var(--vurgu); background: color-mix(in srgb, var(--vurgu) 8%, transparent); margin-bottom: 2px; }
.celik-oge.kayitli + .celik-oge:not(.kayitli) { margin-top: 6px; }
.etiket-kayitli { font-size: 10.5px; font-weight: 700; padding: 0 6px; border-radius: 4px; background: var(--vurgu); color: #fff; vertical-align: 1px; }
.hesap-var { margin-left: 6px; font-size: 11px; font-weight: 600; color: var(--bant-kuresel); white-space: nowrap; }
.oge-sil { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--soluk); font-size: 17px; cursor: pointer; padding: 0 4px; }
.oge-sil:hover { color: var(--vurgu); }
.celik-bos { padding: 10px; font-size: 12.5px; color: var(--soluk); }
.celik-bilgi { font-size: 12.5px; margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: var(--yuzey-2); line-height: 1.45; }
.gercek-sec { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; margin: 0 0 12px; padding: 8px 10px; border: 1px dashed var(--vurgu); border-radius: 8px; cursor: pointer; }
.gercek-sec input { margin-top: 2px; accent-color: var(--vurgu); }
.alas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.alas-grid label { display: grid; gap: 3px; font-size: 12.5px; font-weight: 600; }
.alas-grid input {
  width: 100%; font: inherit; font-variant-numeric: tabular-nums; padding: 5px 7px;
  border: 1px solid var(--cizgi); border-radius: 7px; background: var(--yuzey-2); color: var(--metin);
}
.alas-grid input:focus { outline: 2px solid var(--vurgu); outline-offset: -1px; background: var(--yuzey); }
small.gama, small.alfa { font-size: 10px; font-weight: 700; margin-left: 3px; padding: 0 4px; border-radius: 4px; }
small.gama { background: var(--ph-G); color: var(--metin); }
small.alfa { background: var(--ph-A); color: var(--metin); }
.kaydet-satir { display: flex; gap: 6px; margin-top: 12px; align-items: center; }
.kaydet-satir input {
  flex: 1; min-width: 0; font: inherit; font-size: 12.5px; padding: 5px 9px; border-radius: 7px;
  border: 1px solid var(--cizgi); background: var(--yuzey-2); color: var(--metin);
}
.kucuk-buton { font-size: 12.5px; height: 28px; padding: 0 11px; border-radius: 7px; border: 1px solid var(--cizgi); background: var(--yuzey); color: var(--metin); cursor: pointer; white-space: nowrap; }
.kucuk-buton:hover { border-color: var(--metin); }
#kaydetBtn { background: var(--vurgu); border-color: var(--vurgu); color: #fff; font-weight: 600; }
#kaydetBtn:hover { filter: brightness(1.08); }
#kayitNot { margin-top: 6px; }

/* Isıl işlem kartı */
.bant-sec { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.bant-sec i { width: 12px; height: 12px; border-radius: 3px; opacity: .85; }
.bant-sec input { accent-color: var(--vurgu); }
#kIslem table.liste td > .soluk { display: block; font-size: 11.5px; margin-left: 22px; }

/* Soğuma kartı */
.ortamlar { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ortamlar label { display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--cizgi); border-radius: 8px; cursor: pointer; font-size: 13px; background: var(--yuzey-2); }
.ortamlar label:has(input:checked) { border-color: var(--vurgu); background: var(--vurgu-acik); font-weight: 600; }
.ortamlar input { accent-color: var(--vurgu); }

/* =========================================================
   Sabit noktalar
   ========================================================= */
.pin { fill: var(--yuzey); stroke: var(--metin); stroke-width: 2; cursor: pointer; }
.pin.aktif { fill: var(--metin); }
.pin-no { font-size: 10.5px; font-weight: 800; fill: var(--metin); text-anchor: middle; dominant-baseline: middle; pointer-events: none; }
.pin.aktif + .pin-no { fill: var(--yuzey); }
.pin-kart {
  position: absolute; z-index: 5; width: 272px; pointer-events: none;
  background: var(--yuzey); color: var(--metin); border: 1px solid var(--cizgi); border-radius: 12px;
  box-shadow: 0 12px 32px var(--golge); padding: 10px 12px; font-size: 12.5px; line-height: 1.35;
}
.pk-baslik { display: flex; align-items: center; gap: 7px; }
.pk-baslik small { margin-left: auto; color: var(--soluk); }
.pk-no { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--metin); color: var(--yuzey); font-size: 10.5px; font-weight: 800; }
.pk-bolge { font-size: 15px; font-weight: 700; margin: 5px 0 6px; }
.pk-faz { display: grid; grid-template-columns: 11px 44px 1fr 46px 58px; gap: 6px; align-items: center; margin: 3px 0; font-variant-numeric: tabular-nums; }
.pk-faz i { width: 11px; height: 11px; border-radius: 3px; border: 1px solid var(--sinir); }
.pk-cubuk { height: 6px; border-radius: 3px; background: var(--cizgi); overflow: hidden; }
.pk-cubuk b { display: block; height: 100%; }
.pk-oran { text-align: right; font-weight: 700; }
.pk-c { text-align: right; color: var(--soluk); font-size: 11.5px; }
.pk-satir { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 7px; padding-top: 6px; border-top: 1px solid var(--cizgi); font-variant-numeric: tabular-nums; }
.pk-satir small { color: var(--soluk); }
.pk-alt { margin-top: 7px; font-size: 11px; color: var(--soluk); }

/* Sabit silme listesi */
.sil-menu { position: relative; display: inline-block; }
.sil-menu .ok { font-size: 10px; margin-left: 2px; }
.sil-liste {
  position: absolute; top: calc(100% + 4px); right: 0; z-index: 10; min-width: 220px;
  display: flex; flex-direction: column; padding: 4px;
  background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 10px; box-shadow: 0 12px 32px var(--golge);
}
.sil-liste button {
  display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; cursor: pointer;
  border: 0; border-radius: 7px; padding: 6px 8px; background: transparent; font-size: 12.5px; font-variant-numeric: tabular-nums;
}
.sil-liste button:hover { background: var(--vurgu-acik); }
.sil-liste .carpi { margin-left: auto; color: var(--soluk); font-size: 15px; line-height: 1; }
.sil-liste button:hover .carpi { color: var(--vurgu); }
.sil-liste .hepsi { justify-content: center; margin-top: 3px; border-top: 1px solid var(--cizgi); border-radius: 0 0 7px 7px; color: var(--vurgu); font-weight: 600; }

/* =========================================================
   Bilgi penceresi
   ========================================================= */
.bilgi-pencere {
  width: min(720px, calc(100vw - 32px)); max-height: min(82vh, 760px); padding: 0;
  border: 1px solid var(--cizgi); border-radius: 14px; background: var(--yuzey); color: var(--metin);
  box-shadow: 0 24px 64px var(--golge);
}
.bilgi-pencere[open] { display: flex; flex-direction: column; }
.bilgi-pencere::backdrop { background: rgba(10, 14, 18, .45); backdrop-filter: blur(2px); }
.bp-bas { display: flex; align-items: center; gap: 10px; padding: 14px 18px 12px; border-bottom: 1px solid var(--cizgi); flex: none; }
.bp-bas h2 { margin: 0; font-size: 16.5px; letter-spacing: -0.01em; }
.bp-kapat { margin-left: auto; width: 30px; height: 30px; border-radius: 8px; border: 0; background: transparent; color: var(--soluk); font-size: 22px; line-height: 1; cursor: pointer; }
.bp-kapat:hover { background: var(--yuzey-2); color: var(--metin); }
.bp-govde { padding: 4px 20px 20px; overflow-y: auto; font-size: 13.5px; line-height: 1.6; }
.bp-govde h4 { margin: 18px 0 6px; font-size: 13.5px; }
.bp-govde p { margin: 6px 0; }
.bp-govde ul { margin: 6px 0; padding-left: 20px; }
.bp-govde li { margin: 3px 0; }
.bp-govde .ozet { margin: 12px 0 4px; padding: 10px 12px; border-radius: 9px; background: var(--yuzey-2); border-left: 3px solid var(--vurgu); }
.bp-govde .formul { font-family: "Cambria Math", "Times New Roman", serif; font-size: 15px; padding: 8px 12px; margin: 8px 0; border-radius: 8px; background: var(--yuzey-2); text-align: center; }
.bp-govde table { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 12.5px; }
.bp-govde th { text-align: left; font-weight: 650; color: var(--soluk); border-bottom: 1px solid var(--cizgi); padding: 5px 6px; }
.bp-govde td { border-bottom: 1px solid var(--cizgi); padding: 5px 6px; vertical-align: top; }
.bp-govde .not-satir { font-size: 12px; color: var(--soluk); }
.bp-govde kbd { font: 600 11.5px/1 inherit; padding: 2px 6px; border-radius: 5px; border: 1px solid var(--cizgi); border-bottom-width: 2px; background: var(--yuzey-2); }

/* =========================================================
   Dar ekran: her şey alt alta, sayfa normal kayar
   ========================================================= */
@media (max-width: 999px) {
  .appbar { grid-template-columns: 1fr auto; height: auto; padding: 8px 12px; row-gap: 8px; }
  .mod { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; }
  .mod button { flex: 1; }
  .ust-btn span { display: none; }
  .calisma { grid-template-columns: minmax(0, 1fr); padding: 10px; }
  #cizim { flex: none; height: min(70vh, 620px); }
  .panel { overflow: visible; padding-right: 0; }
  .gorunum { margin-left: 0; }
  .ipucu { display: none; }
  /* diyagram (i) düğmesi tek başına satıra düşmesin: kartın sağ üst köşesi */
  .diyagram-kart { position: relative; }
  .diyagram-ust > .bilgi-btn { position: absolute; top: 12px; right: 12px; }
  .nokta-alanlari { padding-right: 28px; }
}
@media (max-width: 520px) {
  .nokta-alanlari { width: 100%; }
  .alan { flex: 1; width: auto; }
  .marka-ad span { display: none; }
}

/* =========================================================
   Bekleme, bildirim, erişilebilirlik ve eski tarayıcı yedekleri
   ========================================================= */
/* Bekleme göstergesi: diyagram ilk çizilene ya da kesit yüklenene kadar */
.yukleme {
  position: absolute; inset: 0; z-index: 6; display: flex; align-items: center; justify-content: center; gap: 10px;
  background: color-mix(in srgb, var(--yuzey) 78%, transparent); color: var(--soluk); font-size: 13.5px; font-weight: 600;
  border-radius: 8px;
}
.donen {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2.5px solid var(--cizgi); border-top-color: var(--vurgu); animation: don .8s linear infinite;
}
@keyframes don { to { transform: rotate(360deg); } }

/* Panel kartları dolana kadar yer tutucu (boş ekran yerine) */
.kart:empty:not([hidden]) {
  min-height: 112px;
  background: linear-gradient(100deg, var(--yuzey) 30%, var(--yuzey-2) 50%, var(--yuzey) 70%) var(--yuzey);
  background-size: 200% 100%; animation: parilti 1.4s ease-in-out infinite;
}
@keyframes parilti { from { background-position: 150% 0; } to { background-position: -50% 0; } }

/* Köşe bildirimi */
.bildirim {
  position: fixed; right: 16px; bottom: 16px; z-index: 50; max-width: min(420px, calc(100vw - 32px));
  padding: 10px 14px; border-radius: 10px; font-size: 13px; cursor: pointer;
  background: var(--metin); color: var(--yuzey); box-shadow: 0 12px 32px var(--golge);
}
.bildirim[data-tur="hata"] { background: #b42318; color: #fff; }

.noscript { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; text-align: center; background: var(--bg); color: var(--metin); font-size: 16px; }

/* Klavyeyle diyagram odakta: çerçeve görünsün */
#svg:focus { outline: none; }
#svg:focus-visible { outline: 2px solid var(--vurgu); outline-offset: -2px; border-radius: 6px; }

/* :has() desteklemeyen tarayıcılar için seçili soğuma ortamı */
.ortamlar label.secili { border-color: var(--vurgu); background: var(--vurgu-acik); font-weight: 600; }
/* color-mix() desteklemeyen tarayıcılar için yedek renkler (önce düz renk, destekleyen üstüne yazar) */
@supports not (background: color-mix(in srgb, red 50%, blue)) {
  .yukleme { background: var(--yuzey); opacity: .94; }
  .celik-oge.kayitli { background: var(--vurgu-acik); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0s !important; transition-duration: 0s !important; }
  .donen { animation: none; border-top-color: var(--vurgu); }
}

/* bilgi penceresi açılınca odak metne gelir (ok tuşlarıyla kaydırma); çerçeve çizme */
.bp-govde:focus { outline: none; }

/* Dil seçici: TR | EN */
.dil-sec { display: inline-flex; align-items: center; height: 32px; padding: 2px; gap: 2px; border: 1px solid var(--cizgi); border-radius: 8px; background: var(--yuzey-2); }
.dil-sec button {
  height: 26px; min-width: 32px; padding: 0 7px; border: 0; border-radius: 6px; cursor: pointer;
  background: transparent; color: var(--soluk); font-size: 12px; font-weight: 700; letter-spacing: .03em;
}
.dil-sec button:hover { color: var(--metin); }
.dil-sec button.aktif { background: var(--yuzey); color: var(--metin); box-shadow: 0 1px 2px var(--golge); }
