@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap');

/* Width-specific Adjustments */
@media (max-width: 576px) {
    #rtform-umbc-logo {
        width: 141px;
        padding-left: 0px;
    }
}

@media (max-width: 768px) {
    h1 {
        margin-top: 0.5rem;
    }
    
    .navbar-toggler {
        margin-right: 34px;
    }

    .nav-item {
        border-left: 0px !important;
        border-right: 0px !important;
    }
}

@media (min-width: 575px) {
    #rtform-umbc-logo {
        width: 175px;
        padding-left: 34px;
    }
}
/* -------------------------- */

/* Form-wide Utilities */

/* Disable all transitions during initial page load to prevent visual shifting */
.preload *,
.preload *::before,
.preload *::after {
    transition: none !important;
    animation: none !important;
}

.readonly {
    background-color: rgb(233, 236, 239) !important;
}

/*td.readonly > * > span.input-group-text {
    background-color: rgb(233, 236, 239) !important;
}*/

.alert-icon {
    fill: currentColor;
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
    margin-left: 0.5rem !important;
    margin-right: 0.5rem !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
}

.navbar-brand h1 {
    font-size: 20px;
    font-weight: 500;
}

.nav-pills .nav-link {
    transition: 0.15s ease-in-out !important;
}
.nav-pills .nav-link.active {
    background-color: #444;
}
.nav-pills .nav-link:not(.active):hover {
    background-color: #222;
}

article {
    transition: 0.15s ease-in-out !important;
}
article h2 {
    font-size: 24px;
    font-weight: 700;
}
article h3 {
    font-size: 20px;
    font-weight: 500;
}

.btn-primary {
    background: rgb(253, 181, 21);
    color: #000 !important;
    font-weight: 500;
    border-color: rgb(255, 221, 129);
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary {
    /*background: #dc3545;
    color: #fff !important;
    border-color: #9d1320 !important;
    box-shadow:0 0 0 .2rem rgba(157,19,32,.25) !important;*/
    background: rgb(255, 221, 129);
    color: #000 !important;
    font-weight: 500;
    border-color: rgb(255, 221, 129);
    transition: 0.15s ease-in-out;
    /*box-shadow: 0 0 0 0.3rem rgba(255, 221, 129, 0.25) !important;*/
}

.btn-primary:active, .btn-primary.active {
    background: #fff !important;
    color: #000 !important;
    border-color: rgb(255, 221, 129) !important;
}

.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active, .btn-secondary.active, .open > .dropdown-toggle.btn-secondary {
    background: rgb(255, 221, 129);
    color: #000 !important;
    border-color: rgb(255, 221, 129);
    transition: 0.15s ease-in-out;
}

.btn-secondary:active, .btn-secondary.active {
    background: #fff !important;
    color: #000 !important;
    border-color: rgb(255, 221, 129) !important;
}

.form-control, .form-select, .input-group-text, .form-check-input, table, th, td {
    border-color: #bfc4c9;
}

tr > * {
    transition: 0.15s ease-in-out !important;
}

.form-control:focus {
    border-color: #fdb515;
    box-shadow:0 0 0 .2rem rgba(255,194,14,.25);
}

.form-select:focus {
    border-color: #fdb515;
    box-shadow:0 0 0 .2rem rgba(255,194,14,.25);
}
/* ------------------- */

/* Main Form Adjustments */
body {
    font-family: "Inter";
    /*width: 100vw;*/
    scrollbar-gutter: stable both-edges;
    /*padding-right: calc(100vw - 100%);*/
    /*background-color: #eeeef2;*/
    /*background-image: url("./maryland-flag-backgrounds-landscape-black.jpg");*/
    /*background-image: url("./maryland-flag-backgrounds-landscape-gray.jpg");*/
    /*background-image: url("./style-tile-textured-background-3160-bw.jpg");*/
    /*background-image: url("./style-tile-textured-background-3221-bw.jpg");*/
    background-color: #c7c8ca;
}

.rtform-set-hidden > legend {
    display: none !important;
}

#rtform-navbar {
    min-height: 50px;
    color: #fff !important;
    background-color:#000;
    background-image: url("./maryland-flag-backgrounds-landscape-black.jpg");
    background-blend-mode: screen;
    background-size: auto 1500% !important;
    background-repeat: none;
    font-weight: 500;
}

