/* 由 scrape/make_css.py 生成：官网样式 + 案例集样式。不要手改，改源头后重跑。 */
:root{
    --ink:#1A1B26;
    --ink-soft:#4B4A5E;
    --ink-faint:#8482996b;
    --paper:#F1F0F5;
    --paper-raised:#FFFFFF;
    --paper-sunken:#E7E5EF;
    --accent:#4B3FE4;
    --accent-strong:#382DBF;
    --accent-ink:#FFFFFF;
    --accent-soft:#EAE8FB;
    --gold:#B8802A;
    --gold-soft:#F5E8D2;
    --line:rgba(26,27,38,0.13);
    --line-strong:rgba(26,27,38,0.24);
    --good:#2E8B57;
    --good-soft:#DEF0E5;
    --warn:#C98A2E;
    --warn-soft:#F7E9D2;
    --bad:#C6433D;
    --bad-soft:#F8E1DF;
    --empty:#B9B7C6;
    --empty-soft:#E9E8EF;
    --shadow: 0 1px 2px rgba(26,27,38,0.06), 0 8px 24px -12px rgba(26,27,38,0.18);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#EEECF7;
      --ink-soft:#B2AFC6;
      --ink-faint:#8482996b;
      --paper:#131320;
      --paper-raised:#1C1C2B;
      --paper-sunken:#0E0E18;
      --accent:#9086FF;
      --accent-strong:#ADA4FF;
      --accent-ink:#14141F;
      --accent-soft:#26234A;
      --gold:#E3AC57;
      --gold-soft:#3A2E17;
      --line:rgba(238,236,247,0.14);
      --line-strong:rgba(238,236,247,0.28);
      --good:#4FBE84;
      --good-soft:#153224;
      --warn:#E3AC57;
      --warn-soft:#3A2E17;
      --bad:#E37872;
      --bad-soft:#3B1D1B;
      --empty:#57546C;
      --empty-soft:#1D1C2A;
      --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 32px -14px rgba(0,0,0,0.55);
    }
  }
  :root[data-theme="dark"]{
    --ink:#EEECF7;
    --ink-soft:#B2AFC6;
    --ink-faint:#8482996b;
    --paper:#131320;
    --paper-raised:#1C1C2B;
    --paper-sunken:#0E0E18;
    --accent:#9086FF;
    --accent-strong:#ADA4FF;
    --accent-ink:#14141F;
    --accent-soft:#26234A;
    --gold:#E3AC57;
    --gold-soft:#3A2E17;
    --line:rgba(238,236,247,0.14);
    --line-strong:rgba(238,236,247,0.28);
    --good:#4FBE84;
    --good-soft:#153224;
    --warn:#E3AC57;
    --warn-soft:#3A2E17;
    --bad:#E37872;
    --bad-soft:#3B1D1B;
    --empty:#57546C;
    --empty-soft:#1D1C2A;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 32px -14px rgba(0,0,0,0.55);
  }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Noto Sans SC","Noto Sans",system-ui,sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{ background:var(--accent); color:var(--accent-ink); }
  h1,h2,h3{
    font-family:"Noto Serif SC","Songti SC",serif;
    font-weight:900;
    line-height:1.22;
    text-wrap:balance;
    margin:0;
    letter-spacing:0.01em;
  }
  p{ margin:0; }
  a{ color:inherit; }
  .mono{ font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums; }
  .wrap{ max-width:1120px; margin:0 auto; padding:0 28px; }
  section{ padding:104px 0; }
  @media (max-width:720px){ section{ padding:72px 0; } .wrap{ padding:0 20px; } }

  .eyebrow{
    font-family:"IBM Plex Mono",monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--accent);
    display:inline-block;
    border-radius:1px;
    transform:rotate(45deg);
  }

  /* ---------- nav ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--paper) 86%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .scroll-progress{ position:absolute; left:0; bottom:-1px; height:2px; width:0%; background:linear-gradient(90deg, var(--accent), var(--gold)); transition:width .08s linear; }
  .navbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 0;
    position:relative;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-family:"Noto Serif SC",serif; font-weight:900; font-size:20px;
    letter-spacing:0.02em; text-decoration:none;
  }
  .brand .mark{
    width:26px; height:26px; border-radius:6px;
    background:linear-gradient(155deg, var(--accent), var(--accent-strong));
    display:grid; place-items:center;
    box-shadow:var(--shadow);
    flex-shrink:0;
  }
  .brand .mark svg{ width:14px; height:14px; }
  nav.links{ display:flex; gap:32px; font-size:14.5px; color:var(--ink-soft); }
  nav.links a{ text-decoration:none; transition:color .15s; position:relative; padding-bottom:3px; }
  nav.links a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:var(--accent); transition:right .2s ease; }
  nav.links a:hover{ color:var(--ink); }
  nav.links a.active{ color:var(--ink); }
  nav.links a.active::after{ right:0; }
  @media (max-width:760px){ nav.links{ display:none; } }

  .nav-dropdown{ position:relative; }
  .nav-parent{ cursor:default; user-select:none; }
  .nav-dropdown-menu{
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    padding-top:12px; display:none; flex-direction:column; z-index:50;
  }
  .nav-dropdown-menu-inner{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:10px;
    box-shadow:var(--shadow); padding:8px; display:flex; flex-direction:column; gap:2px; min-width:172px;
  }
  .nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu{ display:flex; }
  .nav-dropdown-menu a{ padding:9px 12px; border-radius:6px; white-space:nowrap; font-size:13.5px; }
  .nav-dropdown-menu a::after{ content:none; }
  .nav-dropdown-menu a:hover{ background:var(--paper-sunken); color:var(--ink); }
  .nav-dropdown-menu a.active{ color:var(--accent); background:var(--accent-soft); }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:11px 20px; border-radius:8px;
    font-size:14.5px; font-weight:600;
    text-decoration:none; cursor:pointer;
    border:1px solid transparent;
    transition:transform .12s ease, box-shadow .12s ease, background .15s ease;
  }
  .btn:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
  .btn-primary{ background:var(--accent); color:var(--accent-ink); box-shadow:var(--shadow); }
  .btn-primary:hover{ background:var(--accent-strong); transform:translateY(-1px); }
  .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
  .btn-ghost:hover{ border-color:var(--accent); color:var(--accent); }

  /* ---------- reveal-on-scroll ---------- */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

  /* ---------- hero ---------- */
  .hero{ padding:88px 0 40px; position:relative; overflow:hidden; }
  .hero-ambient{ position:absolute; inset:-20% -10% auto -10%; height:640px; z-index:0; pointer-events:none; filter:blur(64px); opacity:0.5; }
  .hero-ambient span{ position:absolute; border-radius:50%; }
  .hero-ambient span:nth-child(1){ width:420px; height:420px; left:2%; top:-8%; background:var(--accent); opacity:0.22; animation:drift1 22s ease-in-out infinite; }
  .hero-ambient span:nth-child(2){ width:340px; height:340px; right:6%; top:6%; background:var(--gold); opacity:0.16; animation:drift2 26s ease-in-out infinite; }
  .hero-ambient span:nth-child(3){ width:280px; height:280px; left:38%; top:18%; background:var(--accent-strong); opacity:0.14; animation:drift3 30s ease-in-out infinite; }
  @keyframes drift1{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(40px,30px); } }
  @keyframes drift2{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-36px,24px); } }
  @keyframes drift3{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(24px,-28px); } }
  @media (prefers-reduced-motion: reduce){ .hero-ambient span{ animation:none; } }
  .hero > .wrap{ position:relative; z-index:1; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
  @media (max-width:920px){ .hero-grid{ grid-template-columns:1fr; } }
  .hero h1{ font-size:clamp(30px,4.4vw,50px); margin-top:18px; }
  .hero .lede{ font-size:17px; color:var(--ink-soft); max-width:46ch; margin-top:20px; }
  .hero-ctas{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }

  .funnel-card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:var(--shadow);
    padding:26px 24px 22px;
  }
  .funnel-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:18px; }
  .funnel-head .t{ font-weight:700; font-size:14.5px; }
  .funnel-head .s{ font-size:12px; color:var(--ink-faint); }
  .funnel{ display:flex; flex-direction:column; }
  .fnode{ display:flex; align-items:center; gap:14px; padding:10px 0; }
  .fnode .dot{ width:9px; height:9px; border-radius:50%; background:var(--accent); flex-shrink:0; }
  .fnode.dim .dot{ background:var(--empty); }
  .fnode .label{ flex:1; font-size:14px; color:var(--ink-soft); }
  .fnode .num{ font-size:19px; font-weight:600; min-width:44px; text-align:right; }
  .fnode.dim .num{ color:var(--ink-faint); }
  .fconnect{ width:9px; margin-left:0; height:16px; border-left:1.5px dashed var(--line-strong); margin-left:4.5px; }
  .funnel-foot{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-faint); }

  /* ---------- watch / promo video ---------- */
  .watch{ padding-top:8px; }
  .video-frame{
    margin-top:44px; position:relative; border-radius:18px; overflow:hidden;
    box-shadow:var(--shadow); border:1px solid var(--line); background:#0B0B12;
  }
  .video-frame::before{
    content:""; position:absolute; inset:-1px; border-radius:19px; padding:1px;
    background:linear-gradient(135deg, var(--accent), transparent 40%, transparent 60%, var(--gold));
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none; opacity:0.5;
  }
  .video-frame video{ display:block; width:100%; aspect-ratio:16/9; background:#000; }

  /* ---------- pain points ---------- */
  .pains{ background:var(--paper-sunken); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .pain-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-top:44px; }
  @media (max-width:820px){ .pain-grid{ grid-template-columns:1fr; } }
  .pain{ background:var(--paper-raised); padding:30px 26px; }
  .pain .k{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--bad); font-weight:600; }
  .pain p{ margin-top:10px; font-size:15px; color:var(--ink); }
  .thesis{ margin-top:40px; font-family:"Noto Serif SC",serif; font-weight:700; font-size:22px; color:var(--ink); max-width:60ch; }
  .thesis em{ font-style:normal; color:var(--accent); }

  /* ---------- section headers ---------- */
  .shead{ max-width:64ch; }
  .shead h2{ font-size:clamp(24px,3.2vw,34px); margin-top:14px; }
  .shead .lede{ margin-top:14px; color:var(--ink-soft); font-size:15.5px; }

  /* ---------- modules ---------- */
  .mod-grid{ display:flex; flex-direction:column; gap:20px; margin-top:52px; }
  .mod{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:16px;
    padding:32px 30px; box-shadow:var(--shadow);
    display:grid; grid-template-columns:1.2fr 1fr; gap:36px;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .mod:hover{ transform:translateY(-3px); border-color:var(--line-strong); box-shadow:0 1px 2px rgba(26,27,38,0.06), 0 20px 40px -18px rgba(75,63,228,0.28); }
  .edge{ margin-top:2px; display:flex; gap:8px; align-items:flex-start; padding:10px 12px; background:var(--accent-soft); border-radius:9px; }
  .edge .tag{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:0.06em; flex-shrink:0; margin-top:1px; }
  .edge .et{ font-size:12.5px; color:var(--ink-soft); }
  @media (max-width:820px){ .mod{ grid-template-columns:1fr; padding:26px 22px; } }
  .mod-main{ display:flex; flex-direction:column; gap:14px; }
  .mod-top{ display:flex; align-items:baseline; gap:12px; }
  .mod-num{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint); }
  .mod h3{ font-size:20px; }
  .mod .desc{ font-size:14.5px; color:var(--ink-soft); }
  .mod-side{ display:flex; flex-direction:column; gap:18px; justify-content:center; border-left:1px solid var(--line); padding-left:32px; }
  @media (max-width:820px){ .mod-side{ border-left:none; padding-left:0; padding-top:22px; border-top:1px solid var(--line); } }
  .mod-visual{ }
  .visual-cap{ margin-top:16px; font-size:12px; color:var(--ink-faint); text-align:center; line-height:1.5; }
  .visual-stats{ margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
  .vstat{ font-family:"IBM Plex Mono",monospace; font-size:11px; padding:5px 10px; border-radius:7px; background:var(--paper-sunken); color:var(--ink-soft); white-space:nowrap; }
  .vstat b{ color:var(--ink); font-weight:700; }
  .vstat.on b{ color:var(--good); }
  .vstat.warn b{ color:var(--warn); }
  .vstat.bad b{ color:var(--bad); }

  .hl-list{ display:flex; flex-direction:column; gap:12px; }
  .hl-item{ display:flex; gap:10px; align-items:flex-start; }
  .hl-item .sq{ width:6px; height:6px; border-radius:1.5px; background:var(--gold); margin-top:8px; flex-shrink:0; transform:rotate(45deg); }
  .hl-item .txt{ font-size:13.5px; color:var(--ink-soft); }
  .hl-item .txt b{ color:var(--ink); font-weight:700; }
  .hl-item .txt .term{ font-family:"IBM Plex Mono",monospace; font-weight:600; color:var(--gold); font-size:12.5px; letter-spacing:0.01em; }

  /* module 1: steps */
  .steps{ display:flex; align-items:center; gap:6px; }
  .step{ flex:1; text-align:center; }
  .step .n{ width:26px; height:26px; margin:0 auto 6px; border-radius:50%; background:var(--accent-soft); color:var(--accent); font-family:"IBM Plex Mono",monospace; font-size:11px; display:grid; place-items:center; font-weight:600; }
  .step .l{ font-size:11px; color:var(--ink-faint); }
  .step-line{ height:1.5px; background:var(--line-strong); flex:0 0 18px; margin-top:-18px; }

  /* module 2: chat aggregation */
  .chat-stack{ display:flex; flex-direction:column; gap:7px; }
  .chat-row{ display:flex; align-items:center; gap:9px; }
  .chat-avatar{ width:20px; height:20px; border-radius:5px; background:var(--paper-sunken); flex-shrink:0; }
  .chat-bar{ height:9px; border-radius:5px; background:var(--paper-sunken); flex:1; }
  .chat-row.hi .chat-bar{ background:var(--accent-soft); }
  .chat-row.hi .chat-avatar{ background:var(--accent); }

  /* module 3: reply bars */
  .bars{ display:flex; align-items:flex-end; gap:6px; height:64px; }
  .bar{ flex:1; background:var(--paper-sunken); border-radius:3px 3px 0 0; position:relative; }
  .bar.peak{ background:var(--gold); }
  .bars-labels{ display:flex; gap:6px; margin-top:6px; }
  .bars-labels span{ flex:1; text-align:center; font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--ink-faint); }

  /* module 4: mini brick */
  .mini-brick{ display:grid; grid-template-columns:repeat(8,1fr); gap:4px; }
  .mini-brick i{ display:block; padding-top:100%; border-radius:2.5px; }

  /* ---------- positioning archetypes ---------- */
  .arch-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }
  @media (max-width:920px){ .arch-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:560px){ .arch-grid{ grid-template-columns:1fr; } }
  .arch{ padding:24px 20px; border-radius:14px; border:1px solid var(--line); background:var(--paper-raised); }
  .arch .n{ font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-faint); }
  .arch h4{ font-family:"Noto Sans SC",sans-serif; font-weight:700; font-size:15.5px; margin-top:8px; }
  .arch p{ font-size:12.5px; color:var(--ink-soft); margin-top:9px; }
  .arch.us{ background:linear-gradient(165deg, var(--accent-soft), var(--paper-raised)); border-color:var(--accent); position:relative; }
  .arch.us::before{ content:"AKKE 的选择"; position:absolute; top:-11px; left:20px; background:var(--accent); color:var(--accent-ink); font-size:10.5px; font-weight:700; padding:3px 10px; border-radius:999px; letter-spacing:0.03em; }
  .arch.us h4{ color:var(--accent); }

  /* ---------- moat callout ---------- */
  .moat{ margin-top:34px; display:flex; gap:16px; align-items:flex-start; padding:20px 22px; border-radius:12px; background:var(--gold-soft); border:1px solid color-mix(in srgb, var(--gold) 40%, transparent); }
  .moat .glyph{ font-family:"IBM Plex Mono",monospace; font-weight:700; color:var(--gold); font-size:13px; flex-shrink:0; }
  .moat p{ font-size:13.5px; color:var(--ink); }

  /* ---------- brain section ---------- */
  .brain{ background:var(--paper-sunken); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .brain-layout{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:52px; align-items:start; margin-top:48px; }
  @media (max-width:920px){ .brain-layout{ grid-template-columns:1fr; } }
  .brain-side{ position:sticky; top:96px; }
  @media (max-width:920px){ .brain-side{ position:static; } }
  .legend{ display:flex; flex-direction:column; gap:12px; margin-top:6px; }
  .legend-item{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-soft); }
  .legend-swatch{ width:13px; height:13px; border-radius:3px; flex-shrink:0; }
  .brain-note{ margin-top:26px; font-size:13.5px; color:var(--ink-faint); border-left:2px solid var(--line-strong); padding-left:14px; max-width:40ch; }

  .brick-wall{ display:grid; grid-template-columns:repeat(8,1fr); gap:7px; }
  .brick{
    aspect-ratio:1.5; border-radius:5px; position:relative; cursor:default;
    display:flex; align-items:flex-end; padding:6px;
    font-family:"IBM Plex Mono",monospace; font-size:9.5px; font-weight:600;
    opacity:0; transform:translateY(6px);
    transition:opacity .5s ease, transform .5s ease;
  }
  .brick.show{ opacity:1; transform:translateY(0); }
  .brick.good{ background:var(--good-soft); color:var(--good); }
  .brick.warn{ background:var(--warn-soft); color:var(--warn); }
  .brick.bad{ background:var(--bad-soft); color:var(--bad); }
  .brick.empty{ background:var(--empty-soft); color:var(--empty); }
  .cat-label{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--ink-faint); margin:16px 0 7px; grid-column:1/-1; }
  .cat-label:first-child{ margin-top:0; }

  /* ---------- workflow ---------- */
  .flow{ display:flex; align-items:center; gap:0; margin-top:52px; }
  @media (max-width:760px){ .flow{ flex-direction:column; align-items:stretch; } }
  .flow-node{ flex:1; background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:24px 22px; box-shadow:var(--shadow); }
  .flow-node .mono{ font-size:11.5px; color:var(--accent); }
  .flow-node h3{ font-size:17px; margin-top:8px; font-family:"Noto Sans SC",sans-serif; font-weight:700; }
  .flow-node p{ font-size:13.5px; color:var(--ink-soft); margin-top:8px; }
  .flow-arrow{ flex:0 0 40px; text-align:center; color:var(--ink-faint); font-size:18px; }
  @media (max-width:760px){ .flow-arrow{ transform:rotate(90deg); padding:6px 0; } }

  /* ---------- fit ---------- */
  .fit-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:36px; }
  .chip{ padding:8px 16px; border-radius:999px; border:1px solid var(--line-strong); font-size:13.5px; color:var(--ink-soft); }

  /* ---------- cta ---------- */
  .cta-band{ background:linear-gradient(155deg, var(--accent), var(--accent-strong)); color:var(--accent-ink); border-radius:22px; padding:56px 48px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
  @media (max-width:760px){ .cta-band{ flex-direction:column; align-items:flex-start; padding:40px 28px; } }
  .cta-band h2{ font-size:clamp(22px,3vw,30px); color:var(--accent-ink); max-width:22ch; }
  .cta-band .lede{ margin-top:10px; opacity:0.86; font-size:14.5px; max-width:44ch; }
  .cta-band .btn-primary{ background:var(--accent-ink); color:var(--accent-strong); }
  .cta-band .btn-primary:hover{ background:var(--accent-ink); opacity:0.92; }

  /* ---------- footer ---------- */
  footer{ border-top:1px solid var(--line); padding:44px 0; }
  .foot-grid{ display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; font-size:13px; color:var(--ink-faint); }
  .foot-grid a{ color:var(--ink-soft); text-decoration:none; }
  .foot-grid a:hover{ color:var(--accent); }

  @media (prefers-reduced-motion: reduce){
    .brick{ transition:none; }
  }

  /* ---------- page routing ---------- */
  .page{ display:none; }
  .page.active{ display:block; }

  /* ---------- detail pages ---------- */
  .detail-hero{ padding:64px 0 8px; }
  .back-link{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--ink-faint); text-decoration:none; margin-bottom:22px; transition:color .15s; }
  .back-link:hover{ color:var(--accent); }
  .detail-hero h1{ font-size:clamp(28px,4.2vw,44px); margin-top:14px; }
  .detail-hero .lede{ margin-top:16px; color:var(--ink-soft); font-size:16px; max-width:58ch; }

  .compare-list{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-top:40px; }
  .compare-row{ display:grid; grid-template-columns:1fr 1fr; }
  @media (max-width:760px){ .compare-row{ grid-template-columns:1fr; } }
  .compare-cell{ padding:20px 24px; background:var(--paper-raised); font-size:13.5px; color:var(--ink-soft); line-height:1.65; }
  .compare-cell.us{ background:var(--accent-soft); color:var(--ink); }
  .compare-label{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:8px; display:block; color:var(--ink-faint); }
  .compare-cell.us .compare-label{ color:var(--accent); }

  /* ---------- rule / filter mockup panels ---------- */
  .rule-panel{ margin-top:40px; background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:28px 26px; box-shadow:var(--shadow); }
  .rule-panel-head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
  .rule-panel-head h3{ font-size:16px; font-family:"Noto Sans SC",sans-serif; font-weight:700; }
  .rule-panel-head .tag{ font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-faint); }
  .rule-list{ display:flex; flex-direction:column; gap:10px; }
  .rule-item{ display:flex; align-items:center; gap:12px; font-size:13.5px; color:var(--ink-soft); padding:12px 16px; background:var(--paper-sunken); border-radius:9px; }
  .rule-item .check{ width:19px; height:19px; border-radius:5px; background:var(--good-soft); color:var(--good); display:grid; place-items:center; font-size:11px; flex-shrink:0; font-weight:700; }
  .rule-trigger{ margin-top:14px; padding:13px 16px; border-radius:9px; background:var(--accent-soft); font-size:13px; color:var(--ink); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .rule-trigger .arrow{ color:var(--accent); font-weight:700; font-family:"IBM Plex Mono",monospace; }
  .filter-row{ display:flex; flex-wrap:wrap; gap:10px; }
  .filter-tag{ display:flex; align-items:center; gap:7px; padding:9px 15px; border-radius:999px; background:var(--paper-sunken); font-size:13px; color:var(--ink-soft); }
  .filter-tag b{ color:var(--ink); font-weight:700; }
  .filter-result{ margin-top:16px; display:flex; align-items:center; gap:10px; font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--ink-soft); }
  .filter-result .n{ color:var(--accent); font-weight:700; font-size:16px; }
  .filter-result .arrow{ color:var(--ink-faint); }

  /* ---------- home module teasers ---------- */
  .teaser-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:52px; }
  @media (max-width:820px){ .teaser-grid{ grid-template-columns:1fr; } }
  .teaser{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:16px;
    padding:28px 26px; box-shadow:var(--shadow); text-decoration:none; color:inherit;
    display:flex; flex-direction:column; gap:12px;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .teaser:hover{ transform:translateY(-3px); border-color:var(--line-strong); box-shadow:0 1px 2px rgba(26,27,38,0.06), 0 20px 40px -18px rgba(75,63,228,0.28); }
  .teaser-top{ display:flex; align-items:baseline; gap:12px; }
  .teaser h3{ font-size:19px; }
  .teaser .desc{ font-size:13.5px; color:var(--ink-soft); }
  .teaser .go{ margin-top:auto; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--accent); font-weight:600; }

  /* ---------- detail page: intro copy / mockup frame / linkage ---------- */
  .intro-copy{ margin-top:26px; font-size:15px; line-height:1.85; color:var(--ink-soft); max-width:74ch; }
  .mockup-frame{ margin-top:40px; border-radius:16px; border:1px solid var(--line); background:var(--paper-raised); box-shadow:var(--shadow); overflow:hidden; }
  .mockup-bar{ display:flex; align-items:center; gap:6px; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--paper-sunken); }
  .mockup-dot{ width:9px; height:9px; border-radius:50%; background:var(--line-strong); }
  .mockup-title{ margin-left:8px; font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-faint); }
  .mockup-body{ padding:34px 36px; }
  .mockup-cap{ padding:11px 16px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-faint); text-align:center; }
  .link-copy{ margin-top:26px; font-size:14px; line-height:1.85; color:var(--ink-soft); max-width:74ch; }
  .video-note{ margin-top:12px; font-size:11.5px; color:var(--ink-faint); text-align:center; }

  /* ---------- mockup app shell ---------- */
  .mockup-app{ display:flex; }
  .mockup-sidebar{ width:152px; flex-shrink:0; border-right:1px solid var(--line); background:var(--paper-sunken); padding:18px 10px; display:flex; flex-direction:column; gap:3px; }
  .mockup-sidebar-item{ padding:9px 11px; border-radius:8px; font-size:12px; color:var(--ink-faint); white-space:nowrap; }
  .mockup-sidebar-item.active{ background:var(--accent-soft); color:var(--accent); font-weight:600; }
  .mockup-content{ flex:1; padding:28px 30px; min-width:0; }
  @media (max-width:640px){ .mockup-app{ flex-direction:column; } .mockup-sidebar{ width:auto; flex-direction:row; overflow-x:auto; border-right:none; border-bottom:1px solid var(--line); } }

  /* ---------- lead / comment list (douyin) ---------- */
  .lead-row{ display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); }
  .lead-row:last-child{ border-bottom:none; }
  .lead-avatar{ width:30px; height:30px; border-radius:50%; background:var(--paper-raised); border:1px solid var(--line); flex-shrink:0; }
  .lead-main{ flex:1; min-width:0; }
  .lead-name{ font-size:11px; color:var(--ink-faint); }
  .lead-text{ height:8px; border-radius:4px; background:var(--paper-raised); margin-top:6px; }
  .lead-row.hi .lead-text{ background:var(--accent-soft); }
  .lead-tag{ font-family:"IBM Plex Mono",monospace; font-size:10px; padding:4px 9px; border-radius:999px; flex-shrink:0; background:var(--paper-raised); color:var(--ink-faint); border:1px solid var(--line); }
  .lead-row.hi .lead-tag{ background:var(--good-soft); color:var(--good); border-color:transparent; }

  /* ---------- pipeline cards (video) ---------- */
  .pipe-row{ display:flex; align-items:center; }
  .pipe-card{ flex:1; background:var(--paper-sunken); border-radius:10px; padding:16px 10px; text-align:center; }
  .pipe-card .pipe-n{ font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--ink-faint); }
  .pipe-card .pipe-l{ font-size:12.5px; font-weight:600; margin-top:4px; }
  .pipe-card.done{ background:var(--good-soft); }
  .pipe-card.done .pipe-l{ color:var(--good); }
  .pipe-card.now{ background:var(--accent-soft); }
  .pipe-card.now .pipe-l{ color:var(--accent); }
  .pipe-arrow{ flex:0 0 18px; text-align:center; color:var(--ink-faint); font-size:13px; }

  /* ---------- chat bubbles (wechat) ---------- */
  .bubble-row{ display:flex; margin-bottom:12px; }
  .bubble-row.me{ justify-content:flex-end; }
  .bubble{ max-width:72%; padding:10px 14px; border-radius:12px; font-size:12px; line-height:1.5; color:var(--ink-soft); background:var(--paper-sunken); }
  .bubble-row.me .bubble{ background:var(--accent-soft); color:var(--ink); border-bottom-right-radius:3px; }
  .bubble-row:not(.me) .bubble{ border-bottom-left-radius:3px; }
  .bubble-src{ display:block; margin-top:6px; font-family:"IBM Plex Mono",monospace; font-size:10px; color:var(--accent); }

  /* ---------- device cards (personal) ---------- */
  .device-row{ display:flex; gap:12px; flex-wrap:wrap; }
  .device-card{ flex:1; min-width:130px; background:var(--paper-sunken); border-radius:12px; padding:16px; }
  .device-card .dn{ font-size:13px; font-weight:700; }
  .device-card .dstatus{ margin-top:8px; display:flex; align-items:center; gap:6px; font-size:11px; color:var(--good); }
  .device-card .ddot{ width:7px; height:7px; border-radius:50%; background:var(--good); }
  .device-card.warn .dstatus{ color:var(--warn); }
  .device-card.warn .ddot{ background:var(--warn); }

