/* ============================================================
   Ballour Admin Theme v2 — Components
   Buttons, Cards, Modals, Dropdowns, Badges, Alerts, Pagination
   ============================================================ */

/* ============================================================
   BUTTONS — preserve existing classes, restyle them
   ============================================================ */
body.theme-v2 .custom_but1 {
    background: var(--bl-brand) !important;
    border: 1px solid var(--bl-brand) !important;
    color: #fff !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 9px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    height: auto;
    line-height: 1.2;
    transition: all var(--bl-dur) var(--bl-ease) !important;
    box-shadow: var(--bl-shadow-xs);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.theme-v2 .custom_but1:hover,
body.theme-v2 .custom_but1:focus {
    background: var(--bl-brand-600) !important;
    border-color: var(--bl-brand-600) !important;
    color: #fff !important;
    box-shadow: var(--bl-shadow);
    transform: translateY(-1px);
}

body.theme-v2 .custom_but2 {
    background: transparent !important;
    border: 1px solid var(--bl-border) !important;
    color: var(--bl-text) !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 9px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    transition: all var(--bl-dur) var(--bl-ease) !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.theme-v2 .custom_but2:hover,
body.theme-v2 .custom_but2:focus {
    background: var(--bl-surface-2) !important;
    border-color: var(--bl-brand) !important;
    color: var(--bl-brand) !important;
}

body.theme-v2 .custom_but_danger {
    background: var(--bl-danger) !important;
    border: 1px solid var(--bl-danger) !important;
    color: #fff !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 9px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    transition: all var(--bl-dur) var(--bl-ease) !important;
}

body.theme-v2 .custom_but_danger:hover {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #fff !important;
}

body.theme-v2 .greenclass {
    background: var(--bl-success) !important;
    border: 1px solid var(--bl-success) !important;
    color: #fff !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 9px 16px !important;
}

body.theme-v2 .greenclass:hover {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #fff !important;
}

body.theme-v2 .buton_padding_icon {
    padding: 9px 12px !important;
}

body.theme-v2 .padding_smal_but {
    padding: 9px 18px !important;
}

body.theme-v2 .btn_success_gren {
    background: var(--bl-success) !important;
    color: #fff !important;
    border-radius: var(--bl-radius-sm) !important;
}

/* Bootstrap fallbacks */
body.theme-v2 .btn {
    border-radius: var(--bl-radius-sm) !important;
    font-weight: 600;
    font-size: 13px;
    transition: all var(--bl-dur) var(--bl-ease);
}

body.theme-v2 .btn-primary {
    background: var(--bl-brand) !important;
    border-color: var(--bl-brand) !important;
}

body.theme-v2 .btn-primary:hover {
    background: var(--bl-brand-600) !important;
    border-color: var(--bl-brand-600) !important;
}

body.theme-v2 .btn-danger {
    background: var(--bl-danger) !important;
    border-color: var(--bl-danger) !important;
}

body.theme-v2 .btn-default {
    background: var(--bl-surface) !important;
    border-color: var(--bl-border) !important;
    color: var(--bl-text) !important;
}

/* ============================================================
   CARDS
   ============================================================ */
body.theme-v2 .card {
    background: var(--bl-surface);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius-lg);
    box-shadow: var(--bl-shadow-xs);
    overflow: hidden;
    transition: box-shadow var(--bl-dur) var(--bl-ease),
                transform var(--bl-dur) var(--bl-ease);
}

body.theme-v2 .card:hover {
    box-shadow: var(--bl-shadow-sm);
}

body.theme-v2 .card .card-body {
    padding: 18px;
}

body.theme-v2 .card .card-header {
    background: transparent;
    border-bottom: 1px solid var(--bl-border);
    padding: 14px 18px;
    font-weight: 700;
    color: var(--bl-heading);
}

/* head_text used in many places */
body.theme-v2 .head_text {
    color: var(--bl-heading) !important;
    font-size: 18px !important;
    font-weight: 700;
    margin: 0;
}

/* ============================================================
   ALERTS
   ============================================================ */
body.theme-v2 .alert {
    border-radius: var(--bl-radius);
    border: 1px solid transparent;
    padding: 12px 14px;
    font-size: 13px;
    margin-bottom: 14px;
}

body.theme-v2 .alert-danger {
    background: var(--bl-tint-red-bg);
    color: var(--bl-tint-red-fg);
    border-color: #fecaca;
}

body.theme-v2 .alert-warning {
    background: var(--bl-tint-yellow-bg);
    color: var(--bl-tint-yellow-fg);
    border-color: #fde68a;
}

body.theme-v2 .alert-success {
    background: var(--bl-tint-green-bg);
    color: var(--bl-tint-green-fg);
    border-color: #a7f3d0;
}

body.theme-v2 .alert-info {
    background: var(--bl-tint-blue-bg);
    color: var(--bl-tint-blue-fg);
    border-color: #bfdbfe;
}

/* ============================================================
   MODALS
   ============================================================ */
body.theme-v2 .modal-content {
    border: none;
    border-radius: var(--bl-radius-lg);
    box-shadow: var(--bl-shadow-lg);
    overflow: hidden;
}

body.theme-v2 .modal-header {
    border-bottom: 1px solid var(--bl-border);
    padding: 16px 20px;
}

body.theme-v2 .modal-body {
    padding: 18px 20px;
}

body.theme-v2 .modal-footer {
    border-top: 1px solid var(--bl-border);
    padding: 14px 20px;
    gap: 8px;
}

body.theme-v2 .modal-title {
    color: var(--bl-heading);
    font-weight: 700;
}

body.theme-v2 .close,
body.theme-v2 .close_model {
    color: var(--bl-text-muted);
    background: transparent;
    border: none;
    font-size: 20px;
    cursor: pointer;
    padding: 4px;
    transition: color var(--bl-dur) var(--bl-ease);
}

body.theme-v2 .close:hover,
body.theme-v2 .close_model:hover {
    color: var(--bl-danger);
}

/* ============================================================
   DROPDOWNS (custom + bootstrap)
   ============================================================ */
body.theme-v2 .Custom_dropdown .dropdown-menu,
body.theme-v2 .Custom_dropdown2 .dropdown-menu,
body.theme-v2 .dropdown-menu {
    background: var(--bl-surface);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    box-shadow: var(--bl-shadow-lg);
    padding: 6px;
    min-width: 200px;
}

body.theme-v2 .Custom_dropdown .dropdown-menu .dropdown-item,
body.theme-v2 .Custom_dropdown2 .dropdown-menu .dropdown-item,
body.theme-v2 .dropdown-menu .dropdown-item {
    color: var(--bl-text) !important;
    border-radius: var(--bl-radius-sm);
    padding: 8px 12px;
    font-size: 13px;
    cursor: pointer;
    border: 0;
    background: transparent;
    width: 100%;
    text-align: inherit;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all var(--bl-dur) var(--bl-ease);
}

body.theme-v2 .Custom_dropdown .dropdown-menu .dropdown-item:hover,
body.theme-v2 .Custom_dropdown2 .dropdown-menu .dropdown-item:hover,
body.theme-v2 .dropdown-menu .dropdown-item:hover {
    background: var(--bl-surface-2);
    color: var(--bl-brand) !important;
}

body.theme-v2 .Custom_dropdown .dropdown-menu .dropdown-item i,
body.theme-v2 .Custom_dropdown2 .dropdown-menu .dropdown-item i,
body.theme-v2 .dropdown-menu .dropdown-item i {
    color: var(--bl-text-muted);
    width: 16px;
    text-align: center;
}

/* row action dots button */
body.theme-v2 .tab_but_procedures {
    width: 32px;
    height: 32px;
    border-radius: var(--bl-radius-sm);
    background: var(--bl-surface-2);
    border: 1px solid var(--bl-border);
    color: var(--bl-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--bl-dur) var(--bl-ease);
}

body.theme-v2 .tab_but_procedures:hover {
    background: var(--bl-brand);
    border-color: var(--bl-brand);
    color: #fff;
}

/* ============================================================
   BADGES / Status pills (Request_stat1..6)
   ============================================================ */
body.theme-v2 [class^="Request_stat"],
body.theme-v2 [class*=" Request_stat"] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    border-radius: var(--bl-radius-pill) !important;
    margin: 0 !important;
    border: 0 !important;
    line-height: 1.4;
    white-space: nowrap;
}

