.cblms-amount-highlight {
    font-weight: 800;
    font-size: 1.12em;
    color: #0f766e;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
#pay_context_body {
    font-size: 0.92rem;
}
#pay_context_body .pay-context-amount,
#pay_context_body .cblms-amount-highlight {
    display: inline-block;
    font-size: 1.45rem;
    font-weight: 900;
    color: #0b6e4f;
    line-height: 1.2;
}
html[data-bs-theme="dark"] .cblms-amount-highlight {
    color: #5eead4;
}
html[data-bs-theme="dark"] #pay_context_body .pay-context-amount,
html[data-bs-theme="dark"] #pay_context_body .cblms-amount-highlight {
    color: #34d399;
}

html {
    font-size: 15.5px;
}

:root {
    --bs-body-font-size: 1rem;
    --primary: #1a5f7a;
    --secondary: #159895;
    --sidebar-width: 280px;
    /* Admin UI tokens — overridden in dark mode via theme.css */
    --cblms-fg: #0f172a;
    --cblms-fg-heading: #0b1220;
    --cblms-fg-muted: #334155;
    --cblms-fg-soft: #64748b;
    --cblms-surface: #ffffff;
    --cblms-surface-soft: #f8fafc;
    --cblms-surface-muted: #e8eef4;
    --cblms-table-head-bg: #e8eef4;
    --cblms-border: #e2e8f0;
    --cblms-table-hover: #f1f5f9;
}

body { background: #f4f7fb; font-family: "Segoe UI", Tahoma, sans-serif; font-size: 1rem; }

/* Item-name search: hide unmatched rows reliably */
tr.cblms-row-hidden,
table tbody tr.cblms-row-hidden {
    display: none !important;
}
html:has(body.admin-layout) {
    overflow-x: hidden;
    max-width: 100%;
}
body.admin-layout {
    overflow-x: hidden;
    max-width: 100%;
}
.auth-body { background: linear-gradient(135deg, #1a5f7a, #159895); }
.auth-card { border-radius: 1rem; }
.sidebar-logo {
    height: 32px; width: auto; object-fit: contain;
    background: transparent; border-radius: 0; padding: 0;
    box-shadow: none; border: 0; filter: none;
}
.auth-logo { height: 84px; width: auto; object-fit: contain; box-shadow: none; filter: none; }
.admin-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: auto;
    width: var(--sidebar-width);
    height: 100vh;
    height: 100dvh;
    background: linear-gradient(180deg, #12394a, #1a5f7a);
    z-index: 1045;
    transition: left .28s ease, right .28s ease, transform .28s ease, visibility .28s ease;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
html[dir="rtl"] .admin-sidebar {
    left: auto;
    right: 0;
}
.admin-sidebar .nav-link { color: rgba(255,255,255,.95); border-radius: .75rem; margin-bottom: .35rem; font-weight: 600; }
.admin-sidebar .nav-link:hover { background: rgba(255,255,255,.12); color: #fff; }
.admin-sidebar .nav-link.active {
    background: rgba(255,255,255,.18);
    color: #fff;
    box-shadow: inset 3px 0 0 #f0c14a;
}
html[dir="rtl"] .admin-sidebar .nav-link.active {
    box-shadow: inset -3px 0 0 #f0c14a;
}
.sidebar-nav-groups {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap !important;
    gap: 0.25rem;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: 2.5rem;
    padding-inline: 0.15rem 0.35rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.55) rgba(0, 0, 0, 0.22);
}
.sidebar-nav-groups::-webkit-scrollbar {
    width: 9px;
}
.sidebar-nav-groups::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.22);
    border-radius: 999px;
    margin: 6px 0;
}
.sidebar-nav-groups::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.34));
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
}
.sidebar-nav-groups::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.58), rgba(255, 255, 255, 0.34));
}
.sidebar-brand-block {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    margin-bottom: 0.35rem;
    flex-shrink: 0;
}
.sidebar-group {
    margin-bottom: 0.35rem;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
}
.sidebar-group-toggle {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    border: 0;
    background: rgba(0, 0, 0, 0.18);
    color: #fff;
    border-radius: 0.75rem;
    padding: 0.65rem 0.85rem;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: start;
    cursor: pointer;
}
.sidebar-group-toggle:hover,
.sidebar-group-toggle:focus {
    background: rgba(0, 0, 0, 0.28);
    color: #fff;
    outline: none;
}
.sidebar-group-title {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
    flex: 1;
}
.sidebar-nav-icon {
    width: 1.15rem;
    flex-shrink: 0;
    text-align: center;
    font-size: 0.92rem;
    line-height: 1.35;
    margin-top: 0.1rem;
}
.sidebar-nav-label {
    min-width: 0;
    line-height: 1.35;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
}
.sidebar-group-caret {
    font-size: 0.72rem;
    opacity: 0.85;
    transition: transform .2s ease;
    flex-shrink: 0;
    margin-top: 0.2rem;
}
.sidebar-group.is-open .sidebar-group-caret {
    transform: rotate(180deg);
}
.sidebar-group-body {
    padding: 0.25rem 0 0.15rem 0.35rem;
    overflow: visible;
}
.sidebar-group.is-open .sidebar-group-body {
    overflow: visible;
}
html[dir="rtl"] .sidebar-group-body {
    padding: 0.25rem 0.35rem 0.15rem 0;
}
.admin-sidebar .sidebar-sublink {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.35;
    padding: 0.48rem 0.75rem;
    margin-bottom: 0.2rem;
    opacity: 0.96;
}
.admin-sidebar .sidebar-sublink .badge,
.admin-sidebar .sidebar-sublink .sidebar-nav-badge {
    margin-inline-start: auto;
    flex-shrink: 0;
}
.sidebar-brand-row {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
}
.sidebar-mobile-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0.85rem 0.75rem 0;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    cursor: pointer;
}
.sidebar-mobile-close:hover,
.sidebar-mobile-close:focus {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
    outline: none;
}
.admin-mobile-menu-btn {
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-mobile-menu-btn i {
    font-size: 1.05rem;
    line-height: 1;
}
.admin-mobile-menu-btn.is-open {
    background: var(--cblms-surface-soft);
    border-color: var(--primary);
    color: var(--primary);
}
html[data-bs-theme="dark"] .admin-mobile-menu-btn.is-open {
    background: #243447;
    border-color: #7bbce8;
    color: #7bbce8;
}
.admin-topbar-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    flex-shrink: 1;
}
.admin-topbar-tools {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}
.admin-topbar-icon-btn {
    width: 2.35rem;
    height: 2.35rem;
    min-width: 2.35rem;
    min-height: 2.35rem;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 0.65rem;
}
.admin-topbar-icon-btn > i {
    font-size: 0.95rem;
    line-height: 1;
}
.admin-topbar-tools .cblms-lang-toggle {
    width: auto;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 0.45rem;
    border-radius: 0.65rem;
    flex-shrink: 0;
}
.admin-topbar-tools .cblms-theme-toggle-admin {
    width: 2.35rem;
    min-width: 2.35rem;
    height: 2.35rem;
    padding: 0 !important;
    gap: 0;
}
.admin-topbar-tools .cblms-theme-toggle-admin [data-theme-icon] {
    font-size: 0.95rem;
}
.dropdown-toggle-no-caret::after {
    display: none !important;
}
.admin-topbar-actions .btn-sm,
.admin-topbar-actions .cblms-theme-toggle-admin {
    min-height: 2.35rem;
}
.admin-topbar-actions .btn-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-topbar .cblms-lang-label {
    display: inline;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1;
}
@media (min-width: 576px) {
    .admin-topbar-tools .cblms-lang-toggle {
        min-width: 3.1rem;
        padding: 0 0.5rem !important;
    }
}
.admin-content {
    margin-left: var(--sidebar-width);
    min-height: 100vh;
    transition: margin .28s ease;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
}
html[dir="rtl"] .admin-content {
    margin-left: 0;
    margin-right: var(--sidebar-width);
}
.admin-topbar {
    background: #fff;
    border-bottom: 1px solid #e8edf5;
    position: sticky;
    top: 0;
    z-index: 1030;
    max-width: 100%;
}
.admin-topbar-start {
    flex: 1 1 auto;
    min-width: 0;
}
.admin-main {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
}
.topbar-back-btn {
    min-width: 2.1rem;
    justify-content: center;
}
.page-back-bar .page-back-btn {
    font-weight: 600;
    border-width: 1.5px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}
.page-back-bar .page-back-btn:hover {
    background: #eef6f8;
    border-color: var(--primary);
    color: var(--primary);
}

