/* 原框架白底主题。只改颜色和已有布局，不换页面。 */

html {
  color-scheme: light;
  background: #f4f6f8;
  --el-color-primary: #0f766e;
  --el-color-primary-light-3: #14b8a6;
  --el-color-primary-light-5: #5eead4;
  --el-color-primary-light-7: #99f6e4;
  --el-color-primary-light-8: #ccfbf1;
  --el-color-primary-light-9: #f0fdfa;
  --el-color-primary-dark-2: #115e59;
}
html.dark {
  color-scheme: light !important;
  --el-bg-color: #ffffff;
  --el-bg-color-overlay: #ffffff;
  --el-bg-color-page: #f4f6f8;
  --el-text-color-primary: #303133;
  --el-text-color-regular: #606266;
  --el-text-color-secondary: #909399;
  --el-text-color-placeholder: #a8abb2;
  --el-border-color: #dcdfe6;
  --el-border-color-light: #e4e7ed;
  --el-border-color-lighter: #ebeef5;
  --el-border-color-extra-light: #f2f6fc;
  --el-fill-color: #f0f2f5;
  --el-fill-color-light: #f5f7fa;
  --el-fill-color-lighter: #fafafa;
  --el-fill-color-blank: #ffffff;
  --el-mask-color: rgba(255, 255, 255, .92);
  --el-table-bg-color: #ffffff;
  --el-table-tr-bg-color: #ffffff;
  --el-table-header-bg-color: #f7f8fa;
  --el-table-row-hover-bg-color: #f5f7fa;
  --el-table-header-text-color: #909399;
  --el-table-text-color: #606266;
  --el-table-border-color: #ebeef5;
  --el-menu-bg-color: #ffffff;
  --el-menu-text-color: #303133;
  --el-menu-hover-bg-color: #f3f6f8;
  --el-menu-active-color: #0f766e;
}

.layout .el-aside {
  width: 208px !important;
  min-width: 208px !important;
  flex: 0 0 208px !important;
  background: #ffffff !important;
  border-right: 1px solid #e6e8eb !important;
}
.layout .aside-box,
.layout .el-menu,
.layout .el-menu--collapse {
  background: transparent !important;
  width: 208px !important;
  border-right: 0 !important;
}
.layout .logo {
  height: 52px !important;
  box-sizing: border-box !important;
  justify-content: flex-start !important;
  padding: 0 16px !important;
  border-bottom: 1px solid #eef0f3 !important;
  background: #ffffff !important;
}
.layout .logo-text,
.layout .logo span {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #1f2933 !important;
}
.layout .el-menu--collapse > .el-menu-item > span,
.layout .el-menu--collapse > .el-sub-menu > .el-sub-menu__title > span,
.layout .el-menu-item span,
.layout .el-sub-menu__title span,
.layout .el-menu--collapse .el-sub-menu__icon-arrow {
  height: auto !important;
  width: auto !important;
  visibility: visible !important;
  overflow: visible !important;
  display: inline !important;
  opacity: 1 !important;
}
.layout .el-menu-item,
.layout .el-sub-menu__title {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  height: 40px !important;
  line-height: 40px !important;
  margin: 2px 8px !important;
  width: calc(100% - 16px) !important;
  border-radius: 8px !important;
  padding: 0 12px !important;
  color: #303133 !important;
}
.layout .el-menu-item .el-icon,
.layout .el-sub-menu__title .el-icon {
  margin-right: 8px !important;
  width: 18px !important;
  font-size: 16px !important;
  color: #606266 !important;
}
.layout .el-menu-item.is-active {
  background: #e7f5f2 !important;
  color: #0f766e !important;
}
.layout .el-menu-item.is-active .el-icon {
  color: #0f766e !important;
}
.layout .el-menu-item:hover,
.layout .el-sub-menu__title:hover {
  background: #f3f6f8 !important;
}

.layout .el-header,
.layout .header-lf,
.layout .header-ri {
  height: 48px !important;
  background: #ffffff !important;
  color: #303133 !important;
}
.layout .el-header {
  border-bottom: 1px solid #e6e8eb !important;
}
.layout .tabs-box {
  height: 36px !important;
  background: #ffffff !important;
  border-bottom: 1px solid #e6e8eb !important;
}
.layout .el-footer {
  display: none !important;
}
.layout .el-main {
  padding: 10px 12px 16px !important;
  background: #f4f6f8 !important;
}

