:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1b2432;background:#eef1f5;font-size:17px;line-height:1.55}*{box-sizing:border-box}body{margin:0}main{max-width:880px;margin:36px auto;padding:32px;background:white;border-radius:16px;box-shadow:0 8px 32px #14233510}h1{line-height:1.2;font-size:2rem}h2{font-size:1.3rem}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#526477}.notice{background:#fff5df;padding:16px;border-left:4px solid #d79c2e;border-radius:4px}button,.button{display:inline-block;font:inherit;background:#203b55;color:white;border:0;border-radius:8px;padding:12px 20px;cursor:pointer;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}a{color:#214f75}label{cursor:pointer}select,input{font:inherit;max-width:100%;padding:7px}fieldset{border:0;border-bottom:1px solid #dfe5eb;margin:0 0 22px;padding:0 0 22px}legend{margin-bottom:12px}.choices{display:flex;gap:10px;flex-wrap:wrap}.choice{border:1px solid #c3cdd8;border-radius:8px;min-width:46px;padding:9px;display:flex;align-items:center;gap:7px}.choice:has(input:checked){background:#e6eff8;border-color:#203b55}.choice input{accent-color:#203b55}.scale-ends{display:flex;justify-content:space-between;gap:24px;font-size:.85rem;color:#46576a;margin-top:8px}#photo-frame{background:#eee;text-align:center;padding:0;margin:24px 0}#portrait{display:block;width:100%;max-width:660px;height:auto;object-fit:contain;margin:auto}nav{display:flex;justify-content:space-between;gap:16px}#status{padding:14px;background:#edf3f8;border-radius:8px;position:sticky;top:0;z-index:1}footer{margin-top:36px;font-size:.85rem;color:#657184}.export{display:grid;gap:16px}.export label{display:grid;gap:4px}.hash{font-family:monospace;font-size:.8rem;overflow-wrap:anywhere}table{width:100%;border-collapse:collapse}td,th{padding:10px;text-align:left;border-bottom:1px solid #dfe5eb}[hidden]{display:none!important}:focus-visible{outline:3px solid #527daa;outline-offset:3px}@media(max-width:600px){main{margin:0;border-radius:0;padding:20px}h1{font-size:1.65rem}.choices{gap:6px}.choice{min-width:38px;padding:8px}}
.rating-scale{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.rating-scale .choice{min-width:0;min-height:48px;justify-content:center;padding:8px 2px}.rating-scale input{margin:0}@media(max-width:600px){.rating-scale .choice{flex-direction:column;gap:5px}.rating-scale{gap:4px}}
#instruction{white-space:pre-line}
.instruction-bold{font-weight:700}
.preserve-lines{white-space:pre-line}#demographics-form input[type=number],#demographics-form input[type=text]{border:1px solid #c3cdd8;border-radius:8px;width:100%;margin-top:12px}#demographics-form{margin-top:24px}#consent-form{margin:24px 0}
.field-error{color:#9b2424;font-weight:600;margin:8px 0 0}#demographics-form input[aria-invalid=true]{border-color:#9b2424}
#intake-summary dt{font-weight:600;margin-top:18px}#intake-summary dd{margin:6px 0 18px;padding:10px;background:#edf3f8;white-space:pre-wrap;overflow-wrap:anywhere}.inactive-row{padding:16px;margin:16px 0;border-left:5px solid #c28a21;background:#fff8e8}.inactive-row.medium{border-color:#bd601a;background:#fff0e3}.inactive-row.severe{border-color:#a83232;background:#fff0f0}
/* Keep questionnaire options in reading order, independent of label length.
   Photo rating scales retain their seven-column layout. */
#questions .choices:not(.rating-scale){display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
#questions .choices:not(.rating-scale) .choice{width:100%;min-width:0;min-height:48px;padding:10px 12px;align-items:flex-start;overflow-wrap:anywhere}
#questions .choices:not(.rating-scale) input{flex:0 0 auto;margin:5px 0 0}
/* Status remains available to screen readers without obscuring questions. */
#status{position:static}

#intake-title{font-size:1.3rem;line-height:1.55;color:#203b55;background:#edf3f8;padding:20px;border-radius:12px;margin:0 0 24px;overflow-wrap:break-word}

/* Approved layout A: presentation only; answer IDs/order and persistence are unchanged. */
#instruction-wrap>summary{display:none}
#completion{text-align:center;padding:36px 16px;background:linear-gradient(160deg,#edf3f8,#fff8e7);border-radius:16px}
#completion h2{font-size:clamp(1.6rem,5vw,2.2rem);line-height:1.25;margin:20px 0 16px}
#completion-title:focus{outline:none}
#completion p{max-width:480px;margin:12px auto}
#completion .completion-hint{color:#526477;font-size:.95rem}
.celebration-emoji{font-size:clamp(96px,22vw,144px);line-height:1.3;animation:celebration-pop .8s ease-out both}
@keyframes celebration-pop{0%{opacity:0;transform:scale(.65) rotate(-12deg)}60%{opacity:1;transform:scale(1.08) rotate(6deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.celebration-emoji{animation:none}}
body:not(.photo-layout) #survey-heading{border-bottom:1px solid #c3cdd8;padding-bottom:24px;margin-bottom:28px}
body:not(.photo-layout) #instruction{margin-bottom:0}
body.photo-layout main{max-width:1440px;width:100%;height:100dvh;min-height:420px;margin:0 auto;padding:12px 18px;display:flex;flex-direction:column;background:transparent;box-shadow:none;border-radius:0}
body.photo-layout main>header,body.photo-layout main>p:has(a[href="/research/"]){display:none}
body.photo-layout #status{flex-shrink:0;margin:0 0 8px;padding:4px 8px;font-size:12px;line-height:1.4}
body.photo-layout #survey{display:grid;grid-template-columns:minmax(0,44fr) minmax(400px,56fr);grid-template-rows:auto minmax(0,1fr);gap:12px 22px;flex:1;min-height:0}
body.photo-layout #survey-heading{grid-column:2;grid-row:1;padding:0 8px}
body.photo-layout #progress{font-size:11px;color:#526477;margin:0 0 4px}
body.photo-layout #step-title{font-size:18px;margin:0}
body.photo-layout #instruction{font-size:14px;line-height:1.45;margin:8px 0 0}
body.photo-layout #photo-frame{grid-column:1;grid-row:1 / 3;margin:0;min-height:0;background:#e4e9ee;border-radius:12px;overflow:hidden}
body.photo-layout #portrait{width:100%;height:100%;max-width:none;object-fit:contain}
body.photo-layout #rating-panel{grid-column:2;grid-row:2;display:flex;flex-direction:column;min-height:0;background:white;border-radius:12px;overflow:hidden}
body.photo-layout #questions{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 0;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
body.photo-layout #questions fieldset{margin:0 0 16px;padding:0 0 16px}
body.photo-layout #questions legend{font-size:16px;line-height:1.4;margin-bottom:10px}
body.photo-layout .scale-ends{font-size:12px;line-height:1.35;margin-top:8px}
body.photo-layout #rating-panel nav{flex-shrink:0;padding:10px 20px;border-top:1px solid #dfe5eb}
body.photo-layout #retry{flex-shrink:0;margin-top:8px}
@media(max-width:760px){
 body.photo-layout main{padding:8px 10px;min-height:500px}
 body.photo-layout #survey{display:flex;flex-direction:column;gap:8px}
 body.photo-layout #survey-heading{flex-shrink:0;padding:0}
 body.photo-layout #progress{display:inline-block;margin:0 8px 0 0;font-size:10px}
 body.photo-layout #step-title{display:inline-block;font-size:14px}
 body.photo-layout #instruction-wrap>summary{display:list-item;font-size:12px;cursor:pointer;margin-top:4px;min-height:22px}
 body.photo-layout #instruction{font-size:12px;margin-top:4px}
 body.photo-layout #photo-frame{flex:1 1 0;min-height:100px}
 body.photo-layout #rating-panel{flex:0 0 230px;min-height:0}
 body.photo-layout #questions{padding:10px 10px 0}
 body.photo-layout #questions legend{font-size:14px}
 body.photo-layout #questions .rating-scale .choice{position:relative;flex-direction:row;min-height:44px;gap:2px}
 body.photo-layout #questions .rating-scale input{position:absolute;width:1px;height:1px;opacity:0}
 body.photo-layout #questions .rating-scale .choice:has(input:focus-visible){outline:3px solid #527daa;outline-offset:2px}
 body.photo-layout #rating-panel nav{padding:6px 10px}
 body.photo-layout #rating-panel nav button{font-size:14px;padding:8px 14px;min-height:40px}
 body.photo-layout .scale-ends{font-size:11px;gap:12px}
}
