/* =========================================================
 *  慧眼识诈 · 陌生来电核验  样式
 *  迁移自原单文件 HTML（原样搬移，未做改动）
 * ========================================================= */

  /* ==================== 设计令牌 ==================== */
  :root{
    --ink-900:#0a1730;
    --ink-700:#22334f;
    --ink-500:#4c5f7a;
    --ink-300:#8291a8;
    --blue-950:#071a3e;
    --blue-900:#0b2559;
    --blue-800:#123a82;
    --blue-700:#1a4ba6;
    --blue-600:#2160c7;
    --blue-500:#3b7ae4;
    --blue-200:#c8dcf7;
    --blue-100:#e4eefc;
    --blue-50:#f2f7fe;
    --red-700:#b3261e;
    --red-600:#d32f2f;
    --red-500:#e64242;
    --red-100:#fdeceb;
    --orange-600:#e07b1a;
    --orange-100:#fdf0dd;
    --yellow-600:#b8860b;
    --yellow-100:#fdf8e3;
    --green-700:#156b3a;
    --green-600:#1c8b4b;
    --green-100:#e3f5ea;
    --bg:#eef2f8;
    --line:#dfe6f1;
    --line-2:#eaeff7;
    --radius-lg:18px;
    --radius-md:12px;
    --radius-sm:8px;
    --shadow-card:0 1px 2px rgba(15,40,90,.04), 0 4px 16px rgba(15,40,90,.06);
    --shadow-float:0 2px 6px rgba(15,40,90,.08), 0 12px 32px rgba(15,40,90,.12);
  }

  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html{-webkit-text-size-adjust:100%;}

  body{
    margin:0;
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",
                "Source Han Sans SC","Noto Sans CJK SC","Helvetica Neue",Arial,sans-serif;
    font-size:17px;
    line-height:1.7;
    color:var(--ink-900);
    background:var(--bg); 
    -webkit-font-smoothing:antialiased;
    padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px));
  }

  .wrap{max-width:760px;margin:0 auto;padding:0 16px;}

  /* ==================== 顶部信息条 ==================== */
  .topbar{
    background:var(--blue-950);
    color:#8fa8cc;
    font-size:13px;
    letter-spacing:.3px;
    padding-top:env(safe-area-inset-top, 0px);
  }
  .topbar-inner{
    display:flex;justify-content:space-between;align-items:center;
    height:36px;gap:12px;
  }
  .topbar-inner .tb-l{display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;}
  .topbar-inner .tb-l .live{
    width:6px;height:6px;border-radius:50%;
    background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.18);
    flex:0 0 auto;
  }
  .topbar-inner .tb-r{white-space:nowrap;color:#b9cbe6;}
  .topbar-inner .tb-r b{color:#fff;letter-spacing:.8px;font-variant-numeric:tabular-nums;}

  /* ==================== 头部主视觉 ==================== */
  .app-header{
    position:relative;
    overflow:hidden;
    background:
      radial-gradient(760px 340px at 88% -30%, rgba(80,150,255,.5) 0%, rgba(80,150,255,0) 65%),
      radial-gradient(620px 300px at -10% 110%, rgba(214,50,50,.22) 0%, rgba(214,50,50,0) 60%),
      linear-gradient(158deg,#071a3e 0%, var(--blue-900) 34%, var(--blue-800) 68%, var(--blue-700) 100%);
    color:#fff;
    padding:26px 0 88px;
    border-bottom-left-radius:26px;
    border-bottom-right-radius:26px;
  }
  .app-header::after{
    content:"";
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(600px 260px at 50% 0%, #000 0%, transparent 78%);
    pointer-events:none;
  }

  .brand-row{
    display:flex;align-items:center;gap:12px;
    position:relative;z-index:1;
    margin-bottom:22px;
  }
  .brand-emblem{
    width:44px;height:44px;flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    backdrop-filter:blur(6px);
  }
  .brand-emblem svg{width:26px;height:26px;color:#fff;}
  .brand-name{
    font-size:17px;font-weight:700;letter-spacing:2.5px;
    line-height:1.25;
  }
  .brand-name small{
    display:block;
    font-size:11.5px;font-weight:400;letter-spacing:1.6px;
    color:#9db9e4;margin-top:2px;
  }

  .hero-copy{position:relative;z-index:1;}
  .hero-copy h1{
    margin:0;
    font-size:31px;
    font-weight:800;
    letter-spacing:2px;
    line-height:1.35;
    text-shadow:0 2px 12px rgba(0,0,0,.25);
  }
  .hero-copy h1 em{
    font-style:normal;
    color:#ffd166;
    position:relative;
  }
  .hero-copy p{
    margin:12px 0 0;
    font-size:16px;
    line-height:1.7;
    color:#c4d6f0;
    letter-spacing:.4px;
    max-width:520px;
  }

  /* 头部数据条 */
  .hero-stats{
    position:relative;z-index:1;
    display:flex;
    gap:10px;
    margin-top:24px;
  }
  .hero-stat{
    flex:1;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    border-radius:12px;
    padding:11px 8px 12px;
    text-align:center;
    backdrop-filter:blur(6px);
    min-width:0;
  }
  .hero-stat b{
    display:block;
    font-size:22px;
    font-weight:800;
    letter-spacing:0;
    line-height:1.2;
    font-variant-numeric:tabular-nums;
  }
  .hero-stat span{
    display:block;
    font-size:11.5px;
    color:#a9c2e6;
    letter-spacing:.4px;
    margin-top:3px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .hero-stat:nth-child(1) b{color:#ffd166;}
  .hero-stat:nth-child(2) b{color:#7fd4a0;}
  .hero-stat:nth-child(3) b{color:#8ec5ff;}

  /* ==================== 主内容 ==================== */
  main{
    position:relative;
    z-index:2;
    margin-top:-62px;
  }

  .card{
    background:#fff;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-card);
    padding:22px 20px 24px;
    margin-bottom:16px;
    border:1px solid rgba(220,230,245,.9);
  }

  /* ---------- 输入卡片 ---------- */
  .input-card{padding-bottom:20px;}

  .panel-title{
    display:flex;align-items:center;gap:10px;
    margin-bottom:16px;
  }
  .panel-title .bar{
    width:4px;height:18px;border-radius:3px;
    background:linear-gradient(180deg,var(--blue-500),var(--blue-700));
    flex:0 0 auto;
  }
  .panel-title h2{
    margin:0;font-size:18.5px;font-weight:800;
    letter-spacing:.8px;color:var(--blue-900);
  }
  .panel-title .tag{
    margin-left:auto;
    font-size:12px;font-weight:700;
    color:var(--blue-700);
    background:var(--blue-100);
    border-radius:20px;
    padding:3px 11px;
    letter-spacing:.5px;
  }

  .textarea-shell{
    position:relative;
    border-radius:var(--radius-md);
    background:var(--blue-50);
    border:1.5px solid var(--blue-200);
    transition:border-color .18s, box-shadow .18s, background .18s;
  }
  .textarea-shell:focus-within{
    background:#fff;
    border-color:var(--blue-500);
    box-shadow:0 0 0 4px rgba(59,122,228,.13);
  }

  textarea{
    display:block;
    width:100%;
    min-height:170px;
    font-family:inherit;
    font-size:17px;
    line-height:1.8;
    color:var(--ink-900);
    padding:16px 18px;
    background:transparent;
    border:none;
    border-radius:var(--radius-md);
    resize:vertical;
    outline:none;
  }
  textarea::placeholder{color:#93a4bd;line-height:1.8;}

  /* 输入区辅助按钮 */
  .input-tools{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:14px;
  }
  .tool-btn{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:12px 6px 11px;
    font-family:inherit;
    font-size:13.5px;
    font-weight:600;
    letter-spacing:.5px;
    color:var(--blue-800);
    background:var(--blue-50);
    border:1px solid var(--blue-200);
    border-radius:var(--radius-md);
    cursor:pointer;
    transition:.16s;
    line-height:1.2;
  }
  .tool-btn:hover{background:var(--blue-100);border-color:#a9c8ef;}
  .tool-btn:active{transform:scale(.97);}
  .tool-btn svg{width:22px;height:22px;flex:0 0 auto;stroke-width:1.9;}

  .tool-btn.recording{
    color:var(--red-700);
    background:var(--red-100);
    border-color:#f3c9c6;
    animation:pulse 1.4s ease-in-out infinite;
  }
  @keyframes pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(211,47,47,.25);}
    50%{box-shadow:0 0 0 7px rgba(211,47,47,0);}
  }

  /* 主按钮 */
  .main-cta{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    margin-top:16px;
    padding:18px 20px;
    font-family:inherit;
    font-size:19px;
    font-weight:800;
    letter-spacing:5px;
    color:#fff;
    background:linear-gradient(180deg,var(--blue-600) 0%,var(--blue-800) 100%);
    border:1px solid #0e3070;
    border-radius:14px;
    cursor:pointer;
    box-shadow:0 3px 0 #0a2560, 0 10px 24px rgba(18,58,130,.28);
    transition:.14s;
    overflow:hidden;
  }
  .main-cta::before{
    content:"";
    position:absolute;top:0;left:-40%;width:40%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
    transform:skewX(-18deg);
    animation:shine 3.4s ease-in-out infinite;
  }
  @keyframes shine{
    0%{left:-45%;}
    55%{left:120%;}
    100%{left:120%;}
  }
  .main-cta:hover{filter:brightness(1.07);}
  .main-cta:active{transform:translateY(2px);box-shadow:0 1px 0 #0a2560, 0 4px 12px rgba(18,58,130,.3);}
  .main-cta:disabled{opacity:.7;cursor:progress;filter:none;animation:none;}
  .main-cta svg{width:21px;height:21px;flex:0 0 auto;position:relative;z-index:1;}
  .main-cta span{position:relative;z-index:1;}

  /* 提示条 */
  .notice{
    display:flex;
    gap:11px;
    margin-top:16px;
    padding:13px 15px;
    background:#fffbeb;
    border:1px solid #f7e3ab;
    border-radius:var(--radius-md);
    font-size:14.5px;
    line-height:1.7;
    color:#6b5210;
  }
  .notice .ico{
    flex:0 0 auto;
    width:20px;height:20px;
    margin-top:2px;
    color:var(--orange-600);
  }
  .notice b{color:#8a5d00;}

  /* ==================== 结果区 ==================== */
  .result-wrap{animation:slideUp .42s cubic-bezier(.2,.85,.35,1);}
  @keyframes slideUp{
    from{opacity:0;transform:translateY(18px);}
    to{opacity:1;transform:translateY(0);}
  }

  /* 结论横幅 */
  .verdict{
    position:relative;
    overflow:hidden;
    border-radius:var(--radius-lg);
    padding:22px 20px 20px;
    margin-bottom:16px;
    color:#fff;
    box-shadow:var(--shadow-float);
  }
  .verdict::after{
    content:"";
    position:absolute;
    right:-40px;top:-40px;
    width:180px;height:180px;
    border-radius:50%;
    background:rgba(255,255,255,.09);
    pointer-events:none;
  }
  .verdict::before{
    content:"";
    position:absolute;
    right:26px;bottom:-56px;
    width:120px;height:120px;
    border-radius:50%;
    background:rgba(255,255,255,.06);
    pointer-events:none;
  }
  .verdict.v-high{background:linear-gradient(140deg,#8c1d18 0%,var(--red-600) 55%,#e35d5d 100%);}
  .verdict.v-mid{background:linear-gradient(140deg,#9a4a06 0%,var(--orange-600) 55%,#f0a14a 100%);}
  .verdict.v-low{background:linear-gradient(140deg,#7a5c00 0%,#b8860b 55%,#d9ab3c 100%);}
  .verdict.v-safe{background:linear-gradient(140deg,#0d4f2a 0%,var(--green-600) 55%,#3fae72 100%);}

  .verdict-top{
    display:flex;
    align-items:center;
    gap:14px;
    position:relative;
    z-index:1;
  }
  .verdict-icon{
    width:56px;height:56px;flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.16);
    border:1.5px solid rgba(255,255,255,.3);
    border-radius:16px;
    backdrop-filter:blur(4px);
  }
  .verdict-icon svg{width:30px;height:30px;}

  .verdict-label{flex:1 1 auto;min-width:0;}
  .verdict-label .kicker{
    font-size:12.5px;
    letter-spacing:2px;
    color:rgba(255,255,255,.8);
    font-weight:600;
    margin-bottom:3px;
  }
  .verdict-label .big{
    font-size:26px;
    font-weight:800;
    letter-spacing:2.5px;
    line-height:1.2;
  }

  .verdict-score{
    flex:0 0 auto;
    text-align:right;
    line-height:1;
  }
  .verdict-score b{
    font-size:50px;
    font-weight:800;
    letter-spacing:-2px;
    font-variant-numeric:tabular-nums;
    text-shadow:0 3px 14px rgba(0,0,0,.2);
  }
  .verdict-score span{
    font-size:13px;
    font-weight:600;
    opacity:.8;
    margin-left:2px;
    letter-spacing:0;
  }

  .verdict-desc{
    position:relative;
    z-index:1;
    margin-top:14px;
    font-size:15.5px;
    line-height:1.65;
    color:rgba(255,255,255,.94);
    letter-spacing:.3px;
  }

  /* 判定来源徽章 */
  .src-badge{
    display:inline-block;
    vertical-align:1px;
    font-size:11.5px;
    line-height:1;
    padding:4px 9px;
    border-radius:999px;
    font-weight:600;
    letter-spacing:.5px;
    margin-left:4px;
  }
  .src-ai{background:linear-gradient(135deg,#6a5cff,#3f7fff);color:#fff;box-shadow:0 2px 8px rgba(63,127,255,.45);}
  .src-rule{background:rgba(255,255,255,.18);color:rgba(255,255,255,.92);}
  .src-local{background:#fff4e0;color:#b8860b;}

  /* AI 补充说明 */
  .ai-note{
    position:relative;
    z-index:1;
    margin-top:10px;
    padding:10px 14px;
    border-radius:12px;
    background:rgba(255,255,255,.15);
    border:1px solid rgba(255,255,255,.22);
    font-size:15px;
    line-height:1.6;
    color:rgba(255,255,255,.96);
  }

  /* 风险刻度条 */
  .meter-card{
    background:#fff;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-card);
    padding:20px;
    margin-bottom:16px;
    border:1px solid rgba(220,230,245,.9);
  }
  .meter-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:11px;
  }
  .meter-head .t{
    font-size:15px;
    font-weight:700;
    color:var(--blue-900);
    letter-spacing:.8px;
  }
  .meter-head .v{
    font-size:15px;
    font-weight:800;
    font-variant-numeric:tabular-nums;
  }
  .meter-track{
    position:relative;
    height:16px;
    border-radius:9px;
    background:linear-gradient(90deg,#e8f5ec 0%,#fdf8e3 32%,#fdeee0 58%,#fbe4e3 100%);
    overflow:hidden;
    box-shadow:inset 0 1px 2px rgba(15,40,90,.09);
  }
  .meter-track > i{
    display:block;
    height:100%;
    border-radius:9px;
    transition:width .9s cubic-bezier(.2,.9,.3,1);
    box-shadow:0 0 0 1px rgba(255,255,255,.4) inset;
  }
  .meter-track .marker{
    position:absolute;
    top:-2px;bottom:-2px;
    width:2px;
    background:rgba(15,40,90,.18);
    border-radius:1px;
  }
  .meter-scale{
    display:flex;
    justify-content:space-between;
    margin-top:8px;
    font-size:12.5px;
    color:var(--ink-300);
    font-variant-numeric:tabular-nums;
    letter-spacing:.3px;
  }
  .meter-scale span{position:relative;}

  /* 通用小节标题 */
  .sec-title{
    display:flex;
    align-items:center;
    gap:10px;
    margin:22px 4px 12px;
    font-size:16.5px;
    font-weight:800;
    color:var(--blue-900);
    letter-spacing:1px;
  }
  .sec-title::before{
    content:"";
    width:4px;height:17px;
    border-radius:3px;
    background:linear-gradient(180deg,var(--blue-500),var(--blue-700));
    flex:0 0 auto;
  }
  .sec-title .cnt{
    margin-left:auto;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0;
    color:var(--ink-300);
  }

  /* 特征条目 */
  .feat{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:15px 16px;
    margin-bottom:10px;
    box-shadow:0 1px 2px rgba(15,40,90,.03);
    position:relative;
    overflow:hidden;
  }
  .feat::before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;
    width:4px;
    background:var(--red-600);
  }
  .feat.f-combo::before{background:#8c1d18;}
  .feat.f-info::before{background:var(--green-600);}
  .feat.f-info{background:#f7fcf9;border-color:#d6ecdf;}

  .feat-head{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
  }
  .feat-head .name{
    font-size:16.5px;
    font-weight:800;
    color:var(--red-700);
    letter-spacing:.4px;
    line-height:1.4;
  }
  .feat.f-info .feat-head .name{color:var(--green-700);}
  .feat-head .pts{
    margin-left:auto;
    font-size:12.5px;
    font-weight:800;
    color:#fff;
    background:var(--red-600);
    border-radius:20px;
    padding:2px 10px;
    letter-spacing:.5px;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .feat.f-combo .feat-head .pts{background:#8c1d18;}

  .feat-tip{
    margin-top:8px;
    font-size:14.5px;
    line-height:1.7;
    color:var(--ink-500);
  }
  .feat.f-info .feat-tip{color:#2f5a41;}

  .feat-words{
    margin-top:10px;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .kw{
    font-size:13.5px;
    line-height:1.5;
    color:#9a241d;
    background:#fff6f5;
    border:1px solid #f0d4d1;
    border-radius:6px;
    padding:2px 9px;
    white-space:nowrap;
  }
  .kw.more{
    color:var(--ink-500);
    background:#f5f7fb;
    border-color:var(--line);
  }

  /* 原文高亮 */
  .raw-box{
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:16px 17px;
    font-size:16.5px;
    line-height:2.05;
    color:var(--ink-700);
    white-space:pre-wrap;
    word-break:break-word;
    max-height:280px;
    overflow:auto;
    box-shadow:0 1px 2px rgba(15,40,90,.03);
  }
  .raw-box mark{
    background:#fff1a8;
    color:#6b4a00;
    font-weight:700;
    padding:1px 4px;
    border-radius:4px;
    box-shadow:0 0 0 1px #f0dd82;
  }
  .raw-box mark[data-i]{cursor:pointer;}

  /* 可疑词点击引导 */
  .fz-tip{
    font-size:13px;
    line-height:1.5;
    color:var(--ink-300);
    margin:-4px 2px 8px;
  }

  /* 可疑词说明卡（居中大卡片） */
  .fmask{
    position:fixed;
    inset:0;
    z-index:9999;
    background:rgba(7,26,62,.58);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px 18px;
    animation:fzFadeIn .18s ease;
  }
  .fcard{
    background:#fff;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-float);
    max-width:430px;
    width:100%;
    max-height:80vh;
    overflow:auto;
    padding:24px 22px 22px;
    text-align:center;
    animation:fzPopIn .22s cubic-bezier(.2,.85,.35,1);
  }
  .fcard-tag{
    display:inline-block;
    font-size:14px;
    font-weight:700;
    line-height:1.5;
    color:#9a241d;
    background:var(--red-100);
    border:1px solid #f0d4d1;
    border-radius:20px;
    padding:4px 15px;
    margin-bottom:14px;
  }
  .fcard-q{
    font-size:18px;
    font-weight:800;
    letter-spacing:1.5px;
    color:var(--blue-900);
    margin-bottom:12px;
  }
  .fcard-why{
    font-size:16.5px;
    line-height:1.9;
    color:#5c4300;
    background:var(--yellow-100);
    border:1px solid #f0dd82;
    border-radius:var(--radius-md);
    padding:14px 16px;
    text-align:left;
    margin-bottom:20px;
    word-break:break-word;
  }
  .fcard-btn{
    font-family:inherit;
    font-size:16.5px;
    font-weight:700;
    letter-spacing:3px;
    color:#fff;
    background:linear-gradient(180deg,var(--blue-600) 0%,var(--blue-800) 100%);
    border:1px solid #0e3070;
    border-radius:12px;
    padding:12px 46px;
    cursor:pointer;
    box-shadow:0 2px 0 #0a2560;
    transition:.14s;
  }
  .fcard-btn:active{transform:scale(.96);}

  @keyframes fzFadeIn{
    from{opacity:0;}
    to{opacity:1;}
  }
  @keyframes fzPopIn{
    from{opacity:0;transform:scale(.92);}
    to{opacity:1;transform:scale(1);}
  }

  /* 处置建议 */
  .adv-list{
    list-style:none;
    padding:0;
    margin:0;
    counter-reset:a;
  }
  .adv-list li{
    position:relative;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:14px 16px 14px 54px;
    margin-bottom:9px;
    font-size:16px;
    line-height:1.7;
    color:var(--ink-900);
    box-shadow:0 1px 2px rgba(15,40,90,.03);
  }
  .adv-list li::before{
    counter-increment:a;
    content:counter(a);
    position:absolute;
    left:14px;top:13px;
    width:27px;height:27px;
    border-radius:9px;
    background:var(--blue-100);
    color:var(--blue-800);
    font-size:14px;
    font-weight:800;
    display:flex;
    align-items:center;
    justify-content:center;
    font-variant-numeric:tabular-nums;
  }
  .adv-list li.critical{
    background:linear-gradient(180deg,#fff8f7 0%,#fdf1f0 100%);
    border-color:#f2cfcb;
    color:var(--red-700);
    font-weight:700;
  }
  .adv-list li.critical::before{
    background:var(--red-600);
    color:#fff;
  }

  /* 操作按钮 */
  .action-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:22px;
  }
  .act{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:15px 14px;
    font-family:inherit;
    font-size:16px;
    font-weight:800;
    letter-spacing:1px;
    border-radius:14px;
    cursor:pointer;
    text-decoration:none;
    border:1px solid transparent;
    transition:.15s;
    line-height:1.2;
  }
  .act svg{width:20px;height:20px;flex:0 0 auto;}
  .act:active{transform:translateY(1px);}

  .act.primary{
    color:#fff;
    background:linear-gradient(180deg,var(--blue-600) 0%,var(--blue-800) 100%);
    border-color:#0e3070;
    box-shadow:0 3px 0 #0a2560, 0 8px 18px rgba(18,58,130,.24);
  }
  .act.primary:hover{filter:brightness(1.07);}

  .act.emergency{
    color:#fff;
    background:linear-gradient(180deg,#d63b32 0%,#8c1d18 100%);
    border-color:#78160f;
    box-shadow:0 3px 0 #6f130d, 0 8px 18px rgba(140,29,24,.26);
  }
  .act.emergency:hover{filter:brightness(1.07);}

  /* ==================== 历史记录 ==================== */
  .hist-empty{
    text-align:center;
    padding:26px 10px 14px;
    color:var(--ink-300);
    font-size:14.5px;
  }
  .hist-row{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 4px;
    border-bottom:1px dashed var(--line-2);
    font-size:14.5px;
  }
  .hist-row:last-of-type{border-bottom:none;}
  .hist-row .dot{
    width:9px;height:9px;border-radius:50%;flex:0 0 auto;
  }
  .hist-row .txt{
    flex:1 1 auto;min-width:0;
    color:var(--ink-500);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .hist-row .meta{
    flex:0 0 auto;
    font-size:12.5px;
    color:var(--ink-300);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .hist-row .meta b{color:var(--ink-700);font-weight:700;}

  .link-btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-family:inherit;
    font-size:14px;
    font-weight:600;
    color:var(--ink-500);
    background:transparent;
    border:none;
    padding:8px 4px;
    cursor:pointer;
    letter-spacing:.4px;
  }
  .link-btn:hover{color:var(--red-600);}

  /* ==================== 页脚 ==================== */
  .site-footer{
    margin-top:26px;
    padding:24px 0 26px;
    border-top:1px solid var(--line);
    color:var(--ink-300);
    font-size:13px;
    line-height:1.9;
  }
  .footer-lines{display:flex;flex-direction:column;gap:5px;}
  .footer-lines b{color:var(--red-600);font-weight:800;}

  /* ==================== 底部固定栏 ==================== */
  .bottom-bar{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:50;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom, 0px);
  }
  .bottom-inner{
    max-width:760px;
    margin:0 auto;
    padding:0 16px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
  }
  .bottom-tip{
    display:flex;align-items:center;gap:9px;
    font-size:13.5px;
    color:var(--ink-500);
    letter-spacing:.3px;
    min-width:0;
  }
  .bottom-tip .shield{
    width:26px;height:26px;flex:0 0 auto;
    display:flex;align-items:center;justify-content:center;
    background:var(--blue-100);
    color:var(--blue-700);
    border-radius:8px;
  }
  .bottom-tip .shield svg{width:15px;height:15px;}
  .bottom-tip .tx{
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .bottom-call{
    display:inline-flex;
    align-items:center;
    gap:7px;
    flex:0 0 auto;
    padding:9px 16px;
    font-family:inherit;
    font-size:14.5px;
    font-weight:800;
    letter-spacing:1px;
    color:#fff;
    background:linear-gradient(180deg,#d63b32 0%,#b3261e 100%);
    border:none;
    border-radius:11px;
    text-decoration:none;
    box-shadow:0 2px 8px rgba(179,38,30,.3);
    transition:.15s;
  }
  .bottom-call:hover{filter:brightness(1.08);}
  .bottom-call:active{transform:translateY(1px);}
  .bottom-call svg{width:16px;height:16px;}

  /* ==================== 响应式 ==================== */
  @media (max-width:520px){
    body{font-size:16px;}
    .wrap{padding:0 14px;}
    .app-header{padding:20px 0 82px;border-bottom-left-radius:22px;border-bottom-right-radius:22px;}
    .hero-copy h1{font-size:26px;letter-spacing:1.5px;}
    .hero-copy p{font-size:14.5px;}
    .hero-stat b{font-size:19px;}
    .hero-stat span{font-size:10.5px;letter-spacing:0;}
    .card{padding:18px 16px 20px;border-radius:16px;}
    .panel-title h2{font-size:17px;}
    .panel-title .tag{font-size:11px;padding:2px 9px;}
    textarea{font-size:16px;min-height:150px;padding:14px 15px;}
    .tool-btn{font-size:12.5px;padding:11px 4px 10px;gap:5px;}
    .tool-btn svg{width:20px;height:20px;}
    .main-cta{font-size:17px;letter-spacing:3px;padding:17px 16px;}
    .verdict{padding:18px 16px 17px;}
    .verdict-label .big{font-size:21px;letter-spacing:1.5px;}
    .verdict-score b{font-size:42px;}
    .verdict-icon{width:48px;height:48px;border-radius:14px;}
    .verdict-icon svg{width:26px;height:26px;}
    .verdict-desc{font-size:14.5px;}
    .sec-title{font-size:15.5px;}
    .feat{padding:13px 14px;}
    .feat-head .name{font-size:15.5px;}
    .feat-tip{font-size:14px;}
    .kw{font-size:13px;padding:1px 8px;}
    .raw-box{font-size:15.5px;line-height:1.95;padding:14px 15px;}
    .adv-list li{font-size:15px;padding:12px 14px 12px 50px;}
    .adv-list li::before{left:13px;top:11px;width:25px;height:25px;font-size:13px;}
    .action-grid{gap:10px;}
    .act{font-size:15px;padding:14px 10px;letter-spacing:.5px;}
    .bottom-tip{font-size:12.5px;}
    .bottom-call{font-size:13.5px;padding:8px 13px;}
  }

  .hidden{display:none !important;}
