/* 训练中心样式 — 全新开发 v5.1（移动优先 + 渐进增强） */
:root {
  --primary:#4D7A52; --primary-dark:#3D6642; --primary-light:#E8F0E8;
  --success:#5B8F60; --warning:#C8873A; --danger:#B04A40;
  --bg:#FAF8F5; --bg-card:#FFFFFF;
  --text:#111111; --text-light:#252525; --text-muted:#474747;
  --border:#AFA79E; --border-light:#D8D1C8;
  --shadow:0 2px 8px rgba(0,0,0,0.07); --shadow-md:0 4px 16px rgba(0,0,0,0.10);
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px;
  --fs-sm:15px; --fs-base:18px; --fs-lg:22px; --fs-xl:26px;
  /* 间距设计系统（大厂 spacing scale） */
  --sp-xs:8px; --sp-sm:12px; --sp-md:16px; --sp-lg:24px; --sp-xl:32px;
  /* 字体设计系统（大厂 type scale + 自闭症适配） */
  --fs-display:32px; --fs-headline:24px; --fs-title-lg:20px; --fs-title:16px;
  --fs-body:15px; --fs-label:13px; --fs-caption:12px;
  --fw-black:800; --fw-bold:700; --fw-semibold:600; --fw-medium:500; --fw-regular:400;
  --tx-strong:#111111; --tx-body:#252525; --tx-muted:#474747; --tx-inverse:#FFFFFF;
}

/* 布局 */
.tc-container{max-width:900px;margin:0 auto;padding:16px}
.tc-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted)}
.tc-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:tc-spin .6s linear infinite;margin-bottom:12px}
@keyframes tc-spin{to{transform:rotate(360deg)}}
.tc-empty{text-align:center;padding:60px 20px}
.tc-empty-icon{font-size:48px;margin-bottom:12px}
.tc-empty-title{font-size:16px;color:var(--text-muted);font-weight:500}

/* Hero */
.tc-hero{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}
.tc-hero-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:0}
.tc-hero-title{font-size:var(--fs-xl);font-weight:700;color:var(--text)}
.tc-hero-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}
.tc-hero-rate{text-align:right;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);padding:12px 18px;box-shadow:var(--shadow)}
.tc-rate-num{font-size:28px;font-weight:800;color:var(--primary);line-height:1.2}
.tc-rate-label{font-size:12px;color:var(--text-muted);margin-top:2px}
.tc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.tc-stat{text-align:center;padding:20px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow)}
.tc-stat-num{font-size:28px;font-weight:800;line-height:1.2}
.tc-stat-label{font-size:13px;color:var(--text-muted);margin-top:4px}
.tc-hero-tip{font-size:clamp(12px,3vw,14px);color:var(--text-muted);padding:clamp(10px,2.5vw,14px) clamp(12px,3vw,16px);background:var(--primary-light);border-radius:var(--radius-sm);line-height:1.6}

/* 区块标题 */
.tc-section-title{font-size:var(--fs-sm);font-weight:700;color:var(--text);margin-bottom:12px;padding-bottom:6px;border-bottom:1.5px solid var(--border);margin-top:20px}

/* 训练路径 */
.tc-path{display:flex;align-items:center;gap:4px;margin-bottom:8px}
.tc-path-step{flex:1;text-align:center;padding:18px 6px 12px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;position:relative}
.tc-path-step:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.tc-path-num{position:absolute;top:6px;left:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border-radius:50%;font-size:10px;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,0.12)}
.tc-path-icon{font-size:20px;margin-bottom:2px}
.tc-path-name{font-size:13px;font-weight:600;color:var(--text)}
.tc-path-arrow{color:var(--primary);font-size:18px;font-weight:700;flex-shrink:0}

/* 网格 */
.tc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* 卡片 */
.tc-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:18px 10px;text-align:center;box-shadow:var(--shadow)}
.tc-card-clickable{cursor:pointer;transition:all .2s}
.tc-card-clickable:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.tc-card-icon{font-size:28px;margin-bottom:6px}
.tc-card-name{font-size:var(--fs-sm);font-weight:600;color:var(--text)}

/* 训练包 */
.tc-pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.tc-pack-card{display:flex;gap:12px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:14px;cursor:pointer;transition:all .2s}
.tc-pack-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.tc-pack-img{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;font-size:28px}
.tc-pack-body{flex:1;display:flex;flex-direction:column;justify-content:center}
.tc-pack-name{font-size:15px;font-weight:600;color:var(--text)}
.tc-pack-desc{font-size:12px;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}

/* 程序 */
.tc-stage-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-light);margin:12px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border-light)}
.tc-prog-card{text-align:left;padding:14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;box-shadow:var(--shadow);display:flex;gap:10px;align-items:flex-start}
.tc-prog-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.tc-prog-card .tc-prog-icon{font-size:24px;flex-shrink:0}
.tc-prog-card .tc-prog-info{flex:1;min-width:0}
.tc-prog-card .tc-prog-name{font-size:15px;font-weight:600;color:var(--text)}
.tc-prog-badges{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.tc-prog-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}
.tc-badge-domain{background:var(--primary-light);color:var(--primary)}
.tc-badge-format{background:#FFF3E0;color:#E65100}
.tc-prog-objective{font-size:11px;color:var(--text-muted);margin-top:5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tc-prog-filter{background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow)}
.tc-filter-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}
.tc-filter-row:last-child{margin-bottom:0}
.tc-filter-label{font-size:14px;color:var(--text-muted);font-weight:500;min-width:28px;padding-top:6px;flex-shrink:0}
.tc-filter-chips{display:flex;gap:6px;flex-wrap:wrap}
/* 首次引导 + IEP训练方向：移动端横向滚动 */
.tc-onboard-chips,.tc-focus-chips{display:flex;gap:6px;flex-wrap:wrap}

/* 技能进度 */
.tc-skill-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:var(--sp-xs)}
.tc-skill-row:last-child{margin-bottom:0}
.tc-skill-icon{font-size:18px;width:30px;text-align:center}
.tc-skill-name{flex:1;font-size:var(--fs-sm);font-weight:600;color:var(--text)}
.tc-progress-bar{width:80px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.tc-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .4s}
.tc-progress-fill.done{background:var(--success)}
.tc-skill-pct{width:36px;text-align:right;font-size:var(--fs-sm);font-weight:700;color:var(--text-light)}

