/*
Global Navigation
*/
#navbar li.nav-item a {
    color: var(--portalThemeColor1);
}

.navbar-toggler {
    background-color: #fff;
}

.navbar-brand.navbar-header {
    height: auto;
}

.navbar-brand.navbar-header a {
    font-size: inherit;
}

.navbar-brand {
    line-height: 0;
}

/*
Buttons
*/
button.launchentitylookup,
button.clearlookupfield {
    /*    line-height: 1.95!important;
    border: none;*/
    height: 38px;
}

.modal-body .entity-grid .view-toolbar.grid-actions .toolbar-actions .entitylist-search .input-group-btn button {
    /*    line-height: 1.28;
    border: none;*/
    margin-left: -1px;
    height: 35px;
}

/*
statuses
*/
.service-status-default {
    color: #fff;
    background-color: #757575;
    font-weight: 700;
}

.service-status-draft {
    color: #fff;
    background-color: #AD6200;
    /* #f28b00; added more contrast for accessibility */
    font-weight: 700;
}

.service-status-in-progress {
    color: #fff;
    background-color: #00807B;
    /* #00a19c; added more contrast for accessibility */
    font-weight: 700;
}

.service-status-submitted {
    color: #fff;
    background-color: #677f2f;
    /* #8bac3f; added more contrast for accessibility */
    font-weight: 700;
}

/*
Circle icons
*/
.icon-circle {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--portalThemeColor3);
    color: var(--portalThemeColor1);
    transition: all .25s ease;
}

.icon-circle .bi {
    font-size: 1.5rem;
}

.icon-circle-lg {
    width: 5.5rem;
    height: 5.5rem;
}

.icon-circle-lg .bi {
    font-size: 2rem;
}

/*
Card image cover & zoom effect
*/
.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.card-link:hover .img-cover,
.card-link:focus-visible .img-cover {
    transform: scale(1.1);
}

.card-link .card {
    border: 1px solid var(--bs-border-color-translucent);
    transition: color 0.25s;
}

.card-link:hover .card {
    border: 1px solid black;
}

.card-link .card-body.card-body-arrow {
    padding-bottom: 65px;
}

.card-link .icon-circle:hover,
.card-link .icon-circle:focus-visible,
.card-link:hover .icon-circle,
.card-link:focus-visible .icon-circle {
    background: var(--portalThemeColor6);
    color: var(--portalThemeColor1);
}

.card-link .card {
    transition: box-shadow .2s ease;
}

.card-link:hover .card,
.card-link:focus-visible .card {
    box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .08);
}

/*
Landing page hero
*/
.landing-page-hero {
    position: relative;
    height: 70vh;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.landing-page-hero::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: black;
    opacity: 0.5;
    z-index: 1;
}

.landing-page-hero-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .landing-page-hero {
        height: 50vh;
    }
}

/*
Left Hand Navigation
*/
.left-hand-nav .nav-link,
.left-hand-nav .nav-item {
    border-bottom: 1px solid var(--portalThemeColor11);
    color: var(--portalThemeColor8);
}


/*.left-hand-nav .nav-item .nav-link {
    border-bottom: none;
}*/

.nav.left-hand-nav .nav-item .collapse,
.nav.left-hand-nav .nav-item .collapsing {
    background-color: #F6F6F6;
    /*border-top: 2px solid var(--portalThemeColor4);*/
}

.left-hand-nav .nav-link.active {
    background-color: var(--portalThemeColor11);
    color: var(--portalThemeColor4);
}

/*.left-hand-nav .nav-link {
    border: 1px solid transparent;
}*/
.left-hand-nav .nav-link:hover {
    color: var(--portalThemeColor4);
}

.left-hand-nav .nav-link:focus {
    outline: 1px solid var(--portalThemeColor4);
    outline-offset: -1px;
}

.collapse.show .nav-link.active {
    background-color: inherit;
    color: var(--portalThemeColor4);
}

.parent-active {
    font-weight: bold;
    background: #f6f7f9;
    color: #1c274c;
}

.left-hand-nav .nav-link.parent-has-active-child {
    border-left: 5px solid var(--portalThemeColor4);
    border-bottom: 3px solid var(--portalThemeColor4);
    font-weight: normal;
    /* color: #1c274c; */
}

.has-active-child-closed .nav-link.parent-has-active-child {
    border-bottom: 1px solid var(--portalThemeColor4);
}

.parent-has-active-child+button {
    border-bottom: 3px solid var(--portalThemeColor4) !important;
}

