/* /Components/Auth/MfaVerify.razor.rz.scp.css */
.verifying-indicator[b-xmdmdwhnsv] {
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .verifying-indicator .dot[b-xmdmdwhnsv] {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background-color: #6c757d;
        animation: pulse-b-xmdmdwhnsv 1s infinite ease-in-out;
    }

@keyframes pulse-b-xmdmdwhnsv {
    0% {
        opacity: 0.2;
    }

    50% {
        opacity: 1;
    }

    100% {
        opacity: 0.2;
    }
}
/* /Components/Campaign/CampaignEdit.razor.rz.scp.css */
/* Inactive tabs */
#nav-container .nav-tabs .nav-item .nav-link[b-wemzii5i5q] {
    color: black !important;
}

    #nav-container .nav-tabs .nav-item .nav-link.active[b-wemzii5i5q] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

.campaign-header[b-wemzii5i5q] {
    flex: 0 0 auto;
    min-height: 0;
    padding: 0.75rem !important;
}

    .campaign-header .form-label[b-wemzii5i5q] {
        margin-bottom: 0.2rem !important;
    }

    .campaign-header input[b-wemzii5i5q] {
        padding: 0.35rem 0.5rem !important;
    }

/* 
   NAVIGATION TABS BAR
   -------------------
   The tab bar is a fixed-height header.
   flex: 0 0 auto → do NOT grow; height is determined by its content.
   min-height: 0 → prevents accidental stretching in nested flex layouts.
   This ensures the tab bar never steals vertical space from the scroll region.
*/
#nav-container[b-wemzii5i5q] {
    flex: 0 0 auto;
    min-height: 0;
}

/* 
   CAMPAIGN ROOT CONTAINER
   ---------------------------
   This element MUST participate in the viewport height chain.
   flex: 1 1 auto → allows it to grow to fill the screen AND shrink when needed.
   min-height: 0 → allows children to shrink and overflow (enables scrolling).
   Without this, the entire layout becomes taller than the viewport and nothing scrolls.
*/
#campaign-edit-root[b-wemzii5i5q] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

    #campaign-edit-root > .back-button-container[b-wemzii5i5q] {
        padding-left: 0;
    }

/* 
   TAB CONTENT SCROLL REGION
   -------------------------
   This is the main scroll container.
   flex: 1 1 auto → take all remaining space after the fixed headers.
   min-height: 0 → REQUIRED for scroll to activate in flex layouts.
   overflow: auto → enables scrolling when content exceeds available height.
   If this element does not scroll, it means its parent is not height-bounded.
*/
#campaign-tab-content[b-wemzii5i5q] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}
/* /Components/Campaign/CampaignList.razor.rz.scp.css */
/* Root must be flex so the scroll container can grow */
#campaign-list-root[b-tk8bm5442p] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/* Button at top stays natural height */
.top-action[b-tk8bm5442p] {
    flex: 0 0 auto;
}

/* This is the ONLY vertical scroll container */
.campaign-table-scroll[b-tk8bm5442p] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* Horizontal scroll only */
.table-responsive.campaign-table[b-tk8bm5442p] {
    overflow-x: auto;
    overflow-y: hidden;
}

/* Fix Bootstrap collapsing that breaks sticky */
.campaign-table[b-tk8bm5442p] {
    border-collapse: separate;
    border-spacing: 0;
}

    /* Sticky header — thead must also be sticky */
    .campaign-table thead[b-tk8bm5442p] {
        position: sticky;
        top: 0;
        z-index: 5;
        background: white;
    }

        .campaign-table thead th[b-tk8bm5442p] {
            position: sticky;
            top: 0;
            z-index: 5;
            background: white;
        }
/* /Components/Campaign/CampaignView.razor.rz.scp.css */
#campaign-view-root[b-72hku6imcu] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

#campaign-view-scroll[b-72hku6imcu] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.validation-summary[b-72hku6imcu] {
    background: #fff3cd;
    border: 1px solid #ffeeba;
    border-radius: 4px;
    padding: 12px;
    cursor: pointer;
}

    .validation-summary .summary-header[b-72hku6imcu] {
        font-weight: 600;
    }

    .validation-summary ul[b-72hku6imcu] {
        max-height: 200px;
        overflow-y: auto;
    }

/* /Components/Campaign/EmailPackageEditor.razor.rz.scp.css */
.token-panel[b-ejs9k2cr2b] {
    background: var(--custom-background-color);
    border-radius: 6px;
    padding: 10px;
}

    .token-panel .accordion-button:not(.collapsed)[b-ejs9k2cr2b] {
        background: var(--tab-active-background-color);
        color: #333;
    }

    .token-panel .accordion-body[b-ejs9k2cr2b] {
        background: var(--custom-background-color);
    }

/* Inactive tabs */
.nav-tabs .nav-item .nav-link[b-ejs9k2cr2b] {
    color: black !important;
}

    .nav-tabs .nav-item .nav-link.active[b-ejs9k2cr2b] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

/* /Components/Checkout.razor.rz.scp.css */
.checkout-root[b-f8yyk8o7os] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.checkout-scroll[b-f8yyk8o7os] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}
/* /Components/Correspondence.razor.rz.scp.css */
/* Inactive tabs */
.container-fluid .nav-tabs .nav-item .nav-link[b-csqi49aete] {
    color: black !important;
}

    /* Active tab */
    .container-fluid .nav-tabs .nav-item .nav-link.active[b-csqi49aete] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }
/* /Components/DatePicker.razor.rz.scp.css */
/* Container */
.datepicker[b-tqa0gm7jrd] {
    background: var(--custom-background-color);
    border: 1px solid var(--primary-color);
    border-radius: 6px;
    width: 280px;
    padding: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    font-family: inherit;
}

.datepicker-close[b-tqa0gm7jrd] {
    color: var(--primary-color);
    font-size: 1.6rem; /* bigger glyph */
    font-weight: 600;
    padding: 4px 8px; /* match .datepicker-nav */
    line-height: 1; /* keeps it vertically centered */
}
    .datepicker-close:hover[b-tqa0gm7jrd] {
        background: var(--custom-background-color);
    }


/* Header with month name and arrows */
.datepicker-header[b-tqa0gm7jrd] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    background: var(--tab-active-background-color);
    padding: 6px 10px;
    border-radius: 4px;
    font-weight: 600;
}
.datepicker-month[b-tqa0gm7jrd] {
    font-size: 1rem;
    color: var(--primary-color);
}

.datepicker-year[b-tqa0gm7jrd] {
    font-size: 1rem; /* bigger, matches header scale */
    padding: 4px 28px 4px 8px; /* more breathing room + space for custom arrow */
    border-radius: 4px;
    border: 1px solid var(--primary-color);
    background: white;
    color: var(--primary-color);
    cursor: pointer;
    /* Remove native arrow */
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    /* Custom arrow */
    background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiBoZWlnaHQ9IjEwIiB2aWV3Qm94PSIwIDAgMTAgNiIgd2lkdGg9IjEwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDFsNCA0IDQtNCIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 10px;
}

.datepicker-nav[b-tqa0gm7jrd] {
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    color: var(--primary-color);
}

    .datepicker-nav:hover[b-tqa0gm7jrd] {
        background: var(--custom-background-color);
    }

/* Weekday header row */
.datepicker-weekdays[b-tqa0gm7jrd] {
    margin-top: 6px;
}

.datepicker-weekday[b-tqa0gm7jrd] {
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    color: #555;
}

/* Grid of days */
.datepicker-grid[b-tqa0gm7jrd] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-top: 4px;
}

/* Day cell */
.datepicker-day[b-tqa0gm7jrd] {
    padding: 8px 6px;
    text-align: center;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    color: #333;
}
    /* Empty days i.e. prev or next month */
    .datepicker-day.empty[b-tqa0gm7jrd] {
        background: transparent;
        cursor: default;
    }

    /* Hover */
    .datepicker-day:hover[b-tqa0gm7jrd] {
        background: var(--tab-active-background-color);
    }

    /* Selected day */
    .datepicker-day.selected[b-tqa0gm7jrd] {
        background: var(--primary-color);
        color: white;
        box-shadow: 0 0 2px rgba(0,0,0,0.2);
    }

    .datepicker-day.disabled:hover[b-tqa0gm7jrd] {
        background: #eee;
    }

    /* Today */
    .datepicker-day.today[b-tqa0gm7jrd] {
        border: 2px solid var(--primary-color);
        border-radius: 4px;
    }

    /* Disabled (non-working) days */
    .datepicker-day.disabled[b-tqa0gm7jrd] {
        background: #eee;
        color: #bbb;
        cursor: not-allowed;
    }

.datepicker-day[b-tqa0gm7jrd],
.datepicker-nav[b-tqa0gm7jrd],
.datepicker-close[b-tqa0gm7jrd] {
    transition: background 0.2s ease, color 0.2s ease;
}

/* /Components/EditBooking.razor.rz.scp.css */
#edit-booking-root[b-ap335fz9x9] {
    height: 100vh;
    display: flex;
    flex-direction: row;
    min-height: 0;
}

#edit-booking-content[b-ap335fz9x9] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#edit-booking-details[b-ap335fz9x9] {
    flex: 1 1 auto;
    min-height: 0; /* critical */
    overflow-y: auto; /* THIS is now the scroll owner */
}

#chartContainer[b-ap335fz9x9] {
    flex: 0 0 auto; /* just stack content, no scrolling here */
}

#booking-navigation[b-ap335fz9x9] {
    position: relative;
    min-height: 0;
    flex: 1 1 auto;
}

.booking[b-ap335fz9x9] {
    position: absolute;
    width: 100%;
}
    .booking-pending[b-ap335fz9x9] {
        background-color: lightblue; /* Light blue for pending bookings */
    }

    .booking-started[b-ap335fz9x9] {
        background-color: lightgreen; /* Light green for started bookings */
    }

    .booking-gap[b-ap335fz9x9] {
        background-color: darkblue; /* Dark blue for booking gaps */
        color: white; /* Optional: white text for better contrast */
    }

