/* 慧心伴学 · 教学中心自建模块视觉（light theme，沿用平台设计变量） */
.tc-wrap{padding:0 0 28px}
.tc-header{background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:10px;overflow:hidden}
.tc-hrow{display:flex;align-items:flex-start;gap:14px;padding:15px 18px 8px}
.tc-htext{flex:1;min-width:0}
.tc-htext h2{margin:0;font-size:16px;font-weight:650;color:var(--ink);display:flex;align-items:center;gap:8px}
.tc-htext p{margin:4px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.6}
.tc-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.tc-sync{display:flex;align-items:center;gap:7px;padding:0 18px 10px;font-size:11px;color:var(--ink-3)}
.tc-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);flex:none}
.tc-sync.on .tc-dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-l)}
.tc-sync.off .tc-dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-l)}
.tc-tabs{display:flex;gap:22px;padding:0 18px;border-top:1px solid var(--line);background:var(--surface-2);overflow-x:auto}
.tc-tabs button{padding:9px 0;font-size:12px;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tc-tabs button.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.tc-tabs button:hover{color:var(--brand)}

.tc-panel{background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:10px;overflow:hidden}
.tc-panel-hd{padding:11px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tc-panel-hd h3{margin:0;font-size:13px;font-weight:600;color:var(--ink)}
.tc-panel-hd .tc-spacer{flex:1}
.tc-panel-bd{padding:14px 15px}
.tc-panel-bd.tight{padding:0}

.tc-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.tc-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 15px;min-width:0}
.tc-card h4{margin:0 0 8px;font-size:11.5px;font-weight:500;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.tc-card .tc-num{font-size:24px;font-weight:700;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}
.tc-card .tc-num small{font-size:11px;font-weight:500;color:var(--ink-3);margin-left:4px}
.tc-card .tc-sub{font-size:11px;color:var(--ink-3);margin-top:5px;line-height:1.5}

.tc-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.tc-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tc-side-main{display:grid;grid-template-columns:190px minmax(0,1fr);gap:10px;align-items:start}

.tc-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 14px;border-bottom:1px solid var(--line)}
.tc-field{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.tc-input,.tc-select,.tc-textarea{height:29px;border:1px solid var(--line-2);border-radius:6px;padding:0 9px;font-size:12px;background:#fff;color:var(--ink);outline:0;min-width:90px}
.tc-textarea{height:auto;padding:8px 9px;line-height:1.6;resize:vertical;width:100%}
.tc-input:focus,.tc-select:focus,.tc-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-l)}
.tc-input.search{min-width:180px}
.tc-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.tc-muted{color:var(--ink-3);font-size:11px}
.tc-mini{font-size:11px;color:var(--ink-3);line-height:1.6}
.tc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tc-gap{margin-top:10px}

.tc-table{width:100%;border-collapse:collapse;font-size:11.5px;min-width:660px}
.tc-table th{background:var(--surface-2);color:var(--ink-3);font-weight:500;text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:11px}
.tc-table td{padding:9px 12px;border-bottom:1px solid #f1f4fa;color:var(--ink-2);vertical-align:middle}
.tc-table tbody tr:hover{background:#fafcff}
.tc-table td b{font-weight:600;color:var(--ink)}
.tc-table .tc-ops{white-space:nowrap;text-align:right}
.tc-scroll{overflow-x:auto}
.tc-link{color:var(--brand);cursor:pointer;font-size:11.5px;white-space:nowrap}
.tc-link:hover{text-decoration:underline}
.tc-link.danger{color:var(--danger)}
.tc-link+.tc-link{margin-left:9px}
.tc-empty{text-align:center;padding:38px 16px;color:var(--ink-3);font-size:12px}
.tc-empty b{display:block;color:var(--ink-2);font-size:13px;margin-bottom:6px;font-weight:600}
.tc-empty .tc-ico{font-size:26px;display:block;margin-bottom:8px;opacity:.55}

.tc-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;line-height:17px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.tc-tag.blue{background:var(--brand-l);color:var(--brand-d)}
.tc-tag.green{background:var(--ok-l);color:var(--ok)}
.tc-tag.orange{background:var(--warn-l);color:#a86b00}
.tc-tag.red{background:var(--danger-l);color:var(--danger)}
.tc-tag.purple{background:var(--purple-l);color:var(--purple)}
.tc-tag.gray{background:#f1f4f9;color:var(--ink-3)}
.tc-tag.cyan{background:var(--cyan-l);color:var(--cyan)}

.tc-note{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:10px 12px;font-size:11.5px;color:var(--ink-2);line-height:1.7;margin-bottom:10px}
.tc-note b{color:var(--ink)}
.tc-note.warn{background:var(--warn-l);border-color:#f6dfae;color:#8a5d00}
.tc-note.info{background:var(--brand-l);border-color:#d7e4ff;color:#2a4f9e}
.tc-note.ok{background:var(--ok-l);border-color:#c9eddd;color:#0a7a50}

/* 教学云盘 */
.tc-tree{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px}
.tc-tree-title{font-size:10.5px;color:var(--ink-4);letter-spacing:.6px;padding:5px 9px 7px}
.tc-tree-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 9px;border-radius:6px;font-size:12px;color:var(--ink-2)}
.tc-tree-item:hover{background:var(--surface-2)}
.tc-tree-item.active{background:var(--brand-l);color:var(--brand);font-weight:600}
.tc-tree-item .n{margin-left:auto;font-size:10.5px;color:var(--ink-4);font-weight:400}
.tc-cap{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-3)}
.tc-cap-bar{width:110px;height:6px;border-radius:6px;background:#edf1f8;overflow:hidden}
.tc-cap-fill{height:100%;background:var(--brand);border-radius:6px}
.tc-file{display:flex;align-items:center;gap:11px;padding:10px 14px;border-bottom:1px solid #f1f4fa}
.tc-file:last-child{border-bottom:0}
.tc-file:hover{background:#fafcff}
.tc-fico{width:34px;height:34px;border-radius:8px;background:var(--brand-l);color:var(--brand);display:grid;place-items:center;font-size:10px;font-weight:700;flex:none;letter-spacing:.3px}
.tc-fico.doc{background:var(--ok-l);color:var(--ok)}
.tc-fico.sheet{background:var(--purple-l);color:var(--purple)}
.tc-fico.img{background:var(--warn-l);color:#c07d00}
.tc-fico.pdf{background:var(--danger-l);color:var(--danger)}
.tc-fmain{flex:1;min-width:0}
.tc-fname{font-size:12px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-fmeta{font-size:10.5px;color:var(--ink-3);margin-top:2px;display:flex;gap:10px;flex-wrap:wrap}
.tc-fops{display:flex;gap:2px;align-items:center;white-space:nowrap}

/* 来源卡片 / 教练卡 / 步骤 */
.tc-source{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;display:flex;flex-direction:column;gap:9px}
.tc-source-top{display:flex;align-items:center;gap:9px}
.tc-source-top b{font-size:13px;color:var(--ink)}
.tc-source-top .tc-spacer{flex:1}
.tc-source .desc{font-size:11.5px;color:var(--ink-2);line-height:1.7;min-height:58px}
.tc-source .kv{font-size:11px;color:var(--ink-3);line-height:1.7;border-top:1px dashed var(--line);padding-top:8px}
.tc-source-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tc-coach{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 14px;cursor:pointer;transition:.15s}
.tc-coach:hover{border-color:var(--brand);box-shadow:var(--sh-1)}
.tc-coach-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.tc-avatar{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:600;flex:none}
.tc-coach-head b{font-size:13px;color:var(--ink)}
.tc-coach-head span{font-size:10.5px;color:var(--ink-3);display:block}
.tc-kv{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 6px;margin-bottom:10px}
.tc-kv div{background:var(--surface-2);border-radius:6px;padding:7px 8px}
.tc-kv b{display:block;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}
.tc-kv span{font-size:10px;color:var(--ink-3)}
.tc-prog{height:6px;border-radius:6px;background:#edf1f8;overflow:hidden;margin:5px 0 4px}
.tc-prog i{display:block;height:100%;background:var(--brand);border-radius:6px}
.tc-prog.green i{background:var(--ok)}
.tc-prog.orange i{background:var(--warn)}
.tc-step{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px dashed var(--line)}
.tc-step:last-child{border-bottom:0}
.tc-step-num{width:22px;height:22px;border-radius:50%;background:var(--brand-l);color:var(--brand);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.tc-step b{font-size:12px;color:var(--ink)}
.tc-step p{margin:2px 0 0;font-size:11px;color:var(--ink-3);line-height:1.6}
.tc-bar-row{display:flex;align-items:center;gap:9px;margin:7px 0;font-size:11.5px}
.tc-bar-row .lb{width:86px;color:var(--ink-2);flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-bar-track{flex:1;height:9px;background:#f0f3f9;border-radius:6px;overflow:hidden}
.tc-bar-fill{height:100%;background:var(--brand);border-radius:6px;min-width:2px}
.tc-bar-row .vl{width:40px;text-align:right;color:var(--ink-3);flex:none}

/* AI 工作台 */
.tc-ai-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:10px;align-items:start}
.tc-ai-caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.tc-ai-cap{text-align:left;background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px 12px;transition:.15s}
.tc-ai-cap:hover{border-color:var(--brand)}
.tc-ai-cap.active{border-color:var(--brand);background:var(--brand-l);box-shadow:0 0 0 2px rgba(47,107,255,.08)}
.tc-ai-cap b{display:block;font-size:12.5px;color:var(--ink);margin-bottom:4px}
.tc-ai-cap span{font-size:10.5px;color:var(--ink-3);line-height:1.55;display:block}
.tc-ai-out{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px 13px;font-size:12px;line-height:1.85;color:var(--ink-2);white-space:pre-wrap;word-break:break-word;min-height:180px;max-height:520px;overflow:auto}
.tc-ai-out h4{color:var(--ink);font-size:12.5px;margin:0 0 6px}
.tc-ai-out .ph{color:var(--ink-4)}
.tc-ai-form{padding:12px 14px;border-top:1px solid var(--line)}
.tc-ai-form label{display:block;font-size:11px;color:var(--ink-3);margin-bottom:5px}
.tc-ai-form .tc-gap{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.tc-kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f4f9;border:1px solid var(--line-2);border-radius:4px;padding:1px 5px;font-size:10.5px;color:var(--ink-2)}

@media (max-width:1180px){
  .tc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-ai-layout{grid-template-columns:minmax(0,1fr)}
  .tc-ai-caps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .tc-2,.tc-3,.tc-side-main{grid-template-columns:minmax(0,1fr)}
  .tc-tree{display:flex;overflow-x:auto;gap:4px}
  .tc-tree-title{display:none}
  .tc-tree-item{width:auto;flex:none}
}