.parent-has-active-child+button.collapsed {
    border-bottom: 1px solid var(--portalThemeColor4) !important;
}

/*
.parent-has-active-child,
.parent-has-active-child+button {
    border-bottom: 1px solid var(--portalThemeColor4) !important;
}
*/



.child-active {
    font-weight: bold;
    color: #1c274c;
    font-size: 14px;
    border-bottom: 1px solid #DBDBDB !important;
}

.child-inactive {
    font-weight: normal;
    color: #1c274c;
    background-color: #fff;
    font-size: 14px;
    border-bottom: 1px solid #DBDBDB !important;
}


/*
Breadcrumbs
*/
.breadcrumb>.active {
    color: var(--portalThemeColor8);
    font-weight: 400;
    font-size: inherit;
}

.page-header {
    margin-top: 0px;
    margin-bottom: 0px;
}

/*
Forms
*/
/* Only on the Profile page: */
body[data-sitemap-state="/profile/:/"] .actions {
    float: right;
}

label {
    font-weight: 400;
}

.form-control-plaintext {
    padding: .375rem;
    background-color: var(--portalThemeColor11);
    border: 1px solid var(--portalThemeColor3);
    border-width: 1px;
}

.crmEntityFormView label {
    background-color: transparent;
}

/* when a long email is in a read only form input show a scroll bar */
.crmEntityFormView .cell div.control:has(> a:first-child) {
    overflow: auto;
}

.crmEntityFormView .validation-summary ul {
    list-style: decimal;
    padding-left: 2rem;
}

.crmEntityFormView .validation-summary li {
    margin-bottom: 0.7em;
}

.crmEntityFormView .validation-summary .incomplete-steps {
    padding-left: 1.2em;
}

.form-search .btn {
    height: 34px;
    border: none;
}

/*
Form indentation: V1
*/
/* Root context to begin counter system */
.counter-root {
    counter-reset: section;
}

/* Optional: start counter at a specific number */
.start-at-1 {
    counter-reset: section 0;
}

.start-at-2 {
    counter-reset: section 1;
}

.start-at-3 {
    counter-reset: section 2;
}

.start-at-4 {
    counter-reset: section 3;
}

.start-at-5 {
    counter-reset: section 4;
}

.start-at-6 {
    counter-reset: section 5;
}

.start-at-7 {
    counter-reset: section 6;
}

.start-at-8 {
    counter-reset: section 7;
}

.start-at-9 {
    counter-reset: section 8;
}

.start-at-10 {
    counter-reset: section 9;
}

/* Generic shared structure for all levels */
.level-1-wrapper,
.level-2-wrapper,
.level-3-wrapper {
    position: relative;
    padding-left: 3.5em;
    /* Reserve space for number column */
    margin-bottom: 0.75rem;
}

.level-1-wrapper::before,
.level-2-wrapper::before,
.level-3-wrapper::before {
    position: absolute;
    left: 0;
    top: 0;
    display: inline-block;
    min-width: 3em;
    /* Allows space for numbers like 10.3.2 */
    text-align: right;
    padding-right: 0.5em;
    font-weight: 400;
    font-family: inherit;
    white-space: nowrap;
}

/* Level-specific counter increment/reset and content */
.level-1-wrapper {
    counter-increment: section;
    counter-reset: subsection;
}

.level-1-wrapper::before {
    content: counter(section) ".";
}

.level-2-wrapper {
    counter-increment: subsection;
    counter-reset: subsubsection;
    padding-left: 5rem;
}

.level-2-wrapper::before {
    content: counter(section) "." counter(subsection);
    padding-left: 2.5rem;
}

.level-3-wrapper {
    counter-increment: subsubsection;
    padding-left: 5rem;
}

.level-3-wrapper::before {
    content: counter(section) "." counter(subsection) "." counter(subsubsection);
    padding-left: 7.5rem;
}

/* Form indentation: v2  */
/* ----------------------------------------
1. BASE STYLING FOR ANY OUTLINEABLE ITEM
---------------------------------------- */

/* Make every element with data-outline-level be a positioning context */
[data-outline-level] {
    position: relative;
}

/* The number itself (e.g. “1.1”) is absolutely positioned. */
[data-outline-level]::before {
    content: attr(data-outline-level) " ";
    position: absolute;
    top: 0;
    font-weight: 400;
    white-space: nowrap;
    font-family: inherit;
}

/* --------------------------------------------------
2. INDENTATION + NUMBER LEFT-SHIFT BY INDENT LEVEL
-------------------------------------------------- */

