﻿/* ================================================================
 * Author: Nathan Mitchell
 * Contact: natemitchell13@gm...
 * Project: Online Application & Regulatory System 'Portal''
 * Client: Maryland Department of Health
 * Boards: Massage Therapy & Chiropractic Examiners
 * Contract: 2024–2025
 * 
 * Notes:
 * - This stylesheet is part of the official Board Portal project.
 * - All values, colors, and layouts follow Maryland branding guidelines.
 * - Updates should be documented in the release notes.
 * ================================================================ */

/* Start - Global Theme Variables 🎨 */


:root {
    --color-body: #F9F6F4; /* Creamy white background */
    --color-bg: #1B1F23; /* Soft charcoal black */
    --bs-primary: #E21833; /* Bright MD Red (retained for buttons, labels, etc.) */
    --color-accent: #C8122C; /* Real MD Red  */
    --color-highlight: #EAAA00; /* MD Gold / menu hightlight  */
    --color-icons: #5C7893; /* Icons    */
    --color-card-header: #E2E2E2; /* Card Headers */
}




body {
    background-color: var(--color-body);
    font-family: "Montserrat", sans-serif;
}

/* Start - Remove underline from Text/Linked Button hover 🔗 */
.btn:hover,
.btn:focus {
    text-decoration: none !important;
}
/* End - Remove underline from LinkButton hover 🔗 */


/* PRIMARY COLOR OVERRIDE */
.btn-primary {
    background-color: var(--bs-primary) !important; /* MD Red */
    border-color: var(--bs-primary) !important;
    color: white !important;
}

    .btn-primary i {
        color: white !important;
    }

    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background-color: var(--color-accent) !important; /* Darker MD red */
        border-color: var(--color-accent) !important;
        color: white !important;
    }

        .btn-primary:hover i,
        .btn-primary:focus i,
        .btn-primary:active i {
            color: white !important;
        }

/* Optional: Text utility */
.text-primary {
    color: var(--bs-primary) !important;
}


/* ✅ Start - Global Card Header Override 🎨 */
.card-header {
    background-color: var(--color-card-header) !important;
    color: #000 !important;
}
/* ✅ End - Global Card Header Override 🎨 */

/* Start - ListView Header Styling for Div-based Layout 🧾 */
.n8-table-header {
    background-color: var(--color-card-header) !important;
    border: none !important; /* removes default list-group border */
}

    .n8-table-header > div {
        font-size: 14px;
        padding-top: 6px;
        padding-bottom: 6px;
    }
/* End - ListView Header Styling for Div-based Layout 🧾 */


/* Apply red to Bootstrap nav links using .text-primary or .nav-link */
.nav-link,
.nav-link:visited {
    color: var(--bs-primary) !important;
}

    .nav-link:hover,
    .nav-link:focus {
        color: #c8122c !important;
    }

/* General anchor tag override (if desired globally) */
a,
a:visited {
    color: var(--bs-primary);
/*    text-decoration: none;*/
}

    a:hover,
    a:focus {
        color: #c8122c;
        text-decoration: underline;
    }

/* Optional - Apply red color to specific links manually */
.link-mdred {
    color: var(--bs-primary) !important;
    text-decoration: none;
}

    .link-mdred:hover {
        text-decoration: underline;
        color: #c8122c !important;
    }

/* Start - Default Icon Color Override 🎨 */
i.fa-solid,
i.fa-regular,
i.fa-light,
i.fa-thin,
i.fa-duotone,
i.fas,
i.far,
i.bi {
    color: var(--color-icons);
}
/* End - Default Icon Color Override 🎨 */



/* Fix - Default red with white text/icon */
.btn-primary {
    color: white !important;
    background-color: var(--bs-primary) !important; /* MD Red */
    border-color: var(--bs-primary) !important;
}

    .btn-primary i.tight-icon {
        color: white !important;
    }

    /* Hover = MD Gold + MD Red text + Black icon */
    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background-color: #bb2d3b !important;
        color: white !important;
    }

        .btn-primary:hover i.tight-icon,
        .btn-primary:focus i.tight-icon,
        .btn-primary:active i.tight-icon {
            color: white !important; /* Keep icon black */
        }



/* Fix - Force white icon/text in dark button */
.btn-dark {
    color: white !important;
}

    .btn-dark i.tight-icon {
        color: white !important;
    }


