/* common, shared site-wide css */
/* Fonts */
/* Regular Inter Font */
@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-VariableFont_opsz,wght.ttf') format('truetype');
    font-weight: 100 900; /* Defines the variable range of font weights */
    font-style: normal; /* Specifies that this is the normal (non-italic) variant */
    font-display: block; /* Ensures text is visible while the font loads */
}

/* Italic Inter Font */
@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-Italic-VariableFont_opsz,wght.ttf') format('truetype');
    font-weight: 100 900; /* Same weight range as normal font */
    font-style: italic; /* Specifies that this is the italic variant */
    font-display: block;
}

/* CSS to remove padding/margin */
body, html {
    margin: 0;
    padding: 0;
    background-color: #E2E2E2;
    font-family: 'Inter', sans-serif;
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Ensures the body takes full height of the screen */
}
.site-container {
    flex-grow: 1; /* Allow the content area to take up available space */
}
/* page-container is right-side of page */
.page-container {
    margin-left: 300px; /* Offset the content to the right, so it doesn’t overlap the sidebar */
    width: calc(100% - 300px); /* Ensure it takes up the remaining space */
    padding: 24px 24px 24px;
    box-sizing: border-box;
}
/* main-content is per-page content */
.main-content{
    background-color: #F1F1F1;
    border-radius: 6px;
    box-sizing: border-box;
    border: 1px solid #DEE2E6;
    padding: 24px 24px 36px;
}

/* pages */
.page-title{
    font-weight: 700;
    font-size: 24px;
    padding-top: 16px;
    padding-bottom: 12px;
}

/* pages */
.section-title{
    font-weight: 700;
    font-size: 24px;
    line-height: 29px;
}
.section-title.sub-page{
    margin-top: 6px;
    margin-bottom: 32px;
}
.section-title.sub-page.tabbed-sub-page {
    margin-top: 6px;
    margin-bottom: 12px;
}
.page-description{
    font-weight: 400;
    font-size: 16px;
    line-height: 28px;
}

.page-content{
    background-color: #FFFFFF;
    padding: 24px;
    display: flex;
    flex-direction: column; /* Stack items vertically */
    gap: 24px; /* adds space between items */
    margin-top:24px;
    
    border-radius: 4px;
    box-sizing: border-box;
    position: relative;
}

.page-content.disabled {
     pointer-events: none;     /* Disable all interaction */
     opacity: 0.7;             /* Make it look inactive */
 }

/* Override opacity for the submit button */
.page-content .tabbed-submit {
    opacity: 1 !important;
}

.title-row{
    margin-top: 16px;
    margin-bottom: 30px;
}

.h4{
    font-size: 24px;
    font-weight: 600;
}

footer {
    position: relative;
    margin-bottom:24px;
    background-color: #F1F1F1;
    padding: 10px 24px 8px;
    height:44px;
    left: calc(300px + 24px); /* Align footer with the content area, offset by sidebar width */
    width: calc(100% - 300px - 48px); /* Make the footer takes up the full width of the content, minus padding */

    border-radius: 6px;
    box-sizing: border-box;
    border: 1px solid #DEE2E6;
}

/* Buttons */
/* Blue button */
.standard-blue-button,
.standard-blue-button:focus{
    background-color: #2a3a9b;
    color: white;
    border-color:#6d78ba;
}
.standard-blue-button:hover {
    background-color: #6476df; 
    color: #FFFFFF; 
    border-color: #c1c9f2; 
}
/* Pressed (active) state */
.standard-blue-button:active {
    background-color: #0f1a5a !important;
    color: #FFFFFF !important;
    border-color: #454e7f !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);  /* Inner shadow effect for pressed look */
}

/* Red button */
.standard-red-button,
.standard-red-button:focus {
    background-color: #F1AEB5;   
    color: #B02A37;              
    border: 1px solid #B02A37;  
    outline: none;
    transition: all 0.2s ease-in-out;
}

.standard-red-button:hover {
    background-color: #e88e99; 
    color: #B02A37;
    border-color: #b02a37;
}

.standard-red-button:active {
    background-color: #d06c78 !important;  /* Pressed look */
    color: #fff !important;
    border-color: #8e1f2a !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);  /* Inner shadow */
}

