/*
 * RK Apps CIR — Responsive Layout V25.4
 * Desktop, tablet and cellphone comfort layer.
 */

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

body {
    min-width: 0;
    overflow-x: hidden;
}

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

img,
video {
    height: auto;
}

button,
a,
input,
select,
textarea,
summary {
    touch-action: manipulation;
}

.table-wrap,
.rk-responsive-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.rk-scroll-table {
    min-width: 760px;
}

.navigation.rk-scroll-navigation {
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.modal,
.signature-modal,
.dialog-overlay {
    padding:
        max(12px, env(safe-area-inset-top))
        max(12px, env(safe-area-inset-right))
        max(12px, env(safe-area-inset-bottom))
        max(12px, env(safe-area-inset-left));
}

@media (max-width: 1100px) {
    .page,
    main.page {
        width: min(100% - 24px, 1700px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .topbar {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .filter-grid,
    .filters,
    .form-grid,
    .details-grid,
    .summary-grid,
    .cards,
    .stats-grid,
    .dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .layout,
    .content-layout,
    .complaint-layout,
    .details-layout {
        min-width: 0;
    }

    .sticky,
    [style*="position: sticky"],
    .profile-info-card,
    .profile-preview-card {
        position: relative !important;
        top: auto !important;
    }
}

@media (max-width: 760px) {
    body {
        font-size: 15px;
    }

    .topbar {
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 12px !important;
        min-height: 0 !important;
        padding:
            max(12px, env(safe-area-inset-top))
            14px
            12px !important;
    }

    .brand-area,
    .brand,
    .topbar-right {
        width: 100% !important;
        min-width: 0 !important;
    }

    .topbar-right {
        align-items: center !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        gap: 10px !important;
    }

    .user-details {
        min-width: 0;
        text-align: left !important;
    }

    .user-name,
    .user-role {
        max-width: 62vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .logout-button,
    .topbar .button {
        flex: 0 0 auto;
        min-height: 44px;
    }

    .page,
    main.page,
    .container,
    .dashboard-content {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .page,
    main.page {
        padding-top: 14px !important;
        padding-bottom:
            max(24px, env(safe-area-inset-bottom)) !important;
    }

    .navigation.rk-scroll-navigation {
        display: flex !important;
        width: calc(100% + 24px) !important;
        margin-left: -12px !important;
        margin-right: -12px !important;
        padding: 2px 12px 10px !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        scroll-snap-type: x proximity;
    }

    .navigation.rk-scroll-navigation > * {
        width: auto !important;
        min-width: max-content !important;
        flex: 0 0 auto !important;
        scroll-snap-align: start;
    }

    .navigation .nav-button,
    .navigation .button,
    .navigation a {
        min-height: 44px !important;
        padding: 10px 13px !important;
        justify-content: center;
    }

    .hero,
    .page-heading,
    .panel,
    .card,
    .filter-card,
    .summary-panel,
    .form-panel {
        min-width: 0;
    }

    .hero,
    .panel-body,
    .card,
    .filter-card,
    .form-content {
        padding: 16px !important;
    }

    .hero h1,
    .page-heading h1 {
        font-size: clamp(25px, 8vw, 34px) !important;
        line-height: 1.12 !important;
    }

    .hero h2,
    .panel-heading,
    .card h2 {
        font-size: clamp(19px, 5.8vw, 25px) !important;
    }

    .filter-grid,
    .filters,
    .form-grid,
    .details-grid,
    .summary-grid,
    .cards,
    .stats-grid,
    .dashboard-grid,
    .row,
    .row2,
    .row3,
    .grid,
    .store-grid,
    .photo-strip {
        grid-template-columns: 1fr !important;
    }

    .filters > *,
    .filter-grid > *,
    .form-grid > *,
    .row > *,
    .row2 > *,
    .row3 > *,
    .grid > * {
        min-width: 0 !important;
        width: 100% !important;
    }

    input,
    select,
    textarea {
        min-height: 46px !important;
        max-width: 100% !important;
        font-size: 16px !important;
    }

    textarea {
        min-height: 118px !important;
    }

    button,
    .button,
    .btn,
    .nav-button,
    input[type="submit"],
    input[type="button"] {
        min-height: 44px !important;
    }

    .form-actions,
    .filter-actions,
    .row-actions,
    .actions,
    .hero-actions,
    .button-row,
    .action-row {
        width: 100%;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 9px !important;
    }

    .form-actions > *,
    .filter-actions > *,
    .row-actions > *,
    .actions > *,
    .hero-actions > *,
    .button-row > *,
    .action-row > * {
        flex: 1 1 145px;
        min-width: 0;
    }

    .modal-card,
    .dialog-card,
    .signature-card {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100dvh - 24px) !important;
        overflow-y: auto !important;
        border-radius: 16px !important;
        padding: 14px !important;
    }

    canvas,
    .sigcanvas,
    .signature-canvas {
        width: 100% !important;
        height: min(48dvh, 360px) !important;
        max-height: 360px !important;
    }

    .table-wrap.rk-responsive-table-wrap {
        overflow: visible !important;
        border: 0 !important;
        background: transparent !important;
    }

    table.rk-card-table {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    table.rk-card-table thead {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0 0 0 0) !important;
        white-space: nowrap !important;
    }

    table.rk-card-table tbody,
    table.rk-card-table tr,
    table.rk-card-table td {
        display: block !important;
        width: 100% !important;
    }

    table.rk-card-table tr {
        margin: 0 0 12px !important;
        overflow: hidden;
        border: 1px solid #dce4ea !important;
        border-radius: 14px !important;
        background: #fff !important;
        box-shadow: 0 4px 12px rgba(16, 42, 67, 0.06);
    }

    table.rk-card-table td {
        display: grid !important;
        grid-template-columns: minmax(105px, 38%) minmax(0, 1fr) !important;
        gap: 12px !important;
        min-height: 42px;
        padding: 10px 12px !important;
        border: 0 !important;
        border-bottom: 1px solid #edf1f4 !important;
        overflow-wrap: anywhere;
        text-align: left !important;
    }

    table.rk-card-table td:last-child {
        border-bottom: 0 !important;
    }

    table.rk-card-table td::before {
        content: attr(data-label);
        color: #516575;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.035em;
        line-height: 1.35;
        text-transform: uppercase;
    }

    table.rk-card-table td[data-label=""]::before {
        display: none;
    }

    table.rk-card-table td .row-actions,
    table.rk-card-table td form {
        max-width: 100%;
    }

    .rk-scroll-table {
        min-width: 720px !important;
    }
}

@media (max-width: 420px) {
    .topbar-right {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    .logout-button,
    .topbar .button {
        width: 100%;
    }

    table.rk-card-table td {
        grid-template-columns: 1fr !important;
        gap: 4px !important;
    }

    .form-actions > *,
    .filter-actions > *,
    .row-actions > *,
    .actions > *,
    .hero-actions > * {
        flex-basis: 100%;
        width: 100% !important;
    }
}
