:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#e5e7eb;
  --accent:#111827;
  --chip:#f3f4f6;
  --shadow:0 10px 25px rgba(17,24,39,.08);
  --radius:16px;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Microsoft YaHei", "PingFang TC", "Noto Sans CJK TC", sans-serif;
  color:var(--text);
  /* 主背景：淡渐变打底，装饰画加载前后页面都不显空 */
  background:
    radial-gradient(1100px 460px at 88% -8%, rgba(99,102,241,.055), transparent 62%),
    radial-gradient(900px 420px at 4% 10%, rgba(14,165,233,.05), transparent 60%),
    radial-gradient(760px 520px at 50% 118%, rgba(16,185,129,.04), transparent 65%),
    var(--bg);
  background-attachment: fixed;
}

.wrap{
  width:min(1200px, calc(100% - 28px));
  margin:0 auto;
}

header{ padding:28px 0 18px; }

.hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.title h1{
  margin:0;
  font-size:28px;
  letter-spacing:.4px;
  /* 背景画满铺后，标题叠在图上仍要清晰 */
  text-shadow:0 1px 0 rgba(255,255,255,.7), 0 0 16px rgba(255,255,255,.75);
}
.subtitle{
  margin:8px 0 0;
  color:var(--muted);
  font-size:14px;
  text-shadow:0 0 12px rgba(255,255,255,.85);
}

.links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:999px;
  text-decoration:none;
  color:var(--text);
  box-shadow:0 6px 18px rgba(17,24,39,.06);
}
.chip:hover{transform:translateY(-1px)}
.chip img{width:20px;height:20px;border-radius:4px}

.controls{
  display:grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap:10px;
  padding:14px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  margin-top:14px;
}