.crumb{font-size:13px;color:var(--ink-faint);padding:22px 0 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.crumb a{color:var(--ink-soft);text-decoration:none;}
.crumb a:hover{color:var(--accent);}
.crumb .sep{opacity:.5;}
.refnote{margin-top:40px;padding:18px 20px;border-radius:12px;background:var(--paper-sunken);font-size:12.5px;line-height:1.75;color:var(--ink-soft);}
.refnote strong{color:var(--ink);}
.shot{margin-top:18px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper-raised);box-shadow:var(--shadow);}
.shot img{display:block;width:100%;height:auto;}
.shot figcaption{padding:11px 16px;font-size:12.5px;color:var(--ink-faint);border-top:1px solid var(--line);}
.reflist{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;margin-top:30px;}
.refcard{display:block;text-decoration:none;color:inherit;background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);}
a.refcard:hover{border-color:var(--accent);}
.refcard .cat{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--accent);letter-spacing:.06em;}
.refcard h3{font-size:16.5px;margin:9px 0 0;font-family:"Noto Sans SC",sans-serif;font-weight:700;line-height:1.35;}
.refcard .meta{font-size:12px;color:var(--ink-faint);margin-top:5px;}
.refcard p{font-size:13px;color:var(--ink-soft);margin-top:11px;line-height:1.65;}
.refcard .go{display:inline-block;margin-top:13px;font-size:12.5px;color:var(--accent);font-weight:600;}
.refcard .soon{display:inline-block;margin-top:13px;font-size:12.5px;color:var(--ink-faint);}
.vtab{width:100%;border-collapse:collapse;margin-top:20px;font-size:13.5px;}
.vtab th,.vtab td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);vertical-align:top;}
.vtab th{font-size:11.5px;letter-spacing:.05em;color:var(--ink-faint);font-weight:600;text-transform:uppercase;}
.vtab td.n{font-family:"IBM Plex Mono",monospace;color:var(--ink);white-space:nowrap;}
.vtab tr.key td{background:var(--accent-soft);}
.vtab tr.key td.n{color:var(--accent);font-weight:600;}
.tscroll{overflow-x:auto;}
.layout{display:grid;grid-template-columns:186px 1fr;gap:44px;margin-top:30px;align-items:start;}
.side{position:sticky;top:24px;}
.sidet{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.09em;color:var(--ink-faint);margin-bottom:12px;}
.side a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;
  text-decoration:none;color:var(--ink-soft);font-size:13.5px;border:1px solid transparent;}
