/* ============================================================
   Influencer Finder 全站样式（对接 FastAdmin 前台）
   视觉规范与 tiktok_influencer_finder_static.html 一致
   ============================================================ */

* { box-sizing: border-box; }

:root{
  --bg:#f4f6fb;
  --card:#ffffff;
  --text:#172033;
  --muted:#6f7b91;
  --line:#e7eaf1;
  --primary:#6c5ce7;
  --primary2:#8d7ff0;
  --accent:#ff6b9d;
  --success:#18a66a;
  --warning:#f59e0b;
  --danger:#ef4444;
  --dark:#20283a;
  --glow:rgba(108,92,231,.28);
}

html,body.finder{
  margin:0;
  padding:0;
  height:auto;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  background:
    radial-gradient(1200px 620px at 12% -8%, rgba(108,92,231,.10), transparent 58%),
    radial-gradient(900px 520px at 92% 8%, rgba(255,107,157,.08), transparent 52%),
    var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  overflow-y:auto;
}
body.finder{
  min-height:100vh;
  padding-top:0;
}

button, input, select { font: inherit; }

/* ---------------- 应用壳：侧栏 + 主区 ---------------- */
.finder-app{ display:flex; min-height:100vh; position:relative; z-index:1; }

.finder-sidebar{
  width:220px;
  background:linear-gradient(180deg,#1c2140 0%,#171b2e 42%,#121526 100%);
  color:#fff;
  padding:26px 16px;
  position:fixed;
  inset:0 auto 0 0;
  display:flex;
  flex-direction:column;
  z-index:10;
  box-shadow:8px 0 32px rgba(18,16,40,.18);
  overflow:hidden;
}
.finder-sidebar::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:140px;
  background:radial-gradient(90% 90% at 18% 0%, rgba(157,140,255,.28), transparent 70%);
  pointer-events:none;
}
.finder-logo-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  padding:0 8px 26px;
}
.finder-logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  font-weight:800;
  padding:0;
  letter-spacing:.4px;
  min-width:0;
  flex:1;
}
a.finder-logo{
  color:#fff;
  text-decoration:none;
}
a.finder-logo:hover{
  color:#fff;
  text-decoration:none;
}
a.finder-logo:hover .logo-text{ opacity:.92; }
.finder-logo .logo-text{ line-height:1.15; }
.finder-logo span{ color:#9f8cff; }
.finder-menu{ flex:1; }
.menu-item{
  position:relative;
  padding:13px 14px;
  border-radius:9px;
  margin:6px 0;
  color:#aeb6c9;
  cursor:pointer;
  transition:color .2s, background .2s, box-shadow .2s;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  text-decoration:none;
}
.menu-item::before{
  content:"";
  position:absolute;
  left:0;
  top:22%;
  bottom:22%;
  width:3px;
  border-radius:99px;
  background:linear-gradient(180deg,#9f8cff,var(--accent));
  opacity:0;
  transform:scaleY(.35);
  transition:opacity .2s, transform .2s;
}
.nav-fav-count{
  min-width:18px;
  padding:0 6px;
  border-radius:99px;
  background:#6c5ce7;
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:18px;
  text-align:center;
}
.nav-fav-count[hidden]{ display:none !important; }
.menu-item:hover,.menu-item.active{
  color:#fff;
  background:linear-gradient(90deg,#2a3052,#292f49);
  text-decoration:none;
  box-shadow:inset 0 0 0 1px rgba(159,140,255,.16);
}
.menu-item:hover::before,
.menu-item.active::before{
  opacity:1;
  transform:none;
}
.finder-sidebar-footer{
  border-top:1px solid #2a3050;
  padding:16px 12px 0;
  font-size:13px;
  color:#aeb6c9;
}
.finder-sidebar-footer .user-line{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.finder-sidebar-footer .avatar{
  width:34px;height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:800;
  background:linear-gradient(135deg,#6c5ce7,#ff6b9d);
  flex:none;
}
.finder-sidebar-footer .name{
  color:#fff;
  font-weight:700;
  max-width:110px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.finder-sidebar-footer .user-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.finder-sidebar-footer a.home-link,
.finder-sidebar-footer a.logout-link{
  color:#aeb6c9;
  font-size:13px;
  text-decoration:none;
}
.finder-sidebar-footer a.home-link:hover,
.finder-sidebar-footer a.logout-link:hover{ color:#fff; }
.finder-sidebar-footer .link-sep{ color:#5d6680; }

.finder-nav-toggle{
  display:none;
  flex:none;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid rgba(159,140,255,.28);
  border-radius:10px;
  background:rgba(42,48,82,.55);
  color:#d8d3ff;
  cursor:pointer;
}
.finder-nav-toggle-bars,
.finder-nav-toggle-bars::before,
.finder-nav-toggle-bars::after{
  display:block;
  width:16px;
  height:2px;
  border-radius:99px;
  background:currentColor;
  position:relative;
  transition:transform .2s ease, opacity .2s ease, top .2s ease;
}
.finder-nav-toggle-bars::before,
.finder-nav-toggle-bars::after{
  content:"";
  position:absolute;
  left:0;
}
.finder-nav-toggle-bars::before{ top:-5px; }
.finder-nav-toggle-bars::after{ top:5px; }
body.finder-nav-open .finder-nav-toggle-bars{ background:transparent; }
body.finder-nav-open .finder-nav-toggle-bars::before{ top:0; transform:rotate(45deg); }
body.finder-nav-open .finder-nav-toggle-bars::after{ top:0; transform:rotate(-45deg); }
.finder-sidebar-body{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  scrollbar-width:none;
  scrollbar-color:transparent transparent;
  -ms-overflow-style:none;
}
.finder-sidebar-body::-webkit-scrollbar{
  width:4px;
  background:transparent;
}
.finder-sidebar-body::-webkit-scrollbar-track,
.finder-sidebar-body::-webkit-scrollbar-button{
  display:none;
  background:transparent;
}
.finder-sidebar-body::-webkit-scrollbar-thumb{
  background:transparent;
  border-radius:99px;
}
.finder-sidebar-body:hover::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.22);
}
.finder-sidebar-body .finder-menu{
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  scrollbar-color:transparent transparent;
  -ms-overflow-style:none;
}
.finder-sidebar-body .finder-menu::-webkit-scrollbar{
  width:4px;
  height:4px;
  background:transparent;
}
.finder-sidebar-body .finder-menu::-webkit-scrollbar-track,
.finder-sidebar-body .finder-menu::-webkit-scrollbar-corner,
.finder-sidebar-body .finder-menu::-webkit-scrollbar-button{
  display:none;
  background:transparent;
}
.finder-sidebar-body .finder-menu::-webkit-scrollbar-thumb{
  background:transparent;
  border-radius:99px;
}
.finder-sidebar-body .finder-menu:hover::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.22);
}
.finder-nav-backdrop{
  display:none;
}
.finder-nav-backdrop[hidden]{ display:none !important; }

.finder-main{
  flex:1;
  margin-left:220px;
  padding:28px;
  min-width:0;
  overflow-x:hidden;
  position:relative;
  z-index:1;
}

/* ---------------- 顶栏 ---------------- */
.finder-reveal-target{
  scroll-margin-top:20px;
}
.finder-topbar{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
  padding:16px 18px 16px 22px;
  border:1px solid rgba(231,234,241,.95);
  border-radius:16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78)),
    radial-gradient(280px 120px at 96% 0%, rgba(108,92,231,.10), transparent 70%);
  box-shadow:0 8px 24px rgba(20,34,66,.04);
}
.finder-topbar::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;
  width:3px;
  border-radius:99px;
  background:linear-gradient(180deg,#6c5ce7,#ff6b9d);
}
.finder-topbar h1{ margin:0; font-size:24px; }
.finder-topbar .title{ min-width:0; flex:1; padding-right:16px; }
.finder-topbar p{ margin:7px 0 0; color:var(--muted); font-size:14px; line-height:1.55; max-width:46em; }
.page-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0 0 10px;
  color:#5f50d4;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  line-height:1.2;
}
.page-back:hover,
.page-back:focus{
  color:#4b3dc4;
  text-decoration:none;
}
.page-back-arrow{ font-size:16px; line-height:1; }
.tag{
  padding:7px 12px;
  border-radius:99px;
  background:#ece9ff;
  color:#5f50d4;
  font-weight:700;
  font-size:13px;
  white-space:nowrap;
  box-shadow:0 0 0 4px rgba(108,92,231,.06);
}

/* ---------------- 额度条：数字卡 + 短规则，不要一行长文 ---------------- */
.entitlement-banner{
  margin-bottom:18px;
  padding:14px 16px;
  border-radius:14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), #fff),
    radial-gradient(420px 120px at 100% 0%, rgba(108,92,231,.08), transparent 70%);
  border:1px solid var(--line);
  box-shadow:0 8px 26px rgba(20,34,66,.05);
}
.entitlement-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:12px;
  align-items:stretch;
}
.entitlement-stat{
  background:#f7f6ff;
  border:1px solid #ece9ff;
  border-radius:12px;
  padding:12px 14px;
  min-width:0;
}
.entitlement-k{
  display:block;
  font-size:12px;
  color:#7a8499;
  margin-bottom:4px;
}
.entitlement-v{
  display:block;
  font-size:20px;
  line-height:1.2;
  color:#292f49;
  font-weight:800;
  word-break:break-word;
}
.entitlement-v.is-free{
  color:#1f6b45;
}
.entitlement-s{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:#566078;
  line-height:1.45;
}
.entitlement-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  padding:0 18px;
  border-radius:12px;
  background:var(--primary);
  color:#fff;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  white-space:nowrap;
}
.entitlement-cta:hover,
.entitlement-cta:focus{
  color:#fff;
  text-decoration:none;
  filter:brightness(1.06);
}
.entitlement-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.entitlement-chips li{
  padding:5px 10px;
  border-radius:99px;
  background:#f6f4ff;
  border:1px solid #e4e0fb;
  font-size:12px;
  color:#4d4478;
  line-height:1.4;
}
.entitlement-note{
  margin:10px 0 0;
  font-size:12px;
  color:#5f50d4;
  line-height:1.5;
}
.entitlement-off{
  margin:0;
  font-size:13px;
  color:#4d4478;
}
.entitlement-fold-toggle{ display:none; }
.field-cost-hint{
  margin:8px 0 0;
  font-size:12px;
  color:#687388;
  line-height:1.5;
}

/* ---------------- 卡片 ---------------- */
.card{
  position:relative;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 8px 26px rgba(20,34,66,.05);
  padding:20px;
  margin-bottom:18px;
  min-width:0;
  max-width:100%;
  transition:border-color .22s ease, box-shadow .22s ease;
}
.card::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:0;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg, transparent, rgba(108,92,231,.42), rgba(255,107,157,.32), transparent);
  opacity:0;
  transition:opacity .22s ease;
  pointer-events:none;
}
.card:hover{
  border-color:#d9d4f5;
  box-shadow:0 14px 34px rgba(20,34,66,.08);
}
.card:hover::after{ opacity:1; }
.card-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
  flex-wrap:wrap;
}
.card-title h2{ margin:0; font-size:18px; }
.card-title .sub{ font-size:13px; color:var(--muted); }
.works-head{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.works-confirm{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.works-confirm[hidden]{
  display:none !important;
}
.works-confirm .sub{ margin:0; }
.creator-refresh{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-left:8px;
  vertical-align:middle;
}
.creator-refresh .btn{
  padding:4px 12px;
  font-size:12px;
}
.confirm-overlay{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;
  z-index:10000;
  background:rgba(23,32,51,.46);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, visibility .18s ease;
}
.confirm-overlay.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.confirm-dialog{
  position:absolute;
  top:50%;
  left:50%;
  width:min(420px, calc(100% - 32px));
  transform:translate(-50%, -50%);
  background:var(--card);
  color:var(--text);
  border-radius:14px;
  padding:22px 24px 18px;
  box-shadow:0 18px 48px rgba(23,32,51,.22);
}
.confirm-dialog h3{
  margin:0 0 10px;
  font-size:17px;
}
.confirm-dialog p{
  margin:0 0 18px;
  font-size:14px;
  line-height:1.55;
  color:var(--muted);
}
.confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.works-card{
  position:relative;
}
.works-card.is-loading .table-wrap{
  opacity:.28;
  pointer-events:none;
}
.works-loading{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:24px;
  text-align:center;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(2px);
}
.works-loading[hidden],
#refreshAsk[hidden],
#refreshBusy[hidden],
#userListAsk[hidden],
#userListBusy[hidden]{
  display:none !important;
}
.works-loading strong,
#refreshBusy h3,
#userListBusy h3{
  margin:12px 0 4px;
  font-size:16px;
}
.works-loading p,
#refreshBusy p,
#userListBusy p{
  margin:0;
  font-size:13px;
}
#refreshBusy,
#userListBusy{
  text-align:center;
  padding:8px 0 4px;
}
.works-spinner{
  width:36px;
  height:36px;
  margin:0 auto;
  border:3px solid #e4e0fb;
  border-top-color:var(--primary, #6c5ce7);
  border-radius:50%;
  animation:works-spin .8s linear infinite;
}
@keyframes works-spin{
  to{ transform:rotate(360deg); }
}
.work-cover{
  display:block;
  width:48px;
  height:64px;
  object-fit:cover;
  border-radius:8px;
  background:#eef1f6;
}
.work-cover.is-empty,
.work-cover.is-broken{
  display:block;
  width:48px;
  height:64px;
  border-radius:8px;
  background:#eef1f6 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%239aa4b8' stroke-width='1.6'><rect x='4' y='6' width='16' height='12' rx='2'/><circle cx='9' cy='11' r='1.4'/><path d='M7 16l4-4 3 3 3-2 3 3'/></svg>") center no-repeat;
  background-size:22px;
}
.work-url-hint{
  margin:0 18px 12px;
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  line-height:1.55;
  color:#7b8494;
}
.work-url-hint p{
  margin:0;
}
.work-urls{
  margin-top:6px;
  display:flex;
  flex-direction:column;
  gap:4px;
  max-width:480px;
}
.work-urls .work-url-row{
  display:flex;
  align-items:center;
  gap:6px;
}
.work-urls .work-url-row span{
  flex:0 0 36px;
  font-size:11px;
  color:#7b8494;
}
.work-urls input{
  flex:1;
  min-width:0;
  height:26px;
  padding:0 8px;
  border:1px solid #e4e0fb;
  border-radius:6px;
  background:#f7f8fb;
  font-size:11px;
  color:#364159;
}
.work-urls a.work-link{
  flex:1;
  min-width:0;
  font-size:11px;
  color:#6c5ce7;
  word-break:break-all;
}
.work-urls .is-missing{
  color:#c0392b;
}
.work-urls .work-open{
  flex:0 0 auto;
  font-size:11px;
  font-weight:700;
  color:#6c5ce7;
  text-decoration:none;
  white-space:nowrap;
}
.work-urls .work-open:hover{
  text-decoration:underline;
}
.btn-dl.is-busy,
.btn.is-busy{
  opacity:.72;
  pointer-events:none;
}
.btn-dl.is-done{
  background:#e8f6ee;
  color:#1f6b45;
  box-shadow:inset 0 0 0 1px #b7e0c6;
}
/* ---------------- 表单 ---------------- */
.form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(160px,1fr));
  gap:16px;
}
.field label{
  display:block;
  margin-bottom:8px;
  font-size:13px;
  color:#566078;
  font-weight:700;
}
.field input,.field select,.field textarea{
  width:100%;
  height:42px;
  border:1px solid #dfe3ec;
  border-radius:9px;
  padding:0 12px;
  background:#fff;
  outline:none;
  transition:.2s;
}
.field textarea{
  height:auto;
  min-height:90px;
  padding:12px;
  resize:vertical;
  word-break:break-all;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(108,92,231,.1);
}
.field-hint{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:#7a8499;
  line-height:1.45;
}
.wide{ grid-column:span 2; }
.field-slot{ display:contents; }
.query-mode-switch{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.local-filter-panel{
  margin-top:18px;
  padding-top:16px;
  border-top:1px dashed #dfe3ec;
}
.local-filter-title{
  margin-bottom:12px;
}
.local-filter-title h3{
  margin:0;
  font-size:16px;
}
.local-filter-title .sub{
  display:block;
  margin-top:6px;
  line-height:1.45;
  white-space:normal;
}

.follower-ranges,
.follower-range-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:8px;
}
.follower-range-bar{
  row-gap:8px;
}
.range-chip{ margin:0; }
.range-chip input{ display:none; }
.range-chip span,
.range-chip-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:32px;
  padding:0 12px;
  border:1px solid #d4cdf8;
  border-radius:999px;
  color:#59647a;
  background:#fff;
  cursor:pointer;
  font-size:13px;
  line-height:1;
  white-space:nowrap;
}
.range-chip-btn{
  font:inherit;
  font-weight:600;
}
.range-chip input:checked + span,
.range-chip-btn.is-active{
  background:#ece9ff;
  color:#5949d4;
  border-color:#8b7cf0;
  font-weight:700;
}
.follower-custom{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:2px;
}
.field .follower-custom input,
.follower-custom input{
  width:72px;
  max-width:72px;
  height:32px;
  padding:0 8px;
  text-align:center;
  border:1px solid #d4cdf8;
  border-radius:8px;
  background:#fff;
}
.follower-custom input:focus{
  border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(108,92,231,.1);
}
.follower-custom-sep{
  color:#9aa4b8;
  font-weight:700;
}
.follower-custom-unit{
  font-size:12px;
  color:#59647a;
  white-space:nowrap;
}

.actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}

.search-card-follow > .history-presets{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
  width:100%;
  max-width:100%;
  overflow:visible;
}
.search-card-follow > .history-presets > .btn,
.search-card-follow > .history-presets > select{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
}
.search-follow-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:10px 12px;
  margin-top:10px;
  min-width:0;
  width:100%;
  overflow:visible;
}
.search-follow-bar .actions{ margin-top:0; flex:1 1 auto; min-width:0; flex-wrap:wrap; }
.search-follow-bar .history-block{
  flex:1 1 160px;
  flex-wrap:wrap;
  min-width:0;
}
.search-follow-bar .history-chips{
  flex-wrap:wrap;
  overflow:visible;
  min-width:0;
}
.search-follow-bar .history-chip{ flex:0 0 auto; }
#searchCardFollow{
  container-type:inline-size;
  container-name:search-follow;
  overflow:visible;
  min-width:0;
  max-width:100%;
}
#searchCardFollow #maxResultsField{
  position:relative;
  display:flex;
  flex-direction:row;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  flex:0 1 auto;
  width:auto;
  max-width:100%;
  min-width:0;
}
#searchCardFollow #maxResultsField label{
  margin:0;
  white-space:nowrap;
  font-size:12px;
}
#searchCardFollow #maxResultsField #maxResults{
  flex:none;
  width:200px;
  min-width:0;
  max-width:100%;
  height:38px;
}
#searchCardFollow select{
  -webkit-appearance:none;
  appearance:none;
  max-height:42px;
  padding-right:28px;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236f7b91' d='M1 1l5 5 5-5'/></svg>") no-repeat right 10px center;
}
#searchCardFollow #maxResultsField .field-nudge{
  position:absolute;
  left:0;
  top:calc(100% + 4px);
  z-index:2;
  margin-top:0;
}
.search-follow-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  margin-top:8px;
  min-width:0;
}
.search-follow-meta > .sub{
  margin-top:0;
  font-size:12px;
  color:#7a8499;
  line-height:1.5;
}
.search-follow-meta > .continue-search-hint{ margin-top:0; text-align:left; }

.history-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-top:16px;
}
.history-block{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
  flex:1;
}
.history-label{
  font-size:12px;
  color:#7a8499;
  font-weight:700;
  white-space:nowrap;
}
.history-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.history-chip{
  border:1px solid #dfe3ec;
  background:#fff;
  color:#59647a;
  border-radius:8px;
  padding:6px 10px;
  font-size:12px;
  cursor:pointer;
}
.history-chip:hover{
  border-color:#8b7cf0;
  color:#5949d4;
}
.history-presets{
  flex:0 0 auto;
  flex-wrap:wrap;
}
.history-presets select{
  height:38px;
  border:1px solid #dfe3ec;
  border-radius:8px;
  padding:0 10px;
  color:#364159;
}

