/* ============================================================
   镀联产业平台 · 小程序端 UI 公共样式（375 设计基准，居中模拟）
   ============================================================ */
:root{
  --navy:#0F3460;--navy-2:#143F73;--navy-deep:#0A2545;--navy-soft:#EAF1F9;
  --gray:#535C68;--gray-2:#8A94A2;
  --accent:#E94560;--accent-soft:#FDECEF;
  --bg:#F4F6FA;--white:#FFF;
  --text:#222;--text-2:#666;--text-3:#99A1AD;
  --border:#E8ECF2;--border-2:#EEF1F6;
  --up:#E94560;--down:#1FA37C;--warn:#E8A33D;--warn-soft:#FCF3E3;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  font-size:14px;color:var(--text);background:#E7EBF2;line-height:1.55;
}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;border:none;background:none;cursor:pointer;}
input{font-family:inherit;border:none;outline:none;background:none;}
/* 手机画布 */
.phone{width:420px;max-width:100%;margin:0 auto;background:var(--bg);min-height:100vh;position:relative;box-shadow:0 0 40px rgba(10,37,69,.15);}
/* ===== 顶部渐变头 ===== */
.mhead{background:linear-gradient(150deg,#0A2545 0%,#0F3460 70%,#16477F 100%);color:#fff;padding:18px 16px 20px;border-radius:0 0 16px 16px;}
.mhead-row{display:flex;align-items:center;justify-content:space-between;}
.mhead-row .m-logo{display:flex;align-items:center;gap:8px;}
.m-logo .lm{width:30px;height:30px;border-radius:7px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;}
.m-logo b{font-size:16px;letter-spacing:1px;}
.mhead .m-acts{display:flex;gap:14px;align-items:center;}
.mhead .m-acts span{font-size:12px;color:#BCD0E9;display:flex;flex-direction:column;align-items:center;gap:2px;}
.m-search{margin-top:14px;display:flex;align-items:center;gap:8px;background:#fff;border-radius:19px;height:38px;padding:0 14px;color:var(--text-3);font-size:13px;}
.m-search input{flex:1;font-size:13px;color:var(--text);}
/* ===== 金刚区 ===== */
.king{display:grid;grid-template-columns:repeat(5,1fr);gap:4px 0;padding:16px 8px 6px;background:#fff;border-radius:12px;margin-top:-10px;position:relative;z-index:2;box-shadow:0 4px 16px rgba(15,52,96,.06);}
.king a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0;}
.king .ki{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff;}
.king p{font-size:12px;color:var(--text-2);}
/* ===== 区块 ===== */
.msec{margin-top:12px;padding:0 12px;}
.msec-head{display:flex;align-items:center;justify-content:space-between;padding:12px 2px 8px;}
.msec-head h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:7px;}
.msec-head h3::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--accent);}
.msec-head .more{font-size:12px;color:var(--text-3);}
/* ===== 双轨行情卡 ===== */
.mkt-card{background:#fff;border-radius:12px;padding:4px 14px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.mkt-row{display:grid;grid-template-columns:1.25fr 1fr 1fr .7fr;align-items:center;padding:11px 0;border-bottom:1px solid var(--border-2);}
.mkt-row:last-child{border-bottom:none;}
.mkt-row .mn{font-size:14px;font-weight:600;}
.mkt-row .ms{font-size:11px;color:var(--text-3);margin-top:1px;}
.p-tr{display:flex;align-items:center;gap:5px;}
.p-tr .tag{flex-shrink:0;}
.tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:3px;font-size:10px;font-weight:700;line-height:1;white-space:nowrap;}
.tag-trade{background:var(--accent-soft);color:var(--accent);border:1px solid #F6C9D2;}
.tag-ref{background:#F1F3F6;color:var(--gray);border:1px solid #E2E6EC;}
.tag-navy{background:var(--navy-soft);color:var(--navy);}
.tag-warn{background:var(--warn-soft);color:#B97B16;}
.tag-green{background:#E6F7F1;color:var(--down);}
.pv{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text);}
.pv small{font-size:10px;color:var(--text-3);font-weight:400;margin-left:1px;}
.chg{font-size:12px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;}
.up{color:var(--up);}.down{color:var(--down);}.flat{color:var(--text-3);}
/* ===== 通用白卡 ===== */
.wcard{background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
/* ===== 报价卡（行情列表） ===== */
.quote-card{background:#fff;border-radius:12px;padding:13px 14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.qc-top{display:flex;align-items:flex-start;justify-content:space-between;}
.qc-name{font-size:15px;font-weight:700;}
.qc-spec{font-size:12px;color:var(--text-3);margin-top:2px;}
.qc-time{font-size:11px;color:var(--text-3);flex-shrink:0;display:flex;align-items:center;gap:4px;}
.qc-time i{width:6px;height:6px;border-radius:50%;background:var(--down);}
.qc-price{display:flex;align-items:baseline;gap:14px;margin-top:10px;}
.qc-price .big{font-size:20px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;}
.qc-price .big small{font-size:11px;font-weight:400;color:var(--text-3);margin-left:2px;}
.qc-price .refv{font-size:13px;color:var(--gray-2);font-variant-numeric:tabular-nums;}
.qc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-2);}
.qc-sup{font-size:12px;color:var(--text-2);}
.qc-sup b{color:var(--navy);}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 12px 2px;-webkit-overflow-scrolling:touch;}
.chips::-webkit-scrollbar{display:none;}
.chips button{flex-shrink:0;height:30px;padding:0 14px;border-radius:15px;background:#fff;border:1px solid var(--border);font-size:13px;color:var(--gray);}
.chips button.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600;}
/* ===== 集采卡 ===== */
.gb-card{background:#fff;border-radius:12px;padding:14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.gb-top{display:flex;align-items:flex-start;justify-content:space-between;}
.gb-name{font-size:15px;font-weight:700;}
.gb-spec{font-size:12px;color:var(--text-3);margin-top:2px;}
.gb-cd{background:var(--navy-deep);color:#FFD27A;font-size:11px;border-radius:4px;padding:3px 8px;font-variant-numeric:tabular-nums;flex-shrink:0;}
.gb-rows{display:flex;gap:22px;margin-top:10px;}
.gb-rows .gr-k{font-size:11px;color:var(--text-3);}
.gb-rows .gr-v{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px;}
.gb-rows .gr-v.acc{color:var(--accent);}
.gb-prog{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);margin:10px 0 5px;}
.bar{height:7px;background:#EEF2F7;border-radius:4px;overflow:hidden;}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--navy),#2E6FB7);border-radius:4px;}
.bar.hot i{background:linear-gradient(90deg,var(--accent),#F0728A);}
.gb-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.gb-n{font-size:12px;color:var(--text-2);}
.gb-n b{color:var(--accent);}
/* ===== 按钮 ===== */
.mbtn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 16px;border-radius:6px;font-size:13px;font-weight:600;}
.mbtn-acc{background:var(--accent);color:#fff;}
.mbtn-navy{background:var(--navy);color:#fff;}
.mbtn-line{border:1px solid var(--navy);color:var(--navy);background:#fff;}
.mbtn-ghost{border:1px solid var(--border);color:var(--gray);background:#fff;}
.mbtn-lg{height:44px;padding:0 26px;font-size:15px;border-radius:8px;}
/* ===== 横滑 banner ===== */
.banner{height:132px;border-radius:12px;background:linear-gradient(115deg,#173F6E,#2E6FB7);color:#fff;padding:18px;position:relative;overflow:hidden;}
.banner.b2{background:linear-gradient(115deg,#5A3A1E,#A9743F);}
.banner .b-tag{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:2px 10px;font-size:10px;}
.banner h4{font-size:18px;margin-top:10px;letter-spacing:1px;}
.banner p{font-size:11px;color:rgba(255,255,255,.75);margin-top:4px;}
.banner .b-go{position:absolute;right:14px;bottom:14px;background:#fff;color:var(--navy);border-radius:14px;height:28px;display:flex;align-items:center;padding:0 12px;font-size:12px;font-weight:700;}
.banner.dots{padding-bottom:26px;}
.bd-dots{position:absolute;left:0;right:0;bottom:9px;display:flex;justify-content:center;gap:5px;}
.bd-dots i{width:14px;height:3px;border-radius:2px;background:rgba(255,255,255,.35);}
.bd-dots i.on{background:#fff;width:20px;}
/* ===== 需求卡 ===== */
.dm-card{background:#fff;border-radius:12px;padding:13px 14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.dm-title{font-size:14.5px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dm-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;margin-top:8px;}
.dm-meta .k{color:var(--text-3);}
.dm-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border-2);font-size:11px;color:var(--navy);}
/* ===== 我的页 ===== */
.me-hero{background:linear-gradient(150deg,#0A2545 0%,#0F3460 75%);color:#fff;padding:22px 16px 54px;border-radius:0 0 16px 16px;}
.me-row{display:flex;align-items:center;gap:12px;}
.me-ava{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;}
.me-name{font-size:17px;font-weight:700;display:flex;align-items:center;gap:6px;}
.me-sub{font-size:12px;color:#9FB2CC;margin-top:3px;}
.me-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:16px;text-align:center;}
.me-stats b{font-size:18px;font-variant-numeric:tabular-nums;}
.me-stats span{font-size:11px;color:#9FB2CC;display:block;margin-top:2px;}
.me-menu{background:#fff;border-radius:12px;margin-top:-40px;position:relative;z-index:2;margin-left:12px;margin-right:12px;box-shadow:0 4px 16px rgba(15,52,96,.08);}
.me-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:16px 0 10px;}
.me-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 0;}
.me-grid .gi{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;}
.me-grid p{font-size:11.5px;color:var(--text-2);}
.me-list{background:#fff;border-radius:12px;margin:12px 12px 0;overflow:hidden;}
.me-li{display:flex;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid var(--border-2);font-size:14px;}
.me-li:last-child{border-bottom:none;}
.me-li .li-ico{width:30px;height:30px;border-radius:8px;background:var(--navy-soft);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.me-li .li-arr{margin-left:auto;color:#C6CDD8;font-size:15px;}
.me-li .li-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;border-radius:9px;padding:1px 7px;font-weight:700;}
/* ===== TabBar ===== */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:420px;max-width:100%;background:#fff;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);z-index:50;padding-bottom:env(safe-area-inset-bottom);}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 8px;font-size:10.5px;color:var(--gray-2);}
.tabbar a svg{width:22px;height:22px;}
.tabbar a.on{color:var(--navy);font-weight:700;}
.tabbar a.on svg{stroke:var(--navy);}
.tabbar .tb-plus{position:relative;}
.tabbar .tb-plus .pbtn{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#F0728A);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(233,69,96,.4);}
.pad-bottom{height:70px;}
/* ===== 顶部标题栏（非首页） ===== */
.mnav{position:sticky;top:0;z-index:40;background:var(--navy);color:#fff;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;}
.mnav .back{font-size:18px;width:24px;}
.mnav b{font-size:16px;letter-spacing:1px;}
.mnav .mnav-r{width:24px;text-align:center;font-size:15px;}
/* 筛选排序条 */
.sortbar{display:flex;align-items:center;gap:18px;background:#fff;padding:10px 14px;font-size:13px;color:var(--gray);position:sticky;top:48px;z-index:30;border-bottom:1px solid var(--border-2);}
.sortbar .on{color:var(--navy);font-weight:700;}
.sortbar .fs{margin-left:auto;display:flex;align-items:center;gap:4px;}
/* ===== 详情页 Hero 头 ===== */
.hero{background:linear-gradient(155deg,#0A2545 0%,#0F3460 70%,#16477F 100%);color:#fff;padding:20px 16px 24px;border-radius:0 0 16px 16px;}
.hero h1{font-size:19px;font-weight:700;letter-spacing:.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hero .spec{font-size:12px;color:#9FB2CC;margin-top:6px;line-height:1.7;}
.hero .stats{display:flex;gap:18px;margin-top:14px;flex-wrap:wrap;}
.hero .st{text-align:center;}
.hero .st b{font-size:18px;font-variant-numeric:tabular-nums;display:block;}
.hero .st b.acc{color:#FFD27A;}
.hero .st span{font-size:11px;color:#8FA8C8;}
/* 详情 hero 价格头 */
.hero-price{display:flex;align-items:baseline;gap:18px;margin-top:14px;flex-wrap:wrap;}
.hero-price .hp-trade{font-size:28px;font-weight:800;color:#FF9DB0;font-variant-numeric:tabular-nums;line-height:1;}
.hero-price .hp-trade small{font-size:12px;color:#BCD0E9;font-weight:400;margin-left:3px;}
.hero-price .hp-ref{font-size:14px;color:#8FA8C8;font-variant-numeric:tabular-nums;}
.hero-price .chg-up{font-size:13px;color:#F0728A;font-weight:700;}
.hero-price .chg-dn{font-size:13px;color:#5FC9A8;font-weight:700;}
/* ===== 参数网格（2 列） ===== */
.pgrid{display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(15,52,96,.05);margin-top:10px;}
.pg-item{padding:12px 14px;border-right:1px solid var(--border-2);border-bottom:1px solid var(--border-2);}
.pg-item:nth-child(2n){border-right:none;}
.pg-item:nth-last-child(-n+2){border-bottom:none;}
.pg-item .k{font-size:11px;color:var(--text-3);}
.pg-item .v{font-size:14px;font-weight:700;color:var(--text);margin-top:3px;}
.pg-item .v small{font-size:11px;color:var(--text-3);font-weight:400;}
/* ===== 进度卡 ===== */
.prog-card{background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 10px rgba(15,52,96,.05);margin-top:10px;}
.prog-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:8px;}
.prog-top .pt-k{font-size:11px;color:var(--text-3);}
.prog-top .pt-v{font-size:22px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1;}
.prog-top .pt-v em{font-style:normal;font-size:12px;color:var(--text-3);font-weight:500;margin-left:3px;}
.prog-marks{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-3);margin-top:6px;}
.milestones{margin-top:14px;}
.ms{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border-2);font-size:12.5px;}
.ms:last-child{border-bottom:none;}
.ms .ms-dot{width:14px;height:14px;border-radius:50%;background:var(--border);flex-shrink:0;margin-top:2px;position:relative;}
.ms .ms-dot::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#fff;}
.ms.done .ms-dot{background:var(--down);}
.ms.now .ms-dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.ms b{font-size:13px;color:var(--navy);display:block;}
.ms span{color:var(--text-3);margin-top:2px;}
/* ===== 匹配工厂卡 ===== */
.fac-card{background:#fff;border-radius:12px;padding:14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.fac-card.best{border:1.5px solid var(--accent);}
.fac-head{display:flex;gap:12px;align-items:flex-start;}
.fac-ava{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,var(--navy),#2E6FB7);color:#fff;font-size:17px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fac-info{flex:1;min-width:0;}
.fac-info b{font-size:15px;color:var(--navy);}
.fac-info .fmeta{font-size:11.5px;color:var(--text-3);margin-top:3px;line-height:1.6;}
.fac-info .ftags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;}
.fac-info .ftags span{font-size:10px;height:18px;padding:0 7px;border-radius:3px;background:var(--navy-soft);color:var(--navy);display:inline-flex;align-items:center;}
.fac-kpis{display:flex;gap:0;margin-top:10px;border:1px solid var(--border-2);border-radius:6px;overflow:hidden;}
.fk{flex:1;text-align:center;padding:7px 2px;background:#FBFCFE;border-right:1px solid var(--border-2);}
.fk:last-child{border-right:none;}
.fk b{font-size:14px;color:var(--navy);font-variant-numeric:tabular-nums;display:block;}
.fk b.acc{color:var(--accent);}
.fk span{font-size:10.5px;color:var(--text-3);}
.fac-act{display:flex;gap:8px;margin-top:10px;}
.match-score{text-align:center;flex-shrink:0;min-width:56px;}
.match-score b{font-size:22px;color:var(--accent);font-variant-numeric:tabular-nums;display:block;line-height:1;}
.match-score span{font-size:10px;color:var(--text-3);display:block;margin-top:2px;}
.match-score .bar{margin-top:4px;height:5px;}
.match-score .bar i{background:linear-gradient(90deg,var(--accent),#F0728A);}
/* ===== 时间线 ===== */
.tl{position:relative;padding-left:18px;}
.tl::before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:2px;background:var(--border-2);}
.tl-item{position:relative;padding:0 0 14px;font-size:13px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:"";position:absolute;left:-18px;top:4px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--navy);}
.tl-item.done::before{background:var(--down);border-color:var(--down);}
.tl-item.acc::before{background:var(--accent);border-color:var(--accent);}
.tl-item .t{font-size:11px;color:var(--text-3);}
.tl-item p{margin-top:2px;color:var(--text-2);line-height:1.7;}
.tl-item p b{color:var(--navy);}
/* ===== 底部固定按钮 ===== */
.fab{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);width:416px;max-width:calc(100% - 8px);background:#fff;border-top:1px solid var(--border);padding:10px 12px;display:flex;gap:8px;z-index:49;}
.fab .mbtn{flex:1;}
/* ===== 专家详情 ===== */
.tal-hero{background:linear-gradient(155deg,#0A2545 0%,#0F3460 75%);color:#fff;padding:20px 16px 26px;border-radius:0 0 16px 16px;}
.tal-hero .th-top{display:flex;gap:14px;align-items:center;}
.tal-ava{width:60px;height:60px;border-radius:12px;background:linear-gradient(135deg,#E8A33D,#C8830F);color:#fff;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tal-hero h1{font-size:18px;font-weight:700;}
.tal-hero .sub{font-size:12px;color:#9FB2CC;margin-top:3px;}
.tal-hero .tags{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap;}
.tal-hero .tags span{font-size:10px;height:18px;padding:0 7px;border-radius:3px;background:rgba(255,255,255,.14);color:#D6E4F5;border:1px solid rgba(255,255,255,.22);display:inline-flex;align-items:center;}
.tal-hero .stats{display:flex;gap:22px;margin-top:16px;text-align:center;}
.tal-hero .st b{font-size:17px;}
.tal-hero .st b.acc{color:#FF9DB0;}
/* ===== 专家服务报价 ===== */
.svc-item{background:#fff;border-radius:12px;padding:12px 14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);display:flex;gap:12px;align-items:flex-start;}
.svc-item .svc-ic{width:38px;height:38px;border-radius:8px;background:var(--navy-soft);color:var(--navy);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.svc-main{flex:1;min-width:0;}
.svc-main b{font-size:14px;color:var(--navy);}
.svc-main p{font-size:12px;color:var(--text-2);margin-top:3px;line-height:1.7;}
.svc-price{text-align:right;flex-shrink:0;}
.svc-price b{font-size:16px;color:var(--accent);font-variant-numeric:tabular-nums;}
.svc-price b small{font-size:11px;color:var(--text-3);font-weight:400;margin-left:1px;}
/* ===== 人才卡片 ===== */
.tal-card{background:#fff;border-radius:12px;padding:13px 14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);display:flex;gap:12px;align-items:flex-start;}
.tal-card .tc-ava{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#E8A33D,#C8830F);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tal-info{flex:1;min-width:0;}
.tal-info b{font-size:14.5px;color:var(--navy);display:flex;align-items:center;gap:6px;}
.tal-info .tc-sub{font-size:11.5px;color:var(--text-3);margin-top:2px;}
.tal-info .tc-tags{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap;}
.tal-info .tc-tags span{font-size:10px;height:18px;padding:0 7px;border-radius:3px;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;}
.tal-score{text-align:center;flex-shrink:0;}
.tal-score b{font-size:18px;color:var(--accent);font-variant-numeric:tabular-nums;}
.tal-score span{font-size:10px;color:var(--text-3);display:block;margin-top:1px;}
/* ===== 课程大纲 ===== */
.ch-list{background:#fff;border-radius:12px;overflow:hidden;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.ch-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border-2);}
.ch-item:last-child{border-bottom:none;}
.ch-no{width:26px;height:26px;border-radius:6px;background:var(--navy-soft);color:var(--navy);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ch-main{flex:1;min-width:0;}
.ch-main b{font-size:13.5px;}
.ch-main .t2{font-size:11px;color:var(--text-3);margin-top:2px;}
.ch-free{font-size:10.5px;color:var(--down);font-weight:700;flex-shrink:0;}
/* ===== 图表容器 ===== */
.chart-box{background:#fff;border-radius:12px;padding:14px;margin-top:10px;box-shadow:0 2px 10px rgba(15,52,96,.05);}
.chart-box svg{width:100%;height:auto;}
.chart-legend{display:flex;gap:12px;font-size:11px;color:var(--text-3);margin-top:6px;}
.chart-legend i{display:inline-block;width:18px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle;}