/* gold button */
.standard-gold-button,
.standard-gold-button:focus{
    color: #5C4600;
    background-color: #cda424;
    border-color: #9D7C14; 
    border-radius: 6px;
}
.standard-gold-button:hover {
    background-color: #ffd657; 
    border-color: #ae8a19;  
    color: #5C4600;  
}
/* Pressed (active) state */
.standard-gold-button:active {
    background-color: #9f7b0b !important; 
    border-color: #ae8a19 !important; 
    color: #5C4600 !important; 
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);  /* Inner shadow effect for pressed look */
}

/* White button */
.standard-white-button,
.standard-white-button:focus{
    background-color: white;
    color: #263699;
    border-color:#4d5bac;
}
.standard-white-button:hover {
    background-color: #d2d9ff;
    color: #273799;
    border-color: #4d5aac;
}
/* Pressed (active) state */
.standard-white-button:active {
    background-color: #7183ec !important;
    color: #2a3a9b !important;
    border-color: #4c59ab !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);  /* Inner shadow effect for pressed look */
}

/* Gray/grey button */
.standard-gray-button,
.standard-gray-button:focus,
.standard-grey-button,
.standard-grey-button:focus {
    background-color: #DEE2E6;  
    color: #343A40;
    border-color: #ADB5BD;   
}

/* Hover state */
.standard-gray-button:hover,
.standard-grey-button:hover {
    background-color: #CED4DA;
    color: #343A40;
    border-color: #A1A8B0;   
}

/* Pressed (active) state */
.standard-gray-button:active,
.standard-grey-button:active {
    background-color: #BAC0C6 !important; 
    color: #343A40 !important;
    border-color: #949CA5 !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1); 
}

/* disabled button */
.standard-blue-button:disabled,
.standard-gold-button:disabled,
.standard-white-button:disabled,
.standard-red-button:disabled,
.standard-grey-button:disabled,
.standard-gray-button:disabled {
    background-color: #d3d3d3; /* Light gray background */
    border-color: #b3b3b3; /* Lighter border */
    color: #808080; /* Dark gray text */
    cursor: not-allowed; /* Change the cursor to indicate that it's not clickable */
}

.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height:48px;
    font-weight: 600;
}

.cms-tabs{
    padding-left: 10px;
    padding-right: 10px;
}
/* Tabbed sub-page navigation */
/* Apply updated nav styles when .cms-tabs class is added */
.cms-tabs .nav-pills {
    margin-bottom: 1.2rem !important;
}
.cms-tabs .nav-pills.tabbed-sub-page {
    margin-bottom: 1.6rem !important;
}
/* Remove padding and margin for the first link */
.cms-tabs .nav-pills .nav-item:first-child .nav-link {
    margin-left: 0;  /* Remove margin */
}

/* Remove button-like appearance for links within .cms-tabs */
.cms-tabs .nav-pills .nav-link {
    border: none;
    color: #6C757D; /* Default color for the links */
    padding: 10px 15px; /* Padding for the links */
    font-size: 16px;
    height:40px;
    font-weight: 400;
}

/* Hover effect for links within .cms-tabs */
.cms-tabs .nav-pills .nav-link:hover {
    color: #0056b3; /* Darker blue when hovering */
    text-decoration: none; /* Underline on hover */
}
.cms-tabs .nav-pills .nav-link.underlined {
    border-bottom: 2px solid #dee2e6;
    border-radius: 0;
}

/* Active tab style within .cms-tabs */
.cms-tabs .nav-pills .nav-link.active {
    color: #2A3A9B; /* Darker blue for active link */
    background-color: transparent; /* Remove background from the active tab */
    text-decoration: none; /* Underline on hover */
    border-bottom: 2px solid #060C30;
    border-radius: 0;
}

.tabbed-submit{
    position:absolute;
    top:-81px;
    right:1px;
    height:45px;
}
.tabbed-submit.page-content-tabbed-submit {
    top: 4px;
    right: 21px;
}

.forgot-password{
    text-align: right;
    margin-bottom:10px;
}

/* filter bar */
.filter-box button {
    width: 48px;
    border: none;
}
.filter-box button:hover {
    background-color: #F8F8F8 !important;
}
.filter-box button:hover i{
    color: gray !important;
}

.filter-box button:active {
     background-color: #E0E0E0 !important;
 }
.filter-box button:active i {
    color: #5A5A5A !important;
}

.filter-box button i {
    font-size:23px;
    color:#6C757D;
}

.applied-filter-text{
    cursor: pointer;
}

