.survey-page { background: #f4f7f3; min-height: 100vh; color: #25352c; }
.survey-page .survey-container { max-width: 900px; padding-bottom: 2rem; }
.survey-guidance { margin: 1.5rem 0; padding: 1.15rem 1.4rem; background: #e8f1e5; border-left: 4px solid #397046; border-radius: .6rem; }
.survey-guidance p { margin-bottom: .5rem; }
.survey-guidance summary { cursor: pointer; font-weight: 600; }
.survey-guidance ul { margin: .8rem 0 0; padding-left: 1.4rem; }
.survey-guidance li + li { margin-top: .4rem; }
.survey-introduction-header { padding: 1.2rem 0 .4rem; }
.survey-introduction-header h1 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; overflow-wrap: anywhere; }
.survey-introduction-body { padding: .25rem 0; line-height: 1.65; }
.survey-preview > .container { padding: 0; }
.survey-section-heading { padding: 1.1rem 0 .4rem; margin-top: 1.1rem; border-bottom: 2px solid #d4e3d1; }
.survey-section-heading h2, .survey-section-heading h3 { margin: 0; font-size: 1.35rem; font-weight: 650; }
.survey-section-heading p { margin: .5rem 0; }
.survey-question { display: block; margin: 1.25rem 0; padding: 1.5rem; background: white; border: 1px solid #dce5db; border-radius: .9rem; box-shadow: 0 2px 5px #25352c08; overflow-wrap: anywhere; }
.survey-question-title { font-size: 1.08rem; font-weight: 650; line-height: 1.5; margin: 0 0 .65rem; }
.survey-required { display: inline-block; margin-bottom: .8rem; padding: .15rem .55rem; background: #fff2e6; color: #83421b; border-radius: .3rem; font-size: .8rem; font-weight: 600; }
.survey-question .form-control, .survey-question .form-select { padding: .75rem; min-height: 46px; border-color: #a9baac; font-size: 1rem; }
.survey-question textarea { resize: vertical; }
.survey-question .form-check { margin: .2rem 0; }
.survey-question .form-check-label { cursor: pointer; }
.survey-question .form-check-inline:has(input[type=checkbox]) { display: flex; gap: .6rem; align-items: center; margin-left: 0 !important; padding: .6rem .9rem; border: 1px solid #dce5db; border-radius: .5rem; }
.survey-question .form-check-inline:has(input[type=checkbox]:checked) { background: #edf6e9; border-color: #69946b; }
.survey-question input[type=checkbox] { margin: 0; float: none; flex-shrink: 0; }
.survey-question .form-check-label { margin: 0 !important; }
.survey-question .rating-container { max-width: 100%; }
.survey-question .rating-md { font-size: 2.1rem; }
.survey-question .rating-container .caption { display: block; margin: .45rem 0 .7rem; }
.survey-question small { display: block; color: #526457; }
.survey-actions { position: sticky; bottom: 0; padding: .8rem 1rem; background: #fffffff5; border: 1px solid #dce5db; border-radius: .75rem; z-index: 5; box-shadow: 0 -3px 12px #25352c10; }
.survey-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.survey-submit p { margin: 0; font-size: .9rem; }
.survey-submit button { flex-shrink: 0; min-height: 46px; padding: .7rem 1.2rem; }
.survey-form > [role=status]:not(:empty) { margin-top: 1rem; }
.survey-page :focus-visible { outline: 3px solid #337748; outline-offset: 3px; }
@media (max-width: 575px) {
 .survey-page .survey-container { padding-left: .8rem; padding-right: .8rem; }
 .survey-question { padding: 1.05rem; }
 .survey-guidance { padding: 1rem; }
 .survey-submit { flex-direction: column; gap: .5rem; align-items: stretch; }
 .survey-submit p { font-size: .8rem; }
 .survey-actions { position: static; }
 .survey-question .rating-md { font-size: 1.8rem; }
}
@media print { .survey-guidance, .survey-actions { display: none; } .survey-question { box-shadow: none; break-inside: avoid; } }
