@charset "UTF-8";
.modal .modal-body .form-group .form-control {
    text-transform: unset; }
.modal .modal-body .form-group .form-control::placeholder {
    text-transform: uppercase; }
.modal .modal-body .form-group .form-control.select {
    text-transform: uppercase; }

.modal-successful .modal-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center; }

@media (max-width: 767px) {
    .modal-successful .modal-title {
        margin-bottom: 6px; } }

.modal-successful__descr {
    margin-bottom: 23px; }
@media (max-width: 767px) {
    .modal-successful__descr {
        margin-bottom: 20px; } }

.modal-scrollbar-measure {
    position: absolute;
    top: -9999px;
    width: 50px;
    height: 50px;
    overflow: scroll; }

.modal-open {
    overflow: hidden; }

.modal-open .modal {
    overflow-x: hidden;
    overflow-y: auto; }

.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2000;
    display: none;
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 0; }

.fade {
    transition: opacity 0.15s linear; }

.modal-narrow .modal-dialog {
    max-width: 960px; }

.modal-wide .modal-dialog {
    max-width: 570px; }

.modal-dialog {
    width: 95%;
    position: relative;
    margin: 1rem auto; }

.modal.fade .modal-dialog {
    transition: -webkit-transform 0.3s ease-out;
    transition: transform 0.3s ease-out;
    transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
    -webkit-transform: translate(0, -50px);
    transform: translate(0, -50px); }

.modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all ease .3s;
    width: 20px;
    height: 20px;
    margin-left: auto;
    fill: #FFFFFF;
    margin-bottom: 12px;
    cursor: pointer;
    position: relative;
    z-index: 3; }
@media (min-width: 1100px) {
    .modal-close {
        width: 2rem;
        height: 2rem;
        margin-bottom: 2rem;
        cursor: pointer; } }
.modal-close .icon {
    cursor: pointer;
    transition: all ease 0.3s; }
@media (min-width: 768px) {
    .modal-close {
        cursor: pointer; }
    .modal-close:hover .icon {
        opacity: 0.7;
        transform: rotate(180deg); } }

@media (prefers-reduced-motion: reduce) {
    .modal.fade .modal-dialog {
        transition: none; } }

.modal.show .modal-dialog {
    -webkit-transform: none;
    transform: none; }

.modal-dialog-centered {
    min-height: calc(100% - 4rem); }

.modal-content {
    position: relative;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: #2775BD;
    color: #ffffff;
    background-clip: padding-box;
    outline: 0;
    padding: 7.4rem;
    clip-path: polygon(4.8rem 0, 100% 0, 100% calc(100% - 4.8rem), calc(100% - 4.8rem) 100%, 0 100%, 0 4.8rem); }
@media (max-width: 767px) {
    .modal-content {
        padding: 36px 24px; } }

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100%;
    height: 100%;
    background: black; }

.modal-backdrop.fade {
    opacity: 0; }

.modal-backdrop.show {
    opacity: 0.5; }

.modal-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
    justify-content: center;
    text-align: center;
    text-transform: uppercase;
    -ms-flex-pack: justify;
    padding: 0px;
    margin-bottom: 1rem; }
@media (max-width: 1099px) {
    .modal-header {
        margin-bottom: 10px; } }
@media (max-width: 767px) {
    .modal-header {
        text-align: left;
        justify-content: start; } }

.modal-body {
    position: relative;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto; }

@media (min-width: 576px) {
    .modal-dialog {
        margin: 1.5rem auto; }
    .modal-dialog-scrollable {
        max-height: calc(100% - 3.5rem); }
    .modal-dialog-scrollable .modal-content {
        max-height: calc(100vh - 3.5rem); }
    .modal-dialog-centered {
        min-height: calc(100% - 3.5rem); }
    .modal-dialog-centered::before {
        height: calc(100vh - 3.5rem);
        height: -webkit-min-content;
        height: -moz-min-content;
        height: min-content; }
    .modal-xs {
        max-width: 300px; } }

@media (min-width: 768px) {
    .modal-md,
    .modal-lg {
        max-width: 800px; } }

@media (min-width: 1580px) {
    .modal-lg {
        max-width: 1140px; } }

