:root{font-family:"Microsoft YaHei",Arial,sans-serif;background:#f4f6fa;color:#17202a}
html,body{margin:0;min-height:100%;}body{display:grid;place-items:center}
.shell{width:min(880px,calc(100vw - 32px))}
.panel{background:white;border:1px solid #d9e0ec;border-radius:8px;padding:28px;box-shadow:0 12px 32px rgba(20,30,50,.08)}
.hidden{display:none!important}h1{margin-top:0}.checks label{display:block;margin:12px 0}.field{display:block;margin:20px 0}.field input{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px;font-size:16px;border:1px solid #bbc6d6;border-radius:6px}
.field select{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px;font-size:16px;border:1px solid #bbc6d6;border-radius:6px;background:white}
button{background:#145cff;color:white;border:0;border-radius:6px;padding:12px 18px;font-size:16px;cursor:pointer}button:disabled{background:#96a1b2;cursor:not-allowed}
.hint{color:#667085}.top{display:flex;justify-content:space-between;gap:12px;font-weight:700;margin-bottom:24px}.stimulus{height:180px;display:grid;place-items:center;font-size:72px}.message{text-align:center;font-size:24px;min-height:36px}.mapping{text-align:center;margin-top:18px;color:#3d4b5f;font-weight:700}
.device-tests,.mapping-preview{margin:18px 0;padding:14px;border:1px solid #d9e0ec;border-radius:8px;background:#f8fafc}.device-tests button{margin-right:12px}.mapping-preview h2{margin:0 0 8px;font-size:20px}.mapping-preview strong{font-size:22px;color:#17202a}
#task.panel{position:fixed;inset:0;width:100vw;height:100vh;box-sizing:border-box;border:0;border-radius:0;box-shadow:none;padding:0;background:#fff;overflow:hidden}
#task .top{position:fixed;top:24px;left:24px;right:24px;z-index:2;display:flex;justify-content:space-between;gap:12px;margin:0;font-weight:700;color:#17202a}
#task .stimulus{position:fixed;inset:0;width:100vw;height:100vh;display:grid;place-items:center;font-size:72px;pointer-events:none}
#task .message{position:fixed;inset:0;z-index:3;display:grid;place-items:center;text-align:center;font-size:28px;line-height:1.5;min-height:0;pointer-events:none}
#task .message button{pointer-events:auto}
#task .mapping{position:fixed;left:0;right:0;bottom:32px;z-index:2;margin:0;text-align:center;color:#3d4b5f;font-weight:700}
.practice-complete-card{width:min(560px,calc(100vw - 40px));box-sizing:border-box;text-align:center;padding:0 20px;color:#17202a}
.practice-complete-card h2{margin:0 0 16px;font-size:32px;font-weight:700}
.practice-complete-card p{margin:0 0 24px;font-size:18px;color:#3d4b5f;line-height:1.7}
.rest-break-card{width:min(620px,calc(100vw - 40px));box-sizing:border-box;text-align:center;padding:0 20px;color:#17202a}
.rest-break-card h2{margin:0 0 16px;font-size:32px;font-weight:700}
.rest-break-card p{margin:0 0 20px;font-size:18px;color:#3d4b5f;line-height:1.7}
#task.practice-complete .stimulus{display:none}
#task.practice-complete .message{pointer-events:auto}
#task.rest-break .stimulus{display:none}
#task.rest-break .message{pointer-events:auto}
body.formal-trial{background:#fff;display:grid;place-items:center;overflow:hidden}
body.formal-trial .shell{width:100vw;height:100vh}
body.formal-trial #task.panel{width:100vw;height:100vh;box-sizing:border-box;border:0;border-radius:0;box-shadow:none;padding:0;background:#fff;display:grid;place-items:center}
body.formal-trial .top,body.formal-trial .mapping,body.formal-trial #syncStatus,body.formal-trial #message{display:none!important}
body.formal-trial #task.rest-break #message{display:grid!important}
body.formal-trial .stimulus{height:100vh;width:100vw;font-size:72px;display:grid;place-items:center}
body.in-experiment{cursor:none}
body.in-experiment *{cursor:none!important}
body.in-experiment #task .top,body.in-experiment #task .mapping,body.in-experiment #syncStatus{display:none!important}
body.in-experiment #task.practice-complete{cursor:auto}
body.in-experiment #task.practice-complete *{cursor:auto!important}
body.in-experiment #task.rest-break{cursor:auto}
body.in-experiment #task.rest-break *{cursor:auto!important}
@media(max-width:640px){.panel{padding:20px}.top{display:block}.stimulus{font-size:54px;height:140px}#task .top{top:16px;left:16px;right:16px;font-size:14px}#task .stimulus{font-size:54px;height:100vh}#task .mapping{bottom:20px;padding:0 16px;box-sizing:border-box}.practice-complete-card h2{font-size:26px}.practice-complete-card p{font-size:16px}}
