/* ============================================================
   骗子曝光台 - 前台样式
   遵循《docs/UI设计规范.md》：与主站导航同一套设计令牌
   （主色/渐变/功能色/圆角/阴影/按钮/卡片全部同源，
    并保留 color-scheme-0..3 覆盖块，随主站配色方案联动）
   ============================================================ */
:root{
  /* 主色体系（与 static/css/main.css 同源） */
  --sp-primary:#e93165;
  --sp-primary-2:#2232ca;               /* 渐变起点 / 次主色 */
  --sp-grad:linear-gradient(45deg,#2232ca 0%,#e93165 100%);
  --sp-grad-135:linear-gradient(135deg,#2232ca 0%,#e93165 100%);
  --sp-shadow:rgba(34,50,202,.3);
  --sp-shadow-light:rgba(233,49,101,.2);
  --sp-primary-bg:linear-gradient(135deg,#e8eaf6 0%,#fce4ec 100%);

  /* 功能色 */
  --sp-amber:#f59e0b;
  --sp-danger:#ef4444;
  --sp-danger-2:#dc2626;
  --sp-success:#22c55e;

  /* 文字 */
  --sp-ink:#121212;
  --sp-text:#374151;
  --sp-sub:#6b7280;
  --sp-muted:#9ca3af;
  --sp-faint:#c0c6d1;

  /* 中性 */
  --sp-line:#e5e7eb;
  --sp-line-2:#d1d5db;
  --sp-line-3:#f3f4f6;
  --sp-bg:#f6f7fb;
  --sp-panel:#f9fafb;
  --sp-card:#fff;

  /* 圆角梯度：8 / 12 / 16 / 999 */
  --sp-r-sm:8px;
  --sp-r-md:12px;
  --sp-r-lg:16px;
  --sp-r-full:999px;
  --sp-nav-active:#07c160;             /* 沿用导航网底部导航选中态 */
}
/* 与主站联动的配色方案覆盖（同 main.css） */
body.color-scheme-1,body:not([class*="color-scheme"]){
  --sp-primary:#1a1a1a;--sp-primary-2:#1a1a1a;
  --sp-grad:linear-gradient(135deg,#1a1a1a 0%,#4a4a4a 100%);
  --sp-grad-135:var(--sp-grad);
  --sp-shadow:rgba(26,26,26,.3);--sp-shadow-light:rgba(26,26,26,.2);
  --sp-primary-bg:linear-gradient(135deg,#f5f5f5 0%,#e0e0e0 100%);
}
body.color-scheme-2{
  --sp-primary:#1B47C3;--sp-primary-2:#0D2E7F;
  --sp-grad:linear-gradient(135deg,#1B47C3 0%,#0D2E7F 100%);
  --sp-grad-135:var(--sp-grad);
  --sp-shadow:rgba(27,71,195,.3);--sp-shadow-light:rgba(27,71,195,.2);
  --sp-primary-bg:linear-gradient(135deg,#e3ebf5 0%,#c5d4e8 100%);
}
body.color-scheme-3{
  --sp-primary:#d92b1c;--sp-primary-2:#ff6b6b;
  --sp-grad:linear-gradient(135deg,#d92b1c 0%,#ff6b6b 100%);
  --sp-grad-135:var(--sp-grad);
  --sp-shadow:rgba(217,43,28,.3);--sp-shadow-light:rgba(217,43,28,.2);
  --sp-primary-bg:linear-gradient(135deg,#fff5f5 0%,#fed7d7 100%);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
/* 列外底色：与导航网 body 一致（白），让居中内容列呈现同款“卡片列”观感 */
body.sp-body{
  margin:0;background:#fff;color:var(--sp-ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Microsoft YaHei',sans-serif;
  font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img,video{display:block;max-width:100%;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--sp-line-2);border-radius:8px;}

/* 内容列：宽度与导航网 #root 对齐（768px，左右内边距 16px → 内容 736px），
   与底部导航卡片同宽，桌面端呈现一致的居中列 */
.sp-wrap{
  width:100%;max-width:768px;margin:0 auto;padding:0 16px 104px;
  background:var(--sp-bg);min-height:100vh;
}

/* ---------- 顶部品牌栏 ---------- */
.sp-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:24px 0 20px;}
.sp-brand{display:flex;align-items:center;gap:12px;}
.sp-brand-icon{
  width:46px;height:46px;background:var(--sp-grad);border-radius:16px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:21px;box-shadow:0 8px 30px var(--sp-shadow-light);flex:0 0 auto;
}
.sp-brand-text{display:flex;flex-direction:column;line-height:1.25;}
.sp-brand-name{font-size:22px;font-weight:700;letter-spacing:-.3px;color:var(--sp-ink);}
.sp-brand-sub{font-size:12px;font-weight:500;color:var(--sp-sub);letter-spacing:.3px;margin-top:2px;}
.sp-pill{
  display:flex;align-items:center;gap:8px;background:#fff;padding:6px 8px 6px 16px;border-radius:var(--sp-r-md);
  border:1px solid var(--sp-line);box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.sp-pill i{color:var(--sp-success);font-size:13px;}
.sp-pill .sp-pill-label{font-weight:600;font-size:13.5px;color:var(--sp-ink);}
.sp-pill .sp-pill-badge{
  background:var(--sp-grad);color:#fff;font-size:12px;font-weight:500;padding:3px 14px;border-radius:var(--sp-r-full);
  letter-spacing:.2px;white-space:nowrap;
}
.sp-top .sp-home{
  margin-left:auto;font-size:13px;color:var(--sp-sub);font-weight:500;
  border:1px solid var(--sp-line-2);padding:7px 16px;border-radius:var(--sp-r-md);transition:all .18s;background:#fff;
}
.sp-top .sp-home:hover{color:var(--sp-primary);border-color:var(--sp-primary);}

/* ---------- 站内子功能页顶部栏（与聊天页头部同构：白底通栏 + 下边线，仅居中标题） ---------- */
.sp-navbar{
  position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:#fff;border-bottom:1px solid #f0f0f0;
  margin:0 -16px 16px;padding:14px 16px;
}
.sp-navbar-title{
  margin:0;font-size:18px;font-weight:600;color:var(--sp-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}

/* ---------- 底部导航（与主站 static/css/style.css .bottom-nav 完全同款） ----------
   DOM 由 bootstrap.php scam_site_nav() 输出，类名与主站一致，
   以下规则逐像素复刻主站：移动端左右各 12px、距底 12px；≥768px 时 736px 居中、距底 16px */
.bottom-nav{
  position:fixed;
  bottom:calc(12px + env(safe-area-inset-bottom));
  left:12px;right:12px;
  background:#fff;z-index:30;
  padding-top:6px;padding-bottom:6px;border-radius:18px;
  box-shadow:0 6px 20px rgba(0,0,0,.12);overflow:hidden;
}
.bottom-nav-container{
  display:flex;justify-content:space-around;align-items:center;
  max-width:480px;margin:0 auto;height:48px;
}
.bottom-nav .nav-item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;flex:1;height:100%;
  position:relative;text-decoration:none;color:inherit;border:none;
  background:none;padding:0;margin:0;
  outline:none;-webkit-tap-highlight-color:transparent;
}
.bottom-nav a.nav-item{text-decoration:none;color:inherit;}
.bottom-nav .nav-icon{font-size:22px;color:#999;margin-bottom:2px;transition:color .2s;}
.bottom-nav .nav-item.active .nav-icon{color:#07c160;}
.bottom-nav .nav-label{font-size:10px;color:#999;font-weight:400;transition:color .2s;}
.bottom-nav .nav-item.active .nav-label{color:#07c160;}
.bottom-nav .nav-indicator{
  position:absolute;bottom:0;width:20px;height:3px;background:#07c160;
  border-radius:2px;opacity:0;transition:opacity .2s;
}
.bottom-nav .nav-item.active .nav-indicator{opacity:1;}
@media(min-width:768px){
  .bottom-nav{
    width:736px;max-width:calc(100vw - 32px);
    left:50%;right:auto;bottom:16px;transform:translateX(-50%);
  }
}
/* 悬停动画与主站 .nav-item:hover .nav-icon 行为一致 */
.bottom-nav .nav-item:hover .nav-icon{animation:spNavPulse .5s ease-in-out;}
@keyframes spNavPulse{0%{transform:translateY(0);}50%{transform:translateY(-5px);}100%{transform:translateY(0);}}

/* 站内 FA4 库（font-awesome.min.css）的通配字体会覆盖 FA6 的 .fas/.far/.fab，
   这里把页面其余 FA6 图标的字体恢复回来（style.css 在两个图标库之后加载） */
i.fas,i.far{font-family:"Font Awesome 6 Free" !important;}
i.far{font-weight:400 !important;}
i.fab{font-family:"Font Awesome 6 Brands" !important;}

/* ---------- 头图 ---------- */
.sp-banner{
  background:var(--sp-grad-135);color:#fff;border-radius:var(--sp-r-lg);
  padding:24px 26px;margin-bottom:20px;box-shadow:0 10px 26px var(--sp-shadow);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;
}
.sp-banner-main{flex:1 1 420px;min-width:0;}
.sp-banner h1{margin:0 0 6px;font-size:22px;font-weight:700;letter-spacing:-.4px;line-height:1.4;}
.sp-banner p{margin:0;font-size:13.5px;color:rgba(255,255,255,.78);}
.sp-banner .sp-btn-ghost{
  margin-top:16px;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--sp-primary-2);
  padding:10px 22px;border-radius:var(--sp-r-md);font-weight:700;font-size:14px;
  box-shadow:0 4px 15px rgba(0,0,0,.12);transition:transform .18s;
}
.sp-banner .sp-btn-ghost:hover{transform:translateY(-2px);}
.sp-banner .sp-banner-side{flex:0 0 auto;display:flex;gap:10px;flex-wrap:wrap;}
.sp-stat-mini{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:var(--sp-r-md);
  padding:12px 18px;min-width:96px;text-align:center;
}
.sp-stat-mini .num{font-size:22px;font-weight:800;letter-spacing:-.5px;}
.sp-stat-mini .lab{font-size:12px;color:rgba(255,255,255,.78);margin-top:2px;}

/* ---------- 卡片 ---------- */
.sp-card{
  background:var(--sp-card);border:1px solid var(--sp-line);border-radius:var(--sp-r-lg);
  padding:22px 24px;margin-bottom:18px;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:all .3s cubic-bezier(.4,0,.2,1);
}
.sp-card-title{
  display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--sp-ink);margin-bottom:14px;
}
.sp-card-title i{color:var(--sp-primary);font-size:15px;}
.sp-card-title .sp-card-tip{margin-left:auto;font-size:12.5px;font-weight:400;color:var(--sp-muted);}

/* ---------- 检索 ---------- */
.sp-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;}
.sp-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.sp-field label{font-size:13px;font-weight:600;color:var(--sp-sub);}
.sp-field input,.sp-field select,.sp-field textarea{
  width:100%;padding:11px 14px;border:1px solid var(--sp-line-2);border-radius:var(--sp-r-md);
  font-size:14px;color:var(--sp-ink);background:var(--sp-panel);outline:none;transition:border-color .15s,box-shadow .15s;
  font-family:inherit;
}
.sp-field input::placeholder,.sp-field textarea::placeholder{color:var(--sp-muted);}
.sp-field input:focus,.sp-field select:focus,.sp-field textarea:focus{
  border-color:var(--sp-primary);box-shadow:0 0 0 3px var(--sp-shadow-light);background:#fff;
}
.sp-field select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236b7280'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:18px;padding-right:34px;}
.sp-search-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.sp-adv-toggle{
  display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--sp-primary);
  font-size:13px;font-weight:600;cursor:pointer;padding:0 4px;font-family:inherit;
}
.sp-adv-toggle i{transition:transform .2s;}
.sp-adv-toggle.open i{transform:rotate(180deg);}
.sp-adv{display:none;grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;
  border-top:1px dashed var(--sp-line);padding-top:16px;margin-top:2px;}
.sp-adv.open{display:grid;}

/* 快捷平台筛选 */
.sp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.sp-chip{
  display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--sp-line);
  color:var(--sp-text);font-size:13px;padding:6px 16px;border-radius:var(--sp-r-sm);transition:all .16s;white-space:nowrap;
}
.sp-chip:hover{border-color:var(--sp-primary);color:var(--sp-primary);}
.sp-chip.active{background:var(--sp-grad);color:#fff;border-color:transparent;box-shadow:0 4px 12px var(--sp-shadow);}
/* 平台图标（后台「平台管理」上传） */
.sp-chip img.sp-chip-icon{width:16px;height:16px;object-fit:contain;flex:0 0 auto;border-radius:3px;}
.sp-tag img.sp-tag-icon{width:15px;height:15px;object-fit:contain;border-radius:3px;flex:0 0 auto;}

/* ---------- 按钮 ---------- */
.sp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 26px;
  border:none;border-radius:var(--sp-r-md);background:var(--sp-grad);color:#fff;font-size:15px;font-weight:600;
  cursor:pointer;transition:transform .18s,box-shadow .2s,filter .2s;font-family:inherit;letter-spacing:.3px;
  box-shadow:0 4px 15px var(--sp-shadow);
}
.sp-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--sp-shadow);}
.sp-btn:active{transform:translateY(0);}
.sp-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;}
.sp-btn.ghost{background:#f1f5f9;color:#64748b;border:1px solid transparent;box-shadow:none;}
.sp-btn.ghost:hover{background:#e2e8f0;color:#475569;transform:none;box-shadow:none;}
.sp-btn.block{width:100%;}
.sp-btn.danger{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);box-shadow:0 4px 12px rgba(239,68,68,.3);}
.sp-btn.danger:hover{box-shadow:0 6px 16px rgba(239,68,68,.35);}
.sp-link-btn{border:none;background:none;color:var(--sp-primary);font-size:13px;font-weight:600;cursor:pointer;padding:0 4px;font-family:inherit;}
.sp-link-btn:hover{text-decoration:underline;}

/* ---------- 列表 ---------- */
.sp-list-head{display:flex;align-items:center;gap:10px;margin:26px 0 12px;flex-wrap:wrap;}
.sp-list-head h2{font-size:17px;font-weight:700;margin:0;letter-spacing:-.2px;}
.sp-list-head .sp-count{margin-left:auto;color:var(--sp-sub);font-size:13px;}
.sp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;}
.sp-item{
  position:relative;overflow:hidden;
  background:var(--sp-card);border:1px solid var(--sp-line);border-radius:var(--sp-r-lg);padding:18px 20px;
  transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:10px;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
/* 主站同款：顶部 3px 主渐变条 hover 扫入 */
.sp-item::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--sp-grad);
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.sp-item:hover::before{transform:scaleX(1);}
.sp-item:hover{transform:translateY(-4px);box-shadow:0 4px 20px rgba(0,0,0,.08);}
.sp-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sp-tag{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 12px;border-radius:var(--sp-r-sm);
  background:rgba(233,49,101,.08);color:var(--sp-primary);border:1px solid rgba(233,49,101,.14);white-space:nowrap;
}
.sp-tag.pin{background:#fffbeb;color:#b45309;border-color:#fde68a;}
.sp-tag.gray{background:var(--sp-panel);color:var(--sp-sub);border-color:var(--sp-line);}
.sp-tag.warn{background:#fef2f2;color:var(--sp-danger-2);border-color:#fecaca;}
.sp-tag.ok{background:#f0fdf4;color:#15803d;border-color:#bbf7d0;}
.sp-item-title{display:flex;gap:10px;align-items:flex-start;}
.sp-item-title .sp-ids{font-weight:700;color:var(--sp-ink);word-break:break-all;font-size:15px;flex:1;min-width:0;}
.sp-item-title .sp-ids small{font-weight:500;color:var(--sp-sub);font-size:12.5px;}
.sp-excerpt{
  color:var(--sp-text);margin:0;word-break:break-word;font-size:13.5px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.sp-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--sp-muted);font-size:12.5px;align-items:center;}
.sp-meta i{margin-right:4px;}
.sp-meta .sp-amount{color:var(--sp-danger-2);font-weight:700;}
.sp-item-foot{display:flex;align-items:center;gap:10px;border-top:1px solid var(--sp-line-3);padding-top:10px;margin-top:auto;}
.sp-item-foot .sp-go{margin-left:auto;color:var(--sp-primary);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:5px;}
.sp-item:hover .sp-go{text-decoration:underline;}
.sp-empty{
  border:1.5px dashed var(--sp-line-2);border-radius:var(--sp-r-lg);padding:40px 20px;text-align:center;
  color:var(--sp-muted);background:var(--sp-card);
}
.sp-empty .sp-empty-icon{font-size:38px;color:var(--sp-line-2);margin-bottom:10px;}
.sp-empty p{margin:0 0 14px;}

/* ---------- 分页 ---------- */
.sp-pager{display:flex;justify-content:center;gap:8px;margin-top:22px;flex-wrap:wrap;align-items:center;}
.sp-pager a,.sp-pager span{
  min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;
  border:1px solid var(--sp-line);border-radius:var(--sp-r-sm);background:#fff;font-size:13.5px;color:var(--sp-sub);
  transition:all .16s;
}
.sp-pager a:hover{border-color:var(--sp-primary);color:var(--sp-primary);}
.sp-pager .cur{background:var(--sp-grad);color:#fff;border-color:transparent;font-weight:700;box-shadow:0 4px 12px var(--sp-shadow);}
.sp-pager .sp-ellipsis{border:none;background:none;min-width:auto;padding:0 4px;}

/* ---------- 表单 ---------- */
.sp-form-card h2{font-size:19px;margin:0 0 6px;font-weight:700;letter-spacing:-.3px;}
.sp-form-tip{color:var(--sp-sub);font-size:13px;margin:0 0 18px;}
.sp-form-item{margin-bottom:18px;}
.sp-form-item > label{display:block;font-size:14px;font-weight:700;margin-bottom:6px;color:var(--sp-ink);}
.sp-form-item > label i{color:var(--sp-primary);margin-right:2px;}
.sp-req{color:var(--sp-danger);}
.sp-help{font-size:12.5px;color:var(--sp-muted);}
.sp-form-item .sp-help{margin-top:6px;}
.sp-form-item textarea{
  width:100%;min-height:130px;padding:12px 14px;border:1px solid var(--sp-line-2);border-radius:var(--sp-r-md);
  font-size:14px;line-height:1.7;resize:vertical;outline:none;font-family:inherit;background:var(--sp-panel);color:var(--sp-ink);
}
.sp-form-item textarea:focus{border-color:var(--sp-primary);box-shadow:0 0 0 3px var(--sp-shadow-light);background:#fff;}
.sp-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.sp-counter{display:flex;justify-content:space-between;font-size:12.5px;color:var(--sp-muted);margin-top:6px;}
.sp-counter .sp-counter-num.over{color:var(--sp-danger-2);font-weight:700;}
.sp-warn-note{
  background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1px solid #fde68a;border-left:4px solid var(--sp-amber);
  color:#78350f;border-radius:var(--sp-r-sm);padding:10px 14px;font-size:12.8px;margin-top:8px;line-height:1.65;
}
.sp-warn-note b{color:#b45309;}
.sp-info-note{
  background:var(--sp-panel);border:1px solid var(--sp-line);border-left:4px solid var(--sp-primary-2);
  color:var(--sp-text);border-radius:var(--sp-r-sm);padding:10px 14px;font-size:12.8px;margin-top:8px;line-height:1.65;
}

/* 上传 */
.sp-drop{
  border:1.5px dashed var(--sp-line-2);border-radius:var(--sp-r-lg);background:var(--sp-panel);padding:18px;text-align:center;
  cursor:pointer;transition:border-color .15s,background .15s;
}
.sp-drop:hover{border-color:var(--sp-primary);background:var(--sp-primary-bg);}
.sp-drop i{font-size:24px;color:var(--sp-primary);display:block;margin-bottom:6px;}
.sp-drop .sp-drop-title{display:block;font-size:13.5px;font-weight:700;color:var(--sp-ink);}
.sp-drop .sp-drop-hint{display:block;font-size:12.5px;color:var(--sp-muted);margin-top:2px;}
.sp-drop.is-busy{opacity:.6;pointer-events:none;}
.sp-files{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}
.sp-file{
  position:relative;width:88px;height:88px;border:1px solid var(--sp-line);border-radius:var(--sp-r-md);overflow:hidden;
  background:var(--sp-panel);
}
.sp-file img,.sp-file video{width:100%;height:100%;object-fit:cover;}
.sp-file .sp-del{
  position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(17,24,39,.7);color:#fff;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.sp-file .sp-del:hover{background:var(--sp-danger);}
.sp-file-add{
  width:88px;height:88px;border:1px dashed var(--sp-line-2);border-radius:var(--sp-r-md);display:flex;align-items:center;
  justify-content:center;color:var(--sp-muted);font-size:22px;cursor:pointer;background:var(--sp-panel);
}
.sp-agree{
  display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--sp-text);
  background:var(--sp-panel);border:1px solid var(--sp-line);border-radius:var(--sp-r-md);padding:12px 14px;
}
.sp-agree input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--sp-primary);}

/* 投稿身份：匿名 / 实名 */
.sp-radio-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.sp-radio{
  display:flex;gap:10px;align-items:flex-start;cursor:pointer;
  background:var(--sp-panel);border:1px solid var(--sp-line);border-radius:var(--sp-r-md);padding:10px 12px;
  transition:border-color .18s,background .18s;
}
.sp-radio input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--sp-primary);}
.sp-radio b{display:block;font-size:13.8px;color:var(--sp-text);}
.sp-radio small{display:block;margin-top:3px;font-size:12px;color:var(--sp-muted);line-height:1.5;}
.sp-radio:hover{border-color:var(--sp-primary-2);}
.sp-radio:has(input:checked){border-color:var(--sp-primary);background:var(--sp-primary-weak,#f2f7ff);}
.sp-alert{padding:12px 16px;border-radius:var(--sp-r-sm);font-size:13.5px;margin-bottom:14px;display:none;line-height:1.6;}
.sp-alert.err{display:block;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;}
.sp-alert.ok{display:block;background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;}

/* 投稿步骤 */
.sp-step{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sp-muted);margin-bottom:18px;flex-wrap:wrap;}
.sp-step .sp-step-item{display:inline-flex;align-items:center;gap:6px;}
.sp-step .sp-step-item b{
  width:20px;height:20px;border-radius:50%;background:var(--sp-grad);color:#fff;font-size:11.5px;
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;
}
.sp-step .sp-step-line{display:inline-block;width:22px;height:1px;background:var(--sp-line-2);vertical-align:middle;}

/* ---------- 详情 ---------- */
.sp-detail-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.sp-detail-title{font-size:15px;font-weight:700;margin:0 0 10px;letter-spacing:-.2px;}
.sp-status-line{display:flex;gap:16px;flex-wrap:wrap;color:var(--sp-muted);font-size:12.5px;margin-bottom:14px;align-items:center;}
.sp-status-line i{margin-right:4px;}
.sp-status-line .sp-amount{color:var(--sp-danger-2);font-weight:700;}
.sp-ids-box{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.sp-id-chip{
  display:inline-flex;align-items:center;gap:8px;background:var(--sp-panel);border:1px solid var(--sp-line);
  border-radius:var(--sp-r-md);padding:8px 12px;font-weight:700;color:var(--sp-ink);word-break:break-all;font-size:14px;
}
.sp-id-copy{border:none;background:none;color:var(--sp-muted);cursor:pointer;font-size:12.5px;padding:0;margin-left:auto;}
.sp-id-copy:hover{color:var(--sp-primary);}
.sp-section-title{
  display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;margin:22px 0 12px;color:var(--sp-ink);
}
.sp-section-title i{color:var(--sp-primary);}
.sp-content{
  white-space:pre-wrap;word-break:break-word;line-height:1.85;color:var(--sp-text);font-size:14.5px;
  background:var(--sp-panel);border:1px solid var(--sp-line);border-radius:var(--sp-r-md);padding:16px 18px;
}
.sp-content.clamped{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden;}
.sp-more{
  display:inline-flex;align-items:center;gap:5px;margin-top:8px;border:none;background:none;color:var(--sp-primary);
  font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;padding:0;
}
.sp-evidence{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;}
.sp-ev{
  position:relative;border:1px solid var(--sp-line);border-radius:var(--sp-r-md);overflow:hidden;background:#111827;
  cursor:pointer;transition:transform .18s,box-shadow .18s;
}
.sp-ev:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.16);}
.sp-ev img,.sp-ev video{display:block;width:100%;height:190px;object-fit:cover;}
.sp-ev img:not([src]){background:#111827;}
.sp-ev.blur img,.sp-ev.blur video{filter:blur(16px);transform:scale(1.06);}
.sp-ev .sp-ev-tip{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  color:#fff;font-size:12.5px;background:rgba(17,24,39,.5);text-align:center;padding:10px;
}
.sp-ev.locked .sp-ev-tip{background:rgba(17,24,39,.32);cursor:default;}
.sp-ev .sp-ev-tip b{background:rgba(17,24,39,.6);padding:6px 14px;border-radius:var(--sp-r-full);font-weight:600;}
.sp-ev-badge{
  position:absolute;left:8px;top:8px;z-index:2;background:rgba(17,24,39,.62);color:#fff;font-size:11.5px;
  padding:3px 10px;border-radius:var(--sp-r-full);display:inline-flex;align-items:center;gap:4px;
}
.sp-disclaimer{
  background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1px solid #fde68a;border-left:4px solid var(--sp-amber);
  color:#78350f;border-radius:var(--sp-r-md);padding:14px 18px;font-size:13px;margin-top:22px;line-height:1.75;
}
.sp-disclaimer b{color:#b45309;}
.sp-appeal{margin-top:22px;border-top:1px dashed var(--sp-line);padding-top:20px;}
.sp-danger-box{
  background:#fef2f2;border:1px solid #fecaca;border-left:4px solid var(--sp-danger);color:#7f1d1d;
  border-radius:var(--sp-r-md);padding:14px 18px;font-size:13px;line-height:1.75;margin-bottom:16px;
}
.sp-danger-box b{color:#b91c1c;}
.sp-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--sp-sub);font-size:13px;font-weight:600;margin-bottom:10px;}
.sp-back-link:hover{color:var(--sp-primary);}

/* 底部操作条 */
.sp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;}
.sp-actions .sp-btn{flex:1 1 auto;}


/* ---------- Toast（全站统一弹窗范式） ---------- */
.sp-toast-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);z-index:1000;
  align-items:center;justify-content:center;padding:20px;
}
.sp-toast-overlay.active{display:flex;}
.sp-toast-box{
  background:#fff;border-radius:20px;max-width:420px;width:100%;padding:30px 28px 26px;text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.18);animation:spModalIn .3s ease;
}
@keyframes spModalIn{from{opacity:0;transform:scale(.94) translateY(16px);}to{opacity:1;transform:scale(1) translateY(0);}}
.sp-toast-box .sp-toast-icon{font-size:46px;margin-bottom:10px;color:var(--sp-success);}
.sp-toast-box.err .sp-toast-icon{color:var(--sp-danger);}
.sp-toast-box.warn .sp-toast-icon{color:var(--sp-amber);}
.sp-toast-box .sp-toast-title{font-size:19px;font-weight:700;color:var(--sp-ink);margin-bottom:8px;}
.sp-toast-box .sp-toast-desc{font-size:14px;color:var(--sp-text);line-height:1.7;margin-bottom:18px;}
.sp-toast-box .sp-toast-desc strong{color:var(--sp-ink);}
.sp-toast-box .sp-btn{margin-top:4px;}

/* ---------- 图片灯箱 ---------- */
.sp-lightbox{
  display:none;position:fixed;inset:0;z-index:1100;background:rgba(17,24,39,.86);
  align-items:center;justify-content:center;padding:24px;
}
.sp-lightbox.active{display:flex;}
.sp-lightbox img{max-width:100%;max-height:88vh;border-radius:var(--sp-r-sm);box-shadow:0 20px 60px rgba(0,0,0,.4);}
.sp-lightbox .sp-lb-close{
  position:absolute;top:20px;right:24px;width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font-size:20px;
}

/* ---------- 响应式 ---------- */
@media (max-width:820px){
  .sp-wrap{padding:0 14px 100px;}
  .sp-top{gap:10px;padding:18px 0 14px;}
  .sp-top .sp-home{margin-left:0;width:100%;justify-content:center;display:flex;}
  .sp-brand-name{font-size:20px;}
  .sp-banner{padding:20px 18px;}
  .sp-banner h1{font-size:18px;}
  .sp-banner .sp-banner-side{width:100%;}
  .sp-stat-mini{flex:1 1 auto;}
  .sp-card{padding:18px 16px;}
  .sp-list{grid-template-columns:1fr;}
  .sp-row2{grid-template-columns:1fr;}
  .sp-navbar{margin:0 -14px 12px;}
  .sp-pager a,.sp-pager span{min-width:36px;height:36px;padding:0 10px;}
}
@media (max-width:480px){
  .sp-spill-hide{display:none;}
  .sp-evidence{grid-template-columns:repeat(2,1fr);gap:10px;}
  .sp-ev img,.sp-ev video{height:130px;}
  .sp-actions .sp-btn{flex-basis:100%;}
}
/* ============================================================
   网站背景图（跟随管理端「媒体设置 → 网站背景图」，与主站同款表现）
   body 带 .site-bg 类（PHP 检测到已配置背景图时输出）且 :root 存在
   --site-bg-url 时启用：
   - 手机端：背景放 body 全屏 fixed 铺满，.sp-wrap 内容列透明；
   - 桌面端(≥768px)：背景只铺 768px 居中内容列，列外两侧保持白底；
   - 卡片 / 顶部栏 / 底部导航保持各自底色不透出。
   ============================================================ */
body.sp-body.site-bg{
  background-image:var(--site-bg-url);
  background-size:cover;background-position:center center;
  background-attachment:fixed;background-repeat:no-repeat;
  background-color:#f2f3f5;
}
body.sp-body.site-bg .sp-wrap{background:transparent;}
@media(min-width:768px){
  body.sp-body.site-bg{background-image:none;background-color:#fff;}
  body.sp-body.site-bg .sp-wrap{
    background-image:var(--site-bg-url);
    background-size:cover;background-position:center center;
    background-attachment:scroll;background-repeat:no-repeat;
    background-color:#f2f3f5;
  }
}

/* ============================================================
   夜间模式
   - <html> 带 .dark-theme 类时生效，由 /static/js/theme.js 切换，
     与主站共用 localStorage（kke-theme-mode），主站/曝光台记忆互通；
   - 色板与主站 custom.css 夜间模式对齐：
     页面底 #121212 / 卡片 #1e1e22 / 次表面 #26262b / 分割线 #303038。
   ============================================================ */

/* 顶部栏右侧主题切换按钮（月亮=可切夜间，太阳=可切白天） */
.sp-theme-btn{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:34px;height:34px;border-radius:50%;
  border:1px solid var(--sp-line);background:var(--sp-card);color:var(--sp-sub);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;line-height:1;cursor:pointer;padding:0;z-index:2;
  transition:color .18s,border-color .18s,background .18s;
}
.sp-theme-btn:hover{color:var(--sp-primary);border-color:var(--sp-primary);}
.sp-theme-btn .sp-ic-sun{display:none;}
html.dark-theme .sp-theme-btn .sp-ic-moon{display:none;}
html.dark-theme .sp-theme-btn .sp-ic-sun{display:inline-block;color:#ffd66b;}

/* ---- 设计令牌覆盖（所有 var(--sp-*) 组件自动联动） ---- */
html.dark-theme{
  color-scheme:dark;
  --sp-ink:#e8e8ec;
  --sp-text:#c2c2ca;
  --sp-sub:#9b9ba3;
  --sp-muted:#6e6e78;
  --sp-faint:#4a4a54;
  --sp-line:#2c2c33;
  --sp-line-2:#3a3a42;
  --sp-line-3:#232328;
  --sp-bg:#121212;
  --sp-panel:#1e1e22;
  --sp-card:#1e1e22;
  --sp-shadow:rgba(0,0,0,.5);
  --sp-shadow-light:rgba(233,49,101,.3);
  --sp-primary-bg:linear-gradient(135deg,#232347 0%,#3a2030 100%);
}

/* ---- 基础底色 ---- */
html.dark-theme body.sp-body{background:#121212;color:var(--sp-ink);}
html.dark-theme .sp-wrap{background:var(--sp-bg);}
/* 网站背景图夜间保留 + 62% 黑遮罩压暗（与主站 custom.css 同款） */
html.dark-theme body.sp-body.site-bg{
  background-image:linear-gradient(rgba(10,10,14,.62),rgba(10,10,14,.62)),var(--site-bg-url);
  background-color:#121212;
}
html.dark-theme body.sp-body.site-bg .sp-wrap{background:transparent;}
@media(min-width:768px){
  html.dark-theme body.sp-body.site-bg{background-image:none;background-color:#121212;}
  html.dark-theme body.sp-body.site-bg .sp-wrap{
    background-image:linear-gradient(rgba(10,10,14,.62),rgba(10,10,14,.62)),var(--site-bg-url);
    background-color:#121212;
  }
}
html.dark-theme .sp-brand-name{color:var(--sp-ink);}

/* ---- 顶部栏 / 底部导航 / 胶囊 / 返回 ---- */
html.dark-theme .sp-navbar{background:#1a1a1f;border-bottom-color:#26262b;}
html.dark-theme .bottom-nav{background:#1a1a1f;box-shadow:0 6px 20px rgba(0,0,0,.5);}
html.dark-theme .bottom-nav .nav-icon,
html.dark-theme .bottom-nav .nav-label{color:#7d7d87;}
html.dark-theme .sp-pill,
html.dark-theme .sp-top .sp-home{background:var(--sp-card);border-color:var(--sp-line);color:var(--sp-sub);}

/* ---- 卡片阴影在暗底下改为细边框观感 ---- */
html.dark-theme .sp-card,
html.dark-theme .sp-item{box-shadow:none;}
html.dark-theme .sp-item:hover{box-shadow:0 4px 20px rgba(0,0,0,.35);}

/* ---- 筛选 chip / 分页 ---- */
html.dark-theme .sp-chip{background:var(--sp-card);border-color:var(--sp-line);color:var(--sp-text);}
html.dark-theme .sp-pager a,
html.dark-theme .sp-pager span{background:var(--sp-card);color:var(--sp-sub);}

/* ---- 表单输入 ---- */
html.dark-theme .sp-field input:focus,
html.dark-theme .sp-field select:focus,
html.dark-theme .sp-field textarea:focus,
html.dark-theme .sp-form-item textarea:focus{background:var(--sp-panel);}
html.dark-theme .sp-btn.ghost{background:#26262b;color:#c2c2ca;}
html.dark-theme .sp-btn.ghost:hover{background:#303038;color:#e8e8ec;}

/* ---- 选中态浅蓝底 / 标签 / 提示条：浅色底改为暗色半透明 ---- */
html.dark-theme .sp-radio:has(input:checked){background:rgba(233,49,101,.14);}
html.dark-theme .sp-tag.pin{background:rgba(245,158,11,.14);color:#fbbf24;border-color:rgba(245,158,11,.3);}
html.dark-theme .sp-tag.warn{background:rgba(239,68,68,.14);color:#f87171;border-color:rgba(239,68,68,.3);}
html.dark-theme .sp-tag.ok{background:rgba(34,197,94,.14);color:#4ade80;border-color:rgba(34,197,94,.3);}
html.dark-theme .sp-warn-note,
html.dark-theme .sp-disclaimer{
  background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.32);color:#fcd34d;
}
html.dark-theme .sp-warn-note b,
html.dark-theme .sp-disclaimer b{color:#fbbf24;}
html.dark-theme .sp-danger-box{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.32);color:#fca5a5;}
html.dark-theme .sp-danger-box b{color:#f87171;}
html.dark-theme .sp-alert.err{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.32);color:#fca5a5;}
html.dark-theme .sp-alert.ok{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.32);color:#86efac;}

/* ---- 弹窗 ---- */
html.dark-theme .sp-toast-box{background:var(--sp-card);box-shadow:0 20px 60px rgba(0,0,0,.5);}

/* ---- 滚动条 ---- */
html.dark-theme ::-webkit-scrollbar-thumb{background:#3a3a42;}