.modal-success {
    padding: 34px 30px;
    background-color: #FAFAFB;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    text-align: center; }
@media (max-width: 575px) {
    .modal-success {
        padding: 34px 10px; } }

.modal-juri .modal-content {
    background-color: #F0F1EE;
    clip-path: polygon(6.6rem 0, 100% 0, 100% 100%, 0 100%, 0 6.6rem);
    color: #212121; }
@media (max-width: 575px) {
    .modal-juri .modal-content {
        clip-path: polygon(32px 0, 100% 0, 100% 100%, 0 100%, 0 32px); } }
.modal-juri .modal-content:before {
    content: '';
    position: absolute;
    inset: .2rem;
    background-color: #ffffff;
    clip-path: polygon(6.5rem 0, 100% 0, 100% 100%, 0 100%, 0 6.5rem); }
@media (max-width: 575px) {
    .modal-juri .modal-content:before {
        clip-path: polygon(32px 0, 100% 0, 100% 100%, 0 100%, 0 32px); } }

.modal-juri__body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem; }
@media (max-width: 575px) {
    .modal-juri__body {
        grid-template-columns: 100%;
        gap: 24px; } }

.modal-juri__img {
    clip-path: polygon(6.6rem 0, 100% 0, 100% calc(100% - 6.6rem), calc(100% - 6.6rem) 100%, 0 100%, 0 6.6rem);
    width: 100%;
    aspect-ratio: 0.86;
    position: relative; }
@media (max-width: 575px) {
    .modal-juri__img {
        clip-path: polygon(32px 0, 100% 0, 100% calc(100% - 32px), calc(100% - 32px) 100%, 0 100%, 0 32px); } }
.modal-juri__img img {
    position: absolute;
    inset: 0;
    object-fit: cover;
    object-position: center; }

.modal-juri__name {
    padding-bottom: 2.4rem;
    margin-bottom: 2.4rem;
    border-bottom: 1px solid #F0F1EE; }
@media (max-width: 575px) {
    .modal-juri__name {
        padding-bottom: 16px;
        margin-bottom: 16px; } }

.modal-juri__pos {
    color: #8F99A3;
    margin-bottom: 1.6rem; }
@media (max-width: 575px) {
    .modal-juri__pos {
        margin-bottom: 8px; } }
@media (min-width: 1100px) {
    .modal-juri__pos .modal-juri__link:hover {
        color: #EE424D; } }

.modal-juri__rank {
    margin-bottom: 3rem; }
@media (max-width: 575px) {
    .modal-juri__rank {
        margin-bottom: 20px; } }

.modal-criterion .modal-content {
    padding: 0;
    color: #212121;
    background-color: transparent;
    clip-path: none; }

@media (max-width: 1099px) {
    .modal-criterion .modal-dialog {
        max-width: 560px; } }

.modal-criterion .criterion-card {
    padding: 4rem 7rem; }
@media (max-width: 1099px) {
    .modal-criterion .criterion-card {
        padding: 24px 40px; } }
@media (max-width: 767px) {
    .modal-criterion .criterion-card {
        padding: 16px 20px; } }

.modal-criterion .criterion-card__body {
    max-height: 50rem;
    overflow: auto; }
@media (min-width: 1100px) {
    .modal-criterion .criterion-card__body {
        padding-right: 1rem; }
    .modal-criterion .criterion-card__body::-webkit-scrollbar {
        width: 5px;
        /* ширина для вертикального скролла */
        height: 5px;
        /* высота для горизонтального скролла */
        border-radius: 0px;
        background-color: #f5f5f5; }
    .modal-criterion .criterion-card__body::-webkit-scrollbar-thumb {
        background-color: #BDBDBD;
        border-radius: 10em; }
    .modal-criterion .criterion-card__body::-webkit-scrollbar-thumb:hover {
        background-color: #828282; } }

.modal-criterion .criterion-card__sum {
    padding-top: 34px;
    display: flex;
    justify-content: space-between;
    font-weight: bold;
    gap: 2.4rem;
    margin-top: 2.2rem;
    border-top: 1px solid #D9D9D9; }

.modal-sm .modal-dialog {
    max-width: 60rem; }

.modal-sm .modal-content {
    padding: 7rem 10rem 5rem; }
@media (max-width: 767px) {
    .modal-sm .modal-content {
        padding: 36px 24px; } }

.modal-sm .modal-header {
    justify-content: center;
    text-align: center; }

.modal-sm .modal-link {
    margin-top: 2.4rem;
    text-align: right;
    transition: all ease .3s; }
@media (min-width: 1100px) {
    .modal-sm .modal-link {
        cursor: pointer; }
    .modal-sm .modal-link:hover {
        text-decoration: underline;
        opacity: .7; } }

.modal-sm .form-footer {
    margin-top: 4rem;
    display: flex;
    flex-direction: column;
    gap: 0; }
.modal-sm .form-footer__link {
    margin-top: 2.4rem;
    text-transform: uppercase; }

.modal-sm .form-info {
    padding: 1.2rem 1.6rem;
    border: 1px solid #fff;
    margin-bottom: 2.4rem;
    background-color: rgba(255, 255, 255, 0.15);
    text-align: center; }
.modal-sm .form-info span {
    font-weight: 600;
    transition: all ease .3s; }
@media (min-width: 1100px) {
    .modal-sm .form-info span {
        cursor: pointer; }
    .modal-sm .form-info span:hover {
        opacity: .7;
        text-decoration: underline; } }

.modal-sm .modal-descr {
    margin-bottom: 4.4rem;
    text-align: center; }
.modal-sm .modal-descr .btn {
    margin-top: 4rem; }

.modal-footer {
    margin-top: 4.4rem;
    padding-top: 4.4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    margin-left: -10rem;
    margin-right: -10rem; }
@media (max-width: 767px) {
    .modal-footer {
        padding-top: 26px;
        margin: 26px -24px 0; } }
.modal-footer__link {
    text-transform: uppercase;
    position: relative; }
.modal-footer__link:before, .modal-footer__link:after {
    content: "";
    width: 100%;
    border-bottom: 1px solid #FFF;
    position: absolute;
    bottom: 0;
    left: 0;
    opacity: 1;
    transform: scale(1, 1);
    transform-origin: right center 0; }
.modal-footer__link:after {
    opacity: 0;
    transform: scale(0, 1);
    transform-origin: left center 0; }
.modal-footer__link:hover {
    cursor: pointer; }
.modal-footer__link:hover:before {
    opacity: 0;
    transform: scale(0, 1);
    transition: opacity 0.2s ease-in-out 0.2s, transform 0.2s ease-in-out 0s; }
.modal-footer__link:hover:after {
    opacity: 1;
    transform: scale(1, 1);
    transition: transform 0.2s ease-in-out 0.25s; }

.modal-reg .modal-dialog {
    max-width: 96rem; }

.modal-reg .modal-footer {
    margin-left: -7.4rem;
    margin-right: -7.4rem; }
@media (max-width: 767px) {
    .modal-reg .modal-footer {
        margin-left: -24px;
        margin-right: -24px; }
    .modal-reg .modal-footer__descr {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px; } }

.modal-reg .modal-header {
    justify-content: center; }

.modal-reg .form-password {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem; }
@media (max-width: 767px) {
    .modal-reg .form-password {
        grid-template-columns: 100%; } }

@media (max-width: 767px) {
    .modal-reg .form-footer .form-btn {
        display: flex;
        justify-content: center; } }

.modal-reg .form-descr a {
    color: #ffffff;
    text-decoration: underline;
    transition: all ease .3s; }
@media (min-width: 1100px) {
    .modal-reg .form-descr a {
        cursor: pointer; }
    .modal-reg .form-descr a:hover {
        opacity: .7; } }

.modal-reg .reg-dropdown {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 2px);
    background-color: #ffffff;
    padding: 12px 20px;
    z-index: 11;
    color: #2775BD;
    overflow: auto;
    max-height: 200px; }
@media (min-width: 1100px) {
    .modal-reg .reg-dropdown {
        max-height: 250px; }
    .modal-reg .reg-dropdown::-webkit-scrollbar {
        width: 5px;
        /* ширина для вертикального скролла */
        height: 5px;
        /* высота для горизонтального скролла */
        border-radius: 0px;
        background-color: #f5f5f5; }
    .modal-reg .reg-dropdown::-webkit-scrollbar-thumb {
        background-color: #BDBDBD;
        border-radius: 10em; }
    .modal-reg .reg-dropdown::-webkit-scrollbar-thumb:hover {
        background-color: #828282; } }
.modal-reg .reg-dropdown__item {
    padding: 0.6rem 0;
    border-bottom: 1px solid #dadada;
    transition: all ease .3s; }
@media (min-width: 1100px) {
    .modal-reg .reg-dropdown__item {
        cursor: pointer; }
    .modal-reg .reg-dropdown__item:hover {
        opacity: 0.7; } }
@media (max-width: 1099px) {
    .modal-reg .reg-dropdown__item {
        padding: 4px 0; } }

.modal-pers .modal-dialog {
    max-width: 1340px; }

/* Brand palette from Figma, node 2:6. Shared by the PHP auth and registration pages. */
body.innovative-solutions {
    --auth-orange: #f15a22;
    --auth-amber: #f7941e;
    --auth-text: #252525;
    --auth-accent: #a9360b;
    --auth-surface: #ffffff;
    --auth-gradient: linear-gradient(0deg, var(--auth-amber) 0%, #f5891e 19%, #f36d20 51%, var(--auth-orange) 69%);
    min-height: 100vh;
    min-height: 100svh;
    background: var(--auth-orange) var(--auth-gradient) fixed;
}

/* The modal script appends the backdrop directly to body. */
body.innovative-solutions .modal-backdrop {
    background: var(--auth-orange) var(--auth-gradient);
}

body.innovative-solutions .modal-backdrop.show {
    opacity: 1;
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .modal-content {
    background-color: var(--auth-surface);
    color: var(--auth-text);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .modal-dialog {
    filter: drop-shadow(0 16px 32px rgba(107, 49, 15, 0.18));
}

/* Keep specificity below the validator's error and error:focus rules. */
body.innovative-solutions :where(#modal-auth, #modal-reg) .form-control {
    color: var(--auth-text);
    border-bottom-color: #d8beb0;
    caret-color: var(--auth-accent);
}

body.innovative-solutions :where(#modal-auth, #modal-reg) .form-control::placeholder {
    color: #78665c;
    opacity: 1;
}

body.innovative-solutions :where(#modal-auth, #modal-reg) .form-control:focus {
    border-bottom-color: var(--auth-accent);
    box-shadow: 0 1px 0 var(--auth-accent);
}

body.innovative-solutions :where(#modal-auth, #modal-reg) .form-control:focus::placeholder {
    color: #78665c;
}

body.innovative-solutions :where(#modal-auth, #modal-reg) .has-error .form-control:focus {
    box-shadow: none;
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .password-wrap__show-pass-icon {
    fill: var(--auth-accent);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .form-info {
    border-color: #f7c5ad;
    background-color: #fff5ee;
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2 {
    color: var(--auth-text);
    background: var(--auth-gradient);
    font-weight: 600;
}

body.innovative-solutions #modal-auth .form-btn .btn--primary-2 {
    color: #ffffff;
}

/* Replace the original blue fill, including its hover override. */
body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2::before,
body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2:hover::before {
    background: var(--auth-gradient);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2::after {
    background-color: rgba(255, 255, 255, 0.2);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2:focus-visible::before {
    box-shadow: inset 0 0 0 3px var(--auth-text);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .btn--primary-2:active::before {
    background: var(--auth-amber);
}

body.innovative-solutions :is(#modal-auth, #modal-reg) .modal-close:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 4px;
}

/* Registration-specific controls on the standalone contest page. */

body.innovative-solutions #modal-reg .form-btn .btn--primary-2 {
    color: #ffffff;
    width: auto;
    min-width: 23rem;
    max-width: 100%;
    padding: 0 24px;
}

@media (max-width: 1099px) {
    body.innovative-solutions #modal-reg .form-btn .btn--primary-2 {
        min-width: 134px;
        padding: 0 16px;
    }
}

body.innovative-solutions #modal-reg .modal-close {
    display: none;
}

body.innovative-solutions #modal-reg .reg-dropdown {
    color: var(--auth-text);
    border: 1px solid #d8beb0;
    box-shadow: 0 8px 24px rgba(107, 49, 15, 0.12);
}

body.innovative-solutions #modal-reg .reg-dropdown__item:hover {
    color: var(--auth-accent);
    background-color: #fff5ee;
}

body.innovative-solutions #modal-reg .form-descr a,
body.innovative-solutions #modal-reg .modal-footer a {
    color: var(--auth-accent);
}

body.innovative-solutions #modal-reg .modal-footer {
    border-top-color: #ead9cf;
}

body.innovative-solutions #modal-reg .modal-footer__link::before,
body.innovative-solutions #modal-reg .modal-footer__link::after {
    border-bottom-color: var(--auth-accent);
}

body.innovative-solutions #modal-reg .password-wrap__error {
    color: #cc1010;
}

body.innovative-solutions #modal-reg .form-info {
    padding: 12px 16px;
    margin-bottom: 24px;
    border: 1px solid #f7c5ad;
}

body.innovative-solutions #modal-reg .checkbox label,
body.innovative-solutions #modal-reg .checkbox input:checked ~ label {
    color: var(--auth-text);
}

body.innovative-solutions #modal-reg .checkbox label::before,
body.innovative-solutions #modal-reg .checkbox input:not(:disabled) ~ label:hover::before {
    border-color: var(--auth-orange);
}

body.innovative-solutions #modal-reg .checkbox input:checked ~ label::before {
    border-color: var(--auth-orange);
    background-color: var(--auth-orange);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: contain;
}

/* Standalone contest auth links use the existing orange palette. */
body.innovative-solutions #modal-auth .modal-footer a,
body.innovative-solutions #modal-auth .form-footer__link a {
    color: var(--auth-accent);
}

body.innovative-solutions #modal-auth .modal-footer__link::before,
body.innovative-solutions #modal-auth .modal-footer__link::after {
    border-bottom-color: var(--auth-accent);
}