/* search bar */
.search-box{
    height:52px;
    box-sizing: border-box; /* Include padding and border in the width calculation */
}
.search-box .search-box-input {
    border: 1px solid #DEE2E6 !important;
    border-radius: 6px !important;
    margin-top:2px;
    padding-top:11px;
    padding-bottom:11px;
    padding-left:48px;
    padding-right:26px;
}
.search-box .input-group-text {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); /* Vertically center the icon */
    background: none;
    pointer-events: none;
    border:none;
    left:6px;
}
.search-box .search-box-input::placeholder {
    font-size:16px;
}
.search-box .input-group-text i {
    color: #000000;
    font-size:16px;
}

/* Focus effect for the input field (on click or tab focus) */
.search-box .search-box-input:focus {
    outline: none; /* Remove default focus outline */
    border-color: #6C757D; /* Set the border color to #6C757D (gray color) when focused */
    box-shadow: 0 0 5px rgba(108, 117, 125, 0.5); /* Add a subtle shadow effect around the border */
}
.search-box-clear-button{
    cursor: pointer;
    font-size: 16px;
    position: absolute;
    right: 14px;
    top: 13px;
}
/* drop downs */
.cms-dropdown-toggle {
    display: flex;
    justify-content: space-between;  /* Space between text and arrow */
    align-items: center;  /* Vertically align the text and arrow */
    height: 48px;
    border-color:#DEE2E6;
    color:#343A40;
    width:200px;
    line-height: 22px;
    font-weight: 400;
}
.cms-dropdown-toggle option {
}

/* Ensure the arrow is aligned with the button */
.cms-dropdown-toggle::after {
    margin-left: 10px;  /* the gap between the text and the arrow */
}

small.form-text.text-muted {
    color: #ADB5BD !important;
    font-size: 12px;
    font-weight: 400;
}

.badge{
    display: inline-flex;
    align-items: center;     /* vertical centering */
    justify-content: center; /* horizontal centering */
    max-width: fit-content; 
    height:20px;
    border-radius:12px;
    padding: 4px 8px;
    font-weight: 600;
    font-size: 10px;
}

.badge-dev-tag
{
    color: #212529;
    background-color: #ffcc00;
    vertical-align: middle;
    margin-right: 6px;
    text-transform: uppercase;
    font-weight: 700;
    display: inline-flex !important;
    height: 20px;
    border-radius: 4px;
}

.badge-dev-tag::before {
    content: "🛠 Dev-only";
}
.dev-badge-row {
    display: flex;
    align-items: center;
}

.triple-dot-button{
    background: none;
    border: none;
    padding: 8px;
    height:35px;
    width:35px;
    border-radius: 50%; /* makes it a circle */
    transition: background-color 0.2s ease;

    display: flex;
    align-items: center;
    justify-content: center;
}

.triple-dot-button:hover {
    background-color: #e0e0e0; /* light gray highlight on hover */
    cursor: pointer;
}

/* for links that can appear at the top right of any page */
/* Container for top-right nav links */
.top-right-nav {
    position: absolute;
    top: 46px;
    right: 46px;
    display: flex;
    gap: 8px; /* spacing between buttons */
}

/* Each individual link block */
.top-right-nav-link {
    /* optional styles */
    font-weight: 600 !important;
}
.info-content {
    display: flex;
    align-items: stretch; /* ensures both columns are same height */
    gap: 12px; /* space between icon and content */
    margin-bottom: 42px;
    overflow: hidden;
}

.info-content.tabbed-page {
    margin-bottom: 0px;
}

.info-icon img {
    height: 100%; /* matches text block height */
    min-height: 200px; /* limit height */
    width: 200px;
    min-width: 200px;
    max-width: 200px;
    background-color: #6C757D;
    border-radius: 12px;    
    max-height: 200px;
    overflow: hidden;
    object-fit: cover;
}

.info-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-start; /* Aligns items to the top */
    align-items: flex-start;     /* Aligns items to the left */
    width: 100%;
}

.info-content-title {
    font-size: 28px;
    font-weight: 700;
}

.info-content-bar {
    display: flex;
    align-items: center; /* vertical alignment */
    background-color: #DEE2E6;
    padding: 6px 10px;
    font-size: 16px;
    font-weight: 400;
    border-radius: 4px;
    width: 100%;
    height: 44px;
}

.info-content-bar-heavy{
    font-weight: 700;
}
.info-content-divider {
    border-left: 2px solid #ADB5BD;
    height: 25px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 4px;
    margin-left: 2px;
}

