:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#25213a;background:#f6f5fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.training-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 28px;border-bottom:1px solid #e7e3f2;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800}.brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#7254a8;color:#fff;font-size:13px}.top-actions{display:flex;align-items:center;gap:10px}.top-actions select,.ghost{height:38px;padding:0 12px;border:1px solid #ddd7ea;border-radius:9px;background:#fff;color:#514968}.login-wrap{display:grid;min-height:calc(100vh - 68px);place-items:center;padding:28px;background:radial-gradient(circle at 15% 15%,#eadffc,transparent 32%),radial-gradient(circle at 90% 80%,#dceff1,transparent 30%)}.login-card{width:min(440px,100%);padding:36px;border:1px solid #e3deee;border-radius:22px;background:#fffffff5;box-shadow:0 24px 60px #49346c1f}.eyebrow{color:#7254a8;font-size:12px;font-weight:800;letter-spacing:.12em}.login-card h1{margin:10px 0 8px;font-size:30px}.login-card>p{margin:0 0 26px;color:#716b7f}.login-card label{display:grid;gap:7px;margin-top:16px;color:#554e64;font-size:13px;font-weight:650}.login-card input{width:100%;height:46px;padding:0 13px;border:1px solid #dcd6e7;border-radius:10px;outline:none}.login-card input:focus,textarea:focus{border-color:#7254a8;box-shadow:0 0 0 3px #7254a81a}.primary{min-height:44px;padding:0 18px;border:0;border-radius:10px;background:#7254a8;color:#fff;font-weight:750}.primary:disabled{cursor:not-allowed;opacity:.55}.login-card .primary{width:100%;margin-top:22px}.primary.compact{min-height:40px;white-space:nowrap}.alert{margin:14px 0;padding:11px 13px;border:1px solid #fecaca;border-radius:9px;background:#fff1f2;color:#b42318;font-size:13px}.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 68px)}.sidebar{padding:24px 16px;border-right:1px solid #e6e2ef;background:#fff}.candidate-card{display:grid;justify-items:center;gap:7px;padding:20px 12px;border-radius:16px;background:#f5f1fb;text-align:center}.candidate-card .avatar{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;background:#7254a8;color:#fff;font-size:21px;font-weight:800}.candidate-card small{color:#766e84}.candidate-card .state{padding:4px 9px;border-radius:999px;background:#e5f7ed;color:#18794e;font-size:11px;font-weight:750}.sidebar nav{display:grid;gap:5px;margin-top:22px}.sidebar nav button{padding:12px 14px;border:0;border-radius:9px;background:transparent;color:#5d566c;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:#eee8f8;color:#67489d;font-weight:750}.content-area{width:min(1080px,100%);margin:0 auto;padding:34px}.content-area h2{margin:0 0 22px;font-size:27px}.content-card,.question-card,.notice-card,.result{margin-bottom:16px;padding:22px;border:1px solid #e4dfec;border-radius:15px;background:#fff;box-shadow:0 8px 26px #3c2d580d}.content-card h3,.question-card h3,.notice-card h3{margin:0 0 12px}.content-text,.notice-card>p{color:#595267;line-height:1.75;white-space:pre-wrap}.content-card img,.content-card video{display:block;max-width:100%;max-height:620px;margin-top:15px;border-radius:10px}.content-card a{display:inline-flex;margin-top:12px;color:#68469f;font-weight:700}.empty{padding:42px 20px;border:1px dashed #d8d2e2;border-radius:13px;color:#8a8396;text-align:center}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.section-head h2{margin-bottom:5px}.section-head p{margin:0;color:#7b7388}.scene-meta{display:flex;justify-content:space-between;gap:15px;margin-bottom:10px;padding:12px 15px;border-radius:10px;background:#ece6f7;color:#604587}.chat-panel{min-height:430px;max-height:60vh;overflow:auto;padding:20px;border:1px solid #e1dcea;border-radius:15px;background:#fff}.message{display:grid;justify-items:start;margin:12px 0}.message.user{justify-items:end}.message small{margin:0 6px 4px;color:#928b9c}.message p{max-width:min(72%,680px);margin:0;padding:11px 14px;border-radius:14px 14px 14px 4px;background:#f0edf5;line-height:1.55;white-space:pre-wrap}.message.user p{border-radius:14px 14px 4px;background:#7254a8;color:#fff}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:10px;margin-top:12px}.chat-form textarea{min-height:72px;resize:vertical;padding:12px;border:1px solid #dcd6e7;border-radius:11px;outline:none}.notice-stats{display:flex;gap:20px;margin:18px 0;color:#655d72;font-weight:700}.exam-timer{position:sticky;top:82px;z-index:5;width:fit-content;margin:0 0 16px auto;padding:9px 13px;border-radius:9px;background:#282136;color:#fff}.question-card h3{display:flex;justify-content:space-between;gap:12px;line-height:1.5}.question-card h3 small{flex:0 0 auto;color:#7254a8;font-size:11px}.question-card button{display:flex;align-items:center;gap:10px;width:100%;margin-top:8px;padding:11px 13px;border:1px solid #ded8e8;border-radius:9px;background:#faf9fc;color:#393343;text-align:left}.question-card button span{width:16px;height:16px;flex:0 0 auto;border:2px solid #bab1c7;border-radius:50%}.question-card button.selected{border-color:#7254a8;background:#f0eafa}.question-card button.selected span{border:5px solid #7254a8}.result h3{margin-top:0}.success-result{border-color:#b7e4c7;background:#f1fbf5;color:#176c46}.fail-result{border-color:#fecaca;background:#fff1f2;color:#b42318}.page-loading{display:grid;min-height:calc(100vh - 68px);place-items:center;color:#766f82}@media(max-width:780px){.topbar{padding:0 14px}.brand{font-size:15px}.workspace{grid-template-columns:1fr}.sidebar{padding:14px;border-right:0;border-bottom:1px solid #e6e2ef}.candidate-card{grid-template-columns:auto 1fr auto;justify-items:start;text-align:left}.candidate-card .avatar{grid-row:span 2;width:44px;height:44px}.candidate-card .state{grid-column:3;grid-row:1/span 2;align-self:center}.sidebar nav{display:flex;overflow-x:auto;margin-top:12px}.sidebar nav button{flex:0 0 auto}.content-area{padding:22px 14px}.section-head{align-items:stretch;flex-direction:column}.scene-meta{flex-direction:column}.message p{max-width:88%}.chat-form{grid-template-columns:1fr}.notice-stats{flex-direction:column;gap:7px}}