.channels-page,
.cards-page,
.admin-page,
.send-page {
  gap: 8px !important;
}
.stats-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}
.stat-card,
.card,
.list-card {
  background: #ffffff !important;
  border: 1px solid #e6e8eb !important;
  box-shadow: none !important;
}
.stat-card {
  padding: 8px 12px !important;
  border-radius: 10px !important;
  gap: 10px !important;
  min-height: 0 !important;
}
.sc-ico {
  width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
}
.sc-num {
  font-size: 18px !important;
  line-height: 1 !important;
  color: #1f2933 !important;
}
.sc-label {
  margin-top: 2px !important;
  color: #909399 !important;
}
.card,
.list-card {
  border-radius: 10px !important;
  padding: 8px 12px 10px !important;
}

.line-bar {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  padding: 4px 4px 8px !important;
  margin: 0 0 4px !important;
}
.line-bar select,
.line-bar input,
.channels-page select,
.cards-page select,
.admin-page select,
.el-dialog select,
.el-overlay select {
  height: 32px !important;
  min-width: 148px !important;
  background: #ffffff !important;
  color: #303133 !important;
  border: 1px solid #dcdfe6 !important;
  border-radius: 8px !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 10px !important;
  font-size: 13px !important;
}
.line-bar input {
  width: 280px !important;
  max-width: 100% !important;
}
.line-bar input::placeholder,
.cards-page input::placeholder,
.channels-page input::placeholder {
  color: #a8abb2 !important;
}
.line-bar option,
.channels-page option,
.cards-page option,
.el-dialog option {
  background: #ffffff;
  color: #303133;
}

