
:root{--bg:#f6f7fa;--paper:#fff;--ink:#282b3d;--muted:#636879;--line:#dfe2ea;--accent:#54578e;--accent-deep:#404373;--soft:#eeeff8;--ok:#356959;--okbg:#edf5f1;--warn:#866029;--warnbg:#faf5ea;--bad:#944657;--radius:9px;--rail:220px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Segoe UI",Arial,sans-serif;letter-spacing:.002em}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b3b8e7;outline-offset:3px}button{border:1px solid #cbd0df;border-radius:6px;padding:8px 13px;background:#fff;color:var(--accent-deep);min-height:38px;line-height:1.35;transition:border-color .15s,background .15s}button:hover{background:var(--soft);border-color:#969cc0}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-deep);color:#fff}.quiet{border-color:transparent;background:transparent}.danger{color:var(--bad)}.small{font-size:13px;padding:6px 10px;min-height:34px}.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh}.rail{position:sticky;top:0;align-self:start;height:100vh;background:#fff;border-right:1px solid var(--line);padding:25px 14px;display:flex;flex-direction:column;z-index:50}.brand{padding:0 12px 28px;display:flex;gap:10px;align-items:center;color:var(--ink)}.brand-mark{height:27px;width:27px;display:flex;align-items:flex-end;gap:3px;flex-shrink:0}.brand-mark i{display:block;width:5px;border-radius:2px;background:var(--accent)}.brand-mark i:nth-child(1){height:13px}.brand-mark i:nth-child(2){height:26px}.brand-mark i:nth-child(3){height:19px}.brand b{font-size:14px;line-height:1.2;font-weight:600;letter-spacing:.015em}.brand small{display:block;font-size:10px;letter-spacing:.12em;margin-top:6px;color:var(--muted)}.nav-title{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:12px}.navitem{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:6px;margin:3px 0;color:var(--muted);font-size:14px;border-left:2px solid transparent}.navitem:hover{text-decoration:none;background:#f6f7fb}.navitem.active{color:var(--accent-deep);border-left-color:var(--accent);background:var(--soft);font-weight:600}.navnum{font-size:11px;font-variant-numeric:tabular-nums;opacity:.8;min-width:16px}.rail-footer{margin-top:auto;padding:18px 10px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.rail-footer strong{font-weight:600;color:var(--ink);display:block;margin-bottom:5px}.main{min-width:0}.topbar{height:67px;display:flex;gap:15px;align-items:center;justify-content:space-between;padding:0 38px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:35}.topbar .crumb{font-size:13px;color:var(--muted)}.topright{display:flex;align-items:center;gap:12px}.localnote{font-size:11px;color:var(--muted)}.content{max-width:1250px;padding:35px 38px 70px;margin:auto}.pagehead{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:25px}.pagehead h1,h1{font-size:28px;font-weight:600;letter-spacing:-.035em;line-height:1.22;margin:0 0 9px}.lead{color:var(--muted);margin:0;max-width:780px;font-size:14px}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:20px}.panel.flush{padding:0;overflow:hidden}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line)}h2{font-size:18px;font-weight:600;letter-spacing:-.015em;line-height:1.35;margin:0 0 13px}h3{font-size:15px;font-weight:600;margin:0 0 9px}p{margin:0 0 12px}p:last-child{margin-bottom:0}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:12px}.note{border-left:2px solid #aaaed0;padding:11px 14px;background:#f5f5fb;font-size:13px;margin:16px 0;color:#505570}.note.warn{border-color:#bfa16e;background:var(--warnbg);color:var(--warn)}.notice{margin:0;background:#fbf7ee;border-bottom:1px solid #e6d7b8;padding:9px 38px;font-size:12px;color:#795720}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.metric{padding:17px 22px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric span{color:var(--muted);font-size:12px;display:block}.metric strong{font-weight:500;font-size:27px;font-variant-numeric:tabular-nums;line-height:1.35}.metric small{display:block;font-size:11px;color:var(--muted)}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{background:#f8f9fc;font-weight:500;color:var(--muted);font-size:11px;letter-spacing:.01em;padding:12px 18px;border-bottom:1px solid var(--line);vertical-align:bottom}td{padding:14px 18px;border-bottom:1px solid #eceef4;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfbfe}td small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.badge{font-size:11px;border:1px solid #dce0ec;display:inline-block;padding:3px 8px;border-radius:4px;color:var(--muted);background:#f7f8fc;white-space:nowrap}.badge.ok{background:var(--okbg);border-color:#ccdfd5;color:var(--ok)}.badge.wait{background:var(--warnbg);border-color:#e7d7b8;color:var(--warn)}.empty{text-align:center;padding:44px 20px;max-width:580px;margin:auto}.empty h2{margin-bottom:9px}.empty .actions{justify-content:center;margin-top:18px}.empty-mark{font-size:30px;color:#9699b8;margin-bottom:12px}.formrow{margin-bottom:16px}.formrow label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;border:1px solid #cbd0df;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink);min-height:42px}input::placeholder,textarea::placeholder{color:#858a9a}textarea{min-height:120px;resize:vertical;line-height:1.6}select{appearance:auto}.error{color:var(--bad);font-size:13px;margin:10px 0}.narrow{max-width:600px;margin:25px auto}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.selecttabs{display:inline-flex;gap:2px;background:#edeff5;border-radius:6px;padding:3px}.selecttabs button{font-size:13px;border:0;background:transparent;min-height:32px;padding:6px 13px}.selecttabs button.active{background:#fff;box-shadow:0 1px 3px #242b4612;color:var(--accent-deep)}.linkrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin:8px 0 20px}.linkrow input{font-size:12px;min-width:0}.dialog{position:fixed;inset:0;background:#1d20394d;z-index:100;display:grid;place-items:center;padding:24px}.dialogbox{width:min(530px,100%);max-height:85vh;overflow:auto;background:#fff;border-radius:12px;padding:27px;border:1px solid #d1d5e3;box-shadow:0 20px 60px #1c254733}.dialoghead{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.close{border:0;font-size:21px;padding:0;min-height:32px;width:32px}.toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);padding:12px 19px;background:#34374e;color:white;border-radius:7px;z-index:130;box-shadow:0 4px 22px #18204020;max-width:90vw;font-size:13px}.testarea{max-width:900px;margin:auto}.partbar{display:flex;gap:10px;padding-bottom:18px;border-bottom:1px solid var(--line);margin:0 0 24px;font-size:12px;color:var(--muted)}.partbar span{flex:1;border-top:2px solid #dce0ed;padding-top:10px;min-width:0}.partbar span.on{border-top-color:var(--accent);color:var(--accent-deep);font-weight:600}.qsheet{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.question{padding:23px 25px;border:0;border-bottom:1px solid #e5e8f0;margin:0;min-width:0}.question:last-child{border-bottom:0}.question legend{float:left;width:100%;font-weight:500;margin-bottom:16px;line-height:1.55;padding:0;display:flex;gap:13px}.question legend+*{clear:both}.qno{font-size:11px;min-width:23px;color:var(--muted);padding-top:3px;font-variant-numeric:tabular-nums}.likert{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding-top:1px}.choice{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #dce0eb;border-radius:5px;padding:9px 10px;font-size:12px;line-height:1.3;cursor:pointer;min-height:42px;background:#fff}.choice:hover{background:#f5f6fc}.choice:has(input:checked){background:var(--soft);border-color:#878ec0;color:var(--accent-deep)}.choice input{accent-color:var(--accent);margin:0;flex:none;width:15px;height:15px}.choice b{font-size:10px;font-weight:400;display:block;color:var(--muted);margin-bottom:1px}.options{display:grid;gap:7px;clear:both}.options .choice{font-size:14px;min-height:42px;padding:10px 13px}.ownanswer{margin-top:10px}.testfooter{display:flex;align-items:center;justify-content:space-between;padding:24px 0 12px;gap:15px}.testfooter .hint{margin:0 0 8px}.casehead{padding:21px 25px;background:#f1f2f9;border-bottom:1px solid #dce0eb}.casehead p{font-size:14px;line-height:1.7}.casehead h2{font-size:15px}.authorcase{margin-bottom:24px}.authorcase .formrow{padding:16px 25px;margin:0;border-bottom:1px solid #e9ebf2}.authorcase label{font-weight:500;line-height:1.6;margin-bottom:9px}.authorcase textarea{min-height:100px}.counter{font-size:12px;color:var(--muted);text-align:right;margin-bottom:12px}.resultgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.scoreline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e9ecf3;font-size:13px}.scoreline:last-child{border:0}.scoreline strong{font-size:21px;font-weight:500;font-variant-numeric:tabular-nums}.scoreline span{max-width:80%}.keyline{padding:16px;border:1px solid #d9dced;background:#f5f5fb;border-radius:7px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:15px 0}.keyline strong{font-size:30px;font-weight:500}.keyline small{display:block;font-size:11px;color:var(--muted)}.helpdetails{border-top:1px solid var(--line);margin-top:17px;padding-top:12px;font-size:13px;color:var(--muted)}summary{cursor:pointer;color:var(--accent-deep)}.helpdetails p{margin-top:12px}.qaanswer{background:#f7f8fc;padding:11px 14px;border-radius:5px;margin:9px 0 18px;white-space:pre-wrap;overflow-wrap:anywhere}.code{font-family:ui-monospace,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.rowlink{font-weight:600;color:var(--ink)}.rowlink:hover{color:var(--accent)}.mobilemenu{display:none}.eventlist{list-style:none;margin:0;padding:0}.eventlist li{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.sample{font-size:10px;color:var(--warn)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px;left:10px;z-index:200;background:#fff;padding:10px}.skip:focus{top:10px}
@media(min-width:1400px){.content{padding-top:43px}}
@media(max-width:1050px){:root{--rail:190px}.content{padding:27px 24px 55px}.topbar{padding:0 24px}.metric{padding:15px}.localnote{max-width:210px}.likert .choice{font-size:11px;padding:8px 6px}}
@media(max-width:760px){:root{--rail:0px}.shell{display:block}.rail{display:none;position:fixed;left:0;top:0;width:255px;box-shadow:10px 0 50px #1b26482d}.rail.open{display:flex}.mobilemenu{display:inline-block}.topbar{padding:0 16px;height:61px}.localnote{display:none}.content{padding:24px 16px 55px}.pagehead{flex-direction:column;gap:12px}.pagehead h1,h1{font-size:25px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.split,.resultgrid{grid-template-columns:1fr}.panel{padding:18px}.panelhead{padding:15px}.question{padding:20px 16px}.likert{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.likert .choice{flex-direction:column;justify-content:flex-start;padding:8px 3px;text-align:center;gap:5px;min-height:77px;font-size:10px;line-height:1.25;overflow-wrap:anywhere}.likert .choice input{width:16px;height:16px}.partbar{gap:7px;font-size:11px}.casehead{padding:18px}.authorcase .formrow{padding:16px}.notice{padding:8px 16px}.narrow{margin:8px auto}.testfooter{align-items:flex-end}.testfooter button{font-size:13px;padding:9px}.tablewrap{padding-bottom:3px}th,td{padding:12px}.crumb{max-width:55vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topright{gap:5px}.dialog{padding:14px}.dialogbox{padding:21px}.eventlist li{display:block}.eventlist li small{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Narrow screens: legible response labels, not microtext. */
@media(max-width:760px){
 .likert{grid-template-columns:1fr}
 .likert .choice{flex-direction:row;justify-content:flex-start;text-align:left;padding:9px 12px;gap:10px;min-height:42px;font-size:13px;line-height:1.4;overflow-wrap:normal}
 .likert .choice b{display:inline;margin-right:8px;font-size:11px}
}
/* v1.1 scoped additions: original palette, layout, cards and question sheets unchanged. */
.completion-notice{padding:12px 0;min-height:36px}.completion-notice button{color:var(--accent-deep)}
.testfooter button:disabled{opacity:.5;cursor:not-allowed}.test-exit{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.reportheading{margin:26px 0 14px}.reporttext{font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.answer-details>summary{font-size:16px;font-weight:600}.answer-details .tablewrap{margin-top:18px}.answer-details h3{margin-top:22px}
.answer-details td{white-space:pre-wrap;overflow-wrap:anywhere}.welcome p{font-size:15px;line-height:1.7}
@media(max-width:760px){.testfooter{align-items:stretch;flex-direction:column}.testfooter>button{width:100%}.reporttext{font-size:13px}}

.person-metrics .metric strong{font-size:17px;overflow-wrap:anywhere}

/* UI patch 1.1.1: question grouping and navigation to missing answers only. */
.testarea .pagehead h1{font-size:30px}
.testarea>.qsheet:not(.authorcase){border:0;border-radius:0;background:transparent;overflow:visible}
.testarea .question{display:flow-root;padding:22px 24px;margin:0 0 14px;border:1px solid #e1e4ed;border-radius:9px;background:#fff;scroll-margin-top:18px}
.testarea .question:last-child{border-bottom:1px solid #e1e4ed;margin-bottom:0}
.testarea .question legend{font-size:17px;font-weight:600;line-height:1.55;margin-bottom:17px}
.testarea .qno{font-size:12px;min-width:24px;padding-top:4px}
.testarea .authorcase .casehead h2{font-size:18px}
.testarea .authorcase .formrow{padding:18px 20px;margin:14px;border:1px solid #e3e6ee;border-radius:8px;background:#fff;scroll-margin-top:18px}
.testarea .authorcase .formrow label{font-size:16px;font-weight:600;line-height:1.6;margin-bottom:11px}
.testarea .authorcase textarea{scroll-margin-top:18px}
.testarea .question.question-attention,.testarea .authorcase .formrow.question-attention{border-color:#a0a7c5;background:#fafaff;box-shadow:0 0 0 2px #54578e0d}
.testarea .completion-notice{margin:20px 0 0;padding:13px 0;min-height:0;font-size:13px;line-height:1.55}
.testarea .completion-notice.has-missing{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border:1px solid #e5dbc5;border-radius:8px;background:#faf7f0;color:#725527}
.testarea .completion-notice strong{display:block;font-size:14px;font-weight:600;margin-bottom:3px}
.testarea .completion-notice p{font-size:13px;margin:0;max-width:600px}
.testarea .completion-notice button{flex-shrink:0;font-size:13px;white-space:normal;border:1px solid #d2c4a8;background:#fff;color:#725527;padding:8px 12px;min-height:38px}
.testarea .completion-notice button:hover{border-color:#af9970;background:#fffdf8}
.testarea .completion-notice:empty{display:none}
@media(max-width:760px){
 .testarea .pagehead h1{font-size:27px}
 .testarea .question{padding:19px 16px;margin-bottom:12px}
 .testarea .question legend{font-size:16px;gap:10px}
 .testarea .authorcase .formrow{margin:12px;padding:16px 14px}
 .testarea .authorcase .formrow label{font-size:16px}
 .testarea .completion-notice.has-missing{align-items:flex-start;flex-direction:column;gap:12px;padding:14px 16px}
 .testarea .completion-notice button{max-width:100%}
}

/* Scoped additions: administrative report selection only. Existing survey and cabinet styling is intact. */
.report-console .report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin-top:20px}
.report-console .formrow{min-width:0;margin:0 0 8px}.report-console input,.report-console select{max-width:100%;width:100%;min-width:0}
.report-parts{border:1px solid var(--line);border-radius:7px;margin:15px 0;padding:12px 14px}.report-parts legend{padding:0 6px;font-size:14px;font-weight:600}
.report-part-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 20px}.report-part-list label{display:flex;align-items:flex-start;gap:9px;padding:8px 0;font-size:14px;font-weight:400;cursor:pointer;line-height:1.4}.report-part-list input{width:17px;height:17px;flex:0 0 17px;margin:2px 0 0;accent-color:var(--accent)}
.report-downloads{margin:16px 0;flex-wrap:wrap}.report-tabs{margin:0 0 15px;flex-wrap:wrap}.report-tabs button{flex:0 1 auto}.report-context{display:flex;align-items:center;justify-content:space-between;gap:14px}.report-context strong,.report-context .hint{display:block;overflow-wrap:anywhere}
.report-output{overflow-wrap:anywhere}.report-output .reportheading{margin-top:24px}.report-output h3{margin-top:20px}.report-output table{min-width:550px}.report-output td{vertical-align:top;white-space:normal}.report-output .reporttext{font-size:14px;line-height:1.65;white-space:pre-wrap}.report-output .tablewrap{margin:12px 0 20px}.report-console .selecttabs{flex-wrap:wrap}
@media(max-width:650px){.report-console .report-grid,.report-part-list{grid-template-columns:minmax(0,1fr)}.report-downloads{align-items:stretch;flex-direction:column}.report-downloads button{width:100%}.report-context{align-items:flex-start;flex-direction:column}.report-tabs button{font-size:13px}.report-parts{padding:10px}.report-console{padding:17px}.report-output{padding:15px}.report-output h2{font-size:19px}}
