:root{color-scheme:dark;--bg:#101c29;--panel:#192b3a;--ink:#edf4f7;--muted:#b8cbd5;--line:#476071;--accent:#8ed8cc;--amber:#f1c38c;--bad:#ffc4bc;font:17px/1.6 'Avenir Next','Segoe UI','PingFang SC',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,select{min-height:44px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);padding:9px 15px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);background:#244052}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:4px}a{color:var(--accent)}h1,h2,h3,p{margin:0 0 14px}h1{font-size:clamp(32px,4.1vw,62px);line-height:1.1;letter-spacing:-.03em}h2{font-size:28px;line-height:1.3}h3{font-size:20px}p{max-width:76ch}
header,nav,.statusline,main,footer{max-width:1600px;margin:auto;padding:20px 30px}header{display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}header p{font-size:13px;color:var(--muted);margin:5px 0 0}.brand{font-weight:750;font-size:23px}.beta{font-size:12px;border:1px solid var(--line);margin-left:12px;padding:3px 7px;border-radius:4px}.utilities{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.utilities label{font-size:13px}nav{display:flex;gap:9px;flex-wrap:wrap;padding-bottom:8px}nav button[aria-current=step],.primary{background:var(--accent);color:#102a2b;border-color:var(--accent)}nav button[aria-current=step]:hover,.primary:hover:not(:disabled){color:var(--ink)}nav .num{margin-right:8px;font-size:13px;opacity:.8}.statusline{display:flex;gap:20px;justify-content:space-between;padding-top:6px;padding-bottom:12px;color:var(--muted);font-size:14px}main{min-height:60vh;padding-top:22px}main:focus{outline:none}.zh{display:block;color:var(--muted);font-size:.94em;margin-top:5px;font-weight:450;letter-spacing:0;line-height:1.6}
.hero{display:grid;grid-template-columns:1fr 1.25fr;gap:36px;align-items:center}.hero img{width:100%;border-radius:12px;display:block}.hero .time{color:var(--amber);font-size:22px;letter-spacing:.08em;margin-bottom:18px}.hero h1{margin-bottom:22px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.callout{border-left:3px solid var(--amber);background:#273440;padding:16px 20px;margin:22px 0}.muted,small{color:var(--muted)}small{font-size:14px}.scene-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(250px,1fr);gap:24px}.scene{position:relative;align-self:start;overflow:hidden;border-radius:10px;border:1px solid var(--line)}.scene img{width:100%;height:auto;display:block}.scene .caption{padding:10px 16px;background:var(--panel);font-size:13px}.image-wrap{position:relative}.pin{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--accent);border-radius:50%;width:44px;height:44px;min-height:44px;padding:0;background:#102535ed;box-shadow:0 2px 9px #0008;font-weight:750}.pin.done{background:var(--accent);color:#102a2b}.evidence-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}.evidence-list button{text-align:left;display:flex;gap:10px;align-items:start;min-height:94px}.evidence-list .code{color:var(--accent);font-size:13px}.evidence-list small{display:block;font-size:12px;margin-top:5px}
.panel,.person,.question{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:24px}.panel p:last-child{margin-bottom:0}.evidence-paper{background:#eff2ed;color:#23353e;padding:22px;border-radius:6px;border-top:5px solid #7bb6ae;margin:18px 0}.evidence-paper .zh{color:#41545d}.evidence-paper .stamp{font-size:12px;color:#53646a;border-bottom:1px solid #bdc9cb;padding-bottom:9px;margin-bottom:14px}.report-text{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.person-head{display:flex;gap:18px;align-items:center;margin-bottom:18px}.person-head img{width:86px;height:86px;object-fit:cover;border-radius:50%;object-position:center 25%}.person-head p{margin:0}.person-head h2{margin-bottom:3px}.questions{display:grid;gap:9px}.questions button{text-align:left;width:100%}.questions .asked{border-left:4px solid var(--accent)}.question legend{font-weight:650;padding:0 6px}.question{min-width:0;margin:0}.choices{display:grid;gap:9px;margin:18px 0}.choice{display:flex;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.choice:has(input:checked){border-color:var(--accent);background:#223e4b}.choice input{width:20px;height:20px;flex:0 0 20px;margin:4px 0;accent-color:var(--accent)}.choice:has(input:disabled){cursor:default}.choice .zh{font-size:15px}.quiz{display:grid;gap:22px;max-width:1000px}.good{color:var(--accent)}.bad{color:var(--bad)}.feedback{border-top:1px solid var(--line);padding-top:14px}.summary{margin-bottom:24px}.score{font-size:50px;line-height:1.2;color:var(--accent);font-weight:700}.timeline{padding-left:22px}.timeline li{padding:8px 0}.gate{color:var(--amber)}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:28px;width:min(760px,calc(100% - 28px));max-height:88vh;overflow:auto}dialog::backdrop{background:#060f19be;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:start;gap:20px;justify-content:space-between;margin-bottom:12px}.dialog-head h2{margin:0}.dialog-head button{flex-shrink:0}footer{border-top:1px solid var(--line);font-size:13px;color:var(--muted);margin-top:28px}.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;left:20px;top:-100px;z-index:10;background:var(--bg);padding:12px}.skip:focus{top:10px}button{transition:background .15s,border-color .15s}
@media(max-width:1000px){header{align-items:start;flex-direction:column}.scene-grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.evidence-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero img{max-height:420px;object-fit:cover}}@media(max-width:650px){header,nav,.statusline,main,footer{padding-left:16px;padding-right:16px}.people,.pin{display:none}.utilities{gap:8px}.utilities button{font-size:14px}.statusline{flex-direction:column;gap:4px}nav button{flex:1 1 30%;padding:9px;font-size:14px}.panel,.person,.question{padding:18px}dialog{padding:20px}.evidence-list{gap:8px}.evidence-list button{padding:10px;font-size:15px}.hero{gap:20px}.score{font-size:40px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{header,nav,footer,.actions,.statusline{display:none}body{background:white;color:black}.panel,.question{background:white;color:black;break-inside:avoid}.zh{color:#333}}

.interview-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.interview-room{max-width:1000px;border:1px solid var(--line);border-radius:10px;padding:24px;background:var(--panel)}.conversation{border-block:1px solid var(--line);padding:20px 0;margin-bottom:24px}.exchange{display:grid;gap:12px;margin-bottom:26px;outline:none}.exchange:last-child{margin-bottom:0}.utterance{padding:16px 20px;max-width:85%;border-radius:10px}.utterance p{margin:4px 0 0}.investigator{justify-self:end;background:#2c4855;border-bottom-right-radius:2px}.answer{justify-self:start;background:#102330;border-bottom-left-radius:2px}.reply-line{display:block;margin-top:7px}.new-exchange .answer .reply-line{animation:reply-in .3s both;animation-delay:var(--delay)}.question-picker{margin-bottom:20px}.question-picker button{text-align:left}.pin-log{border-radius:3px;width:auto;padding:2px 7px;font-size:12px;min-height:32px;height:32px}.pin-log:before{content:'';position:absolute;top:-5px;left:35%;width:30%;height:7px;background:var(--amber);border-radius:2px}
@keyframes reply-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.interview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:24px;align-items:start}.interview-layout .interview-room{min-width:0;max-width:none}.interview-layout .conversation{max-height:60vh;overflow-y:auto;overscroll-behavior:contain;padding-right:10px}.interview-layout .question-picker{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--panel)}.question-picker .asked:disabled{opacity:1;color:var(--muted)}.asked-label{display:block;color:var(--accent);margin-top:8px}.question-picker>p{margin-top:16px}
@media(max-width:850px){.interview-layout{grid-template-columns:1fr;gap:16px}}
.primary .zh,nav button[aria-current=step] .zh{color:#244449}
@media(max-width:650px){.interview-room{padding:16px}.utterance{max-width:95%;padding:12px 15px}.interview-tabs button{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){.new-exchange .answer .reply-line{animation:none}}
.source-photo{margin:20px 0}.source-photo img{width:100%;display:block;border-radius:6px}.source-photo figcaption{font-size:13px;color:var(--muted);padding-top:6px}.source-sheet{background:#f3f1e9;color:#25353c;padding:24px;border-radius:4px;margin:18px 0}.source-sheet .zh,.source-sheet small{color:#52616a}.source-sheet h3{margin-top:12px}.sheet-scroll{overflow-x:auto}.source-sheet table{border-collapse:collapse;width:100%;font-size:16px}.source-sheet th,.source-sheet td{border:1px solid #aeb9bb;padding:10px;text-align:left;vertical-align:top}.source-sheet dl{margin-bottom:0}.source-sheet dl>div{display:grid;grid-template-columns:1fr 1.3fr;border-bottom:1px solid #bcc5c7;padding:12px 0;gap:16px}.source-sheet dd{margin:0}.blank-entry{display:block;min-height:35px;border-bottom:1px solid #718187}.observation-choices{border:0;padding:0;margin:24px 0}.observation-choices legend{font-size:21px;font-weight:700}.observation-notebook{margin:24px 0;max-width:1000px}.observation-notebook details{padding:15px 18px;border:1px solid var(--line);margin-bottom:9px;border-radius:6px}.observation-notebook summary{cursor:pointer}.observation-notebook li{margin:12px 0}.observation-notebook strong{display:block}.observation-notebook .zh{display:block}dialog:has(.source-sheet){width:min(1000px,calc(100% - 28px))}
@media(max-width:650px){.source-sheet{padding:14px}.source-sheet dl>div{grid-template-columns:1fr;gap:6px}.source-sheet table{font-size:14px}.source-sheet th,.source-sheet td{padding:7px}}