body.theme-v2 .Request_stat1 {
    background: var(--bl-tint-blue-bg) !important;
    color: var(--bl-tint-blue-fg) !important;
}

body.theme-v2 .Request_stat2 {
    background: var(--bl-tint-yellow-bg) !important;
    color: var(--bl-tint-yellow-fg) !important;
}

body.theme-v2 .Request_stat3 {
    background: var(--bl-tint-purple-bg) !important;
    color: var(--bl-tint-purple-fg) !important;
}

body.theme-v2 .Request_stat4 {
    background: var(--bl-tint-blue-bg) !important;
    color: var(--bl-tint-blue-fg) !important;
}

body.theme-v2 .Request_stat5 {
    background: var(--bl-tint-green-bg) !important;
    color: var(--bl-tint-green-fg) !important;
}

body.theme-v2 .Request_stat6 {
    background: var(--bl-tint-red-bg) !important;
    color: var(--bl-tint-red-fg) !important;
}

body.theme-v2 .badge {
    border-radius: var(--bl-radius-pill);
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
}

/* ============================================================
   PAGINATION — global v2 (all admin listing pages)
   Overrides legacy Bootstrap / color.css stacked borders.
   ============================================================ */
body.theme-v2 .pagnatioon,
body.theme-v2 .pagination_container {
    margin-top: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
body.theme-v2 .pagnatioon nav {
    display: inline-block;
}

body.theme-v2 .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0;
    margin: 0;
    list-style: none;
}
body.theme-v2 .pagination .page-item {
    margin: 0;
    list-style: none;
}
body.theme-v2 .pagination .page-item .page-link {
    float: none;
    position: static;
    border-radius: var(--bl-radius-sm) !important;
    border: 1px solid var(--bl-border) !important;
    color: var(--bl-text);
    font-size: 13px;
    font-weight: 600;
    min-width: 36px;
    height: 36px;
    padding: 0 10px !important;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bl-surface) !important;
    box-shadow: none !important;
    line-height: 1;
    text-decoration: none;
    transition: all var(--bl-dur) var(--bl-ease);
}
/* Legacy nested spans inside .page-link (must not render as extra boxes) */
body.theme-v2 .pagination .page-link > span {
    display: inline !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    height: auto !important;
    box-shadow: none !important;
    line-height: inherit;
    color: inherit !important;
}
body.theme-v2 .pagination .page-item:not(.pag_disabeld):not(.activeate):not(.pag-nav):hover .page-link {
    background: var(--bl-surface-2) !important;
    border-color: var(--bl-border-strong) !important;
    color: var(--bl-brand);
}
body.theme-v2 .pagination .page-item.activeate .page-link {
    background: var(--bl-brand) !important;
    color: #fff !important;
    border-color: var(--bl-brand) !important;
}
/* Prev / next arrows */
body.theme-v2 .pagination .page-item.pag-nav .page-link,
body.theme-v2 .pagination .page-link.prevbtnpag,
body.theme-v2 .pagination .page-link.nextbtnpag,
body.theme-v2 .pagination .page-link.nextandback {
    font-size: 18px;
    font-weight: 700;
    min-width: 36px;
    padding: 0 8px !important;
    background: var(--bl-surface) !important;
    color: var(--bl-text) !important;
    border: 1px solid var(--bl-border) !important;
}
body.theme-v2 .pagination .page-item.pag-nav:not(.pag_disabeld):hover .page-link,
body.theme-v2 .pagination .page-item:not(.pag_disabeld) .page-link.prevbtnpag:hover,
body.theme-v2 .pagination .page-item:not(.pag_disabeld) .page-link.nextbtnpag:hover {
    background: var(--bl-surface-2) !important;
    border-color: var(--bl-brand) !important;
    color: var(--bl-brand) !important;
}
body.theme-v2 .pagination .page-item.pag_disabeld .page-link {
    color: var(--bl-text-soft) !important;
    background: var(--bl-surface) !important;
    border-color: var(--bl-border) !important;
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: none;
}
/* Legacy .active / .disabled (Bootstrap 3) */
body.theme-v2 .pagination > .active > a,
body.theme-v2 .pagination > .active > span,
body.theme-v2 .pagination > .disabled > a,
body.theme-v2 .pagination > .disabled > span {
    border-radius: var(--bl-radius-sm) !important;
}