/* Upload Button - Cloud Launch Style ☁️🚀 */
.btn-success {
    background: linear-gradient(to top, #ffffff 0%, #e6f2ff 100%) !important;
    border-color: #0d6efd !important;
    color: #0d6efd !important;
}

    .btn-success:hover,
    .btn-success:focus,
    .btn-success:active {
        background: linear-gradient(to top, #f0f8ff 0%, #d0e8ff 100%) !important;
        border-color: #0b5ed7 !important;
        color: #0b5ed7 !important;
    }

    .btn-success i {
        color: #0d6efd !important;
    }



/* Override - btn-secondary: Slate-Linked to Header/Footer 🎨 */
.btn-secondary {
    background-color: #0b5ed7 !important; /* Matches new header/footer */
    border-color: #0b5ed7 !important;
    color: white !important;
}

.text-secondary {
    color: #2c3e50;
}

.btn-secondary i.tight-icon {
    color: white !important;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    background-color: #0a53be !important;
    border-color: #0a53be !important;
}

    .btn-secondary:hover i.tight-icon,
    .btn-secondary:focus i.tight-icon,
    .btn-secondary:active i.tight-icon {
        color: white !important;
    }


/* END COLOR OVERRIDE */



input[type="radio"] {
    margin-right: 7px;
}



.logo-mdh {
    height: auto;
    width: auto;
    max-height: 60px;
    padding-bottom: 2px; /* Nudge to better align with text bottom */
}

.logo-mdgov {
    height: 25px;
    width: auto;
    margin-top:10px;

}


.site-header {
    min-height: 100px; /* Adjust as needed */
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.header-text {
    margin-left: 12px;
    color: white;
    flex-shrink: 1;
    min-width: 0;
    padding-bottom: 0px; /* Nudge down so baseline matches image */
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Align both text lines to bottom */
    padding-top:10px;
}

.titleTop {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 16px;
    margin: 0;
    line-height: 16px;
    text-transform: uppercase;
}

.titleBottom {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 20px;
    margin-top: 3px;
    margin-bottom: 0px;
    line-height: 20px;
}

/* End - Header Layout and Styling */



/* ✅ Start - Main Menu Bar Styling 🚩 */
.main-menu-bar {
    background-color: var(--color-accent); /* MD Red */
    font-family: "Montserrat", sans-serif;
}

    .main-menu-bar .container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        padding: 0 20px;
    }

.menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 22px;
    color: white;
    padding: 14px 0;
}

.menu-links {
    display: flex;
    gap: 0px;
}

.menu-link {
    color: white !important;
    text-decoration: none !important;
    font-size: 16px;
    font-weight: 500;
    padding: 14px 30px;
    transition: background-color 0.25s ease;
    display: flex;
    align-items: center;
    height: 50px;
}

    .menu-link:hover {
        background-color: var(--color-highlight);
        color: black !important;
        text-decoration: none !important;
    }

    .menu-link.active {
        background-color: #990e21;
        color: white !important;
        text-decoration: none !important;
    }


/* ✅ Mobile Styles 📱 */
@media (max-width: 768px) {
    .menu-toggle {
        display: block;
    }

    .menu-links {
        display: none;
        flex-direction: column;
        width: 100%;
    }

        .menu-links.show {
            display: flex;
        }

    .menu-link {
        width: 100%;
        padding: 14px 20px;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }
}

@media (min-width: 769px) {
    .menu-links {
        margin-left: -8px;
    }
}
/* ✅ End - Main Menu Bar Styling 🚩 */





/* Optional: Footer spacing consistency */
.footer a {
    display: inline-block;
    margin-bottom: 4px;
    background-color: var(--color-bg); /* ✅ Correct */
}


footer.footer {
    margin-top: auto;
}

/* End - Header Layout and Styling */



.no-link {
    text-decoration: none;
    color: var(--bs-body-color); /* Default text color from Bootstrap */
    transition: color 0.2s, text-decoration 0.2s;
}

.no-link:hover {
    text-decoration: underline;
    color: var(--bs-primary); /* Primary blue color from Bootstrap */
}

.no-line {
    text-decoration: none;
    transition: color 0.2s, text-decoration 0.2s;
}


.bd-placeholder-img {
    font-size: 1.125rem;
    text-anchor: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

@media (min-width: 768px) {
    .bd-placeholder-img-lg {
        font-size: 3.5rem;
    }
}

.b-example-divider {
    width: 100%;
    height: 3rem;
    background-color: rgba(0, 0, 0, .1);
    border: solid rgba(0, 0, 0, .15);
    border-width: 1px 0;
    box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
}

.b-example-vr {
    flex-shrink: 0;
    width: 1.5rem;
    height: 100vh;
}

.bi {
    vertical-align: -.125em;
    fill: currentColor;
}

.nav-scroller {
    position: relative;
    z-index: 2;
    height: 2.75rem;
    overflow-y: hidden;
}

    .nav-scroller .nav {
        display: flex;
        flex-wrap: nowrap;
        padding-bottom: 1rem;
        margin-top: -1px;
        overflow-x: auto;
        text-align: center;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

.bd-mode-toggle {
    z-index: 1500;
}

    .bd-mode-toggle .dropdown-menu .active .bi {
        display: block !important;
    }

.jumbotron {
    background-color: #E64545;
}

.hidden {
    display: none;
}



.profileInfo, b {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-style: normal;
}

h3, h4, h5, .card-header, thead {
    font-family: "Montserrat", sans-serif;
    font-weight: 500;
    font-style: normal;
}

/* ✅ Start - Accordion Button and Border Styling 🎛️ */

.accordion-item {
    border: 1px solid #dee2e6;
    border-radius: 0.5rem !important; /* Full rounding for outer box */
    overflow: hidden;
    margin-bottom: 8px;
    background-color: white;
    position: relative;
    z-index: 1; /* Ensure it stays below the button */
}

.custom-accordion-button {
    background-color: var(--color-card-header);
    color: #000 !important;
    height: 42px;
    font-weight: 600;
    box-shadow: none !important;
    border-radius: 0.5rem 0.5rem 0 0 !important; /* Top corners only */
    position: relative;
    z-index: 2; /* Ensure button is on top */
}

    /* Expanded state: Remove bottom rounding so content attaches cleanly */
    .custom-accordion-button:not(.collapsed) {
        background-color: var(--color-card-header) !important;
        color: #000 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    /* Collapsed state: Use white background and grey text */
    .custom-accordion-button.collapsed {
        background-color: white !important;
        color: grey !important;
    }

/* Accordion body: bottom corners only */
.accordion-collapse {
    background-color: white;
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
    overflow: hidden;
}

/* Suppress Bootstrap shine/gradient */
.accordion-button::after,
.accordion-button::before {
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
}

/* Accordion header <h5> formatting */
.custom-accordion-button h5 {
    margin-bottom: 0;
    padding-top: 4px;
    font-size: 1rem;
    font-weight: 600;
}

/* Grey text only when collapsed */
.accordion-button.collapsed h5 {
    color: grey !important;
}

/* ✅ End - Accordion Button and Border Styling 🎛️ */


/*Bootstrap Overrides----------------------

MD Red = rgb(200, 18, 44) #c8122c
MD Gold = rgb(253, 194, 46) #fdc22e

*/

h1, h2, .titleReg, .btn, .footer, .radio-item {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.btn {
    padding-left: 30px;
    padding-right: 30px;
}

.btn-danger {
    --bs-btn-bg: #c8122c;
    --bs-btn-hover-bg: #F42B49;
}


.btn-primary:disabled,
.btn-primary.disabled {
    background-color: #E2E2E2;
    border-color: lightgrey;
    color: #B1B1B1;
     /* Optional: Adjust text color for contrast */
    cursor: not-allowed; /* Optional: Change cursor to indicate disabled state */
    opacity: 0.65; /* Optional: Add opacity for a more disabled look */
}

    /* Ensure to apply hover, focus, and active states to disabled buttons */
    .btn-primary:disabled:hover,
    .btn-primary:disabled:focus,
    .btn-primary:disabled:active,
    .btn-primary.disabled:hover,
    .btn-primary.disabled:focus,
    .btn-primary.disabled:active {
        background-color: #E2E2E2;
        border-color: lightgrey;
        color: #B1B1B1;
        cursor: not-allowed;
        opacity: 0.65;
    }



/*For textboxes to edit but not show the borders to keep it clean looking*/
.no-border {
    border: none;
    padding: 0;
    padding-left:0px;

}
.no-border:hover {
        background-color: lightyellow;
    }



/*Spaces out radio button lists*/
.radio-inline {
    margin-right: 20px;
}


/*Table Hover Color*/

table-hover {border:none}

table.table-hover > tbody > tr:hover td,
table.table-hover > tbody > tr:hover th {
    background-color: lightyellow !important;
    box-shadow: 0px 0px 0px 0px;
}
.alt-backcolor {
    background-color: #F2F2F2 !important;
}

table tr td {
    margin-left: 20px;
}

.chatBox1 {
    background-color: #F8F8FF;
    padding: 10px;
    border-radius: 25px 25px 25px 0px;
}

.Val {
    font-size: 30px;
    line-height: 0px;
    font-weight: bold;
    color: Red;
}

.ValSummary {
    margin-top: 20px;
    top: 0px;
    left: 0px;
}


.sticky-bottom-div {
    position: sticky;
    bottom: 0px;
    background-color: var(--color-body);
    z-index: 10;
    margin-top: 10px;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-right: 1px; /* Compensate for overshoot */
    text-align: center;
    border-top: 1px solid #dee2e6;
    border-left: 1px solid var(--color-body);
    border-right: 1px solid var(--color-body);
    margin-right: -1px; /* Force visual bleed over right edge */
    width: calc(100% + 2px);
    margin-right: -1px;
    margin-left: -1px;
}




.icon-circle {
    display: inline-flex; /* Centers the icon inside the circle */
    justify-content: center; /* Horizontally centers the icon */
    align-items: center; /* Vertically centers the icon */
    background-color: green; /* Green background for the circle */
    border-radius: 50%; /* Makes the container a circle */
    width: 25px; /* Circle width */
    height: 25px; /* Circle height */
    color: white; /* White color for the Font Awesome icon */
    font-size: 18px; /* Adjust size of the icon */
}

.tool-tip::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro", "FontAwesome"; /* include fallbacks */
    font-weight: 900;
    content: "\f05a"; /* alt: info-circle */
    font-style: normal;
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    font-size: 13px;
    color: #d9d9d9;
}
.no-link {
    text-decoration: none;
    color: inherit;
    cursor: default;
}


/* MESSAGE BOX STYLES HERE */

#messageDivSticky {
    width: 100%;
    padding: 1rem;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
}

    #messageDivSticky.fixed {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 1050;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

.message-container {
    display: flex;
    align-items: center; /* Center vertically */
    justify-content: space-between;
    gap: 0.75rem;
    position: relative;
}

.message-icon {
    flex-shrink: 0;
    font-size: 1.2rem;
}

.message-text {
    flex: 1;
    text-align: left;
}

.close-btn {
    background: none;
    border: none;
    font-size: 1.25rem;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}
/* Styles for the footer' */
.portal-hover {
    position: relative;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    cursor: default;
}

.portal-version {
    font-weight: 500;
    font-family: "Montserrat", sans-serif;
}

.portal-subtext {
    display: inline-block;
    margin-left: 8px;
    opacity: 0;
    font-size: 10px;
    text-transform: uppercase;
    transition: opacity 0.4s ease;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #bcbcbc;

}

.portal-hover:hover ~ .portal-subtext {
    opacity: 1;
}


/* Start - Overdue icon style */
.overdue-icon i {
    transform: scale(1.5);
    color: #ffc107; /* Bootstrap warning color */
    border-radius: 50%;
    padding: 2px;
    transition: text-shadow 0.3s ease, transform 0.3s ease, color 0.3s ease;
}

.overdue-icon:hover i {
    transform: scale(1.65);
}

/* Fix icon color clash only for Admin Review stat box */
.dashboard-card.status-adminreview:hover .overdue-icon i {
    color: #dc3545; /* dark grey for visibility on yellow background */
}
/* End - Overdue icon style */




/* tool tips */
.tooltip-inner {
    max-width: 300px !important; /* Wider tooltip */
    white-space: normal !important; /* Allow wrapping */
    text-align: left; /* Better readability */
    font-size: 13px !important; /* ↓ Slightly smaller (Bootstrap default is ~14px) */
    padding: 10px 14px !important; /* ↑ Add more space around text */
}


.tool-tip {
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
    cursor: pointer;
}

    .tool-tip::before {
        font-family: "Font Awesome 6 Free";
        font-weight: 900;
        content: "\f059"; /* Info icon */
        color: #d9d9d9;
        font-size: 12px;
    }

    /* Tooltip bubble */
    .tool-tip::after {
        content: attr(data-tooltip-key); /* You can override this via JS later */
        position: absolute;
        bottom: 125%; /* Show above the icon */
        left: 50%;
        transform: translateX(-50%);
        background-color: #333;
        color: #fff;
        padding: 5px 8px;
        border-radius: 4px;
        white-space: nowrap;
        opacity: 0;
        visibility: hidden;
        transition: 0.2s;
        font-size: 12px;
        z-index: 999;
    }

   
    .tool-tip:hover::after {
        opacity: 1;
        visibility: visible;
    }

    /* Start - Suppress Default Tooltip Icon 🚫 */
    .tool-tip.no-default-icon::before {
        content: none !important;
    }

/* Start - Override Verify Link Color 🔗 */
.n8-link-black {
    color: black !important;
    text-decoration: underline;
}
/* End - Override Verify Link Color 🔗 */

/* Avoid "widows" (extra words on their own lines) */
h1, h2, h3, h4, h5 {
    text-wrap: balance;
}

p, b {
    text-wrap: pretty;
}