.questionnaire-progress{position:sticky;top:55px;z-index:100;background:#f8fafc;border:1px solid #d4dce6;border-left:4px solid #1f6f8b;border-radius:5px;padding:.7rem 1rem;margin:0 0 1rem;box-shadow:0 2px 7px rgba(0,0,0,.07)}
.questionnaire-progress-top{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem}
.questionnaire-progress-track{height:8px;border-radius:99px;overflow:hidden;background:#dde6ee;margin-bottom:.3rem}
.questionnaire-progress-track span{display:block;width:0;height:100%;background:#1f6f8b;transition:width .15s ease}
.questionnaire-progress-section{border-top:1px solid #d4dce6;padding-top:.45rem;margin-top:.45rem}
.questionnaire-progress-section .questionnaire-progress-top{align-items:baseline}
.questionnaire-progress-section [data-progress-section-name]{min-width:0;overflow-wrap:anywhere}
.questionnaire-progress-section .questionnaire-progress-track{height:5px}
.questionnaire-progress-section [data-progress-section-fill]{background:#4794b0}
.questionnaire-section-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.questionnaire-section,fieldset[id],.card[id],[data-questionnaire-section]{scroll-margin-top:195px}
.questionnaire-action-bar{position:sticky;bottom:64px;z-index:100;background:#fff;border:1px solid #d4dce6;border-top:3px solid #1f6f8b;padding:.8rem 1rem;margin:1rem 0;display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;box-shadow:0 -2px 8px rgba(0,0,0,.08)}
.questionnaire-action-bar p{margin:0;flex:1 1 220px;font-size:.84rem}
.questionnaire-field-error{outline:2px solid #b42318;outline-offset:5px;border-radius:3px}
.questionnaire-validation-summary{background:#fff0ef;color:#8f2017;border:1px solid #e8aaa6;padding:.65rem;margin-top:.5rem}
.questionnaire-validation-summary a{color:#8f2017;text-decoration:underline}
@media(max-width:767px){.questionnaire-action-bar{bottom:56px}.questionnaire-action-bar .btn{flex:1 1 125px}.questionnaire-progress{padding:.5rem .75rem}.questionnaire-progress p{font-size:.72rem}.questionnaire-progress-top{flex-wrap:wrap;gap:.25rem}}
@media(prefers-reduced-motion:reduce){.questionnaire-progress-track span{transition:none}}

/* Float above long questionnaires even when a fieldset blocks sticky positioning. */
.questionnaire-progress.questionnaire-progress--floating{position:fixed;z-index:1040;margin:0;max-width:calc(100vw - 16px)}
.questionnaire-progress-placeholder{height:0;pointer-events:none}
@media print{.questionnaire-progress.questionnaire-progress--floating{position:static!important;width:auto!important;left:auto!important;top:auto!important}.questionnaire-progress-placeholder{display:none!important}}

/* Compact section shortcuts stay with the floating progress indicator. */
.questionnaire-progress .questionnaire-section-nav--compact{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.3rem;overflow-x:visible;white-space:normal;max-width:100%;margin:.45rem 0;padding:.4rem 0 0;border-top:1px solid #d4dce6}
.questionnaire-progress .questionnaire-section-nav--compact a{display:inline-flex;align-items:center;justify-content:center;flex:1 1 155px;min-width:0;min-height:1.8rem;padding:.2rem .4rem;text-align:center;overflow-wrap:anywhere;white-space:normal;border:1px solid #c5d4e0;border-radius:4px;background:#fff;color:#244e65;font-size:.76rem;font-weight:600;line-height:1.3;text-decoration:none}
.questionnaire-progress .questionnaire-section-nav--compact a:hover,.questionnaire-progress .questionnaire-section-nav--compact a:focus-visible{border-color:#1f6f8b;background:#e7f2f6;outline-offset:2px}
.questionnaire-progress .questionnaire-section-nav--compact a[aria-current="location"]{background:#1f6f8b;color:#fff;border-color:#1f6f8b}
@media(max-width:767px){.questionnaire-progress .questionnaire-section-nav--compact{gap:.2rem}.questionnaire-progress .questionnaire-section-nav--compact a{flex:1 1 120px;min-width:0;min-height:1.7rem;padding:.15rem .3rem;font-size:.72rem}}
