.pwa-install-float{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:90;display:none;align-items:center;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:linear-gradient(135deg,var(--tg-color-brand-900),var(--tg-color-brand-700));color:#fff;box-shadow:0 8px 20px rgba(4,36,67,.2);overflow:hidden}.pwa-install-float.is-visible{display:flex}.pwa-install-button{display:inline-flex;min-height:40px;align-items:center;gap:6px;border:0;padding:8px 8px 8px 12px;background:transparent;color:inherit;font-size:12px;font-weight:800;cursor:pointer}.pwa-install-button svg{flex:0 0 auto}.pwa-install-dismiss{display:grid;width:36px;min-height:40px;place-items:center;border:0;border-left:1px solid rgba(255,255,255,.2);padding:0;background:rgba(255,255,255,.08);color:#fff;font-size:18px;cursor:pointer}.pwa-install-help[hidden]{display:none}.pwa-install-help{position:fixed;inset:0;z-index:1100;display:grid;align-items:end;padding:16px;background:rgba(3,20,37,.58);backdrop-filter:blur(3px)}.pwa-install-help-card{position:relative;width:min(100%,430px);margin:0 auto max(4px,env(safe-area-inset-bottom));border:1px solid var(--tg-color-border);border-radius:18px;padding:20px 48px 20px 20px;background:var(--tg-color-surface);color:var(--tg-color-text);box-shadow:var(--tg-shadow-overlay)}.pwa-install-help-card strong{display:block;margin-bottom:7px;font-size:17px}.pwa-install-help-card p{margin:0;color:var(--tg-color-muted);font-size:13px;line-height:1.5}.pwa-install-close{position:absolute;top:10px;right:10px;display:grid;width:32px;height:32px;min-height:32px;place-items:center;border:0;border-radius:9px;padding:0;background:#edf3f8;color:#173b63;font-size:21px;cursor:pointer}
/* UX-15 — bildirim kartı: tek satırlık, kompakt, sağ altta; yükleme düğmesiyle AYNI ANDA gösterilmez (JS tek tanıtım kuralı), bu yüzden aynı köşeyi paylaşır. */
.pwa-notification-card{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:89;width:min(320px,calc(100vw - 24px));visibility:hidden;transform:translateY(8px);border:1px solid #dce7f2;border-radius:14px;padding:12px 40px 12px 14px;background:#fff;color:#12283f;box-shadow:0 10px 28px rgba(5,32,59,.16);opacity:0;transition:.2s ease}.pwa-notification-card.is-visible{visibility:visible;transform:none;opacity:1}.pwa-notification-card strong{display:block;font-size:13px}.pwa-notification-card p{margin:3px 0 8px;color:#687a8f;font-size:11px;line-height:1.4}.pwa-notification-allow{min-height:36px;border:0;border-radius:9px;padding:7px 12px;background:#1267dc;color:#fff;font-size:12px;font-weight:800;cursor:pointer}.pwa-notification-close{position:absolute;top:6px;right:6px;width:32px;height:32px;min-height:32px;border:0;border-radius:8px;padding:0;background:#eef3f8;color:#53677e;font-size:18px;cursor:pointer}
/* 2026-10-25 (UX_ARCHITECTURE §15.50) — mobil çekmece açıkken tanıtım yüzeyleri GEÇİCİ gizlenir: çekmecenin alt satırlarını (Platform Merkezi dahil) örtmez, düğmeleri odak / tıklama almaz. Durum kaynağı çekmece betiğinin TEK açık/kapalı işareti `body.v3-menu-open` (app/v3_layout.php v3_shell_drawer_script(); çekmece eşiği 760px — daha genişte kenar çubuğu kalıcıdır, kural uygulanmaz). Kalıcı tercih yazılmaz; çekmece kapanınca yüzeyin kendi uygunluk durumu (`is-visible`, JS kuralları) aynen geri gelir. z-index değişmez. */
@media(max-width:760px){body.v3-menu-open .pwa-notification-card,body.v3-menu-open .pwa-install-float{visibility:hidden;opacity:0;pointer-events:none;transition:none}}
@media(display-mode:standalone){html,body{min-height:100dvh;overscroll-behavior-y:none}.v3-page,.v4-global-main{padding-bottom:max(18px,env(safe-area-inset-bottom))}}
@media(max-width:430px){.pwa-install-float{right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom))}.pwa-install-button{min-height:40px;padding:7px 8px 7px 11px;font-size:11px}.pwa-install-dismiss{width:36px;min-height:40px}.pwa-notification-card{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:calc(100vw - 16px)}}
/* PWA-GUVENLI-GUNCELLEME (2026-10-30, Karar PWA-UPD-1) — uygulama bandı: "Yeni sürüm hazır — Güncelle" ya da açık iş nedeniyle bekletilen bildirim. Görünüm canonical `.tg-notice.tg-notice--info` şerididir; bu ek yalnız konumdur: içeriği kaydırmaz (fixed, alt kenar + güvenli alan), aynı anda TEK bant, odak almaz, düğmeler canonical `.tg-btn` (44 px). Modal katmanlarının (≥1000) altında, sayfa yapışkanlarının (≤70) üstünde; açıkken tanıtım yüzeyleri gizlenir (üst üste bant yok). Mobil çekmece açıkken tanıtımlarla aynı kuralla geçici gizlenir. */
.tg-app-band{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:85;max-width:560px;margin:0 auto;box-shadow:var(--tg-shadow-overlay)}.tg-app-band[hidden]{display:none}.tg-app-band-text{flex:1 1 220px;min-width:0;margin:0;overflow-wrap:anywhere}.tg-app-band-actions{display:flex;flex-wrap:wrap;gap:var(--tg-space-2)}
body.tg-app-band-open .pwa-install-float,body.tg-app-band-open .pwa-notification-card{visibility:hidden;opacity:0;pointer-events:none}
@media(max-width:760px){body.v3-menu-open .tg-app-band{visibility:hidden;opacity:0;pointer-events:none}}
@media(max-width:430px){.tg-app-band{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom))}}
