/**
 * Wzoop — Chrome, Brave, Opera, Edge, Safari (iOS/macOS), Firefox
 * ortak görünüm / etkileşim uyumluluğu. Sayfa CSS'inin üzerine biner ama
 * düzen kimliklerini değiştirmez.
 */

/* —— Viewport birimleri (Safari adres çubuğu / Chromium klavye) —— */
:root {
    --app-height: 100vh;
    --safe-t: env(safe-area-inset-top, 0px);
    --safe-r: env(safe-area-inset-right, 0px);
    --safe-b: env(safe-area-inset-bottom, 0px);
    --safe-l: env(safe-area-inset-left, 0px);
}

@supports (height: 100dvh) {
    :root {
        --app-height: 100dvh;
    }
}

@supports (height: 100svh) {
    :root {
        --app-svh: 100svh;
    }
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    hanging-punctuation: none;
}

html,
body {
    min-width: 0;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

iframe {
    border: 0;
}

/* Safari tema mock iframe ölçeği bozulmasın */
.frame-wrapper iframe,
.ta-device iframe,
.phone-screen iframe {
    max-width: none;
}

/* —— Dokunma / fare —— */
a,
button,
[role="button"],
input[type="submit"],
input[type="button"],
input[type="reset"],
.btn,
.nav-link {
    -webkit-tap-highlight-color: rgba(70, 81, 158, 0.18);
    touch-action: manipulation;
}

button,
[role="button"],
input[type="submit"],
input[type="button"],
.btn {
    -webkit-user-select: none;
    user-select: none;
}

input,
textarea,
[contenteditable="true"] {
    -webkit-user-select: text;
    user-select: text;
}

/* iOS Safari: 16px altı input odaklanınca zoom */
html.is-ios input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
html.is-ios select,
html.is-ios textarea {
    font-size: max(16px, 1em);
}

/* Native kontroller — appearance sıfırlama yok (Safari tarih seçici bozulmasın) */
input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

/* —— Kaydırma —— */
.overflow-auto,
.overflow-y-auto,
.modal-body,
.popup-body,
.panel-scroll,
.links-container,
.cover-slider,
.galeri-mini-slider__viewport {
    -webkit-overflow-scrolling: touch;
}

html.is-ios,
html.is-safari {
    overscroll-behavior-y: none;
}

@media (hover: none) and (pointer: coarse) {
    body {
        background-attachment: scroll;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* —— Sticky / mask / clip (eski WebKit) —— */
.sticky,
.is-sticky,
.minimal-header,
.panel-topbar,
.admin-topbar {
    position: -webkit-sticky;
}

/* —— Tam ekran yükseklik yardımcıları —— */
.min-app-height {
    min-height: 100vh;
    min-height: var(--app-height, 100dvh);
}

.fill-app-height {
    height: 100vh;
    height: var(--app-height, 100dvh);
}

/* Hata / bakım / yasal sayfalar */
body > .error-box,
body > .box,
.reset-container {
    -webkit-backdrop-filter: blur(8px);
}

.home-btn {
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
}

/* —— Metin kırpma —— */
.line-clamp-2,
.profile-bio,
.link-text {
    -webkit-box-orient: vertical;
}

/* —— PWA / standalone (Chrome, Brave, Opera, Edge, Safari) —— */
@media (display-mode: standalone),
       (display-mode: fullscreen),
       (display-mode: minimal-ui) {
    html.is-standalone body,
    html.pwa-standalone body {
        padding-top: env(safe-area-inset-top, 0px);
    }
}

html.is-ios.pwa-standalone body,
html.is-safari.pwa-standalone body {
    min-height: -webkit-fill-available;
}

/* —— Odak halkası (klavye; farede gizle) —— */
:focus {
    outline: none;
}

:focus-visible {
    outline: 2px solid rgba(70, 81, 158, 0.55);
    outline-offset: 2px;
}

/* —— Yazdırma (masaüstü Safari / Chrome) —— */
@media print {
    * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .minimal-header,
    .mobile-nav,
    .admin-mobile-nav,
    .panel-mobile-nav,
    .home-btn {
        display: none !important;
    }
}

/* —— Yüksek kontrast / zorla renkler —— */
@media (forced-colors: active) {
    a,
    button,
    .btn {
        forced-color-adjust: auto;
    }
}

/* —— Firefox kaydırma çubuğu (Chromium ::-webkit-scrollbar ile birlikte) —— */
@-moz-document url-prefix() {
    * {
        scrollbar-width: thin;
    }
}

/* —— Opera / Brave / Chrome: form autofill parlaması —— */
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
    box-shadow: 0 0 0 1000px #fff inset;
    -webkit-text-fill-color: inherit;
    caret-color: inherit;
}

html[data-theme="dark"] input:-webkit-autofill,
html[data-panel-theme="dark"] input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #1a1f35 inset;
    box-shadow: 0 0 0 1000px #1a1f35 inset;
    -webkit-text-fill-color: #eef2ff;
}

/* —— Video / media —— */
video {
    object-fit: cover;
}

audio,
video {
    max-width: 100%;
}

/* Safari autoplay sessiz video */
video[muted],
video[autoplay] {
    object-fit: cover;
}

/* —— Tablo taşması —— */
table {
    max-width: 100%;
}

pre,
code {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* —— Dialog / popover (Safari 15.4+; eski sürümde gizleme) —— */
dialog:not([open]) {
    display: none;
}

/* —— In-app WebView (Instagram, Facebook, TikTok, WhatsApp…) —— */
html.is-inapp {
    height: 100%;
}
html.is-inapp,
html.is-inapp body {
    overscroll-behavior: none;
}
html.is-inapp body {
    min-height: 100%;
    min-height: var(--app-height, 100dvh);
    min-height: -webkit-fill-available;
}

/* —— Yasal belgeler —— */
html.legal-doc {
    overflow-x: hidden;
    overflow-y: auto;
    height: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
html.legal-doc body {
    min-height: 100vh;
    min-height: var(--app-height, 100dvh);
    overflow: visible;
    height: auto;
}
html.legal-doc .home-btn {
    top: max(12px, env(safe-area-inset-top, 0px));
    left: max(12px, env(safe-area-inset-left, 0px));
}
html.legal-doc .container {
    padding-top: max(5rem, calc(env(safe-area-inset-top, 0px) + 4rem));
    padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
    padding-bottom: max(2rem, env(safe-area-inset-bottom, 0px));
}

/* —— :has() yoksa form sınıfları (JS ekler; asıl kurallar home-light-overrides.css) —— */
html:not(.has-css-has) .home-light-page .register-popup .form-step[data-step="2"] .form-group.has-select-focus {
    z-index: 12 !important;
}

/* —— Safari / Firefox düğme iç halkası —— */
button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/* Safari tarih / saat native kontrol yüksekliği */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"] {
    min-height: 2.75rem;
}

/* macOS Safari metin pürüzsüzlüğü */
html.is-safari,
html.is-ios {
    -webkit-font-smoothing: antialiased;
}

html.is-safari a,
html.is-ios a {
    cursor: pointer;
}

@media (prefers-reduced-transparency: reduce) {
    .home-btn,
    body > .error-box,
    body > .box,
    .reset-container {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* iOS rubber-band: sabit tam ekran gövdeler */
html.is-ios body.single-page-layout,
html.is-ios.profile-ready body {
    overscroll-behavior-y: none;
}
