/******************
    User custom CSS
    ---------------
    Тема NOEMA для LimeSurvey
******************/

/* ==================================================
   1. БАЗОВАЯ ТИПОГРАФИКА И ФОН
   ================================================== */

html,
body {
    font-family:
        -apple-system,п
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        "Helvetica Neue",
        Arial,
        sans-serif !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
    color: #25313c !important;
    background: #f6f8fb !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

button,
input,
select,
textarea,
.form-control,
.btn {
    font-family: inherit !important;
}


/* ==================================================
   2. ВЕРХНЯЯ ПАНЕЛЬ
   ================================================== */

.navbar-brand,
.navbar-brand-logo,
.logo-container,
.survey-logo,
.logo-container > img,
.navbar-header .navbar-brand {
    display: none !important;
}

.navbar,
.ls-top-container,
.top-container {
    min-height: 54px !important;
    margin-bottom: 0 !important;
}

.navbar-header {
    min-height: 0 !important;
}


/* ==================================================
   3. ШИРИНА И ОСНОВНАЯ КОМПОНОВКА
   ================================================== */

.container,
#outerframeContainer,
.group-outer-container > .row,
form#limesurvey,
#welcome-container .row {
    max-width: 1240px !important;
}

#outerframeContainer {
    padding-top: 0 !important;
}

.survey-container,
.survey-main-content,
.group-outer-container,
.group-container,
.question-container {
    min-height: 0 !important;
    height: auto !important;
}


/* ==================================================
   4. ПРОГРЕСС И РАССТОЯНИЯ
   ================================================== */

.progress-row,
.progress-container,
.progress-wrapper,
#progress-wrapper,
.group-outer-container {
    transform: none !important;
}

.progress-row,
.progress-container,
.progress-wrapper,
#progress-wrapper {
    margin-top: 6px !important;
    margin-bottom: 18px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.group-outer-container {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
}

.progress {
    height: 12px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    background: #e8edf3 !important;
    border-radius: 999px !important;
    overflow: hidden !important;
}

.progress-bar {
    background: linear-gradient(90deg, #4a7dff 0%, #2f6fed 100%) !important;
}


/* ==================================================
   5. ЭКРАН ПРИВЕТСТВИЯ
   ================================================== */

#welcome-container {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

#welcome-container .survey-description {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 100% !important;
}

#welcome-container .survey-description,
#welcome-container .survey-description p,
#welcome-container .survey-description span {
    word-break: normal !important;
    overflow-wrap: normal !important;
    word-wrap: normal !important;
    hyphens: none !important;
}

.survey-welcome,
#surveydescription,
#survey-description {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

#welcome-container .row,
.survey-welcome .panel,
.survey-welcome .card {
    background: #ffffff !important;
    border: 1px solid #dfe6ee !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 28px rgba(26, 41, 61, 0.06) !important;
}

.survey-welcome .panel-body,
.survey-welcome .card-body {
    padding: 30px 34px !important;
}

.survey-name,
.survey-title,
#surveyname,
h1 {
    color: #1f2b37 !important;
    font-size: 44px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin-bottom: 24px !important;
}

#welcome-container,
#welcome-container p,
#welcome-container li,
.survey-description,
.survey-description p,
.survey-description li,
.survey-welcome,
.survey-welcome p,
.survey-welcome li {
    color: #334250 !important;
    font-size: 21px !important;
    line-height: 1.7 !important;
    text-align: center !important;
}

.survey-description ul,
.survey-welcome ul {
    list-style-position: inside !important;
    padding-left: 0 !important;
    margin: 18px auto !important;
}

.survey-description li,
.survey-welcome li {
    margin-bottom: 12px !important;
}


/* ==================================================
   6. КАРТОЧКИ ВОПРОСОВ
   ================================================== */

.group-container,
.question-container {
    background: #ffffff !important;
    border: 1px solid #dfe6ee !important;
    border-radius: 18px !important;
    box-shadow: 0 8px 28px rgba(26, 41, 61, 0.06) !important;
}

.group-container {
    padding: 22px 24px !important;
}

.question-container {
    padding: 24px 30px !important;
    margin-bottom: 18px !important;
}

