/* AI 品牌口碑盲区诊断师 —— 全局样式（Web 界面与导出体检单共用） */
:root{
  /* 色板 */
  --bg:#f1f4fb;
  --panel:#fff;
  --line:#e6eaf4;
  --line-2:#eef1f8;
  --text:#161b2e;
  --muted:#6b7392;
  --brand:#3455db; --brand2:#5b7cfa; --brand-ink:#2b3f9e;
  --navy:#101a33;
  --good:#0f9d58; --warn:#b26a00; --bad:#cf2b31; --info:#4f5bd5;
  --good-bg:#e8f8ef; --warn-bg:#fff5e3; --bad-bg:#fdecee;
  /* 形状与光影 */
  --r:18px; --r-sm:12px;
  --sh:0 1px 2px rgba(20,28,52,.04),0 8px 24px rgba(20,28,52,.06);
  --sh-lg:0 2px 6px rgba(20,28,52,.05),0 18px 44px rgba(20,28,52,.10);
  --ring:0 0 0 3px rgba(91,124,250,.16);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1100px 520px at 6% -10%,#e4ebff 0%,rgba(228,235,255,0) 62%),
    radial-gradient(900px 460px at 102% -4%,#e4f7ef 0%,rgba(228,247,239,0) 58%),
    var(--bg);
  background-attachment:fixed;
  color:var(--text);min-height:100vh;
  font:15px/1.62 "Microsoft YaHei","PingFang SC",-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
ul{list-style:none;margin:0;padding:0}
::selection{background:rgba(91,124,250,.22)}

/* ---------------- 顶栏 ---------------- */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:12px 26px;
  background:linear-gradient(118deg,#0d1630,#1b2b4d 54%,#2c4570);
  color:#fff;box-shadow:0 12px 32px rgba(12,20,42,.24);
  border-bottom:1px solid rgba(255,255,255,.08)}
.topbar:before{content:'';position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,rgba(125,211,252,.6),rgba(255,255,255,.05) 40%,rgba(74,222,128,.55))}
.brandmark{display:flex;align-items:center;gap:13px;min-width:0}
.logo{width:44px;height:44px;border-radius:14px;flex:none;display:grid;place-items:center;
  font-size:17px;font-weight:800;letter-spacing:-1px;
  background:linear-gradient(140deg,#8ee0ff,#6ea8ff 46%,#4ade80);color:#0b1c30;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 8px 20px rgba(4,12,28,.35)}
.topbar h1{font-size:17px;font-weight:700;letter-spacing:.4px;white-space:nowrap}
.slogan{font-size:12px;color:rgba(255,255,255,.72);margin-top:3px}
.topact{display:flex;align-items:center;gap:9px;flex:none}
.tag{font-size:11.5px;padding:5px 11px;border-radius:99px;white-space:nowrap;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.9)}

/* ---------------- 按钮 ---------------- */
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
.ghost{background:rgba(255,255,255,.12);color:#fff;text-decoration:none;text-align:center;
  border:1px solid rgba(255,255,255,.22);padding:8px 14px;border-radius:10px;
  font-size:12.5px;transition:.18s;white-space:nowrap}
.ghost:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.34)}
.ghost:active{transform:translateY(1px)}
.primary{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  padding:14px;border-radius:13px;color:#fff;font-size:15.5px;
  font-weight:700;letter-spacing:1.5px;margin-top:16px;transition:.2s;
  background:linear-gradient(120deg,#2f4a86,#3455db 52%,#5b7cfa);
  box-shadow:0 10px 24px rgba(52,85,219,.32),inset 0 1px 0 rgba(255,255,255,.22)}
.primary em{font-style:normal;font-weight:400;transition:transform .2s}
.primary:hover em{transform:translateX(4px)}
.primary:hover{filter:brightness(1.07);transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(52,85,219,.4),inset 0 1px 0 rgba(255,255,255,.25)}
.primary:active{transform:translateY(0)}
.primary:disabled{filter:grayscale(.55);opacity:.66;cursor:not-allowed;
  transform:none;box-shadow:none}
.mini{background:#eef2ff;color:#33409a;border:1px solid #dbe2ff;
  padding:7px 12px;border-radius:9px;font-size:12.5px;text-decoration:none;
  display:inline-block;line-height:1.4;transition:.15s}
.mini:hover{background:#e3e9ff;border-color:#c7d2fe;transform:translateY(-1px)}

/* ---------------- 布局 ---------------- */
.layout{max-width:1460px;margin:0 auto;padding:22px 20px 44px;display:grid;
  grid-template-columns:clamp(292px,26vw,372px) minmax(0,1fr);gap:20px;align-items:start}
.layout>section{min-width:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh)}
.form{padding:0 20px;position:sticky;top:86px;max-height:calc(100vh - 104px);
  overflow:auto;scrollbar-width:thin;scrollbar-color:#d3dbec transparent}
.form::-webkit-scrollbar{width:8px}
.form::-webkit-scrollbar-thumb{background:#d8dff0;border-radius:99px}
.panel-head{display:flex;align-items:center;gap:11px;margin:0 -20px 18px;
  padding:15px 20px 14px;border-radius:17px 17px 0 0;
  background:linear-gradient(125deg,#eef3ff,#f7faff 58%,#eefaf4);
  border-bottom:1px solid var(--line)}
.ph-ico{width:34px;height:34px;border-radius:11px;flex:none;display:grid;place-items:center;
  font-size:14px;font-weight:700;color:#33409a;
  background:linear-gradient(140deg,#e1eaff,#dcf7ea);border:1px solid #d8e4ff;
  box-shadow:0 4px 10px rgba(52,85,219,.1)}
.ph-txt b{display:block;font-size:14px;color:#1d2438;letter-spacing:.4px}
.ph-txt span{font-size:11px;color:#8a90ab;display:block;margin-top:1px}
.ph-tag{margin-left:auto;font-size:10.5px;padding:3px 9px;border-radius:99px;
  background:#fff;border:1px solid #dbe4f8;color:#4f5bd5;white-space:nowrap}
.form h2{font-size:13px;font-weight:800;color:#232b46;letter-spacing:.4px;
  margin:20px 0 10px;display:flex;align-items:center;gap:8px}
.form h2 .sn{width:20px;height:20px;border-radius:7px;flex:none;display:grid;
  place-items:center;font-size:11px;font-weight:800;letter-spacing:0;color:#fff;
  background:linear-gradient(140deg,#4a6ae8,#3455db);
  box-shadow:0 3px 8px rgba(52,85,219,.28)}
.panel-head + h2{margin-top:0}
.form h2 small{font-weight:400;color:#98a0ba;font-size:11px;letter-spacing:0}
.form label{display:block;font-size:12.5px;color:var(--muted);margin:0 0 6px}
.form input,.form select{width:100%;padding:10px 12px;border:1px solid #e0e5f1;
  border-radius:11px;background:#fbfcff;color:var(--text);font-size:13.5px;
  outline:none;transition:.16s;font-family:inherit}
.form input::placeholder{color:#a8aec4}
.form input:hover,.form select:hover{border-color:#cfd8ec}
.form input:focus,.form select:focus{border-color:var(--brand2);background:#fff;
  box-shadow:var(--ring)}
.req{color:var(--bad)}
.hint{font-size:11.5px;color:#98a0ba;margin-top:9px;line-height:1.72}

/* ---------------- 案例选择 ---------------- */
.cases{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.case{border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:#fbfcff;
  cursor:pointer;transition:.16s;font-size:12.5px;line-height:1.4;text-align:left}
.case:hover{border-color:#c7d2fe;background:#f3f7ff;transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(52,85,219,.09)}
.case.on{border-color:var(--brand2);background:linear-gradient(180deg,#eff3ff,#f7f9ff);
  box-shadow:0 0 0 2px rgba(91,124,250,.16)}
.case b{display:block;font-weight:600;font-size:12.5px;color:#232b46}
.case span{color:#8a90ab;font-size:11px}
.case-info{margin-top:10px;border:1px dashed #cfd8f5;border-radius:12px;
  background:linear-gradient(180deg,#f7f9ff,#fbfcff);
  padding:12px 14px;font-size:12px;line-height:1.78;color:#454d68}
.case-info b{color:#28314e}
.case-info .ln{display:block;margin-bottom:3px}
.case-info .tagline{color:#7a5b00;background:var(--warn-bg);border-radius:6px;
  padding:2px 8px;display:inline-block;font-size:11px;margin-top:6px}
.case.featured{border-color:#bfd0fb;background:linear-gradient(180deg,#f3f7ff,#fbfcff)}
.case .star{font-style:normal;font-size:9.5px;font-weight:700;color:#33409a;
  background:#e3ebff;border:1px solid #cfdbff;border-radius:99px;padding:1px 6px;
  margin-left:5px;vertical-align:1px;white-space:nowrap}
.local-proof{margin-top:10px;border:1px solid #dce5f8;border-radius:13px;
  background:linear-gradient(180deg,#f8faff,#fff);padding:12px 13px}
.local-proof .lp-h{display:flex;align-items:center;gap:7px;font-size:12px;
  font-weight:800;color:#28314e;margin-bottom:8px}
.local-proof .lp-h:before{content:'';width:6px;height:6px;border-radius:50%;
  background:#22a06b;box-shadow:0 0 0 3px #ddf6e9}
.local-proof .lp-i{padding:8px 0;border-top:1px dashed #e3e9f6}
.local-proof .lp-i:first-of-type{border-top:0;padding-top:2px}
.local-proof .lp-q{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:12px;font-weight:700;color:#33409a}
.local-proof .lp-src{font-size:9.5px;font-weight:600;border-radius:99px;
  padding:1px 6px;background:#e8f8ef;color:#0d7a43}
.local-proof .lp-src.pending{background:#fff5e3;color:#8f5400}
.local-proof .lp-why{font-size:11px;color:#5a6280;line-height:1.65;margin-top:3px}
.local-proof .lp-link{font-size:10.5px;color:#4f5bd5;text-decoration:none;
  display:inline-block;margin-top:3px;line-height:1.55}
.local-proof .lp-link:hover{text-decoration:underline}
.local-proof .lp-note{font-size:10.5px;color:#7b8299;line-height:1.65;
  border-top:1px dashed #e3e9f6;padding-top:8px;margin-top:4px}
.local-proof .lp-note b{color:#4a5068}

/* ---------------- 标签输入 ---------------- */
.chips-input{display:flex;gap:7px}
.chips-input input{flex:1}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 5px 4px 11px;
  border-radius:99px;background:#eef2ff;color:#33409a;font-size:12.5px;
  border:1px solid #dbe2ff}
.chip.rival{background:#fff6e8;color:#8f5400;border-color:#ffe3b0}
.chip i{cursor:pointer;font-style:normal;width:17px;height:17px;border-radius:50%;
  display:grid;place-items:center;background:rgba(0,0,0,.07);font-size:11px;
  transition:.15s}
.chip i:hover{background:var(--bad);color:#fff}

/* ---------------- 引擎 ---------------- */
.engines{display:flex;flex-direction:column;gap:8px}
.eng{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;
  border:1px solid var(--line);border-radius:12px;background:#fbfcff;
  cursor:pointer;transition:.16s}
.eng:hover{border-color:#c7d2fe;background:#f6f9ff}
.eng input{margin-top:3px;accent-color:var(--brand);width:auto;flex:none}
.eng .nm{font-size:13px;font-weight:600;color:#232b46}
.eng .ds{font-size:11px;color:#8a90ab;margin-top:2px;line-height:1.5}
.badge{font-size:10px;padding:2px 7px;border-radius:99px;margin-left:6px;
  vertical-align:1px}
.badge.mock{background:var(--good-bg);color:#0d7a43}
.badge.real{background:#eef2ff;color:#33409a}
.keyrow{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:2px 0 8px 33px}
.keyrow input:first-child{grid-column:1/-1}
.keyrow input{font-size:11.5px!important;padding:6px 9px!important;min-width:0}

/* ---------------- 高级设置 ---------------- */
.adv{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}
.adv summary{cursor:pointer;padding:11px 14px;font-size:12.5px;color:#4a5068;
  list-style:none;display:flex;align-items:center;gap:7px;transition:.15s}
.adv summary:hover{color:#33409a}
.adv summary em{font-style:normal;margin-left:auto;font-size:10.5px;color:#a8aec4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adv summary::-webkit-details-marker{display:none}
.adv summary:before{content:'›';font-size:15px;color:#98a0ba;transition:.2s;
  display:inline-block;line-height:1}
.adv[open] summary:before{transform:rotate(90deg)}
.adv-body{padding:6px 14px 14px;border-top:1px dashed #e2e7f2}
.adv-body .row{display:flex;align-items:center;gap:8px;font-size:12.5px;
  color:#4a5068;margin:10px 0}
.adv-body .row input{width:auto;accent-color:var(--brand)}
.scenes{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.scenes span{padding:4px 10px;border-radius:99px;border:1px solid var(--line);
  font-size:11.5px;color:#6b7392;cursor:pointer;transition:.15s;background:#fff}
.scenes span:hover{border-color:#c7d2fe;color:#33409a}
.scenes span.on{background:#eef2ff;border-color:#c7d2fe;color:#33409a;font-weight:600}

/* ---------------- 运行摘要（吸底） ---------------- */
.cta{position:sticky;bottom:0;z-index:5;margin:14px -20px 0;
  padding:10px 20px 14px;background:#fff;
  box-shadow:0 -14px 20px -14px rgba(20,28,52,.16)}
.cta .runbar{margin-top:0}
.runbar{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:18px;
  padding:8px 10px;border-radius:13px;border:1px solid #e2e9f8;
  background:linear-gradient(180deg,#f7f9ff,#fbfcff)}
.rb-i{text-align:center;position:relative}
.rb-i+.rb-i:before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:1px;
  background:#e6ebf7}
.rb-i em{font-style:normal;display:block;font-size:10.5px;color:#98a0ba;letter-spacing:.2px}
.rb-i b{display:block;font-size:15.5px;color:#1d2438;line-height:1.45;
  font-variant-numeric:tabular-nums}

/* ---------------- 空态 / 进度 ---------------- */
.result{min-height:70vh}
.empty{padding:56px 38px;text-align:center;min-height:calc(70vh - 38px);
  display:flex;flex-direction:column;justify-content:center}
.empty-ico{width:74px;height:74px;margin:0 auto 16px;border-radius:22px;font-size:34px;
  display:grid;place-items:center;
  background:linear-gradient(140deg,#eaf0ff,#e9fbf2);
  border:1px solid #e2e9f8;box-shadow:0 12px 26px rgba(52,85,219,.1)}
.empty h3{font-size:19px;margin-bottom:10px;letter-spacing:.3px}
.empty p{color:#7b8299;font-size:13.5px;line-height:1.95}
.empty ul{max-width:720px;margin:26px auto 0;text-align:left;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px}
.empty li{background:linear-gradient(180deg,#fbfcff,#f7f9ff);border:1px solid #e8ecf8;
  border-radius:13px;padding:12px 14px;font-size:12.5px;color:#4a5068;line-height:1.75;
  transition:.18s}
.empty li:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(52,85,219,.09);
  border-color:#d5deff}
.empty li b{display:block;font-size:13px;margin-bottom:3px;color:var(--bad)}
.empty li.tone-warn b{color:var(--warn)}
.empty li.tone-info b{color:var(--info)}
.empty-steps{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:22px}
.empty-steps div{display:flex;align-items:center;gap:7px;font-size:12px;color:#5a6280;
  background:#fff;border:1px solid #e8ecf8;border-radius:99px;padding:5px 14px 5px 6px;
  box-shadow:0 2px 6px rgba(20,28,52,.03)}
.empty-steps i{font-style:normal;width:19px;height:19px;border-radius:50%;display:grid;
  place-items:center;font-size:10.5px;font-weight:700;color:#33409a;background:#eaf0ff}
.progress{display:flex;gap:18px;align-items:center;padding:34px 30px}
.pty{display:grid;gap:9px;flex:1}
.ptop{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ppct{font-size:13px;font-weight:700;color:var(--brand);
  font-variant-numeric:tabular-nums}
.spin{width:38px;height:38px;border-radius:50%;border:3px solid #e6e9f2;
  border-top-color:var(--brand2);border-right-color:#4ade80;
  animation:sp .8s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.progress .title{font-size:14px;font-weight:600;color:#232b46}
.ptrack{height:8px;border-radius:99px;background:#eef0f7;overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(20,28,52,.06)}
.ptrack i{display:block;height:100%;border-radius:99px;width:0;
  background:linear-gradient(90deg,#6366f1,#4ade80);transition:width .3s}
.psub{font-size:12px;color:#8a90ab}
.hidden{display:none!important}
.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);
  background:linear-gradient(120deg,#151f38,#2b3a5c);color:#fff;padding:12px 22px;
  border-radius:12px;font-size:13.5px;box-shadow:0 14px 36px rgba(8,14,32,.34);
  border:1px solid rgba(255,255,255,.1);z-index:99}
.fab{position:fixed;right:26px;bottom:26px;width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;font-size:17px;color:#fff;z-index:60;
  background:linear-gradient(140deg,#3a5ce0,#3455db);
  box-shadow:0 10px 26px rgba(52,85,219,.36);transition:.18s}
.fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(52,85,219,.44)}

/* ---------------- Hero 评分区 ---------------- */
#report{padding:18px}
.hero{position:relative;overflow:hidden;color:#fff;border-radius:20px;
  padding:26px 28px;box-shadow:0 20px 44px rgba(13,22,45,.26);
  background:linear-gradient(135deg,#111b33,#1e3157 48%,#33507f)}
.hero:before{content:'';position:absolute;top:-150px;right:-110px;width:430px;height:430px;
  border-radius:50%;background:radial-gradient(circle,rgba(122,162,255,.4),rgba(122,162,255,0) 68%)}
.hero:after{content:'';position:absolute;bottom:-170px;left:-90px;width:380px;height:380px;
  border-radius:50%;background:radial-gradient(circle,rgba(74,222,128,.22),rgba(74,222,128,0) 70%)}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:20px;letter-spacing:.6px}
.hero .sub{color:rgba(255,255,255,.74);font-size:12px;margin-top:6px;line-height:1.7}
.hero .score{display:flex;align-items:center;gap:24px;margin-top:18px;flex-wrap:wrap}
.ring{width:112px;height:112px;border-radius:50%;flex:none;display:flex;
  align-items:center;justify-content:center;
  background:conic-gradient(from -90deg,#4ade80 0turn,#4ade80 var(--p),
    rgba(255,255,255,.14) var(--p));
  box-shadow:0 0 0 1px rgba(255,255,255,.14),0 12px 28px rgba(2,8,22,.34)}
.ring i{width:88px;height:88px;border-radius:50%;background:#151f38;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  font-style:normal;box-shadow:inset 0 0 24px rgba(0,0,0,.35)}
.ring b{font-size:30px;line-height:1;letter-spacing:-.5px}
.ring span{font-size:10.5px;color:rgba(255,255,255,.66);margin-top:4px}
.grade{font-size:19px;font-weight:700;letter-spacing:.4px}
.grade small{display:block;font-weight:400;font-size:12px;
  color:rgba(255,255,255,.8);margin-top:6px;line-height:1.7}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));
  gap:10px;margin-top:18px}
.kpi{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);
  border-radius:14px;padding:12px 14px}
.kpi em{font-style:normal;color:rgba(255,255,255,.74);font-size:11px;letter-spacing:.3px}
.kpi strong{display:block;font-size:21px;margin:3px 0 8px;letter-spacing:-.3px;
  font-variant-numeric:tabular-nums}
.kpi.risk em{color:#ffc2c5}
.kpi.risk strong{color:#ffb3b7}
.kpi.risk .track i{background:linear-gradient(90deg,#f7a4a8,#f2545b)}
.track{height:6px;border-radius:99px;background:rgba(255,255,255,.2);
  overflow:hidden;min-width:60px}
.track i{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,#a5b4fc,#4ade80)}
.hl{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.hl span{font-size:12px;padding:5px 11px;border-radius:99px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.1)}
.hl span.bad{background:var(--bad-bg);color:#b3282b;border-color:transparent}
.hl span.warn{background:var(--warn-bg);color:#96650d;border-color:transparent}
.hl span.good{background:var(--good-bg);color:#0d7a43;border-color:transparent}
.hl span.info{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.16)}

/* ---------------- 卡片 / 表格 ---------------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:18px 20px;margin-top:16px;box-shadow:var(--sh);transition:box-shadow .22s}
.card:hover{box-shadow:var(--sh-lg)}
.card>h2{font-size:15.5px;color:#1d2438;display:flex;align-items:center;gap:9px;
  padding-bottom:11px;margin-bottom:13px;border-bottom:1px solid var(--line-2);
  letter-spacing:.3px}
.card>h2:before{content:'';width:4px;height:16px;border-radius:3px;flex:none;
  background:linear-gradient(180deg,var(--brand2),#4ade80)}
.card>h2 small{font-weight:400;color:#98a0ba;font-size:11.5px;letter-spacing:0}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;
  padding:12px 18px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(120deg,#f4f7ff,#fbfcff 56%,#f1fbf6);box-shadow:var(--sh)}
.toolbar b{font-size:13px;color:#1d2438;display:flex;align-items:center;gap:8px}
.toolbar b:before{content:'';width:3px;height:14px;border-radius:2px;
  background:linear-gradient(180deg,var(--brand2),#4ade80)}
.toolbar .sp{flex:1}
.toolbar .dim{white-space:normal}
.table-scroll{max-width:100%;overflow-x:auto}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.table-scroll th,.table-scroll td{overflow-wrap:anywhere}
th,td{text-align:left;vertical-align:top}
th{background:#f7f9ff;color:#5a6280;font-weight:600;font-size:12px;
  padding:9px 10px;border-bottom:1px solid var(--line)}
th:first-child{border-radius:9px 0 0 9px}
th:last-child{border-radius:0 9px 9px 0}
td{padding:10px;border-bottom:1px solid var(--line-2)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#fafbff}
.dim{color:#98a0ba;font-size:11.5px}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;
  white-space:nowrap;font-weight:600}
.p-good{background:var(--good-bg);color:#0d7a43}
.p-warn{background:var(--warn-bg);color:#8f5400}
.p-bad{background:var(--bad-bg);color:#b3282b}
.p-none{background:#f0f1f6;color:#6b7392}

/* ---------------- 行动清单 ---------------- */
.act{border:1px solid var(--line);border-radius:14px;padding:15px 17px;
  margin-bottom:11px;background:#fff;transition:.18s}
.act:hover{border-color:#d5deff;box-shadow:0 10px 26px rgba(52,85,219,.08)}
.act.p0{border-left:4px solid #e5484d;background:linear-gradient(90deg,#fff8f8,#fff 32%)}
.act.p1{border-left:4px solid #f5a524;background:linear-gradient(90deg,#fffaf2,#fff 32%)}
.act.p2{border-left:4px solid #3b82f6;background:linear-gradient(90deg,#f7faff,#fff 32%)}
.act h3{font-size:14.5px;margin-bottom:8px;line-height:1.6;color:#1d2438}
.act h3 i{font-style:normal;font-size:11px;background:linear-gradient(120deg,#1c2541,#33507f);
  color:#fff;border-radius:6px;padding:2px 7px;margin-right:8px;vertical-align:2px;
  letter-spacing:.5px}
.act p{margin:5px 0;font-size:13px;color:#3d4359;line-height:1.78}
.act .lbl{color:#8a90ab;font-size:12px;min-width:86px;display:inline-block}
blockquote{margin:8px 0 0;padding:9px 13px;border-left:3px solid #cfd5e8;
  background:#fafbff;color:#4a5068;font-size:12.5px;border-radius:0 8px 8px 0;
  line-height:1.75}
.act .owner-line{margin:10px 0 8px;padding:8px 11px;border-radius:9px;
  background:#eef7ff;border:1px solid #dce9fb}
.act .owner-line .lbl{color:#426181;font-weight:600}
.act .owner-line strong{color:#193c66;font-size:13px}
.evidence-slots{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:11px;
  padding-top:10px;border-top:1px dashed #e1e7f3}
.evidence-slots>span{font-size:11.5px;font-weight:700;color:#5a6280}
.evidence-slot{display:inline-block;padding:4px 9px;border-radius:8px;background:#eef2ff;
  border:1px solid #d9e2ff;color:#33409a;font-size:11.5px;text-decoration:none;
  transition:.15s}
.evidence-slot:hover{background:#dfe7ff;border-color:#b9c9fb;transform:translateY(-1px)}
.evidence-slot,.evidence-toggle,.evidence-panel h3{scroll-margin-top:100px}
.sample-table{min-width:550px}
.sample-table th:nth-child(2){width:34%}
.sample-table td{padding:7px 8px;line-height:1.45}
.sample-context{display:flex;flex-wrap:wrap;gap:0 5px;min-width:64px}
.sample-context span{white-space:nowrap}
.evidence-row td:first-child b,.evidence-row td:first-child .tchip{white-space:nowrap}
.sample-table td:last-child{white-space:nowrap}
.evidence-toggle,.evidence-close{padding:3px 9px;border:1px solid #d9e2ff;border-radius:7px;
  background:#f2f5ff;color:#33409a;font-size:12px;line-height:1.5;white-space:nowrap}
.evidence-toggle:hover,.evidence-close:hover{background:#e6edff}
.evidence-toggle[aria-expanded="true"]{background:#e9efff;border-color:#b9c9fb}
.evidence-row:has(.evidence-toggle[aria-expanded="true"]) td{background:#f4f7ff}
.evidence-detail[hidden]{display:none}
.sample-table .evidence-detail td{padding:0 6px 10px;white-space:normal;background:#f4f7ff}
.evidence-panel{padding:12px 15px;border:1px solid #dbe5fb;border-left:3px solid #5b7cfa;
  border-radius:9px;background:#fff;color:#283552}
.evidence-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.evidence-panel h3{font-size:14px;color:#253b6d}
.evidence-panel h3 span{margin-left:6px;color:#586989;font-size:12px;font-weight:500}
.evidence-panel h3:focus{outline:2px solid #5b7cfa;outline-offset:3px;border-radius:3px}
.evidence-meta{display:flex;flex-wrap:wrap;gap:3px 14px;margin:6px 0 7px;
  color:#52607c;font-size:11.5px;line-height:1.6}
.evidence-meta b,.evidence-question b{color:#263c67;margin-right:3px}
.evidence-question{padding:6px 8px;border-radius:5px;background:#f0f4ff;font-size:12px;line-height:1.55}
.evidence-panel pre{margin:7px 0 0;padding:6px 0 0;max-height:min(55vh,32rem);
  border:0;border-top:1px solid #edf0f7;border-radius:0;background:transparent;
  font-size:13px;line-height:1.65;color:#26334f;overflow-wrap:anywhere;word-break:normal}
.discipline{margin-top:13px;padding:11px 13px;border-radius:10px;background:#f5f7fc;
  border:1px solid #e2e7f2;color:#5a6280;font-size:12px;line-height:1.8}
.discipline b{display:block;color:#28314e;margin-bottom:2px}
.notice{padding:11px 13px;border-radius:10px;font-size:12.5px;line-height:1.75}
.notice.warn{background:var(--warn-bg);color:#80520a;border:1px solid #f3dfb6}
.compare-diff{margin-top:12px;font-size:13px}
.boundary{background:linear-gradient(135deg,#f8faff,#f5f8f7)}
.boundary p{color:#4a5269;font-size:12.5px;line-height:1.9}

/* ---------------- 追问承接力 / 对话轨迹 ---------------- */
.fu{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.fu-i{border:1px solid var(--line);border-radius:12px;padding:12px 14px;
  background:linear-gradient(180deg,#fbfcff,#f8faff);transition:.16s}
.fu-i:hover{border-color:#d5deff;transform:translateY(-1px)}
.fu-i em{font-style:normal;font-size:11.5px;color:#6b7392;display:block}
.fu-i strong{display:block;font-size:20px;margin:3px 0 4px;color:#1d2438;
  font-variant-numeric:tabular-nums}
.fu-i .dim{font-size:11px;line-height:1.55;display:block}
.fu-i strong.good{color:#0d7a43}
.fu-i strong.bad{color:#b3282b}
ul.brief{margin:6px 0 10px;padding-left:2px;display:grid;gap:5px}
ul.brief li{font-size:12.5px;color:#4a5068;padding-left:15px;position:relative;
  line-height:1.75}
ul.brief li:before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;
  border-radius:50%;background:#a5b4fc}
.tchip{display:inline-block;padding:2px 8px;border-radius:7px;font-size:11.5px;
  background:#f0f1f6;color:#5a627a;white-space:nowrap}
.tchip.good{background:var(--good-bg);color:#0d7a43}
.tchip.warn{background:var(--warn-bg);color:#8f5400}
.tchip.bad{background:var(--bad-bg);color:#b3282b}
.arrow{color:#c3c9da;margin:0 4px;font-size:11px}

/* ---------------- 30 天排期 ---------------- */
.road{display:grid;gap:9px}
.ph{position:relative;border:1px solid var(--line);border-radius:13px;
  padding:13px 16px;background:linear-gradient(180deg,#fbfcff,#fff);
  transition:.16s}
.ph:hover{border-color:#d5deff;box-shadow:0 8px 22px rgba(52,85,219,.07)}
.ph-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ph-h b{font-size:11.5px;background:linear-gradient(120deg,#1c2541,#33507f);color:#fff;
  border-radius:7px;padding:2px 9px;font-weight:600;letter-spacing:.5px}
.ph-h span{font-size:14px;font-weight:600;color:#1d2438}
.ph-h em{font-style:normal;font-size:11.5px;color:#8a90ab;margin-left:auto}
.ph ul{margin:9px 0 0;padding-left:2px;display:grid;gap:5px}
.ph li{font-size:12.5px;color:#4a5068;padding-left:15px;position:relative;line-height:1.72}
.ph li:before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;
  border-radius:50%;background:#a5b4fc}

/* ---------------- 明细 / 导出页 ---------------- */
details{margin-top:4px}
summary{cursor:pointer;color:var(--info);font-size:12.5px}
summary:hover{text-decoration:underline}
.card details summary{display:inline-block;text-decoration:none;font-size:11.5px;
  color:#4250b5;background:#f2f5ff;border:1px solid #e2e9fb;border-radius:7px;
  padding:3px 9px;transition:.15s;white-space:nowrap}
.card details summary:hover{background:#e9efff;border-color:#cfd9f8}
.card details[open] summary{background:#e6ecff;border-color:#c7d2fe}
.card details pre{margin-top:8px;max-height:260px}
pre{white-space:pre-wrap;word-break:break-word;background:#fafbff;
  border:1px solid var(--line-2);border-radius:11px;padding:12px 14px;font-size:12.5px;
  color:#48506b;font-family:inherit;max-height:340px;overflow:auto;line-height:1.75}
.wrap.page{max-width:1120px;margin:0 auto;padding:30px 18px 60px}
footer{margin-top:26px;text-align:center;color:#9aa1ba;font-size:12px;line-height:1.8}

/* ---------------- 动效 ---------------- */
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#report>.hero,#report>.card{animation:rise .4s cubic-bezier(.22,.7,.3,1) both}
#report>.card:nth-child(2){animation-delay:.04s}
#report>.card:nth-child(3){animation-delay:.08s}
#report>.card:nth-child(4){animation-delay:.12s}
#report>.card:nth-child(5){animation-delay:.16s}
:focus-visible{outline:2px solid var(--brand2);outline-offset:2px}

@media(max-width:900px){
  .topbar{flex-wrap:wrap;padding:12px 14px;gap:10px}
  .layout{grid-template-columns:minmax(0,1fr);padding:12px 12px 32px}
  .form{position:static;max-height:none}
  .cta{position:static;margin:14px -20px 0;padding:10px 20px 0;box-shadow:none}
  .panel-head{margin:0 -20px 16px;padding:14px 20px 13px}
  .empty{padding:38px 16px}
  .empty ul{grid-template-columns:1fr}
  .card{padding:14px 15px}
  .hero{padding:20px}
  table{font-size:12px}
  th,td{padding:8px 6px}
  .kpis{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .topact{flex:1 1 100%;flex-wrap:wrap}
  .topbar h1{white-space:normal}
  .evidence-slot,.evidence-toggle,.evidence-panel h3{scroll-margin-top:140px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ---------------- 打印 / 导出（体检单发老板、打印成册） ---------------- */
@page{margin:14mm}
@media print{
  body{background:#fff!important}
  .topbar,.toast{display:none!important}
  .wrap.page{max-width:none;padding:0}
  .card,.panel{box-shadow:none;border:1px solid #d9dde8;break-inside:avoid;
    page-break-inside:avoid;margin-top:12px}
  .card:hover,.act:hover,.ph:hover{box-shadow:none}
  .hero{background:#fff!important;color:#161b2e;border:1px solid #d9dde8;
    box-shadow:none;border-radius:14px}
  .hero:before,.hero:after{display:none}
  .hero .sub,.grade small,.ring span{color:#525a75}
  .ring{background:conic-gradient(from -90deg,#0f9d58 0turn,#0f9d58 var(--p),
    #e6eaf4 var(--p))!important;box-shadow:none}
  .ring i{background:#fff;box-shadow:none}
  .kpi{background:#f7f9ff!important;border:1px solid #e2e7f2!important}
  .kpi em{color:#525a75!important}
  .track{background:#e6eaf4}
  .hl span{background:#f0f3fa!important;color:#2b3552!important;
    border:1px solid #e2e7f2!important}
  table{font-size:11px}
  th{background:#f2f4fa!important}
  tbody tr:hover td{background:transparent}
  pre{max-height:none;border-color:#e2e7f2}
  a{color:inherit;text-decoration:none}
  .act,.ph,.fu-i{break-inside:avoid;page-break-inside:avoid}
  .act{background:#fff!important}
  summary{list-style:none}
  details{display:block}
  /* 打印版省略 120 条 AI 原文，并把明细排紧，避免体检单变成 30 页 */
  .table-scroll{overflow:visible}
  .detail-table th:last-child,.detail-table td:last-child,.evidence-detail{display:none}
  .sample-table{min-width:0}
  .detail-table{break-inside:auto;page-break-inside:auto}
  .detail-table table{font-size:9.5px}
  .detail-table th,.detail-table td{padding:3px 4px}
}
