/* El feneri ve büyüteç — UYGULAMAYA_EKLENECEKLER 101, 0.3.10 (23.10.2026). js/el_feneri.js
   Sayfa tema değişkenleriyle. Sabit renkler yalnız: kamera görüntüsü zemini (siyah), ekran ışığı (beyaz → amber) ve onun üstündeki koyu denetim paneli. */
.ef-modlar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 12px; }
.ef-mod { min-height: 48px; font-weight: 600; font-size: 16px; }
.ef-gizli-video { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; left: 0; top: 0; }

/* ---- El feneri ---- */
.ef-fener-kart { display: flex; flex-direction: column; align-items: center; padding: 26px 16px 18px; }
.ef-anahtar { width: 184px; height: 184px; border-radius: 50%; border: 2px solid var(--ln); background: var(--bg); color: var(--tx);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; cursor: pointer; padding: 0;
  font: 700 22px var(--metin); box-shadow: 0 0 0 0 transparent; transition: background .15s ease-out, box-shadow .2s ease-out, color .15s ease-out; }
.ef-anahtar-simge { width: 54px; height: 54px; }
.ef-anahtar.ef-yaniyor { background: var(--ac); color: var(--onac); border-color: var(--ac);
  box-shadow: 0 0 0 10px color-mix(in srgb, var(--ac) 20%, transparent), 0 0 0 22px color-mix(in srgb, var(--ac) 9%, transparent); }
.ef-anahtar:disabled { opacity: .7; cursor: default; }
.ef-anahtar:focus-visible { outline: 3px solid var(--ac); outline-offset: 6px; }
.ef-durum { margin: 26px 0 14px; text-align: center; font-weight: 600; min-height: 1.45em; }
.ef-sos-sec { justify-content: center; }
.ef-sos-sec .secim { min-height: 44px; min-width: 112px; font-weight: 600; }
.ef-ekran-isigi { display: block; max-width: none; min-height: 52px; margin: 0 0 8px; }
.ef-not { margin: 6px 4px; }

/* ---- Ekran ışığı (tam ekran) ---- */
html.ef-isik-acik, html.ef-isik-acik body { overflow: hidden; }
.ef-isik { position: fixed; inset: 0; z-index: 400; background: #FFFFFF; display: flex; flex-direction: column; justify-content: space-between;
  padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); outline: none;
  -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.ef-isik-neden, .ef-isik-panel { background: rgba(20, 20, 20, .74); color: #FFFFFF; border-radius: 16px; transition: opacity .2s ease-out;
  max-width: 520px; width: 100%; margin: 0 auto; }
.ef-isik-neden { padding: 10px 14px; font: 500 14px/1.4 var(--metin); text-align: center; }
.ef-isik-panel { padding: 14px 16px 16px; }
.ef-panel-gizli .ef-isik-neden, .ef-panel-gizli .ef-isik-panel { opacity: 0; pointer-events: none; }
.ef-isik-ipucu { margin: 0 0 10px; font: 600 15px/1.4 var(--metin); text-align: center; }
.ef-isik-renk { display: block; }
.ef-isik-etiket { display: block; font: 500 14px var(--metin); margin-bottom: 2px; color: #E6E6E6; }
.ef-sicaklik { width: 100%; height: 44px; margin: 0; accent-color: #FFB040; cursor: pointer; }
.ef-isik-uclar { display: flex; justify-content: space-between; font: 400 13px var(--metin); color: #CFCFCF; margin-top: -4px; }
.ef-isik-dugmeler { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.ef-isik-dugmeler button { min-height: 48px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .1);
  color: #FFFFFF; font: 600 16px var(--metin); cursor: pointer; }
.ef-isik-dugmeler .ef-isik-sos[aria-pressed="true"] { background: #FFB040; border-color: #FFB040; color: #1A1A1A; }
.ef-isik-dugmeler .ef-isik-kapat { background: #FFFFFF; color: #111111; border-color: #FFFFFF; }

/* ---- Büyüteç ---- */
.ef-bakis { position: relative; width: 100%; height: min(48vh, 480px); min-height: 240px; background: #000000; border-radius: var(--rk, 18px);
  overflow: hidden; touch-action: none; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; margin-bottom: 12px; cursor: zoom-in; }
.ef-video, .ef-dondu { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; transform-origin: 50% 50%; display: block; }
.ef-dondu { cursor: grab; }
.ef-rozet { position: absolute; top: 10px; left: 10px; padding: 6px 12px; border-radius: 999px; background: rgba(20, 20, 20, .78); color: #FFFFFF;
  font: 600 13px var(--metin); pointer-events: none; }
.ef-bakis-mesaj { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  padding: 20px; text-align: center; color: #FFFFFF; background: #000000; cursor: default; }
.ef-bakis-mesaj p { margin: 0; max-width: 34ch; font-size: 15px; line-height: 1.5; }
.ef-bakis-mesaj .buyuk-dugme { max-width: 240px; }
.ef-zoom-ust { display: flex; justify-content: space-between; align-items: baseline; font-weight: 600; }
.ef-zoom-deger { font-size: 18px; }
.ef-zoom-satir { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; }
.ef-zoom { flex: 1; min-width: 0; height: 44px; margin: 0; accent-color: var(--ac); cursor: pointer; }
.ef-yuvarlak { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--ln); background: var(--sf); color: var(--tx);
  font: 600 22px/1 var(--sayi); cursor: pointer; padding: 0; }
.ef-yuvarlak:disabled, .ef-zoom:disabled { opacity: .45; cursor: default; }
.ef-dugmeler { display: flex; gap: 10px; }
.ef-dugmeler .buyuk-dugme { flex: 1; max-width: none; min-height: 50px; margin: 0; }
.ef-dugmeler .ef-b-isik { flex: 0 0 34%; }
.ef-b-isik[aria-pressed="true"] { background: var(--ac); color: var(--onac); border-color: var(--ac); }
.ef-isik-yok { margin: 8px 2px 0; }
.ef-filtreler { margin-top: 12px; }
.ef-filtreler .secim { flex: 1 1 auto; min-height: 44px; }
.ef-kayit { display: flex; gap: 10px; margin-top: 12px; }
.ef-kayit .buyuk-dugme { flex: 1; max-width: none; min-height: 48px; margin: 0; }
.ef-ipucu { margin: 12px 2px 0; }
.ef-bakis [hidden], .ef-denetim [hidden], .ef-isik [hidden], .ef-kayit[hidden] { display: none !important; }
:root[data-hareket="hic"] .ef-anahtar, :root[data-hareket="hic"] .ef-isik-neden, :root[data-hareket="hic"] .ef-isik-panel { transition: none; }