.booking-active[b-ap335fz9x9] {
    width: 15%;
    height: 100%; /* Ensure it takes full height */
    display: flex;
    align-items: start;
    justify-content: start;
}
    .booking-active-pending[b-ap335fz9x9] {
        background-color: darkblue; /* Dark blue for active pending bookings */
    }

    .booking-active-started[b-ap335fz9x9] {
        background-color: darkgreen; /* Dark green for active started bookings */
    }

    .booking-active-gap[b-ap335fz9x9] {
        background-color: darkblue; /* Dark blue for booking gaps */
        color: white; /* Optional: white text for better contrast */
    }

.booking-content[b-ap335fz9x9] {
    flex-grow: 1;
    display: flex;
    align-items: flex-start;
    position: relative;
}
    .booking-content-end-of-slot[b-ap335fz9x9] {
        border-bottom: 0.5px solid black; /* Add black bottom border */
    }

.icon-container[b-ap335fz9x9] {
    display: flex;
    align-items: flex-start;
}

.double-booked-icon[b-ap335fz9x9] {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 16px;
    height: 16px;
}

.hour[b-ap335fz9x9] {
    border: 1px solid #ddd; /* Solid border for hour */
    background: repeating-linear-gradient( 45deg, rgba(211, 211, 211, 0.5), rgba(211, 211, 211, 0.5) 10px, rgba(255, 255, 255, 0.5) 10px, rgba(255, 255, 255, 0.5) 20px ); /* Checkered effect */
    height: 80px; /* Fixed height for hour */
    min-width: 200px; /* Set min width for hour */
    max-width: 400px; /* Set max width for hour */
    overflow: hidden; /* Prevent overflow */
    position: relative; /* Positioning context for absolute children */
    word-wrap: break-word; /* Allow text to wrap within the available width */
    white-space: normal; /* Allow text to wrap within the available height */
}

.timeslot[b-ap335fz9x9] {
    border: 1px solid #ddd; /* Solid border for timeslot */
    height: 80px; /* Fixed height for timeslot */
    width: 40px; /* Fixed width for timeslot */
    overflow: hidden; /* Prevent overflow */
}

/*Css for small screens*/
/* Bootstrap's default collapse behavior */
.collapse[b-ap335fz9x9] {
    overflow: hidden; /* Prevents unwanted content spill */
}

/* Small Screens: Ensure correct collapsing */
@media (max-width: 767px) {
    .navbar-toggler[b-ap335fz9x9] {
        margin-left: 0px !important;
        margin-top: 15px;
        margin-bottom: 15px;
        background-color: var(--primary-color) !important;
        padding: 10px 15px;
        color: white !important;
        border-radius: 0;
    }

    #booking-navigation.collapse[b-ap335fz9x9] {
        display: none !important;
    }

    #booking-navigation.show[b-ap335fz9x9] {
        display: block !important;
        width: 100%;
    }

    #booking-navigation[b-ap335fz9x9] {
        position: static !important;
        flex: 0 0 100% !important;
        height: 100vh !important; /* ← FULL HEIGHT, SCROLL WHOLE CONTENT */
        overflow-y: auto !important; /* ← independent scroll */
        overflow-x: hidden !important;
    }
}

/* /Components/ExercisesPanel.razor.rz.scp.css */
#exercises-panel-root[b-g2htzy6hrk] {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: auto; /* X + Y scroll */
}
/* /Components/FinancialStatement.razor.rz.scp.css */
.address[b-0oeqsjw1qc] {
    font-size: 12px;
    line-height: 1;
    color: #777;
}

.footer[b-0oeqsjw1qc] {
    background-color: var(--primary-color);
    color: #ffffff;
    width: 210mm; /* Matches A4 width */
    position: fixed; /* Ensures footer stays at the bottom */
    bottom: 0 !important;
    padding: 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    font-size: 10px;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.logo[b-0oeqsjw1qc] {
    text-align: left;
    vertical-align: top;
}

/* Additional rules for ensuring no overlap */
main[b-0oeqsjw1qc] {
    margin-bottom: 30mm; /* Ensures no overlap with footer */
}

/* Force new page when necessary */
.page-break[b-0oeqsjw1qc] {
    page-break-before: always; /* Ensures content starts on a new page */
}

/* Rules for tables and rows */
table[b-0oeqsjw1qc] {
    page-break-inside: auto; /* Allows splitting within table */
}

tr[b-0oeqsjw1qc] {
    page-break-inside: avoid; /* Prevents splitting rows */
}

th[b-0oeqsjw1qc], td[b-0oeqsjw1qc] {
    page-break-inside: avoid; /* Avoids breaking table cells across pages */
}

/* Inactive tabs */
#financialstatement-root #nav-container .nav-tabs .nav-link[b-0oeqsjw1qc] {
    color: black !important;
}

    #financialstatement-root #nav-container .nav-tabs .nav-link.active[b-0oeqsjw1qc] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

