/**
 * GATE — sistem geneli mobil / tablet uyumluluk katmanı
 * Telefon, tablet ve masaüstünde tutarlı görünüm.
 */

:root {
    --gate-safe-bottom: env(safe-area-inset-bottom, 0px);
    --gate-safe-left: env(safe-area-inset-left, 0px);
    --gate-safe-right: env(safe-area-inset-right, 0px);
    --gate-chatbot-bottom: 18px;
    --gate-touch-min: 44px;
}

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

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

.app-main img {
    height: auto;
}

/* Yatay taşmayı engelle */
.app-shell-content,
.app-main,
.app-main .container-fluid {
    max-width: 100%;
    min-width: 0;
}

.app-main .container-fluid {
    padding-left: max(0.65rem, var(--gate-safe-left));
    padding-right: max(0.65rem, var(--gate-safe-right));
}

/* Formlar: iOS odak zoom'unu azalt */
@media (max-width: 991.98px) {
    .app-main .form-control,
    .app-main .form-select,
    .app-main textarea.form-control,
    .app-main input[type="text"],
    .app-main input[type="number"],
    .app-main input[type="email"],
    .app-main input[type="tel"],
    .app-main input[type="search"],
    .app-main input[type="password"],
    .app-main input[type="date"],
    .app-main input[type="time"] {
        font-size: 16px;
    }

    .app-main .btn,
    .app-main .page-link {
        min-height: var(--gate-touch-min);
    }

    .app-main .btn-sm {
        min-height: 38px;
    }

    .app-main .btn-toolbar,
    .app-main .d-flex.gap-2,
    .app-main .d-flex.gap-3 {
        flex-wrap: wrap;
    }

    .app-main h1.h3,
    .app-main .page-header,
    .app-main .d-flex.justify-content-between {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .app-main .modal-dialog {
        margin: 0.5rem;
        max-width: calc(100vw - 1rem);
    }

    .app-main .modal-dialog.modal-lg,
    .app-main .modal-dialog.modal-xl {
        max-width: calc(100vw - 1rem);
    }

    .app-main .input-group {
        flex-wrap: wrap;
    }

    .app-main .input-group > .form-control,
    .app-main .input-group > .form-select {
        min-width: 0;
        flex: 1 1 140px;
    }

    /* Sticky sütunlar mobilde devre dışı */
    .app-main th.col-actions,
    .app-main td.col-actions,
    .app-main .sticky-col,
    .app-main [style*="position: sticky"] {
        position: static !important;
        right: auto !important;
        left: auto !important;
        box-shadow: none !important;
    }

    /* Sekmeler: mobilde gizlenmesin, yatay kaydır */
    .app-tabs {
        display: flex !important;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0.25rem 0.5rem !important;
        top: 0;
        position: relative;
        scrollbar-width: none;
    }

    .app-tabs::-webkit-scrollbar {
        display: none;
    }

    .app-tabs-row {
        flex-wrap: nowrap !important;
        min-width: max-content;
        width: 100%;
    }

    .app-tabs-scroll-zone {
        max-width: none !important;
        width: auto !important;
        flex: 1 1 auto;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .app-tab-list {
        flex-wrap: nowrap !important;
    }

    .app-tab {
        flex-shrink: 0;
        max-width: 180px;
    }

    .app-tab span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: inline-block;
        max-width: 140px;
        vertical-align: bottom;
    }

    /* Tablo: yatay kaydırma yedek */
    .app-main .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    .gate-mobile-sticky-actions {
        padding-bottom: calc(0.6rem + var(--gate-safe-bottom));
    }

    body.app-shell-has-mobile-dock {
        --gate-chatbot-bottom: 8px;
    }
}

@media (max-width: 1199.98px) {
    body.app-shell-has-mobile-dock #gateChatbotRoot {
        --gate-chatbot-bottom: 6px;
    }

    .app-shell-has-mobile-dock .app-main {
        padding-bottom: max(0.5rem, var(--gate-safe-bottom));
    }
}

@media (max-width: 767.98px) {
    .app-main .row > [class*="col-md-"],
    .app-main .row > [class*="col-lg-"],
    .app-main .row > [class*="col-xl-"] {
        margin-bottom: 0.35rem;
    }

    .app-main .card-body {
        padding: 0.85rem;
    }

    .app-main .table-responsive .table {
        font-size: 0.82rem;
    }
}

@media (max-width: 575.98px) {
    .app-main .container-fluid.px-0 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .app-main .container-fluid.px-0 > .card,
    .app-main .container-fluid.px-0 > .card-modern {
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }
}

/* Chatbot: dock / safe-area çakışması */
#gateChatbotRoot {
    right: max(12px, var(--gate-safe-right));
    bottom: calc(var(--gate-chatbot-bottom) + var(--gate-safe-bottom));
}

@media (max-width: 576px) {
    #gateChatbotPanel {
        width: calc(100vw - max(16px, var(--gate-safe-left)) - max(16px, var(--gate-safe-right)));
        right: max(8px, var(--gate-safe-right));
    }

    #gateChatbotHint {
        width: min(272px, calc(100vw - 32px - var(--gate-safe-left) - var(--gate-safe-right)));
    }
}

/* Login shell taşma düzeltmesi */
.app-shell-login-fit {
    width: 100% !important;
    max-width: 100% !important;
}