/* ---------------- 按钮 ---------------- */
.btn{
  border:0;
  border-radius:9px;
  padding:10px 18px;
  cursor:pointer;
  font-weight:700;
  transition:transform .2s, box-shadow .2s, filter .2s, background .2s;
  text-decoration:none;
  display:inline-block;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{
  position:relative;
  overflow:hidden;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  color:#fff;
  box-shadow:0 8px 18px var(--glow);
}
.btn-primary::after{
  content:"";
  position:absolute;
  inset:0 auto 0 -40%;
  width:36%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  transform:skewX(-18deg) translateX(0);
  opacity:0;
  pointer-events:none;
}
.btn-primary:hover::after{
  opacity:1;
  animation:fx-shine .7s ease;
}
a.btn-primary,
a.btn-primary:hover{ color:#fff; text-decoration:none; }
a.btn-light,
a.btn-light:hover{ color:#45506a; text-decoration:none; }
.btn-primary:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.btn-primary:disabled::after{ display:none; }
.btn-light{ color:#45506a; background:#eef1f6; }
.btn-success{ background:var(--success); color:#fff; }

/* ---------------- 采集等待遮罩：科技感蜘蛛动效 ----------------
   居中不依赖 flex（老浏览器内核 flex 可能失效）：
   所有主元素用 absolute + left:0;right:0（水平铺满+text-align 居中）
   或 left:50% + translate（块级居中），任何内核下都居中。 */
.spider-overlay{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;
  z-index:9999;
  background:
    radial-gradient(ellipse 60% 50% at 50% 42%, rgba(10,30,45,.92), rgba(4,10,18,.97)),
    #040a12;
  backdrop-filter:blur(6px);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
}
.spider-overlay.show{ opacity:1; visibility:visible; }

/* 背后仪器层：轴心跟蜘蛛重合，扫线在蜘蛛下面 */
.spider-scan{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.spider-scan-field{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 50%, rgba(8,36,40,.0) 0 22%, rgba(4,10,18,.3) 64%, rgba(4,10,18,.58) 100%);
}
.spider-scan-core{
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  width:min(132vh, 1100px);
  height:min(132vh, 1100px);
  transform:translate(-50%,-50%);
  pointer-events:none;
  isolation:isolate;
}
.spider-scan-net,
.spider-scan-rings,
.spider-scan-cross,
.spider-scan-ppi,
.spider-scan-hits{
  position:absolute;
  inset:0;
  border-radius:50%;
}
.spider-scan-net{
  z-index:0;
  background:
    repeating-radial-gradient(
      circle at 50% 50%,
      transparent 0,
      transparent calc(9% - 1px),
      rgba(47,216,189,.2) calc(9% - 1px),
      rgba(47,216,189,.2) 9%
    ),
    repeating-conic-gradient(
      from 0deg,
      rgba(47,216,189,.14) 0deg .28deg,
      transparent .28deg 15deg
    );
  -webkit-mask-image:radial-gradient(circle, #000 0 22%, rgba(0,0,0,.72) 42%, rgba(0,0,0,.32) 64%, rgba(0,0,0,.1) 78%, transparent 88%);
  mask-image:radial-gradient(circle, #000 0 22%, rgba(0,0,0,.72) 42%, rgba(0,0,0,.32) 64%, rgba(0,0,0,.1) 78%, transparent 88%);
  opacity:.42;
}
.spider-scan-net i{
  position:absolute;
  inset:0;
  border-radius:50%;
  background:
    repeating-radial-gradient(
      circle at 50% 50%,
      transparent 0,
      transparent calc(13.5% - 1px),
      rgba(47,216,189,.16) calc(13.5% - 1px),
      rgba(47,216,189,.16) 13.5%
    );
  -webkit-mask-image:radial-gradient(circle, #000 0 26%, rgba(0,0,0,.55) 50%, transparent 80%);
  mask-image:radial-gradient(circle, #000 0 26%, rgba(0,0,0,.55) 50%, transparent 80%);
  opacity:.7;
}
.spider-overlay.show .spider-scan-net{
  animation:spider-net-fade 8.6s ease-in-out infinite;
}
.spider-overlay.show .spider-scan-net i{
  animation:spider-net-fade-alt 5.4s ease-in-out infinite;
}
@keyframes spider-net-fade{
  0%,100%{ opacity:.3; }
  14%{ opacity:.56; }
  27%{ opacity:.34; }
  41%{ opacity:.62; }
  58%{ opacity:.26; }
  73%{ opacity:.5; }
  88%{ opacity:.36; }
}
@keyframes spider-net-fade-alt{
  0%,100%{ opacity:.55; }
  21%{ opacity:.2; }
  39%{ opacity:.82; }
  54%{ opacity:.28; }
  71%{ opacity:.7; }
  86%{ opacity:.18; }
}
.spider-scan-rings{
  z-index:1;
  background:
    repeating-radial-gradient(
      circle at 50% 50%,
      transparent 0,
      transparent calc(16% - 1px),
      rgba(47,216,189,.09) calc(16% - 1px),
      rgba(47,216,189,.09) 16%
    );
  -webkit-mask-image:radial-gradient(circle, #000 0 58%, rgba(0,0,0,.45) 66%, transparent 72%);
  mask-image:radial-gradient(circle, #000 0 58%, rgba(0,0,0,.45) 66%, transparent 72%);
  opacity:.45;
}
.spider-scan-cross{
  z-index:1;
  background:
    linear-gradient(90deg, transparent 0 49.96%, rgba(47,216,189,.14) 49.96% 50.04%, transparent 50.04%),
    linear-gradient(180deg, transparent 0 49.96%, rgba(47,216,189,.14) 49.96% 50.04%, transparent 50.04%);
  -webkit-mask-image:radial-gradient(circle, #000 0 58%, rgba(0,0,0,.4) 66%, transparent 72%);
  mask-image:radial-gradient(circle, #000 0 58%, rgba(0,0,0,.4) 66%, transparent 72%);
}
.spider-scan-ppi{
  z-index:2;
  overflow:hidden;
  /* 中心挖空，扫线和余辉停在蜘蛛轮廓外，不从身子里透出来 */
  -webkit-mask-image:radial-gradient(circle, transparent 0 11.4%, #000 11.8% 62%, rgba(0,0,0,.45) 70%, transparent 78%);
  mask-image:radial-gradient(circle, transparent 0 11.4%, #000 11.8% 62%, rgba(0,0,0,.45) 70%, transparent 78%);
}
.spider-scan-ppi i{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  background:conic-gradient(
    from 0deg,
    rgba(47,216,189,0) 0deg 278deg,
    rgba(47,216,189,.04) 292deg,
    rgba(47,216,189,.07) 312deg,
    rgba(47,216,189,.11) 330deg,
    rgba(47,216,189,.16) 344deg,
    rgba(47,216,189,.22) 354deg,
    rgba(47,216,189,.3) 360deg
  );
  transform-origin:50% 50%;
}
.spider-scan-ppi i::after{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:2px;
  margin-left:-1px;
  height:38.6%;
  background:linear-gradient(to bottom, rgba(47,216,189,0) 0%, rgba(47,216,189,.22) 46%, #2fd8bd 100%);
}
.spider-overlay.show .spider-scan-ppi i{
  animation:spider-ppi 14s linear infinite;
}
@keyframes spider-ppi{
  to{ transform:rotate(360deg); }
}
.spider-scan-hits{ z-index:3; }
.spider-scan-hit{
  position:absolute;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:50%;
  color:#d9fff7;
  font-size:9px;
  font-weight:700;
  letter-spacing:.2px;
  border:1px solid rgba(47,216,189,.5);
  box-shadow:0 0 0 1px rgba(4,16,18,.55), 0 0 10px rgba(47,216,189,.2);
  transform:translate(-50%,-50%) scale(.7);
  opacity:0;
  transition:opacity .32s ease, transform .32s ease, box-shadow .32s ease;
}
.spider-scan-hit.is-on{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
  box-shadow:0 0 0 1px rgba(4,16,18,.55), 0 0 12px rgba(47,216,189,.28), 0 0 0 5px rgba(47,216,189,.1);
}
.spider-scan-hit.is-off{
  opacity:0;
  transform:translate(-50%,-50%) scale(.74);
  box-shadow:0 0 0 1px rgba(4,16,18,.4);
}
.spider-scan-hit.is-face{
  font-size:0;
}
.spider-scan-hit.is-face::before{
  content:"";
  position:absolute;
  top:18%;
  left:50%;
  width:38%;
  height:38%;
  border-radius:50%;
  background:#b8fff4;
  transform:translateX(-50%);
}
.spider-scan-hit.is-face::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-22%;
  width:74%;
  height:52%;
  border-radius:46% 46% 8% 8%;
  background:#b8fff4;
  transform:translateX(-50%);
}
.spider-hub-plate{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  width:112px;
  height:94px;
  pointer-events:none;
  border-radius:50%;
  transform:translate(-50%, calc(-50% - 4px));
  background:radial-gradient(ellipse at 50% 48%, rgba(6,16,22,.98) 0 48%, rgba(6,16,22,.78) 64%, rgba(6,16,22,0) 78%);
}

/* 四角蛛网氛围 */
.spider-corner{
  position:absolute;
  z-index:1;
  width:240px;
  height:240px;
  opacity:.5;
  background-repeat:no-repeat;
}
.spider-corner-tl{
  top:0; left:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='none' stroke='%23196a5e' stroke-width='1'%3E%3Cpath d='M0 0L240 240M0 70L70 0M0 150L150 0M70 240L240 70M150 240L240 150'/%3E%3Cpath d='M35 0Q52 35 88 12M75 0Q88 55 150 30M25 25Q60 60 100 100M110 0Q140 70 205 95'/%3E%3Cpath d='M0 35Q35 52 12 88M0 75Q55 88 30 150M55 55Q120 118 95 205'/%3E%3C/g%3E%3C/svg%3E");
}
.spider-corner-br{
  bottom:0; right:0;
  transform:rotate(180deg);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='none' stroke='%23196a5e' stroke-width='1'%3E%3Cpath d='M0 0L240 240M0 70L70 0M0 150L150 0M70 240L240 70M150 240L240 150'/%3E%3Cpath d='M35 0Q52 35 88 12M75 0Q88 55 150 30M25 25Q60 60 100 100M110 0Q140 70 205 95'/%3E%3Cpath d='M0 35Q35 52 12 88M0 75Q55 88 30 150M55 55Q120 118 95 205'/%3E%3C/g%3E%3C/svg%3E");
}

/* 中心舞台：absolute 居中（不依赖 flex） */
.spider-stage{
  position:absolute;
  top:50%;
  left:50%;
  width:300px;
  height:300px;
  z-index:2;
  overflow:visible;
  isolation:isolate;
  transform:translate(-50%, -56%); /* 舞台中心略高于视口中心，给下方文字留位 */
}
.spider-rings{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:1;
}
.ring-deco{
  fill:none;
  stroke:#1f8f7e;
  stroke-width:1.5;
  stroke-dasharray:6 10;
  opacity:.75;
  transform-origin:100px 100px;
}
.ring-deco-outer{ animation:ring-spin-cw 26s linear infinite; }
.ring-deco-inner{
  stroke:#2fd8bd;
  stroke-dasharray:2 8;
  animation:ring-spin-ccw 16s linear infinite;
}
@keyframes ring-spin-cw{ to{ transform:rotate(360deg); } }
@keyframes ring-spin-ccw{ to{ transform:rotate(-360deg); } }

.ring-track{
  fill:none;
  stroke:rgba(47,216,189,.14);
  stroke-width:5;
}
.ring-progress{
  fill:none;
  stroke:#2fd8bd;
  stroke-width:5;
  stroke-linecap:round;
  stroke-dasharray:439.82;
  stroke-dashoffset:439.82;
  transition:stroke-dashoffset .6s ease;
  filter:drop-shadow(0 0 6px rgba(47,216,189,.85));
  transform:rotate(-90deg);
  transform-origin:100px 100px;
}

/* 蜘蛛定位：居中层只管居中（不参与动画，transform 不被覆盖），动画放内层 */
.spider-body-wrap{
  position:absolute;
  top:50%;
  left:50%;
  z-index:3;
  width:118px;
  transform:translate(-50%, calc(-50% - 4px)); /* -4px 修正 SVG 图形在 viewBox 内偏下 */
}
.spider-float{ animation:spider-crawl 3.2s ease-in-out infinite; }
@keyframes spider-crawl{
  0%,100%{ transform:rotate(-3deg) translateY(2px); }
  50%{ transform:rotate(3deg) translateY(-2px); }
}
.spider-svg{ width:100%; height:auto; display:block; }
.spider-glow{
  filter:drop-shadow(0 0 5px rgba(47,216,189,.9)) drop-shadow(0 0 14px rgba(47,216,189,.35));
}
.spider-svg polyline,
.spider-svg ellipse,
.spider-svg path{
  fill:none;
  stroke:#5ff5da;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.spider-svg .spider-abdomen{ fill:rgba(47,216,189,.08); }
.spider-svg .spider-eye{
  fill:#aefcf0;
  stroke:none;
  animation:eye-blink 4s ease-in-out infinite;
}
.spider-svg .spider-circuit{
  stroke-width:1;
  opacity:.55;
  animation:circuit-flicker 2.4s ease-in-out infinite;
}
.leg-group{
  transform-box:fill-box;
  transform-origin:center;
  animation:leg-swing 1.1s ease-in-out infinite;
}
.leg-group-l2{ animation-delay:.55s; }
.leg-group-r{ animation-direction:reverse; }
@keyframes leg-swing{
  0%,100%{ transform:rotate(-4deg) scaleY(.96); }
  50%{ transform:rotate(4deg) scaleY(1.04); }
}
@keyframes eye-blink{
  0%,90%,100%{ opacity:1; }
  95%{ opacity:.15; }
}
@keyframes circuit-flicker{
  0%,100%{ opacity:.55; }
  50%{ opacity:1; }
}

/* 百分比：环内下方（不溢出舞台，与蜘蛛不打架） */
.spider-pct{
  position:absolute;
  bottom:44px;
  left:0;
  right:0;
  z-index:3;
  text-align:center;
  font-family:'Consolas','SF Mono',monospace;
  font-size:26px;
  font-weight:700;
  color:#aefcf0;
  letter-spacing:2px;
  text-shadow:0 0 12px rgba(47,216,189,.8);
}

/* 标题 / 状态浮在扫束上，不铺黑底；光线从字下面过 */
.spider-title{
  position:absolute;
  top:50%;
  left:50%;
  right:auto;
  z-index:5;
  width:max-content;
  max-width:92vw;
  margin-top:140px; /* 舞台下缘(C+132)与外环下缘(C+120)之下 */
  transform:translateX(-50%);
  color:#eafffb;
  font-size:20px;
  font-weight:600;
  letter-spacing:4px;
  text-align:center;
  text-shadow:0 0 10px rgba(4,12,18,.7);
}
.spider-status{
  position:absolute;
  top:50%;
  left:50%;
  right:auto;
  z-index:5;
  width:max-content;
  max-width:92vw;
  margin-top:178px;
  transform:translateX(-50%);
  color:#4fbfae;
  font-family:'Consolas','SF Mono',monospace;
  font-size:13px;
  letter-spacing:1px;
  text-align:center;
  min-height:18px;
  text-shadow:0 0 8px rgba(4,12,18,.65);
}
.spider-stat-num{
  display:inline-block;
  min-width:1.5ch;
  font-variant-numeric:tabular-nums;
  color:#aefcf0;
  text-shadow:0 0 8px rgba(47,216,189,.7);
}
.spider-timer{
  position:absolute;
  top:20px;
  right:24px;
  left:auto;
  margin-top:0;
  width:auto;
  text-align:right;
  z-index:5;
}
.spider-timer-digits{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:6px;
}
.spider-timer-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:32px;
  height:42px;
  padding:0;
  margin:0;
  line-height:1;
  text-align:center;
  border:1px solid rgba(47,216,189,.38);
  border-radius:6px;
  background:rgba(6,28,32,.78);
  box-shadow:inset 0 0 12px rgba(47,216,189,.14), 0 0 10px rgba(47,216,189,.18);
  font-family:'Consolas','SF Mono',monospace;
  font-size:24px;
  font-weight:700;
  color:#aefcf0;
  text-shadow:0 0 10px rgba(47,216,189,.8);
  font-variant-numeric:tabular-nums;
}
.spider-timer-colon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:12px;
  height:42px;
  line-height:1;
  color:#2fd8bd;
  font-size:22px;
  font-weight:700;
  animation:spider-colon-blink 1s step-end infinite;
}
.spider-timer-label{
  margin-top:8px;
  color:#3e7d74;
  font-size:11px;
  letter-spacing:3px;
}
@keyframes spider-colon-blink{
  0%,49%{ opacity:1; }
  50%,100%{ opacity:.25; }
}
.spider-hint{
  position:absolute;
  bottom:56px;
  left:50%;
  right:auto;
  z-index:5;
  width:max-content;
  max-width:92vw;
  transform:translateX(-50%);
  text-align:center;
  color:#3e7d74;
  font-size:12px;
  letter-spacing:1px;
}
.spider-cancel{
  position:absolute;
  top:50%;
  bottom:auto;
  left:0;
  right:0;
  margin:220px auto 0; /* 紧挨状态行下方的空档，不要贴底 */
  width:max-content;
  z-index:5;
  transform:none;
  color:#2fd8bd;
  background:rgba(6,28,32,.78);
  border:1px solid rgba(47,216,189,.48);
  box-shadow:inset 0 0 12px rgba(47,216,189,.14), 0 0 12px rgba(47,216,189,.16);
}
.btn.spider-cancel:hover{
  transform:translateY(-1px);
  color:#5ff5da;
  background:rgba(10,44,48,.9);
  border-color:rgba(47,216,189,.75);
  box-shadow:inset 0 0 14px rgba(47,216,189,.2), 0 0 16px rgba(47,216,189,.28);
}
@media (max-height:700px){
  .spider-cancel{ margin-top:204px; }
}
.dot-pulse{
  display:inline-block;
  vertical-align:middle;
  margin-right:8px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#2fd8bd;
  animation:dot-pulse 1.6s ease-out infinite;
}
@keyframes dot-pulse{
  0%{ box-shadow:0 0 0 0 rgba(47,216,189,.6); }
  100%{ box-shadow:0 0 0 12px rgba(47,216,189,0); }
}

/* 无障碍：用户偏好减少动效时，停所有动画只留静态图与进度数字 */
@media (prefers-reduced-motion: reduce){
  .ring-deco-outer,
  .ring-deco-inner,
  .spider-float,
  .leg-group,
  .spider-svg .spider-eye,
  .spider-svg .spider-circuit,
  .dot-pulse,
  .spider-scan-ppi i,
  .spider-scan-net,
  .spider-scan-net i{ /*animation:none;*/ }
  .ring-progress{ transition:none; }
}

/* ---------------- 结果表 ---------------- */
.result-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:14px;
}
.result-head-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.btn-continue{
  background:#1f6bff;
  color:#fff;
  border:1px solid #1f6bff;
  font-weight:700;
}
.btn-continue:hover{ background:#1554d4; color:#fff; }
.btn-continue:disabled,
.btn-continue[disabled]{
  opacity:.48;
  cursor:not-allowed;
  background:#8fb4ff;
  border-color:#8fb4ff;
  color:#fff;
}
#continueSearchBtnForm:not([hidden]){ display:inline-flex !important; align-items:center; }
#keywordExhausted[hidden],
#continueSearchHint[hidden]{ display:none !important; }
.continue-search-hint{
  margin:8px 0 0;
  font-size:14px;
  font-weight:700;
  color:#d0142c;
  text-align:left;
  line-height:1.55;
}
.continue-search-hint.is-exhausted{
  text-align:left;
  color:#8a5310;
  font-size:13px;
  font-weight:700;
  padding:8px 12px;
  border-radius:10px;
  background:#fff8e6;
  border:1px solid #f0d78a;
}
#keywordExhausted:not([hidden]){
  display:flex !important;
  align-items:flex-start;
  gap:12px;
}
.result-exhausted{
  margin:0 0 14px;
  padding:12px 14px 12px 12px;
  border:1px solid #f0d48a;
  border-left:4px solid #e6a817;
  border-radius:12px;
  background:linear-gradient(100deg,#fff6d9 0%,#fffdf4 72%);
  box-shadow:0 1px 0 rgba(230,168,23,.12);
  color:#8a5310;
}
.result-exhausted-icon{
  flex:0 0 auto;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#ffe8a8;
  color:#c48412;
}
.result-exhausted-copy{ min-width:0; }
.result-exhausted-copy strong{
  display:block;
  margin:1px 0 4px;
  font-size:15px;
  font-weight:800;
  line-height:1.35;
  color:#8a5310;
}
.result-exhausted-copy span{
  display:block;
  font-size:13px;
  line-height:1.6;
  color:#9a7040;
}
@media (prefers-reduced-motion:no-preference){
  #keywordExhausted:not([hidden]){ animation:exhaustedIn .55s ease-out; }
  @keyframes exhaustedIn{
    0%{ opacity:0; transform:translateY(-6px); box-shadow:0 0 0 0 rgba(230,168,23,.35); }
    70%{ box-shadow:0 0 0 8px rgba(230,168,23,0); }
    100%{ opacity:1; transform:none; }
  }
}
.result-stats{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  color:#687388;
  font-size:13px;
}
.result-stats strong{ color:#222d43; }
.result-reveal{
  display:flex;
  align-items:baseline;
  gap:12px;
  flex-wrap:wrap;
  margin:0 0 12px;
  padding:12px 14px;
  border:1px solid #d7eadc;
  border-radius:12px;
  background:#f4faf6;
}
.result-reveal[hidden]{ display:none !important; }
.result-reveal-kicker{ font-size:12px; color:#5a7a64; }
.result-reveal-main{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.result-reveal-main strong{
  font-size:28px;
  font-weight:800;
  color:#1f6b45;
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.result-reveal-side{ margin:0; font-size:13px; color:#5b6578; }
.finder-table td.email-hit{ color:inherit; font-weight:inherit; }
.finder-table .email-chip{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  background:#eef8f1;
  color:#1f6b45;
  font-weight:600;
}
.finder-table tr.reveal-flash td.email-hit .email-chip{ animation:email-chip-pop .6s ease; }
@keyframes email-chip-pop{
  0%{ background:#cfeedd; }
  100%{ background:#eef8f1; }
}
.aha-checklist{
  margin:0 0 16px;
  padding:14px 16px 12px;
  border:1px solid #e4e0fb;
  border-radius:12px;
  background:#f7f6ff;
}
.aha-checklist[hidden]{ display:none !important; }
.aha-checklist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.aha-checklist-head strong{ font-size:14px; color:#364159; }
.aha-dismiss{
  border:0;
  background:transparent;
  color:#7a8499;
  cursor:pointer;
  font-size:12px;
  padding:0;
}
.aha-dismiss:hover{ color:#364159; }
.aha-track{
  height:6px;
  background:#e8e4fb;
  border-radius:99px;
  overflow:hidden;
  margin-bottom:10px;
}
.aha-track i{
  display:block;
  height:100%;
  width:0;
  background:#6c5ce7;
  border-radius:99px;
  transition:width .25s ease;
}
.aha-steps{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.aha-steps li{ font-size:13px; color:#687388; }
.aha-steps li.is-done{ color:#1f6b45; font-weight:600; }
.aha-steps li.is-now{ color:#5949d4; font-weight:600; }
.aha-checklist-tools{ display:flex; align-items:center; gap:12px; }
.card-title-lead{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  min-width:0;
}
.guide-open-btn{
  border:1px solid #d9d4f7;
  background:#fff;
  color:#5949d4;
  border-radius:999px;
  padding:4px 10px;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.guide-open-btn:hover{ background:#f7f6ff; }
.guide-welcome{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid #e4e0fb;
  border-radius:12px;
  background:#f7f6ff;
}
.guide-welcome[hidden]{ display:none !important; }
.guide-welcome-copy{ min-width:0; flex:1 1 220px; }
.guide-welcome-copy strong{ display:block; font-size:14px; color:#364159; }
.guide-welcome-copy p{ margin:4px 0 0; font-size:13px; line-height:1.55; color:#687388; }
.guide-welcome-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.guide-overlay[hidden]{ display:none !important; }
.guide-overlay{
  position:fixed;
  inset:0;
  z-index:12000;
  pointer-events:auto;
}
.guide-spot{
  position:fixed;
  border-radius:14px;
  pointer-events:none;
  box-shadow:0 0 0 9999px rgba(23,32,51,.48);
  outline:2px solid #6c5ce7;
}
.guide-card{
  position:fixed;
  z-index:12001;
  width:min(360px, calc(100vw - 24px));
  background:#fff;
  border-radius:14px;
  padding:16px 16px 14px;
  box-shadow:0 18px 48px rgba(23,32,51,.22);
}
.guide-kicker{ margin:0 0 6px; font-size:12px; font-weight:700; color:#5949d4; }
.guide-card strong{ display:block; font-size:16px; color:#364159; }
.guide-card p.guide-body{ margin:8px 0 14px; font-size:13px; line-height:1.55; color:#687388; }
.guide-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.guide-skip{
  margin-right:auto;
  border:0;
  background:transparent;
  color:#7a8499;
  cursor:pointer;
  font-size:12px;
  padding:0;
}
.guide-skip:hover{ color:#364159; }
.hunt-goal{
  margin:0 0 16px;
  padding:14px 16px 12px;
  border:1px solid #e4e0fb;
  border-radius:12px;
  background:#f7f6ff;
}
.hunt-goal[hidden]{ display:none !important; }
.hunt-goal-copy{
  display:flex;
  gap:10px;
  align-items:baseline;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.hunt-goal-copy strong{ font-size:14px; color:#364159; }
.hunt-goal-copy span{ font-size:13px; color:#5b6578; }
.hunt-goal .aha-track{ margin-bottom:10px; }
.week-pulse{
  margin:0 0 16px;
  padding:14px 16px;
  border:1px solid #d7eadc;
  border-radius:12px;
  background:#f4faf6;
  display:flex;
  gap:12px;
  align-items:baseline;
  flex-wrap:wrap;
}
.week-pulse[hidden]{ display:none !important; }
.week-pulse strong{ font-size:15px; color:#1f6b45; }
.week-pulse span,.week-pulse-text{ margin:0; font-size:13px; color:#3d6b52; }
.sound-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  font-size:14px;
  color:#364159;
}
.sound-toggle input{ width:16px; height:16px; }
[data-reveal].is-revealing{
  animation:an-reveal .35s ease both;
  animation-delay:var(--reveal-delay,0ms);
}
@keyframes an-reveal{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:none; }
}
.an-hint.risk-low{ background:#f4faf6; color:#1f6b45; }
@media (prefers-reduced-motion:reduce){
  [data-reveal].is-revealing{ animation:none; }
}
.btn-fav.is-just-in{ animation:fav-pop .35s ease; }
@keyframes fav-pop{
  0%{ transform:scale(.96); }
  50%{ transform:scale(1.06); }
  100%{ transform:scale(1); }
}
.email-filter{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  color:#59647a;
  margin-left:auto;
  user-select:none;
}
.email-filter input{
  width:15px;
  height:15px;
  accent-color:var(--primary);
  cursor:pointer;
}
.email-filter:hover span{ color:#5949d4; }
.table-wrap{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:auto;
  border:1px solid var(--line);
  border-radius:10px;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
  scrollbar-width:thin;
  scrollbar-color:#8d7ff0 #eef1f6;
}
.table-wrap::-webkit-scrollbar{
  height:8px;
  width:8px;
}
.table-wrap::-webkit-scrollbar-track{
  background:#eef1f6;
  border-radius:99px;
}
.table-wrap::-webkit-scrollbar-thumb{
  background:linear-gradient(90deg,#8d7ff0,#6c5ce7);
  border-radius:99px;
  border:2px solid #eef1f6;
}
.table-wrap::-webkit-scrollbar-thumb:hover{
  background:#5f50d4;
}
.table-wrap::-webkit-scrollbar-button{
  display:none;
  width:0;
  height:0;
}
.table-wrap::-webkit-scrollbar-corner{
  background:transparent;
}
.table-wrap a,
.table-wrap button,
.table-wrap .btn,
.table-wrap .link{
  cursor:pointer;
}
.table-wrap.is-dragging{
  cursor:grabbing;
  user-select:none;
}
.table-scroll{
  position:relative;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.table-scroll-cue{
  position:absolute;
  top:0;
  right:0;
  bottom:10px;
  width:108px;
  z-index:8;
  pointer-events:none;
}
.table-scroll-cue[hidden],
.table-scroll-cue.is-off{ display:none !important; }
.table-scroll-fade{
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(125,196,255,.2) 36%, rgba(125,196,255,.48) 100%);
}
.table-scroll-hint{
  position:absolute;
  right:14px;
  top:50%;
  margin-top:-28px;
  z-index:2;
  pointer-events:auto;
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  min-width:56px;
  min-height:56px;
  padding:0;
  border:3px solid #fff;
  border-radius:50%;
  background:#4aa8ff;
  color:#fff;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(47,143,220,.45);
}
.table-scroll-hint:hover{ background:#3b9eff; }
.table-scroll-pointer{
  display:flex;
  align-items:center;
  color:#fff;
}
.table-scroll-pointer svg{
  display:block;
  animation:table-scroll-point .85s ease-in-out infinite;
}
.table-scroll-pointer svg:last-child{
  margin-left:-14px;
  animation-delay:.16s;
  opacity:.65;
}
@keyframes table-scroll-point{
  0%,100%{ transform:translateX(0); }
  50%{ transform:translateX(6px); }
}
@media (prefers-reduced-motion:reduce){
  .table-scroll-pointer svg{ animation:none; }
}
table.finder-table{
  width:100%;
  border-collapse:collapse;
  min-width:1450px;
  background:#fff;
}
.finder-table th,.finder-table td{
  padding:12px 11px;
  text-align:left;
  font-size:12px;
  border-bottom:1px solid #edf0f5;
  white-space:nowrap;
  vertical-align:middle;
}
.finder-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8f9fc;
  color:#526079;
  font-weight:800;
}
.finder-table td{ color:#364159; }
.creator{
  display:flex;
  align-items:center;
  gap:8px;
}
.avatar{
  width:30px;height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:800;
  background:linear-gradient(135deg,#6c5ce7,#ff6b9d);
}
.score{
  display:inline-block;
  min-width:54px;
  text-align:center;
  background:#eaf8f2;
  color:#12835a;
  padding:5px 7px;
  border-radius:6px;
  font-weight:800;
}
.link{ color:#6354d9; text-decoration:none; font-weight:700; }
.empty{ padding:52px 20px; text-align:center; color:var(--muted); }
.finder-table td.empty-search-cell{
  white-space:normal;
  text-align:center;
  padding:20px 12px 28px;
}
.empty-search-pin{
  position:sticky;
  left:0;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
}
.empty.empty-search{
  max-width:420px;
  margin:0 auto;
  padding:22px 22px 20px;
  text-align:center;
  color:inherit;
  background:#f6f5ff;
  border:1px solid #e3dff6;
  border-radius:16px;
}
.empty-search .empty-kicker,
.empty-search .empty-title,
.empty-search .empty-body,
.empty-search .empty-meta,
.empty-search .empty-follow{
  white-space:normal;
  overflow-wrap:break-word;
  max-width:100%;
}
.empty-search .empty-kicker{
  margin:0 0 6px;
  font-size:12px;
  font-weight:700;
  color:#6354d9;
  letter-spacing:.02em;
}
.empty-search .empty-title{ font-size:15px; font-weight:700; color:#2e3650; margin:0 0 8px; line-height:1.4; }
.empty-search .empty-body{ margin:0 auto 6px; font-size:13px; line-height:1.7; color:#6b7388; }
.empty-search .empty-meta{ margin:0 auto 16px; font-size:12px; line-height:1.65; color:#8b8499; }
.empty-search .empty-widen-btn{ display:inline-flex; min-width:168px; justify-content:center; }
.empty-search .empty-follow{ margin:10px 0 0; font-size:12px; line-height:1.5; color:#8b8499; }
#maxResultsField .field-nudge{
  display:none;
  margin-top:8px;
  font-size:12px;
  font-weight:700;
  color:#6354d9;
  line-height:1.45;
}
#maxResultsField.is-attention .field-nudge{ display:block; }
#maxResultsField.is-attention #maxResults{
  border-color:#6354d9;
  box-shadow:0 0 0 4px rgba(99,84,217,.18);
}

/* ---------------- Toast ---------------- */
.toast{
  position:fixed;
  right:24px;
  bottom:24px;
  padding:12px 16px;
  border-radius:9px;
  background:#232a3e;
  color:#fff;
  font-size:13px;
  line-height:1.5;
  max-width:min(360px, calc(100vw - 48px));
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  cursor:pointer;
  transition:.2s;
  z-index:110;
}
.toast.show{ opacity:1; transform:none; pointer-events:auto; }

/* ============================================================
   认证页（登录 / 注册）：居中卡片
   ============================================================ */
.auth-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:1;
  background:transparent;
  padding:36px 16px;
}
.auth-wrap{ width:430px; max-width:100%; }
.auth-brand{
  text-align:center;
  font-size:26px;
  font-weight:800;
  margin-bottom:22px;
  letter-spacing:.5px;
  color:var(--text);
  text-decoration:none;
  display:block;
}
a.auth-brand:hover{ color:var(--text); text-decoration:none; }
.auth-brand span{ color:#6c5ce7; }
.auth-brand .sub{
  display:block;
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  margin-top:8px;
  letter-spacing:0;
}
.auth-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(231,234,241,.9);
  border-radius:16px;
  box-shadow:0 18px 48px rgba(20,34,66,.10);
  padding:28px;
  backdrop-filter:blur(10px);
}
.logon-tab{
  display:flex;
  gap:8px;
  margin-bottom:22px;
}
.logon-tab a{
  flex:1;
  text-align:center;
  padding:10px 0;
  border-radius:9px;
  font-weight:700;
  font-size:14px;
  color:#59647a;
  background:#eef1f6;
  text-decoration:none;
  transition:.2s;
}
.logon-tab a.active{
  background:var(--primary);
  color:#fff;
  box-shadow:0 6px 16px rgba(108,92,231,.35);
}
.auth-card .form-group{ margin-bottom:16px; }
.auth-card .form-group > .msg-box{
  display:flex;
  align-items:center;
  margin-top:6px;
}
.auth-card label.control-label{
  display:block;
  margin-bottom:8px;
  font-size:13px;
  color:#566078;
  font-weight:700;
}
.auth-card .form-control,
.form-layer .form-control,
#resetpwd-form .form-control{
  width:100%;
  height:44px;
  border:1px solid #dfe3ec;
  border-radius:9px;
  padding:0 12px;
  background:#fff;
  outline:none;
  transition:.2s;
  box-shadow:none;
}
.auth-card .form-control:focus,
.form-layer .form-control:focus{
  border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(108,92,231,.1);
}
.auth-card .form-control.n-invalid{
  border-color:var(--danger);
}
.auth-card .help-block{ color:var(--danger); font-size:12px; min-height:0; margin:6px 0 0; }
.auth-card .controls{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 10px;
}
.auth-card .controls > .form-control{
  flex:1 1 220px;
  min-width:0;
}
.auth-card form.n-default .n-right,
.auth-card .msg-box.n-right,
.auth-card .controls > .msg-box{
  position:static;
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  margin-top:0;
  line-height:1.4;
  flex:1 1 auto;
  min-width:0;
}
.auth-card .n-default .msg-wrap,
.auth-card .n-bootstrap .msg-wrap{
  position:static;
  display:inline-flex;
  align-items:center;
  gap:4px;
  line-height:1.45;
  white-space:normal;
}
.auth-card .n-icon{
  flex:0 0 auto;
}
@media (max-width:767px){
  .auth-card .controls{
    flex-direction:column;
    align-items:stretch;
  }
  .auth-card .controls > .form-control{ flex-basis:auto; }
  .auth-card .n-bootstrap .n-right,
  .auth-card form.n-default .n-right,
  .auth-card .msg-box.n-right,
  .auth-card .controls > .msg-box{
    position:static !important;
    top:auto;
    left:auto;
    width:100%;
    margin:0;
    text-align:left;
  }
}
.auth-check-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
  font-size:13px;
}
.auth-check-row label{ margin:0; font-weight:500; color:#59647a; cursor:pointer; }
.btn-forgot{ color:#6354d9; font-weight:700; text-decoration:none; cursor:pointer; }
.auth-card .btn-signin{
  width:100%;
  height:46px;
  font-size:15px;
  border:0;
  border-radius:10px;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  color:#fff;
  font-weight:800;
  cursor:pointer;
  transition:.2s;
  box-shadow:0 8px 20px rgba(108,92,231,.35);
}
.auth-card .btn-signin:hover{ transform:translateY(-1px); }
.auth-card .btn-signup-alt{
  display:block;
  width:100%;
  margin-top:10px;
  padding:11px 0;
  text-align:center;
  border-radius:10px;
  border:1px solid var(--line);
  color:#59647a;
  font-weight:700;
  text-decoration:none;
  background:#fff;
}
.auth-card .btn-signup-alt:hover{ border-color:#8b7cf0; color:#5949d4; }
.auth-captcha-group{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.auth-card .auth-captcha-group .form-control{
  flex:1 1 0;
  width:0; /* 只吃剩余宽度，避免 width:100% 把验证码图挤出卡片 */
  min-width:0;
  max-width:calc(100% - 110px);
}
.auth-captcha-group .input-group-btn{
  flex:0 0 auto;
  padding:0;
  border:none;
}
.auth-captcha-group img{
  display:block;
  width:100px;
  height:44px;
  flex-shrink:0;
  border-radius:9px;
  border:1px solid #dfe3ec;
  cursor:pointer;
}

/* 忘记密码弹层：不要沿用后台 form-layer 的绝对定位底栏，否则 355px 里会滚动、确定按钮也不吃登录紫按钮 */
#resetpwd-form.form-layer{
  height:auto;
  min-height:0;
  min-width:0;
}
#resetpwd-form .form-body{
  position:static;
  overflow:visible;
  bottom:auto;
  padding:0;
}
#resetpwd-form .form-footer{
  position:static;
  height:auto;
  line-height:normal;
  background:transparent;
  padding:4px 0 0;
}
#resetpwd-form .form-group{
  margin-bottom:14px;
  margin-left:0;
  margin-right:0;
}
#resetpwd-form .control-label{
  display:block;
  float:none;
  width:auto;
  text-align:left;
  padding:0;
  margin:0 0 8px;
  font-size:13px;
  color:#566078;
  font-weight:700;
}
#resetpwd-form .radio{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px;
}
#resetpwd-form .radio label{
  margin:0;
  padding:0;
  font-weight:500;
  color:#59647a;
}
#resetpwd-form .form-control{
  width:100%;
  height:44px;
  background:#fff;
}
#resetpwd-form .input-group,
#resetpwd-form .auth-captcha-group{
  display:flex;
  align-items:stretch;
  width:100%;
  gap:10px;
}
#resetpwd-form .input-group .form-control,
#resetpwd-form .auth-captcha-group .form-control{
  flex:1 1 0;
  width:0;
  min-width:0;
  max-width:none;
  border-radius:9px;
}
#resetpwd-form .input-group-btn{
  display:block;
  width:auto;
  font-size:inherit;
  padding:0;
  border:none;
  white-space:nowrap;
}
#resetpwd-form .btn-captcha{
  box-sizing:border-box;
  height:44px;
  line-height:44px;
  padding:0 16px;
  border:0;
  border-radius:9px;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  color:#fff;
  font-weight:700;
  white-space:nowrap;
}
#resetpwd-form .btn-captcha:hover,
#resetpwd-form .btn-captcha:focus{
  color:#fff;
  text-decoration:none;
}
#resetpwd-form .btn-signin{
  width:100%;
  height:46px;
  font-size:15px;
  border:0;
  border-radius:10px;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  color:#fff;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(108,92,231,.35);
}
#resetpwd-form .msg-box{ display:block; min-height:0; margin-top:4px; }
.layui-layer.resetpwd-layer .layui-layer-content{
  overflow:visible;
  padding:16px 20px 20px;
}
.auth-footer{
  text-align:center;
  font-size:12px;
  color:#9aa4b8;
  margin-top:20px;
}

/* ============================================================
   落地页（站点首页）
   ============================================================ */
.landing-hero{
  position:relative;
  isolation:isolate;
  text-align:center;
  padding:86px 28px 56px;
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 70% 80% at 12% 18%, rgba(108,92,231,.22), transparent 58%),
    radial-gradient(ellipse 55% 60% at 88% 8%, rgba(255,107,157,.16), transparent 52%),
    linear-gradient(165deg, #efeaff 0%, #f7f4ff 42%, #ffffff 100%);
}
.landing-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(108,92,231,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(108,92,231,.07) 1px, transparent 1px);
  background-size:36px 36px;
  mask-image:radial-gradient(ellipse 75% 80% at 50% 28%, #000 38%, transparent 78%);
  pointer-events:none;
  z-index:0;
}
.landing-hero::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-40px;
  top:-48px;
  border:18px solid rgba(108,92,231,.10);
  border-radius:36px;
  transform:rotate(18deg);
  pointer-events:none;
  z-index:0;
}
.landing-hero > *{ position:relative; z-index:1; }
.landing-hero .fx-hero-deco{ z-index:0; }
.landing-hero h1{
  font-size:44px;
  margin:0 0 14px;
  letter-spacing:-.02em;
}
.landing-hero h1 span{
  background:linear-gradient(90deg,#6c5ce7,#ff6b9d 55%,#8d7ff0);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.landing-hero p{
  color:var(--muted);
  font-size:15px;
  line-height:1.8;
  max-width:560px;
  margin:0 auto 26px;
}
.landing-cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.landing-cta .btn{ padding:12px 26px; font-size:15px; }
.landing-features{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  max-width:900px;
  margin:40px auto 60px;
  padding:0 20px;
}
.landing-features .card{ margin-bottom:0; text-align:center; }
.landing-feature-card{
  display:flex;
  flex-direction:column;
  color:inherit;
  min-width:0;
}
.landing-feature-trigger{
  appearance:none;
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:none;
  color:inherit;
  font:inherit;
  text-align:inherit;
  cursor:pointer;
}
.landing-feature-trigger:focus-visible{
  outline:2px solid rgba(108,92,231,.45);
  outline-offset:4px;
  border-radius:10px;
}
.landing-feature-trigger::after{
  content:"";
  display:block;
  width:8px;
  height:8px;
  margin:12px auto 0;
  border-right:2px solid #8d7ff0;
  border-bottom:2px solid #8d7ff0;
  transform:rotate(45deg);
  transition:transform .2s ease;
}
.landing-feature-card.is-open{
  border-color:#6c5ce7;
  box-shadow:0 16px 36px rgba(108,92,231,.18);
}
.landing-feature-card.is-open .landing-feature-trigger::after{
  transform:rotate(-135deg);
}
.landing-feature-card.is-open .landing-feature-teaser{ display:none; }
.landing-feature-panel[hidden]{ display:none !important; }
.landing-feature-panel{
  text-align:left;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e4dffb;
}
.landing-feature-panel:not([hidden]){
  animation:feat-open .22s ease;
}
.landing-feature-panel p{ margin:0 0 10px; }
.landing-feature-panel > p:first-child{ font-size:14px; color:#364159; }
.landing-feature-panel p:last-child{ margin-bottom:0; }
@keyframes feat-open{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:none; }
}
#landing-features,
.landing-feature-card{
  scroll-margin-top:84px;
}
.landing-feature-hint{ font-size:13px; }
.landing-feature-cta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.landing-features .ico{
  width:56px;
  height:56px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  font-size:26px;
  border-radius:16px;
  background:linear-gradient(180deg,#f6f3ff,#ece9ff);
  box-shadow:0 8px 18px rgba(108,92,231,.10), inset 0 0 0 1px rgba(108,92,231,.08);
  transition:transform .25s ease, box-shadow .25s ease;
}
.landing-features .card:hover .ico{
  transform:translateY(-3px) scale(1.08);
  box-shadow:0 12px 22px rgba(108,92,231,.16), inset 0 0 0 1px rgba(108,92,231,.12);
}
.landing-features h3{ margin:0 0 8px; font-size:16px; }
.landing-features p{ margin:0; color:var(--muted); font-size:13px; line-height:1.7; }

/* ============================================================
   对外开放站点（导航 / 新闻 / 单页）
   ============================================================ */
.site-public{ min-height:100vh; display:flex; flex-direction:column; }
.site-top-anchor{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  pointer-events:none;
}
.site-nav,
.site-wrap,
.finder-app,
.auth-page,
.simple-page{
  opacity:1;
  visibility:visible;
}
.site-wrap{
  flex:1;
  width:min(1120px, calc(100% - 32px));
  margin:0 auto;
  padding:24px 0 64px;
}
.site-nav{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.86);
  border-bottom:1px solid rgba(231,234,241,.8);
  backdrop-filter:saturate(1.25) blur(16px);
}
.site-nav::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:linear-gradient(90deg, transparent 6%, rgba(108,92,231,.42), rgba(255,107,157,.28), transparent 94%);
  pointer-events:none;
}
.site-nav-inner{
  width:min(1120px, calc(100% - 32px));
  margin:0 auto;
  min-height:64px;
  display:flex;
  align-items:center;
  gap:18px;
}
.site-brand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:18px;
  font-weight:800;
  color:var(--text);
  text-decoration:none;
  white-space:nowrap;
}
.site-brand span{ color:var(--primary); }
.site-brand .logo-mark{
  width:26px;
  height:26px;
  border-radius:8px;
}
.site-links{
  display:flex;
  flex-wrap:wrap;
  gap:4px 6px;
  flex:1;
}
.site-links a{
  color:#4b556c;
  text-decoration:none;
  font-weight:600;
  font-size:14px;
  padding:8px 10px;
  border-radius:8px;
}
.site-links a:hover,
.site-links a.is-active{
  color:var(--primary);
  background:#f3f0ff;
  text-decoration:none;
}
.site-links a.is-active{
  box-shadow:0 6px 14px rgba(108,92,231,.10);
}
.site-nav-actions{ display:flex; gap:8px; flex:none; }
.site-nav-actions .btn{ padding:8px 14px; font-size:13px; }

.landing-kicker{
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:12px;
  font-weight:700;
  color:var(--primary);
  margin:0 0 10px;
}
.landing-section{ margin:12px auto 48px; }
.landing-section-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px 16px;
  margin-bottom:16px;
}
.landing-section-head h2{ margin:0; font-size:22px; }
.landing-section-head p{
  flex:1 1 100%;
  order:3;
  margin:6px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.landing-section-head a{
  color:var(--primary);
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}
.landing-features-wide{
  max-width:none;
  margin:0;
  padding:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.landing-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.landing-steps .card{ margin:0; }
.step-no{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#f3f0ff;
  color:var(--primary);
  font-weight:800;
  margin-bottom:10px;
}
.landing-about-card{ margin:0; }
.landing-about-card h2{ margin:0 0 8px; }
.landing-about-card p{ color:var(--muted); line-height:1.7; }
.landing-plan-grid .plan-card{ min-height:220px; }
.landing-cta-band{
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:36px 20px;
  border:1px solid transparent;
  border-radius:16px;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(120deg,#6c5ce7,#ff6b9d,#8d7ff0) border-box;
  box-shadow:0 12px 32px rgba(20,34,66,.07);
}
.landing-cta-band::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-48px;
  top:-80px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(108,92,231,.16), transparent 70%);
  pointer-events:none;
}
.landing-cta-band h2{ margin:0 0 8px; }
.landing-cta-band p{ margin:0 0 18px; color:var(--muted); }

.site-page-head{
  position:relative;
  margin:4px 0 26px;
  padding:22px 24px 20px 26px;
  border:1px solid rgba(231,234,241,.95);
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.74)),
    radial-gradient(420px 160px at 92% -20%, rgba(108,92,231,.12), transparent 70%);
  box-shadow:0 10px 28px rgba(20,34,66,.04);
}
.site-page-head::before{
  content:"";
  position:absolute;
  left:0;
  top:18px;
  bottom:18px;
  width:3px;
  border-radius:99px;
  background:linear-gradient(180deg,#6c5ce7,#ff6b9d);
}
.site-page-head::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-48px;
  top:-72px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,107,157,.14), transparent 70%);
  pointer-events:none;
}
.site-page-head h1{ margin:0 0 8px; font-size:30px; letter-spacing:-.02em; }
.site-page-head p{ margin:0; color:var(--muted); line-height:1.7; max-width:46em; }
.news-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.news-tabs a{
  padding:6px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  color:#4b556c;
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}
.news-tabs a.is-active,
.news-tabs a:hover{
  color:#fff;
  background:var(--primary);
  border-color:var(--primary);
  text-decoration:none;
}
.news-tabs a.is-active{ box-shadow:0 6px 16px rgba(108,92,231,.22); }
.news-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
a.news-card,
a.news-row{
  color:inherit;
  text-decoration:none;
  margin:0;
}
a.news-card:hover,
a.news-row:hover{ text-decoration:none; color:inherit; }
.news-card h3,
.news-row h2{ margin:8px 0; font-size:18px; line-height:1.35; }
.news-card p,
.news-row p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  color:var(--muted);
  font-size:12px;
  font-weight:600;
}
.news-meta > span,
.news-meta > a{
  display:inline-flex;
  align-items:center;
  padding:3px 10px;
  border-radius:999px;
  background:#f3f0ff;
  color:#5f50d4;
  border:1px solid #e4dffb;
  text-decoration:none;
}
.news-meta > a:hover{ background:#ece7ff; text-decoration:none; }
.news-meta time{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 0;
}
.news-meta time::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:#c8c0f0;
}
.news-list{ display:flex; flex-direction:column; gap:16px; }
a.news-row,
.news-row{
  display:flex;
  flex-direction:row;
  gap:0;
  align-items:stretch;
  padding:0;
  margin-bottom:0;
  overflow:hidden;
  min-height:188px;
  box-shadow:0 10px 28px rgba(20,34,66,.06);
}
.news-thumb-wrap{
  flex:none;
  width:200px;
  aspect-ratio:16/10;
  border-radius:12px;
  overflow:hidden;
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,.28), transparent 42%),
    linear-gradient(135deg, rgba(108,92,231,.16), rgba(255,107,157,.12)),
    #eef1f6;
  display:grid;
  place-items:center;
}
a.news-row .news-thumb-wrap{
  width:min(340px, 36%);
  min-width:240px;
  aspect-ratio:auto;
  min-height:188px;
  align-self:stretch;
  border-radius:0;
}
.news-thumb-wrap.is-fallback{
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,.28), transparent 42%),
    linear-gradient(135deg, #6c5ce7, #ff6b9d 72%);
}
.news-thumb-wrap.is-fallback::after{
  content:"";
  width:0;
  height:0;
  margin-left:3px;
  border-left:10px solid rgba(255,255,255,.94);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
}
.news-thumb{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
a.news-row:hover .news-thumb,
a.news-card:hover .news-thumb{ transform:scale(1.04); }
.news-row-body{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  padding:20px 22px 18px 22px;
}
.news-row-body h2{
  margin:0;
  font-size:22px;
  line-height:1.35;
  letter-spacing:-.02em;
}
.news-row-body p{
  max-width:none;
  -webkit-line-clamp:2;
}
.news-more{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  margin-left:auto;
  width:auto;
  height:auto;
  padding:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  color:#6c5ce7;
  font-size:13px;
  font-weight:700;
  position:relative;
}
.news-more::after{
  content:"";
  width:7px;
  height:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(-45deg);
  margin-top:-1px;
}
.news-more::before{ content:none; }
a.news-card{
  display:flex;
  flex-direction:column;
  min-height:168px;
  padding:16px 16px 18px;
}
a.news-card .news-thumb-wrap{
  width:auto;
  aspect-ratio:16/9;
  margin:-16px -16px 14px;
  border-radius:14px 14px 0 0;
}
.site-article{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:0 0 8px;
  box-shadow:0 12px 32px rgba(20,34,66,.05);
}
.site-article::after{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:0;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg, transparent, rgba(108,92,231,.42), rgba(255,107,157,.32), transparent);
  pointer-events:none;
}
.site-article:has(.site-cover-wrap)::after{ display:none; }
.site-article-head{ padding:26px 32px 6px; }
.site-article-head h1,
.site-article h1{ margin:12px 0 10px; font-size:30px; line-height:1.28; letter-spacing:-.02em; }
.site-lead{
  color:#4b556c;
  font-size:17px;
  line-height:1.75;
  padding:12px 14px;
  border-left:3px solid #8d7ff0;
  background:linear-gradient(90deg, rgba(108,92,231,.06), transparent);
  border-radius:0 10px 10px 0;
}
.site-cover-wrap{
  margin:0;
  border-radius:18px 18px 0 0;
  overflow:hidden;
  max-height:380px;
  background:#eef1f6;
}
.site-cover{
  width:100%;
  height:380px;
  object-fit:cover;
  display:block;
  margin:0;
}
.site-prose{
  padding:8px 32px 36px;
  line-height:1.9;
  font-size:15.5px;
  color:#243049;
}
.site-prose h2{
  font-size:20px;
  margin:32px 0 12px;
  padding-left:12px;
  border-left:3px solid #6c5ce7;
}
.site-prose h3{
  font-size:17px;
  margin:24px 0 10px;
  padding-left:12px;
  border-left:3px solid #c8c0f0;
}
.site-prose p{ margin:0 0 14px; }
.site-prose > p:first-of-type{ font-size:16.5px; color:#2a3348; }
.site-prose ul,
.site-prose ol{ margin:0 0 14px; padding-left:1.2em; }
.site-prose ul{ list-style:none; padding-left:0; }
.site-prose ul li{ position:relative; padding-left:1.15em; }
.site-prose ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#8d7ff0;
}
.site-prose a{ color:var(--primary); }
.site-prose img{ max-width:100%; border-radius:10px; }
.site-prose blockquote{
  margin:18px 0;
  padding:12px 16px;
  border-left:3px solid #ff6b9d;
  background:#faf7ff;
  border-radius:0 12px 12px 0;
  color:#4b4558;
}
.site-prose hr{
  border:0;
  height:1px;
  margin:28px 0;
  background:linear-gradient(90deg, transparent, #d9d4f5, transparent);
}
.site-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center;
  padding:48px 28px;
  color:var(--muted);
  border-style:dashed;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(246,244,255,.7));
}
.site-empty::before{
  content:"";
  width:56px;
  height:56px;
  border-radius:16px;
  box-shadow:0 10px 22px rgba(108,92,231,.28);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 19.5V6a2 2 0 0 1 2-2h9l5 5v10.5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z'/><path d='M14 4v5h5'/></svg>"),linear-gradient(135deg,#6c5ce7,#ff6b9d);
  background-repeat:no-repeat;
  background-position:center,center;
  background-size:26px 26px,auto;
}
.site-pager{ margin-top:20px; text-align:center; }
.site-pager .pagination{
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
  padding:0;
  margin:0;
  list-style:none;
}
.site-pager .pagination > li > a,
.site-pager .pagination > li > span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 10px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  color:#364159;
  font-weight:700;
  text-decoration:none;
}
.site-pager .pagination > .active > a,
.site-pager .pagination > .active > span{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 6px 14px rgba(108,92,231,.22);
}
.site-pricing-note{ margin:18px 0 0; color:var(--muted); font-size:13px; line-height:1.7; }

.site-footer{
  position:relative;
  background:linear-gradient(180deg,#1c2140,#14182a);
  color:#aeb6c9;
  padding:36px 0 0;
  margin-top:auto;
}
.site-footer::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  left:-80px;
  top:-120px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(157,140,255,.22), transparent 70%);
  pointer-events:none;
}
.site-footer-inner{
  width:min(1120px, calc(100% - 32px));
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 2fr;
  gap:28px;
  padding-bottom:28px;
}
.site-footer .site-brand{ color:#fff; margin-bottom:8px; }
.site-footer .logo-mark{ width:22px; height:22px; border-radius:7px; }
.site-footer-brand p{ margin:0; line-height:1.7; font-size:13px; max-width:360px; }
.site-footer-cols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.site-footer-cols h4{ margin:0 0 10px; color:#fff; font-size:13px; }
.site-footer-cols a{
  display:block;
  color:#aeb6c9;
  text-decoration:none;
  font-size:13px;
  margin:6px 0;
}
.site-footer-cols a{
  transition:color .2s ease, transform .2s ease;
}
.site-footer-cols a:hover{ color:#fff; transform:translateX(3px); }
.site-footer-copy{
  border-top:1px solid #2a3050;
  text-align:center;
  font-size:12px;
  padding:14px 16px 18px;
}
.site-back-top{
  position:fixed;
  right:20px;
  bottom:24px;
  z-index:10050;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:999px;
  background:linear-gradient(180deg,#7b6cf0,#6c5ce7);
  color:#fff;
  box-shadow:0 10px 24px rgba(108,92,231,.35);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, box-shadow .2s ease, visibility .2s ease;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1;
}
.site-back-top.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
}
.site-back-top:not(.is-hidden){
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.site-back-top:hover,
.site-back-top:visited{
  color:#fff;
  text-decoration:none;
  box-shadow:0 14px 28px rgba(108,92,231,.42);
}
.site-back-top:hover{
  transform:translateY(-2px);
}
.site-back-top:focus-visible{
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:3px;
}
.site-back-top-ico,
.site-back-top::before{
  content:"";
  display:block;
  width:10px;
  height:10px;
  margin:4px 0 0;
  border-left:2px solid #fff;
  border-top:2px solid #fff;
  transform:rotate(45deg);
  flex:none;
}
.site-back-top:has(.site-back-top-ico)::before{
  display:none;
}
.site-back-top-label{ display:none; }

@media(max-width:900px){
  .landing-features-wide{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .landing-steps,
  .news-grid,
  .site-footer-inner,
  .site-footer-cols{ grid-template-columns:1fr; }
  .site-nav-inner{ flex-wrap:wrap; padding:10px 0; }
  .site-links{ order:3; width:100%; }
  .news-row,
  a.news-row{
    flex-direction:column;
    min-height:0;
  }
  .news-thumb-wrap,
  a.news-row .news-thumb-wrap,
  a.news-card .news-thumb-wrap{
    width:auto;
    min-width:0;
    min-height:0;
    aspect-ratio:16/9;
    border-radius:14px 14px 0 0;
  }
  .news-row-body{ padding:16px 18px 18px; }
  .news-row-body h2{ font-size:18px; }
  .news-more{ margin-left:0; }
  .site-article-head,
  .site-prose{ padding-left:20px; padding-right:20px; }
  .site-cover,
  .site-cover-wrap{ max-height:220px; }
  .site-cover{ height:220px; }
  .site-article-head h1,
  .site-article h1{ font-size:24px; }
}

/* ============================================================
   简单页（logout 确认等）
   ============================================================ */
.simple-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  position:relative;
  z-index:1;
  padding:20px;
}
.simple-card{
  width:420px;
  max-width:100%;
  text-align:center;
}

/* ---------------- 响应式 ---------------- */
@media(max-width:1100px){
  .form-grid{ grid-template-columns:repeat(2,minmax(160px,1fr)); }
}
@media(max-width:880px){
  .finder-app{ display:block; }
  .finder-nav-toggle{ display:inline-flex; }
  .finder-sidebar{
    position:fixed;
    inset:0 0 auto 0;
    width:100%;
    height:auto;
    max-height:100dvh;
    flex-direction:column;
    flex-wrap:nowrap;
    padding:calc(8px + env(safe-area-inset-top, 0px)) 12px 8px;
    overflow:visible;
    z-index:40;
  }
  .finder-logo-row{
    padding:0;
    align-items:center;
    gap:10px;
  }
  .finder-logo{ font-size:16px; padding:0; flex:1; min-width:0; }
  .finder-sidebar-body{
    display:none;
    flex:none;
    width:100%;
    max-height:calc(100dvh - 64px);
    overflow-y:auto;
    padding:8px 0 12px;
    -webkit-overflow-scrolling:touch;
  }
  body.finder-nav-open .finder-sidebar-body{ display:flex; }
  body.finder.finder-nav-open{ overflow:hidden; }
  .finder-menu{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:0;
    flex:none;
  }
  .finder-menu .menu-item{
    margin:4px 0;
    padding:12px 14px;
    font-size:15px;
    min-height:44px;
  }
  .finder-sidebar-footer{
    border-top:1px solid #2a3050;
    padding:14px 8px 4px;
  }
  .finder-nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:35;
    background:rgba(18,16,40,.46);
  }
  .finder-notice-panel{
    left:auto;
    right:0;
    top:calc(100% + 8px);
    margin-left:0;
    width:min(320px, calc(100vw - 24px));
  }
  .finder-notice-banner{
    flex-wrap:wrap;
    padding:10px 14px;
    margin-top:calc(56px + env(safe-area-inset-top, 0px));
  }
  .finder-main{
    margin-left:0;
    padding:16px 14px 24px;
    padding-top:calc(72px + env(safe-area-inset-top, 0px));
  }
  body.finder:has(#finderNoticeBanner:not([hidden])) .finder-main{
    padding-top:16px;
  }
  .form-grid,
  .utm-grid,
  #searchCaptureGrid,
  #searchConditionCard.has-batch-rail #searchCaptureGrid,
  #searchConditionCard.has-batch-rail:has(> .batch-rail[hidden]) #searchCaptureGrid{
    grid-template-columns:1fr;
  }
  .wide{ grid-column:auto; }
  .finder-topbar{
    flex-direction:column;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:10px;
    padding:14px 14px 14px 18px;
  }
  .finder-topbar .title{ padding-right:0; }
  .finder-topbar h1{ font-size:20px; }
  .finder-topbar p{ font-size:13px; }
  .finder-topbar .tag{ white-space:normal; }
  .card{ padding:16px 14px; }
  .card-title{ align-items:flex-start; gap:8px; }
  .field-inline{ flex-wrap:wrap; }
  .field-inline .btn{ flex:1 1 auto; }
  .search-card-follow > .history-presets,
  .history-presets{
    flex-wrap:wrap;
    justify-content:stretch;
  }
  .search-follow-bar{
    flex-wrap:wrap;
    overflow:visible;
  }
  .search-follow-bar .history-block,
  .search-follow-bar .history-chips{ flex-wrap:wrap; }
  #searchCardFollow #maxResultsField{
    flex:1 1 100%;
    flex-wrap:wrap;
    width:100%;
  }
  #searchCardFollow #maxResultsField #maxResults{ width:100%; max-width:none; }
  .search-follow-bar .actions,
  .actions{
    flex-wrap:wrap;
    justify-content:stretch;
    width:100%;
  }
  .search-follow-bar .actions .btn,
  .actions .btn,
  .search-follow-bar .actions .btn-continue{
    flex:1 1 auto;
    min-height:42px;
  }
  .result-head{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  .result-head-actions{ width:100%; }
  .entitlement-chips{ gap:6px; }
  .entitlement-banner:not(.is-expanded){
    padding:10px 12px;
    margin-bottom:12px;
  }
  .entitlement-banner:not(.is-expanded) .entitlement-stats{
    display:flex;
    align-items:center;
    gap:8px;
  }
  .entitlement-banner:not(.is-expanded) .entitlement-stat{ display:none; }
  .entitlement-banner:not(.is-expanded) .entitlement-stat:has(#packageRemainingValue),
  .entitlement-banner:not(.is-expanded):not(:has(#packageRemainingValue)) .entitlement-stat:first-of-type{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    align-items:baseline;
    gap:8px;
    background:transparent;
    border:0;
    padding:0;
  }
  .entitlement-banner:not(.is-expanded) .entitlement-k{ margin:0; flex:none; }
  .entitlement-banner:not(.is-expanded) .entitlement-v{ font-size:18px; }
  .entitlement-banner:not(.is-expanded) .entitlement-s,
  .entitlement-banner:not(.is-expanded) .entitlement-chips,
  .entitlement-banner:not(.is-expanded) .entitlement-note,
  .entitlement-banner:not(.is-expanded) .entitlement-ledger-link{
    display:none !important;
  }
  .entitlement-banner:not(.is-expanded) .entitlement-cta{
    display:inline-flex;
    min-width:0;
    min-height:32px;
    height:32px;
    padding:0 12px;
    border-radius:8px;
    font-size:13px;
    grid-column:auto;
  }
  .entitlement-fold-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    height:32px;
    padding:0 12px;
    border:1px solid #d9d4f5;
    border-radius:8px;
    background:#fff;
    color:#45506a;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
  }
  .entitlement-banner.is-expanded .entitlement-fold-toggle{
    grid-column:1 / -1;
    justify-self:end;
  }
  .finder-notice-modal{ padding:16px; }
  .confirm-dialog{ width:min(420px, calc(100% - 24px)); }
  .settings-form .form-control,
  .settings-form .input-group{ max-width:100%; }
  .settings-form .input-group{ flex-wrap:nowrap; }
  .settings-form .btn-change{
    height:42px;
    min-height:42px;
    padding:0 14px;
    flex:none;
  }
  .credit-toolbar,
  .credit-ledger .credit-toolbar,
  .credit-range-form{ width:100%; }
  .credit-date{ flex:1 1 140px; }
  .credit-date input[type="date"]{ width:100%; }
  .site-back-top{
    right:14px;
    bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  }
}
@media(max-width:760px){
  .landing-features-wide{ grid-template-columns:1fr; }
}
@media(max-width:640px){
  .finder-logo .logo-text-lead{ display:none; }
  .spider-timer{
    top:12px;
    right:12px;
    left:12px;
    text-align:center;
  }
  .spider-timer-digits{ justify-content:center; }
  .spider-timer-cell{ width:26px; height:34px; font-size:18px; }
  .spider-title{ font-size:16px; padding:0 12px; }
  .spider-status,
  .spider-hint{ max-width:calc(100vw - 24px); }
  #keywordExhausted:not([hidden]){ flex-direction:column; }
  .form-layer{ min-width:0; width:100%; }
  .pay-guide article ul{ padding-left:18px; }
}

/* ---------------- 充值套餐分档卡（对齐全站白卡片 + 紫/海军蓝） ---------------- */
.plan-board{
  background:transparent;
  border-radius:0;
  padding:0;
  margin-bottom:18px;
}
.plan-section{ margin-bottom:28px; }
.plan-section-head{ margin:0 0 14px; }
.plan-section-head h2{
  position:relative;
  margin:0 0 6px;
  padding-left:12px;
  font-size:18px;
  font-weight:800;
  color:var(--text);
}
.plan-section-head h2::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  bottom:4px;
  width:3px;
  border-radius:99px;
  background:linear-gradient(180deg,#6c5ce7,#ff6b9d);
}
.plan-section-head p{
  margin:0;
  color:#566078;
  font-size:13px;
  line-height:1.65;
}

.pay-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.pay-stat{
  background:#f7f6ff;
  border:1px solid #ece9ff;
  border-radius:12px;
  padding:14px 16px;
  min-width:0;
}
.pay-stat-k{
  display:block;
  font-size:12px;
  color:#7a8499;
  margin-bottom:6px;
}
.pay-stat-v{
  display:block;
  font-size:22px;
  line-height:1.2;
  color:#292f49;
  font-weight:800;
  word-break:break-word;
}
.pay-stat-v-daily{ font-size:20px; }
.pay-stat-v-date{ font-size:20px; }
.pay-stat-s{
  display:block;
  margin-top:8px;
  font-size:12px;
  color:#566078;
  line-height:1.5;
}
.pay-guide{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.pay-guide article{
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  background:#fff;
}
.pay-guide h3{
  margin:0 0 8px;
  font-size:14px;
  font-weight:800;
  color:#5f50d4;
}
.pay-guide p{
  margin:0;
  font-size:13px;
  color:#566078;
  line-height:1.7;
}
.pay-guide ul{
  margin:0 0 8px;
  padding-left:18px;
  color:#566078;
  font-size:13px;
  line-height:1.7;
}
.pay-guide li + li{ margin-top:2px; }
.pay-guide-note{
  margin:14px 0 0;
  padding:10px 12px;
  background:#f6f4ff;
  border-radius:10px;
  font-size:12px;
  color:#5f50d4;
  line-height:1.55;
}
.pay-rules{
  margin:0;
  border:0;
}
.pay-rules > summary{
  display:none;
  cursor:pointer;
  list-style:none;
  font-size:14px;
  font-weight:800;
  color:#5f50d4;
  padding:10px 0 2px;
}
.pay-rules > summary::-webkit-details-marker{ display:none; }
.plan-more{
  margin-top:8px;
  border-top:1px dashed #e4e0fb;
  padding-top:8px;
}
.plan-more > summary{
  cursor:pointer;
  list-style:none;
  font-size:13px;
  font-weight:700;
  color:#5f50d4;
}
.plan-more > summary::-webkit-details-marker{ display:none; }
.plan-more p{
  margin:8px 0 0;
  font-size:13px;
  color:#566078;
  line-height:1.65;
}
.plan-swipe-hint{ display:none; }
.plan-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.plan-card{
  position:relative;
  background:
    radial-gradient(180px 80px at 100% 0%, rgba(108,92,231,.06), transparent 70%),
    var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px 18px 16px;
  color:var(--text);
  min-height:278px;
  display:flex;
  flex-direction:column;
  box-shadow:0 10px 28px rgba(20,34,66,.06);
  overflow:hidden;
}
.plan-card::before{
  content:"";
  display:block;
  height:6px;
  margin:-20px -18px 16px;
  background:linear-gradient(90deg, var(--primary), #9f8cff);
}
.plan-card::after{
  content:"";
  position:absolute;
  width:140px;
  height:140px;
  right:-36px;
  top:-48px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(108,92,231,.12), transparent 70%);
  pointer-events:none;
}
.plan-card h2{
  margin:0 0 14px;
  text-align:center;
  font-size:20px;
  font-weight:800;
  color:var(--text);
  letter-spacing:.2px;
}
.plan-metrics{
  background:#f6f4ff;
  border:1px solid #ece9ff;
  border-radius:12px;
  padding:12px 14px;
  flex:1;
}
.plan-metric{
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 0;
  color:#45506a;
  font-size:14px;
  line-height:1.4;
}
.plan-enterprise{
  margin:0;
  color:#566078;
  font-size:14px;
  line-height:1.65;
  padding:8px 2px;
}
.plan-ico{
  width:18px;
  height:18px;
  flex:none;
  background:center / contain no-repeat;
  opacity:.95;
}
.plan-ico-bolt{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/></svg>");
}
.plan-ico-usd{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2318a66a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='1' x2='12' y2='23'/><path d='M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/></svg>");
}
.plan-ico-calc{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f50d4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='2' width='16' height='20' rx='2'/><line x1='8' y1='6' x2='16' y2='6'/><line x1='8' y1='10' x2='8' y2='10'/><line x1='12' y1='10' x2='12' y2='10'/><line x1='16' y1='10' x2='16' y2='10'/></svg>");
}
.plan-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:14px;
}
.plan-actions{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.plan-actions form{ margin:0; }
.plan-buy{
  border:0;
  border-radius:9px;
  padding:8px 16px;
  font-weight:800;
  cursor:pointer;
  color:#fff;
  background:var(--primary);
  text-decoration:none;
  display:inline-block;
  line-height:1.2;
  font-size:14px;
}
.plan-buy:hover{ filter:brightness(1.06); text-decoration:none; color:#fff; }
.plan-buy:disabled{ opacity:.55; cursor:not-allowed; filter:none; }
.pay-qr-modal[hidden]{ display:none !important; }
.pay-qr-modal{
  position:fixed;
  inset:0;
  z-index:90;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(20,24,40,.42);
}
.pay-qr-dialog{
  width:min(560px, 100%);
  max-height:min(80vh, 720px);
  overflow:auto;
  background:#fff;
  color:var(--text);
  border-radius:16px;
  box-shadow:0 20px 48px rgba(20,34,66,.22);
}
.pay-qr-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px 10px;
  border-bottom:1px solid #eef1f6;
}
.pay-qr-head strong{
  font-size:16px;
  line-height:1.4;
}
.pay-qr-close{
  flex:none;
  border:0;
  background:transparent;
  color:#7a8499;
  font-size:13px;
  cursor:pointer;
}
.pay-qr-body{
  padding:14px 18px 20px;
  font-size:14px;
  line-height:1.7;
}
.pay-qr-lead{ margin:0 0 10px; color:#3d4a63; }
.pay-qr-account{
  margin:0 0 10px;
  color:#1f2a3d;
}
.pay-qr-account strong{ font-weight:800; }
.pay-qr-plan{
  margin:0 0 10px;
  color:#1f2a3d;
  font-weight:700;
}
.pay-qr-copy-text{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:0 0 10px;
  padding:10px 12px;
  border:1px solid #eef1f6;
  border-radius:10px;
  background:#f7f8fb;
  color:#1f2a3d;
  font:inherit;
  font-size:13px;
  line-height:1.6;
  resize:none;
}
.pay-qr-copy-text[hidden]{ display:none !important; }
.pay-qr-copy-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 14px;
}
.pay-qr-copy{
  border:1px solid var(--primary);
  border-radius:9px;
  padding:7px 14px;
  font-weight:800;
  cursor:pointer;
  color:var(--primary);
  background:#fff;
  font-size:13px;
  line-height:1.2;
}
.pay-qr-copy:hover{ background:#f4f2ff; }
.pay-qr-copy:disabled{
  opacity:.55;
  cursor:not-allowed;
  filter:none;
}
.pay-qr-copy.is-done{
  color:#18794e;
  border-color:#18794e;
}
.pay-qr-copy-hint{
  font-size:13px;
  color:#18794e;
}
.pay-qr-copy-hint.is-err{ color:#b42318; }
.pay-qr-empty{ margin:0; color:#7a8499; }
.pay-qr-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:14px;
}
.pay-qr-card{
  margin:0;
  text-align:center;
}
.pay-qr-card img{
  width:100%;
  max-width:200px;
  aspect-ratio:1;
  object-fit:contain;
  border:1px solid #eef1f6;
  border-radius:12px;
  background:#f7f8fb;
}
.pay-qr-card figcaption{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:8px;
  font-size:13px;
  color:#566078;
}
.pay-qr-card figcaption strong{
  color:#1f2a3d;
  font-size:14px;
}
.plan-alt-btn{
  border:0;
  background:transparent;
  color:#6f7b91;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  padding:0;
  text-decoration:underline;
}
.plan-alt-btn:hover{ color:var(--primary); }
.plan-sum{
  font-size:20px;
  font-weight:800;
  color:var(--dark);
  white-space:nowrap;
}
.plan-card.theme-wood::before{ background:linear-gradient(90deg,#b7a3ff,#d6ccff); }
.plan-card.theme-bronze::before{ background:linear-gradient(90deg,#9f8cff,#c4bcff); }
.plan-card.theme-silver::before{ background:linear-gradient(90deg,#8b93b3,#c5cad8); }
.plan-card.theme-gold::before{ background:linear-gradient(90deg,var(--primary),#ff6b9d); }
.plan-card.theme-platinum::before{ background:linear-gradient(90deg,#292f49,#5b647c); }
.plan-card.theme-diamond::before{ background:linear-gradient(90deg,#5b8def,#8d7ff0); }
.plan-card.theme-wood .plan-buy{ background:#9f8cff; }
.plan-card.theme-bronze .plan-buy{ background:#8d7ff0; }
.plan-card.theme-silver .plan-buy{ background:#5b647c; }
.plan-card.theme-gold .plan-buy{ background:var(--primary); }
.plan-card.theme-platinum .plan-buy{ background:#292f49; }
.plan-card.theme-diamond .plan-buy{ background:#5b8def; }
.plan-card.theme-gold{
  border-color:#cfc7ff;
  box-shadow:0 10px 28px rgba(108,92,231,.14);
}
.plan-card.theme-gold::after{
  background:radial-gradient(circle, rgba(108,92,231,.20), transparent 70%);
}
.plan-card.theme-diamond::after{
  background:radial-gradient(circle, rgba(91,141,239,.16), transparent 70%);
}

.creator-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.creator-head .result-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.creator-body{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.creator-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.creator-metrics .metric{
  flex:0 1 auto;
  min-width:108px;
  padding:10px 14px;
  background:#f4f6fb;
  border:1px solid #eef1f7;
  border-radius:12px;
}
.creator-metrics .label{
  display:block;
  font-size:12px;
  color:#7a8499;
  margin-bottom:4px;
}
.creator-metrics .metric strong{
  display:block;
  font-size:16px;
  font-weight:800;
  color:#172033;
  line-height:1.25;
}
.creator-copy{
  padding:12px 16px;
  background:#f8f9fc;
  border:1px solid #eef1f7;
  border-radius:12px;
}
.creator-bio{
  margin:0 0 8px;
  color:#364159;
  line-height:1.6;
  word-break:break-word;
}
.creator-notes{
  display:flex;
  flex-wrap:wrap;
  gap:6px 16px;
  font-size:13px;
  color:#6f7b91;
  line-height:1.5;
}
.creator-notes strong{ color:#364159; }

.entitlement-ledger-link{
  margin:10px 0 0;
  font-size:13px;
}
.credit-ledger .credit-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.credit-shortcuts,
.credit-kinds{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.credit-kinds{ margin:4px 0 14px; }
.credit-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:99px;
  border:1px solid var(--line);
  background:#fff;
  color:#364159;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
.credit-chip:hover,
.credit-chip:focus{
  color:var(--primary);
  border-color:#d9d4fb;
  text-decoration:none;
}
.credit-chip.is-active{
  background:#efeefe;
  border-color:#d4cff8;
  color:#5f50d4;
  box-shadow:0 6px 14px rgba(108,92,231,.12);
}
.credit-range-form{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:flex-end;
}
.credit-date{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:#7a8499;
  font-weight:700;
}
.credit-date input[type="date"]{
  min-height:36px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:#172033;
}
.credit-summary{ margin-bottom:18px; }
.credit-summary.pay-stats{ grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); }
.credit-places{ margin:0 0 18px; }
.credit-places .bar-row,
.credit-place{
  display:flex;
  align-items:center;
  gap:12px;
  margin:10px 0;
  font-size:13px;
  color:inherit;
  text-decoration:none;
}
.credit-place .name{
  width:140px;
  color:#566078;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.credit-place .bar{
  flex:1;
  height:10px;
  background:#eceff5;
  border-radius:99px;
  overflow:hidden;
}
.credit-place .bar i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#6c5ce7,#8d7ff0);
  border-radius:99px;
}
.credit-place .num{
  width:40px;
  text-align:right;
  color:#364159;
  font-weight:700;
}
.credit-place.is-active .name{ color:#5f50d4; font-weight:800; }
.credit-place-clear{
  margin:8px 0 0;
  font-size:13px;
}
.credit-table td.credit-delta-down{ color:var(--danger); font-weight:800; }
.credit-table td.credit-delta-up{ color:var(--success); font-weight:800; }
.credit-table td.credit-delta-zero{ color:#7a8499; }
.credit-extra{ color:#7a8499; }
.credit-wallet{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 8px;
  border-radius:99px;
  background:#f3f0ff;
  color:#5f50d4;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.credit-pager{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:center;
  margin-top:16px;
}
.credit-pager .btn[aria-disabled="true"]{
  opacity:.45;
  pointer-events:none;
}
.credit-pager-meta{ color:#7a8499; font-size:13px; }
.credit-pager-alone{ text-align:center; margin:14px 0 0; }

@media (max-width:1100px){
  .plan-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pay-stats{ grid-template-columns:1fr 1fr; }
  .entitlement-stats{ grid-template-columns:1fr 1fr; }
  .entitlement-cta{ grid-column:1 / -1; min-height:42px; }
}
@media (max-width:720px){
  .plan-grid{ grid-template-columns:1fr; }
  .plan-sum{ font-size:18px; }
  .pay-stats,.pay-guide{ grid-template-columns:1fr; }
  .entitlement-stats{ grid-template-columns:1fr; }
  .credit-place .name{ width:96px; }
  .credit-range-form{ width:100%; }
}

/* ============================================================
   氛围层 + 轻动效（不改业务布局，尊重减少动效）
   ============================================================ */
.fx-stage{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.fx-stage::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(23,32,51,.045) .7px, transparent .8px);
  background-size:3px 3px;
  opacity:.55;
}
.fx-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(36px);
  opacity:.72;
  will-change:transform;
}
.fx-orb-a{
  width:420px;
  height:420px;
  left:-90px;
  top:-80px;
  background:radial-gradient(circle, rgba(108,92,231,.38), rgba(108,92,231,0) 68%);
  animation:fx-float-a 16s ease-in-out infinite;
}
.fx-orb-b{
  width:360px;
  height:360px;
  right:-70px;
  top:18%;
  background:radial-gradient(circle, rgba(255,107,157,.28), rgba(255,107,157,0) 70%);
  animation:fx-float-b 19s ease-in-out infinite;
}
.fx-orb-c{
  width:300px;
  height:300px;
  left:28%;
  bottom:-90px;
  background:radial-gradient(circle, rgba(91,141,239,.22), rgba(91,141,239,0) 70%);
  animation:fx-float-c 22s ease-in-out infinite;
}
.fx-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(108,92,231,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(108,92,231,.045) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 70% 55% at 50% 18%, #000 20%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 70% 55% at 50% 18%, #000 20%, transparent 75%);
}
.fx-spark{
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 10px 3px rgba(157,140,255,.55);
  opacity:.0;
  animation:fx-spark 7.5s ease-in-out infinite;
}
.fx-spark-1{ left:18%; top:22%; animation-delay:.2s; }
.fx-spark-2{ left:72%; top:16%; animation-delay:1.8s; }
.fx-spark-3{ left:58%; top:68%; animation-delay:3.4s; }
.fx-spark-4{ left:32%; top:78%; animation-delay:5s; }
.fx-spark-5{ left:8%; top:48%; animation-delay:2.6s; }
.fx-spark-6{ left:88%; top:42%; animation-delay:4.2s; }

.logo-mark{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:9px;
  background:linear-gradient(135deg,#6c5ce7,#ff6b9d);
  box-shadow:0 6px 16px rgba(108,92,231,.35);
  position:relative;
  flex:none;
}
.logo-mark::before{
  content:"";
  width:0;
  height:0;
  margin-left:2px;
  border-left:8px solid #fff;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}
.logo-mark::after{
  content:"";
  position:absolute;
  inset:-3px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.18);
  pointer-events:none;
}
.finder-logo .logo-text span,
.site-brand > span:last-child,
.auth-brand > span:not(.sub):not(.logo-mark){
  background:linear-gradient(90deg,#9f8cff,#ff6b9d,#8d7ff0,#9f8cff);
  background-size:200% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:fx-sheen 8s linear infinite;
}
.auth-brand .logo-mark{
  display:grid;
  margin:0 auto 12px;
}
.finder-sidebar-footer .avatar{
  box-shadow:0 0 0 3px rgba(159,140,255,.18);
}

.finder-topbar,
.finder-main > .entitlement-banner,
.finder-main > .card,
.finder-main > .stats-grid,
.auth-brand,
.auth-card,
.landing-hero,
.landing-section,
.landing-cta-band,
.site-page-head,
.site-article,
.news-list .news-row,
.news-grid .news-card,
.plan-section{
  animation:fx-rise .55s ease forwards;
}
.finder-main > .card:nth-of-type(2){ animation-delay:.04s; }
.finder-main > .card:nth-of-type(3){ animation-delay:.08s; }
.finder-main > .settings-grid > .card{
  animation:fx-rise .55s ease forwards;
}
.landing-features .card{
  animation:fx-rise .55s ease forwards;
}
.landing-features .card:nth-child(1){ animation-delay:.04s; }
.landing-features .card:nth-child(2){ animation-delay:.08s; }
.landing-features .card:nth-child(3){ animation-delay:.12s; }
.landing-features .card:nth-child(4){ animation-delay:.16s; }
.landing-features .card:nth-child(5){ animation-delay:.20s; }
.landing-features .card:nth-child(6){ animation-delay:.24s; }
.landing-features .card:nth-child(7){ animation-delay:.28s; }
.landing-features .card:nth-child(8){ animation-delay:.32s; }
.landing-features .card:nth-child(9){ animation-delay:.36s; }

.landing-features .card,
.landing-steps .card,
a.news-card,
a.news-row,
.plan-card{
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.landing-features .card:hover:not(.is-open),
.landing-steps .card:hover,
a.news-card:hover,
a.news-row:hover,
.plan-card:hover{
  transform:translateY(-4px);
  border-color:#d4cdf8;
  box-shadow:0 16px 36px rgba(20,34,66,.10);
}

.landing-steps{ position:relative; }
@media (min-width:901px){
  .landing-steps::before{
    content:"";
    position:absolute;
    top:36px;
    left:14%;
    right:14%;
    height:2px;
    background:linear-gradient(90deg, transparent, rgba(108,92,231,.22), transparent);
    pointer-events:none;
  }
  .landing-steps .card{ position:relative; z-index:1; }
}
.step-no{
  box-shadow:0 0 0 4px rgba(108,92,231,.08);
}

.fx-hero-deco{
  position:absolute;
  inset:8px 0 auto;
  height:120px;
  pointer-events:none;
}
.fx-hero-deco i{
  position:absolute;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(108,92,231,.18), rgba(255,107,157,.14));
  animation:fx-bob 5.5s ease-in-out infinite;
}
.fx-hero-deco i:nth-child(1){ width:14px; height:14px; left:12%; top:28px; }
.fx-hero-deco i:nth-child(2){ width:10px; height:10px; right:16%; top:18px; animation-delay:1.1s; }
.fx-hero-deco i:nth-child(3){ width:8px; height:8px; left:46%; top:8px; animation-delay:2s; }

.entitlement-stat,
.pay-stat{
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.entitlement-stat:hover,
.pay-stat:hover{
  transform:translateY(-2px);
  border-color:#d9d4f5;
  box-shadow:0 10px 22px rgba(20,34,66,.06);
}
.entitlement-cta{
  position:relative;
  overflow:hidden;
  background:linear-gradient(90deg,var(--primary),var(--primary2));
  box-shadow:0 8px 18px var(--glow);
  transition:transform .2s, filter .2s;
}
.range-chip span,
.history-chip,
.news-tabs a,
.site-links a{
  transition:background .2s, color .2s, border-color .2s, transform .2s;
}
.range-chip span:hover,
.history-chip:hover{
  transform:translateY(-1px);
}
.landing-kicker{
  animation:fx-kicker 2.8s ease-in-out infinite;
}

.site-wrap,
.site-footer{ position:relative; z-index:1; }
.site-footer{
  background:linear-gradient(180deg,#1c2140,#171b2e);
}

@keyframes fx-rise{
  from{ transform:translateY(10px); }
  to{ transform:none; }
}
@keyframes fx-sheen{
  to{ background-position:200% 0; }
}
@keyframes fx-shine{
  from{ transform:skewX(-18deg) translateX(0); }
  to{ transform:skewX(-18deg) translateX(380%); }
}
@keyframes fx-float-a{
  0%,100%{ transform:translate3d(0,0,0); }
  50%{ transform:translate3d(28px,22px,0); }
}
@keyframes fx-float-b{
  0%,100%{ transform:translate3d(0,0,0); }
  50%{ transform:translate3d(-24px,18px,0); }
}
@keyframes fx-float-c{
  0%,100%{ transform:translate3d(0,0,0); }
  50%{ transform:translate3d(16px,-20px,0); }
}
@keyframes fx-spark{
  0%,100%{ opacity:0; transform:translateY(8px) scale(.6); }
  35%{ opacity:.9; transform:translateY(-6px) scale(1); }
  70%{ opacity:0; transform:translateY(-16px) scale(.4); }
}
@keyframes fx-bob{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-8px); }
}
@keyframes fx-kicker{
  0%,100%{ opacity:.78; letter-spacing:.14em; }
  50%{ opacity:1; letter-spacing:.18em; }
}

@media (max-width:760px){
  .fx-spark{ display:none; }
  .fx-grid{ opacity:.4; }
  .fx-orb{ opacity:.42; filter:blur(48px); }
  .landing-hero h1{ font-size:32px; }
  .finder-logo{ font-size:16px; padding:0; }
}

@media (prefers-reduced-motion: reduce){
  .fx-orb,
  .fx-spark,
  .fx-hero-deco i,
  .logo-mark,
  .finder-logo .logo-text span,
  .site-brand > span:last-child,
  .auth-brand > span:not(.sub):not(.logo-mark),
  .landing-kicker,
  .btn-primary::after,
  .landing-features .ico,
  .finder-topbar,
  .finder-main > .entitlement-banner,
  .finder-main > .card,
  .auth-brand,
  .auth-card,
  .landing-hero,
  .landing-section,
  .landing-cta-band,
  .landing-features .card,
  .finder-main > .settings-grid > .card,
  .site-page-head,
  .site-article,
  .news-list .news-row,
  .news-grid .news-card,
  .plan-section,
  .finder-main > .stats-grid{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
  .card:hover,
  .landing-features .card:hover,
  .landing-steps .card:hover,
  a.news-card:hover,
  a.news-row:hover,
  .plan-card:hover,
  .entitlement-stat:hover,
  .pay-stat:hover,
  .btn:hover,
  .btn-primary:hover,
  .site-back-top,
  .site-back-top:hover,
  .site-back-top.is-hidden,
  .range-chip span:hover,
  .history-chip:hover,
  .site-footer-cols a:hover,
  a.news-row:hover .news-thumb,
  a.news-card:hover .news-thumb{
    transform:none;
  }
}

.stat-card{
  position:relative;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.stat-card::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  top:0;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg, transparent, rgba(108,92,231,.42), rgba(255,107,157,.32), transparent);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.stat-card:hover{
  border-color:#d9d4f5;
  box-shadow:0 14px 34px rgba(20,34,66,.08);
}
.stat-card:hover::after{ opacity:1; }
.an-metric{
  transition:border-color .2s ease, box-shadow .2s ease;
}
.an-metric:hover{
  border-color:#d9d4f5;
  box-shadow:0 10px 22px rgba(20,34,66,.06);
}
.news-list .news-row:nth-child(1),
.news-grid .news-card:nth-child(1){ animation-delay:.04s; }
.news-list .news-row:nth-child(2),
.news-grid .news-card:nth-child(2){ animation-delay:.08s; }
.news-list .news-row:nth-child(3),
.news-grid .news-card:nth-child(3){ animation-delay:.12s; }
.news-list .news-row:nth-child(4){ animation-delay:.16s; }
.news-list .news-row:nth-child(5){ animation-delay:.20s; }
.news-list .news-row{
  animation-fill-mode:forwards;
}

/* ---------------- 多词委托 + 站内通知 ---------------- */
.finder-notice{
  position:relative;
  flex:none;
}
.finder-notice-bell{
  position:relative;
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid rgba(159,140,255,.28);
  border-radius:10px;
  background:rgba(42,48,82,.55);
  color:#d8d3ff;
  cursor:pointer;
}
.finder-notice-bell:hover{
  color:#fff;
  border-color:rgba(159,140,255,.5);
  background:rgba(54,60,98,.8);
}
.finder-notice-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:16px;
  padding:0 5px;
  border-radius:99px;
  background:#ff6b9d;
  color:#fff;
  font-size:10px;
  font-weight:700;
  line-height:16px;
  text-align:center;
}
.finder-notice-badge[hidden]{ display:none !important; }
.finder-notice-panel[hidden]{ display:none !important; }
.finder-notice-panel{
  position:absolute;
  left:100%;
  top:0;
  z-index:40;
  width:min(280px, calc(100vw - 32px));
  margin-left:10px;
  background:var(--card);
  color:var(--text);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 16px 36px rgba(20,34,66,.16);
  overflow:hidden;
}
.finder-notice-head{
  padding:10px 12px;
  font-size:13px;
  font-weight:700;
  border-bottom:1px solid #eef1f6;
}
.finder-notice-list{
  max-height:280px;
  overflow:auto;
}
.finder-notice-foot{
  border-top:1px solid #eef1f6;
  padding:8px 10px;
  text-align:center;
}
.finder-notice-foot[hidden]{ display:none !important; }
.finder-notice-foot a{
  display:inline-block;
  font-size:12px;
  font-weight:600;
  color:#6b5ce7;
  text-decoration:none;
}
.finder-notice-foot a:hover{ text-decoration:underline; }
.finder-notice-empty{
  margin:0;
  padding:18px 12px;
  font-size:13px;
  color:#7a8499;
  text-align:center;
}
.finder-notice-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:100%;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid #f0f2f7;
  background:#fff;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.finder-notice-item:hover{ background:#f7f6ff; }
.finder-notice-item.is-read{ opacity:.62; }
.finder-notice-item strong{
  font-size:13px;
  line-height:1.4;
}
.finder-notice-item span{
  font-size:12px;
  line-height:1.5;
  color:#7a8499;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.finder-notice-tag{
  display:inline-block;
  margin:0 0 2px;
  padding:1px 6px;
  border-radius:99px;
  background:#f3f0ff;
  color:#6b5ce7;
  font-size:10px;
  font-style:normal;
  font-weight:600;
  line-height:16px;
}
.finder-notice-banner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:10px 20px;
  background:#fff6e8;
  color:#7a4b00;
  border-bottom:1px solid #f0d7a8;
}
.finder-notice-banner[hidden]{ display:none !important; }
.finder-notice-banner-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.finder-notice-banner-copy strong{
  font-size:13px;
  line-height:1.4;
}
.finder-notice-banner-copy span{
  font-size:12px;
  line-height:1.5;
  opacity:.88;
}
.finder-notice-banner-ok{
  flex:none;
  border:1px solid #e2c48a;
  background:#fff;
  color:#7a4b00;
  border-radius:8px;
  padding:4px 10px;
  font-size:12px;
  cursor:pointer;
}
.finder-notice-modal[hidden]{ display:none !important; }
.finder-notice-modal{
  position:fixed;
  inset:0;
  z-index:80;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(20,24,40,.42);
}
.finder-notice-modal-card{
  width:min(520px, 100%);
  max-height:min(70vh, 560px);
  overflow:auto;
  background:#fff;
  color:var(--text);
  border-radius:16px;
  box-shadow:0 20px 48px rgba(20,34,66,.22);
}
.finder-notice-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px 10px;
  border-bottom:1px solid #eef1f6;
}
.finder-notice-modal-head strong{
  font-size:16px;
  line-height:1.4;
}
.finder-notice-modal-close{
  flex:none;
  border:0;
  background:transparent;
  color:#7a8499;
  font-size:13px;
  cursor:pointer;
}
.finder-notice-modal-body{
  padding:14px 18px 20px;
  font-size:14px;
  line-height:1.7;
  white-space:pre-wrap;
}
.notice-inbox-list{
  display:flex;
  flex-direction:column;
}
.notice-inbox-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  width:100%;
  padding:14px 4px 16px;
  border:0;
  border-bottom:1px solid #f0f2f7;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.notice-inbox-item:hover{ background:#f7f6ff; }
.notice-inbox-item.is-read{ opacity:.62; }
.notice-inbox-item strong{
  font-size:15px;
  line-height:1.4;
}
.notice-inbox-item > span{
  font-size:13px;
  line-height:1.55;
  color:#7a8499;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  white-space:pre-wrap;
}
.notice-inbox-meta{
  display:flex;
  align-items:center;
  gap:8px;
}
.notice-inbox-meta time{
  font-size:12px;
  color:#9aa3b5;
}
.notice-inbox-empty{
  margin:0;
  padding:28px 8px;
  text-align:center;
  color:#7a8499;
}
.notice-pager{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:16px 0 4px;
  font-size:13px;
  color:#7a8499;
}
.notice-pager a{
  color:#6b5ce7;
  text-decoration:none;
  font-weight:600;
}
.notice-pager a:hover{ text-decoration:underline; }
.notice-pager .is-off{ opacity:.4; }

.field-inline{
  display:flex;
  align-items:center;
  gap:8px;
}
.field-inline input{
  flex:1;
  min-width:0;
  width:auto;
}
.field-inline .btn{
  flex:none;
  height:42px;
  padding:0 14px;
  white-space:nowrap;
}

.confirm-dialog.batch-quote-dialog{
  width:min(680px, calc(100% - 28px));
  max-height:min(90vh, 820px);
  padding:22px 22px 18px;
  overflow:auto;
}
.batch-quote-dialog h3{ margin:0; font-size:20px; color:#1f2a3d; }
.batch-quote-dialog p{ margin:0; }
.batch-quote-head{ margin:0 0 12px; }
.batch-quote-kicker{
  margin:0 0 4px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  color:#6c5ce7;
}
.batch-quote-notice{
  margin:0 0 10px;
  padding:10px 12px;
  border-radius:10px;
  background:#f7f6ff;
  border:1px solid #e4e0fb;
  font-size:13px;
  line-height:1.55;
  color:#364159;
}
.batch-quote-notice strong{ display:block; margin-bottom:2px; color:#2c225f; }
.batch-quote-inputs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 0 12px;
}
.batch-quote-pane label{
  display:block;
  margin:0 0 6px;
  font-size:13px;
  font-weight:700;
  color:#566078;
}
.batch-quote-filebox{
  min-height:110px;
  padding:12px;
  border:1px dashed #d4d0ef;
  border-radius:10px;
  background:#fbfbfe;
}
.batch-quote-filebox span{ display:block; margin-top:8px; font-size:12px; color:#7a8499; }
.batch-quote-options{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin:0 0 4px;
}
.batch-quote-options:has(#batchCountryOption:not([hidden])){
  grid-template-columns:1fr 1fr;
}
.batch-quote-option{
  display:flex;
  flex-direction:column;
  gap:6px;
  max-width:320px;
  margin:0;
}
.batch-quote-options:has(#batchCountryOption:not([hidden])) .batch-quote-option{
  max-width:none;
}
.batch-quote-option[hidden]{ display:none !important; }
.batch-quote-option label{ font-size:13px; font-weight:700; color:#566078; }
.batch-quote-option select{
  width:100%;
  height:42px;
  border:1px solid #dfe3ec;
  border-radius:9px;
  padding:0 12px;
  background:#fff;
}
.batch-quote-dialog .confirm-actions{ margin-top:16px; }
@media (max-width:640px){
  .batch-quote-inputs{ grid-template-columns:1fr; }
  .batch-quote-options,
  .batch-quote-options:has(#batchCountryOption:not([hidden])){ grid-template-columns:1fr; }
  .batch-quote-option{ max-width:none; }
}
.batch-quote-dialog .email-filter{ margin-left:0; }
.batch-quote-dialog input[type="file"]{
  height:auto;
  padding:8px 0;
  border:0;
  box-shadow:none;
}
.batch-card[hidden],
.batch-rail[hidden]{ display:none !important; }
#searchConditionCard{
  display:grid;
  grid-template-columns:1fr;
  gap:16px 20px;
  align-items:stretch;
  grid-template-areas:"main" "filter" "follow";
  overflow:visible;
}
#searchConditionCard > .search-card-main{ grid-area:main; min-width:0; }
#searchConditionCard > .batch-rail{ grid-area:rail; }
#searchConditionCard > #localFilterPanel{ grid-area:filter; }
#searchConditionCard > .search-card-follow{ grid-area:follow; min-width:0; }
#searchConditionCard.has-batch-rail{
  grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  grid-template-areas:"main rail" "follow rail";
}
#searchConditionCard.has-batch-rail.has-local-filters{
  grid-template-areas:"main rail" "filter rail" "follow follow";
  align-items:start;
}
#searchConditionCard.has-batch-rail.has-local-filters > .batch-rail{
  align-self:stretch;
  height:auto;
  min-height:0;
  overflow:hidden;
}
#searchCaptureGrid{
  max-width:none;
  grid-template-columns:minmax(128px,170px) minmax(170px,210px) minmax(240px,520px);
  justify-content:start;
}
#searchCaptureGrid #keywordField,
#searchCaptureGrid #competitorField{ min-width:0; }
#searchConditionCard.has-batch-rail #searchCaptureGrid{
  grid-template-columns:minmax(120px,150px) minmax(150px,180px) minmax(200px,1fr);
}
#searchConditionCard.has-batch-rail:has(> .batch-rail[hidden]),
#searchConditionCard.has-batch-rail.has-local-filters:has(> .batch-rail[hidden]){
  grid-template-columns:1fr;
  grid-template-areas:"main" "filter" "follow";
}
#searchConditionCard.has-batch-rail:has(> .batch-rail[hidden]) #searchCaptureGrid{
  grid-template-columns:minmax(128px,170px) minmax(170px,210px) minmax(240px,520px);
}
#searchConditionCard.has-batch-rail #searchCardSub{ display:none; }
.batch-rail{
  min-width:0;
  height:100%;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  padding:12px;
  border:1px solid #e4e0fb;
  border-radius:12px;
  background:#fbfbfe;
}
.batch-rail .card-title{ margin-bottom:8px; }
.batch-rail .card-title h2{ font-size:15px; }
.batch-history-link{
  border:0;
  background:none;
  padding:0;
  color:#6c5ce7;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.batch-history-link:hover{ text-decoration:underline; }
.batch-rail > .sub{ display:block; margin:0 0 8px; font-size:12px; color:#6f7b91; }
.confirm-dialog.batch-history-dialog{
  width:min(560px,92vw);
  max-height:min(90vh, 820px);
  overflow:auto;
}
.batch-history-list{
  list-style:none;
  margin:12px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.batch-history-pager{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:center;
  margin:12px 0 0;
}
.batch-history-pager[hidden]{ display:none !important; }
.batch-history-pager .btn[aria-disabled="true"]{
  opacity:.45;
  pointer-events:none;
}
.batch-history-pager-meta{
  color:#7a8499;
  font-size:12px;
}
.batch-history-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #e6e9f2;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.batch-history-item:hover{
  border-color:#8b7cf0;
  background:#f7f6ff;
}
.batch-history-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.batch-history-main strong{ font-size:13px; color:#364159; }
.batch-history-main span{ font-size:12px; color:#6f7b91; }
.batch-history-main em{
  font-style:normal;
  font-size:12px;
  color:#364159;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.batch-history-fee{
  flex:none;
  font-size:12px;
  color:#6c5ce7;
  white-space:nowrap;
}
.confirm-dialog.batch-export-dialog{ width:min(640px,94vw); }
.batch-export-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 14px;
  margin:12px 0 0;
}
.batch-export-grid .field{ margin:0; }
.batch-export-grid label{ display:block; margin-bottom:6px; font-size:12px; font-weight:700; color:#566078; }
.batch-export-grid select{
  width:100%;
  height:38px;
  border:1px solid #dfe3ec;
  border-radius:8px;
  padding:0 10px;
  color:#364159;
}
.batch-dl-follower-custom{
  display:flex;
  margin:8px 0 0;
  margin-left:0;
}
.batch-export-grid .email-filter{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:22px;
  font-weight:600;
}
.batch-export-mode{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:14px 0 0;
}
.batch-export-choice{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:10px 12px;
  border:1px solid #e6e9f2;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.batch-export-choice:has(input:checked){
  border-color:#8b7cf0;
  background:#f7f6ff;
}
.batch-export-choice span{ display:flex; flex-direction:column; gap:2px; font-size:12px; color:#6f7b91; }
.batch-export-choice strong{ font-size:13px; color:#364159; }
@media (max-width:640px){
  .batch-export-grid{ grid-template-columns:1fr; }
}
.batch-rail .batch-filter-hint{ margin:0 0 8px; padding:8px 10px; font-size:12px; }
.batch-rail .actions{ margin-top:auto; padding-top:12px; flex-wrap:wrap; }
@media (max-width:860px){
  #searchConditionCard.has-batch-rail,
  #searchConditionCard.has-batch-rail.has-local-filters{
    grid-template-columns:1fr;
    grid-template-areas:"main" "rail" "filter" "follow";
  }
  #searchCaptureGrid{ max-width:none; }
}
.batch-filter-hint{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:10px;
  background:#f7f6ff;
  border:1px solid #e4e0fb;
  font-size:13px;
  line-height:1.55;
  color:#364159;
}
.batch-filter-hint[hidden]{ display:none !important; }
#localFilterPanel{ scroll-margin-top:80px; }
.local-filter-panel.is-from-batch{
  outline:2px solid #8b7cf0;
  outline-offset:6px;
  border-radius:12px;
}
.batch-quote-lead{
  margin:0 0 14px;
  font-size:12px;
  line-height:1.55;
  color:#7a8499;
}
.batch-quote-dialog textarea{
  width:100%;
  min-height:110px;
  border:1px solid #dfe3ec;
  border-radius:9px;
  padding:10px 12px;
  resize:vertical;
  outline:none;
}
.batch-quote-dialog textarea:focus{
  border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(108,92,231,.1);
}
.batch-quote-pane-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0 0 6px;
}
.batch-quote-pane-head label{ margin:0; }
.batch-template-link{
  font-size:12px;
  font-weight:700;
  color:#6c5ce7;
  text-decoration:none;
  white-space:nowrap;
}
.batch-template-link:hover{ text-decoration:underline; }
.batch-quote-file{
  font-size:13px;
  color:#566078;
}
.batch-quote-cost{
  margin:12px 0 0;
  padding:12px 14px;
  border-radius:10px;
  background:#fff6e8;
  border:1px solid #f0d2a0;
}
.batch-quote-cost[hidden]{ display:none !important; }
.batch-quote-cost.is-short{
  background:#fff1f0;
  border-color:#f0b8b4;
}
.batch-quote-cost-kicker{
  margin:0 0 4px;
  font-size:12px;
  font-weight:700;
  color:#8a5a12;
}
.batch-quote-cost.is-short .batch-quote-cost-kicker{ color:#9b1c1c; }
.batch-quote-cost-num{
  margin:0;
  font-size:15px;
  line-height:1.4;
  color:#3d2a10;
}
.batch-quote-cost-num strong{
  font-size:22px;
  color:#b42318;
}
.batch-quote-cost-cap{
  margin:6px 0 0;
  font-size:12px;
  line-height:1.5;
  color:#7a5a28;
}
.batch-commit-cost{
  margin:0 0 10px;
  padding:12px 14px;
  border-radius:10px;
  background:#fff6e8;
  border:1px solid #f0d2a0;
  font-size:15px;
  line-height:1.45;
  color:#3d2a10;
}
.batch-commit-cost strong{
  font-size:22px;
  color:#b42318;
}
.batch-commit-cap{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.55;
  color:#566078;
}
.batch-quote-stats{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:12px 0 0;
  padding:12px 14px;
  border-radius:10px;
  background:#f7f6ff;
  border:1px solid #e4e0fb;
}
.batch-quote-stats[hidden]{ display:none !important; }
.batch-quote-stat{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:88px;
}
.batch-quote-stat span{
  font-size:12px;
  color:#7a8499;
}
.batch-quote-stat strong{
  font-size:16px;
  color:#364159;
}
.batch-quote-hint{
  margin:10px 0 0;
  font-size:12px;
  line-height:1.55;
  color:#7a8499;
}
.batch-quote-hint.is-error{ color:#b42318; }

.batch-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin:0 0 10px;
  font-size:13px;
  color:#566078;
}
.batch-progress{
  height:6px;
  border-radius:99px;
  background:#eef1f6;
  overflow:hidden;
  margin:0 0 14px;
}
.batch-progress > i{
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg,#8d7ff0,#6c5ce7);
  border-radius:99px;
  transition:width .3s ease;
}
.batch-item-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:220px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.batch-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid #e6e9f2;
  border-radius:10px;
  background:#fff;
}
.batch-item.is-viewable{ cursor:pointer; }
.batch-item.is-active{
  border-color:#8b7cf0;
  background:#f7f6ff;
}
.batch-item-kw{
  flex:1;
  min-width:0;
  font-weight:700;
  color:#364159;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.batch-item-meta{
  font-size:12px;
  color:#7a8499;
  white-space:nowrap;
}
.batch-item-state{
  flex:none;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.batch-item.is-pending .batch-item-state{ color:#7a8499; }
.batch-item.is-running .batch-item-state{ color:#5949d4; }
.batch-item.is-cache_hit .batch-item-state,
.batch-item.is-settled .batch-item-state{ color:#1f6b45; }
.batch-item.is-failed .batch-item-state{ color:#b42318; }
.batch-item.is-paused_handoff .batch-item-state{ color:#b54708; }
.batch-card .actions{ margin-top:14px; }

/* ---------------- 辅助功能列表 + UTM 工具 ---------------- */
.tool-board{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.tool-card{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:0;
  text-decoration:none;
  color:inherit;
}
.tool-card:hover,
.tool-card:focus{
  text-decoration:none;
  color:inherit;
}
.tool-card-icon{
  flex:none;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#f3f1ff;
  font-size:22px;
}
.tool-card-body{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.tool-card-title{
  font-size:17px;
  font-weight:800;
  color:var(--text);
}
.tool-card-desc{
  font-size:13px;
  line-height:1.55;
  color:#566078;
}
.tool-card-tag{
  font-size:12px;
  font-weight:700;
  color:#5949d4;
}
.tool-card-go{
  flex:none;
  align-self:center;
  font-size:13px;
  font-weight:700;
  color:#6c5ce7;
}
.utm-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.utm-actions{
  justify-content:flex-start;
}
.utm-result{
  margin-top:8px;
}
.utm-result label{
  display:block;
  margin-bottom:8px;
  font-size:13px;
  color:#566078;
  font-weight:700;
}
.utm-result textarea{
  width:100%;
  min-height:96px;
  border:1px solid #dfe3ec;
  border-radius:9px;
  padding:12px;
  background:#fafbfe;
  outline:none;
  resize:vertical;
  word-break:break-all;
}
.utm-result textarea:focus{
  border-color:#8b7cf0;
  box-shadow:0 0 0 3px rgba(108,92,231,.1);
}
@media (max-width:760px){
  .tool-board{ grid-template-columns:1fr; }
}

/* 压过后文未加媒体查询的 #searchCaptureGrid 三列，避免手机上又撑破 */
@media (max-width:880px){
  #searchCaptureGrid,
  #searchConditionCard.has-batch-rail #searchCaptureGrid,
  #searchConditionCard.has-batch-rail:has(> .batch-rail[hidden]) #searchCaptureGrid{
    grid-template-columns:1fr;
  }
  #searchCardFollow,
  #searchConditionCard > .search-card-follow{
    overflow:visible;
    min-width:0;
    max-width:100%;
  }
  #searchPresetRow,
  #searchCardFollow > .history-presets{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    width:100%;
    justify-content:stretch;
    flex-wrap:wrap;
  }
  #searchPresetRow .btn,
  #searchPresetRow select{
    width:100%;
    min-width:0;
    height:42px;
    box-sizing:border-box;
  }
  #searchFollowBar{
    flex-direction:column;
    align-items:stretch;
    overflow:visible;
    width:100%;
  }
  #searchCardFollow #maxResultsField{
    flex-direction:column;
    align-items:stretch;
    width:100%;
    max-width:100%;
    flex:none;
  }
  #searchCardFollow #maxResultsField #maxResults{
    width:100%;
    max-width:100%;
    height:42px;
    box-sizing:border-box;
  }
  #searchFollowBar .actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    gap:8px;
  }
  #searchFollowBar .actions .btn,
  #searchFollowBar .actions .btn-continue{
    width:100%;
    min-width:0;
  }
  #searchCardFollow #continueSearchBtnForm{ grid-column:1 / -1; }
  #searchCardFollow #buildStamp{ display:none !important; }
}
@container search-follow (max-width:720px){
  #searchPresetRow,
  .history-presets{
    display:grid;
    grid-template-columns:1fr 1fr;
    justify-content:stretch;
    gap:8px;
    width:100%;
  }
  #searchPresetRow .btn,
  #searchPresetRow select,
  .history-presets .btn,
  .history-presets select{
    width:100%;
    min-width:0;
    max-width:100%;
    height:42px;
    box-sizing:border-box;
  }
  #searchFollowBar{
    flex-direction:column;
    align-items:stretch;
    overflow:visible;
    width:100%;
  }
  #maxResultsField{
    flex-direction:column;
    align-items:stretch;
    width:100%;
    max-width:100%;
    flex:none;
  }
  #maxResultsField #maxResults{
    width:100%;
    max-width:100%;
    height:42px;
    box-sizing:border-box;
  }
  .actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    gap:8px;
  }
  .actions .btn,
  .actions .btn-continue{
    width:100%;
    min-width:0;
    min-height:42px;
  }
  #continueSearchBtnForm{ grid-column:1 / -1; }
  #buildStamp{ display:none !important; }
}

/* 充值页：手机左右滑套餐，压过上文 720px 单列堆叠 */
@media (min-width:881px){
  details.pay-rules > summary{ display:none; }
  details.pay-rules:not([open]) .pay-guide{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
}
@media (max-width:880px){
  .pay-account .pay-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
  }
  .pay-account .pay-stat{ padding:10px 8px; }
  .pay-account .pay-stat-v,
  .pay-account .pay-stat-v-date{ font-size:15px; }
  .pay-account .pay-stat-s{ display:none; }
  .pay-rules > summary{ display:block; }
  .pay-rules[open] > summary{ margin-bottom:8px; }
  .plan-section-head p{
    display:-webkit-box;
    -webkit-line-clamp:2;
    line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .plan-swipe-hint{
    display:block;
    margin:8px 0 0;
    font-size:12px;
    color:#7a8499;
  }
  .plan-section .plan-grid.plan-swipe{
    display:flex;
    gap:12px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-left:14px;
    -webkit-overflow-scrolling:touch;
    grid-template-columns:none;
    margin:0 -14px;
    padding:4px 14px 14px;
  }
  .plan-section .plan-grid.plan-swipe .plan-card{
    flex:0 0 min(82vw, 320px);
    width:min(82vw, 320px);
    max-width:none;
    min-height:0;
    scroll-snap-align:start;
  }
}
