/* =========================================================
   YSVV 测算工具箱 · 子比风格 PC 版 · v1.0.5（结构级重设计）
   ========================================================= */
/* 本页隐藏子比右侧浮动栏与页脚（相关工具块以下不显示站点内容） */
body.ysvv-tools-page .float-right{display:none!important}
body.ysvv-tools-page footer.footer{display:none!important}

/* ===== 应用整体：独立产品面板框架 ===== */
.yt-app{
  --yt-brand:#1e5eff;--yt-brand-dark:#0a2fb0;--yt-brand-light:#e8f0ff;
  --yt-orange:#ff6a2b;--yt-orange-light:#fff3ec;
  --yt-purple:#7a4dff;--yt-purple-light:#f1ecff;
  --yt-teal:#0a9e8f;--yt-teal-light:#e6faf7;
  --yt-ink:#141c2e;--yt-ink2:#4a5878;--yt-ink3:#8a96b0;
  --yt-line:#e9edf6;--yt-line-soft:#f0f3fa;
  --yt-ok:#12a45a;--yt-star:#ffb400;
  --yt-card-bg:#ffffff;
  --yt-shadow-sm:0 1px 2px rgba(18,34,70,.04),0 6px 20px rgba(18,34,70,.06);
  --yt-shadow-hover:0 4px 10px rgba(18,34,70,.06),0 16px 40px rgba(18,34,70,.12);
  --yt-ease:cubic-bezier(.22,1,.36,1);
  position:relative;max-width:1120px;margin:8px auto 0;color:var(--yt-ink);
  font-size:14.5px;line-height:1.7;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#f7f9fe 0%,#f0f4fb 100%);
  border:1px solid #e7ecf6;border-radius:26px;padding:28px 30px 30px;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 20px 60px -18px rgba(18,34,70,.14)}
.yt-app *,.yt-app *::before,.yt-app *::after{box-sizing:border-box}
.yt-app button{font-family:inherit}
.yt-app ::selection{background:rgba(30,94,255,.15)}
.hidden{display:none!important}

/* ===== 入场动效 ===== */
@keyframes ytFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.yt-screen>*{animation:ytFadeUp .55s var(--yt-ease) both}
.yt-screen>*:nth-child(1){animation-delay:.02s}
.yt-screen>*:nth-child(2){animation-delay:.07s}
.yt-screen>*:nth-child(3){animation-delay:.12s}
.yt-screen>*:nth-child(4){animation-delay:.17s}
.yt-screen>*:nth-child(5){animation-delay:.22s}
.yt-screen>*:nth-child(6){animation-delay:.27s}
.yt-screen>*:nth-child(7){animation-delay:.32s}
.yt-screen>*:nth-child(n+8){animation-delay:.36s}

/* ===== 横幅：大标题 + 亮点标签 ===== */
.yt-hero{position:relative;overflow:hidden;color:#fff;border-radius:20px;padding:32px 36px 30px;margin-bottom:20px;
  background:linear-gradient(128deg,#2f63ff 0%,#1a41e8 52%,#0a2fb0 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 18px 44px -10px rgba(26,65,232,.5)}
.yt-hero.purple{background:linear-gradient(128deg,#8a60ff 0%,#6a38e6 52%,#3f1fa0 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 18px 44px -10px rgba(106,56,230,.5)}
.yt-hero.teal{background:linear-gradient(128deg,#12b0a0 0%,#078677 52%,#045e55 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 18px 44px -10px rgba(7,134,119,.5)}
.yt-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1.5px);background-size:22px 22px;opacity:.5}
.yt-hero::after{content:"";position:absolute;right:-70px;top:-90px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.2),rgba(255,255,255,.06) 60%,transparent 72%);pointer-events:none}
.yt-hero h2{font-size:27px;font-weight:800;margin:0 0 9px;position:relative;z-index:1;
  letter-spacing:.5px;text-shadow:0 2px 4px rgba(10,20,60,.2)}
.yt-hero p{font-size:13.5px;opacity:.9;margin:0 0 16px;position:relative;z-index:1;letter-spacing:.4px}
.yt-hero-tags{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
.yt-hero-tags span{display:inline-flex;align-items:center;gap:6px;padding:7px 15px;border-radius:999px;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);
  font-size:12px;font-weight:500;letter-spacing:.4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}

/* ===== 卡片 ===== */
.yt-card{background:var(--yt-card-bg);border-radius:18px;padding:26px 28px;margin-bottom:18px;
  box-shadow:var(--yt-shadow-sm);border:1px solid rgba(233,237,246,.95);position:relative;overflow:hidden}
.yt-card h3{font-size:16px;color:var(--yt-ink);margin:0 0 20px;display:flex;align-items:center;justify-content:space-between;font-weight:700;letter-spacing:.3px}
.yt-card h3 .hint{font-size:11.5px;color:var(--yt-ink3);font-weight:400;letter-spacing:.2px;
  background:var(--yt-line-soft);padding:4px 12px;border-radius:999px}
.yt-card h3::before{content:"";width:5px;height:17px;border-radius:5px;margin-right:11px;flex-shrink:0;
  background:linear-gradient(180deg,#2f63ff,#7a4dff);box-shadow:0 2px 6px rgba(30,94,255,.35)}

/* ===== 表单（PC 双栏） ===== */
.yt-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}
.yt-field{margin-bottom:20px;min-width:0}
.yt-field:last-child{margin-bottom:0}
.yt-field label{display:block;font-size:12.5px;color:var(--yt-ink2);margin-bottom:8px;font-weight:600;letter-spacing:.4px}
.yt-app .yt-field select,.yt-app .yt-field input{width:100%;padding:9px 13px;border:1.5px solid #e2e8f4;border-radius:6px;
  font-size:14px;background:#fafbfd;color:var(--yt-ink);outline:none;
  transition:border-color .2s,box-shadow .25s var(--yt-ease),background .2s;
  font-family:inherit;-webkit-appearance:none;appearance:none;box-shadow:inset 0 1px 2px rgba(18,34,70,.03);height:auto;line-height:1.5}
.yt-field select{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238a96b0' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;cursor:pointer}
.yt-app .yt-field select:focus,.yt-app .yt-field input:focus{border-color:var(--yt-brand);background:#fff;
  box-shadow:0 0 0 4px rgba(30,94,255,.09),inset 0 1px 2px rgba(18,34,70,.02)}
.yt-field select.empty{color:#a3adc2}
.yt-field input::placeholder{color:#aab4c8}
.yt-field .subtip{font-size:11px;color:var(--yt-ink3);margin-top:7px;line-height:1.6;letter-spacing:.1px}
.yt-field .subtip.warn{color:#d97e35}
.yt-field .subtip.good{color:var(--yt-ok)}
.yt-field.span2{grid-column:1 / -1}

/* ===== 选项 chips：选中带对勾 ===== */
.yt-chips{display:flex;flex-wrap:wrap;gap:10px}
.yt-chip{padding:9px 17px;border:1.5px solid #e6ebf5;border-radius:999px;font-size:12.5px;color:var(--yt-ink2);
  cursor:pointer;background:#fafbfd;transition:all .22s var(--yt-ease);user-select:none;line-height:1.35;letter-spacing:.2px;font-weight:500}
.yt-chip:hover{border-color:#b9c9ea;color:var(--yt-brand);background:#fff;transform:translateY(-2px);
  box-shadow:0 5px 14px rgba(30,94,255,.12)}
.yt-chip.active{background:linear-gradient(135deg,var(--yt-brand-light),#f4f8ff);border-color:var(--yt-brand);
  color:var(--yt-brand);font-weight:700;box-shadow:0 4px 12px rgba(30,94,255,.18);padding-left:13px}
.yt-chip.active::before{content:"✓";font-size:11px;font-weight:800;margin-right:6px}
.yt-chip.active.teal{background:linear-gradient(135deg,var(--yt-teal-light),#f2fdfb);border-color:var(--yt-teal);color:var(--yt-teal);
  box-shadow:0 4px 12px rgba(10,158,143,.18)}
.yt-range-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:11px}
.yt-range-chips .yt-chip{font-size:11px;padding:6px 13px;color:var(--yt-ink3)}

/* ===== 按钮：大胶囊 ===== */
.yt-app .yt-btn{padding:14px 32px;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;
  letter-spacing:1px;transition:background .2s,border-color .2s,color .2s,box-shadow .2s}
.yt-btn.orange{background:linear-gradient(135deg,#ff8f52,#ff5a1f);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 26px -5px rgba(255,90,31,.5)}
.yt-btn.purple{background:linear-gradient(135deg,#8a60ff,#5a2fd0);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 26px -5px rgba(122,77,255,.5)}
.yt-btn.teal{background:linear-gradient(135deg,#14b8a6,#067a6f);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 26px -5px rgba(10,158,143,.5)}
.yt-btn.orange:hover,.yt-btn.purple:hover,.yt-btn.teal:hover{filter:brightness(1.06)}
.yt-app .yt-btn.ghost{background:#fff;color:#0c7a4d;border:1.5px solid #cfe6d9;box-shadow:var(--yt-shadow-sm)}
.yt-btn.ghost:hover{background:#e9f7f0;border-color:#0c7a4d;color:#0c7a4d}
.yt-btn.ghost.purple{color:var(--yt-purple);border-color:#ddd2fb}
.yt-btn.ghost.purple:hover{background:var(--yt-purple-light);border-color:var(--yt-purple);color:var(--yt-purple)}
.yt-btn.ghost.teal{color:var(--yt-teal);border-color:#c2e9e2}
.yt-btn.ghost.teal:hover{background:var(--yt-teal-light);border-color:var(--yt-teal);color:var(--yt-teal)}
.yt-btn:active{filter:brightness(.96)}
.yt-actions{display:flex;gap:16px;margin:22px 0 6px;flex-wrap:wrap}
.yt-actions .yt-btn{flex:1;min-width:220px}
.yt-note{font-size:11.5px;color:var(--yt-ink3);margin:14px 0 0;text-align:center;line-height:1.8;letter-spacing:.4px}

/* ===== 结果页：报告头面板 ===== */
.yt-precision{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;padding:6px 16px;border-radius:999px;
  background:linear-gradient(135deg,var(--yt-orange-light),#fff7f2);color:#e06a1f;margin:0 0 16px;font-weight:700;
  border:1px solid #ffe3cf;letter-spacing:.4px;box-shadow:0 3px 10px rgba(255,106,43,.12)}
.yt-precision::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--yt-orange);
  box-shadow:0 0 0 3px rgba(255,106,43,.18)}
.yt-score-wrap{display:flex;align-items:center;gap:28px;padding:24px 28px;margin-bottom:6px;
  background:linear-gradient(135deg,#f6f8fe 0%,#fbfdff 60%,#f4f8ff 100%);
  border:1px solid #e4ebf9;border-radius:18px;position:relative;overflow:hidden}
.yt-score-wrap::after{content:"";position:absolute;right:-50px;top:-60px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(30,94,255,.07),transparent 68%)}
.yt-score-ring{width:118px;height:118px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;
  filter:drop-shadow(0 8px 20px rgba(30,94,255,.22))}
.yt-score-ring.purple{filter:drop-shadow(0 8px 20px rgba(122,77,255,.22))}
.yt-score-ring.teal{filter:drop-shadow(0 8px 20px rgba(10,158,143,.22))}
.yt-score-ring .inner{width:94px;height:94px;border-radius:50%;background:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;box-shadow:inset 0 2px 8px rgba(18,34,70,.07),0 1px 0 rgba(255,255,255,.8)}
.yt-score-num{font-size:33px;font-weight:800;color:var(--yt-brand);line-height:1;letter-spacing:-1px}
.yt-score-ring.purple .yt-score-num{color:var(--yt-purple)}
.yt-score-ring.teal .yt-score-num{color:var(--yt-teal)}
.yt-score-unit{font-size:10px;color:var(--yt-ink3);margin-top:4px;letter-spacing:3px}
.yt-score-meta{flex:1;min-width:0;position:relative;z-index:1}
.yt-score-tag{display:inline-block;padding:7px 18px;border-radius:999px;background:linear-gradient(135deg,var(--yt-brand),#3f6fff);
  color:#fff;font-size:14px;font-weight:700;margin-bottom:9px;letter-spacing:.6px;
  box-shadow:0 5px 14px rgba(30,94,255,.35)}
.yt-score-tag.purple{background:linear-gradient(135deg,var(--yt-purple),#8f66ff);box-shadow:0 5px 14px rgba(122,77,255,.35)}
.yt-score-tag.teal{background:linear-gradient(135deg,var(--yt-teal),#12b0a0);box-shadow:0 5px 14px rgba(10,158,143,.35)}
.yt-score-desc{font-size:12.5px;color:var(--yt-ink3);line-height:1.8}
.yt-reasons{font-size:13px;color:var(--yt-ink2);line-height:2.05;margin-top:18px;padding-top:18px;border-top:1px dashed var(--yt-line-soft)}
.yt-reasons.plain{margin-top:0;padding-top:0;border-top:none}
.yt-reasons>div{padding-left:2px}
.yt-missing-box{border-radius:14px;padding:14px 18px;font-size:12px;line-height:1.9;margin-top:18px}
.yt-missing-box.m-orange{background:linear-gradient(135deg,var(--yt-orange-light),#fff8f3);border:1px solid #ffe3cf;color:#a8541c}
.yt-missing-box.m-purple{background:linear-gradient(135deg,var(--yt-purple-light),#f9f6ff);border:1px solid #e3d9fb;color:#5a2fd0}
.yt-missing-box.m-teal{background:linear-gradient(135deg,var(--yt-teal-light),#f2fdfb);border:1px solid #c2e9e2;color:#067a6f}

/* ===== 结果规格表 ===== */
.yt-result-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--yt-brand-light),#f4f8ff);border:1px solid rgba(30,94,255,.16);
  border-radius:10px;padding:15px 20px;margin-bottom:13px}
.yt-result-hero .k{font-size:12px;color:var(--yt-ink2);font-weight:600;letter-spacing:.4px;flex-shrink:0}
.yt-result-hero b{font-size:17px;font-weight:800;color:var(--yt-brand);letter-spacing:.3px}
.yt-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.yt-metric{background:#f8fafd;border:1px solid #eef2f9;border-radius:8px;padding:13px 15px;
  display:flex;flex-direction:column;gap:5px;min-width:0;transition:border-color .2s,background .2s}
.yt-metric:hover{border-color:#d9e3f5;background:#f5f8fc}
.yt-metric .k{font-size:11px;color:var(--yt-ink3);letter-spacing:.3px}
.yt-metric b{font-size:14.5px;font-weight:700;color:var(--yt-ink);line-height:1.5;word-break:break-word}
.yt-metric.big{grid-column:span 2;background:linear-gradient(135deg,var(--yt-orange-light),#fff8f3);border-color:#ffe3cf}
.yt-metric.big .k{color:#c06a2a}
.yt-metric.big b.cost{color:#e06a1f;font-size:17px;letter-spacing:.2px}
.yt-metric b.dim{color:var(--yt-ink3);font-weight:500;font-size:12.5px}
.yt-metric .yt-edit-tag{vertical-align:middle;margin-left:6px}
.yt-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 4px;
  border-bottom:1px solid #f2f5fa;font-size:13.5px;border-radius:8px;transition:background .15s}
.yt-row:hover{background:#f8fafd}
.yt-row:last-child{border-bottom:none}
.yt-row .k{color:var(--yt-ink3);flex-shrink:0;letter-spacing:.3px;font-size:12.5px}
.yt-row .v{font-weight:700;text-align:right;color:var(--yt-ink)}
.yt-row .v.hl{color:var(--yt-brand);font-size:15.5px;background:var(--yt-brand-light);
  padding:6px 14px;border-radius:999px;border:1px solid rgba(30,94,255,.16)}
.yt-edit-tag{font-size:11px;color:var(--yt-brand);margin-left:8px;cursor:pointer;background:var(--yt-brand-light);
  padding:3px 11px;border-radius:999px;font-weight:600;transition:all .18s;display:inline-block}
.yt-edit-tag:hover{background:var(--yt-brand);color:#fff;box-shadow:0 4px 12px rgba(30,94,255,.3)}

/* ===== 云仓 / 渠道推荐卡 ===== */
.yt-wh{display:flex;align-items:center;gap:15px;padding:16px 18px;border:1.5px solid var(--yt-line);
  border-radius:15px;margin-bottom:12px;cursor:pointer;transition:all .24s var(--yt-ease);background:#fcfdff}
.yt-wh:last-child{margin-bottom:0}
.yt-wh:hover{border-color:#c3d2f0;box-shadow:var(--yt-shadow-hover);transform:translateY(-3px);background:#fff}
.yt-wh .logo{width:48px;height:48px;border-radius:14px;flex-shrink:0;background:linear-gradient(135deg,#e8f0ff,#d4e2ff);
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--yt-brand);font-size:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 3px 8px rgba(30,94,255,.12)}
.yt-wh.purple .logo{background:linear-gradient(135deg,#f1ecff,#e0d4ff);color:var(--yt-purple);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 3px 8px rgba(122,77,255,.12)}
.yt-wh.teal .logo{background:linear-gradient(135deg,#e6faf7,#ccf2ec);color:var(--yt-teal);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 3px 8px rgba(10,158,143,.12)}
.yt-wh .info{flex:1;min-width:0}
.yt-wh .info b{font-size:14px;display:block;letter-spacing:.2px}
.yt-wh .info p{font-size:11.5px;color:var(--yt-ink3);margin:4px 0 0;line-height:1.6}
.yt-wh .tag{font-size:10.5px;background:linear-gradient(135deg,#e9fbf1,#f2fdf6);color:var(--yt-ok);padding:5px 13px;
  border-radius:999px;flex-shrink:0;font-weight:700;border:1px solid rgba(18,164,90,.16);letter-spacing:.3px}
.yt-wh .tag.t-purple{background:linear-gradient(135deg,var(--yt-purple-light),#f9f6ff);color:var(--yt-purple);border-color:rgba(122,77,255,.16)}
.yt-wh .tag.t-teal{background:linear-gradient(135deg,var(--yt-teal-light),#f2fdfb);color:var(--yt-teal);border-color:rgba(10,158,143,.16)}

/* ===== 渠道条形图 ===== */
.yt-bar-row{margin-bottom:16px}
.yt-bar-head{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:7px;font-weight:500}
.yt-bar-head .sc{font-weight:800;color:var(--yt-purple);font-variant-numeric:tabular-nums}
.yt-bar{height:9px;background:#f1edf9;border-radius:99px;overflow:hidden}
.yt-bar>i{display:block;height:100%;background:linear-gradient(90deg,#9a75ff,#6b3dff);border-radius:99px;
  box-shadow:0 1px 5px rgba(122,77,255,.35);transition:width .7s var(--yt-ease)}

/* ===== CTA：波点纹理卡 ===== */
.yt-cta{position:relative;overflow:hidden;color:#fff;border-radius:18px;padding:26px 28px;text-align:center;margin:24px 0 14px;
  background:linear-gradient(128deg,#ff9455,#ff5a1f);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 44px -10px rgba(255,90,31,.5)}
.yt-cta::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1.5px);background-size:20px 20px;opacity:.5}
.yt-cta::after{content:"";position:absolute;right:-50px;top:-60px;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.2),transparent 65%)}
.yt-cta h4{font-size:18px;margin:0 0 7px;position:relative;z-index:1;letter-spacing:.6px;font-weight:800;text-shadow:0 2px 4px rgba(120,40,0,.2)}
.yt-cta p{font-size:12.5px;opacity:.94;margin:0 0 17px;position:relative;z-index:1;letter-spacing:.4px}
.yt-cta button{padding:13px 38px;background:#fff;color:var(--yt-orange);border:none;border-radius:12px;font-weight:800;
  font-size:14px;cursor:pointer;position:relative;z-index:1;font-family:inherit;letter-spacing:.8px;
  box-shadow:0 8px 22px rgba(120,40,0,.22);transition:background .2s,color .2s,box-shadow .2s}
.yt-cta button:hover{background:#fff7f2;box-shadow:0 10px 26px rgba(120,40,0,.28)}
.yt-cta.purple{background:linear-gradient(128deg,#9a75ff,#6b3dff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 44px -10px rgba(107,61,255,.5)}
.yt-cta.purple button{color:var(--yt-purple)}
.yt-cta.teal{background:linear-gradient(128deg,#1bc4b2,#089184);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 44px -10px rgba(8,145,132,.5)}
.yt-cta.teal button{color:var(--yt-teal)}

/* ===== 评价 ===== */
.yt-rate-card{background:#fff;border-radius:18px;padding:24px;margin-bottom:18px;text-align:center;
  box-shadow:var(--yt-shadow-sm);border:1px solid rgba(233,237,246,.95)}
.yt-rate-card .rt{font-size:15px;font-weight:700;margin-bottom:6px;letter-spacing:.3px}
.yt-rate-card .rs{font-size:11.5px;color:var(--yt-ink3);margin-bottom:15px;letter-spacing:.2px}
.yt-stars{display:flex;justify-content:center;gap:9px;margin-bottom:10px}
.yt-star{width:40px;height:40px;cursor:pointer;transition:transform .2s var(--yt-ease),color .2s;color:#e5eaf4;
  font-size:32px;line-height:1;user-select:none;display:flex;align-items:center;justify-content:center}
.yt-star:hover{transform:scale(1.18) rotate(-5deg)}
.yt-star.on{color:var(--yt-star);text-shadow:0 3px 10px rgba(255,180,0,.4)}
.yt-star.bounce{animation:ytpop .4s var(--yt-ease)}
@keyframes ytpop{0%{transform:scale(1)}45%{transform:scale(1.32) rotate(7deg)}100%{transform:scale(1)}}
.yt-rate-text{font-size:11.5px;color:var(--yt-ink3);min-height:16px}
.yt-rate-thanks{font-size:12.5px;color:var(--yt-ok);font-weight:700;margin-top:6px;display:none}
.yt-rate-thanks.show{display:block}

/* ===== 相关工具 / 跨工具入口 ===== */
.yt-cross{background:#fff;border-radius:18px;padding:24px 26px;margin-bottom:18px;
  box-shadow:var(--yt-shadow-sm);border:1px solid rgba(233,237,246,.95)}
.yt-cross .th{font-size:16px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;letter-spacing:.3px}
.yt-cross .th::before{content:"";width:5px;height:17px;border-radius:5px;margin-right:11px;
  background:linear-gradient(180deg,#2f63ff,#7a4dff);box-shadow:0 2px 6px rgba(30,94,255,.35)}
.yt-cross .ts{font-size:11.5px;color:var(--yt-ink3);margin-bottom:16px;letter-spacing:.2px;padding-left:16px}
.yt-tool-btn{display:flex;align-items:center;gap:15px;width:100%;padding:17px 18px;border:1.5px solid var(--yt-line);
  border-radius:15px;background:#fcfdff;cursor:pointer;margin-bottom:12px;transition:all .24s var(--yt-ease);
  text-align:left;font-family:inherit}
.yt-tool-btn:last-child{margin-bottom:0}
.yt-tool-btn:hover{transform:translateY(-3px);box-shadow:var(--yt-shadow-hover);background:#fff;border-color:#d6e0f5}
.yt-tool-btn.purple:hover{border-color:#cbb9fa}
.yt-tool-btn.teal:hover{border-color:#a9e4db}
.yt-tool-btn .ic{width:48px;height:48px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:800;color:#fff;background:linear-gradient(135deg,#2f63ff,#1439c9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 16px -3px rgba(30,94,255,.45)}
.yt-tool-btn.purple .ic{background:linear-gradient(135deg,#8f66ff,#5a2fd0);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 16px -3px rgba(122,77,255,.45)}
.yt-tool-btn.teal .ic{background:linear-gradient(135deg,#14b8a6,#067a6f);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 6px 16px -3px rgba(10,158,143,.45)}
.yt-tool-btn .tx{flex:1;min-width:0;text-align:left}
.yt-tool-btn .tx b{font-size:14px;display:block;margin-bottom:4px;letter-spacing:.2px}
.yt-tool-btn .tx p{font-size:11.5px;color:var(--yt-ink3);margin:0;line-height:1.55}
.yt-tool-btn .ar{font-size:19px;color:#c2cbde;flex-shrink:0;transition:transform .22s,color .22s}
.yt-tool-btn:hover .ar{transform:translateX(4px);color:var(--yt-brand)}

/* ===== 历史 ===== */
.yt-history-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 10px;
  border-bottom:1px solid #f2f5fa;font-size:12.5px;cursor:pointer;transition:all .2s var(--yt-ease);border-radius:12px;position:relative}
.yt-history-item::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:3px;
  background:linear-gradient(180deg,#2f63ff,#7a4dff);opacity:0;transition:opacity .2s}
.yt-history-item:last-child{border-bottom:none}
.yt-history-item:hover{background:#f8fafd;transform:translateX(3px)}
.yt-history-item:hover::before{opacity:1}
.yt-history-item .t{font-weight:700;margin-bottom:4px;font-size:13.5px}
.yt-history-item .meta{color:var(--yt-ink3);font-size:11.5px}
.yt-history-item .sc{font-weight:800;color:var(--yt-brand);font-size:18px;flex-shrink:0;
  background:linear-gradient(135deg,var(--yt-brand-light),#f4f8ff);width:54px;height:54px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1;
  border:1px solid rgba(30,94,255,.12)}
.yt-history-item .sc small{font-size:9px;font-weight:500;color:var(--yt-ink3);margin-top:4px;letter-spacing:1.5px}
.yt-history-item .sc.purple{color:var(--yt-purple);background:linear-gradient(135deg,var(--yt-purple-light),#f9f6ff);border-color:rgba(122,77,255,.12)}
.yt-history-item .sc.teal{color:var(--yt-teal);background:linear-gradient(135deg,var(--yt-teal-light),#f2fdfb);border-color:rgba(10,158,143,.12)}
.yt-empty{font-size:13px;color:var(--yt-ink3);text-align:center;padding:48px 0;letter-spacing:.5px}

/* ===== 模态框 ===== */
@keyframes ytMaskIn{from{opacity:0}to{opacity:1}}
@keyframes ytModalIn{from{opacity:0;transform:translateY(20px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
.yt-modal-mask{position:fixed;inset:0;background:rgba(15,22,40,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;animation:ytMaskIn .22s ease both}
.yt-modal{background:#fff;border-radius:22px;padding:32px 30px 26px;width:420px;max-width:100%;position:relative;
  box-shadow:0 30px 90px -12px rgba(10,20,50,.4);animation:ytModalIn .32s var(--yt-ease) both}
.yt-modal::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:60px;height:4px;
  border-radius:99px;background:linear-gradient(90deg,#2f63ff,#7a4dff)}
.yt-modal-x{position:absolute;top:12px;right:14px;background:none;border:none;font-size:22px;color:#b6c0d4;cursor:pointer;
  line-height:1;width:32px;height:32px;border-radius:50%;transition:all .15s;display:flex;align-items:center;justify-content:center}
.yt-modal-x:hover{color:var(--yt-ink);background:#f2f5fa}
.yt-modal-h{font-size:17px;font-weight:800;margin:6px 0 9px;text-align:center;letter-spacing:.4px}
.yt-modal-p{font-size:12.5px;color:var(--yt-ink2);text-align:center;margin:0 0 20px;line-height:1.8}
.yt-modal input{width:100%;padding:11px 14px;border:1.5px solid #e2e8f4;border-radius:6px;font-size:15px;outline:none;
  transition:all .2s;font-family:inherit;background:#fafbfd;text-align:center;letter-spacing:1.5px}
.yt-modal input:focus{border-color:var(--yt-brand);background:#fff;box-shadow:0 0 0 4px rgba(30,94,255,.09)}
.yt-modal-tip{font-size:11px;color:var(--yt-ink3);text-align:center;margin:10px 0 0;line-height:1.5;min-height:15px;letter-spacing:.2px}
.yt-modal-tip.err{color:#e05252;font-weight:700}
.yt-modal-btns{display:flex;gap:13px;margin-top:22px}
.yt-modal-btns .yt-btn{flex:1;padding:13px;border-radius:12px}
.yt-btn-main{background:linear-gradient(135deg,#2f63ff,#1439c9);color:#fff;border:none;border-radius:12px;
  font-weight:700;font-size:14.5px;cursor:pointer;letter-spacing:.5px;font-family:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 24px -5px rgba(30,94,255,.5);transition:filter .2s}
.yt-btn-main:hover{filter:brightness(1.07)}
.yt-btn-ghost{background:#fff;color:var(--yt-ink2);border:1.5px solid #e2e8f4;border-radius:12px;
  font-weight:500;font-size:14.5px;cursor:pointer;font-family:inherit;transition:all .22s var(--yt-ease)}
.yt-btn-ghost:hover{background:#f5f7fb;color:var(--yt-ink)}

/* ===== Toast ===== */
.yt-toast{position:absolute;bottom:40px;left:50%;transform:translateX(-50%) translateY(10px);
  background:rgba(17,24,42,.92);backdrop-filter:blur(10px);color:#fff;padding:12px 28px;border-radius:999px;font-size:12.5px;
  opacity:0;transition:all .32s var(--yt-ease);pointer-events:none;white-space:nowrap;z-index:20;
  box-shadow:0 12px 32px rgba(10,20,50,.32);letter-spacing:.4px;font-weight:500}
.yt-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== 响应式 ===== */
@media (max-width:860px){
  .yt-app{padding:16px 14px 18px;border-radius:18px}
  .yt-grid{grid-template-columns:1fr}
  .yt-hero{padding:24px 20px 22px;border-radius:16px}
  .yt-hero h2{font-size:20px}
  .yt-card{padding:20px 18px;border-radius:14px}
  .yt-score-wrap{flex-direction:column;text-align:center;gap:16px;padding:20px 16px}
  .yt-score-meta{text-align:center}
  .yt-actions .yt-btn{min-width:100%}
  .yt-metrics{grid-template-columns:1fr 1fr}
  .yt-metric.big{grid-column:1 / -1}
  .yt-result-hero{flex-direction:column;align-items:flex-start;gap:6px}
}

/* 手机档（≤640px） */
@media (max-width:640px){
  .yt-app{margin:4px auto 0;padding:12px 10px 16px;border-radius:14px;font-size:14px}
  .yt-hero{padding:20px 16px 18px;border-radius:12px;margin-bottom:14px}
  .yt-hero h2{font-size:18px;letter-spacing:.2px}
  .yt-hero p{font-size:12px;margin-bottom:12px}
  .yt-hero-tags{gap:7px}
  .yt-hero-tags span{padding:5px 11px;font-size:11px}
  .yt-card{padding:16px 14px;border-radius:12px;margin-bottom:13px}
  .yt-card h3{font-size:14.5px;margin-bottom:14px}
  .yt-grid{column-gap:0}
  .yt-field{margin-bottom:15px}
  .yt-chip{padding:7px 13px;font-size:11.5px}
  .yt-metrics{grid-template-columns:1fr 1fr;gap:9px}
  .yt-metric{padding:11px 12px}
  .yt-metric b{font-size:13px}
  .yt-metric.big b.cost{font-size:15px}
  .yt-result-hero b{font-size:15px}
  .yt-app .yt-btn{padding:12px 20px;font-size:14px;letter-spacing:.5px}
  .yt-actions{gap:10px;margin:16px 0 4px}
  .yt-rate-card{padding:18px 14px}
  .yt-cross{padding:18px 16px}
  .yt-tool-btn{padding:13px 14px}
  .yt-tool-btn .ic{width:40px;height:40px;font-size:15px}
  .yt-cta{padding:20px 16px;border-radius:14px}
  .yt-cta button{padding:11px 26px;font-size:13px}
  .yt-modal{width:100%;padding:24px 18px 20px;border-radius:16px}
  .yt-modal input{font-size:15px}
  .yt-toast{bottom:20px;font-size:12px;padding:10px 20px;max-width:88%;white-space:normal;text-align:center}
  .yt-history-item .sc{width:46px;height:46px;font-size:15px;border-radius:12px}
  .yt-score-ring{width:100px;height:100px}
  .yt-score-ring .inner{width:78px;height:78px}
  .yt-score-num{font-size:27px}
}

/* ============ 九层妖塔 · 云仓管理优化诊断 ============ */
.yt-tower{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.yt-floor{display:flex;align-items:center;gap:12px;padding:13px 15px;background:#fff;
  border:1.5px solid var(--yt-line);border-radius:11px;transition:border-color .15s,box-shadow .15s}
.yt-floor.clickable{cursor:pointer}
.yt-floor.clickable:hover{border-color:#c9baff;box-shadow:0 3px 14px rgba(122,77,255,.10)}
.yt-floor .ic{flex:none;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:17px;background:var(--yt-purple-light)}
.yt-floor .tx{flex:1;min-width:0}
.yt-floor .tx b{display:block;font-size:13.5px;color:var(--yt-ink);letter-spacing:.3px}
.yt-floor .tx p{margin:3px 0 0;font-size:11.5px;color:var(--yt-ink3);line-height:1.5}
.yt-floor .tx .bar{margin-top:7px;height:6px;border-radius:99px;background:var(--yt-line-soft);overflow:hidden}
.yt-floor .tx .bar i{display:block;height:100%;border-radius:99px}
.yt-floor .tag{flex:none;font-size:11px;padding:5px 11px;border-radius:999px;letter-spacing:.3px;white-space:nowrap}
.yt-floor .tag.cur{background:var(--yt-purple-light);color:var(--yt-purple);font-weight:700}
.yt-floor .tag.ok{background:#e8f8ef;color:#0c7a4d}
.yt-floor .tag.wk{background:#fdeeee;color:#c05656}
.yt-floor .tag.lock{background:var(--yt-line-soft);color:var(--yt-ink3)}
.yt-floor.current{border-color:#c9baff;background:linear-gradient(180deg,#fbf9ff,#fff);box-shadow:0 3px 14px rgba(122,77,255,.12)}
.yt-floor.pass{border-color:#cfeedd}
.yt-floor.weak{border-color:#f2d8d8}
.yt-floor.locked{opacity:.62}
.yt-floor.soon{border-style:dashed;opacity:.72;background:#fbfcfe}
.yt-floor.soon .ic{background:var(--yt-line-soft)}
.yt-floor.plain{cursor:default}
.yt-tower-opts{display:flex;flex-direction:column;gap:8px}
.yt-topt{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1.5px solid var(--yt-line);
  border-radius:9px;font-size:13px;color:var(--yt-ink2);cursor:pointer;line-height:1.5;transition:all .13s}
.yt-topt .mk{flex:none;width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;background:var(--yt-line-soft);color:var(--yt-ink3)}
.yt-topt.good .mk{color:#0c7a4d}
.yt-topt.bad .mk{color:#c05656}
.yt-topt.active{border-color:#c9baff;background:#faf8ff;color:var(--yt-ink)}
.yt-topt.active.good{background:#f4fbf7;border-color:#bfe4cd}
.yt-topt.active.good .mk{background:#0c7a4d;color:#fff}
.yt-topt.active.bad{background:#fdf5f5;border-color:#eecaca}
.yt-topt.active.bad .mk{background:#c05656;color:#fff}

@media (max-width:640px){
  .yt-tower{gap:7px}
  .yt-floor{padding:11px 12px;gap:10px}
  .yt-floor .ic{width:34px;height:34px;font-size:15px}
  .yt-floor .tx b{font-size:12.5px}
  .yt-floor .tx p{font-size:11px}
  .yt-floor .tag{font-size:10px;padding:4px 9px}
  .yt-topt{padding:10px 12px;font-size:12.5px}
  .yt-topt .mk{width:18px;height:18px}
}

/* v1.3.4 勾选展示优化 */
.yt-tower-sum{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 14px;margin-bottom:14px;
  background:var(--yt-purple-light);border-radius:9px;font-size:12.5px;color:var(--yt-ink2);letter-spacing:.2px}
.yt-tower-sum b{color:var(--yt-purple);font-size:14px}
.yt-tower-sum b.cg{color:#0c7a4d}
.yt-tower-sum b.cb{color:#c05656}
.yt-opt-gt{margin:4px 0 9px;font-size:12.5px;font-weight:700;letter-spacing:.4px}
.yt-opt-gt.good-t{color:#0c7a4d}
.yt-opt-gt.bad-t{color:#c05656;margin-top:16px}
.yt-topt{position:relative;padding-right:56px}
.yt-topt .box{flex:none;width:20px;height:20px;border-radius:6px;border:2px solid #d6dde9;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}
.yt-topt .tx{flex:1}
.yt-topt .pts{position:absolute;right:12px;top:50%;transform:translateY(-50%);
  font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--yt-line-soft);color:var(--yt-ink3)}
.yt-topt.good .pts{color:#0c7a4d;background:#e8f8ef}
.yt-topt.bad .pts{color:#c05656;background:#fdeeee}
.yt-topt.active.good .box{border-color:#0c7a4d;background:#0c7a4d}
.yt-topt.active.bad .box{border-color:#c05656;background:#c05656}
.yt-topt.active .pts{opacity:.95}

/* v1.4.2 相关工具入口：手机端隐藏小字与箭头，标题完整显示（PC 端保留完整样式） */
@media (max-width:640px){
  .yt-tool-btn .tx p{display:none}
  .yt-tool-btn .ar{display:none}
  .yt-tool-btn .tx b{margin-bottom:0;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5}
}

/* ===== 小程序测后引导（channel=mini 裸壳专用） ===== */
.yt-mini-guide { margin-top: 14px; }
.yt-mini-guide h3 { margin: 0 0 12px; }
.yt-mg-btn { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; margin: 0 0 10px; border: 1px solid #e3e9e6; border-radius: 12px; background: #f7faf9; text-align: left; cursor: pointer; }
.yt-mg-btn .ic { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: #e6f2ec; color: #0f766e; font-weight: 900; font-size: 14px; }
.yt-mg-btn .tx { flex: 1 1 auto; min-width: 0; font-size: 13.5px; color: #1f3c30; font-weight: 600; }
.yt-mg-btn .ar { flex: 0 0 auto; color: #0f766e; font-size: 18px; }
.yt-mg-btn:active { background: #eef5f2; }
.yt-mg-steward { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-top: 4px; border: 1px dashed #0f766e; border-radius: 12px; background: #f0f7f4; }
.yt-mg-steward img { flex: 0 0 auto; width: 84px; height: 84px; border-radius: 10px; object-fit: cover; }
.yt-mg-steward .tx b { display: block; font-size: 13.5px; color: #1f3c30; }
.yt-mg-steward .tx p { margin: 4px 0 0; font-size: 11.5px; color: #5f726c; line-height: 1.5; }

/* ===== 联系方式卡片 + 历史「修改重测」按钮（2026-10-25） ===== */
.yt-contact-card { border: 1px solid #cfe3da; background: linear-gradient(180deg, #f4faf7, #eef6f2); }
.yt-contact-card h3 { margin: 0 0 6px; }
.yt-contact-card p { margin: 0 0 12px; font-size: 12.5px; color: var(--yt-ink2, #4b5563); line-height: 1.6; }
.yt-history-item { position: relative; }
.yt-retest {
  position: absolute; right: 10px; bottom: 8px;
  font-size: 11px; padding: 3px 10px; border-radius: 999px;
  border: 1px solid #0f766e; color: #0f766e; background: #fff;
  cursor: pointer;
}
.yt-retest:active { background: #0f766e; color: #fff; }