@media print {
    .address[b-0oeqsjw1qc], .footer[b-0oeqsjw1qc], main[b-0oeqsjw1qc], .logo[b-0oeqsjw1qc] {
        -webkit-print-color-adjust: exact !important;
    }

    tr[b-0oeqsjw1qc] {
        -webkit-print-color-adjust: exact !important;
        background-color: inherit !important;
    }

        tr:nth-child(even)[b-0oeqsjw1qc] {
            background-color: #e9ecef !important;
        }

        tr:nth-child(odd)[b-0oeqsjw1qc] {
            background-color: white !important;
        }

    /* Footer should repeat in print output */
    footer[b-0oeqsjw1qc] {
        position: fixed; /* Ensure placement at the bottom */
        bottom: 0;
        width: 210mm; /* Matches A4 width */
        height: 20mm; /* Footer height */
    }

    /* Optional margin adjustments for print */
    main[b-0oeqsjw1qc] {
        margin-bottom: 30mm; /* Leave room for the footer */
    }
}
/* /Components/Invoice.razor.rz.scp.css */
.address[b-xb77axb3o0] {
    font-size: 12px;
    line-height: 1;
    color: #777;
}

.footer[b-xb77axb3o0] {
    background-color: var(--primary-color);
    color: #ffffff;
    width: 210mm; /* Matches A4 width */
    position: fixed; /* Ensures footer stays at the bottom */
    bottom: 0 !important;
    padding: 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    font-size: 10px;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.logo[b-xb77axb3o0] {
    text-align: left;
    vertical-align: top;
}

/* Additional rules for ensuring no overlap */
main[b-xb77axb3o0] {
    margin-bottom: 30mm; /* Ensures no overlap with footer */
}

/* Force new page when necessary */
.page-break[b-xb77axb3o0] {
    page-break-before: always; /* Ensures content starts on a new page */
}

/* Rules for tables and rows */
table[b-xb77axb3o0] {
    page-break-inside: auto; /* Allows splitting within table */
}

tr[b-xb77axb3o0] {
    page-break-inside: avoid; /* Prevents splitting rows */
}

th[b-xb77axb3o0], td[b-xb77axb3o0] {
    page-break-inside: avoid; /* Avoids breaking table cells across pages */
}

@media print {
    .address[b-xb77axb3o0], .footer[b-xb77axb3o0], main[b-xb77axb3o0], .logo[b-xb77axb3o0] {
        -webkit-print-color-adjust: exact !important;
    }

    tr[b-xb77axb3o0] {
        -webkit-print-color-adjust: exact !important;
        background-color: inherit !important;
    }

        tr:nth-child(even)[b-xb77axb3o0] {
            background-color: #e9ecef !important;
        }

        tr:nth-child(odd)[b-xb77axb3o0] {
            background-color: white !important;
        }

    /* Footer should repeat in print output */
    footer[b-xb77axb3o0] {
        position: fixed; /* Ensure placement at the bottom */
        bottom: 0;
        width: 210mm; /* Matches A4 width */
        height: 20mm; /* Footer height */
    }

    /* Optional margin adjustments for print */
    main[b-xb77axb3o0] {
        margin-bottom: 30mm; /* Leave room for the footer */
    }
}
/* /Components/NewBooking.razor.rz.scp.css */
#new-booking-root[b-o0c0il35xj] {
    height: 100vh;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.new-booking-content[b-o0c0il35xj] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
/* /Components/PatientNewBooking.razor.rz.scp.css */
.ui-datepicker .ui-datepicker-header[b-11p0fts06h] {
    background-color: var(--custom-background-color);
    color: black; /* Ensure text is readable */
}

.available-day a[b-11p0fts06h] {
    background-color: white !important;
    color: black; /* Ensure text is readable */
}

/* Style for selected day to match buttons */
.ui-datepicker .ui-datepicker-current-day a[b-11p0fts06h] {
    background-color: var(--primary-color) !important; /* Match button primary color */
    color: white !important; /* Match button text color */
}
/* selection box styling */
.selection-box[b-11p0fts06h] {
    padding: 1rem;
    border: 1px solid #ccc;
    border-radius: 5px;
    cursor: pointer;
    background-color: #f9f9f9;
    transition: background-color 0.3s ease;
    width: 250px; /* Sets a fixed width */
    height: 150px; /* Sets a fixed height */
    overflow: hidden; /* Prevents content overflow */
    text-align: center; /* Centers text horizontally */
}
    /* Hover effect for location boxes */
    .selection-box:hover[b-11p0fts06h] {
        background-color: #e6f7ff;
    }
    /* Hover colour remain on a selected item */
    .selection-box.selected[b-11p0fts06h] {
        background-color: #e6f7ff; /* Keeps the hover color */
        border-color: #007acc; /* Optional: Add a distinct border for clarity */
    }

/* Address line styling inside location boxes */
.location-address-line[b-11p0fts06h] {
    margin: 0 !important; /* Completely removes additional spacing between lines */
    line-height: 1 !important; /* Sets the line height to 1 for tightly packed lines */
    font-size: 0.9rem !important; /* Keeps text readable */
    color: #333 !important; /* Maintains a neutral color */
}

/* Header above timeslot list */
.timeslot-header[b-11p0fts06h] {
    font-weight: 600;
    font-size: 1rem;
    color: var(--primary-color);
    border-bottom: 1px solid #ccc;
    padding-bottom: 4px;
    margin-top: 12px;
    margin-bottom: 8px;
}

/* Container for each time-of-day section */
.timeslot-section[b-11p0fts06h] {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 12px;
}

/* Label for Morning / Afternoon / Evening */
.timeslot-section-name[b-11p0fts06h] {
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 8px;
    color: #333;
}

/* Optional: style for slot buttons */
#slots button[b-11p0fts06h] {
    min-width: 100px;
    font-weight: 500;
}
/* /Components/PaymentReceipt.razor.rz.scp.css */
.address[b-r5tut2ahsz] {
    font-size: 12px;
    line-height: 1;
    color: #777;
}

