/* Short questions and a separate action area keep navigation within reach. */
[data-question][hidden] { display: none !important; }
.form-step > .mb-8 { display: none; }
.form-step > .grid { display: block; }
.question-heading { margin-bottom: 20px; }
.question-heading h3 { font-size: clamp(1.45rem, 4vw, 2rem); line-height: 1.15; font-weight: 900; letter-spacing: -.035em; color: #fff; }
.question-heading p { margin-top: 10px; font-size: .875rem; line-height: 1.5; color: #a1a1aa; }
#question-title { outline: none; }
#assessment-progress { padding: 16px 24px 0; }
#assessment-close { display: none; color: #a1a1aa; min-width: 44px; min-height: 44px; border: 1px solid #3f3f46; border-radius: 2px; }
#assessment-close:hover { color: #fff; border-color: #ea580c; }
#assessment-close:disabled { opacity: .4; }
#project-form { padding: 0 !important; }
#project-form > * { margin-top: 0 !important; }
.form-content { padding: 24px; }
#wizard-actions { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 16px 24px; border-top: 1px solid #27272a; background: #111113; }
#wizard-actions > span { flex: 1; }
#wizard-actions button { min-height: 48px; padding: 14px 20px; }
.logic-alert { margin: 20px 0 0; padding: 12px 14px; }
#budget-choices.logic-field-error { padding: 0; border: 0; outline: 2px solid #ef4444; outline-offset: 3px; }
[data-question] { margin-top: 0 !important; }
.tap-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tap-choice { min-height: 54px; text-align: left; padding: 16px; border: 1px solid #3f3f46; border-radius: 2px; background: #09090b; color: #f4f4f5; font-size: 1rem; font-weight: 800; }
.tap-choice:hover, .tap-choice[aria-pressed="true"] { border-color: #ea580c; background: rgba(234,88,12,.12); }
.native-choice, [data-question] > label.microcopy { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
#assessment-shell [data-project-card] { display: grid; grid-template-columns: 24px minmax(0,1fr); column-gap: 12px; padding: 14px; }
#assessment-shell [data-project-card] svg, #assessment-shell [data-project-card] i { grid-row: 1 / 3; margin: 0; width: 24px; height: 24px; align-self: center; }
#assessment-shell [data-project-card] > span { grid-column: 2; }
#assessment-shell [data-project-card] > span:first-of-type { font-size: .9rem; line-height: 1.25; }
#assessment-shell [data-project-card] > span:last-of-type { font-size: .75rem; line-height: 1.35; margin-top: 4px; color: #a1a1aa; }
#project-choices { grid-template-columns: 1fr; gap: 8px; }
.project-card:hover { transform: none; }
#work-components > legend, #work-components > p { display: none; }
#work-components > .grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
#work-components label { min-height: 60px; padding: 12px; gap: 8px; }
#work-components label span { font-size: .8rem; line-height: 1.35; }
#requirements { min-height: 160px; }
#assessment-shell .budget-choice:hover { transform: none; }
#assessment-shell #budget-fit-message { display: none; }
[data-question="requirements"] > p { display: none; }
[data-question] input:not([type="radio"]):not([type="checkbox"]), [data-question] textarea { font-size: 16px; padding: 16px; }
#review-key-facts { color: #e4e4e7; font-weight: 800; margin-bottom: 16px; }
#review-answers { border: 1px solid #3f3f46; border-radius: 2px; }
#review-answers > summary { min-height: 48px; padding: 14px; color: #f4f4f5; font-weight: 800; cursor: pointer; }
#assessment-summary { margin: 0; padding: 16px; border: 0; border-top: 1px solid #3f3f46; overflow-wrap: anywhere; }
body.assessment-in-progress { overflow: hidden; }
body.assessment-in-progress::after { content: ''; position: fixed; inset: 0; z-index: 70; background: rgba(0,0,0,.88); }
body.assessment-in-progress #cookie-banner { display: none; }
#build-form.assessment-started #assessment-shell { position: fixed; z-index: 80; inset: 24px; width: min(860px, calc(100% - 48px)); height: calc(100vh - 48px); height: calc(100dvh - 48px); margin: 0 auto; display: flex; flex-direction: column; background: #111113; }
#build-form.assessment-started #assessment-close { display: block; }
#build-form.assessment-started #assessment-progress { flex: 0 0 auto; }
#build-form.assessment-started #project-form { display: flex; flex-direction: column; min-height: 0; flex: 1; }
#build-form.assessment-started #project-form.hidden { display: none; }
#build-form.assessment-started .form-content { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scroll-padding: 16px; }
#build-form.assessment-started #wizard-actions { flex: 0 0 auto; }
#assessment-success { overflow-y: auto; }
@media (max-width: 767px) {
    #build-form.assessment-started #assessment-shell { top: var(--assessment-viewport-top, 0px); left: 0; right: 0; bottom: auto; width: 100%; height: 100vh; height: var(--assessment-viewport-height, 100dvh); margin: 0; border: 0; border-radius: 0; }
    #assessment-progress { padding: 8px 16px 0; }
    #step-percent { display: none; }
    #assessment-progress .mb-4 { margin-bottom: 8px; }
    .form-content { padding: 20px 16px 16px; }
    .question-heading { margin-bottom: 16px; }
    .question-heading h3 { font-size: 1.45rem; }
    .question-heading p { margin-top: 8px; font-size: .8rem; }
    #wizard-actions { padding: 12px 16px max(12px, env(safe-area-inset-bottom)); }
    #wizard-actions #wizard-next, #wizard-actions #wizard-submit { flex: 1; width: auto; }
    #wizard-actions > span { display: none; }
    #wizard-back { flex: 0 0 auto; }
    #assessment-shell [data-project-card] { padding: 10px; }
    #assessment-shell [data-project-card] > span:first-of-type { font-size: .8rem; }
    #assessment-shell [data-project-card] > span:last-of-type { font-size: .7rem; line-height: 1.25; margin-top: 3px; }
    #project-choices + .microcopy { margin-top: 8px; font-size: .6rem; }
    #budget-choices { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
    .tap-choice { padding: 14px; font-size: .9rem; }
    #work-components label { padding: 10px; }
    #work-components label span { font-size: .75rem; }
}