/* ============================================================
   SWEETALERT
   ============================================================ */
body.theme-v2 .swal2-popup {
    border-radius: var(--bl-radius-lg) !important;
    font-family: var(--bl-font) !important;
}

body.theme-v2 .swal2-confirm {
    background: var(--bl-brand) !important;
    border-radius: var(--bl-radius-sm) !important;
}

body.theme-v2 .swal2-cancel {
    background: var(--bl-surface-2) !important;
    color: var(--bl-text) !important;
    border-radius: var(--bl-radius-sm) !important;
}

/* ============================================================
   BREADCRUMBS / minor stuff
   ============================================================ */
body.theme-v2 hr,
body.theme-v2 .hr {
    border-color: var(--bl-border);
    background: var(--bl-border) !important;
}

body.theme-v2 .text_text {
    color: var(--bl-text-muted) !important;
}

body.theme-v2 .text_black {
    color: var(--bl-heading) !important;
}

body.theme-v2 .Main_Color {
    color: var(--bl-brand) !important;
}

body.theme-v2 .Socend_Color {
    color: var(--bl-accent) !important;
}

body.theme-v2 .bg-Grey {
    background-color: var(--bl-text-muted) !important;
}

/* ============================================================
   SWITCHES (switchery / bootstrap switch)
   ============================================================ */
body.theme-v2 .switch label .lever {
    background: #cbd5e1;
    border-radius: var(--bl-radius-pill);
}