.footer[b-r5tut2ahsz] {
    background-color: var(--primary-color);
    color: #ffffff;
    width: 210mm; /* Matches A4 width */
    position: fixed; /* Ensures footer stays at the bottom */
    bottom: 0 !important;
    padding: 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    font-size: 10px;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.logo[b-r5tut2ahsz] {
    text-align: left;
    vertical-align: top;
}

/* Additional rules for ensuring no overlap */
main[b-r5tut2ahsz] {
    margin-bottom: 30mm; /* Ensures no overlap with footer */
}

/* Force new page when necessary */
.page-break[b-r5tut2ahsz] {
    page-break-before: always; /* Ensures content starts on a new page */
}

/* Rules for tables and rows */
table[b-r5tut2ahsz] {
    page-break-inside: auto; /* Allows splitting within table */
}

tr[b-r5tut2ahsz] {
    page-break-inside: avoid; /* Prevents splitting rows */
}

th[b-r5tut2ahsz], td[b-r5tut2ahsz] {
    page-break-inside: avoid; /* Avoids breaking table cells across pages */
}

@media print {
    .address[b-r5tut2ahsz], .footer[b-r5tut2ahsz], main[b-r5tut2ahsz], .logo[b-r5tut2ahsz] {
        -webkit-print-color-adjust: exact !important;
    }

    tr[b-r5tut2ahsz] {
        -webkit-print-color-adjust: exact !important;
        background-color: inherit !important;
    }

        tr:nth-child(even)[b-r5tut2ahsz] {
            background-color: #e9ecef !important;
        }

        tr:nth-child(odd)[b-r5tut2ahsz] {
            background-color: white !important;
        }

    /* Footer should repeat in print output */
    footer[b-r5tut2ahsz] {
        position: fixed; /* Ensure placement at the bottom */
        bottom: 0;
        width: 210mm; /* Matches A4 width */
        height: 20mm; /* Footer height */
    }

    /* Optional margin adjustments for print */
    main[b-r5tut2ahsz] {
        margin-bottom: 30mm; /* Leave room for the footer */
    }
}
/* /Components/PDFChartViewer.razor.rz.scp.css */
.pdf-host[b-jy9om6kts1] {
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.pdf-viewer-container[b-jy9om6kts1] {
    flex: 1;
    overflow: hidden;
}

.pdf-viewer-frame[b-jy9om6kts1] {
    width: 100%;
    height: 800px;
    border: none;
}
/* /Components/SearchOrNewPatient.razor.rz.scp.css */
.searching-indicator[b-usm91oejl9] {
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .searching-indicator .dot[b-usm91oejl9] {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background-color: #6c757d;
        animation: pulse-b-usm91oejl9 1s infinite ease-in-out;
    }

.search-header-solo[b-usm91oejl9] {
    display: block;
    flex: none;
    min-height: auto;
}

.search-root[b-usm91oejl9] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.search-header-results[b-usm91oejl9] {
    flex: 0 0 auto;
    min-height: 0;
}

#searchPatient[b-usm91oejl9] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/* Search scroll */
.search-results-container[b-usm91oejl9] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* New patient scroll */
#newPatientForm[b-usm91oejl9] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.new-patient-scroll-container[b-usm91oejl9] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.search-root-header-only[b-usm91oejl9] {
    display: block;
}


@keyframes pulse-b-usm91oejl9 {
    0% {
        opacity: 0.2;
    }

    50% {
        opacity: 1;
    }

    100% {
        opacity: 0.2;
    }
}
/* /Pages/Administration.razor.rz.scp.css */
#actionContainer[b-zq8spuwecu] {
    max-width: 100%;
}
/* /Pages/Campaigns.razor.rz.scp.css */
#campaigns-root[b-9869nssgix] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.campaigns-container[b-9869nssgix] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
/* /Pages/Clinic.razor.rz.scp.css */
/* Set text color for all tabs */
.container-fluid .nav-tabs .nav-item .nav-link[b-y01wjwqqno] {
    color: black !important; /* Set text color to black for inactive tabs */
}

    /* Custom styles for the active tab */
    .container-fluid .nav-tabs .nav-item .nav-link.active[b-y01wjwqqno] {
        background-color: var(--tab-active-background-color) !important; /* Desired background color for selected tab */
        color: black !important; /* Ensure the active tab also has black text */
        border-color: transparent !important; /* Removing border color */
    }

:host[b-y01wjwqqno] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#clinic-root[b-y01wjwqqno] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}
    #clinic-root > *[b-y01wjwqqno] {
        flex: 0 0 auto;
    }
/* /Pages/CreateHistory.razor.rz.scp.css */
/* ---------------------------------------------------------
   PARENT TABSET (Single Patient / Import File)
   ---------------------------------------------------------
   These tabs sit at the top of the page and must remain fixed.
   They do NOT scroll and do NOT wrap.
--------------------------------------------------------- */

