html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 14px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

/* this is for the bootstrap type-ahead */
body {
  margin-bottom: 60px;
}
.tt-menu {
    background-color: white;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
    padding: 0.5rem;
    width: 100%;
    max-height: 250px;
    overflow-y: auto;
    z-index: 1050;
}

.tt-suggestion {
    padding: 0.5rem;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}

    .tt-suggestion:hover {
        background-color: #007bff;
        color: white;
    }

.typeahead, .tt-input, .twitter-typeahead {
    width: 100% !important;
    min-width: 100% !important;
    display: block !important;
}

.tt-hint {
    width: 100% !important; /* Ensures hint text aligns properly */
}

.tt-menu {
    width: 100% !important; /* Ensures dropdown matches input width */
}
/* end bootstrap type ahead */



/* Expandable / collapsible text column in a table */

.text-container {
    display: flex;
    align-items: flex-start;
    width: 100%;
}

.text-block {
    flex: 1;
    font-size: 14px;
    line-height: 1.5;
    max-height: 21px;
    overflow: hidden;
    margin-right: 0.5rem;
    padding: 0;
    margin: 0;
}

    .text-block.expanded {
        max-height: none;
        overflow: visible;
    }

.text-container .toggle-icon {
    flex-shrink: 0;
    cursor: pointer;
    display: none;
    font-size: 1rem;
    margin-top margin-top: 0.25em;
}

.text-container.needs-expansion .toggle-icon {
    display: inline-block;
}

.table td {
    vertical-align: top;
    padding: 0.5rem;
}

    .table td.text-column {
        width: 30%;
    }

/* End exp/coll table */

/* Keep selection one-line & small regardless of theme */
.select2-container .select2-selection--multiple.select2-fixed-sm {
    height: 2rem !important; /* ~ .form-select-sm height */
    min-height: 2rem !important;
    display: flex !important;
    align-items: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

    /* Rendered chips area: single row, clipped overflow */
    .select2-container .select2-selection--multiple.select2-fixed-sm .select2-selection__rendered {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: .25rem !important;
        overflow: hidden !important;
        padding: 0 .5rem !important;
        line-height: 1.25rem !important;
    }

    /* Chips: remove vertical margins that cause the jump */
    .select2-container .select2-selection--multiple.select2-fixed-sm .select2-selection__choice {
        margin: 0 !important;
        padding: 0 .35rem !important;
        font-size: .875rem !important; /* Bootstrap “sm” font size */
        line-height: 1.25rem !important;
        height: 1.25rem !important;
        border-radius: .2rem !important;
    }

    /* Small “x” */
    .select2-container .select2-selection--multiple.select2-fixed-sm .select2-selection__choice__remove {
        font-size: .8rem !important;
        margin-right: .25rem !important;
    }

    /* Kill the inline search input that pushes height up (dropdown search remains) */
    .select2-container .select2-selection--multiple.select2-fixed-sm .select2-search--inline {
        display: none !important;
    }

/* Optional: tighten the container itself if your theme adds outer padding */
.select2-container.select2-fixed-sm-ct {
    line-height: normal !important;
}


/* Merge a btn-group and an input-group into one rounded "button group" */
.btn-input-group {
    display: inline-flex;
    align-items: stretch;
    flex-wrap: nowrap;
}

    /* Small/normal sizing hooks */
    .btn-input-group.btn-input-group-sm .btn {
        padding: .25rem .5rem;
        font-size: .875rem;
    }

    .btn-input-group.btn-input-group-sm .input-group .form-control,
    .btn-input-group.btn-input-group-sm .input-group .input-group-text {
        padding: .25rem .5rem;
        font-size: .875rem;
    }

    /* Seamless border between btn-group and input-group */
    .btn-input-group > .btn-group .btn {
        border-radius: 0;
    }

        .btn-input-group > .btn-group .btn:first-of-type {
            border-top-left-radius: .5rem;
            border-bottom-left-radius: .5rem;
        }

    .btn-input-group > .input-group {
        margin-left: -1px; /* collapse shared border */
    }

        .btn-input-group > .input-group .input-group-text,
        .btn-input-group > .input-group .form-control {
            border-radius: 0;
        }

        .btn-input-group > .input-group .form-control {
            border-top-right-radius: .5rem;
            border-bottom-right-radius: .5rem;
        }

    /* Keep focus ring above neighbors */
    .btn-input-group .btn:focus,
    .btn-input-group .btn:active,
    .btn-input-group .form-control:focus {
        position: relative;
        z-index: 2;
    }

    /* Make outline button borders match Bootstrap input borders */
    .btn-input-group .btn-outline-secondary {
        border-color: var(--bs-border-color);
        color: var(--bs-body-color);
    }

        /* Keep hover/active states consistent with input look */
        .btn-input-group .btn-outline-secondary:hover,
        .btn-input-group .btn-outline-secondary:focus {
            background-color: var(--bs-secondary-bg);
            border-color: var(--bs-border-color);
            color: var(--bs-body-color);
        }

        .btn-input-group .btn-check:checked + .btn-outline-secondary,
        .btn-input-group .btn-outline-secondary.active {
            background-color: var(--bs-secondary-bg);
            border-color: var(--bs-border-color);
            color: var(--bs-body-color);
        }
    .btn-input-group .form-control[data-decimal-input] {
        width: 7ch; /* ~5 characters wide: enough for "5.55" */
        min-width: 0; /* override Bootstrap’s min-width */
    }

/* e.g., site.css */
.required-asterisk {
    color: var(--bs-danger);
    font-weight: 600;
}

label.is-required {
    /* optional subtle cue */
}

/* Makes default MVC classes look Bootstrap-y */
.input-validation-error {
    border-color: var(--bs-danger) !important;
}

.field-validation-error {
    color: var(--bs-danger);
    font-size: .875rem;
}

.validation-summary-errors {
    margin-bottom: .5rem;
}

.expand-btn {
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
    transition: max-width 0.3s ease, padding 0.3s ease;
    max-width: 24px; /* smaller collapsed size for btn-sm */
    padding: 0.25rem 0.4rem; /* default btn-sm padding */
}

    .expand-btn span {
        opacity: 0;
        margin-left: 0.5rem;
        transition: opacity 0.3s ease;
    }

    .expand-btn:hover,
    .expand-btn:focus {
        max-width: 250px; /* plenty of room for text */
        padding: 0.25rem 0.5rem; /* expanded btn-sm padding */
        transition-delay: 1s; /* delay expansion */
    }

        .expand-btn:hover span,
        .expand-btn:focus span {
            opacity: 1;
        }