.info-content-id{
    display: flex; 
    justify-content: flex-start;
    align-items: center; /* Vertically center */
    gap: 0px;
    margin-bottom: 10px;
    width:100%;
}

.info-content-id input {
    flex-grow: 1;
    width: 100%;
    min-width: 0; /* Prevent overflow in flex container */
}
.info-content-block {
    display: flex;
    flex-direction: column;
    width: 100%;
    font-size: 14px;
    border:1px solid #CED4DA;
    border-radius: 6px;
}

.info-row {
    display: flex;
    width: 100%;
}

.info-label {
    background-color: #CED4DA; 
    color: #495057;
    font-weight: 700;
    padding: 6px 10px;
    width: 130px;
    box-sizing: border-box;
}

.info-value {
    background-color: #E9ECEF; 
    color: #495057;
    padding: 6px 10px;
    flex-grow: 1;
    box-sizing: border-box;
    font-weight: 400;
    font-size: 14px;
}

/* Top-left radius on the first .info-row's label */
.info-content-block .info-row:first-child .info-label {
    border-top-left-radius: 6px;
}
/* Bottom-left radius on the last .info-row's label */
.info-content-block .info-row:last-child .info-label {
    border-bottom-left-radius: 6px;
}

/* Top-right radius on the first .info-value's label */
.info-content-block .info-row:first-child .info-value {
    border-top-right-radius: 6px;
}
/* Bottom-right radius on the last .info-value's label */
.info-content-block .info-row:last-child .info-value {
    border-bottom-right-radius: 6px;
}

input:disabled{
    color: #ADB5BD !important;
    border: 2px solid #DEE2E6;
    background-color: #E9ECEF;
}

.cms-tabs .form-control:disabled {
    color: #ADB5BD;
}

.cms-tabs .form-control::placeholder {
    color: #DEE2E6; /* Set the placeholder text color */
}
.cms-tabs small.form-text.text-muted {
    color: #DEE2E6 !important;
}

/* these are white tabs at the top of a page */
.cms-tabs.page-content-tabs {
    margin-bottom: 0px;
    padding-bottom: 0;
    bottom: -25px;
    position: relative;
    padding-left: 0px;
    padding-right: 0;
}

.cms-tabs.page-content-tabs .nav-link.active{
    background-color: white;
    border-bottom: none;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    color: #060C30;
}

.cms-image{
    margin-top:12px;
}

/* image on page which lets you delete/upload images */
.cms-image-preview{
    max-width: 120px;
    object-fit: cover;
    border-color:#eeeeee;
    border-radius:20px;

    height: 100%;
    min-height: 120px;
    width: 120px;
    min-width: 120px;
    max-height: 120px;
    overflow: hidden;
    
    margin-bottom: 16px;
    margin-top: 6px;
}

.relative{
    position: relative;
}

/* delete button on page that lets you delete/upload images */
.img-delete-button{
    position: absolute;
    top: 35px;
    left: 105px;
    width: 24px;
    height: 24px;
    padding: 0px;
}

/* centered td content */
.centered-content-td-sub {
    display: flex;
    align-items: center;     /* vertical centering */
    justify-content: center; /* horizontal centering */
    height: 100%;
}

/* centered td content */
.left-content-td-sub {
    display: flex;
    align-items: center;     /* vertical centering */
    justify-content: flex-start; /* horizontal centering */
    height: 100%;
}

/* Image Thumbnails */
.image-thumbnail-item {
    height:64px;
    width:64px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0; /* don't let it shrink */
}
.image-thumbnail-link {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.image-thumbnail-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    cursor: pointer;
}

.image-thumbnail-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;     /* Fills wrapper while maintaining aspect ratio */
    object-position: center;
    display: block;
    transition: filter 0.2s ease;
    border-radius: 12px;
}

/* disabled states */
.dropdown.disabled{
    pointer-events: none;
    opacity: 0.33;           /* Makes it look grayed out */
    filter: grayscale(100%); /* makes colors dull */
    cursor: not-allowed;
}

/* target only the final li in the list so the margin bottom only
 appears if there is an actual error message to display
 */
.text-danger{ margin-bottom: 0; }
.text-danger li:last-child {
    margin-bottom: 10px;
}
.additional-entries-num{
    font-weight: 900;
    color: #495057 !important;
    font-size: 14px;
}