/* Sidebar hide / show controls */
.sidebar-brand-text {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    word-break: break-word;
}
.sidebar-collapse-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: calc(100% - 1rem);
    margin: 0 0.5rem 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
}
.sidebar-collapse-btn:hover,
.sidebar-collapse-btn:focus {
    background: rgba(255, 255, 255, 0.24);
    color: #fff;
    outline: none;
}
.sidebar-collapse-btn:focus-visible {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.sidebar-toggle-btn {
    font-weight: 700;
    min-height: 2.25rem;
}
.sidebar-toggle-btn.btn-success {
    box-shadow: 0 0 0 3px rgba(21, 152, 149, 0.25);
}

/* Compact icon button when desktop sidebar is hidden */
.sidebar-reopen-btn {
    position: fixed;
    top: 0.72rem;
    inset-inline-start: 0.72rem;
    z-index: 2000;
    display: none !important;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    background: #fff;
    color: var(--primary);
    border: 1px solid #e8edf5;
    border-radius: 0.65rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.sidebar-reopen-btn .sidebar-reopen-icon {
    font-size: 0.95rem;
    line-height: 1;
}
html[dir="rtl"] .sidebar-reopen-btn .sidebar-reopen-icon {
    transform: scaleX(-1);
}
.sidebar-reopen-btn:hover,
.sidebar-reopen-btn:focus {
    background: #eef6f8;
    border-color: var(--primary);
    color: var(--primary);
    outline: none;
}
.sidebar-reopen-btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(26, 95, 122, 0.22);
}
html[dir="rtl"] .sidebar-collapse-icon {
    transform: scaleX(-1);
}

/* Desktop collapsed state — hide by moving off-screen (works LTR + RTL) */
@media (min-width: 992px) {
    body.sidebar-collapsed .admin-sidebar,
    html.sidebar-collapsed .admin-sidebar {
        left: calc(-1 * var(--sidebar-width) - 24px) !important;
        right: auto !important;
        transform: none !important;
        visibility: hidden;
        pointer-events: none;
    }
    html[dir="rtl"] body.sidebar-collapsed .admin-sidebar,
    html[dir="rtl"].sidebar-collapsed .admin-sidebar {
        right: calc(-1 * var(--sidebar-width) - 24px) !important;
        left: auto !important;
        transform: none !important;
        visibility: hidden;
        pointer-events: none;
    }
    body.sidebar-collapsed .admin-content,
    html.sidebar-collapsed .admin-content,
    html[dir="rtl"] body.sidebar-collapsed .admin-content,
    html[dir="rtl"].sidebar-collapsed .admin-content {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    body.sidebar-collapsed .sidebar-reopen-btn,
    html.sidebar-collapsed .sidebar-reopen-btn {
        display: inline-flex !important;
    }
}
.stat-card, .workflow-card, .service-card, .package-card {
    background: #fff; border-radius: 1rem; box-shadow: 0 10px 30px rgba(20,40,80,.08);
}

/* Dashboard KPIs — larger, centered, bold */
.dash-filter-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--cblms-fg);
}
.dash-header-totals {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.85rem 1.5rem;
}
.dash-header-totals > div {
    min-width: 12rem;
}
.dash-period-total {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.55rem;
}
.dash-period-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--cblms-fg);
}
.dash-period-value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--cblms-fg-heading);
}
.dash-period-value small { font-size: 0.82rem; font-weight: 700; }
.dash-period-meta { font-size: 0.78rem; font-weight: 700; color: var(--cblms-fg-muted); }
.dash-kpi {
    border-radius: 0.7rem;
    padding: 0.75rem 0.7rem;
    height: 100%;
    border: 1px solid transparent;
    box-shadow: 0 3px 10px rgba(13, 59, 77, 0.07);
    min-height: 5.4rem;
    text-align: center !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.dash-kpi-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin-bottom: 0.28rem;
    line-height: 1.3;
    opacity: 1;
    text-align: center;
    width: 100%;
}
.dash-kpi-value {
    font-size: 1.28rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 0;
    text-align: center;
    width: 100%;
    direction: ltr;
    unicode-bidi: isolate;
}
.dash-kpi-value small {
    font-size: 0.78rem;
    font-weight: 700;
}
.dash-kpi-meta {
    font-size: 0.78rem;
    font-weight: 700;
    margin-top: 0.22rem;
    opacity: 1;
    text-align: center;
    width: 100%;
    direction: ltr;
    unicode-bidi: isolate;
}
.dash-kpi-navy { background: #14213d; color: #fff; }
.dash-kpi-teal { background: #1a5f7a; color: #fff; }
.dash-kpi-green { background: #0f5c45; color: #fff; }
.dash-kpi-gold { background: #8a6a28; color: #fff; }
.dash-kpi-slate { background: #334155; color: #fff; }
.dash-kpi-accent {
    background: linear-gradient(135deg, #0d3b4d, #1a5f7a);
    color: #fff;
    border: 1px solid #0d3b4d;
}
.dash-kpi-soft {
    background: var(--cblms-surface-muted);
    color: var(--cblms-fg);
    border-color: var(--cblms-border);
}
.dash-kpi-soft-teal {
    background: #d9eef5;
    color: #082f3a;
    border-color: #5fa8bf;
}
.dash-kpi-soft-gold {
    background: #f3e6c4;
    color: #4a3814;
    border-color: #c9a84a;
}
.dash-kpi-soft-navy {
    background: #dde3ef;
    color: #0f172a;
    border-color: #8b9bb8;
}
.accountant-period-bar {
    background: linear-gradient(180deg, #eef6fa, #fff);
    border-color: #c5d6e3 !important;
}
#tabHotel .accountant-hotel-field {
    min-width: 0;
}
#tabHotel .accountant-hotel-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin-bottom: 0.45rem;
}
#tabHotel .accountant-all-hotels-check {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.28rem 0.7rem;
    border: 1px solid #1a5f7a;
    border-radius: 999px;
    background: #e8f4f8;
    color: #0b3d4e;
}
#tabHotel .accountant-all-hotels-check .form-check-input {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0;
    float: none;
}
#tabHotel .accountant-all-hotels-check .form-check-label {
    margin: 0;
}
#tabHotel .accountant-hotel-field .select2-container {
    width: 100% !important;
    min-width: 10rem !important;
    min-height: 38px !important;
    display: block !important;
}
#tabHotel .accountant-hotel-field .select2-selection--single,
#tabHotel .accountant-hotel-field .select2-selection--multiple {
    min-height: 38px !important;
    border: 1px solid #8aa4b5 !important;
    background: #fff !important;
}
#tabHotel .accountant-hotel-field .select2-selection--single {
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
}
#tabHotel .accountant-hotel-field .select2-selection--multiple {
    height: auto !important;
    padding: 0.15rem 0.4rem !important;
}
#tabHotel .accountant-hotel-field .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.25rem !important;
    min-height: 30px !important;
    padding: 0 !important;
}
#tabHotel .accountant-hotel-field .select2-selection--multiple .select2-search--inline .select2-search__field {
    min-height: 26px !important;
    margin-top: 0 !important;
    font-size: 0.9rem !important;
}
#tabHotel .accountant-hotel-field .select2-selection__rendered {
    font-weight: 700 !important;
    color: #0b1220 !important;
    line-height: 1.4 !important;
}
#regularResultsTable tbody tr.row-unpaid,
#packageResultsTable tbody tr.row-unpaid,
#subscriptionResultsTable tbody tr.row-unpaid,
#regularBalancesTable tbody tr.row-unpaid,
#packageBalancesTable tbody tr.row-unpaid,
#reprintRegularTable tbody tr.row-unpaid,
#reprintPackageTable tbody tr.row-unpaid,
#reprintSubscriptionTable tbody tr.row-unpaid {
    background: #fff3e6 !important;
}
#regularResultsTable tbody tr.row-unpaid td,
#packageResultsTable tbody tr.row-unpaid td,
#subscriptionResultsTable tbody tr.row-unpaid td,
#regularBalancesTable tbody tr.row-unpaid td,
#packageBalancesTable tbody tr.row-unpaid td,
#reprintRegularTable tbody tr.row-unpaid td,
#reprintPackageTable tbody tr.row-unpaid td,
#reprintSubscriptionTable tbody tr.row-unpaid td {
    color: #6b2d0c;
}
.pay-status-unpaid {
    color: #a03b0f;
    font-weight: 800;
}
.pay-status-paid {
    color: #0f5c45;
    font-weight: 700;
}
.balance-sheet-page .bs-section-title {
    font-weight: 800;
    margin-bottom: 0.5rem;
    color: var(--cblms-fg-heading, #1a1a1a);
}
.balance-sheet-page .bs-report-wrap {
    background: linear-gradient(180deg, #f8fafc 0%, #fff 48px);
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    padding: 1rem 1.25rem;
}
.balance-sheet-page .bs-report-header {
    border-bottom: 2px solid #0f766e;
    padding-bottom: 0.75rem;
}
#bsEntriesTable .bs-group-head td {
    background: #f1f5f9;
    font-weight: 800;
}
.bs-item-matrix th,
.bs-item-matrix td {
    white-space: nowrap;
}
.cblms-month-year-period:not(.is-custom) .cblms-my-dates {
    display: none;
}
.cblms-month-year-period.is-year .cblms-my-month-col {
    display: none;
}
.cblms-month-year-period.is-all .cblms-my-year-col,
.cblms-month-year-period.is-all .cblms-my-month-col,
.cblms-month-year-period.is-all .cblms-my-dates {
    display: none;
}
.cblms-select-check-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
.cblms-opt-check {
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    border: 1px solid #64748b;
    border-radius: 0.2rem;
    background: #fff;
    position: relative;
}
.cblms-opt-check.is-checked,
.select2-results__option--selected .cblms-opt-check {
    background: #198754;
    border-color: #198754;
}
.cblms-opt-check.is-checked::after,
.select2-results__option--selected .cblms-opt-check::after {
    content: '';
    position: absolute;
    left: 0.22rem;
    top: 0.02rem;
    width: 0.32rem;
    height: 0.55rem;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
#hotelClonePickModal {
    z-index: 1095 !important;
}
body.modal-open .modal-backdrop + .modal-backdrop,
.modal-backdrop.hotel-clone-backdrop {
    z-index: 1090 !important;
}
#hotelNewPricesHotelBox {
    border-color: #9ec5fe !important;
}

