/* LAMOI Portal v0.46.9 - lookup completeness + mobile hardening */

/* Combobox: danh sách đủ dài nhưng vẫn sử dụng được trên laptop/mobile. */
.search-combobox-menu {
    max-height: min(55vh, 560px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}
.search-combobox-menu [data-combobox-option] {
    min-height: 40px;
    padding-top: 9px;
    padding-bottom: 9px;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Mọi thanh lọc phải co được, không làm vỡ viewport. */
.admin-filter-form,
.audit-filter,
.admin-list-actionbar,
.admin-page-header,
.admin-page-header-actions,
.header-actions,
.admin-form-actions {
    min-width: 0;
}
.admin-filter-form > *,
.audit-filter > *,
.admin-list-actionbar > *,
.admin-page-header-actions > *,
.header-actions > * {
    min-width: 0;
}
.search-combobox,
.search-combobox-control,
.search-combobox-control input,
.admin-filter-form input,
.admin-filter-form select,
.admin-filter-form .admin-button {
    max-width: 100%;
}

/* Bảng vẫn giữ đủ dữ liệu, cho phép cuộn ngang thay vì chèn chữ/nút lên nhau. */
.admin-table-wrap,
.bulk-import-table,
.batch-results {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.admin-table {
    min-width: 760px;
}
.admin-table-actions {
    gap: 8px !important;
    flex-wrap: wrap;
}

/* Các nút hành động không chồng nhau khi màn hình hẹp. */
.admin-page-header-actions,
.header-actions,
.admin-form-actions,
.admin-list-actionbar,
.report-actions,
.report-file-actions,
.compare-run-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px !important;
}

@media (max-width: 900px) {
    .admin-page-header {
        align-items: flex-start;
        gap: 14px;
    }
    .admin-page-header-actions,
    .header-actions {
        width: 100%;
    }
    .admin-toolbar {
        padding: 14px;
    }
    .admin-filter-form,
    .audit-filter {
        grid-template-columns: 1fr !important;
        width: 100%;
        gap: 10px !important;
    }
    .admin-filter-form .search-combobox,
    .audit-filter .search-combobox,
    .admin-filter-form input,
    .audit-filter input,
    .admin-filter-form select,
    .audit-filter select,
    .admin-filter-form .admin-button,
    .audit-filter .admin-button {
        width: 100% !important;
    }
    .search-combobox-menu {
        max-height: 48vh !important;
    }
}

@media (max-width: 700px) {
    /* Chừa khoảng an toàn hai bên cho tất cả màn hình quản trị. */
    .admin-main,
    .admin-content {
        min-width: 0;
    }
    .admin-page-header h1 {
        font-size: clamp(26px, 8vw, 36px);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }
    .admin-card,
    .admin-form-card,
    .clinical-search-card,
    .admin-toolbar {
        max-width: 100%;
    }
    .form-grid,
    .auth-field-grid {
        grid-template-columns: 1fr !important;
    }
    .admin-page-header-actions .admin-button,
    .header-actions .admin-button,
    .admin-form-actions .admin-button,
    .admin-list-actionbar .admin-button {
        flex: 1 1 160px;
        justify-content: center;
    }
    .search-combobox-menu {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: calc(100vw - 28px) !important;
        max-height: 44vh !important;
    }
    .admin-pagination {
        gap: 6px;
        flex-wrap: wrap;
    }
}

@media (max-width: 480px) {
    .admin-topbar {
        padding-left: 12px;
        padding-right: 12px;
        gap: 10px;
    }
    .admin-page-header,
    .admin-toolbar,
    .admin-card,
    .admin-form-card {
        border-radius: 14px;
    }
    .admin-button {
        min-height: 42px;
    }
    .admin-table {
        min-width: 680px;
    }
    .search-combobox-control input,
    .admin-filter-form input,
    .admin-filter-form select,
    .field input,
    .field select,
    .field textarea {
        font-size: 16px !important; /* tránh iOS tự zoom khi focus */
    }
}