/* Level 0: no extra indent. Number flush with container */
[data-outline-indentlevel="0"] {
    /* reserve ~2.5em for the number */
    padding-left: 2.5em;
}

[data-outline-indentlevel="0"]::before {
    left: 0;
}

/* Level 1: indent both number and text */
[data-outline-indentlevel="1"] {
    /* reserve ~4em for number+text indent */
    padding-left: 5.5em;
}

[data-outline-indentlevel="1"]::before {
    /* shift number 1.5em right compared to level-0 */
    left: 2.5em;
}

/* Level 2: further indent */
[data-outline-indentlevel="2"] {
    /* reserve ~5.5em for number+text indent */
    padding-left: 8.5em;
}

[data-outline-indentlevel="2"]::before {
    /* shift number 3em right compared to level-0 */
    left: 5.5em;
}

/* Level 3: even deeper indent */
[data-outline-indentlevel="3"] {
    /* reserve ~7em for number+text indent */
    padding-left: 11.5em;
}

[data-outline-indentlevel="3"]::before {
    /* shift number 4.5em right compared to level-0 */
    left: 8.5em;
}

/* ===================================
3. EXTENDING TO DEEPER LEVELS (if needed)
=================================== */

/* Copy this pattern to add more levels:

[data-outline-indentlevel="4"] {
padding-left: 8.5em;
}
[data-outline-indentlevel="4"]::before {
left: 6em;
}

[data-outline-indentlevel="5"] {
padding-left: 10em;
}
[data-outline-indentlevel="5"]::before {
left: 7.5em;
}
…and so on.
*/

/*
Page: Annual Statistical Reporting
*/
/* forces the Status column to reserve space */
#surveyList td:last-child,
#surveyList th:last-child {
    min-width: 7rem;
}

/* tweak to taste */


/*
Page: Organization Access Requests
*/
/* Prevent FOUC: hide subgrids until JS moves them */
#Active_Account_Access_Requests,
#Inactive_Account_Access_Requests {
    display: none;
}

/* Fade-in setup for tab container */
#accessTabWrapper.fade {
    opacity: 0;
    transition: opacity 0.5s ease-in;
}

#accessTabWrapper.fade.show {
    opacity: 1;
}

/* Loading indicator styling */
#accessTabLoading {
    font-weight: bold;
    padding: 1rem 0;
    text-align: center;
}

/* ----- Inline “Edit” button instead of drop‑down (only this list) ----- */
#Active_Account_Access_Requests .view-grid .dropdown.action>.btn {
    display: none !important;
    /* Hide the ▼ chevron */
}

#Active_Account_Access_Requests .view-grid .dropdown.action .dropdown-menu {
    display: inline-block !important;
    /* Keep menu visible  */
    position: static !important;
    /* Lose absolute pos */
    background: transparent;
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
}

#Active_Account_Access_Requests .view-grid .dropdown.action .dropdown-menu li {
    display: block;
    /* make inline if need menu items side‑by‑side */
    text-align: right;
}

/* Turn the built‑in anchor into a Bootstrap primary button */
#Active_Account_Access_Requests .view-grid .dropdown.action .dropdown-menu .edit-link {
    display: inline-block;
    padding: .25rem .75rem;
    color: #fff !important;
    background-color: #72253d;
    text-decoration: none;
}

#Active_Account_Access_Requests .view-grid .dropdown.action .dropdown-menu .edit-link:hover {
    background-color: #5f1f33;
}

.form-control.readonly {
    pointer-events: none;
}

.form-control.readonly+.text-muted {
    display: none;
}

fieldset[aria-label="Organization Information"] [data-name="Account_Information"] .cell.crmquickform-cell:first-child {
    border-right: none;
}

fieldset[aria-label="Organization Information"] [data-name="Account_Information"] .cell.crmquickform-cell .table-info {
    display: none;
}

fieldset>table[data-name$="_hidden"] {
    display: none;
}

fieldset[aria-label$="_hidden"] {
    display: none;
}

/* wizard styles */
#wizard-form #UpdateButton {
    display: none;
}


.subgrid-padding-0 table td.subgrid-cell {
    padding: 0px
}


/* ensure dates don't wrap in tables */
[data-type="System.DateTime"] {
    white-space: nowrap;
}

/* hide form tab titles by applying the tab-title-none class to a parent element of the entityform liquid tag */
.tab-title-none .tab-title {
    display: none;
}

#org-card.card {
    margin-bottom: 0px;
}

