/* Biletinbu · site stilleri (müşteri ve ofis). Telefon önce; 360 px'te yana taşma yok, dokunma alanı en az 44 px. */
:root {
    --zemin: #f4f4f6; --kart: #ffffff; --yazi: #363636; --yazi-2: #5f5f66; --yazi-3: #6e6e76;
    --cizgi: #e4e4e9; --cizgi-2: #cfcfd6; --pembe: #fc0067; --pembe-koyu: #c80052; --pembe-acik: #ffe3ee;
    --hata: #b3002d; --hata-zemin: #fdecef; --uyari-zemin: #fff6dc; --uyari: #5c4300;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--zemin); color: var(--yazi);
    font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
a { color: var(--pembe-koyu); }
h1 { margin: 0 0 8px; font-size: 26px; line-height: 1.2; }

.ust { background: #fff; border-bottom: 1px solid var(--cizgi); }
.ust-ic { max-width: 1080px; margin: 0 auto; padding: 0 16px; height: 64px; display: flex; align-items: center; gap: 8px; }
.logo { display: flex; align-items: center; min-height: 44px; margin-right: auto; }
.logo img { height: 28px; width: auto; display: block; }
.ust-etiket { padding: 4px 10px; border-radius: 999px; background: var(--pembe-acik); color: var(--pembe-koyu); font-size: 13px; font-weight: 800; }
.ust-form { margin: 0; }
.ust-bag { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 0; background: none; font: inherit;
    font-weight: 700; color: var(--yazi); text-decoration: none; cursor: pointer; border-radius: 12px; }
.ust-bag.cerceve { border: 1.5px solid var(--cizgi-2); min-height: 40px; }
.alan-ofis .ust { border-bottom: 3px solid #1c1a1e; }
.alan-ofis .ust-etiket { background: #1c1a1e; color: #fff; }

.icerik { flex: 1; width: 100%; max-width: 1080px; margin: 0 auto; padding: 24px 16px 48px; }
.kart { background: var(--kart); border: 1px solid var(--cizgi); border-radius: 18px; padding: 24px 20px; }
.kart.dar { max-width: 440px; margin: 16px auto 0; }
.aciklama { margin: 0 0 16px; color: var(--yazi-2); }
.etiket { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; font-size: 14px; font-weight: 700; }
.girdi { width: 100%; min-height: 52px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--cizgi-2); background: #fff;
    color: var(--yazi); font: inherit; font-size: 16px; }
.girdi:focus { border-color: var(--pembe); outline: 3px solid var(--pembe-acik); outline-offset: 0; }
.girdi.kod { font-size: 26px; font-weight: 800; letter-spacing: .35em; text-align: center; }
.dugme { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 22px; border: 0; border-radius: 14px;
    background: var(--pembe); color: #fff; font: inherit; font-size: 17px; font-weight: 800; text-decoration: none; cursor: pointer; }
.dugme:hover { background: var(--pembe-koyu); }
.dugme:disabled { opacity: .5; cursor: wait; }
.dugme.tam { width: 100%; }
.bag { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; padding: 0 4px; border: 0; background: none;
    font: inherit; font-weight: 700; color: var(--pembe-koyu); text-decoration: underline; cursor: pointer; }
.hata { margin: -4px 0 14px; padding: 10px 12px; border-radius: 12px; background: var(--hata-zemin); color: var(--hata); font-weight: 700; }
.deneme { margin: 0 0 14px; padding: 10px 12px; border-radius: 12px; background: var(--uyari-zemin); color: var(--uyari); }
.sayac { margin: 0 0 14px; color: var(--yazi-2); }
.yeniden { margin-top: 12px; }
.bilgi { color: var(--yazi-2); }

/* alt bilgi (plan 42): koyu zemin, ince altın çizgi, Cinegold logosu */
.alt { margin-top: 32px; border-top: 3px solid #c39a0c; background: #141418; }
.alt-ic { max-width: 1080px; margin: 0 auto; padding: 24px 16px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; font-size: 13px; color: #a6a6ae; }
.alt-logo { display: block; width: auto; height: 52px; }
.alt-yazi { letter-spacing: .02em; }
@media (min-width: 640px) {
    .alt-ic { flex-direction: row; justify-content: space-between; text-align: left; }
    .alt-logo { height: 60px; }
}
/* personel ekranlarında (iş ekranı) alt bilgi sade kalır: logo giriş kartında */
body.alan-ofis .alt { margin-top: 0; border-top: 1px solid var(--cizgi); background: #fff; }
body.alan-ofis .alt-ic { flex-direction: row; padding: 14px 16px; color: var(--yazi-3); }
body.alan-ofis .alt-logo { display: none; }
/* ana sayfa marka bandı (plan 42) */
.marka-bant { position: relative; display: flex; align-items: center; justify-content: center; margin: 0 0 16px; padding: 18px 16px; border-radius: 18px; overflow: hidden;
    background: radial-gradient(120% 140% at 50% 0%, #2c2a24 0%, #17171b 55%, #0f0f12 100%); box-shadow: inset 0 -2px 0 #c39a0c; }
.marka-logo { display: block; width: auto; height: 64px; max-width: 100%; object-fit: contain; }
@media (min-width: 640px) {
    .marka-bant { padding: 22px 24px; }
    .marka-logo { height: 84px; }
}
/* giriş kartlarında logo */
.giris-marka { display: flex; justify-content: center; margin: -4px 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--cizgi); }
.giris-logo { display: block; width: auto; height: 60px; max-width: 100%; }
.bildirim { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); max-width: 92vw; padding: 12px 18px; border-radius: 12px;
    background: #363636; color: #fff; font-weight: 600; }
@media (min-width: 640px) { .kart { padding: 32px; } h1 { font-size: 30px; } }

/* ofis paneli: modül kartları */
.moduller { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 16px 0; }
.modul { display: flex; flex-direction: column; gap: 4px; min-height: 84px; padding: 16px; border: 1.5px solid var(--cizgi-2); border-radius: 16px;
    color: var(--yazi); text-decoration: none; background: #fff; }
.modul:hover { border-color: var(--pembe); }
.modul b { font-size: 18px; }
.modul small { color: var(--yazi-2); }

/* gişe: solda seanslar, sağda şema + panel (telefonda alt alta) */
.alan-ofis .icerik { max-width: 1400px; }
.gise { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
.gise > * { min-width: 0; }
@media (min-width: 1000px) { .gise { grid-template-columns: 360px minmax(0, 1fr); align-items: start; } .gise-sol { position: sticky; top: 12px; } }
.gise .kart { padding: 16px; }
.gunler { display: flex; gap: 8px; overflow-x: auto; margin: 4px -4px 12px; padding: 0 4px 4px; scrollbar-width: thin; }
.gun { flex: 0 0 auto; min-width: 74px; min-height: 52px; padding: 4px 10px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; background: #fff;
    font: inherit; color: var(--yazi); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; }
.gun small { color: var(--yazi-3); font-size: 12px; }
.gun.secili { background: var(--yazi); border-color: var(--yazi); color: #fff; }
.gun.secili small { color: #ddd; }
.film { padding: 10px 0; border-top: 1px solid var(--cizgi); }
.film h3 { margin: 0 0 8px; font-size: 16px; }
.film h3 small { padding: 1px 6px; border-radius: 6px; background: #eee; font-size: 12px; }
.saatler { display: flex; flex-wrap: wrap; gap: 8px; }
.saat { min-width: 92px; min-height: 52px; padding: 4px 10px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; background: #fff; font: inherit;
    color: var(--yazi); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; }
.saat b { font-size: 18px; }
.saat small { font-size: 11.5px; color: var(--yazi-3); }
.saat:hover { border-color: var(--pembe); }
.saat.dolu { opacity: .55; }
.seans-bas h2 { margin: 0; font-size: 22px; }
.basari { margin: 0 0 12px; padding: 12px 14px; border-radius: 12px; background: #e3f5ea; color: #0d5c33; border: 1px solid #9fd8b8; }

/* salon şeması: dar ekranda yatay kaydırılır (sayfa taşmaz) */
#gise-plan-kutu { margin: 12px 0; }
.perde { margin: 10px auto 0; max-width: 520px; padding: 4px; border-radius: 40px 40px 0 0; background: #e7e7ec; text-align: center; font-size: 11px; font-weight: 800;
    letter-spacing: .3em; color: var(--yazi-3); }
.sema { display: flex; flex-direction: column; gap: 4px; overflow-x: auto; padding: 4px 0 8px; }
.sira { display: flex; gap: 3px; align-items: center; justify-content: center; min-width: max-content; margin: 0 auto; }
.harf { width: 18px; text-align: center; font-size: 11px; font-weight: 800; color: var(--yazi-3); flex: 0 0 auto; }
.k { width: 30px; height: 30px; flex: 0 0 auto; padding: 0; border: 1.5px solid var(--cizgi-2); border-radius: 7px 7px 4px 4px; background: #fff;
    font: inherit; font-size: 11px; font-weight: 700; color: var(--yazi); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.k.cift { width: 63px; }
.k.bosluk { border: 0; background: none; cursor: default; }
.k.engelli { border-color: #3d6bd8; color: #3d6bd8; }
.k.benim { background: var(--pembe); border-color: var(--pembe); color: #fff; }
.k.tutulu { background: #fbe3a8; border-color: #e5b85c; color: #6b4b00; cursor: not-allowed; }
.k.satildi { background: #d9d9de; border-color: #d9d9de; color: #8a8a92; cursor: not-allowed; }
button.k:hover { border-color: var(--pembe); }
@media (pointer: coarse) { .k { width: 34px; height: 34px; } .k.cift { width: 71px; } }
.lejant { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; color: var(--yazi-2); margin-top: 6px; }
.lejant span { display: inline-flex; align-items: center; gap: 6px; }
.lejant i.k { width: 16px; height: 16px; cursor: default; }
.secim { margin: 10px 0 0; }
.arac-satir { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 8px 0 16px; }
.en-iyi { display: flex; align-items: flex-end; gap: 8px; margin: 0; }
.etiket.yatay { margin: 0; }
.girdi.kisa { width: 72px; text-align: center; }
.dugme.ikinci { background: #fff; color: var(--yazi); border: 1.5px solid var(--cizgi-2); font-size: 15px; min-height: 48px; }
.dugme.ikinci:hover { border-color: var(--pembe); background: #fff; }
.sat-form h3 { margin: 18px 0 8px; font-size: 16px; }
.turler { display: grid; gap: 8px; }
.tur { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--cizgi); border-radius: 12px; }
.tur span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tur small { color: var(--yazi-3); font-size: 12.5px; }
.girdi.adet { width: 72px; min-height: 48px; text-align: center; font-weight: 800; flex: 0 0 auto; }
.ek { margin-top: 10px; }
.musteri { margin: 14px 0 0; }
.musteri summary, .son-satislar summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.odeme { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.secenek { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; cursor: pointer; font-weight: 700; }
.secenek input { width: 18px; height: 18px; accent-color: var(--pembe); }
.toplam { font-size: 18px; margin: 12px 0; }
.toplam b { font-size: 24px; }
.son-satislar { margin-top: 18px; border-top: 1px solid var(--cizgi); padding-top: 6px; }
.son-satislar ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.son-satislar li { display: grid; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--cizgi); font-size: 14px; }
.iptal-form { display: flex; flex-wrap: wrap; gap: 6px; }
.iptal-form .girdi { min-height: 44px; flex: 1 1 160px; }
.satir-form { margin: 0; }

/* rezervasyon ve menü */
.k.rezerve { background: #dfe8ff; border-color: #8aa6ea; color: #24408f; cursor: not-allowed; }
.rez, .menuler { margin: 14px 0 0; }
.rez summary, .menuler summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.rez-form { display: grid; gap: 4px; margin-bottom: 10px; }
.rez-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rez-liste li { display: grid; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--cizgi); font-size: 14px; }
.dugmeler { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.girdi.madet { width: 72px; min-height: 48px; text-align: center; font-weight: 800; flex: 0 0 auto; }

/* bilet çıktısı (80 mm termal): ekranda önizleme, yazdırırken yalnız bilet */
#gise-cikti:empty { display: none; }
.bilet-cikti { width: 72mm; max-width: 100%; margin: 16px auto 0; padding: 10px; background: #fff; color: #000; border: 1px dashed #bbb;
    font: 12px/1.35 "DejaVu Sans", Arial, sans-serif; }
.bilet-cikti .tph { display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; }
.bilet-cikti .tph img { height: 26px; filter: grayscale(1); }
.bilet-cikti .tpf { display: flex; flex-direction: column; align-items: center; text-align: center; margin: 8px 0; gap: 1px; }
.bilet-cikti .tpf > b { font-size: 16px; }
.bilet-cikti .tpsal { font-weight: 800; font-size: 14px; }
.bilet-cikti .tps { display: grid; grid-template-columns: 1fr 3fr; gap: 6px; border-top: 1px dashed #000; border-bottom: 1px dashed #000; padding: 6px 0; }
.bilet-cikti .tps div { display: flex; flex-direction: column; }
.bilet-cikti .tps b { font-size: 14px; word-break: break-word; }
.bilet-cikti .tpb { padding: 6px 0; border-bottom: 1px dashed #000; }
.bilet-cikti .tpb div { display: flex; justify-content: space-between; gap: 8px; }
.bilet-cikti .tpb .tt { font-weight: 800; margin-top: 4px; }
.bilet-cikti .tpq { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 8px 0; border-bottom: 1px dashed #000; gap: 4px; }
.bilet-cikti .ql { font-weight: 800; letter-spacing: .1em; }
.bilet-cikti .karekod { width: 34mm; height: 34mm; }
.bilet-cikti .tpm { display: flex; flex-direction: column; }
.bilet-cikti .ebnot { margin: 4px 0 0; font-size: 10px; }
.bilet-cikti .tpad { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 6px 0; border-bottom: 1px dashed #000; }
.bilet-cikti .tpl p { margin: 4px 0; font-size: 10.5px; }
.bilet-cikti .tpk { display: flex; justify-content: space-between; gap: 6px; font-size: 10.5px; border-top: 1px dashed #000; padding-top: 4px; }
.bilet-cikti .tpa { text-align: center; margin: 6px 0 0; font-size: 10.5px; }
.bilet-cikti code { font-size: 12px; font-weight: 700; }
.yazdir-dugme { margin-top: 10px; }
@media print {
    @page { size: 80mm auto; margin: 0; }
    body * { visibility: hidden; }
    .bilet-cikti, .bilet-cikti * { visibility: visible; }
    .bilet-cikti { position: absolute; left: 0; top: 0; width: 76mm; margin: 0; border: 0; padding: 2mm; }
    .yazdir-dugme { display: none; }
}

/* yönetici modülü */
.yonetici { padding: 16px; }
.sekmeler { display: flex; gap: 6px; overflow-x: auto; margin: -4px -4px 16px; padding: 4px 4px 8px; border-bottom: 1px solid var(--cizgi); scrollbar-width: thin; }
.sekme { flex: 0 0 auto; min-height: 44px; padding: 0 14px; border: 0; border-radius: 10px; background: none; font: inherit; font-weight: 700; color: var(--yazi-2); cursor: pointer; }
.sekme:hover { background: #f1f1f4; }
.sekme.secili { background: var(--yazi); color: #fff; }
.yon-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 12px; }
.yon-bas h2 { margin: 0; font-size: 22px; }
.yon-bas .bag { margin-top: 0; }
.suzgec { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.cip { min-height: 40px; padding: 0 14px; border: 1.5px solid var(--cizgi-2); border-radius: 999px; background: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.cip.secili { background: var(--yazi); border-color: var(--yazi); color: #fff; }
.liste { list-style: none; margin: 0; padding: 0; }
.satir-k { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--cizgi); }
.satir-k.soluk .satir-bilgi { opacity: .6; }
.satir-bilgi { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.satir-bilgi small { color: var(--yazi-2); overflow-wrap: anywhere; }
.satir-k .dugme { flex: 0 0 auto; }
.etiket-k { display: inline-block; margin: 2px 4px 0 0; padding: 1px 8px; border-radius: 999px; background: #eee; color: var(--yazi-2); font-size: 12px; font-weight: 700; }
.etiket-k.pasif { background: var(--hata-zemin); color: var(--hata); }
.etiket-k.tam { background: var(--pembe-acik); color: var(--pembe-koyu); }
.yon-form h3 { margin: 20px 0 6px; font-size: 16px; }
.alan-izgara { display: grid; gap: 0 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.kutular { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 8px; }
.kutu { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; background: #fff; cursor: pointer; font-weight: 600; }
.kutu input { width: 20px; height: 20px; accent-color: var(--pembe); margin: 0; }
.kutu:has(input:checked) { border-color: var(--pembe); background: var(--pembe-acik); }
.kutu:has(input:disabled) { opacity: .6; cursor: not-allowed; }
.sube-kasalar { display: grid; gap: 8px; }
.sube-kasa { display: grid; gap: 8px; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.sube-kasa.soluk .kutu { opacity: .6; }
.sube-kasa .girdi { min-height: 48px; }
.yon-alt { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--cizgi); }
.etiket.buyu { flex: 1 1 240px; }
.kayit-liste li { padding: 10px 0; border-top: 1px solid var(--cizgi); }
.kayit-bas { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.kayit-bas time { margin-left: auto; color: var(--yazi-3); font-size: 13px; }
.kayit-liste small { display: block; color: var(--yazi-2); overflow-wrap: anywhere; font-size: 13px; }
@media (max-width: 640px) {
    .sube-kasa { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .sube-kasa .kutu { grid-column: 1 / -1; }
    .satir-k { align-items: flex-start; }
}
.tam-not { display: none; margin: 8px 0; padding: 10px 12px; border-radius: 12px; background: var(--pembe-acik); color: var(--pembe-koyu); font-weight: 700; }
.yon-form:has(input[name=bln_tam]:checked) .tam-not { display: block; }
.yon-form:has(input[name=bln_tam]:checked) .tam-gizle { opacity: .45; }
.sube-kasa:not(:has(input[type=checkbox]:checked)) .girdi { display: none; }
.sube-kasa:not(:has(input[type=checkbox]:checked)) { grid-template-columns: minmax(0, 1fr); }
.satir-dugmeler { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; flex: 0 0 auto; }
.sema-metin { min-height: 260px; padding: 12px 14px; font: 14px/1.5 ui-monospace, "DejaVu Sans Mono", Consolas, monospace; white-space: pre; overflow-x: auto; resize: vertical; }
.sema-yardim { margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fafafb; }
.sema-yardim summary { cursor: pointer; font-weight: 700; min-height: 32px; display: flex; align-items: center; }
.sema-yardim p { margin: 6px 0; color: var(--yazi-2); }

/* program ve tanımlar */
.hafta-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 4px 0 12px; }
.hafta-nav b { font-size: 16px; }
.izgara-kutu { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: 12px; }
.izgara { border-collapse: collapse; min-width: 980px; width: 100%; font-size: 13px; }
.izgara th, .izgara td { border-bottom: 1px solid var(--cizgi); border-right: 1px solid var(--cizgi); padding: 6px; vertical-align: top; text-align: left; }
.izgara thead th { background: #f6f6f8; font-size: 13px; position: sticky; top: 0; }
.izgara thead th small, .izgara tbody th small { display: block; color: var(--yazi-3); font-weight: 600; }
.izgara thead th.bugun { background: var(--pembe-acik); }
.izgara tbody th { width: 110px; background: #fafafb; }
.seans-cip { display: block; margin: 0 0 4px; padding: 3px 6px; border-left: 4px solid var(--renk, #999); border-radius: 6px; background: #f3f3f6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
.seans-cip.kapali { opacity: .5; text-decoration: line-through; }
.hucre-dugme { width: 100%; min-height: 36px; margin-top: 2px; border: 1.5px dashed var(--cizgi-2); border-radius: 8px; background: #fff; font: inherit; font-size: 12.5px; font-weight: 700; color: var(--yazi-2); cursor: pointer; }
.hucre-dugme:hover { border-color: var(--pembe); color: var(--pembe-koyu); }
.seans-satirlar { display: grid; gap: 8px; margin-bottom: 8px; }
.seans-satir { display: grid; gap: 8px; grid-template-columns: 96px minmax(0, 2fr) minmax(0, 1fr) 96px 140px 150px 90px; align-items: center; }
.saat-girdi { text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.seans-satir.bas { font-size: 12.5px; font-weight: 800; color: var(--yazi-2); }
.seans-satir.korunur { background: #fff7e6; border-radius: 10px; padding: 4px; }
.seans-satir .girdi { min-height: 46px; }
.kutu.kucuk { min-height: 46px; padding: 0 10px; font-size: 14px; }
.satir-film { display: flex; gap: 12px; align-items: center; min-width: 0; }
.afis-yok { background: var(--renk, #777); }
.satir-film img, .afis-yok { width: 44px; height: 64px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.afis-alan { display: flex; gap: 16px; align-items: flex-end; flex-wrap: wrap; }
.afis-alan img { width: 96px; height: 140px; object-fit: cover; border-radius: 8px; border: 1px solid var(--cizgi); }
.girdi.uzun { min-height: 96px; padding: 10px 14px; line-height: 1.5; resize: vertical; }
.tur-kartlar { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.tur-kart { padding: 14px; border: 1px solid var(--cizgi); border-radius: 14px; background: #fff; }
.tur-kart.soluk { opacity: .65; }
.tur-bas { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.tur-bas small { color: var(--yazi-2); }
.alan-izgara.dar { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); }
.gunler-kutu .kutu { flex: 1 1 90px; }
@media (max-width: 760px) {
    .seans-satir { grid-template-columns: 1fr 1fr; padding: 8px; border: 1px solid var(--cizgi); border-radius: 12px; }
    .seans-satir.bas { display: none; }
    .seans-satir select[name^="int_film"] { grid-column: 1 / -1; }
}

/* gişe: sorgu, satışlar, kasam */
.gise-ust { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.gise-sorgu { display: flex; gap: 8px; flex: 1 1 100%; margin: 0; }
.gise-sorgu .girdi { min-height: 48px; }
.gise-ust > .dugme { flex: 1 1 0; }
.ayrinti { display: grid; grid-template-columns: minmax(90px, max-content) minmax(0, 1fr); gap: 6px 14px; margin: 0 0 14px; }
.ayrinti dt { font-weight: 800; color: var(--yazi-2); font-size: 14px; }
.ayrinti dd { margin: 0; overflow-wrap: anywhere; }
.kasa-kartlar { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin-bottom: 16px; }
.kasa-kartlar > div { display: flex; flex-direction: column; gap: 2px; padding: 12px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fff; }
.kasa-kartlar b { font-size: 22px; font-variant-numeric: tabular-nums; }
.kasa-kartlar small { color: var(--yazi-2); }
.on-satis { background: var(--pembe) !important; color: #fff; }

/* muhasebe raporları */
.rapor-secim { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.rapor-secim .girdi { width: auto; min-width: 150px; min-height: 48px; }
.rapor-baslik { margin: 8px 0 12px; font-size: 18px; letter-spacing: .02em; }
.tablo-kutu { overflow-x: auto; margin: 0 0 14px; border: 1px solid var(--cizgi); border-radius: 12px; }
.rapor { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.rapor th, .rapor td { padding: 8px 10px; border-bottom: 1px solid var(--cizgi); text-align: right; white-space: nowrap; }
.rapor th:first-child, .rapor td:first-child { text-align: left; }
.rapor thead th { background: #f6f6f8; font-size: 13px; color: var(--yazi-2); }
.rapor.kucuk { font-size: 13px; }
.rapor.ozet td:first-child { white-space: normal; }
.rapor tr.tt td { font-weight: 800; background: #fafafb; }
.rapor .eksi { color: var(--hata); }

/* ---------------------------------------------------------------- müşteri sitesi (eski web/AnaSayfa.vue, SinemaSec.vue, FilmSayfasi.vue) */
.ust-bag.personel { font-weight: 700; color: var(--yazi-2); }
.web { width: 100%; max-width: 1080px; margin: 0 auto; }
.web-baslik { margin: 0 0 16px; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.w-sekmeler { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; margin-bottom: 16px; border-radius: 14px; background: #ececef; }
.w-sekme { min-height: 44px; border: 0; border-radius: 11px; background: none; font: inherit; font-size: 15px; font-weight: 800; color: var(--yazi-2); cursor: pointer; }
.w-sekme span { font-weight: 600; color: var(--yazi-3); }
.w-sekme.secili { background: #fff; color: var(--yazi); box-shadow: 0 1px 3px rgba(20, 20, 30, .12); }
.w-afisler { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
.film-kutu { min-width: 0; }
.film-dugme { display: block; width: 100%; padding: 0; border: 0; background: none; font: inherit; color: var(--yazi); text-align: left; cursor: pointer; }
.film-dugme:hover .w-afis { box-shadow: 0 0 0 2px var(--pembe), 0 6px 16px rgba(20, 20, 30, .14); }
.film-dugme small { display: block; font-size: 13px; color: var(--yazi-3); }
.film-ad { display: -webkit-box; margin-top: 6px; font-size: 15px; line-height: 1.3; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* afiş üstündeki "Bilet al" / "İncele" (hafif, silik): her cihazda hep görünür (Bulut Bey, 13 Ekim 2026 16:53) */
.film-kutu { position: relative; }
.afis-dugmeler { position: absolute; left: 0; right: 0; top: 0; aspect-ratio: 2 / 3; display: flex; align-items: flex-end; gap: 6px; padding: 8px;
    border-radius: 14px; pointer-events: none; background: linear-gradient(to top, rgba(10, 10, 16, .55) 0%, rgba(10, 10, 16, 0) 38%); transition: opacity .2s ease; }
.afis-dugme-sar { display: flex; flex: 1; min-width: 0; }
.afis-dugme { flex: 1; min-width: 0; min-height: 44px; padding: 0 6px; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 700; color: #fff;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; pointer-events: auto;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background-color .15s ease, opacity .15s ease; }
.afis-dugme.bilet { border: 0; background: rgba(252, 0, 103, .72); }
.afis-dugme.bilet:hover { background: rgba(252, 0, 103, .9); }
.afis-dugme.incele { border: 1px solid rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .14); }
.afis-dugme.incele:hover { background: rgba(255, 255, 255, .26); }
.afis-dugme:disabled { opacity: .45; cursor: not-allowed; }
.afis-dugme:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ilde-yok { margin-top: 2px; font-weight: 700; color: #8a5a00 !important; font-size: 12.5px !important; }
.w-afis { position: relative; overflow: hidden; aspect-ratio: 2 / 3; padding: 8px; border-radius: 14px; color: #fff; display: flex; flex-direction: column; justify-content: space-between;
    background: linear-gradient(165deg, var(--renk, #555) 0%, color-mix(in srgb, var(--renk, #555) 55%, #111) 100%); box-shadow: 0 6px 16px rgba(20, 20, 30, .14); }
.w-afis img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.w-afis.buyuk { width: 150px; margin: 0 auto; padding: 12px; }
.afis-ust { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.afis-yas { padding: 2px 6px; border-radius: 6px; background: rgba(0, 0, 0, .45); font-size: 11px; font-weight: 800; }
.afis-yakinda { align-self: flex-start; padding: 2px 6px; border-radius: 6px; background: #ffd84d; color: #3d2c00; font-size: 11px; font-weight: 800; }
.afis-ad { position: relative; display: -webkit-box; font-size: 15px; line-height: 1.2; font-weight: 800; text-shadow: 0 1px 2px rgba(0, 0, 0, .4); -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.w-afis.buyuk .afis-ad { font-size: 18px; }
/* ön satış rozeti: yanıp söner (hareket azaltma tercihinde sabit) */
.w-yanip { display: block; align-self: stretch; padding: 4px 6px; border-radius: 8px; background: #e3002b; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .02em;
    text-align: center; line-height: 1.2; animation: w-yanip 1.1s ease-in-out infinite; }
.w-yanip span { display: block; }
.w-yanip span:first-child { font-size: 12px; }
.w-yanip.satir { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12.5px; }
@keyframes w-yanip { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(227, 0, 43, .55); } 50% { opacity: .55; box-shadow: 0 0 0 6px rgba(227, 0, 43, 0); } }
@media (prefers-reduced-motion: reduce) { .w-yanip { animation: none; } }
.bos-kart { text-align: center; color: var(--yazi-2); }
.ortala { margin: 20px 0 0; text-align: center; }
/* pencere (alttan açılır; geniş ekranda ortada) */
body.pencere-acik { overflow: hidden; }
.pencere { position: fixed; inset: 0; z-index: 70; display: flex; align-items: flex-end; justify-content: center; background: rgba(0, 0, 0, .45); }
.pencere-kutu { width: 100%; max-height: 88vh; display: flex; flex-direction: column; background: #fff; border-radius: 22px 22px 0 0; box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
    outline: none; padding-bottom: env(safe-area-inset-bottom); }
.pencere-bas { display: flex; align-items: center; gap: 12px; padding: 16px 20px 12px; border-bottom: 1px solid var(--cizgi); }
.pencere-bas h2 { flex: 1; margin: 0; font-size: 20px; font-weight: 800; }
.kapat { width: 44px; height: 44px; margin-right: -8px; border: 0; border-radius: 999px; background: none; font-size: 28px; line-height: 1; color: var(--yazi-2); cursor: pointer; }
.kapat:hover { background: #f2f2f4; }
.pencere-ic { overflow-y: auto; }
.pencere-uyari { margin: 0; padding: 12px 20px; background: #fff6dc; border-bottom: 1px solid #efd58a; font-size: 14.5px; font-weight: 600; color: #5c4300; }
.pencere-bos { margin: 0; padding: 32px 20px; text-align: center; color: var(--yazi-2); }
.sube-satir { width: 100%; min-height: 58px; padding: 0 20px; display: flex; align-items: center; gap: 12px; border: 0; border-top: 1px solid var(--cizgi); background: #fff;
    font: inherit; text-align: left; color: var(--yazi); cursor: pointer; }
.pencere-ic .sube-satir:first-child, .pencere-uyari + .sube-satir { border-top: 0; }
.sube-satir:hover { background: #fafafb; }
.sube-satir b { flex: 1; min-width: 0; font-size: 16.5px; }
.isaret { font-size: 22px; color: var(--yazi-3); }
.isaret.secili { color: var(--pembe); font-weight: 800; }
/* film sayfası */
.geri { margin: 0 0 8px; }
.film-bas { display: grid; gap: 20px; align-items: start; }
.film-bilgi { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.film-bilgi .web-baslik { margin: 0; font-size: 26px; line-height: 1.15; }
.rozetler { display: flex; flex-wrap: wrap; gap: 8px; }
.w-rozet { padding: 4px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 800; }
.w-rozet.mavi { background: #eef0ff; color: #2b3a9c; }
.w-rozet.sari { background: #fff1c2; color: #5c4300; }
.film-alt { margin: -6px 0 0; font-size: 15px; color: var(--yazi-2); }
.film-uyari { margin: 0; padding: 8px 12px; border-radius: 12px; background: #fdecef; color: #8a0022; font-size: 14px; font-weight: 600; }
.film-ozet { margin: 0; font-size: 15.5px; line-height: 1.6; }
/* film künyesi (yönetmen, oyuncular, yazar, vizyon, süre, tür): telefonda etiket üstte, geniş ekranda yan yana */
.film-kunye { display: flex; flex-direction: column; gap: 8px; margin: 0; font-size: 15px; line-height: 1.45; }
.film-kunye div { display: grid; grid-template-columns: 1fr; gap: 0; }
.film-kunye dt { font-size: 13px; font-weight: 700; color: var(--yazi-3); }
.film-kunye dd { margin: 0; color: var(--yazi); overflow-wrap: anywhere; }
@media (min-width: 640px) {
    .film-kunye div { grid-template-columns: 110px 1fr; gap: 12px; }
    .film-kunye dt { font-size: 15px; }
}
.film-bilgi .dugme.ikinci { align-self: flex-start; }
/* fragman (plan 40.2): 16:9, kapakta afiş; basınca oynatıcı aynı yere gelir */
.fragman { position: relative; width: 100%; max-width: 640px; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #111; }
.fragman iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fragman-kapak { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; text-decoration: none;
    background: radial-gradient(circle at 50% 50%, #3a3a40 0%, #111 75%); }
.fragman-kapak img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: .55; }
.fragman-oynat { position: relative; width: 68px; height: 68px; border-radius: 50%; background: var(--pembe); box-shadow: 0 4px 18px rgba(0, 0, 0, .45); }
.fragman-oynat::after { content: ""; position: absolute; left: 27px; top: 21px; border-style: solid; border-width: 13px 0 13px 21px; border-color: transparent transparent transparent #fff; }
.fragman-yazi { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 14px; background: linear-gradient(transparent, rgba(0, 0, 0, .7)); font-size: 15px; font-weight: 700; }
.fragman-kapak:hover .fragman-oynat, .fragman-kapak:focus-visible .fragman-oynat { background: var(--pembe-koyu); }
.fragman-kapak:focus-visible { outline: 3px solid var(--pembe); outline-offset: -3px; }
.film-seans { margin-top: 28px; }
.film-seans h2 { margin: 0 0 8px; font-size: 20px; font-weight: 800; }
.film-seans > .pencere-uyari { margin-bottom: 12px; border: 1px solid #efd58a; border-radius: 12px; }
.secili-sube { display: flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 12px; }
.secili-sube b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15.5px; }
.w-gunler { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 12px; scrollbar-width: none; }
.w-gun { flex: 0 0 auto; min-width: 76px; min-height: 56px; padding: 0 12px; border: 1px solid var(--cizgi); border-radius: 14px; background: #fff; font: inherit; color: var(--yazi);
    text-align: center; line-height: 1.2; cursor: pointer; }
.w-gun.secili { background: var(--yazi); border-color: var(--yazi); color: #fff; }
.gun-ad { display: block; font-size: 15px; font-weight: 800; }
.gun-no { display: block; font-size: 12.5px; color: var(--yazi-3); }
.w-gun.secili .gun-no { color: rgba(255, 255, 255, .8); }
.w-saatler { display: flex; flex-wrap: wrap; gap: 8px; }
.w-saat { min-width: 86px; min-height: 52px; padding: 6px 12px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; background: #fff; font: inherit; color: var(--yazi);
    display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.2; cursor: pointer; }
.w-saat:hover { border-color: var(--pembe); }
.w-saat.kapali { opacity: .45; cursor: not-allowed; }
.w-saat-no { font-size: 18px; font-weight: 800; }
.saat-ek { font-size: 11.5px; font-weight: 600; color: var(--yazi-3); }
@media (min-width: 560px) { .w-afisler { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 640px) {
    .pencere { align-items: center; }
    .pencere-kutu { width: 440px; border-radius: 22px; }
    .film-bas { grid-template-columns: 220px 1fr; gap: 32px; }
    .w-afis.buyuk { width: 220px; margin: 0; }
    .w-afis.buyuk .afis-ad { font-size: 22px; }
    .film-bilgi .web-baslik { font-size: 34px; }
    .web-baslik { font-size: 28px; }
}
@media (min-width: 768px) { .w-afisler { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .w-afisler { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* SGM bağlantısı kutusu (SGM ve e-bilet ekranı) */
.sgm-kutu { margin: 12px 0 16px; padding: 14px 16px; border: 1px solid var(--cizgi); border-radius: 14px; background: #fff; }
.sgm-kutu > .dugme { margin-top: 8px; }
.sgm-kutu h3 { margin: 16px 0 6px; font-size: 16px; }
.sgm-kutu > small { display: block; margin-top: 4px; font-size: 14px; color: var(--yazi-2); }
/* veri tablosu (Program → Filmler, SGM'den film ekle): şerit, tablo, kart görünümü, sayfalar. Telefonda kart (375 px), dokunma 44 px */
.vt-serit { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.vt-serit .vt-ara { flex: 1 1 220px; min-width: 0; }
.vt-serit select.girdi { flex: 1 1 130px; width: auto; min-width: 0; max-width: 220px; min-height: 44px; }
.vt-yon { min-width: 44px; min-height: 44px; padding: 0 12px; }
.vt-gorunum { display: inline-flex; gap: 4px; margin-left: auto; }
.vt-gorunum .dugme { min-height: 44px; padding: 0 14px; }
.vt-gorunum .dugme[aria-pressed="true"] { background: var(--yazi); border-color: var(--yazi); color: #fff; }
.vt-kutu { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: 12px; background: #fff; }
.vt-tablo { width: 100%; border-collapse: collapse; font-size: 14px; }
.vt-tablo th, .vt-tablo td { padding: 8px 10px; text-align: left; vertical-align: middle; border-top: 1px solid var(--cizgi); }
.vt-tablo thead th { border-top: 0; background: var(--zemin); white-space: nowrap; font-size: 13px; color: var(--yazi-2); }
.vt-tablo tr[hidden] { display: none; }
.vt-tablo tr.soluk td:not(.vt-islem) { opacity: .6; }
.vt-th { min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: inherit; cursor: pointer; }
th[aria-sort="ascending"] .vt-th::after { content: " ↑"; }
th[aria-sort="descending"] .vt-th::after { content: " ↓"; }
.vt-afis img, .vt-afis .afis-yok { display: block; width: 44px; height: 66px; object-fit: cover; border-radius: 6px; }
.vt-afis .afis-yok { background: var(--renk, var(--cizgi)); }
.vt-ad b { display: block; }
.vt-ad small { display: block; font-size: 13px; color: var(--yazi-2); }
.vt-ozet { display: -webkit-box; margin-top: 4px; max-width: 60ch; font-size: 13px; line-height: 1.4; color: var(--yazi-3); -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vt.kart .vt-ozet { -webkit-line-clamp: 3; }
.vt-islem { text-align: right; white-space: nowrap; }
.vt-islem .dugme { min-height: 44px; }
.vt-bos { margin: 12px 0; color: var(--yazi-2); }
.vt-sayfalar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; font-size: 14px; }
.vt-sayfalar .dugme { min-height: 44px; min-width: 44px; white-space: nowrap; }
.vt-git-yazi { margin: 0 4px; }
@media (max-width: 479px) { .vt-git-yazi { display: none; } }
.vt-orta { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 10px; text-align: center; }
.vt-orta select.girdi { width: auto; min-height: 44px; }
#vt-bildirim-sgm:empty, #vt-bildirim-film:empty { display: none; }
.vt-cikti { color: var(--yazi-2); font-style: italic; }
.vt-tablo td.vt-dar { white-space: nowrap; }
.vt-not { display: block; margin-top: 4px; font-size: 13px; color: var(--hata); }
/* kart görünümü: aynı satırlar afişli kart ızgarası olur (telefonda 2, tablette 4, geniş ekranda 6 sütun) */
.vt.kart .vt-kutu { overflow: visible; border: 0; background: none; }
.vt.kart .vt-tablo, .vt.kart .vt-tablo tbody { display: block; }
.vt.kart .vt-tablo thead { display: none; }
.vt.kart .vt-tablo tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vt.kart .vt-tablo tr { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 8px; border: 1px solid var(--cizgi); border-radius: 12px; background: #fff; }
.vt.kart .vt-tablo tr[hidden] { display: none; }
.vt.kart .vt-tablo td { display: block; padding: 0; border: 0; font-size: 13px; }
.vt.kart .vt-tablo td:not(.vt-afis):not(.vt-ad):not(.vt-islem)::before { content: attr(data-baslik) ": "; color: var(--yazi-2); }
.vt.kart .vt-tablo td[data-durum]:not(.vt-afis):not(.vt-ad):not(.vt-islem)::before { content: none; }
.vt.kart .vt-tablo td[data-durum]:empty { display: none; }
.vt.kart .vt-afis img, .vt.kart .vt-afis .afis-yok { width: 100%; height: auto; aspect-ratio: 2 / 3; }
.vt.kart .vt-ad b { font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.vt.kart .vt-islem { margin-top: auto; text-align: left; }
.vt.kart .vt-islem .dugme { width: 100%; }
.vt.kart .ikon-dugmeler { display: flex; }
.vt.kart .ikon-dugme { flex: 1 1 0; width: auto; }
.vt.kart .vt-islem > .ikon-dugme { width: 100%; }
/* simgeli Ekle (+) / Çıkar (−): açık olan dolu, kapalı olan saydam */
.ikon-dugmeler { display: inline-flex; gap: 6px; }
.ikon-dugme { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 2px solid var(--pembe); border-radius: 10px; background: var(--pembe); color: #fff; cursor: pointer; }
.ikon-dugme.cikar { border-color: var(--yazi); background: var(--yazi); }
.ikon-dugme.ayar { border-color: var(--cizgi-2); background: #fff; color: var(--yazi); }
.ikon-dugme.ayar:not(:disabled):hover { filter: none; border-color: var(--yazi); }
.ikon-dugme svg { width: 22px; height: 22px; }
.ikon-dugme:disabled { background: transparent; color: var(--pembe); opacity: .35; cursor: default; }
.ikon-dugme.cikar:disabled { color: var(--yazi); }
.ikon-dugme:not(:disabled):hover { filter: brightness(.92); }
.ikon-dugme:focus-visible { outline: 3px solid var(--pembe-acik); outline-offset: 2px; }
@media (min-width: 640px) { .vt.kart .vt-tablo tbody { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vt.kart .vt-tablo tbody { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* seans hücresi film kutusu: öneri listesi */
.film-ara { position: relative; min-width: 0; }
.film-ara > .girdi { width: 100%; padding-right: 46px; }
.film-ok { position: absolute; top: 50%; right: 4px; transform: translateY(-50%); width: 40px; height: 40px; border: 0; border-radius: 10px; background: transparent; color: var(--yazi-2); font-size: 18px; line-height: 1; cursor: pointer; }
.film-ok:hover { background: var(--pembe-acik); color: var(--pembe-koyu); }
@media (max-width: 640px) { .film-ok { width: 44px; height: 44px; } }
.film-oneri { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 320px; overflow-y: auto; background: #fff; border: 1px solid var(--cizgi-2);
    border-radius: 12px; box-shadow: 0 12px 30px rgba(20, 20, 30, .18); }
.oneri-satir { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 6px 12px; border: 0; border-top: 1px solid var(--cizgi); background: #fff; font: inherit; text-align: left; color: var(--yazi); cursor: pointer; }
.oneri-satir:first-child { border-top: 0; }
.oneri-satir:hover, .oneri-satir:focus { background: var(--pembe-acik); outline: none; }
.oneri-satir b { display: block; font-size: 14.5px; }
.oneri-satir small { display: block; font-size: 12px; color: var(--yazi-3); }
.oneri-satir.sgm small { color: #2b3a9c; }
.oneri-bos { margin: 0; padding: 10px 12px; font-size: 13.5px; color: var(--yazi-2); }
/* plan 54: küçük afişli film listesi */
.film-oneri { max-height: 380px; }
.oneri-baslik { margin: 0; padding: 8px 12px 4px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--yazi-3); background: #fafafb; position: sticky; top: 0; z-index: 1; }
.oneri-afis { flex: 0 0 auto; width: 34px; height: 50px; border-radius: 6px; object-fit: cover; background: #e9e9ee; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); }
.oneri-afis.bos { display: grid; place-items: center; background: #8a8a94; color: #fff; font-weight: 800; font-size: 16px; }
.oneri-yazi { min-width: 0; }
.oneri-yazi b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 3B salon (sys/js/salon.js; eski sistemin 3B salon ölçü ve renkleri). Düz şema yedek olarak yerinde kalır, gizlenir. */
.s3-gizli { display: none !important; }
.h3scroll { overflow-x: auto; border-radius: 18px; margin: 0 0 8px; }
.h3stage { position: relative; background: #000; border-radius: 18px; overflow: hidden; }
.h3stage canvas { display: block; width: 100%; height: 100%; }
.h3hits { position: absolute; inset: 0; }
.h3hit { position: absolute; background: transparent; border: 0; padding: 0; display: grid; place-items: center; border-radius: 7px; font: inherit; font-weight: 800; color: #fff; }
button.h3hit { cursor: pointer; }
.h3hit span { text-shadow: 0 1px 3px rgba(0, 0, 0, .95); }
button.h3hit.satildi, button.h3hit.tutulu, button.h3hit.rezerve { cursor: not-allowed; }
.h3hit.satildi span, .h3hit.tutulu span, .h3hit.rezerve span { display: none; }
button.h3hit.bos:hover { outline: 2px solid rgba(255, 255, 255, .85); }
.h3hit.benim { outline: 2.5px solid #fff; box-shadow: 0 0 14px 2px rgba(252, 0, 103, .9); }
.h3hit:focus-visible { outline: 2px solid #fff; }
.h3scr { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); color: rgba(255, 255, 255, .75); font-weight: 800; font-size: 11.5px; letter-spacing: .3em;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent); padding: 4px 40px; pointer-events: none; white-space: nowrap; }
.s3 .lejant i.k { border-color: transparent; background: #8e0c18; }
.s3 .lejant i.k.benim { background: #ff1f7a; }
.s3 .lejant i.k.tutulu { background: #d89a2a; }
.s3 .lejant i.k.rezerve { background: #6a52cf; }
.s3 .lejant i.k.satildi { background: #2a2729; }

/* müşteri sitesi reklamları (Bulut Bey, 12 Ekim 2026): başlıkta, sol ve sağ yanlarda */
.rk { position: relative; display: block; line-height: 0; }
.rk small { position: absolute; top: 2px; right: 4px; z-index: 1; padding: 0 5px; border-radius: 4px; background: rgba(255, 255, 255, .85); color: var(--yazi-3); font-size: 10px; line-height: 15px; font-weight: 700; }
.rk a { display: block; }
.rk img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ust-ic:has(.rk-ust) .logo { margin-right: 0; }
.rk-ust { flex: 0 1 auto; min-width: 0; height: 56px; margin: 0 auto; padding: 0 12px; }
.rk-ust a { height: 56px; }
.rk-ust img { height: 56px; width: auto; max-width: 100%; }
.rk-yan { position: fixed; top: 88px; z-index: 5; display: none; flex-direction: column; gap: 16px; width: clamp(160px, calc((100vw - 1080px) / 2 - 48px), 300px); }
.rk-yan.rk-sol { left: 24px; }
.rk-yan.rk-sag { right: 24px; }
.rk-yan .rk { border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--cizgi); }
.rk-sol_kare, .rk-sag_kare { aspect-ratio: 300 / 250; }
.rk-sol_uzun, .rk-sag_uzun { aspect-ratio: 300 / 600; max-height: calc(100vh - 88px - 24px - (clamp(160px, calc((100vw - 1080px) / 2 - 48px), 300px) * 250 / 300) - 16px); }
@media (min-width: 1440px) { .rk-yan { display: flex; } }
@media (max-width: 760px) { .rk-ust { display: none; } }

/* Web Yönetim: reklam alanları */
.wy-sema { display: grid; grid-template-columns: 1fr 2.4fr 1fr; grid-template-areas: "ust ust ust" "sol orta sag"; gap: 8px; max-width: 560px; margin: 8px 0 20px; }
.wy-sema > .wy-ust { grid-area: ust; }
.wy-sema > .wy-yan:nth-of-type(2) { grid-area: sol; }
.wy-sema > .wy-orta { grid-area: orta; display: grid; place-items: center; border: 1.5px dashed var(--cizgi-2); border-radius: 10px; color: var(--yazi-3); font-size: 13px; font-weight: 700; min-height: 150px; }
.wy-sema > .wy-yan:last-child { grid-area: sag; }
.wy-yan { display: grid; grid-template-rows: auto 1fr; gap: 8px; }
.wy-yer { display: grid; gap: 2px; padding: 8px 10px; border: 1.5px solid var(--cizgi-2); border-radius: 10px; background: #fff; font-size: 12.5px; }
.wy-yer small { color: var(--yazi-3); font-weight: 700; }
.wy-yer.dolu { border-color: var(--pembe); background: var(--pembe-acik); }
.wy-yer.wy-sol_uzun, .wy-yer.wy-sag_uzun { min-height: 90px; }
.wy-h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 22px 0 4px; font-size: 17px; }
.wy-h3 small { color: var(--yazi-3); font-size: 13px; font-weight: 600; }
.wy-h3 .dugme { margin-left: auto; min-height: 40px; font-size: 14px; }
.wy-bos { margin: 4px 0 8px; }
.wy-kucuk { flex: none; height: 48px; width: auto; max-width: 180px; object-fit: contain; border: 1px solid var(--cizgi); border-radius: 8px; background: #fff; }
.wy-onizleme { display: block; max-width: 100%; max-height: 220px; margin: 0 0 12px; border: 1px solid var(--cizgi); border-radius: 10px; }
.wy-dugmeler { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.wy-sil, .wy-sil-evet { color: var(--hata); }
.wy-sil-evet { background: var(--hata); color: #fff; }
#web-yonetim .satir-k .satir-bilgi { flex: 1; }
/* web koltuk seçimi (plan 17.11; Bulut Bey, 12 Ekim 2026) */
.ws-adimlar { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 12px; padding: 0; list-style: none; font-size: 14px; font-weight: 700; color: var(--yazi-3); }
.ws-adimlar li.simdi { padding: 2px 10px; border-radius: 999px; background: var(--yazi); color: #fff; }
.ws-baslik { margin: 0; }
.ws-alt { margin: 2px 0 16px; color: var(--yazi-2); font-size: 15px; }
.ws-mesaj { margin: 0 0 14px; border-radius: 12px; }
.ws-izgara { display: grid; gap: 20px; align-items: start; }
.ws-sol { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.ws-sure { margin: 0; align-self: flex-start; padding: 8px 14px; border-radius: 10px; background: #fff1c2; color: #5c4300; font-weight: 800; }
.ws-kisi { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ws-kisi b { margin-right: 4px; font-size: 15px; }
.ws-kisi button { min-width: 44px; height: 44px; border: 1.5px solid var(--cizgi-2); border-radius: 10px; background: #fff; font: inherit; font-weight: 800; color: var(--yazi); cursor: pointer; }
.ws-kisi button:hover { border-color: var(--pembe); }
.ws-kisi button[aria-pressed="true"] { background: var(--yazi); border-color: var(--yazi); color: #fff; }
.ws-kisi small { flex-basis: 100%; color: var(--yazi-3); font-size: 13px; }
.ws-salon { min-width: 0; }
.ws-lejant { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--yazi-2); }
.ws-lejant li { display: inline-flex; align-items: center; gap: 7px; }
.ws-lejant i { width: 16px; height: 16px; border-radius: 5px; }
.ws-lejant .r-bos { background: #c81e3a; }
.ws-lejant .r-sec { background: var(--pembe); box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--pembe); }
.ws-lejant .r-dolu { background: #3a3a40; }
.ws-lejant .r-eng { background: #2f5fc8; }
.ws-sepet { display: flex; flex-direction: column; gap: 10px; padding: 20px; }
.ws-sepet h2 { margin: 6px 0 0; font-size: 13px; font-weight: 800; color: var(--yazi-3); text-transform: uppercase; letter-spacing: .04em; }
.ws-cipler { display: flex; flex-wrap: wrap; gap: 6px; min-height: 30px; }
.ws-cip { padding: 5px 10px; border: 0; border-radius: 8px; background: var(--pembe-acik); color: var(--pembe-koyu); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
span.ws-cip { cursor: default; }
.ws-yok { color: var(--yazi-3); font-size: 14px; }
.ws-tur { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px dashed var(--cizgi); }
.ws-tur.kapali { color: var(--yazi-3); }
.ws-tur-ad { min-width: 0; display: flex; flex-direction: column; }
.ws-tur-ad small { color: var(--yazi-3); font-size: 12.5px; }
.ws-tur-not { font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.ws-adet { display: flex; align-items: center; gap: 6px; }
.ws-adet button { width: 40px; height: 40px; border: 1.5px solid var(--cizgi-2); border-radius: 10px; background: #fff; font: inherit; font-size: 20px; color: var(--yazi); cursor: pointer; }
.ws-adet button:disabled { opacity: .4; cursor: default; }
.ws-adet b, .ws-adet-n { min-width: 24px; text-align: center; font-size: 17px; font-weight: 800; }
.ws-toplam { margin: 6px 0 0; padding-top: 10px; border-top: 1px solid var(--cizgi); display: flex; flex-direction: column; gap: 4px; font-size: 14.5px; }
.ws-toplam div { display: flex; justify-content: space-between; gap: 12px; color: var(--yazi-2); }
.ws-toplam dt, .ws-toplam dd { margin: 0; }
.ws-toplam .ws-genel { margin-top: 4px; color: var(--yazi); font-weight: 800; align-items: baseline; }
.ws-toplam .ws-genel dd { font-size: 26px; }
.ws-sepet .dugme:disabled { opacity: .5; cursor: default; }
.ws-kucuk { margin: 0; font-size: 12.5px; color: var(--yazi-3); }
.ws-bilgi { display: flex; flex-direction: column; gap: 12px; }
.ws-bilgi h2 { margin: 0; font-size: 22px; }
.ws-bilgi .aciklama { margin: 0; }
.ws-bilgi .etiket { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 14px; }
.ws-iki { display: grid; gap: 12px; }
.ws-onay { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--yazi-2); }
.ws-onay input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--pembe); flex: 0 0 auto; }
.ws-dugmeler { display: flex; flex-wrap: wrap; gap: 10px; }
.ws-dugmeler .dugme { width: auto; padding: 0 22px; }
.ws-doldu { margin-top: 16px; text-align: center; }
@media (min-width: 640px) { .ws-iki { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .ws-izgara { grid-template-columns: minmax(0, 1fr) 340px; } .ws-sepet { position: sticky; top: 12px; } }
.ws-menu-ac { align-self: flex-start; }
.ws-menu .pencere-kutu { max-width: 760px; }
.ws-mq-alt { margin: 0; padding: 12px 20px 0; color: var(--yazi-2); font-weight: 700; }
.ws-mq-liste { display: grid; gap: 12px; padding: 12px 20px; }
.ws-mq { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 6px 14px; align-items: center; padding: 10px; border: 1.5px solid var(--cizgi-2); border-radius: 16px; background: #fff; }
.ws-mq.secili { border-color: var(--pembe); box-shadow: 0 0 0 3px var(--pembe-acik); }
.ws-mq-resim { position: relative; grid-row: span 2; width: 96px; height: 96px; border-radius: 12px; overflow: hidden; background: #f1eef3; display: grid; place-items: center; font-size: 40px; }
.ws-mq-resim img { width: 100%; height: 100%; object-fit: cover; }
.ws-mq-rib { position: absolute; left: 0; right: 0; top: 0; padding: 2px 4px; background: var(--pembe); color: #fff; font-size: 10.5px; font-weight: 800; text-align: center; }
.ws-mq-ucuz { position: absolute; left: 0; right: 0; bottom: 0; padding: 2px 4px; background: #0d7a45; color: #fff; font-size: 10.5px; font-weight: 800; text-align: center; }
.ws-mq-bilgi { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ws-mq-bilgi small { color: var(--yazi-3); font-size: 13px; }
.ws-mq-fiyat s { color: var(--yazi-3); font-size: 13px; }
.ws-mq-fiyat em { font-style: normal; font-size: 18px; font-weight: 800; }
.ws-mq .ws-adet { justify-self: start; }
.ws-mq-not { padding: 0 20px 12px; }
.ws-mq-cubuk { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; padding: 12px 20px 16px; border-top: 1px solid var(--cizgi); }
.ws-mq-cubuk .dugme { width: auto; }
.ws-mq-cubuk .dugme:disabled { opacity: .5; cursor: default; }
@media (min-width: 640px) { .ws-mq-liste { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); } .ws-mq { grid-template-columns: 1fr; text-align: left; } .ws-mq-resim { grid-row: auto; width: 100%; height: 120px; } }

/* kullanıcı yetkileri (bilet_plan.md 32): bölüm kartları, büyük dokunma alanlı kutucuklar */
.yt-h3 { margin: 22px 0 8px; font-size: 17px; }
.yt-not { display: block; margin-top: 4px; color: var(--yazi-3); font-size: 12.5px; font-weight: 500; }
.yt-sifre { display: flex; align-items: center; gap: 8px; }
.yt-sifre .girdi { flex: 1; min-width: 0; }
.yt-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 12px; }
.yt-sablonlar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yt-sablonlar > span { font-size: 13px; font-weight: 700; color: var(--yazi-2); }
.yt-tumu { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yt-tumu .dugme { min-height: 40px; padding: 0 14px; font-size: 14px; width: auto; }
.yt-sayac { font-size: 14px; color: var(--yazi-2); }
.yt-bolumler { display: grid; gap: 12px; }
.yt-bolum { margin: 0; padding: 0; border: 1.5px solid var(--cizgi); border-radius: 16px; background: #fff; overflow: hidden; }
.yt-bolum.dolu { border-color: var(--cizgi-2); }
.yt-bolum legend { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 10px 14px; background: #f7f7f9; border-bottom: 1px solid var(--cizgi); float: left; box-sizing: border-box; }
.yt-bolum legend + * { clear: both; }
.yt-bolum-bas { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 16px; }
.yt-bolum-bas input, .yt-madde input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--pembe); }
.yt-bolum legend small { color: var(--yazi-3); font-weight: 700; font-size: 13px; }
.yt-maddeler { display: grid; gap: 0; }
.yt-madde { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--cizgi); cursor: pointer; }
.yt-madde:first-child { border-top: 0; }
.yt-madde:hover { background: #fafafb; }
.yt-madde input { margin-top: 2px; }
.yt-madde span { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.yt-madde b { font-size: 14.5px; }
.yt-madde small { color: var(--yazi-3); font-size: 12.5px; line-height: 1.35; }
.yt-madde.kapali { cursor: not-allowed; opacity: .55; }
.yt-madde:has(input:checked) b { color: var(--pembe-koyu); }
.yt-kaydet { position: sticky; bottom: 0; padding: 10px 0; background: linear-gradient(transparent, var(--kart) 30%); }
.etiket-k.uyari { background: #fff1c2; color: #5c4300; }
@media (min-width: 760px) { .yt-maddeler { grid-template-columns: 1fr 1fr; } .yt-madde:nth-child(2) { border-top: 0; } .yt-madde:nth-child(odd) { border-right: 1px solid var(--cizgi); } }
@media (min-width: 1200px) { .yt-bolumler { grid-template-columns: 1fr 1fr; } .yt-maddeler { grid-template-columns: 1fr; } .yt-madde:nth-child(2) { border-top: 1px solid var(--cizgi); } .yt-madde:nth-child(odd) { border-right: 0; } }
/* şube fiyatları (bilet_plan.md 33; eski sistem: her şubenin hafta içi / hafta sonu fiyatı) */
.sube-fiyat { margin: 10px 0; border: 1px solid var(--cizgi); border-radius: 12px; background: #fafafb; }
.sube-fiyat summary { padding: 10px 12px; font-weight: 700; cursor: pointer; }
.sube-fiyat .aciklama { margin: 0 12px 8px; font-size: 13px; }
.sube-fiyat-tablo { width: 100%; border-collapse: collapse; font-size: 14px; }
.sube-fiyat-tablo th, .sube-fiyat-tablo td { padding: 4px 8px; text-align: left; border-top: 1px solid var(--cizgi); }
.sube-fiyat-tablo th[scope=row] { font-weight: 600; }
.sube-fiyat-tablo tr.soluk { opacity: .6; }
.sube-fiyat-tablo .girdi { min-height: 38px; padding: 0 8px; font-size: 15px; width: 100%; max-width: 120px; }

/* programı Excel'den yükleme (bilet_plan.md 34) */
.xl-adim { margin: 0 0 16px; padding-left: 22px; color: var(--yazi-2); }
.xl-adim li { margin: 4px 0; }
.xl-form { max-width: 560px; }
.xl-form input[type=file].girdi { padding: 12px 14px; }
.xl-bolum { margin: 22px 0 0; padding: 16px; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 14px; }
.xl-bolum h3 { margin: 0 0 10px; font-size: 17px; }
.xl-bolum p { margin: 6px 0; }
.xl-liste { margin: 6px 0; padding-left: 20px; }
.xl-liste li { margin: 3px 0; }
.xl-sayilar { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }
.xl-sayi { display: flex; flex-direction: column; min-width: 120px; padding: 10px 14px; border-radius: 12px; background: var(--kart); border: 1px solid var(--cizgi); color: var(--yazi-2); font-size: 13.5px; }
.xl-sayi b { font-size: 26px; color: var(--yazi); }
.xl-sayi.iyi { border-color: #8bc79a; background: #eef8f0; }
.xl-sayi.kotu { border-color: var(--hata); background: var(--hata-zemin); }
.xl-sayi.kotu b { color: var(--hata); }
.xl-secim { display: flex; align-items: flex-start; gap: 10px; margin: 12px 0 6px; padding: 12px 14px; border: 1.5px solid var(--pembe); border-radius: 12px; background: var(--pembe-acik); font-weight: 700; cursor: pointer; }
.xl-secim input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; }
.xl-tablo td, .xl-tablo th { text-align: left; }
.xl-tablo tr.xl-yeni td { background: var(--uyari-zemin); }
.xl-uyari { background: var(--uyari-zemin); color: var(--uyari); }
p.xl-uyari { padding: 8px 12px; border-radius: 10px; }
.xl-kotu { color: var(--hata); font-weight: 700; font-size: 13px; }
.xl-sube { margin: 8px 0; border: 1px solid var(--cizgi); border-radius: 12px; background: #fff; }
.xl-sube > summary { padding: 12px 14px; cursor: pointer; }
.xl-sube[open] > summary { border-bottom: 1px solid var(--cizgi); }
.xl-sube .izgara-kutu { margin: 0; }
.xl-ayrinti summary { cursor: pointer; font-weight: 700; margin: 8px 0; }
/* plan 43: bırakma alanı, özet kartı, toplu kaldır */
.xl-birak { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 132px; margin: 8px 0 6px; padding: 18px 16px;
    border: 2px dashed var(--cizgi-2); border-radius: 16px; background: #fff; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.xl-birak:hover, .xl-birak:focus-within, .xl-birak.uzerinde { border-color: var(--pembe); background: var(--pembe-acik); }
.xl-birak b { font-size: 16.5px; color: var(--yazi); }
.xl-birak span { font-size: 14px; color: var(--yazi-2); }
.xl-birak small { font-size: 13.5px; font-weight: 700; color: var(--pembe-koyu); overflow-wrap: anywhere; }
.xl-birak small:empty { display: none; }
.xl-dosya { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 16px; }
.xl-birak-ikon { width: 36px; height: 36px; border-radius: 10px; background: #1d6f42; position: relative; margin-bottom: 4px; }
.xl-birak-ikon::after { content: "X"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 18px; }
.xl-birak-ipucu { margin: 0 0 4px; font-size: 13.5px; color: var(--yazi-2); }
.xl-hafta { margin: 0 0 12px; }
.xl-hafta > summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-size: 14px; font-weight: 700; color: var(--pembe-koyu); }
.xl-hafta .etiket { max-width: 320px; }
.xl-ozet { margin: 12px 0; padding: 16px; border: 1px solid var(--cizgi); border-radius: 16px; background: #fff; }
.xl-ozet-bas { display: flex; flex-direction: column; gap: 2px; }
.xl-ozet-bas b { font-size: 17px; }
.xl-ozet .xl-sayilar { margin-top: 12px; }
.xl-sayi.dikkat { border-color: #e7b65c; background: #fff7e6; }
.xl-sayi.uyari { border-color: var(--cizgi-2); background: var(--zemin); }
.xl-kural { margin: 12px 0 0; font-size: 14px; color: var(--yazi-2); }
.xl-uyari-satir { margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; background: var(--uyari-zemin); color: var(--uyari); font-size: 14px; }
.dugme.buyuk { min-height: 52px; padding: 0 28px; font-size: 17px; }
details.xl-bolum > summary { cursor: pointer; font-weight: 800; font-size: 16px; min-height: 28px; }
details.xl-bolum[open] > summary { margin-bottom: 8px; }
.xl-alt-baslik { margin: 12px 0 4px; font-size: 14.5px; }
.xl-kaldir { margin: 20px 0 0; padding: 4px 16px 8px; border: 1px solid var(--cizgi); border-radius: 14px; background: #fff; }
.xl-kaldir > summary { display: flex; align-items: center; min-height: 48px; cursor: pointer; font-weight: 800; font-size: 16px; }
.xl-kaldir-form { max-width: 520px; }
.tk-ozet p { margin: 4px 0; }
.dugme.tehlike { background: var(--hata); border-color: var(--hata); color: #fff; }
@media (max-width: 480px) {
    .xl-sayi { min-width: calc(50% - 5px); }
    .dugme.buyuk { width: 100%; }
}
/* plan 47: sistemde olmayan filmler */
.xl-yeni-film { margin: 14px 0 0; padding: 14px; border: 1.5px solid #e7b65c; border-radius: 14px; background: #fff7e6; }
.xl-yeni-film h4 { margin: 0 0 4px; font-size: 16px; }
.xl-yf-liste { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.xl-yf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 8px 10px; border-radius: 10px; background: #fff; }
.xl-yf > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.xl-yf small { color: var(--yazi-3); font-size: 12.5px; }
.xl-yf-sure { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.xl-yf-sure .girdi { width: 96px; min-height: 44px; font-size: 16px; }
/* plan 46: uygulanacak program ızgarası */
.xl-program { margin: 12px 0; }
.xl-program h3 { margin: 0 0 6px; font-size: 17px; }
.xl-lejant { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.xl-lejant .xl-cip { display: inline-block; }
.xl-izgara td { vertical-align: top; min-width: 132px; }
.xl-izgara th small { display: block; font-weight: 400; }
.xl-cip { display: block; margin: 2px 0; padding: 3px 7px; border-radius: 7px; font-size: 12.5px; line-height: 1.35; background: #f6f6f8; color: var(--yazi-2); border-left: 3px solid var(--cizgi-2); }
.xl-cip small { color: var(--yazi-3); font-size: 11px; }
.xl-cip.yeni { background: #e9f7ed; color: #1d5e31; border-left-color: #2e9b4f; }
.xl-cip.kalir { background: #eef0ff; color: #2b3a9c; border-left-color: #5b6be0; }
.xl-cip.kalkar { background: var(--hata-zemin); color: var(--hata); border-left-color: var(--hata); text-decoration: line-through; }
.xl-cip.atla { background: #fff; color: var(--yazi-3); border: 1px dashed var(--cizgi-2); border-left-width: 3px; }
.xl-son { position: sticky; bottom: 0; margin: 18px 0 0; padding: 12px 0; background: var(--zemin); align-items: center; flex-wrap: wrap; }
.xl-son p.hata { margin: 0; }

/* telefon uyumu (bilet_plan.md 35; kalıcı kural: her ekran önce 375 px telefonda) */
.ust-bag { white-space: nowrap; }
.h3yakin { display: flex; justify-content: flex-end; gap: 8px; margin: 0 0 8px; }
.h3yakin button { width: 44px; height: 44px; border: 1.5px solid var(--cizgi-2); border-radius: 12px; background: #fff; font: inherit; font-size: 24px; font-weight: 800; line-height: 1; color: var(--yazi); cursor: pointer; }
.h3yakin button:disabled { opacity: .35; cursor: default; }
.ws-cip { min-height: 40px; }
.ws-adet button { width: 44px; height: 44px; }
.yt-bolum-bas { min-height: 40px; }
.ws-mobil-bar { display: none; }
@media (max-width: 959px) {
    .ws-form:has(.ws-mobil-bar) { padding-bottom: 88px; }
    .ws-mobil-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px;
        padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--cizgi); box-shadow: 0 -6px 18px rgba(0, 0, 0, .08); }
    .ws-mobil-bar span { display: flex; flex-direction: column; min-width: 0; }
    .ws-mobil-bar small { color: var(--yazi-2); font-size: 13px; font-weight: 700; }
    .ws-mobil-bar b { font-size: 22px; }
    .ws-mobil-bar .dugme { width: auto; flex: 0 0 auto; padding: 0 20px; }
}
@media (max-width: 760px) {
    .ust-ic:has(.rk-ust) .logo { margin-right: auto; }
    input:not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea { font-size: 16px; }
    .saat-ek, .ws-tur-ad small, .ws-tur-not, .ws-kucuk { font-size: 13px; }
    .ws-mq-ucuz, .ws-mq-rib { font-size: 12px; }
    .ws-dugmeler .dugme:last-child { flex: 1 1 auto; }
}
@media (max-width: 400px) {
    .ust-ic { gap: 4px; padding: 0 12px; }
    .ust-bag { padding: 0 8px; font-size: 14px; }
    .logo img { height: 24px; }
}
/* plan 48: Web Yönetim → Gişe Ekran */
.wy-gise { margin: 0 0 24px; padding: 0 0 20px; border-bottom: 1px solid var(--cizgi); }
.wy-gise .wy-h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wy-gise-ekranlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.wy-gise-ekran { margin: 0; display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px solid var(--cizgi); border-radius: 14px; background: #fff; }
.wy-gise-ekran img { width: 100%; height: auto; display: block; border-radius: 8px; background: #000; }
.wy-gise-ekran figcaption { display: flex; flex-direction: column; gap: 8px; }
.wy-gise-indir { display: flex; flex-wrap: wrap; gap: 8px; }
.wy-gise-indir .dugme { min-height: 44px; }

/* Haftalık program ızgarası: seans kartı ve sürükle bırak (plan 50) */
.izgara[data-prg-duz] .seans-cip { width: 100%; max-width: none; border: 0; border-left: 4px solid var(--renk, #999); font: inherit; font-size: 12.5px; text-align: left; color: inherit; cursor: grab; transition: background .12s, box-shadow .12s, transform .12s; }
.izgara[data-prg-duz] .seans-cip:hover { background: #fff; box-shadow: 0 2px 8px rgba(20, 20, 40, .12); transform: translateY(-1px); }
.izgara[data-prg-duz] .seans-cip:focus-visible { outline: 2px solid var(--pembe); outline-offset: 1px; }
.izgara[data-prg-duz] .seans-cip.secik { background: #fff; box-shadow: 0 0 0 2px var(--pembe); }
.izgara[data-prg-duz] .seans-cip.tasiniyor { opacity: .45; }
.izgara.surukleniyor td.birak-olur { background: #fff7fb; box-shadow: inset 0 0 0 2px rgba(230, 0, 126, .25); }
.izgara.surukleniyor td.uzerinde { background: var(--pembe-acik); box-shadow: inset 0 0 0 2px var(--pembe); }
.prg-kart { position: fixed; z-index: 1000; width: 288px; max-width: calc(100vw - 16px); display: grid; gap: 10px; padding: 16px; background: #fff; border: 1px solid var(--cizgi); border-radius: 16px; box-shadow: 0 14px 36px rgba(20, 20, 40, .18); }
.prg-kart > b { font-size: 15px; padding-right: 36px; line-height: 1.3; }
.prg-kart .prg-x { position: absolute; right: 6px; top: 6px; width: 36px; height: 36px; border: 0; border-radius: 10px; background: transparent; font-size: 22px; line-height: 1; color: var(--yazi-2); cursor: pointer; }
.prg-kart .prg-x:hover { background: #f3f3f6; }
.prg-kart .prg-sil { min-height: 44px; border: 1px solid #f1b5bc; border-radius: 12px; background: #fff; color: #c4202f; font: inherit; font-weight: 800; font-size: 14px; cursor: pointer; }
.prg-kart .prg-sil:hover { background: #fdf1f2; }
.prg-kart .prg-sil.onay { background: #c4202f; border-color: #c4202f; color: #fff; }
.prg-kart .uyari { margin: 0; padding: 10px 12px; border-radius: 12px; background: #fdecee; color: #9b1c2c; font-size: 13px; font-weight: 600; line-height: 1.4; }
.prg-kart small { color: var(--yazi-2); font-weight: 700; font-size: 12.5px; }
.prg-gunler { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.prg-gunler button { min-height: 44px; padding: 0 4px; border: 1px solid var(--cizgi-2); border-radius: 10px; background: #fff; font: inherit; font-size: 12px; font-weight: 700; color: var(--yazi); cursor: pointer; }
.prg-gunler button:hover:not(:disabled) { border-color: var(--pembe); color: var(--pembe-koyu); background: #fff7fb; }
.prg-gunler button:disabled { opacity: .35; cursor: default; }
.izgara[data-prg-duz] .seans-cip.secili { background: #fff0f7; box-shadow: 0 0 0 2px var(--pembe); }
.izgara[data-prg-duz] .seans-cip.secili[data-prg-korunur="1"], .izgara[data-prg-duz] .seans-cip.engel { background: #fdecee; box-shadow: 0 0 0 2px #c4202f; }
.izgara[data-prg-duz] tbody td { user-select: none; -webkit-user-select: none; }
body.prg-seciliyor, body.prg-seciliyor * { cursor: crosshair !important; user-select: none !important; }
.prg-cerceve { position: fixed; z-index: 999; border: 1.5px solid var(--pembe); background: rgba(230, 0, 126, .08); border-radius: 4px; pointer-events: none; }
.prg-kart .prg-sec { min-height: 40px; border: 1px solid var(--cizgi-2); border-radius: 12px; background: #fff; font: inherit; font-weight: 700; font-size: 13.5px; color: var(--yazi); cursor: pointer; }
.prg-kart .prg-sec:hover { border-color: var(--pembe); color: var(--pembe-koyu); }
.prg-secim-bar { position: fixed; z-index: 1001; left: 0; right: 0; bottom: 16px; margin: 0 auto; width: max-content; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; max-width: calc(100vw - 24px); padding: 10px 12px 10px 18px; background: #1f1d24; color: #fff; border-radius: 16px; box-shadow: 0 14px 36px rgba(20, 20, 40, .28); }
.prg-secim-bar .say { font-weight: 800; font-size: 14.5px; }
.prg-secim-bar .engel-not { font-size: 13px; font-weight: 700; color: #ffb3bc; }
.prg-secim-bar button { min-height: 40px; padding: 0 14px; border-radius: 11px; font: inherit; font-size: 13.5px; font-weight: 800; cursor: pointer; }
.prg-secim-bar button.ikincil { border: 1px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; }
.prg-secim-bar button.ikincil:hover { background: rgba(255, 255, 255, .1); }
.prg-secim-bar button.sil { border: 0; background: #fff; color: #c4202f; }
.prg-secim-bar button.sil.onay { background: #e0263a; color: #fff; }
.prg-secim-bar button:disabled { opacity: .4; cursor: default; }
.prg-kart .prg-gise { min-height: 48px; border: 0; border-radius: 12px; background: #c4202f; color: #fff; font: inherit; font-weight: 800; font-size: 14.5px; cursor: pointer; }
.prg-kart .prg-gise:hover { background: #a51a27; }
.izgara[data-prg-duz] .seans-cip.engel { cursor: pointer; }
/* tüm şubeler görünümü: şube başlık satırı (plan 52) */
.izgara tr.sube-bas th { background: #1f1d24; color: #fff; font-size: 13.5px; letter-spacing: .02em; position: static; }
/* seans satış yeri etiketi (plan 53) */
.seans-cip .kanal-etiket { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 6px; font-style: normal; font-size: 10.5px; font-weight: 800; letter-spacing: .02em; vertical-align: 1px; }
.seans-cip .kanal-gise { background: #fff1c2; color: #6a4b00; }
.seans-cip .kanal-web { background: #e3ecff; color: #1f4fa8; }
/* plan 56: kurala uymayan seanslar uyarısı */
.prg-ihlal { padding: 12px 14px; border-radius: 12px; }
.izgara .seans-cip.ihlal { background: #fdecee; box-shadow: 0 0 0 2px #c4202f; }
.prg-ihlal ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 3px; font-size: 13.5px; }
/* plan 57: programda geçmiş günler / seanslar soluk; geçmişi göster düğmesi; geçmişe ekleme onayı */
.izgara thead th.gecmis { background: #eceef1; color: var(--yazi-3); }
.izgara td.gecmis { background: #f7f7f9; }
.seans-cip.gecmis { opacity: .45; filter: grayscale(.6); }
.seans-cip.gecmis:hover, .seans-cip.gecmis:focus-visible { opacity: .85; }
.prg-gecmis-dugme.acik { border-color: var(--pembe); color: var(--pembe-koyu); }
p.prg-gecmis-onay { margin: -4px 0 12px; }
.prg-gecmis-bos { padding: 18px 14px; border: 1.5px dashed var(--cizgi-2); border-radius: 12px; text-align: center; }
/* plan 59: Excel'i kaldır, Film ekle */
.xl-kaldir { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin: 0 0 6px; padding: 0 14px; border: 1.5px solid var(--cizgi-2); border-radius: 10px; background: #fff; font: inherit; font-size: 14px; font-weight: 700; color: var(--yazi-2); cursor: pointer; }
.xl-kaldir:hover { border-color: var(--kirmizi, #c0392b); color: var(--kirmizi, #c0392b); }
.xl-kaldir[hidden] { display: none; }
.xl-yf-sure .dugme { min-height: 44px; margin-left: 6px; }
/* plan 60: Film ekle onay kartı */
.xl-yf-kart { border: 1.5px solid var(--pembe); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.xl-yf-excel { flex-basis: 100%; }
.xl-yf-bulunan { display: flex; align-items: center; gap: 10px; min-width: 0; }
.xl-yf-bulunan > span { display: flex; flex-direction: column; }
.xl-yf-bulunan .oneri-afis { width: 44px; height: 64px; border-radius: 6px; object-fit: cover; }
.xl-yf-dugmeler { display: flex; flex-wrap: wrap; gap: 8px; }
.xl-yf-dugmeler .dugme { min-height: 44px; }
/* plan 61: Gişe Ekran gün seçimi */
.wy-gtv-tarih { align-items: center; flex-wrap: wrap; margin: 0 0 16px; }
.wy-gtv-tarih .girdi { min-height: 44px; }
.wy-gise-ekran figcaption small { color: var(--yazi-3); }
