/* Diş — hasta kartı bölümleri (gorunum/dis-kart.js, dis-plan.js, dis-teklif.js, dis-implant.js), Diş tanımları ekranı (dis.js) ve yazdırma.
   Belirteçler css/belirtec.css'ten (Gündüz; kurum rengi --vurgu). Durumlar renk + desen + biçimle ayrılır (dis-ortak.js disCizimi).
   Telefon (375 px): yatay taşma yok; çeneler alt alta, dişler sütunla küçülür; seçim kutusu küçük hedeflerin eşdeğeridir.
   Baskı yalnız .dis-baski'yi basar (siyah beyaz; A4 plan özeti ve teklif, A6 implant kartı). */

/* ---------- hasta kartında geniş bölümler ---------- */
.hs-ekler > .hs-ek-dis, .hs-ekler > .hs-ek-dis-plan, .hs-ekler > .hs-ek-dis-teklif { grid-column: 1 / -1; }

/* ---------- şema ---------- */
.dis-sema-bolum { container-type: inline-size; min-width: 0; }
.dis-arac { gap: 8px 12px; }
.dis-duzen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 320px); gap: 16px; align-items: start; min-width: 0; }
@container (max-width: 760px) { .dis-duzen { grid-template-columns: minmax(0, 1fr); } }
.dis-sol { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dis-sema-kap { min-width: 0; }
.dis-sema { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dis-sira { display: grid; grid-template-columns: minmax(0, 1fr) 7px minmax(0, 1fr); align-items: end; min-width: 0; }
.dis-sira[data-cene="alt"] { align-items: start; }
.dis-yarim { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 2px; min-width: 0; }
.dis-orta { align-self: stretch; justify-self: center; width: 0; border-left: 1px dashed var(--cizgi2); }
.dis-cene-ayrac { height: 0; border-top: 1px dashed var(--cizgi2); margin: 4px 0; }
.dis-bos { min-width: 0; }
.dis-dis {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 1px; width: 100%; max-width: 54px; min-width: 0; justify-self: center;
  margin: 0; padding: 3px 1px; border: 2px solid transparent; border-radius: 7px; background: transparent; color: var(--metin); cursor: pointer; font: inherit;
  transition: background var(--t-hizli), border-color var(--t-hizli);
}
.dis-dis[data-cene="alt"] { flex-direction: column-reverse; }
.dis-dis:hover { background: var(--yuzey2); }
.dis-dis:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 1px; }
.dis-dis[aria-pressed="true"] { background: var(--vurgu-zemin); border-color: var(--vurgu); }
.dis-dis[data-planli] { border-style: dashed; border-color: var(--uyari); }
.dis-dis[data-planli][aria-pressed="true"] { border-style: solid; border-color: var(--vurgu); box-shadow: inset 0 0 0 1px var(--uyari); }
.dis-no { font-family: var(--f-sayi); font-size: .75rem; line-height: 1.1; color: var(--metin2); font-variant-numeric: tabular-nums; }
.dis-dis[aria-pressed="true"] .dis-no { color: var(--vurgu); font-weight: 600; }
.dis-cizim { display: block; width: 100%; height: auto; aspect-ratio: 40 / 56; overflow: visible; }
.dis-dis[data-cene="alt"] .dis-cizim, .dis-lejant-cizim[data-cene="alt"] .dis-cizim { transform: scaleY(-1); }
.dis-p { position: absolute; top: 0; right: 0; min-width: 13px; padding: 0 2px; border-radius: var(--r-tam); background: var(--uyari-zemin); color: var(--uyari);
  font-size: .625rem; font-weight: 700; line-height: 13px; text-align: center; }
.dis-dis[data-cene="alt"] .dis-p { top: auto; bottom: 0; }
.dis-desenler { position: absolute; width: 0; height: 0; overflow: hidden; }
@container (max-width: 420px) {
  .dis-yarim { gap: 1px; }
  .dis-sira { grid-template-columns: minmax(0, 1fr) 5px minmax(0, 1fr); }
  .dis-dis { padding: 2px 0; border-width: 1px; border-radius: 5px; }
  .dis-no { font-size: .625rem; }
}

/* diş çizimi (SVG) — yüzeyler, kök ve diş düzeyi işaretler */
.dc-kok { fill: var(--yuzey2); stroke: var(--cizgi-girdi); stroke-width: 1; }
.dc-yuzey { fill: var(--yuzey); stroke: var(--cizgi-girdi); stroke-width: 1; }
.dc-yuzey.dc-dolgu { fill: var(--vurgu); }
.dc-kesik { fill: transparent; stroke-dasharray: 3 2; }
.dc-kanal { fill: none; stroke: var(--grafik-2); stroke-width: 3; stroke-linecap: round; }
.dc-vida { fill: var(--yuzey3); stroke: var(--metin2); stroke-width: 1; }
.dc-vida-dis { fill: none; stroke: var(--metin2); stroke-width: 1.4; }
.dc-kron { fill: none; stroke: var(--grafik-4); stroke-width: 3; }
.dc-kopru { fill: none; stroke: var(--grafik-5); stroke-width: 3.5; }
.dc-protez { fill: none; stroke: var(--grafik-6); stroke-width: 2; }
.dc-kirik { fill: none; stroke: var(--kritik); stroke-width: 2.2; stroke-linejoin: round; }
.dc-cekilecek { fill: none; stroke: var(--kritik); stroke-width: 3; stroke-linecap: round; }
.dc-gomulu { fill: none; stroke: var(--metin2); stroke-width: 1.6; stroke-dasharray: 4 3; }
.dc-diger { fill: var(--yuzey); stroke: var(--grafik-3); stroke-width: 2; }
.dc-saglam { fill: none; stroke: var(--iyi); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.dd-curuk-zemin { fill: var(--kritik-zemin); }
.dd-curuk-nokta { fill: var(--kritik); }
.dd-dolgu { fill: var(--vurgu); }
.dd-govde-zemin { fill: var(--yuzey2); }
.dd-govde-cizgi { stroke: var(--metin3); stroke-width: 1.5; }
@media (forced-colors: active) {
  .dc-yuzey, .dc-kok { stroke: CanvasText; }
  .dc-yuzey.dc-dolgu { fill: CanvasText; }
  .dis-dis[aria-pressed="true"] { border-color: Highlight; }
}

/* seçili diş paneli */
.dis-panel { border: 1px solid var(--cizgi); border-radius: var(--r); background: var(--yuzey2); padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dis-panel-bas { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.dis-panel-bas h3 { margin: 0; font-size: 1.05rem; }
.dis-panel-bas p { margin: 2px 0 0; font-size: .8125rem; }
.dis-panel-durum { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.dis-panel-planli { padding: 6px 10px; border-left: 3px dashed var(--uyari); background: var(--uyari-zemin); border-radius: var(--r-k); font-size: .8125rem; overflow-wrap: anywhere; }
.dis-panel-ipucu { margin: 0; }
.dis-form .alan[hidden] { display: none; }
.dis-durumlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 118px), 1fr)); gap: 2px 10px; }
.dis-yuzeyler { display: flex; flex-direction: column; gap: 2px; }
.dis-yuzey-satir { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 10px; align-items: center; min-width: 0; }
.dis-yuzey-ad { min-width: 0; overflow-wrap: anywhere; font-size: .8125rem; }
.dis-yuzey-ad strong { display: inline-block; min-width: 1.4em; font-family: var(--f-sayi); }
.dis-panel-eylem { justify-content: flex-end; }

/* lejant */
.dis-lejant { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 6px 14px; }
.dis-lejant-oge { display: flex; align-items: center; gap: 8px; font-size: .8125rem; min-width: 0; }
.dis-lejant-cizim { flex: 0 0 22px; width: 22px; }
.dis-lejant-planli { flex: 0 0 22px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 2px dashed var(--uyari); border-radius: 6px;
  color: var(--uyari); font-weight: 700; font-size: .75rem; }

/* geçmiş */
.dis-gecmis { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dis-gecmis-oge { padding: 8px 10px; border-left: 3px solid var(--cizgi2); background: var(--yuzey2); border-radius: var(--r-k); display: flex; flex-direction: column; gap: 3px;
  align-items: flex-start; overflow-wrap: anywhere; }
.dis-gecmis-oge[data-kaynak="islem"] { border-left-color: var(--vurgu); }
.dis-gecmis-oge[data-kaynak="ters"] { border-left-color: var(--uyari); }
.dis-gecmis-oge p { margin: 0; }
.dis-gecmis-bas { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.dis-not { white-space: pre-line; overflow-wrap: anywhere; margin: 0; }
small.dis-not, .dis-alt { display: block; }

/* ---------- plan ve teklif ---------- */
.dis-planlar { min-width: 0; }
.dis-plan { border: 1px solid var(--cizgi); border-radius: var(--r); padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dis-plan[data-durum="kabul"] { border-color: color-mix(in srgb, var(--vurgu) 45%, var(--cizgi)); }
.dis-plan[data-durum="tamam"], .dis-plan[data-durum="iptal"] { background: var(--yuzey2); }
.dis-plan-bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 8px 12px; }
.dis-plan-bas h3 { margin: 0 0 2px; font-size: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; overflow-wrap: anywhere; }
.dis-plan-bas p { margin: 0; }
.dis-faz { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dis-faz-bas { margin: 4px 0 0; font-size: .875rem; font-weight: 600; color: var(--metin2); }
.dis-islem-ad { overflow-wrap: anywhere; }
tr[data-durum="vazgecildi"] .dis-islem-ad { text-decoration: line-through; color: var(--metin3); }
.dis-toplam { display: grid; grid-template-columns: auto auto; justify-content: end; gap: 2px 18px; margin: 0; font-size: .875rem; }
.dis-toplam dt { text-align: right; }
.dis-toplam dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.dis-plan-gecmis { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: .8125rem; }
.dis-plan-gecmis li { overflow-wrap: anywhere; }
.dis-surumler { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dis-yz-secim { display: flex; flex-wrap: wrap; gap: 6px; }
.dis-yz-dugme { min-width: 52px; min-height: 40px; padding: 4px 10px; border: 1px solid var(--cizgi-girdi); border-radius: var(--r-dug); background: var(--yuzey); color: var(--metin);
  font: 600 .875rem var(--f-sayi); cursor: pointer; }
.dis-yz-dugme[aria-pressed="true"] { background: var(--vurgu); border-color: var(--vurgu); color: var(--vurgu-ustu); }
.dis-yz-dugme:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.dis-islem-bilgi p { margin: 0; }

/* ---------- implant ---------- */
.dis-implant-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.dis-implant { border: 1px solid var(--cizgi); border-radius: var(--r); padding: 10px 14px; display: flex; flex-direction: column; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.dis-implant[data-gecersiz] { background: var(--yuzey2); }
.dis-implant[data-gecersiz] .dis-implant-bas strong { text-decoration: line-through; }
.dis-implant-bas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.dis-implant p { margin: 0; }
.dis-bag { font-size: .8125rem; color: var(--vurgu); align-self: center; }

/* ---------- Diş tanımları ekranı ---------- */
.dis-faz-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dis-faz-oge { display: grid; grid-template-columns: 4.5em minmax(0, 1fr) auto; gap: 8px; align-items: center; min-width: 0; }
@media (max-width: 480px) { .dis-faz-oge { grid-template-columns: minmax(0, 1fr) auto; } .dis-faz-oge > strong { grid-column: 1 / -1; } }
tr[data-durum="pasif"] td { color: var(--metin3); }

/* ---------- yazdırılabilir belgeler (önizleme ve baskı ortak) ---------- */
.dis-onizleme { border: 1px solid var(--cizgi); border-radius: var(--r); background: var(--yuzey); padding: 16px; min-width: 0; overflow-x: auto; }
.dis-onizleme[data-boyut="a6"] { max-width: 420px; margin: 0 auto; }
.dis-belge { display: flex; flex-direction: column; gap: 12px; min-width: 0; font-size: .875rem; }
.dis-belge h1 { margin: 0; font-size: 1.15rem; }
.dis-belge h2 { margin: 6px 0 4px; font-size: .95rem; }
.dis-belge p { margin: 0; }
.db-bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; padding-bottom: 8px; border-bottom: 1px solid var(--cizgi2); }
.db-kurum { display: flex; align-items: center; gap: 10px; min-width: 0; }
.db-logo { max-height: 48px; max-width: 160px; width: auto; height: auto; }
.db-baslik { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.db-tablo { width: 100%; border-collapse: collapse; font-size: .8125rem; }
.db-tablo th, .db-tablo td { border: 1px solid var(--cizgi2); padding: 4px 6px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.db-tablo td.rakam { text-align: right; white-space: nowrap; }
.db-tablo tfoot td { font-weight: 600; }
.db-toplam { display: grid; grid-template-columns: auto auto; justify-content: end; gap: 2px 18px; margin: 0; }
.db-toplam dt { text-align: right; }
.db-toplam dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.db-toplam .db-genel { font-weight: 700; font-size: 1rem; }
.db-tanim { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 12px; margin: 0; }
.db-tanim dt { color: var(--metin2); }
.db-tanim dd { margin: 0; overflow-wrap: anywhere; }
.db-not { white-space: pre-line; border-top: 1px solid var(--cizgi); padding-top: 6px; }
.db-alt, .db-kabul { font-size: .75rem; color: var(--metin2); }

.dis-baski { display: none; }
@page dis-a4 { size: A4; margin: 14mm; }
@page dis-a6 { size: A6; margin: 6mm; }
@media print {
  body.dis-yazdiriliyor > *:not(.dis-baski) { display: none !important; }
  body.dis-yazdiriliyor .dis-baski { display: block; color: #000; background: #fff; font: 10pt/1.45 "Segoe UI", system-ui, sans-serif; }
  .dis-baski[data-boyut="a4"] { page: dis-a4; }
  .dis-baski[data-boyut="a6"] { page: dis-a6; font-size: 8.5pt; }
  .dis-baski .dis-belge { font-size: inherit; gap: 3mm; }
  .dis-baski .db-bas { border-bottom-color: #555; }
  .dis-baski .db-tablo th, .dis-baski .db-tablo td { border-color: #555; }
  .dis-baski .db-tablo thead { display: table-header-group; }
  .dis-baski .db-tablo tr { page-break-inside: avoid; }
  .dis-baski .db-tanim dt, .dis-baski .db-alt, .dis-baski .db-kabul { color: #333; }
}