.question-title-container,
.question-text,
.ls-label-question,
.question-title-container .ls-label-question,
legend,
legend.h3 {
    color: #1f2b37 !important;
    font-size: 21px !important;
    line-height: 1.45 !important;
    font-weight: 600 !important;
    text-align: left !important;
}

.question-title-container,
.question-text,
.ls-label-question {
    margin: 0 0 22px 0 !important;
    padding: 0 !important;
}

.question-help-container,
.question-valid-container,
.ls-questionhelp,
.help-block,
.text-info,
.text-muted {
    color: #5d6b78 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

.question-help-container,
.question-valid-container,
.ls-questionhelp {
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
}


/* ==================================================
   7. ОБЫЧНЫЕ СПИСКИ ОТВЕТОВ
   Без Grid, Flex и :has() на .answer-item,
   чтобы не ломать «Другое» и матрицы.
   ================================================== */

.ls-answers {
    color: #2d3945 !important;
    text-align: left !important;
}

.answer-item label,
.radio label,
.checkbox label,
.ls-answers label,
.ls-answers .control-label {
    color: #2d3945 !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
}

.answer-item label p,
.answer-item .control-label p,
.ls-answers label p,
.ls-answers .control-label p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.answer-item label p:empty,
.answer-item .control-label p:empty,
.ls-answers label p:empty,
.ls-answers .control-label p:empty {
    display: none !important;
}

/* ==================================================
   Выравнивание обычного одиночного выбора
   Матрицы и вариант «Другое» не затрагиваются
   ================================================== */

/* Все обычные строки начинаются с одной позиции */
.list-radio .radio-item:not(.other-item),
.list-with-comment .radio-item:not(.other-item) {
    display: flex;
    align-items: flex-start !important;
    gap: 12px !important;

    width: 100% !important;
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;
}

/* Радиокнопка */
.list-radio .radio-item:not(.other-item) > input[type="radio"],
.list-with-comment .radio-item:not(.other-item) > input[type="radio"] {
    position: static !important;
    flex: 0 0 19px !important;

    width: 19px !important;
    height: 19px !important;
    margin: 4px 0 0 0 !important;
    padding: 0 !important;

    transform: none !important;
}

/* Текст варианта */
.list-radio .radio-item:not(.other-item) > label,
.list-with-comment .radio-item:not(.other-item) > label {
    position: static !important;
    display: block !important;
    flex: 1 1 auto !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;

    color: #2d3945 !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

/* Длинный ответ переносится внутри своей строки */
.list-radio .radio-item:not(.other-item) > label p,
.list-with-comment .radio-item:not(.other-item) > label p {
    margin: 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;
}

/* Сбрасываем случайные отступы у строк */
.list-radio .answer-item,
.list-radio .radio-item,
.list-with-comment .answer-item,
.list-with-comment .radio-item {
    margin-left: 0 !important;
}

/* Вариант «Другое» оставляем в нативной раскладке */
.other-text-item {
    width: 100% !important;
    margin-left: 0 !important;
}

.other-text-item label,
.other-text-item .control-label {
    white-space: nowrap !important;
}

.other-text-item .form-control,
.other-text-item input[type="text"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 8px !important;
}

/* ==================================================
   8. ПОЛЯ ВВОДА
   ================================================== */

.form-control,
select,
textarea,
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"] {
    min-height: 52px !important;
    border: 1px solid #cfd8e3 !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: #24303b !important;
    font-size: 17px !important;
    padding: 12px 16px !important;
    box-shadow: none !important;
}

.form-control:focus,
select:focus,
textarea:focus,
input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus {
    border-color: #3d73f1 !important;
    box-shadow: 0 0 0 3px rgba(61, 115, 241, 0.12) !important;
    outline: none !important;
}

/* ==================================================
   ЧИСЛОВОЙ ВВОД
   Все вопросы типа Numerical input
   ================================================== */

.numeric input.form-control,
input[type="number"] {
    width: 140px !important;
    max-width: 140px !important;
    text-align: left !important;
}
/* ==================================================
   9. ТАБЛИЦЫ И МАТРИЦЫ
   ================================================== */

.array-table,
.ls-answers table,
table.table-bordered {
    width: 100% !important;
    background: #ffffff !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
}

.array-table th,
.array-table td,
.ls-answers table th,
.ls-answers table td,
.table-bordered th,
.table-bordered td {
    display: table-cell !important;
    position: static !important;
    float: none !important;
    color: #2f3b46 !important;
    font-size: 16px !important;
    line-height: 1.4 !important;
    padding: 12px 10px !important;
    vertical-align: middle !important;
    border-color: #dadada !important;
}

.array-table thead th,
.ls-answers table thead th,
.table-bordered thead th {
    text-align: center !important;
    font-weight: 600 !important;
}

.array-table tbody th,
.array-table .answertext,
.ls-answers table tbody th {
    text-align: left !important;
}

.array-table tbody td,
.ls-answers table tbody td {
    text-align: center !important;
}

.array-table input[type="radio"],
.array-table input[type="checkbox"],
.ls-answers table input[type="radio"],
.ls-answers table input[type="checkbox"] {
    position: static !important;
    display: inline-block !important;
    transform: none !important;
    vertical-align: middle !important;
    margin: 0 auto !important;
}

.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
    border: 1px solid #dadada !important;
}


