/* ════════════════════════════════════════════════════════════
   InsurePay Admin Theme — global under .ip-admin wrapper
   ════════════════════════════════════════════════════════════ */
.ip-admin { font-family: 'Inter', 'Roboto', system-ui, sans-serif; }

/* Page title */
.ip-admin .page-title,
.ip-admin h4.page-title {
    font-size: 20px;
    font-weight: 700;
    color: #1f2937;
    margin: 20px 0 18px;
}

/* Card container */
.ip-admin .k-card {
    background: #fff;
    border: 1px solid #e6e8eb;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    overflow: hidden;
    margin-bottom: 16px;
}
.ip-admin .k-card-body { padding: 28px 32px; }

/* Neutralise Telerik uppercase on every admin button */
.ip-admin .k-button,
.ip-admin .k-button .k-button-text { text-transform: none; }

/* Controls bar / filter bar */
.ip-admin .controls-bar {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    flex-wrap: wrap;
}
.ip-admin .field-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #9ca3af;
    margin-bottom: 10px;
}
.ip-admin .merchant-select { min-width: 340px; flex: 1; max-width: 520px; }
.ip-admin .btn-icon { margin-right: 8px; display: inline-flex; align-items: center; }
.ip-admin .loader-inline { margin-left: 6px; }
.ip-admin .info-text,
.ip-admin .result-count { font-size: 13px; color: #6b7280; white-space: nowrap; align-self: center; }
.ip-admin .alert-inline { margin-top: 12px; margin-bottom: 0; }

/* Inputs (DatePicker, DropDownList, TextBox) — full box border */
.ip-admin .k-input.k-input-solid,
.ip-admin .k-picker.k-picker-solid {
    border: 1px solid #e6e8eb !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
    height: 44px;
}
.ip-admin .k-input.k-input-solid::before,
.ip-admin .k-input.k-input-solid::after,
.ip-admin .k-picker.k-picker-solid::before,
.ip-admin .k-picker.k-picker-solid::after {
    display: none !important;
    content: none !important;
}
.ip-admin .k-input.k-input-solid:focus-within,
.ip-admin .k-picker.k-picker-solid:focus-within {
    border-color: #2e3a6c !important;
    box-shadow: 0 0 0 3px rgba(46, 58, 108, 0.12) !important;
}
.ip-admin .k-input.k-input-solid .k-input-inner,
.ip-admin .k-picker.k-picker-solid .k-input-inner {
    padding: 10px 12px;
    font-size: 14px;
    color: #1f2937;
}
.ip-admin .k-input.k-input-solid .k-input-button,
.ip-admin .k-picker.k-picker-solid .k-input-button {
    background: transparent !important;
    border: none !important;
    color: #9ca3af !important;
}

/* Primary navy button */
.ip-admin .k-button.btn-primary-navy {
    background-color: #2e3a6c;
    border: 1px solid #2e3a6c;
    color: #fff;
    border-radius: 10px;
    padding: 0 24px;
    height: 44px;
    min-height: 44px;
    font-weight: 500;
    font-size: 14px;
}
.ip-admin .k-button.btn-primary-navy:hover,
.ip-admin .k-button.btn-primary-navy:focus {
    background-color: #24305a;
    border-color: #24305a;
    color: #fff;
}

/* Secondary outline navy */
.ip-admin .k-button.btn-secondary-navy {
    background: #fff;
    border: 1px solid #2e3a6c;
    color: #2e3a6c;
    border-radius: 10px;
    padding: 0 20px;
    height: 44px;
    min-height: 44px;
    font-weight: 500;
    font-size: 14px;
}
.ip-admin .k-button.btn-secondary-navy:hover,
.ip-admin .k-button.btn-secondary-navy:focus {
    background: #f2f4fa;
    color: #24305a;
    border-color: #24305a;
}

/* Grid section */
.ip-admin .grid-section { margin-top: 16px; }
.ip-admin .grid-section .k-card-body { padding: 0; }

.ip-admin .search-row {
    margin-bottom: 0;
    padding: 24px 24px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.ip-admin .search-field { flex: 0 1 450px; max-width: 450px; }
.ip-admin .search-field .k-textbox.k-input {
    border-radius: 999px !important;
    background-color: #f8fafc !important;
    border-color: #e6e8eb !important;
    height: 44px;
}
.ip-admin .search-field .k-input-inner { padding: 10px 4px; font-size: 14px; }
.ip-admin .search-field .k-input-prefix,
.ip-admin .search-field .k-input-suffix { padding: 0 10px; color: #9ca3af; }
.ip-admin .search-field .k-input-separator { display: none; }

/* Grid shell */
.ip-admin .k-grid { border: none; background: transparent; font-family: inherit; }
.ip-admin .k-grid-header,
.ip-admin .k-grid-header-wrap { background: transparent; border-color: #eef0f3; }
.ip-admin .k-grid-header .k-header {
    padding: 14px 16px;
    background: #fafbfc;
    border: none;
    border-bottom: 1px solid #eef0f3;
    vertical-align: middle;
}
.ip-admin .k-grid-header .k-header:first-child { border-top-left-radius: 8px; }
.ip-admin .k-grid-header .k-header:last-child  { border-top-right-radius: 8px; }
.ip-admin .k-grid-header .k-column-title {
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.8px;
    color: #9ca3af;
    font-weight: 700;
}
.ip-admin .k-grid-header .k-sort-icon { color: #9ca3af; }

.ip-admin .k-grid .k-table-td {
    padding: 22px 16px;
    border: none;
    border-bottom: 1px solid #f1f3f5;
    vertical-align: middle;
    background: transparent;
    font-size: 14px;
    color: #374151;
}
.ip-admin .k-grid .k-table-row,
.ip-admin .k-grid .k-table-row.k-alt { background: transparent; }
.ip-admin .k-grid .k-table-row:hover,
.ip-admin .k-grid .k-table-row.k-alt:hover { background: #fafbfc !important; }

/* Kill Material's sorted-column tint */
.ip-admin .k-grid col.k-sorted,
.ip-admin .k-grid .k-table-td.k-sorted-cell,
.ip-admin .k-grid .k-table-td.k-sorted {
    background-color: transparent !important;
}
.ip-admin .k-grid-header .k-header.k-sorted { background-color: #fafbfc !important; }

/* Cell typography */
.ip-admin .date-primary {
    font-weight: 700;
    color: #1f2937;
    font-size: 14px;
    line-height: 1.3;
}
.ip-admin .text-sub { font-size: 11px; color: #9ca3af; margin-top: 4px; }

/* Amount stack */
.ip-admin .amount-stack { line-height: 1.5; }
.ip-admin .amount-detail { font-size: 12px; color: #9ca3af; margin-bottom: 3px; }
.ip-admin .amount-total { font-weight: 700; color: #1f2937; font-size: 15px; }

/* Pills */
.ip-admin .type-pill {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background-color: #f1f3f5;
    color: #495057;
    font-size: 12px;
    font-weight: 500;
}
.ip-admin .type-pill.type-info    { background-color: #d8eefc; color: #0c5a94; }
.ip-admin .type-pill.type-success { background-color: #d4f5e0; color: #1e7e34; }

.ip-admin .status-pill {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
}
.ip-admin .status-succeeded,
.ip-admin .status-active     { background-color: #d4f5e0; color: #1e7e34; }
.ip-admin .status-refunded,
.ip-admin .status-inactive,
.ip-admin .status-error      { background-color: #fde2e2; color: #c53030; }
.ip-admin .status-processing { background-color: #d8eefc; color: #0c5a94; }
.ip-admin .status-canceled   { background-color: #e5e7eb; color: #4b5563; }
.ip-admin .status-pending    { background-color: #fef5d6; color: #92610b; }

/* Action pills */
.ip-admin .action-btns { display: flex; gap: 8px; flex-wrap: nowrap; align-items: center; }
.ip-admin .k-button.btn-pill {
    border-radius: 999px;
    padding: 0 18px;
    height: 34px;
    min-height: 34px;
    font-weight: 500;
    font-size: 13px;
    border: 1px solid transparent;
    min-width: auto;
}
.ip-admin .k-button.btn-refund-pill        { background: #fdf2d6; color: #b7791f; }
.ip-admin .k-button.btn-refund-pill:hover  { background: #f7e6b5; color: #8b5a11; }
.ip-admin .k-button.btn-cancel-pill        { background: #fde2e2; color: #c53030; }
.ip-admin .k-button.btn-cancel-pill:hover  { background: #fbcaca; color: #991b1b; }
.ip-admin .k-button.btn-details-pill       { background: #2e3a6c; color: #fff; }
.ip-admin .k-button.btn-details-pill:hover { background: #24305a; color: #fff; }
.ip-admin .k-button.btn-receipt-pill       { background: #d4f5e0; color: #1e7e34; }
.ip-admin .k-button.btn-receipt-pill:hover { background: #bce9ce; color: #155724; }

/* Outline pill (used for edit/deactivate action buttons) */
.ip-admin .k-button.btn-pill-outline {
    border-radius: 999px;
    padding: 0 18px;
    height: 34px;
    min-height: 34px;
    font-weight: 500;
    font-size: 13px;
    background: #fff;
    border: 1px solid #2e3a6c;
    color: #2e3a6c;
    min-width: auto;
}
.ip-admin .k-button.btn-pill-outline:hover { background: #f2f4fa; color: #24305a; }
.ip-admin .k-button.btn-pill-outline.danger { border-color: #c53030; color: #c53030; }
.ip-admin .k-button.btn-pill-outline.danger:hover { background: #fde2e2; color: #991b1b; }

/* Pager */
.ip-admin .k-pager.k-grid-pager {
    background: #fafbfc !important;
    border: none !important;
    border-top: 1px solid #e6e8eb !important;
    padding: 12px 24px !important;
    margin-top: 0;
}
.ip-admin .k-pager .k-pager-numbers-wrap { gap: 4px; }
.ip-admin .k-pager .k-pager-numbers .k-button,
.ip-admin .k-pager .k-pager-nav.k-button {
    border-radius: 8px !important;
    min-width: 36px !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    color: #6b7280 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.ip-admin .k-pager .k-pager-numbers .k-button.k-selected,
.ip-admin .k-pager .k-pager-numbers .k-button.k-selected:hover,
.ip-admin .k-pager .k-pager-numbers .k-button.k-selected:focus {
    background-color: #2e3a6c !important;
    color: #fff !important;
    border-radius: 8px !important;
}
.ip-admin .k-pager .k-pager-numbers .k-button:not(.k-selected):hover,
.ip-admin .k-pager .k-pager-nav.k-button:not(.k-disabled):hover {
    background-color: #f1f3f5 !important;
    color: #1f2937 !important;
}
.ip-admin .k-pager .k-pager-info { color: #6b7280; font-size: 13px; }

/* Page header (used by UsersPanel) */
.ip-admin .page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 20px 0 18px;
}
.ip-admin .page-header h4 { margin: 0; font-size: 20px; font-weight: 700; color: #1f2937; }

/* ════════════════════════════════════════════════════════════
   Global popups (body-level, can't be scoped to .ip-admin)
   ════════════════════════════════════════════════════════════ */

/* Date picker calendar popup */
.k-popup.k-datepicker-popup,
.k-popup.k-calendar-container {
    border: 1px solid #e6e8eb !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.10) !important;
    background: #fff !important;
    padding: 8px !important;
}
.k-popup.k-datepicker-popup .k-calendar,
.k-popup.k-calendar-container .k-calendar {
    border: none !important;
    background: transparent !important;
    font-family: 'Inter', 'Roboto', system-ui, sans-serif;
}
.k-popup.k-datepicker-popup .k-calendar-header,
.k-popup.k-calendar-container .k-calendar-header { padding: 8px 8px 6px; }
.k-popup.k-datepicker-popup .k-calendar-title,
.k-popup.k-calendar-container .k-calendar-title {
    color: #2e3a6c !important;
    font-weight: 600 !important;
    text-transform: none !important;
    font-size: 14px !important;
    border-radius: 8px !important;
}
.k-popup.k-datepicker-popup .k-calendar-title:hover,
.k-popup.k-calendar-container .k-calendar-title:hover { background: #f2f4fa !important; }
.k-popup.k-datepicker-popup .k-calendar-nav-today,
.k-popup.k-calendar-container .k-calendar-nav-today {
    color: #6b7280 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    letter-spacing: 0.8px !important;
    border-radius: 8px !important;
}
.k-popup.k-datepicker-popup .k-calendar-nav-prev,
.k-popup.k-datepicker-popup .k-calendar-nav-next,
.k-popup.k-calendar-container .k-calendar-nav-prev,
.k-popup.k-calendar-container .k-calendar-nav-next {
    color: #6b7280 !important;
    border-radius: 8px !important;
}
.k-popup.k-datepicker-popup .k-calendar-nav-prev:hover,
.k-popup.k-datepicker-popup .k-calendar-nav-next:hover,
.k-popup.k-datepicker-popup .k-calendar-nav-today:hover,
.k-popup.k-calendar-container .k-calendar-nav-prev:hover,
.k-popup.k-calendar-container .k-calendar-nav-next:hover,
.k-popup.k-calendar-container .k-calendar-nav-today:hover {
    background: #f1f3f5 !important;
    color: #1f2937 !important;
}
.k-popup.k-datepicker-popup .k-calendar-th,
.k-popup.k-calendar-container .k-calendar-th {
    color: #9ca3af !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.6px !important;
    text-transform: uppercase !important;
}
.k-popup.k-datepicker-popup .k-calendar-td,
.k-popup.k-calendar-container .k-calendar-td { color: #374151 !important; font-size: 13px; }
.k-popup.k-datepicker-popup .k-calendar-td .k-link,
.k-popup.k-calendar-container .k-calendar-td .k-link {
    border-radius: 999px !important;
    transition: background 0.15s, color 0.15s;
}
.k-popup.k-datepicker-popup .k-calendar-td:hover .k-link,
.k-popup.k-datepicker-popup .k-calendar-td .k-link:hover,
.k-popup.k-calendar-container .k-calendar-td:hover .k-link,
.k-popup.k-calendar-container .k-calendar-td .k-link:hover {
    background: #f1f3f5 !important;
    color: #1f2937 !important;
}
.k-popup.k-datepicker-popup .k-calendar-td.k-other-month,
.k-popup.k-calendar-container .k-calendar-td.k-other-month { color: #d1d5db !important; }
.k-popup.k-datepicker-popup .k-calendar-td.k-today:not(.k-selected) .k-link,
.k-popup.k-calendar-container .k-calendar-td.k-today:not(.k-selected) .k-link {
    color: #2e3a6c !important;
    font-weight: 700 !important;
    box-shadow: inset 0 0 0 1px #2e3a6c;
}
.k-popup.k-datepicker-popup .k-calendar-td.k-selected .k-link,
.k-popup.k-datepicker-popup .k-calendar-td.k-selected:hover .k-link,
.k-popup.k-calendar-container .k-calendar-td.k-selected .k-link,
.k-popup.k-calendar-container .k-calendar-td.k-selected:hover .k-link {
    background-color: #2e3a6c !important;
    color: #fff !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}
.k-popup.k-datepicker-popup .k-calendar-td.k-focus:not(.k-selected) .k-link,
.k-popup.k-calendar-container .k-calendar-td.k-focus:not(.k-selected) .k-link {
    box-shadow: 0 0 0 2px rgba(46, 58, 108, 0.2) !important;
}

/* DropDownList / ComboBox / MultiSelect popup */
.k-popup.k-list-container,
.k-popup.k-dropdownlist-popup {
    border: 1px solid #e6e8eb !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.10) !important;
    background: #fff !important;
    padding: 8px !important;
    font-family: 'Inter', 'Roboto', system-ui, sans-serif;
}
.k-popup.k-list-container .k-list-filter { padding: 4px 4px 8px; }
.k-popup.k-list-container .k-list-filter .k-searchbox,
.k-popup.k-list-container .k-list-filter .k-input-solid {
    border: 1px solid #e6e8eb !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
    height: 40px;
}
.k-popup.k-list-container .k-list-filter .k-searchbox::before,
.k-popup.k-list-container .k-list-filter .k-searchbox::after,
.k-popup.k-list-container .k-list-filter .k-input-solid::before,
.k-popup.k-list-container .k-list-filter .k-input-solid::after {
    display: none !important;
    content: none !important;
}
.k-popup.k-list-container .k-list-filter .k-searchbox:focus-within,
.k-popup.k-list-container .k-list-filter .k-input-solid:focus-within {
    border-color: #2e3a6c !important;
    box-shadow: 0 0 0 3px rgba(46, 58, 108, 0.12) !important;
}
.k-popup.k-list-container .k-list-filter .k-input-icon { color: #9ca3af !important; margin: 0 8px; }
.k-popup.k-list-container .k-list-filter .k-input-inner {
    font-size: 14px !important;
    color: #1f2937 !important;
    padding: 8px 4px !important;
}
.k-popup.k-list-container .k-list-optionlabel {
    color: #9ca3af !important;
    font-size: 13px !important;
    padding: 10px 14px !important;
    background: transparent !important;
    border-radius: 8px !important;
    margin: 2px 4px;
}
.k-popup.k-list-container .k-list-optionlabel:hover { background: #f2f4fa !important; color: #1f2937 !important; }
.k-popup.k-list-container .k-list,
.k-popup.k-list-container .k-list-content,
.k-popup.k-list-container .k-list-ul { background: transparent !important; }
.k-popup.k-list-container .k-list-item {
    color: #374151 !important;
    font-size: 14px !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    margin: 2px 4px;
    background: transparent !important;
    transition: background 0.15s, color 0.15s;
}
.k-popup.k-list-container .k-list-item .k-list-item-text { color: inherit !important; }
.k-popup.k-list-container .k-list-item:hover,
.k-popup.k-list-container .k-list-item.k-hover {
    background: #f2f4fa !important;
    color: #1f2937 !important;
}
.k-popup.k-list-container .k-list-item.k-focus:not(.k-selected) {
    background: #f1f3f5 !important;
    color: #1f2937 !important;
    box-shadow: none !important;
}
.k-popup.k-list-container .k-list-item.k-selected,
.k-popup.k-list-container .k-list-item.k-selected.k-focus,
.k-popup.k-list-container .k-list-item.k-selected:hover {
    background: #2e3a6c !important;
    color: #fff !important;
    box-shadow: none !important;
}
.k-popup.k-list-container .k-list-item.k-selected .k-list-item-text,
.k-popup.k-list-container .k-list-item.k-selected:hover .k-list-item-text { color: #fff !important; }
.k-popup.k-list-container .k-list-content {
    scrollbar-width: thin;
    scrollbar-color: #d1d5db transparent;
}
.k-popup.k-list-container .k-list-content::-webkit-scrollbar { width: 8px; }
.k-popup.k-list-container .k-list-content::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

/* ════════════════════════════════════════════════════════════
   Modals / Dialogs (body-level) — shared utilities
   ════════════════════════════════════════════════════════════ */
.modal-scroll { padding: 20px; overflow-y: auto; }
.no-data { text-align: center; color: #6b7280; padding: 30px 0; }

.report-table { width: 100%; border-collapse: collapse; margin-top: 24px; }
.report-table thead tr { background: #fafbfc; border-bottom: 1px solid #e6e8eb; }
.report-table th,
.report-table td { padding: 10px 12px; }
.report-table th {
    text-align: left;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.6px;
    color: #9ca3af;
    font-weight: 700;
}
.report-table tbody tr { border-bottom: 1px solid #f1f3f5; }
.report-table tfoot tr { border-top: 1px solid #e6e8eb; background: #fafbfc; }
.report-table tfoot td { font-weight: 700; color: #1f2937; }
.col-right { text-align: right; }
.col-mono { font-family: 'SFMono-Regular', Consolas, monospace; font-size: 12px; }
.col-muted { color: #6b7280; }
.col-success { font-weight: 600; color: #1e7e34; }
.col-sub { color: #9ca3af; }

.detail-section { margin-bottom: 25px; }
.detail-section h5 {
    border-bottom: 2px solid #2e3a6c;
    padding-bottom: 10px;
    margin-bottom: 15px;
    color: #1f2937;
    font-weight: 600;
}
.detail-table { width: 100%; border-collapse: collapse; }
.detail-table tr { border-bottom: 1px solid #f1f3f5; }
.detail-table td { padding: 10px 0; }
.detail-table .lbl { font-weight: 600; width: 30%; color: #374151; }
.detail-table .lbl-mono {
    font-weight: 600;
    width: 30%;
    font-family: 'SFMono-Regular', Consolas, monospace;
    color: #6b7280;
    font-size: 12px;
}

.detail-section .status-pill {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
}
.detail-section .status-succeeded  { background-color: #d4f5e0; color: #1e7e34; }
.detail-section .status-refunded   { background-color: #fde2e2; color: #c53030; }
.detail-section .status-processing { background-color: #d8eefc; color: #0c5a94; }
.detail-section .status-canceled   { background-color: #e5e7eb; color: #4b5563; }
.detail-section .status-pending    { background-color: #fef5d6; color: #92610b; }

.loader-center { text-align: center; padding: 50px; }
.error-center { padding: 20px; text-align: center; color: #c53030; font-weight: bold; }

/* Alert (warning callout inside modals) */
.alert-warning-soft {
    background: #fff8e6;
    border: 1px solid #f4d79e;
    color: #92610b;
    padding: 12px 14px;
    border-radius: 8px;
    margin-bottom: 20px;
}

/* Sidebar nav (unchanged) */
.admin-nav-item {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    color: #333;
    text-decoration: none;
    font-size: 0.95rem;
    border-left: 3px solid transparent;
    transition: background 0.15s;
}
.admin-nav-item:hover { background: #ebebeb; color: #000; text-decoration: none; }
.admin-nav-item.active {
    background: #e3edf9;
    color: #0078d4;
    border-left-color: #0078d4;
    font-weight: 600;
}