body.theme-v2 .switch label .lever::after {
    background: #fff;
}

body.theme-v2 .switch label input[type="checkbox"]:checked + .lever.switch-col-blue {
    background: var(--bl-brand);
    opacity: 0.4;
}

body.theme-v2 .switch label input[type="checkbox"]:checked + .lever.switch-col-blue::after {
    background: var(--bl-brand);
}

/* ============================================================
   CHECKBOX (custom checkbox-success used in orders list)
   ============================================================ */
/* ============================================================
   Make the native checkbox itself VISIBLE (it ships hidden
   off-screen by the legacy theme via right:-9999px;opacity:0).
   We restore it to a normal flow checkbox so users can see it
   regardless of the surrounding layout.
   Then we kill the legacy fake ::before/::after on the label.
   ============================================================ */
body.theme-v2 .checkbox input[type="checkbox"],
body.theme-v2 .checkbox-inline input[type="checkbox"],
body.theme-v2 .add_Permissions_content input[type="checkbox"],
body.theme-v2 div.checkbox > input[type="checkbox"] {
    position: static !important;
    right: auto !important;
    left: auto !important;
    opacity: 1 !important;
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--bl-brand, #01529a) !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    margin: 0 6px 0 0 !important;
    flex-shrink: 0 !important;
}
html[dir="ltr"] body.theme-v2 .checkbox input[type="checkbox"],
html[dir="ltr"] body.theme-v2 .checkbox-inline input[type="checkbox"],
html[dir="ltr"] body.theme-v2 .add_Permissions_content input[type="checkbox"],
html[dir="ltr"] body.theme-v2 div.checkbox > input[type="checkbox"] {
    margin: 0 0 0 6px !important;
}

/* Reset the legacy fake-box drawn on the label so we don't end
   up with a double box (real input + ::before). */
body.theme-v2 .checkbox input[type="checkbox"] + label::before,
body.theme-v2 .checkbox input[type="checkbox"] + label::after,
body.theme-v2 .checkbox.checkbox-success input[type="checkbox"] + label::before,
body.theme-v2 .checkbox.checkbox-success input[type="checkbox"] + label::after,
body.theme-v2 .add_Permissions_content [type="checkbox"] + label::before,
body.theme-v2 .add_Permissions_content [type="checkbox"] + label::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    width: 0 !important;
    height: 0 !important;
    transform: none !important;
}

/* Make the label sit nicely beside the now-visible checkbox. */
body.theme-v2 .checkbox input[type="checkbox"] + label,
body.theme-v2 .checkbox.checkbox-success input[type="checkbox"] + label,
body.theme-v2 .add_Permissions_content [type="checkbox"] + label {
    position: static !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer;
    line-height: 22px;
    display: inline;
    vertical-align: middle;
}

/* Container alignment — keep input + label on one line. */
body.theme-v2 .checkbox,
body.theme-v2 .checkbox.checkbox-success,
body.theme-v2 .add_Permissions_content .checkbox {
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px !important;
}

/* ============================================================
   RIBBON (orders tag)
   ============================================================ */
body.theme-v2 .ribbon-vertical-l {
    border-radius: 2px;
}

/* ============================================================
   CATEGORIES — ID vs Order badges
   ------------------------------------------------------------
   Visually separate ID (#113) from the manual sort order (1.2.3)
   so admins don't confuse the two numbers on each category row.
   ============================================================ */
body.theme-v2 .parent-list .cat-id-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    background: var(--bl-tint-blue-bg, #eaf2ff);
    color: var(--bl-brand, #0b3a83);
    border: 1px solid color-mix(in srgb, var(--bl-brand, #0b3a83) 18%, transparent);
    border-radius: 999px;
    font-weight: 700;
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: nowrap;
    direction: ltr;
    font-variant-numeric: tabular-nums;
}

body.theme-v2 .parent-list .cat-order-badge {
    display: inline-flex;
    align-items: center;
    margin-inline-end: 8px;
    padding: 2px 9px;
    background: #fff4e5;
    color: #8a4b00;
    border: 1px solid #ffd9a8;
    border-radius: 6px;
    font-weight: 600;
    font-size: 12px;
    line-height: 1.5;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

body.theme-v2 .parent-list .cat-name {
    font-weight: 700;
    color: var(--bl-text, #0f172a);
}

/* Second/third nesting levels — softer order badge tone */
body.theme-v2 .parent-list .second_level .cat-order-badge,
body.theme-v2 .parent-list .third_level .cat-order-badge {
    background: #fff8ed;
    color: #95541a;
}

/* Tighten the row when both badges appear */
body.theme-v2 .parent-list .parent .data > p {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* UncheckAll is hidden by default via inline style; JS controls visibility */