#hotelPotCard.is-pot-locked .hotel-pot-lock-hint {
    display: block;
}
#hotelPotCard.is-pot-locked #hotelPotForm {
    opacity: 0.45;
    pointer-events: none;
}
.hotel-pot-lock-hint {
    display: none;
    font-size: 0.8rem;
}
.cblms-my-summary {
    font-weight: 800;
    color: var(--cblms-fg-heading, #0b1220);
    padding-top: 0.15rem;
}
.bs-compare-kpis .bs-cmp-card {
    border: 1px solid var(--cblms-border, #e2e8f0);
    border-radius: 0.75rem;
    padding: 0.9rem 1rem;
    background: var(--cblms-surface, #fff);
    height: 100%;
}
.bs-cmp-card .bs-cmp-label {
    font-size: 0.8rem;
    color: var(--cblms-fg-muted, #64748b);
    font-weight: 700;
}
.bs-cmp-card .bs-cmp-value {
    font-size: 1.25rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.bs-cmp-delta {
    font-size: 0.82rem;
    font-weight: 700;
}
.bs-cmp-up { color: #0f766e; }
.bs-cmp-down { color: #b91c1c; }
.bs-cmp-flat { color: #64748b; }
.bs-compare-chart-box {
    height: 280px;
    position: relative;
}
.bs-css-chart {
    padding: 0.25rem 0;
}
.bs-css-chart-row {
    margin-bottom: 0.7rem;
}
.bs-css-chart-name {
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
    text-align: center;
}
.bs-css-chart-bars {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.bs-css-bar {
    height: 14px;
    border-radius: 4px;
    min-width: 8px;
}
.bs-css-bar.is-cur { background: #0f766e; }
.bs-css-bar.is-prev { background: #0e7490; }
.bs-compare-table th,
.bs-compare-table td {
    vertical-align: middle;
    text-align: center !important;
}
.bs-result-table td {
    text-align: center !important;
    vertical-align: middle !important;
    font-weight: 700;
}
.bs-report-wrap table th,
.bs-report-wrap table td,
#bsReportOut table th,
#bsReportOut table td {
    text-align: center !important;
    vertical-align: middle !important;
}
.dash-table {
    font-size: 0.82rem;
}
.dash-table thead th {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--cblms-fg-heading);
    white-space: nowrap;
}
.dash-table tbody td {
    font-weight: 700;
    color: var(--cblms-fg);
}
.dash-board .card-header h6 {
    font-size: 1rem;
    font-weight: 800;
    color: var(--cblms-fg-heading);
}
.dash-board .btn-sm {
    font-size: 0.95rem;
    font-weight: 700;
    padding: 0.45rem 0.9rem;
}
.dash-revenue-table th,
.dash-revenue-table td {
    padding: 0.65rem 0.85rem;
}
.dash-unpaid-link {
    font-weight: 700;
    color: #b45309;
    text-decoration: none;
}
.dash-unpaid-link:hover {
    color: #92400e;
    text-decoration: underline;
}
.dash-paid-link {
    font-weight: 700;
    color: #15803d;
    text-decoration: none;
}
.dash-paid-link:hover {
    color: #166534;
    text-decoration: underline;
}
.dash-paid-link small {
    color: inherit;
    opacity: 0.85;
}
.dash-billed-link {
    font-weight: 700;
    color: var(--cblms-fg);
    text-decoration: none;
}
.dash-billed-link:hover {
    color: var(--cblms-primary, #2563eb);
    text-decoration: underline;
}
.dash-revenue-card .card-header h6 {
    font-size: 1.05rem;
    font-weight: 800;
}
.dash-summary-card {
    background: var(--cblms-surface);
    border: 1px solid var(--cblms-border);
    border-radius: 0.65rem;
    padding: 0.85rem 1rem;
    height: 100%;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: var(--cblms-fg);
}
.dash-summary-grand {
    background: linear-gradient(135deg, #14213d, #1a3a5c);
    color: #fff;
    border-color: transparent;
}
.dash-summary-grand .dash-unpaid-link,
.dash-summary-grand .dash-pending-link {
    color: #fde68a;
}
.dash-summary-title {
    font-weight: 800;
    font-size: 0.95rem;
    margin-bottom: 0.55rem;
}
.dash-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.88rem;
    margin-bottom: 0.25rem;
}
.dash-summary-row > span,
.dash-summary-row > strong,
.dash-summary-row a {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.dash-summary-row > strong {
    text-align: end;
    flex: 0 1 auto;
    max-width: 58%;
}
.dash-summary-click {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    width: 100%;
    cursor: pointer;
}
.dash-summary-click strong {
    text-align: end;
    flex: 0 1 auto;
    max-width: 58%;
}
html[dir="rtl"] .dash-summary-click strong {
    text-align: start;
}
html[dir="rtl"] .dash-summary-row > strong {
    text-align: start;
}
.dash-summary-meta {
    font-size: 0.78rem;
    margin-top: 0.45rem;
}
#dashHotelAuditModal .modal-dialog {
    max-width: 920px;
    max-height: calc(100dvh - 1.5rem);
    margin: 0.75rem auto;
}
.dash-audit-modal {
    max-height: calc(100dvh - 1.5rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
}
.dash-audit-modal .modal-header {
    flex: 0 0 auto;
    align-items: center;
    padding: 0.85rem 1.15rem;
    border-bottom: 1px solid var(--cblms-border);
}
.dash-audit-modal .modal-title {
    font-weight: 800;
    font-size: 1.02rem;
}
.dash-audit-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0.95rem 1.15rem 1.15rem;
    overflow: hidden;
}
.dash-audit-hint {
    flex: 0 0 auto;
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.45;
}
.dash-audit-toolbar {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 0.7rem 0.85rem;
    align-items: end;
}
@media (max-width: 767.98px) {
    .dash-audit-toolbar {
        grid-template-columns: 1fr;
    }
    .dash-audit-run {
        width: 100%;
    }
}
.dash-audit-field {
    min-width: 0;
}
.dash-audit-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.28rem;
    font-weight: 800;
    font-size: 0.8rem;
}
.dash-audit-label small {
    font-size: 0.7rem;
    color: #94a3b8;
    font-weight: 600;
}
.dash-audit-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    height: 2.55rem;
    padding: 0 0.8rem;
    border: 1px solid var(--cblms-border);
    border-radius: 0.65rem;
    background: #fff;
    color: inherit;
    text-align: start;
    line-height: 1.2;
}
.dash-audit-trigger:hover {
    border-color: #94a3b8;
}
.dash-audit-trigger-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.88rem;
}
.dash-audit-trigger i {
    color: #64748b;
    font-size: 0.72rem;
    transition: transform 0.15s ease;
}
.dash-audit-field.is-open .dash-audit-trigger {
    border-color: var(--cblms-primary, #1a5f7a);
    box-shadow: 0 0 0 3px rgba(26, 95, 122, 0.14);
}
.dash-audit-field.is-open .dash-audit-trigger i {
    transform: rotate(180deg);
}
.dash-audit-menu {
    display: none;
    flex-direction: column;
    position: fixed;
    z-index: 20050;
    min-width: 16rem;
    max-width: min(28rem, calc(100vw - 1rem));
    background: #fff;
    border: 1px solid var(--cblms-border);
    border-radius: 0.75rem;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.2);
    overflow: hidden;
}
.dash-audit-menu.is-open {
    display: flex;
}
.dash-audit-search-wrap {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0.55rem 0.6rem 0.4rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--cblms-border);
    border-radius: 0.5rem;
    background: #f8fafc;
    flex: 0 0 auto;
}
.dash-audit-search-wrap i {
    color: #64748b;
    font-size: 0.78rem;
}
.dash-audit-search {
    border: 0;
    background: transparent;
    width: 100%;
    font-size: 0.86rem;
    outline: none;
}
.dash-audit-menu-list {
    overflow-y: auto;
    max-height: 14.5rem;
    border-top: 1px solid #eef2f6;
}
.dash-audit-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    padding: 0.48rem 0.75rem;
    cursor: pointer;
    font-size: 0.86rem;
    min-height: 2.15rem;
}
.dash-audit-item + .dash-audit-item {
    border-top: 1px solid #f1f5f9;
}
.dash-audit-item:hover {
    background: #f8fafc;
}
.dash-audit-item.is-on {
    background: #ecfeff;
}
.dash-audit-item input {
    margin: 0;
    flex: 0 0 auto;
    accent-color: var(--cblms-primary, #1a5f7a);
}
.dash-audit-item span {
    line-height: 1.3;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dash-audit-empty {
    padding: 1rem 0.8rem;
    text-align: center;
    color: #94a3b8;
    font-size: 0.84rem;
}
.dash-audit-menu-foot {
    display: flex;
    gap: 0.35rem;
    padding: 0.45rem 0.55rem;
    border-top: 1px solid var(--cblms-border);
    background: #f8fafc;
    flex: 0 0 auto;
}
.dash-audit-chosen {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.55rem;
    min-height: 0;
}
.dash-audit-chosen.is-empty {
    display: none;
}
.dash-audit-chip {
    border: 0;
    background: #e0f2fe;
    color: #0f3d5c;
    border-radius: 999px;
    padding: 0.16rem 0.48rem;
    font-size: 0.74rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    max-width: 16rem;
    line-height: 1.3;
}
.dash-audit-chip[data-kind="months"] {
    background: #f1f5f9;
    color: #334155;
}
.dash-audit-chip span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 13rem;
}
.dash-audit-chip i {
    font-size: 0.6rem;
    opacity: 0.7;
}
.dash-audit-chip-more {
    font-size: 0.74rem;
    font-weight: 700;
    color: #64748b;
    padding: 0.16rem 0.35rem;
}
.dash-audit-run {
    white-space: nowrap;
    height: 2.55rem;
    padding-inline: 1.15rem;
    font-weight: 700;
}
.dash-audit-msg {
    flex: 0 0 auto;
    margin: 0.65rem 0 0;
    padding: 0.45rem 0.7rem;
    font-size: 0.82rem;
}
.dash-audit-table-wrap {
    flex: 1 1 auto;
    min-height: 10rem;
    margin-top: 0.75rem;
    overflow: auto;
    border: 1px solid var(--cblms-border);
    border-radius: 0.7rem;
}
#dashAuditTable thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8f9fa;
    box-shadow: 0 1px 0 var(--cblms-border);
}
#dashAuditTable tfoot td {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: #f8f9fa;
    box-shadow: 0 -1px 0 var(--cblms-border);
}
#dashAuditTable td {
    max-width: none;
}
.dash-pending-link {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #b45309;
    text-decoration: none;
}
.dash-pending-link:hover {
    color: #92400e;
    text-decoration: underline;
}
.dash-usage-card .card-header h6 {
    font-size: 1.05rem;
    font-weight: 800;
}
.dash-usage-metrics {
    align-items: stretch;
}
.dash-usage-metric {
    background: var(--cblms-surface-soft);
    border: 1px solid var(--cblms-border);
    border-radius: 0.55rem;
    padding: 0.65rem 0.75rem;
    height: 100%;
    color: var(--cblms-fg);
}
.dash-usage-metric-paid {
    background: #f0fdf4;
    border-color: #bbf7d0;
}
.dash-usage-metric-unpaid {
    background: #fffbeb;
    border-color: #fde68a;
}
.dash-usage-metric-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--cblms-fg-soft);
    margin-bottom: 0.2rem;
}
.dash-usage-metric-value {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
}
.dash-usage-metric-sub {
    font-size: 0.78rem;
    color: var(--cblms-fg-soft);
    margin-top: 0.15rem;
}
.dash-usage-pending {
    background: var(--cblms-surface-soft);
    border: 1px dashed var(--cblms-border);
    border-radius: 0.55rem;
    padding: 0.75rem 1rem;
    color: var(--cblms-fg);
}
.dash-pnl-card .card-header h6 {
    font-size: 1.05rem;
    font-weight: 800;
}
.dash-pnl-box {
    border: 1px solid var(--cblms-border);
    border-radius: 0.6rem;
    padding: 0.9rem 0.75rem;
    height: 100%;
    background: var(--cblms-surface);
    text-align: center;
}
.dash-pnl-box-exp {
    background: #fffbeb;
    border-color: #fde68a;
}
.dash-pnl-box-net.dash-pnl-positive {
    background: #f0fdf4;
    border-color: #86efac;
}
.dash-pnl-box-net.dash-pnl-negative {
    background: #fef2f2;
    border-color: #fecaca;
}
.dash-pnl-k {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--cblms-fg-soft);
    margin-bottom: 0.25rem;
}
.dash-pnl-v {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.25;
    word-break: break-word;
}
.dash-pnl-s {
    font-size: 0.75rem;
    color: var(--cblms-fg-muted);
    margin-top: 0.35rem;
    line-height: 1.35;
}
.dash-pnl-types {
    border-top: 1px dashed var(--cblms-border);
    padding-top: 0.85rem;
}
.dash-pnl-types-title {
    text-align: center;
    font-weight: 800;
    font-size: 0.85rem;
    margin-bottom: 0.55rem;
}
.dash-pnl-type {
    border: 1px solid var(--cblms-border);
    border-radius: 0.5rem;
    padding: 0.55rem 0.4rem;
    background: var(--cblms-surface-soft);
    height: 100%;
}
.dash-pnl-type-l {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--cblms-fg-soft);
    margin-bottom: 0.2rem;
}
.dash-pnl-type-n {
    font-weight: 800;
    font-size: 0.98rem;
}
.workflow-home-cards {
    --bs-gutter-x: 0.5rem;
    --bs-gutter-y: 0.5rem;
}
.workflow-card-media {
    height: 108px;
    background: linear-gradient(135deg, #eef5f7, #e4eef0);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
@media (min-width: 768px) {
    .workflow-card-media { height: 160px; }
}
.workflow-card-media img { width: 100%; height: 100%; object-fit: contain; }
.workflow-card-body { padding: 0.65rem 0.55rem 0.8rem !important; }
.workflow-card-body h3 {
    font-size: 0.95rem;
    margin-bottom: 0.35rem;
    line-height: 1.25;
}
.workflow-card-desc {
    display: none;
    font-size: 0.8rem;
    margin-bottom: 0.6rem;
}
@media (min-width: 768px) {
    .workflow-card-body { padding: 1rem !important; }
    .workflow-card-body h3 { font-size: 1.25rem; }
    .workflow-card-desc { display: block; }
}
.workflow-open-btn,
.worker-open-invoice-btn,
.worker-add-piece-btn {
    font-size: 1.05rem;
    font-weight: 800;
    padding: 0.7rem 0.65rem;
    letter-spacing: 0.02em;
    width: 100%;
}
@media (min-width: 768px) {
    .workflow-open-btn,
    .worker-open-invoice-btn,
    .worker-add-piece-btn {
        font-size: 1.2rem;
        padding: 0.9rem 1.25rem;
    }
}

.cblms-search-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}
.cblms-search-actions .js-new-search,
.cblms-search-actions #hotelNewSearchBtn,
button.js-new-search {
    font-weight: 800;
    min-height: 2.35rem;
    padding: 0.4rem 0.9rem;
}
.package-buy-extra-wrap {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
    padding-top: 0.35rem;
}
.package-buy-extra-btn {
    width: auto !important;
    max-width: none;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding: 0.55rem 1.1rem !important;
    letter-spacing: 0 !important;
    line-height: 1.3;
}
@keyframes workerAttentionPulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.55);
    }
    50% {
        transform: scale(1.03);
        box-shadow: 0 0 0 12px rgba(25, 135, 84, 0);
    }
}
.worker-attention-btn {
    animation: workerAttentionPulse 1.15s ease-in-out infinite;
}

