%exam-pill-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; min-height: 40px; padding: 0 18px; border-radius: 999px; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease; } /* * 学生端考试模块主题:令牌、面板材质、按钮与 Element Plus 深色覆盖。 * 规范见 docs/student-training-ui-standard.md 第 14 节;页面 scoped 样式不得再定义另一套 --exam-*。 */ .exam-page { --exam-text: #e8f5ff; --exam-text-strong: #ffffff; --exam-secondary: #d7ecff; --exam-muted: #8eafc2; --exam-accent: #71dfff; --exam-panel: linear-gradient(145deg, rgba(6, 34, 58, 0.9), rgba(3, 15, 27, 0.94)); --exam-panel-border: rgba(49, 151, 221, 0.34); --exam-card: rgba(1, 14, 26, 0.72); --exam-card-border: rgba(0, 180, 255, 0.22); --exam-line: rgba(127, 186, 215, 0.22); --exam-ok: #57d9a8; --exam-bad: #ff9b86; --exam-pending: #7fd0ff; --exam-current: #ffc861; --exam-primary-gradient: linear-gradient(110deg, #0b84bd, #096491); --exam-primary-border: rgba(92, 224, 255, 0.7); --exam-active-gradient: linear-gradient(110deg, #0a6b9e, #0a5c86); --exam-outline-bg: rgba(17, 126, 178, 0.36); --exam-outline-border: rgba(99, 217, 255, 0.55); box-sizing: border-box; color: var(--exam-text); border: 1px solid var(--exam-panel-border); border-radius: 14px; background: var(--exam-panel); box-shadow: 0 14px 36px rgba(0, 12, 30, 0.38), inset 0 1px 0 rgba(173, 225, 255, 0.08), 0 0 18px rgba(16, 109, 189, 0.25); h1, h2, h3 { color: var(--exam-text-strong); } p { color: var(--exam-muted); } /* 第 6.1 节 小型轮廓按钮 */ .exam-outline-action { @extend %exam-pill-action; border: 1px solid var(--exam-outline-border); background: var(--exam-outline-bg); color: #e9fbff; &:hover:not(:disabled) { transform: translateY(-1px); border-color: rgba(116, 235, 255, 0.85); background: rgba(18, 146, 204, 0.5); } &:disabled { opacity: 0.45; cursor: not-allowed; } } /* 第 6.2 节 常规主按钮 */ .exam-primary-action { @extend %exam-pill-action; border: 1px solid var(--exam-primary-border); background: var(--exam-primary-gradient); color: #ffffff; &:hover:not(:disabled) { transform: translateY(-1px); border-color: rgba(116, 235, 255, 0.85); } &:disabled { opacity: 0.45; cursor: not-allowed; } } /* 第 6.3 节 底部大操作按钮 */ .exam-submit-action { display: inline-flex; align-items: center; justify-content: center; min-width: 172px; height: 64px; padding: 0 28px; border: 1px solid #2c83aa; border-radius: 6px; background: rgba(13, 64, 88, 0.62); color: #dff7ff; font-size: 24px; font-weight: 900; cursor: pointer; transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease; &:hover { transform: translateY(-1px); border-color: rgba(116, 235, 255, 0.85); background: rgba(16, 82, 112, 0.72); } } /* Element Plus 深色覆盖:第 11 节第 4 条 */ .el-button { height: 40px; padding: 0 18px; border: 1px solid var(--exam-outline-border); border-radius: 999px; background: var(--exam-outline-bg); color: #e9fbff; font-size: 14px; font-weight: 800; &:hover, &:focus { border-color: rgba(116, 235, 255, 0.85); background: rgba(18, 146, 204, 0.5); color: #f2fdff; } &.is-circle { width: 40px; padding: 0; border-radius: 50%; } &.el-button--primary { border-color: var(--exam-primary-border); background: var(--exam-primary-gradient); color: #ffffff; &:hover, &:focus { background: var(--exam-primary-gradient); color: #ffffff; } } &.is-text, &.el-button--text { height: auto; padding: 0; border-color: transparent; background: none; color: var(--exam-accent); font-weight: 700; &:hover, &:focus { background: none; border-color: transparent; color: #a8efff; } } &:disabled { opacity: 0.45; cursor: not-allowed; } &:disabled:not(.el-button--primary):hover { background: var(--exam-outline-bg); } } .el-tag { border: 1px solid rgba(106, 226, 255, 0.45); border-radius: 999px; background: rgba(0, 127, 184, 0.25); color: var(--exam-secondary); &.el-tag--success { border-color: rgba(87, 217, 168, 0.55); background: rgba(87, 217, 168, 0.16); color: #b7f4dc; } &.el-tag--danger { border-color: rgba(255, 155, 134, 0.55); background: rgba(255, 155, 134, 0.16); color: #ffd3c8; } &.el-tag--info { border-color: rgba(127, 208, 255, 0.45); background: rgba(127, 208, 255, 0.14); color: #d6efff; } } .el-input__wrapper, .el-textarea__inner { background: #0f1a24; box-shadow: 0 0 0 1px rgba(45, 95, 126, 0.95) inset; border-radius: 14px; color: var(--exam-text); } .el-input__inner { color: var(--exam-text); } .el-textarea__inner { padding: 12px 14px; line-height: 1.65; } .el-input__inner::placeholder, .el-textarea__inner::placeholder { color: #8299aa; } .el-input__wrapper.is-focus, .el-textarea__inner:focus { box-shadow: 0 0 0 1px rgba(92, 224, 255, 0.7) inset, 0 0 0 3px rgba(0, 174, 255, 0.13); } /* 第 7.3 节 选项:整行为深色卡,选中用激活渐变,圆点不再是默认蓝色 */ .el-radio, .el-checkbox { margin: 0; height: auto; padding: 14px 16px; border: 1px solid rgba(127, 186, 215, 0.35); border-radius: 14px; background: var(--exam-card); white-space: normal; transition: border-color 0.2s ease, background 0.2s ease; &:hover { border-color: rgba(99, 217, 255, 0.55); } .el-radio__inner, .el-checkbox__inner { width: 18px; height: 18px; border: 1px solid rgba(99, 217, 255, 0.55); background: #0f1a24; } .el-radio__inner { border-radius: 50%; } .el-radio__inner::after { background: var(--exam-accent); } .el-checkbox__inner { border-radius: 5px; } .el-checkbox__inner::after { border-color: #04121d; border-width: 2px; } .el-radio__label, .el-checkbox__label { display: flex; align-items: flex-start; gap: 12px; line-height: 1.5; color: var(--exam-secondary); font-weight: 400; } &.is-checked { border-color: var(--exam-primary-border); background: var(--exam-active-gradient); .el-radio__label, .el-checkbox__label { color: #ffffff; } .el-radio__inner, .el-checkbox__inner { border-color: var(--exam-accent); background: #062430; } } } .el-empty__description p { color: var(--exam-muted); } .el-loading-mask { background-color: rgba(3, 15, 27, 0.72); } .el-icon { color: inherit; } } @media (max-width: 900px) { .exam-page .exam-submit-action { width: 100%; } }