/* 页面切换淡入（大厂细节） */
@keyframes tc-page-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
#tc-content > *{animation:tc-page-in .25s ease}
/* 可点击卡片按压反馈（大厂交互细节） */
.tc-prog-card:active,.tc-option:active,.tc-sort-card:active,.tc-cat-item:active,
.tc-pack-card:active,.tc-quick:active,.tc-plan-goal:active{transform:scale(0.97);transition:transform .1s}
/* 训练会话：自适应布局（图片少时一屏，高阶图片多时滚动，保证图片足够大） */
.tc-main{flex:1;display:flex;align-items:stretch;justify-content:center;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.tc-trial{flex:1;width:100%;display:flex;flex-direction:column;gap:10px;position:relative;min-height:0;padding-bottom:12px}
.tc-instruction{text-align:center;font-size:var(--fs-lg);font-weight:700;color:var(--text);padding:6px 0;flex-shrink:0}
.tc-stimulus{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:4px;height:clamp(150px,30vh,240px)}
.tc-stimulus img{height:100%;width:auto;max-width:100%;max-height:100%;object-fit:contain;aspect-ratio:auto}
.tc-options{flex:1;display:grid;gap:8px;align-content:center;min-height:0;width:100%}
.tc-options.cols-2{grid-template-columns:repeat(2,1fr)}
.tc-options.cols-3{grid-template-columns:repeat(3,1fr)}
.tc-option{border:2.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;overflow:hidden;text-align:center;transition:all .15s;display:flex;flex-direction:column;min-height:0;padding:4px}
.tc-option:hover{border-color:var(--primary)}
.tc-option .tc-opt-img-wrap{display:flex;align-items:center;justify-content:center;padding:2px;overflow:hidden;aspect-ratio:1}
.tc-option img{width:100%;height:100%;object-fit:contain}
.tc-opt-label{padding:4px 6px;font-size:14px;font-weight:600;color:var(--text);border-top:1px solid var(--border-light);flex-shrink:0}
.tc-opt-text{padding:24px;font-size:var(--fs-lg);font-weight:600;color:var(--text)}
.tc-pj-instruction{text-align:center;font-size:17px;font-weight:600;color:var(--text);padding:10px 14px;background:#FFF8E1;border-radius:var(--radius-md);border:2px solid #FFE082}
.tc-pj-expected{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;font-size:var(--fs-sm);color:var(--text-muted);padding:8px 12px;background:var(--bg);border-radius:var(--radius-sm)}.tc-pj-speak{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary);border:1.5px solid var(--primary);border-radius:50%;cursor:pointer;padding:0}
.tc-pj-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;flex-shrink:0}
.tc-pj-buttons .tc-btn{padding:0 12px;font-size:16px;min-height:48px}
.tc-how-row{flex-shrink:0;text-align:center;padding:6px 12px;background:var(--primary-light);border-radius:var(--radius-sm);font-size:14px;color:var(--text);line-height:1.5;border:1px solid var(--border-light)}
.tc-question{flex-shrink:0;text-align:center;padding:10px 14px;background:#FFF8E1;border:1.5px solid var(--warning);border-radius:var(--radius-md);font-size:17px;font-weight:600;color:var(--text);line-height:1.6}
.tc-word-card{flex-shrink:0;text-align:center;padding:14px;background:var(--bg-card);border:2px solid var(--primary);border-radius:var(--radius-md);font-size:30px;font-weight:800;color:var(--primary);letter-spacing:4px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s} .tc-word-card:active{transform:scale(0.97)}
/* 模式序列参考（找规律） */
.tc-pattern-ref{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);max-width:360px;margin:0 auto;width:100%}
.tc-pattern-ref img{width:56px;height:56px;object-fit:contain;border:1px solid var(--border-light);border-radius:6px;background:#fff}
.tc-pattern-ask{width:56px;height:56px;border-radius:6px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;border:1.5px dashed var(--primary)}
/* 多步指令列表（线下"先拍手→再跺脚"） */
.tc-steps-instr{flex-shrink:0;display:flex;flex-direction:column;gap:6px;padding:12px 16px;background:var(--bg-card);border:1.5px solid var(--primary);border-radius:var(--radius-md);max-width:360px;margin:0 auto;width:100%}
.tc-steps-instr-item{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;color:var(--text);padding:6px 4px}
.tc-steps-instr-img{width:52px;height:52px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--bg);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center}
.tc-steps-instr-img img{width:100%;height:100%;object-fit:contain}
.tc-steps-instr-num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}
/* 喇叭重播按钮（大厂风格：圆形主色底白色喇叭，触摸区≥44px，清晰醒目） */
.tc-replay{background:var(--primary);color:#fff;border:none;cursor:pointer;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:40px;min-height:40px;padding:0;margin:0 0 0 8px;vertical-align:middle;box-shadow:var(--shadow);transition:transform .12s,background .15s}
.tc-replay svg{display:block}
.tc-replay:hover{background:var(--primary-dark);transform:scale(1.05)}
.tc-replay:active{transform:scale(0.92)}
/* 数量图标显示（数数/哪个多） */
.tc-stimulus-count .tc-count-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:90%;padding:8px}
.tc-stimulus-count .tc-count-row img{width:44px;height:44px;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff}
.tc-opt-count .tc-count-row{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:10px 6px;min-height:80px;align-items:center}
.tc-opt-count .tc-count-row img{width:34px;height:34px;object-fit:contain;border:1px solid var(--border-light);border-radius:4px;background:#fff}

/* 按钮 */
.tc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .15s;min-height:48px}
.tc-btn-primary{background:var(--primary);color:#fff}
.tc-btn-primary:hover{background:var(--primary-dark)}
.tc-btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary)}
.tc-btn-outline:hover{background:var(--primary-light)}
.tc-btn-success{background:var(--success);color:#fff}
.tc-btn-danger{background:var(--danger);color:#fff}

/* 会话 header */
.tc-steps-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.tc-step-item{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md)}
.tc-step-num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}
.tc-step-img{width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg)}
.tc-step-img img{width:100%;height:100%;object-fit:contain}
.tc-step-body{flex:1;min-width:0}
.tc-step-text{font-size:14px;color:var(--text);font-weight:500}
.tc-step-btns{display:flex;gap:6px;flex-shrink:0}
.tc-step-btns .tc-btn{padding:6px 10px;min-height:36px;font-size:15px}
.tc-step-yes{opacity:.6}
.tc-step-no{opacity:.6}
.tc-steps-actions{margin-top:16px;text-align:center}
.tc-session-header{background:var(--bg-card);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:12px;border:1px solid var(--border)}
.tc-session-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:8px}
.tc-session-progress{height:100%;background:var(--primary);border-radius:2px;transition:width .4s}
.tc-token-row{display:flex;justify-content:center;gap:6px;padding:4px 0}
.tc-token{font-size:24px;transition:all .3s}
.tc-token-earned{animation:tc-pop .3s}
@keyframes tc-pop{0%{transform:scale(0) rotate(-30deg)}50%{transform:scale(1.4) rotate(10deg)}100%{transform:scale(1) rotate(0)}}

/* 纠错（内嵌反馈条，不整页跳转） */
.tc-error-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}
.tc-error-title{font-size:20px;font-weight:700;color:var(--warning);margin-bottom:12px}
.tc-error-hint{font-size:16px;color:var(--text-muted);margin-bottom:20px}
.tc-opt-right{border-color:var(--success)!important;box-shadow:0 0 0 3px rgba(91,143,96,0.35)!important;animation:tc-correct-pulse .5s}
@keyframes tc-correct-pulse{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
.tc-opt-wrong{border-color:var(--danger)!important;background:#FDECEA!important;animation:tc-shake .4s}
@keyframes tc-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.tc-opt-correct{border-color:var(--success)!important;box-shadow:0 0 0 3px rgba(91,143,96,0.3)!important}
/* 排序交互 */
.tc-sort-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-content:center;flex:1}
.tc-sort-card{position:relative;border:2.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;overflow:hidden;transition:all .15s;padding:4px}
.tc-sort-card:hover{border-color:var(--primary)}
.tc-sort-card.picked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.tc-sort-img{display:flex;align-items:center;justify-content:center}
.tc-sort-img img{aspect-ratio:1;width:100%;height:auto;object-fit:contain}
.tc-sort-badge{position:absolute;top:6px;left:6px;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.tc-sort-hint{text-align:center;font-size:13px;color:var(--text-muted);padding:2px 0;flex-shrink:0}
.tc-sort-done{margin-top:12px;flex-shrink:0}
/* 因为所以：因果双卡（原因卡+结果卡一组，复刻线下教学） */
.tc-ce{display:flex;flex-direction:column;gap:10px}
.tc-ce-cards{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.tc-ce-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:6px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow)}
.tc-ce-card .tc-ce-img{display:flex;align-items:center;justify-content:center;height:clamp(120px,22vh,180px);width:100%;min-height:0}
.tc-ce-card .tc-ce-img img{height:100%;width:auto;max-width:100%;object-fit:contain}
.tc-ce-q{font-size:17px;font-weight:700;color:var(--text);padding:8px 6px 4px;text-align:center;display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap}
.tc-ce-link{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--primary);font-weight:800;font-size:15px;flex-shrink:0;padding:2px 0}
.tc-ce-arrow{font-size:20px;font-weight:800}
@media(min-width:768px){
.tc-ce-cards{flex-direction:row;align-items:stretch}
.tc-ce-link{flex-direction:column;gap:8px;padding:0 12px}
.tc-ce-arrow{transform:rotate(-90deg)}
}