#regularSearchResults .fw-semibold,
#packageSearchResults .fw-semibold {
    font-size: 0.9rem;
    color: var(--cblms-fg-heading);
    line-height: 1.35;
    word-break: break-word;
}
#regularSearchResults .row.g-3 > [class*="col-"],
#packageSearchResults .row.g-2 > [class*="col-"] {
    border-inline-end: 1px solid #eef1f5;
}
#regularSearchResults .row.g-3 > [class*="col-"]:last-child,
#packageSearchResults .row.g-2 > [class*="col-"]:last-child {
    border-inline-end: none;
}
.admin-content .icon-sm, .admin-content .fa-solid, .admin-content .fa-brands {
    font-size: .95em;
}
.btn .fa-solid, .btn .fa-brands { font-size: .9em; }
.luxury-nav { background: rgba(18,57,74,.95); backdrop-filter: blur(8px); }
.hero-section {
    min-height: 85vh;
    background: linear-gradient(135deg, rgba(18,57,74,.92), rgba(21,152,149,.85)), url('../images/hero.jpg') center/cover;
}
.site-footer { background: #12394a; color: #fff; }

@media (max-width: 991px) {
    .admin-sidebar {
        width: min(280px, 86vw);
        z-index: 1060;
        left: 0 !important;
        right: auto !important;
        box-shadow: 10px 0 30px rgba(0,0,0,.25);
        transform: translateX(-105%);
        visibility: hidden;
        pointer-events: none;
        -webkit-overflow-scrolling: touch;
    }
    html[dir="rtl"] .admin-sidebar {
        left: auto !important;
        right: 0 !important;
        transform: translateX(105%);
        box-shadow: -10px 0 30px rgba(0,0,0,.25);
    }
    .admin-sidebar.show {
        transform: translateX(0) !important;
        pointer-events: auto;
        visibility: visible;
    }
    .admin-content,
    html[dir="rtl"] .admin-content {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100%;
        max-width: 100vw;
    }
    body.sidebar-open {
        overflow: hidden;
    }
    body.sidebar-open::after {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.55);
        z-index: 1055;
    }
    .sidebar-reopen-btn {
        display: none !important;
    }
    .admin-topbar {
        gap: 0.35rem;
        padding-inline: max(0.5rem, env(safe-area-inset-left)) max(0.5rem, env(safe-area-inset-right));
        overflow: visible;
    }
    .admin-topbar-start {
        flex: 0 0 auto;
    }
    .admin-topbar-actions {
        flex: 1 1 auto;
        justify-content: flex-end;
        gap: 0.25rem;
        min-width: 0;
        overflow: visible;
    }
    .admin-topbar-tools {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        min-width: 0;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .admin-topbar-tools::-webkit-scrollbar {
        display: none;
    }
    .admin-topbar-icon-btn,
    .admin-topbar-tools .cblms-lang-toggle,
    .admin-topbar-tools .cblms-theme-toggle-admin {
        width: 2.1rem;
        min-width: 2.1rem;
        height: 2.1rem;
        min-height: 2.1rem;
        padding: 0 !important;
    }
    .admin-topbar-tools .cblms-lang-toggle {
        padding: 0 0.35rem !important;
        width: auto;
        min-width: 2.1rem;
    }
    .admin-topbar-actions .cblms-theme-label,
    .admin-topbar-actions #notifDndLabel {
        display: none !important;
    }
    .admin-topbar .cblms-lang-label {
        display: none !important;
    }
    .admin-user-menu {
        flex-shrink: 0;
        position: relative;
    }
    .admin-user-menu .dropdown-menu {
        z-index: 1070;
    }
    .admin-user-menu-toggle {
        padding-inline: 0.35rem !important;
    }
    .admin-user-menu-name {
        display: none !important;
    }
    .dash-period-total {
        justify-content: flex-start;
    }
    .dash-period-value {
        font-size: 1.5rem;
    }
    .dash-period-meta {
        font-size: 0.82rem;
        line-height: 1.45;
        overflow-wrap: anywhere;
    }
    .dash-board .card-body,
    .dash-summary-card {
        padding-inline: 0.75rem;
    }
    .admin-main .row {
        --bs-gutter-x: 0.65rem;
    }
    .admin-main img,
    .admin-main svg,
    .admin-main canvas,
    .admin-main video {
        max-width: 100%;
        height: auto;
    }
    .admin-main .table {
        width: 100%;
        max-width: 100%;
    }
}

.notif-dropdown .list-group-item { border-left: none; border-right: none; cursor: pointer; }