/* Turn off native list numbers and set up our own counter */
.stepper {
    list-style: none;
    counter-reset: step;
    padding-left: 0;
    margin: 0;
}

/* Each item increments the counter */
.stepper li {
    counter-increment: step;
    margin: 0 0 .5rem 0;
}

/* Link layout: number column + text column (natural hanging indent) */
.stepper .nav-link {
    display: grid;
    /* numbers + text in two columns */
    grid-template-columns: auto 1fr;
    /* number width auto, text takes the rest */
    column-gap: .5ch;
    align-items: start;
    text-decoration: none;
    white-space: normal;
    /* allow wrapping */
}

/* Generate the number inside the link, with a space after the dot */
.stepper .nav-link::before {
    content: counter(step) ". ";
    font-weight: normal;
    /* not bold */
}

.stepper .nav-link-disabled {
    margin-left: 3px;
}

.stepper .nav-link-disabled::before {
    content: counter(step) ". ";
    font-weight: normal;
    /* not bold */
}

/* multi-column layout */

@media (max-width: 767.98px) {

    /* hide web resources on small screens */
    .crmEntityFormView table[data-name*="_MultiColumn"] td.web-resource-cell {
        display: none;
    }
}

@media (min-width: 768px) {

    /*
    - hide labels for regular inputs
    - hide validators on regular inputs
    - hide literal controls on web resources
    - set column widths for 3-column layout
    */
    .crmEntityFormView table[data-name*="_MultiColumn"] td.form-control-cell label.field-label {
        /* display: none; ❌ DO NOT USE */
        /* Replace with visually hidden pattern */
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn"] td.form-control-cell .validators {
        /* display: none; ❌ DO NOT USE */
        /* Replace with visually hidden pattern */
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn"] td.web-resource-cell literal {
        /* display: none; ❌ DO NOT USE */
        /* Replace with visually hidden pattern */
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn3"] colgroup>col:nth-child(1) {
        width: 50% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn3"] colgroup>col:nth-child(2) {
        width: 25% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn3"] colgroup>col:nth-child(3) {
        width: 25% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn4"] colgroup>col:nth-child(1) {
        width: 40% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn4"] colgroup>col:nth-child(2) {
        width: 20% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn4"] colgroup>col:nth-child(3) {
        width: 20% !important;
    }

    .crmEntityFormView table[data-name*="_MultiColumn4"] colgroup>col:nth-child(4) {
        width: 20% !important;
    }
}

/* end multi-column layout */

/* inline form layout */

/* first div (label/left side) takes remaining space */
table[data-name*="_Inline"] td:has(> div:first-child label)>div:first-child {
    display: inline-block;
    vertical-align: middle;
    width: calc(100% - (10ch + 5%));
    /* subtract second div width + its margin */
    box-sizing: border-box;
}

/* second div fixed to ~10 characters */
table[data-name*="_Inline"] td:has(> div:first-child label)>div+div {
    display: inline-block;
    vertical-align: middle;
    width: 10ch;
    margin-left: 5%;
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* description div will go under the field value */
table[data-name*="_Inline"] td:has(> div:first-child label)>div+div[class^="description below"] {
    white-space: normal;
    width: auto;
    font-size: 16px;
}

/* end inline form layout */

.entity-form-readonly-hidealert>div>.crmEntityFormView>.entity-form>.alert {
    display: none;
}

/* Error message style*/
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
    border: 2px solid red !important;
}

/* Hide pre-translated fields, will be shown by javascript */
td.lookup div.control {
    visibility: hidden;
}

/* undo above for Contact Us page */
[data-form-name="Portal Support Request"] td.lookup div.control {
    visibility: visible;
}

.entitylist.entity-grid {
    visibility: hidden;
}

#filterDropdownId {
    display: none;
}


.ssi-clause {
    padding-bottom: 28px;
}

.ssi-clause div.table-info.required label:after {
    content: ' *';
    color: red;
}

.ssi-clause div.table-info.required .field-label::after {
    content: ' *';
    color: red;
}

.ssi-clause-row .required-indicator {
    color: #dc3545;
    font-weight: bold;
    margin-left: 5px;
}

.ssi-clause-row.required-clause {

    padding-left: 10px;
    margin-bottom: 15px;

}

.ssi-clause-row .form-check {
    margin-bottom: 1rem;
}

.ssi-clause-row .form-check-label {
    margin-left: 0.5rem;
    line-height: 1.5;
}