/* 社交故事：多张故事卡平铺 */
.tc-ss{display:flex;flex-direction:column;gap:10px}
.tc-ss-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;flex-shrink:0}
@media(min-width:768px){.tc-ss-grid{grid-template-columns:repeat(4,1fr)}}
.tc-ss-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:6px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow)}
.tc-ss-card .tc-ss-img{display:flex;align-items:center;justify-content:center;height:clamp(90px,18vh,150px);width:100%;min-height:0}
.tc-ss-card .tc-ss-img img{height:100%;width:auto;max-width:100%;object-fit:contain}
.tc-ss-text{font-size:13px;color:var(--text);text-align:center;padding:6px 4px 2px;line-height:1.5}

/* 分类容器交互 */
.tc-cat-containers{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;flex-shrink:0}
.tc-cat-box{border:2px dashed var(--border);border-radius:var(--radius-md);padding:4px;height:84px;background:var(--bg);cursor:pointer;display:flex;flex-direction:column;transition:none}
.tc-cat-box:hover{border-color:var(--primary)}
.tc-cat-title{font-size:14px;font-weight:700;color:var(--primary);margin-bottom:4px;text-align:center;flex-shrink:0}
.tc-cat-slots{flex:1;display:flex;gap:4px;flex-wrap:wrap;justify-content:center;align-content:center;min-height:0;padding:2px;overflow:hidden}
.tc-cat-slots img{width:28px;height:28px;object-fit:contain;border:1.5px solid var(--success);border-radius:6px;background:#fff}
.tc-cat-slots .tc-cat-item{width:32px;height:32px;padding:1px;position:relative;flex-shrink:0}
.tc-cat-slots .tc-cat-item img{width:100%;height:100%;aspect-ratio:1;border:1.5px solid var(--success);border-radius:6px}
.tc-cat-slots .tc-cat-item .tc-cat-item-badge{width:16px;height:16px;font-size:10px;top:1px;right:1px}
.tc-cat-items{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-content:center;min-height:0;padding-top:10px}
.tc-cat-item{position:relative;border:2px solid var(--border);border-radius:var(--radius-md);background:#fff;cursor:pointer;overflow:hidden;padding:2px;transition:all .15s}
.tc-cat-item.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.tc-cat-item img{aspect-ratio:1;width:100%;height:auto;object-fit:contain}
.tc-cat-item-badge{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:var(--success);color:#fff;display:none;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.tc-cat-item.placed .tc-cat-item-badge{display:flex}
.tc-cat-done{margin-top:12px;flex-shrink:0}
/* 拼图交互 */
.tc-puzzle-ref{flex-shrink:0;text-align:center;padding:2px 0}
.tc-puzzle-ref img{max-width:140px;max-height:100px;object-fit:contain;border:1.5px solid var(--border);border-radius:6px}
.tc-puzzle-grid{flex:1;display:grid;gap:3px;min-height:0;align-content:center;max-width:420px;margin:0 auto;width:100%}
.tc-puzzle-piece{aspect-ratio:1;border-radius:4px;border:1px solid var(--border);cursor:pointer;background-color:#fff;background-repeat:no-repeat;transition:all .15s}
.tc-puzzle-piece.picked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.tc-puzzle-done{margin-top:12px;flex-shrink:0}
.tc-complete-advice{display:flex;align-items:center;gap:10px;margin-top:18px;padding:12px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);text-align:left;font-size:14px;color:var(--text);max-width:360px}
.tc-complete-mastery{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;background:var(--primary-light);border-radius:var(--radius-sm);max-width:360px;line-height:1}
.tc-mastery-label{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}
.tc-mastery-dots{display:flex;gap:4px}
.tc-mastery-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--border)}
.tc-mastery-dot.done{background:var(--success);border-color:var(--success)}
.tc-mastery-dot.partial{background:var(--warning);border-color:var(--warning)}
.tc-mastery-dot.todo{background:transparent;border-color:var(--border)}
.tc-mastery-text{font-size:12px;color:var(--text-light);white-space:nowrap}
/* 完成页三按钮：统一 48px 等高等宽（大厂标准） */
.tc-complete-actions{display:flex;gap:10px;width:100%;max-width:360px;justify-content:center;flex-wrap:nowrap}
.tc-complete-actions .tc-btn{flex:1;min-height:48px;height:48px;padding:0 6px;font-size:15px;white-space:nowrap;box-sizing:border-box}

/* 完成页 */
.tc-complete{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}
.tc-complete-icon{font-size:56px;margin-bottom:16px}
.tc-complete-title{font-size:22px;font-weight:700;color:var(--text);margin-bottom:12px}
.tc-complete-rate{font-size:48px;font-weight:800;line-height:1.1}
.tc-complete-sub{font-size:14px;color:var(--text-muted);margin-top:6px}
.tc-complete-tokens{font-size:14px;color:var(--text-muted);margin-top:8px}
.tc-complete-actions{display:flex;gap:12px;margin-top:28px}
.tc-print-promo{margin-top:28px;padding:16px;background:linear-gradient(135deg,rgba(212,160,106,0.12),rgba(232,233,244,0.08));border:1.5px dashed var(--warning);border-radius:var(--radius-md);width:100%;max-width:360px;text-align:left}
.tc-print-promo-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px}
.tc-print-promo-desc{font-size:13px;color:var(--text)!important;line-height:1.7;margin-bottom:10px;font-weight:500}
.tc-print-promo-step{font-size:14px;color:var(--text)!important;line-height:2;padding:0 12px;position:relative;font-weight:500}
.tc-print-promo-step::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--warning)}

/* Flash */
.tc-flash{position:fixed;inset:0;z-index:999;pointer-events:none;animation:tc-fade .4s}
.tc-flash-correct{background:rgba(107,155,112,0.15)}
.tc-flash-error{background:rgba(212,117,107,0.15)}
@keyframes tc-fade{0%{opacity:.5}100%{opacity:0}}


#tc-app{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}
#tc-header{display:flex;align-items:center;height:52px;padding:0 16px;background:#fff;border-bottom:1px solid var(--border);gap:12px;flex-shrink:0}
#tc-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tc-nav-right{flex-shrink:0;margin-left:auto}
.tc-nav-hud{display:flex;align-items:center;gap:10px}
.tc-token-row{display:inline-flex;gap:2px;padding:0}
.tc-token-row .tc-token{font-size:16px;line-height:1}
.tc-nav-counter{font-size:14px;font-weight:700;color:var(--primary);white-space:nowrap}
.tc-nav-counter #tc-counter{font-size:17px}
#tc-back{width:40px;height:40px;font-size:24px;color:var(--text);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;flex-shrink:0}
#tc-back:hover{background:var(--bg)}
#tc-title{flex:1;font-size:17px;font-weight:600;color:var(--text)}
#tc-content{flex:1;display:flex;flex-direction:column;width:100%;box-sizing:border-box;min-height:0}