/* Structured address display: area highlighted, but kept compact in tables. */
.addr-area {
    display: block;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--secondary);
    line-height: 1.25;
}
.addr-detail {
    display: block;
    font-size: .75rem;
    color: var(--cblms-fg-soft);
}
td .addr-area { font-size: 0.82rem; }
td .addr-detail { font-size: .7rem; }
.notif-dropdown .list-group-item.unread { background: #eef6ff; }
.notif-dropdown .list-group-item:hover { background: #f4f7fb; }
.notif-item-msg {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.notif-ticks {
    font-size: 0.72rem;
    line-height: 1;
}
.notif-ticks.is-delivered { color: #94a3b8; }
.notif-ticks.is-read { color: #34b7f1; }

/* Soft WhatsApp-style toast stack (bottom) for admin/workers */
.notif-toast-host {
    position: fixed;
    z-index: 2000;
    inset-inline-end: 1rem;
    bottom: 1rem;
    display: flex;
    flex-direction: column-reverse;
    gap: 0.55rem;
    width: min(360px, calc(100vw - 1.5rem));
    pointer-events: none;
}
.notif-toast {
    pointer-events: auto;
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    background: #111b21;
    color: #e9edef;
    border-radius: 0.85rem;
    padding: 0.75rem 0.85rem;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
    cursor: pointer;
    opacity: 0;
    transform: translateY(18px) scale(0.98);
    transition: opacity .28s ease, transform .28s ease;
}
.notif-toast.is-in {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.notif-toast.is-out {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
}
.notif-toast-icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.notif-toast-icon .fa-solid { color: #53bdeb; }
.notif-toast-body { min-width: 0; flex: 1; }
.notif-toast-title {
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.15rem;
}
.notif-toast-msg {
    font-size: 0.78rem;
    color: #c5c9cc;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.notif-toast-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.35rem;
    gap: 0.5rem;
}
.notif-toast-eyebrow {
    font-size: 0.68rem;
    font-weight: 700;
    color: #53bdeb;
    margin-bottom: 0.1rem;
    letter-spacing: 0.02em;
}
.notif-toast-meta {
    font-size: 0.72rem;
    color: #8696a0;
    margin-top: 0.2rem;
}
.notif-toast-time {
    font-size: 0.68rem;
    color: #8696a0;
    direction: ltr;
    unicode-bidi: plaintext;
}
.notif-toast .notif-ticks.is-delivered { color: #8696a0; }
.notif-toast .notif-ticks.is-read { color: #53bdeb; }
.notif-toast-close {
    border: 0;
    background: transparent;
    color: #8696a0;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 0.15rem;
}
.notif-toast-close:hover { color: #fff; }
.notif-toast.is-chat {
    background: #0b2e3a;
    border: 1px solid rgba(83, 189, 235, 0.35);
    box-shadow: 0 14px 36px rgba(13, 59, 77, 0.45);
}
.notif-toast.is-chat .notif-toast-eyebrow { color: #7dd3fc; }
.notif-toast-cta {
    margin-top: 0.45rem;
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    color: #0d3b4d;
    background: #7dd3fc;
    border-radius: 999px;
    padding: 0.2rem 0.7rem;
}

/* Floating admin live-chat bubble with unread count */
.admin-chat-fab {
    position: fixed;
    z-index: 1990;
    inset-inline-end: 1.1rem;
    bottom: 1.1rem;
    width: 3.45rem;
    height: 3.45rem;
    border-radius: 50%;
    background: linear-gradient(145deg, #1a5f7a, #0d3b4d);
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    box-shadow: 0 12px 28px rgba(13, 59, 77, 0.4);
    text-decoration: none !important;
}
.admin-chat-fab:hover { color: #fff; filter: brightness(1.08); }
.admin-chat-fab-badge {
    position: absolute;
    top: -4px;
    inset-inline-end: -4px;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    line-height: 1;
}
.admin-chat-fab-pulse {
    display: none;
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 2px solid rgba(220, 53, 69, 0.55);
    animation: adminChatPulse 1.6s ease-out infinite;
    pointer-events: none;
}
.admin-chat-fab.has-waiting .admin-chat-fab-pulse { display: block; }
@keyframes adminChatPulse {
    0% { transform: scale(0.92); opacity: 0.85; }
    100% { transform: scale(1.28); opacity: 0; }
}
.notif-toast-host { bottom: 4.6rem; }


/* —— Admin UI (compact readable type) —— */
.admin-content {
    font-size: 0.95rem;
    color: var(--cblms-fg);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}
.admin-content .card-header h4,
.admin-content .card-header .h4 {
    font-size: 1.18rem;
    color: var(--cblms-fg-heading);
    font-weight: 700;
}
.admin-content .card-header h5 {
    font-size: 1.05rem;
    color: var(--cblms-fg-heading);
    font-weight: 700;
}
.admin-content .card {
    border-radius: 0.75rem;
}
.admin-content .card-body {
    padding: 0.9rem 1.05rem;
}
.admin-content .card-header {
    padding: 0.7rem 1.05rem;
}
.admin-content .table {
    font-size: 0.9rem;
    color: var(--cblms-fg);
    margin-bottom: 0;
}
.admin-content .table > :not(caption) > * > * {
    padding: 0.42rem 0.5rem;
    vertical-align: middle;
    text-align: center;
}
body.admin-layout table :is(th, td),
.admin-content table :is(th, td),
.hotel-admin table :is(th, td),
.portal-wrap table :is(th, td),
table.table :is(th, td) {
    text-align: center !important;
    vertical-align: middle !important;
}
body.admin-layout table :is(input, select, textarea),
.admin-content table :is(input, select, textarea),
.hotel-admin table :is(input, select, textarea),
table.table :is(input, select, textarea) {
    text-align: center;
}
.admin-content .table thead th {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--cblms-fg-heading);
    white-space: nowrap;
    background: var(--cblms-table-head-bg);
}
.admin-content .table td {
    max-width: 17rem;
    word-break: break-word;
    white-space: normal;
    color: var(--cblms-fg);
}
.admin-content .table-responsive > table,
.admin-content .cblms-table-scroll > table,
.admin-content .cblms-table-hscroll > table {
    width: max-content !important;
    min-width: 100%;
    table-layout: auto;
}
.admin-content .table-responsive .table td,
.admin-content .cblms-table-scroll .table td,
.admin-content .cblms-table-hscroll .table td {
    max-width: none !important;
    white-space: nowrap !important;
    word-break: normal;
}
.admin-content .table-responsive .table td.cell-wrap,
.admin-content .table-responsive .table .acct-price-info,
.admin-content .table-responsive .table .text-wrap {
    white-space: normal !important;
    word-break: break-word;
    min-width: 10rem;
    max-width: 18rem !important;
}
.admin-content .text-muted,
.admin-content .form-text,
.admin-content small,
.admin-content .small {
    color: var(--cblms-fg-muted) !important;
}
.admin-content .table td.col-actions,
.admin-content .table th.col-actions {
    width: 1%;
    min-width: 5.75rem;
    max-width: none;
    white-space: nowrap;
    text-align: center;
    vertical-align: middle;
}
#bsByItemTable th.col-actions,
#bsByItemTable td.col-actions {
    min-width: 6.25rem;
}
.admin-content .action-btns {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.32rem;
    white-space: nowrap;
}
.package-alerts-toolbar {
    padding-bottom: 0.25rem;
}
.package-alerts-toolbar #packageAlertFilterGroup .btn {
    min-width: 7.5rem;
}
.package-alerts-search {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    max-width: 34rem;
}
.package-alerts-search .form-control:focus {
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}
.package-alerts-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}
tr.is-opened-session,
.package-alert-row.is-opened-session,
.package-alert-card.is-opened-session {
    background: #ecfdf5 !important;
    box-shadow: inset 4px 0 0 #0d9488;
}
[dir="rtl"] tr.is-opened-session,
[dir="rtl"] .package-alert-row.is-opened-session,
[dir="rtl"] .package-alert-card.is-opened-session {
    box-shadow: inset -4px 0 0 #0d9488;
}
tr.is-alert-focus,
.package-alert-row.is-alert-focus,
.package-alert-card.is-alert-focus {
    background: #d1fae5 !important;
    outline: 2px solid #0d7377;
    outline-offset: -2px;
}
tr.is-latest-invoice td:first-of-type {
    box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.06);
}

/* Large tables: real X/Y scrollport (mouse wheel + finger + drag) */
.table-responsive,
.cblms-table-scroll,
.cblms-table-hscroll,
.dataTables_scrollBody {
    overflow: auto !important;
    max-width: 100%;
    max-height: min(68vh, 42rem);
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: auto;
    touch-action: pan-x pan-y;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
}
html[dir="rtl"] .table-responsive,
html[dir="rtl"] .cblms-table-scroll,
html[dir="rtl"] .cblms-table-hscroll,
html[dir="rtl"] .dataTables_scrollBody {
    direction: rtl;
}
.table-responsive > table,
.cblms-table-scroll > table,
.cblms-table-hscroll > table {
    width: max-content !important;
    min-width: 100%;
}
.table-responsive > table > :is(thead, tbody, tfoot) > tr > :is(th, td),
.cblms-table-scroll > table > :is(thead, tbody, tfoot) > tr > :is(th, td),
.cblms-table-hscroll > table > :is(thead, tbody, tfoot) > tr > :is(th, td) {
    white-space: nowrap;
}

/* Drag-to-scroll tables (wide data grids) */
.cblms-table-scroll {
    cursor: grab;
}
.cblms-table-scroll.is-dragging {
    cursor: grabbing;
    user-select: none;
}
.cblms-table-scroll.is-dragging a,
.cblms-table-scroll.is-dragging button {
    pointer-events: none;
}

/* Selectable tables — normal cursor, copy text (audit log, etc.) */
.cblms-table-hscroll {
    cursor: auto;
}
.cblms-table-hscroll th,
.cblms-table-hscroll td {
    user-select: text;
    cursor: text;
}
.cblms-table-hscroll a,
.cblms-table-hscroll button,
.cblms-table-hscroll .btn {
    cursor: pointer;
    user-select: none;
}
.cblms-table-scroll-table {
    width: max-content;
    min-width: 100%;
    margin-bottom: 0;
}
.cblms-table-scroll-table th,
.cblms-table-scroll-table td {
    white-space: nowrap;
}

.audit-device-cell,
.audit-browser-cell {
    min-width: 7rem;
    max-width: 14rem;
    white-space: normal;
    line-height: 1.35;
    font-size: 0.86rem;
}
.audit-browser-cell {
    max-width: 10rem;
}
.audit-record-cell {
    min-width: 10rem;
    max-width: 18rem;
    white-space: normal;
    line-height: 1.35;
    font-size: 0.86rem;
}
.audit-connection-box {
    background: var(--cblms-surface-soft, #f8fafc);
    border: 1px solid var(--cblms-border, #e2e8f0);
}
html[data-bs-theme="dark"] .audit-connection-box {
    background: #1a2332;
    border-color: var(--cb-line, #334155);
}

/* Audit log / archive filter selects — keep arrow clear of Arabic text (RTL) */
.audit-log-filters .form-select,
.audit-log-filters .form-select-sm {
    font-size: 0.85rem;
    font-weight: 500;
    min-height: calc(1.5em + 0.65rem + 2px);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    line-height: 1.4;
    background-size: 14px 10px;
}
html[dir="rtl"] .audit-log-filters .form-select,
html[dir="rtl"] .audit-log-filters .form-select-sm {
    padding-right: 0.65rem;
    padding-left: 2rem;
    background-position: left 0.55rem center;
}
html[dir="ltr"] .audit-log-filters .form-select,
html[dir="ltr"] .audit-log-filters .form-select-sm {
    padding-right: 2rem;
    padding-left: 0.65rem;
    background-position: right 0.55rem center;
}
.audit-log-filters .form-control-sm {
    font-size: 0.85rem;
    min-height: calc(1.5em + 0.65rem + 2px);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.package-alert-card {
    border: 1px solid var(--cblms-border);
    border-radius: 0.75rem;
    padding: 0.85rem 0.9rem;
    margin-bottom: 0.75rem;
    background: var(--cblms-surface);
    color: var(--cblms-fg);
}
.package-alert-card.is-warn {
    background: #fff8e8;
    border-color: #f0d78c;
}
.package-alert-card-actions {
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(0, 0, 0, 0.1);
}
.package-alert-card-actions .action-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-start;
}
.package-alert-card-actions .btn {
    --bs-btn-padding-y: 0.32rem !important;
    --bs-btn-padding-x: 0.6rem !important;
    --bs-btn-font-size: 0.8rem !important;
}
.admin-content .action-btns .btn,
.admin-content .btn-group-sm > .btn,
.admin-content .table .btn-sm {
    --bs-btn-padding-y: 0.28rem;
    --bs-btn-padding-x: 0.5rem;
    --bs-btn-font-size: 0.88rem;
    --bs-btn-border-radius: 0.35rem;
    line-height: 1.3;
    min-width: 2rem;
    white-space: nowrap;
    word-break: keep-all;
}
.admin-content .action-btns .btn.bs-item-toggle {
    min-width: auto;
    padding-inline: 0.5rem;
}
.admin-content .action-btns .bs-action-lbl {
    margin-inline-start: 0.28rem;
}
.admin-content .table td .btn {
    word-break: keep-all;
    white-space: nowrap;
}
.admin-content .action-btns .btn i,
.admin-content .table .btn-sm i {
    font-size: 0.8rem;
    margin: 0 !important;
}
.admin-content .btn-lg {
    --bs-btn-padding-y: 0.42rem;
    --bs-btn-padding-x: 0.85rem;
    --bs-btn-font-size: 1rem;
}
.admin-content .btn-sm {
    --bs-btn-font-size: 0.88rem;
    --bs-btn-padding-y: 0.26rem;
    --bs-btn-padding-x: 0.5rem;
}
.admin-content .form-control,
.admin-content .form-select {
    font-size: 0.95rem;
    color: var(--cblms-fg);
    font-weight: 500;
    padding: 0.36rem 0.6rem;
    min-height: calc(1.5em + 0.72rem + 2px);
}
.admin-content .form-label {
    font-size: 0.9rem;
    color: var(--cblms-fg-heading);
    font-weight: 600;
    margin-bottom: 0.25rem;
}
.admin-content .badge {
    font-size: 0.78rem;
    font-weight: 700;
}
.admin-content .modal-title {
    font-size: 1.1rem;
    color: var(--cblms-fg-heading);
    font-weight: 700;
}
.admin-content .nav-tabs .nav-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cblms-fg-muted);
    padding: 0.42rem 0.7rem;
}
.admin-sidebar .nav-link {
    font-weight: 600;
    padding: 0.5rem 0.8rem;
}
.admin-sidebar .sidebar-sublink {
    font-size: 0.8rem;
    padding: 0.42rem 0.7rem;
}
.admin-sidebar .brand {
    font-size: 0.9rem;
    font-weight: 700;
}
.topbar-user-name {
    max-width: 42vw;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--cblms-fg);
}
.admin-user-menu-toggle {
    width: auto;
    min-width: 2.35rem;
    max-width: min(220px, 42vw);
    padding-inline: 0.45rem !important;
    gap: 0.4rem;
}
.admin-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgba(26, 95, 122, 0.12);
    color: var(--primary);
    flex-shrink: 0;
}
.admin-user-avatar i {
    font-size: 0.8rem;
}
.admin-user-menu-name {
    max-width: 9rem;
    font-weight: 600;
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-user-menu-panel {
    min-width: 15rem;
    border: 1px solid var(--cblms-border);
    border-radius: 0.85rem;
    padding: 0.35rem 0;
    overflow: hidden;
}
.admin-user-menu-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    max-width: none;
}
.admin-user-menu-avatar-lg {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: rgba(26, 95, 122, 0.12);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.admin-user-menu-avatar-lg i {
    font-size: 1rem;
}
.admin-user-menu-meta {
    min-width: 0;
}
.admin-user-menu-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--cblms-fg-heading);
    line-height: 1.3;
    word-break: break-word;
}
.admin-user-menu-role {
    font-size: 0.8rem;
    color: var(--cblms-fg-muted);
    line-height: 1.3;
}
.admin-user-menu-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 1rem !important;
    font-weight: 600;
}
.admin-user-menu-item-icon {
    width: 1.35rem;
    text-align: center;
    color: var(--cblms-fg-soft);
    flex-shrink: 0;
}
.admin-user-menu-item-danger {
    color: #dc3545 !important;
}
.admin-user-menu-item-danger .admin-user-menu-item-icon {
    color: #dc3545;
}

/* Reports — high-contrast readable cards */
.reports-dashboard .reports-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--cblms-fg-heading);
}
.reports-dashboard .reports-filter .form-label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--cblms-fg-heading);
}
.reports-kpi {
    background: var(--cblms-surface);
    border: 2px solid var(--cblms-fg-heading);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    height: 100%;
    color: var(--cblms-fg);
}
.reports-kpi-accent {
    background: #0b1f2a;
    border: 2px solid #0b1f2a;
    color: #fff;
}
.reports-kpi-accent .reports-kpi-label,
.reports-kpi-accent .reports-kpi-meta {
    color: rgba(255,255,255,.88) !important;
}
.reports-kpi-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--cblms-fg-muted);
    margin-bottom: 0.15rem;
    line-height: 1.25;
}
.reports-kpi-value {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--cblms-fg-heading);
}
.reports-kpi-value.text-primary { color: #0b4f8a !important; }
.reports-kpi-value.text-success { color: #0f6b3a !important; }
.reports-kpi-value small {
    font-size: 0.65rem;
    font-weight: 700;
    opacity: 0.9;
}
.reports-kpi-meta {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--cblms-fg-muted);
    margin-top: 0.15rem;
}
.reports-chart-card {
    background: var(--cblms-surface);
    border: 2px solid var(--cblms-fg-heading);
    border-radius: 12px;
    overflow: hidden;
    color: var(--cblms-fg);
}
.reports-chart-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.6rem 0.8rem 0.35rem;
    border-bottom: 2px solid var(--cblms-fg-heading);
    background: var(--cblms-surface-soft);
}
.reports-chart-head strong {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--cblms-fg-heading);
}
.reports-chart-head .small {
    font-size: 0.68rem !important;
    font-weight: 600;
    color: var(--cblms-fg-muted) !important;
}
.reports-chart-box {
    height: 140px;
    padding: 0.35rem 0.55rem 0.55rem;
}
.reports-chart-box-lg {
    height: 210px;
}
.reports-section-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--cblms-fg-heading);
}
.reports-chart-box-wide {
    height: 160px;
}
.reports-chart-box-vip {
    height: 155px;
}
.reports-mini-table {
    max-height: 180px;
    border-top: 2px solid #0b1f2a;
}
.reports-mini-table thead th {
    position: sticky;
    top: 0;
    background: #0b1f2a !important;
    color: #fff !important;
    font-size: 0.68rem;
    font-weight: 800;
    z-index: 1;
}
.reports-mini-table td {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--cblms-fg);
}
.reports-reco {
    border: 2px solid var(--cblms-fg-heading);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.55rem;
    background: var(--cblms-surface-soft);
    color: var(--cblms-fg);
}
.reports-reco:last-child {
    margin-bottom: 0;
}