.side a:hover{background:var(--paper-raised);border-color:var(--line);color:var(--ink);}
.side .cc{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--ink-faint);}
.side .side-rej{margin-top:14px;border-top:1px dashed var(--line);border-radius:0 0 9px 9px;padding-top:12px;}
.side .side-rej:hover{border-top-color:var(--line);}
.rejview{display:none;scroll-margin-top:20px;}
.rejview:target{display:block;}
.main:has(.rejview:target) .catsec{display:none;}
.rejview .rej-back{display:inline-block;font-size:13px;color:var(--ink-soft);text-decoration:none;margin-bottom:18px;}
.rejview .rej-back:hover{color:var(--accent);}
.catsec{scroll-margin-top:20px;}
.catsec+.catsec{margin-top:44px;}
.cath{font-size:15px;margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line);color:var(--accent);
  font-family:"IBM Plex Mono",monospace;letter-spacing:.06em;font-weight:600;}
.acct{display:grid;grid-template-columns:184px minmax(0,1fr) 236px;gap:22px;align-items:start;
  background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;padding:18px;
  box-shadow:var(--shadow);margin-bottom:16px;}
.poster{display:block;border-radius:10px;overflow:hidden;background:var(--paper-sunken);line-height:0;}
.poster img{width:100%;height:auto;display:block;transition:transform .2s;}
.poster:hover img{transform:scale(1.03);}
.info h3{font-size:17px;margin:0;line-height:1.35;}
.cath .ind-link{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;margin-left:10px;font-family:"Noto Sans SC",sans-serif;}
.cath .ind-link:hover{text-decoration:underline;}
.cath .cat-name{color:inherit;text-decoration:none;}
.cath .cat-name:hover{text-decoration:underline;}
.info h3 a{color:inherit;text-decoration:none;}
.info h3 a:hover{color:var(--accent);}
.info .sub{font-size:12px;color:var(--ink-faint);margin-top:5px;}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;}
.chips .ch{font-size:11.5px;color:var(--ink-soft);background:var(--paper-sunken);padding:4px 9px;border-radius:999px;}
.chips .ch b{color:var(--ink);font-weight:700;}
.info .note{font-size:13px;color:var(--ink-soft);line-height:1.65;margin:12px 0 0;}
.info .go{display:inline-block;margin-top:12px;font-size:12.5px;font-weight:600;color:var(--accent);text-decoration:none;}
.top3 .t3h{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.07em;color:var(--ink-faint);margin-bottom:9px;}
.t3row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.t3{position:relative;display:block;border-radius:8px;overflow:hidden;background:var(--paper-sunken);line-height:0;
  border:1px solid var(--line);}