.tc-print-card{margin-top:12px;padding:16px 18px;background:linear-gradient(135deg,rgba(212,160,106,0.12),rgba(232,233,244,0.08));border:1.5px dashed var(--warning);border-radius:var(--radius-md)}
.tc-print-head{font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px}
.tc-print-desc{font-size:13px;color:var(--text-light);line-height:1.7;margin-bottom:10px}
.tc-print-steps{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.tc-print-step{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-light)}
.tc-print-num{font-weight:700;color:var(--warning);flex-shrink:0}
.tc-print-foot{font-size:12px;color:var(--text-muted);background:var(--bg-card);padding:6px 10px;border-radius:var(--radius-sm);display:inline-block}
.tc-guide-quick{background:linear-gradient(135deg,rgba(77,122,82,0.08),rgba(107,155,112,0.06));border:1.5px solid var(--border-light);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:12px}
.tc-guide-quick-title{font-size:15px;font-weight:700;color:var(--primary);margin-bottom:6px}
.tc-guide-quick-desc{font-size:13px;color:var(--text-light);line-height:1.7}
.tc-guide-card{background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow)}
.tc-guide-item{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;cursor:pointer;transition:all .2s;border-bottom:1px solid var(--border-light)}
.tc-guide-item:last-child{border-bottom:none}
.tc-guide-item:hover{background:var(--bg)}
.tc-guide-num{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border-radius:50%;font-size:13px;font-weight:700;flex-shrink:0;margin-top:2px}
.tc-guide-body{flex:1;min-width:0}
.tc-guide-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}
.tc-guide-desc{font-size:13px;color:var(--text-light);line-height:1.7;margin-bottom:8px}
.tc-guide-steps{background:var(--bg);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px}
.tc-guide-step{font-size:13px;color:var(--text-light);line-height:1.65;padding:3px 0}
.tc-guide-step b{color:var(--primary);font-weight:700;margin-right:2px}
.tc-guide-tip{font-size:12px;color:var(--text-muted);background:var(--bg);padding:6px 10px;border-radius:var(--radius-sm);display:inline-block}
.tc-guide-arrow{color:var(--primary);font-size:18px;font-weight:700;flex-shrink:0;margin-top:8px}

.tc-pack-img img{width:100%;height:100%;object-fit:contain;padding:2px}
.tc-search-box{margin-bottom:16px}
.tc-search-box input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:15px;background:var(--bg-card);color:var(--text);outline:none;box-sizing:border-box;font-family:inherit}
.tc-search-box input:focus{border-color:var(--primary)}
.tc-search-box input::placeholder{color:var(--text-muted)}
.tc-chip-group{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tc-chip{padding:6px 14px;border-radius:10px;border:1.5px solid var(--border);font-size:13px;cursor:pointer;background:var(--bg-card);color:var(--text-light);font-weight:500;transition:all .15s;flex-shrink:0}
.tc-chip:hover{border-color:var(--primary);color:var(--primary)}
.tc-chip.active{background:var(--primary);color:#fff!important;border-color:var(--primary-dark);font-weight:600}

.tc-prog-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}

.tc-assess-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.tc-assess-card{text-align:center;padding:12px 6px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.tc-assess-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tc-assess-stage{text-align:center;padding:14px 8px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.tc-assess-stage-current{border-color:var(--primary);background:var(--primary-light)}
.tc-assess-domain{background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;margin-bottom:12px;box-shadow:var(--shadow)}
.tc-assess-domain-hd{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer}
.tc-assess-domain-hd:hover{background:var(--bg)}
.tc-assess-toggle{font-size:11px;color:var(--text-muted);background:var(--bg);border-radius:8px;padding:2px 8px;margin-left:8px;font-weight:500}
.tc-assess-domain-hd:hover .tc-assess-toggle{color:var(--primary)}
.tc-assess-items{padding:0 16px 12px;display:none}
.tc-assess-items.open{display:block}
.tc-assess-lv-label{font-size:12px;font-weight:600;color:var(--text-light);padding:8px 0 4px;border-top:1px solid var(--border-light);display:flex;justify-content:space-between}
.tc-assess-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-light)}
.tc-assess-item:last-child{border-bottom:none}
.tc-assess-text{flex:1;font-size:13px;color:var(--text)}
.tc-assess-btns{display:flex;gap:4px;flex-shrink:0;margin-left:12px}
.tc-abtn{width:32px;height:32px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-muted);transition:all .15s}
.tc-abtn:hover{transform:scale(1.1)}
.tc-abtn.active{transform:scale(1.05)}




.tc-iep-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}

.tc-select{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background-color:var(--bg-card);color:var(--text);outline:none;font-family:inherit;box-sizing:border-box;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27%3E%3Cpath fill=%27%23666%27 d=%27M6 8L1 3h10z%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}
.tc-select:focus{border-color:var(--primary)}






#tc-content .tc-btn-primary{margin-bottom:20px}

/* ===== 数据页面 ===== */
.tc-onboard{padding:18px;background:linear-gradient(135deg,rgba(77,122,82,0.1),rgba(107,155,112,0.06));border:1.5px solid var(--primary);border-radius:var(--radius-md);margin-bottom:16px}
.tc-profile{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px;cursor:pointer;transition:all .2s}
.tc-profile:hover{border-color:var(--primary)}
.tc-profile-icon{font-size:24px;flex-shrink:0;line-height:1}
.tc-profile-body{flex:1;min-width:0}
.tc-profile-title{font-size:14px;font-weight:700;color:var(--text)}
.tc-profile-meta{font-size:13px;color:var(--text-light);margin-top:3px}
.tc-profile-focus{font-size:12px;color:var(--text-muted);margin-top:2px}
.tc-profile-go{font-size:13px;color:var(--primary);font-weight:600;flex-shrink:0}
.tc-onboard-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:14px}
.tc-onboard-step{margin-bottom:14px}
.tc-onboard-step:last-child{margin-bottom:4px}
.tc-onboard-lab{font-size:13px;font-weight:600;color:var(--text-light);margin-bottom:6px}
.tc-onboard-chips{display:flex;gap:6px;flex-wrap:wrap}
.tc-today-action{display:flex;align-items:center;gap:12px;padding:18px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px;cursor:pointer;color:#fff}
.tc-today-icon{font-size:30px;flex-shrink:0}
.tc-today-body{flex:1;min-width:0}
.tc-today-title{font-size:18px;font-weight:800;color:#fff}
.tc-today-sub{font-size:13px;color:rgba(255,255,255,0.9);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-today-go{font-size:13px;font-weight:700;color:#fff;flex-shrink:0;background:rgba(255,255,255,0.2);padding:8px 12px;border-radius:20px}
.tc-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.tc-quick{padding:14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;box-shadow:var(--shadow);text-align:center}
.tc-quick:hover{border-color:var(--primary)}
.tc-quick-icon{font-size:24px;display:inline-block;line-height:1;margin-bottom:4px;width:auto}
.tc-quick-name{font-size:14px;font-weight:600;color:var(--text)}
.tc-quick-desc{font-size:11px;color:var(--text-muted);margin-top:2px}
.tc-collapse{margin-bottom:12px}
.tc-collapse-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);font-size:14px;font-weight:600;color:var(--text);cursor:pointer;box-shadow:var(--shadow)}
.tc-collapse-arrow{color:var(--text-muted);transition:transform .3s}
.tc-collapse.open .tc-collapse-arrow{transform:rotate(180deg)}
.tc-collapse-body{max-height:0;overflow:hidden;transition:max-height .4s ease}
.tc-collapse.open .tc-collapse-body{max-height:2000px;overflow:visible}
.tc-collapse-body > .tc-guide-quick{margin-top:12px}
.tc-report{padding:16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px}
.tc-report-head{font-size:15px;font-weight:700;color:var(--text);margin-bottom:12px}
.tc-report-row{display:flex;gap:10px;margin-bottom:10px}
.tc-report-stat{flex:1;text-align:center;background:var(--bg);border-radius:var(--radius-sm);padding:10px 6px}
.tc-report-num{font-size:22px;font-weight:800;color:var(--primary);line-height:1.1}
.tc-report-lab{font-size:11px;color:var(--text-muted);margin-top:4px}
.tc-report-tips{background:var(--primary-light);border-radius:var(--radius-sm);padding:10px 12px}
.tc-report-tip{font-size:12px;color:var(--text-light);line-height:1.7}
.tc-reassess{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--warning);border-radius:var(--radius-md);margin-bottom:12px;cursor:pointer}
.tc-reassess.warn{border-color:var(--danger);background:#FDECEA}
.tc-reassess-icon{font-size:24px;flex-shrink:0}
.tc-reassess-body{flex:1;min-width:0}
.tc-reassess-title{font-size:14px;font-weight:700;color:var(--text)}
.tc-reassess-desc{font-size:12px;color:var(--text-muted);margin-top:2px}
.tc-reassess-go{font-size:12px;color:var(--primary);font-weight:600;flex-shrink:0}
.tc-net-list{display:flex;flex-direction:column;gap:8px}
.tc-net-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow)}
.tc-net-domain{font-size:11px;font-weight:700;color:#fff;background:var(--primary);border-radius:8px;padding:2px 8px;flex-shrink:0}
.tc-net-text{font-size:13px;color:var(--text-light);line-height:1.5}
.tc-stat-card{text-align:center;padding:16px 8px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow)}
.tc-stat-num{font-size:26px;font-weight:700;line-height:1.2}
.tc-stat-label{font-size:12px;color:var(--text-muted);margin-top:6px;font-weight:500}
.tc-data-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.tc-today-card{padding:16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px}
.tc-data-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--border-light)}
.tc-data-bar-seg{transition:width .4s}
.tc-data-bar-seg.correct{background:var(--success)}
.tc-data-bar-seg.incorrect{background:var(--danger)}
/* ===== 能力雷达 ===== */
.tc-radar-wrap{display:flex;gap:16px;align-items:center;padding:16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px;flex-wrap:wrap;justify-content:center}
.tc-radar-svg{width:220px;height:220px;flex-shrink:0}
.tc-radar-legend{display:flex;flex-direction:column;gap:6px;min-width:120px}
.tc-radar-legend-item{display:flex;align-items:center;gap:6px;font-size:13px}
.tc-radar-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tc-radar-lname{color:var(--text);font-weight:500;min-width:40px}
.tc-radar-lval{color:var(--text);font-weight:700;min-width:36px;text-align:right}
.tc-radar-ltotal{color:var(--text-muted);font-size:11px;min-width:30px;text-align:right}

