* { box-sizing: border-box; }
body {
  margin: 0; font-family: system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: #f5f7fa; color: #1f2329;
}
.topbar {
  display: flex; align-items: center; gap: 16px;
  background: #fff; padding: 0 20px; height: 56px;
  box-shadow: 0 1px 6px rgba(0,0,0,.06); position: sticky; top: 0; z-index: 10;
}
.brand { font-weight: 700; font-size: 17px; }
.topnav { display: flex; gap: 4px; margin-left: 12px; }
.navbtn {
  border: 0; background: transparent; padding: 8px 14px; border-radius: 8px;
  font-size: 14px; color: #4e5969; cursor: pointer;
}
.navbtn.active { background: #eaf0ff; color: #3b5bff; font-weight: 600; }
.user { margin-left: auto; font-size: 14px; color: #4e5969; display: flex; gap: 10px; align-items: center; }
.link { border: 0; background: none; color: #3b5bff; cursor: pointer; font-size: 13px; }

main { padding: 22px; max-width: 1180px; margin: 0 auto; }
.view { animation: fade .2s ease; }
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; } }
.hometitle { font-size: 18px; margin: 4px 0 18px; color: #1f2329; }

/* 模块色块 */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.modcard {
  border-radius: 16px; padding: 22px 20px; color: #fff; cursor: pointer;
  min-height: 150px; display: flex; flex-direction: column; position: relative;
  box-shadow: 0 6px 18px rgba(0,0,0,.10); transition: transform .15s, box-shadow .15s;
}
.modcard:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.modcard .ic { font-size: 34px; }
.modcard .mt { font-size: 19px; font-weight: 700; margin-top: 10px; }
.modcard .md { font-size: 13px; opacity: .92; margin-top: 6px; line-height: 1.5; flex: 1; }
.modcard .count { font-size: 13px; opacity: .95; margin-top: 10px; }
.c-blue { background: linear-gradient(135deg, #4e6ef2, #6a8bff); }
.c-green { background: linear-gradient(135deg, #07c160, #2fd07f); }
.c-indigo { background: linear-gradient(135deg, #7b5cff, #9b7bff); }
.c-teal { background: linear-gradient(135deg, #12b5a5, #2fd3c2); }
.c-gold { background: linear-gradient(135deg, #d48806, #f0a020); }
.statcards .card { background: #fff; }

/* 看板卡片 */
.statcards { margin-bottom: 16px; }
.statcards .card h3 { margin: 0 0 8px; font-size: 14px; color: #86909c; }
.statcards .big { font-size: 30px; font-weight: 700; color: #1f2329; }
.twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.card { background: #fff; border-radius: 14px; padding: 16px 18px; box-shadow: 0 2px 10px rgba(0,0,0,.05); }
.card h3 { margin: 0 0 12px; font-size: 15px; }
.bar { display: flex; align-items: center; gap: 8px; font-size: 13px; margin: 6px 0; }
.bar .track { flex: 1; background: #f0f2f5; border-radius: 6px; height: 10px; overflow: hidden; }
.bar .fill { height: 100%; background: #4e6ef2; border-radius: 6px; }
.bar span:last-child { width: 28px; text-align: right; color: #4e5969; }
.dashmod { margin-bottom: 22px; }
.dashmod-h { font-size: 16px; color: #1f2329; margin: 4px 0 12px; padding-left: 10px; border-left: 4px solid #4e6ef2; }
.dc-mod { border: 1px solid #e5e6eb; border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; background: #fafbfc; }
.dc-mod h4 { margin: 0 0 10px; font-size: 14px; color: #4e5969; }
.dc-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed #f0f2f5; font-size: 14px; }
.dc-row:last-child { border-bottom: none; }
.dc-row label { display: flex; align-items: center; gap: 8px; }
.dc-row select { padding: 5px 8px; border: 1px solid #dcdfe6; border-radius: 8px; font-size: 13px; }

/* 工具条与表格 */
.crumb { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.crumb h2 { margin: 0; font-size: 19px; }
.back { border: 0; background: #eef1f6; color: #4e5969; padding: 7px 12px; border-radius: 8px; cursor: pointer; font-size: 13px; }
.toolbar { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.toolbar input, .toolbar select {
  padding: 9px 12px; border: 1px solid #dcdfe6; border-radius: 9px; font-size: 14px; background: #fff;
}
.toolbar input { min-width: 240px; }
.primary { border: 0; background: #3b5bff; color: #fff; padding: 9px 16px; border-radius: 9px; cursor: pointer; font-size: 14px; }
.primary:hover { background: #2f4ad6; }
/* 工具栏彩色图标块按钮（老师管理 / 排课协调 等） */
.toolbar-actions { display: flex; gap: 10px; }
.blkbtn { display: inline-flex; align-items: center; gap: 8px; border: 0; color: #fff; padding: 9px 16px; border-radius: 10px; cursor: pointer; font-size: 14px; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.blkbtn:hover { filter: brightness(1.05); }
.blk-ico { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; background: rgba(255,255,255,.25); font-size: 15px; line-height: 1; }
.blkbtn.teachers { background: linear-gradient(135deg,#1677ff,#3b5bff); }
.blkbtn.schedule { background: linear-gradient(135deg,#d48806,#f5a623); }
.tablewrap { background: #fff; border-radius: 14px; box-shadow: 0 2px 10px rgba(0,0,0,.05); overflow: hidden; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 12px 14px; border-bottom: 1px solid #f0f2f5; }
th { background: #fafbfc; color: #86909c; font-weight: 600; font-size: 13px; }
tbody tr { cursor: pointer; }
tbody tr:hover { background: #f7f9ff; }

.badge { padding: 3px 9px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.badge.normal { background: #e8f5ee; color: #07a050; }
.badge.soon { background: #fff4e0; color: #d48806; }
.badge.overdue { background: #fdecec; color: #e23a1e; }
.badge.renew { background: #fff1e6; color: #d4380d; border: 1px solid #ffbb96; }
.detailactions { display: flex; gap: 14px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #f0f2f5; }

/* 弹窗 */
.modal { position: fixed; inset: 0; background: rgba(0,0,0,.4); display: none; align-items: center; justify-content: center; z-index: 50; padding: 16px; }
.modal:not([hidden]) { display: flex; }
.modalbox { background: #fff; border-radius: 16px; padding: 22px 24px; width: 460px; max-width: calc(100vw - 32px); max-height: 90vh; overflow: auto; }
.modalbox.wide { width: 720px; }
.modalbox h3 { margin: 0 0 16px; font-size: 18px; }
#customerForm, #financeForm, #studyForm, #trainingForm { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
#customerForm label, #financeForm label, #studyForm label, #trainingForm label { display: flex; flex-direction: column; font-size: 13px; color: #4e5969; gap: 5px; min-width: 0; }
#customerForm label.full, #financeForm label.full, #studyForm label.full, #trainingForm label.full { grid-column: 1 / -1; }
#customerForm input, #customerForm select, #customerForm textarea,
#financeForm input, #financeForm select, #financeForm textarea,
#studyForm input, #studyForm select, #studyForm textarea,
#trainingForm input, #trainingForm select, #trainingForm textarea {
  padding: 9px 11px; border: 1px solid #dcdfe6; border-radius: 9px; font-size: 14px; font-family: inherit; width: 100%; box-sizing: border-box;
}
textarea { resize: vertical; min-height: 64px; }
.modalactions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.modalactions.sticky { position: sticky; bottom: 0; background: #fff; padding: 14px 0 4px; margin-top: 12px; box-shadow: 0 -8px 14px rgba(255,255,255,.92); z-index: 2; }
#studyForm { grid-template-columns: 1fr; } /* 留学表单各彩色区块纵向铺满，更清晰 */

.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-bottom: 16px; }
.fields > div { font-size: 14px; padding: 6px 0; border-bottom: 1px dashed #eef0f4; }
.fields b { display: inline-block; min-width: 90px; color: #86909c; font-weight: 500; }
#detailExtra h4 { margin: 0 0 10px; font-size: 15px; }
.followups, .progress { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.fu, .pr { background: #f7f9ff; border-radius: 10px; padding: 10px 12px; }
.fu .meta, .pr .meta { font-size: 12px; color: #86909c; margin-bottom: 4px; }
.fuform, .prform { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.fuform label, .prform label { display: flex; flex-direction: column; font-size: 13px; color: #4e5969; gap: 5px; }
.fuform label.full, .prform label.full { grid-column: 1 / -1; }
.fuform input, .fuform select, .fuform textarea, .prform input, .prform select, .prform textarea {
  padding: 8px 10px; border: 1px solid #dcdfe6; border-radius: 9px; font-size: 14px; font-family: inherit;
}
.publink { background: #f0f5ff; border: 1px solid #c9d8ff; border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; font-size: 13px; }
.publink .url { font-family: monospace; word-break: break-all; color: #3b5bff; }
.publink button { margin-top: 8px; }
.feecards { display: flex; gap: 12px; margin-bottom: 6px; flex-wrap: wrap; }
.fc { flex: 1; min-width: 120px; background: #f5f9ff; border: 1px solid #e6efff; border-radius: 12px; padding: 14px; text-align: center; }
.fc-n { font-size: 20px; font-weight: 700; color: #1677ff; }
.fc-l { font-size: 13px; color: #86909c; margin-top: 2px; }
.feetitle { margin: 16px 0 6px; font-size: 14px; color: #4e5969; }
[data-admin].muted { opacity: .6; }
[data-admin].muted input, [data-admin].muted select { background: #f5f7fa; color: #86909c; }

.toast { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background: #1f2329; color: #fff; padding: 11px 18px; border-radius: 10px; font-size: 14px; z-index: 100; box-shadow: 0 6px 20px rgba(0,0,0,.2); }
.importbox p { color: #86909c; font-size: 14px; }
@media (max-width: 720px) { .twocol { grid-template-columns: 1fr; } #customerForm, #financeForm, #studyForm, #trainingForm, .fields { grid-template-columns: 1fr; } }

/* 排课协调看板 */
.legend { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #4e5969; }
.legend .lg { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.lg-teacher { background: #d6f5e3; }
.lg-student { background: #d6e4ff; }
.lg-overlap { background: #b6e3d4; }
.lg-sched { background: #ffd591; }
.schedulegrid { overflow-x: auto; background: #fff; border-radius: 14px; padding: 8px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
table.sgrid { border-collapse: collapse; width: 100%; font-size: 13px; min-width: 720px; }
table.sgrid th, table.sgrid td { border: 1px solid #eef0f4; text-align: center; padding: 0; height: 30px; }
table.sgrid th { background: #fafbfc; color: #4e5969; font-weight: 600; padding: 8px 4px; }
table.sgrid th .d { font-size: 11px; color: #a9aeb8; font-weight: 400; }
table.sgrid td.tcor { background: #fafbfc; color: #86909c; font-weight: 500; white-space: nowrap; padding: 0 8px; }
table.sgrid td.lg-teacher { background: #d6f5e3; }
table.sgrid td.lg-student { background: #d6e4ff; }
table.sgrid td.lg-overlap { background: #b6e3d4; }
table.sgrid td.lg-sched { background: #ffd591; }
table.sgrid td.clickable { cursor: pointer; }
table.sgrid td.clickable:hover { outline: 2px solid #07c160; outline-offset: -2px; }
table.sgrid td .sc { font-size: 11px; color: #874d00; padding: 2px; display: block; line-height: 1.2; }

/* 排课协调：可用时间集中管理 */
.subsec { margin-top: 24px; padding-top: 18px; border-top: 1px solid #eef0f4; }
.subsec h3 { font-size: 16px; margin: 0 0 6px; }
.subsec h4 { font-size: 14px; margin: 0 0 10px; color: #4e5969; }
.url { font-family: monospace; word-break: break-all; color: #3b5bff; }
body:not(.is-admin) .admin-only { display: none !important; }

/* 可用时间周网格（内部「排课协调」与老师端口共用） */
.avail-weeknav { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.avail-weeknav .muted { margin-left: 6px; font-size: 13px; }
.availgrid-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.avail-oneoff { margin-top: 12px; font-size: 13px; color: #4e5969; }
.avail-oneoff summary { cursor: pointer; color: #1677ff; }
.avail-oneoff .row2 { display: flex; gap: 10px; margin: 10px 0; }
.avail-oneoff .row2 label { flex: 1; display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #4e5969; }
.avail-oneoff input[type="date"] { font-size: 16px; padding: 10px 12px; min-height: 42px; }
.agrid { margin-top: 6px; border: 1px solid #eef0f3; border-radius: 12px; overflow: hidden; background: #fff; }
.agscroll { max-height: 440px; overflow: auto; }
.agrow { display: flex; align-items: stretch; }
.agrow + .agrow { border-top: 1px solid #f0f2f5; }
.ahour { width: 54px; flex: 0 0 54px; font-size: 11px; color: #8a8f99; display: flex; align-items: center; justify-content: center; background: #fafbfc; border-right: 1px solid #f0f2f5; }
.aghead { position: sticky; top: 0; background: #f5f7fa; z-index: 1; }
.ah { font-size: 12px; color: #4e5969; text-align: center; flex: 1; padding: 8px 0; font-weight: 600; }
.acell { flex: 1; min-height: 30px; display: flex; align-items: center; justify-content: center; border-left: 1px solid #f5f7fa; cursor: pointer; }
.acell input { display: none; }
.acell span { width: 100%; height: 100%; min-height: 30px; display: block; background: #fbfdff; border-radius: 6px; margin: 3px; transition: .1s; }
.acell:hover span { background: #e6f4ff; }
.acell input:checked + span { background: #07c160; box-shadow: inset 0 0 0 2px #fff; }

/* 课酬月度确认卡片（内部弹窗与老师端口共用） */
.fcard { border: 1px solid #eef0f3; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
.fcard.done { background: #f7fbff; border-color: #d6e8ff; }
.fcard-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.fcard-h b { font-size: 15px; }
.fcard-b { font-size: 14px; color: #4e5969; margin-bottom: 8px; }
.fcard-b b { color: #1677ff; }
.fcard-foot { font-size: 12px; color: #8a8f99; }
.tag-pend { background: #fff1e6; color: #d4380d; font-size: 12px; padding: 2px 8px; border-radius: 10px; }
.tag-done { background: #e6f4ff; color: #1677ff; font-size: 12px; padding: 2px 8px; border-radius: 10px; }
.muted { color: #8a8f99; font-size: 12px; }

/* 可用时间网格：列头日期标注 + 北京时间提示 */
.agrid .ah .ad { display: block; font-size: 10px; color: #a9aeb8; font-weight: 400; margin-top: 2px; }
.tznote { font-size: 12px; color: #d4380d; background: #fff1e6; border: 1px solid #ffbb96; border-radius: 8px; padding: 6px 10px; margin: 0 0 10px; }
/* 列表分页 */
.pager { display: flex; gap: 10px; align-items: center; justify-content: flex-end; padding: 10px 4px; font-size: 13px; color: #4e5969; }
.pager .link { padding: 4px 12px; border: 1px solid #dcdfe6; border-radius: 8px; }
.pager .link:disabled { color: #c9cdd4; cursor: not-allowed; border-color: #f0f2f5; }

/* ============ 留学模块：彩色字段与三大模块 ============ */
/* 列表彩色标签 */
.chip { display: inline-block; font-size: 12px; padding: 2px 9px; border-radius: 10px; line-height: 1.6; white-space: nowrap; }
.chip-contract { background: #f9f0ff; color: #722ed1; }
.chip-stage { background: #e6f4ff; color: #1677ff; }
.chip-status { background: #f6ffed; color: #389e0d; }

/* 录入表单：分块彩色标题 */
.formsec { border: 1px solid #eef0f3; border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; background: #fff; }
.formsec-h { font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 8px; display: inline-block; margin-bottom: 10px; color: #fff; }
.sec-id .formsec-h { background: #1677ff; }
.sec-stage .formsec-h { background: #722ed1; }
.sec-acad .formsec-h { background: #389e0d; }
.sec-owners .formsec-h { background: #d46b08; }
.sec-plan .formsec-h { background: #08979c; }
.sec-contract .formsec-h { background: #cf1322; }
.formgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 14px; }
.formgrid > label { min-width: 0; }
.formgrid .full { grid-column: 1 / -1; }

/* 详情：彩色信息分组 */
.infogroup { border: 1px solid #eef0f3; border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; background: #fff; }
.ig-h { font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 8px; display: inline-block; margin-bottom: 10px; color: #fff; }
.g-id .ig-h { background: #1677ff; } .g-id { border-left: 4px solid #1677ff; }
.g-stage .ig-h { background: #722ed1; } .g-stage { border-left: 4px solid #722ed1; }
.g-acad .ig-h { background: #389e0d; } .g-acad { border-left: 4px solid #389e0d; }
.g-owners .ig-h { background: #d46b08; } .g-owners { border-left: 4px solid #d46b08; }
.g-contract .ig-h { background: #cf1322; } .g-contract { border-left: 4px solid #cf1322; }
.g-outcome .ig-h { background: #13c2c2; } .g-outcome { border-left: 4px solid #13c2c2; }
.ig-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px 16px; }
.ifo { display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.ifo span { color: #8a8f99; font-size: 12px; }
.ifo b { color: #1f2329; font-weight: 600; word-break: break-word; }

/* 详情：模块卡片 */
.module { border: 1px solid #eef0f3; border-radius: 14px; padding: 16px 18px; margin-top: 16px; background: #fff; }
.module > h3 { margin: 0 0 4px; font-size: 16px; }
.module .sub { color: #86909c; font-size: 13px; margin: 0 0 12px; }
/* 详情：四大模块彩色色块（规划蓝 / 文书粉 / 申请绿 / 签证青，与学生端一致） */
.module.m-plan, .module.m-doc, .module.m-school, .module.m-visa,
.module.m-lessons, .module.m-assess, .module.m-renew { border-left-width: 4px; }
.module.m-plan    { border-left-color: #1677ff; }
.module.m-doc     { border-left-color: #eb2f96; }
.module.m-school  { border-left-color: #389e0d; }
.module.m-visa    { border-left-color: #13c2c2; }
.module.m-lessons { border-left-color: #1677ff; }
.module.m-assess  { border-left-color: #389e0d; }
.module.m-renew   { border-left-color: #d48806; }
.module.m-plan    > h3 { background: #1677ff; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-doc     > h3 { background: #eb2f96; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-school  > h3 { background: #389e0d; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-visa    > h3 { background: #13c2c2; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-lessons > h3 { background: #1677ff; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-assess  > h3 { background: #389e0d; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.module.m-renew   > h3 { background: #d48806; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
/* 老师管理三大板块色块（复用 card 横幅样式） */
.card.m-teachers, .card.m-rate, .card.m-fee { border-left-width: 4px; }
.card.m-teachers { border-left-color: #722ed1; }
.card.m-rate     { border-left-color: #1677ff; }
.card.m-fee      { border-left-color: #d48806; }
.card.m-teachers > h3 { background: #722ed1; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.card.m-rate     > h3 { background: #1677ff; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.card.m-fee      > h3 { background: #d48806; color: #fff; margin: -16px -18px 12px; padding: 13px 18px; border-radius: 14px 14px 0 0; }
.bigtext { width: 100%; min-height: 90px; resize: vertical; padding: 10px 12px; border: 1px solid #dcdfe6; border-radius: 10px; font-size: 14px; font-family: inherit; margin-bottom: 8px; box-sizing: border-box; }
.primary.sm { padding: 7px 14px; font-size: 13px; }

/* 规划跟进记录：类别彩色标签 */
.cat { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 8px; color: #fff; }
.cat-0 { background: #1677ff; } .cat-1 { background: #389e0d; } .cat-2 { background: #d46b08; } .cat-3 { background: #722ed1; } .cat-other { background: #8a8f99; }

/* 文书进展里程碑 */
.mslist { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.ms { border: 1px solid #ffe0ec; background: #fff5fa; border-radius: 12px; padding: 10px 12px; }
.ms.on { border-color: #ff85c0; background: #fff0f6; }
.ms-top { display: flex; align-items: center; gap: 8px; font-size: 14px; margin-bottom: 6px; }
.ms-row { display: grid; grid-template-columns: 1fr; gap: 6px; }
.ms-row label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: #4e5969; }
.ms-row label.full { grid-column: 1 / -1; }
.ms-row input { padding: 6px 8px; border: 1px solid #dcdfe6; border-radius: 8px; font-size: 13px; }
.msbar { display: flex; align-items: center; gap: 6px; margin: 4px 0 12px; }
.msbar .seg { flex: 1; height: 11px; border-radius: 6px; background: #fff; border: 1px solid #e4e8f0; }
.msbar .seg.on { background: linear-gradient(90deg,#ff85c0,#eb2f96); border-color: transparent; }
.msbar-txt { font-size: 12px; color: #4e5969; white-space: nowrap; margin-left: 6px; }

/* 申请学校表格内下拉 */
#schoolTable select { padding: 5px 8px; border: 1px solid #dcdfe6; border-radius: 8px; font-size: 13px; background: #fff; }

/* 自定义看板指标标签 */
.cw-tag { font-size: 11px; background: #eef2ff; color: #3b5bff; border-radius: 6px; padding: 1px 6px; margin-left: 6px; font-weight: 600; }
.dc-add { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.dc-add select, .dc-add input { padding: 7px 10px; border: 1px solid #dcdfe6; border-radius: 8px; font-size: 13px; }
.dc-row.custom span { display: flex; align-items: center; gap: 8px; }
.dc-row.custom em { font-style: normal; font-size: 11px; color: #3b5bff; background: #eef2ff; border-radius: 5px; padding: 1px 6px; }
.dc-row.custom .danger { color: #fa5151; }

/* 模块看板视图（按字段分组） */
.board-tabs { display: flex; align-items: center; gap: 6px; padding: 10px 14px 0; border-bottom: 1px solid #e5e6eb; flex-wrap: wrap; }
.board-tab { border: 0; background: transparent; color: #4e5969; font-size: 13px; padding: 8px 12px; border-radius: 8px 8px 0 0; cursor: pointer; white-space: nowrap; }
.board-tab:hover { color: #1f2329; background: #f2f3f5; }
.board-tab.active { color: #4e6ef2; background: #eef2ff; font-weight: 600; border-bottom: 2px solid #4e6ef2; margin-bottom: -1px; }
.board-tab-more { position: relative; }
.board-tab-menu { display: none; position: absolute; top: 100%; left: 0; z-index: 10; background: #fff; border: 1px solid #e5e6eb; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,.1); min-width: 140px; padding: 6px 0; }
.board-tab-more.open .board-tab-menu { display: block; }
.board-tab-menu button { display: block; width: 100%; text-align: left; border: 0; background: #fff; padding: 8px 14px; font-size: 13px; color: #4e5969; cursor: pointer; }
.board-tab-menu button:hover { background: #f7f8fa; color: #1f2329; }
.boardwrap { background: #fff; border-radius: 0 0 14px 14px; box-shadow: 0 2px 10px rgba(0,0,0,.05); padding: 14px; }
.board-head { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
.board-fldlabel { font-size: 13px; color: #4e5969; display: flex; align-items: center; gap: 6px; }
.board-fldlabel select { padding: 6px 10px; border: 1px solid #dcdfe6; border-radius: 9px; }
.board-cols { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; }
.board-col { min-width: 220px; background: #f7f8fa; border-radius: 12px; padding: 10px; flex: 1; }
.board-col-h { font-size: 13px; font-weight: 700; color: #1f2329; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.board-col-cnt { background: #4e6ef2; color: #fff; font-size: 11px; border-radius: 10px; padding: 1px 8px; }
.board-cards { display: flex; flex-direction: column; gap: 8px; }
.board-card { background: #fff; border: 1px solid #e5e6eb; border-radius: 10px; padding: 9px 11px; cursor: pointer; transition: box-shadow .15s; }
.board-card:hover { box-shadow: 0 3px 10px rgba(0,0,0,.08); }
.board-card-title { font-weight: 600; font-size: 14px; margin-bottom: 5px; color: #1f2329; }
.board-card-row { display: flex; justify-content: space-between; font-size: 12px; color: #4e5969; padding: 1px 0; }
.board-card-row b { color: #1f2329; font-weight: 600; }

/* 看板彩色列头与徽章 */
.board-col { border-top: 4px solid #e5e6eb; }
.board-col-h { align-items: center; }
.board-col-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 20px; font-weight: 700; font-size: 13px; background: #f2f3f5; color: #1f2329; }
.board-col-cnt { background: #4e5969; color: #fff; font-size: 11px; border-radius: 10px; padding: 1px 8px; }

.board-col-red { border-top-color: #f87171; }
.board-col-orange { border-top-color: #fb923c; }
.board-col-amber { border-top-color: #fbbf24; }
.board-col-green { border-top-color: #4ade80; }
.board-col-teal { border-top-color: #2dd4bf; }
.board-col-blue { border-top-color: #60a5fa; }
.board-col-indigo { border-top-color: #818cf8; }
.board-col-purple { border-top-color: #c084fc; }
.board-col-pink { border-top-color: #f472b6; }
.board-col-rose { border-top-color: #fb7185; }
.board-col-gray { border-top-color: #9ca3af; }

.board-col-h-red .board-col-pill { background: #fee2e2; color: #991b1b; }
.board-col-h-orange .board-col-pill { background: #ffedd5; color: #9a3412; }
.board-col-h-amber .board-col-pill { background: #fef3c7; color: #92400e; }
.board-col-h-green .board-col-pill { background: #dcfce7; color: #166534; }
.board-col-h-teal .board-col-pill { background: #ccfbf1; color: #115e59; }
.board-col-h-blue .board-col-pill { background: #dbeafe; color: #1e40af; }
.board-col-h-indigo .board-col-pill { background: #e0e7ff; color: #3730a3; }
.board-col-h-purple .board-col-pill { background: #f3e8ff; color: #6b21a8; }
.board-col-h-pink .board-col-pill { background: #fce7f3; color: #9d174d; }
.board-col-h-rose .board-col-pill { background: #ffe4e6; color: #9f1239; }
.board-col-h-gray .board-col-pill { background: #f3f4f6; color: #374151; }

.badge { display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 12px; font-weight: 600; line-height: 1.4; }
.badge-red { background: #fee2e2; color: #991b1b; }
.badge-orange { background: #ffedd5; color: #9a3412; }
.badge-amber { background: #fef3c7; color: #92400e; }
.badge-green { background: #dcfce7; color: #166534; }
.badge-teal { background: #ccfbf1; color: #115e59; }
.badge-blue { background: #dbeafe; color: #1e40af; }
.badge-indigo { background: #e0e7ff; color: #3730a3; }
.badge-purple { background: #f3e8ff; color: #6b21a8; }
.badge-pink { background: #fce7f3; color: #9d174d; }
.badge-rose { background: #ffe4e6; color: #9f1239; }
.badge-gray { background: #f3f4f6; color: #374151; }

.board-card { border-left: 4px solid #e5e6eb; }
.board-col-red .board-card { border-left-color: #f87171; }
.board-col-orange .board-card { border-left-color: #fb923c; }
.board-col-amber .board-card { border-left-color: #fbbf24; }
.board-col-green .board-card { border-left-color: #4ade80; }
.board-col-teal .board-card { border-left-color: #2dd4bf; }
.board-col-blue .board-card { border-left-color: #60a5fa; }
.board-col-indigo .board-card { border-left-color: #818cf8; }
.board-col-purple .board-card { border-left-color: #c084fc; }
.board-col-pink .board-card { border-left-color: #f472b6; }
.board-col-rose .board-card { border-left-color: #fb7185; }
.board-col-gray .board-card { border-left-color: #9ca3af; }