.t3 img{width:100%;aspect-ratio:9/12;object-fit:cover;display:block;}
.t3:hover{border-color:var(--accent);}
.t3n{position:absolute;left:5px;bottom:5px;color:#fff;font-family:"IBM Plex Mono",monospace;font-size:10.5px;
  text-shadow:0 1px 4px rgba(0,0,0,.7);line-height:1.2;}
@media (max-width:1100px){
  .layout{grid-template-columns:1fr;gap:22px;}
  .side{position:static;display:flex;flex-wrap:wrap;gap:8px;}
  .side .side-rej{margin-top:0;flex-basis:100%;border-top:1px solid var(--line);border-radius:9px;padding-top:9px;}
  .side a{border:1px solid var(--line);}
  .acct{grid-template-columns:140px minmax(0,1fr);}
  .top3{grid-column:1/-1;}
}
/* 手机：海报缩到左边一小列，名字 / 数据在右，说明和流量前三整行放下面。
   以前整卡变一列，海报撑满屏宽（400px 的图放大 2.6 倍，糊），一个号就占一整屏 */
@media (max-width:620px){
  .acct{grid-template-columns:104px minmax(0,1fr);gap:10px 14px;padding:14px;}
  .acct .poster{grid-row:1 / span 3;align-self:start;}
  .acct .info{display:contents;}
  .acct .info h3,.acct .info .sub,.acct .info .chips{grid-column:2;}
  .acct .info .sub{margin-top:0;}
  .acct .info .chips{margin-top:0;align-self:start;}
  .acct .info .note,.acct .info .go{grid-column:1 / -1;margin-top:0;}
  .acct .info .ch{font-size:11.5px;padding:3px 8px;}
}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:18px;margin-top:26px;}
.vcard{display:block;background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);transition:border-color .15s,transform .15s;}
.vcard:hover{border-color:var(--accent);transform:translateY(-2px);}
.vlink{display:block;text-decoration:none;color:inherit;}
.vcard.relabeled{border-color:var(--good);box-shadow:0 0 0 1px var(--good) inset;}
.vfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 13px;}
.vrelabel{appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink-faint);font:inherit;font-size:11px;padding:3px 8px;border-radius:6px;cursor:pointer;transition:color .15s,border-color .15s;}
.vrelabel:hover{color:var(--accent);border-color:var(--accent);}
.vcard.relabeled .vrelabel{color:var(--good);border-color:var(--good);}
/* 重标注浮层 */
.rl-mask{position:fixed;inset:0;background:rgba(0,0,0,.42);display:none;align-items:center;justify-content:center;padding:20px;z-index:60;}
.rl-mask.on{display:flex;}
.rl-box{background:var(--paper-raised);border:1px solid var(--line);border-radius:16px;max-width:460px;width:100%;max-height:88vh;overflow:auto;padding:22px;box-shadow:0 18px 50px rgba(0,0,0,.22);}
.rl-box h4{font-size:15px;margin:0 0 4px;line-height:1.5;}
.rl-cur{font-size:11.5px;color:var(--ink-faint);line-height:1.7;margin-bottom:14px;}
.rl-lab{font-size:11.5px;font-weight:700;color:var(--ink-soft);margin:14px 0 7px;}
.rl-row{display:flex;gap:7px;flex-wrap:wrap;}
.rl-row button{appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;padding:6px 12px;border-radius:8px;cursor:pointer;}
.rl-row button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
.rl-row.dim{opacity:.4;pointer-events:none;}
.rl-box input{width:100%;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper-sunken);font:inherit;font-size:12.5px;color:var(--ink);}
.rl-act{display:flex;gap:8px;margin-top:18px;}
.rl-act button{flex:1;appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:600;padding:9px;border-radius:9px;cursor:pointer;}
.rl-act button.pri{background:var(--accent);border-color:var(--accent);color:#fff;}
.rl-act button.del{color:var(--bad);}
/* 底部统计条 */
.rl-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:none;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:12.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:55;max-width:calc(100vw - 32px);}
.rl-bar.on{display:flex;}
.rl-bar button{appearance:none;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:inherit;font-size:12px;padding:4px 10px;border-radius:999px;cursor:pointer;white-space:nowrap;}
.rl-bar button.pri{background:#fff;color:var(--ink);font-weight:700;border-color:#fff;}
.vthumb{position:relative;aspect-ratio:9/13;background:var(--paper-sunken);overflow:hidden;}
.vthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.vstat2{display:flex;align-items:center;gap:8px;margin-top:8px;}
.vstat2 .like{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--ink-soft);}
.vstat2 .vproj{background:var(--gold-soft);color:var(--gold);font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:4px;}
.vstat2 .sig{background:var(--good-soft);color:var(--good);font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;}
.vtags{font-size:10.5px;color:var(--ink-faint);margin-top:6px;line-height:1.5;word-break:break-all;}
.vstat2{flex-wrap:wrap;}
.vstat2 .pin{background:var(--accent-soft);color:var(--accent);font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:4px;}
.vstat2 .ty{background:var(--ink);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;}
.vstat2 .ty.tydim{background:transparent;color:var(--ink-soft);border:1px dashed var(--line);font-weight:600;}
.vmeta{padding:0 14px 0;}
.vlink .vtitle{padding:13px 14px 0;}
.vtitle{font-size:13.5px;font-weight:700;line-height:1.45;color:var(--ink);}
.vcover{font-size:11.5px;color:var(--ink-faint);margin-top:8px;line-height:1.55;}
.vgo{display:inline-block;margin-top:10px;font-size:11.5px;color:var(--accent);font-weight:600;}
.cmp{margin-top:28px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper-raised);box-shadow:var(--shadow);}
.cmp table{width:100%;border-collapse:collapse;font-size:13.5px;}
.cmp th,.cmp td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);}
.cmp tr:last-child td{border-bottom:none;}
.cmp th{font-size:11.5px;letter-spacing:.05em;color:var(--ink-faint);font-weight:600;}
.cmp td.n{font-family:"IBM Plex Mono",monospace;white-space:nowrap;}
.cmp .track{height:8px;border-radius:4px;background:var(--paper-sunken);position:relative;min-width:110px;}
.cmp .fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--accent);}
.cmp a{color:inherit;text-decoration:none;font-weight:600;}
.cmp a:hover{color:var(--accent);}
.vgroup{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--accent);letter-spacing:.07em;margin-top:34px;}
.rv-pend{display:inline-block;vertical-align:3px;margin-left:6px;font-family:"Noto Sans SC",sans-serif;font-size:11px;font-weight:700;color:var(--gold);background:var(--gold-soft);padding:2px 8px;border-radius:999px;}
.rv-box{margin-top:22px;padding:16px 18px;border:1px dashed var(--gold);border-radius:12px;background:var(--gold-soft);max-width:720px;}
.rv-box h4{margin:0;font-size:14px;color:var(--ink);}
.rv-box p{margin:6px 0 0;font-size:12.5px;color:var(--ink-soft);line-height:1.7;}
.rv-box .rl-row{margin-top:12px;}
.rv-box input{width:100%;margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper-raised);font:inherit;font-size:12.5px;color:var(--ink);}
.rv-box .rv-act{display:flex;gap:10px;align-items:center;margin-top:12px;}
.rv-box .rv-act button{appearance:none;border:0;background:var(--accent);color:#fff;font:inherit;font-size:13px;font-weight:600;padding:8px 16px;border-radius:9px;cursor:pointer;}
.rv-box .rv-act button:disabled{opacity:.5;cursor:default;}
.rv-box .rv-msg{font-size:12px;color:var(--ink-soft);}