/* ===== 训练日历 ===== */
.tc-cal-card{padding:16px 12px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px}
.tc-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tc-cal-nav{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-muted);padding:2px 8px;font-family:inherit}
.tc-cal-nav:hover{color:var(--primary)}
.tc-cal-title{font-size:14px;font-weight:600;color:var(--text)}
.tc-cal-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.tc-cal-tbl th{text-align:center;font-size:11px;color:var(--text-muted);font-weight:500;padding:5px 0;border:1px solid var(--border-light);background:var(--primary-light)}
.tc-cal-tbl td{text-align:center;font-size:13px;padding:7px 0;border:1px solid var(--border-light);color:var(--text)}
.tc-cal-empty{visibility:hidden}
.tc-cal-cell.today{font-weight:700;box-shadow:inset 0 0 0 1.5px var(--primary);border-radius:4px}
.tc-cal-cell.l1{background:#E8F0E8;border-radius:4px}
.tc-cal-cell.l2{background:#C8E0C8;border-radius:4px}
.tc-cal-cell.l3{background:#8FC090;border-radius:4px;color:#fff}
.tc-cal-cell.l4{background:#4D7A52;border-radius:4px;color:#fff}
.tc-cal-legend{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:8px;font-size:11px;color:var(--text-muted)}
.tc-cal-legend i{display:inline-block;width:12px;height:12px;border-radius:2px}
.tc-cal-legend .l1{background:#E8F0E8}
.tc-cal-legend .l2{background:#C8E0C8}
.tc-cal-legend .l3{background:#8FC090}
.tc-cal-legend .l4{background:#4D7A52}

/* ===== 最近7天趋势（紧凑表格） ===== */
.tc-trend-tbl{width:100%;border-collapse:collapse;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}
.tc-trend-tbl td{padding:10px 8px;border-bottom:1px solid var(--border-light);vertical-align:middle}
.tc-trend-tbl tr:last-child td{border-bottom:none}
.tc-trend-label{font-size:13px;color:var(--text);font-weight:500;white-space:nowrap;width:52px}
.tc-trend-bar-cell{width:auto;padding-left:4px!important;padding-right:4px!important}
.tc-trend-bar-bg{height:12px;background:var(--border-light);border-radius:6px;overflow:hidden}
.tc-trend-bar-fill{height:100%;border-radius:6px;transition:width .4s;min-width:0}
.tc-trend-pct{font-size:13px;font-weight:600;color:var(--text);text-align:right;width:40px}
.tc-trend-num{font-size:11px;color:var(--text-muted);text-align:right;width:36px}
.tc-prog-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:8px}
.tc-prog-icon{font-size:clamp(18px,4vw,24px);width:clamp(24px,5vw,30px);text-align:center;flex-shrink:0}
.tc-prog-info{flex:1;min-width:0}
.tc-prog-name{font-size:clamp(13px,3.2vw,15px);font-weight:600;color:var(--text)}
.tc-prog-domain{font-size:clamp(10px,2.4vw,12px);color:var(--text-muted);margin-top:1px}
.tc-prog-bar-wrap{width:clamp(60px,18vw,100px);flex-shrink:0}
.tc-prog-pct{font-size:clamp(12px,3vw,14px);font-weight:600;min-width:clamp(32px,8vw,44px);text-align:right}
.tc-prog-num{font-size:clamp(10px,2.4vw,12px);color:var(--text-muted);min-width:clamp(20px,5vw,28px);text-align:right}
.tc-prog-mastered{font-size:clamp(12px,3vw,16px)}
.tc-progress-fill.slow{background:var(--danger)}
.tc-diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.tc-diff-item{text-align:center;padding:12px 8px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow)}
.tc-diff-label{font-size:14px;font-weight:600;margin-bottom:6px}
.tc-diff-bar-bg{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden;margin-bottom:4px}
.tc-diff-bar{height:100%;border-radius:3px;transition:width .4s}
.tc-diff-pct{font-size:18px;font-weight:700}
.tc-diff-count{font-size:11px;color:var(--text-muted)}
.tc-history-list{display:flex;flex-direction:column;margin-bottom:var(--sp-md)}
.tc-history-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:var(--sp-xs)}
.tc-history-item:last-child{margin-bottom:0}
.tc-history-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}
.tc-history-info{flex:1;min-width:0}
.tc-history-prog{font-size:13px;font-weight:600;color:var(--text)}
.tc-history-meta{font-size:11px;color:var(--text-muted);margin-top:1px}
.tc-history-result{font-size:18px;font-weight:700;width:28px;text-align:center}
.tc-history-result.correct{color:var(--success)}
.tc-history-result.incorrect{color:var(--danger)}

.tc-goal-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:10px}
.tc-goal-badge{font-size:10px;padding:1px 6px;border-radius:8px;margin-left:4px}
.tc-goal-badge.done{background:var(--primary-light);color:var(--success)}
.tc-goal-badge.new{background:#FFF3E0;color:#E65100}
.tc-goal-badge.active{background:#E3F2FD;color:#1565C0}
.tc-plan-sec{margin-bottom:12px}
.tc-plan-sec-title{font-size:13px;font-weight:700;color:var(--text-light);margin-bottom:8px}
.tc-plan-goal{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:8px;cursor:pointer;transition:all .2s}
.tc-plan-goal:hover{border-color:var(--primary)}
.tc-plan-icon{font-size:22px;flex-shrink:0}
.tc-plan-body{flex:1;min-width:0}
.tc-plan-name{font-size:14px;font-weight:600;color:var(--text)}
.tc-plan-meta{display:flex;align-items:center;gap:6px;margin-top:3px}
.tc-plan-badge{font-size:10px;padding:1px 8px;border-radius:8px;font-weight:600}
.tc-plan-badge.new{background:#FFF3E0;color:#E65100}
.tc-plan-badge.active{background:#E3F2FD;color:#1565C0}
.tc-plan-badge.done{background:var(--primary-light);color:var(--success)}
.tc-plan-badge.intro{background:#E8F5E9;color:var(--success)}
.tc-plan-rate{font-size:12px;font-weight:600;color:var(--text)}
.tc-plan-go{font-size:12px;color:var(--primary);font-weight:600;flex-shrink:0}

.tc-preset-card{padding:clamp(12px,3vw,20px);background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:16px}
.tc-preset-head{font-size:clamp(14px,3.6vw,17px);font-weight:600;color:var(--text);margin-bottom:clamp(8px,2vw,14px);display:flex;align-items:center;gap:6px}
.tc-preset-body{display:flex;flex-direction:column;gap:clamp(6px,1.5vw,10px)}
.tc-preset-select{width:100%;padding:clamp(10px,2.6vw,14px) 36px clamp(10px,2.6vw,14px) clamp(10px,2.8vw,16px);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:clamp(13px,3.2vw,15px);background:var(--bg-card);color:var(--text);font-family:inherit;cursor:pointer;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%2714%27 viewBox=%270 0 14 14%27%3E%3Cpath fill=%27%23666%27 d=%27M7 9.5L2 4.5h10z%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .2s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}
.tc-preset-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.tc-preset-hint{font-size:clamp(11px,2.6vw,13px);color:var(--text-muted);padding-left:2px}

.tc-iep-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}

/* =====================================================================
   无障碍 & 大厂级体验优化层（自闭症群体适配）
   原则：更大字号 · 更高对比度 · 更少噪音 · 更大触摸目标 · 移动优先
   ===================================================================== */

/* --- 小字号统一提升 + 文字加深 --- */
.tc-stat-label,.tc-rate-label,.tc-pack-desc,.tc-prog-objective,.tc-filter-label,
.tc-history-meta,.tc-diff-count,.tc-report-lab,
.tc-report-tip,.tc-reassess-desc,.tc-net-text,.tc-guide-desc,.tc-guide-step,
.tc-guide-tip,.tc-print-desc,.tc-print-step,.tc-print-foot,.tc-radar-ltotal,
.tc-trend-num,.tc-goal-badge,.tc-plan-badge,.tc-prog-domain,.tc-prog-num,
.tc-quick-desc,.tc-onboard-lab,.tc-cal-tbl th,.tc-cal-legend,.tc-preset-hint,
.tc-history-prog{font-size:14px!important;color:var(--text-light)!important}
.tc-pj-expected,.tc-error-hint{font-size:16px!important;color:var(--text-light)!important}
.tc-step-text{font-size:15px!important}
.tc-instruction{font-size:17px!important}
.tc-guide-title,.tc-plan-name,.tc-prog-name,.tc-pack-name,.tc-quick-name,
.tc-net-domain{font-size:15px!important}
.tc-plan-rate,.tc-plan-go,.tc-reassess-go,.tc-trend-pct{font-size:14px!important}

/* --- 辅助文字从 muted 提升对比度 --- */
.tc-hero-sub,.tc-skill-name,.tc-assess-text,.tc-history-meta,.tc-pj-expected,
.tc-empty-title,.tc-section-title{color:var(--text-light)!important}

/* --- 触摸目标 ≥44px（大厂无障碍标准） --- */
.tc-chip{box-sizing:border-box;min-height:38px;display:inline-flex;align-items:center;font-size:14px;padding:6px 14px}
.tc-abtn{width:38px;height:38px;font-size:14px}
.tc-cal-nav{min-width:44px;min-height:44px}
.tc-search-box input{min-height:48px;font-size:16px}
.tc-select{min-height:48px;font-size:15px}
.tc-preset-select{min-height:48px}
.tc-btn{min-height:48px;font-size:16px}
.tc-step-btns .tc-btn{min-height:44px;min-width:44px;font-size:16px}
.tc-trend-label{font-size:14px!important}


/* --- 降低视觉噪音：统一卡片、柔和阴影 --- */
.tc-goal-card,.tc-plan-goal,.tc-quick,.tc-net-item,.tc-stat-card,.tc-diff-item,
.tc-pack-card,.tc-prog-card,.tc-cal-card,.tc-report{border-radius:var(--radius-md)}

/* --- 文字渲染清晰 --- */
body{font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg)}
.tc-container{font-size:16px}

/* --- 首页 Hero 尺寸协调（大厂标准） --- */
.tc-hero-title{font-size:20px!important}
.tc-hero-sub{font-size:14px!important}
.tc-rate-num{font-size:24px!important}
.tc-rate-label{font-size:12px!important}
.tc-stat-num{font-size:24px!important}
.tc-stat-label{font-size:14px!important}

/* --- 遗漏小字补漏（≥12px 可读标准） --- */
.tc-path-num{font-size:12px!important}
.tc-prog-badge{font-size:12px!important}
.tc-assess-lv-label{font-size:14px!important}
.tc-plan-sec-title{font-size:14px!important}
.tc-cal-tbl td{font-size:14px!important}
.tc-cal-tbl th{font-size:14px!important}
.tc-step-num{font-size:14px!important}

/* --- 首页区块间距统一（大厂 spacing：区块16px 标题上下24/12px 卡片内12px） --- */
.tc-section-title{margin-top:var(--sp-lg)!important;margin-bottom:var(--sp-sm)!important}
.tc-hero-tip{margin-bottom:var(--sp-md)}
.tc-stats{margin-bottom:var(--sp-md)!important}
.tc-hero-top{margin-bottom:var(--sp-md)!important}
.tc-reassess{margin-bottom:var(--sp-md)!important}
.tc-net-list{margin-bottom:var(--sp-md)}
.tc-collapse{margin-bottom:var(--sp-md)!important}
.tc-collapse-head{border-radius:var(--radius-md)}
.tc-collapse.open .tc-collapse-body{max-height:3000px;overflow:visible;padding-bottom:2px}
.tc-print-card{margin:var(--sp-md) 0 0!important}
.tc-quick-grid,.tc-today-action,.tc-profile,.tc-onboard{margin-bottom:var(--sp-md)!important}
.tc-guide-card{margin-top:var(--sp-sm)}
.tc-net-item,.tc-quick,.tc-pack-card{margin-bottom:0}
.tc-net-item{padding:var(--sp-sm) var(--sp-md)}
/* 行式列表项统一卡片间距（大厂 8px） */
.tc-goal-card,.tc-plan-goal,.tc-prog-row,.tc-skill-row,.tc-history-item,.tc-diff-item{margin-bottom:var(--sp-xs)!important}
.tc-goal-card:last-child,.tc-plan-goal:last-child,.tc-prog-row:last-child,.tc-skill-row:last-child,.tc-history-item:last-child{margin-bottom:0!important}

/* --- 对比度修复（WCAG AA ≥4.5:1） --- */
/* 日历中绿档：白字 2.08:1 → 深字 */
.tc-cal-cell.l3{background:#8FC090;color:#1F3D24!important}
/* 徽章加深文字 */
.tc-badge-domain{color:#2F6636!important}
.tc-badge-format{color:#A63A00!important}
.tc-goal-badge.done,.tc-plan-badge.done{color:#2F6B3C!important}
.tc-goal-badge.new,.tc-plan-badge.new{color:#A63A00!important}
.tc-goal-badge.active,.tc-plan-badge.active{color:#1558A8!important}
/* 复评警告文字加深 */
.tc-reassess.warn .tc-reassess-title{color:#A63A2F}
.tc-reassess.warn .tc-reassess-desc{color:#7A2E26}
/* 成功按钮加深（大字按钮 3.79 → 提升） */
.tc-btn-success{background:#4A7A4F!important}
.tc-btn-danger{background:#B04A40!important}
.tc-progress-fill.done{background:#4A7A4F!important}

/* =====================================================================
   字体设计系统统一层（S级 · 大厂 type scale + 自闭症适配）
   层级: display>headline>title-lg>title>body>label>caption
   颜色: strong(#111) > body(#252525) > muted(#474747)，对比度均≥4.5:1
   ===================================================================== */
/* Display 层 · 庆祝大数字 */
.tc-complete-rate{font-size:var(--fs-display)!important;font-weight:var(--fw-black)}
.tc-complete-icon{font-size:56px}
/* Headline 层 · 指标大数字 */
.tc-rate-num,.tc-stat-num,.tc-report-num,.tc-diff-pct{font-size:var(--fs-headline)!important;font-weight:var(--fw-bold)}
/* Title-lg 层 · 页面主标题/训练指令 */
.tc-hero-title,.tc-instruction,.tc-complete-title{font-size:var(--fs-title-lg)!important;font-weight:var(--fw-bold)}
#tc-title{font-size:17px;font-weight:var(--fw-semibold)}
/* Title 层 · 卡片标题（16px semibold） */
.tc-today-title,.tc-guide-title,.tc-guide-quick-title,.tc-onboard-title,
.tc-prog-name,.tc-pack-name,.tc-plan-name,.tc-quick-name,.tc-cal-title,
.tc-report-head,.tc-collapse-head,.tc-preset-head,.tc-print-head,
.tc-print-promo-title{font-size:var(--fs-title)!important;font-weight:var(--fw-semibold)}
.tc-today-title,.tc-guide-quick-title{font-weight:var(--fw-bold)}
/* Body 层 · 正文说明（15px） */
.tc-container,body{font-size:var(--fs-body)}
.tc-step-text,.tc-net-text,.tc-assess-text,.tc-guide-desc,.tc-guide-step,
.tc-pack-desc,.tc-print-desc,.tc-print-step,.tc-reassess-title,.tc-today-sub,
.tc-skill-name,.tc-history-prog,.tc-pj-expected{font-size:var(--fs-body)!important}
/* Label 层 · 标签/徽章/辅助（13px） */
.tc-chip,.tc-prog-badge,.tc-goal-badge,.tc-plan-badge,.tc-cal-tbl th,
.tc-trend-label,.tc-trend-pct,.tc-trend-num,.tc-history-meta,.tc-diff-count,
.tc-report-lab,.tc-report-tip,.tc-net-domain,.tc-quick-desc,.tc-onboard-lab,
.tc-radar-ltotal,.tc-cal-legend,.tc-preset-hint,.tc-skill-pct,.tc-filter-label,
.tc-guide-tip,.tc-print-foot,.tc-reassess-desc,.tc-reassess-go,.tc-plan-rate,
.tc-plan-go,.tc-today-go{font-size:var(--fs-label)!important}
/* 颜色统一（深色清晰，对比度≥4.5:1） */
.tc-net-text,.tc-assess-text,.tc-guide-desc,.tc-guide-step,
.tc-pack-desc,.tc-history-prog,.tc-report-tip,.tc-print-desc,.tc-reassess-desc,
.tc-skill-name{color:var(--tx-body)!important}
.tc-history-meta,.tc-diff-count,.tc-report-lab,.tc-quick-desc,.tc-filter-label,
.tc-cal-tbl th,.tc-trend-num,.tc-radar-ltotal,.tc-cal-legend,.tc-preset-hint,
.tc-onboard-lab,.tc-guide-tip,.tc-print-foot{color:var(--tx-muted)!important}
/* 深绿渐变底（今日训练主卡）→ 文字必须白色，对比度≥4.5 */
.tc-today-action .tc-today-title{color:#FFFFFF!important}
.tc-today-action .tc-today-sub{color:rgba(255,255,255,0.95)!important}
.tc-today-action .tc-today-go{color:#FFFFFF!important;background:rgba(255,255,255,0.22)}
/* 字重清晰度 */
.tc-guide-desc,.tc-guide-step,.tc-net-text,.tc-pack-desc,.tc-print-desc{line-height:1.7}
/* 底部页脚：版权 + 合规声明 + 公众号（大厂分层页脚） */
.tc-footer{margin-top:24px;padding:16px 20px 14px;border-top:1px solid var(--border-light);text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px}
.tc-footer-copy{font-size:11px;color:var(--text-muted);letter-spacing:0.5px}
.tc-footer-disclaimer{font-size:10.5px;color:var(--text-muted);line-height:1.7;max-width:300px;opacity:0.8}
.tc-footer-guide{font-size:11px;color:var(--text-muted);opacity:0.9}
/* 评估页合规提示 */
.tc-assess-note{font-size:12px;color:var(--text-muted);background:var(--bg);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:14px;line-height:1.6}
/* 训练包页网盘提示（可折叠，不碍操作） */
.tc-pack-tip{margin-bottom:12px;padding:10px 14px;background:linear-gradient(135deg,rgba(77,122,82,0.08),rgba(107,155,112,0.05));border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text)}
.tc-pack-tip-arrow{display:inline-block;transition:transform .3s}
.tc-pack-tip.open .tc-pack-tip-arrow{transform:rotate(180deg)}
.tc-pack-tip-body{max-height:0;overflow:hidden;transition:max-height .3s;font-size:12px;color:var(--text-light);line-height:1.8;margin-top:0}
.tc-pack-tip.open .tc-pack-tip-body{max-height:100px;margin-top:6px}
/* 设置页 */
.tc-settings-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:10px}
.tc-settings-label{font-size:14px;font-weight:600;color:var(--text);min-width:100px}
.tc-settings-val{font-size:14px;font-weight:600;color:var(--text);min-width:50px;text-align:right}
.tc-settings-item input[type=range]{accent-color:var(--primary)}
.tc-switch{position:relative;display:inline-block;width:48px;height:26px}
.tc-switch input{opacity:0;width:0;height:0}
.tc-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);transition:.3s;border-radius:26px}
.tc-switch-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#fff;transition:.3s;border-radius:50%}
.tc-switch input:checked + .tc-switch-slider{background:var(--primary)}
.tc-switch input:checked + .tc-switch-slider:before{transform:translateX(22px)}
/* 纠错成功轻度反馈（线下"纠错成功，不计分"） */
.tc-praise-light{text-align:center;padding:8px 14px;background:#E8F5E9;color:var(--success);font-size:14px;font-weight:600;border-radius:var(--radius-sm);margin-bottom:12px;animation:tc-fb-in .25s;border:1px solid var(--success)}
@keyframes tc-fb-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
/* 完成页纠错统计 */
.tc-complete-retry{margin-top:8px;padding:6px 14px;background:var(--bg);border-radius:var(--radius-sm);font-size:12px;color:var(--text-light);max-width:360px}


/* =====================================================================
   移动优先基础层（v5.1）—— 默认样式 = 移动端最优状态（渐进增强）
   原则：小屏=基础，大屏用 min-width 逐级增强；所有 max-width 已移除
   ===================================================================== */
/* 标签/筛选：移动端横向滚动（chip-group 保持与下方 12px 间距） */
.tc-filter-chips,.tc-onboard-chips,.tc-focus-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;padding-bottom:6px;margin-bottom:-6px}
.tc-chip-group{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;padding-bottom:6px;margin-bottom:12px}
.tc-filter-chips::-webkit-scrollbar,.tc-onboard-chips::-webkit-scrollbar,.tc-focus-chips::-webkit-scrollbar,.tc-chip-group::-webkit-scrollbar{display:none}
.tc-filter-chips .tc-chip,.tc-onboard-chips .tc-chip,.tc-focus-chips .tc-chip,.tc-chip-group .tc-chip{scroll-snap-align:start;white-space:nowrap;flex-shrink:0}
.tc-filter-label{flex-shrink:0}
/* 训练会话：移动端网格 */
.tc-options.cols-3{grid-template-columns:repeat(2,1fr)}
.tc-opt-count .tc-count-row img{width:28px;height:28px}
.tc-cat-items{grid-template-columns:repeat(3,1fr)}
/* 完成页按钮 */
.tc-complete-actions .tc-btn{font-size:14px;padding:0 4px}
/* 首页布局：移动端紧凑 */
.tc-stats{gap:6px}
.tc-stat{padding:10px 6px}
.tc-path{flex-wrap:wrap;gap:4px}
.tc-path-step{min-width:100%}
.tc-path-arrow{display:none}
.tc-grid-2{gap:8px}
.tc-pack-grid{grid-template-columns:1fr}
.tc-complete{padding:32px 16px}
/* 会话 header：移动端紧凑 */
.tc-token-row .tc-token{font-size:13px}
.tc-nav-hud{gap:6px}
.tc-nav-counter{font-size:12px}
.tc-nav-counter #tc-counter{font-size:15px}
/* 使用指南：移动端竖排 */
.tc-guide-item{flex-wrap:wrap}
.tc-guide-num{display:none}
.tc-guide-arrow{width:100%;margin:4px 0 0;padding-left:0;font-size:15px}
.tc-guide-arrow::after{content:"继续查看";font-size:12px;font-weight:500;margin-left:6px;color:var(--primary)}
.tc-hide-mobile{display:none!important}
.tc-prog-card .tc-prog-icon{display:none}
/* 网格：移动端列数 */
.tc-prog-grid{grid-template-columns:repeat(2,1fr);gap:6px}
.tc-assess-grid-5{grid-template-columns:repeat(2,1fr)}
.tc-assess-grid-3{grid-template-columns:1fr}
.tc-iep-grid{grid-template-columns:1fr;gap:8px}
.tc-iep-row{grid-template-columns:1fr;gap:12px;margin-bottom:20px}
.tc-data-grid-4{grid-template-columns:repeat(2,1fr);gap:8px}
.tc-quick-grid{grid-template-columns:repeat(2,1fr);gap:8px}
/* 移动端紧凑容器 */
.tc-container{padding:12px}
.tc-profile-icon{display:none}
.tc-prog-row{padding:10px 12px;gap:8px}
.tc-prog-bar-wrap{width:clamp(40px,20vw,60px)}
.tc-radar-svg{width:200px;height:200px}
.tc-radar-wrap{flex-direction:column}
.tc-stat-card{padding:12px 6px}

/* ===== 大屏渐进增强层（min-width）===== */
@media(min-width:401px){
.tc-prog-grid{grid-template-columns:repeat(3,1fr)}
.tc-radar-wrap{flex-direction:row}
.tc-stat-card{padding:16px 8px}
.tc-complete-actions .tc-btn{font-size:15px;padding:0 6px}
}
@media(min-width:481px){
.tc-path-step{min-width:calc(50% - 4px)}
.tc-prog-grid{grid-template-columns:repeat(3,1fr)}
.tc-assess-grid-5{grid-template-columns:repeat(3,1fr)}
.tc-assess-grid-3{grid-template-columns:repeat(3,1fr)}
.tc-iep-grid{grid-template-columns:1fr 1fr;gap:12px}
.tc-iep-row{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:24px}
.tc-profile-icon{display:flex}
.tc-prog-row{padding:12px 14px;gap:10px}
.tc-prog-bar-wrap{width:clamp(60px,18vw,100px)}
.tc-token-row .tc-token{font-size:16px}
.tc-nav-hud{gap:10px}
.tc-nav-counter{font-size:14px}
.tc-nav-counter #tc-counter{font-size:17px}
}
@media(min-width:521px){
.tc-data-grid-4{grid-template-columns:repeat(4,1fr);gap:10px}
}
@media(min-width:641px){
.tc-container{padding:16px}
.tc-filter-chips,.tc-onboard-chips,.tc-focus-chips{flex-wrap:wrap;overflow:visible;scroll-snap-type:none;padding-bottom:0;margin-bottom:0}
.tc-chip-group{flex-wrap:wrap;overflow:visible;scroll-snap-type:none;padding-bottom:0;margin-bottom:16px}
.tc-filter-chips .tc-chip,.tc-onboard-chips .tc-chip,.tc-focus-chips .tc-chip,.tc-chip-group .tc-chip{flex-shrink:1}
.tc-options.cols-3{grid-template-columns:repeat(3,1fr)}
.tc-opt-count .tc-count-row img{width:34px;height:34px}
.tc-cat-items{grid-template-columns:repeat(4,1fr)}
.tc-stats{gap:10px}
.tc-stat{padding:20px 16px}
.tc-path{flex-wrap:nowrap}
.tc-path-step{min-width:0}
.tc-path-arrow{display:block}
.tc-grid-2{gap:10px}
.tc-pack-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.tc-complete{padding:48px 24px}
.tc-guide-item{flex-wrap:nowrap}
.tc-guide-num{display:flex}
.tc-guide-arrow{width:auto;margin:8px 0 0;padding-left:0;font-size:18px}
.tc-guide-arrow::after{content:none}
.tc-hide-mobile{display:block!important}
.tc-prog-card .tc-prog-icon{display:inline}
.tc-prog-grid{grid-template-columns:repeat(4,1fr);gap:8px}
.tc-assess-grid-5{grid-template-columns:repeat(5,1fr)}
.tc-quick-grid{gap:10px}
.tc-radar-svg{width:220px;height:220px}
}
@media(min-width:769px){
.tc-iep-row{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}
}
@media(min-width:901px){
.tc-prog-grid{grid-template-columns:repeat(5,1fr)}
}

/* 表单标签大厂标准：14px/500（覆盖 Label 层 13px，用于行为记录/强化物等表单页） */
.tc-filter-label{font-size:14px!important;font-weight:500!important}

/* 多步指令（multi-step）：逐张出示 → 听完整指令（线下桌面式） */
.tc-ms-instruction{font-size:18px;font-weight:700;color:var(--text);text-align:center;margin-bottom:10px}
.tc-ms-stage{background:var(--bg-card);border:2px solid var(--border-light);border-radius:var(--radius-md);min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}
.tc-ms-big{width:100%;max-width:220px;display:flex;align-items:center;justify-content:center}
.tc-ms-big img{max-width:100%;max-height:150px;object-fit:contain;border-radius:var(--radius-sm)}
.tc-ms-big-txt{font-size:18px;font-weight:700;color:var(--primary);text-align:center;line-height:1.3}
.tc-ms-steps{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tc-ms-steps::-webkit-scrollbar{display:none}
.tc-ms-step{position:relative;flex-shrink:0;min-width:76px;padding:8px 12px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.tc-ms-step-txt{font-size:13px;color:var(--text);text-align:left;line-height:1.3;font-weight:500;white-space:nowrap}
.tc-ms-step-num{width:20px;height:20px;border-radius:50%;background:var(--border);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.tc-ms-step.active{border-color:var(--primary);background:var(--primary-light)}
.tc-ms-step.active .tc-ms-step-num{background:var(--primary)}
.tc-ms-step.active .tc-ms-step-txt{color:var(--primary);font-weight:700}
.tc-ms-full-row{display:flex;gap:8px;margin-bottom:10px}.tc-ms-full{flex:1;background:var(--primary-light);color:var(--primary);border:1.5px solid var(--primary);font-weight:600;min-height:48px;font-size:16px}.tc-ms-replay{width:48px;min-height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary);border:1.5px solid var(--primary);border-radius:var(--radius-sm);cursor:pointer}

/* 有问题时引导语弱化（小字无背景，问题突出） */
.tc-pj-instruct-quiet{text-align:center;font-size:15px;color:var(--text);padding:6px 10px;margin-bottom:4px}

/* 提交后交互按钮禁用态（防重复点击+提示已处理） */
.tc-submitted{opacity:0.55;pointer-events:none}