/* Inactive parent tabs */
#nav-container .nav-tabs .nav-item .nav-link[b-jhx0gn01sx] {
    color: black !important;
}

    /* Active parent tab */
    #nav-container .nav-tabs .nav-item .nav-link.active[b-jhx0gn01sx] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

/* Ensure the parent tab bar stays fixed in the vertical layout */
#nav-container[b-jhx0gn01sx] {
    flex: 0 0 auto;
}



/* ---------------------------------------------------------
   CHILD TABSET (Patient Details / Consultations)
   ---------------------------------------------------------
   These tabs must remain fixed vertically but scroll
   horizontally when there are too many items.
--------------------------------------------------------- */

/* Inactive child tabs */
#nav-container-child .nav-tabs .nav-item .nav-link[b-jhx0gn01sx] {
    color: black !important;
}

    /* Active child tab */
    #nav-container-child .nav-tabs .nav-item .nav-link.active[b-jhx0gn01sx] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

/* Keep the child tab bar fixed vertically */
#nav-container-child[b-jhx0gn01sx] {
    flex: 0 0 auto;
}

/* Enable horizontal scrolling for the child tabset */
#nav-tabs-container-child[b-jhx0gn01sx] {
    display: flex;
    flex-wrap: nowrap; /* Prevent wrapping */
    overflow-x: auto; /* Horizontal scroll */
    overflow-y: hidden; /* No vertical scroll */
    scrollbar-width: thin; /* Slim scrollbar on Firefox */
}

    /* Prevent tab items from shrinking or wrapping */
    #nav-tabs-container-child .nav-item[b-jhx0gn01sx] {
        flex: 0 0 auto;
    }



/* ---------------------------------------------------------
   PAGE ROOT LAYOUT
   ---------------------------------------------------------
   The entire page is a flex column. Everything above the
   content region is fixed; the content region scrolls.
--------------------------------------------------------- */

#history-root[b-jhx0gn01sx] {
    height: 100%; /* Fill available height */
    display: flex;
    flex-direction: column;
    min-height: 0; /* Required for scrollable children */
}

#parent-tab-content[b-jhx0gn01sx] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}


/* ---------------------------------------------------------
   CONTENT REGION (scroll owner)
   ---------------------------------------------------------
   This is where the form fields, tables, and consultation
   editor live. It must scroll vertically and NOT push the
   tabsets down.
--------------------------------------------------------- */
#history-scroll-container[b-jhx0gn01sx] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

#child-tab-content[b-jhx0gn01sx] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
/* /Pages/Diary.razor.rz.scp.css */
.grid-container[b-67i2w4aq4r] {
    display: grid;
    grid-template-columns: 50px repeat(7, 1fr);
    gap: 0.25px;
}

    .grid-container > div[b-67i2w4aq4r] {
        border: 1px solid #dee2e6;
        padding: 0.5rem;
        position: relative;
    }

.timeslot[b-67i2w4aq4r] {
    width: 50px;
    height: 80px; /* Fixed height for timeslot */
    overflow: hidden; /* Prevent overflow */
}

.hour[b-67i2w4aq4r] {
    height: 80px; /* Fixed height for hour */
    overflow: hidden; /* Prevent overflow */
    position: relative; /* Positioning context for absolute children */
    word-wrap: break-word; /* Allow text to wrap within the available width */
    white-space: normal; /* Allow text to wrap within the available height */
}

.hour-working[b-67i2w4aq4r] {
    background: repeating-linear-gradient( 45deg, rgba(211, 211, 211, 0.5), rgba(211, 211, 211, 0.5) 10px, rgba(255, 255, 255, 0.5) 10px, rgba(255, 255, 255, 0.5) 20px ); /* Checkered effect */
}

.day-header[b-67i2w4aq4r],
.time-header[b-67i2w4aq4r] {
    min-height: auto; /* Allow auto height for day headers */
    white-space: nowrap; /* Prevent text wrap in headers */
}

.booking[b-67i2w4aq4r] {
    position: absolute;
    width: 100%;
    overflow: hidden;
}

.booking-pending[b-67i2w4aq4r] {
    background-color: lightblue; /* Light blue for pending bookings */
}

.booking-started[b-67i2w4aq4r] {
    background-color: lightgreen; /* Light green for started bookings */
}

.booking-gap[b-67i2w4aq4r] {
    background-color: darkblue; /* Dark blue for booking gaps */
    color: white; /* Optional: white text for better contrast */
}

.booking-content[b-67i2w4aq4r] {
    flex-grow: 1;
    display: flex;
    align-items: flex-start;
    padding-bottom: 2px; /* Add some padding between bookings */
    position: relative;
}

.booking-content-end-of-slot[b-67i2w4aq4r] {
    border-bottom: 2px solid #cccccc; /* Use a lighter border color */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); /* Add a subtle shadow effect */
}

.calendar-trigger-container[b-67i2w4aq4r] {
    position: relative;
    display: inline-block;
}

.datepicker-popup[b-67i2w4aq4r] {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px;
    z-index: 2000;
    background: var(--custom-background-color);
    border: 1px solid var(--primary-color);
    border-radius: 6px;
    padding: 4px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.datepicker-close[b-67i2w4aq4r] {
    position: absolute;
    top: 4px;
    right: 6px;
    font-size: 16px;
    font-weight: bold;
    color: var(--primary-color);
    cursor: pointer;
    z-index: 2100;
}

#diary-root[b-67i2w4aq4r] {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#calendar-container[b-67i2w4aq4r],
#selection-container[b-67i2w4aq4r] {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
}