.table-responsive { -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y; }
.table-responsive.cblms-h-scroll {
    cursor: grab;
}
.table-responsive.cblms-h-scroll.is-drag-scrolling,
body.cblms-table-drag,
body.cblms-table-drag * {
    cursor: grabbing !important;
    user-select: none !important;
}

.invoice-edit-customer .invoice-edit-cust-field {
    text-align: center;
}
.invoice-edit-customer .invoice-edit-cust-label {
    color: #6c757d;
    font-size: 0.82rem;
    margin-bottom: 0.2rem;
}
.invoice-edit-customer .invoice-edit-cust-value {
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.35;
    unicode-bidi: isolate;
}

.select2-container.is-invalid .select2-selection {
    border-color: #dc3545 !important;
    background-color: #fff5f5;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.15);
}

#remainingAfterSave.text-danger {
    color: #dc3545 !important;
}

.package-choice-card { cursor: pointer; margin: 0; }
.package-choice-box {
    position: relative;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
    min-height: 0;
    padding: 0.55rem 0.45rem 0.5rem;
    border: 2px solid #c5d5de;
    border-radius: 10px;
    background: #fff;
    color: var(--cblms-fg-heading, #16324a);
}
.package-choice-box:hover {
    border-color: #1a5f7a;
    background: #f3fafc;
}
.package-choice-check {
    display: none;
    position: absolute;
    top: 0.35rem;
    inset-inline-end: 0.4rem;
    font-size: 1.05rem;
    color: #fff;
}
.package-choice-box.is-selected {
    background: #1a5f7a;
    border-color: #0e3d50;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(26, 95, 122, 0.28);
}
.package-choice-box.is-selected .package-choice-check { display: block; }
.package-choice-box.is-selected .package-choice-price,
.package-choice-box.is-selected .package-choice-meta { color: #fff !important; }
.package-choice-name { font-size: 0.98rem; line-height: 1.25; margin-bottom: 0.2rem; padding-inline-end: 1.1rem; }
.package-choice-price { font-size: 1.12rem; color: #1a5f7a; }
.package-choice-meta { font-size: 0.8rem; color: #5b7383; }
.package-subscribe-picker { margin-top: 0; }
.package-subscribe-heading {
    font-size: 1.05rem;
    font-weight: 700;
}
.package-subscribe-group-title {
    font-size: 0.92rem;
    font-weight: 700;
}
.sub-customer-panel {
    background: #eef6f9;
    border: 1px solid #c5dce6;
    border-radius: 12px;
    padding: 0.85rem 1rem;
}
.sub-customer-panel-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: #1a5f7a;
    margin-bottom: 0.15rem;
}
.sub-customer-panel-name {
    font-size: 1.2rem;
    font-weight: 800;
    color: #12384a;
    line-height: 1.3;
}
.sub-customer-panel-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-top: 0.25rem;
    font-weight: 600;
}
.sub-customer-panel-address {
    margin-top: 0.45rem;
    font-size: 0.95rem;
    line-height: 1.45;
}
.selected-package-bar {
    background: #1a5f7a;
    color: #fff;
    border-radius: 12px;
    padding: 1rem 1.15rem 1.15rem;
    text-align: center;
}
.selected-package-bar-label {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    opacity: 0.9;
    text-transform: uppercase;
    margin-bottom: 0.2rem;
}
.selected-package-bar-name {
    font-size: 1.35rem;
    font-weight: 800;
    margin-bottom: 0.55rem;
}
.selected-package-bar-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.85rem 1.5rem;
    font-size: 1.05rem;
}
.selected-package-stat {
    font-weight: 700;
}
.selected-package-stat strong {
    font-size: 1.55rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}
.selected-package-blink strong {
    animation: selectedPackageBlink 1.15s ease-in-out infinite;
}
@keyframes selectedPackageBlink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.28; }
}
@media (prefers-reduced-motion: reduce) {
    .selected-package-blink strong {
        animation: none;
    }
}
.invoice-price-ref summary { cursor: pointer; }

.invoice-save-btn {
    font-size: 1.05rem;
    font-weight: 700;
    padding: 0.55rem 1.25rem;
}

#savePackageInvoiceBtn:disabled,
.invoice-save-btn:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

/* —— Tablet (iPad / landscape phones) —— */
@media (max-width: 991px) {
    :root { --sidebar-width: 240px; }
    .admin-content { font-size: 0.95rem; }
    .admin-main { padding-left: 0.75rem !important; padding-right: 0.75rem !important; }
    .admin-content .card-body { padding: 0.95rem 1.05rem; }
    .admin-content .table td { max-width: 12rem; }
    .reports-chart-box { height: 130px; }
    .reports-chart-box-wide,
    .reports-chart-box-vip { height: 145px; }
    .select2-container { width: 100% !important; }
}

/* —— Phone —— */
@media (max-width: 767px) {
    .admin-content { font-size: 0.95rem; }
    .admin-topbar { padding-top: 0.45rem !important; padding-bottom: 0.45rem !important; }
    .topbar-user-name { max-width: 28vw; font-size: 0.84rem; }
    .admin-main {
        padding-left: max(0.55rem, env(safe-area-inset-left)) !important;
        padding-right: max(0.55rem, env(safe-area-inset-right)) !important;
    }
    .admin-content .card-header h4,
    .admin-content .card-header .h4 { font-size: 1.02rem; }
    .admin-content .card-body { padding: 0.75rem 0.85rem; }
    .admin-content .card-header { padding: 0.6rem 0.85rem; }
    .admin-content .table { font-size: 0.9rem; }
    .admin-content .table > :not(caption) > * > * { padding: 0.4rem 0.45rem; }
    .admin-content .form-control,
    .admin-content .form-select {
        font-size: 16px; /* prevents iOS zoom on focus */
        padding: 0.5rem 0.65rem;
    }
    .admin-content .btn-lg {
        --bs-btn-padding-y: 0.45rem;
        --bs-btn-padding-x: 0.85rem;
        --bs-btn-font-size: 0.95rem;
    }
    .admin-content .modal-dialog {
        margin: 0.5rem;
        max-width: calc(100% - 1rem);
    }
    .reports-kpi { padding: 0.45rem 0.55rem; border-radius: 8px; }
    .reports-kpi-value { font-size: 0.88rem; }
    .reports-kpi-label,
    .reports-kpi-meta { font-size: 0.6rem; }
    .reports-chart-head { padding: 0.45rem 0.6rem 0.25rem; }
    .reports-chart-head strong { font-size: 0.72rem; }
    .reports-chart-box,
    .reports-chart-box-vip,
    .reports-chart-box-wide {
        height: 120px;
        padding: 0.25rem 0.4rem 0.45rem;
    }
    .reports-mini-table { max-height: 160px; }
    .reports-reco { padding: 0.55rem 0.65rem; }
    .package-choice-box { min-height: 0; }
}