.reg-card {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 0 8px !important;
  padding: 8px 10px !important;
  border-radius: 10px !important;
  background: #f8fafb !important;
  border: 1px solid #e6eaf0 !important;
}
.reg-qr,
.reg-card .reg-qr,
.reg-card .el-image.reg-qr {
  width: 48px !important;
  height: 48px !important;
  padding: 3px !important;
  border-radius: 8px !important;
  flex: 0 0 48px !important;
  background: #ffffff !important;
}
.reg-qr .el-image__inner,
.reg-card img {
  width: 42px !important;
  height: 42px !important;
}
.reg-meta {
  min-width: 0 !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
.reg-title {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #303133 !important;
}
.reg-sub {
  display: none !important;
}
.reg-meta .mono,
.reg-meta .mono.link {
  flex: 1 1 220px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: normal !important;
  margin: 0 !important;
  background: #ffffff !important;
  color: #0f766e !important;
}

.list-head {
  margin: 2px 0 8px !important;
  gap: 8px !important;
}
.list-title {
  font-size: 14px !important;
  color: #303133 !important;
}
.list-actions {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
}

.layout .el-table {
  font-size: 13px !important;
  --el-table-bg-color: #ffffff;
  --el-table-tr-bg-color: #ffffff;
  --el-table-header-bg-color: #f7f8fa;
  --el-table-row-hover-bg-color: #f5f7fa;
  --el-table-header-text-color: #909399;
  --el-table-text-color: #303133;
  --el-table-border-color: #ebeef5;
  background: #ffffff !important;
  color: #303133 !important;
}
.layout .el-table .el-table__cell {
  padding: 6px 0 !important;
}
.layout .el-table th.el-table__cell {
  font-weight: 650 !important;
  background: #f7f8fa !important;
  color: #606266 !important;
}
.layout .el-table .cell {
  line-height: 20px !important;
  color: #303133;
}
.user-table .link-cell {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0 !important;
}
.user-table .link-cell .mono {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: normal !important;
  color: #303133 !important;
}
.user-table .qr-cell,
.user-table .el-image.qr-cell,
.user-table .qr-cell .el-image__inner {
  width: 28px !important;
  height: 28px !important;
  border-radius: 6px !important;
  background: #ffffff !important;
}
.user-table .ops,
.ops {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 2px !important;
  white-space: nowrap !important;
}
.layout .el-pagination {
  margin-top: 8px !important;
  justify-content: flex-end !important;
}

.cards-page .gen-row {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
.cards-page .gen-row > .el-button {
  margin-left: auto !important;
}
.cards-page .card-sub {
  margin-bottom: 8px !important;
}
.cards-page .el-radio-button__inner {
  background: #ffffff !important;
  border-color: #dcdfe6 !important;
  color: #606266 !important;
}
.cards-page .el-radio-button__original-radio:checked + .el-radio-button__inner {
  background: #0f766e !important;
  border-color: #0f766e !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.admin-page .el-tag {
  height: 22px !important;
  padding: 0 6px !important;
  margin: 0 4px 2px 0 !important;
  border-radius: 6px !important;
}
.admin-page .el-textarea__inner {
  min-height: 72px !important;
}

.layout .el-button {
  border-radius: 8px !important;
  font-weight: 650;
}
.layout .el-button + .el-button {
  margin-left: 0 !important;
}
.list-actions .el-button + .el-button,
.ops .el-button + .el-button,
.line-bar .el-button,
.gen-row .el-button {
  margin-left: 0 !important;
}
.layout .el-button--small:not(.is-link):not(.is-text) {
  height: 30px !important;
  padding: 0 12px !important;
}
.layout .el-button--primary:not(.is-link):not(.is-text):not(.is-plain) {
  background: #0f766e !important;
  border-color: #0f766e !important;
  color: #ffffff !important;
}
.layout .el-button--primary.is-plain:not(.is-link) {
  background: #f0fdfa !important;
  color: #0f766e !important;
  border-color: #99f6e4 !important;
}
.layout .el-button--success.is-plain:not(.is-link) {
  background: #f0fdf4 !important;
  color: #15803d !important;
  border-color: #86efac !important;
}
.layout .el-button--danger:not(.is-link):not(.is-text):not(.is-plain) {
  background: #e11d48 !important;
  border-color: #e11d48 !important;
  color: #ffffff !important;
}
.layout .el-button--danger.is-plain:not(.is-link) {
  background: #fff1f2 !important;
  color: #e11d48 !important;
  border-color: #fecdd3 !important;
}
.layout .el-button.is-link,
.layout .el-button.is-text {
  height: auto !important;
  padding: 0 4px !important;
  background: transparent !important;
  border-color: transparent !important;
  font-weight: 650 !important;
}

.layout .el-input__wrapper,
.layout .el-select__wrapper,
.layout .el-textarea__inner,
.layout .el-input-number,
.el-dialog .el-input__wrapper,
.el-dialog .el-select__wrapper,
.el-dialog .el-textarea__inner,
.el-drawer .el-input__wrapper,
.el-drawer .el-select__wrapper {
  background: #ffffff !important;
  box-shadow: 0 0 0 1px #dcdfe6 inset !important;
  color: #303133 !important;
}
.layout .el-input__inner,
.layout .el-textarea__inner,
.layout .el-select__placeholder,
.layout .el-select__selected-item,
.el-dialog .el-input__inner,
.el-dialog .el-select__selected-item,
.el-dialog .el-textarea__inner {
  color: #303133 !important;
}
.layout .el-input__inner::placeholder,
.layout .el-textarea__inner::placeholder,
.el-dialog .el-input__inner::placeholder,
.el-dialog .el-textarea__inner::placeholder {
  color: #a8abb2 !important;
}
.layout .el-input-number__decrease,
.layout .el-input-number__increase,
.cards-page .el-input-number__decrease,
.cards-page .el-input-number__increase {
  background: #f5f7fa !important;
  color: #606266 !important;
  border-color: #dcdfe6 !important;
}

.login-page,
.login-container {
  background: #f4f6f8 !important;
}
.login-page .submit-btn,
.login-form-body .el-button--primary {
  background: #0f766e !important;
  border-color: #0f766e !important;
  border-radius: 10px !important;
  color: #ffffff !important;
}
.auth-card {
  border-radius: 16px !important;
  background: #ffffff !important;
}

@media (max-width: 900px) {
  .stats-row {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .layout .el-aside,
  .layout .el-menu,
  .layout .el-menu--collapse {
    width: 72px !important;
    min-width: 72px !important;
    flex-basis: 72px !important;
  }
  .layout .el-menu-item span,
  .layout .el-sub-menu__title span,
  .layout .logo-text {
    display: none !important;
  }
}

.f-lbl{font-size:12px !important;color:#909399 !important;flex:none !important}
.line-bar .f-ctl{min-width:128px !important;width:auto !important}
.line-bar .f-key{flex:1 1 240px !important;width:auto !important;min-width:200px !important;max-width:460px !important}

.records-page .head { margin-bottom: 8px !important; }
.records-page .title { font-size: 15px !important; color: #303133 !important; }
.records-page .sub { color: #909399 !important; }
.records-page .rec-result { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.records-page .rec-count { font-size: 12px; color: #909399; line-height: 1.2; }
.rec-detail { display: flex; flex-direction: column; gap: 4px; color: #303133; }
.rec-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.rec-label { font-size: 12px; color: #909399; margin-top: 8px; }
.rec-box { background: #f7f8fa; border: 1px solid #ebeef5; border-radius: 8px; padding: 8px 10px; white-space: pre-wrap; word-break: break-word; font-size: 13px; line-height: 1.5; font-family: inherit; margin: 0; color: #303133; }
.rec-fail { color: #c45656; background: #fef0f0; border-color: #fde2e2; }

.teacher-manage.admin-page > .card {
  padding: 14px 16px 8px !important;
}
.teacher-manage .tm-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 10px;
}
.teacher-manage .tm-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.teacher-manage .tm-count {
  font-size: 12px;
  font-weight: 500;
  color: #909399;
  background: #f4f6f8;
  border-radius: 999px;
  padding: 0 8px;
  line-height: 20px;
}
.teacher-manage .tm-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.teacher-manage .tm-search {
  width: 240px;
}
.teacher-manage .tm-note {
  background: #f7f8fa;
  border: 1px solid #ebeef5;
  border-radius: 8px;
  color: #909399;
  font-size: 12px;
  line-height: 1.5;
  padding: 8px 12px;
  margin: 0 0 12px;
}
.teacher-manage .tm-scroll {
  overflow-x: auto;
  margin: 0 -4px;
}
.teacher-manage .tm-table {
  width: 100%;
  min-width: 980px;
  border-collapse: separate;
  border-spacing: 0;
}
.teacher-manage .tm-table th {
  position: sticky;
  top: 0;
  text-align: left;
  font-size: 12px;
  font-weight: 500;
  color: #909399;
  background: #f7f8fa;
  padding: 10px 12px;
  border-bottom: 1px solid #ebeef5;
  white-space: nowrap;
}
.teacher-manage .tm-table td {
  padding: 14px 12px;
  border-bottom: 1px solid #ebeef5;
  vertical-align: top;
  color: #303133;
  background: #ffffff;
}
.teacher-manage .tm-table tbody tr:last-child td {
  border-bottom: none;
}
.teacher-manage .tm-table tbody tr:hover td {
  background: #fafbfc;
}
.teacher-manage .tm-table th:nth-child(1),
.teacher-manage .tm-table td:nth-child(1) { width: 188px; }
.teacher-manage .tm-table th:nth-child(2),
.teacher-manage .tm-table td:nth-child(2) { width: 64px; text-align: center; }
.teacher-manage .tm-table th:nth-child(3),
.teacher-manage .tm-table td:nth-child(3) { width: 210px; }
.teacher-manage .tm-table th:nth-child(5),
.teacher-manage .tm-table td:nth-child(5) { width: 88px; }
.teacher-manage .tm-who {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.teacher-manage .tm-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #f0fdfa;
  color: #0f766e;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 15px;
  flex: none;
}
.teacher-manage .tm-id { min-width: 0; }
.teacher-manage .tm-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 650;
  color: #303133;
  line-height: 1.35;
}
.teacher-manage .tm-badge {
  font-size: 12px;
  font-weight: 500;
  color: #0f766e;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  border-radius: 999px;
  padding: 0 6px;
  line-height: 18px;
  flex: none;
}
.teacher-manage .tm-muted {
  color: #909399;
  font-size: 12px;
  line-height: 1.45;
  margin-top: 2px;
}
.teacher-manage .tm-users {
  font-size: 15px;
  font-weight: 650;
  color: #303133;
  line-height: 36px;
}
.teacher-manage .tm-bot-name {
  font-size: 13px;
  color: #303133;
  line-height: 1.45;
}
.teacher-manage .tm-bot .el-button {
  margin-top: 2px;
}
.teacher-manage .tm-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
}
.teacher-manage .tm-link {
  display: grid;
  grid-template-columns: 76px minmax(120px, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  background: #f7f8fa;
  border: 1px solid #ebeef5;
  border-radius: 8px;
  padding: 6px 8px 6px 10px;
}
.teacher-manage .tm-label {
  color: #606266;
  font-size: 12px;
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.teacher-manage .tm-url {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #0f766e;
  font-size: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.teacher-manage .tm-link-ops,
.teacher-manage .tm-ops {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
}
.teacher-manage .tm-add {
  padding-left: 2px !important;
}
.teacher-manage .tm-empty {
  text-align: center;
  color: #909399;
  padding: 28px 12px !important;
}

.teacher-manage .tm-bot-line {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 22px;
  margin-top: 2px;
}
.teacher-manage .tm-at {
  color: #909399;
  font-size: 12px;
  line-height: 1.4;
}
.teacher-manage .tm-bot-line .el-button {
  margin-top: 0 !important;
}