#schedule-container[b-67i2w4aq4r] {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
}

/* OUTER DRAWER */
.booking-details-drawer[b-67i2w4aq4r] {
    position: fixed;
    top: 0px; /* ← TOP OF THE PAGEU */
    right: 0;
    left: auto;
    bottom: 0;
    width: 320px;
    height: 100vh; /* ← FULL HEIGHT */
    background: #ffffff;
    box-shadow: -2px 0 8px rgba(0,0,0,0.25);
    transform: translateX(100%);
    transition: transform 0.25s ease;
    z-index: 4000;
    display: flex;
    flex-direction: column;
}

    /* SLIDE IN */
    .booking-details-drawer.open[b-67i2w4aq4r] {
        transform: translateX(0);
    }

    /* HEADER */
    .booking-details-drawer .drawer-header[b-67i2w4aq4r] {
        background: var(--custom-background-color);
        color: var(--primary-color);
        padding: 0.75rem 1rem;
        font-weight: 600;
        font-size: 1rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 2px solid var(--tab-active-background-color);
    }

        /* CLOSE BUTTON */
        .booking-details-drawer .drawer-header button[b-67i2w4aq4r] {
            background: white;
            color: var(--primary-color);
            border: 1px solid var(--primary-color);
            border-radius: 4px;
            padding: 2px 8px;
            font-size: 0.8rem;
            font-weight: 600;
        }

    /* BODY SCROLL */
    .booking-details-drawer .drawer-body[b-67i2w4aq4r] {
        flex: 1 1 auto;
        overflow-y: auto;
        /* Top padding smaller, others normal */
        padding: 0.5rem 1rem 1rem 1rem;
    }

    /* DETAIL ROWS */
        .booking-details-drawer .detail-row strong[b-67i2w4aq4r] {
            display: inline-block;
            width: 110px;
            color: #333;
        }

/* SECTION HEADER — very tight */
.section-header[b-67i2w4aq4r] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-top: 0.8rem;
    margin-bottom: 0.2rem; /* reduced */
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
    /* FIRST section header only */
    .section-header:first-of-type[b-67i2w4aq4r] {
        margin-top: 0.4rem;
    }

/* DETAIL ROW — ultra‑tight layout */
.detail-row[b-67i2w4aq4r] {
    display: grid;
    grid-template-columns: 85px 1fr; /* narrower label column */
    padding: 0.15rem 0; /* VERY tight vertical padding */
    line-height: 1.1; /* reduces natural text height */
    margin: 0 !important; /* remove bottom margin */
    border-bottom: 1px solid rgba(0,0,0,0.04);
}
    /* Remove margin from labels and values too */
    .detail-row *[b-67i2w4aq4r] {
        margin: 0 !important;
        padding: 0.15rem 0;
        line-height: 1.1;
    }

    .detail-row:last-child[b-67i2w4aq4r] {
        border-bottom: none;
    }

/* LABEL + VALUE — compact text */
.detail-label[b-67i2w4aq4r] {
    font-weight: 600;
    color: #444;
    font-size: 0.82rem;
    line-height: 1.1; /* matches row height */
}

.detail-value[b-67i2w4aq4r] {
    font-size: 0.82rem;
    color: #222;
    line-height: 1.1; /* matches row height */
}

@media (max-width: 768px) {

    .filter-date[b-67i2w4aq4r] {
        font-size: 0.9rem;
        font-weight: 600;
        color: var(--primary-color);
        margin-bottom: 0.75rem;
        padding-bottom: 0.25rem;
        border-bottom: 1px solid #e0e0e0;
        width: 100%;
    }

    .filter-drawer[b-67i2w4aq4r] {
        position: fixed;
        top: 0;
        right: 0;
        left: auto; /* ← REQUIRED FIX */
        width: 280px;
        height: 100vh;
        background: #ffffff;
        box-shadow: -2px 0 8px rgba(0,0,0,0.25);
        transform: translateX(100%);
        transition: transform 0.25s ease;
        z-index: 3000;
        display: flex;
        flex-direction: column;
    }

        .filter-drawer.open[b-67i2w4aq4r] {
            transform: translateX(0);
        }

    .filter-drawer-header[b-67i2w4aq4r] {
        border-bottom: 1px solid #dee2e6;
        background-color: var(--custom-background-color);
    }

    .filter-drawer-body[b-67i2w4aq4r] {
        flex: 1 1 auto;
        overflow-y: auto;
    }

    .filter-drawer-backdrop[b-67i2w4aq4r] {
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 2500;
    }
}
/* /Pages/Exercises.razor.rz.scp.css */
/* 
   EXERCISES ROOT CONTAINER
   ---------------------------
   This element MUST participate in the viewport height chain.
   flex: 1 1 auto → allows it to grow to fill the screen AND shrink when needed.
   min-height: 0 → allows children to shrink and overflow (enables scrolling).
   Without this, the entire layout becomes taller than the viewport and nothing scrolls.
*/
#exercises-root[b-8aamxxhodv] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
/* /Pages/Logging/LogViewer.razor.rz.scp.css */
:host[b-o10joqpn11] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.log-container[b-o10joqpn11] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
#log-root[b-o10joqpn11] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#button-bar[b-o10joqpn11] {
    flex: 0 0 auto;
}
/* /Pages/Patient/Consents.razor.rz.scp.css */
#patientConsentsContainer[b-g7453pq3th] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Consultations.razor.rz.scp.css */
#patientConsultationsContainer[b-pzyungq7pp] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Correspondence.razor.rz.scp.css */
#patientConsultationsContainer[b-1olqgencuy] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/ExercisePlans.razor.rz.scp.css */
#patientExerciseContainer[b-ytet4movl0] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Finance.razor.rz.scp.css */
#patientFinancialStatementContainer[b-0txt8642kk] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Home.razor.rz.scp.css */
/* Inactive tabs */
#nav-container .nav-tabs .nav-item .nav-link[b-eu3itzpqwx] {
    color: black !important;
}

    #nav-container .nav-tabs .nav-item .nav-link.active[b-eu3itzpqwx] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

