/* Survey-specific, upgrade-safe presentation overrides. */
:root { --cs-font: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
body, .survey-name, .question-text, .answer-item, .form-control, .btn, .ls-label-xs-visibility { font-family: var(--cs-font) !important; }
body { font-size: 16px; line-height: 1.55; }
.question-container { margin: 0 0 1.5rem; padding: 1.25rem; border-radius: .5rem; }
.question-text, .question-title-container { font-size: clamp(1.1rem, 2.2vw, 1.45rem); line-height: 1.3; font-weight: 650; }
.answer-item, label, .form-control, .ls-question-help { font-size: 1rem; line-height: 1.5; }
.btn { min-height: 2.7rem; padding: .6rem 1rem; font-weight: 600; }
.answer-table { width: 100%; table-layout: auto; }
.answer-table th, .answer-table td { min-width: 8.5rem; white-space: normal; overflow-wrap: normal; word-break: normal; vertical-align: middle; padding: .75rem .6rem; }
.answer-table th:first-child, .answer-table td:first-child { min-width: 15rem; }
.question-container.cs-required-error { border: 4px solid #9b1c1c !important; background-color: #fff4f4 !important; box-shadow: 0 0 0 3px rgba(155,28,28,.14) !important; }
.question-container.cs-required-error .cs-required-marker { display:block !important; margin:0 0 .55rem !important; color:#4a1111 !important; font-weight:800 !important; }
.question-container.cs-required-error .cs-required-message { display:block !important; margin:.75rem 0 !important; padding:.65rem .8rem !important; border-left:5px solid #9b1c1c !important; background:#fff !important; color:#4a1111 !important; font-weight:700 !important; }
/* Applied after LimeSurvey's native modal has identified missing answers. */
.cs-native-validation-processed .question-container .ls-question-mandatory-initial { display:none !important; }
.question-container.cs-other-not-selected .ls-question-mandatory-other { display:none !important; }
/* Works even when LimeSurvey inserts the question markup after the theme script. */
.question-container:has(input[value="-oth-"]):not(:has(input[value="-oth-"]:checked)) .ls-question-mandatory-other { display:none !important; }
@media (max-width: 576px) { body { font-size: 16px; } .question-container { padding: 1rem; } .answer-table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; } .answer-table th, .answer-table td { min-width: 7.75rem; } .answer-table th:first-child, .answer-table td:first-child { min-width: 13rem; } }