/* ==================================================
   10. КНОПКИ И ССЫЛКИ
   ================================================== */

.btn,
#ls-button-next,
#ls-button-previous,
#ls-button-submit,
#startbtn {
    min-height: 48px !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    border-radius: 12px !important;
    padding: 11px 22px !important;
}

.btn-primary,
#ls-button-next,
#ls-button-submit,
#startbtn {
    background: #3d73f1 !important;
    border-color: #3d73f1 !important;
    color: #ffffff !important;
}

.btn-primary:hover,
#ls-button-next:hover,
#ls-button-submit:hover,
#startbtn:hover {
    background: #2e61da !important;
    border-color: #2e61da !important;
}

.btn-default,
.btn-secondary,
#ls-button-previous {
    background: #ffffff !important;
    border: 1px solid #cfd8e3 !important;
    color: #24303b !important;
}

a,
.text-primary {
    color: #0f6b6d !important;
}

a:hover,
.text-primary:hover {
    color: #0b5556 !important;
}


/* ==================================================
   11. НИЖНЯЯ НАВИГАЦИЯ
   ================================================== */

form#limesurvey {
    padding-bottom: 90px !important;
}

#navigator-container {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 12px max(24px, calc((100vw - 1280px) / 2)) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-top: 1px solid #dfe5ec !important;
    box-shadow: 0 -4px 16px rgba(25, 40, 60, 0.06) !important;
    z-index: 1000 !important;
}

#navigator-container .row,
#navigator-container .container,
#navigator-container .container-fluid {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* ==================================================
   12. МОБИЛЬНАЯ ВЕРСИЯ
   ================================================== */

@media (max-width: 768px) {
    html,
    body {
        font-size: 16px !important;
    }

    .survey-name,
    .survey-title,
    #surveyname,
    h1 {
        font-size: 30px !important;
    }

    #welcome-container,
    #welcome-container p,
    #welcome-container li,
    .survey-description,
    .survey-description p,
    .survey-description li,
    .survey-welcome,
    .survey-welcome p,
    .survey-welcome li {
        font-size: 18px !important;
    }

    .question-text,
    .ls-label-question,
    .question-title-container,
    legend {
        font-size: 19px !important;
    }

    .answer-item label,
    .radio label,
    .checkbox label,
    .ls-answers label {
        font-size: 17px !important;
    }

    .survey-welcome .panel-body,
    .survey-welcome .card-body,
    .group-container,
    .question-container {
        padding: 20px 18px !important;
    }

    .array-table th,
    .array-table td,
    .ls-answers table th,
    .ls-answers table td {
        font-size: 14px !important;
        padding: 8px 6px !important;
    }

    #navigator-container {
        padding: 10px 14px !important;
    }

    #navigator-container .btn,
    #ls-button-next,
    #ls-button-previous,
    #ls-button-submit,
    #startbtn {
        min-height: 46px !important;
        font-size: 16px !important;
    }
}