/*
 * Rommer ön yüz. Kurumsal kimlik rommer.com.tr'den: Montserrat, #14684a (ana yeşil), #1e3a2d (mürekkep),
 * #f4eedc (kâğıt), #cde3a0 (açık yeşil), #cfe33a (vurgu). Yazı tipi ve logo ui/marka/ içinden sunulur (CSP dış kaynağa kapalı).
 */
@font-face { font-family: Montserrat; font-weight: 100 900; font-display: swap; src: url(marka/montserrat-latin.woff2) format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Montserrat; font-weight: 100 900; font-display: swap; src: url(marka/montserrat-latin-ext.woff2) format("woff2"); unicode-range: U+100-130, U+132-151, U+154-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root {
  --bg: #f6f2e6; --surface: #fffdf7; --sunk: #efe9d8; --fg: #1e3a2d; --muted: #55615a; --line: #e3dcc8;
  --accent: #14684a; --accent-hover: #0f5439; --accent-soft: #e8f1d6; --ok: #14734e; --ok-soft: #d8eede; --warn: #8a5600; --warn-soft: #faedcc;
  --bad: #a8322a; --bad-soft: #fae3de; --dim: #6c776c;
  --ust: #1e3a2d; --ust-yazi: #dfe9cf; --ust-cizgi: rgb(255 255 255 / 0.28); --vurgu: #cfe33a;
  --f: Montserrat, system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #101b16; --surface: #16241e; --sunk: #1d2e27; --fg: #e9eddf; --muted: #a3b3a6; --line: #2c4238;
    --accent: #7fcba4; --accent-hover: #9adbb8; --accent-soft: #1c3a2c; --ok: #79d39a; --ok-soft: #17352a; --warn: #f0b45a; --warn-soft: #33270f;
    --bad: #f08a80; --bad-soft: #3a1d1a; --dim: #8a9b8e; --ust: #173026;
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 14px/1.5 var(--f); overflow: hidden; }
h1, h2, h3 { margin: 0; line-height: 1.25; }
h1, h2, h3 { font-weight: 700; letter-spacing: -0.01em; }
h1 { font-size: 22px; font-weight: 800; } h2 { font-size: 16px; } h3 { font-size: 14px; margin-bottom: 8px; }

/*
 * Tek ekran düzeni: sayfa aşağı kaymaz. Kabuk ekran yüksekliğindedir; ekranlar kalan yüksekliği paneller ve
 * sekmelerle doldurur, uzun listeler yalnız kendi panelinin içinde (.kaydir) kayar.
 */
#uygulama { height: 100vh; height: 100dvh; display: flex; flex-direction: column; }
/* Ortam şeridi (ROMMER_ORTAM_ETIKETI, K-78): deneme kurulumunu resmi sistemden ayırır; kabuk kalan yüksekliği alır. */
.ortam-seridi { height: 22px; line-height: 22px; padding: 0 12px; text-align: center; font-size: 12px; font-weight: 600; letter-spacing: 0.02em; background: var(--warn-soft); color: var(--warn); border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.ortamli #uygulama { height: calc(100vh - 22px); height: calc(100dvh - 22px); }
header { background: var(--ust); border-bottom: 0; padding: 8px 16px 0; position: relative; z-index: 3; flex: none; }
.ust { display: flex; gap: 12px; align-items: center; }
.ust .marka { height: 38px; width: auto; display: block; }
.ust .kucuk { color: var(--ust-yazi); }
.ust-dugmeler .btn.ikincil { color: #fff; border-color: var(--ust-cizgi); }
.ust-dugmeler .btn.ikincil:hover { background: rgb(255 255 255 / 0.12); border-color: #fff; color: #fff; }
header :focus-visible { outline-color: var(--vurgu); }
.ust-dugmeler { margin-left: auto; display: flex; gap: 6px; }
.kucuk-btn { padding: 4px 10px; font-size: 12.5px; }
nav { display: flex; gap: 2px; overflow-x: auto; margin-top: 6px; }
nav a { color: var(--ust-yazi); font-size: 13px; text-decoration: none; font-weight: 600; padding: 9px 10px; border-bottom: 3px solid transparent; white-space: nowrap; }
nav a:hover { color: #fff; }
nav a[aria-current="true"] { color: #fff; border-bottom-color: var(--vurgu); }

main { padding: 12px 16px; width: 100%; max-width: 1680px; margin: 0 auto; flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
main.orta { max-width: 420px; padding-top: 10vh; overflow: auto; }
.ekran { flex: 1; min-height: 0; display: grid; gap: 12px; grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); }
.ekran.ust-cubuklu { grid-template-rows: auto minmax(0, 1fr); }
.ekran.yan { grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); }
.ekran.yan-sag { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); }
.ekran.ust-cubuklu.yan-sag { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); }
.ekran.ust-cubuklu.yan-sag > .cubuk { grid-column: 1 / -1; }
.ekran.izgarali { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.cubuk { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.cubuk h1 { font-size: 18px; }
.panel { display: flex; flex-direction: column; min-height: 0; min-width: 0; overflow: hidden; }
.panel > .bas, .panel > .alt, .panel > .sekmeler { flex: none; }
.panel > .alt { padding: 10px 16px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.panel > .sekmeler { padding: 10px 16px 0; }
.kaydir { flex: 1; min-height: 0; overflow: auto; }
.kaydir > table { margin: 0; }
.kaydir thead th { position: sticky; top: 0; background: var(--surface); z-index: 1; }
.yigin-panel { display: grid; gap: 12px; min-height: 0; grid-auto-rows: minmax(0, auto); align-content: start; }
.yigin-panel > .panel.dolu { min-height: 0; }
.dikey { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.dikey > .esnek { flex: 1; min-height: 0; }
.kutu { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.kutu:empty { display: none; }
.kutu > .bas { padding: 12px 16px; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.ic { padding: 14px 16px; }
.giris { padding: 24px; display: grid; gap: 12px; }
.yigin { display: grid; gap: 16px; }
.iki-sutun { display: grid; grid-template-columns: minmax(240px, 320px) 1fr; gap: 16px; align-items: start; }
.iki-sutun aside { display: grid; gap: 12px; }
@media (max-width: 760px) {
  .iki-sutun { grid-template-columns: 1fr; }
  /* Telefonda tek ekran sığmaz: paneller alt alta dizilir, sayfa kayar. */
  body { overflow: auto; }
  #uygulama, body.ortamli #uygulama { height: auto; min-height: 100dvh; }
  main { overflow: visible; flex: none; }
  .ekran, .ekran.yan, .ekran.yan-sag, .ekran.ust-cubuklu.yan-sag { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .panel, .kaydir { overflow: visible; }
  .kaydir thead th { position: static; }
}
.satir { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.izgara { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.gizli { display: none !important; }
.kucuk { font-size: 12.5px; color: var(--muted); }
.bos { color: var(--muted); padding: 12px 16px; margin: 0; }

.alan { display: grid; gap: 4px; }
label { font-size: 13px; color: var(--muted); font-weight: 600; }
input, select, textarea { font: inherit; color: var(--fg); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; width: 100%; }
input[type="checkbox"] { width: auto; }
.satir > select, .satir > textarea, .satir > input:not([type="checkbox"]) { width: auto; flex: 1 1 160px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.alan-hata { color: var(--bad); font-size: 12.5px; }

.btn { font: 600 13.5px var(--f); border-radius: 8px; padding: 8px 14px; cursor: pointer; border: 1px solid var(--accent); background: var(--accent); color: var(--surface); text-decoration: none; display: inline-block; }
.btn.ikincil { background: transparent; color: var(--accent); }
.btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn.ikincil:hover { background: var(--accent-soft); color: var(--accent); border-color: var(--accent); }
.btn.tehlike:hover { background: var(--bad-soft); color: var(--bad); border-color: var(--bad); }
.btn.tehlike-dolu:hover { background: var(--bad); border-color: var(--bad); filter: brightness(0.92); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.55; cursor: progress; transform: none; }

.liste { list-style: none; margin: 0; padding: 0; }
/* Yalnız satırın kendisi olan düğme (li > button, .btn değil); satırdaki işlem düğmeleri (.btn) kendi görünüşünü korur. */
.liste > li > button:not(.btn) { all: unset; box-sizing: border-box; display: block; width: 100%; padding: 10px 16px; border-top: 1px solid var(--line); cursor: pointer; }
.liste > li > button:not(.btn):hover, .liste > li > button:not(.btn):focus-visible { background: var(--accent-soft); }
.liste li.ic { border-top: 1px solid var(--line); }

.rozet { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.r-ok { background: var(--ok-soft); color: var(--ok); } .r-warn { background: var(--warn-soft); color: var(--warn); }
.r-bad { background: var(--bad-soft); color: var(--bad); } .r-n { background: var(--sunk); color: var(--muted); }
.renk { width: 14px; height: 14px; border-radius: 50%; display: inline-block; }
.renk.yesil { background: var(--ok); } .renk.sari { background: var(--warn); } .renk.kirmizi { background: var(--bad); }
.bant { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; background: var(--warn-soft); color: var(--warn); border-radius: 8px; padding: 10px 14px; margin-bottom: 12px; font-weight: 600; }
.bakiye { font-weight: 700; margin-left: auto; }
.fark { font-weight: 700; padding: 6px 10px; border-radius: 8px; display: inline-block; margin: 8px 0; }

table { border-collapse: collapse; width: 100%; margin: 12px 0; }
caption { text-align: left; }
th { text-align: left; font-size: 12px; color: var(--muted); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid var(--line); }
td { padding: 7px 8px; border-bottom: 1px solid var(--line); }
.sayi { text-align: right; font-variant-numeric: tabular-nums; }
.kart-alani article .ic > * + * { margin-top: 10px; }
.tahsilat { background: var(--sunk); }
.notlar ul { padding-left: 18px; }

.gun-listesi { list-style: none; margin: 0; padding: 0; }
.gun-listesi li { display: grid; grid-template-columns: 60px 1fr auto; gap: 6px 12px; align-items: center; padding: 12px 16px; border-top: 1px solid var(--line); }
.gun-listesi li > .satir { grid-column: 2 / -1; }
.gun-listesi .saat { font-weight: 700; font-variant-numeric: tabular-nums; }
.gun-listesi li.durum-tedaviEdildi { background: var(--ok-soft); }

/* Tanımlar */
.sekmeler { display: flex; flex-wrap: wrap; gap: 6px; }
.sekmeler button { font: 600 13.5px var(--f); border: 1px solid var(--line); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 6px 14px; cursor: pointer; }
.sekmeler button[aria-selected="true"] { background: var(--accent); border-color: var(--accent); color: var(--surface); }
.sekmeler .sayac { background: var(--warn); }
.sekme-alani { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; }
.sag { margin-left: auto; }
tr.soluk td { color: var(--dim); }
.izgara.genis { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.kod { font-family: ui-monospace, Consolas, monospace; min-width: 90px; }

/* Yönetim */
.kpi-izgara { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.kpi { padding: 14px 16px; border-top: 4px solid var(--line); }
.kpi h3 { color: var(--muted); font-size: 13px; margin-bottom: 4px; }
.kpi .deger { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1.2; }
.kpi p { margin: 6px 0 0; }
.kpi-ok { border-top-color: var(--ok); } .kpi-warn { border-top-color: var(--warn); } .kpi-bad { border-top-color: var(--bad); }
.kpi-bad .deger { color: var(--bad); } .kpi-warn .deger { color: var(--warn); }
a { color: var(--accent); }
.yigin-kucuk { display: grid; gap: 6px; }
.hata-bant { background: var(--bad-soft); color: var(--bad); margin: 8px 0 0; }
.roller { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 12px; margin: 0; }
.roller legend { font-size: 13px; color: var(--muted); font-weight: 600; padding: 0 4px; }
.secim { display: flex; gap: 8px; align-items: center; font-weight: 400; color: var(--fg); font-size: 14px; padding: 3px 0; cursor: pointer; }
.liste > li > button[aria-current="true"] { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.liste > li > button.soluk { color: var(--muted); }
.blok { display: block; }
.ayrac { border-top: 1px solid var(--line); }
.btn.tehlike { color: var(--bad); border-color: var(--bad); }
.parola-bant { display: grid; gap: 4px; justify-content: stretch; margin: 12px 16px 0; }
.baglanti-dugme { all: unset; cursor: pointer; justify-self: center; color: var(--accent); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; padding: 4px; }
.baglanti-dugme:focus-visible { outline: 2px solid var(--accent); border-radius: 4px; }
.ozet-kutu.ozet-warn { border-color: var(--warn); background: var(--warn-soft); }
.ozet-kutu.ozet-bad { border-color: var(--bad); background: var(--bad-soft); }
.izleme-grafik { width: 100%; height: 90px; display: block; }
.izleme-grafik .cubuk { fill: var(--accent); opacity: .75; }
.izleme-grafik .cubuk-hata { fill: var(--bad); }
.yigin-metni { font: 12px/1.45 ui-monospace, Consolas, monospace; background: var(--accent-soft); padding: 10px 12px; border-radius: 8px; white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow: auto; margin: 0; }
.hata-mesaj { font-weight: 600; word-break: break-word; margin: 0; }
.kisalt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.metin-satirli { white-space: pre-wrap; margin: 0; }
.bildir-gecmis { max-height: 220px; overflow: auto; }
.giris .adimlar { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.giris .anahtar { display: block; padding: 10px 12px; font-size: 1.05rem; letter-spacing: .06em; word-break: break-all; user-select: all; }
.parola { font: 700 17px/1.4 ui-monospace, Consolas, monospace; letter-spacing: 0.04em; user-select: all; }
.tablo-kap { overflow-x: auto; padding: 0 16px 8px; }
.nowrap { white-space: nowrap; }
details summary { cursor: pointer; color: var(--accent); }
.iz-fark { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; margin-top: 6px; }
.iz-fark pre { margin: 4px 0 0; padding: 8px; background: var(--sunk); border-radius: 6px; font-size: 12px; white-space: pre-wrap; word-break: break-word; max-height: 240px; overflow: auto; }

#duyuru { position: fixed; right: 16px; bottom: 16px; display: grid; gap: 8px; z-index: 5; max-width: min(420px, calc(100vw - 32px)); }
.duyuru { padding: 10px 14px; border-radius: 10px; background: var(--fg); color: var(--bg); font-weight: 600; box-shadow: 0 4px 16px rgb(0 0 0 / 0.15); }
.duyuru.hata { background: var(--bad); color: #fff; }

/* Bildirimler (M5): üst çubukta sayaç, altında açılır kutu */
.sayac { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: var(--bad); color: var(--surface); font-size: 12px; line-height: 18px; text-align: center; }
.sayac[hidden] { display: none; }
.bildirim-kutusu { position: absolute; right: 16px; top: calc(100% + 6px); width: min(460px, calc(100vw - 32px)); max-height: 70vh; overflow: auto; box-shadow: 0 8px 28px rgb(0 0 0 / 0.18); }
.bildirim-kutusu[hidden] { display: none; }
.bildirim-kutusu .satir { flex-wrap: wrap; }
.bildirim-kutusu .okunmus { color: var(--muted); }
@media (max-width: 640px) { .ust-dugmeler { flex-wrap: wrap; justify-content: flex-end; } }

/* Banko: hasta kartı tek ekranda — solda seanslar, sağda sekmeli işlemler */
.dolu { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.dolu > .panel { flex: 1; }
.arama > .bas > .satir:first-child { flex: 1; }
.arama > .bas input { width: 100%; }
.bantlar { flex: none; display: grid; gap: 6px; padding: 10px 16px 0; max-height: 30%; overflow: auto; }
.bantlar .bant { margin: 0; padding: 6px 12px; }
.bant.bilgi { background: var(--accent-soft); color: var(--accent); }
.kart-govde { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.bolum { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.bolum + .bolum { border-left: 1px solid var(--line); }
.bolum-bas { flex: none; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--line); }
.bolum-bas h3 { margin: 0; }
.gizli-metin { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kaydir td, .kaydir th { padding-left: 16px; }
@media (max-width: 1100px) {
  .kart-govde { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
  .bolum + .bolum { border-left: 0; border-top: 1px solid var(--line); }
}

/* Takvim: sütun = takvim, satır = yarım saat; ızgara kendi panelinde iki yöne kayar */
.takvim-kap { --slot: 38px; }
.takvim { display: grid; min-width: max-content; position: relative; }
.takvim .kose, .takvim .sutun-bas { position: sticky; top: 0; z-index: 2; background: var(--surface); border-bottom: 1px solid var(--line); }
.takvim .kose { left: 0; z-index: 3; }
.takvim .sutun-bas { padding: 6px 8px; display: grid; line-height: 1.25; border-left: 1px solid var(--line); }
.takvim .saat-etiket { position: sticky; left: 0; z-index: 1; background: var(--surface); font-size: 12px; color: var(--muted); padding: 0 8px; font-variant-numeric: tabular-nums; border-top: 1px solid var(--line); }
.takvim .saat-etiket.yarim { border-top-style: dotted; }
.takvim .slot { all: unset; box-sizing: border-box; border-left: 1px solid var(--line); border-top: 1px dotted var(--line); cursor: pointer; }
.takvim .slot.tam { border-top-style: solid; }
.takvim .slot:hover, .takvim .slot:focus-visible { background: var(--accent-soft); outline: none; }
.takvim .slot.secili { background: var(--accent-soft); box-shadow: inset 0 0 0 2px var(--accent); }
.takvim .slot.hedef { background: repeating-linear-gradient(135deg, transparent 0 6px, var(--accent-soft) 6px 12px); }
.takvim .slot.kapali { cursor: default; background: var(--sunk); }
.takvim .randevu { all: unset; box-sizing: border-box; margin: 1px 3px; padding: 2px 8px; border-radius: 6px; overflow: hidden; cursor: pointer; display: grid; align-content: center; line-height: 1.2; border-left: 4px solid var(--dim); background: var(--sunk); z-index: 1; }
.takvim .randevu:focus-visible { outline: 2px solid var(--accent); }
.takvim .randevu.secili { box-shadow: 0 0 0 2px var(--accent); }
.rv-ad { font-weight: 600; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-alt { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.d-planlandi { border-left-color: var(--dim) !important; }
.d-teyitEdildi { border-left-color: var(--accent) !important; background: var(--accent-soft) !important; }
.d-girisYapti { border-left-color: var(--warn) !important; background: var(--warn-soft) !important; }
.d-tedaviEdildi, .d-imzalandi, .d-faturalandi { border-left-color: var(--ok) !important; background: var(--ok-soft) !important; }
.d-seanssiz { border-left-color: var(--bad) !important; }
.d-gelmedi, .d-gelmeyecek { border-left-color: var(--bad) !important; background: var(--bad-soft) !important; }
.lejant { gap: 6px; }
.lj { font-size: 12px; padding: 1px 8px; border-left: 4px solid var(--dim); background: var(--sunk); border-radius: 4px; }
.tanim-listesi { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; }
.tanim-listesi dt { color: var(--muted); font-size: 13px; font-weight: 600; }
.tanim-listesi dd { margin: 0; }
form.panel { margin: 0; }

/* Teyit aramaları */
.teyit-satiri { display: grid; grid-template-columns: 56px minmax(160px, 1.4fr) minmax(110px, auto) auto minmax(0, 1fr); gap: 6px 14px; align-items: center; padding: 8px 16px; border-top: 1px solid var(--line); }
.teyit-satiri .saat { font-weight: 700; font-variant-numeric: tabular-nums; }
.teyit-satiri .islemler { justify-content: flex-end; }
.tel { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 900px) { .teyit-satiri { grid-template-columns: 56px 1fr; } .teyit-satiri .islemler { grid-column: 1 / -1; justify-content: flex-start; } }
/* Eski ekranlardaki liste ve tablolar panelin içinde kayar */
.panel > .liste, .panel > .tablo-kap, .panel > form.kaydirilir { flex: 1 1 auto; min-height: 0; overflow: auto; }
.sekme-alani > .ic + .ic, .sekme-alani > .ic { flex: none; }
.sekme-alani > .tablo-kap, .sekme-alani > table { flex: none; }

/* Ekranları tek sayfaya sığdıran yardımcılar */
.ekran-tek { flex: 1; min-height: 0; }
.kaydir-kutu { overflow: auto; min-height: 0; }
.ekran.iki-esit { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
.tanim-icerik { min-height: 0; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); grid-template-rows: minmax(0, 1fr); }
.tanim-icerik > .tam-genis { grid-column: 1 / -1; }
/* T33 Görevlerim: üç eşit sütun */
.tanim-icerik.uc-sutun { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.madde { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.tanim-icerik > .kutu:empty { display: block; visibility: hidden; }
.panel > .gun-listesi { flex: 1 1 auto; min-height: 0; overflow: auto; }
.sekme-alani > .kutu { border: 0; border-radius: 0; }
.sekme-alani > .kutu > .bas { border-bottom: 1px solid var(--line); }
@media (max-width: 760px) {
  .ekran.iki-esit, .tanim-icerik, .tanim-icerik.uc-sutun { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .kaydir-kutu, .sekme-alani, .panel > .liste, .panel > .tablo-kap, .panel > .gun-listesi { overflow: visible; }
}

.cubuk input, .cubuk select { width: auto; }
.cubuk .alan { display: flex; align-items: center; gap: 8px; }
.yigin-kucuk { align-content: start; }
.bolum-bas .sekmeler { gap: 4px; }
.bolum-bas .sekmeler button { padding: 4px 10px; font-size: 13px; }
.ekran-tek.yigin { align-content: start; }
.dar { max-width: 680px; }
@media (max-width: 760px) { .takvim-kap { overflow: auto; max-height: 75vh; } }

/* Gösterim (demo) giriş ekranı: solda giriş formu, sağda rol düğmeleri */
main.orta.gosterim { max-width: 1100px; display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 16px; align-items: start; padding-top: 6vh; }
.gosterim-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; padding: 14px 16px; }
.gosterim-dugme { all: unset; box-sizing: border-box; display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; background: var(--surface); }
.gosterim-dugme:hover, .gosterim-dugme:focus-visible { border-color: var(--accent); background: var(--accent-soft); }
.gosterim-dugme strong { color: var(--accent); }
@media (max-width: 760px) { main.orta.gosterim { grid-template-columns: minmax(0, 1fr); } }

/* 24.10 saha geri bildirimi: pencere, randevu penceresi, doluluk, hafta görünümü, imza ve ödeme işaretleri */
[hidden] { display: none !important; }
.bant.kirmizi { background: var(--bad-soft); color: var(--bad); }
.btn.tehlike-dolu { background: var(--bad); border-color: var(--bad); }
input.kisa { width: 90px; }
.sade { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
tr.imza-eksik td { background: var(--bad-soft); }
.bayraklar { gap: 4px; margin-top: 2px; }
.kim { display: grid; gap: 2px; }

dialog.pencere { border: 1px solid var(--line); border-radius: 12px; padding: 0; background: var(--surface); color: var(--fg); width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); display: flex; flex-direction: column; box-shadow: 0 16px 48px rgb(0 0 0 / 0.25); }
dialog.pencere:not([open]) { display: none; }
dialog.pencere.genis { width: min(720px, calc(100vw - 32px)); }
dialog.pencere::backdrop { background: rgb(10 20 18 / 0.45); }
.pencere-bas { padding: 14px 18px; border-bottom: 1px solid var(--line); }
.pencere-govde { padding: 14px 18px; overflow: auto; display: grid; gap: 10px; min-height: 0; }
.pencere-govde p { margin: 0; }
.pencere-alt { padding: 12px 18px; border-top: 1px solid var(--line); display: flex; gap: 8px; justify-content: flex-end; }
.secim-listesi { max-height: 220px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; }
.secim input:disabled + * { opacity: 0.6; }

.randevu-penceresi > .bas h2 { margin-right: 8px; }
.randevu-penceresi .sekmeler button .kucuk { color: inherit; opacity: 0.8; }
.rp-cubuk { flex: none; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 16px; border-bottom: 1px solid var(--line); }
.rp-cubuk input[type="date"] { width: auto; }
.rp-cubuk input[type="search"] { width: auto; flex: 1 1 220px; max-width: 340px; margin-left: auto; }
.rp-govde { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); }
.rp-yan { border-left: 1px solid var(--line); padding: 14px 16px; overflow: auto; display: grid; gap: 10px; align-content: start; }
.rp-yan p { margin: 0; }
.gun-secimi { gap: 2px 10px; }
.takvim .randevu.kendi { box-shadow: inset 0 0 0 2px var(--accent); }
.takvim div.randevu { cursor: default; }

.doluluk { display: inline-flex; align-items: center; gap: 6px; }
.doluluk-cubuk { display: inline-block; width: 70px; height: 7px; border-radius: 99px; background: var(--sunk); overflow: hidden; }
.doluluk-cubuk > span { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
.gun-cipi { font: inherit; border: 1px solid var(--line); background: var(--surface); color: var(--fg); border-radius: 10px; padding: 4px 10px; cursor: pointer; display: grid; gap: 1px; text-align: left; }
.gun-cipi.secili { border-color: var(--accent); background: var(--accent-soft); }
.gun-listesi li.secili { box-shadow: inset 3px 0 0 var(--accent); background: var(--accent-soft); }
.sekme-alani > .ekran { flex: 1; min-height: 0; }
.sekme-alani > .panel { flex: 1 1 auto; min-height: 0; }
.sekme-alani > .kutu.cerceveli, .ic-ekran .kutu.cerceveli { border: 1px solid var(--line); border-radius: 12px; }
.hafta { flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(6, minmax(140px, 1fr)); gap: 8px; overflow-x: auto; }
.hafta-gunu { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; min-height: 0; }
.hafta-gunu.bugun { border-color: var(--accent); }
.hafta-bas { all: unset; box-sizing: border-box; cursor: pointer; padding: 8px 10px; border-bottom: 1px solid var(--line); display: grid; gap: 2px; }
.hafta-bas:hover, .hafta-bas:focus-visible { background: var(--accent-soft); }
.hafta-gunu ul { padding: 6px 10px; font-size: 13px; }
.hafta-gunu li { border-left: 3px solid var(--dim); padding-left: 6px; }
.hafta-gunu li.d-tedaviEdildi, .hafta-gunu li.d-imzalandi { border-left-color: var(--ok); }
.hafta-gunu li .saat { font-weight: 600; font-variant-numeric: tabular-nums; }
.rapor-gunsonu { flex: 1; min-height: 0; display: grid; gap: 12px; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.bant.aciklama { margin: 0; font-weight: 400; }
.bant.aciklama strong { font-weight: 700; }
@media (max-width: 1100px) { .rp-govde { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; } .rp-yan { border-left: 0; border-top: 1px solid var(--line); max-height: 45%; } }
@media (max-width: 760px) {
  .rp-govde, .rapor-gunsonu, .hafta { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .rp-yan { max-height: none; }
  .hafta { overflow: visible; }
}
fieldset.kapsam { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin: 0; display: grid; gap: 6px; }
fieldset.kapsam legend { font-size: 13px; color: var(--muted); font-weight: 600; padding: 0 4px; }
fieldset.kapsam .satir > input[type="date"] { flex: 0 1 170px; }
.hafta-gunu ul { align-content: start; }
.hafta-gunu li.kucuk { border-left: 0; padding-left: 0; }
.hafta-cubuk { flex: none; padding-bottom: 8px; }
.sekme-alani > .hafta-cubuk + .hafta { flex: 1; }
.bas input[type="date"] { width: auto; }
.kartlar-tablo .satir { flex-wrap: nowrap; }
.kartlar-tablo .satir > select { flex: 0 1 190px; min-width: 120px; }
input[type="radio"] { width: auto; }
.takvim .slot.mesgul { cursor: not-allowed; background: repeating-linear-gradient(135deg, var(--bad-soft) 0 5px, transparent 5px 10px); }
.takvim .slot.oneri { box-shadow: inset 0 0 0 2px var(--ok-soft); background: repeating-linear-gradient(135deg, transparent 0 6px, var(--ok-soft) 6px 12px); }
.ek-tedavi { display: grid; grid-template-columns: auto 1fr 80px auto; }
.bant.istekler { justify-content: flex-start; font-weight: 400; }
.saat { font-weight: 600; font-variant-numeric: tabular-nums; }

/* K-33: 15/20 dk seans blokları kısa; ikinci satır gizlenir. */
.takvim .randevu.kisa { padding: 0 6px; align-content: center; }
.takvim .randevu.kisa .rv-alt { display: none; }
.takvim .randevu.kisa .rv-ad { font-size: 12px; }
/* U26: tedavi grubu rozeti (A/B/C/D); D fizyoterapi gerektirmez, çizgili ve koyu görünür. */
.grup { display: inline-block; min-width: 1.4em; margin-right: 4px; padding: 0 4px; border-radius: 4px; font-size: 11px; font-weight: 700; text-align: center; line-height: 1.5; color: #fff; }
.grup.g-A { background: #2f6f8f; }
.grup.g-B { background: #14734e; }
.grup.g-C { background: #8a5600; }
.grup.g-D { background: repeating-linear-gradient(135deg, #7a2a24 0 4px, #a8322a 4px 8px); }
.grup-anahtari { display: inline-flex; align-items: center; gap: 2px; }
input[type="time"].kisa { width: auto; }

/* K-34 (24.10 toplantı): fizyoterapistin programı yazdırılmaz / PDF'e basılmaz. Ekran görüntüsü engellenemez. */
@media print {
  body:has(.yazdirma-yok) * { visibility: hidden !important; }
  body:has(.yazdirma-yok)::before { content: "Bu ekran yazdırılamaz."; visibility: visible; display: block; padding: 24px; font: 16px sans-serif; }
}

/* Tesis (T26–T28): fotoğraf küçük resimleri, liste düğmesi */
.foto-satiri { flex-wrap: wrap; gap: 6px; }
.foto-kucuk { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); }
.satir-dugme { all: unset; box-sizing: border-box; display: grid; gap: 2px; width: 100%; padding: 10px 14px; cursor: pointer; }
.satir-dugme:hover, .satir-dugme:focus-visible { background: var(--accent-soft); outline: none; }

/* Kurumsal kimlik: giriş logosu, hareket */
.giris-logo { margin: 0 0 4px; line-height: 0; }
.giris-logo img { width: min(100%, 260px); height: auto; }
.marka-koyu { display: none; }
@media (prefers-color-scheme: dark) { .marka-acik { display: none; } .marka-koyu { display: inline; } }
.btn, nav a, .sekmeler button, .gosterim-dugme, .satir-dugme { transition: background-color 150ms, border-color 150ms, color 150ms; }
.sekmeler button:hover:not([aria-selected="true"]) { border-color: var(--accent); color: var(--accent); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Telefon: geniş tablolar sayfayı değil kendi kutusunu yatay kaydırır. */
@media (max-width: 760px) {
  .kaydir, .kaydir-kutu, .tablo-kap, .panel > .tablo-kap, .sekme-alani { overflow-x: auto; }
  .ekran, .panel, .dolu, .sekme-alani { min-width: 0; max-width: 100%; }
}
@media (max-width: 640px) {
  .ust { flex-wrap: wrap; gap: 6px 10px; }
  .ust .marka { height: 32px; }
  .ust-dugmeler { margin-left: 0; width: 100%; flex-wrap: wrap; justify-content: flex-start; }
  .ust-dugmeler .btn { flex: 1; text-align: center; }
}

/* Başvurular: solda arama sırası, sağda seçili başvuru */
.basvuru-duzeni { grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); }
.basvuru-duzeni > .dikey > .panel { flex: 1; }
@media (max-width: 760px) { .basvuru-duzeni { grid-template-columns: minmax(0, 1fr); } }
.basvuru-duzeni .yigin-kucuk p { margin: 0; }
.basvuru-duzeni .yigin-kucuk { gap: 10px; }
.form-alanlari { grid-template-columns: minmax(130px, 200px) minmax(0, 1fr); gap: 8px 16px; }
.form-alanlari dd { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 760px) { .form-alanlari { grid-template-columns: minmax(0, 1fr); gap: 2px; } .form-alanlari dd { margin-bottom: 8px; } }
.ustu-cizili { text-decoration: line-through; color: var(--muted); }
.on-bicimli { white-space: pre-wrap; margin: 0; }
.ozet-kutular { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; padding: 12px 16px; }
.ozet-kutu { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line, #e3ddd0); border-radius: 8px; padding: 10px 12px; }
.ozet-kutu strong { font-size: 22px; }
.ozet-kutu strong[class] { background: none; }

/* X1 Kota: hekim × gün tablosu. Tablo kendi kutusunda iki yöne kayar; ilk sütun ve başlık yapışık. */
.kota-kap { overflow: auto; min-height: 0; flex: 1 1 auto; border-top: 1px solid var(--line); }
.kota-tablo { border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
.kota-tablo th, .kota-tablo td { padding: 0; border-bottom: 1px solid var(--line); text-align: center; white-space: nowrap; }
.kota-tablo thead th { position: sticky; top: 0; z-index: 2; background: var(--surface); font-size: 12px; font-weight: 600; color: var(--muted); padding: 6px 4px; }
.kota-tablo .k-hekim { position: sticky; left: 0; z-index: 1; background: var(--surface); text-align: left; padding: 6px 10px; min-width: 170px; border-right: 1px solid var(--line); }
.kota-tablo thead .k-hekim { z-index: 3; }
.kota-tablo th.k-bugun { color: var(--accent); }
.k-hucre button { all: unset; box-sizing: border-box; display: block; width: 100%; min-width: 46px; padding: 8px 4px; cursor: pointer; font-size: 13px; }
.k-hucre button:hover, .k-hucre button:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.k-bos { background: var(--surface); }
.k-dolu { background: var(--ok-soft); color: var(--ok); font-weight: 600; }
.k-asim { background: var(--bad-soft); color: var(--bad); font-weight: 700; }
.k-kapali { background: var(--sunk); color: var(--dim); }
.k-eksik { box-shadow: inset 0 -3px 0 var(--warn); }
td.k-bugun { border-left: 2px solid var(--accent); }
.kota-anahtar { padding: 0 16px 10px; }
.k-hucre.anahtar { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 12px; border: 1px solid var(--line); }