/* —— Small phones —— */
@media (max-width: 575px) {
    .admin-content .nav-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-content .nav-tabs .nav-link {
        white-space: nowrap;
        font-size: 0.72rem;
        padding: 0.35rem 0.55rem;
    }
    .admin-content .row.g-3,
    .admin-content .row.g-2 {
        --bs-gutter-x: 0.5rem;
        --bs-gutter-y: 0.5rem;
    }
    .reports-kpis .col-6 {
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }
}

/* Touch devices: slightly larger hit targets without bloating desktop */
@media (hover: none) and (pointer: coarse) {
    .admin-content .action-btns .btn,
    .admin-content .table .btn-sm {
        min-width: 1.85rem;
        min-height: 1.85rem;
        --bs-btn-padding-y: 0.28rem;
        --bs-btn-padding-x: 0.4rem;
    }
    .admin-sidebar .nav-link {
        padding: 0.55rem 0.8rem;
    }
}

/* Payment proof thumbnails (BenefitPay receipts) */
.proof-thumb {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid rgba(0,0,0,.12);
    cursor: zoom-in;
    background: #f8f9fa;
}
.proof-thumb.is-broken {
    opacity: .35;
    cursor: not-allowed;
}
.proof-thumb-link:hover .proof-thumb {
    box-shadow: 0 0 0 2px rgba(47, 143, 209, .45);
}
#proofPreviewImg {
    max-width: 100%;
}

/* Customer order tracking — vertical courier-style timeline */
/* Customer order tracking — vertical courier-style timeline */
.track-live-banner {
    display: flex;
    gap: 0.9rem;
    align-items: center;
    padding: 1rem 1.1rem;
    margin-bottom: 1.1rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, #0d7377, #0a5c5f);
    color: #fff;
}
.track-live-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.18);
    font-size: 1.25rem;
    flex-shrink: 0;
}
.track-live-kicker {
    font-size: 0.75rem;
    letter-spacing: .04em;
    opacity: .85;
    text-transform: uppercase;
}
.track-live-status {
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.2;
}
.track-live-eta,
.track-live-pkg {
    font-size: 0.82rem;
    opacity: .92;
    margin-top: 0.15rem;
}
.track-result-card {
    max-width: 520px;
    margin-inline: auto;
}
.track-heading {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}
.track-code-value {
    font-size: 0.92rem;
    font-weight: 700;
}
.track-progress-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #334155;
}
.track-vertical {
    margin: 0;
    padding: 0;
}
.track-v-step {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: 0.75rem;
    position: relative;
    min-height: 4.25rem;
    padding-bottom: 0.85rem;
}
.track-v-step:last-child {
    min-height: 0;
    padding-bottom: 0;
}
.track-v-rail {
    position: relative;
    display: flex;
    justify-content: center;
}
.track-v-rail::before {
    content: "";
    position: absolute;
    top: 1.85rem;
    bottom: -0.85rem;
    width: 3px;
    background: #d6dde5;
    border-radius: 2px;
}
.track-v-step:last-child .track-v-rail::before {
    display: none;
}
.track-v-step.is-done .track-v-rail::before,
.track-v-step.is-current .track-v-rail::before {
    background: #2f8fd1;
}
.track-v-dot {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e9ecef;
    color: #6c757d;
    font-size: 0.75rem;
    z-index: 1;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px #d6dde5;
}
.track-v-step.is-done .track-v-dot {
    background: #198754;
    color: #fff;
    box-shadow: 0 0 0 2px #198754;
}
.track-v-step.is-current .track-v-dot {
    background: #2f8fd1;
    color: #fff;
    box-shadow: 0 0 0 3px rgba(47, 143, 209, 0.35);
    animation: trackPulse 1.6s ease-in-out infinite;
}
.track-v-step.is-pending {
    opacity: 0.55;
}
.track-v-title {
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1.25;
}
.track-v-current-tag {
    display: inline-block;
    margin-top: 0.15rem;
    margin-bottom: 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #2f8fd1;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.track-v-meta {
    font-size: 0.8rem;
    color: #5c6b7a;
}
.track-v-note {
    margin-top: 0.25rem;
    font-size: 0.85rem;
    color: #334155;
    background: #f5f8fb;
    border-radius: 0.4rem;
    padding: 0.35rem 0.55rem;
}
@keyframes trackPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
}
.track-timeline .list-group-item {
    border-color: rgba(0,0,0,.06);
}
.portal-track-card .form-control {
    min-width: 12rem;
}

/* Balances & reports status chips — high contrast */
.bal-status {
    display: inline-block;
    padding: 0.2rem 0.45rem;
    border: 1.5px solid #0b1f2a;
    border-radius: 0.25rem;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.2;
    color: #0b1f2a;
    background: #fff;
    white-space: nowrap;
}
.bal-status-ok {
    background: #d1fae5;
    border-color: #065f46;
    color: #065f46;
}
.bal-status-bad {
    background: #fee2e2;
    border-color: #991b1b;
    color: #991b1b;
}
.bal-status-warn {
    background: #fef3c7;
    border-color: #92400e;
    color: #92400e;
}
.bal-status-muted {
    background: #f1f5f9;
    border-color: #334155;
    color: #334155;
}

#regularBalancesTable thead th,
#packageBalancesTable thead th {
    background: #0b1f2a !important;
    color: #fff !important;
    font-weight: 800;
    border-color: #0b1f2a !important;
    vertical-align: middle;
}
#regularBalancesTable td,
#packageBalancesTable td {
    color: #0b1f2a;
    font-weight: 600;
    border-color: #94a3b8 !important;
}
#regularBalancesTable th.bal-items-summary,
#regularBalancesTable td.bal-items-summary {
    max-width: 9.5rem;
    width: 9.5rem;
    font-weight: 500;
}
#regularBalancesTable td.bal-items-summary small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.75rem;
    line-height: 1.25;
    white-space: normal;
}

@media print {
    .admin-sidebar,
    .topbar,
    .btn,
    .reports-filter,
    #printReportBtn,
    #exportReportBtn,
    .bal-export-btn,
    .bal-print-report,
    .bal-print-statement {
        display: none !important;
    }
    .reports-kpi,
    .reports-chart-card,
    .reports-reco,
    .card {
        border: 2px solid #000 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }
    .reports-kpi-label,
    .reports-kpi-meta,
    .reports-kpi-value,
    .reports-chart-head strong,
    .reports-mini-table td,
    body {
        color: #000 !important;
    }
    .reports-mini-table thead th,
    #regularBalancesTable thead th,
    #packageBalancesTable thead th {
        background: #000 !important;
        color: #fff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
}

/* Searchable Select2 — solid panel, border, scroll (never ghost over tables) */
.select2-container--bootstrap-5 .select2-selection {
    min-height: calc(1.5em + 0.75rem + 2px);
}
.select2-container--bootstrap-5 .select2-dropdown,
.select2-dropdown {
    z-index: 3000 !important;
    background: #fff !important;
    border: 1px solid #86b7fe !important;
    border-radius: 0.4rem !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18) !important;
    overflow: visible !important;
}
.select2-container--bootstrap-5 .select2-dropdown .select2-search,
.select2-dropdown .select2-search {
    padding: 0.45rem 0.5rem 0.25rem;
    background: #fff !important;
}
.select2-container--bootstrap-5 .select2-dropdown .select2-search__field,
.select2-dropdown .select2-search__field {
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem !important;
    border: 1px solid #ced4da !important;
    border-radius: 0.35rem !important;
    background: #fff !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.select2-container--bootstrap-5 .select2-results,
.select2-results {
    background: #fff !important;
    padding: 0;
    max-height: none !important;
    overflow: hidden !important;
}
.select2-container--bootstrap-5 .select2-dropdown .select2-results > .select2-results__options,
.select2-results > .select2-results__options {
    max-height: min(280px, 45vh) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #fff !important;
    scrollbar-width: thin;
}
.select2-results__option > .select2-results__options,
.select2-results__options .select2-results__options {
    max-height: none !important;
    overflow: visible !important;
    height: auto !important;
}
.select2-results > .select2-results__options::-webkit-scrollbar {
    width: 8px;
}
.select2-results > .select2-results__options::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 8px;
}
.select2-container--bootstrap-5 .select2-results__option,
.select2-results__option {
    background: #fff;
    padding: 0.45rem 0.75rem;
    line-height: 1.35;
}
.select2-container--bootstrap-5 .select2-results__option--highlighted,
.select2-results__option--highlighted {
    background: #0d6efd !important;
    color: #fff !important;
}
.select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: #86b7fe;
}
html[dir="rtl"] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    padding-right: 0.75rem;
    padding-left: 2rem;
}
html[dir="rtl"] .cblms-hotel-select .select2-selection--single .select2-selection__rendered {
    padding-right: 0.75rem !important;
    padding-left: 2.6rem !important;
}
html[dir="ltr"] .cblms-hotel-select .select2-selection--single .select2-selection__rendered {
    padding-left: 0.75rem !important;
    padding-right: 2.6rem !important;
}
html[dir="rtl"] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__arrow {
    left: 0.5rem;
    right: auto;
}
html[dir="rtl"] .cblms-hotel-select .select2-selection__arrow {
    left: 0.4rem !important;
    right: auto !important;
}
html[dir="ltr"] .cblms-hotel-select .select2-selection__arrow {
    right: 0.4rem !important;
    left: auto !important;
}
html[dir="rtl"] .cblms-hotel-select .select2-selection__clear {
    left: 1.7rem !important;
    right: auto !important;
}
html[dir="ltr"] .cblms-hotel-select .select2-selection__clear {
    right: 1.7rem !important;
    left: auto !important;
}
.admin-content .select2-container {
    width: 100% !important;
}