/* Loading Overlay Styles */
.ssi-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.9);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.ssi-loading-content {
    text-align: center;
    padding: 2rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.ssi-loading-overlay.hidden {
    display: none;
}

/* Adds top padding above the "I want to enter my address manually" checkbox field */
/* ===========================================================
   Mailing Address – Checkbox before label (final responsive fix)
   =========================================================== */

/* --- DESKTOP / TABLET --- */
table[data-name="Mailing_Address"] td.checkbox-cell {
    display: flex !important;
    align-items: center !important;
    flex-direction: row-reverse !important;
    /* visually puts checkbox first */
    justify-content: flex-end !important;
    gap: 0.5rem !important;
    padding-top: 1.875rem !important;
    /* ≈30px */
    vertical-align: top !important;
}

/* Neutralize Dynamics floats */
table[data-name="Mailing_Address"] td.checkbox-cell .table-info,
table[data-name="Mailing_Address"] td.checkbox-cell .control {
    float: none !important;
    clear: none !important;
    margin: 0 !important;
}

/* Label styling */
table[data-name="Mailing_Address"] td.checkbox-cell label.field-label {
    display: inline !important;
    white-space: normal !important;
    vertical-align: middle !important;
    font-weight: normal;
}

/* Checkbox tweak */
table[data-name="Mailing_Address"] td.checkbox-cell input[type="checkbox"] {
    margin: 0 !important;
    position: relative !important;
    top: -1px !important;
}

@media (max-width: 767.98px) {
    table[data-name="Mailing_Address"] td.checkbox-cell {
        flex-direction: column-reverse !important;
        align-items: flex-start !important;
        gap: 0 !important;
        padding-top: 0.25rem !important;
        margin-top: 0 !important;
    }

    /* Target the checkbox container span */
    table[data-name="Mailing_Address"] td.checkbox-cell span.checkbox {
        display: flex !important;
        align-items: center !important;
        line-height: 1 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Nudge checkbox down slightly for perfect alignment */
    table[data-name="Mailing_Address"] td.checkbox-cell input[type="checkbox"] {
        position: relative !important;
        top: 15px !important;
        /* increase from 2px to 4px */
        margin: 0 !important;
        vertical-align: middle !important;
    }

    /* Remove stray space from label wrapper */
    table[data-name="Mailing_Address"] td.checkbox-cell .table-info {
        margin-top: -0.25rem !important;
    }
}


/* --- Power Pages Picklist Radios — consistent left alignment --- */

/* Container: keep vertical stacking */
td.picklist-cell .picklist.vertical {
    display: block;
    padding-top: 0.75rem;
}

/* Editable version — radios + labels in a clean grid */
td.picklist-cell .picklist.vertical:not(.aspNetDisabled) {
    display: grid !important;
    grid-template-columns: auto 1fr;
    align-items: start;
    row-gap: 0.75rem;
    column-gap: 0.5rem;
}

/* Readonly version — each .aspNetDisabled span becomes a row */
td.picklist-cell .picklist.vertical .aspNetDisabled {
    display: grid !important;
    grid-template-columns: auto 1fr;
    align-items: start;
    column-gap: 0.5rem;
    row-gap: 0.5rem;
    margin-bottom: 0.25rem;
}

/* Radios */
td.picklist-cell .picklist.vertical input[type="radio"] {
    accent-color: #6c757d;
    /* Bootstrap gray */
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    opacity: 1 !important;
    cursor: pointer;
}

/* Checked */
td.picklist-cell .picklist.vertical input[type="radio"]:checked {
    accent-color: #495057;
}

/* Disabled/readonly radios */
td.picklist-cell .picklist.vertical input[type="radio"][disabled],
td.picklist-cell .picklist.vertical input[type="radio"][readonly] {
    accent-color: #6c757d;
    opacity: 1 !important;
    cursor: not-allowed;
}

/* Labels */
td.picklist-cell .picklist.vertical label {
    /*font-size: 1rem;*/
    color: #212529;
    line-height: 1.5;
    margin: 0;
    white-space: normal;
    cursor: default;
}

/* Remove portal <br> breaks */
td.picklist-cell .picklist.vertical br {
    display: none !important;
}


.readonly-field {
    background-color: #f3f3f3 !important;

    pointer-events: none;


}

/* Fix for preform bundle overriding alert-danger */
.alert.alert-danger {
  background-color: var(--bs-alert-bg) !important;
  border-color: var(--bs-alert-border-color) !important;
  color: var(--bs-alert-color) !important;
}


.form-control-cell .control a {
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
  display: inline-block;  /* ensures wrapping inside td */
}
