:root{--bg:#f5f6f8;--panel:#ffffff;--text:#202124;--muted:#70757a;--line:#e1e4e8;--accent:#1667d9;--accent-dark:#0d4fae;--danger:#d7263d;--assistant:#ffffff;--user:#e7f1ff;--shadow:0 18px 50px rgba(31,45,61,0.1)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.researchPage{min-height:100vh;display:grid;place-items:center;padding:40px 20px;background:radial-gradient(circle at 10% 10%,rgba(22,103,217,.1),transparent 32%),radial-gradient(circle at 90% 90%,rgba(83,167,255,.12),transparent 34%),var(--bg)}.hasSessionExit{padding-top:88px}.sessionExitButton{position:fixed;z-index:50;top:18px;right:18px;min-width:76px;padding:9px 16px;border:1px solid #d8a4a4;border-radius:12px;background:#fff;color:#9d3030;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,.1)}.sessionExitButton:hover:not(:disabled){background:#fff4f4}.voiceSessionExitButton{border-color:rgba(255,255,255,.45);background:#233149;color:#fff}.voiceSessionExitButton:hover:not(:disabled){background:#344664}.doneCard,.loginCard,.modeCard,.postCard{width:min(760px,100%);padding:38px;border:1px solid rgba(218,223,230,.9);border-radius:26px;background:rgba(255,255,255,.96);box-shadow:var(--shadow)}.brandMark,.completionCheck{width:54px;height:54px;display:grid;place-items:center;margin-bottom:20px;border-radius:18px;background:var(--accent);color:white;font-size:24px;font-weight:800}.completionCheck{border-radius:50%;background:#15803d}.eyebrow{margin:0 0 8px;color:var(--accent-dark);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.doneCard h1,.loginCard h1,.modeCard h1,.postCard h1{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.2}.preInfo{max-height:330px;margin:28px 0;padding:22px;overflow-y:auto;border:1px solid var(--line);border-radius:18px;background:#fafbfc;color:#3f454d;line-height:1.85;white-space:pre-wrap}.demographicForm,.loginForm{display:grid;grid-gap:18px;gap:18px}.demographicForm label,.loginForm label{display:grid;grid-gap:8px;gap:8px;color:#3d424a;font-size:14px;font-weight:650}.demographicForm input,.demographicForm select,.demographicForm textarea,.loginForm input{width:100%;border:1px solid #cfd5dd;border-radius:12px;outline:none;padding:12px 13px;background:white;color:var(--text)}.demographicForm input:focus,.demographicForm select:focus,.demographicForm textarea:focus,.loginForm input:focus{border-color:#71a7ef;box-shadow:0 0 0 3px rgba(22,103,217,.11)}.consentRow{grid-template-columns:auto 1fr!important;align-items:center;gap:10px!important;font-weight:500!important}.consentRow input{width:18px;height:18px}.qingyouAssignment{display:grid;grid-gap:5px;gap:5px;padding:14px 16px;border:1px solid #cfe0f7;border-radius:13px;background:#f3f8ff}.qingyouAssignment small,.qingyouAssignment span{color:#53647a}.qingyouAssignment strong{color:#174f94;font-size:18px}.primaryButton{min-height:48px;border:0;border-radius:13px;background:var(--accent);color:white;font-weight:750}.primaryButton:hover:not(:disabled){background:var(--accent-dark)}.secondaryLink{display:grid;place-items:center;background:#edf3fb;color:#285b9a;text-decoration:none}.secondaryLink:hover{background:#dfeaf8}.callWarning,.dataWarning,.formError{margin:0;color:#b42318;font-size:13px;line-height:1.55}.centered{text-align:center}.doneCard>p,.modeLead,.postLead{color:var(--muted);line-height:1.7}.modeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;margin-top:30px}.modeOption{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px solid #d7dde5;border-radius:22px;background:#fbfcfe;color:var(--text);transition:.16s ease}.modeOption:hover:not(:disabled){transform:translateY(-3px);border-color:#8bb8f2;box-shadow:0 15px 35px rgba(22,103,217,.12)}.voiceOption{background:linear-gradient(145deg,#f0f6ff,#ffffff)}.modeIcon{width:62px;height:62px;display:grid;place-items:center;border-radius:20px;background:#e4efff;color:var(--accent-dark);font-size:24px;font-weight:800}.modeOption strong{font-size:22px}.modeOption small{max-width:210px;color:var(--muted);line-height:1.6}.modeLoading{margin-top:20px;color:var(--muted);text-align:center}.textTrainingPage{min-height:100vh;background:var(--bg)}.textHeader{position:-webkit-sticky;position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:12px 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.textHeader h1{margin:0;font-size:19px}.textHeader p{margin:5px 0 0;color:var(--muted);font-size:12px}.dataWarning{position:-webkit-sticky;position:sticky;z-index:19;top:72px;padding:8px 20px;background:#fff5f3;text-align:center}.chatArea{min-height:calc(100vh - 72px)}.messageList{width:min(880px,100%);margin:0 auto;padding:34px 20px 150px}.messageRow{display:flex;align-items:flex-start;gap:11px;margin-bottom:22px}.assistantRow{padding-right:10%}.userRow{justify-content:flex-end;padding-left:18%}.avatar{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#24262b;color:white;font-size:11px;font-weight:800}.bubble{max-width:100%;padding:14px 17px;border-radius:18px;line-height:1.75;overflow-wrap:anywhere;font-size:15px}.assistantBubble{border:1px solid var(--line);border-top-left-radius:6px;background:var(--assistant);box-shadow:0 3px 14px rgba(15,23,42,.04)}.userBubble{border-top-right-radius:6px;background:var(--user)}.messageText{white-space:pre-wrap}.evaluationContent p{margin:10px 0 0;white-space:pre-wrap}.levelLine{display:block;color:var(--danger);font-size:17px;font-weight:850}.evaluationContent h3{margin:18px 0 0;color:#252a31;font-size:15px;font-weight:800}.choiceButtons{display:flex;gap:10px;margin-top:16px}.choiceButtons button{min-width:84px;border:0;border-radius:10px;padding:9px 18px;background:var(--accent);color:white;font-weight:700}.choiceButtons .secondaryChoice{border:1px solid #d4d9e0;background:#f5f6f8;color:#30343a}.composerWrap{position:fixed;z-index:30;right:0;bottom:0;left:0;padding:24px 20px 14px;background:linear-gradient(to top,var(--bg) 72%,rgba(245,246,248,0))}.composer{width:min(820px,100%);min-height:60px;display:flex;align-items:flex-end;gap:10px;margin:0 auto;padding:10px 10px 10px 17px;border:1px solid #d5d9df;border-radius:18px;background:white;box-shadow:0 12px 36px rgba(30,41,59,.1)}.composer textarea{width:100%;min-height:38px;max-height:170px;resize:none;border:0;outline:0;padding:8px 0;background:transparent;line-height:1.5}.composer button{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:12px;background:var(--accent);color:white;font-size:22px}.typing{display:flex;align-items:center;gap:5px;min-width:68px;min-height:48px}.typing span{width:6px;height:6px;border-radius:50%;background:#8b9199;animation:typingPulse 1.2s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes typingPulse{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}.voiceCallPage{min-height:100vh;position:relative;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(62,115,212,.32),transparent 26%),linear-gradient(155deg,#07101e,#111d31 52%,#07101a);color:white}.voiceCallPage:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 80%,rgba(42,103,202,.18),transparent 34%)}.callHeader{justify-content:space-between;padding:26px 116px 26px 32px;color:rgba(255,255,255,.72);font-size:14px;letter-spacing:.04em}.callCenter,.callHeader{position:relative;z-index:2;display:flex}.callCenter{flex:1 1;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.callOrb{width:min(230px,52vw);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#78aefc,#2059aa 52%,#112c54 100%);box-shadow:0 0 0 18px rgba(75,137,233,.08),0 0 0 42px rgba(75,137,233,.035),0 30px 80px rgba(0,0,0,.32);transition:.22s ease}.callOrbInner{font-size:clamp(44px,10vw,72px);font-weight:800;letter-spacing:-.04em;text-shadow:0 4px 18px rgba(0,0,0,.22)}.callOrb-evaluating,.callOrb-speaking,.callOrb-transcribing{animation:callBreath 1.65s ease-in-out infinite}.callOrbRecording{background:radial-gradient(circle at 35% 30%,#ff8a8a,#c7334b 54%,#65182a 100%);box-shadow:0 0 0 18px rgba(225,66,89,.1),0 0 0 42px rgba(225,66,89,.045),0 30px 80px rgba(0,0,0,.32);animation:recordPulse 1.2s ease-in-out infinite}@keyframes callBreath{0%,to{transform:scale(.98);filter:brightness(.96)}50%{transform:scale(1.025);filter:brightness(1.08)}}@keyframes recordPulse{0%,to{transform:scale(.98)}50%{transform:scale(1.04)}}.callCenter h1{margin:48px 0 8px;font-size:clamp(28px,5vw,42px)}.callStatus{min-height:28px;margin:0;color:rgba(255,255,255,.72);font-size:16px}.progressDots{display:flex;gap:9px;margin-top:26px}.progressDots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2)}.progressDots .progressDotActive{background:#79acff;box-shadow:0 0 12px rgba(121,172,255,.9)}.callWarning{margin:0 auto 10px;padding:8px 14px;border-radius:10px;background:rgba(123,22,38,.55);color:#ffd8de;text-align:center}.callControls,.callWarning{position:relative;z-index:2}.callControls{padding:24px 24px 42px}.callControl,.callControls{display:flex;justify-content:center}.callControl{width:92px;height:92px;flex-direction:column;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.12);color:white;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.callControl span{font-size:22px}.callControl small{font-size:11px}.micControlActive{background:#d43d55;border-color:#ef7287}.demographicForm{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}.fullField{grid-column:1/-1}.dataLocation{margin-top:26px!important;padding:14px 16px;border-radius:12px;background:#f1f6fc;color:#40536b!important;font-size:13px}@media (max-width:720px){.researchPage{padding:18px 12px}.hasSessionExit{padding-top:76px}.doneCard,.loginCard,.modeCard,.postCard{padding:24px 20px;border-radius:20px}.demographicForm,.modeGrid{grid-template-columns:1fr}.modeOption{min-height:180px}.fullField{grid-column:auto}.textHeader{padding:11px 14px}.messageList{padding:22px 11px 140px}.assistantRow{padding-right:2%}.userRow{padding-left:10%}.bubble{padding:12px 14px;font-size:14px}.composerWrap{padding:18px 10px 9px}.callHeader{padding:20px 105px 20px 20px}.callCenter h1{margin-top:38px}.callControls{padding-bottom:30px}}.adminPage{min-height:100vh;background:#f3f6fa;color:#172033}.adminCentered{display:grid;place-items:center;padding:24px}.adminLoading{font-size:15px;color:#607089}.adminLoginCard{width:min(460px,100%);padding:38px;border:1px solid #e1e7ef;border-radius:24px;background:#ffffff;box-shadow:0 24px 70px rgba(24,39,75,.1)}.adminLogo{display:grid;width:48px;height:48px;place-items:center;border-radius:15px;background:#16233a;color:#ffffff;font-size:22px;font-weight:800}.adminEyebrow{margin:22px 0 6px;color:#607089;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.adminHeader h1,.adminLoginCard h1{margin:0;color:#152035;letter-spacing:-.025em}.adminLoginLead{margin:10px 0 24px;color:#69778d}.adminErrorBanner,.adminNotice{margin:16px 0;padding:13px 15px;border-radius:12px;background:#fff6de;color:#785b13;font-size:13px;line-height:1.65}.adminLoginForm{display:grid;grid-gap:16px;gap:16px}.adminLoginForm label{display:grid;grid-gap:8px;gap:8px;color:#39475d;font-size:14px;font-weight:650}.adminLoginForm input{width:100%;padding:13px 14px;border:1px solid #ccd5e1;border-radius:11px;outline:none;font:inherit}.adminLoginForm input:focus{border-color:#496fba;box-shadow:0 0 0 3px rgba(73,111,186,.13)}.adminDownloadButton,.adminGhostButton,.adminLoginForm button,.adminSecondaryButton{min-height:42px;padding:0 17px;border:0;border-radius:10px;cursor:pointer;font:inherit;font-size:14px;font-weight:700;text-decoration:none}.adminDownloadButton,.adminLoginForm button{display:inline-flex;align-items:center;justify-content:center;background:#1f4f93;color:#ffffff}.adminLoginForm button:disabled,.adminSecondaryButton:disabled{cursor:not-allowed;opacity:.55}.adminError{margin:-2px 0 0;color:#b42318;font-size:13px}.adminBackLink{display:inline-block;margin-top:22px;color:#5c6d85;font-size:13px;text-decoration:none}.adminHeader{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 34px;border-bottom:1px solid #dfe5ed;background:#ffffff}.adminHeader .adminEyebrow{margin-top:0}.adminHeader p:last-child{margin:7px 0 0;color:#718097;font-size:13px}.adminHeaderActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.adminSecondaryButton{border:1px solid #cbd5e1;background:#ffffff;color:#314158}.adminGhostButton{background:transparent;color:#607089}.adminContent{width:min(1480px,calc(100% - 40px));margin:0 auto;padding:26px 0 48px}.adminMetaLine{margin-bottom:16px;color:#768499;font-size:12px}.adminStatsGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:13px;gap:13px}.adminStatsGrid article{min-width:0;padding:18px;border:1px solid #e0e6ed;border-radius:15px;background:#ffffff}.adminStatsGrid span{display:block;color:#6f7c90;font-size:12px}.adminStatsGrid strong{display:block;margin-top:8px;color:#152035;font-size:25px;line-height:1.15}.adminBreakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:13px;gap:13px;margin:13px 0}.adminBreakdown>div{padding:17px 19px;border:1px solid #e0e6ed;border-radius:15px;background:#ffffff}.adminBreakdown h2{margin:0 0 7px;font-size:14px}.adminBreakdown p{margin:0;color:#68768b;font-size:13px}.adminTableCard{overflow:hidden;border:1px solid #dfe5ec;border-radius:17px;background:#ffffff}.adminTabs{display:flex;gap:5px;padding:12px 14px 0;border-bottom:1px solid #e5eaf0}.adminTabs button{padding:11px 15px;border:0;border-bottom:2px solid transparent;background:transparent;color:#66758b;cursor:pointer;font:inherit;font-size:13px;font-weight:700}.adminTabs button.adminTabActive{border-bottom-color:#1f5ca7;color:#1f4f93}.adminTableInfo{padding:11px 15px;color:#7a8799;font-size:12px}.adminTableScroll{overflow:auto;max-height:58vh;border-top:1px solid #edf0f4}.adminDataTable{width:100%;min-width:980px;border-collapse:collapse;font-size:12px}.adminDataTable th{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding:11px 12px;border-bottom:1px solid #dfe5ec;background:#f5f7fa;color:#526077;text-align:left;white-space:nowrap}.adminDataTable td{max-width:220px;padding:10px 12px;border-bottom:1px solid #edf0f4;color:#344258;line-height:1.5;vertical-align:top;white-space:nowrap}.adminDataTable tbody tr:hover{background:#f8fafc}.adminDataTable .adminLongCell{min-width:260px;max-width:420px;white-space:normal}@media (max-width:1100px){.adminStatsGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.adminHeader{align-items:flex-start;flex-direction:column;padding:20px}.adminHeaderActions{width:100%}.adminHeaderActions>*{flex:1 1}.adminContent{width:min(100% - 22px,1480px);padding-top:16px}.adminBreakdown,.adminStatsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.adminLoginCard{padding:28px 22px}}.adminSectionHeading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px}.adminSectionHeading h2{margin:0;color:#1b2940;font-size:16px}.adminSectionHeading p{margin:5px 0 0;color:#738197;font-size:12px}.adminParticipantTable{min-width:1160px}.adminActionCell{display:flex;gap:7px}.adminDeleteButton,.adminViewButton{min-height:32px;padding:0 11px;border:0;border-radius:8px;cursor:pointer;font:inherit;font-size:12px;font-weight:700}.adminViewButton{background:#e8f0fb;color:#24548d}.adminDeleteButton{background:#fff0ee;color:#b42318}.adminDeleteButton:disabled{cursor:not-allowed;opacity:.55}.adminSelectedRow{background:#f0f6ff}.adminInteractionCard{margin-top:14px}.adminSessionStrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:10px;gap:10px;padding:0 18px 17px}.adminSessionStrip article{display:grid;grid-gap:4px;gap:4px;padding:12px 14px;border:1px solid #e1e7ef;border-radius:11px;background:#f8fafc;color:#526077;font-size:12px}.adminSessionStrip strong{color:#263950;font-size:13px}.adminSessionStrip small{color:#8390a2}.adminInteractionTable{min-width:1520px}.adminInteractionTable td:nth-child(6){min-width:190px;white-space:normal}.adminInteractionTable td:nth-child(6) small{display:block;margin-top:4px;color:#8793a4}.adminRoleBadge{display:inline-flex;min-width:40px;justify-content:center;padding:3px 7px;border-radius:999px;font-weight:750}.adminRole-用户{background:#e9f3ff;color:#235b91}.adminRole-AI{background:#edf8ef;color:#27723a}.adminRole-系统{background:#f2f0fb;color:#67529c}.adminQuestionnaireDetails{min-width:240px;max-width:640px;line-height:1.6}.adminQuestionnaireDetails summary{color:#1f5ca7;cursor:pointer;font-weight:700}.adminQuestionnaireDetails>div{margin-top:14px}.adminQuestionnaireDetails p{margin:6px 0;white-space:pre-wrap}.pretestPage{place-items:start center}.pretestCard{width:min(920px,100%);padding:clamp(22px,4vw,42px);border:1px solid rgba(218,223,230,.9);border-radius:26px;background:#fff;box-shadow:var(--shadow)}.pretestCard h1{margin:0 0 20px;font-size:clamp(26px,4vw,38px)}.pretestCard h2{margin:22px 0 6px;font-size:22px}.pretestDescription,.pretestIntro{color:#495463;line-height:1.8}.pretestIntro{margin-bottom:24px}.pretestIntro p{margin:0 0 8px}.pretestProgress{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--accent-dark);font-size:14px;font-weight:700}.pretestQuestions{display:grid;grid-gap:16px;gap:16px;margin:22px 0}.pretestQuestion{min-width:0;margin:0;padding:18px;border:1px solid #e0e6ed;border-radius:16px;background:#fbfcfe}.pretestQuestion legend{max-width:100%;padding:0 5px;color:#243247;font-weight:700;line-height:1.7;white-space:pre-wrap}.pretestOptions{display:grid;grid-gap:8px;gap:8px}.pretestOptions label{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border:1px solid #e4e9ef;border-radius:10px;background:white;cursor:pointer;line-height:1.55}.pretestOptions label:has(input:checked){border-color:#75a8e8;background:#eef6ff}.pretestOptions input{flex:0 0 auto;margin-top:4px;accent-color:var(--accent)}.pretestQuestion textarea{width:100%;padding:12px;border:1px solid #cfd5dd;border-radius:10px;color:var(--text);font:inherit;line-height:1.6;resize:vertical}.pretestActions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.pretestActions button,.pretestSubmitted button{min-width:150px;padding:0 20px}.pretestBackButton{min-height:48px;border:1px solid #cfd5dd;border-radius:13px;background:white;color:#344258;font-weight:700}.pretestSubmitted{display:grid;justify-items:start;grid-gap:16px;gap:16px;color:#344258}@media (max-width:600px){.pretestActions{flex-direction:column-reverse}.pretestActions button{width:100%}}.analysisDashboard{display:grid;grid-gap:18px;gap:18px}.analysisFilters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:12px 0 20px}.analysisFilters label{display:grid;grid-gap:6px;gap:6px;color:#344258;font-weight:700}.analysisFilters select{min-height:42px;padding:8px 12px;border:1px solid #cfd5dd;border-radius:10px;background:#fff;color:#243247;font:inherit}.analysisLevelWrap{min-width:180px}.analysisLevelLegend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:0 0 14px;color:#455469;font-size:14px}.analysisLevelLegendItem{display:inline-flex;align-items:center;gap:6px}.analysisLevelLegendSwatch{width:14px;height:14px;flex:none;border-radius:4px}.analysisLevelWrap small{display:block;margin-top:5px;color:#586577;line-height:1.5}.analysisLevelBar{display:flex;overflow:hidden;height:12px;border-radius:8px;background:#e8edf3}.analysisLevelBar span{height:100%}.analysisLevel-不合格{background:#da625b}.analysisLevel-合格{background:#e9b45d}.analysisLevel-良好{background:#7da8d8}.analysisLevel-优秀{background:#71b38b}.analysisNote{margin:0 0 20px;color:#526073;line-height:1.7}