.rtform-navbar-container {
    /*max-width: 894px !important;*/
    max-width: 982px !important;
}

#rtform-umbc-logo {
    /*width: 175px;*/
    /*padding-left: 34px;*/
    object-fit: contain;
}

#rtform-navbar-accent {
    background-color: rgb(253, 181, 21);
    box-shadow: rgba(0, 0, 0, 0.24) 0px 1px 2px 0px;
    box-sizing: border-box;
    color: rgba(0, 0, 0, 0.87);
    display: block;
    font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Segoe UI", sans-serif;
    font-size: 16px;
    font-weight: 400;
    height: 5px;
    position: relative
}

.rtform-container {
    margin:auto;
    justify-content: center;
    max-width: 982px !important;
    padding-top: 2px;
    padding-left: 24px;
    padding-right: 24px;
    background-color: var(--bs-body-bg);
}

.rtform-set {
    margin-top: 1rem !important;
}

.rtform-row {
    min-height: 70px !important;
    margin-top: 1.25rem !important;
    margin-bottom: 2.25rem !important;

    /* Smooth transitions for show/hide animations */
    transition: opacity 0.3s ease,
                height 0.35s ease,
                margin-top 0.35s ease,
                margin-bottom 0.35s ease,
                padding-top 0.35s ease,
                padding-bottom 0.35s ease;
    /* Note: overflow is only applied during transitions to avoid clipping shadows */
}

#initLoad {
    position: absolute;
    top: 20%;
    left: 50%;
}

/* Keyframe animations for fade in/out with position changes */
@keyframes rowFadeIn {
    from {
        opacity: 0;
        transform: translateY(-80px); /* Slide down from above - "falls into place" */
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rowFadeOut {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-80px); /* Slide up - "pops off" */
    }
}

/* State: Currently hiding (collapsing) */
.rtform-row.hiding {
    height: 0 !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important; /* Prevent content overflow during collapse */

    /* Animate opacity and position while height transitions */
    animation: rowFadeOut 0.35s ease forwards;
}

/* State: Currently showing (expanding from collapsed) */
.rtform-row.showing {
    min-height: 0 !important; /* Allow collapsing below 70px minimum */
    /* overflow: hidden !important; Prevent content overflow during expansion */

    /* Animate opacity and position while height transitions */
    animation: rowFadeIn 0.35s ease forwards;
}

.rtform-row > label {
    margin-bottom: 0.5rem !important;
    padding-left: 0.25rem !important;
}

.rtform-row > small {
    margin-bottom: 1rem !important;
    padding-left: 0.25rem !important;
}

input[readonly], input[readonly]:focus, input[readonly]:active, textarea[readonly], textarea[readonly]:focus, textarea[readonly]:active {
    background-color: rgb(233, 236, 239);
}

input[type="submit"], input[type="reset"] {
    margin-left: 1rem;
    margin-right: 1rem;
    min-width: 128px !important;
}
form {
    width: 100% !important;
}

table {
    min-width: 850px !important;
}

table.rtFormTable > * > tr > th {
    font-weight: 500 !important;
    background-color: inherit !important;
}

/*table.rtFormTable > * > tr > th:first-of-type {
    padding-left: 15px !important;
}*/

table.rtFormTable > tbody > tr > th, td {
    border: 0px !important;
}

td.buttonCell {
    /*padding: 0.1rem !important;*/
    height: 45px;
    min-height: 45px;
}

/*td.buttonCell > button {
    border-radius: 0;
}*/

table.rtFormTable > caption {
    font-weight: normal !important;
    padding-left: 0.5rem;
    color: var(--bs-table-color);
    /*padding-left: 25px;*/
    /*box-shadow: var(--bs-box-shadow) !important;*/
}

table.rtFormTable > caption > small {
    font-weight: normal !important;
}

.req-span {
    color: red;
}

/* --------------------- */