/**
 * InsureHub — responsive overrides (loaded last via portal-layout.js)
 */

/* Scrollable modals: stay within viewport; form-wrapped bodies scroll */
.modal-dialog-scrollable {
    max-height: calc(100dvh - 1.5rem) !important;
}

.modal-dialog-scrollable .modal-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    max-height: calc(100dvh - 1.5rem) !important;
}

.modal-dialog-scrollable .modal-content > .modal-header,
.modal-dialog-scrollable .modal-content > .modal-footer,
.modal-dialog-scrollable .modal-content > form > .modal-footer {
    flex-shrink: 0;
}

.modal-dialog-scrollable .modal-content > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.modal-dialog-scrollable .modal-content > form > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
    .modal-dialog,
    .modal-dialog.modal-xl,
    .modal-dialog.modal-lg {
        max-width: calc(100vw - 1.5rem) !important;
        margin: 0.75rem auto !important;
    }

    .settings-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        padding-bottom: 0.25rem;
    }

    .insurance-app-page .row.row-equal-height.g-3.mb-4 > .col-xl-3.col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .insurance-app-page .dash-enquiry-product-filters,
    .insurance-app-page .dash-enquiry-status-filters,
    .insurance-app-page .dash-renewal-filters,
    .insurance-app-page .rm-dash-renewal-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
        padding-bottom: 0.25rem;
    }
}

@media (max-width: 991.98px) {
    /* Action columns scroll with the table on tablet/mobile; sticky is desktop-only */
    .enquiry-table th.sticky-action-col,
    .enquiry-table td.sticky-action-col,
    .insurance-dt-table th.sticky-action-col,
    .insurance-dt-table td.sticky-action-col,
    .policy-table th.sticky-action-col,
    .policy-table td.sticky-action-col,
    .claims-table th.sticky-action-col,
    .claims-table td.sticky-action-col,
    .hs-ticket-table th.sticky-action-col,
    .hs-ticket-table td.sticky-action-col,
    .insurance-app-page table th.sticky-action-col,
    .insurance-app-page table td.sticky-action-col,
    .insurance-ui-table-scroll table.table th:last-child,
    .insurance-ui-table-scroll table.table td:last-child {
        position: static !important;
        box-shadow: none !important;
    }
}