/* Hotel select: one line, bold name, never overflow onto buttons */
.cblms-hotel-select {
    position: relative;
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    min-height: 42px;
    margin-bottom: 0.15rem;
    z-index: 4;
    overflow: visible;
}
.cblms-hotel-select:has(.select2-container--open),
.cblms-hotel-select.is-open {
    z-index: 1060;
}
.cblms-hotel-select .select2-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 42px !important;
    display: block !important;
}
.cblms-hotel-select .select2-selection--single {
    height: 42px !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
}
.cblms-hotel-select .select2-selection__rendered {
    display: block !important;
    float: none !important;
    position: static !important;
    flex: 1 1 auto;
    width: auto !important;
    max-width: 100% !important;
    line-height: 40px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-inline-start: 0.75rem !important;
    padding-inline-end: 2.6rem !important;
    font-weight: 700 !important;
    color: #0b1220 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.cblms-hotel-select .select2-selection__clear {
    position: absolute !important;
    top: 50% !important;
    inset-inline-end: 1.7rem !important;
    transform: translateY(-50%);
    float: none !important;
    margin: 0 !important;
    z-index: 2;
    font-weight: 700;
}
.cblms-hotel-select .select2-selection__arrow {
    position: absolute !important;
    top: 50% !important;
    inset-inline-end: 0.4rem !important;
    transform: translateY(-50%);
    height: auto !important;
}

/* Invoice line selects need room inside compact tables */
#packageLinesTable td .select2-container,
#invoiceLinesTable td .select2-container {
    min-width: 9rem !important;
}

.acct-price-info {
    background: #e7f5ff;
    border: 1px solid #a5d8ff;
    border-radius: 6px;
    padding: 0.35rem 0.5rem;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #0b4f6c;
}
.acct-price-info-text { margin-top: 0.2rem; }
.acct-price-info-hint { margin-top: 0.15rem; font-size: 0.72rem; opacity: 0.85; }
.acct-price-info-who { margin-top: 0.15rem; opacity: 0.88; font-size: 0.74rem; }
.acct-price-view-btn {
    cursor: pointer;
    font-weight: 700;
}
.acct-price-view-btn:hover {
    filter: brightness(0.93);
}
.acct-price-line-hint {
    font-size: 0.72rem;
    color: #0c8599;
    margin-top: 0.25rem;
    white-space: normal;
    line-height: 1.3;
}
.el-price-manual {
    background: #e7f5ff !important;
}
html[data-bs-theme="dark"] .acct-price-info {
    background: #143a4a;
    border-color: #1864ab;
    color: #d0ebff;
}
html[data-bs-theme="dark"] .acct-price-line-hint { color: #66d9e8; }

.permissions-page .perm-check-hit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.4rem;
    min-height: 2.4rem;
    margin: 0;
    cursor: pointer;
}
.permissions-page .perm-check,
.permissions-page .perm-row-all {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    cursor: pointer;
    pointer-events: auto;
    position: relative;
    z-index: 2;
}
.permissions-page .perm-hint {
    font-size: 0.75rem;
    line-height: 1.4;
    margin-top: 0.2rem;
}
.permissions-page .perm-module-col {
    min-width: 260px;
}
.permissions-page .permissions-table thead th {
    white-space: nowrap;
    font-size: 0.82rem;
}
.permissions-page .permissions-savebar {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0 0.25rem;
    background: var(--bs-body-bg, #fff);
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}
.permissions-legend {
    background: var(--bs-tertiary-bg, #f8f9fa);
}
html[data-bs-theme="dark"] .el-price-manual {
    background: #143a4a !important;
    color: #d0ebff;
}

/* Cancel / back always visible at the top of any entry modal */
.modal-header {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    position: sticky;
    top: 0;
    z-index: 6;
    background: var(--bs-modal-bg, var(--bs-body-bg, #fff));
}
.modal-header .cblms-modal-top-actions {
    flex: 1 0 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.15rem;
}
.modal-header .cblms-modal-top-cancel {
    font-weight: 600;
}
.offcanvas-header {
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
}
.offcanvas-header .cblms-modal-top-actions {
    flex: 1 0 100%;
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.15rem;
}
.catalog-hotel-native {
    min-height: 11rem;
    font-size: 0.95rem;
}
.catalog-hotel-picker {
    position: relative;
    z-index: 4;
}
.catalog-hotel-field {
    position: relative;
}
.catalog-hotel-field .form-control {
    padding-inline-end: 2.4rem;
}
.catalog-hotel-caret {
    position: absolute;
    inset-inline-end: 0.15rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    background: transparent;
    color: #5a7a86;
}
.catalog-hotel-picker.is-open .catalog-hotel-caret i {
    transform: rotate(180deg);
}
.catalog-hotel-menu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 0.15rem);
    z-index: 30;
    max-height: 16rem;
    overflow: auto;
    border: 1px solid #c5d5dc;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 0.6rem 1.4rem rgba(15, 40, 50, 0.16);
}
.catalog-hotel-picker.is-open .catalog-hotel-menu {
    display: block;
}
.catalog-hotel-opt {
    display: block;
    width: 100%;
    text-align: inherit;
    border: 0;
    border-bottom: 1px solid #eef2f4;
    background: #fff;
    padding: 0.55rem 0.85rem;
    font-size: 1rem;
    line-height: 1.35;
}
.catalog-hotel-opt:last-child {
    border-bottom: 0;
}
.catalog-hotel-opt:hover,
.catalog-hotel-opt.is-active {
    background: #e8f4f8;
    color: #0b4f66;
}
.catalog-hotel-opt.is-hidden {
    display: none;
}
.catalog-hotel-menu-empty {
    padding: 0.7rem 0.85rem;
    color: #6c757d;
}
.chp-one-table {
    background: #fff;
    font-size: 1.05rem;
}
.chp-one-table th,
.chp-one-table td {
    padding: 0.55rem 0.75rem;
    vertical-align: middle;
}
.chp-one-table th:nth-child(1),
.chp-one-table td:nth-child(1) {
    width: auto;
}
.chp-one-table th:nth-child(2),
.chp-one-table td:nth-child(2) {
    width: 7.5rem;
    max-width: 8rem;
    text-align: center;
    white-space: nowrap;
}
.chp-one-table .cblms-amount-highlight {
    font-size: 1.05rem;
    font-weight: 700;
}
.hotel-item-modal {
    max-width: 28rem;
}
.hotel-item-modal .modal-header {
    align-items: flex-start;
}
.hotel-item-modal .modal-title {
    font-size: 1.15rem;
}
.hotel-item-hotel-banner {
    display: block;
    width: 100%;
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.35;
    color: #0b4f66;
    background: #e8f4f8;
    border: 1px solid #b7d7e2;
    border-radius: 0.5rem;
    padding: 0.55rem 0.85rem;
}
.hotel-item-form-grid .form-label,
.hotel-item-form-grid .form-control,
.hotel-item-form-grid .form-select,
.hotel-item-form-grid .form-text {
    font-size: 1rem;
}
.hotel-item-price-col {
    max-width: 11rem;
}
.chp-kind-title td,
.chp-section-title td {
    background: transparent;
    color: inherit;
    font-weight: 700;
    padding: 0.45rem 0.6rem;
}
.chp-section-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}
.chp-actions {
    width: 1%;
    white-space: nowrap;
}
.chp-action-btns {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}
.chp-actions .btn {
    margin: 0;
}
.chp-row-deleted {
    background: #e9ecef !important;
    opacity: 0.72;
}
.chp-row-deleted td {
    text-decoration: none;
    color: #6c757d;
}
.chp-row-inactive {
    background: #fff8e1;
}

/* Shutdown warning: pulsing bubble at the top, above hamburger / nav */
.cblms-shutdown-notice {
    position: fixed;
    top: max(0.55rem, env(safe-area-inset-top));
    left: 50%;
    transform: translateX(-50%);
    z-index: 40000;
    width: min(42rem, calc(100vw - 1.25rem));
    pointer-events: none;
}
.cblms-shutdown-notice-bubble {
    pointer-events: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.75rem 0.7rem 0.9rem;
    border-radius: 1rem;
    background: #ffb3b3;
    border: 2px solid #ff4d4d;
    color: #6b0f0f;
    box-shadow: 0 10px 28px rgba(139, 0, 0, 0.28);
    transform-origin: top center;
    animation: cblms-shutdown-pulse 1.35s ease-in-out infinite;
}
.cblms-shutdown-notice-icon {
    flex: 0 0 auto;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ff6b6b;
    color: #fff;
    font-size: 1.1rem;
    box-shadow: 0 0 0 4px rgba(255, 77, 77, 0.28);
}
.cblms-shutdown-notice-body {
    flex: 1 1 auto;
    min-width: 0;
    text-align: start;
}
.cblms-shutdown-notice-title {
    display: block;
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.35;
    color: #7a0b0b;
}
.cblms-shutdown-notice-text {
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.5;
    color: #5c1010;
}
.cblms-shutdown-notice-link {
    display: inline-flex;
    align-items: center;
    margin-top: 0.3rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    background: #fff;
    color: #9b1c1c;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid #ff6b6b;
}
.cblms-shutdown-notice-link:hover,
.cblms-shutdown-notice-link:focus {
    background: #fff5f5;
    color: #7a0b0b;
}
.cblms-shutdown-notice-close {
    flex: 0 0 auto;
    margin-inline-start: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-height: 2.15rem;
    padding: 0.35rem 0.7rem;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #9b1c1c;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.cblms-shutdown-notice-close:hover,
.cblms-shutdown-notice-close:focus {
    background: #7a0b0b;
    color: #fff;
}
.cblms-shutdown-notice.is-collapsed {
    width: auto;
}
.cblms-shutdown-notice.is-collapsed .cblms-shutdown-notice-bubble {
    padding: 0.22rem;
    gap: 0;
    border-radius: 999px;
    cursor: pointer;
    animation: cblms-shutdown-pulse-mini 1.8s ease-in-out infinite;
}
.cblms-shutdown-notice.is-collapsed .cblms-shutdown-notice-body,
.cblms-shutdown-notice.is-collapsed .cblms-shutdown-notice-close {
    display: none;
}
.cblms-shutdown-notice.is-collapsed .cblms-shutdown-notice-icon {
    width: 1.7rem;
    height: 1.7rem;
    font-size: 0.78rem;
    box-shadow: none;
}
@keyframes cblms-shutdown-pulse-mini {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 4px 12px rgba(139, 0, 0, 0.22), 0 0 0 0 rgba(255, 77, 77, 0.45);
    }
    50% {
        transform: scale(1.06);
        box-shadow: 0 6px 14px rgba(139, 0, 0, 0.28), 0 0 0 8px rgba(255, 77, 77, 0);
    }
}
@keyframes cblms-shutdown-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 10px 28px rgba(139, 0, 0, 0.28), 0 0 0 0 rgba(255, 77, 77, 0.55);
    }
    50% {
        transform: scale(1.02);
        box-shadow: 0 14px 32px rgba(139, 0, 0, 0.36), 0 0 0 12px rgba(255, 77, 77, 0);
    }
}
@media (prefers-reduced-motion: reduce) {
    .cblms-shutdown-notice-bubble,
    .cblms-shutdown-notice.is-collapsed .cblms-shutdown-notice-bubble {
        animation: none;
    }
}
@media print {
    .cblms-shutdown-notice {
        display: none !important;
    }
}
