/* Uygulama içi ada, cihaza göre (ada-cihaz.js). Karar notu: notlar/ada-cihaz.md
   Biçim kökteki [data-ada-bicim] işaretinden gelir (uygulamada <html>, deneme sayfasında her telefon çerçevesi):
     duz / android  durum çubuğunun alt kenarından sarkan sedef damla + kenarda ilerleme hattı (her cihazda çalışır)
     ada            siyah kapsül gerçek Dinamik Ada'nın etrafına oturur (tuval durum çubuğunun altına uzanıyorsa)
     centik         çentikten siyah dil sarkar (tuval durum çubuğunun altına uzanıyorsa)
     masaustu       damla, telefon çerçevesinin tepesinde (çerçevede donanım yok); sekme başlığı ve ikonu JS'te
   Haller: gizli · kucuk (çiziliyor) · buyuk (bir açı / hepsi hazır, 2,6 sn) · hazir (hepsi bitti, dokununca odaya).
   Tek sürekli hareket: çiziliyorken halkadaki kısa ışık yayı döner; başka hiçbir şey sürekli oynamaz.
   --adc-ust: tuvalin üstündeki güvenli alan (bugünkü ayarda iPhone'da 0); JS ölçer ya da deneme sayfası verir. */

.adc{--adc-ust:env(safe-area-inset-top,0px);--adc-oran:0;--adc-ease:cubic-bezier(.3,1.24,.48,1);--adc-cik:cubic-bezier(.4,0,.2,1);
  position:absolute;left:0;right:0;top:0;height:0;z-index:71;pointer-events:none;
  font-family:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.adc *,.adc *::before,.adc *::after{box-sizing:border-box}
.adc-govde{position:absolute;left:50%;top:var(--adc-ust);display:block;width:40px;height:0;margin:0;padding:0;border:0;
  transform:translateX(-50%);overflow:visible;cursor:pointer;pointer-events:none;opacity:0;font:inherit;color:inherit;background:none;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;text-align:left;
  transition:width .52s var(--adc-ease),height .52s var(--adc-ease),left .52s var(--adc-ease),border-radius .52s var(--adc-ease),top .52s var(--adc-ease),opacity .22s linear,transform .18s var(--adc-cik)}
.adc[data-hal=kucuk] .adc-govde,.adc[data-hal=buyuk] .adc-govde,.adc[data-hal=hazir] .adc-govde{opacity:1;pointer-events:auto}
.adc-govde:active{transform:translateX(-50%) scale(.97)}
.adc-govde.basildi{transform:translateX(-50%) scale(.95)}
/* 44 px dokunma alanı: görünen damla 26 px olsa da parmak alanı aşağı uzar */
.adc-govde::after{content:"";position:absolute;left:-6px;right:-6px;top:0;bottom:-18px}
.adc-govde:focus{outline:none}
.adc-govde:focus-visible{outline:2px solid #15171b;outline-offset:3px}

/* Kabuk (görünen gövde) ayrı katman: sedef ya da siyah; içerik üstünde */
.adc-kabuk{position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.adc-fil{position:absolute;top:0;width:12px;height:12px;pointer-events:none;opacity:0;transition:opacity .3s}
.adc-fil.sol{left:-12px}.adc-fil.sag{right:-12px}

/* İçerik katmanları */
.adc-kucuk,.adc-buyuk{position:absolute;inset:0;display:flex;align-items:center;pointer-events:none;opacity:0;transition:opacity .2s linear}
.adc[data-hal=kucuk] .adc-kucuk,.adc[data-hal=hazir] .adc-kucuk{opacity:1;transition:opacity .25s .18s linear}
.adc[data-hal=buyuk] .adc-buyuk{opacity:1;transition:opacity .3s .2s linear}
.adc-sayi,.adc-sayi2{font:600 12.5px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.adc-hazir-yazi{display:none;font-size:12.5px;font-weight:800;letter-spacing:-.005em;white-space:nowrap}
.adc[data-hal=hazir] .adc-hazir-yazi{display:inline}
.adc[data-hal=hazir] .adc-kucuk .adc-sayi{display:none}

/* Halka: iz, dolu yay (oran), çiziliyorken dönen kısa ışık yayı */
.adc-halka{width:16px;height:16px;flex:none;overflow:visible;display:block}
.adc-halka circle{fill:none;stroke-width:2.4;stroke-linecap:round}
.adc-halka .iz{stroke:rgba(20,24,32,.16)}
.adc-halka .dolu{stroke:#15171b;transition:stroke-dasharray .6s var(--adc-cik)}
.adc-halka .yay{stroke:#6d7480;stroke-dasharray:16 100;opacity:0;transition:opacity .3s}
.adc-halka .tik{fill:none;stroke:#15171b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .25s .15s}
.adc-halka g.don{transform-origin:10px 10px}
.adc[data-asama=calisiyor] .adc-halka .yay,.adc[data-asama=bir_hazir] .adc-halka .yay{opacity:1}
.adc[data-asama=calisiyor] .adc-halka g.don,.adc[data-asama=bir_hazir] .adc-halka g.don{animation:adc-don 2.4s linear infinite}
.adc[data-hal=hazir] .adc-halka .tik{opacity:1}
@keyframes adc-don{to{transform:rotate(360deg)}}

/* Büyük hal: nokta matris kuyusu + iki satır yazı */
.adc-buyuk{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px}
.adc-kuyu{position:relative;width:84px;height:52px;border-radius:12px;overflow:hidden;background:#111316;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.65),inset 0 0 0 .5px rgba(255,255,255,.08)}
.adc-matris{position:absolute;inset:0;width:100%;height:100%;display:block}
.adc-yazi{display:grid;gap:3px;min-width:0}
.adc-yazi b{font-size:15px;font-weight:800;letter-spacing:-.012em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adc-yazi span{font-size:12.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adc-sayi2{align-self:start;padding-top:2px}

/* Kenar hattı: damlanın iki yanından dışa doğru dolar (yalnız damla biçimlerinde) */
.adc-hat{position:absolute;left:0;right:0;top:var(--adc-ust);height:2px;pointer-events:none;opacity:0;transition:opacity .3s}
.adc-hat i{position:absolute;top:0;width:50%;height:2px;transition:transform .7s var(--adc-cik);
  background:linear-gradient(90deg,rgba(255,255,255,.95),#e8ecf4 40%,#c9d0db 70%,#f7f8fb);
  box-shadow:0 .5px 0 rgba(20,24,32,.28),0 1px 4px rgba(20,24,32,.22)}
.adc-hat .sol{right:50%;transform-origin:100% 50%;transform:scaleX(var(--adc-oran))}
.adc-hat .sag{left:50%;transform-origin:0 50%;transform:scaleX(var(--adc-oran))}

.adc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* =================== duz / android / masaustu: sedef damla (masaüstü çerçevesinde donanım yok, kenar aynı) =================== */
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal]:not([data-hal=gizli]) .adc-hat{opacity:1}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-govde{width:44px;height:0;border-radius:0 0 14px 14px;color:#15171b}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-kabuk{
  background:linear-gradient(180deg,#fdfdfe 0%,#f3f4f7 55%,#e5e8ed 100%);
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.95),inset 0 -2px 3px -1px rgba(151,203,232,.28),
    0 0 0 .5px rgba(30,36,48,.22),0 1px 1.5px rgba(30,36,48,.12),0 12px 24px -12px rgba(30,36,48,.55)}
/* ters köşeler: damla kenara yapışık, sıvı gibi */
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-fil.sol{background:radial-gradient(circle at 0 100%,transparent 11.5px,#fdfdfe 12px)}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-fil.sag{background:radial-gradient(circle at 100% 100%,transparent 11.5px,#fdfdfe 12px)}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc:not([data-hal=gizli]) .adc-fil{opacity:1}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=kucuk] .adc-govde{width:78px;height:26px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=hazir] .adc-govde{width:124px;height:28px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=hazir][data-dar] .adc-govde{width:80px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=hazir][data-dar] .adc-hazir-yazi{display:none}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=hazir][data-dar] .adc-kucuk .adc-sayi{display:inline}
/* büyük hal yana yayılır, 52 px'i geçmez: üstteki düğme sırası (Odalarım vb. 52 px'ten başlar) örtülmez.
   --adc-b-x / --adc-b-w: üst bantta düğme varsa JS boş aralığı verir (damla yana kayar) */
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-hal=buyuk] .adc-govde{left:var(--adc-b-x,50%);width:var(--adc-b-w,min(calc(100% - 20px),380px));height:50px;border-radius:0 0 22px 22px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-kucuk{justify-content:center;gap:7px;padding:0 10px 1px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-buyuk{padding:5px 16px 7px 6px;column-gap:10px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-kuyu{width:60px;height:38px;border-radius:10px 10px 17px 17px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-yazi{gap:2px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-yazi b{font-size:14.5px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-yazi span{font-size:12px;color:#4b4f58}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc-sayi2{color:#30333a;align-self:center;padding:0}
/* dar büyük hal (üst bantta düğme var, damla yana kaydı): küçük kuyu, sayaç yok */
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b] .adc-kuyu{width:44px;height:34px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b] .adc-sayi2{display:none}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b] .adc-buyuk{grid-template-columns:auto minmax(0,1fr);padding-right:12px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b] .adc-yazi b{font-size:14px}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b=cok] .adc-kuyu{display:none}
:is([data-ada-bicim=duz],[data-ada-bicim=android],[data-ada-bicim=masaustu]) .adc[data-dar-b=cok] .adc-buyuk{grid-template-columns:minmax(0,1fr);padding-left:16px}

/* =================== siyah biçimler: ada, centik, masaustu =================== */
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-govde{color:#f2f3f5}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-kabuk{background:#000}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-halka .iz{stroke:rgba(255,255,255,.2)}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-halka .dolu{stroke:#f4f6fa;filter:drop-shadow(0 0 2px rgba(205,229,242,.75))}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-halka .tik{stroke:#f4f6fa}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-halka .yay{stroke:#9aa6b8}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-yazi span{color:#aab0b9}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-sayi2{color:#d9dde4}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-kuyu{background:#0b0c0e;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.1)}
:is([data-ada-bicim=ada],[data-ada-bicim=centik]) .adc-govde:focus-visible{outline-color:#fff}

/* ada: gerçek ada (y 11 pt, ~126 × 37 pt) kapsülün ortasında kalır; içerik yalnız iki yanda (Live Activity düzeni) */
[data-ada-bicim=ada] .adc{--adc-ada-y:9px}
[data-ada-bicim=ada] .adc-govde{top:var(--adc-ada-y);width:128px;height:44px;border-radius:22px}
[data-ada-bicim=ada] .adc[data-hal=kucuk] .adc-govde{width:204px}
[data-ada-bicim=ada] .adc[data-hal=hazir] .adc-govde{width:204px}
[data-ada-bicim=ada] .adc[data-hal=buyuk] .adc-govde{width:calc(100% - 12px);height:104px;border-radius:44px}
/* kulaklarda saat ve pil durur: kapsül 204 px'i geçmez (14 Pro'da saat ~85 px'te biter, simgeler ~300 px'te başlar);
   adanın iki yanında ~38 px: solda halka, sağda sayaç (hazırken de sayaç, "Odayı gez" yazısı adanın altına girerdi) */
[data-ada-bicim=ada] .adc-kucuk{justify-content:space-between;padding:0 13px}
[data-ada-bicim=ada] .adc-kucuk .adc-sayi{font-size:11.5px}
[data-ada-bicim=ada] .adc[data-hal=hazir] .adc-hazir-yazi{display:none}
[data-ada-bicim=ada] .adc[data-hal=hazir] .adc-kucuk .adc-sayi{display:inline}
[data-ada-bicim=ada] .adc-buyuk{padding:48px 20px 8px 12px;align-items:center}
[data-ada-bicim=ada] .adc-sayi2{align-self:center;padding:0}

/* centik: dil çentiğin içinden başlar (üstü donanımın arkasında), altı durum çubuğunun hemen altına sarkar */
[data-ada-bicim=centik] .adc-govde{top:0;width:116px;height:calc(var(--adc-ust) - 14px);border-radius:0 0 16px 16px}
[data-ada-bicim=centik] .adc[data-hal=kucuk] .adc-govde{height:calc(var(--adc-ust) + 8px)}
[data-ada-bicim=centik] .adc[data-hal=hazir] .adc-govde{width:132px;height:calc(var(--adc-ust) + 10px)}
[data-ada-bicim=centik] .adc[data-hal=buyuk] .adc-govde{width:100%;height:calc(var(--adc-ust) + 78px);border-radius:0 0 36px 36px}
[data-ada-bicim=centik] .adc-kucuk{align-items:flex-end;justify-content:center;gap:6px;padding:0 0 7px}
[data-ada-bicim=centik] .adc-kucuk .adc-halka{width:13px;height:13px}
[data-ada-bicim=centik] .adc-kucuk .adc-sayi,[data-ada-bicim=centik] .adc-hazir-yazi{font-size:12px;line-height:13px}
[data-ada-bicim=centik] .adc-buyuk{padding:calc(var(--adc-ust) + 2px) 22px 12px 16px}
[data-ada-bicim=centik] .adc-govde::after{bottom:-20px}

/* C'nin varsayılan #ada'sını devral: görünüm buradan, durum C'nin olayından (ekran-arka.js "ada:durum") */
html[data-ada-devral] #ada{display:none!important}
/* Gösteri sayfasının "Ekranlar" düğmesi (canlıda yok): C ada açıkken gizliyordu; damla sağ üst köşeye değmez, iş sürerken de
   görünür kalır (gezinilebilsin), yalnız büyük halde çekilir. Temiz görünüm ve fiş açıkken C'nin gizlemesi geçerli. */
html[data-ada-devral] .cihaz:has(#ada:not([data-hal=gizli])):not(:has(#e-sonuc.temiz:not([hidden]))):not(:has(#fis-kat:not([hidden]))) .ekranlar-d{opacity:1;pointer-events:auto}
html[data-ada-devral] .cihaz:has(.adc[data-hal=buyuk]) .ekranlar-d{opacity:0!important;pointer-events:none!important}

/* Bildirim izni kartı (bildirim-istemci.js) */
.adc-izin{position:absolute;z-index:73;left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 12px);display:grid;gap:12px;padding:16px 16px 14px;border-radius:24px;
  color:#15171b;background:rgba(250,250,252,.9);-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);
  box-shadow:inset 0 1px 0 #fff,0 0 0 .5px rgba(30,36,48,.18),0 24px 46px -18px rgba(30,36,48,.45);
  font-family:Figtree,system-ui,sans-serif;animation:adc-izin .42s var(--adc-ease,cubic-bezier(.3,1.24,.48,1)) both}
.adc-izin[hidden]{display:none}
.adc-izin h3{margin:0;font-size:16px;font-weight:800;letter-spacing:-.012em}
.adc-izin p{margin:4px 0 0;font-size:13.5px;line-height:1.45;color:#30333a}
.adc-izin-ust{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.adc-izin-ikon{position:relative;width:40px;height:40px;border-radius:11px;background:linear-gradient(180deg,#fdfdfe,#e3e6eb);box-shadow:inset 0 1px 0 #fff,0 0 0 .5px rgba(30,36,48,.2),0 4px 10px -4px rgba(30,36,48,.35)}
.adc-izin-ikon img{width:100%;height:100%;border-radius:inherit;display:block}
.adc-izin-ikon b{position:absolute;right:-6px;top:-6px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#15171b;color:#f7f8fa;font:700 11.5px/20px Figtree,system-ui,sans-serif;text-align:center;box-shadow:0 0 0 2px #fafafc}
.adc-izin-dugmeler{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}
.adc-izin button{height:44px;border:0;border-radius:999px;font:700 14.5px/1 Figtree,system-ui,sans-serif;cursor:pointer;color:#15171b}
.adc-izin .hayir{background:rgba(20,24,32,.06);box-shadow:inset 0 0 0 .5px rgba(20,24,32,.12)}
.adc-izin .evet{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.3) 40%,rgba(255,255,255,0) 50%),linear-gradient(180deg,#fdfdfe 0%,#eef0f3 34%,#d5d9df 52%,#e1e4e8 68%,#f6f7f9 100%);
  box-shadow:inset 0 1px 0 #fff,inset 0 -1.5px 1px rgba(59,64,72,.22),0 0 0 3px rgba(255,255,255,.62),0 0 0 3.5px rgba(30,36,48,.1),0 10px 20px -10px rgba(52,60,80,.55)}
.adc-izin button:focus-visible{outline:2px solid #15171b;outline-offset:2px}
@keyframes adc-izin{from{opacity:0;transform:translateY(-14px) scale(.98)}}

/* Hareketi azalt: boyut geçişi yok, halka durur, yalnız saydamlık */
@media (prefers-reduced-motion:reduce){
  .adc-govde{transition:opacity .2s linear}
  .adc-hat i{transition:none}
  .adc-halka g.don{animation:none!important}
  .adc-izin{animation:none}
}
.adc[data-sakin] .adc-govde,.adc[data-sakin] .adc-hat i,.adc[data-sakin] .adc-kucuk,.adc[data-sakin] .adc-buyuk,.adc[data-sakin] .adc-fil{transition:none!important}
.adc[data-sakin] .adc-halka g.don{animation:none!important}