@media (max-width: 767.98px) {
    .modal-dialog-scrollable {
        max-height: calc(100dvh - 1rem) !important;
    }

    .modal-dialog-scrollable .modal-content {
        max-height: calc(100dvh - 1rem) !important;
    }

    .modal-dialog,
    .modal-dialog.modal-xl,
    .modal-dialog.modal-lg {
        max-width: calc(100vw - 1rem) !important;
        margin: 0.5rem auto !important;
    }

    .role-perm-section > .d-flex.align-items-start.justify-content-between {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.65rem;
    }

    .role-perm-panel-body {
        max-height: min(18rem, calc(100dvh - 14rem));
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    .role-perm-table {
        min-width: 26rem;
    }

    /* Table filters — full-width stacked fields on mobile */
    .insurance-app-page .filter-bar,
    .insurance-app-page .insurance-ui-filter-bar,
    .insurance-app-page .insurance-dt-filters,
    .insurance-app-page .enquiry-filters,
    .insurance-app-page .policy-filters,
    .insurance-app-page .claims-filters,
    .insurance-app-page .renewal-filters {
        display: block;
        overflow-x: visible;
        padding: 1rem 1.1rem;
        border-radius: 0.625rem;
    }

    .insurance-app-page .filter-bar > .row,
    .insurance-app-page .insurance-ui-filter-bar > .row,
    .insurance-app-page .insurance-dt-filters > .row,
    .insurance-app-page .enquiry-filters > .row,
    .insurance-app-page .policy-filters > .row,
    .insurance-app-page .claims-filters > .row,
    .insurance-app-page .renewal-filters > .row {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        gap: 0.85rem;
        margin: 0;
    }

    .insurance-app-page .filter-bar > .row > [class*="col-"],
    .insurance-app-page .insurance-ui-filter-bar > .row > [class*="col-"],
    .insurance-app-page .insurance-dt-filters > .row > [class*="col-"],
    .insurance-app-page .enquiry-filters > .row > [class*="col-"],
    .insurance-app-page .policy-filters > .row > [class*="col-"],
    .insurance-app-page .claims-filters > .row > [class*="col-"],
    .insurance-app-page .renewal-filters > .row > [class*="col-"] {
        flex: 0 0 auto;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0;
        padding: 0;
    }

    .insurance-app-page .filter-bar .form-label,
    .insurance-app-page .insurance-dt-filters .form-label,
    .insurance-app-page .enquiry-filters .form-label,
    .insurance-app-page .policy-filters .form-label,
    .insurance-app-page .claims-filters .form-label,
    .insurance-app-page .renewal-filters .form-label {
        white-space: normal;
        font-size: 0.8125rem;
        margin-bottom: 0.35rem;
    }

    .insurance-app-page .filter-bar .form-control,
    .insurance-app-page .filter-bar .form-select,
    .insurance-app-page .insurance-dt-filters .form-control,
    .insurance-app-page .insurance-dt-filters .form-select,
    .insurance-app-page .enquiry-filters .form-control,
    .insurance-app-page .enquiry-filters .form-select,
    .insurance-app-page .policy-filters .form-control,
    .insurance-app-page .policy-filters .form-select,
    .insurance-app-page .claims-filters .form-control,
    .insurance-app-page .claims-filters .form-select,
    .insurance-app-page .renewal-filters .form-control,
    .insurance-app-page .renewal-filters .form-select {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 2.75rem;
        padding: 0.5rem 0.75rem;
        font-size: 0.9375rem;
        border-radius: 0.5rem;
    }

    .insurance-app-page .filter-bar .insurance-search-box,
    .insurance-app-page .insurance-dt-filters .insurance-search-box,
    .insurance-app-page .enquiry-filters .insurance-search-box,
    .insurance-app-page .policy-filters .insurance-search-box,
    .insurance-app-page .claims-filters .insurance-search-box,
    .insurance-app-page .renewal-filters .insurance-search-box {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .insurance-app-page .filter-bar .insurance-search-box .form-control,
    .insurance-app-page .insurance-dt-filters .insurance-search-box .form-control,
    .insurance-app-page .enquiry-filters .insurance-search-box .form-control,
    .insurance-app-page .policy-filters .insurance-search-box .form-control,
    .insurance-app-page .claims-filters .insurance-search-box .form-control,
    .insurance-app-page .renewal-filters .insurance-search-box .form-control {
        padding-left: 2.5rem;
    }

    .insurance-app-page .filter-bar > .row > [class*="col-"] .d-flex,
    .insurance-app-page .enquiry-filters > .row > [class*="col-"] .d-flex,
    .insurance-app-page .policy-filters > .row > [class*="col-"] .d-flex,
    .insurance-app-page .claims-filters > .row > [class*="col-"] .d-flex,
    .insurance-app-page .renewal-filters > .row > [class*="col-"] .d-flex,
    .insurance-app-page .filter-bar > .row > [class*="col-"].d-flex,
    .insurance-app-page .enquiry-filters > .row > [class*="col-"].d-flex,
    .insurance-app-page .policy-filters > .row > [class*="col-"].d-flex,
    .insurance-app-page .claims-filters > .row > [class*="col-"].d-flex,
    .insurance-app-page .renewal-filters > .row > [class*="col-"].d-flex {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        width: 100%;
        gap: 0.65rem;
    }

    .insurance-app-page .filter-bar .btn.w-100,
    .insurance-app-page .insurance-dt-filters .btn.w-100,
    .insurance-app-page .enquiry-filters .btn.w-100,
    .insurance-app-page .policy-filters .btn.w-100,
    .insurance-app-page .claims-filters .btn.w-100,
    .insurance-app-page .renewal-filters .btn.w-100 {
        flex: 1 1 50%;
        width: auto !important;
        min-height: 2.75rem;
        padding: 0.5rem 1rem;
        font-size: 0.9375rem;
        border-radius: 0.5rem;
    }
}

@media (max-width: 575.98px) {
    .insurance-app-page .row.row-equal-height.g-3.mb-4 > .col-xl-3.col-md-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/* Date fields — larger tap target on touch devices */
@media (max-width: 991.98px) {
    .insurance-date-field input[type="date"].form-control,
    .insurance-date-field input[type="date"] {
        padding-right: 3rem;
        min-height: 2.75rem;
    }

    .insurance-date-field input[type="date"]::-webkit-calendar-picker-indicator {
        width: 3rem;
    }

    .insurance-date-field .insurance-date-trigger {
        width: 3rem;
        min-width: 44px;
    }

    .insurance-date-field .insurance-date-trigger i {
        font-size: 1.125rem;
    }
}