#patientHomeContainer[b-eu3itzpqwx] {
    height: 100%; /* ← key change */
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#nav-container[b-eu3itzpqwx] {
    flex: 0 0 auto;
    min-height: 0;
}

#home-tab-content[b-eu3itzpqwx] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* Constrain the card itself */
.mfa-setup-outer[b-eu3itzpqwx] {
    width: 100%;
    max-width: 420px; /* same as login */
}

/* Constrain the content inside the card */
.mfa-setup-inner[b-eu3itzpqwx] {
    width: 100%;
    max-width: 360px; /* prevents full-width stretching */
}

.nav-link.disabled[b-eu3itzpqwx] {
    pointer-events: none;
    opacity: 0.5;
}

/* /Pages/Patient/InsuranceClaims.razor.rz.scp.css */
#patientInsuranceContainer[b-f2jqm90eym] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Invoice.razor.rz.scp.css */
#patientInvoiceContainer[b-ctflk77i8g] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patient/Payment.razor.rz.scp.css */
#patientPaymentContainer[b-kppg1miyub] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}
/* /Pages/Patients.razor.rz.scp.css */
/* Inactive tabs */
#nav-container .nav-tabs .nav-item .nav-link[b-kr3bwbud3k] {
    color: black !important;
}

    #nav-container .nav-tabs .nav-item .nav-link.active[b-kr3bwbud3k] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }

/* 
   PATIENT MODE ROOT CONTAINER
   ---------------------------
   This element MUST participate in the viewport height chain.
   flex: 1 1 auto → allows it to grow to fill the screen AND shrink when needed.
   min-height: 0 → allows children to shrink and overflow (enables scrolling).
   Without this, the entire layout becomes taller than the viewport and nothing scrolls.
*/
#patients-root[b-kr3bwbud3k] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* 
   SEARCH MODE (NO RESULTS)
   ------------------------
   The search bar is a fixed-height header.
   flex: 0 0 auto → do NOT grow, do NOT shrink; stay natural height.
   Used when there are no results, so the search bar should not take over the screen.
*/
#patientSearchContainer.solo-mode[b-kr3bwbud3k] {
    flex: 0 0 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* 
   SEARCH MODE (WITH RESULTS)
   --------------------------
   The search container becomes the scrollable region owner.
   flex: 1 1 auto → expand to fill available space so results can scroll.
   min-height: 0 → allow internal scroll containers to shrink properly.
   This MUST override the Solo version, hence the !important.
*/
#patientSearchContainer.results-mode[b-kr3bwbud3k] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}


/* 
   NAVIGATION TABS BAR
   -------------------
   The tab bar is a fixed-height header.
   flex: 0 0 auto → do NOT grow; height is determined by its content.
   min-height: 0 → prevents accidental stretching in nested flex layouts.
   This ensures the tab bar never steals vertical space from the scroll region.
*/
#nav-container[b-kr3bwbud3k] {
    flex: 0 0 auto;
    min-height: 0;
}


/* 
   TAB CONTENT SCROLL REGION
   -------------------------
   This is the main scroll container in patient mode.
   flex: 1 1 auto → take all remaining space after the fixed headers.
   min-height: 0 → REQUIRED for scroll to activate in flex layouts.
   overflow: auto → enables scrolling when content exceeds available height.
   If this element does not scroll, it means its parent is not height-bounded.
*/
#patients-tab-content[b-kr3bwbud3k] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* /Pages/ReconcilePayments.razor.rz.scp.css */
/* Inactive tabs */
#nav-container .nav-tabs .nav-item .nav-link[b-6w5x75htj5] {
    color: black !important;
}

    /* Active tab */
    #nav-container .nav-tabs .nav-item .nav-link.active[b-6w5x75htj5] {
        background-color: var(--tab-active-background-color) !important;
        color: black !important;
        border-color: transparent !important;
    }
#nav-container[b-6w5x75htj5] {
    flex: 0 0 auto;
    min-height: 0;
}

#reconcilepayments-root[b-6w5x75htj5] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#reconcilliations-tab-content[b-6w5x75htj5] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}
