﻿/* The actual timeline (the vertical ruler) */
.main-timeline {
    position: relative;
}

    /* The actual timeline (the vertical ruler) */
    .main-timeline::after {
        content: "";
        position: absolute;
        width: 6px;
        background-color: #939597;
        top: 0;
        bottom: 0;
        left: 50%;
        margin-left: -3px;
    }

/* Container around content */
.timeline {
    position: relative;
    background-color: inherit;
    width: 50%;
}

    /* The circles on the timeline */
    .timeline::after {
        content: "";
        position: absolute;
        width: 25px;
        height: 25px;
        right: -13px;
        background-color: #939597;
        border: 5px solid #f5df4d;
        top: 15px;
        border-radius: 50%;
        z-index: 1;
    }

/* Place the container to the left */
.left {
    padding: 0px 40px 20px 0px;
    left: 0;
}

/* Place the container to the right */
.right {
    padding: 0px 0px 20px 40px;
    left: 50%;
}

/* Add arrows to the left container (pointing right) */
.left::before {
    content: " ";
    position: absolute;
    top: 18px;
    z-index: 1;
    right: 30px;
    border: medium solid white;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent white;
}

/* Add arrows to the right container (pointing left) */
.right::before {
    content: " ";
    position: absolute;
    top: 18px;
    z-index: 1;
    left: 30px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
}

/* Fix the circle for containers on the right side */
.right::after {
    left: -12px;
}

/* Media queries - Responsive timeline on screens less than 600px wide */
@media screen and (max-width: 600px) {
    /* Place the timelime to the left */
    .main-timeline::after {
        left: 31px;
    }

    /* Full-width containers */
    .timeline {
        width: 100%;
        padding-left: 70px;
        padding-right: 25px;
    }

        /* Make sure that all arrows are pointing leftwards */
        .timeline::before {
            left: 60px;
            border: medium solid white;
            border-width: 10px 10px 10px 0;
            border-color: transparent white transparent transparent;
        }

    /* Make sure all circles are at the same spot */
    .left::after,
    .right::after {
        left: 18px;
    }

    .left::before {
        right: auto;
    }

    /* Make all right containers behave like the left ones */
    .right {
        left: 0%;
    }
}


/* Base hover lift using Bootstrap's variables and utilities */
.hover-lift {
    transition: var(--bs-transition-timing) !important;
    transition-property: transform, box-shadow !important;
    transition-duration: .2s !important;
    will-change: transform;
}

    .hover-lift:hover {
        transform: translateY(-0.375rem); /* 6px - matches Bootstrap spacing */
        box-shadow: var(--bs-box-shadow-lg) !important;
    }

/* Small lift variant */
.hover-lift-sm:hover {
    transform: translateY(-0.125rem); /* 2px */
    box-shadow: var(--bs-box-shadow) !important;
}

/* Large lift variant */
.hover-lift-lg:hover {
    transform: translateY(-0.625rem); /* 10px */
    box-shadow: var(--bs-box-shadow-lg) !important;
}

/* Optional: Add scale effect matching Bootstrap's scale utilities */
.hover-lift.hover-scale:hover {
    transform: translateY(-0.375rem) scale(1.02);
}

/* Add smooth transition to shadow changes */
.card.hover-lift {
    box-shadow: var(--bs-box-shadow-sm);
}

/* Optional: Different shadows based on card background */
.bg-primary.hover-lift:hover {
    box-shadow: 0 1rem 3rem rgba(var(--bs-primary-rgb), 0.175) !important;
}

.bg-light.hover-lift:hover {
    box-shadow: 0 1rem 3rem rgba(var(--bs-dark-rgb), 0.15) !important;
}

/* Optional: Disabled state */
.hover-lift.disabled,
.hover-lift:disabled {
    transform: none !important;
    box-shadow: none !important;
}

/* Optional: Match Bootstrap's dark mode if used */
@media (prefers-color-scheme: dark) {
    .hover-lift:hover {
        box-shadow: 0 1rem 3rem rgba(var(--bs-light-rgb), 0.175) !important;
    }
}

/* ============================================
   Organization Card Standard Styles
   Shared across all Org_*Card components for
   consistent font sizes, padding, and spacing
   ============================================ */

/* Square corners and no gaps between stacked cards */
.org-card {
    border-radius: 0;
    border-width: 2px;
}

.org-card > .card-header,
.org-card > .card-body {
    border-radius: 0;
}

/* Card headers - consistent compact height across all cards */
.org-card > .card-header {
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
    min-height: 1.75rem;
    font-size: 1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
}

.org-card > .card-header > .d-flex {
    width: 100%;
    align-items: center;
}

/* Constrain DxMenu/DxButton and icons within card headers to prevent height bloat */
.org-card > .card-header .dxbl-btn,
.org-card > .card-header .dxbl-menu {
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1;
    font-size: 0.75rem;
}

.org-card > .card-header .dxbl-menu-hamburger-button {
    padding: 0 0.25rem;
    min-height: unset;
    line-height: 1;
}

.org-card > .card-header .fa-solid,
.org-card > .card-header .fa-brands {
    font-size: 0.7rem;
    line-height: 1;
}

.org-card > .card-header .view-toggle-btn {
    padding: 0 0.25rem;
    min-height: unset;
    line-height: 1;
}

.org-card > .card-header .payment-icon {
    font-size: 0.75rem;
    margin-right: 0.15rem;
}

/* Card body - consistent base font size */
.org-card > .card-body {
    font-size: 0.7rem;
}

/* Entity name styling (org name, store name, contact name, etc.) */
.org-card .entity-name {
    font-size: 0.75rem;
    font-weight: 600;
}

/* Entity detail styling (address, phone, email, etc.) */
.org-card .entity-detail {
    font-size: 0.7rem;
}

/* Alternating row background */
.org-card .alt-row {
    background-color: #f8f9fa;
}

/* Compact text utilities for org panels */
.text-xs {
    font-size: 0.7rem !important;
}

.badge-xs {
    font-size: 0.6rem !important;
}

/* Custom Bootstrap-style background color utilities */
.bg-purple {
    background-color: #6f42c1 !important;
    color: white;
}

.bg-orange {
    background-color: #fd7e14 !important;
    color: white;
}

/* ============================================ */

/* Compact DxGrid pager styles - targets page number buttons and page size selector */
.compact-grid .dxbl-grid-pager-container {
    padding: 2px 4px;
}

/* Page number buttons */
.compact-grid .dxbl-grid-pager-container .dxbl-navigation-btn,
.compact-grid .dxbl-grid-pager-container .dxbl-page-btn {
    padding: 1px 6px;
    min-width: 22px;
    min-height: 22px;
    font-size: 0.75rem;
}

/* Page size selector combobox */
.compact-grid .dxbl-grid-pager-container .dxbl-combobox {
    min-height: 22px;
    font-size: 0.75rem;
}

.compact-grid .dxbl-grid-pager-container .dxbl-combobox .dxbl-input {
    padding: 1px 4px;
    font-size: 0.75rem;
}

/* Page info text (e.g., "of 15") */
.compact-grid .dxbl-grid-pager-container .dxbl-pager-page-info {
    font-size: 0.75rem;
}

/* Page size label */
.compact-grid .dxbl-grid-pager-container .dxbl-page-size-selector-caption {
    font-size: 0.75rem;
}