refactor: 全局替换硬编码字体大小为CSS变量

统一项目中所有字体尺寸和字体族的硬编码值,使用预设的CSS变量进行替换,提升样式维护性和一致性,同时调整开发环境后端接口配置注释与代理目标地址
dev-QQq
qinzhenpen 5 days ago
parent f07d09635f
commit a6d25a8473

@ -18,4 +18,7 @@ VITE_APP_BASE_API = '/'
# VITE_APP_BASE_API = 'http://118.31.7.2:7548/'
VITE_APP_AI_API = 'https://whmnjy.sztzjy.com:8764/'
VITE_APP_ENV = 'development'
VITE_APP_BASE_API = 'http://192.168.1.74:7548/'
# VITE_APP_BASE_API = 'http://192.168.1.74:7548/'
# 开发环境通过 vite 代理转发到线上baseURL 用相对路径 '/' 避免跨域
# VITE_APP_BASE_API = 'http://120.79.161.177:8999/'
VITE_APP_BASE_API = '/'

@ -1,3 +1,23 @@
/* 全局字体变量(:root确保所有 .vue 文件均可访问,不限于 .student-training-shell */
:root {
/* 字体栈:中文优先苹方/思源黑体,回退微软雅黑,跨平台一致 */
--student-font-base: "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
/* 数字/数据字体:等宽对齐,成绩/金额专用 */
--student-font-data: "PingFang SC", "SF Mono", "JetBrains Mono", "Microsoft YaHei", monospace;
/* 字号变量(对齐 Word 标准1pt ≈ 1.333px */
--student-fs-display: 20px; /* 小三 15pt - 任务主标题 */
--student-fs-h1: 18px; /* 小三 15pt - 步骤大标题 */
--student-fs-h2: 16px; /* 小四 12pt - 面板/步骤行标题 */
--student-fs-h3: 14px; /* 五号 10.5pt - 区块小标题 */
--student-fs-body: 14px; /* 五号 10.5pt - 正文/描述 */
--student-fs-body-sm: 13px; /* 表格次要文字 */
--student-fs-caption: 12px; /* 小五 9pt - 标签/徽章 */
--student-fs-button: 14px; /* 五号 - 按钮文字 */
--student-fs-button-lg: 15px; /* 主操作按钮 */
--student-fs-data: 16px; /* 小四 12pt - 数字/成绩/金额 */
}
.student-training-shell {
--student-step-height: 46px;
--student-step-font: 14px;
@ -37,25 +57,33 @@
margin: 0 !important;
padding: 24px 24px 32px !important;
background: #06111d !important;
/* 应用实训页专用字体栈 + 数字等宽对齐 */
font-family: var(--student-font-base) !important;
font-size: var(--student-fs-body) !important;
line-height: 1.8 !important;
font-variant-numeric: tabular-nums !important;
}
.student-training-shell .task-header .task-title {
font-size: 30px !important;
line-height: 1.3 !important;
font-size: var(--student-fs-display) !important; /* 20px 小三 */
line-height: 1.4 !important;
letter-spacing: 0 !important;
font-weight: 700 !important;
}
.student-training-shell .workbench-head h3 {
font-size: 26px !important;
line-height: 1.3 !important;
font-size: var(--student-fs-h1) !important; /* 18px 小三 */
line-height: 1.4 !important;
letter-spacing: 0 !important;
font-weight: 700 !important;
}
.student-training-shell .panel-title h4,
.student-training-shell .step-title-row h3 {
font-size: 22px !important;
line-height: 1.3 !important;
font-size: var(--student-fs-h2) !important; /* 16px 小四 */
line-height: 1.5 !important;
letter-spacing: 0 !important;
font-weight: 600 !important;
}
.student-training-shell .task-desc,
@ -64,10 +92,23 @@
.student-training-shell .background-block,
.student-training-shell .example-block,
.student-training-shell .source-title {
font-size: 15px !important;
font-size: var(--student-fs-body) !important; /* 14px 五号 */
line-height: 1.8 !important;
}
/* 数字/成绩/金额专用:等宽对齐,避免列内跳动(小四 16px */
.student-training-shell .score-value,
.student-training-shell .data-number,
.student-training-shell .amount,
.student-training-shell .stat-value,
.student-training-shell .progress-value {
font-family: var(--student-font-data) !important;
font-size: var(--student-fs-data) !important; /* 16px 小四 */
font-variant-numeric: tabular-nums !important;
font-weight: 700 !important;
line-height: 1.4 !important;
}
.student-training-shell .flow-steps,
.student-training-shell .step-indicator {
display: flex !important;
@ -200,7 +241,7 @@
border-radius: 999px !important;
color: #ffffff !important;
background: linear-gradient(95deg, #0a6b9e, #0a5c86) !important;
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;
@ -239,7 +280,7 @@
.training-step-area .online,
.training-step-area .online span {
color: #d7ecff !important;
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
line-height: 1.75 !important;
letter-spacing: 0 !important;
}
@ -263,7 +304,7 @@
color: #e9fbff !important;
background: linear-gradient(180deg, #22aad6, #1687ba) !important;
box-shadow: none !important;
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;
@ -512,7 +553,7 @@
.student-training-shell .large-textarea,
.student-training-shell .input-field,
.student-training-shell .table-textarea {
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
line-height: 1.65 !important;
letter-spacing: 0 !important;
}
@ -568,7 +609,7 @@
color: #e9fbff !important;
background: rgba(13, 64, 88, 0.62) !important;
box-shadow: none !important;
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;

@ -2,66 +2,33 @@
<div>
<el-tabs type="border-card">
<el-tab-pane label="秒" v-if="shouldHide('second')">
<CrontabSecond
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronsecond"
/>
<CrontabSecond @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj"
ref="cronsecond" />
</el-tab-pane>
<el-tab-pane label="分钟" v-if="shouldHide('min')">
<CrontabMin
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronmin"
/>
<CrontabMin @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj" ref="cronmin" />
</el-tab-pane>
<el-tab-pane label="小时" v-if="shouldHide('hour')">
<CrontabHour
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronhour"
/>
<CrontabHour @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj" ref="cronhour" />
</el-tab-pane>
<el-tab-pane label="日" v-if="shouldHide('day')">
<CrontabDay
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronday"
/>
<CrontabDay @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj" ref="cronday" />
</el-tab-pane>
<el-tab-pane label="月" v-if="shouldHide('month')">
<CrontabMonth
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronmonth"
/>
<CrontabMonth @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj"
ref="cronmonth" />
</el-tab-pane>
<el-tab-pane label="周" v-if="shouldHide('week')">
<CrontabWeek
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronweek"
/>
<CrontabWeek @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj" ref="cronweek" />
</el-tab-pane>
<el-tab-pane label="年" v-if="shouldHide('year')">
<CrontabYear
@update="updateCrontabValue"
:check="checkNumber"
:cron="crontabValueObj"
ref="cronyear"
/>
<CrontabYear @update="updateCrontabValue" :check="checkNumber" :cron="crontabValueObj" ref="cronyear" />
</el-tab-pane>
</el-tabs>
@ -70,41 +37,49 @@
<p class="title">时间表达式</p>
<table>
<thead>
<th v-for="item of tabTitles" :key="item">{{item}}</th>
<th v-for="item of tabTitles" :key="item">{{ item }}</th>
<th>Cron 表达式</th>
</thead>
<tbody>
<td>
<span v-if="crontabValueObj.second.length < 10">{{crontabValueObj.second}}</span>
<el-tooltip v-else :content="crontabValueObj.second" placement="top"><span>{{crontabValueObj.second}}</span></el-tooltip>
<span v-if="crontabValueObj.second.length < 10">{{ crontabValueObj.second }}</span>
<el-tooltip v-else :content="crontabValueObj.second"
placement="top"><span>{{ crontabValueObj.second }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.min.length < 10">{{crontabValueObj.min}}</span>
<el-tooltip v-else :content="crontabValueObj.min" placement="top"><span>{{crontabValueObj.min}}</span></el-tooltip>
<span v-if="crontabValueObj.min.length < 10">{{ crontabValueObj.min }}</span>
<el-tooltip v-else :content="crontabValueObj.min"
placement="top"><span>{{ crontabValueObj.min }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.hour.length < 10">{{crontabValueObj.hour}}</span>
<el-tooltip v-else :content="crontabValueObj.hour" placement="top"><span>{{crontabValueObj.hour}}</span></el-tooltip>
<span v-if="crontabValueObj.hour.length < 10">{{ crontabValueObj.hour }}</span>
<el-tooltip v-else :content="crontabValueObj.hour"
placement="top"><span>{{ crontabValueObj.hour }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.day.length < 10">{{crontabValueObj.day}}</span>
<el-tooltip v-else :content="crontabValueObj.day" placement="top"><span>{{crontabValueObj.day}}</span></el-tooltip>
<span v-if="crontabValueObj.day.length < 10">{{ crontabValueObj.day }}</span>
<el-tooltip v-else :content="crontabValueObj.day"
placement="top"><span>{{ crontabValueObj.day }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.month.length < 10">{{crontabValueObj.month}}</span>
<el-tooltip v-else :content="crontabValueObj.month" placement="top"><span>{{crontabValueObj.month}}</span></el-tooltip>
<span v-if="crontabValueObj.month.length < 10">{{ crontabValueObj.month }}</span>
<el-tooltip v-else :content="crontabValueObj.month"
placement="top"><span>{{ crontabValueObj.month }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.week.length < 10">{{crontabValueObj.week}}</span>
<el-tooltip v-else :content="crontabValueObj.week" placement="top"><span>{{crontabValueObj.week}}</span></el-tooltip>
<span v-if="crontabValueObj.week.length < 10">{{ crontabValueObj.week }}</span>
<el-tooltip v-else :content="crontabValueObj.week"
placement="top"><span>{{ crontabValueObj.week }}</span></el-tooltip>
</td>
<td>
<span v-if="crontabValueObj.year.length < 10">{{crontabValueObj.year}}</span>
<el-tooltip v-else :content="crontabValueObj.year" placement="top"><span>{{crontabValueObj.year}}</span></el-tooltip>
<span v-if="crontabValueObj.year.length < 10">{{ crontabValueObj.year }}</span>
<el-tooltip v-else :content="crontabValueObj.year"
placement="top"><span>{{ crontabValueObj.year }}</span></el-tooltip>
</td>
<td class="result">
<span v-if="crontabValueString.length < 90">{{crontabValueString}}</span>
<el-tooltip v-else :content="crontabValueString" placement="top"><span>{{crontabValueString}}</span></el-tooltip>
<span v-if="crontabValueString.length < 90">{{ crontabValueString }}</span>
<el-tooltip v-else :content="crontabValueString"
placement="top"><span>{{ crontabValueString }}</span></el-tooltip>
</td>
</tbody>
</table>
@ -248,20 +223,23 @@ onMounted(() => {
text-align: center;
margin-top: 20px;
}
.popup-main {
position: relative;
margin: 10px auto;
background: #fff;
border-radius: 5px;
font-size: 12px;
font-size: var(--student-fs-caption);
overflow: hidden;
}
.popup-title {
overflow: hidden;
line-height: 34px;
padding-top: 6px;
background: #f2f2f2;
}
.popup-result {
box-sizing: border-box;
line-height: 24px;
@ -270,27 +248,31 @@ onMounted(() => {
border: 1px solid #ccc;
position: relative;
}
.popup-result .title {
position: absolute;
top: -28px;
left: 50%;
width: 140px;
font-size: 14px;
font-size: var(--student-fs-body);
margin-left: -70px;
text-align: center;
line-height: 30px;
background: #fff;
}
.popup-result table {
text-align: center;
width: 100%;
margin: 0 auto;
}
.popup-result table td:not(.result) {
width: 3.5rem;
min-width: 3.5rem;
max-width: 3.5rem;
}
.popup-result table span {
display: block;
width: 100%;
@ -301,10 +283,11 @@ onMounted(() => {
overflow: hidden;
border: 1px solid #e8e8e8;
}
.popup-result-scroll {
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 24px;
height: 10em;
overflow-y: auto;
}
</style>
</style>

@ -168,14 +168,14 @@ watch(
:deep(#answer) {
display: block;
margin: -41px 0px 0px 0px;
font-size: 14px;
font-size: var(--student-fs-body);
ol {
line-height: 10px;
li,
span {
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
color: #666666;
line-height: 14px;
}

@ -370,10 +370,10 @@ onMounted(() => {
display: flex;
// justify-content: center;
align-items: center;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
color: #ffffff;
font-size: 27px;
font-size: var(--student-fs-h1);
margin-left: 10px;
margin-top: 3px;
letter-spacing: 4px;
@ -388,8 +388,8 @@ onMounted(() => {
z-index: 1000;
padding: 5px 20px;
span {
font-size: 26px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-h1);
font-family: var(--student-font-base);
font-weight: 700;
color: #fff;
line-height: 50px;
@ -423,7 +423,7 @@ onMounted(() => {
left: 45%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 20px;
font-size: var(--student-fs-display);
color: #fff;
font-weight: bold;
display: flex;
@ -455,7 +455,7 @@ onMounted(() => {
&.school-admin-nav {
left: 55%;
gap: 8px;
font-size: 16px;
font-size: var(--student-fs-h2);
.el-ment-item {
padding: 6px 10px;
}
@ -465,7 +465,7 @@ onMounted(() => {
z-index: 1002;
max-width: calc(100vw - 560px);
gap: 8px;
font-size: 15px;
font-size: var(--student-fs-body);
overflow-x: auto;
overflow-y: hidden;
padding: 4px 2px;
@ -503,7 +503,7 @@ onMounted(() => {
display: inline-block;
padding: 0 8px;
height: 100%;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #5a5e66;
vertical-align: text-bottom;
@ -536,7 +536,7 @@ onMounted(() => {
position: absolute;
right: -20px;
top: 25px;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
}
@ -556,7 +556,7 @@ onMounted(() => {
z-index: 1001;
span {
font-size: 22px;
font-size: var(--student-fs-h2);
letter-spacing: 2px;
text-shadow: 0 0 14px rgba(80, 200, 255, 0.28);
}

@ -185,7 +185,7 @@ defineExpose({
line-height: 22px;
font-weight: bold;
.drawer-title {
font-size: 14px;
font-size: var(--student-fs-body);
}
}
.setting-drawer-block-checbox {
@ -223,7 +223,7 @@ defineExpose({
padding-left: 24px;
color: #1890ff;
font-weight: 700;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -231,7 +231,7 @@ defineExpose({
.drawer-item {
color: rgba(0, 0, 0, 0.65);
padding: 12px 0;
font-size: 14px;
font-size: var(--student-fs-body);
.comp-style {
float: right;

@ -259,7 +259,7 @@ function handleScroll() {
color: #495060;
background: #fff;
padding: 0 8px;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-left: 5px;
margin-top: 4px;
&:first-of-type {
@ -293,7 +293,7 @@ function handleScroll() {
list-style-type: none;
padding: 5px 0;
border-radius: 4px;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 400;
color: #333;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);

@ -954,7 +954,7 @@
.active {
//
transform: scale(1.12);
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 600;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
color: #ffffff;
@ -1018,7 +1018,7 @@
border: 1px solid #003e7c;
border-radius: 12px 12px 12px 0;
padding: 10px 12px 10px 12px;
font-size: 14px;
font-size: var(--student-fs-body);
color: #ffffff;
//
cursor: pointer;
@ -1032,7 +1032,7 @@
:deep(.md-editor-preview-wrapper) {
padding: 0px 0px !important;
.md-editor-preview {
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
}
}
.questionItem {
@ -1043,7 +1043,7 @@
border-radius: 12px 12px 0 12px;
// padding: 0px 12px 0px 16px;
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 20px;
max-width: calc(100% - 51px);
word-break: break-all;
@ -1056,7 +1056,7 @@
:deep(.answerCon) {
display: flex;
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
// color: rgb(68, 68, 68);
line-height: 22px;
// width: calc(100% - 51px);

@ -269,7 +269,7 @@ onUnmounted(() => {
border: 1px solid #003e7c;
border-radius: 12px 12px 12px 0;
padding: 10px 12px 10px 12px;
font-size: 14px;
font-size: var(--student-fs-body);
color: #ffffff;
//
cursor: pointer;
@ -283,7 +283,7 @@ onUnmounted(() => {
.md-editor-preview-wrapper {
padding: 0px 0px !important;
.md-editor-preview {
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
}
}
.questionItem {
@ -294,7 +294,7 @@ onUnmounted(() => {
border-radius: 12px 12px 0 12px;
// padding: 0px 12px 0px 16px;
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 20px;
max-width: calc(100% - 51px);
word-break: break-all;
@ -307,7 +307,7 @@ onUnmounted(() => {
:deep(.answerCon) {
display: flex;
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
// color: rgb(68, 68, 68);
line-height: 22px;
// width: calc(100% - 51px);

@ -72,5 +72,5 @@ onMounted(async () => { try { taskConfig.value = (await getTrainingTaskByKey(TAS
</script>
<style scoped lang="scss">
.ab-table{width:100%;min-width:860px;border-collapse:collapse}.ab-table th,.ab-table td{border:1px solid rgba(139,213,241,.45)}.ab-table thead th{padding:14px 10px;color:#fff;background:#079ed9;font-size:16px}.ab-table tbody th{width:25%;padding:14px 10px;color:#dff8ff;background:rgba(6,67,94,.34);text-align:center}.ab-table td{padding:9px 11px;text-align:center}.ab-table td:nth-child(2),.ab-table td:nth-child(3){width:18%}.ab-table td:last-child{width:39%}
.ab-table{width:100%;min-width:860px;border-collapse:collapse}.ab-table th,.ab-table td{border:1px solid rgba(139,213,241,.45)}.ab-table thead th{padding:14px 10px;color:#fff;background:#079ed9;font-size:var(--student-fs-h2)}.ab-table tbody th{width:25%;padding:14px 10px;color:#dff8ff;background:rgba(6,67,94,.34);text-align:center}.ab-table td{padding:9px 11px;text-align:center}.ab-table td:nth-child(2),.ab-table td:nth-child(3){width:18%}.ab-table td:last-child{width:39%}
</style>

@ -347,13 +347,13 @@ onMounted(async () => {
<style scoped lang="scss">
.optimization { --ink:#edfaff; --muted:#9ec0cf; --line:rgba(99,217,255,.27); --accent:#27c7f2; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; min-height:calc(100vh - 76px); padding:24px; color:var(--ink); background:radial-gradient(circle at 8% 0%,rgba(28,164,211,.18),transparent 32rem),linear-gradient(135deg,#061923,#082633 46%,#061923); }
.training-core { min-width:0; padding:28px; border:1px solid var(--line); border-radius:28px; background:rgba(5,25,37,.82); box-shadow:0 22px 48px rgba(0,0,0,.22); }.task-header{margin-bottom:20px}.task-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(99,217,255,.55);border-radius:999px;color:#dff5ff;background:rgba(17,126,178,.3);font-size:12px;font-weight:800}.task-header h1{margin:10px 0 0;font-size:30px}.task-card{margin-top:24px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:rgba(3,22,34,.78)}
.workbench-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line)}.section-eyebrow{margin:0;color:#71dfff;font-size:12px;font-weight:800;letter-spacing:.12em}.workbench-head h2{margin:5px 0 0;font-size:24px}.workbench-actions,.table-toolbar>div,.step-navigation,.training-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.workbench-actions{justify-content:flex-end}.outline-action,.action-button,.nav-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border:1px solid rgba(99,217,255,.5);border-radius:9px;color:#e9fbff;background:rgba(17,126,178,.34);font:inherit;font-weight:700;cursor:pointer}.outline-action:hover,.action-button:hover,.nav-button:hover{border-color:#7deaff;background:rgba(20,148,193,.48)}button:disabled{cursor:not-allowed;opacity:.45}
.step-indicator{display:flex;gap:9px;padding:16px 24px;border-bottom:1px solid var(--line);overflow-x:auto}.step-tab{display:inline-flex;align-items:center;gap:8px;min-width:max-content;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;font:inherit;cursor:pointer}.step-tab span{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;color:#bdefff;background:rgba(16,117,154,.35);font-size:11px;font-weight:800}.step-tab.active{border-color:#71dfff;color:white;background:rgba(12,114,159,.48)}.step-tab.complete{color:#d5fff8}.step-tab.complete span{background:#2ba995}
.category-step{padding:24px}.instruction{margin:0 0 20px;color:#d8edf5;font-size:15px;line-height:1.75}.table-toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px;color:var(--muted);font-size:13px}.action-button--muted{border-color:rgba(158,192,207,.35);background:rgba(75,101,112,.25)}.category-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}.category-table{width:100%;min-width:1260px;border-collapse:collapse}.category-table th,.category-table td{padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.category-table th{color:#e6f9ff;background:rgba(23,112,150,.42);font-size:13px;white-space:nowrap}.category-table td{background:rgba(2,18,28,.32)}.category-table tr:last-child td{border-bottom:0}.category-table th:last-child,.category-table td:last-child{border-right:0}.empty-cell{height:88px;color:var(--muted)}.abc-table{min-width:900px}.abc-table :deep(.el-select){width:100%;min-width:180px}
.training-core { min-width:0; padding:28px; border:1px solid var(--line); border-radius:28px; background:rgba(5,25,37,.82); box-shadow:0 22px 48px rgba(0,0,0,.22); }.task-header{margin-bottom:20px}.task-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(99,217,255,.55);border-radius:999px;color:#dff5ff;background:rgba(17,126,178,.3);font-size:var(--student-fs-caption);font-weight:800}.task-header h1{margin:10px 0 0;font-size:var(--student-fs-display)}.task-card{margin-top:24px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:rgba(3,22,34,.78)}
.workbench-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line)}.section-eyebrow{margin:0;color:#71dfff;font-size:var(--student-fs-caption);font-weight:800;letter-spacing:.12em}.workbench-head h2{margin:5px 0 0;font-size:var(--student-fs-h1)}.workbench-actions,.table-toolbar>div,.step-navigation,.training-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.workbench-actions{justify-content:flex-end}.outline-action,.action-button,.nav-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border:1px solid rgba(99,217,255,.5);border-radius:9px;color:#e9fbff;background:rgba(17,126,178,.34);font:inherit;font-weight:700;cursor:pointer}.outline-action:hover,.action-button:hover,.nav-button:hover{border-color:#7deaff;background:rgba(20,148,193,.48)}button:disabled{cursor:not-allowed;opacity:.45}
.step-indicator{display:flex;gap:9px;padding:16px 24px;border-bottom:1px solid var(--line);overflow-x:auto}.step-tab{display:inline-flex;align-items:center;gap:8px;min-width:max-content;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;font:inherit;cursor:pointer}.step-tab span{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;color:#bdefff;background:rgba(16,117,154,.35);font-size:var(--student-fs-caption);font-weight:800}.step-tab.active{border-color:#71dfff;color:white;background:rgba(12,114,159,.48)}.step-tab.complete{color:#d5fff8}.step-tab.complete span{background:#2ba995}
.category-step{padding:24px}.instruction{margin:0 0 20px;color:#d8edf5;font-size:var(--student-fs-body);line-height:1.75}.table-toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px;color:var(--muted);font-size:var(--student-fs-body-sm)}.action-button--muted{border-color:rgba(158,192,207,.35);background:rgba(75,101,112,.25)}.category-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}.category-table{width:100%;min-width:1260px;border-collapse:collapse}.category-table th,.category-table td{padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.category-table th{color:#e6f9ff;background:rgba(23,112,150,.42);font-size:var(--student-fs-body-sm);white-space:nowrap}.category-table td{background:rgba(2,18,28,.32)}.category-table tr:last-child td{border-bottom:0}.category-table th:last-child,.category-table td:last-child{border-right:0}.empty-cell{height:88px;color:var(--muted)}.abc-table{min-width:900px}.abc-table :deep(.el-select){width:100%;min-width:180px}
.rule-notice{margin-top:20px;padding:16px 18px;border:1px solid rgba(255,112,112,.46);border-radius:12px;background:rgba(126,31,35,.15);color:#ffd5d5}.rule-notice strong{color:#ff9292}.rule-notice p{margin:8px 0 0;line-height:1.65}.analysis-step{padding:24px}.analysis-tabs{display:flex;gap:10px;margin-bottom:18px}.analysis-tabs button{padding:9px 14px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:transparent;font:inherit;cursor:pointer}.analysis-tabs button.active{color:white;border-color:#71dfff;background:rgba(12,114,159,.48)}.business-workspace{overflow:hidden;border:1px solid var(--line);border-radius:14px}.step-navigation{justify-content:center;padding:20px 24px 0}.nav-button--save,.nav-button--primary{border-color:#71dfff;background:linear-gradient(100deg,#0d80b7,#09638f)}.training-actions{justify-content:center;gap:28px;padding:26px 24px}.training-actions :deep(.training-action){min-width:160px;height:50px;border-color:#2c83aa;color:#dff7ff;background:rgba(13,64,88,.62);font-size:17px;font-weight:800}
.pareto-upload-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:330px;padding:26px;border:1px dashed rgba(113,223,255,.7);border-radius:16px;background:linear-gradient(135deg,rgba(5,47,69,.7),rgba(4,23,35,.58));text-align:center}.file-input{display:none}.upload-icon{font-size:42px;color:#71dfff}.pareto-upload-panel>strong{font-size:20px}.pareto-upload-panel>span,.upload-file-meta span{color:var(--muted);font-size:13px}.pareto-preview{width:min(100%,760px);height:270px;border:1px solid var(--line);border-radius:10px;background:rgba(0,10,18,.65);cursor:zoom-in}.upload-file-meta{display:grid;gap:5px;max-width:100%;word-break:break-all}.pareto-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.danger-action{border-color:rgba(255,145,145,.6);color:#ffd7d7;background:rgba(130,43,43,.23)}
.strategy-step{display:grid;gap:16px}.subsection-heading{margin:8px 0 0;font-size:18px}.subsection-copy{margin:-8px 0 0;color:var(--muted);line-height:1.6}.category-matrix{position:relative;width:min(100%,820px);height:430px;margin:12px auto 22px;padding:38px 52px 52px 78px}.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:100%;height:100%;border-left:2px solid rgba(185,240,255,.82);border-bottom:2px solid rgba(185,240,255,.82);background:linear-gradient(135deg,rgba(24,169,209,.12),rgba(3,25,38,.16))}.matrix-cell{display:grid;place-content:center;gap:7px;padding:18px;border-right:1px solid rgba(185,240,255,.65);border-bottom:1px solid rgba(185,240,255,.65);text-align:center}.matrix-cell:nth-child(2n){border-right:0}.matrix-cell:nth-child(n+3){border-bottom:0}.matrix-cell strong{font-size:18px}.matrix-cell small{color:#8dddf5}.matrix-y-title,.matrix-x-title,.matrix-y-high,.matrix-y-low,.matrix-x-high,.matrix-x-low{position:absolute;color:#d9f8ff;font-weight:800}.matrix-y-title{top:5px;left:78px}.matrix-x-title{right:0;bottom:15px}.matrix-y-high{top:63px;left:39px}.matrix-y-low{bottom:61px;left:39px}.matrix-x-low{bottom:29px;left:79px}.matrix-x-high{right:44px;bottom:29px}.matrix-inputs{display:grid;grid-template-columns:minmax(210px,.42fr) 1fr;gap:16px}.matrix-inputs label{display:grid;gap:8px;color:#d9f8ff;font-weight:700}.strategy-table{min-width:1120px}.strategy-table td{vertical-align:top}.strategy-table :deep(.el-select){width:100%;min-width:160px}.strategy-table :deep(.el-textarea__inner){min-height:78px}.current-classification{display:inline-block;padding:8px 10px;border-radius:8px;color:#a5efff;background:rgba(17,126,178,.24);white-space:nowrap}
.operations-table{min-width:1050px}.operations-table th{color:#fff;background:linear-gradient(100deg,#08a6df,#098bc1);font-size:16px}.operations-table td{vertical-align:middle}.operations-table td:first-child{width:17%;font-weight:800}.operations-table td:nth-child(2){width:34%}.operations-table td:nth-child(3){width:25%}.operations-table td:last-child{width:24%}.operations-table :deep(.el-textarea__inner){min-height:86px;text-align:left}.operations-table :deep(.el-select){width:100%;min-width:160px}.layer-cell{color:#dff8ff;font-size:16px;background:rgba(15,103,137,.18)!important}
.pareto-upload-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:330px;padding:26px;border:1px dashed rgba(113,223,255,.7);border-radius:16px;background:linear-gradient(135deg,rgba(5,47,69,.7),rgba(4,23,35,.58));text-align:center}.file-input{display:none}.upload-icon{font-size:42px;color:#71dfff}.pareto-upload-panel>strong{font-size:var(--student-fs-display)}.pareto-upload-panel>span,.upload-file-meta span{color:var(--muted);font-size:var(--student-fs-body-sm)}.pareto-preview{width:min(100%,760px);height:270px;border:1px solid var(--line);border-radius:10px;background:rgba(0,10,18,.65);cursor:zoom-in}.upload-file-meta{display:grid;gap:5px;max-width:100%;word-break:break-all}.pareto-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.danger-action{border-color:rgba(255,145,145,.6);color:#ffd7d7;background:rgba(130,43,43,.23)}
.strategy-step{display:grid;gap:16px}.subsection-heading{margin:8px 0 0;font-size:var(--student-fs-h1)}.subsection-copy{margin:-8px 0 0;color:var(--muted);line-height:1.6}.category-matrix{position:relative;width:min(100%,820px);height:430px;margin:12px auto 22px;padding:38px 52px 52px 78px}.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:100%;height:100%;border-left:2px solid rgba(185,240,255,.82);border-bottom:2px solid rgba(185,240,255,.82);background:linear-gradient(135deg,rgba(24,169,209,.12),rgba(3,25,38,.16))}.matrix-cell{display:grid;place-content:center;gap:7px;padding:18px;border-right:1px solid rgba(185,240,255,.65);border-bottom:1px solid rgba(185,240,255,.65);text-align:center}.matrix-cell:nth-child(2n){border-right:0}.matrix-cell:nth-child(n+3){border-bottom:0}.matrix-cell strong{font-size:var(--student-fs-h1)}.matrix-cell small{color:#8dddf5}.matrix-y-title,.matrix-x-title,.matrix-y-high,.matrix-y-low,.matrix-x-high,.matrix-x-low{position:absolute;color:#d9f8ff;font-weight:800}.matrix-y-title{top:5px;left:78px}.matrix-x-title{right:0;bottom:15px}.matrix-y-high{top:63px;left:39px}.matrix-y-low{bottom:61px;left:39px}.matrix-x-low{bottom:29px;left:79px}.matrix-x-high{right:44px;bottom:29px}.matrix-inputs{display:grid;grid-template-columns:minmax(210px,.42fr) 1fr;gap:16px}.matrix-inputs label{display:grid;gap:8px;color:#d9f8ff;font-weight:700}.strategy-table{min-width:1120px}.strategy-table td{vertical-align:top}.strategy-table :deep(.el-select){width:100%;min-width:160px}.strategy-table :deep(.el-textarea__inner){min-height:78px}.current-classification{display:inline-block;padding:8px 10px;border-radius:8px;color:#a5efff;background:rgba(17,126,178,.24);white-space:nowrap}
.operations-table{min-width:1050px}.operations-table th{color:#fff;background:linear-gradient(100deg,#08a6df,#098bc1);font-size:var(--student-fs-h2)}.operations-table td{vertical-align:middle}.operations-table td:first-child{width:17%;font-weight:800}.operations-table td:nth-child(2){width:34%}.operations-table td:nth-child(3){width:25%}.operations-table td:last-child{width:24%}.operations-table :deep(.el-textarea__inner){min-height:86px;text-align:left}.operations-table :deep(.el-select){width:100%;min-width:160px}.layer-cell{color:#dff8ff;font-size:var(--student-fs-h2);background:rgba(15,103,137,.18)!important}
:deep(.el-input__wrapper){background:rgba(1,15,25,.76);box-shadow:0 0 0 1px rgba(94,213,245,.28) inset}:deep(.el-input__inner){color:#fff;text-align:center}@media(max-width:1100px){.optimization{grid-template-columns:1fr}}@media(max-width:720px){.optimization{padding:12px}.training-core{padding:16px;border-radius:20px}.workbench-head,.table-toolbar{flex-direction:column;align-items:stretch}.workbench-actions,.table-toolbar>div,.step-navigation,.training-actions{justify-content:stretch}.workbench-actions>*,.action-button,.nav-button,.training-actions :deep(.training-action){flex:1;width:100%}.category-step,.analysis-step{padding:16px}}
</style>

@ -1,4 +1,4 @@
<template>
<template>
<div class="channel student-training-shell">
<main class="training-core">
<section class="task-header"><div class="task-badge"><el-icon><TrendCharts /></el-icon> · </div><h1 class="task-title">{{ taskTitle }}</h1></section>
@ -915,7 +915,7 @@ onMounted(async () => {
min-width: 172px;
height: 56px;
border-radius: 8px;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 800;
}
}
@ -923,25 +923,25 @@ onMounted(async () => {
.channel {
display: grid; grid-template-columns: minmax(720px, 1fr) 340px; gap: 24px; min-height: calc(100vh - 76px); padding: 24px 24px 32px; color: #eef5ff; background: #06111d;
.training-core { min-width: 0; padding: 28px; border: 1px solid rgba(0,180,255,.25); border-radius: 36px; background: rgba(8,18,28,.6); box-shadow: inset 0 1px 0 rgba(169,229,255,.08), 0 22px 48px rgba(0,0,0,.22); }
.task-header { margin-bottom: 24px; }.task-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 4px 14px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #dff5ff; background: rgba(17,126,178,.36); font-size: 12px; font-weight: 700; }.task-title { margin: 12px 0 0; color: #fff; font-size: 30px; font-weight: 900; line-height: 1.3; }
.task-card,.step-card { border: 1px solid rgba(82,174,226,.42); border-radius: 26px; background: rgba(0,25,42,.64); }.task-card { margin-top: 28px; padding: 18px 22px 22px; }.workbench-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(0,180,255,.2); }.section-eyebrow { margin: 0; color: #71dfff; font-size: 12px; font-weight: 800; line-height: 1.4; }.workbench-head h3 { margin: 4px 0 8px; color: #fff; font-size: 26px; font-weight: 800; line-height: 1.3; }.workbench-description { margin: 0; color: #d7ecff; font-size: 15px; line-height: 1.8; }.workbench-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; gap: 10px; flex-shrink: 0; }
.outline-action,.btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 18px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #e9fbff; background: rgba(17,126,178,.36); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }.step-indicator { display:flex; align-items:center; gap:12px; width:calc(100% + 24px); min-height:0; margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(110deg,rgba(4,39,58,.9),rgba(2,20,33,.94)); box-shadow:inset 0 1px 0 rgba(169,229,255,.08); }.step-tab { display:flex; flex:1 0 145px; align-items:center; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); font:inherit; font-size:14px; font-weight:800; text-align:left; cursor:pointer; transition:transform .2s,color .2s,background .2s,border-color .2s,box-shadow .2s; }.step-tab:hover,.step-tab:focus-visible { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 8px 18px rgba(0,0,0,.2); outline:none; }.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(95deg,#0a6b9e,#0a5c86); box-shadow:0 8px 20px rgba(0,120,170,.22); }.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(113,223,255,.55); border-radius:50%; color:#bdefff; background:rgba(3,27,43,.72); font-size:13px; font-weight:900; }.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }.step-copy strong { display:-webkit-box; overflow:hidden; color:inherit; font-size:14px; line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.step-copy span { color:#7ec7e7; font-size:12px; font-weight:700; }.step-tab.active .step-marker { border-color:#a8f3ff; color:#fff; background:linear-gradient(135deg,#0bb2ed,#0a6b9e); box-shadow:0 0 0 4px rgba(77,215,255,.13),0 0 18px rgba(77,215,255,.4); }.step-tab.complete .step-marker { border-color:#59e0ca; color:#dffbff; background:rgba(13,132,119,.5); }.step-connector { flex:0 0 28px; height:2px; background:rgba(77,167,220,.54); color:#78cfe9; font-size:16px; line-height:0; text-align:right; }.step-connector.complete { background:#55ddcc; color:#75f0df; }.step-card { margin-top: 32px; padding: 18px 22px 22px; }.step-indicator + .step-card,.workbench-head + .step-card { margin-top: 0; }.step-title-row { margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: 22px; font-weight: 900; line-height: 1.3; }.caseBacktitle { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; color: #dff5ff; font-size: 16px; font-weight: 800; }.caseBacktitle img { display: none; }.step-card > p { color: #d7ecff; font-size: 15px; line-height: 1.8; }
:deep(.el-table) { width: 100% !important; max-width: 100%; border-radius: 18px; }:deep(.el-table th.el-table__cell) { background: rgba(8,55,82,.98) !important; }:deep(.el-input__wrapper) { min-height: 42px; border-radius: 14px; background: #0f1a24; }.online { border-radius: 14px; background: rgba(1,14,26,.72); }.step-navigation { display: flex; justify-content: center; gap: 14px; margin-top: 22px; }.btn-nav.btn-save,.btn-nav.btn-primary { border-color: rgba(92,224,255,.7); color: #fff; background: linear-gradient(95deg,#0b84bd,#096491); }.btn-nav:disabled { cursor: not-allowed; opacity: .45; }.taskfooter { gap: 52px; margin-top: 36px; padding-top: 0; border-top: 0; }.taskfooter :deep(.el-button) { min-width: 172px; height: 64px; border: 1px solid #2c83aa !important; border-radius: 6px; color: #dff7ff !important; background: rgba(13,64,88,.62) !important; font-size: 24px; font-weight: 900; }
.task-header { margin-bottom: 24px; }.task-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 4px 14px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #dff5ff; background: rgba(17,126,178,.36); font-size: var(--student-fs-caption); font-weight: 700; }.task-title { margin: 12px 0 0; color: #fff; font-size: var(--student-fs-display); font-weight: 900; line-height: 1.3; }
.task-card,.step-card { border: 1px solid rgba(82,174,226,.42); border-radius: 26px; background: rgba(0,25,42,.64); }.task-card { margin-top: 28px; padding: 18px 22px 22px; }.workbench-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(0,180,255,.2); }.section-eyebrow { margin: 0; color: #71dfff; font-size: var(--student-fs-caption); font-weight: 800; line-height: 1.4; }.workbench-head h3 { margin: 4px 0 8px; color: #fff; font-size: var(--student-fs-h1); font-weight: 800; line-height: 1.3; }.workbench-description { margin: 0; color: #d7ecff; font-size: var(--student-fs-body); line-height: 1.8; }.workbench-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; gap: 10px; flex-shrink: 0; }
.outline-action,.btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 18px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #e9fbff; background: rgba(17,126,178,.36); font: inherit; font-size: var(--student-fs-button); font-weight: 800; cursor: pointer; }.step-indicator { display:flex; align-items:center; gap:12px; width:calc(100% + 24px); min-height:0; margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(110deg,rgba(4,39,58,.9),rgba(2,20,33,.94)); box-shadow:inset 0 1px 0 rgba(169,229,255,.08); }.step-tab { display:flex; flex:1 0 145px; align-items:center; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); font:inherit; font-size:var(--student-fs-body); font-weight:800; text-align:left; cursor:pointer; transition:transform .2s,color .2s,background .2s,border-color .2s,box-shadow .2s; }.step-tab:hover,.step-tab:focus-visible { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 8px 18px rgba(0,0,0,.2); outline:none; }.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(95deg,#0a6b9e,#0a5c86); box-shadow:0 8px 20px rgba(0,120,170,.22); }.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(113,223,255,.55); border-radius:50%; color:#bdefff; background:rgba(3,27,43,.72); font-size:var(--student-fs-body-sm); font-weight:900; }.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }.step-copy strong { display:-webkit-box; overflow:hidden; color:inherit; font-size:var(--student-fs-body); line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.step-copy span { color:#7ec7e7; font-size:var(--student-fs-caption); font-weight:700; }.step-tab.active .step-marker { border-color:#a8f3ff; color:#fff; background:linear-gradient(135deg,#0bb2ed,#0a6b9e); box-shadow:0 0 0 4px rgba(77,215,255,.13),0 0 18px rgba(77,215,255,.4); }.step-tab.complete .step-marker { border-color:#59e0ca; color:#dffbff; background:rgba(13,132,119,.5); }.step-connector { flex:0 0 28px; height:2px; background:rgba(77,167,220,.54); color:#78cfe9; font-size:var(--student-fs-h2); line-height:0; text-align:right; }.step-connector.complete { background:#55ddcc; color:#75f0df; }.step-card { margin-top: 32px; padding: 18px 22px 22px; }.step-indicator + .step-card,.workbench-head + .step-card { margin-top: 0; }.step-title-row { margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: var(--student-fs-h2); font-weight: 900; line-height: 1.3; }.caseBacktitle { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; color: #dff5ff; font-size: var(--student-fs-h2); font-weight: 800; }.caseBacktitle img { display: none; }.step-card > p { color: #d7ecff; font-size: var(--student-fs-body); line-height: 1.8; }
:deep(.el-table) { width: 100% !important; max-width: 100%; border-radius: 18px; }:deep(.el-table th.el-table__cell) { background: rgba(8,55,82,.98) !important; }:deep(.el-input__wrapper) { min-height: 42px; border-radius: 14px; background: #0f1a24; }.online { border-radius: 14px; background: rgba(1,14,26,.72); }.step-navigation { display: flex; justify-content: center; gap: 14px; margin-top: 22px; }.btn-nav.btn-save,.btn-nav.btn-primary { border-color: rgba(92,224,255,.7); color: #fff; background: linear-gradient(95deg,#0b84bd,#096491); }.btn-nav:disabled { cursor: not-allowed; opacity: .45; }.taskfooter { gap: 52px; margin-top: 36px; padding-top: 0; border-top: 0; }.taskfooter :deep(.el-button) { min-width: 172px; height: 64px; border: 1px solid #2c83aa !important; border-radius: 6px; color: #dff7ff !important; background: rgba(13,64,88,.62) !important; font-size: var(--student-fs-h1); font-weight: 900; }
}
@media (max-width: 1100px) { .channel { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .channel { padding: 14px; .training-core { padding: 18px; border-radius: 24px; }.workbench-head,.workbench-actions,.step-navigation { flex-direction: column; align-items: stretch; }.workbench-actions,.outline-action,.btn-nav,.taskfooter :deep(.el-button) { width: 100%; }.step-indicator { align-items:stretch; flex-direction:column; width:100%; margin-right:0; margin-left:0; overflow:visible; border-radius:20px; }.step-tab { flex:0 0 auto; width:100%; }.step-connector { flex:0 0 22px; width:2px; height:22px; margin-left:29px; text-align:center; writing-mode:vertical-rl; }.taskfooter { gap: 14px; } } }
.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(115deg,rgba(4,109,155,.78),rgba(5,62,102,.64)); box-shadow:0 0 18px rgba(24,183,235,.22),inset 0 1px 0 rgba(176,246,255,.2); }.step-tab.active .step-marker { border-color:#72e8ff; color:#fff; background:linear-gradient(135deg,#08b7e8,#1375d0); box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58); }.step-tab.complete { color:#dffbff; }.step-tab.complete .step-marker { border-color:rgba(84,230,221,.85); color:#062b37; background:#6ef0e1; box-shadow:0 0 12px rgba(79,231,218,.35); }.step-connector.complete { background:linear-gradient(90deg,#6ef0e1,#1cb8e9); color:#63e6f1; box-shadow:0 0 9px rgba(53,218,235,.46); }
/* Standard page step navigation */
.step-indicator { position:relative; display:flex; align-items:center; gap:0; width:calc(100% + 24px); margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(90deg,rgba(6,42,61,.58),rgba(1,18,31,.42)),rgba(0,0,0,.3); box-shadow:inset 0 1px 0 rgba(145,233,255,.08); scrollbar-width:thin; }
.step-tab { display:flex; flex:1 0 145px; align-items:center; min-width:0; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); box-shadow:inset 0 1px 0 rgba(135,221,255,.04); font:inherit; font-size:14px; font-weight:800; text-align:left; cursor:pointer; transition:transform .2s ease,color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.step-tab { display:flex; flex:1 0 145px; align-items:center; min-width:0; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); box-shadow:inset 0 1px 0 rgba(135,221,255,.04); font:inherit; font-size:var(--student-fs-body); font-weight:800; text-align:left; cursor:pointer; transition:transform .2s ease,color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.step-tab:hover { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 7px 18px rgba(0,0,0,.24),inset 0 1px 0 rgba(152,239,255,.16); }
.step-tab:hover .step-action { color:#9bf4ff; }
.step-tab:focus-visible { outline:2px solid rgba(92,224,255,.7); outline-offset:2px; }
.step-tab.active { border-color:rgba(89,226,255,0.85); color:#fff; background:linear-gradient(115deg,rgba(4,109,155,0.78),rgba(5,62,102,0.64)); box-shadow:0 0 18px rgba(24,183,235,.22),inset 0 1px 0 rgba(176,246,255,.2); }
.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(101,176,208,.6); border-radius:50%; color:#a6c4d9; background:rgba(3,25,40,.8); box-shadow:inset 0 0 12px rgba(38,174,233,.08); font-size:12px; font-weight:900; letter-spacing:.04em; }
.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(101,176,208,.6); border-radius:50%; color:#a6c4d9; background:rgba(3,25,40,.8); box-shadow:inset 0 0 12px rgba(38,174,233,.08); font-size:var(--student-fs-caption); font-weight:900; letter-spacing:.04em; }
.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }
.step-name { display:-webkit-box; overflow:hidden; color:inherit; font-size:14px; font-weight:800; line-height:1.25; text-overflow:ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.step-action { color:#66b6d4; font-size:10px; font-weight:800; letter-spacing:.06em; line-height:1; }
.step-name { display:-webkit-box; overflow:hidden; color:inherit; font-size:var(--student-fs-body); font-weight:800; line-height:1.25; text-overflow:ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.step-action { color:#66b6d4; font-size:var(--student-fs-caption); font-weight:800; letter-spacing:.06em; line-height:1; }
.step-tab.active .step-marker { border-color:#72e8ff; color:#fff; background:linear-gradient(135deg,#08b7e8,#1375d0); box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58); }
.step-tab.complete .step-marker { border-color:rgba(84,230,221,.85); color:#062b37; background:#6ef0e1; box-shadow:0 0 12px rgba(79,231,218,.35); }
.step-connector { position:relative; flex:0 1 40px; min-width:18px; height:2px; margin:0 8px; overflow:visible; background:rgba(98,169,201,.34); }
@ -960,7 +960,7 @@ onMounted(async () => {
.linear-forecast-intro {
margin: 0 0 22px;
color: #d7ecff;
font-size: 16px;
font-size: var(--student-fs-h2);
line-height: 1.85;
}
@ -1000,7 +1000,7 @@ onMounted(async () => {
.procurement-plan-intro {
margin: 0 0 18px;
color: #d7ecff;
font-size: 16px;
font-size: var(--student-fs-h2);
line-height: 1.85;
}
@ -1015,7 +1015,7 @@ onMounted(async () => {
.procurement-plan-rules h4 {
margin: 0;
color: #e9faff;
font-size: 16px;
font-size: var(--student-fs-h2);
}
.procurement-plan-rules ol {
@ -1053,7 +1053,7 @@ onMounted(async () => {
.procurement-plan-hint {
margin: 14px 0 0;
color: #8eb8ca !important;
font-size: 14px !important;
font-size: var(--student-fs-body) !important;
line-height: 1.7;
}
@ -1070,7 +1070,7 @@ onMounted(async () => {
.forecast-visual-intro {
margin: 0 0 22px;
color: #d7ecff;
font-size: 16px;
font-size: var(--student-fs-h2);
line-height: 1.85;
}
@ -1124,12 +1124,12 @@ onMounted(async () => {
}
.forecast-visual-dropzone strong {
font-size: 22px;
font-size: var(--student-fs-h2);
}
.forecast-visual-dropzone span:last-child {
color: #98c8dc;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
.forecast-visual-upload-icon {
@ -1176,7 +1176,7 @@ onMounted(async () => {
.forecast-visual-file-meta span {
color: #98c8dc;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
.forecast-visual-replace {
@ -1188,7 +1188,7 @@ onMounted(async () => {
background: rgba(10, 107, 151, 0.38);
cursor: pointer;
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
}

@ -1,4 +1,4 @@
<!--
<!--
* @Author: qinzhenpen qzp1807@126.com
* @Date: 2025-05-03 16:30:25
* @LastEditors: qinzhenpen qzp1807@126.com
@ -590,7 +590,7 @@ onMounted(() => {
}
span {
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: bold;
color: var(--text-color);
}

@ -527,22 +527,22 @@ onMounted(async () => {
.supplier-page .workspace-shell { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.eyebrow, .step-caption { margin: 0 0 7px; color: #63dcff; font-weight: 700; letter-spacing: .1em; }
.workspace-header h1, .intro-card h2 { margin: 0; color: #fff; }.workspace-header h1 { margin-top: 12px; font-size: 30px; font-weight: 900; line-height: 1.3; }
.workspace-header h1, .intro-card h2 { margin: 0; color: #fff; }.workspace-header h1 { margin-top: 12px; font-size: var(--student-fs-display); font-weight: 900; line-height: 1.3; }
.workspace-header p:not(.eyebrow), .intro-card > p:last-child { margin: 10px 0 0; color: #9db4c4; line-height: 1.75; }
.task-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 14px; border: 1px solid rgba(99, 217, 255, .55); border-radius: 999px; color: #dff5ff; background: rgba(17, 126, 178, .36); white-space: nowrap; }
.step-nav { display: grid; grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr) 40px minmax(0, 1fr); align-items: center; gap: 8px; margin: 0 0 30px; padding: 18px 22px; border: 1px solid rgba(0, 180, 255, .3); border-radius: 22px; background: rgba(1, 18, 31, .62); }
.step-nav i { position: relative; height: 2px; background: rgba(86, 198, 235, .48); }.step-nav i::after { position: absolute; top: 50%; right: 0; width: 7px; height: 7px; border-top: 1px solid #73b1ce; border-right: 1px solid #73b1ce; content: ''; transform: translateY(-50%) rotate(45deg); }
.step-tab { display: flex; align-items: center; min-width: 0; min-height: 66px; gap: 10px; padding: 8px 12px; border: 1px solid rgba(68, 141, 177, .35); border-radius: 12px; color: #9ab3d0; background: rgba(3, 27, 43, .52); cursor: pointer; font: inherit; text-align: left; transition: .2s ease; }
.step-tab:hover { border-color: rgba(89, 223, 255, .82); color: #fff; background: rgba(8, 92, 131, .52); transform: translateY(-1px); }.step-tab:focus-visible { outline: 2px solid #72e8ff; outline-offset: 3px; }
.step-marker { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(101, 176, 208, .6); border-radius: 50%; color: #a6c4d9; background: rgba(3, 25, 40, .8); font-size: 12px; font-weight: 900; }.step-copy { display: grid; min-width: 0; gap: 4px; }.step-copy b { overflow: hidden; font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.step-copy small { color: #66b6d4; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.step-marker { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(101, 176, 208, .6); border-radius: 50%; color: #a6c4d9; background: rgba(3, 25, 40, .8); font-size: var(--student-fs-caption); font-weight: 900; }.step-copy { display: grid; min-width: 0; gap: 4px; }.step-copy b { overflow: hidden; font-size: var(--student-fs-body); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.step-copy small { color: #66b6d4; font-size: var(--student-fs-caption); font-weight: 800; letter-spacing: .06em; }
.step-tab.active { color: white; border-color: #53d8fb; background: linear-gradient(135deg, rgba(7, 156, 207, .85), rgba(13, 105, 161, .92)); box-shadow: inset 0 0 24px rgba(77, 213, 255, .22); }.step-tab.active .step-marker { border-color: #72e8ff; color: #fff; background: linear-gradient(135deg, #08b7e8, #1375d0); box-shadow: 0 0 0 5px rgba(25, 179, 237, .14), 0 0 18px rgba(46, 208, 255, .58); }.step-tab.complete { color: #dffbff; }.step-tab.complete .step-marker { border-color: rgba(84, 230, 221, .85); color: #062b37; background: #6ef0e1; }
.intro-card, .analysis-panel { padding: 24px; border: 1px solid rgba(82, 174, 226, .42); border-radius: 26px; background: rgba(0, 25, 42, .64); }
.intro-card.compact { margin-bottom: 20px; }
.weights-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
.weight-card, .score-section { padding: 20px; border: 1px solid rgba(71, 167, 209, .28); border-radius: 14px; background: rgba(4, 23, 36, .68); }
.card-title, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.card-title span, .section-heading span { color: #52cef6; font-size: 13px; font-weight: 700; letter-spacing: .07em; }
.card-title h3, .section-heading h3 { margin: 4px 0 0; color: #fff; font-size: 20px; }
.card-title span, .section-heading span { color: #52cef6; font-size: var(--student-fs-body-sm); font-weight: 700; letter-spacing: .07em; }
.card-title h3, .section-heading h3 { margin: 4px 0 0; color: #fff; font-size: var(--student-fs-display); }
.card-title strong { color: #6de4ff; font-size: 25px; }.card-title strong.danger { color: #ff8888; }
.training-table { width: 100%; border-collapse: collapse; table-layout: fixed; overflow: hidden; border: 1px solid #2b5c73; }
.training-table th { padding: 13px 10px; color: #effbff; background: #0c91c8; font-weight: 700; }
@ -555,7 +555,7 @@ onMounted(async () => {
.page-actions :deep(.el-button--primary), .row-actions :deep(.el-button) { border-color: #18b6ec; background: #0e96ca; }
.score-section { margin-bottom: 20px; }.section-heading small { color: #93adbd; }.table-scroll { overflow-x: auto; }
.score-table { min-width: 960px; }.score-table th:first-child, .score-table td:first-child { width: 175px; }.score-table :deep(.el-input-number) { width: 100%; }.total-score { color: #6de4ff !important; font-size: 17px; font-weight: 700; }
.analysis-panel + .analysis-panel { margin-top: 20px; }.ranking-table { min-width: 940px; }.ranking-table th:first-child { width: 18%; }.ranking-table th:nth-child(2), .ranking-table th:nth-child(3) { width: 19%; }.scene-name { color: #71dcfb !important; font-weight: 700; }.rank-result { display: flex; flex-direction: column; gap: 5px; }.rank-result strong { color: #f3fbff; }.rank-result span { color: #62cef1; font-size: 13px; }
.analysis-panel + .analysis-panel { margin-top: 20px; }.ranking-table { min-width: 940px; }.ranking-table th:first-child { width: 18%; }.ranking-table th:nth-child(2), .ranking-table th:nth-child(3) { width: 19%; }.scene-name { color: #71dcfb !important; font-weight: 700; }.rank-result { display: flex; flex-direction: column; gap: 5px; }.rank-result strong { color: #f3fbff; }.rank-result span { color: #62cef1; font-size: var(--student-fs-body-sm); }
.recommendation-card { margin-top: 20px; }.recommendation-card label { display: block; margin-bottom: 9px; color: #e7f5fb; font-weight: 700; }.recommendation-card :deep(.el-textarea__inner) { min-height: 130px !important; color: #e7f6fd; background: rgba(2, 15, 24, .7); box-shadow: 0 0 0 1px #315f75 inset; }
.risk-heading { align-items: flex-end; }.row-actions { display: flex; gap: 10px; }.panel-tip { margin: -4px 0 16px; color: #9db8c6; line-height: 1.7; }.risk-table { min-width: 1080px; }.risk-table th:nth-child(1) { width: 15%; }.risk-table th:nth-child(2) { width: 29%; }.risk-table th:nth-child(3) { width: 16%; }.risk-table :deep(.el-select) { width: 100%; }.default-risk-row :deep(.el-input__inner), .default-risk-row :deep(.el-textarea__inner), .default-risk-row :deep(.el-select__selected-item) { color: #b7cbd6; font-style: italic; }
@media (max-width: 980px) { .weights-grid { grid-template-columns: 1fr; }.step-nav { grid-template-columns: 1fr; gap: 8px; }.step-nav i { display: none; }.workspace-header { flex-direction: column; }.risk-heading { align-items: flex-start; flex-direction: column; }.split-actions { gap: 12px; }.supplier-page { padding: 12px; }.workspace-shell { padding: 16px; } }

@ -90,7 +90,7 @@ function openStep(step) {
.navigator-label {
align-self: center;
color: #8cdfff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
}

@ -199,15 +199,15 @@ function actionLabel(status, fallback, loading) {
.evaluation-panel { padding: 18px; border: 1px solid rgba(72, 207, 255, .34); border-radius: 20px; color: #d9efff; background: rgba(6, 19, 31, .94); }
.evaluation-panel__header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.evaluation-panel__header h3, .evaluation-report h4, .score-criteria h4 { margin: 0; color: #fff; }
.evaluation-panel__eyebrow { margin: 0 0 5px; color: #77eaff; font-size: 11px; font-weight: 800; }
.evaluation-panel__eyebrow { margin: 0 0 5px; color: #77eaff; font-size: var(--student-fs-caption); font-weight: 800; }
.evaluation-panel__hint { margin: 14px 0; line-height: 1.7; }
.evaluation-status { padding: 4px 8px; border-radius: 999px; color: #a9ecff; background: rgba(29, 162, 255, .16); font-size: 12px; white-space: nowrap; }
.evaluation-status { padding: 4px 8px; border-radius: 999px; color: #a9ecff; background: rgba(29, 162, 255, .16); font-size: var(--student-fs-caption); white-space: nowrap; }
.evaluation-status--failed { color: #ffb5b5; background: rgba(255, 96, 96, .14); }
.evaluation-status--succeeded { color: #9df4c2; background: rgba(84, 213, 139, .14); }
.evaluation-error { margin: 10px 0 0; color: #ffb5b5; }
.retry-link { margin-left: 8px; border: 0; color: #77eaff; background: transparent; cursor: pointer; text-decoration: underline; }
.evaluation-report, .score-criteria { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(129, 211, 255, .18); }
.evaluation-report pre { margin: 10px 0 0; white-space: pre-wrap; word-break: break-word; font: inherit; line-height: 1.7; }
.evaluation-score { margin: 10px 0 0; }.evaluation-score strong { color: #7ee9ff; font-size: 22px; }
.evaluation-score { margin: 10px 0 0; }.evaluation-score strong { color: #7ee9ff; font-size: var(--student-fs-h2); }
.score-criteria ul { margin: 10px 0 0; padding-left: 20px; line-height: 1.7; }.score-criteria span { margin-left: 4px; }
</style>

@ -206,7 +206,7 @@ async function requestEvaluation() {
gap: 10px;
margin: 0 0 14px;
color: #ffffff;
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: 900;
letter-spacing: 0;
@ -227,7 +227,7 @@ async function requestEvaluation() {
linear-gradient(180deg, rgba(8, 27, 42, 0.88), rgba(4, 17, 29, 0.92)),
radial-gradient(circle at 18% 12%, rgba(38, 205, 255, 0.12), transparent 32%);
box-shadow: inset 0 0 28px rgba(55, 183, 255, 0.08);
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.75;
p {
@ -236,11 +236,11 @@ async function requestEvaluation() {
margin: 0;
}
}
.ai-instruction { margin: -4px 0 12px; color: #9fcbe2; font-size: 13px; line-height: 1.6; }
.ai-instruction { margin: -4px 0 12px; color: #9fcbe2; font-size: var(--student-fs-body-sm); line-height: 1.6; }
.reference-block { width: 100%; border: 0; background: transparent; padding: 14px 0 0; text-align: left; cursor: pointer; }
.reference-block:hover strong { color: #77eaff; }
.assessment-button { width: 100%; margin-top: 14px; min-height: 44px; font-weight: 800; }
.assessment-hint { margin: 12px 0 -2px; color: #9fcbe2; font-size: 13px; line-height: 1.6; }
.assessment-hint { margin: 12px 0 -2px; color: #9fcbe2; font-size: var(--student-fs-body-sm); line-height: 1.6; }
.output-glow {
position: absolute;
@ -282,7 +282,7 @@ async function requestEvaluation() {
outline: none;
color: #eef8ff;
background: rgba(3, 16, 28, 0.86);
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
transition: border-color 0.2s, box-shadow 0.2s;
@ -335,7 +335,7 @@ async function requestEvaluation() {
strong {
color: #7ee9ff;
font-size: 20px;
font-size: var(--student-fs-display);
}
}

@ -107,7 +107,7 @@ async function loadRemoteTask(taskKey) {
&__eyebrow {
margin: 0;
color: #73d7ff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0;
}
@ -119,7 +119,7 @@ async function loadRemoteTask(taskKey) {
border-radius: 999px;
color: #bcefff;
background: rgba(0, 170, 255, 0.14);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -132,7 +132,7 @@ async function loadRemoteTask(taskKey) {
border-radius: 24px;
background: rgba(0, 35, 55, 0.52);
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.85;
p,

@ -47,5 +47,5 @@ function handleDownload() {
</script>
<style lang="scss" scoped>
.material-actions{display:flex;flex-wrap:wrap;gap:10px}.material-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-color:rgba(99,217,255,.55);border-radius:9px;color:#e9fbff;background:rgba(17,126,178,.36);font-size:14px;font-weight:800}.material-button:hover{color:#e9fbff;border-color:rgba(116,235,255,.85);background:rgba(18,146,204,.5)}.image-preview{display:flex;justify-content:center;max-height:68vh;overflow:auto;background:#0b1720}.image-preview img{display:block;max-width:100%;height:auto;object-fit:contain}.pdf-preview{width:100%;height:68vh;border:0;background:#fff}
.material-actions{display:flex;flex-wrap:wrap;gap:10px}.material-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-color:rgba(99,217,255,.55);border-radius:9px;color:#e9fbff;background:rgba(17,126,178,.36);font-size:var(--student-fs-button);font-weight:800}.material-button:hover{color:#e9fbff;border-color:rgba(116,235,255,.85);background:rgba(18,146,204,.5)}.image-preview{display:flex;justify-content:center;max-height:68vh;overflow:auto;background:#0b1720}.image-preview img{display:block;max-width:100%;height:auto;object-fit:contain}.pdf-preview{width:100%;height:68vh;border:0;background:#fff}
</style>

@ -171,7 +171,7 @@ function normalizeGoals(value) {
color: #b9e2ff;
background: rgba(13, 64, 88, 0.62);
cursor: pointer;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1;
transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
@ -227,7 +227,7 @@ function normalizeGoals(value) {
padding: 0 14px;
border-bottom: 1px solid rgba(0, 180, 255, 0.2);
color: #e9f8ff;
font-size: 15px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1;
}
@ -245,7 +245,7 @@ function normalizeGoals(value) {
margin: 0;
padding: 14px 16px 16px;
color: #d9efff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.85;
}
@ -292,7 +292,7 @@ function normalizeGoals(value) {
.brief-tab {
height: 36px;
padding: 0 8px;
font-size: 14px;
font-size: var(--student-fs-body);
}
.brief-scroll {

@ -86,7 +86,7 @@ const submit = () => {
max-width: 1200px;
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
}
}
p {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
<template>
<template>
<div class="consumer-behavior-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -932,14 +932,14 @@ function downloadSurveyReportTemplate() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
.task-title {
margin: 0;
color: #ffffff;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -958,7 +958,7 @@ function downloadSurveyReportTemplate() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -977,7 +977,7 @@ function downloadSurveyReportTemplate() {
align-items: center;
gap: 8px;
color: #eafaff;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 900;
}
@ -1002,7 +1002,7 @@ function downloadSurveyReportTemplate() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -1010,7 +1010,7 @@ function downloadSurveyReportTemplate() {
.workbench-head h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -1027,7 +1027,7 @@ function downloadSurveyReportTemplate() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1042,7 +1042,7 @@ function downloadSurveyReportTemplate() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover {
@ -1083,7 +1083,7 @@ function downloadSurveyReportTemplate() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: left;
cursor: pointer;
@ -1139,7 +1139,7 @@ function downloadSurveyReportTemplate() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -1156,7 +1156,7 @@ function downloadSurveyReportTemplate() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -1166,7 +1166,7 @@ function downloadSurveyReportTemplate() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -1221,7 +1221,7 @@ function downloadSurveyReportTemplate() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -1241,14 +1241,14 @@ function downloadSurveyReportTemplate() {
.panel-title h4 {
margin: 8px 0 0;
color: #f8fcff;
font-size: 26px;
font-size: var(--student-fs-h1);
line-height: 1.2;
}
.task-desc {
margin: 14px 0 18px;
color: #c7d8e6;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1271,7 +1271,7 @@ function downloadSurveyReportTemplate() {
.hypothesis-desc {
margin: 0;
color: #d9eaf4;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 600;
}
@ -1292,7 +1292,7 @@ function downloadSurveyReportTemplate() {
border-radius: 10px;
color: #ffffff;
background: linear-gradient(95deg, #0b84bd, #096491);
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: 800;
}
@ -1333,7 +1333,7 @@ function downloadSurveyReportTemplate() {
th {
color: #ecfbff;
background: linear-gradient(100deg, #158fc4, #08739f);
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 800;
}
@ -1355,7 +1355,7 @@ function downloadSurveyReportTemplate() {
color: #eaf7ff;
background: rgba(7, 29, 43, 0.92);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
&::placeholder { color: #8da5b2; opacity: 1; }
@ -1381,7 +1381,7 @@ function downloadSurveyReportTemplate() {
.hypothesis-tip {
margin: 12px 0 0;
color: #75dff7;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
.kano-head {
@ -1396,7 +1396,7 @@ function downloadSurveyReportTemplate() {
max-width: 780px;
margin: 0;
color: #d9eaf4;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 600;
}
@ -1424,7 +1424,7 @@ function downloadSurveyReportTemplate() {
th {
color: #ecfbff;
background: linear-gradient(100deg, #158fc4, #08739f);
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 800;
}
@ -1481,7 +1481,7 @@ function downloadSurveyReportTemplate() {
max-width: 820px;
margin: 0;
color: #d9eaf4;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 600;
}
@ -1493,7 +1493,7 @@ function downloadSurveyReportTemplate() {
border-radius: 10px;
color: #ffffff;
background: linear-gradient(95deg, #0b84bd, #096491);
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: 800;
}
@ -1568,7 +1568,7 @@ function downloadSurveyReportTemplate() {
.questionnaire-editor-summary {
margin: 13px 0 0;
color: #72deff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
:deep(.questionnaire-editor-dialog .el-dialog),
@ -1634,7 +1634,7 @@ function downloadSurveyReportTemplate() {
border: 1px solid rgba(80, 222, 255, 0.45);
border-radius: 50%;
color: #74e5ff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
}
@ -1659,7 +1659,7 @@ function downloadSurveyReportTemplate() {
grid-column: 1 / -1;
margin: 0;
color: #7ce0f8;
font-size: 12px;
font-size: var(--student-fs-caption);
}
.questionnaire-question-card__remove {
@ -1718,7 +1718,7 @@ function downloadSurveyReportTemplate() {
padding: 14px 18px;
color: #e9fbff;
background: rgba(9, 111, 157, 0.68);
font-size: 15px;
font-size: var(--student-fs-body);
letter-spacing: 0.04em;
}
@ -1782,7 +1782,7 @@ function downloadSurveyReportTemplate() {
h5 {
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
}
}
@ -1829,7 +1829,7 @@ function downloadSurveyReportTemplate() {
.questionnaire-textarea :deep(h4) {
margin: 0 0 26px;
color: #f4fbff;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 900;
}
@ -1841,7 +1841,7 @@ function downloadSurveyReportTemplate() {
display: inline-block;
margin-top: 16px;
color: #f4fbff;
font-size: 16px;
font-size: var(--student-fs-h2);
}
.questionnaire-textarea :deep(table) {
@ -1850,7 +1850,7 @@ function downloadSurveyReportTemplate() {
border-collapse: collapse;
color: #e7f5ff;
background: rgba(1, 14, 26, 0.72);
font-size: 14px;
font-size: var(--student-fs-body);
table-layout: fixed;
}
@ -1884,7 +1884,7 @@ function downloadSurveyReportTemplate() {
display: block;
margin-bottom: 10px;
color: #f1f8ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 900;
}
@ -1898,7 +1898,7 @@ function downloadSurveyReportTemplate() {
resize: vertical;
color: #eef5ff;
background: #0f1a24;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
transition: box-shadow 0.16s ease, border-color 0.16s ease;
}
@ -1946,7 +1946,7 @@ function downloadSurveyReportTemplate() {
border-radius: 999px;
color: #9fe8ff;
background: rgba(1, 14, 26, 0.72);
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
span {
@ -1967,7 +1967,7 @@ function downloadSurveyReportTemplate() {
word-break: break-word;
color: #d7ecff;
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.78;
}
@ -1978,13 +1978,13 @@ function downloadSurveyReportTemplate() {
.visual-group h5 {
margin: 0 0 12px;
color: #f1f8ff;
font-size: 16px;
font-size: var(--student-fs-h2);
}
.analysis-heading {
margin: 28px 0 16px;
color: #f1f8ff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.8;
}
@ -2004,7 +2004,7 @@ function downloadSurveyReportTemplate() {
display: block;
margin-bottom: 8px;
color: #f1f8ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 900;
}
@ -2020,7 +2020,7 @@ function downloadSurveyReportTemplate() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
box-sizing: border-box;
}
@ -2083,7 +2083,7 @@ function downloadSurveyReportTemplate() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}
@ -2120,7 +2120,7 @@ function downloadSurveyReportTemplate() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;

@ -1,4 +1,4 @@
<template>
<template>
<div class="consumer-scenario-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -944,14 +944,14 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
.task-title {
margin: 0;
color: #ffffff;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -970,7 +970,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -989,7 +989,7 @@ function exportOutcome() {
align-items: center;
gap: 8px;
color: #eafaff;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 900;
}
@ -1014,7 +1014,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -1022,7 +1022,7 @@ function exportOutcome() {
.workbench-head h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -1039,7 +1039,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1054,7 +1054,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover {
@ -1095,7 +1095,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: left;
cursor: pointer;
@ -1156,7 +1156,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -1173,7 +1173,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -1183,7 +1183,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -1237,7 +1237,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -1256,7 +1256,7 @@ function exportOutcome() {
.journey-head h4 {
margin: 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
}
@ -1282,14 +1282,14 @@ function exportOutcome() {
max-width: 700px;
margin: 0;
color: #b9d8e9;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.75;
}
}
.journey-sort-kicker {
color: #69e3ff !important;
font-size: 12px !important;
font-size: var(--student-fs-caption) !important;
font-weight: 900;
letter-spacing: 0.08em;
text-transform: uppercase;
@ -1305,7 +1305,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #078ac2, #07558a);
box-shadow: 0 8px 20px rgba(0, 145, 203, 0.2);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
cursor: pointer;
@ -1357,7 +1357,7 @@ function exportOutcome() {
.journey-card-order {
color: #78e9ff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.08em;
}
@ -1373,13 +1373,13 @@ function exportOutcome() {
strong {
margin-bottom: 8px;
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.45;
}
span {
color: #b6d9e9;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.65;
}
}
@ -1417,7 +1417,7 @@ function exportOutcome() {
.journey-sort-arrow {
justify-self: center;
color: #42cfff;
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: 900;
}
@ -1428,7 +1428,7 @@ function exportOutcome() {
border-radius: 10px;
color: #ffd2c7;
background: rgba(127, 45, 30, 0.25);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 700;
&.success {
@ -1454,7 +1454,7 @@ function exportOutcome() {
p {
margin: 0;
color: #c3dfec;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -1481,7 +1481,7 @@ function exportOutcome() {
padding: 13px 10px;
color: #effcff;
background: linear-gradient(90deg, rgba(8, 128, 178, 0.94), rgba(5, 94, 143, 0.9));
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -1513,7 +1513,7 @@ function exportOutcome() {
color: #eaf9ff;
background: transparent;
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.65;
outline: none;
box-sizing: border-box;
@ -1566,7 +1566,7 @@ function exportOutcome() {
span {
color: #51d8ff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 900;
letter-spacing: 0.08em;
text-transform: uppercase;
@ -1575,13 +1575,13 @@ function exportOutcome() {
h4 {
margin: 6px 0 8px;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
}
p {
margin: 0;
color: #bed8e6;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -1604,13 +1604,13 @@ function exportOutcome() {
background: radial-gradient(circle at 50% 32%, rgba(13, 119, 171, 0.22), rgba(2, 18, 31, 0.52) 62%);
strong {
font-size: 18px;
font-size: var(--student-fs-h1);
}
p {
margin: 0 0 8px;
color: #9abac9;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
}
@ -1646,7 +1646,7 @@ function exportOutcome() {
align-items: center;
gap: 8px;
color: #cbf5ff;
font-size: 14px;
font-size: var(--student-fs-body);
span {
overflow: hidden;
@ -1677,13 +1677,13 @@ function exportOutcome() {
h5,
p {
margin: 0;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.8;
}
h5 {
color: #e5faff;
font-size: 14px;
font-size: var(--student-fs-body);
}
.journey-map-prompt {
@ -1705,7 +1705,7 @@ function exportOutcome() {
span {
color: #51d8ff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 900;
letter-spacing: 0.08em;
}
@ -1719,7 +1719,7 @@ function exportOutcome() {
p {
margin: 0;
color: #c4dfe9;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -1746,7 +1746,7 @@ function exportOutcome() {
padding: 14px 12px;
color: #f0fcff;
background: linear-gradient(90deg, rgba(8, 128, 178, 0.94), rgba(5, 94, 143, 0.9));
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -1759,7 +1759,7 @@ function exportOutcome() {
padding: 18px 14px;
color: #a6ecff;
background: rgba(3, 36, 55, 0.58);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: center;
}
@ -1780,7 +1780,7 @@ function exportOutcome() {
color: #ebfaff;
background: transparent;
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.65;
box-sizing: border-box;
@ -1815,7 +1815,7 @@ function exportOutcome() {
border-radius: 14px;
color: #dff8ff;
background: rgba(1, 14, 26, 0.72);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: center;
}
@ -1850,7 +1850,7 @@ function exportOutcome() {
.requirement {
margin: 20px 0 16px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1867,7 +1867,7 @@ function exportOutcome() {
gap: 12px;
align-items: center;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
}
@ -1945,7 +1945,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.6;
box-sizing: border-box;
}
@ -1986,7 +1986,7 @@ function exportOutcome() {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
cursor: pointer;
@ -2011,7 +2011,7 @@ function exportOutcome() {
.reference-title {
margin-bottom: 14px;
color: #dff5ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -2052,7 +2052,7 @@ function exportOutcome() {
min-height: 58px;
padding: 10px;
color: #d7ecff;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.55;
}
@ -2078,7 +2078,7 @@ function exportOutcome() {
position: relative;
min-width: 82px;
color: #d9f1ff;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
}
@ -2120,13 +2120,13 @@ function exportOutcome() {
display: grid;
gap: 2px;
color: #f5fbff;
font-size: 18px;
font-size: var(--student-fs-h1);
text-align: center;
}
.emotion-points small {
color: #d7ecff;
font-size: 11px;
font-size: var(--student-fs-caption);
}
.training-actions {
@ -2146,7 +2146,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;

@ -1,4 +1,4 @@
<template>
<template>
<div class="competitive-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -423,7 +423,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -433,7 +433,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -452,7 +452,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -491,7 +491,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -509,7 +509,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -517,7 +517,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -532,7 +532,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover:not(.is-disabled) {
@ -572,7 +572,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
text-align: left;
@ -633,7 +633,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -650,7 +650,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -660,7 +660,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -711,7 +711,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
}
}
@ -725,7 +725,7 @@ function exportOutcome() {
h4 {
margin: 0 0 12px;
color: #dff5ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -737,7 +737,7 @@ function exportOutcome() {
li {
margin-bottom: 8px;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.72;
}
}
@ -745,7 +745,7 @@ function exportOutcome() {
.task-desc {
margin: 22px 0 18px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -768,7 +768,7 @@ function exportOutcome() {
min-height: 22px;
margin-bottom: 12px;
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -780,7 +780,7 @@ function exportOutcome() {
resize: vertical;
color: #eef5ff;
background: #0f1a24;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
@ -810,7 +810,7 @@ function exportOutcome() {
display: block;
margin-bottom: 10px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -828,7 +828,7 @@ function exportOutcome() {
.competitor-title {
margin: 0 0 12px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -893,7 +893,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -933,7 +933,7 @@ function exportOutcome() {
min-height: 40px;
padding: 0 18px;
border-radius: 999px;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}

@ -1,4 +1,4 @@
<template>
<template>
<div class="feature-conversion-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -719,14 +719,14 @@ function exportOutcome() {
border-radius: 999px;
color: #d9f7ff;
background: rgba(14, 98, 139, 0.48);
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
}
.task-title {
margin: 16px 0 0;
color: #f5fbff;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.2;
letter-spacing: 0;
}
@ -741,7 +741,7 @@ function exportOutcome() {
.goal-bg {
padding: 22px;
color: #c9ddec;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
white-space: pre-line;
}
@ -756,7 +756,7 @@ function exportOutcome() {
align-items: center;
gap: 8px;
color: #eafaff;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 900;
}
@ -780,7 +780,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0 0 6px;
color: #67e6ff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
text-transform: uppercase;
}
@ -788,7 +788,7 @@ function exportOutcome() {
.workbench-head h3 {
margin: 0;
color: #f5fbff;
font-size: 22px;
font-size: var(--student-fs-h2);
}
.ghost-action {
@ -804,7 +804,7 @@ function exportOutcome() {
gap: 12px;
margin-bottom: 34px;
color: #e7f7ff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 900;
}
@ -815,7 +815,7 @@ function exportOutcome() {
border-radius: 2px;
color: #f5fbff;
background: rgba(6, 22, 34, 0.86);
font-size: 15px;
font-size: var(--student-fs-body);
outline: none;
}
@ -854,20 +854,20 @@ function exportOutcome() {
.conversion-content {
color: #d5e6f0;
font-size: 16px;
font-size: var(--student-fs-h2);
line-height: 1.75;
}
.conversion-content h4 {
margin: 0 0 14px;
color: #f5fbff;
font-size: 20px;
font-size: var(--student-fs-display);
}
.conversion-content h5 {
margin: 16px 0 8px;
color: #eef9ff;
font-size: 16px;
font-size: var(--student-fs-h2);
}
.conversion-content p {
@ -888,7 +888,7 @@ function exportOutcome() {
> p {
max-width: 840px;
color: #c6dee9;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.85;
}
}
@ -956,7 +956,7 @@ function exportOutcome() {
height: 46px;
color: #f2fbff;
background: rgba(14, 76, 107, 0.72);
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 900;
}
@ -983,7 +983,7 @@ function exportOutcome() {
color: #f4fbff;
background: transparent;
font-family: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.55;
box-sizing: border-box;
}
@ -995,7 +995,7 @@ function exportOutcome() {
.conversion-limit-tip {
margin: 12px 0 0 !important;
color: #ff958a;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
}
@ -1010,11 +1010,11 @@ function exportOutcome() {
h5 {
margin: 0 0 4px;
color: #e8f9ff;
font-size: 14px;
font-size: var(--student-fs-body);
}
p {
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.8;
}
}
@ -1022,7 +1022,7 @@ function exportOutcome() {
.conversion-validation-message {
margin: 14px 0 0 !important;
color: #ffbbb0;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
}
@ -1058,7 +1058,7 @@ function exportOutcome() {
padding: 6px 10px;
color: #f2fbff;
background: rgba(14, 76, 107, 0.72);
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -1068,7 +1068,7 @@ function exportOutcome() {
padding: 8px 10px;
color: #d8e8f1;
background: rgba(3, 18, 29, 0.38);
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.5;
text-align: center;
word-break: break-word;
@ -1100,7 +1100,7 @@ function exportOutcome() {
color: #f4fbff;
background: transparent;
font-family: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.5;
box-sizing: border-box;
}
@ -1112,7 +1112,7 @@ function exportOutcome() {
.decision-intro {
margin-bottom: 18px !important;
color: #d8e8f1;
font-size: 16px;
font-size: var(--student-fs-h2);
}
.decision-field {
@ -1140,7 +1140,7 @@ function exportOutcome() {
color: #f4fbff;
background: rgba(3, 18, 29, 0.38);
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.65;
box-sizing: border-box;
}
@ -1167,7 +1167,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -1262,7 +1262,7 @@ function exportOutcome() {
border-color: rgba(99, 217, 255, 0.55);
color: #dff5ff;
background: rgba(17, 126, 178, 0.36);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
line-height: 1.4;
}
@ -1270,7 +1270,7 @@ function exportOutcome() {
.task-title {
margin-top: 12px;
color: #ffffff;
font-size: 30px;
font-size: var(--student-fs-display);
font-weight: 900;
line-height: 1.3;
}
@ -1298,7 +1298,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
letter-spacing: 0.02em;
@ -1307,7 +1307,7 @@ function exportOutcome() {
.workbench-head h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -1316,7 +1316,7 @@ function exportOutcome() {
max-width: 760px;
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1343,7 +1343,7 @@ function exportOutcome() {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
cursor: pointer;
transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
@ -1389,7 +1389,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
text-align: left;
@ -1432,7 +1432,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -1449,7 +1449,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -1459,7 +1459,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -1535,21 +1535,21 @@ function exportOutcome() {
.step-title-row h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
.conversion-content {
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
.conversion-content h4 {
margin: 0 0 14px;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -1569,7 +1569,7 @@ function exportOutcome() {
display: block;
margin: 0 0 16px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1582,7 +1582,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
}
@ -1619,7 +1619,7 @@ function exportOutcome() {
.feedback-grid li {
margin-bottom: 8px;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.72;
}
@ -1648,7 +1648,7 @@ function exportOutcome() {
padding: 12px;
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
}
@ -1671,7 +1671,7 @@ function exportOutcome() {
.priority-template-table td {
color: #d7f1ff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
}
@ -1682,7 +1682,7 @@ function exportOutcome() {
.decision-field span {
margin-bottom: 8px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1714,7 +1714,7 @@ function exportOutcome() {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
cursor: pointer;
}
@ -1745,7 +1745,7 @@ function exportOutcome() {
p {
margin: 0;
color: #c7dfe9;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.85;
}
@ -1793,7 +1793,7 @@ function exportOutcome() {
color: #eefbff;
background: rgba(6, 38, 58, 0.78);
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
box-sizing: border-box;
&:focus {
@ -1814,7 +1814,7 @@ function exportOutcome() {
top: 50%;
right: 9px;
color: #94bece;
font-size: 12px;
font-size: var(--student-fs-caption);
transform: translateY(-50%);
pointer-events: none;
}
@ -1822,7 +1822,7 @@ function exportOutcome() {
.rice-score-cell {
color: #64e1ff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 900;
background: rgba(9, 94, 137, 0.28);
}
@ -1845,7 +1845,7 @@ function exportOutcome() {
padding: 12px;
color: #f4fcff;
background: linear-gradient(100deg, #0787bd, #075276);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1890,7 +1890,7 @@ function exportOutcome() {
color: #eef5ff;
background: rgba(4, 24, 38, 0.72);
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.55;
resize: vertical;
box-sizing: border-box;
@ -1914,7 +1914,7 @@ function exportOutcome() {
p {
margin: 0;
color: #bfd9e5;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.65;
}
@ -1929,7 +1929,7 @@ function exportOutcome() {
.rice-formula {
margin: 12px 0 0 !important;
color: #ff9a8d;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
}

@ -1,4 +1,4 @@
<template>
<template>
<div class="industry-demand-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -436,7 +436,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -446,7 +446,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -465,7 +465,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -504,7 +504,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -522,7 +522,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -530,7 +530,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -545,7 +545,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover:not(.is-disabled) {
@ -586,7 +586,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
text-align: left;
@ -647,7 +647,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -664,7 +664,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -674,7 +674,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -726,7 +726,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
}
}
@ -740,14 +740,14 @@ function exportOutcome() {
h4 {
margin: 0 0 12px;
color: #dff5ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
p {
margin: 0 0 8px;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.72;
}
@ -759,7 +759,7 @@ function exportOutcome() {
.task-desc {
margin: 22px 0 18px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -782,7 +782,7 @@ function exportOutcome() {
min-height: 22px;
margin-bottom: 12px;
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -795,7 +795,7 @@ function exportOutcome() {
resize: vertical;
color: #eef5ff;
background: #0f1a24;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
@ -825,7 +825,7 @@ function exportOutcome() {
display: block;
margin-bottom: 10px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -843,7 +843,7 @@ function exportOutcome() {
.comparison-title {
margin: 0 0 12px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -916,7 +916,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -956,7 +956,7 @@ function exportOutcome() {
min-height: 40px;
padding: 0 18px;
border-radius: 999px;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
<template>
<template>
<div class="target-profile-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -968,14 +968,14 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
.task-title {
margin: 0;
color: #ffffff;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -994,7 +994,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1033,7 +1033,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -1051,7 +1051,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -1059,7 +1059,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1074,7 +1074,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover:not(.is-disabled) {
@ -1119,7 +1119,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: left;
cursor: pointer;
@ -1176,7 +1176,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -1194,7 +1194,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -1204,7 +1204,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -1251,7 +1251,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -1260,7 +1260,7 @@ function exportOutcome() {
.task-desc {
margin: 0 0 38px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1283,7 +1283,7 @@ function exportOutcome() {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
transition: transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
@ -1330,7 +1330,7 @@ function exportOutcome() {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
}
@ -1340,7 +1340,7 @@ function exportOutcome() {
overflow-y: auto;
padding: 24px 96px 24px 24px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1388,7 +1388,7 @@ function exportOutcome() {
margin: 0;
padding: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.6;
}
@ -1409,7 +1409,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
&:focus {
border-color: #5fe7ff;
@ -1432,7 +1432,7 @@ function exportOutcome() {
border-bottom: 1px solid rgba(77, 167, 220, 0.2);
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
& + & {
@ -1450,7 +1450,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.7;
&:nth-of-type(1) {
@ -1466,7 +1466,7 @@ function exportOutcome() {
.segmentation-intro {
margin-bottom: 24px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.7;
p {
@ -1497,7 +1497,7 @@ function exportOutcome() {
padding: 12px;
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -1525,7 +1525,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
&:focus {
border-color: #5fe7ff;
@ -1574,7 +1574,7 @@ function exportOutcome() {
color: #effcff;
background: rgba(13, 129, 184, 0.78);
text-align: center;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1669,14 +1669,14 @@ function exportOutcome() {
.product-plan-desc {
margin: 0 0 26px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
.product-plan-label {
margin-bottom: 10px;
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1697,7 +1697,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.7;
&::placeholder {
@ -1734,7 +1734,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
&:focus {
border-color: #5fe7ff;
@ -1749,7 +1749,7 @@ function exportOutcome() {
display: block;
margin-bottom: 10px;
color: #ffffff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
}
@ -1765,7 +1765,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.7;
&:focus {
@ -1813,7 +1813,7 @@ function exportOutcome() {
color: #ffffff;
background: linear-gradient(95deg, #0b84bd, #096491);
box-shadow: none;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}
@ -1827,7 +1827,7 @@ function exportOutcome() {
border-radius: 999px;
color: #9fe8ff;
background: rgba(1, 14, 26, 0.72);
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
span {
@ -1847,14 +1847,14 @@ function exportOutcome() {
.upload-tip {
margin: -6px 0 8px;
color: #8fa8b8;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.7;
}
.excel-preview-meta {
margin-bottom: 12px;
color: #52687a;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.6;
}
@ -1870,7 +1870,7 @@ function exportOutcome() {
min-width: 640px;
border-collapse: collapse;
color: #22313f;
font-size: 13px;
font-size: var(--student-fs-body-sm);
th,
td {
@ -1931,7 +1931,7 @@ function exportOutcome() {
h4 {
margin: 0;
color: #e9f8ff;
font-size: 16px;
font-size: var(--student-fs-h2);
line-height: 1.45;
}
}
@ -1946,7 +1946,7 @@ function exportOutcome() {
border-radius: 50%;
color: #5ee8ff;
background: rgba(6, 84, 124, 0.38);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
}
@ -1963,7 +1963,7 @@ function exportOutcome() {
color: #ffffff;
background: linear-gradient(95deg, #0b84bd, #096491);
cursor: pointer;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
transition: transform 0.16s ease, box-shadow 0.16s ease;
@ -1981,7 +1981,7 @@ function exportOutcome() {
.rfm-chart-empty {
margin: 15px 0 0;
color: #7f9aa9;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.5;
}
@ -2012,7 +2012,7 @@ function exportOutcome() {
display: block;
overflow: hidden;
color: #bcefff;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
@ -2025,7 +2025,7 @@ function exportOutcome() {
color: #55dfff;
background: transparent;
cursor: pointer;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
@ -2044,7 +2044,7 @@ function exportOutcome() {
display: block;
margin-bottom: 10px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -2059,7 +2059,7 @@ function exportOutcome() {
resize: vertical;
color: #eef5ff;
background: #0f1a24;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.7;
transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
@ -2091,7 +2091,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}
@ -2123,7 +2123,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -2166,7 +2166,7 @@ function exportOutcome() {
h4 {
margin: 0;
color: #f0fbff;
font-size: 18px;
font-size: var(--student-fs-h1);
}
}
@ -2195,7 +2195,7 @@ function exportOutcome() {
.market-segment-tip {
margin: 10px 0 16px;
color: #6ee3ff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
}
.market-segment-table-wrap {
@ -2222,7 +2222,7 @@ function exportOutcome() {
th {
color: #ecfbff;
background: linear-gradient(100deg, #158fc4, #08739f);
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -2286,7 +2286,7 @@ function exportOutcome() {
h4 {
margin: 0 0 14px;
color: #dcefff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 600;
line-height: 1.7;
}
@ -2410,7 +2410,7 @@ function exportOutcome() {
right: 16px;
min-width: 78px;
height: 40px;
font-size: 15px;
font-size: var(--student-fs-body);
}
.interview-dialog-body {

@ -216,13 +216,13 @@ watch(
.title {
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 30px;
}
.download {
@ -230,7 +230,7 @@ watch(
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-body);
text-align: center;
line-height: 26px;
width: 76px;
@ -292,7 +292,7 @@ watch(
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
font-size: var(--student-fs-caption);
padding: 2px;
border-radius: 4px;
padding-left: 4px;
@ -300,7 +300,7 @@ watch(
}
}
.title {
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: bold;
margin-top: 5px;
margin-bottom: 5px;

@ -202,13 +202,13 @@ watch(
.title {
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 30px;
}
.download {
@ -216,7 +216,7 @@ watch(
margin-left: 20px;
color: #000;
padding-left: 14px;
font-size: 14px;
font-size: var(--student-fs-body);
text-align: center;
line-height: 30px;
width: 96px;
@ -272,7 +272,7 @@ watch(
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
font-size: var(--student-fs-caption);
padding: 2px;
border-radius: 4px;
padding-left: 4px;
@ -280,7 +280,7 @@ watch(
}
}
.title {
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: bold;
margin-top: 5px;
margin-bottom: 5px;

@ -226,13 +226,13 @@ watch(
.title {
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 30px;
}
.download {
@ -240,7 +240,7 @@ watch(
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-body);
text-align: center;
line-height: 26px;
width: 76px;
@ -302,7 +302,7 @@ watch(
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
font-size: var(--student-fs-caption);
padding: 2px;
border-radius: 4px;
padding-left: 4px;
@ -310,7 +310,7 @@ watch(
}
}
.title {
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: bold;
margin-top: 5px;
margin-bottom: 5px;

@ -273,7 +273,7 @@ const handleKeyDown = (event) => {
padding: 10px 15px;
color: #ffffff;
p {
font-size: 12px;
font-size: var(--student-fs-caption);
}
.examples {
display: flex;
@ -295,7 +295,7 @@ const handleKeyDown = (event) => {
span {
margin-left: 5px;
font-weight: 400;
font-size: 16px;
font-size: var(--student-fs-h2);
color: #ffffff;
}
}

@ -210,13 +210,13 @@ watch(
.title {
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 30px;
}
.case {
@ -267,7 +267,7 @@ watch(
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
font-size: var(--student-fs-caption);
padding: 2px;
border-radius: 4px;
padding-left: 4px;
@ -275,7 +275,7 @@ watch(
}
}
.title {
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: bold;
margin-top: 5px;
margin-bottom: 5px;

@ -210,13 +210,13 @@ watch(
.title {
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
span {
margin-left: 10px;
}
}
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 30px;
}
.case {
@ -267,7 +267,7 @@ watch(
.iconItem {
background-color: #f1404b;
color: #fff;
font-size: 12px;
font-size: var(--student-fs-caption);
padding: 2px;
border-radius: 4px;
padding-left: 4px;
@ -275,7 +275,7 @@ watch(
}
}
.title {
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: bold;
margin-top: 5px;
margin-bottom: 5px;

@ -375,7 +375,7 @@ const sendTask=async()=>{
}
p{
// font-size: 1px;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
// font-weight:600;
color: #FFFFFF;
}
@ -388,15 +388,15 @@ const sendTask=async()=>{
height: 25px;
background: #5621f8;
border-radius: 50%;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
color: #ffffff;
}
span {
margin-left: 8px;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: 600;
color: #FFFFFF;
}

@ -381,8 +381,8 @@ dialogShowbtn()
}
// p,
// span {
// font-size: 12px;
// font-family: Source Han Sans CN;
// font-size: var(--student-fs-caption);
// font-family: var(--student-font-base);
// font-weight: 600;
// color: #333333;
// }
@ -409,7 +409,7 @@ dialogShowbtn()
color: #ffffff;
background: #5621F8;
border-radius: 13px;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
}
@ -421,21 +421,21 @@ div {
text-align: center;
background: url("@/assets/images/szjj/任务背景.png") no-repeat;
background-size: 100% 100%;
font-size: 20px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-display);
font-family: var(--student-font-base);
font-weight: bold;
}
.Step {
display: flex;
align-items: center;
.Step-item{
font-size: 12px;
font-size: var(--student-fs-caption);
}
span {
margin-left: 8px;
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: 500;
color: #FFFFFF;
font-weight: 600;
@ -476,7 +476,7 @@ div {
height: 40px;
text-align: center;
line-height: 40px;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #ffffff;
padding-left: 10px;
background: url("@/assets/images/szjj/icon-分类器训练.png")

@ -706,9 +706,9 @@ onBeforeUnmount(() => {
line-height: 66px;
background: url("@/assets/images/szjj/任务背景.png") no-repeat !important;
background-size: 100% 100% !important;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
font-size: var(--student-fs-display);
color: #ffffff;
}
}
@ -728,14 +728,14 @@ onBeforeUnmount(() => {
margin-right: 8px;
span {
display: inline-block;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #ffffff;
}
}
span {
font-size: 15px;
font-size: var(--student-fs-body);
color: #000000;
font-weight: 600;
}
@ -767,9 +767,9 @@ onBeforeUnmount(() => {
background: #ffffff;
border-radius: 5px;
border: 1px solid #e5e5e5;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 500;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #333333;
line-height: 20px;
}

@ -738,9 +738,9 @@ onMounted(() => {
line-height: 66px;
background: url("@/assets/images/szjj/任务背景.png") no-repeat !important;
background-size: 100% 100% !important;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
font-size: var(--student-fs-display);
color: #333333;
}
}
@ -933,9 +933,9 @@ onMounted(() => {
border-radius: 4px;
border: 2px solid;
border-image: linear-gradient(0deg, #c0dcff, #cbbaff) 10 10;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 500;
font-size: 14px;
font-size: var(--student-fs-body);
color: #ffffff;
img {
margin-right: 10px;
@ -947,7 +947,7 @@ onMounted(() => {
height: 40px;
background: url("@/assets/images/szjj/按钮1.png") no-repeat center center;
background-size: 100% 100%;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 500;
color: #ffffff;
border: none;

@ -312,7 +312,7 @@ CharacterRecognitionCase()
}
div {
// p {
// font-size: 12px;
// font-size: var(--student-fs-caption);
// }
.title-back {
width: 182px;
@ -321,8 +321,8 @@ div {
text-align: center;
background: url("@/assets/images/szjj/任务背景.png") no-repeat;
background-size: 100% 100%;
font-size: 20px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-display);
font-family: var(--student-font-base);
font-weight: bold;
}
.Step {
@ -336,15 +336,15 @@ div {
color: #ffffff;
background: #5621f8;
border-radius: 13px;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
}
span {
display: inline-block;
margin-left: 10px !important;
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: 600;
color: #000000;
}
@ -360,7 +360,7 @@ div {
}
}
.--primary {
font-size: 12px;
font-size: var(--student-fs-caption);
padding-left: 40px;
padding-right: 34px;
border: none;
@ -386,8 +386,8 @@ div {
height: 54px;
line-height: 54px;
span{
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: 500;
line-height: 20px;
}

@ -496,8 +496,8 @@ getList()
text-align: center;
background: url("@/assets/images/szjj/任务背景.png") no-repeat;
background-size: 100% 100%;
font-size: 20px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-display);
font-family: var(--student-font-base);
font-weight: bold;
}
.setp {
@ -509,14 +509,14 @@ getList()
color: #ffffff;
background: #5621f8;
border-radius: 13px;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
}
span {
margin-left: 8px;
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: 600;
color: #FFFFFF;
}
@ -573,7 +573,7 @@ getList()
span {
margin-top: 54px;
margin-bottom: -48px;
font-size: 14px;
font-size: var(--student-fs-body);
color: #5621f8;
}
}

@ -871,7 +871,7 @@ onMounted(()=>{
--color: #333333;
}
// p{
// font-size: 12px;
// font-size: var(--student-fs-caption);
// }
.voice-technology {
display: flex;
@ -898,10 +898,10 @@ onMounted(()=>{
}
// p{
// font-size: 12px;
// font-family: Source Han Sans CN;
// font-size: var(--student-fs-caption);
// font-family: var(--student-font-base);
// font-weight: 600;
// font-size: 12px;
// font-size: var(--student-fs-caption);
// color: #333333;
// line-height: 20px;
// }
@ -914,9 +914,9 @@ onMounted(()=>{
line-height: 66px;
background: url("@/assets/images/szjj/任务背景.png") no-repeat !important;
background-size: 100% 100% !important;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
font-size: var(--student-fs-display);
color: #FFFFFF;
}
}
@ -933,14 +933,14 @@ onMounted(()=>{
margin-right: 8px;
span {
display: inline-block;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 600;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #ffffff;
}
}
span {
font-size: 15px;
font-size: var(--student-fs-body);
color: #000000;
// color: var(--color);
font-weight: 600;
@ -994,7 +994,7 @@ onMounted(()=>{
.el-button {
height: 40px;
border: none;
font-size: 12px;
font-size: var(--student-fs-caption);
background: url("@/assets/images/szjj/按钮1.png") no-repeat;
background-size: 100% 100%;
}
@ -1024,9 +1024,9 @@ onMounted(()=>{
margin-right: 20px;
span {
margin-bottom: 12px;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 16px;
font-size: var(--student-fs-h2);
color: #FFFFFF;
}
}
@ -1052,7 +1052,7 @@ onMounted(()=>{
height: 166px;
padding: 10px 1px 10px 1px;
color: #595a63;
font-size: 18px;
font-size: var(--student-fs-h1);
font-family: monospace;
white-space: nowrap;
overflow: hidden;

@ -1451,7 +1451,7 @@ const resultShow=()=>{
</script>
<style lang="scss" scoped>
p {
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 20px;
color: #000000;
// font-weight: 600;
@ -1478,8 +1478,8 @@ p {
}
span {
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: bold;
color: #333333;
}
@ -1519,8 +1519,8 @@ p {
background-size: 100% 100%;
margin-bottom: 7px;
padding: 0px 7px;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: bold;
color: #fbfcff;
}
@ -1594,7 +1594,7 @@ p {
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 400;
color: #ffffff;
}
@ -1611,7 +1611,7 @@ p {
padding: 2px;
span {
text-align: left;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 400;
color: #f8fbff;
display: block;
@ -1719,8 +1719,8 @@ p {
background-size: 100% 100%;
margin-bottom: 7px;
padding: 0px 7px;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: bold;
color: #fbfcff;
}
@ -1826,7 +1826,7 @@ p {
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 400;
color: #ffffff;
}
@ -1913,7 +1913,7 @@ p {
span{
font-weight: 400;
color: #F8FBFF;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
.purple{
@ -2006,7 +2006,7 @@ p {
span {
display: block;
color: #ffffff;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
.ts_item {
@ -2067,7 +2067,7 @@ p {
text-align: center;
span {
display: block;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
}
@ -2081,7 +2081,7 @@ p {
left: 40px;
padding: 5px 31px;
span {
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 500;
color: #ffffff;
}
@ -2095,7 +2095,7 @@ p {
left: 432px;
padding: 5px 31px;
span {
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 500;
color: #ffffff;
}
@ -2112,7 +2112,7 @@ p {
margin: 10px;
padding: 15px;
span{
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: bold;
color: #333333;
margin: 15px 0;
@ -2145,7 +2145,7 @@ p {
background-size: 100% 100% !important;
margin-right: 0 !important;
span {
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 400;
color: #ffffff;
}
@ -2161,7 +2161,7 @@ p {
}
.el-dialog__headerbtn i {
content: "1";
font-size: 13px;
font-size: var(--student-fs-body-sm);
visibility: hidden;
}
.el-dialog__footer {

@ -1286,7 +1286,7 @@ onBeforeUnmount(() => {
}
.left_text {
margin: 10px 326px 0;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 500;
color: #FFFFFF;
}
@ -1424,7 +1424,7 @@ onBeforeUnmount(() => {
}
span{
font-weight: 500;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #007DCA;
}
}
@ -1434,7 +1434,7 @@ onBeforeUnmount(() => {
left: 883px;
span{
font-weight: 500;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #007DCA;
}
img{
@ -1448,7 +1448,7 @@ onBeforeUnmount(() => {
left: 186px;
span{
font-weight: 500;
font-size: 12px;
font-size: var(--student-fs-caption);
color: #007DCA;
}
img{
@ -1513,7 +1513,7 @@ onBeforeUnmount(() => {
background-size: 100% 100% !important;
margin-right: 0 !important;
span {
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 400;
color: #ffffff;
}
@ -1529,7 +1529,7 @@ onBeforeUnmount(() => {
}
.el-dialog__headerbtn i {
content: "1";
font-size: 13px;
font-size: var(--student-fs-body-sm);
visibility: hidden;
}
.el-dialog__footer {

@ -576,8 +576,8 @@ echoHaop()
}
}
p {
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
// font-weight: 600;
color: #000000;
}
@ -585,7 +585,7 @@ echoHaop()
position: relative;
span {
font-size: 1vw !important;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: 600;
color: #333333;
}
@ -614,8 +614,8 @@ echoHaop()
line-height: 44px;
background: linear-gradient(0deg, #b9b9b9 0%, #cdd2cf 100%);
border-radius: 4px;
font-size: 16px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-h2);
font-family: var(--student-font-base);
font-weight: 600;
color: #FFFFFF;
}
@ -960,8 +960,8 @@ echoHaop()
padding: 0px 27px;
background: linear-gradient(-90deg, #2c04c9 0%, #5197ff 100%);
border-radius: 5px;
font-size: 20px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-display);
font-family: var(--student-font-base);
font-weight: bold;
color: #ffffff;
}

@ -307,7 +307,7 @@ const timer=ref(null)
}
p{
// font-size: 1px;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
// font-weight:600;
color: #000000;
}
@ -320,15 +320,15 @@ const timer=ref(null)
height: 25px;
background: #5621f8;
border-radius: 50%;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
color: #ffffff;
}
span {
margin-left: 8px;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: 600;
color: #000000;
}

@ -421,8 +421,8 @@ import { getUserInfo } from '@/utils/auth'
}
p{
font-size: 15px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
// font-weight: 600;
color: #000000;
}
@ -435,15 +435,15 @@ import { getUserInfo } from '@/utils/auth'
height: 25px;
background: #5621f8;
border-radius: 50%;
font-size: 12px;
font-size: var(--student-fs-caption);
text-align: center;
line-height: 25px;
color: #000000;
}
span {
margin-left: 8px;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: 600;
color: #333333;
}
@ -464,13 +464,13 @@ import { getUserInfo } from '@/utils/auth'
width: 100%;
display: flex;
font-weight: bold;
font-size: 14px;
font-size: var(--student-fs-body);
align-items: center;
.eval_main_right {
color: #000000;
margin-left: 23px;
span {
font-size: 14px;
font-size: var(--student-fs-body);
color: #00b4f2;
}
}
@ -485,8 +485,8 @@ import { getUserInfo } from '@/utils/auth'
background-color: #5621F8;
color: #FFFFFF;
border-radius: 50%;
font-size: 13px;
font-size: 15px;
font-size: var(--student-fs-body-sm);
font-size: var(--student-fs-body);
font-weight: 100;
margin-left: 35px;
}

@ -712,7 +712,7 @@ const startOver = () => {
padding: 10px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}

@ -188,7 +188,7 @@ onMounted(() => {
padding: 10px 20px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}
@ -204,7 +204,7 @@ onMounted(() => {
span {
color: #9bd1ff;
font-weight: 400;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
.is-active {

@ -726,7 +726,7 @@ const handleExport = async (name) => {
padding: 10px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}

@ -598,7 +598,7 @@ const closeDialog = () => {
padding: 10px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}

@ -962,7 +962,7 @@ defineExpose({ submitTask, resetTask: restart });
padding: 10px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}
@ -1093,7 +1093,7 @@ defineExpose({ submitTask, resetTask: restart });
display: flex;
align-items: center;
color: #ffffff;
font-size: 14px;
font-size: var(--student-fs-body);
margin: 16px 0;
label {
width: 80px;
@ -1127,7 +1127,7 @@ defineExpose({ submitTask, resetTask: restart });
justify-content: center;
gap: 30px;
color: #ffffff;
font-size: 14px;
font-size: var(--student-fs-body);
height: 180px;
margin-top: 40px;
.emotion_analysis-ani-in-ri,
@ -1140,7 +1140,7 @@ defineExpose({ submitTask, resetTask: restart });
position: absolute;
top: 0px;
right: 48%;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: normal;
}
:deep(.el-progress) {
@ -1202,7 +1202,7 @@ defineExpose({ submitTask, resetTask: restart });
}
.result-title {
line-height: 26px;
font-size: 14px;
font-size: var(--student-fs-body);
}
.result-view {
position: relative;
@ -1210,7 +1210,7 @@ defineExpose({ submitTask, resetTask: restart });
padding: 0 10px;
margin-right: 2px;
line-height: 26px;
font-size: 14px;
font-size: var(--student-fs-body);
top: -26px;
left: 61px;
.result-bar {

@ -765,7 +765,7 @@ const startOver = () => {
padding: 10px;
span {
font-weight: bold;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
}
}

@ -66,7 +66,7 @@ function back() {
color: #484848;
}
.list-unstyled {
font-size: 14px;
font-size: var(--student-fs-body);
li {
padding-bottom: 5px;
}

@ -172,7 +172,7 @@ let message = computed(() => {
animation-fill-mode: forwards;
}
&__headline {
font-size: 20px;
font-size: var(--student-fs-display);
line-height: 24px;
color: #222;
font-weight: bold;
@ -184,7 +184,7 @@ let message = computed(() => {
animation-fill-mode: forwards;
}
&__info {
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 21px;
color: grey;
opacity: 0;
@ -204,7 +204,7 @@ let message = computed(() => {
text-align: center;
color: #ffffff;
opacity: 0;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 36px;
cursor: pointer;
animation-name: slideUp;

@ -1,4 +1,4 @@
<template>
<template>
<div class="new-product-value-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -892,7 +892,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -902,7 +902,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -921,7 +921,7 @@ function exportOutcome() {
p {
margin: 0;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -955,7 +955,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px !important;
font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
@ -979,7 +979,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -987,7 +987,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -1112,7 +1112,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -1129,7 +1129,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -1139,7 +1139,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -1202,7 +1202,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
}
}
@ -1214,14 +1214,14 @@ function exportOutcome() {
border-radius: 999px;
color: #c8f4ff;
background: rgba(0, 127, 184, 0.25);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
}
.step-desc {
margin: 0 0 20px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1240,7 +1240,7 @@ function exportOutcome() {
gap: 8px;
margin-bottom: 16px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
> span {
@ -1258,7 +1258,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
outline: none;
transition: border-color 0.18s ease, box-shadow 0.18s ease;
@ -1329,7 +1329,7 @@ function exportOutcome() {
gap: 9px;
margin: 0 0 12px;
color: #f0fbff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 900;
b {
@ -1340,14 +1340,14 @@ function exportOutcome() {
border-radius: 50%;
color: #062236;
background: #66dcff;
font-size: 12px;
font-size: var(--student-fs-caption);
}
}
.survey-field-hint {
margin: -4px 0 13px 33px;
color: #a9cee2;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.65;
}
@ -1383,7 +1383,7 @@ function exportOutcome() {
span {
color: #9fc6da;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.55;
}
@ -1404,7 +1404,7 @@ function exportOutcome() {
gap: 10px;
margin-bottom: 14px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1461,7 +1461,7 @@ function exportOutcome() {
figcaption {
overflow: hidden;
color: #b9d9e8;
font-size: 12px;
font-size: var(--student-fs-caption);
text-overflow: ellipsis;
white-space: nowrap;
}
@ -1496,7 +1496,7 @@ function exportOutcome() {
color: #ff9eaf;
background: transparent;
font: inherit;
font-size: 12px;
font-size: var(--student-fs-caption);
cursor: pointer;
}
@ -1529,7 +1529,7 @@ function exportOutcome() {
th {
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -1569,7 +1569,7 @@ function exportOutcome() {
span {
color: #9fc6da;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
line-height: 1.55;
}
@ -1600,7 +1600,7 @@ function exportOutcome() {
.analysis-count {
margin: 8px 2px 0;
color: #ffb1b1;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
&.is-ready {
@ -1618,7 +1618,7 @@ function exportOutcome() {
border-radius: 16px;
color: #f6e5a7;
background: rgba(120, 92, 8, 0.16);
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.6;
}
@ -1645,7 +1645,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -1717,7 +1717,7 @@ function exportOutcome() {
.classification-summary {
margin: 8px 0 0;
color: #ffb1b1;
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 1.45;
}
@ -1728,7 +1728,7 @@ function exportOutcome() {
.classification-summary {
margin-top: 16px;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 700;
}

@ -509,7 +509,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -519,7 +519,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
letter-spacing: 0;
@ -535,7 +535,7 @@ function exportOutcome() {
p {
margin: 0;
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
@ -581,7 +581,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px !important;
font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
@ -589,7 +589,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -597,7 +597,7 @@ function exportOutcome() {
> div > .workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -642,7 +642,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
text-align: left;
@ -703,7 +703,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -720,7 +720,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -730,7 +730,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -785,7 +785,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -794,7 +794,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -836,7 +836,7 @@ function exportOutcome() {
border-right: 1px solid rgba(77, 167, 220, 0.2);
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -867,14 +867,14 @@ function exportOutcome() {
.dimension-cell {
color: #eafaff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
.criteria-cell {
color: #cfe8f8;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
text-align: center;
}
@ -889,7 +889,7 @@ function exportOutcome() {
.factor-intro {
margin: 0 0 18px;
color: #d7ecff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 700;
line-height: 1.8;
}
@ -908,12 +908,12 @@ function exportOutcome() {
p {
margin: 0 0 8px;
color: #eaffff;
font-size: 20px;
font-size: var(--student-fs-display);
font-weight: 800;
}
span {
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.7;
}
}
@ -962,7 +962,7 @@ function exportOutcome() {
color: #e9fbff !important;
background: rgba(17, 126, 178, 0.36) !important;
box-shadow: none !important;
font-size: 14px !important;
font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
line-height: 1 !important;
}
@ -975,7 +975,7 @@ function exportOutcome() {
color: #e9fbff !important;
background: rgba(17, 126, 178, 0.36) !important;
box-shadow: none !important;
font-size: 14px !important;
font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
line-height: 1 !important;
}
@ -997,7 +997,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;

@ -590,14 +590,14 @@ function exportOutcome() {
}
.task-header { margin-bottom: 24px; }
.task-badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 12px; padding: 4px 14px; border: 1px solid rgba(0, 170, 255, 0.5); border-radius: 30px; color: #d6f6ff; background: rgba(0, 170, 255, 0.2); font-size: 12px; font-weight: 700; }
.task-title { margin: 0; color: transparent; background: linear-gradient(135deg, #fff, #8bcbff); -webkit-background-clip: text; background-clip: text; font-size: 30px; font-weight: 900; line-height: 1.3; }
.task-badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 12px; padding: 4px 14px; border: 1px solid rgba(0, 170, 255, 0.5); border-radius: 30px; color: #d6f6ff; background: rgba(0, 170, 255, 0.2); font-size: var(--student-fs-caption); font-weight: 700; }
.task-title { margin: 0; color: transparent; background: linear-gradient(135deg, #fff, #8bcbff); -webkit-background-clip: text; background-clip: text; font-size: var(--student-fs-display); font-weight: 900; line-height: 1.3; }
.process-workbench { min-width: 0; margin: 0; padding: 18px 22px; border: 1px solid rgba(82, 174, 226, 0.42); border-radius: 26px; background: rgba(0, 25, 42, 0.64); }
.process-workbench::before { display: none !important; content: none !important; }
.workbench-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(0, 180, 255, 0.2); }
.workbench-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.outline-action, .btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: inherit; cursor: pointer; }
.outline-action, .workbench-actions :deep(.material-download) { min-height: 40px; padding: 0 18px; border: 1px solid rgba(99, 217, 255, 0.55); border-radius: 999px; color: #e9fbff; background: rgba(17, 126, 178, 0.36); box-shadow: none; font-size: 14px; font-weight: 800; line-height: 1; }
.outline-action, .workbench-actions :deep(.material-download) { min-height: 40px; padding: 0 18px; border: 1px solid rgba(99, 217, 255, 0.55); border-radius: 999px; color: #e9fbff; background: rgba(17, 126, 178, 0.36); box-shadow: none; font-size: var(--student-fs-button); font-weight: 800; line-height: 1; }
.outline-action:hover, .workbench-actions :deep(.material-download:hover) { border-color: rgba(116, 235, 255, 0.85); color: #fff; background: rgba(18, 146, 204, 0.5); transform: translateY(-1px); }
.workbench-head--actions-only { justify-content: flex-end; margin-bottom: 18px; padding-bottom: 0; border-bottom: 0; }
@ -605,14 +605,14 @@ function exportOutcome() {
.step-tab { display: flex; flex: 1 0 145px; align-items: center; min-width: 0; min-height: 66px; padding: 8px 10px; border: 1px solid rgba(68, 141, 177, 0.35); border-radius: 8px; color: #9ab3d0; background: rgba(3, 27, 43, 0.52); box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04); font-family: inherit; cursor: pointer; text-align: left; transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.step-tab:hover { border-color: rgba(89, 223, 255, 0.82); color: #fff; background: rgba(8, 92, 131, 0.52); box-shadow: 0 7px 18px rgba(0, 0, 0, .24), inset 0 1px 0 rgba(152, 239, 255, .16); transform: translateY(-2px); }.step-tab:hover .step-action { color: #9bf4ff; }.step-tab:focus-visible { outline: 2px solid #72e8ff; outline-offset: 4px; }
.step-tab.active { border-color: rgba(89, 226, 255, .85); color: #fff; background: linear-gradient(115deg, rgba(4, 109, 155, .78), rgba(5, 62, 102, .64)); box-shadow: 0 0 18px rgba(24, 183, 235, .22), inset 0 1px 0 rgba(176, 246, 255, .2); }.step-tab.active .step-marker { border-color: #72e8ff; color: #fff; background: linear-gradient(135deg, #08b7e8, #1375d0); box-shadow: 0 0 0 5px rgba(25, 179, 237, .14), 0 0 18px rgba(46, 208, 255, .58); }.step-tab.complete { color: #dffbff; }.step-tab.complete .step-marker { border-color: rgba(84, 230, 221, .85); color: #062b37; background: #6ef0e1; box-shadow: 0 0 12px rgba(79, 231, 218, .35); }
.step-marker { display: inline-flex; flex: 0 0 38px; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(101, 176, 208, .6); border-radius: 50%; color: #a6c4d9; background: rgba(3, 25, 40, .8); font-size: 12px; font-weight: 900; letter-spacing: .04em; }.step-copy { display: grid; min-width: 0; gap: 4px; margin-left: 10px; }.step-name { display: -webkit-box; overflow: hidden; color: inherit; font-size: 14px; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.step-action { color: #66b6d4; font-size: 10px; font-weight: 800; letter-spacing: .06em; line-height: 1; }.step-connector { position: relative; flex: 0 1 40px; min-width: 18px; height: 2px; margin: 0 8px; background: rgba(98, 169, 201, .34); }.step-connector::after { position: absolute; top: 50%; right: -1px; width: 6px; height: 6px; border-top: 1px solid #73b1ce; border-right: 1px solid #73b1ce; content: ''; transform: translateY(-50%) rotate(45deg); }.step-tab.complete + .step-connector { background: linear-gradient(90deg, #6ef0e1, #1cb8e9); box-shadow: 0 0 9px rgba(53, 218, 235, .46); }.step-tab.complete + .step-connector::after { border-color: #63e6f1; }
.step-marker { display: inline-flex; flex: 0 0 38px; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(101, 176, 208, .6); border-radius: 50%; color: #a6c4d9; background: rgba(3, 25, 40, .8); font-size: var(--student-fs-caption); font-weight: 900; letter-spacing: .04em; }.step-copy { display: grid; min-width: 0; gap: 4px; margin-left: 10px; }.step-name { display: -webkit-box; overflow: hidden; color: inherit; font-size: var(--student-fs-body); font-weight: 800; line-height: 1.25; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.step-action { color: #66b6d4; font-size: var(--student-fs-caption); font-weight: 800; letter-spacing: .06em; line-height: 1; }.step-connector { position: relative; flex: 0 1 40px; min-width: 18px; height: 2px; margin: 0 8px; background: rgba(98, 169, 201, .34); }.step-connector::after { position: absolute; top: 50%; right: -1px; width: 6px; height: 6px; border-top: 1px solid #73b1ce; border-right: 1px solid #73b1ce; content: ''; transform: translateY(-50%) rotate(45deg); }.step-tab.complete + .step-connector { background: linear-gradient(90deg, #6ef0e1, #1cb8e9); box-shadow: 0 0 9px rgba(53, 218, 235, .46); }.step-tab.complete + .step-connector::after { border-color: #63e6f1; }
.process-step-card { margin: 0; padding: 18px 22px; border: 1px solid rgba(82, 174, 226, 0.42); border-radius: 26px; background: rgba(0, 25, 42, 0.64); }.step-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: 22px; font-weight: 900; line-height: 1.3; }.section-eyebrow { margin: 0; color: #71dfff; font-size: 12px; font-weight: 800; line-height: 1.4; }.step-chip { padding: 6px 12px; border: 1px solid rgba(94, 219, 255, .54); border-radius: 999px; color: #a6ebff; background: rgba(9, 104, 149, .2); font-size: 13px; font-weight: 800; }
.process-intro { margin: 0 0 18px; color: #d7ecff; font-size: 15px; line-height: 1.8; }.training-table-wrap { overflow-x: auto; border: 1px solid rgba(0, 180, 255, .22); border-radius: 22px; background: rgba(1, 14, 26, .72); }.process-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; }.process-table th { padding: 12px; border-right: 1px solid rgba(77, 167, 220, .2); color: #eaffff; background: rgba(8, 55, 82, .98); font-size: 14px; font-weight: 900; text-align: center; }.process-table td { padding: 12px; border-top: 1px solid rgba(77, 167, 220, .2); border-right: 1px solid rgba(77, 167, 220, .2); color: #d7f1ff; background: rgba(1, 14, 26, .48); vertical-align: middle; }.process-table th:last-child, .process-table td:last-child { border-right: 0; }.stage-cell { width: 17%; color: #eafaff; font-size: 14px; font-weight: 900; text-align: center; }.task-no-cell { width: 12%; color: #eafaff; font-size: 14px; font-weight: 800; text-align: center; }.task-cell { color: #cfe8f8; font-size: 14px; line-height: 1.7; text-align: center; }.select-cell { width: 23%; }.select-cell select, .schedule-table input { box-sizing: border-box; width: 100%; min-height: 38px; padding: 7px 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 10px; outline: none; color: #eef5ff; background: #0f1a24; font: inherit; }.select-cell select:focus, .schedule-table input:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); }.classification-feedback { margin: 6px 0 0; color: #ff9b8f; font-size: 12px; line-height: 1.5; }.is-correct { background: rgba(55, 196, 147, .08); }.is-incorrect { background: rgba(255, 91, 82, .1); }.classification-summary { margin: 16px 0 0; color: #ffbc86; }.classification-summary.is-success { color: #6ee8b1; }
.task-actions { display: flex; justify-content: center; gap: 52px; margin-top: 36px; }.btn-nav { min-width: 172px; min-height: 64px; padding: 0 28px; border: 1px solid #2c83aa; border-radius: 6px; color: #dff7ff; background: rgba(13, 64, 88, .62); box-shadow: none; font-size: 24px; font-weight: 900; line-height: 1; }.btn-submit { border-color: #2c83aa; background: rgba(13, 64, 88, .62); }.task-actions .btn-nav .el-icon { display: none; }.btn-nav:hover:not(:disabled) { border-color: #46b5e7; color: #fff; background: rgba(18, 85, 116, .78); }.btn-nav:disabled { cursor: not-allowed; opacity: .6; }.step-placeholder { display: grid; place-items: center; min-height: 280px; padding: 28px; border: 1px dashed rgba(101, 207, 239, .42); border-radius: 18px; color: #b8d9ec; background: rgba(1, 14, 26, .42); text-align: center; }.step-placeholder p { margin: 0 0 8px; color: #eaffff; font-size: 20px; font-weight: 800; }
.process-step-card { margin: 0; padding: 18px 22px; border: 1px solid rgba(82, 174, 226, 0.42); border-radius: 26px; background: rgba(0, 25, 42, 0.64); }.step-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: var(--student-fs-h2); font-weight: 900; line-height: 1.3; }.section-eyebrow { margin: 0; color: #71dfff; font-size: var(--student-fs-caption); font-weight: 800; line-height: 1.4; }.step-chip { padding: 6px 12px; border: 1px solid rgba(94, 219, 255, .54); border-radius: 999px; color: #a6ebff; background: rgba(9, 104, 149, .2); font-size: var(--student-fs-body-sm); font-weight: 800; }
.process-intro { margin: 0 0 18px; color: #d7ecff; font-size: var(--student-fs-body); line-height: 1.8; }.training-table-wrap { overflow-x: auto; border: 1px solid rgba(0, 180, 255, .22); border-radius: 22px; background: rgba(1, 14, 26, .72); }.process-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; }.process-table th { padding: 12px; border-right: 1px solid rgba(77, 167, 220, .2); color: #eaffff; background: rgba(8, 55, 82, .98); font-size: var(--student-fs-body); font-weight: 900; text-align: center; }.process-table td { padding: 12px; border-top: 1px solid rgba(77, 167, 220, .2); border-right: 1px solid rgba(77, 167, 220, .2); color: #d7f1ff; background: rgba(1, 14, 26, .48); vertical-align: middle; }.process-table th:last-child, .process-table td:last-child { border-right: 0; }.stage-cell { width: 17%; color: #eafaff; font-size: var(--student-fs-body); font-weight: 900; text-align: center; }.task-no-cell { width: 12%; color: #eafaff; font-size: var(--student-fs-body); font-weight: 800; text-align: center; }.task-cell { color: #cfe8f8; font-size: var(--student-fs-body); line-height: 1.7; text-align: center; }.select-cell { width: 23%; }.select-cell select, .schedule-table input { box-sizing: border-box; width: 100%; min-height: 38px; padding: 7px 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 10px; outline: none; color: #eef5ff; background: #0f1a24; font: inherit; }.select-cell select:focus, .schedule-table input:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); }.classification-feedback { margin: 6px 0 0; color: #ff9b8f; font-size: var(--student-fs-caption); line-height: 1.5; }.is-correct { background: rgba(55, 196, 147, .08); }.is-incorrect { background: rgba(255, 91, 82, .1); }.classification-summary { margin: 16px 0 0; color: #ffbc86; }.classification-summary.is-success { color: #6ee8b1; }
.task-actions { display: flex; justify-content: center; gap: 52px; margin-top: 36px; }.btn-nav { min-width: 172px; min-height: 64px; padding: 0 28px; border: 1px solid #2c83aa; border-radius: 6px; color: #dff7ff; background: rgba(13, 64, 88, .62); box-shadow: none; font-size: var(--student-fs-h1); font-weight: 900; line-height: 1; }.btn-submit { border-color: #2c83aa; background: rgba(13, 64, 88, .62); }.task-actions .btn-nav .el-icon { display: none; }.btn-nav:hover:not(:disabled) { border-color: #46b5e7; color: #fff; background: rgba(18, 85, 116, .78); }.btn-nav:disabled { cursor: not-allowed; opacity: .6; }.step-placeholder { display: grid; place-items: center; min-height: 280px; padding: 28px; border: 1px dashed rgba(101, 207, 239, .42); border-radius: 18px; color: #b8d9ec; background: rgba(1, 14, 26, .42); text-align: center; }.step-placeholder p { margin: 0 0 8px; color: #eaffff; font-size: var(--student-fs-display); font-weight: 800; }
.step-warning { margin: 0 0 16px; padding: 10px 14px; border: 1px solid rgba(255, 173, 93, .62); border-radius: 10px; color: #ffd19f; background: rgba(187, 102, 27, .16); }.schedule-table { min-width: 1180px; }.schedule-table .stage-cell { width: 12%; }.schedule-table .task-no-cell { width: 8%; }.schedule-table .task-cell { width: 21%; }.classification-cell { width: 13%; color: #eafaff; font-weight: 800; text-align: center; }.schedule-table .dependency-input { min-width: 180px; }.schedule-table input:disabled { cursor: not-allowed; opacity: .6; }
.gantt-upload-panel { display: grid; justify-items: center; gap: 22px; min-height: 320px; padding: 32px 16px; border: 1px dashed rgba(71, 204, 255, .55); border-radius: 18px; background: radial-gradient(circle at center, rgba(15, 119, 163, .16), transparent 55%); }.gantt-upload-trigger { display: grid; place-items: center; align-content: center; gap: 9px; width: 280px; height: 138px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #0ba6e0, #0877ad); cursor: pointer; box-shadow: 0 14px 30px rgba(5, 126, 180, .24); }.gantt-upload-trigger input { position: absolute; width: 1px; height: 1px; opacity: 0; }.gantt-upload-trigger .el-icon { font-size: 26px; }.gantt-upload-trigger span { color: #cbefff; font-size: 12px; }.gantt-upload-trigger.disabled { cursor: not-allowed; opacity: .55; }.gantt-preview { width: min(100%, 760px); margin: 0; text-align: center; }.gantt-preview img { display: block; width: 100%; max-height: 410px; object-fit: contain; border: 1px solid rgba(84, 211, 255, .5); border-radius: 12px; background: #fff; cursor: zoom-in; }.gantt-preview figcaption { margin-top: 8px; color: #a8dce9; font-size: 13px; }.gantt-guide { margin-top: 26px; padding: 18px 22px; border-left: 3px solid #23c4ff; border-radius: 0 14px 14px 0; color: #d4edf6; background: rgba(12, 75, 104, .22); }.gantt-guide h4 { margin: 0 0 14px; color: #fff; }.gantt-guide ol { margin: 0; padding-left: 20px; }.gantt-guide li { margin: 11px 0; line-height: 1.7; }.gantt-guide button { margin-left: 12px; border: 0; border-radius: 6px; padding: 5px 10px; color: #fff; background: #109ed4; cursor: pointer; }
.process-reflection { display: grid; gap: 28px; }.reflection-field { display: grid; gap: 12px; color: #d8edf4; font-size: 16px; line-height: 1.7; }.reflection-field span { color: #f1fbff; font-weight: 600; }.reflection-field textarea { min-height: 190px; resize: vertical; padding: 14px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 14px; color: #eef5ff; background: #0f1a24; font: inherit; line-height: 1.7; }.reflection-field textarea:focus { outline: 0; border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); }.reflection-field textarea:disabled { cursor: not-allowed; opacity: .55; }.reflection-question { color: #f1fbff; font-size: 16px; font-weight: 600; line-height: 1.8; }.scenario-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }.scenario-grid .reflection-field textarea { min-height: 180px; }.process-reflection.disabled { opacity: .72; }
.gantt-upload-panel { display: grid; justify-items: center; gap: 22px; min-height: 320px; padding: 32px 16px; border: 1px dashed rgba(71, 204, 255, .55); border-radius: 18px; background: radial-gradient(circle at center, rgba(15, 119, 163, .16), transparent 55%); }.gantt-upload-trigger { display: grid; place-items: center; align-content: center; gap: 9px; width: 280px; height: 138px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #0ba6e0, #0877ad); cursor: pointer; box-shadow: 0 14px 30px rgba(5, 126, 180, .24); }.gantt-upload-trigger input { position: absolute; width: 1px; height: 1px; opacity: 0; }.gantt-upload-trigger .el-icon { font-size: 26px; }.gantt-upload-trigger span { color: #cbefff; font-size: var(--student-fs-caption); }.gantt-upload-trigger.disabled { cursor: not-allowed; opacity: .55; }.gantt-preview { width: min(100%, 760px); margin: 0; text-align: center; }.gantt-preview img { display: block; width: 100%; max-height: 410px; object-fit: contain; border: 1px solid rgba(84, 211, 255, .5); border-radius: 12px; background: #fff; cursor: zoom-in; }.gantt-preview figcaption { margin-top: 8px; color: #a8dce9; font-size: var(--student-fs-body-sm); }.gantt-guide { margin-top: 26px; padding: 18px 22px; border-left: 3px solid #23c4ff; border-radius: 0 14px 14px 0; color: #d4edf6; background: rgba(12, 75, 104, .22); }.gantt-guide h4 { margin: 0 0 14px; color: #fff; }.gantt-guide ol { margin: 0; padding-left: 20px; }.gantt-guide li { margin: 11px 0; line-height: 1.7; }.gantt-guide button { margin-left: 12px; border: 0; border-radius: 6px; padding: 5px 10px; color: #fff; background: #109ed4; cursor: pointer; }
.process-reflection { display: grid; gap: 28px; }.reflection-field { display: grid; gap: 12px; color: #d8edf4; font-size: var(--student-fs-h2); line-height: 1.7; }.reflection-field span { color: #f1fbff; font-weight: 600; }.reflection-field textarea { min-height: 190px; resize: vertical; padding: 14px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 14px; color: #eef5ff; background: #0f1a24; font: inherit; line-height: 1.7; }.reflection-field textarea:focus { outline: 0; border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); }.reflection-field textarea:disabled { cursor: not-allowed; opacity: .55; }.reflection-question { color: #f1fbff; font-size: var(--student-fs-h2); font-weight: 600; line-height: 1.8; }.scenario-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }.scenario-grid .reflection-field textarea { min-height: 180px; }.process-reflection.disabled { opacity: .72; }
@media (max-width: 1100px) { .product-process { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .product-process { padding: 14px 14px 18px; }.process-core { padding: 18px; border-radius: 24px; }.workbench-head, .workbench-actions, .task-actions, .step-indicator, .step-title-row { flex-direction: column; align-items: stretch; }.workbench-actions :deep(.material-download), .outline-action { width: 100%; }.step-indicator { width: 100%; margin: 0 0 32px; padding: 16px; overflow-x: visible; border-radius: 20px; }.step-tab { flex: 0 0 auto; width: 100%; min-width: 0; }.step-connector { flex: 0 0 20px; align-self: flex-start; width: 2px; min-width: 0; height: 20px; margin: 4px 0 4px 18px; }.step-connector::after { top: auto; right: auto; bottom: -1px; left: 50%; transform: translateX(-50%) rotate(135deg); }.step-chip { display: none; }.scenario-grid { grid-template-columns: 1fr; gap: 18px; }.task-actions { gap: 14px; }.btn-nav { width: 100%; } }

@ -91,7 +91,7 @@ const schoolAdminLinks = [
.quick-card h2 {
margin: 10px 0 8px;
color: #f7fbff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 700;
}
.quick-card p {
@ -105,7 +105,7 @@ const schoolAdminLinks = [
padding: 4px 10px;
border-radius: 999px;
color: #76dcff;
font-size: 12px;
font-size: var(--student-fs-caption);
background: rgba(73, 178, 255, 0.12);
border: 1px solid rgba(73, 178, 255, 0.26);
}

@ -680,9 +680,9 @@ const height=computed(()=>{
background: red;
}
.reportPromptFile {
font-size: 12px;
font-size: var(--student-fs-caption);
line-height: 7px;
font-family: "微软雅黑";
font-family: var(--student-font-base);
font-weight: 300;
}
.upload-item {

@ -444,8 +444,8 @@ import { onMounted } from "vue";
p {
width: 210px;
height: 14px;
font-size: 14px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: 400;
color: #333333;
}
@ -456,12 +456,12 @@ import { onMounted } from "vue";
width: 100%;
display: flex;
font-weight: bold;
font-size: 14px;
font-size: var(--student-fs-body);
align-items: center;
.eval_main_right {
margin-left: 23px;
span {
font-size: 14px;
font-size: var(--student-fs-body);
color: #00b4f2;
}
// &::before{
@ -505,8 +505,8 @@ import { onMounted } from "vue";
background-color: #00b4f2;
color: white;
border-radius: 50%;
font-size: 13px;
font-size: 15px;
font-size: var(--student-fs-body-sm);
font-size: var(--student-fs-body);
font-weight: 100;
margin-left: 35px;
}

@ -110,8 +110,8 @@ onMounted(() => {
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-caption);
font-family: var(--student-font-base);
font-weight: 550;
// color: #333333;
padding: 7px;
@ -137,8 +137,8 @@ onMounted(() => {
}
.el-col {
border-radius: 4px;
font-size: 14px;
font-family: Source Han Sans CN;
font-size: var(--student-fs-body);
font-family: var(--student-font-base);
font-weight: 500;
}

@ -146,7 +146,7 @@ getCookie();
margin: 0px auto 30px auto;
text-align: center;
color: rgb(48, 50, 52);
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 500;
}
.login-main {
@ -207,7 +207,7 @@ getCookie();
}
}
.login-tip {
font-size: 13px;
font-size: var(--student-fs-body-sm);
text-align: center;
color: #bfbfbf;
}
@ -228,8 +228,8 @@ getCookie();
width: 100%;
text-align: center;
color: #fff;
font-family: Arial;
font-size: 12px;
font-family: var(--student-font-base);
font-size: var(--student-fs-caption);
letter-spacing: 1px;
}
.login-code-img {

@ -1220,7 +1220,7 @@ const submitTimeCount = () => {
}
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1277,7 +1277,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1291,7 +1291,7 @@ const submitTimeCount = () => {
color: #000;
line-height: 31px;
text-align: center;
font-size: 14px;
font-size: var(--student-fs-button);
padding-left: 10px;
margin-left: 20px;
}
@ -1300,7 +1300,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1316,7 +1316,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -1371,7 +1371,7 @@ const submitTimeCount = () => {
height: 30px;
background: #003b75;
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -1383,7 +1383,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysis {
@ -1392,14 +1392,14 @@ const submitTimeCount = () => {
background: #005b55;
border-radius: 10px;
margin-top: 20px;
font-size: 14px;
font-size: var(--student-fs-body);
padding-left: 20px;
padding-top: 12px;
.conclusion {
// display: block;
margin-bottom: 10px;
font-size: 16px;
font-size: var(--student-fs-h2);
}
}
.generateBtn {
@ -1409,7 +1409,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysisConclusion {
@ -1419,7 +1419,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
// cursor: pointer;
margin-left: 20px;
padding-left: 10px;

@ -1285,7 +1285,7 @@ const submitTimeCount = () => {
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1315,7 +1315,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1327,7 +1327,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1344,7 +1344,7 @@ const submitTimeCount = () => {
background: rgba(1, 14, 26, 0.72);
border-radius: 10px;
// border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;

@ -1185,7 +1185,7 @@ const submitTimeCount = () => {
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1215,7 +1215,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1227,7 +1227,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1244,7 +1244,7 @@ const submitTimeCount = () => {
background: rgba(1, 14, 26, 0.72);
border-radius: 10px;
// border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -1293,7 +1293,7 @@ const submitTimeCount = () => {
// background: #003b75;
background: rgba(2, 20, 31, 0.82);
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}

@ -1936,7 +1936,7 @@ const submitTimeCount = () => {
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1967,7 +1967,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1979,7 +1979,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1996,7 +1996,7 @@ const submitTimeCount = () => {
background: #fff8ee;
border-radius: 10px;
// border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -2018,11 +2018,11 @@ const submitTimeCount = () => {
border: 1px solid #67b3d6;
text-align: center;
line-height: 19px;
font-size: 12px;
font-size: var(--student-fs-caption);
cursor: pointer;
}
span {
font-size: 12px;
font-size: var(--student-fs-caption);
color: #6e70f0;
margin-left: 10px;
}

@ -1231,7 +1231,7 @@ const submitTimeCount = () => {
background: #fff;
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1262,7 +1262,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1274,7 +1274,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1290,7 +1290,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;

@ -1282,7 +1282,7 @@ const submitTimeCount = () => {
}
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1316,7 +1316,7 @@ const submitTimeCount = () => {
height: 28px;
line-height: 28px;
text-align: center;
font-size: 14px;
font-size: var(--student-fs-body);
// border-right: 1px solid #338554;
border-right: 1px solid #f7b55f;
}
@ -1361,7 +1361,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1375,7 +1375,7 @@ const submitTimeCount = () => {
color: #000;
line-height: 31px;
text-align: center;
font-size: 14px;
font-size: var(--student-fs-button);
padding-left: 10px;
margin-left: 20px;
}
@ -1384,7 +1384,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1400,7 +1400,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -1425,7 +1425,7 @@ const submitTimeCount = () => {
background-image: url("@/assets/images/feature1.png");
line-height: 33px;
text-align: center;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
margin-left: 40px;
}
@ -1437,7 +1437,7 @@ const submitTimeCount = () => {
height: 46px;
// line-height: 46px;
text-align: center;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
}
.feature3 {
@ -1449,7 +1449,7 @@ const submitTimeCount = () => {
height: 33px;
// line-height: 46px;
text-align: center;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
}
.feature4 {
@ -1461,7 +1461,7 @@ const submitTimeCount = () => {
height: 39px;
// line-height: 46px;
text-align: center;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
}
.iconBg {
@ -1473,7 +1473,7 @@ const submitTimeCount = () => {
height: 23px;
// line-height: 46px;
text-align: center;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
color: #333333;
}
@ -1519,7 +1519,7 @@ const submitTimeCount = () => {
height: 30px;
background: #003b75;
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -1531,7 +1531,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysis {
@ -1540,14 +1540,14 @@ const submitTimeCount = () => {
background: #005b55;
border-radius: 10px;
margin-top: 20px;
font-size: 14px;
font-size: var(--student-fs-body);
padding-left: 20px;
padding-top: 12px;
.conclusion {
// display: block;
margin-bottom: 10px;
font-size: 16px;
font-size: var(--student-fs-h2);
}
}
.generateBtn {
@ -1557,7 +1557,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysisConclusion {
@ -1567,7 +1567,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
// cursor: pointer;
margin-left: 20px;
padding-left: 10px;

@ -385,7 +385,7 @@
<img src="@/assets/images/icon01.png" alt="" />
<span>定期追指标</span>
</div>
<p style="line-height: 25px; font-size: 14px; margin-left: 30px">用户太久不来消费就可能流失因此衍生了一个做法计算用户最近一次消费距今时间如果发现用户已经距今7天/30/60/90天没有复购则直接开展唤醒动作发放优惠券</p>
<p style="line-height: 25px; font-size: var(--student-fs-button); margin-left: 30px">用户太久不来消费就可能流失因此衍生了一个做法计算用户最近一次消费距今时间如果发现用户已经距今7天/30/60/90天没有复购则直接开展唤醒动作发放优惠券</p>
<!-- <span style="line-height: 25px; font-size: 14px">
从商品的角度出发看一个商品的综合价值可以使用四象限图波士顿矩阵来查看商品价值分析销量和复购率分别作为横纵轴以平均值为分割线将所有商品类型划分到四个象限内<br />
对于新兴产品需要着重拓展市场<br />
@ -400,7 +400,7 @@
<img src="@/assets/images/icon1-2.png" alt="" />
<span>找魔法数字</span>
</div>
<p style="line-height: 25px; font-size: 14px; margin-left: 30px">
<p style="line-height: 25px; font-size: var(--student-fs-button); margin-left: 30px">
忠诚用户的复购频率会比普通用户高这个道理也是不用分析是个人都知道于是有一些数据分析师/运营会去找这个魔法数字用户复购X次以后累计消费与复购率明显高于其他用户如下图
<br />
比如发现用户复购4次以后再进行复购的概率与累计消费都明显高于其他用户运营便很有动力围绕这个4做文章通过会员奖励/连续推券/积分等手段鼓励用户做到这个4次复购
@ -413,7 +413,7 @@
<img src="@/assets/images/icon1-3.png" alt="" />
<span>发现偏好</span>
</div>
<p style="line-height: 25px; font-size: 14px; margin-left: 30px">
<p style="line-height: 25px; font-size: var(--student-fs-button); margin-left: 30px">
在统计用户消费频次/金额的时候不要只粗暴地看总量而是按品牌/品类比例进行区分尝试找到集中某一品牌/某一品类的忠实用户如果发现有这一类相对专一的用户存在
<br />
再结合其消费金额/参与活动情况判断用户是被打折价格吸引还是被商品吸引从而找出运营策略
@ -426,7 +426,7 @@
<img src="@/assets/images/icon1-4.png" alt="" />
<span>记录场景</span>
</div>
<p style="line-height: 25px; font-size: 14px; margin-left: 30px">
<p style="line-height: 25px; font-size: var(--student-fs-button); margin-left: 30px">
低频消费的用户不代表一定没有复购很有可能只是没有触发需求场景而已比如典型的
<br />
1喜爱参与大促的用户
@ -2294,7 +2294,7 @@ const submitTimeCount = () => {
}
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -2325,7 +2325,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -2337,7 +2337,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -2353,7 +2353,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -2408,7 +2408,7 @@ const submitTimeCount = () => {
height: 30px;
background: #003b75;
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -2419,7 +2419,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.generateBtn {
@ -2429,7 +2429,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
}

@ -1815,7 +1815,7 @@ const submitTimeCount = () => {
}
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1846,7 +1846,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1858,7 +1858,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1874,7 +1874,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -1929,7 +1929,7 @@ const submitTimeCount = () => {
height: 30px;
background: #003b75;
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -1940,7 +1940,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysis {
@ -1952,14 +1952,14 @@ const submitTimeCount = () => {
color: #305fcb;
border-radius: 10px;
margin-top: 20px;
font-size: 14px;
font-size: var(--student-fs-body);
padding-left: 20px;
padding-top: 12px;
.conclusion {
// display: block;
margin-bottom: 10px;
font-size: 16px;
font-size: var(--student-fs-h2);
}
}
.generateBtn {
@ -1969,7 +1969,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
}

@ -1589,7 +1589,7 @@ const submitTimeCount = () => {
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -1619,7 +1619,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -1631,7 +1631,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -1648,7 +1648,7 @@ const submitTimeCount = () => {
background: #fff8ee;
border-radius: 10px;
// border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;

@ -1992,7 +1992,7 @@ const submitTimeCount = () => {
}
.import {
display: flex;
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: bold;
width: 150px;
height: 50px;
@ -2023,7 +2023,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 89px;
@ -2035,7 +2035,7 @@ const submitTimeCount = () => {
margin-left: 20px;
color: #000;
padding-left: 10px;
font-size: 14px;
font-size: var(--student-fs-button);
text-align: center;
line-height: 31px;
width: 99px;
@ -2051,7 +2051,7 @@ const submitTimeCount = () => {
background: #003b75;
border-radius: 10px;
border: 1px solid #0052a3;
font-size: 12px;
font-size: var(--student-fs-caption);
margin-top: 10px;
img {
margin-right: 10px;
@ -2106,7 +2106,7 @@ const submitTimeCount = () => {
height: 30px;
background: #003b75;
border-bottom: 1px solid #7190d4;
font-size: 14px;
font-size: var(--student-fs-body);
}
}
}
@ -2117,7 +2117,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysis {
@ -2126,14 +2126,14 @@ const submitTimeCount = () => {
background: #005b55;
border-radius: 10px;
margin-top: 20px;
font-size: 14px;
font-size: var(--student-fs-body);
padding-left: 20px;
padding-top: 12px;
.conclusion {
// display: block;
margin-bottom: 10px;
font-size: 16px;
font-size: var(--student-fs-h2);
}
}
.generateBtn {
@ -2143,7 +2143,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
cursor: pointer;
}
.analysisConclusion {
@ -2153,7 +2153,7 @@ const submitTimeCount = () => {
text-align: center;
line-height: 31px;
color: #000;
font-size: 14px;
font-size: var(--student-fs-button);
// cursor: pointer;
margin-left: 20px;
padding-left: 10px;

@ -294,7 +294,7 @@ const retrain = () => {
}
.tabs {
cursor: pointer;
font-size: 13px;
font-size: var(--student-fs-body-sm);
margin-right: 9px;
margin-bottom: 20px;
width: 159px;
@ -397,7 +397,7 @@ const retrain = () => {
height: 31px;
background-image: url("@/assets/images/submit.png");
color: #080138;
font-size: 14px;
font-size: var(--student-fs-button);
line-height: 31px;
padding-left: 30px;
cursor: pointer;
@ -407,7 +407,7 @@ const retrain = () => {
height: 31px;
background-image: url("@/assets/images/retrain.png");
color: #080138;
font-size: 14px;
font-size: var(--student-fs-button);
line-height: 31px;
padding-left: 30px;
margin-left: 20px;
@ -425,7 +425,7 @@ const retrain = () => {
padding-left: 10px;
display: flex;
align-items: center;
font-size: 18px;
font-size: var(--student-fs-h1);
color: #3596eb;
font-weight: bold;
height: 50px;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -25,7 +25,7 @@ function onSuccess(response) {
<style scoped lang="scss">
.upload-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.upload-row :deep(.upload-action) { min-height: 40px; padding: 0 18px; border: 1px solid rgba(92, 224, 255, .7); border-radius: 999px; color: #fff; background: linear-gradient(95deg, #0b84bd, #096491); font-size: 14px; font-weight: 800; }
.upload-row :deep(.upload-action) { min-height: 40px; padding: 0 18px; border: 1px solid rgba(92, 224, 255, .7); border-radius: 999px; color: #fff; background: linear-gradient(95deg, #0b84bd, #096491); font-size: var(--student-fs-button); font-weight: 800; }
.upload-row :deep(.upload-action:hover), .upload-row :deep(.upload-action:focus-visible) { border-color: #78edff; color: #fff; background: linear-gradient(95deg, #1298d5, #0a719f); outline: none; }
.preview-list { display: flex; flex-wrap: wrap; gap: 8px; }
.preview-list :deep(.el-image) { width: 50px; height: 50px; overflow: hidden; border: 1px solid rgba(0, 180, 255, .22); border-radius: 10px; background: #0f1a24; }

@ -674,7 +674,7 @@ async function handleValueCanvasUpload(event) {
border-radius: 999px;
color: #dff5ff;
background: rgba(17, 126, 178, 0.36);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
line-height: 1.4;
}
@ -682,7 +682,7 @@ async function handleValueCanvasUpload(event) {
.task-title {
margin: 12px 0 0;
color: #ffffff;
font-size: 30px;
font-size: var(--student-fs-display);
font-weight: 900;
line-height: 1.3;
}
@ -712,7 +712,7 @@ async function handleValueCanvasUpload(event) {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
letter-spacing: 0.02em;
@ -721,7 +721,7 @@ async function handleValueCanvasUpload(event) {
.workbench-head h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -730,7 +730,7 @@ async function handleValueCanvasUpload(event) {
.step-desc {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -756,7 +756,7 @@ async function handleValueCanvasUpload(event) {
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
cursor: pointer;
}
@ -803,7 +803,7 @@ async function handleValueCanvasUpload(event) {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: left;
cursor: pointer;
@ -846,7 +846,7 @@ async function handleValueCanvasUpload(event) {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -863,7 +863,7 @@ async function handleValueCanvasUpload(event) {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -873,7 +873,7 @@ async function handleValueCanvasUpload(event) {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -938,7 +938,7 @@ async function handleValueCanvasUpload(event) {
.step-title-row h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -956,7 +956,7 @@ async function handleValueCanvasUpload(event) {
display: block;
margin-bottom: 8px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.6;
}
@ -972,7 +972,7 @@ async function handleValueCanvasUpload(event) {
background: #0f1a24;
box-sizing: border-box;
font: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
resize: vertical;
}
@ -1001,7 +1001,7 @@ async function handleValueCanvasUpload(event) {
p {
margin: 0;
color: #cae7f2;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1027,7 +1027,7 @@ async function handleValueCanvasUpload(event) {
padding: 11px 10px;
color: #f5fcff;
background: linear-gradient(100deg, #0787bd, #075276);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
}
@ -1064,7 +1064,7 @@ async function handleValueCanvasUpload(event) {
background: rgba(4, 24, 38, 0.72);
box-sizing: border-box;
font: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.55;
resize: vertical;
@ -1078,7 +1078,7 @@ async function handleValueCanvasUpload(event) {
.core-pain-validation-message {
margin: 12px 0 0;
color: #ffab9d;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
}
@ -1089,7 +1089,7 @@ async function handleValueCanvasUpload(event) {
border-radius: 14px;
color: #c9e9f5;
background: rgba(4, 48, 71, 0.28);
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1101,7 +1101,7 @@ async function handleValueCanvasUpload(event) {
margin: 18px 0 10px;
h4 { margin: 0; color: #ffffff; font-size: 17px; }
small { margin-left: 6px; color: #8dc8df; font-size: 12px; font-weight: 600; }
small { margin-left: 6px; color: #8dc8df; font-size: var(--student-fs-caption); font-weight: 600; }
}
.canvas-section-heading--spaced { margin-top: 28px; }
@ -1123,9 +1123,9 @@ async function handleValueCanvasUpload(event) {
transition: .2s ease;
}
.canvas-export-button { min-width: 92px; height: 34px; padding: 0 14px; font-size: 13px; }
.template-download-button { min-width: 116px; height: 36px; padding: 0 14px; font-size: 13px; }
.canvas-upload-trigger { min-width: 218px; min-height: 54px; padding: 0 22px; font-size: 15px; }
.canvas-export-button { min-width: 92px; height: 34px; padding: 0 14px; font-size: var(--student-fs-body-sm); }
.template-download-button { min-width: 116px; height: 36px; padding: 0 14px; font-size: var(--student-fs-body-sm); }
.canvas-upload-trigger { min-width: 218px; min-height: 54px; padding: 0 22px; font-size: var(--student-fs-body); }
.canvas-export-button:hover,
.template-download-button:hover,
@ -1147,12 +1147,12 @@ async function handleValueCanvasUpload(event) {
th,
td { border: 1px solid rgba(77, 167, 220, 0.3); }
th { padding: 10px; color: #f6fdff; background: linear-gradient(100deg, #0787bd, #075276); font-size: 14px; font-weight: 800; }
td { padding: 10px; color: #d7f1ff; background: rgba(1, 14, 26, 0.48); font-size: 13px; line-height: 1.65; vertical-align: middle; }
th { padding: 10px; color: #f6fdff; background: linear-gradient(100deg, #0787bd, #075276); font-size: var(--student-fs-body); font-weight: 800; }
td { padding: 10px; color: #d7f1ff; background: rgba(1, 14, 26, 0.48); font-size: var(--student-fs-body-sm); line-height: 1.65; vertical-align: middle; }
th:nth-child(1), td:nth-child(1) { width: 19%; color: #c8edfa; font-weight: 800; text-align: center; }
th:nth-child(2), td:nth-child(2) { width: 24%; color: #9fc4d4; }
textarea {
display: block; width: 100%; min-height: 72px; padding: 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 9px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: 13px; line-height: 1.55; resize: vertical;
display: block; width: 100%; min-height: 72px; padding: 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 9px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: var(--student-fs-body-sm); line-height: 1.55; resize: vertical;
&:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); outline: none; }
}
}
@ -1166,7 +1166,7 @@ async function handleValueCanvasUpload(event) {
text-align: center;
h4 { margin: 0; color: #ffffff; font-size: 17px; text-align: left; }
p { margin: 9px 0 18px; color: #bfdeeb; font-size: 13px; line-height: 1.75; text-align: left; }
p { margin: 9px 0 18px; color: #bfdeeb; font-size: var(--student-fs-body-sm); line-height: 1.75; text-align: left; }
}
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; clip-path: inset(50%); }
@ -1181,11 +1181,11 @@ async function handleValueCanvasUpload(event) {
:deep(.el-image) { width: 116px; height: 76px; border: 1px solid rgba(92, 224, 255, .66); border-radius: 10px; cursor: zoom-in; }
div { display: grid; gap: 5px; }
strong { color: #eefcff; font-size: 14px; }
span { color: #8fb9c9; font-size: 12px; }
strong { color: #eefcff; font-size: var(--student-fs-body); }
span { color: #8fb9c9; font-size: var(--student-fs-caption); }
}
.text-button { width: fit-content; padding: 0; border: 0; color: #77e4ff; background: transparent; cursor: pointer; font: inherit; font-size: 12px; text-decoration: underline; }
.text-button { width: fit-content; padding: 0; border: 0; color: #77e4ff; background: transparent; cursor: pointer; font: inherit; font-size: var(--student-fs-caption); text-decoration: underline; }
.canvas-guidance {
position: relative;
@ -1195,7 +1195,7 @@ async function handleValueCanvasUpload(event) {
border-radius: 0 12px 12px 0;
background: rgba(3, 43, 65, .24);
p { margin: 0; color: #bedce8; font-size: 13px; line-height: 1.75; }
p { margin: 0; color: #bedce8; font-size: var(--student-fs-body-sm); line-height: 1.75; }
p + p { margin-top: 4px; }
.template-download-button { position: absolute; top: 44px; left: 18px; }
}
@ -1207,7 +1207,7 @@ async function handleValueCanvasUpload(event) {
border-radius: 0 14px 14px 0;
background: linear-gradient(90deg, rgba(7, 92, 132, .28), rgba(5, 34, 51, .12));
p { margin: 0; color: #c9e7f3; font-size: 14px; line-height: 1.8; }
p { margin: 0; color: #c9e7f3; font-size: var(--student-fs-body); line-height: 1.8; }
p + p { margin-top: 5px; color: #a9ccda; }
}
@ -1228,8 +1228,8 @@ async function handleValueCanvasUpload(event) {
background: rgba(4, 86, 125, .35);
}
header span { color: #f2fdff; font-size: 16px; font-weight: 900; }
header small { color: #8ecadd; font-size: 12px; }
header span { color: #f2fdff; font-size: var(--student-fs-h2); font-weight: 900; }
header small { color: #8ecadd; font-size: var(--student-fs-caption); }
}
.statement-preview {
@ -1237,7 +1237,7 @@ async function handleValueCanvasUpload(event) {
padding: 15px 16px;
color: #afd2df;
background: rgba(0, 16, 29, .36);
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.85;
strong { color: #64daf8; font-weight: 800; }
@ -1250,10 +1250,10 @@ async function handleValueCanvasUpload(event) {
padding: 16px;
label { display: grid; gap: 6px; min-width: 0; }
label span { color: #d8f2fb; font-size: 12px; font-weight: 800; }
label span { color: #d8f2fb; font-size: var(--student-fs-caption); font-weight: 800; }
input,
textarea {
width: 100%; padding: 10px 11px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 9px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: 13px; line-height: 1.55;
width: 100%; padding: 10px 11px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 9px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: var(--student-fs-body-sm); line-height: 1.55;
&:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); outline: none; }
}
textarea { min-height: 66px; resize: vertical; }
@ -1268,13 +1268,13 @@ async function handleValueCanvasUpload(event) {
border-radius: 14px;
color: #c9e6f1;
background: linear-gradient(100deg, rgba(5, 78, 112, .28), rgba(3, 26, 42, .18));
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.85;
}
.mrd-section { margin-top: 24px; }
.mrd-section h4,
.mrd-positioning-section h4 { margin: 0 0 10px; color: #ffffff; font-size: 16px; font-weight: 900; }
.mrd-positioning-section h4 { margin: 0 0 10px; color: #ffffff; font-size: var(--student-fs-h2); font-weight: 900; }
.mrd-table-wrap { overflow-x: auto; }
.mrd-table {
@ -1284,14 +1284,14 @@ async function handleValueCanvasUpload(event) {
table-layout: fixed;
th, td { border: 1px solid rgba(77, 167, 220, .3); }
th { padding: 9px; color: #f5fcff; background: linear-gradient(100deg, #0787bd, #075276); font-size: 13px; font-weight: 800; }
td { min-height: 42px; padding: 7px; color: #d5edf7; background: rgba(1, 14, 26, .48); font-size: 13px; text-align: center; vertical-align: middle; }
th { padding: 9px; color: #f5fcff; background: linear-gradient(100deg, #0787bd, #075276); font-size: var(--student-fs-body-sm); font-weight: 800; }
td { min-height: 42px; padding: 7px; color: #d5edf7; background: rgba(1, 14, 26, .48); font-size: var(--student-fs-body-sm); text-align: center; vertical-align: middle; }
th:nth-child(1), td:nth-child(1) { width: 8%; }
th:nth-child(2), td:nth-child(2) { width: 17%; }
.mrd-row-title { color: #bbebf6; font-weight: 800; }
.mrd-module { color: #a6d7e6; }
textarea {
display: block; width: 100%; min-height: 50px; padding: 8px 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 8px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: 13px; line-height: 1.55; resize: vertical;
display: block; width: 100%; min-height: 50px; padding: 8px 10px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 8px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: var(--student-fs-body-sm); line-height: 1.55; resize: vertical;
&:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); outline: none; }
}
}
@ -1304,7 +1304,7 @@ async function handleValueCanvasUpload(event) {
background: rgba(1, 31, 48, .35);
textarea {
display: block; width: 100%; min-height: 120px; padding: 12px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 10px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: 14px; line-height: 1.65; resize: vertical;
display: block; width: 100%; min-height: 120px; padding: 12px; border: 1px solid rgba(45, 95, 126, .95); border-radius: 10px; color: #eef5ff; background: rgba(4, 24, 38, .72); box-sizing: border-box; font: inherit; font-size: var(--student-fs-body); line-height: 1.65; resize: vertical;
&:focus { border-color: rgba(92, 224, 255, .7); box-shadow: 0 0 0 3px rgba(0, 174, 255, .13); outline: none; }
}
}
@ -1315,7 +1315,7 @@ async function handleValueCanvasUpload(event) {
border-left: 3px solid #4fdbf5;
border-radius: 0 12px 12px 0;
background: rgba(3, 46, 67, .26);
p { margin: 0; color: #bfdeea; font-size: 13px; line-height: 1.75; }
p { margin: 0; color: #bfdeea; font-size: var(--student-fs-body-sm); line-height: 1.75; }
p + p { margin-top: 4px; }
}
@ -1355,7 +1355,7 @@ async function handleValueCanvasUpload(event) {
border-radius: 6px;
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
}

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
<template>
<template>
<div class="market-selection-page student-training-shell">
<main class="training-core">
<section class="task-header">
@ -527,7 +527,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -537,7 +537,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -556,7 +556,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -595,7 +595,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px;
font-size: var(--student-fs-h1);
font-weight: 800;
line-height: 1.3;
}
@ -613,7 +613,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -621,7 +621,7 @@ function exportOutcome() {
.workbench-description {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -636,7 +636,7 @@ function exportOutcome() {
border-radius: 999px;
color: #e9fbff;
background: rgba(17, 126, 178, 0.36);
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
&:hover:not(.is-disabled) {
@ -676,7 +676,7 @@ function exportOutcome() {
background: rgba(3, 27, 43, 0.52);
box-shadow: inset 0 1px 0 rgba(135, 221, 255, 0.04);
font-family: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
cursor: pointer;
text-align: left;
@ -737,7 +737,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -754,7 +754,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -764,7 +764,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -815,7 +815,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -824,7 +824,7 @@ function exportOutcome() {
.task-desc {
margin: 0 0 20px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -835,7 +835,7 @@ function exportOutcome() {
.table-title {
margin-bottom: 12px;
color: #dff5ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
text-align: left;
}
@ -896,7 +896,7 @@ function exportOutcome() {
resize: vertical;
color: #eef5ff;
background: #0f1a24;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.65;
transition: background 0.16s ease, box-shadow 0.16s ease;
@ -959,7 +959,7 @@ function exportOutcome() {
th {
color: #eaffff;
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 900;
text-align: center;
}
@ -980,7 +980,7 @@ function exportOutcome() {
margin-top: 18px;
margin-bottom: 14px;
color: #dff5ff;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
> span {
@ -998,7 +998,7 @@ function exportOutcome() {
color: #eef5ff;
background: #0f1a24;
font-family: inherit;
font-size: 13px;
font-size: var(--student-fs-body-sm);
outline: none;
transition: 0.2s;
@ -1054,7 +1054,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -1094,7 +1094,7 @@ function exportOutcome() {
min-height: 40px;
padding: 0 18px;
border-radius: 999px;
font-size: 14px;
font-size: var(--student-fs-button);
font-weight: 800;
}

File diff suppressed because one or more lines are too long

@ -1000,14 +1000,14 @@ onMounted(async () => {
.task-kicker,
.section-eyebrow {
color: #66d9fb;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
letter-spacing: 0.16em;
}
h1 {
margin-top: 6px;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.25;
}
}
@ -1052,7 +1052,7 @@ onMounted(async () => {
height: 20px;
place-items: center;
color: #7de2ff;
font-size: 11px;
font-size: var(--student-fs-caption);
font-weight: 700;
background: rgba(117, 226, 255, 0.18);
border-radius: 50%;
@ -1060,7 +1060,7 @@ onMounted(async () => {
i {
color: #55d3f8;
font-size: 18px;
font-size: var(--student-fs-h1);
font-style: normal;
}
}
@ -1075,7 +1075,7 @@ onMounted(async () => {
h2 {
margin: 4px 0 0;
font-size: 24px;
font-size: var(--student-fs-h1);
}
}
@ -1104,7 +1104,7 @@ onMounted(async () => {
p {
margin: 0 0 4px;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 700;
}
@ -1148,7 +1148,7 @@ onMounted(async () => {
th {
color: #ddf8ff;
font-size: 14px;
font-size: var(--student-fs-body);
background: rgba(25, 122, 157, 0.46);
}
@ -1179,7 +1179,7 @@ onMounted(async () => {
height: 22px;
place-items: center;
color: #7de2ff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
background: rgba(117, 226, 255, 0.18);
border-radius: 50%;
@ -1187,7 +1187,7 @@ onMounted(async () => {
h3 {
margin: 0;
font-size: 16px;
font-size: var(--student-fs-h2);
}
}
@ -1230,7 +1230,7 @@ onMounted(async () => {
display: block;
margin-top: 6px;
color: var(--muted);
font-size: 12px;
font-size: var(--student-fs-caption);
}
.sale-price-cell {
@ -1241,7 +1241,7 @@ onMounted(async () => {
.empty-price {
color: #7998a3;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 400;
}
@ -1264,7 +1264,7 @@ onMounted(async () => {
p {
margin: 0;
color: var(--muted);
font-size: 13px;
font-size: var(--student-fs-body-sm);
line-height: 1.65;
}
}

@ -513,15 +513,15 @@ function exportOutcome() { if (currentStep.value === 2) { exportStepTwoTable();
<style scoped>
.requirements-doc-page { min-height: 100vh; color: #dcebf8; background: radial-gradient(circle at 15% -10%, rgba(23, 134, 205, .22), transparent 36%), #071521; }
.training-core { width: min(1480px, calc(100% - 48px)); margin: 0 auto; padding: 30px 0 60px; }
.task-header { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }.task-badge, .step-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border: 1px solid rgba(68, 203, 255, .42); border-radius: 999px; color: #8ee7ff; background: rgba(6, 86, 129, .28); font-size: 13px; }.task-title { margin: 0; color: #f1f8ff; font-size: 26px; letter-spacing: .02em; }
.task-card { padding: 26px; border: 1px solid rgba(66, 181, 237, .42); border-radius: 24px; background: rgba(4, 24, 39, .78); box-shadow: 0 18px 42px rgba(0, 0, 0, .2); }.workbench-head, .step-title-row, .purpose-bank__head, .task-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.workbench-head h2, .step-title-row h3, .purpose-bank h4 { margin: 4px 0 0; color: #f2f9ff; }.section-eyebrow { margin: 0; color: #55d8ff; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.task-header { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }.task-badge, .step-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border: 1px solid rgba(68, 203, 255, .42); border-radius: 999px; color: #8ee7ff; background: rgba(6, 86, 129, .28); font-size: var(--student-fs-body-sm); }.task-title { margin: 0; color: #f1f8ff; font-size: var(--student-fs-h1); letter-spacing: .02em; }
.task-card { padding: 26px; border: 1px solid rgba(66, 181, 237, .42); border-radius: 24px; background: rgba(4, 24, 39, .78); box-shadow: 0 18px 42px rgba(0, 0, 0, .2); }.workbench-head, .step-title-row, .purpose-bank__head, .task-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.workbench-head h2, .step-title-row h3, .purpose-bank h4 { margin: 4px 0 0; color: #f2f9ff; }.section-eyebrow { margin: 0; color: #55d8ff; font-size: var(--student-fs-caption); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.workbench-actions, .task-actions { display: flex; flex-wrap: wrap; }.outline-action, .btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 0 15px; border: 1px solid rgba(98, 208, 255, .48); border-radius: 9px; color: #dff6ff; background: rgba(10, 87, 126, .35); cursor: pointer; transition: .2s ease; }.outline-action:hover, .btn-nav:hover:not(:disabled) { border-color: #56dcff; background: rgba(18, 137, 190, .48); transform: translateY(-1px); }.btn-submit { border-color: #26c9ed; color: #fff; background: linear-gradient(135deg, #087baa, #18b7df); }.btn-primary { border-color: #8a72ff; background: linear-gradient(135deg, #5a4fc9, #8c6ef1); }.btn-nav:disabled { cursor: not-allowed; opacity: .48; }
.step-indicator { display: flex; align-items: stretch; margin: 26px 0; padding: 10px; overflow-x: auto; border: 1px solid rgba(58, 170, 220, .35); border-radius: 18px; background: rgba(0, 15, 28, .45); }.step-tab { display: flex; min-width: 185px; flex: 1; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 12px; color: #8baabd; background: transparent; text-align: left; cursor: pointer; }.step-tab.active { color: #fff; background: linear-gradient(90deg, #087eb3, #12a7d5); box-shadow: inset 0 0 0 1px rgba(157, 239, 255, .55); }.step-tab.complete .step-marker { border-color: #53f1d5; color: #53f1d5; }.step-marker { display: inline-grid; width: 33px; height: 33px; flex: 0 0 33px; place-items: center; border: 1px solid #4c91b5; border-radius: 50%; font-weight: 700; }.step-copy { display: grid; gap: 3px; }.step-copy small { font-size: 11px; }.step-connector { width: 22px; min-width: 22px; align-self: center; height: 1px; background: #287596; }
.step-card { padding: 25px; border: 1px solid rgba(50, 162, 208, .42); border-radius: 18px; background: rgba(2, 18, 30, .58); }.step-desc { margin: 18px 0; color: #c0d2df; line-height: 1.8; }.matching-tip, .prd-note { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 20px; padding: 10px 13px; border-left: 3px solid #2ed4f0; border-radius: 5px; color: #a9ddeb; background: rgba(28, 122, 157, .15); font-size: 14px; line-height: 1.65; }
.matching-workspace { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(350px, .78fr); gap: 24px; align-items: start; }.module-list { display: grid; gap: 10px; }.module-row { display: grid; grid-template-columns: minmax(185px, .31fr) minmax(0, .69fr); min-height: 84px; overflow: hidden; border: 1px solid rgba(124, 166, 189, .45); border-radius: 10px; background: rgba(11, 39, 56, .48); transition: .18s ease; cursor: pointer; }.module-row--over { border-color: #48e3ff; box-shadow: 0 0 0 3px rgba(55, 215, 248, .16); }.module-row--filled { border-color: rgba(74, 220, 182, .56); }.module-label { display: flex; align-items: center; gap: 12px; padding: 16px; border-right: 1px solid rgba(124, 166, 189, .35); color: #eef9ff; background: rgba(13, 81, 113, .28); }.module-label span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: #7ee6ff; background: rgba(11, 172, 214, .16); font-size: 12px; }.module-drop-zone { display: flex; align-items: center; padding: 10px 12px; }.drop-placeholder { color: #7696a8; font-size: 14px; }
.purpose-bank { position: sticky; top: 22px; padding: 18px; border: 1px solid rgba(66, 178, 226, .45); border-radius: 14px; background: linear-gradient(180deg, rgba(10, 71, 100, .38), rgba(7, 29, 45, .72)); transition: .18s ease; }.purpose-bank--over { border-color: #ffba67; box-shadow: 0 0 0 3px rgba(255, 186, 103, .16); }.purpose-bank__head strong { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(97, 222, 255, .58); border-radius: 50%; color: #8eeaff; }.purpose-bank > p { margin: 12px 0 15px; color: #9cb8c7; font-size: 13px; line-height: 1.65; }.purpose-card-list { display: grid; gap: 9px; max-height: 570px; overflow: auto; padding-right: 3px; }.purpose-card { display: flex; align-items: center; width: 100%; gap: 8px; padding: 11px 12px; border: 1px solid rgba(111, 158, 179, .5); border-radius: 8px; color: #e4f4fb; background: rgba(7, 31, 47, .72); text-align: left; line-height: 1.55; cursor: grab; transition: .18s ease; }.purpose-card:hover, .purpose-card.selected { border-color: #53ddfb; background: rgba(14, 116, 153, .43); }.purpose-card.dragging { opacity: .5; }.purpose-card--assigned { cursor: grab; }.purpose-card--assigned span { flex: 1; }.purpose-card--assigned button { display: inline-grid; width: 26px; height: 26px; flex: 0 0 26px; place-items: center; border: 0; border-radius: 50%; color: #b9ebfa; background: rgba(104, 196, 224, .17); cursor: pointer; }.purpose-card--assigned button:hover { color: #fff; background: #bd5068; }.drag-grip { color: #5fd5ed; letter-spacing: -3px; }.purpose-bank__empty { padding: 22px 8px; color: #82b3c8; text-align: center; }.result-message { margin: 20px 0 0; padding: 11px 14px; border: 1px solid rgba(255, 168, 112, .52); border-radius: 8px; color: #ffd5ad; background: rgba(157, 77, 35, .14); }.result-message.success { border-color: rgba(84, 230, 187, .56); color: #a6f4d8; background: rgba(16, 134, 99, .16); }.task-actions { justify-content: flex-end; margin-top: 21px; }
.prd-detail-card { overflow: hidden; }.prd-table-wrap { overflow: auto; border: 1px solid rgba(102, 184, 223, .5); border-radius: 12px; }.prd-detail-table { width: 100%; min-width: 1000px; border-collapse: separate; border-spacing: 0; table-layout: fixed; }.prd-detail-table th { padding: 13px; color: #effbff; background: linear-gradient(90deg, #087da9, #0b9bca); font-weight: 700; }.prd-detail-table td { padding: 12px; border-top: 1px solid rgba(115, 165, 188, .38); border-right: 1px solid rgba(115, 165, 188, .38); vertical-align: top; background: rgba(9, 38, 57, .44); }.prd-detail-table th:not(:last-child) { border-right: 1px solid rgba(212, 246, 255, .25); }.prd-detail-table td:last-child { border-right: 0; }.prd-detail-table th:nth-child(1), .module-number { width: 72px; text-align: center; }.prd-detail-table th:nth-child(2), .module-name { width: 155px; }.prd-detail-table th:nth-child(3), .submodule-name { width: 245px; }.module-number, .module-name, .submodule-name { color: #dff6ff; vertical-align: middle !important; }.module-name { background: rgba(10, 90, 122, .28) !important; font-weight: 700; }.submodule-name { background: rgba(20, 69, 92, .28) !important; }.detail-editor-cell { min-width: 480px; }.example-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 9px; color: #7fa6ba; font-size: 13px; line-height: 1.6; }.example-bar button { flex: 0 0 auto; padding: 4px 8px; border: 1px solid rgba(96, 201, 237, .5); border-radius: 6px; color: #9deaff; background: rgba(5, 86, 124, .24); cursor: pointer; }.example-bar button:hover { color: #fff; background: rgba(12, 139, 182, .6); }.detail-editor-cell textarea { display: block; width: 100%; min-height: 92px; resize: vertical; box-sizing: border-box; padding: 10px; border: 1px solid rgba(108, 182, 215, .36); border-radius: 8px; outline: none; color: #eaf8ff; background: rgba(1, 18, 29, .62); font: inherit; line-height: 1.65; }.detail-editor-cell textarea:focus { border-color: #3ddff9; box-shadow: 0 0 0 3px rgba(55, 215, 248, .12); }.detail-editor-cell textarea::placeholder { color: #66899c; }.upcoming-card { text-align: center; }.upcoming-card h3 { margin: 8px 0; }.upcoming-card p:not(.section-eyebrow) { color: #a6c2d2; }
.file-input-hidden { display: none; }.prd-upload-card { overflow: hidden; }.prd-delivery-guide { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 20px 22px; border: 1px solid rgba(72, 201, 255, .2); border-radius: 16px; background: linear-gradient(135deg, rgba(20, 86, 127, .28), rgba(8, 32, 54, .2)); }.prd-delivery-guide h3 { margin: 0 0 10px; font-size: 18px; color: #eef9ff; }.prd-delivery-guide ol { margin: 0; padding-left: 20px; color: #b8d3e2; line-height: 1.8; }.document-drop-zone { display: grid; min-height: 270px; place-content: center; justify-items: center; gap: 14px; padding: 30px; margin-top: 20px; border: 1px dashed rgba(81, 207, 255, .5); border-radius: 18px; background: radial-gradient(circle at 50% 0, rgba(41, 180, 235, .16), transparent 52%), rgba(8, 33, 52, .56); text-align: center; transition: .2s ease; }.document-drop-zone:hover { border-color: #4ad4ff; background-color: rgba(14, 65, 95, .66); transform: translateY(-2px); }.document-upload-icon { font-size: 42px; color: #42d8ff; }.document-drop-zone h3 { margin: 0; color: #eefaff; font-size: 21px; }.document-drop-zone p { max-width: 560px; margin: 0; color: #a6c2d2; line-height: 1.7; }.uploaded-document-card { display: flex; align-items: center; gap: 16px; padding: 18px 20px; margin-top: 20px; border: 1px solid rgba(69, 206, 255, .3); border-radius: 16px; background: rgba(9, 45, 70, .72); }.document-file-icon { flex: 0 0 auto; font-size: 32px; color: #55dcff; }.uploaded-document-main { min-width: 0; flex: 1; }.uploaded-document-main h3 { overflow: hidden; margin: 0 0 5px; color: #f0fbff; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }.uploaded-document-main p { margin: 0; color: #9cc1d4; font-size: 13px; }.uploaded-document-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 9px; }.btn-danger { border: 1px solid rgba(255, 115, 127, .45); color: #ffacb3; background: rgba(116, 32, 48, .25); }.btn-danger:hover { border-color: #ff7884; background: rgba(150, 38, 55, .38); color: #fff; }.prd-pdf-preview { height: min(68vh, 780px); overflow: hidden; border: 1px solid #d8e4ea; border-radius: 10px; background: #fff; }.prd-pdf-preview iframe { width: 100%; height: 100%; border: 0; }.prd-text-preview { max-height: min(68vh, 780px); overflow: auto; padding: 20px; border: 1px solid #d8e4ea; border-radius: 10px; color: #263849; background: #f8fbfd; font-family: "Microsoft YaHei", sans-serif; line-height: 1.8; white-space: pre-wrap; word-break: break-word; }
.step-indicator { display: flex; align-items: stretch; margin: 26px 0; padding: 10px; overflow-x: auto; border: 1px solid rgba(58, 170, 220, .35); border-radius: 18px; background: rgba(0, 15, 28, .45); }.step-tab { display: flex; min-width: 185px; flex: 1; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 12px; color: #8baabd; background: transparent; text-align: left; cursor: pointer; }.step-tab.active { color: #fff; background: linear-gradient(90deg, #087eb3, #12a7d5); box-shadow: inset 0 0 0 1px rgba(157, 239, 255, .55); }.step-tab.complete .step-marker { border-color: #53f1d5; color: #53f1d5; }.step-marker { display: inline-grid; width: 33px; height: 33px; flex: 0 0 33px; place-items: center; border: 1px solid #4c91b5; border-radius: 50%; font-weight: 700; }.step-copy { display: grid; gap: 3px; }.step-copy small { font-size: var(--student-fs-caption); }.step-connector { width: 22px; min-width: 22px; align-self: center; height: 1px; background: #287596; }
.step-card { padding: 25px; border: 1px solid rgba(50, 162, 208, .42); border-radius: 18px; background: rgba(2, 18, 30, .58); }.step-desc { margin: 18px 0; color: #c0d2df; line-height: 1.8; }.matching-tip, .prd-note { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 20px; padding: 10px 13px; border-left: 3px solid #2ed4f0; border-radius: 5px; color: #a9ddeb; background: rgba(28, 122, 157, .15); font-size: var(--student-fs-body); line-height: 1.65; }
.matching-workspace { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(350px, .78fr); gap: 24px; align-items: start; }.module-list { display: grid; gap: 10px; }.module-row { display: grid; grid-template-columns: minmax(185px, .31fr) minmax(0, .69fr); min-height: 84px; overflow: hidden; border: 1px solid rgba(124, 166, 189, .45); border-radius: 10px; background: rgba(11, 39, 56, .48); transition: .18s ease; cursor: pointer; }.module-row--over { border-color: #48e3ff; box-shadow: 0 0 0 3px rgba(55, 215, 248, .16); }.module-row--filled { border-color: rgba(74, 220, 182, .56); }.module-label { display: flex; align-items: center; gap: 12px; padding: 16px; border-right: 1px solid rgba(124, 166, 189, .35); color: #eef9ff; background: rgba(13, 81, 113, .28); }.module-label span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: #7ee6ff; background: rgba(11, 172, 214, .16); font-size: var(--student-fs-caption); }.module-drop-zone { display: flex; align-items: center; padding: 10px 12px; }.drop-placeholder { color: #7696a8; font-size: var(--student-fs-body); }
.purpose-bank { position: sticky; top: 22px; padding: 18px; border: 1px solid rgba(66, 178, 226, .45); border-radius: 14px; background: linear-gradient(180deg, rgba(10, 71, 100, .38), rgba(7, 29, 45, .72)); transition: .18s ease; }.purpose-bank--over { border-color: #ffba67; box-shadow: 0 0 0 3px rgba(255, 186, 103, .16); }.purpose-bank__head strong { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(97, 222, 255, .58); border-radius: 50%; color: #8eeaff; }.purpose-bank > p { margin: 12px 0 15px; color: #9cb8c7; font-size: var(--student-fs-body-sm); line-height: 1.65; }.purpose-card-list { display: grid; gap: 9px; max-height: 570px; overflow: auto; padding-right: 3px; }.purpose-card { display: flex; align-items: center; width: 100%; gap: 8px; padding: 11px 12px; border: 1px solid rgba(111, 158, 179, .5); border-radius: 8px; color: #e4f4fb; background: rgba(7, 31, 47, .72); text-align: left; line-height: 1.55; cursor: grab; transition: .18s ease; }.purpose-card:hover, .purpose-card.selected { border-color: #53ddfb; background: rgba(14, 116, 153, .43); }.purpose-card.dragging { opacity: .5; }.purpose-card--assigned { cursor: grab; }.purpose-card--assigned span { flex: 1; }.purpose-card--assigned button { display: inline-grid; width: 26px; height: 26px; flex: 0 0 26px; place-items: center; border: 0; border-radius: 50%; color: #b9ebfa; background: rgba(104, 196, 224, .17); cursor: pointer; }.purpose-card--assigned button:hover { color: #fff; background: #bd5068; }.drag-grip { color: #5fd5ed; letter-spacing: -3px; }.purpose-bank__empty { padding: 22px 8px; color: #82b3c8; text-align: center; }.result-message { margin: 20px 0 0; padding: 11px 14px; border: 1px solid rgba(255, 168, 112, .52); border-radius: 8px; color: #ffd5ad; background: rgba(157, 77, 35, .14); }.result-message.success { border-color: rgba(84, 230, 187, .56); color: #a6f4d8; background: rgba(16, 134, 99, .16); }.task-actions { justify-content: flex-end; margin-top: 21px; }
.prd-detail-card { overflow: hidden; }.prd-table-wrap { overflow: auto; border: 1px solid rgba(102, 184, 223, .5); border-radius: 12px; }.prd-detail-table { width: 100%; min-width: 1000px; border-collapse: separate; border-spacing: 0; table-layout: fixed; }.prd-detail-table th { padding: 13px; color: #effbff; background: linear-gradient(90deg, #087da9, #0b9bca); font-weight: 700; }.prd-detail-table td { padding: 12px; border-top: 1px solid rgba(115, 165, 188, .38); border-right: 1px solid rgba(115, 165, 188, .38); vertical-align: top; background: rgba(9, 38, 57, .44); }.prd-detail-table th:not(:last-child) { border-right: 1px solid rgba(212, 246, 255, .25); }.prd-detail-table td:last-child { border-right: 0; }.prd-detail-table th:nth-child(1), .module-number { width: 72px; text-align: center; }.prd-detail-table th:nth-child(2), .module-name { width: 155px; }.prd-detail-table th:nth-child(3), .submodule-name { width: 245px; }.module-number, .module-name, .submodule-name { color: #dff6ff; vertical-align: middle !important; }.module-name { background: rgba(10, 90, 122, .28) !important; font-weight: 700; }.submodule-name { background: rgba(20, 69, 92, .28) !important; }.detail-editor-cell { min-width: 480px; }.example-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 9px; color: #7fa6ba; font-size: var(--student-fs-body-sm); line-height: 1.6; }.example-bar button { flex: 0 0 auto; padding: 4px 8px; border: 1px solid rgba(96, 201, 237, .5); border-radius: 6px; color: #9deaff; background: rgba(5, 86, 124, .24); cursor: pointer; }.example-bar button:hover { color: #fff; background: rgba(12, 139, 182, .6); }.detail-editor-cell textarea { display: block; width: 100%; min-height: 92px; resize: vertical; box-sizing: border-box; padding: 10px; border: 1px solid rgba(108, 182, 215, .36); border-radius: 8px; outline: none; color: #eaf8ff; background: rgba(1, 18, 29, .62); font: inherit; line-height: 1.65; }.detail-editor-cell textarea:focus { border-color: #3ddff9; box-shadow: 0 0 0 3px rgba(55, 215, 248, .12); }.detail-editor-cell textarea::placeholder { color: #66899c; }.upcoming-card { text-align: center; }.upcoming-card h3 { margin: 8px 0; }.upcoming-card p:not(.section-eyebrow) { color: #a6c2d2; }
.file-input-hidden { display: none; }.prd-upload-card { overflow: hidden; }.prd-delivery-guide { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 20px 22px; border: 1px solid rgba(72, 201, 255, .2); border-radius: 16px; background: linear-gradient(135deg, rgba(20, 86, 127, .28), rgba(8, 32, 54, .2)); }.prd-delivery-guide h3 { margin: 0 0 10px; font-size: var(--student-fs-h1); color: #eef9ff; }.prd-delivery-guide ol { margin: 0; padding-left: 20px; color: #b8d3e2; line-height: 1.8; }.document-drop-zone { display: grid; min-height: 270px; place-content: center; justify-items: center; gap: 14px; padding: 30px; margin-top: 20px; border: 1px dashed rgba(81, 207, 255, .5); border-radius: 18px; background: radial-gradient(circle at 50% 0, rgba(41, 180, 235, .16), transparent 52%), rgba(8, 33, 52, .56); text-align: center; transition: .2s ease; }.document-drop-zone:hover { border-color: #4ad4ff; background-color: rgba(14, 65, 95, .66); transform: translateY(-2px); }.document-upload-icon { font-size: 42px; color: #42d8ff; }.document-drop-zone h3 { margin: 0; color: #eefaff; font-size: 21px; }.document-drop-zone p { max-width: 560px; margin: 0; color: #a6c2d2; line-height: 1.7; }.uploaded-document-card { display: flex; align-items: center; gap: 16px; padding: 18px 20px; margin-top: 20px; border: 1px solid rgba(69, 206, 255, .3); border-radius: 16px; background: rgba(9, 45, 70, .72); }.document-file-icon { flex: 0 0 auto; font-size: 32px; color: #55dcff; }.uploaded-document-main { min-width: 0; flex: 1; }.uploaded-document-main h3 { overflow: hidden; margin: 0 0 5px; color: #f0fbff; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }.uploaded-document-main p { margin: 0; color: #9cc1d4; font-size: var(--student-fs-body-sm); }.uploaded-document-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 9px; }.btn-danger { border: 1px solid rgba(255, 115, 127, .45); color: #ffacb3; background: rgba(116, 32, 48, .25); }.btn-danger:hover { border-color: #ff7884; background: rgba(150, 38, 55, .38); color: #fff; }.prd-pdf-preview { height: min(68vh, 780px); overflow: hidden; border: 1px solid #d8e4ea; border-radius: 10px; background: #fff; }.prd-pdf-preview iframe { width: 100%; height: 100%; border: 0; }.prd-text-preview { max-height: min(68vh, 780px); overflow: auto; padding: 20px; border: 1px solid #d8e4ea; border-radius: 10px; color: #263849; background: #f8fbfd; font-family: var(--student-font-base); line-height: 1.8; white-space: pre-wrap; word-break: break-word; }
@media (max-width: 1020px) { .matching-workspace { grid-template-columns: 1fr; }.purpose-bank { position: static; }.purpose-card-list { max-height: 360px; }.workbench-head { align-items: flex-start; flex-direction: column; } }
@media (max-width: 680px) { .training-core { width: min(100% - 24px, 1480px); padding-top: 16px; }.task-card, .step-card { padding: 15px; }.module-row { grid-template-columns: 1fr; }.module-label { border-right: 0; border-bottom: 1px solid rgba(124, 166, 189, .35); }.task-header { align-items: flex-start; flex-direction: column; }.task-title { font-size: 22px; }.step-indicator { margin: 18px 0; }.step-tab { min-width: 165px; }.workbench-actions, .task-actions { width: 100%; }.outline-action, .btn-nav { flex: 1; }.purpose-bank { padding: 14px; }.example-bar { flex-direction: column; } }
@media (max-width: 680px) { .training-core { width: min(100% - 24px, 1480px); padding-top: 16px; }.task-card, .step-card { padding: 15px; }.module-row { grid-template-columns: 1fr; }.module-label { border-right: 0; border-bottom: 1px solid rgba(124, 166, 189, .35); }.task-header { align-items: flex-start; flex-direction: column; }.task-title { font-size: var(--student-fs-h2); }.step-indicator { margin: 18px 0; }.step-tab { min-width: 165px; }.workbench-actions, .task-actions { width: 100%; }.outline-action, .btn-nav { flex: 1; }.purpose-bank { padding: 14px; }.example-bar { flex-direction: column; } }
</style>

File diff suppressed because one or more lines are too long

@ -186,7 +186,7 @@ getCode();
}
}
.register-tip {
font-size: 13px;
font-size: var(--student-fs-body-sm);
text-align: center;
color: #bfbfbf;
}
@ -207,8 +207,8 @@ getCode();
width: 100%;
text-align: center;
color: #fff;
font-family: Arial;
font-size: 12px;
font-family: var(--student-font-base);
font-size: var(--student-fs-caption);
letter-spacing: 1px;
}
.register-code-img {

@ -248,8 +248,8 @@ onBeforeUnmount(() => {
justify-content: space-between;
gap: 12px;
span { color: #1d2b4a; font-size: 18px; font-weight: 700; }
small { color: #8a98af; font-size: 13px; }
span { color: #1d2b4a; font-size: var(--student-fs-h1); font-weight: 700; }
small { color: #8a98af; font-size: var(--student-fs-body-sm); }
}
.score-layout { display: grid; grid-template-columns: minmax(400px, 0.9fr) minmax(540px, 1.3fr); min-height: 330px; }
@ -273,10 +273,10 @@ onBeforeUnmount(() => {
strong { color: #5645d5; font-size: 34px; line-height: 1.1; }
.summary-unit { color: #5645d5; font-weight: 600; }
.rank-copy { margin-top: 18px; font-size: 13px; }
.rank-copy { margin-top: 18px; font-size: var(--student-fs-body-sm); }
}
.summary-label { margin-bottom: 4px; font-size: 13px; }
.summary-label { margin-bottom: 4px; font-size: var(--student-fs-body-sm); }
.score-table-wrap { display: flex; align-items: center; min-width: 0; padding: 8px 0 8px 24px; }
.score-table { width: 100%; }
@ -294,7 +294,7 @@ onBeforeUnmount(() => {
box-shadow: 0 14px 24px rgba(57, 126, 226, 0.24);
strong { margin-top: 18px; font-size: 17px; }
span { margin-top: 7px; font-size: 13px; opacity: 0.88; }
span { margin-top: 7px; font-size: var(--student-fs-body-sm); opacity: 0.88; }
}
.time-orbit {
@ -309,7 +309,7 @@ onBeforeUnmount(() => {
}
.time-value { font-size: 25px; font-weight: 800; line-height: 1; }
.time-unit { margin-top: 5px; font-size: 13px; letter-spacing: 0.08em; }
.time-unit { margin-top: 5px; font-size: var(--student-fs-body-sm); letter-spacing: 0.08em; }
.progress-chart-wrap { min-width: 0; }
.progress-chart { min-height: 270px; width: 100%; }
@ -323,8 +323,8 @@ onBeforeUnmount(() => {
}
.module-progress-item { min-width: 0; }
.module-progress-head { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; color: #6f7b91; font-size: 13px; }
.module-progress-head strong { flex: 1; overflow: hidden; color: #273858; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.module-progress-head { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; color: #6f7b91; font-size: var(--student-fs-body-sm); }
.module-progress-head strong { flex: 1; overflow: hidden; color: #273858; font-size: var(--student-fs-body); text-overflow: ellipsis; white-space: nowrap; }
.module-color { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }
@media (max-width: 1320px) {

@ -35,4 +35,4 @@ onBeforeUnmount(() => {
});
</script>
<style scoped>.student-demo-entry{display:grid;min-height:100vh;place-items:center;background:#06111d;color:#dff7ff;font-size:18px}</style>
<style scoped>.student-demo-entry{display:grid;min-height:100vh;place-items:center;background:#06111d;color:#dff7ff;font-size:var(--student-fs-h1)}</style>

@ -36,7 +36,7 @@
<!-- <img style="width: 55px; height: 55px" :src="getAssetsFile(`images/${item.name}.png`)" alt="" /> -->
<div class="ri">
<span style="color: #333333; font-weight: bold; font-size: 16px; letter-spacing: 4px">{{ item.name }}:</span>
<span style="font-family: Source Han Sans CN; font-weight: bold; font-size: 20px; color: #ff6400">{{ item.value ?? 0 }}</span>
<span style="font-family: var(--student-font-base); font-weight: bold; font-size: 20px; color: #ff6400">{{ item.value ?? 0 }}</span>
</div>
</div>
</div>
@ -241,7 +241,7 @@ onMounted(() => {
.trend-title {
margin-top: 28px;
text-align: center;
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 16px;
color: #999999;
@ -253,7 +253,7 @@ onMounted(() => {
border-bottom: 2px dashed #e5e5e5;
}
.card-header {
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
color: #333333;
@ -283,7 +283,7 @@ onMounted(() => {
.el-card:nth-child(2) {
width: calc(100% - 53%);
.card-header {
font-family: Source Han Sans CN;
font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
color: #333333;

@ -233,8 +233,8 @@ onMounted(async () => { try { const result = await getTrainingTaskByKey(TASK_KEY
</script>
<style scoped lang="scss">
.release-channel-page{display:grid;grid-template-columns:minmax(720px,1fr) 340px;gap:24px;min-height:calc(100vh - 76px);padding:24px;color:#eef5ff;background:#06111d}.training-core{min-width:0;padding:28px;border:1px solid rgba(0,180,255,.25);border-radius:30px;background:rgba(8,18,28,.6)}.task-header{margin-bottom:24px}.task-badge{display:inline-flex;gap:8px;align-items:center;padding:5px 14px;border:1px solid rgba(99,217,255,.55);border-radius:999px;color:#dff5ff;background:rgba(17,126,178,.36);font-size:12px;font-weight:700}.task-header h1{margin:12px 0 0;color:#fff;font-size:30px}.task-card{margin-top:28px;padding:24px;border:1px solid rgba(82,174,226,.42);border-radius:24px;background:rgba(0,25,42,.64)}.workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(0,180,255,.2)}.section-eyebrow{margin:0;color:#71dfff;font-size:12px;font-weight:800}.workbench-head h2{margin:4px 0 0;color:#fff;font-size:24px}.step-tabs{display:flex;gap:10px;margin:20px 0}.step-tabs button{min-height:36px;padding:0 15px;border:1px solid rgba(99,183,222,.42);border-radius:8px;color:#a8cde0;background:rgba(3,27,43,.56);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.step-tabs button.active{border-color:#48d5ff;color:#fff;background:rgba(9,125,177,.7)}.lead,.scoring-guide{margin:22px 0;color:#e2f3ff;font-size:16px;line-height:1.9}.scoring-guide{padding:16px 18px;border-left:3px solid #48d5ff;border-radius:0 12px 12px 0;background:rgba(16,85,121,.2)}.table-actions{display:flex;justify-content:flex-end;gap:12px;margin:0 0 16px}.table-actions :deep(.el-button){min-width:110px;height:42px;font-weight:800}.table-wrap{overflow-x:auto;border:1px solid rgba(99,183,222,.46);border-radius:14px}.table-wrap table{width:100%;border-collapse:collapse}.weight-table{min-width:900px}.channel-table{min-width:1320px}.scoring-table{min-width:1780px}.ranking-table{min-width:880px}.table-wrap th,.table-wrap td{padding:12px;border-right:1px solid rgba(99,183,222,.35);border-bottom:1px solid rgba(99,183,222,.35);vertical-align:middle}.table-wrap th{white-space:nowrap;color:#effaff;background:#0c9dd6;font-size:14px}.table-wrap td{background:rgba(2,21,34,.58)}.weight-table tbody td:nth-child(1){width:22%}.weight-table tbody td:nth-child(2){width:43%}.weight-table tbody td:nth-child(3){width:23%}.channel-table td{min-width:134px}.channel-table td:first-child{min-width:110px}.scoring-table th:first-child{min-width:108px}.scoring-table td{min-width:108px}.scoring-table thead tr:nth-child(2) th{background:rgba(7,116,161,.94)}.ranking-table td{min-width:170px}.ranking-table td:first-child{min-width:100px}.rank-cell,.core-cell{text-align:center;font-weight:900}.core-cell .core{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;border:1px solid rgba(99,235,204,.8);border-radius:999px;color:#062f30;background:#68edce}.weight-cell{color:#a8d9eb;text-align:center;font-weight:800}.analysis-field{display:block;margin-top:28px}.analysis-field>span{display:block;margin-bottom:10px;color:#dff5ff;font-size:15px;font-weight:800}.analysis-field :deep(.el-textarea__inner){min-height:180px!important;border:1px solid rgba(111,190,225,.3);border-radius:12px;box-shadow:none;color:#fff;background:#102233;line-height:1.7}.table-wrap :deep(.el-input__wrapper),.table-wrap :deep(.el-input-number){width:100%;background:#102233}.table-wrap :deep(.el-input__wrapper){box-shadow:0 0 0 1px rgba(111,190,225,.3) inset}.table-wrap :deep(.el-input__inner){color:#fff}.table-wrap :deep(.el-input-number .el-input__wrapper){background:#102233}.table-wrap small{display:block;margin-top:7px;color:#8fa8b8;font-size:12px}.operation-column{width:100px;text-align:center}.empty-row{text-align:center;color:#99b5c7}.table-wrap tfoot th,.table-wrap tfoot td{border-bottom:0;background:rgba(7,49,72,.74)}.total-error{color:#ff8c8c;font-weight:900}.hint{margin:18px 0 0;color:#95b2c3;line-height:1.8}.footer-actions{display:flex;justify-content:center;gap:16px;margin-top:30px}.footer-actions :deep(.el-button){min-width:156px;height:44px;font-weight:800}.footer-actions :deep(.el-button .el-icon){margin-left:5px}@media (max-width:1100px){.release-channel-page{grid-template-columns:1fr}}@media (max-width:720px){.release-channel-page{padding:14px}.training-core{padding:18px}.task-card{padding:18px}.workbench-head{flex-direction:column}.table-actions,.footer-actions{align-items:stretch;flex-direction:column}.table-actions :deep(.el-button),.footer-actions :deep(.el-button){width:100%}}
.release-channel-page{display:grid;grid-template-columns:minmax(720px,1fr) 340px;gap:24px;min-height:calc(100vh - 76px);padding:24px;color:#eef5ff;background:#06111d}.training-core{min-width:0;padding:28px;border:1px solid rgba(0,180,255,.25);border-radius:30px;background:rgba(8,18,28,.6)}.task-header{margin-bottom:24px}.task-badge{display:inline-flex;gap:8px;align-items:center;padding:5px 14px;border:1px solid rgba(99,217,255,.55);border-radius:999px;color:#dff5ff;background:rgba(17,126,178,.36);font-size:var(--student-fs-caption);font-weight:700}.task-header h1{margin:12px 0 0;color:#fff;font-size:var(--student-fs-display)}.task-card{margin-top:28px;padding:24px;border:1px solid rgba(82,174,226,.42);border-radius:24px;background:rgba(0,25,42,.64)}.workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(0,180,255,.2)}.section-eyebrow{margin:0;color:#71dfff;font-size:var(--student-fs-caption);font-weight:800}.workbench-head h2{margin:4px 0 0;color:#fff;font-size:var(--student-fs-h1)}.step-tabs{display:flex;gap:10px;margin:20px 0}.step-tabs button{min-height:36px;padding:0 15px;border:1px solid rgba(99,183,222,.42);border-radius:8px;color:#a8cde0;background:rgba(3,27,43,.56);font:inherit;font-size:var(--student-fs-body-sm);font-weight:800;cursor:pointer}.step-tabs button.active{border-color:#48d5ff;color:#fff;background:rgba(9,125,177,.7)}.lead,.scoring-guide{margin:22px 0;color:#e2f3ff;font-size:var(--student-fs-h2);line-height:1.9}.scoring-guide{padding:16px 18px;border-left:3px solid #48d5ff;border-radius:0 12px 12px 0;background:rgba(16,85,121,.2)}.table-actions{display:flex;justify-content:flex-end;gap:12px;margin:0 0 16px}.table-actions :deep(.el-button){min-width:110px;height:42px;font-weight:800}.table-wrap{overflow-x:auto;border:1px solid rgba(99,183,222,.46);border-radius:14px}.table-wrap table{width:100%;border-collapse:collapse}.weight-table{min-width:900px}.channel-table{min-width:1320px}.scoring-table{min-width:1780px}.ranking-table{min-width:880px}.table-wrap th,.table-wrap td{padding:12px;border-right:1px solid rgba(99,183,222,.35);border-bottom:1px solid rgba(99,183,222,.35);vertical-align:middle}.table-wrap th{white-space:nowrap;color:#effaff;background:#0c9dd6;font-size:var(--student-fs-body)}.table-wrap td{background:rgba(2,21,34,.58)}.weight-table tbody td:nth-child(1){width:22%}.weight-table tbody td:nth-child(2){width:43%}.weight-table tbody td:nth-child(3){width:23%}.channel-table td{min-width:134px}.channel-table td:first-child{min-width:110px}.scoring-table th:first-child{min-width:108px}.scoring-table td{min-width:108px}.scoring-table thead tr:nth-child(2) th{background:rgba(7,116,161,.94)}.ranking-table td{min-width:170px}.ranking-table td:first-child{min-width:100px}.rank-cell,.core-cell{text-align:center;font-weight:900}.core-cell .core{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;border:1px solid rgba(99,235,204,.8);border-radius:999px;color:#062f30;background:#68edce}.weight-cell{color:#a8d9eb;text-align:center;font-weight:800}.analysis-field{display:block;margin-top:28px}.analysis-field>span{display:block;margin-bottom:10px;color:#dff5ff;font-size:var(--student-fs-body);font-weight:800}.analysis-field :deep(.el-textarea__inner){min-height:180px!important;border:1px solid rgba(111,190,225,.3);border-radius:12px;box-shadow:none;color:#fff;background:#102233;line-height:1.7}.table-wrap :deep(.el-input__wrapper),.table-wrap :deep(.el-input-number){width:100%;background:#102233}.table-wrap :deep(.el-input__wrapper){box-shadow:0 0 0 1px rgba(111,190,225,.3) inset}.table-wrap :deep(.el-input__inner){color:#fff}.table-wrap :deep(.el-input-number .el-input__wrapper){background:#102233}.table-wrap small{display:block;margin-top:7px;color:#8fa8b8;font-size:var(--student-fs-caption)}.operation-column{width:100px;text-align:center}.empty-row{text-align:center;color:#99b5c7}.table-wrap tfoot th,.table-wrap tfoot td{border-bottom:0;background:rgba(7,49,72,.74)}.total-error{color:#ff8c8c;font-weight:900}.hint{margin:18px 0 0;color:#95b2c3;line-height:1.8}.footer-actions{display:flex;justify-content:center;gap:16px;margin-top:30px}.footer-actions :deep(.el-button){min-width:156px;height:44px;font-weight:800}.footer-actions :deep(.el-button .el-icon){margin-left:5px}@media (max-width:1100px){.release-channel-page{grid-template-columns:1fr}}@media (max-width:720px){.release-channel-page{padding:14px}.training-core{padding:18px}.task-card{padding:18px}.workbench-head{flex-direction:column}.table-actions,.footer-actions{align-items:stretch;flex-direction:column}.table-actions :deep(.el-button),.footer-actions :deep(.el-button){width:100%}}
/* 与标准实训页保持一致的步骤条:编号、步骤状态和箭头连接均可清晰识别。 */
.step-tabs{display:flex;align-items:center;gap:8px;margin:20px 0 28px;padding:18px 22px;overflow-x:auto;border:1px solid rgba(0,180,255,.3);border-radius:22px;background:rgba(1,18,31,.62)}.step-tabs .step-tab{display:flex;flex:1 1 0;align-items:center;min-width:145px;min-height:66px;gap:10px;padding:8px 12px;border:1px solid rgba(68,141,177,.35);border-radius:12px;color:#9ab3d0;background:rgba(3,27,43,.52);font:inherit;text-align:left;cursor:pointer;transition:.2s ease}.step-tabs .step-tab:hover{border-color:rgba(89,223,255,.82);color:#fff;background:rgba(8,92,131,.52);transform:translateY(-1px)}.step-tabs .step-tab:focus-visible{outline:2px solid #72e8ff;outline-offset:3px}.step-tabs .step-marker{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid rgba(101,176,208,.6);border-radius:50%;color:#a6c4d9;background:rgba(3,25,40,.8);font-size:12px;font-weight:900}.step-tabs .step-copy{display:grid;min-width:0;gap:4px}.step-tabs .step-copy b{overflow:hidden;font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.step-tabs .step-copy small{color:#66b6d4;font-size:10px;font-weight:800;letter-spacing:.06em}.step-tabs .step-tab.active{border-color:#53d8fb;color:#fff;background:linear-gradient(135deg,rgba(7,156,207,.85),rgba(13,105,161,.92));box-shadow:inset 0 0 24px rgba(77,213,255,.22)}.step-tabs .step-tab.active .step-marker{border-color:#72e8ff;color:#fff;background:linear-gradient(135deg,#08b7e8,#1375d0);box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58)}.step-tabs .step-tab.complete{color:#dffbff}.step-tabs .step-tab.complete .step-marker{border-color:rgba(84,230,221,.85);color:#062b37;background:#6ef0e1}.step-tabs .step-connector{position:relative;flex:0 0 24px;height:2px;background:rgba(86,198,235,.48)}.step-tabs .step-connector::after{position:absolute;top:50%;right:0;width:7px;height:7px;border-top:1px solid #73b1ce;border-right:1px solid #73b1ce;content:'';transform:translateY(-50%) rotate(45deg)}
.step-tabs{display:flex;align-items:center;gap:8px;margin:20px 0 28px;padding:18px 22px;overflow-x:auto;border:1px solid rgba(0,180,255,.3);border-radius:22px;background:rgba(1,18,31,.62)}.step-tabs .step-tab{display:flex;flex:1 1 0;align-items:center;min-width:145px;min-height:66px;gap:10px;padding:8px 12px;border:1px solid rgba(68,141,177,.35);border-radius:12px;color:#9ab3d0;background:rgba(3,27,43,.52);font:inherit;text-align:left;cursor:pointer;transition:.2s ease}.step-tabs .step-tab:hover{border-color:rgba(89,223,255,.82);color:#fff;background:rgba(8,92,131,.52);transform:translateY(-1px)}.step-tabs .step-tab:focus-visible{outline:2px solid #72e8ff;outline-offset:3px}.step-tabs .step-marker{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid rgba(101,176,208,.6);border-radius:50%;color:#a6c4d9;background:rgba(3,25,40,.8);font-size:var(--student-fs-caption);font-weight:900}.step-tabs .step-copy{display:grid;min-width:0;gap:4px}.step-tabs .step-copy b{overflow:hidden;font-size:var(--student-fs-body);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.step-tabs .step-copy small{color:#66b6d4;font-size:var(--student-fs-caption);font-weight:800;letter-spacing:.06em}.step-tabs .step-tab.active{border-color:#53d8fb;color:#fff;background:linear-gradient(135deg,rgba(7,156,207,.85),rgba(13,105,161,.92));box-shadow:inset 0 0 24px rgba(77,213,255,.22)}.step-tabs .step-tab.active .step-marker{border-color:#72e8ff;color:#fff;background:linear-gradient(135deg,#08b7e8,#1375d0);box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58)}.step-tabs .step-tab.complete{color:#dffbff}.step-tabs .step-tab.complete .step-marker{border-color:rgba(84,230,221,.85);color:#062b37;background:#6ef0e1}.step-tabs .step-connector{position:relative;flex:0 0 24px;height:2px;background:rgba(86,198,235,.48)}.step-tabs .step-connector::after{position:absolute;top:50%;right:0;width:7px;height:7px;border-top:1px solid #73b1ce;border-right:1px solid #73b1ce;content:'';transform:translateY(-50%) rotate(45deg)}
@media(max-width:720px){.step-tabs{align-items:stretch;flex-direction:column;padding:14px}.step-tabs .step-tab{flex:0 0 auto;width:100%}.step-tabs .step-connector{flex:0 0 18px;width:2px;height:18px;margin-left:18px}.step-tabs .step-connector::after{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%) rotate(135deg)}}
</style>

File diff suppressed because one or more lines are too long

@ -160,10 +160,10 @@ async function save(submitStep) {
.step-shell { max-width: 1080px; margin: 0 auto; }
.step-header, .answer-card { padding: 22px; border: 1px solid rgba(70, 181, 231, .36); border-radius: 16px; background: rgba(2, 22, 37, .82); }
.step-header { margin-bottom: 20px; }
.step-header h1 { margin: 5px 0 10px; font-size: 26px; }
.step-header h1 { margin: 5px 0 10px; font-size: var(--student-fs-h1); }
.step-header p { margin: 0; color: #b9ddf1; line-height: 1.75; }
.eyebrow { color: #72dcff !important; font-weight: 800; }
.answer-card h2 { margin-top: 0; font-size: 20px; }
.answer-card h2 { margin-top: 0; font-size: var(--student-fs-display); }
.attachment-area { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.attachment-area a { color: #75dcff; }
.hidden-input { display: none; }

@ -533,7 +533,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 700;
}
@ -543,7 +543,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
font-size: 30px;
font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@ -558,7 +558,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -624,7 +624,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
font-size: 26px !important;
font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
@ -632,7 +632,7 @@ function exportOutcome() {
p {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@ -658,7 +658,7 @@ function exportOutcome() {
border-radius: 6px;
color: #a9ecff;
background: rgba(7, 54, 78, 0.72);
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 800;
line-height: 1.2;
text-decoration: none;
@ -673,7 +673,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@ -768,7 +768,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@ -785,7 +785,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@ -795,7 +795,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
font-size: 10px;
font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@ -842,7 +842,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -863,7 +863,7 @@ function exportOutcome() {
.upload-tip {
margin: 0 0 18px;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -885,7 +885,7 @@ function exportOutcome() {
border-right: 1px solid rgba(134, 220, 255, 0.24);
color: #effdff;
background: linear-gradient(180deg, #0b7fb3, #075c88);
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 900;
text-align: center;
}
@ -918,14 +918,14 @@ function exportOutcome() {
.serial-cell,
.task-name-cell {
color: #eafaff;
font-size: 16px;
font-size: var(--student-fs-h2);
font-weight: 800;
text-align: center;
}
.desc-cell {
color: #d1e8f5;
font-size: 14px;
font-size: var(--student-fs-body);
line-height: 1.75;
text-align: center;
}
@ -983,14 +983,14 @@ function exportOutcome() {
color: #ffffff;
background: linear-gradient(95deg, #10a7d5, #0878af);
box-shadow: 0 12px 24px rgba(0, 138, 220, 0.24);
font-size: 15px;
font-size: var(--student-fs-button-lg);
font-weight: 900;
cursor: pointer;
}
.upload-file-name {
color: #9fe8ff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
}
@ -1010,13 +1010,13 @@ function exportOutcome() {
display: block;
margin-bottom: 8px;
color: #69ddff;
font-size: 18px;
font-size: var(--student-fs-h1);
font-weight: 900;
}
strong {
color: #f1fbff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.5;
}
}
@ -1034,7 +1034,7 @@ function exportOutcome() {
border-radius: 20px;
color: #d7ecff;
background: rgba(1, 14, 26, 0.72);
font-size: 14px;
font-size: var(--student-fs-body);
font-weight: 700;
line-height: 1.7;
}
@ -1051,20 +1051,20 @@ function exportOutcome() {
h4 {
margin: 0 0 8px;
color: #ffffff;
font-size: 18px;
font-size: var(--student-fs-h1);
}
p {
margin: 0;
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
}
:deep(.el-form-item__label) {
color: #dff5ff;
font-size: 15px;
font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.8;
}
@ -1120,7 +1120,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
font-size: 24px;
font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@ -1166,21 +1166,21 @@ function exportOutcome() {
}
.workbench-head h3 {
font-size: 26px !important;
font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
.workbench-head .section-eyebrow {
color: #71dfff;
font-size: 12px;
font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
.workbench-description {
color: #d7ecff !important;
font-size: 15px !important;
font-size: var(--student-fs-body) !important;
font-weight: 400;
line-height: 1.8 !important;
}
@ -1196,7 +1196,7 @@ function exportOutcome() {
color: #e9fbff !important;
background: rgba(17, 126, 178, 0.36) !important;
box-shadow: none !important;
font-size: 14px !important;
font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
line-height: 1 !important;
}
@ -1218,7 +1218,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
font-size: 22px;
font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@ -1227,7 +1227,7 @@ function exportOutcome() {
.process-intro,
.upload-tip {
color: #d7ecff;
font-size: 15px;
font-size: var(--student-fs-body);
line-height: 1.8;
}
@ -1242,7 +1242,7 @@ function exportOutcome() {
padding: 12px;
border-right-color: rgba(77, 167, 220, 0.2);
background: rgba(8, 55, 82, 0.98);
font-size: 14px;
font-size: var(--student-fs-body);
}
td {
@ -1257,7 +1257,7 @@ function exportOutcome() {
.serial-cell,
.task-name-cell,
.desc-cell {
font-size: 14px;
font-size: var(--student-fs-body);
}
.process-textarea {
@ -1282,13 +1282,13 @@ function exportOutcome() {
border-radius: 999px !important;
background: linear-gradient(95deg, #0b84bd, #096491) !important;
box-shadow: none !important;
font-size: 14px !important;
font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
}
.upload-file-name {
color: #9fe8ff;
font-size: 13px;
font-size: var(--student-fs-body-sm);
font-weight: 700;
}
}

@ -14,7 +14,8 @@ import createVitePlugins from "./vite/plugins";
export default defineConfig(({ mode, command }) => {
const env = loadEnv(mode, process.cwd());
const { VITE_APP_ENV } = env;
const backendTarget = "http://127.0.0.1:7548";
// 开发环境后端地址:连本地用 http://127.0.0.1:7548连线上用 http://120.79.161.177:8999
const backendTarget = "http://120.79.161.177:8999";
return {
// 部署生产环境和开发环境下的URL。
// 默认情况下vite 会假设你的应用是被部署在一个域名的根路径上

Loading…
Cancel
Save