.control{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.control label{
  font-size:12px;
  color:var(--muted);
}
.control input, .control select{
  height:38px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  outline:none;
}
.control input:focus, .control select:focus{
  border-color:#c7cdd8;
  box-shadow:0 0 0 4px rgba(17,24,39,.06);
}
.span2{ grid-column: span 2; }
.controls .span2{ grid-column: 1 / -1; }

.status{
  margin-top:10px;
  font-size:13px;
  color:var(--muted);
  min-height:18px;
}

.tableWrap{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

thead th{
  position:sticky;
  top:0;
  background:#fbfbfd;
  border-bottom:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
  text-align:left;
  padding:12px 12px;
  z-index:1;
}

tbody td{
  padding:12px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  font-size:14px;
}

tbody tr:hover{ background:#fcfcff; }

.col-date{ white-space:nowrap; }
.col-links{ white-space:nowrap; min-width:96px; }
.col-links a{ color:var(--accent); text-decoration:none; }
.col-links a:hover{ text-decoration:underline; }

/* ===== 站点分区导航（汉化站 / 视频站） ===== */
.siteNav{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0 6px;
}
.siteNavItem{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--text);
  text-decoration:none;
  box-shadow:var(--shadow);
  transition:transform .15s ease, border-color .15s ease;
}
.siteNavItem:hover{ transform:translateY(-2px); border-color:#c7ccd6; }
.siteNavItem.isActive{
  border-color:#111827;
  background:#111827;
  color:#fff;
}
.siteNavIcon{ font-size:18px; line-height:1; }
.siteNavText{ display:flex; flex-direction:column; line-height:1.25; }
.siteNavText strong{ font-size:14px; font-weight:650; }
.siteNavText em{ font-style:normal; font-size:11.5px; opacity:.68; }
.siteNavItem.isActive .siteNavText em{ opacity:.75; }

/* ===== 网盘状态列 ===== */
.col-netdisk{ min-width:190px; }
.ndBox{ display:flex; flex-wrap:wrap; gap:5px; }
.ndChip{
  font-size:11.5px;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--chip);
  color:#374151;
  white-space:nowrap;
  cursor:help;
}
.ndChip--ok{ background:#e8f7ee; border-color:#bfe6cd; color:#137a3c; }
.ndBadge{
  font-style:normal;
  font-size:9.5px;
  line-height:1;
  padding:1.5px 5px;
  margin-left:3px;
  border-radius:999px;
  background:#e8f0fe;
  border:1px solid #c2d6fb;
  color:#1a4fa0;
  vertical-align:1px;
}
.ndChip--dead{ background:#fdecec; border-color:#f6c6c6; color:#b42318; }
.ndChip--mix{ background:#fff5e6; border-color:#f5dcaa; color:#8a5a00; }
.ndChip--unk{ background:#f4f4f5; border-color:#e0e0e3; color:#6b7280; }
.ndChip--none{ background:transparent; border-style:dashed; color:#9ca3af; cursor:default; }
.ndMeta{
  margin-top:6px;
  font-size:11px;
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  row-gap:4px;
  align-items:center;
}
.ndWarn{ color:#b42318; font-weight:600; }
.ndGood{ color:#137a3c; font-weight:600; }
.ndTime{ color:#9ca3af; }

/* ---- 自动补档：可用链接 + 状态 ---- */
.ndGo{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 9px;
  border-radius:999px;
  border:1px solid #cfdffa;
  background:#eef4fd;
  color:#1f5fa8;
  font-size:11.5px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.ndGo:hover{ background:#e2edfc; border-color:#b9d2f7; }
.ndGoIcon{ font-size:11px; opacity:.75; }
.ndGoPwd{ font-weight:600; color:#1f5fa8; font-size:10.5px; }
.ndGo--big{ padding:4px 12px; font-size:12.5px; }

.ndState{
  font-size:10.5px;
  padding:1px 7px;
  border-radius:999px;
  border:1px solid transparent;
  white-space:nowrap;
}
.ndState--ok{ background:#eaf8f0; border-color:#bfe6cd; color:#136b3a; }
.ndState--move{ background:#fff6e5; border-color:#f2d9a8; color:#8a5a00; }
.ndState--new{ background:#e8f0fe; border-color:#c2d6fb; color:#1a4fa0; }
.ndState--bad{ background:#fdecec; border-color:#f6c6c6; color:#b42318; }
.ndState--none{ background:#f4f4f5; border-color:#e4e4e7; color:#6b7280; }

.linkMuted{ color:#9ca3af; cursor:help; }
.ndTo{
  color:#1f5fa8;
  font-size:10.5px;
  text-decoration:none;
  white-space:nowrap;
}
.ndTo:hover{ text-decoration:underline; }
.ndFix{
  padding:1px 7px;
  border-radius:6px;
  border:1px solid var(--line);
  background:transparent;
  color:#4b5563;
  font-size:10.5px;
  cursor:pointer;
}
.ndFix:hover{ border-color:#cfe0f5; background:#f6faff; color:#1f5fa8; }

/* ---- 补档详情弹层 ---- */
.ndDialog{
  width:min(620px, calc(100vw - 32px));
  max-height:calc(100vh - 64px);
  padding:22px 24px;
  border:1px solid var(--line);
  border-top:4px solid #10b981;
  border-radius:16px;
  background:var(--card);
  color:var(--text);
  overflow:auto;
  line-height:1.7;
}
.ndDialog::backdrop{ background:rgba(15,23,42,.55); }
.ndDialogClose{
  position:absolute;
  top:10px; right:12px;
  width:30px; height:30px;
  border:0; border-radius:8px;
  background:transparent;
  color:var(--muted);
  font-size:20px; line-height:1;
  cursor:pointer;
}
.ndDialogClose:hover{ background:#f1f5f9; color:var(--text); }
.ndT{ margin:0 0 6px; font-size:16px; }
.ndSub{ margin:0 0 14px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ndRow{ margin:0 0 14px; }
.ndRowK{
  display:block;
  font-size:11.5px;
  color:#8b93a1;
  margin-bottom:5px;
  letter-spacing:.02em;
}
.ndRowNote{ margin-left:8px; font-size:11.5px; color:#8b93a1; }
.ndAlt{ display:flex; flex-wrap:wrap; gap:6px; }
.ndAltLink{
  font-size:11.5px;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--chip);
  color:#374151;
  text-decoration:none;
}
.ndAltLink{ cursor:default; }
.ndRow--go{
  padding:10px 12px;
  border:1px solid #e6eef9;
  border-radius:10px;
  background:#f8fbff;
}
.ndNow{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ndNowList{ display:flex; flex-direction:column; gap:6px; }
.ndNowList .ndTo{ align-self:flex-start; }
.ndNowPlat{ font-size:12.5px; font-weight:600; color:var(--text); }
.ndReup{
  display:inline-block;
  margin-right:6px;
  padding:1px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  border:1px solid transparent;
}
.ndReup--done{ background:#eaf8f0; border-color:#bfe6cd; color:#136b3a; }
.ndReup--ready{ background:#eef4fd; border-color:#cfdffa; color:#1f5fa8; }
.ndReup--need_login, .ndReup--need_file{ background:#fff6e5; border-color:#f2d9a8; color:#8a5a00; }
.ndReup--no_client{ background:#fdecec; border-color:#f6c6c6; color:#b42318; }
.ndCandName{ font-weight:600; color:#4b5563; }
.ndDeadList, .ndCandList{ display:flex; flex-direction:column; gap:5px; }
.ndDead{
  display:flex; gap:8px; align-items:baseline;
  font-size:11.5px;
  color:#6b7280;
}
.ndDeadPlat{ color:#b42318; font-weight:600; }
.ndDeadWhy{ color:#9ca3af; }
.ndCand{
  display:flex; flex-wrap:wrap; gap:8px; align-items:baseline;
  padding:5px 8px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:11.5px;
}
.ndCand.isOk{ border-color:#bfe6cd; background:#f6fdf9; }
.ndCand.isUnk{ background:#fafafa; }
.ndCand a{ color:#1f5fa8; text-decoration:none; font-weight:600; }
.ndCandWhy{ color:#6b7280; }
.ndCandSrc{ margin-left:auto; color:#9ca3af; }
.ndCopy{
  width:100%;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafbfc;
  color:#374151;
  font-size:12px;
  line-height:1.6;
  resize:vertical;
  font-family:inherit;
}
.ndActions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.ndBtn{
  padding:5px 12px;
  border-radius:9px;
  border:1px solid #bfe6cd;
  background:#eaf8f0;
  color:#136b3a;
  font-size:12px;
  cursor:pointer;
  text-decoration:none;
}
.ndBtn:hover{ background:#dcf3e5; }
.ndBtn--ghost{ border-color:var(--line); background:transparent; color:#374151; }
.ndBtn--ghost:hover{ background:#f6faff; border-color:#cfe0f5; color:#1f5fa8; }
.ndHint{ margin:8px 0 0; font-size:11.5px; color:#9ca3af; }
.ndFoot{ margin:4px 0 0; font-size:11px; color:#9ca3af; border-top:1px dashed var(--line); padding-top:10px; }


.badges{ display:flex; flex-wrap:wrap; gap:6px; }
.badge{
  font-size:12px;
  padding:4px 8px;
  border-radius:999px;
  background:var(--chip);
  border:1px solid var(--line);
  color:#374151;
}

.name{ font-weight:650; }
.mini{ font-size:12px; color:var(--muted); margin-top:6px; line-height:1.4; }

.likeRow{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.likeBtn{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:999px;
  padding:6px 12px;
  font-size:12px;
  cursor:pointer;
}
.likeBtn:hover{ transform:translateY(-1px); }
.likeBtn.isLiked{
  border-color:#f59e0b;
  background:#fff7ed;
  color:#c2410c;
  box-shadow:0 0 0 2px rgba(245,158,11,.08);
}
.likeBtn:disabled{
  opacity:.58;
  cursor:wait;
  transform:none;
}
.likeCount{
  min-width:24px;
  padding:2px 8px;
  border-radius:999px;
  background:#f3f4f6;
  font-size:12px;
  text-align:center;
}

.shotBtn{
  border:none;
  background:transparent;
  padding:0;
  cursor:pointer;
}
.shot{
  width:92px;
  height:58px;
  border-radius:10px;
  object-fit:cover;
  border:1px solid var(--line);
  background:#f3f4f6;
  display:block;
}
.shotEmpty{
  width:92px;
  height:58px;
  border-radius:10px;
  border:1px dashed var(--line);
  background:#fafafa;
}

.details{ margin-top:8px; }
.details summary{
  cursor:pointer;
  color:var(--muted);
  font-size:12px;
  list-style:none;
}
.details summary::-webkit-details-marker{display:none}
.kv{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap:8px 10px;
  padding:10px 0 0;
  font-size:12px;
  color:#374151;
}
.kv .k{ color:var(--muted); }
.kv a{ color:var(--accent); text-decoration:none; }
.kv a:hover{ text-decoration:underline; }


.extraPanels{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.panel{
  background:linear-gradient(180deg, #ffffff 0%, #fbfbff 100%);
  border:1px solid #dfe4ef;
  border-radius:18px;
  box-shadow:0 12px 28px rgba(17,24,39,.08);
  padding:16px 18px;
}
.panel h2{
  margin:0;
  font-size:18px;
  letter-spacing:.3px;
}
.panelLead{
  margin:8px 0 0;
  font-size:13px;
  color:var(--muted);
}
.redNote{
  margin:8px 0 0;
  color:#dc2626;
  font-size:13px;
  font-weight:700;
}
.statementCard{
  border-left:4px solid #6366f1;
}
.previewCard{
  border-left:4px solid #06b6d4;
}
.messageCard{
  border-left:4px solid #f59e0b;
}
.toolboxCard{
  padding:4px 2px 2px;
}
button.chip{
  font:inherit;
  cursor:pointer;
}
.toolboxDialog{
  width:min(1100px, calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  padding:20px;
  border:1px solid var(--line);
  border-top:4px solid #10b981;
  border-radius:18px;
  background:var(--card);
  color:var(--text);
  overflow:auto;
}
.toolboxDialog::backdrop{ background:rgba(15,23,42,.55); }
.toolboxDialog .viewerClose{ position:sticky; top:0; float:right; z-index:1; }
/* 视频站 / 通用留言板弹窗 */
.guestbookDialog{
  width:min(880px, calc(100vw - 24px));
  max-height:calc(100vh - 48px);
  padding:18px 20px 22px;
  border:1px solid var(--line);
  border-top:4px solid #6366f1;
  border-radius:18px;
  background:var(--card);
  color:var(--text);
  overflow:auto;
}
.guestbookDialog::backdrop{ background:rgba(15,23,42,.55); }
.guestbookHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.guestbookHead h2{ margin:0; font-size:20px; }
.guestbookDialog .viewerClose{ position:static; }
.guestbookTip{ margin:0 0 10px; color:var(--muted); font-size:13px; }
.guestbookDialog #walineVideo .wl-panel{ margin:0; }
@media (max-width: 640px){
  .guestbookDialog{ padding:14px 12px 18px; border-radius:14px; }
}
.statement{
  margin:0 0 16px;
}
.statement p{
  margin:8px 0;
  color:#374151;
  line-height:1.76;
}
.previewList{
  margin:10px 0 0;
  padding-left:20px;
  color:#374151;
  line-height:1.72;
}
.previewList li{ margin:6px 0; }


.toolboxLayout{
  margin-top:12px;
  display:grid;
  grid-template-columns:minmax(0, 1.65fr) minmax(260px, 1fr);
  gap:14px;
  align-items:stretch;
}
.toolboxLinks{
  border:1px solid #d7deea;
  border-radius:16px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  padding:14px;
}
.toolboxLinksTitle{
  margin:0;
  font-size:15px;
  color:#0f172a;
}

.coinLab{
  margin-top:0;
  padding:14px;
  border:1px solid #d7deea;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}
.coinLabHead h3{
  margin:0;
  font-size:16px;
}
.coinLabHead p{
  margin:6px 0 0;
  color:#64748b;
  font-size:12px;
}
.coinLabBody{
  margin-top:12px;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  align-items:center;
}
.coinLabStageWrap{ display:flex; justify-content:center; }
.coinLabStage{
  width:min(100%, 320px);
  aspect-ratio:1/1;
  position:relative;
  transform-style:preserve-3d;
  border-radius:16px;
}
.coinFace{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  border-radius:16px;
  border:1px solid #d9e2ef;
  box-shadow:0 12px 28px rgba(17,24,39,.12);
}
.coinFace.front{ background-image:url("catdog-main/正面.webp"); transform:translateZ(1px); }
.coinFace.back{ background-image:url("catdog-main/反面.webp"); transform:rotateY(180deg); }
.coinLabActions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.coinLabActions input[type="file"]{ display:none; }
.coinUpload{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:10px;
  border:1px dashed #94a3b8;
  background:#fff;
  color:#334155;
  cursor:pointer;
  font-size:13px;
}
.ghostBtn{
  background:#fff;
  color:#0f172a;
  border:1px solid #cbd5e1;
}
.coinResult{
  margin:10px 0 0;
  font-size:13px;
  color:#0f172a;
  font-weight:600;
}
.toolboxGrid{
  margin-top:10px;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.toolboxBtn{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid #d7deea;
  background:linear-gradient(135deg, #ffffff 0%, #f4f9ff 100%);
  text-decoration:none;
  color:#0f172a;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.toolboxBtn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(15,23,42,.12);
  border-color:#94a3b8;
}
.toolboxBtn strong{
  display:block;
  font-size:15px;
}
.toolboxBtn small{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:12px;
}
.toolboxEmoji{
  width:40px;
  height:40px;
  border-radius:10px;
  background:#e2f7ef;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  flex-shrink:0;
}

#waline{
  margin-top:12px;
  --waline-theme-color:#334155;
  --waline-active-color:#111827;
  --waline-color:#374151;
  --waline-bg-color:#ffffff;
  --waline-bg-color-light:#f8fafc;
  --waline-bg-color-hover:#f1f5f9;
  --waline-border-color:#e2e8f0;
  --waline-disable-bg-color:#f8fafc;
  --waline-disable-color:#94a3b8;
  --waline-info-bg-color:#f8fafc;
  --waline-info-color:#64748b;
  --waline-border:1px solid var(--waline-border-color);
  --waline-box-shadow:none;
}
#waline .wl-panel{
  border-radius:14px;
}
#waline .wl-card{
  border-radius:12px;
}

/* Waline custom emoji: larger picker thumbnails and readable inline emojis */
#waline .wl-emoji-popup{
  max-width:min(620px, calc(100vw - 48px));
}
#waline .wl-emoji-popup .wl-tab-wrapper{
  max-height:280px;
  padding:10px;
}
#waline .wl-emoji-popup .wl-tab-wrapper > button{
  width:56px;
  height:56px;
  margin:3px;
  line-height:56px;
  border-radius:8px;
}
#waline .wl-emoji-popup .wl-emoji{
  width:48px !important;
  height:48px !important;
  max-width:48px !important;
  max-height:48px !important;
  object-fit:contain;
}
#waline .wl-emoji-popup .wl-emoji-preview{
  width:96px !important;
  height:96px !important;
  max-width:96px !important;
  max-height:96px !important;
  object-fit:contain;
}
#waline .wl-preview .wl-emoji{
  width:auto !important;
  height:2.2em !important;
  max-width:4.4em !important;
  max-height:2.2em !important;
  vertical-align:-0.52em;
  object-fit:contain;
}
/* Sent comment emojis are deliberately larger than editor preview emojis. */
#waline .wl-card .wl-content .wl-emoji{
  width:auto !important;
  height:64px !important;
  max-width:128px !important;
  max-height:64px !important;
  margin:4px 6px !important;
  vertical-align:middle !important;
  object-fit:contain;
}
@media (max-width: 640px){
  #waline .wl-emoji-popup .wl-tab-wrapper > button{
    width:50px;
    height:50px;
    line-height:50px;
  }
  #waline .wl-emoji-popup .wl-emoji{
    width:44px !important;
    height:44px !important;
    max-width:44px !important;
    max-height:44px !important;
  }
  #waline .wl-emoji-popup .wl-emoji-preview{
    width:84px !important;
    height:84px !important;
    max-width:84px !important;
    max-height:84px !important;
  }
  #waline .wl-card .wl-content .wl-emoji{
    height:56px !important;
    max-width:112px !important;
    max-height:56px !important;
  }
}

.messageGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.messageInputWrap{ grid-column:auto; }
.messageForm{ margin-top:10px; }
.messageForm input,
.messageForm textarea{
  width:100%;
  border:1px solid #d7deea;
  border-radius:12px;
  background:#fff;
  padding:10px 12px;
  font:inherit;
}
.messageForm textarea{
  min-height:112px;
  resize:vertical;
}
.messageForm input:focus,
.messageForm textarea:focus{
  outline:none;
  border-color:#94a3b8;
  box-shadow:0 0 0 4px rgba(99,102,241,.14);
}
.messageSubmit{
  margin-top:12px;
  border:1px solid transparent;
  border-radius:12px;
  background:linear-gradient(90deg, #111827 0%, #334155 100%);
  color:#fff;
  padding:9px 16px;
  cursor:pointer;
  font-weight:600;
}
.messageSubmit:hover{ transform:translateY(-1px); }
.messageStatus{ min-height:20px; margin:8px 0 0; }
.messageStatus.warn{ color:#b45309; }
.messageList{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:420px;
  overflow:auto;
}
.messageItem{
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:10px 12px;
}
.messageMeta{
  font-size:12px;
  color:var(--muted);
  margin-bottom:6px;
}
.messageItem p{
  margin:0;
  line-height:1.6;
  white-space:pre-wrap;
  word-break:break-word;
}
.messageEmpty{
  border:1px dashed var(--line);
  border-radius:10px;
  padding:10px;
}

.updateLog{
  margin-top:16px;
}
.updateList{
  margin:10px 0 0;
  padding-left:20px;
  line-height:1.75;
  color:#374151;
}
.updateList li{ margin:6px 0; }
.updateList time{
  font-weight:700;
  color:#111827;
}

.footer{
  padding:18px 0 30px;
  color:var(--muted);
  font-size:12px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.muted{ color:var(--muted); }
code{ background:#f3f4f6; border:1px solid var(--line); padding:2px 6px; border-radius:8px; }

.viewer{
  border:none;
  border-radius:18px;
  padding:0;
  width:min(920px, calc(100vw - 32px));
  box-shadow:0 18px 50px rgba(0,0,0,.22);
}
.viewer::backdrop{ background:rgba(0,0,0,.35); }
.viewerClose{
  position:absolute;
  right:10px;
  top:8px;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.viewer img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
}

@media (max-width: 980px){
  .controls{ grid-template-columns: 1fr 1fr; }
  .extraPanels{ grid-template-columns:1fr; }
  .toolboxLayout{ grid-template-columns:1fr; }
  .span2{ grid-column: span 2; }
  thead{ display:none; }
  .table, tbody, tr, td{ display:block; width:100%; }
  tbody td{ border-bottom:none; }
  tbody tr{ border-bottom:1px solid var(--line); }
}


/* --- background illustration：底部两侧装饰画 --- *//* 排版原则：锚在视口下缘、贴近两侧留白，用径向遮罩向内渐隐，
   不再从页首竖贯到底；加载完成后才淡入（html.bgReady），不与首屏抢带宽。 */
.bgLayer{
  position:fixed;
  top:0;
  bottom:0;
  width:52vw;
  pointer-events:none;
  z-index:0;
  opacity:0;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  filter:saturate(1.03) contrast(1.05);
  transition:opacity 1s ease;
}
html.bgReady .bgLayer{ opacity:.5; }
/* 中缝线性渐隐，让两图衔接自然 */
.bgLeft{
  left:0;
  background-image:url("assets/bg-right.webp");
  -webkit-mask-image:linear-gradient(90deg, #000 62%, transparent 98%);
          mask-image:linear-gradient(90deg, #000 62%, transparent 98%);
}
.bgRight{
  right:0;
  background-image:url("assets/bg-left.webp");
  -webkit-mask-image:linear-gradient(270deg, #000 62%, transparent 98%);
          mask-image:linear-gradient(270deg, #000 62%, transparent 98%);
}
@media (min-width: 1600px){
  .bgLayer{ width:56vw; }
  html.bgReady .bgLayer{ opacity:.55; }
}
@media (max-width: 980px){
  .bgLayer{ width:64vw; }
  html.bgReady .bgLayer{ opacity:.3; }
}
@media (max-width: 640px){
  .bgLayer{ width:100vw; }
  .bgRight{ display:none; }
  html.bgReady .bgLayer{ opacity:.18; }
}

/* keep content above background */
header, main, footer{ position:relative; z-index:1; }

/* --- title stickers --- */
.titleRow{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.sticker{
  width:44px;
  height:44px;
}
@media (max-width: 520px){
  .sticker{width:38px;height:38px;}
}

/* mobile card labels */
@media (max-width: 980px){
  tbody tr{ padding:10px 12px; }
  tbody td{ padding:8px 0; }
  tbody td:nth-child(1)::before{ content:"截图"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(2)::before{ content:"汉化名"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(3)::before{ content:"游戏原名"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(4)::before{ content:"作者"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(5)::before{ content:"类型/分级/程度"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(6)::before{ content:"发布时间"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  tbody td:nth-child(7)::before{ content:"链接"; display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
  .shot, .shotEmpty{ width:100%; max-width:260px; height:auto; aspect-ratio:16/10; }
}

/* save repair tool */
.toolWrap{ padding:34px 0; }
.toolPanel{ max-width:900px; margin:0 auto; }

.toolNotice{
  margin-top:12px;
  border:1px solid #fde68a;
  background:#fffbeb;
  border-radius:12px;
  padding:10px 12px;
  color:#78350f;
  line-height:1.7;
}
.toolNotice p{ margin:4px 0; }

.toolGrid{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(2, minmax(220px,1fr));
  gap:10px;
}
.toolCheck{
  flex-direction:row;
  align-items:center;
  gap:8px;
}
.toolCheck input{ width:auto; height:auto; }
.toolActions{
  margin-top:14px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.btn[hidden]{ display:none !important; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid transparent;
  background:linear-gradient(90deg, #111827 0%, #334155 100%);
  color:#fff;
  text-decoration:none;
  cursor:pointer;
}
.toolStatus{ min-height:20px; margin:10px 0 0; }
.toolStatus.error{ color:#b91c1c; }
.toolResult{ margin-top:14px; border-top:1px solid var(--line); padding-top:14px; }
.toolDownloads{ display:flex; gap:10px; flex-wrap:wrap; margin:10px 0 0; }

.jsonEditor{ margin-top:14px; border-top:1px dashed var(--line); padding-top:12px; }
#jsonEditor{
  width:100%;
  min-height:220px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  padding:10px;
  font:12px/1.6 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  color:#111827;
}
#jsonEditor:focus{
  outline:none;
  border-color:#94a3b8;
  box-shadow:0 0 0 4px rgba(99,102,241,.12);
}
.jsonActions{ margin-top:10px; }
.editorBtns{ margin-top:auto; }
#jsonPreview{
  margin-top:10px;
  max-height:320px;
  overflow:auto;
  background:#0b1020;
  color:#dbeafe;
  border-radius:10px;
  padding:10px;
  font-size:12px;
}
@media (max-width: 720px){
  .toolGrid{ grid-template-columns:1fr; }
}

.siteVisitCounter{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin:0 0 10px;
  padding:6px 10px;
  border:1px solid rgba(99,102,241,.18);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 6px 18px rgba(17,24,39,.05);
  color:#64748b;
  font-size:12px;
  line-height:1;
}
.siteVisitItem{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.siteVisitItem strong{color:#334155;font-size:12px;font-variant-numeric:tabular-nums}
.siteVisitDivider{color:#cbd5e1}
@media (max-width:580px){
  .siteVisitCounter{font-size:11px;padding:6px 9px}
  .siteVisitItem strong{font-size:11px}
}

/* ===== 视频站 ===== */
.vStats{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:10px;
  margin:16px 0 4px;
}
.vStat{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  gap:4px;
  box-shadow:0 6px 18px rgba(17,24,39,.05);
}
.vStatNum{ font-size:20px; font-weight:700; letter-spacing:.3px; font-variant-numeric:tabular-nums; }
.vStatLabel{ font-size:12px; color:var(--muted); }
.vStatWide{ grid-column: span 1; }
.vStatWide .vStatNum{ font-size:14px; font-weight:600; }

.vTabs{ display:flex; gap:8px; margin:16px 0 0; }
.vTab{
  padding:9px 16px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--text);
  font-size:13.5px;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(17,24,39,.05);
}
.vTab.isActive{ background:#111827; color:#fff; border-color:#111827; }

.vControls{ grid-template-columns: repeat(4, minmax(120px, 1fr)); }
.vControls .span2{ grid-column: span 2; }

.vChips{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 0; }
.vChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 13px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--text);
  font-size:13px;
  cursor:pointer;
}
.vChip:hover{ border-color:#c7ccd6; }
.vChip.isActive{ background:#111827; border-color:#111827; color:#fff; }
.vChipNum{ font-size:11px; opacity:.62; font-variant-numeric:tabular-nums; }
.vChip.isActive .vChipNum{ opacity:.8; }

.vResult{ margin:12px 2px 0; font-size:12.5px; color:var(--muted); }

.vNote{ margin:10px 2px 0; font-size:12px; line-height:1.7; color:var(--muted); }
.vNote:empty{ display:none; }

.vGrid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
  gap:14px;
  margin:14px 0 0;
}
.vCard{
  display:flex;
  flex-direction:column;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  box-shadow:0 6px 18px rgba(17,24,39,.05);
  transition:transform .16s ease, box-shadow .16s ease;
}
.vCard:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(17,24,39,.12); }
.vCover{ position:relative; aspect-ratio:16/9; background:#eceef3; overflow:hidden; }
.vCover img{ width:100%; height:100%; object-fit:cover; display:block; }
.vDur{
  position:absolute; right:8px; bottom:8px;
  background:rgba(0,0,0,.72); color:#fff;
  font-size:11px; padding:2px 6px; border-radius:6px;
  font-variant-numeric:tabular-nums;
}
.vPlayMini{
  position:absolute; left:8px; bottom:8px;
  background:rgba(0,0,0,.55); color:#fff;
  font-size:11px; padding:2px 6px; border-radius:6px;
}
.vBody{ padding:10px 12px 12px; display:flex; flex-direction:column; gap:8px; }
.vTitle{
  margin:0;
  font-size:13.5px;
  line-height:1.5;
  font-weight:600;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:40px;
}
.vMeta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:11.5px; color:var(--muted); }
.vDate{ color:#9ca3af; }
.vTag{
  padding:2px 7px;
  border-radius:999px;
  background:var(--chip);
  border:1px solid var(--line);
  color:#4b5563;
  font-size:11px;
}
.vTag--hanhua{ background:#eef6ff; border-color:#cfe4fb; color:#1f5fa8; }
.vTag--play{ background:#f2f6ff; border-color:#dbe6ff; color:#334a91; }
.vTag--guide{ background:#f4f0ff; border-color:#e2d9fb; color:#5b3ea8; }
.vTag--morimens{ background:#eefaf6; border-color:#c9ecdf; color:#166b52; }
.vTag--arknights{ background:#f0f4f8; border-color:#dbe3ec; color:#475569; }
.vTag--jx3{ background:#fff5ee; border-color:#f6dcc6; color:#95531f; }
.vTag--other{ background:#f6f6f7; border-color:#e5e5e8; color:#52525b; }

.vList{ display:flex; flex-direction:column; gap:10px; margin:14px 0 0; }
.aCard{
  display:flex;
  gap:14px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  text-decoration:none;
  color:inherit;
  box-shadow:0 6px 18px rgba(17,24,39,.05);
}
.aCard:hover{ border-color:#c7ccd6; }
.aCover{ flex:0 0 156px; aspect-ratio:16/10; border-radius:10px; overflow:hidden; background:#eceef3; }
.aCover img{ width:100%; height:100%; object-fit:cover; display:block; }
.aBody{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.aTitle{ margin:0; font-size:14.5px; line-height:1.5; font-weight:650; }
.aSummary{
  margin:0;
  font-size:12.5px;
  color:#6b7280;
  line-height:1.6;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.vMoreWrap{ display:flex; justify-content:center; margin:22px 0 8px; }
.vMore{
  padding:10px 26px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--text);
  font-size:13.5px;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(17,24,39,.06);
}
.vMore:hover{ border-color:#c7ccd6; }
.vEmpty{ text-align:center; color:var(--muted); font-size:13.5px; margin:30px 0; }

@media (max-width:900px){
  .vStats{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .vControls{ grid-template-columns: 1fr 1fr; }
  .vControls .span2{ grid-column: 1 / -1; }
}
@media (max-width:560px){
  .vGrid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; }
  .vTitle{ font-size:12.5px; min-height:38px; }
  .aCard{ flex-direction:column; }
  .aCover{ flex:none; width:100%; }
}

/* hidden 属性优先级修正（避免被 display:grid/flex 覆盖） */
.vGrid[hidden], .vList[hidden], .vMore[hidden], .vEmpty[hidden]{ display:none !important; }

/* ---------- 细分筛选（facet） ---------- */
.facetBar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:16px 0 0;
}
.facetToggle{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--text);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(17,24,39,.04);
}
.facetToggle:hover{ border-color:#c7ccd6; }
.facetToggleIcon{ font-size:12px; opacity:.7; }
.facetToggleHint{ font-weight:400; font-size:11.5px; color:var(--muted); }
.facetArrow{ font-size:10px; color:var(--muted); transition:transform .18s ease; }
.facetToggle[aria-expanded="false"] .facetArrow{ transform:rotate(-90deg); }
.facetClear{
  padding:7px 12px;
  border-radius:999px;
  border:1px dashed #f0c2c2;
  background:#fff7f7;
  color:#b42318;
  font-size:12px;
  cursor:pointer;
}
.facetClear:hover{ background:#ffecec; }

.vFacets{
  margin:12px 0 0;
  padding:6px 16px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--card);
  box-shadow:0 6px 18px rgba(17,24,39,.04);
}
.vFacets[hidden]{ display:none !important; }

.fGroup{
  display:grid;
  grid-template-columns:126px 1fr;
  gap:10px 12px;
  align-items:start;
  padding:11px 0;
  border-top:1px dashed var(--line);
}
.fGroup:first-child{ border-top:0; }
.fLabel{
  padding-top:5px;
  font-size:12.5px;
  color:#374151;
}
.fName{
  display:flex;
  align-items:center;
  gap:5px;
  font-weight:600;
  white-space:nowrap;
}
.fMulti{
  font-style:normal;
  font-weight:400;
  font-size:10px;
  color:#8b5cf6;
  background:#f5f3ff;
  border:1px solid #e4dcff;
  border-radius:5px;
  padding:0 4px;
}
.fChips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  align-items:center;
}
.fChip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 11px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fcfcfd;
  color:#374151;
  font-size:12.5px;
  cursor:pointer;
  transition:all .14s ease;
}
.fChip:hover{ border-color:#c7ccd6; background:#f7f8fa; }
.fChip.isActive{
  background:#111827;
  border-color:#111827;
  color:#fff;
  box-shadow:0 4px 12px rgba(17,24,39,.16);
}
.fChipNum{ font-size:10.5px; opacity:.6; font-variant-numeric:tabular-nums; }
.fChip.isActive .fChipNum{ opacity:.82; }
.fChip.isDim{ opacity:.45; }
.fHint{
  grid-column:1 / -1;
  display:block;
  margin:-2px 0 0;
  font-style:normal;
  font-size:10.5px;
  line-height:1.5;
  font-weight:400;
  color:#a2a8b4;
}

.vSelected{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin:12px 2px 0;
}
.vSelected[hidden]{ display:none !important; }
.fSelLabel{ font-size:11.5px; color:var(--muted); }
.fSel{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid #cfe4fb;
  background:#eef6ff;
  color:#1f5fa8;
  font-size:12px;
  cursor:pointer;
}
.fSel:hover{ background:#e2efff; }
.fSel span{ font-size:13px; opacity:.6; line-height:1; }
.fSelClear{
  padding:4px 10px;
  border-radius:999px;
  border:1px dashed var(--line);
  background:transparent;
  color:var(--muted);
  font-size:12px;
  cursor:pointer;
}
.fSelClear:hover{ color:#b42318; border-color:#f0c2c2; }

.vTag--facet{ background:#f5f3ff; border-color:#e4dcff; color:#6d4bd8; }

@media (max-width:700px){
  .fGroup{ grid-template-columns:1fr; gap:6px; }
  .fLabel{ padding-top:0; }
  .facetToggleHint{ display:none; }
  .vFacets{ padding:4px 12px 10px; }
}

/* ---------- 视频站 · 游戏维度与微博 ---------- */
.vStats{ grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
.vStatWide{ grid-column: span 1; }

/* 卡片结构改造：外层不再是 <a>，标题与封面各自成链 */
.vCard{ text-decoration:none; }
.vTitle{ text-decoration:none; color:inherit; display:-webkit-box; }
.vTitle:hover{ color:#1f5fa8; }

.vGameRow{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding-top:7px;
  border-top:1px dashed var(--line);
  font-size:11.5px;
}
.vGame{
  color:#374151;
  text-decoration:none;
  font-weight:600;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
a.vGame:hover{ color:#1f5fa8; }
.vGameOut{ font-size:9.5px; opacity:.55; margin-left:2px; }
.vPrice{
  padding:1px 6px;
  border-radius:6px;
  background:#fff7ed;
  border:1px solid #fde3c4;
  color:#a35b13;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.vPrice.isFree{ background:#eefaf3; border-color:#c8ecd8; color:#187a4f; }
.vPlat{ color:#8b93a1; white-space:nowrap; }

/* 限定游戏条 */
.gChip{
  padding:5px 12px;
  border-radius:999px;
  border:1px solid #cfe4fb;
  background:#eef6ff;
  color:#1f5fa8;
  font-size:12.5px;
  cursor:pointer;
}
.gChip:hover{ background:#e2efff; }
#vGameFilter[hidden]{ display:none !important; }

/* 微博列表 */
.wList{ gap:12px; }
.wLoading{
  padding:48px 0;
  text-align:center;
  color:var(--muted);
  font-size:14px;
}
.wCard{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px 15px;
  display:flex;
  flex-direction:column;
  gap:9px;
  box-shadow:0 6px 18px rgba(17,24,39,.05);
}
.wHead{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.wKind--release{ background:#eef6ff; border-color:#cfe4fb; color:#1f5fa8; }
.wKind--repo{ background:#f4f0ff; border-color:#e2d9fb; color:#5b3ea8; }
.wKind--promo{ background:#fff7ed; border-color:#fde3c4; color:#a35b13; }
.wKind--other{ background:#f6f6f7; border-color:#e5e5e8; color:#52525b; }
.wOpen{ margin-left:auto; font-size:11.5px; color:#1f5fa8; text-decoration:none; }
.wOpen:hover{ text-decoration:underline; }
.wText{
  margin:0;
  font-size:13px;
  line-height:1.75;
  color:#374151;
  white-space:pre-wrap;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.wPics{ display:flex; gap:7px; flex-wrap:wrap; }
.wPic{
  width:104px;
  aspect-ratio:1/1;
  padding:0;
  border:0;
  border-radius:9px;
  overflow:hidden;
  background:#eceef3;
  cursor:zoom-in;
  transition:transform .12s ease, box-shadow .12s ease;
}
.wPic img{ width:100%; height:100%; object-fit:cover; display:block; }
.wPic:hover{ transform:translateY(-1px); box-shadow:0 3px 10px rgba(15,23,42,.14); }
.wPicMore{
  display:flex;
  align-items:center;
  justify-content:center;
  width:104px;
  aspect-ratio:1/1;
  border-radius:9px;
  background:#f2f3f6;
  color:#6b7280;
  font-size:12.5px;
  font-weight:600;
}
.wViewer{
  position:fixed;
  inset:0;
  margin:auto;
  width:fit-content;
  height:fit-content;
  padding:0;
  border:0;
  background:transparent;
  overflow:visible;
  max-width:min(92vw, 1100px);
}
.wViewer::backdrop{ background:rgba(8,12,20,.82); }
.wViewer img{
  display:block;
  max-width:min(92vw, 1100px);
  max-height:78vh;
  margin:0 auto;
  border-radius:10px;
  background:#111;
}
.wViewerClose{
  position:absolute;
  top:-34px;
  right:0;
  width:28px;
  height:28px;
  border:0;
  border-radius:8px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.wViewerClose:hover{ background:rgba(255,255,255,.26); }
.wViewerNav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:56px;
  border:0;
  border-radius:10px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.wViewerNav--prev{ left:-44px; }
.wViewerNav--next{ right:-44px; }
.wViewerNav:hover:enabled{ background:rgba(255,255,255,.28); }
.wViewerNav:disabled{ opacity:.25; cursor:default; }
.wViewerBar{
  margin-top:10px;
  text-align:center;
  font-size:12px;
  color:rgba(255,255,255,.82);
}
.wViewerBar a{ color:#9cc4f5; text-decoration:none; }
.wViewerBar a:hover{ text-decoration:underline; }
.wFoot{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:11.5px; color:var(--muted); }
.wGamesLabel{ color:#9ca3af; }
.wGame{
  padding:3px 9px;
  border-radius:999px;
  border:1px solid #d9e6f5;
  background:#f6faff;
  color:#2f5f92;
  font-size:11.5px;
  cursor:pointer;
}
.wGame:hover{ background:#e9f3ff; border-color:#bcd8f2; }
.wGameN{ font-size:10px; opacity:.6; margin-left:3px; }
.wNoGame{ color:#b6bcc7; }
.wStat{ margin-left:auto; color:#b0b6c1; }

.wList[hidden]{ display:none !important; }
.facetBar[hidden]{ display:none !important; }
.wPic.isBad{ display:none; }

@media (max-width:700px){
  .wPic{ width:78px; }
  .wText{ font-size:12.5px; }
  .wStat{ margin-left:0; width:100%; }
}

.vWbBtn{
  margin-left:auto;
  padding:1px 7px;
  border-radius:6px;
  border:1px solid #ffd6c9;
  background:#fff5f1;
  color:#b4471f;
  font-size:10.5px;
  cursor:pointer;
}
.vWbBtn:hover{ background:#ffece6; }

/* 视频卡片上的「微博原文 ↗」：直接跳到那条对应微博，不再只是筛到微博页 */
.vWbOut{
  padding:1px 6px;
  border-radius:6px;
  color:#b4471f;
  font-size:10.5px;
  text-decoration:none;
  white-space:nowrap;
  opacity:.85;
}
.vWbOut:hover{ background:#fff5f1; opacity:1; }

/* 一键三连按钮 */


.wText.isOpen{ -webkit-line-clamp:unset; display:block; }
.wToggle{
  align-self:flex-start;
  padding:2px 9px;
  border-radius:7px;
  border:1px dashed var(--line);
  background:transparent;
  color:#6b7280;
  font-size:11px;
  cursor:pointer;
}
.wToggle:hover{ color:#1f5fa8; border-color:#cfe4fb; background:#f6faff; }
.wToggle[hidden]{ display:none !important; }
