/* hackertop.css — HackerTop MyBB 1.8.39 Theme Stylesheet*/

@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Share+Tech+Mono&display=swap);

:root {
  --ht-bg:       #030b03;
  --ht-card:     #0a140a;
  --ht-hover:    #0f1f0f;
  --ht-deep:     #050f05;
  --ht-border:   #1a3a1a;
  --ht-border2:  #0f1f0f;
  --ht-tx1:      #e2e8f0;
  --ht-tx2:      #c9d1d9;
  --ht-tx3:      #6b8f6b;
  --ht-tx4:      #4a6a4a;
  --ht-green:    #00ff41;
  --ht-cyan:     #00d4ff;
  --ht-red:      #ff0040;
  --ht-amber:    #ffaa00;
  --ht-mono:     'JetBrains Mono', 'Courier New', monospace;
  --ht-display:  'Share Tech Mono', 'Courier New', monospace;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
  background: var(--ht-bg);
  color: var(--ht-tx2);
  font-family: var(--ht-mono);
  font-size: 14px;
  line-height: 1.6;
  min-height: 100vh;
}
a { text-decoration: none; color: inherit; transition: color .2s; }

/* ── NAVBAR ── */
.ht-nav {
  background: rgba(3,11,3,.95);
  border-bottom: 1px solid var(--ht-border);
  backdrop-filter: blur(10px);
  position: sticky; top: 0; z-index: 100;
}
.ht-nav-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 0 16px; height: 56px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
/* Logo */
.ht-logo { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ht-logo-icon {
  width: 32px; height: 32px;
  background: linear-gradient(135deg, #00ff41, #00d4ff);
  border-radius: 4px; display: flex; align-items: center; justify-content: center;
}
.ht-logo-icon svg { width: 18px; height: 18px; color: #030b03; }
.ht-logo-text {
  color: var(--ht-green); font-size: 16px; letter-spacing: .1em;
  font-family: var(--ht-display);
  text-shadow: 0 0 10px rgba(0,255,65,.4);
  white-space: nowrap; transition: text-shadow .1s;
}
.ht-logo-text.glitch { text-shadow: 2px 0 #ff0040, -2px 0 #00d4ff; }
.ht-logo-cyan { color: var(--ht-cyan); }
/* Nav links */
.ht-nav-links { display: flex; align-items: center; gap: 2px; }
.ht-nav-link {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 4px;
  font-size: 11px; letter-spacing: .08em;
  color: var(--ht-tx3); border: 1px solid transparent;
  transition: all .2s; white-space: nowrap;
}
.ht-nav-link:hover { color: var(--ht-green); background: rgba(0,255,65,.05); }
.ht-nav-link.active { color: var(--ht-green); background: rgba(0,255,65,.08); border-color: rgba(0,255,65,.3); }
.ht-nav-link svg { width: 13px; height: 13px; flex-shrink: 0; }
/* Right area */
.ht-nav-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ht-nav-sep { width: 1px; height: 20px; background: var(--ht-border); }
/* Bell */
.ht-bell { position: relative; }
.ht-bell-btn {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 30px; border-radius: 4px;
  border: 1px solid var(--ht-border); background: transparent;
  color: var(--ht-tx3); cursor: pointer; transition: all .15s;
}
.ht-bell-btn:hover, .ht-bell-btn.active { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }
.ht-bell-btn svg { width: 14px; height: 14px; }
.ht-notif-badge {
  position: absolute; top: -4px; right: -4px;
  background: var(--ht-red); color: #fff;
  border-radius: 10px; padding: 0 4px;
  font-size: 9px; line-height: 14px; min-width: 14px; text-align: center;
}
/* Notification dropdown */
.ht-notif-drop {
  position: absolute; right: 0; top: calc(100% + 8px);
  width: 300px; background: var(--ht-card);
  border: 1px solid var(--ht-border); border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0,0,0,.6);
  overflow: hidden; z-index: 200; display: none;
}
.ht-notif-drop.open { display: block; }
.ht-notif-drop-hdr {
  padding: 10px 14px; border-bottom: 1px solid var(--ht-border);
  display: flex; justify-content: space-between; align-items: center;
}
.ht-notif-drop-hdr span { color: var(--ht-tx1); font-size: 12px; }
.ht-notif-cnt { background: rgba(255,0,64,.15); color: var(--ht-red); font-size: 10px; padding: 1px 6px; border-radius: 10px; border: 1px solid rgba(255,0,64,.3); }
.ht-notif-item { padding: 10px 14px; border-bottom: 1px solid var(--ht-border2); display: flex; gap: 10px; align-items: flex-start; cursor: pointer; transition: background .15s; }
.ht-notif-item:hover { background: var(--ht-hover); }
.ht-notif-dot { width: 6px; height: 6px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; }
.ht-notif-txt { color: var(--ht-tx2); font-size: 12px; margin-bottom: 2px; }
.ht-notif-sub { color: var(--ht-tx4); font-size: 10px; }
.ht-notif-ftr { padding: 8px 14px; text-align: center; color: var(--ht-tx4); font-size: 11px; cursor: pointer; }
.ht-notif-ftr:hover { color: var(--ht-green); }
/* Guest buttons */
.ht-btn-login {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 4px; border: 1px solid var(--ht-border);
  background: transparent; color: var(--ht-tx3);
  font-size: 11px; letter-spacing: .06em; cursor: pointer;
  font-family: var(--ht-mono); transition: all .15s;
}
.ht-btn-login:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-btn-join {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 4px;
  background: rgba(0,255,65,.1); color: var(--ht-green);
  border: 1px solid rgba(0,255,65,.4);
  font-size: 11px; letter-spacing: .06em; transition: all .15s;
}
.ht-btn-join:hover { background: rgba(0,255,65,.15); color: var(--ht-green); }
.ht-btn-login svg, .ht-btn-join svg { width: 12px; height: 12px; }
/* Member widget */
.ht-user-widget {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 8px; border-radius: 4px; border: 1px solid var(--ht-border);
  cursor: pointer; transition: border-color .15s;
}
.ht-user-widget:hover { border-color: #2a5a2a; }
.ht-user-av {
  width: 26px; height: 26px; border-radius: 50%;
  background: linear-gradient(135deg, #00ff41, #00d4ff);
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: #030b03; font-weight: 700; flex-shrink: 0;
}
.ht-user-name { color: #a0ffa0; font-size: 11px; }
.ht-rank-badge { background: rgba(0,212,255,.1); color: var(--ht-cyan); border: 1px solid rgba(0,212,255,.3); font-size: 8px; padding: 1px 4px; border-radius: 3px; letter-spacing: .08em; }
.ht-btn-logout {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 4px;
  border: 1px solid var(--ht-border); background: transparent;
  color: var(--ht-tx4); cursor: pointer; transition: all .15s;
}
.ht-btn-logout:hover { color: var(--ht-red); border-color: rgba(255,0,64,.4); }
.ht-btn-logout svg { width: 13px; height: 13px; }
/* Mobile toggle */
.ht-mob-toggle { display: none; background: transparent; border: none; cursor: pointer; color: var(--ht-green); }
.ht-mob-toggle svg { width: 22px; height: 22px; }
/* Mobile menu */
.ht-mob-menu { display: none; background: var(--ht-bg); border-top: 1px solid var(--ht-border); padding: 8px 16px 16px; }
.ht-mob-menu.open { display: block; }
.ht-mob-link { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx3); font-size: 13px; letter-spacing: .1em; }
.ht-mob-link.active { color: var(--ht-green); }
.ht-mob-link svg { width: 15px; height: 15px; }
.ht-mob-auth { border-top: 1px solid var(--ht-border); padding-top: 12px; margin-top: 4px; display: flex; gap: 12px; }

/* ── HERO ── */
.ht-hero { position: relative; min-height: 560px; overflow: hidden; display: flex; align-items: center; }
#ht-matrix { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .35; }
.ht-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(3,11,3,.4) 0%, rgba(3,11,3,.8) 100%); }
.ht-hero-scanlines { position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, rgba(0,0,0,.03) 0px, rgba(0,0,0,.03) 1px, transparent 1px, transparent 3px); pointer-events: none; }
.ht-hero-inner { max-width: 1280px; margin: 0 auto; padding: 64px 16px; width: 100%; position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ht-hero-badge { display: inline-flex; align-items: center; background: rgba(0,255,65,.1); border: 1px solid rgba(0,255,65,.4); color: var(--ht-green); font-size: 11px; padding: 3px 10px; border-radius: 20px; letter-spacing: .12em; margin-bottom: 16px; }
.ht-hero-title { font-family: var(--ht-display); font-size: clamp(32px,5vw,52px); line-height: 1.1; color: var(--ht-tx1); margin-bottom: 16px; }
.ht-green-glow { color: var(--ht-green); text-shadow: 0 0 20px rgba(0,255,65,.6); }
.ht-cyan-glow  { color: var(--ht-cyan);  text-shadow: 0 0 20px rgba(0,212,255,.6); }
.ht-hero-desc { color: var(--ht-tx3); font-size: 14px; line-height: 1.7; max-width: 480px; margin-bottom: 28px; }
.ht-hero-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ht-btn-primary { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 4px; background: var(--ht-green); color: #030b03; font-size: 13px; letter-spacing: .08em; font-family: var(--ht-mono); transition: all .2s; border: none; cursor: pointer; }
.ht-btn-primary:hover { background: #00ff60; color: #030b03; }
.ht-btn-cyan { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 4px; background: transparent; color: var(--ht-cyan); border: 1px solid rgba(0,212,255,.4); font-size: 13px; letter-spacing: .08em; font-family: var(--ht-mono); transition: all .2s; }
.ht-btn-cyan:hover { background: rgba(0,212,255,.1); color: var(--ht-cyan); }
.ht-btn-red { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 4px; background: transparent; color: var(--ht-red); border: 1px solid rgba(255,0,64,.3); font-size: 13px; letter-spacing: .08em; font-family: var(--ht-mono); transition: all .2s; }
.ht-btn-red:hover { background: rgba(255,0,64,.1); color: var(--ht-red); }
.ht-btn-primary svg, .ht-btn-cyan svg, .ht-btn-red svg { width: 15px; height: 15px; }

/* ── TERMINAL ── */
.ht-terminal { background: rgba(3,11,3,.92); border: 1px solid var(--ht-border); border-radius: 8px; font-family: var(--ht-mono); font-size: 13px; line-height: 1.6; backdrop-filter: blur(4px); box-shadow: 0 0 40px rgba(0,255,65,.06), inset 0 0 40px rgba(0,0,0,.4); display: flex; flex-direction: column; }
.ht-term-bar { display: flex; align-items: center; gap: 6px; border-bottom: 1px solid var(--ht-border); padding: 10px 16px; flex-shrink: 0; }
.ht-dot-r { width: 10px; height: 10px; border-radius: 50%; background: #ff5f57; }
.ht-dot-y { width: 10px; height: 10px; border-radius: 50%; background: #ffbd2e; }
.ht-dot-g { width: 10px; height: 10px; border-radius: 50%; background: #28c840; }
.ht-term-title { color: var(--ht-tx4); font-size: 11px; margin-left: 8px; flex: 1; }
.ht-term-live { display: flex; align-items: center; gap: 5px; color: var(--ht-green); font-size: 10px; letter-spacing: .08em; margin-left: auto; }
.ht-live-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 6px var(--ht-green); animation: htPulse 1s ease-in-out infinite; }
.ht-term-body { height: 268px; overflow-y: auto; padding: 14px 16px; scrollbar-width: none; }
.ht-term-body::-webkit-scrollbar { display: none; }
.ht-tline { margin-bottom: 2px; word-break: break-all; }
.ht-tline.cmd      { color: var(--ht-green); }
.ht-tline.sys      { color: var(--ht-cyan); }
.ht-tline.out      { color: #a0ffa0; }
.ht-tline.info     { color: #00d4ff; }
.ht-tline.good     { color: #39ff5a; }
.ht-tline.warn     { color: #ffaa00; }
.ht-tline.root     { color: #ff6600; }
.ht-tline.root_out { color: #ff9944; }
.ht-tline.dim      { color: var(--ht-green); opacity: .35; }
.ht-cursor { color: var(--ht-green); text-shadow: 0 0 8px rgba(0,255,65,.9); }
.ht-cursor.off { opacity: 0; }
/* Root-state cursor overrides — used when cursor class is inside root/root_out line */
.ht-tline.root .ht-cursor     { color: #ff6600; text-shadow: 0 0 8px rgba(255,102,0,.9); }
.ht-tline.root_out .ht-cursor { color: #ff9944; text-shadow: 0 0 8px rgba(255,153,68,.9); }

/* ── VULN TICKER ── */
.ht-ticker { background: #0a0f0a; border-top: 1px solid var(--ht-border); border-bottom: 1px solid var(--ht-border); overflow: hidden; height: 36px; display: flex; align-items: center; }
.ht-ticker-lbl { background: var(--ht-red); color: #fff; padding: 0 12px; height: 100%; display: flex; align-items: center; font-size: 11px; letter-spacing: .1em; white-space: nowrap; flex-shrink: 0; }
.ht-ticker-wrap { overflow: hidden; flex: 1; }
.ht-ticker-inner { display: flex; gap: 48px; animation: htTicker 40s linear infinite; white-space: nowrap; padding: 0 24px; }
.ht-ticker-item { font-size: 11px; color: #a0ffa0; }
.ht-sev-critical { color: var(--ht-red); margin-right: 6px; }
.ht-sev-high { color: var(--ht-amber); margin-right: 6px; }
.ht-cve-id { color: var(--ht-cyan); margin-right: 6px; }

/* ── STATS BAR ── */
.ht-stats { background: var(--ht-card); border-bottom: 1px solid var(--ht-border); padding: 20px 16px; }
.ht-stats-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.ht-stat-item { display: flex; align-items: center; gap: 16px; }
.ht-stat-icon { width: 44px; height: 44px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ht-stat-icon svg { width: 20px; height: 20px; }
.ht-stat-val { font-family: var(--ht-display); font-size: 22px; line-height: 1; }
.ht-stat-lbl { color: var(--ht-tx4); font-size: 11px; margin-top: 2px; }

/* ── MAIN CONTENT ── */
.ht-main { max-width: 1280px; margin: 0 auto; padding: 48px 16px; }
.ht-sec-hdr { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.ht-sec-hdr svg { width: 18px; height: 18px; flex-shrink: 0; }
.ht-sec-title { color: var(--ht-tx1); font-family: var(--ht-display); font-size: 18px; }
.ht-sec-line { flex: 1; height: 1px; background: var(--ht-border); }
.ht-sec-link { color: var(--ht-green); font-size: 12px; display: flex; align-items: center; gap: 4px; }
.ht-sec-link svg { width: 13px; height: 13px; }

/* ── CTF BANNER ── */
.ht-ctf { background: linear-gradient(135deg, #0a140a, #0f2010); border: 1px solid rgba(255,170,0,.4); border-radius: 8px; padding: 24px 28px; position: relative; overflow: hidden; margin-bottom: 48px; }
.ht-ctf-glow { position: absolute; top: 0; right: 0; width: 200px; height: 200px; background: radial-gradient(circle, rgba(255,170,0,.06) 0%, transparent 70%); pointer-events: none; }
.ht-ctf-inner { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 16px; position: relative; z-index: 1; }
.ht-ctf-live { display: flex; align-items: center; gap: 8px; color: var(--ht-red); font-size: 11px; letter-spacing: .15em; margin-bottom: 8px; }
.ht-ctf-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ht-red); box-shadow: 0 0 8px var(--ht-red); animation: livePulse 1s ease-in-out infinite; }
.ht-ctf-title { color: var(--ht-amber); font-size: 18px; margin-bottom: 6px; font-family: var(--ht-display); }
.ht-ctf-desc { color: var(--ht-tx3); font-size: 12px; max-width: 400px; margin-bottom: 12px; }
.ht-ctf-meta { display: flex; align-items: center; gap: 16px; }
.ht-ctf-meta span { color: var(--ht-tx3); font-size: 11px; }
.ht-ctf-meta strong { color: var(--ht-green); }
.ht-ctf-meta em { color: var(--ht-cyan); font-style: normal; }
.ht-ctf-right { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.ht-countdown-lbl { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; margin-bottom: 4px; text-align: center; }
.ht-countdown { font-family: var(--ht-display); font-size: 28px; color: var(--ht-amber); text-shadow: 0 0 20px rgba(255,170,0,.5); letter-spacing: .1em; }
.ht-btn-amber { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 4px; background: rgba(255,170,0,.1); border: 1px solid rgba(255,170,0,.5); color: var(--ht-amber); font-size: 13px; letter-spacing: .05em; font-family: var(--ht-mono); transition: all .2s; }
.ht-btn-amber:hover { background: rgba(255,170,0,.15); color: var(--ht-amber); }
.ht-btn-amber svg { width: 14px; height: 14px; }

/* ── ZONE CARDS (Home board overview) ── */
.ht-zones { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 48px; }
.ht-zone-card { background: var(--ht-card); border-radius: 8px; overflow: hidden; }
.ht-zone-hdr { padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; }
.ht-zone-hdr-l { display: flex; align-items: center; gap: 12px; }
.ht-zone-ico svg { width: 18px; height: 18px; }
.ht-zone-name { font-size: 13px; letter-spacing: .05em; }
.ht-zone-sub { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; }
.ht-zone-badge { border-radius: 4px; padding: 2px 8px; font-size: 10px; letter-spacing: .08em; }
.ht-board-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-top: 1px solid var(--ht-border2); transition: background .2s; }
.ht-board-row:hover { background: var(--ht-hover); }
.ht-board-left { display: flex; align-items: center; gap: 12px; }
.ht-board-left svg { width: 14px; height: 14px; opacity: .7; }
.ht-board-ico { display: inline-flex; align-items: center; justify-content: center; }
.ht-board-name { color: var(--ht-tx2); font-size: 13px; }
.ht-board-desc { color: var(--ht-tx4); font-size: 11px; }
.ht-board-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ht-board-cnt { color: var(--ht-tx4); font-size: 11px; }
.ht-board-chev svg { width: 13px; height: 13px; color: var(--ht-tx4); }
[data-zone-root] { --zone-rgb: 0,255,65; --zone-color: var(--ht-green); }
.ht-zone-card[data-zone-root] { border: 1px solid rgba(var(--zone-rgb), .13); }
.ht-zone-card[data-zone-root] .ht-zone-hdr { border-bottom: 1px solid rgba(var(--zone-rgb), .13); background: rgba(var(--zone-rgb), .05); }
.ht-zone-card[data-zone-root] .ht-zone-ico,
.ht-zone-card[data-zone-root] .ht-zone-name,
.ht-zone-card[data-zone-root] .ht-board-ico,
.ht-zone-card[data-zone-root] .ht-board-cnt { color: var(--zone-color); }
.ht-zone-card[data-zone-root] .ht-zone-badge { background: rgba(var(--zone-rgb), .15); color: var(--zone-color); border: 1px solid rgba(var(--zone-rgb), .4); }

/* ── TWO-COL (threads + sidebar) ── */

.ht-thread-row {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 10px 16px;
  text-decoration: none;
  border-bottom: 1px solid var(--ht-line-soft);
  transition: background 0.13s ease;
}

.ht-thread-title-col {
  flex: 1;
  min-width: 0;
  padding-right: 12px;
}

.ht-thread-row:hover {
  background: #0a1a0a;
}

.ht-thread-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 5px;
}

.ht-thread-badges .thread_status,
.ht-thread-badges img {
  flex-shrink: 0;
}

.ht-thread-title {
  color: var(--ht-text);
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ht-thread-subject-link {
  color: inherit;
  text-decoration: none;
}

.ht-thread-subject-link:hover {
  color: #f3f8f3;
}

.ht-thread-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ht-thread-author {
  color: var(--ht-red);
  font-size: 11px;
  font-family: "JetBrains Mono", monospace;
}

.ht-thread-author a {
  color: inherit;
  text-decoration: none;
}

.ht-rank {
  display: inline-flex;
  align-items: center;
  border-radius: 3px;
  padding: 1px 5px;
  font-size: 9px;
  letter-spacing: 0.08em;
  border: 1px solid currentColor;
}

.ht-rank-godlike,
.ht-rank-elite {
  color: var(--ht-amber);
  background: rgba(255, 170, 0, 0.08);
}

.ht-rank-pro,
.ht-rank-hacker,
.ht-rank-rookie {
  color: var(--ht-green);
  background: rgba(0, 255, 65, 0.08);
}

.ht-rank-mod {
  color: var(--ht-orange);
  background: rgba(255, 102, 0, 0.08);
}

.ht-thread-time {
  color: #3a5a3a;
  font-size: 10px;
  font-family: "JetBrains Mono", monospace;
}

.ht-thread-stat {
  width: 72px;
  flex-shrink: 0;
  text-align: center;
  color: var(--ht-green);
  font-size: 15px;
  font-family: "Share Tech Mono", monospace;
  line-height: 1;
}

.ht-thread-stat-link {
  color: inherit;
  text-decoration: none;
}

.ht-thread-stat.ht-thread-views {
  width: 80px;
  color: var(--ht-muted);
}

.ht-thread-last {
  width: 152px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}

.ht-thread-last-user {
  color: var(--ht-cyan);
  font-size: 11px;
  font-family: "JetBrains Mono", monospace;
  text-decoration: none;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ht-thread-last-time {
  color: #3a5a3a;
  font-size: 9px;
}

.ht-two-col { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 32px; align-items: start; }
.ht-two-col > * { min-width: 0; }
.ht-thread-list { display: flex; flex-direction: column; gap: 8px; }
.ht-thread-card { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; padding: 12px 16px; display: block; transition: border-color .2s, transform .2s, box-shadow .2s; }
.ht-thread-card:hover { border-color: #2a5a2a; transform: translateY(-1px); box-shadow: 0 10px 20px rgba(0,0,0,.18); }
.ht-thread-card .ht-thread-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ht-thread-card .ht-thread-l { display: flex; align-items: flex-start; gap: 12px; flex: 1; min-width: 0; }
.ht-thread-tag { font-size: 9px; padding: 2px 6px; border-radius: 3px; letter-spacing: .1em; white-space: nowrap; margin-top: 2px; flex-shrink: 0; }
.ht-thread-card .ht-thread-title { color: var(--ht-tx2); font-size: 13px; line-height: 1.4; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ht-thread-card .ht-thread-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ht-thread-card .ht-thread-author { color: var(--ht-green); font-size: 11px; font-family: var(--ht-mono); }
.ht-thread-card .ht-thread-board { color: var(--ht-tx4); font-size: 11px; }
.ht-thread-card .ht-thread-time { color: var(--ht-tx4); font-size: 11px; display: flex; align-items: center; gap: 4px; font-family: var(--ht-mono); }
.ht-thread-card .ht-thread-time svg { width: 10px; height: 10px; flex-shrink: 0; }
.ht-thread-card .ht-thread-stats { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.ht-thread-card .ht-thread-stat { color: var(--ht-tx3); font-size: 11px; display: flex; align-items: center; gap: 4px; width: auto; text-align: left; font-family: var(--ht-mono); line-height: 1; }
.ht-thread-card .ht-thread-stat svg { width: 11px; height: 11px; flex-shrink: 0; }
.ht-thread-card-empty { padding: 16px 18px; }
.ht-thread-empty { color: var(--ht-tx4); font-size: 12px; line-height: 1.6; }


/* ── SIDEBAR ── */
.ht-hacker-list { display: flex; flex-direction: column; gap: 6px; }
.ht-hacker-row { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; padding: 10px 14px; display: flex; align-items: center; gap: 12px; transition: border-color .2s; }
.ht-hacker-row:hover { border-color: #2a5a2a; }
.ht-hacker-rank { font-family: var(--ht-display); font-size: 14px; width: 22px; text-align: center; }
.ht-hacker-av { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.ht-hacker-name { color: var(--ht-tx2); font-size: 12px; }
.ht-hacker-badge { color: var(--ht-tx4); font-size: 10px; }
.ht-hacker-score { font-family: var(--ht-mono); font-size: 12px; margin-left: auto; }
.ht-hacker-row-empty { justify-content: flex-start; }
.ht-hacker-row-empty .ht-hacker-rank,
.ht-hacker-row-empty .ht-hacker-score { color: var(--ht-tx4); }
.ht-more-link { display: flex; align-items: center; justify-content: center; gap: 4px; color: var(--ht-tx4); font-size: 12px; padding: 8px; border: 1px solid var(--ht-border); border-radius: 6px; margin-top: 4px; transition: color .15s; }
.ht-more-link:hover { color: var(--ht-green); }
.ht-more-link svg { width: 13px; height: 13px; }
.ht-ql-title { color: var(--ht-tx4); font-size: 11px; letter-spacing: .12em; margin-bottom: 10px; }
.ht-ql-link { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 6px; margin-bottom: 4px; transition: background .2s; }
.ht-ql-link:hover { background: var(--ht-card); }
.ht-ql-link svg { width: 13px; height: 13px; flex-shrink: 0; }
.ht-ql-text { color: var(--ht-tx3); font-size: 12px; }
.ht-ql-ext { margin-left: auto; color: #2a4a2a; }
.ht-ql-ext svg { width: 11px; height: 11px; }

/* ── FORUM INDEX PAGE (forums.php style) ── */
.ht-fi { max-width: 1280px; margin: 0 auto; padding: 40px 16px; }
.ht-fi-hdr { margin-bottom: 32px; }
.ht-fi-path { color: var(--ht-tx4); font-size: 11px; font-family: var(--ht-mono); margin-bottom: 8px; }
.ht-fi-title { color: var(--ht-tx1); font-family: var(--ht-display); font-size: 28px; margin-bottom: 8px; }
.ht-fi-sub { color: var(--ht-tx3); font-size: 13px; }
.ht-fi-bar { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; align-items: center; }
.ht-fi-search { flex: 1; min-width: 200px; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; display: flex; align-items: center; gap: 8px; padding: 8px 12px; }
.ht-fi-search svg { width: 14px; height: 14px; color: var(--ht-tx4); flex-shrink: 0; }
.ht-fi-input { background: transparent; border: none; outline: none; color: var(--ht-tx2); font-size: 13px; flex: 1; font-family: var(--ht-mono); }
.ht-fi-input::placeholder { color: var(--ht-tx4); }
.ht-fi-tabs { display: flex; gap: 8px; }
.ht-fi-tab { padding: 7px 14px; border-radius: 6px; font-size: 12px; font-family: var(--ht-mono); cursor: pointer; background: var(--ht-card); color: var(--ht-tx3); border: 1px solid var(--ht-border); transition: all .2s; }
.ht-fi-tab:hover, .ht-fi-tab.active { background: rgba(0,255,65,.1); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
/* Category zone */
.ht-cat { background: var(--ht-card); border-radius: 8px; overflow: hidden; margin-bottom: 24px; }
.ht-cat-hdr { padding: 13px 20px; display: flex; align-items: center; justify-content: space-between; }
.ht-cat-hdr-l { display: flex; align-items: center; gap: 11px; }
.ht-cat-ico { display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; }
.ht-cat-ico svg { width: 18px; height: 18px; }
.ht-cat-name { font-size: 15px; font-family: var(--ht-display); line-height: 1.1; }
.ht-cat-desc { color: var(--ht-tx3); font-size: 11.5px; line-height: 1.45; margin-top: 3px; }
.ht-cat[data-zone-root] { border: 1px solid rgba(var(--zone-rgb), .13); }
.ht-cat[data-zone-root] .ht-cat-hdr { background: rgba(var(--zone-rgb), .06); border-bottom: 1px solid rgba(var(--zone-rgb), .15); }
.ht-cat[data-zone-root] .ht-cat-ico,
.ht-cat[data-zone-root] .ht-cat-name,
.ht-cat[data-zone-root] .ht-fr-ico,
.ht-cat[data-zone-root] .ht-fr-stats-num,
.ht-cat[data-zone-root] .ht-fr-last-user { color: var(--zone-color); }
.ht-cat[data-zone-root] .ht-fr-last-user a { color: inherit; }
.ht-cat[data-zone-root] .ht-fr-ico { background: rgba(var(--zone-rgb), .08); border: 1px solid rgba(var(--zone-rgb), .18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.02); }
.ht-cat[data-zone-root] .ht-zone-badge { background: rgba(var(--zone-rgb), .15); color: var(--zone-color); border: 1px solid rgba(var(--zone-rgb), .4); }
/* Forum row */
.ht-fr { padding: 16px 20px; display: grid; grid-template-columns: 42px minmax(0,1fr) minmax(168px,196px) 12px; gap: 16px; align-items: start; border-top: 1px solid var(--ht-border2); transition: background .2s; }
.ht-fr:hover { background: var(--ht-hover); }
.ht-fr-ico { width: 42px; height: 42px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ht-fr-ico svg { width: 18px; height: 18px; }
.ht-fr-main { min-width: 0; padding-top: 0; }
.ht-fr-name { color: var(--ht-tx1); font-size: 14px; font-family: var(--ht-display); margin-bottom: 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; line-height: 1.32; }
.ht-fr-today { background: rgba(0,255,65,.1); color: var(--ht-green); font-size: 9px; padding: 1px 6px; border-radius: 999px; letter-spacing: .02em; }
.ht-fr-desc { color: var(--ht-tx3); font-size: 12px; line-height: 1.48; margin-bottom: 7px; }
.ht-fr-pin { display: flex; align-items: flex-start; gap: 6px; margin-bottom: 4px; }
.ht-fr-pin:last-child { margin-bottom: 0; }
.ht-fr-pin svg { width: 9px; height: 9px; color: var(--ht-amber); flex-shrink: 0; margin-top: 3px; transform: rotate(-18deg); filter: drop-shadow(0 0 4px rgba(255,170,0,.16)); }
.ht-fr-pin-txt { color: #607560; font-size: 11px; line-height: 1.38; min-width: 0; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht-fr-side { min-width: 168px; max-width: 196px; display: flex; flex-direction: column; align-items: flex-end; justify-self: end; gap: 7px; padding-top: 2px; }
.ht-fr-stats { display: flex; align-items: baseline; gap: 10px; }
.ht-fr-stat { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.ht-fr-stats-num { color: #9af69a; font-family: var(--ht-display); font-size: 15px; line-height: 1; letter-spacing: .01em; }
.ht-fr-stats-lbl { color: var(--ht-tx3); font-size: 11px; letter-spacing: 0; }
.ht-fr-last { color: var(--ht-tx4); font-size: 10px; max-width: 100%; display: flex; justify-content: flex-end; align-items: baseline; gap: 4px; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht-fr-last-lbl,
.ht-fr-last-sep,
.ht-fr-last-time { color: var(--ht-tx4); flex-shrink: 0; }
.ht-fr-last-user { color: var(--ht-green); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.ht-fr-last-empty { color: var(--ht-tx4); }
.ht-fr-arrow { width: 12px; align-self: center; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.18); transition: color .18s ease, transform .18s ease; }
.ht-fr-arrow svg { width: 12px; height: 12px; }
.ht-fr:hover .ht-fr-arrow { color: var(--zone-color, var(--ht-green)); transform: translateX(2px); }
.ht-fr-empty { grid-template-columns: 54px minmax(0,1fr) auto; }
.ht-fr-empty .ht-fr-arrow { display: none; }
.ht-fr-empty:hover { background: transparent; }
.ht-fi-more-wrap { display: flex; justify-content: center; margin-top: -4px; margin-bottom: 8px; }
.ht-fi-more-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; background: var(--ht-card); border: 1px solid var(--ht-border); color: var(--ht-tx3); font-size: 12px; font-family: var(--ht-mono); transition: all .16s; }
.ht-fi-more-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.05); }
.ht-fi-more-btn svg { width: 12px; height: 12px; transition: transform .16s ease; }
.ht-fi-more-btn[data-expanded="0"] svg { transform: rotate(180deg); }
.ht-fi-more-count { color: var(--ht-tx4); font-size: 11px; }
/* Sidebar */
.ht-fi-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.ht-widget { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.ht-widget-hdr { padding: 10px 16px; border-bottom: 1px solid var(--ht-border); color: var(--ht-tx3); font-size: 11px; letter-spacing: .12em; }
.ht-widget-hdr svg { width: 13px; height: 13px; display: block; flex-shrink: 0; }
.ht-widget-body { padding: 12px 16px; }
.ht-widget-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--ht-border2); }
.ht-widget-lbl { color: var(--ht-tx3); font-size: 12px; }
.ht-widget-val { font-family: var(--ht-display); font-size: 13px; }
.ht-online-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 4px var(--ht-green); margin-right: 6px; }
/* Online users chip list (forumdisplay + showthread sidebar) */
.ht-online-list { padding: 12px 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.ht-online-chip { color: var(--ht-tx3); font-size: 11px; background: var(--ht-hover); padding: 2px 8px; border-radius: 3px; border: 1px solid var(--ht-border); transition: color .15s; }
.ht-online-chip:hover { color: var(--ht-green); }
.ht-hot-thread { display: block; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .2s; }
.ht-hot-thread:hover { background: var(--ht-hover); }
.ht-hot-title-row { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 4px; }
.ht-hot-title { color: var(--ht-tx2); font-size: 12px; line-height: 1.4; }
.ht-hot-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ht-hot-author { color: var(--ht-green); font-size: 10px; }
.ht-hot-board { color: var(--ht-tx4); font-size: 10px; }
.ht-hot-replies { color: var(--ht-tx4); font-size: 10px; display: flex; align-items: center; gap: 4px; }
.ht-hot-replies svg { width: 9px; height: 9px; }
.ht-hot-time { color: var(--ht-tx4); font-size: 10px; margin-left: auto; display: flex; align-items: center; gap: 4px; }
.ht-hot-time svg { width: 9px; height: 9px; }
.ht-users-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px; }
.ht-au { display: flex; align-items: center; gap: 4px; }
.ht-au-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 4px var(--ht-green); }
.ht-au-name { color: var(--ht-tx3); font-size: 11px; }
.ht-au-anon { color: var(--ht-tx4); font-size: 11px; display: flex; align-items: center; }
html, body { overflow-x: hidden; }
.container, .wrapper, .content { max-width: 100%;overflow-x: hidden;}

/* ── MyBB NAV BREADCRUMB (nav / nav_bit / nav_bit_active templates) ── */
.ht-bc { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; padding: 8px 0 20px; font-size: 12px; font-family: var(--ht-mono); }
.ht-bc > * { flex: 0 0 auto; min-width: 0; }
.ht-bc-link { color: var(--ht-tx4); text-decoration: none; transition: color .15s; display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; min-width: 0; }
.ht-bc-link:hover { color: var(--ht-green); }
.ht-bc-link svg { width: 10px; height: 10px; flex-shrink: 0; }
.ht-bc-sep { color: var(--ht-tx4); opacity: .4; padding: 0 4px; }
.ht-bc-cur { color: var(--ht-tx2); white-space: nowrap; }
.ht-bc-zone { color: var(--zone-color, var(--ht-green)); white-space: nowrap; }
.ht-bc-cur-truncate { display: inline-block; max-width: min(56vw, 360px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* ── FORUMDISPLAY (thread list) ── */
.ht-page { max-width: 1280px; margin: 0 auto; padding: 32px 16px; }
.ht-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 24px; color: var(--ht-tx4); font-size: 12px; flex-wrap: wrap; }
.ht-breadcrumb a { color: var(--ht-tx4); }
.ht-breadcrumb a:hover { color: var(--ht-green); }
.ht-breadcrumb svg { width: 12px; height: 12px; }
.ht-breadcrumb-cur { color: var(--ht-tx2); }
/* 1:1 NewPost.tsx board header: marginBottom 20, brd-top gap 14 */
.ht-brd-hdr { background: var(--ht-card); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.ht-brd-top { padding: 13px 18px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.ht-brd-top-l { display: flex; align-items: center; gap: 12px; flex: 1 1 260px; min-width: 0; }
.ht-brd-top-l > div:last-child { min-width: 0; }
.ht-brd-ico { width: 42px; height: 42px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ht-brd-ico svg { width: 18px; height: 18px; }
.ht-brd-name { font-size: 18px; font-family: var(--ht-display); letter-spacing: .01em; }
.ht-brd-desc { color: var(--ht-tx3); font-size: 12.5px; line-height: 1.48; margin-top: 3px; }
.ht-brd-badge { font-size: 10px; padding: 4px 10px; border-radius: 4px; letter-spacing: .1em; display: flex; align-items: center; gap: 4px; }
.ht-brd-badge svg { width: 8px; height: 8px; }
.ht-brd-statsbar { display: flex; align-items: center; gap: 18px; padding: 9px 18px; border-top: 1px solid rgba(255,255,255,.025); border-bottom: 1px solid rgba(255,255,255,.03); flex-wrap: wrap; background: linear-gradient(180deg, rgba(255,255,255,.01), rgba(255,255,255,.003)); }
.ht-brd-stat { display: inline-flex; align-items: center; gap: 5px; }
.ht-brd-stat svg { width: 11px; height: 11px; color: #3a5a3a; opacity: .88; flex-shrink: 0; }
.ht-brd-stat-val { font-family: var(--ht-mono); font-size: 12px; line-height: 1; letter-spacing: .01em; }
.ht-brd-stat-val:empty::before { content: "0"; color: var(--ht-tx4); }
.ht-brd-stat-lbl { color: #4a6a4a; font-size: 9.5px; }
.ht-brd-stat-threads .ht-brd-stat-val,
.ht-brd-stat-posts .ht-brd-stat-val { color: var(--zone-color, var(--ht-cyan)); }
.ht-brd-stat-today .ht-brd-stat-val { color: var(--ht-green); }
.ht-brd-stat-online .ht-brd-stat-val { color: var(--ht-cyan); }
.ht-brd-moderators { margin-left: auto; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.ht-brd-moderators-val { color: var(--ht-amber); font-size: 10.5px; font-family: var(--ht-mono); letter-spacing: .01em; }
.ht-brd-moderators-val a { color: inherit; }
.ht-brd-moderators-val:empty::before { content: attr(data-empty-label); color: var(--ht-tx4); }
.ht-brd-focus { padding: 10px 20px 12px; display: grid; gap: 8px; }
.ht-brd-focus:empty { display: none; }
.ht-brd-focus-row { display: flex; align-items: center; gap: 10px; color: var(--ht-tx3); min-width: 0; transition: color .16s ease; }
.ht-brd-focus-row:hover { color: var(--ht-tx1); }
.ht-brd-focus-ico { display: inline-flex; align-items: center; justify-content: center; color: var(--ht-amber); flex-shrink: 0; }
.ht-brd-focus-ico svg { width: 11px; height: 11px; }
.ht-brd-focus-label { color: var(--ht-amber); font-size: 10px; letter-spacing: .08em; flex-shrink: 0; }
.ht-brd-focus-txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.ht-brd-focus-time { color: var(--ht-tx4); font-size: 10px; margin-left: auto; flex-shrink: 0; }
.ht-brd-longdesc { padding: 7px 18px 12px; color: #486248; font-size: 10.5px; line-height: 1.62; }
.ht-brd-desc:empty, .ht-brd-longdesc:empty { display: none; }
/* Sort + thread list */
.ht-sort-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.ht-sort-tabs { display: flex; gap: 4px; }
.ht-sort-tab { padding: 5px 12px; border-radius: 4px; font-size: 12px; cursor: pointer; font-family: var(--ht-mono); background: var(--ht-card); color: var(--ht-tx3); border: 1px solid var(--ht-border); transition: all .15s; }
.ht-sort-tab:hover, .ht-sort-tab.active { background: rgba(0,255,65,.1); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-new-thread { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 4px; font-size: 12px; letter-spacing: .05em; font-family: var(--ht-mono); cursor: pointer; transition: all .15s; border: none; margin-left: auto; }
.ht-new-thread svg { width: 13px; height: 13px; }
.ht-thread-tbl { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-thread-tbl-hdr { display: flex; align-items: center; padding: 8px 20px; border-bottom: 1px solid var(--ht-border); background: var(--ht-deep); font-size: 9.5px; letter-spacing: .08em; color: var(--ht-tx4); }
.ht-thread-tbl-hdr svg { width: 11px; height: 11px; opacity: .6; flex-shrink: 0; }
.ht-thdr-main,
.ht-thdr-replies,
.ht-thdr-views,
.ht-thdr-last { display: flex; align-items: center; gap: 6px; }
.ht-thdr-main { flex: 1; }
/* v1.3: column header widths match .ht-fd-num (72px) / .ht-fd-num.views (80px) / .ht-fd-last (152px) */
.ht-thdr-replies { width: 78px; justify-content: center; text-align: center; flex-shrink: 0; }
.ht-thdr-views { width: 78px; justify-content: center; text-align: center; flex-shrink: 0; }
.ht-thdr-last { width: 146px; justify-content: flex-end; text-align: right; flex-shrink: 0; }
/* Thread rows */
.ht-fd-row { display: flex; align-items: center; gap: 0; padding: 10px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .15s; }
.ht-fd-row:hover { background: var(--ht-hover); }
.ht-fd-main { flex: 1; min-width: 0; padding-right: 12px; }
.ht-fd-tags { display: flex; align-items: center; gap: 4px; margin-bottom: 3px; flex-wrap: wrap; }
.ht-fd-tag { font-size: 9px; padding: 1px 5px; border-radius: 3px; letter-spacing: .1em; white-space: nowrap; }
.ht-fd-tag-dyn { font-weight: 700; text-transform: uppercase; }
.ht-fd-ico-hot svg { width: 10px; height: 10px; color: #ff7b2f; }
.ht-fd-ico-elite svg { width: 12px; height: 12px; color: var(--ht-amber); }
.ht-fd-ico-solved svg { width: 12px; height: 12px; color: var(--ht-green); }
.ht-fd-title { color: var(--ht-tx2); font-size: 13.5px; line-height: 1.38; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht-fd-meta { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.ht-fd-author { font-size: 11px; font-family: var(--ht-mono); }
.ht-fd-rank { font-size: 9px; padding: 1px 5px; border-radius: 3px; letter-spacing: .08em; white-space: nowrap; flex-shrink: 0; }
.ht-fd-time { color: #587258; font-size: 10px; display: flex; align-items: center; gap: 3px; font-family: var(--ht-mono); }
.ht-fd-time svg { width: 9px; height: 9px; }
/* v1.3: legacy aliases kept for plugin compatibility — actual layout uses .ht-fd-num */
.ht-fd-replies,
.ht-fd-views { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; flex-shrink: 0; }
.ht-fd-replies { width: 78px; text-align: center; }
.ht-fd-views   { width: 78px; text-align: center; }
.ht-fd-stat { color: var(--ht-tx3); font-size: 11px; display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.ht-fd-stat svg { width: 10px; height: 10px; }
.ht-fd-last-by { color: var(--ht-cyan); font-size: 10.5px; font-family: var(--ht-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ht-fd-last-by a { color: var(--ht-cyan); transition: color .15s; }
.ht-fd-last-by a:hover { color: #33e0ff; text-decoration: underline; }
.ht-fd-last-time { color: #587258; font-size: 8.5px; display: flex; align-items: center; gap: 3px; }
.ht-fd-last-time svg { width: 8px; height: 8px; }
/* v1.3: .ht-fd-num replaces old .ht-fd-stat+SVG for numeric reply/view columns */
.ht-fd-num { width: 78px; text-align: center; flex-shrink: 0; font-family: var(--ht-mono); font-size: 14px; line-height: 1; color: var(--ht-green); display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.ht-fd-num.views { width: 78px; color: #6b8f6b; }
.ht-fd-num svg { width: 10px; height: 10px; color: currentColor; opacity: .66; flex-shrink: 0; }
.ht-fd-num-lbl { display: none; }
/* v1.3: last-reply column — 152px wide, right-aligned, stacked */
.ht-fd-last { width: 146px; text-align: right; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
/* v1.3: pinned row subtle amber background */
.ht-fd-row.ht-fd-pinned { background: rgba(255,170,0,.03); border-bottom-color: rgba(255,170,0,.08); }
.ht-fd-row.ht-fd-pinned:hover { background: rgba(255,170,0,.06); }
/* v1.3: status icons in tag strip */
.ht-fd-ico-hot { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: auto; height: auto; background: none; border: none; box-shadow: none; margin-left: 2px; }
.ht-fd-ico-hot svg { width: 11px; height: 11px; color: #ff7b2f; filter: drop-shadow(0 0 4px rgba(255,102,0,.22)); }
.ht-fd-ico-elite { display: inline-flex; align-items: center; flex-shrink: 0; }
.ht-fd-ico-elite svg { width: 11px; height: 11px; color: var(--ht-amber); }
.ht-fd-ico-solved { display: inline-flex; align-items: center; flex-shrink: 0; }
.ht-fd-ico-solved svg { width: 11px; height: 11px; color: var(--ht-green); }
.ht-fd-ico-locked { display: inline-flex; align-items: center; flex-shrink: 0; }
.ht-fd-ico-locked svg { width: 10px; height: 10px; color: #ff6600; }
.ht-fd-ico-pin { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: auto; height: auto; background: none; border: none; box-shadow: none; margin-right: 4px; }
.ht-fd-ico-pin svg { width: 10px; height: 10px; color: var(--ht-amber); transform: rotate(-18deg); filter: drop-shadow(0 0 4px rgba(255,170,0,.18)); }
/* v1.3: sidebar widgets */
.ht-sidebar-card { background: #080f08; border: 1px solid #1a3a1a; border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ht-sidebar-card-hdr { padding: 8px 14px; border-bottom: 1px solid #1a3a1a; color: #4a6a4a; font-size: 10px; letter-spacing: .12em; font-family: var(--ht-mono); }
.ht-sidebar-info-row { display: flex; justify-content: space-between; align-items: center; padding: 5px 14px; border-bottom: 1px solid #0a180a; }
.ht-sidebar-info-lbl { color: #3a5a3a; font-size: 10px; }
.ht-sidebar-info-val { font-size: 10px; font-family: var(--ht-mono); max-width: 160px; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ht-sidebar-related-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 14px; border-bottom: 1px solid #0a180a; transition: background .13s; }
.ht-sidebar-related-row:hover { background: #0a1a0a; }
.ht-sidebar-related-row a { color: #a0b8a0; font-size: 12px; flex: 1; }
.ht-sidebar-related-row svg { width: 12px; height: 12px; color: #2a4a2a; flex-shrink: 0; }
.ht-sidebar-empty { padding: 12px 14px; color: #3a5a3a; font-size: 10.5px; line-height: 1.6; }
.ht-sidebar-online { padding: 12px 14px; }
.ht-sidebar-online-hdr { color: #4a6a4a; font-size: 10px; letter-spacing: .12em; margin-bottom: 10px; font-family: var(--ht-mono); display: flex; align-items: center; gap: 6px; }
.ht-sidebar-online-hdr .ht-live-dot { width: 6px; height: 6px; }
.ht-sidebar-online-list { display: flex; flex-wrap: wrap; gap: 6px; }
.ht-sidebar-online-list:empty::before { content: attr(data-empty-label); color: #3a5a3a; font-size: 11px; font-family: var(--ht-mono); }
.ht-sidebar-online-chip { color: #6b8f6b; font-size: 10px; background: #0a180a; padding: 2px 8px; border-radius: 3px; border: 1px solid #1a3a1a; font-family: var(--ht-mono); transition: color .15s, border-color .15s; }
.ht-sidebar-online-chip:hover { color: var(--ht-green); }
.ht-sidebar-online-note { color: #3a5a3a; font-size: 10px; font-family: var(--ht-mono); margin-top: 8px; }
.ht-sidebar-back { display: flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 6px; background: #080f08; border: 1px solid #1a3a1a; color: #4a6a4a; font-size: 12px; font-family: var(--ht-mono); transition: all .13s; }
.ht-sidebar-back:hover { border-color: #2a5a2a; color: var(--ht-green); background: #0a1a0a; }
.ht-sidebar-back svg { width: 13px; height: 13px; }
.ht-sidebar-info-val:empty::before { content: "--"; color: var(--ht-tx4); }
/* v1.3: zone-color driven dynamic styling via data-fid */
[data-fid] .ht-brd-hdr { border: 1px solid rgba(var(--zone-rgb, 0,255,65),.10); box-shadow: inset 0 1px 0 rgba(255,255,255,.02), 0 0 0 1px rgba(var(--zone-rgb, 0,255,65),.03); }
[data-fid] .ht-brd-name { color: var(--zone-color, var(--ht-green)); }
[data-fid] .ht-brd-ico { background: rgba(var(--zone-rgb, 0,255,65),.07); border: 1px solid rgba(var(--zone-rgb, 0,255,65),.21); }
[data-fid] .ht-brd-ico svg { color: var(--zone-color, var(--ht-green)); }
[data-fid] .ht-brd-badge { background: rgba(var(--zone-rgb, 0,255,65),.07); color: var(--zone-color, var(--ht-green)); border: 1px solid rgba(var(--zone-rgb, 0,255,65),.21); }
/* NewThread zone-color overrides — 1:1 NewPost.tsx dynamic zc styling */
/* brd-top: background zc*07(=2.7%) + borderBottom zc*18(=9.4%) — 1:1 NewPost.tsx header inner div */
[data-fid] .ht-brd-top { background: linear-gradient(180deg, rgba(var(--zone-rgb, 0,255,65),.018), rgba(var(--zone-rgb, 0,255,65),.008)); border-bottom: 1px solid rgba(var(--zone-rgb, 0,255,65),.07); }
[data-fid] .ht-np-ico { background: rgba(var(--zone-rgb, 0,255,65),.07); border: 1px solid rgba(var(--zone-rgb, 0,255,65),.22); color: var(--zone-color, var(--ht-green)); }
[data-fid] .ht-np-title { color: var(--zone-color, var(--ht-green)); }
/* Form card zone border: rgba(zone-rgb, .14) — 1:1 NewPost.tsx form card */
[data-fid] .ht-form-section { border-color: rgba(var(--zone-rgb, 0,255,65),.14); }
/* Input focus: zone-color glow — 1:1 NewPost.tsx onFocus border zc*60 */
[data-fid] .ht-form-input:focus { border-color: rgba(var(--zone-rgb, 0,255,65),.5); box-shadow: 0 0 0 3px rgba(var(--zone-rgb, 0,255,65),.06); }
/* NewThread access badge: always amber (lock icon) — 1:1 NewPost.tsx #ffaa00 badge, overrides zone-color */
.ht-np .ht-brd-badge { background: rgba(255,170,0,.07); color: var(--ht-amber); border: 1px solid rgba(255,170,0,.19); }
/* v1.4.1: .ht-np context (.ht-brd-hdr) — override to uniform 1px border (forumdisplay keeps 2px top accent) */
.ht-np .ht-brd-hdr { border-top-width: 1px; }
/* v1.4.1: editor wrap zone-color focus ring — mirrors NewPost.tsx textarea onFocus zc*60 border + glow */
[data-fid] .ht-editor-wrap:focus-within { border-color: rgba(var(--zone-rgb, 0,255,65),.5); box-shadow: 0 0 0 3px rgba(var(--zone-rgb, 0,255,65),.06); }
[data-fid] .ht-fd-author a { color: var(--zone-color, var(--ht-green)); }
[data-fid] .ht-fd-author { color: var(--zone-color, var(--ht-green)); }
[data-fid] .ht-new-thread { background: var(--zone-color, var(--ht-green)); color: var(--ht-bg); }
[data-fid] .ht-new-thread:hover { opacity: .82; }
[data-fid] .ht-sort-tab.active { background: rgba(var(--zone-rgb, 0,255,65),.1); color: var(--zone-color, var(--ht-green)); border-color: rgba(var(--zone-rgb, 0,255,65),.45); }
/* Pagination — legacy .ht-page-btn alias kept for MyBB core compatibility */
.ht-page-btn { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 4px; font-size: 12px; background: var(--ht-card); border: 1px solid var(--ht-border); color: var(--ht-tx3); cursor: pointer; transition: all .15s; font-family: var(--ht-mono); }
.ht-page-btn:hover, .ht-page-btn.active { background: rgba(0,255,65,.1); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-page-btn.disabled { color: #2a4a2a; cursor: default; pointer-events: none; }
.ht-page-btn svg { width: 13px; height: 13px; }
/* FD layout: flex [thread-col | 18px toggle strip | 280px sidebar] — matches ForumBoard.tsx exactly */
.ht-fd-grid { display: flex; align-items: flex-start; gap: 0; }
.ht-fd-thread-col { flex: 1; min-width: 0; }
/* Sidebar toggle arrow strip */
.ht-fd-sidebar-strip { width: 18px; flex-shrink: 0; align-self: stretch; display: flex; flex-direction: column; align-items: center; }
.ht-fd-sidebar-btn { width: 18px; height: 18px; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--ht-tx4); transition: color .13s; padding: 0; position: sticky; top: 33vh; }
.ht-fd-sidebar-btn:hover { color: var(--ht-green); }
.ht-fd-sidebar-btn svg { width: 12px; height: 12px; }
/* Sidebar panel — CSS width transition, no spring */
.ht-fd-sidebar { overflow: hidden; width: 280px; transition: width .26s ease; flex-shrink: 0; }
.ht-fd-sidebar.ht-collapsed { width: 0; }
/* Inner wrapper fixed at 280px so content never squishes during collapse animation */
.ht-fd-sidebar-inner { width: 280px; padding-left: 8px; padding-top: 47px; display: flex; flex-direction: column; gap: 12px; }
.ht-fd-sidebar-inner > .ht-sidebar-card,
.ht-fd-sidebar-inner > .ht-sidebar-back { margin-bottom: 0; }
.ht-fd-side-list { display: flex; flex-direction: column; }
.ht-fd-side-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx2); transition: background .15s, color .15s; }
.ht-fd-side-link:last-child { border-bottom: none; }
.ht-fd-side-link:hover { background: var(--ht-hover); color: var(--zone-color, var(--ht-green)); }
.ht-fd-side-link-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ht-fd-side-link-title { font-size: 12px; color: inherit; }
.ht-fd-side-link-sub { font-size: 10px; color: var(--ht-tx4); }
.ht-fd-side-link svg { width: 12px; height: 12px; color: var(--ht-tx4); flex-shrink: 0; }
/* Pagination wrapper */
.ht-pagination { display: flex; gap: 6px; flex-wrap: wrap; }
.ht-pagination .pagination { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ht-pagination .pagination_page,
.ht-pagination .pagination_current,
.ht-pagination .pagination_previous,
.ht-pagination .pagination_next,
.ht-pagination .pagination_first,
.ht-pagination .pagination_last {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 10px;
  border-radius: 7px;
  border: 1px solid var(--ht-border);
  background: rgba(8,18,8,.88);
  color: var(--ht-tx3);
  font-size: 11px;
  line-height: 1;
  font-family: var(--ht-mono);
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}
.ht-pagination a.pagination_page:hover,
.ht-pagination a.pagination_previous:hover,
.ht-pagination a.pagination_next:hover,
.ht-pagination a.pagination_first:hover,
.ht-pagination a.pagination_last:hover {
  color: var(--ht-green);
  border-color: rgba(0,255,65,.34);
  background: rgba(0,255,65,.08);
  transform: translateY(-1px);
}
.ht-pagination .pagination_current {
  color: var(--ht-green);
  border-color: rgba(0,255,65,.42);
  background: linear-gradient(180deg, rgba(0,255,65,.14), rgba(0,255,65,.08));
  box-shadow: inset 0 0 0 1px rgba(0,255,65,.08), 0 0 16px rgba(0,255,65,.06);
}
.ht-pagination .pagination_previous,
.ht-pagination .pagination_next,
.ht-pagination .pagination_first,
.ht-pagination .pagination_last {
  min-width: auto;
  padding: 0 12px;
  letter-spacing: .04em;
}

@media(min-width:1025px){
  .ht-thdr-replies,
  .ht-thdr-views{width:86px}
  .ht-thdr-last{width:164px}
  .ht-fd-row{padding:11px 18px}
  .ht-fd-main{padding-right:18px}
  .ht-fd-replies,
  .ht-fd-views{width:86px}
  .ht-fd-num,
  .ht-fd-num.views{
    width:86px;
    font-size:14px;
    gap:5px;
  }
  .ht-fd-num svg{width:10px;height:10px}
  .ht-fd-last{
    width:164px;
    gap:4px;
  }
  .ht-fd-last-by{font-size:12px}
  .ht-fd-last-time{font-size:9px}
  .ht-inlinemod-form{align-items:stretch}
  .ht-inlinemod-select{min-width:240px}
  .ht-inlinemod-btn{
    min-height:34px;
    padding:0 12px;
  }
}

/* ── FOOTER ── */
.ht-footer {
  background: rgba(3,11,3,.98); border-top: 1px solid var(--ht-border);
  font-family: var(--ht-mono); position: relative; overflow: hidden;
}
.ht-footer-scanlines {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,255,65,.012) 3px, rgba(0,255,65,.012) 4px);
}

.ht-footer-inner { max-width: 1280px; margin: 0 auto; padding: 0 16px; position: relative; z-index: 1; }

/* Stats row */
.ht-footer-stats {
  border-bottom: 1px solid var(--ht-border2); padding: 18px 0;
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
}
.ht-footer-stats-prompt { color: #2a4a2a; font-size: 11px; letter-spacing: .06em; min-width: max-content; }
.ht-footer-stats-prompt .ht-f-host { color: var(--ht-green); }
.ht-footer-stats-prompt .ht-f-sep  { color: #4a6a4a; }
.ht-footer-stats-prompt .ht-f-cmd  { color: var(--ht-muted); }
.ht-footer-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ht-footer-pill { display: flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 4px; font-size: 10px; letter-spacing: .06em; }
.ht-footer-pill-dot { width: 5px; height: 5px; border-radius: 50%; animation: ftPulse 2s ease-in-out infinite; }
.ht-footer-pill-val { font-family: var(--ht-title); font-size: 12px; }
.ht-footer-pill-lbl { color: #2a4a2a; }

/* 4-column grid */
.ht-footer-grid {
  padding: 40px 0 32px;
  display: grid; grid-template-columns: repeat(4,1fr); gap: 40px;
}
/* Brand column */
.ht-footer-logo { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.ht-footer-logo-icon {
  width: 32px; height: 32px; border-radius: 6px;
  background: linear-gradient(135deg, var(--ht-green), var(--ht-cyan));
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; color: var(--ht-bg); font-weight: 700; flex-shrink: 0;
}
.ht-footer-logo-name {
  color: var(--ht-green); font-size: 14px; font-family: var(--ht-title);
  letter-spacing: .1em; text-shadow: 0 0 10px rgba(0,255,65,.4); line-height: 1.1;
}
.ht-footer-logo-tld  { color: var(--ht-cyan); }
.ht-footer-logo-sub  { color: #2a4a2a; font-size: 9px; letter-spacing: .12em; margin-top: 2px; }
.ht-footer-tagline   { color: #3a5a3a; font-size: 11px; line-height: 1.75; margin-bottom: 20px; }
.ht-footer-pgp {
  background: rgba(0,255,65,.03); border: 1px solid #0f2a0f;
  border-radius: 6px; padding: 10px 12px; margin-bottom: 20px;
}
.ht-footer-pgp-head { display: flex; align-items: center; gap: 6px; color: var(--ht-cyan); font-size: 10px; letter-spacing: .1em; margin-bottom: 6px; }
.ht-footer-pgp-head svg { width: 13px; height: 13px; display: block; flex-shrink: 0; color: var(--ht-cyan); }
.ht-footer-pgp-key  { color: #4a6a4a; font-size: 10px; letter-spacing: .04em; word-break: break-all; font-family: var(--ht-mono); display: block; }
.ht-footer-social   { display: flex; align-items: center; gap: 10px; }
.ht-footer-social-btn {
  width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--ht-border); border-radius: 6px; color: var(--ht-dim);
  font-size: 13px; line-height: 1; transition: all .2s; text-decoration: none;
}
.ht-footer-social-btn svg { width: 14px; height: 14px; display: block; flex-shrink: 0; }
.ht-footer-social-btn:hover { border-color: rgba(0,255,65,.4); color: var(--ht-green); background: rgba(0,255,65,.07); }

/* Nav columns */
.ht-footer-col-head {
  color: var(--ht-cyan); font-size: 10px; letter-spacing: .18em; margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.ht-footer-col-head::before {
  content: ''; display: inline-block; width: 16px; height: 1px;
  background: linear-gradient(90deg, var(--ht-cyan), transparent);
}
.ht-footer-nav           { list-style: none; padding: 0; margin: 0; }
.ht-footer-nav li a      { display: flex; align-items: center; gap: 7px; color: #4a6a4a; font-size: 12px; padding: 4px 0; transition: color .15s; letter-spacing: .04em; }
.ht-footer-nav li a:hover { color: var(--ht-green); }
.ht-footer-alert {
  margin-top: 20px; display: flex; align-items: center; gap: 6px;
  padding: 6px 10px; background: rgba(255,0,64,.05); border: 1px solid rgba(255,0,64,.2);
  border-radius: 4px; color: #9a4040; font-size: 10px; line-height: 1.4;
}
.ht-footer-alert svg { width: 13px; height: 13px; display: block; flex-shrink: 0; color: #ff8b6b; }
.ht-footer-version {
  margin-top: 20px; padding: 8px 12px; background: #050f05;
  border: 1px solid #0f2a0f; border-radius: 6px; font-size: 10px; line-height: 1.7;
}

/* Bottom bar */
.ht-footer-bottom {
  border-top: 1px solid var(--ht-border2); padding: 14px 0;
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
}
.ht-footer-copy      { display: flex; align-items: center; gap: 10px; }
.ht-footer-copy-dot  { width: 6px; height: 6px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 6px var(--ht-green); animation: ftPulse 2s ease-in-out infinite; }
.ht-footer-copy-txt  { color: #2a4a2a; font-size: 11px; }
.ht-footer-copy-site { color: #3a5a3a; }
.ht-footer-right     { display: flex; align-items: center; gap: 16px; }
.ht-footer-lang { position: relative; min-width: 0; color: #2a5a5a; font-size: 10px; letter-spacing: .06em; }
.ht-footer-lang-menu { position: relative; }
.ht-footer-lang-menu summary { list-style: none; }
.ht-footer-lang-menu summary::-webkit-details-marker { display: none; }
.ht-footer-lang-badge { display: inline-flex; align-items: center; gap: 6px; min-width: 0; padding: 2px 8px; border: 1px solid rgba(0,212,255,.15); border-radius: 4px; background: rgba(0,212,255,.04); cursor: pointer; user-select: none; }
.ht-footer-lang-menu[open] .ht-footer-lang-badge { border-color: rgba(0,212,255,.34); box-shadow: 0 0 0 1px rgba(0,212,255,.08), 0 0 12px rgba(0,212,255,.08); }
.ht-footer-lang-flag { width: 18px; height: 12px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; filter: drop-shadow(0 0 6px rgba(0,212,255,.12)); }
.ht-footer-lang-flag svg { width: 18px; height: 12px; display: block; }
.ht-footer-lang-code { color: var(--ht-cyan); font-family: var(--ht-display); font-size: 10px; letter-spacing: .12em; }
.ht-footer-lang-caret { width: 10px; height: 10px; display: inline-flex; align-items: center; justify-content: center; color: #2e6464; transition: transform .18s ease, color .18s ease; }
.ht-footer-lang-caret svg { width: 10px; height: 10px; display: block; }
.ht-footer-lang-menu[open] .ht-footer-lang-caret { transform: rotate(180deg); color: var(--ht-cyan); }
.ht-footer-lang-form { position: absolute; right: 0; bottom: calc(100% + 8px); display: grid; gap: 6px; min-width: max-content; padding: 8px; border: 1px solid rgba(0,212,255,.18); border-radius: 8px; background: linear-gradient(180deg, rgba(6,18,12,.98), rgba(4,12,8,.98)); box-shadow: 0 12px 32px rgba(0,0,0,.35), 0 0 0 1px rgba(0,212,255,.05) inset; z-index: 20; }
.ht-footer-lang-option { display: inline-flex; align-items: center; gap: 6px; width: 100%; padding: 6px 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #7ca4a4; font-family: var(--ht-display); font-size: 10px; letter-spacing: .12em; cursor: pointer; text-align: left; transition: border-color .18s ease, background .18s ease, color .18s ease; }
.ht-footer-lang-option:hover,
.ht-footer-lang-option:focus { border-color: rgba(0,212,255,.18); background: rgba(0,212,255,.06); color: var(--ht-cyan); outline: none; }
.ht-footer-lang-option.is-current { border-color: rgba(0,212,255,.18); background: rgba(0,212,255,.08); color: var(--ht-cyan); }
.ht-footer-build     { color: #1a3a1a; font-size: 10px; font-family: var(--ht-title); }
.ht-footer-build span { color: #2a4a2a; }
.ht-footer-status    { display: flex; align-items: center; gap: 5px; }
.ht-footer-status-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 4px var(--ht-green); animation: ftPulse 2s ease-in-out infinite; }
.ht-footer-status-txt { color: #2a4a2a; font-size: 10px; letter-spacing: .06em; }

/* ── NEW THREAD / REPLY FORM — 1:1 NewPost.tsx ── */
.ht-np { max-width: 1024px; margin: 0 auto; }
.ht-np-hdr { margin-bottom: 24px; }
.ht-np-title-row { display: flex; align-items: flex-start; gap: 16px; }
/* Icon box: 40×40, borderRadius 8, icon 18px — matches NewPost.tsx Terminal icon box */
.ht-np-ico { width: 40px; height: 40px; background: rgba(0,255,65,.07); border: 1px solid rgba(0,255,65,.22); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--ht-green); }
.ht-np-ico svg { width: 18px; height: 18px; }
/* Title: fontSize 16, zone-color injected via [data-fid] rule */
.ht-np-title { font-size: 16px; font-family: var(--ht-mono); color: var(--ht-green); letter-spacing: .04em; margin-bottom: 2px; }
/* Terminal prompt line: "root@hackertop ~ post --board …" — 1:1 NewPost.tsx .ht-np-sub */
.ht-np-term { font-size: 10px; color: #3a5a3a; margin-top: 2px; font-family: var(--ht-mono); letter-spacing: .02em; }
/* Keep .ht-np-sub for backwards compat (breadcrumb fallback) */
.ht-np-sub { font-size: 11px; color: var(--ht-tx4); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.ht-np-bc-link { color: var(--ht-tx4); transition: color .15s; display: inline-flex; align-items: center; gap: 3px; }
.ht-np-bc-link svg { width: 10px; height: 10px; }
.ht-np-bc-link:hover { color: var(--ht-green); }
.ht-np-bc-sep { color: var(--ht-tx4); opacity: .35; }
.ht-np-forum-link { color: var(--ht-cyan); transition: color .15s; }
.ht-np-forum-link:hover { text-decoration: underline; }
/* Form card — zone-color border injected via [data-fid] rule */
.ht-form-section { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 14px; }
/* Form header bar: fontSize 11, letterSpacing .1em — 1:1 NewPost.tsx "编辑帖子内容" bar */
.ht-form-sec-hdr { padding: 10px 20px; border-bottom: 1px solid var(--ht-border); background: var(--ht-deep); font-size: 11px; letter-spacing: .1em; color: var(--ht-tx3); display: flex; align-items: center; gap: 8px; }
.ht-form-sec-hdr svg { width: 13px; height: 13px; }
.ht-form-sec-body { padding: 20px; }
/* form-group: marginBottom 20 — matches NewPost.tsx subject row gap */
.ht-form-group { margin-bottom: 20px; }
.ht-form-group:last-child { margin-bottom: 0; }
/* Label: flex items-center gap-4, letterSpacing .1em, marginBottom 7 — 1:1 NewPost.tsx label */
.ht-form-label { display: flex; align-items: center; gap: 4px; font-size: 10px; letter-spacing: .1em; color: var(--ht-tx4); margin-bottom: 7px; }
.ht-form-label svg { width: 9px; height: 9px; }
/* Title input: bg #040c04, borderRadius 6, padding 9/13, fontSize 14 — 1:1 NewPost.tsx */
.ht-form-input { width: 100%; background: #040c04; border: 1px solid var(--ht-border); border-radius: 6px; padding: 9px 13px; color: var(--ht-tx2); font-family: var(--ht-mono); font-size: 14px; transition: border-color .13s, box-shadow .13s; outline: none; box-sizing: border-box; }
.ht-form-input:focus { border-color: rgba(0,255,65,.5); box-shadow: 0 0 0 3px rgba(0,255,65,.06); }
.ht-form-input::placeholder { color: var(--ht-tx4); }
/* Subject row: gap 12 — 1:1 NewPost.tsx Row 1 flex gap-3 */
.ht-subject-row { display: flex; gap: 12px; align-items: stretch; }
/* Prefix select wrapper: flex-column, label above select */
.ht-prefix-wrap { display: flex; flex-direction: column; flex: 0 1 214px; min-width: 0; position: relative; flex-shrink: 0; }
.ht-prefix-wrap:empty { display: none; }
.ht-prefix-wrap::after { content: ""; position: absolute; right: 13px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid rgba(0,212,255,.7); border-bottom: 1.5px solid rgba(0,212,255,.7); transform: translateY(-62%) rotate(45deg); pointer-events: none; }
/* Select: borderRadius 6, padding 9/32/9/12, fontSize 12, letterSpacing .08em, minWidth 124 */
/* Default cyan; JS (initNpPrefixColor) overrides bg/border/color dynamically per selection */
.ht-prefix-wrap select { width: 100%; flex: none; height: 38.5px; background: rgba(0,212,255,.07); border: 1px solid rgba(0,212,255,.32); border-radius: 6px; padding: 9px 32px 9px 12px; color: var(--ht-cyan); font-family: var(--ht-mono); font-size: 12px; letter-spacing: .08em; min-width: 124px; outline: none; appearance: none; -webkit-appearance: none; transition: border-color .13s, box-shadow .13s; cursor: pointer; box-sizing: border-box; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.ht-prefix-wrap select:focus { border-color: rgba(0,212,255,.6); }
/* Editor: borderRadius 6 — wraps toolbar + textarea */
.ht-editor-wrap { border: 1px solid var(--ht-border); border-radius: 6px; overflow: hidden; }
.ht-editor-toolbar { padding: 8px 14px; border-bottom: 1px solid var(--ht-border2); background: rgba(0,0,0,.18); display: flex; gap: 4px; flex-wrap: wrap; align-items: center; min-height: 40px; }
.ht-editor-toolbar input[type="button"],.ht-editor-toolbar button { background: var(--ht-card); border: 1px solid var(--ht-border); color: var(--ht-tx3); padding: 3px 8px; border-radius: 3px; font-family: var(--ht-mono); font-size: 11px; cursor: pointer; transition: all .15s; }
.ht-editor-toolbar input[type="button"]:hover,.ht-editor-toolbar button:hover { background: rgba(0,255,65,.08); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-editor-toolbar select { background: var(--ht-card); border: 1px solid var(--ht-border); color: var(--ht-tx3); padding: 3px 6px; border-radius: 3px; font-family: var(--ht-mono); font-size: 11px; }
.ht-smilies-zone { padding: 10px 14px; border-top: 1px solid var(--ht-border2); background: rgba(0,0,0,.1); }
/* Textarea — 1:1 NewPost.tsx: bg #020802, padding 14/16, fontSize 13, lineHeight 1.75, minHeight 320 */
.ht-np-textarea { width: 100%; background: #020802; border: none; color: var(--ht-tx2); padding: 14px 16px; font-family: var(--ht-mono); font-size: 13px; line-height: 1.75; outline: none; resize: vertical; min-height: 320px; box-sizing: border-box; display: block; }
.ht-np-textarea::placeholder { color: #3a5a3a; }
.ht-editor-wrap-rich { background: #020802; }
.ht-editor-wrap-rich .cke_chrome,
.ht-qr .cke_chrome { border: none !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.ht-editor-wrap-rich .cke_inner,
.ht-editor-wrap-rich .cke_reset,
.ht-editor-wrap-rich .cke_reset_all,
.ht-editor-wrap-rich .cke_toolbar,
.ht-editor-wrap-rich .cke_toolbox,
.ht-qr .cke_inner,
.ht-qr .cke_reset,
.ht-qr .cke_reset_all,
.ht-qr .cke_toolbar,
.ht-qr .cke_toolbox { background: transparent !important; box-shadow: none !important; }
.ht-editor-wrap-rich .cke_top,
.ht-qr .cke_top { background: rgba(0,0,0,.18) !important; border-bottom: 1px solid var(--ht-border2) !important; box-shadow: none !important; padding: 8px 10px !important; }
.ht-editor-wrap-rich .cke_bottom,
.ht-qr .cke_bottom { background: var(--ht-deep) !important; border-top: 1px solid var(--ht-border2) !important; box-shadow: none !important; }
.ht-editor-wrap-rich .cke_toolgroup,
.ht-editor-wrap-rich .cke_combo_button,
.ht-qr .cke_toolgroup,
.ht-qr .cke_combo_button { background: var(--ht-card) !important; border: 1px solid var(--ht-border) !important; border-radius: 4px !important; box-shadow: none !important; }
.ht-editor-wrap-rich .cke_button_label,
.ht-editor-wrap-rich .cke_combo_text,
.ht-qr .cke_button_label,
.ht-qr .cke_combo_text { color: var(--ht-tx3) !important; font-family: var(--ht-mono) !important; font-size: 11px !important; text-shadow: none !important; }
.ht-editor-wrap-rich a.cke_button:hover,
.ht-editor-wrap-rich a.cke_button:focus,
.ht-editor-wrap-rich a.cke_button:active,
.ht-editor-wrap-rich .cke_button_on,
.ht-editor-wrap-rich a.cke_combo_button:hover,
.ht-editor-wrap-rich a.cke_combo_button:focus,
.ht-qr a.cke_button:hover,
.ht-qr a.cke_button:focus,
.ht-qr a.cke_button:active,
.ht-qr .cke_button_on,
.ht-qr a.cke_combo_button:hover,
.ht-qr a.cke_combo_button:focus { background: rgba(0,255,65,.08) !important; border-color: rgba(0,255,65,.28) !important; box-shadow: none !important; }
.ht-editor-wrap-rich .cke_contents,
.ht-editor-wrap-rich .cke_wysiwyg_frame,
.ht-qr .cke_contents,
.ht-qr .cke_wysiwyg_frame { background: #020802 !important; border: 0 !important; box-shadow: none !important; }
.ht-editor-wrap-rich textarea.cke_source,
.ht-qr textarea.cke_source { background: #020802 !important; color: var(--ht-tx2) !important; font-family: var(--ht-mono) !important; font-size: 13px !important; line-height: 1.75 !important; padding: 14px 16px !important; }
.ht-editor-wrap-rich .cke_path_item,
.ht-editor-wrap-rich .cke_path_empty,
.ht-qr .cke_path_item,
.ht-qr .cke_path_empty { color: var(--ht-tx4) !important; font-family: var(--ht-mono) !important; }
.ht-editor-wrap-rich .cke_resizer,
.ht-qr .cke_resizer { border-color: rgba(0,212,255,.28) transparent transparent transparent !important; }
.ht-editor-wrap-rich .cke_toolbar_separator,
.ht-qr .cke_toolbar_separator { background: var(--ht-border) !important; }
.ht-editor-wrap-rich .cke_button_arrow,
.ht-editor-wrap-rich .cke_combo_arrow,
.ht-qr .cke_button_arrow,
.ht-qr .cke_combo_arrow { border-top-color: var(--ht-tx4) !important; }
.ht-editor-wrap-rich .cke_panel,
.ht-qr .cke_panel { border: 1px solid var(--ht-border) !important; box-shadow: 0 12px 32px rgba(0,0,0,.5) !important; }
.ht-editor-wrap-rich .cke_panel_block,
.ht-qr .cke_panel_block { background: var(--ht-card) !important; border-color: var(--ht-border) !important; }
.ht-editor-wrap-rich .cke_panel_grouptitle,
.ht-qr .cke_panel_grouptitle { background: var(--ht-deep) !important; border-bottom: 1px solid var(--ht-border) !important; color: var(--ht-green) !important; font-family: var(--ht-mono) !important; letter-spacing: .08em !important; }
.ht-editor-wrap-rich .cke_panel_listItem a,
.ht-qr .cke_panel_listItem a { background: transparent !important; color: var(--ht-tx2) !important; font-family: var(--ht-mono) !important; }
.ht-editor-wrap-rich .cke_panel_listItem.cke_selected a,
.ht-editor-wrap-rich .cke_panel_listItem a:hover,
.ht-editor-wrap-rich .cke_panel_listItem a:focus,
.ht-qr .cke_panel_listItem.cke_selected a,
.ht-qr .cke_panel_listItem a:hover,
.ht-qr .cke_panel_listItem a:focus { background: rgba(0,255,65,.08) !important; color: var(--ht-green) !important; }
.cke_dialog .cke_dialog_title { background: var(--ht-deep) !important; color: var(--ht-green) !important; border-bottom: 1px solid var(--ht-border) !important; font-family: var(--ht-mono) !important; letter-spacing: .08em !important; }
.cke_dialog .cke_dialog_body,
.cke_dialog .cke_dialog_contents_body,
.cke_dialog .cke_dialog_footer { background: var(--ht-card) !important; color: var(--ht-tx2) !important; border-color: var(--ht-border) !important; }
.cke_dialog .cke_dialog_ui_input_text,
.cke_dialog .cke_dialog_ui_input_select,
.cke_dialog .cke_dialog_ui_input_password,
.cke_dialog textarea.cke_dialog_ui_input_textarea { background: #040c04 !important; color: var(--ht-tx2) !important; border: 1px solid var(--ht-border) !important; font-family: var(--ht-mono) !important; }
.cke_dialog .cke_dialog_ui_button { background: var(--ht-card) !important; border: 1px solid var(--ht-border) !important; color: var(--ht-tx2) !important; box-shadow: none !important; }
.cke_dialog .cke_dialog_ui_button_ok { background: rgba(0,255,65,.12) !important; border-color: rgba(0,255,65,.28) !important; color: var(--ht-green) !important; }
/* Char counter — right-aligned 10px mono, orange when near limit */
.ht-char-counter { font-size: 10px; color: #2a4a2a; font-family: var(--ht-mono); }
.ht-char-counter.ht-warn { color: #ff6600; }
.ht-nr-thread-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-nr-thread-tag { display: inline-flex; align-items: center; justify-content: center; min-width: 58px; padding: 4px 10px; border-radius: 999px; background: rgba(0,255,65,.08); border: 1px solid rgba(0,255,65,.2); color: var(--ht-green); font-size: 9px; letter-spacing: .12em; font-family: var(--ht-mono); }
.ht-nr-thread-link { color: var(--ht-tx2); font-size: 13px; line-height: 1.45; }
.ht-nr-thread-link:hover { color: var(--zone-color, var(--ht-green)); }
.ht-nr-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
/* Live preview strip — tag badge + title — hidden until JS activates */
.ht-np-preview-strip { margin-bottom: 20px; padding: 10px 14px; background: #0a180a; border: 1px solid #1a3a1a; border-radius: 6px; display: none; }
.ht-np-preview-lbl { color: #3a5a3a; font-size: 9px; letter-spacing: .12em; margin-bottom: 8px; font-family: var(--ht-mono); }
.ht-np-preview-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Form options */
.ht-form-options { display: flex; flex-wrap: wrap; gap: 20px; padding: 14px 20px; }
.ht-form-chk { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.ht-form-chk-label { font-size: 12px; color: var(--ht-tx3); cursor: pointer; display: inline-flex; align-items: center; gap: 5px; transition: color .15s; }
.ht-form-chk-label svg { width: 11px; height: 11px; }
.ht-form-chk:hover .ht-form-chk-label { color: var(--ht-tx2); }
/* Action row */
.ht-form-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; padding-bottom: 8px; }
/* Submit: solid zone-color bg, dark text — 1:1 NewPost.tsx submit button */
.ht-btn-post { display: inline-flex; align-items: center; gap: 8px; padding: 9px 28px; border-radius: 6px; cursor: pointer; font-family: var(--ht-mono); font-size: 13px; letter-spacing: .05em; background: var(--zone-color, var(--ht-green)); color: #030b03; border: 1px solid var(--zone-color, var(--ht-green)); transition: opacity .15s; }
.ht-btn-post:hover { opacity: .88; }
.ht-btn-post:disabled { opacity: .45; cursor: not-allowed; }
.ht-btn-post svg { width: 14px; height: 14px; }
.ht-btn-preview { display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; border-radius: 6px; cursor: pointer; font-family: var(--ht-mono); font-size: 12px; background: var(--ht-card); color: var(--ht-tx3); border: 1px solid var(--ht-border); transition: all .15s; }
.ht-btn-preview:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.4); }
.ht-btn-preview svg { width: 13px; height: 13px; }
.ht-btn-draft { display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; border-radius: 6px; cursor: pointer; font-family: var(--ht-mono); font-size: 12px; background: var(--ht-card); color: var(--ht-tx4); border: 1px solid var(--ht-border2); transition: all .15s; }
.ht-btn-draft:hover { color: var(--ht-amber); border-color: rgba(255,170,0,.4); }
.ht-btn-draft svg { width: 13px; height: 13px; }
.ht-inline-alert { background: rgba(255,170,0,.055); border: 1px solid rgba(255,170,0,.15); border-radius: 6px; padding: 10px 14px; margin-bottom: 14px; display: flex; align-items: flex-start; gap: 10px; }
.ht-inline-alert svg { width: 13px; height: 13px; flex-shrink: 0; margin-top: 1px; color: var(--ht-amber); }
.ht-inline-alert-body { color: var(--ht-tx3); font-size: 11px; line-height: 1.65; }
.ht-inline-alert-body strong { color: var(--ht-amber); }
.ht-subscribe-grid { display: flex; flex-direction: column; gap: 10px; }
.ht-subscribe-option { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 6px; background: var(--ht-deep); border: 1px solid var(--ht-border); color: var(--ht-tx3); cursor: pointer; transition: border-color .15s, color .15s; }
.ht-subscribe-option:hover { border-color: rgba(0,212,255,.28); color: var(--ht-tx2); }
.ht-subscribe-option input { margin-top: 2px; accent-color: var(--ht-cyan); }
.ht-subscribe-meta { display: flex; flex-direction: column; gap: 3px; }
.ht-subscribe-meta strong { color: var(--ht-tx2); font-size: 12px; font-weight: 600; }
.ht-subscribe-meta span { color: var(--ht-tx4); font-size: 10px; line-height: 1.5; }
.ht-attach-meta { margin-bottom: 12px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--ht-tx4); font-size: 11px; line-height: 1.6; }
.ht-attach-usage { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ht-attach-link { color: var(--ht-cyan); transition: color .15s; }
.ht-attach-link:hover { color: var(--ht-green); }
.ht-attach-upload { display: flex; flex-direction: column; gap: 12px; padding: 14px; background: var(--ht-deep); border: 1px dashed rgba(0,212,255,.24); border-radius: 6px; margin-bottom: 12px; }
.ht-attach-native { display: flex; flex-direction: column; gap: 12px; }
.ht-attach-input-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ht-attach-file { color: var(--ht-tx3); font-size: 11px; max-width: 100%; }
.ht-attach-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ht-attach-action { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 14px; border-radius: 6px; border: 1px solid var(--ht-border); background: var(--ht-card); color: var(--ht-tx3); font-family: var(--ht-mono); font-size: 11px; cursor: pointer; transition: all .15s; }
.ht-attach-action:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.35); }
.ht-attach-drop-shell { display: none; }
.ht-attach-drop-inner { display: flex; flex-direction: column; gap: 10px; }
.ht-attach-progress { width: 0; height: 4px; border-radius: 999px; background: linear-gradient(90deg, rgba(0,212,255,.85), rgba(0,255,65,.92)); opacity: 0; transition: width .15s ease, opacity .15s ease; }
.ht-attach-dropzone { padding: 16px; border: 1px dashed rgba(0,212,255,.18); border-radius: 6px; text-align: center; color: var(--ht-tx4); font-size: 11px; cursor: pointer; transition: border-color .15s, color .15s, background .15s; background: rgba(0,212,255,.04); }
.ht-attach-dropzone:hover,.ht-attach-dropzone.activated { border-color: rgba(0,212,255,.38); color: var(--ht-cyan); background: rgba(0,212,255,.08); }
.ht-attach-drop-hint { pointer-events: none; }
.ht-attach-list { display: flex; flex-direction: column; gap: 8px; }
.ht-attach-list:empty { display: none; }
.ht-attach-row-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-attach-link-btn { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--ht-tx4); transition: color .15s; }
.ht-attach-link-btn:hover { color: var(--ht-cyan); }
/* Cancel: bordered button, padding 9/20, borderRadius 6 — 1:1 NewPost.tsx cancel button */
.ht-btn-cancel { color: #4a6a4a; font-size: 13px; font-family: var(--ht-mono); transition: all .13s; display: inline-flex; align-items: center; gap: 6px; padding: 9px 20px; border-radius: 6px; background: transparent; border: 1px solid #1a3a1a; cursor: pointer; text-decoration: none; }
.ht-btn-cancel:hover { border-color: #2a4a2a; color: #6b8f6b; }
.ht-btn-cancel svg { width: 14px; height: 14px; }
/* Poll builder */
.ht-poll-section { background: var(--ht-card); border: 1px solid rgba(255,170,0,.25); border-radius: 8px; overflow: hidden; margin-bottom: 14px; }
.ht-poll-hdr { padding: 10px 20px; border-bottom: 1px solid rgba(255,170,0,.15); background: rgba(255,170,0,.05); font-size: 10px; letter-spacing: .15em; color: var(--ht-amber); display: flex; align-items: center; gap: 8px; }
.ht-poll-hdr svg { width: 11px; height: 11px; }
.ht-poll-body { padding: 20px; }
.ht-poll-questions input[type="text"] { width: 100%; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; padding: 8px 12px; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 13px; outline: none; margin-bottom: 6px; }
.ht-poll-type { display: flex; gap: 16px; flex-wrap: wrap; }
.ht-poll-type label { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; color: var(--ht-tx3); }
.ht-poll-type input[type="radio"] { accent-color: var(--ht-amber); }
.ht-poll-enddate { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ht-poll-enddate input { background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; padding: 8px 12px; color: var(--ht-tx2); font-family: var(--ht-mono); font-size: 13px; outline: none; transition: border-color .15s; }
.ht-poll-enddate input:focus { border-color: rgba(255,170,0,.5); }
/* Mod options */
.ht-mod-opts { background: rgba(255,170,0,.04); border: 1px solid rgba(255,170,0,.2); border-radius: 8px; padding: 14px 20px; margin-bottom: 14px; }
.ht-mod-opts-hdr { font-size: 10px; letter-spacing: .15em; color: var(--ht-amber); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.ht-mod-opts-hdr svg { width: 11px; height: 11px; }
.ht-mod-opts-list { display: flex; gap: 24px; flex-wrap: wrap; }
.ht-user-switch { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; margin-bottom: 14px; background: rgba(0,212,255,.05); border: 1px solid rgba(0,212,255,.18); border-radius: 8px; }
.ht-user-switch-copy { display: grid; gap: 4px; min-width: 0; }
.ht-user-switch-meta { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.ht-user-switch-name { color: var(--ht-tx2); font-size: 13px; font-family: var(--ht-display); word-break: break-word; }
.ht-user-switch-label { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.ht-user-switch-value { color: var(--ht-tx2); font-size: 13px; font-family: var(--ht-display); word-break: break-word; }
.ht-user-switch-link { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; border: 1px solid rgba(0,212,255,.24); background: rgba(0,212,255,.08); color: var(--ht-cyan); font-size: 10px; letter-spacing: .08em; white-space: nowrap; transition: all .15s; }
.ht-user-switch-link svg { width: 11px; height: 11px; }
.ht-user-switch-link:hover { color: var(--ht-tx1); border-color: rgba(0,212,255,.42); background: rgba(0,212,255,.14); box-shadow: 0 0 14px rgba(0,212,255,.08); }
.ht-user-switch-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; border: 1px solid rgba(0,212,255,.24); background: rgba(0,212,255,.08); color: var(--ht-cyan); font-size: 10px; letter-spacing: .08em; white-space: nowrap; transition: all .15s; }
.ht-user-switch-btn svg { width: 11px; height: 11px; }
.ht-user-switch-btn:hover { color: var(--ht-tx1); border-color: rgba(0,212,255,.42); background: rgba(0,212,255,.14); box-shadow: 0 0 14px rgba(0,212,255,.08); }
.jquery-modal.blocker { background: rgba(1,5,2,.82); backdrop-filter: blur(5px); }
.jquery-modal.blocker.current { display: flex !important; align-items: center; justify-content: center; padding: 20px; }
.modal { max-width: min(560px, calc(100vw - 32px)); width: 100%; background: transparent; box-shadow: none; padding: 0; border-radius: 0; }
.modal a.close-modal { top: 16px; right: 16px; width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.04); border: 1px solid var(--ht-border2); color: var(--ht-tx3); text-indent: 0; font-size: 0; transition: all .15s; }
.modal a.close-modal::before,
.modal a.close-modal::after { content: ""; position: absolute; left: 13px; top: 6px; width: 1px; height: 14px; background: currentColor; }
.modal a.close-modal::before { transform: rotate(45deg); }
.modal a.close-modal::after { transform: rotate(-45deg); }
.modal a.close-modal:hover { color: var(--ht-tx1); border-color: rgba(0,212,255,.3); background: rgba(0,212,255,.08); }
.ht-confirm-shell .ht-modcp-panel-hdr { justify-content: flex-start; }
.ht-confirm-copy { color: var(--ht-tx2); font-size: 12px; line-height: 1.75; }
.modal_buttons.ht-confirm-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.modal_buttons.ht-confirm-actions .button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 18px; border-radius: 6px; border: 1px solid rgba(0,255,65,.22); background: rgba(0,255,65,.12); color: var(--ht-green); font-family: var(--ht-mono); font-size: 12px; letter-spacing: .06em; cursor: pointer; transition: all .15s; }
.modal_buttons.ht-confirm-actions .button:hover { border-color: rgba(0,255,65,.34); background: rgba(0,255,65,.18); color: var(--ht-tx1); }
.modal_buttons.ht-confirm-actions .button:last-child { border-color: var(--ht-border); background: var(--ht-card); color: var(--ht-tx3); }
.modal_buttons.ht-confirm-actions .button:last-child:hover { border-color: rgba(255,170,0,.35); background: rgba(255,170,0,.08); color: var(--ht-amber); }
/* Thread review */
.ht-tr { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-top: 28px; }
.ht-tr-hdr { padding: 11px 20px; border-bottom: 1px solid var(--ht-border2); background: var(--ht-deep); font-size: 10px; letter-spacing: .12em; color: var(--ht-tx3); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ht-tr-hdr svg { width: 11px; height: 11px; }
.ht-tr-pagi { display: flex; gap: 4px; }
.ht-tr-post { padding: 16px 20px; border-bottom: 1px solid var(--ht-border2); }
.ht-tr-post:last-of-type { border-bottom: none; }
.ht-tr-post-hdr { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.ht-tr-post-av { width: 32px; height: 32px; border-radius: 6px; background: linear-gradient(135deg,rgba(0,255,65,.3),rgba(0,212,255,.15)); border: 1px solid rgba(0,255,65,.3); display: flex; align-items: center; justify-content: center; color: var(--ht-green); font-size: 11px; font-family: var(--ht-display); flex-shrink: 0; overflow: hidden; }
.ht-tr-post-av { width: 100%; height: 100%; object-fit: cover; }
.ht-tr-post-user { font-size: 12px; color: var(--ht-cyan); font-family: var(--ht-display); }
.ht-tr-post-user a { color: inherit; }
.ht-tr-post-user a:hover { text-decoration: underline; }
.ht-tr-post-date { color: var(--ht-tx4); font-size: 10px; display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
.ht-tr-post-date svg { width: 9px; height: 9px; }
.ht-tr-post-jump { color: var(--ht-tx4); transition: color .15s; flex-shrink: 0; margin-left: 6px; }
.ht-tr-post-jump svg { width: 11px; height: 11px; }
.ht-tr-post-jump:hover { color: var(--ht-cyan); }
.ht-tr-post-body { font-size: 12px; color: var(--ht-tx2); line-height: 1.65; padding-left: 42px; word-break: break-word; }
.ht-tr-more { padding: 12px 20px; display: flex; align-items: center; justify-content: center; gap: 16px; background: var(--ht-deep); border-top: 1px solid var(--ht-border2); }
.ht-tr-more-link { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ht-cyan); transition: color .15s; }
.ht-tr-more-link svg { width: 10px; height: 10px; }
.ht-tr-more-link:hover { color: var(--ht-green); }
/* Multiquote external */
.ht-mq-ext { background: rgba(0,212,255,.05); border: 1px solid rgba(0,212,255,.2); border-radius: 6px; padding: 12px 16px; margin-bottom: 14px; }
.ht-mq-ext-hdr { display: flex; align-items: center; gap: 6px; color: var(--ht-cyan); font-size: 10px; letter-spacing: .12em; margin-bottom: 8px; }
.ht-mq-ext-hdr svg { width: 10px; height: 10px; }
.ht-mq-ext-copy { font-size: 12px; color: var(--ht-tx3); margin-bottom: 8px; }
.ht-mq-ext-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.ht-mq-ext-link { color: var(--ht-cyan); font-size: 11px; font-family: var(--ht-mono); transition: color .15s; }
.ht-mq-ext-link:hover { color: var(--ht-tx1); }

/* Thread Review (newreply) */
.ht-thread-review { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-top: 24px; }
.ht-thread-review-hdr { display: flex; align-items: center; gap: 8px; padding: 10px 20px; background: rgba(0,255,65,.03); border-bottom: 1px solid var(--ht-border2); color: var(--ht-green); font-size: 11px; font-family: var(--ht-mono); letter-spacing: .1em; font-weight: 600; }
.ht-thread-review-hdr svg { width: 13px; height: 13px; }
.ht-thread-review-body { padding: 0; }
.ht-review-post { border-bottom: 1px solid var(--ht-border2); padding: 14px 20px; }
.ht-review-post:last-child { border-bottom: none; }
.ht-review-post-hdr { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.ht-review-post-author { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-green); font-size: 12px; font-family: var(--ht-mono); }
.ht-review-post-author svg { opacity: .6; }
.ht-review-post-time { display: inline-flex; align-items: center; gap: 4px; color: var(--ht-tx4); font-size: 10px; font-family: var(--ht-mono); }
.ht-review-post-body { color: var(--ht-tx3); font-size: 12px; line-height: 1.7; max-height: 200px; overflow-y: auto; }
.ht-review-more { padding: 10px 20px; border-top: 1px solid var(--ht-border2); }

/* ── SHOWTHREAD ── */
/* ── SHOWTHREAD: flex [posts-col | 24px toggle strip | 280px sidebar] — 1:1 ForumPost.tsx ── */
.ht-st-grid { display: flex; align-items: flex-start; gap: 0; }
.ht-st-posts-col { flex: 1; min-width: 0; }
.ht-st-sidebar-strip { width: 24px; flex-shrink: 0; align-self: stretch; display: flex; flex-direction: column; align-items: center; }
.ht-st-sidebar-btn { width: 20px; height: 20px; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--ht-tx4); transition: color .13s; padding: 0; position: sticky; top: 33vh; }
.ht-st-sidebar-btn:hover { color: var(--ht-green); }
.ht-st-sidebar-btn svg { width: 13px; height: 13px; }
.ht-st-sidebar { overflow: hidden; width: 280px; transition: width .26s ease; flex-shrink: 0; }
.ht-st-sidebar.ht-collapsed { width: 0; }
.ht-st-sidebar-inner { width: 280px; display: flex; flex-direction: column; gap: 12px; }
/* Thread header card — 1:1 ForumPost.tsx: padding 18/24, no overflow:hidden, mb 16 */
.ht-th-hdr { background: linear-gradient(180deg, rgba(8,18,8,.96), rgba(7,15,7,.94)); border: 1px solid rgba(var(--zone-rgb, 0,255,65),.14); border-radius: 8px; padding: 16px 24px 18px; margin-bottom: 16px; box-shadow: 0 14px 28px rgba(0,0,0,.12); }
/* Legacy .ht-th-top — now inert wrapper; block display so children flow naturally */
.ht-th-top { display: block; }
.ht-th-tags { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.ht-th-tags .ht-fd-tag { font-size: 9.5px; padding: 2px 8px; border-radius: 4px; letter-spacing: .12em; }
.ht-th-title { color: var(--ht-tx1); font-size: clamp(18px,2.8vw,24px); line-height: 1.36; font-family: var(--ht-display); letter-spacing: .03em; margin-bottom: 12px; max-width: 940px; }
.ht-th-meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ht-th-meta-item { display: flex; align-items: center; gap: 6px; color: #7f977f; font-size: 10.5px; }
.ht-th-meta-item svg { width: 11px; height: 11px; opacity: .72; }
/* Actions inline with meta, pushed right — matches ForumPost.tsx ml-auto actions */
.ht-th-actions-row { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* Extra tools row (rate/search/print/addpoll) below meta */
.ht-th-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.ht-th-author { color: var(--ht-green); transition: color .15s; }
.ht-th-author:hover { color: #00ff88; text-decoration: underline; }
.ht-btn-reply { display: inline-flex; align-items: center; gap: 6px; padding: 8px 20px; border-radius: 4px; font-size: 12px; letter-spacing: .05em; font-family: var(--ht-mono); cursor: pointer; transition: all .15s; background: rgba(0,255,65,.1); color: var(--ht-green); border: 1px solid rgba(0,255,65,.4); }
.ht-btn-reply:hover { background: rgba(0,255,65,.18); box-shadow: 0 0 16px rgba(0,255,65,.12); }
.ht-btn-reply svg { width: 12px; height: 12px; }
/* Thread header action buttons */
.ht-th-action-btn { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 0 12px; border-radius: 6px; font-size: 11px; font-family: var(--ht-mono); background: rgba(10,24,10,.88); border: 1px solid rgba(39,77,39,.72); color: #8ba38b; transition: all .15s; cursor: pointer; }
.ht-th-action-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.28); background: rgba(0,255,65,.04); }
.ht-th-action-btn svg { width: 12px; height: 12px; }
/* Thread search mini (inside header actions) */
.ht-th-search-mini { display: flex; align-items: center; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; overflow: hidden; transition: border-color .15s; }
.ht-th-search-mini:focus-within { border-color: rgba(0,255,65,.4); }
.ht-th-search-input { background: transparent; border: none; outline: none; padding: 5px 10px; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 11px; width: 140px; }
.ht-th-search-input::placeholder { color: var(--ht-tx4); }
.ht-th-search-btn { background: none; border: none; border-left: 1px solid var(--ht-border); padding: 5px 8px; color: var(--ht-tx4); cursor: pointer; display: flex; align-items: center; transition: color .15s; }
.ht-th-search-btn:hover { color: var(--ht-green); }
.ht-th-search-btn svg { width: 12px; height: 12px; }
/* OP post special styling — 1:1 ForumPost.tsx isOP styles */
.ht-post-op { border-color: rgba(0,255,65,.2); box-shadow: 0 0 20px rgba(0,255,65,.04); }
.ht-post-hdr-op { background: rgba(0,255,65,.05); }
.ht-post-op .ht-post-floor { color: var(--ht-green); }
/* Zone-color thread header border: 1px solid rgba(zone-rgb,.15) — approx. zoneColor at 15% opacity */
[data-fid] .ht-th-hdr { border-color: rgba(var(--zone-rgb, 0,255,65),.15); }
/* Participants sidebar widget */
.ht-participants-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 14px; }
.ht-participant-chip { display: inline-flex; align-items: center; gap: 6px; background: #0a180a; border: 1px solid #1d411d; border-radius: 4px; padding: 5px 9px; text-decoration: none; transition: border-color .15s, background .15s; }
.ht-participant-chip:hover { border-color: rgba(0,255,65,.26); background: rgba(0,255,65,.03); }
.ht-participant-av { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 8px; font-weight: 700; border: 1px solid rgba(0,212,255,.35); background: rgba(0,212,255,.12); color: var(--ht-cyan); flex-shrink: 0; font-family: var(--ht-display); }
.ht-participant-chip span { color: var(--ht-tx2); font-size: 10.5px; }
/* Participants card header */
.ht-participants-hdr { display: flex; align-items: center; gap: 6px; padding: 12px 14px 0; color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; font-family: var(--ht-mono); }
/* Post footer — full-width row with own bg, 1:1 ForumPost.tsx ReactionsBar container */
.ht-post-footer { display: flex; align-items: center; justify-content: space-between; padding: 11px 18px; border-top: 1px solid rgba(25,56,25,.78); background: rgba(6,14,6,.92); gap: 10px; flex-wrap: wrap; }
.ht-post-actions-l { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ht-post-actions-r { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap; }
/* Reaction pills — matches ForumPost.tsx emoji pill buttons */
.ht-pb-reaction { display: inline-flex; align-items: center; gap: 4px; background: var(--ht-hover); border: 1px solid var(--ht-border); border-radius: 20px; padding: 3px 10px; cursor: pointer; font-size: 13px; transition: all .15s; }
.ht-pb-reaction:hover, .ht-pb-reaction.ht-pb-mq-on { background: rgba(0,255,65,.1); border-color: rgba(0,255,65,.4); }
.ht-pb-reaction .ht-pb-cnt { color: var(--ht-tx3); font-size: 11px; }
.ht-pb-reaction.ht-pb-mq-on .ht-pb-cnt { color: var(--ht-green); }
/* Action text buttons (引用/举报/分享) */
.ht-pb-action-link { display: inline-flex; align-items: center; gap: 5px; background: rgba(9,20,9,.86); border: 1px solid rgba(29,65,29,.82); cursor: pointer; color: #7e977e; font-size: 10px; padding: 0 10px; min-height: 28px; border-radius: 999px; transition: all .15s; font-family: var(--ht-mono); letter-spacing: .04em; white-space: nowrap; }
.ht-pb-action-link:hover { color: var(--ht-tx1); border-color: rgba(0,255,65,.24); background: rgba(0,255,65,.04); }
.ht-pb-action-link svg { width: 11px; height: 11px; }
.ht-pb-report:hover { color: var(--ht-red) !important; border-color: rgba(255,0,64,.4) !important; background: rgba(255,0,64,.06) !important; }
.ht-pb-warn:hover { color: var(--ht-amber) !important; border-color: rgba(255,170,0,.4) !important; background: rgba(255,170,0,.08) !important; }
.ht-pb-purge:hover { color: var(--ht-red) !important; border-color: rgba(255,0,64,.44) !important; background: rgba(255,0,64,.08) !important; }
.ht-post-actions-l .ht-pb-action-link {
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(255,170,0,.22);
  background: rgba(255,170,0,.05);
  color: #d6ae47;
  border-radius: 999px;
}
.ht-post-actions-l .ht-pb-action-link:hover {
  background: rgba(255,170,0,.09);
  border-color: rgba(255,170,0,.32);
  color: var(--ht-tx1);
}
.ht-post-actions-r .ht-pb-action-link.ht-pb-quote { border-color: rgba(0,212,255,.26); color: var(--ht-cyan); background: rgba(0,212,255,.06); }
.ht-post-actions-r .ht-pb-action-link.ht-pb-quote:hover { border-color: rgba(0,212,255,.36); background: rgba(0,212,255,.1); }
.ht-post-actions-r .ht-pb-action-link.ht-pb-mq,
.ht-post-actions-r .ht-pb-action-link.ht-pb-mq-on { border-color: rgba(255,170,0,.22); color: var(--ht-amber); background: rgba(255,170,0,.05); }
.ht-post-actions-r .ht-pb-action-link.ht-pb-mq:hover,
.ht-post-actions-r .ht-pb-action-link.ht-pb-mq-on:hover { border-color: rgba(255,170,0,.32); background: rgba(255,170,0,.09); }
/* Sidebar cards */
.ht-sidebar-card { background: #080f08; border: 1px solid #1a3a1a; border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ht-sidebar-card-hdr { padding: 8px 14px; border-bottom: 1px solid #1a3a1a; color: #4a6a4a; font-size: 10px; letter-spacing: .12em; font-family: var(--ht-mono); display: flex; align-items: center; gap: 6px; }
.ht-sidebar-card-hdr svg { width: 11px; height: 11px; }
.ht-sidebar-info-row { display: flex; justify-content: space-between; padding: 7px 14px; border-bottom: 1px solid #0a180a; }
.ht-sidebar-info-row:last-child { border-bottom: none; }
.ht-sidebar-info-lbl { color: #3a5a3a; font-size: 10px; }
.ht-sidebar-info-val { color: var(--ht-tx2); font-size: 10.5px; font-family: var(--ht-mono); max-width: 160px; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ht-sidebar-info-val a { color: inherit; transition: color .15s; }
.ht-sidebar-info-val a:hover { color: var(--ht-green); }
/* Sidebar online users */
.ht-sidebar-online { padding: 12px 14px; }
.ht-sidebar-online-hdr { color: #4a6a4a; font-size: 10px; letter-spacing: .12em; margin-bottom: 10px; font-family: var(--ht-mono); display: flex; align-items: center; gap: 6px; }
.ht-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 5px var(--ht-green); animation: htPulse 2s ease-in-out infinite; flex-shrink: 0; }
.ht-sidebar-online-list { display: flex; flex-wrap: wrap; gap: 6px; }
.ht-sidebar-online-chip { display: inline-flex; align-items: center; gap: 4px; background: #0a180a; border: 1px solid #1a3a1a; border-radius: 3px; padding: 2px 8px; color: #6b8f6b; font-size: 10px; transition: all .15s; }
.ht-sidebar-online-chip:hover { color: var(--ht-green); border-color: #2a5a2a; }
/* Sidebar thread link (similar threads) — 1:1 ForumPost.tsx relatedThreads rows */
.ht-sidebar-thread-link { display: block; padding: 11px 14px; border-bottom: 1px solid var(--ht-border2); transition: background .15s, border-color .15s; }
.ht-sidebar-thread-link:last-child { border-bottom: none; }
.ht-sidebar-thread-link:hover { background: rgba(0,255,65,.03); border-color: rgba(0,255,65,.08); }
.ht-sidebar-thread-row { display: grid; grid-template-columns: auto 1fr auto; align-items: flex-start; gap: 7px; }
.ht-sidebar-thread-title { color: var(--ht-tx2); font-size: 11.5px; line-height: 1.45; min-width: 0; }
.ht-sidebar-thread-tag { display: inline-block; font-size: 7.5px; padding: 1px 5px; border-radius: 3px; letter-spacing: .12em; flex-shrink: 0; margin-top: 2px; white-space: nowrap; }
.ht-sidebar-thread-arrow { width: 10px; height: 10px; color: #2f4a2f; margin-top: 3px; flex-shrink: 0; transition: color .15s, transform .15s; }
.ht-sidebar-thread-link:hover .ht-sidebar-thread-arrow { color: var(--ht-green); transform: translateX(1px); }
/* Sidebar back link */
.ht-sidebar-back { display: flex; align-items: center; gap: 6px; padding: 10px 16px; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; color: var(--ht-tx3); font-size: 12px; transition: all .15s; margin-top: 12px; }
.ht-sidebar-back svg { width: 11px; height: 11px; }
.ht-sidebar-back:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); }
/* Poll card */
.ht-poll-card { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.ht-poll-card-hdr { padding: 12px 20px; border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx1); font-size: 13px; font-family: var(--ht-display); display: flex; align-items: center; gap: 8px; background: var(--ht-deep); }
.ht-poll-card-hdr svg { width: 13px; height: 13px; color: var(--ht-cyan); }
.ht-poll-card-body { padding: 16px 20px; }
.ht-poll-result-row { margin-bottom: 10px; }
.ht-poll-results { margin-top: 14px; }
/* Rate widget */
.ht-rate-widget { display: inline-flex; align-items: center; }
/* Posts container */
.ht-posts { margin-bottom: 16px; }
/* Sidebar — align-self:start keeps it anchored to top regardless of the posts column height */
.ht-sidebar { align-self: start; }
.ht-back-btn { display: flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 6px; background: var(--ht-card); border: 1px solid var(--ht-border); color: var(--ht-tx3); font-size: 12px; transition: all .15s; margin-bottom: 0; }
.ht-back-btn svg { width: 12px; height: 12px; }
.ht-back-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-sidebar-link { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ht-tx4); transition: color .15s; padding: 4px 0; }
.ht-sidebar-link svg { width: 11px; height: 11px; }
.ht-sidebar-link:hover { color: var(--ht-green); }
/* Bottom nav bar (showthread) */
.ht-st-bottom-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--ht-border2); }
.ht-st-bottom-nav.ht-st-bottom-nav-solo { justify-content: flex-end; }
.ht-back-inline { display: flex; align-items: center; gap: 4px; color: var(--ht-tx3); font-size: 12px; transition: color .15s; }
.ht-back-inline svg { width: 11px; height: 11px; }
.ht-back-inline:hover { color: var(--ht-green); }
/* Warning box (ForumPost.tsx sidebar 警告框 1:1) */
.ht-warn-box { background: rgba(255,0,64,.05); border: 1px solid rgba(255,0,64,.2); border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ht-warn-box svg { width: 14px; height: 14px; }
/* Closed thread notice */
.ht-closed-notice { display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: rgba(255,170,0,.06); border: 1px solid rgba(255,170,0,.2); border-radius: 6px; margin-bottom: 12px; }
.ht-closed-notice svg { width: 13px; height: 13px; }
/* Moderation panel */
.ht-mod-panel { background: var(--ht-card); border: 1px solid rgba(255,170,0,.25); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.ht-mod-panel-hdr { padding: 10px 16px; border-bottom: 1px solid rgba(255,170,0,.2); color: var(--ht-amber); font-size: 11px; display: flex; align-items: center; gap: 6px; }
.ht-mod-panel-hdr svg { width: 11px; height: 11px; display: block; flex-shrink: 0; }
.ht-mod-panel-body { padding: 10px 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.ht-mod-panel-body svg { width: 11px; height: 11px; }
/* Rating stars */
.ht-rate-stars { display: flex; gap: 6px; }
.ht-rate-stars input[type=radio] { accent-color: var(--ht-amber); width: 14px; height: 14px; cursor: pointer; }
/* Threaded view */
.ht-threaded-bit { padding: 3px 0; border-bottom: 1px solid var(--ht-border2); }
.ht-threaded-bit:last-child { border-bottom: none; }
/* Poll option */
.ht-poll-opt { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; border-bottom: 1px solid var(--ht-border2); }
.ht-poll-opt:last-child { border-bottom: none; }

/* ── POSTBIT CLASSIC ── */
.ht-post { background: linear-gradient(180deg, rgba(9,18,9,.985), rgba(7,14,7,.98)); border: 1px solid rgba(32,68,32,.78); border-radius: 8px; overflow: hidden; margin-bottom: 14px; box-shadow: 0 10px 22px rgba(0,0,0,.14); }
/* Post Header Bar */
.ht-post-hdr { display: flex; align-items: center; justify-content: space-between; padding: 7px 16px; background: rgba(6,15,6,.94); border-bottom: 1px solid rgba(25,56,25,.78); }
.ht-post-hdr-l { display: flex; align-items: center; gap: 8px; }
.ht-post-hdr-r { display: flex; align-items: center; gap: 4px; }
.ht-post-floor { color: var(--ht-tx4); font-size: 11px; font-family: var(--ht-mono); min-width: 60px; }
.ht-post-hdr-sep { color: var(--ht-border); font-size: 12px; }
.ht-post-time { display: flex; align-items: center; gap: 4px; color: var(--ht-tx4); font-size: 11px; }
.ht-post-time svg { width: 9px; height: 9px; }
/* Post menu (MyBB generated) */
.ht-post-hdr-r a, .post_controls a { font-size: 11px; color: var(--ht-tx4); padding: 2px 7px; border-radius: 3px; transition: all .15s; border: 1px solid transparent; }
.ht-post-hdr-r a:hover, .post_controls a:hover { color: var(--ht-green); background: rgba(0,255,65,.06); border-color: rgba(0,255,65,.25); }
/* Post inner layout */
.ht-post-inner { display: flex; }
/* Author Sidebar — 140px wide, centered column, 1:1 ForumPost.tsx AuthorCard */
.ht-post-author { width: 142px; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; padding: 20px 12px 18px; border-right: 1px solid rgba(25,56,25,.72); text-align: center; background: linear-gradient(180deg, rgba(4,12,4,.64), rgba(5,12,5,.44)); }
/* Content area — flex-column so footer sits at bottom edge */
.ht-post-content { flex: 1; min-width: 0; display: flex; flex-direction: column; background: rgba(8,15,8,.52); }
/* Body wrap — padding matches ForumPost.tsx '16px 20px', min-height 80px */
.ht-post-body-wrap { flex: 1; padding: 20px 24px; min-height: 110px; }
.ht-post-body { font-size: 14px; line-height: 1.76; color: var(--ht-tx2); word-break: break-word; }
.ht-post-body h1,
.ht-post-body h2,
.ht-post-body h3 { color: var(--ht-cyan); font-family: var(--ht-display); letter-spacing: .02em; margin: 0 0 14px; }
.ht-post-body p { margin: 0 0 12px; }
.ht-post-body ul,
.ht-post-body ol { margin: 0 0 14px 20px; }
.ht-post-body blockquote { margin: 12px 0; border-left: 3px solid #1a5a2a; background: #0a1a0a; padding: 10px 14px; border-radius: 0 4px 4px 0; color: var(--ht-tx3); font-size: 12px; line-height: 1.6; }
/* Quote attribution line ("> author 写道：") */
.ht-post-body blockquote .ht-quote-attr { color: var(--ht-green); font-size: 11px; margin-bottom: 6px; letter-spacing: .05em; }
.ht-post-body code, .ht-post-body pre { background: #050f05; border: 1px solid #1a3a1a; border-radius: 3px; font-family: var(--ht-mono); font-size: 12px; color: #a0ffa0; }
.ht-post-body code { padding: 1px 5px; border-radius: 3px; }
.ht-post-body pre { padding: 14px 16px; margin: 12px 0; overflow-x: auto; line-height: 1.65; border-radius: 6px; scrollbar-width: thin; scrollbar-color: #1a3a1a transparent; }
/* MyBB code tag wrapper — header bar with language label + copy button */
.ht-code-wrap { margin: 12px 0; background: #050f05; border: 1px solid #1a3a1a; border-radius: 6px; overflow: hidden; }
.ht-code-hdr { display: flex; align-items: center; justify-content: space-between; padding: 6px 14px; background: #0a140a; border-bottom: 1px solid #1a3a1a; }
.ht-code-lang { font-size: 10px; letter-spacing: .1em; font-family: var(--ht-mono); }
.ht-code-lang-bash { color: #00ff41; }
.ht-code-lang-python { color: #00d4ff; }
.ht-code-lang-c { color: #ff6600; }
.ht-code-lang-js, .ht-code-lang-javascript { color: #ffaa00; }
.ht-code-copy { display: inline-flex; align-items: center; gap: 4px; background: transparent; border: none; cursor: pointer; color: var(--ht-tx4); font-size: 11px; padding: 2px 6px; border-radius: 3px; transition: color .15s; font-family: var(--ht-mono); }
.ht-code-copy:hover { color: var(--ht-green); }
.ht-code-copy svg { width: 12px; height: 12px; }
.ht-code-body { padding: 14px 16px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #1a3a1a transparent; }
.ht-code-body pre { margin: 0; padding: 0; border: none; background: transparent; font-size: 12px; line-height: 1.65; color: #a0ffa0; white-space: pre; }
.ht-code-wrap-mybb { margin: 14px 0; }
.ht-code-wrap-mybb .ht-code-hdr { min-height: 31px; }
.ht-code-wrap-mybb .ht-code-lang-auto { color: #6b8f6b; }
.ht-code-wrap-mybb .ht-code-lang-php { color: #ff6600; }
.ht-code-wrap-mybb .ht-code-body pre,
.ht-code-wrap-mybb .ht-code-body code {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 0;
  font-family: var(--ht-mono);
  font-size: 12px;
  line-height: 1.65;
  color: #a0ffa0;
}
.ht-code-wrap-mybb .ht-code-body code {
  display: block;
  white-space: pre;
}
.ht-code-wrap-mybb .ht-code-body pre {
  min-width: max-content;
}
.ht-code-wrap-mybb .ht-code-body > div[dir="ltr"] {
  min-width: max-content;
}
.ht-code-wrap-mybb .ht-code-body-php code {
  white-space: nowrap;
}
.ht-code-wrap-mybb .ht-code-copy.is-copied { color: var(--ht-green); }
.ht-post-body .codeblock,
.ht-post-body .phpcodeblock {
  margin: 12px 0;
  background: #050f05;
  border: 1px solid #1a3a1a;
  border-radius: 6px;
  overflow: hidden;
}
.ht-post-body .codeblock .title,
.ht-post-body .phpcodeblock .title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 31px;
  padding: 6px 14px;
  background: #0a140a;
  border-bottom: 1px solid #1a3a1a;
  color: #6b8f6b;
  font-size: 10px;
  letter-spacing: .1em;
  font-family: var(--ht-mono);
}
.ht-post-body .phpcodeblock .title { color: #ff6600; }
.ht-post-body .codeblock .body,
.ht-post-body .phpcodeblock .body {
  padding: 14px 16px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #1a3a1a transparent;
}
.ht-post-body .codeblock .body code,
.ht-post-body .phpcodeblock .body code {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: #a0ffa0;
  font-family: var(--ht-mono);
  font-size: 12px;
  line-height: 1.65;
  white-space: pre;
}
.ht-post-attachments:empty { display: none; }
.ht-post-editedby:empty { display: none; }
.ht-post-editedby { margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--ht-border2); font-size: 10px; color: var(--ht-tx4); font-style: italic; }
.ht-post-edited-meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.ht-post-edited-meta svg { width: 9px; height: 9px; flex-shrink: 0; }
.ht-post-status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 999px; border: 1px solid rgba(255,170,0,.22); background: rgba(255,170,0,.05); color: var(--ht-amber); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.ht-post-status-badge svg { width: 10px; height: 10px; flex-shrink: 0; }
.ht-post-hidden-copy { display: grid; gap: 6px; min-width: 0; }
.ht-post-hidden-title { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-amber); font-family: var(--ht-display); font-size: 11px; letter-spacing: .08em; }
.ht-post-hidden-title svg { width: 11px; height: 11px; flex-shrink: 0; }
.ht-post-hidden-sub { color: var(--ht-tx3); font-size: 12px; line-height: 1.65; }
.ht-post-hidden-sub strong, .ht-post-hidden-sub a { color: var(--ht-tx2); }
.ht-post-sig:empty { display: none; }
.ht-post-sig { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--ht-border2); font-size: 11px; color: var(--ht-tx4); line-height: 1.5; }
/* Author sidebar elements */
.ht-post-main { width: 100%; display: grid; justify-items: center; align-content: start; min-width: 0; row-gap: 0; }
.ht-post-avatar-wrap { position: relative; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px; justify-self: center; }
.ht-post-av { width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center; overflow: hidden; margin-bottom: 0; font-family: var(--ht-display); font-size: 16px; font-weight: 700; background: rgba(0,255,65,.08); border: 2px solid rgba(0,255,65,.34); box-shadow: 0 0 16px rgba(0,255,65,.12); }
.ht-post-av img { width: 100%; height: auto; object-fit: cover; }
.ht-post-av-guest { background: rgba(107,143,107,.1); border: 2px solid rgba(107,143,107,.25); }
.ht-post-nameplate { width: 100%; max-width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; text-align: center; }
.ht-post-username { width: 100%; display: flex; align-items: center; justify-content: center; font-size: 13px; color: var(--ht-tx1); margin: 0; word-break: break-word; text-align: center; line-height: 1.3; }
.ht-post-username a { color: inherit; transition: color .15s; display: inline-flex; align-items: center; justify-content: center; max-width: 100%; text-align: center; }
.ht-post-username a:hover { color: var(--ht-green); }
.ht-post-rank { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; font-size: 9.5px; padding: 3px 8px; border-radius: 3px; letter-spacing: .1em; margin: 0; text-align: center; background: rgba(0,212,255,.08); color: var(--ht-cyan); border: 1px solid rgba(0,212,255,.25); }
.ht-post-stars { margin: 0 0 12px; min-height: 16px; line-height: 1; }
.ht-post-stars img { width: auto; height: 10px; margin: 0 1px; vertical-align: middle; }
.ht-post-usertitle { color: var(--ht-tx4); font-size: 10px; margin-bottom: 10px; line-height: 1.4; }
.ht-post-stats { width: 100%; margin-top: 10px; padding-top: 0; border-top: none; }
.ht-post-stat-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid rgba(11,24,11,.82); }
.ht-post-stat-row span:first-child { color: #607560; font-size: 8.5px; letter-spacing: .08em; }
.ht-post-stat-row span:last-child { color: var(--ht-tx3); font-size: 9px; }
.ht-post-status { position: absolute; top: 4px; left: 4px; margin: 0; transform: none; z-index: 2; pointer-events: none; }
.ht-online-indicator { display: inline-flex; align-items: center; justify-content: center; gap: 0; width: auto; height: auto; font-size: 0; line-height: 0; background: transparent; border: none; }
.ht-online,
.ht-offline { color: inherit; border: none; }
.ht-online-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ht-green); box-shadow: 0 0 6px var(--ht-green); animation: htPulse 2s ease-in-out infinite; flex-shrink: 0; }
.ht-offline-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #5b6b5b; opacity: .78; flex-shrink: 0; }
.ht-post-pm { margin-top: 6px; }
.ht-post-pm .ht-pb-action-link { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 28px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(0,212,255,.24); background: rgba(0,212,255,.08); color: var(--ht-cyan); font-size: 10px; letter-spacing: .06em; transition: all .15s; }
.ht-post-pm .ht-pb-action-link:hover { color: var(--ht-tx1); border-color: rgba(0,212,255,.42); background: rgba(0,212,255,.14); box-shadow: 0 0 14px rgba(0,212,255,.08); }
.ht-post-pm .ht-pb-action-link svg { width: 11px; height: 11px; }
/* Quick Reply */
.ht-qr { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-top: 20px; }
.ht-qr-hdr { padding: 11px 20px; border-bottom: 1px solid var(--ht-border2); background: var(--ht-deep); font-size: 10px; letter-spacing: .15em; color: var(--ht-tx3); display: flex; align-items: center; gap: 8px; }
.ht-qr-hdr svg { width: 11px; height: 11px; }
.ht-qr-body { padding: 16px 20px; }
.ht-qr-area { width: 100%; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; padding: 12px 14px; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 13px; resize: vertical; min-height: 110px; outline: none; transition: border-color .15s, box-shadow .15s; }
.ht-qr-area:focus { border-color: rgba(0,255,65,.5); box-shadow: 0 0 0 3px rgba(0,255,65,.06); }
.ht-qr-area::placeholder { color: var(--ht-tx4); }
.ht-qr-actions { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border-top: 1px solid var(--ht-border2); background: rgba(5,15,5,.5); flex-wrap: wrap; }

/* ── ANIMATIONS ── */
@keyframes htPulse { 0%,100%{opacity:1;box-shadow:0 0 6px var(--ht-green)}50%{opacity:.4;box-shadow:0 0 2px var(--ht-green)} }
@keyframes livePulse { 0%,100%{box-shadow:0 0 8px var(--ht-red)}50%{box-shadow:0 0 16px var(--ht-red),0 0 24px rgba(255,0,64,.4)} }
@keyframes htTicker { 0%{transform:translateX(0)}100%{transform:translateX(-50%)} }

/* ── FORUMDISPLAY — ROW WRAPPER, STICKY ROWS & SORT UI ── */
/* Row wrapper: contains optional modbit checkbox + the clickable row */
.ht-fd-row-wrap { position: relative; display: flex; align-items: stretch; }
.ht-fd-row-wrap.inline_row.trow_selected > .ht-fd-row { background: rgba(0,255,65,.06); box-shadow: inset 0 0 0 1px rgba(0,255,65,.16); }
.ht-fd-row-wrap.inline_row.trow_selected > .ht-fd-row:hover { background: rgba(0,255,65,.09); }
/* When inline-mod checkbox is present, shift row right to make space */
.ht-fd-row-wrap input.ht-fd-check ~ .ht-fd-row { padding-left: 46px; }
/* Inline-mod checkbox */
.ht-fd-check { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); accent-color: var(--ht-green); width: 14px; height: 14px; cursor: pointer; z-index: 2; flex-shrink: 0; }
/* Sticky row: amber left accent + very subtle amber tint */
.ht-fd-sticky-row { background: transparent; border-left: none; }
.ht-fd-sticky-row:hover { background: var(--ht-hover); }
/* Sticky pin icon */
.ht-fd-sticky-pin { display: inline-flex; align-items: center; flex-shrink: 0; }
.ht-fd-sticky-pin svg { width: 11px; height: 11px; color: var(--ht-amber); }
/* Sticky badge */
.ht-fd-tag-sticky { background: rgba(255,170,0,.05); color: #b89a55; border: 1px solid rgba(255,170,0,.16); }
/* Sticky author amber */
.ht-fd-sticky-author { color: var(--zone-color, var(--ht-green)) !important; }
/* Folder / read-unread icon */
.ht-fd-folder { display: inline-flex; align-items: center; flex-shrink: 0; }
.ht-fd-folder svg { width: 12px; height: 12px; }
.ht-fd-folder img { width: 16px; height: 16px; vertical-align: middle; }
/* Jump-to-unread link */
.ht-gotounread { display: inline-flex; align-items: center; color: var(--ht-cyan); opacity: .55; padding: 0 2px; border-radius: 3px; transition: all .15s; flex-shrink: 0; }
.ht-gotounread:hover { opacity: 1; background: rgba(0,212,255,.1); }
.ht-gotounread svg { width: 11px; height: 11px; }
/* Attachment count badge */
.ht-fd-attach { display: inline-flex; align-items: center; gap: 3px; background: rgba(0,212,255,.1); border: 1px solid rgba(0,212,255,.22); color: var(--ht-cyan); font-size: 9px; padding: 0 5px; border-radius: 3px; letter-spacing: .05em; flex-shrink: 0; }
.ht-fd-attach svg { width: 9px; height: 9px; }
/* Unapproved posts badge (mods only) */
.ht-fd-unapp { color: var(--ht-amber); font-size: 9px; padding: 0 4px; letter-spacing: .05em; }
/* Deleted thread row */
.ht-fd-row-deleted { opacity: .45; pointer-events: none; }
.ht-fd-tag-del { background: rgba(255,0,64,.12); color: var(--ht-red); border: 1px solid rgba(255,0,64,.3); }
/* Inline thread pagination (multi-page threads) */
.ht-fd-mp { display: inline-flex; align-items: center; gap: 2px; margin-left: 6px; vertical-align: middle; }
.ht-fd-mp-page { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 16px; background: rgba(0,255,65,.07); border: 1px solid rgba(0,255,65,.18); color: var(--ht-tx3); font-size: 9px; border-radius: 2px; padding: 0 3px; transition: all .15s; }
.ht-fd-mp-page:hover { background: rgba(0,255,65,.16); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
.ht-fd-mp-more { color: var(--ht-tx4); font-size: 9px; padding: 0 2px; }
/* Sort tab icons */
.ht-sort-tab { display: inline-flex; align-items: center; gap: 5px; }
.ht-sort-tab svg { width: 11px; height: 11px; }
/* Sortable column header links */
.ht-thdr-sort { display: inline-flex; align-items: center; gap: 4px; color: var(--ht-tx4); font-size: 10px; letter-spacing: .1em; transition: color .15s; }
.ht-thdr-sort:hover { color: var(--ht-green); }
.ht-thdr-sort svg { width: 10px; height: 10px; }
.ht-order-arrow { color: var(--ht-tx3); font-size: 10px; margin-left: 4px; }
/* Thread count label (right side of sort bar) */
.ht-thread-count { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-tx4); font-size: 11px; margin-left: auto; flex-shrink: 0; }
.ht-thread-count svg { width: 11px; height: 11px; }
.ht-inlinemod-master { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx3); font-size: 11px; font-family: var(--ht-mono); margin-left: 10px; }
.ht-inlinemod-master input { accent-color: var(--ht-green); width: 14px; height: 14px; cursor: pointer; }
/* FD-specific pagination row (below thread table) */
.ht-fd-pagi { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.ht-fd-bottombar { margin-top: 14px; padding: 2px 2px 0; }
.ht-fd-foot-count { display: inline-flex; align-items: center; gap: 6px; color: var(--ht-tx4); font-size: 11px; font-family: var(--ht-mono); }
.ht-fd-foot-count svg { width: 11px; height: 11px; opacity: .78; }
.ht-fd-bottombar .ht-pagination { margin-left: auto; justify-content: flex-end; min-width: 0; }
.ht-fd-bottombar .ht-pagination:empty { display: none; }
.ht-fd-bottombar .ht-pagination .pagination { margin-left: auto; justify-content: flex-end; }
/* Moderator line inside board stats bar (right-aligned) */
.ht-brd-mod-line { margin-left: auto; color: var(--ht-tx4); font-size: 11px; padding-left: 16px; }

/* ── ANNOUNCEMENTS ── */
.ht-announce-blk { display: contents; }
.ht-announce-row-wrap { position: relative; }
.ht-announce-row-wrap .ht-fd-row { background: transparent; border-left: none; border-bottom-color: var(--ht-border2); }
.ht-announce-row-wrap .ht-fd-row:hover { background: var(--ht-hover); }
.ht-announce-tags { display: flex; align-items: center; gap: 5px; margin-bottom: 4px; flex-wrap: wrap; }
.ht-announce-pin { display: inline-flex; align-items: center; }
.ht-announce-pin svg { width: 10px; height: 10px; color: #b89a55; opacity: .82; }
.ht-announce-tag { color: #b89a55; background: rgba(255,170,0,.05); border: 1px solid rgba(255,170,0,.16); box-shadow: none; }
.ht-announce-thread .ht-fd-main { padding-right: 16px; }
.ht-announce-thread .ht-fd-tags { margin-bottom: 5px; }
.ht-announce-thread .ht-fd-title { color: var(--ht-tx2); }
.ht-announce-thread .ht-fd-title a { color: inherit; }
.ht-announce-thread .ht-fd-title { font-size: 14px; line-height: 1.45; margin-bottom: 6px; }
.ht-announce-thread .ht-fd-meta { gap: 6px 8px; }
.ht-announce-thread .ht-fd-time { font-size: 9px; }
.ht-announce-thread .ht-fd-num,
.ht-announce-thread .ht-fd-num.views { font-size: 16px; }
.ht-announce-thread .ht-fd-last-by { font-size: 12px; }
.ht-announce-thread .ht-fd-last-time { font-size: 9px; }
.ht-announce-row-wrap .ht-mod-controls { position: absolute; top: 12px; right: 16px; z-index: 2; }
.ht-fd-num-muted,
.ht-fd-num.views.ht-fd-num-muted { color: #567456; }
/* Announcement star rating */
.ht-rating-stars { display: inline-flex; align-items: center; gap: 1px; color: var(--ht-amber); font-size: 10px; }
/* Announcement detail + editor */
.ht-ann-wrap { max-width: 1100px; margin: 0 auto; }
.ht-ann-hero { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.ht-ann-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--ht-border2); flex-wrap: wrap; }
.ht-ann-hero-l { display: flex; align-items: center; gap: 14px; min-width: 0; }
.ht-ann-ico { width: 42px; height: 42px; border-radius: 10px; background: rgba(255,170,0,.07); border: 1px solid rgba(255,170,0,.18); color: #b89a55; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ht-ann-ico svg { width: 20px; height: 20px; }
.ht-ann-title { font-family: var(--ht-display); font-size: 18px; color: var(--ht-tx1); letter-spacing: .04em; }
.ht-ann-sub { color: var(--ht-tx4); font-size: 11px; margin-top: 3px; line-height: 1.6; }
.ht-ann-post-card { margin-bottom: 16px; }
.ht-ann-post-card .ht-post { margin: 0; border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-ann-post-card .ht-post-hdr { border-bottom-color: var(--ht-border2); }
.ht-ann-page .ht-post-content { background: linear-gradient(180deg, rgba(255,170,0,.025) 0%, rgba(8,15,8,.52) 22%, rgba(8,15,8,.52) 100%); }
.ht-ann-page .ht-post-hdr { background: linear-gradient(180deg, rgba(255,170,0,.035), rgba(255,170,0,0)); }
.ht-ann-page .ht-post-body-wrap { padding: 22px 26px; }
.ht-ann-page .ht-post-body { font-size: 14px; line-height: 1.82; color: var(--ht-tx2); }
.ht-ann-page .ht-post-body a { color: var(--ht-cyan); text-decoration: none; }
.ht-ann-page .ht-post-body a:hover { color: var(--ht-green); }
.ht-ann-page .ht-post-body h1,
.ht-ann-page .ht-post-body h2,
.ht-ann-page .ht-post-body h3 { color: var(--ht-tx1); font-family: var(--ht-display); letter-spacing: .03em; margin: 18px 0 10px; }
.ht-ann-page .ht-post-body ul,
.ht-ann-page .ht-post-body ol { margin: 12px 0; padding-left: 22px; }
.ht-ann-page .ht-post-body li + li { margin-top: 6px; }
.ht-ann-page .ht-post-body pre,
.ht-ann-page .ht-post-body .codeblock { border-color: rgba(255,170,0,.14); box-shadow: inset 0 0 0 1px rgba(255,170,0,.02); }
.ht-ann-page .ht-post-actions-l,
.ht-ann-page .ht-post-actions-r { gap: 8px; }
.ht-ann-page .ht-post-author { background: linear-gradient(180deg, rgba(255,170,0,.018), rgba(255,170,0,0)); }
.ht-ann-page .ht-post-stat-row { padding: 6px 0; }
.ht-ann-page .ht-post-stat-row span:first-child { color: var(--ht-tx4); }
.ht-ann-page .ht-post-stat-row span:last-child { font-size: 11px; }
.ht-ann-form-grid { display: grid; gap: 14px; }
.ht-ann-sched-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ht-ann-sched-card { background: rgba(255,255,255,.01); border: 1px solid var(--ht-border2); border-radius: 8px; padding: 14px; }
.ht-ann-sched-card .ht-form-label { margin-bottom: 10px; display: block; }
.ht-ann-sched-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ht-ann-sched-field { width: auto; min-width: 84px; flex: 0 0 auto; }
.ht-ann-sched-time { min-width: 132px; }
.ht-ann-field-note { color: var(--ht-tx4); font-size: 10px; margin-top: 8px; line-height: 1.6; }
.ht-ann-opt-grid { display: grid; gap: 10px; }
.ht-ann-opt-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; background: rgba(255,255,255,.01); border: 1px solid var(--ht-border2); border-radius: 8px; flex-wrap: wrap; }
.ht-ann-opt-label { color: var(--ht-tx2); font-size: 12px; }
.ht-ann-radio-group { display: inline-flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ht-ann-radio-group label { display: inline-flex; align-items: center; gap: 6px; color: var(--ht-tx3); font-size: 11px; }
.ht-ann-radio-group input { accent-color: var(--ht-green); }

/* ── MODERATION CONTROLS (announce + thread) ── */
.ht-mod-controls { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ht-mod-link { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; padding: 2px 8px; border-radius: 3px; border: 1px solid var(--ht-border); color: var(--ht-tx4); background: var(--ht-deep); transition: all .15s; cursor: pointer; white-space: nowrap; }
.ht-mod-link svg { width: 10px; height: 10px; }
.ht-mod-link:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.4); background: rgba(0,212,255,.06); }
.ht-mod-link.ht-mod-del:hover { color: var(--ht-red); border-color: rgba(255,0,64,.4); background: rgba(255,0,64,.06); }

/* ── MODERATED-BY BAR ── */
.ht-modby-bar { display: flex; align-items: center; gap: 8px; padding: 8px 20px; color: var(--ht-tx4); font-size: 11px; border-top: 1px solid var(--ht-border2); background: var(--ht-deep); }
.ht-modby-bar svg { width: 11px; height: 11px; color: var(--ht-green); }

/* ── NO PERMISSION / NO THREADS EMPTY STATES ── */
.ht-noperm, .ht-nothreads { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 24px; gap: 14px; text-align: center; }
.ht-noperm-icon svg, .ht-nothreads-icon svg { width: 52px; height: 52px; color: var(--ht-tx4); opacity: .5; }
.ht-noperm-title, .ht-nothreads-title { font-size: 18px; font-family: var(--ht-display); color: var(--ht-tx2); }
.ht-noperm-desc, .ht-nothreads-desc { color: var(--ht-tx4); font-size: 12px; max-width: 400px; line-height: 1.65; }

/* ── PASSWORD FORM ── */
.ht-passwd-form { background: var(--ht-card); border: 1px solid rgba(255,170,0,.28); border-radius: 8px; padding: 28px; max-width: 440px; margin: 32px auto; }
.ht-passwd-hdr { color: var(--ht-amber); font-size: 14px; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; letter-spacing: .04em; }
.ht-passwd-hdr svg { width: 14px; height: 14px; }
.ht-passwd-input { width: 100%; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; padding: 10px 14px; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 14px; outline: none; transition: border-color .15s; margin-bottom: 12px; display: block; }
.ht-passwd-input:focus { border-color: rgba(255,170,0,.5); box-shadow: 0 0 0 3px rgba(255,170,0,.06); }
.ht-passwd-wrong { display: flex; align-items: center; gap: 6px; color: var(--ht-red); font-size: 12px; padding: 8px 12px; background: rgba(255,0,64,.06); border: 1px solid rgba(255,0,64,.22); border-radius: 4px; margin-bottom: 12px; }
.ht-passwd-wrong svg { width: 12px; height: 12px; }

/* ── PREFIX FILTER ── */
.ht-prefix-filter { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; padding: 8px 12px; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 6px; }
.ht-prefix-lbl { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; flex-shrink: 0; }
.ht-prefix-item { padding: 2px 8px; border-radius: 3px; font-size: 10px; border: 1px solid var(--ht-border); color: var(--ht-tx3); background: var(--ht-card); transition: all .15s; letter-spacing: .08em; }
.ht-prefix-item:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }

/* ── RATING FILTER ── */
.ht-rating-filter { margin-bottom: 12px; }
.ht-fd-rating { display: inline-flex; align-items: center; gap: 2px; color: var(--ht-amber); font-size: 11px; }

/* ── RULES BOX ── */
.ht-rules-box { background: var(--ht-card); border: 1px solid rgba(0,212,255,.18); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.ht-rules-hdr { padding: 10px 16px; background: rgba(0,212,255,.04); border-bottom: 1px solid rgba(0,212,255,.13); color: var(--ht-cyan); font-size: 11px; letter-spacing: .12em; display: flex; align-items: center; gap: 6px; }
.ht-rules-hdr svg { width: 12px; height: 12px; }
.ht-rules-body { padding: 16px; font-size: 12px; color: var(--ht-tx3); line-height: 1.7; }
.ht-rules-link { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-cyan); font-size: 11px; padding: 10px 16px; transition: color .15s; }
.ht-rules-link:hover { color: var(--ht-green); }
.ht-rules-link svg { width: 11px; height: 11px; }

/* ── FORUM INNER SEARCH ── */
.ht-fd-search { margin-bottom: 16px; }
.ht-fd-search-inner { display: flex; align-items: center; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; overflow: hidden; transition: border-color .15s; }
.ht-fd-search-inner:focus-within { border-color: rgba(0,255,65,.4); }
.ht-fd-search-ico { display: flex; align-items: center; padding: 0 12px; color: var(--ht-tx4); flex-shrink: 0; }
.ht-fd-search-ico svg { width: 14px; height: 14px; }
.ht-fd-search-input { flex: 1; background: transparent; border: none; outline: none; padding: 10px 0; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 13px; }
.ht-fd-search-input::placeholder { color: var(--ht-tx4); }
.ht-fd-search-btn { padding: 10px 16px; background: rgba(0,255,65,.1); border: none; border-left: 1px solid var(--ht-border); color: var(--ht-green); font-family: var(--ht-mono); font-size: 12px; cursor: pointer; letter-spacing: .05em; transition: background .15s; white-space: nowrap; }
.ht-fd-search-btn:hover { background: rgba(0,255,65,.18); }

/* ── STICKY / THREAD SEPARATORS ── */
.ht-sticky-sep { display: flex; align-items: center; gap: 12px; padding: 8px 20px; }
.ht-sticky-sep-line { flex: 1; height: 1px; background: var(--ht-border); }
.ht-sticky-sep-lbl { color: var(--ht-tx4); font-size: 9px; letter-spacing: .15em; white-space: nowrap; text-transform: uppercase; }
.ht-threads-sep { height: 1px; background: var(--ht-border2); }

/* ── SUBFORUMS WIDGET LIST ── */
.ht-fd-subforums-list { padding: 6px 0; }
.ht-subcat { padding: 8px 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-subcat:last-child { border-bottom: none; }
.ht-subcat-link { display: inline-flex; align-items: center; gap: 6px; color: var(--ht-tx3); font-size: 12px; transition: color .15s; }
.ht-subcat-link:hover { color: var(--ht-cyan); }
.ht-subcat-link svg { width: 11px; height: 11px; color: var(--ht-tx4); }

/* ── SUBSCRIBE BUTTON ── */
.ht-sub-btn { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 4px; font-size: 11px; font-family: var(--ht-mono); border: 1px solid var(--ht-border); color: var(--ht-tx3); background: transparent; transition: all .15s; cursor: pointer; letter-spacing: .05em; }
.ht-sub-btn svg { width: 11px; height: 11px; }
.ht-sub-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }

/* ── CLEAR PASSWORD LINK ── */
.ht-clearpass { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-tx4); font-size: 11px; transition: color .15s; margin-top: 8px; }
.ht-clearpass:hover { color: var(--ht-amber); }
.ht-clearpass svg { width: 11px; height: 11px; }

/* ── INLINE MODERATION PANEL (forumdisplay_inlinemoderation_*) ── */
.ht-inlinemod { background: rgba(255,170,0,.04); border: 1px solid rgba(255,170,0,.2); border-radius: 6px; padding: 10px 16px; margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.ht-inlinemod-inner { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ht-inlinemod-lbl { color: var(--ht-amber); font-size: 11px; letter-spacing: .08em; display: flex; align-items: center; gap: 6px; white-space: nowrap; flex-shrink: 0; }
.ht-inlinemod-lbl svg { width: 11px; height: 11px; }
.ht-inlinemod-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex: 1; }
.ht-inlinemod-btn { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 3px; font-size: 11px; font-family: var(--ht-mono); background: var(--ht-deep); border: 1px solid var(--ht-border); color: var(--ht-tx3); cursor: pointer; transition: all .15s; }
.ht-inlinemod-btn svg { width: 11px; height: 11px; flex-shrink: 0; }
.ht-inlinemod-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }
.ht-inlinemod-btn.ht-mod-del { }
.ht-inlinemod-btn.ht-mod-del:hover { color: var(--ht-red); border-color: rgba(255,0,64,.4); background: rgba(255,0,64,.06); }
.ht-inlinemod-select { min-width: 220px; height: 34px; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; color: var(--ht-tx2); font-family: var(--ht-mono); font-size: 11px; padding: 0 10px; outline: none; }
.ht-inlinemod-select:focus { border-color: rgba(255,170,0,.45); box-shadow: 0 0 0 3px rgba(255,170,0,.06); }
.ht-inlinemod-col { width: 28px; text-align: center; }
.ht-inlinemod-custom { display: contents; }
.ht-inline-note { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--ht-tx3); }
.ht-inline-note a { color: var(--ht-cyan); transition: color .15s; }
.ht-inline-note a:hover { color: var(--ht-green); }
.hiddenrow { display: none; }

/* ══════════════════════════════════════════════════════════
   POSTBIT SUPPLEMENTAL
   ══════════════════════════════════════════════════════════ */
/* Action link row (quote / edit / report / find / gotopost) */
.ht-pb-action-link { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; padding: 2px 8px; border-radius: 3px; border: 1px solid var(--ht-border); color: var(--ht-tx4); background: var(--ht-deep); transition: all .15s; cursor: pointer; white-space: nowrap; }
.ht-pb-action-link svg { width: 10px; height: 10px; }
.ht-pb-action-link:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }
.ht-pb-report:hover { color: var(--ht-red) !important; border-color: rgba(255,0,64,.4) !important; background: rgba(255,0,64,.06) !important; }
/* Quote button */
.ht-pb-quote { color: var(--ht-cyan); border-color: rgba(0,212,255,.3); background: rgba(0,212,255,.05); }
.ht-pb-quote:hover { color: var(--ht-cyan) !important; border-color: rgba(0,212,255,.6) !important; background: rgba(0,212,255,.12) !important; }
/* Multiquote button */
.ht-pb-mq { }
.ht-pb-mq-on { color: var(--ht-amber) !important; border-color: rgba(255,170,0,.5) !important; background: rgba(255,170,0,.1) !important; }
/* Post action dropdown menu */
.ht-pb-menu { position: relative; display: inline-block; }
.ht-pb-menu-btn { background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 3px; color: var(--ht-tx4); font-size: 12px; padding: 1px 8px; cursor: pointer; letter-spacing: .1em; transition: all .15s; line-height: 1.4; }
.ht-pb-menu-btn:hover { color: var(--ht-tx2); border-color: rgba(255,255,255,.15); }
.ht-pb-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 4px); background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; min-width: 140px; z-index: 50; box-shadow: 0 8px 24px rgba(0,0,0,.5); overflow: hidden; }
.ht-pb-dropdown.open { display: block; }
.ht-pb-dropdown a { display: flex; align-items: center; gap: 6px; padding: 8px 14px; font-size: 11px; color: var(--ht-tx3); transition: all .12s; border-bottom: 1px solid var(--ht-border2); }
.ht-pb-dropdown a:last-child { border-bottom: none; }
.ht-pb-dropdown a:hover { background: var(--ht-hover); color: var(--ht-green); }
.ht-pb-dropdown a svg { width: 10px; height: 10px; }
/* PM link */
.ht-pb-pm a { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--ht-tx4); border: 1px solid var(--ht-border2); border-radius: 3px; padding: 2px 7px; transition: all .15s; background: var(--ht-deep); }
.ht-pb-pm a:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.4); }
/* Reputation */
.ht-pb-rep { display: flex; justify-content: space-between; padding: 3px 0; border-bottom: 1px solid rgba(10,20,10,.8); }
.ht-pb-rep-lbl { color: var(--ht-tx4); font-size: 9px; }
.ht-pb-rep-val { color: var(--ht-amber); font-size: 9px; font-family: var(--ht-display); }
/* Away indicator */
.ht-pb-away { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--ht-amber); margin-top: 4px; }
.ht-pb-away svg { width: 9px; height: 9px; }
/* Attachments */
.ht-pb-attach-wrap { margin-top: 12px; border-top: 1px solid var(--ht-border2); padding-top: 10px; }
.ht-pb-attach-hdr { font-size: 10px; color: var(--ht-tx4); letter-spacing: .1em; margin-bottom: 6px; display: flex; align-items: center; gap: 5px; }
.ht-pb-attach-hdr svg { width: 10px; height: 10px; }
.ht-pb-attach-list { display: flex; flex-direction: column; gap: 4px; }
.ht-pb-attach-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; transition: border-color .15s; }
.ht-pb-attach-item:hover { border-color: rgba(0,212,255,.35); }
.ht-pb-attach-name { color: var(--ht-cyan); font-size: 11px; }
.ht-pb-attach-meta { color: var(--ht-tx4); font-size: 10px; white-space: nowrap; }
.ht-pb-attach-img-wrap { display: inline-block; border: 1px solid var(--ht-border); border-radius: 6px; overflow: hidden; transition: border-color .15s; }
.ht-pb-attach-img-wrap:hover { border-color: rgba(0,212,255,.4); }
.ht-pb-attach-img { max-width: 320px; max-height: 240px; display: block; }
.ht-pb-attach-img-name { display: block; font-size: 10px; color: var(--ht-tx4); padding: 4px 8px; background: var(--ht-deep); text-align: center; }

/* ══════════════════════════════════════════════════════════
   EDITPOST
   ══════════════════════════════════════════════════════════ */
.ht-ep-original { background: var(--ht-card); border: 1px solid rgba(255,170,0,.18); border-radius: 8px; overflow: hidden; margin-top: 28px; }
.ht-ep-orig-hdr { padding: 10px 20px; background: rgba(255,170,0,.05); border-bottom: 1px solid rgba(255,170,0,.15); font-size: 10px; letter-spacing: .15em; color: var(--ht-amber); display: flex; align-items: center; gap: 8px; }
.ht-ep-orig-hdr svg { width: 11px; height: 11px; }
.ht-ep-orig-meta { padding: 8px 20px 0; font-size: 11px; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; }
.ht-ep-orig-meta svg { width: 9px; height: 9px; }
.ht-ep-orig-body { padding: 14px 20px 20px; font-size: 13px; color: var(--ht-tx3); line-height: 1.65; word-break: break-word; opacity: .7; }

/* ══════════════════════════════════════════════════════════
   ERROR & REDIRECT
   ══════════════════════════════════════════════════════════ */
.ht-error-page { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; gap: 16px; text-align: center; padding: 40px 24px; }
.ht-error-icon svg { width: 64px; height: 64px; color: var(--ht-red); opacity: .7; }
.ht-error-code { font-family: var(--ht-display); font-size: 18px; letter-spacing: .2em; color: var(--ht-red); text-shadow: 0 0 12px rgba(255,0,64,.4); }
.ht-error-msg { background: rgba(255,0,64,.06); border: 1px solid rgba(255,0,64,.2); border-radius: 8px; padding: 16px 24px; font-size: 13px; color: var(--ht-tx2); max-width: 600px; line-height: 1.65; }
.ht-error-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.ht-error-inline { display: flex; align-items: flex-start; gap: 10px; background: rgba(255,0,64,.06); border: 1px solid rgba(255,0,64,.22); border-radius: 6px; padding: 12px 16px; margin-bottom: 16px; }
.ht-error-inline-icon svg { width: 14px; height: 14px; color: var(--ht-red); margin-top: 1px; flex-shrink: 0; }
.ht-error-inline-body { flex: 1; }
.ht-error-item { display: flex; align-items: center; gap: 6px; color: var(--ht-red); font-size: 12px; padding: 3px 0; }
.ht-error-item svg { width: 10px; height: 10px; flex-shrink: 0; }
.ht-redirect-page { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; gap: 16px; text-align: center; padding: 40px 24px; }
.ht-redirect-icon svg { width: 56px; height: 56px; color: var(--ht-green); }
.ht-redirect-title { font-family: var(--ht-display); font-size: 18px; letter-spacing: .12em; color: var(--ht-green); }
.ht-redirect-msg { font-size: 13px; color: var(--ht-tx2); max-width: 500px; line-height: 1.65; }
.ht-redirect-progress { width: 320px; max-width: 90%; height: 3px; background: var(--ht-border); border-radius: 2px; overflow: hidden; }
.ht-redirect-bar { height: 100%; width: 0; background: linear-gradient(90deg,var(--ht-green),var(--ht-cyan)); border-radius: 2px; transition: width .1s linear; }
.ht-redirect-hint { font-size: 11px; color: var(--ht-tx4); }

/* ══════════════════════════════════════════════════════════
   MEMBER AUTH (login / register / lostpw)
   ══════════════════════════════════════════════════════════ */
.ht-auth-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 0; max-width: 900px; margin: 60px auto; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 10px; overflow: hidden; }
/* Left decorative panel */
.ht-auth-deco { background: linear-gradient(180deg,rgba(0,255,65,.05),rgba(0,212,255,.03)); border-right: 1px solid var(--ht-border); padding: 40px 32px; display: flex; align-items: center; justify-content: center; }
.ht-auth-deco-inner { width: 100%; }
.ht-auth-deco-title { font-family: var(--ht-display); font-size: 11px; letter-spacing: .2em; color: var(--ht-green); margin-bottom: 20px; opacity: .6; }
.ht-auth-deco-lines { display: flex; flex-direction: column; gap: 8px; font-size: 11px; line-height: 1.5; margin-bottom: 28px; }
.ht-auth-prompt { color: var(--ht-green); }
.ht-auth-cmd { color: var(--ht-tx2); }
.ht-auth-stats { display: flex; gap: 16px; flex-wrap: wrap; }
.ht-auth-stat { font-size: 10px; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; background: rgba(0,0,0,.3); border: 1px solid var(--ht-border); border-radius: 4px; padding: 4px 10px; }
/* Right form panel */
.ht-auth-form-wrap { padding: 48px 40px; display: flex; flex-direction: column; gap: 4px; }
.ht-auth-form-hdr { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 28px; }
.ht-auth-logo svg { width: 32px; height: 32px; }
.ht-auth-logo { color: var(--ht-green); }
.ht-auth-title { font-family: var(--ht-display); font-size: 20px; letter-spacing: .12em; color: var(--ht-green); }
.ht-auth-sub { font-size: 11px; color: var(--ht-tx4); text-align: center; }
.ht-auth-field { margin-bottom: 16px; }
.ht-auth-label { display: block; font-size: 10px; letter-spacing: .14em; color: var(--ht-tx4); margin-bottom: 6px; }
.ht-auth-input-wrap { display: flex; align-items: center; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 4px; overflow: hidden; transition: border-color .15s; }
.ht-auth-input-wrap:focus-within { border-color: rgba(0,255,65,.5); box-shadow: 0 0 0 3px rgba(0,255,65,.06); }
.ht-auth-input-pre { display: flex; align-items: center; padding: 0 12px; color: var(--ht-tx4); flex-shrink: 0; border-right: 1px solid var(--ht-border); height: 42px; }
.ht-auth-input-pre svg { width: 14px; height: 14px; }
.ht-auth-input { flex: 1; background: transparent; border: none; outline: none; padding: 10px 14px; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 13px; }
.ht-auth-input::placeholder { color: var(--ht-tx4); }
.ht-auth-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.ht-auth-forgot { font-size: 11px; color: var(--ht-tx4); transition: color .15s; }
.ht-auth-forgot:hover { color: var(--ht-amber); }
.ht-auth-submit { width: 100%; padding: 12px 24px; background: linear-gradient(135deg,rgba(0,255,65,.22),rgba(0,255,65,.09)); border: 1px solid rgba(0,255,65,.5); border-radius: 4px; color: var(--ht-green); font-family: var(--ht-display); font-size: 13px; letter-spacing: .1em; cursor: pointer; transition: all .2s; display: flex; align-items: center; justify-content: center; gap: 8px; }
.ht-auth-submit:hover { background: linear-gradient(135deg,rgba(0,255,65,.32),rgba(0,255,65,.14)); box-shadow: 0 0 20px rgba(0,255,65,.14); }
.ht-auth-submit svg { width: 14px; height: 14px; }
.ht-auth-footer { margin-top: 20px; text-align: center; font-size: 12px; color: var(--ht-tx4); }
.ht-auth-switch { color: var(--ht-cyan); transition: color .15s; display: inline-flex; align-items: center; gap: 4px; }
.ht-auth-switch:hover { color: var(--ht-green); }
.ht-auth-switch svg { width: 11px; height: 11px; }
.ht-auth-msg { margin-bottom: 18px; }
.ht-auth-msg:empty { display: none; }
.ht-auth-msg .inline_error { margin: 0; padding: 12px 14px; border-radius: 6px; border: 1px solid rgba(255,0,64,.28); background: rgba(255,0,64,.08); color: #ff9fb3; font-size: 12px; line-height: 1.6; }
.ht-auth-msg .inline_error ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ht-auth-msg .inline_error li { margin: 0; }
.ht-auth-note { font-size: 11px; color: var(--ht-tx4); line-height: 1.7; text-align: center; }
.ht-auth-dot { width: 7px; height: 7px; border-radius: 999px; background: var(--ht-green); box-shadow: 0 0 10px rgba(0,255,65,.7); display: inline-block; }
.ht-auth-captcha { margin-top: 18px; padding: 16px; background: rgba(5,15,5,.55); border: 1px solid var(--ht-border); border-radius: 8px; }
.ht-auth-captcha:empty { display: none; }
.ht-auth-captcha .trow1, .ht-auth-captcha .trow2, .ht-auth-captcha table { width: 100%; background: transparent; border: none; }
.ht-auth-captcha fieldset { margin: 0; padding: 16px; border: 1px solid rgba(0,255,65,.12); border-radius: 8px; background: rgba(0,255,65,.03); display: grid; gap: 12px; }
.ht-auth-captcha legend { padding: 0 8px; color: var(--ht-green); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; font-family: var(--ht-display); }
.ht-auth-captcha table { border-collapse: collapse; }
.ht-auth-captcha td { padding: 0; vertical-align: top; }
.ht-auth-captcha td[rowspan] { width: 210px; text-align: center; padding-left: 14px; }
.ht-auth-captcha .smalltext { color: var(--ht-tx3); line-height: 1.7; }
.ht-auth-captcha input.textbox,
.ht-auth-captcha input[type="text"],
.ht-auth-captcha input[type="email"],
.ht-auth-captcha input[type="password"] { width: 100% !important; box-sizing: border-box; min-height: 38px; padding: 10px 12px; border-radius: 6px; border: 1px solid var(--ht-border); background: #040c04; color: var(--ht-tx2); font-family: var(--ht-mono); }
.ht-auth-captcha input.textbox:focus,
.ht-auth-captcha input[type="text"]:focus,
.ht-auth-captcha input[type="email"]:focus,
.ht-auth-captcha input[type="password"]:focus { outline: none; border-color: rgba(0,255,65,.42); box-shadow: 0 0 0 3px rgba(0,255,65,.05); }
.ht-auth-captcha .button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 12px; border-radius: 6px; border: 1px solid rgba(0,255,65,.26); background: rgba(0,255,65,.08); color: var(--ht-green); font-family: var(--ht-display); font-size: 11px; letter-spacing: .06em; cursor: pointer; }
.ht-auth-captcha .button:hover { background: rgba(0,255,65,.12); }
.ht-auth-captcha img { max-width: 100%; height: auto; border-radius: 6px; border: 1px solid rgba(255,255,255,.08); background: #fff; padding: 4px; }
.ht-auth-helper { margin-top: 18px; display: grid; gap: 10px; }
.ht-auth-checks { display: grid; gap: 10px; margin-top: 16px; }
.ht-auth-check { display: flex; align-items: center; gap: 8px; color: var(--ht-tx3); font-size: 11px; }
.ht-auth-check input { accent-color: var(--ht-green); }
.ht-email-shell { max-width: 980px; }
.ht-email-wrap { display: grid; grid-template-columns: minmax(260px, .92fr) minmax(0, 1.08fr); gap: 0; margin: 36px auto 0; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 10px; overflow: hidden; }
.ht-email-side { padding: 36px 28px; background: linear-gradient(180deg,rgba(0,212,255,.05),rgba(0,255,65,.03)); border-right: 1px solid var(--ht-border); display: flex; flex-direction: column; gap: 18px; }
.ht-email-side-title { font-family: var(--ht-display); font-size: 11px; letter-spacing: .18em; color: var(--ht-cyan); opacity: .72; }
.ht-email-side-copy { display: grid; gap: 8px; font-size: 11px; line-height: 1.6; color: var(--ht-tx3); }
.ht-email-recipient { display: grid; gap: 8px; padding: 14px 16px; background: rgba(0,0,0,.22); border: 1px solid var(--ht-border); border-radius: 8px; }
.ht-email-recipient-label { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; }
.ht-email-recipient-name { color: var(--ht-cyan); font-family: var(--ht-display); font-size: 18px; letter-spacing: .08em; }
.ht-email-side-list { display: grid; gap: 10px; }
.ht-email-side-item { display: flex; align-items: flex-start; gap: 8px; font-size: 11px; line-height: 1.55; color: var(--ht-tx4); }
.ht-email-side-item svg { width: 12px; height: 12px; color: var(--ht-amber); flex-shrink: 0; margin-top: 2px; }
.ht-email-body { padding: 42px 38px; display: flex; flex-direction: column; }
.ht-email-grid { display: grid; gap: 16px; }
.ht-email-grid.ht-email-grid-guest { grid-template-columns: repeat(2, minmax(0,1fr)); }
.ht-email-textarea { min-height: 188px; resize: vertical; }
.ht-email-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
.ht-email-note { margin-top: 18px; color: var(--ht-tx4); font-size: 11px; line-height: 1.7; }
.ht-email-inline-link { display: inline-flex; align-items: center; gap: 6px; color: var(--ht-cyan); font-size: 11px; transition: color .15s; }
.ht-email-inline-link:hover { color: var(--ht-green); }
.ht-email-inline-link svg { width: 11px; height: 11px; }
/* Register wrapper */
.ht-reg-wrap { max-width: 680px; margin: 40px auto; }
.ht-reg-hdr { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 28px; text-align: center; }
.ht-reg-ico svg { width: 36px; height: 36px; color: var(--ht-green); }
.ht-reg-ico { color: var(--ht-green); }
.ht-reg-form { background: var(--ht-card); border: 1px solid rgba(0,212,255,.18); border-radius: 10px; padding: 28px; }
.ht-reg-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ht-reg-grid .ht-reg-span-2 { grid-column: 1 / -1; }
.ht-reg-section { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ht-border2); }
.ht-reg-section:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
.ht-reg-section-hdr { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--ht-cyan); font-size: 11px; letter-spacing: .08em; font-family: var(--ht-display); }
.ht-reg-section-hdr svg { width: 12px; height: 12px; }
.ht-reg-aux { display: grid; gap: 12px; }
.ht-reg-aux .trow1, .ht-reg-aux .trow2, .ht-reg-aux table { width: 100%; background: transparent; border: none; }
.ht-reg-aux .smalltext { color: var(--ht-tx4); line-height: 1.7; }
.ht-reg-aux fieldset { margin: 0; padding: 16px; border: 1px solid rgba(0,212,255,.14); border-radius: 8px; background: rgba(0,212,255,.03); display: grid; gap: 12px; }
.ht-reg-aux legend { padding: 0 8px; color: var(--ht-cyan); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; font-family: var(--ht-display); }
.ht-reg-aux input.textbox,
.ht-reg-aux input[type="text"],
.ht-reg-aux input[type="email"],
.ht-reg-aux input[type="password"],
.ht-reg-aux select,
.ht-reg-aux textarea { width: 100% !important; max-width: 100%; box-sizing: border-box; min-height: 38px; padding: 10px 12px; border-radius: 6px; border: 1px solid var(--ht-border); background: #040c04; color: var(--ht-tx2); font-family: var(--ht-mono); }
.ht-reg-aux input:focus,
.ht-reg-aux select:focus,
.ht-reg-aux textarea:focus { outline: none; border-color: rgba(0,212,255,.36); box-shadow: 0 0 0 3px rgba(0,212,255,.05); }
.ht-reg-aux .button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 12px; border-radius: 6px; border: 1px solid rgba(0,212,255,.24); background: rgba(0,212,255,.08); color: var(--ht-cyan); font-family: var(--ht-display); font-size: 11px; letter-spacing: .06em; cursor: pointer; }
.ht-reg-aux .button:hover { background: rgba(0,212,255,.12); }
.ht-reg-aux .select2-container { width: 100% !important; }
.ht-reg-tos-copy { display: grid; gap: 12px; color: var(--ht-tx3); font-size: 12px; line-height: 1.75; }
.ht-reg-tos-copy p { margin: 0; }
.ht-reg-tos-copy a { color: var(--ht-cyan); }
.ht-reg-submit { margin-top: 20px; display: flex; gap: 12px; flex-wrap: wrap; }
.ht-reg-submit .ht-auth-submit { width: auto; min-width: 180px; }
.ht-reg-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 18px; border-radius: 6px; border: 1px solid rgba(0,212,255,.28); color: var(--ht-cyan); background: rgba(0,212,255,.06); font-size: 12px; transition: all .15s; }
.ht-reg-secondary:hover { color: var(--ht-green); border-color: rgba(0,255,65,.35); background: rgba(0,255,65,.06); }
.ht-reg-secondary svg { width: 12px; height: 12px; flex-shrink: 0; }
.ht-reg-tos { background: var(--ht-card); border: 1px solid rgba(0,212,255,.2); border-radius: 8px; overflow: hidden; }
.ht-reg-tos-hdr { padding: 12px 20px; background: rgba(0,212,255,.05); border-bottom: 1px solid rgba(0,212,255,.15); font-size: 11px; letter-spacing: .12em; color: var(--ht-cyan); display: flex; align-items: center; gap: 8px; }
.ht-reg-tos-hdr svg { width: 12px; height: 12px; }
.ht-reg-tos-body { padding: 20px; font-size: 12px; color: var(--ht-tx3); line-height: 1.7; max-height: 300px; overflow-y: auto; }
.ht-reg-tos-actions { padding: 16px 20px; border-top: 1px solid rgba(0,212,255,.12); display: flex; gap: 12px; flex-wrap: wrap; }
/* Password strength indicator */
.ht-pw-strength { height: 3px; background: var(--ht-border); border-radius: 2px; margin-top: 4px; overflow: hidden; }

/* ══════════════════════════════════════════════════════════
   MEMBER PROFILE
   ══════════════════════════════════════════════════════════ */
.ht-prof-banner { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 10px; overflow: hidden; margin-bottom: 20px; }
.ht-prof-banner-grid { display: flex; align-items: flex-start; gap: 24px; padding: 28px 24px 20px; flex-wrap: wrap; }
.ht-prof-left { display: flex; align-items: flex-start; gap: 20px; flex: 1; min-width: 200px; }
.ht-prof-av-wrap { position: relative; flex-shrink: 0; }
.ht-prof-av { width: 80px; height: 80px; border-radius: 10px; background: linear-gradient(135deg,rgba(0,255,65,.3),rgba(0,212,255,.15)); border: 2px solid rgba(0,255,65,.4); display: flex; align-items: center; justify-content: center; overflow: hidden; font-family: var(--ht-display); font-size: 24px; font-weight: 700; color: var(--ht-green); }
.ht-prof-av img { width: 100%; height: auto; object-fit: cover; }
.ht-prof-online-dot { position: absolute; bottom: 2px; right: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--ht-card); display: flex; align-items: center; justify-content: center; }
.ht-prof-info { flex: 1; min-width: 0; }
.ht-prof-name { font-family: var(--ht-display); font-size: 20px; color: var(--ht-tx1); margin-bottom: 4px; letter-spacing: .05em; }
.ht-prof-title { font-size: 12px; color: var(--ht-green); margin-bottom: 4px; }
.ht-prof-group { font-size: 11px; color: var(--ht-tx4); }
.ht-prof-stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; min-width: 280px; }
.ht-prof-stat { text-align: center; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 6px; padding: 12px 8px; }
.ht-prof-stat-val { font-family: var(--ht-display); font-size: 18px; font-weight: 700; }
.ht-prof-stat-lbl { font-size: 9px; color: var(--ht-tx4); letter-spacing: .1em; margin-top: 4px; }
.ht-prof-actions { display: flex; align-items: center; gap: 10px; padding: 12px 24px; border-top: 1px solid var(--ht-border2); background: rgba(0,0,0,.12); flex-wrap: wrap; }
.ht-prof-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ht-prof-sig { padding: 14px 16px; font-size: 12px; color: var(--ht-tx3); line-height: 1.65; min-height: 60px; }
.ht-prof-threads { }
.ht-prof-thread-row { display: flex; flex-direction: column; gap: 3px; padding: 10px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .12s; }
.ht-prof-thread-row:last-child { border-bottom: none; }
.ht-prof-thread-row:hover { background: var(--ht-hover); }
.ht-prof-thread-title { font-size: 12px; color: var(--ht-tx2); line-height: 1.4; }
.ht-prof-thread-meta { font-size: 10px; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ht-prof-thread-meta svg { width: 9px; height: 9px; }
.ht-prof-contact-link { color: var(--ht-cyan); font-size: 12px; display: inline-flex; align-items: center; gap: 4px; transition: color .15s; }
.ht-prof-contact-link:hover { color: var(--ht-green); }
.ht-prof-contact-link svg { width: 11px; height: 11px; }
.ht-prof-mod-opts { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ══════════════════════════════════════════════════════════
   SEARCH
   ══════════════════════════════════════════════════════════ */
.ht-srch-wrap { max-width: 840px; margin: 0 auto; padding: 40px 0; }
.ht-srch-hdr { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; margin-bottom: 32px; }
.ht-srch-ico svg { width: 40px; height: 40px; color: var(--ht-green); }
.ht-srch-ico { color: var(--ht-green); }
.ht-srch-title { font-family: var(--ht-display); font-size: 20px; letter-spacing: .12em; color: var(--ht-green); }
.ht-srch-sub { font-size: 12px; color: var(--ht-tx4); }
.ht-srch-quick { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ht-srch-quick-inner { display: flex; align-items: center; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 6px; overflow: hidden; transition: border-color .15s; }
.ht-srch-quick-inner:focus-within { border-color: rgba(0,255,65,.5); }
.ht-srch-quick-ico { display: flex; align-items: center; padding: 0 14px; color: var(--ht-tx4); flex-shrink: 0; }
.ht-srch-quick-ico svg { width: 16px; height: 16px; }
.ht-srch-input { flex: 1; background: transparent; border: none; outline: none; padding: 12px 0; color: var(--ht-tx1); font-family: var(--ht-mono); font-size: 14px; }
.ht-srch-input::placeholder { color: var(--ht-tx4); }
.ht-srch-btn { padding: 12px 20px; background: rgba(0,255,65,.12); border: none; border-left: 1px solid var(--ht-border); color: var(--ht-green); font-family: var(--ht-mono); font-size: 12px; cursor: pointer; letter-spacing: .05em; transition: background .15s; white-space: nowrap; }
.ht-srch-btn:hover { background: rgba(0,255,65,.2); }
/* Advanced search */
.ht-srch-adv { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-srch-adv-toggle { display: flex; align-items: center; gap: 8px; padding: 12px 16px; cursor: pointer; font-size: 11px; color: var(--ht-tx3); letter-spacing: .08em; list-style: none; transition: background .15s; }
.ht-srch-adv-toggle:hover { background: var(--ht-hover); color: var(--ht-green); }
.ht-srch-adv-toggle svg { width: 11px; height: 11px; }
.ht-srch-adv-body { padding: 16px 20px; border-top: 1px solid var(--ht-border2); display: flex; flex-direction: column; gap: 16px; }
.ht-srch-adv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ht-srch-radio-group { display: flex; gap: 16px; flex-wrap: wrap; }
.ht-srch-forums { display: flex; flex-wrap: wrap; gap: 8px; }
.ht-srch-forum-item { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ht-tx3); cursor: pointer; background: var(--ht-deep); border: 1px solid var(--ht-border); border-radius: 3px; padding: 3px 8px; transition: all .12s; }
.ht-srch-forum-item:hover { color: var(--ht-green); border-color: rgba(0,255,65,.35); }
/* Results header */
.ht-srch-res-hdr { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
/* Board badge in search results */
.ht-srch-board-badge { display: inline-flex; align-items: center; background: rgba(0,255,65,.08); border: 1px solid rgba(0,255,65,.22); color: var(--ht-green); font-size: 9px; padding: 1px 6px; border-radius: 3px; letter-spacing: .08em; white-space: nowrap; }
/* Post result row */
.ht-srch-post-row { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 6px; padding: 14px 18px; margin-bottom: 8px; }
.ht-srch-post-hdr { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.ht-srch-post-title { font-size: 13px; color: var(--ht-cyan); transition: color .15s; }
.ht-srch-post-title:hover { color: var(--ht-green); }
.ht-srch-post-meta { display: flex; gap: 12px; font-size: 11px; color: var(--ht-tx4); margin-bottom: 8px; }
.ht-srch-post-excerpt { font-size: 12px; color: var(--ht-tx3); line-height: 1.6; max-height: 64px; overflow: hidden; margin-bottom: 8px; }
.ht-srch-post-more { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--ht-cyan); transition: color .15s; }
.ht-srch-post-more:hover { color: var(--ht-green); }
.ht-srch-post-more svg { width: 10px; height: 10px; }
/* User result row */
.ht-srch-user-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .12s; }
.ht-srch-user-row:last-child { border-bottom: none; }
.ht-srch-user-row:hover { background: var(--ht-hover); }
.ht-srch-user-av { width: 36px; height: 36px; border-radius: 50%; background: rgba(0,255,65,.15); border: 1px solid rgba(0,255,65,.3); display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
.ht-srch-user-av img { width: 100%; height: 100%; object-fit: cover; }
.ht-srch-user-info { flex: 1; min-width: 0; }
.ht-srch-user-name { font-size: 13px; color: var(--ht-tx1); }
.ht-srch-user-meta { font-size: 11px; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; }
.ht-srch-user-meta svg { width: 10px; height: 10px; }
.ht-srch-results { max-width: 1120px; }
.ht-srch-res-copy { display: grid; gap: 4px; }
.ht-srch-res-copy strong { font-family: var(--ht-display); font-size: 16px; color: var(--ht-tx1); letter-spacing: .06em; }
.ht-srch-res-copy span { color: var(--ht-tx4); font-size: 11px; }
.ht-srch-list { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-srch-list-head { display: grid; grid-template-columns: minmax(0,1.65fr) 140px 88px 88px 180px 34px; gap: 16px; align-items: center; padding: 11px 18px; background: var(--ht-deep); border-bottom: 1px solid var(--ht-border); font-size: 10px; letter-spacing: .14em; color: var(--ht-tx4); text-transform: uppercase; }
.ht-srch-list-head a { color: inherit; }
.ht-srch-list-head a:hover { color: var(--ht-green); }
.ht-srch-row { display: grid; grid-template-columns: minmax(0,1.65fr) 140px 88px 88px 180px 34px; gap: 16px; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--ht-border2); }
.ht-srch-row:last-child { border-bottom: none; }
.ht-srch-row:hover { background: var(--ht-hover); }
.ht-srch-main { min-width: 0; display: grid; gap: 8px; }
.ht-srch-titleline { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; }
.ht-srch-titleline .ht-gotounread { margin-right: -2px; }
.ht-srch-forumlink { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(0,255,65,.18); background: rgba(0,255,65,.06); color: var(--ht-green); font-size: 10px; letter-spacing: .08em; }
.ht-srch-thread-title { min-width: 0; font-size: 13px; color: var(--ht-cyan); line-height: 1.65; word-break: break-word; }
.ht-srch-thread-title:hover { color: var(--ht-green); }
.ht-srch-thread-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; font-size: 11px; color: var(--ht-tx4); }
.ht-srch-thread-meta span { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.ht-srch-thread-meta .author a,
.ht-srch-last a { color: var(--ht-cyan); }
.ht-srch-thread-meta .author a:hover,
.ht-srch-last a:hover { color: var(--ht-green); }
.ht-srch-forum-col { min-width: 0; }
.ht-srch-num { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; font-family: var(--ht-display); font-size: 16px; color: var(--ht-green); white-space: nowrap; }
.ht-srch-num svg { width: 12px; height: 12px; color: var(--ht-green); opacity: .78; }
.ht-srch-last { display: grid; justify-items: end; gap: 4px; text-align: right; font-size: 11px; color: var(--ht-tx4); }
.ht-srch-last-top { color: var(--ht-cyan); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht-srch-last-btm { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-tx4); }
.ht-srch-last-btm svg { width: 10px; height: 10px; }
.ht-srch-inlinecheck,
.ht-srch-head-check { display: flex; align-items: center; justify-content: center; }
.ht-srch-inlinecheck input,
.ht-srch-head-check input { width: 14px; height: 14px; accent-color: var(--ht-green); cursor: pointer; }
.ht-srch-snippet { font-size: 12px; color: var(--ht-tx3); line-height: 1.7; max-height: 64px; overflow: hidden; word-break: break-word; }
.ht-srch-inlinebar { margin-top: 14px; }

/* ══════════════════════════════════════════════════════════
   MULTIPAGE / PAGINATION
   ══════════════════════════════════════════════════════════ */
.ht-pagi { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.ht-pagi-info { color: var(--ht-tx4); font-size: 11px; }
.ht-pagi-pages { display: flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.ht-pagi-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 4px; font-size: 11px; font-family: var(--ht-mono); color: var(--ht-tx3); background: var(--ht-card); border: 1px solid var(--ht-border); transition: all .15s; }
.ht-pagi-btn:hover { color: var(--ht-green); border-color: rgba(0,255,65,.4); background: rgba(0,255,65,.06); }
.ht-pagi-btn svg { width: 11px; height: 11px; }
.ht-pagi-current { color: var(--ht-green); border-color: rgba(0,255,65,.5); background: rgba(0,255,65,.1); font-weight: 600; cursor: default; }
.ht-pagi-current:hover { color: var(--ht-green); border-color: rgba(0,255,65,.5); background: rgba(0,255,65,.1); }
.ht-pagi-nav { color: var(--ht-tx4); }
.ht-pagi-ellipsis { color: var(--ht-tx4); font-size: 11px; padding: 0 4px; }

/* ══════════════════════════════════════════════════════════
   USERCP
   ════════════════════════════════════════════════��═════════ */
.ht-ucp-grid { display: grid; grid-template-columns: 220px 1fr; gap: 24px; align-items: start; }
.ht-ucp-nav { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; position: sticky; top: 72px; }
.ht-ucp-nav-hdr { padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); font-size: 10px; letter-spacing: .16em; color: var(--ht-green); display: flex; align-items: center; gap: 7px; background: rgba(0,255,65,.04); }
.ht-ucp-nav-hdr svg { width: 11px; height: 11px; }
.ht-ucp-nav-link { display: flex; align-items: center; gap: 8px; padding: 9px 16px; font-size: 11px; color: var(--ht-tx3); border-bottom: 1px solid var(--ht-border2); transition: all .12s; }
.ht-ucp-nav-link:last-child { border-bottom: none; }
.ht-ucp-nav-link:hover { background: var(--ht-hover); color: var(--ht-green); }
.ht-ucp-nav-link.active { background: linear-gradient(90deg, rgba(0,255,65,.14), rgba(0,255,65,.03)); color: var(--ht-green); box-shadow: inset 2px 0 0 rgba(0,255,65,.65); }
.ht-ucp-nav-link svg { width: 11px; height: 11px; flex-shrink: 0; }
.ht-ucp-nav-link span { min-width: 0; }
.ht-ucp-nav-sep { padding: 6px 16px 4px; font-size: 9px; letter-spacing: .14em; color: var(--ht-tx4); border-bottom: 1px solid var(--ht-border2); }
.ht-ucp-logout { color: var(--ht-red) !important; opacity: .7; }
.ht-ucp-logout:hover { opacity: 1; color: var(--ht-red) !important; background: rgba(255,0,64,.05) !important; }
.ht-ucp-main { min-width: 0; }
.ht-ucp-welcome { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; padding: 20px 24px; margin-bottom: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ht-ucp-welcome-av { width: 52px; height: 52px; border-radius: 50%; background: rgba(0,255,65,.15); border: 2px solid rgba(0,255,65,.35); display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
.ht-ucp-welcome-av img { width: 100%; height: 100%; object-fit: cover; }
.ht-ucp-welcome-name { font-family: var(--ht-display); font-size: 15px; color: var(--ht-tx1); margin-bottom: 2px; }
.ht-ucp-welcome-rank { font-size: 11px; color: var(--ht-green); }
.ht-ucp-welcome-stats { display: flex; gap: 16px; margin-left: auto; }
.ht-ucp-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.ht-ucp-stat span:first-child { font-family: var(--ht-display); font-size: 15px; font-weight: 700; }
.ht-ucp-stat span:last-child { font-size: 9px; color: var(--ht-tx4); letter-spacing: .1em; }
.ht-ucp-widgets { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.ht-ucp-shell .inline_error { margin-bottom: 16px; padding: 12px 14px; border-radius: 6px; border: 1px solid rgba(255,0,64,.28); background: rgba(255,0,64,.08); color: #ff9fb3; font-size: 12px; line-height: 1.6; }
.ht-ucp-shell .inline_error ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ht-ucp-shell form { display: block; }
.ht-ucp-shell .selectall { padding: 12px 16px; background: rgba(255,170,0,.04); border-bottom: 1px solid rgba(255,170,0,.12); color: var(--ht-amber); font-size: 11px; }
.ht-ucp-shell .selectall a { color: var(--ht-cyan); }
.ht-ucp-shell .tborder { width: 100%; border-spacing: 0; border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; background: var(--ht-card); }
.ht-ucp-shell .thead { background: rgba(0,255,65,.04); border-bottom: 1px solid var(--ht-border2); color: var(--ht-green); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.ht-ucp-shell .thead strong { display: block; padding: 12px 16px; color: inherit; font-weight: 600; }
.ht-ucp-shell .tcat { background: rgba(0,212,255,.04); border-top: 1px solid var(--ht-border2); border-bottom: 1px solid var(--ht-border2); color: var(--ht-cyan); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.ht-ucp-shell .tcat strong { display: block; padding: 10px 16px; color: inherit; font-weight: 600; }
.ht-ucp-shell .trow1, .ht-ucp-shell .trow2 { padding: 14px 16px; border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx3); background: transparent; vertical-align: top; }
.ht-ucp-shell .smalltext { color: var(--ht-tx4); line-height: 1.65; }
.ht-ucp-shell fieldset { margin: 0; padding: 16px; border: 1px solid var(--ht-border); border-radius: 8px; background: rgba(5,15,5,.5); }
.ht-ucp-shell legend { padding: 0 6px; color: var(--ht-cyan); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.ht-ucp-shell input.textbox, .ht-ucp-shell input.password, .ht-ucp-shell input[type="text"], .ht-ucp-shell input[type="password"], .ht-ucp-shell input[type="email"], .ht-ucp-shell input[type="url"], .ht-ucp-shell input[type="number"], .ht-ucp-shell textarea, .ht-ucp-shell select { width: 100%; max-width: 100%; box-sizing: border-box; background: #040c04; border: 1px solid var(--ht-border); border-radius: 6px; padding: 10px 12px; color: var(--ht-tx2); font-family: var(--ht-mono); font-size: 13px; outline: none; }
.ht-ucp-shell textarea { min-height: 160px; resize: vertical; }
.ht-ucp-shell input:focus, .ht-ucp-shell textarea:focus, .ht-ucp-shell select:focus { border-color: rgba(0,255,65,.45); box-shadow: 0 0 0 3px rgba(0,255,65,.06); }
.ht-ucp-shell .button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 16px; border: 1px solid rgba(0,255,65,.42); border-radius: 6px; background: linear-gradient(135deg,rgba(0,255,65,.2),rgba(0,255,65,.08)); color: var(--ht-green); font-family: var(--ht-display); font-size: 12px; letter-spacing: .08em; cursor: pointer; transition: all .15s; }
.ht-ucp-shell .button:hover { background: linear-gradient(135deg,rgba(0,255,65,.3),rgba(0,255,65,.14)); box-shadow: 0 0 18px rgba(0,255,65,.12); }
.ht-ucp-shell .editor_control_bar, .ht-ucp-shell .editor_toolbar { border-color: var(--ht-border) !important; background: var(--ht-deep) !important; }
.ht-ucp-shell .scaleimages img { max-width: 100%; height: auto; }
.ht-ucp-overview-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; }
.ht-ucp-overview-col { display: grid; gap: 20px; min-width: 0; }
.ht-ucp-overview-col > * { min-width: 0; }
.ht-ucp-widget-link { font-size: 10px; color: var(--ht-tx4); margin-left: auto; transition: color .15s; }
.ht-ucp-widget-link:hover { color: var(--ht-green); }
.ht-ucp-card { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-ucp-card-hdr { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); background: rgba(0,255,65,.04); color: var(--ht-green); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-family: var(--ht-display); }
.ht-ucp-card-hdr svg { width: 11px; height: 11px; flex-shrink: 0; }
.ht-ucp-card-hdr a { margin-left: auto; color: var(--ht-cyan); font-size: 10px; letter-spacing: .08em; }
.ht-ucp-card-body { padding: 16px; }
.ht-ucp-thread-list { display: grid; }
.ht-ucp-thread-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-ucp-thread-row:last-child { border-bottom: none; }
.ht-ucp-thread-main { min-width: 0; display: grid; gap: 8px; }
.ht-ucp-thread-title { font-size: 13px; color: var(--ht-tx2); line-height: 1.7; word-break: break-word; }
.ht-ucp-thread-title a { color: inherit; }
.ht-ucp-thread-title a:hover { color: var(--ht-green); }
.ht-ucp-thread-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 11px; color: var(--ht-tx4); }
.ht-ucp-thread-meta span { display: inline-flex; align-items: center; gap: 5px; }
.ht-ucp-thread-meta svg { width: 10px; height: 10px; }
.ht-ucp-thread-side { display: grid; gap: 8px; min-width: 160px; justify-items: end; text-align: right; }
.ht-ucp-thread-stats { display: flex; align-items: center; gap: 12px; font-size: 11px; color: var(--ht-tx3); }
.ht-ucp-thread-stats span { display: inline-flex; align-items: center; gap: 5px; }
.ht-ucp-thread-stats svg { width: 11px; height: 11px; color: var(--ht-green); }
.ht-ucp-thread-last { display: grid; gap: 2px; font-size: 11px; color: var(--ht-tx4); }
.ht-ucp-thread-last a { color: var(--ht-cyan); }
.ht-ucp-ref-card .ht-ucp-card-body { display: grid; gap: 10px; }
.ht-ucp-ref-count { font-family: var(--ht-display); font-size: 28px; color: var(--ht-green); line-height: 1; }
.ht-ucp-ref-label { color: var(--ht-tx4); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.ht-ucp-ref-link { display: block; padding: 12px 14px; border-radius: 6px; background: #040c04; border: 1px solid var(--ht-border); color: var(--ht-cyan); font-family: var(--ht-mono); font-size: 12px; line-height: 1.7; word-break: break-all; }
.ht-ucp-note-form { display: grid; gap: 14px; }
.ht-ucp-note-text { width: 100%; min-height: 220px; padding: 14px 16px; border-radius: 6px; border: 1px solid var(--ht-border); background: #040c04; color: var(--ht-tx2); font-family: var(--ht-mono); font-size: 13px; line-height: 1.8; resize: vertical; box-sizing: border-box; }
.ht-ucp-note-text:focus { outline: none; border-color: rgba(0,255,65,.42); box-shadow: 0 0 0 3px rgba(0,255,65,.05); }

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .ht-nav-links,.ht-nav-right{display:none}
  .ht-mob-toggle{display:block}
  .ht-hero-inner{grid-template-columns:1fr}
  .ht-stats-inner,.ht-zones{grid-template-columns:repeat(2,1fr)}
  .ht-two-col,.ht-fi-grid{grid-template-columns:minmax(0,1fr)}
  .ht-fi-bar,.ht-fi-tabs{flex-wrap:wrap}
  .ht-fi-search{min-width:0}
  .ht-bc{padding-bottom:16px}
  .ht-bc-cur-truncate{max-width:min(62vw,420px)}
  .ht-brd-top{padding:14px 16px}
  .ht-brd-statsbar{gap:18px;padding:11px 16px}
  .ht-brd-focus{padding:10px 16px 12px}
  .ht-brd-longdesc{padding:0 16px 12px}
  .ht-brd-moderators{margin-left:0;width:100%}
  .ht-thread-tbl-hdr{display:none}
  .ht-thread-row{flex-wrap:wrap;gap:10px}
  .ht-thread-title-col{flex-basis:100%;padding-right:0}
  .ht-thread-stat,.ht-thread-stat.ht-thread-views{width:auto;min-width:88px;text-align:left}
  .ht-thread-last{width:auto;min-width:150px;align-items:flex-start}
  .ht-fd-row{flex-wrap:wrap;gap:10px}
  .ht-fd-main{flex-basis:100%;padding-right:0}
  .ht-fd-replies,.ht-fd-views{align-items:flex-start}
  .ht-fd-num,.ht-fd-num.views{width:auto;min-width:88px;text-align:left;justify-content:flex-start}
  .ht-fd-last{width:auto;min-width:150px;align-items:flex-start;text-align:left}
  .ht-announce-thread .ht-fd-title{font-size:13px;margin-bottom:5px}
  .ht-announce-thread .ht-fd-meta{gap:4px 8px}
  .ht-announce-thread .ht-fd-num,
  .ht-announce-thread .ht-fd-num.views{font-size:15px}
  .ht-fd-grid { flex-direction: column; }
  .ht-fd-thread-col,
  .ht-sort-bar,
  .ht-thread-tbl,
  .ht-fd-pagi{width:100%}
  .ht-fd-sidebar, .ht-fd-sidebar-strip { display: none; }
  .ht-subject-row{flex-direction:column}
  .ht-prefix-wrap{width:100%;flex-basis:auto}
  .ht-prefix-wrap select{width:100%;min-width:0}
  .ht-form-sec-hdr,.ht-form-sec-body,.ht-form-options{padding-left:16px;padding-right:16px}
  .ht-form-actions{justify-content:flex-start}
  .ht-nr-actions{width:100%;justify-content:flex-start}
  .ht-nr-actions .ht-btn-draft,.ht-nr-actions .ht-btn-preview,.ht-nr-actions .ht-btn-post{flex:1 1 180px;justify-content:center;text-align:center}
  .ht-st-grid { flex-direction: column; }
  .ht-st-sidebar, .ht-st-sidebar-strip { display: none; }
  .ht-th-hdr{padding:16px 18px}
  .ht-th-actions-row { margin-left: 0; width: 100%; }
  .ht-st-bottom-nav{flex-wrap:wrap;gap:10px}
  .ht-post-hdr{flex-wrap:wrap;gap:8px}
  .ht-post-actions-r{margin-left:0;width:100%;justify-content:flex-end}
  .ht-thread-review-hdr,.ht-review-post-hdr{flex-wrap:wrap}
  .ht-post-author{width:110px}
  .ht-post-inner{flex-direction:column}
  .ht-post-author{width:100%;border-right:none;border-bottom:1px solid var(--ht-border2);padding:12px 16px;text-align:left}
  .ht-post-main{justify-items:start}
  .ht-post-nameplate{align-items:flex-start;text-align:left}
  .ht-post-username{justify-content:flex-start;text-align:left}
  .ht-post-username a{justify-content:flex-start;text-align:left}
  .ht-user-switch{flex-direction:column;align-items:flex-start}
  .ht-user-switch-btn,.ht-user-switch-link{width:100%;justify-content:center}
  .modal{max-width:calc(100vw - 24px)}
  .modal_buttons.ht-confirm-actions{justify-content:stretch}
  .modal_buttons.ht-confirm-actions .button{width:100%}
  .ht-footer-grid{grid-template-columns:repeat(2,1fr)}
  .ht-footer-right{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .ht-footer-lang{max-width:100%}
  .ht-footer-lang-form{right:auto;left:0;bottom:calc(100% + 8px)}
  .ht-email-wrap{grid-template-columns:1fr}
  .ht-email-side{border-right:none;border-bottom:1px solid var(--ht-border)}
  .ht-email-grid.ht-email-grid-guest{grid-template-columns:1fr}
  .ht-auth-wrap{grid-template-columns:1fr}
  .ht-auth-deco{display:none}
  .ht-reg-form{padding:22px}
  .ht-reg-grid{grid-template-columns:1fr}
  .ht-prof-grid{grid-template-columns:1fr}
  .ht-prof-stats-grid{grid-template-columns:repeat(2,1fr)}
  .ht-ucp-grid{grid-template-columns:1fr}
  .ht-ucp-nav{position:static}
  .ht-ucp-widgets{grid-template-columns:1fr}
  .ht-ucp-overview-grid{grid-template-columns:1fr}
  .ht-ucp-thread-row{grid-template-columns:1fr}
  .ht-ucp-thread-side{min-width:0;justify-items:start;text-align:left}
  .ht-srch-adv-row{grid-template-columns:1fr}
  .ht-srch-list-head{display:none}
  .ht-srch-list{display:grid}
  .ht-srch-row{grid-template-columns:minmax(0,1fr) 120px 76px 76px 150px 28px; gap:12px; padding:14px 16px}
  .ht-srch-thread-meta{gap:10px}
  .ht-srch-last{justify-items:start;text-align:left}
  .ht-srch-num{justify-content:flex-start}
}
@media(max-width:640px){
  .ht-fi-bar{
    gap:10px;
    align-items:stretch;
  }
  .ht-fi-search{
    width:100%;
    min-width:0;
    flex:1 1 100%;
  }
  .ht-fi-tabs{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
  }
  .ht-fi-tab{
    min-width:0;
    text-align:center;
    padding:8px 0;
  }
  .ht-fr{
    grid-template-columns:42px minmax(0,1fr) 12px;
    gap:12px;
    padding:16px 14px;
  }
  .ht-fr-ico{
    width:42px;
    height:42px;
  }
  .ht-fr-ico svg{
    width:18px;
    height:18px;
  }
  .ht-fr-main{
    padding-top:1px;
  }
  .ht-fr-name{
    font-size:14px;
    gap:8px;
    margin-bottom:4px;
  }
  .ht-fr-today{
    font-size:10px;
    padding:2px 6px;
  }
  .ht-fr-desc{
    font-size:11px;
    line-height:1.5;
    margin-bottom:8px;
  }
  .ht-fr-pin{
    gap:7px;
    margin-bottom:4px;
  }
  .ht-fr-pin-txt{
    font-size:11px;
  }
  .ht-fr-side{
    display:none;
  }
  .ht-fr-arrow{
    width:12px;
    align-self:center;
  }
}
@media(min-width:641px) and (max-width:1024px){
  .ht-fi-search{
    min-width:0;
    flex:1 1 100%;
  }
  .ht-fi-tabs{
    flex-wrap:wrap;
  }
  .ht-fr{
    grid-template-columns:42px minmax(0,1fr) minmax(156px,186px) 12px;
    gap:14px;
    padding:16px 18px;
  }
  .ht-fr-ico{
    width:42px;
    height:42px;
  }
  .ht-fr-ico svg{
    width:18px;
    height:18px;
  }
  .ht-fr-name{
    font-size:14px;
    gap:8px;
  }
  .ht-fr-desc{
    font-size:12px;
    margin-bottom:8px;
  }
  .ht-fr-pin-txt{
    font-size:11px;
  }
  .ht-fr-side{
    min-width:148px;
    max-width:172px;
    gap:7px;
  }
  .ht-fr-stats{
    gap:10px;
  }
  .ht-fr-stat{
    gap:4px;
  }
  .ht-fr-stats-num{
    font-size:15px;
  }
  .ht-fr-stats-lbl{
    font-size:10px;
  }
  .ht-fr-last{
    font-size:10px;
    gap:4px;
  }
  .ht-fr-last-user{
    max-width:70px;
  }
}
@media(min-width:641px) and (max-width:1024px){
  .ht-fd-row{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:0;
    padding:12px 16px;
  }
  .ht-fd-row-wrap input.ht-fd-check ~ .ht-fd-row{padding-left:42px}
  .ht-fd-check{
    top:50%;
    transform:translateY(-50%);
  }
  .ht-fd-main{
    flex:1 1 auto;
    flex-basis:auto;
    width:auto;
    min-width:0;
    padding-right:10px;
  }
  .ht-fd-tags{margin-bottom:5px}
  .ht-fd-title{
    white-space:normal;
    overflow:hidden;
    text-overflow:ellipsis;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-height:1.45;
    min-height:auto;
    font-size:12px;
  }
  .ht-fd-meta{gap:4px 8px}
  .ht-fd-replies,
  .ht-fd-views{
    min-width:0;
    align-items:center;
    justify-content:center;
  }
  .ht-fd-replies{width:64px}
  .ht-fd-views{width:64px}
  .ht-fd-num,
  .ht-fd-num.views{
    min-width:0;
    text-align:center;
    font-size:14px;
    justify-content:center;
    gap:5px;
  }
  .ht-fd-num{width:64px}
  .ht-fd-num.views{width:64px}
  .ht-fd-num svg{width:10px;height:10px}
  .ht-fd-last{
    width:112px;
    min-width:112px;
    align-items:flex-end;
    text-align:right;
  }
  .ht-fd-last-by{
    max-width:100%;
    font-size:10px;
  }
  .ht-fd-last-time{font-size:8px}
  .ht-announce-thread .ht-fd-title{font-size:13px;margin-bottom:5px}
  .ht-announce-thread .ht-fd-num,
  .ht-announce-thread .ht-fd-num.views{font-size:15px}
  .ht-announce-thread .ht-fd-last-by{font-size:11px}
  .ht-inlinemod-inner{align-items:flex-start}
  .ht-inlinemod-form{width:100%}
  .ht-announce-row-wrap .ht-mod-controls{position:static;padding:0 16px 12px;width:100%;flex-wrap:wrap}
}
@media(min-width:641px) and (max-width:1024px){
  .ht-ann-page .ht-ann-hero-top{
    padding:16px 18px;
    gap:12px;
  }
  .ht-ann-page .ht-ann-sub{
    font-size:10px;
    max-width:58ch;
  }
  .ht-ann-page .ht-post-author{
    grid-template-columns:minmax(148px,164px) minmax(0,1fr);
    column-gap:16px;
    padding:12px 16px;
  }
  .ht-ann-page .ht-post-main{
    max-width:154px;
  }
  .ht-ann-page .ht-post-stars{
    display:none;
  }
  .ht-ann-page .ht-post-stats{
    padding:0 0 0 14px;
  }
  .ht-ann-page .ht-post-stat-row{
    padding:5px 0;
    font-size:10px;
  }
  .ht-ann-page .ht-post-body-wrap{
    padding:18px 20px;
  }
  .ht-post-author{
    display:grid;
    grid-template-columns:minmax(168px,188px) minmax(0,1fr);
    align-items:center;
    column-gap:20px;
    row-gap:0;
    padding:14px 18px;
    text-align:left;
  }
  .ht-post-main{
    grid-column:1;
    grid-row:1;
    justify-items:center;
    align-content:center;
    width:100%;
    max-width:176px;
  }
  .ht-post-avatar-wrap{
    margin-bottom:10px;
    align-self:center;
  }
  .ht-post-nameplate{
    align-items:center;
    text-align:center;
    gap:6px;
  }
  .ht-post-username{
    justify-content:center;
    text-align:center;
    margin:0;
    line-height:1.35;
  }
  .ht-post-username a{
    justify-content:center;
    text-align:center;
  }
  .ht-post-rank{
    align-self:center;
    margin:0;
  }
  .ht-post-stars{
    width:100%;
    max-width:176px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    margin:6px 0 0;
    text-align:center;
  }
  .ht-post-stars img{margin:0}
  .ht-post-stats{
    grid-column:2;
    grid-row:1 / span 2;
    width:100%;
    margin:0;
    padding:4px 0 4px 18px;
    border-left:1px solid var(--ht-border2);
    border-top:none;
  }
  .ht-post-stat-row:first-child{padding-top:0}
.ht-post-pm{
  grid-column:1 / -1;
  width:100%;
  margin-top:10px;
  display:none;
}
}
@media(max-width:640px){
  .ht-ann-page .ht-ann-hero{
    margin-bottom:12px;
  }
  .ht-ann-page .ht-ann-hero-top{
    padding:14px 14px;
    gap:10px;
  }
  .ht-ann-page .ht-ann-hero-l{
    gap:10px;
    align-items:flex-start;
  }
  .ht-ann-page .ht-ann-ico{
    width:36px;
    height:36px;
    border-radius:8px;
  }
  .ht-ann-page .ht-ann-ico svg{
    width:16px;
    height:16px;
  }
  .ht-ann-page .ht-ann-title{
    font-size:16px;
    line-height:1.45;
    letter-spacing:.03em;
  }
  .ht-ann-page .ht-ann-sub{
    font-size:10px;
    margin-top:4px;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }
  .ht-ann-page .ht-ann-hero-top .ht-btn-cancel{
    padding:8px 12px;
    font-size:11px;
  }
  .ht-ann-page .ht-post-author{
    grid-template-columns:92px minmax(0,1fr);
    column-gap:12px;
    padding:10px 12px;
  }
  .ht-ann-page .ht-post-main{
    max-width:92px;
  }
  .ht-ann-page .ht-post-avatar-wrap{
    margin-bottom:6px;
  }
  .ht-ann-page .ht-post-nameplate{
    gap:4px;
  }
  .ht-ann-page .ht-post-username{
    font-size:12px;
  }
  .ht-ann-page .ht-post-rank{
    font-size:9px;
    padding:2px 6px;
  }
  .ht-ann-page .ht-post-stars{
    display:none !important;
  }
  .ht-ann-page .ht-post-stats{
    padding:0 0 0 12px;
    display:grid;
    gap:2px;
  }
  .ht-ann-page .ht-post-stat-row{
    padding:4px 0;
    font-size:10px;
  }
  .ht-ann-page .ht-post-stat-row span:last-child{
    font-size:10px;
  }
  .ht-ann-page .ht-post-body-wrap{
    padding:14px 14px 16px;
  }
  .ht-ann-page .ht-post-body{
    font-size:13px;
    line-height:1.75;
  }
  .ht-editor-wrap-rich .cke_toolbar,
  .ht-qr .cke_toolbar{margin-right:0 !important}
  .ht-editor-wrap-rich .cke_toolgroup,
  .ht-qr .cke_toolgroup{margin:0 6px 6px 0 !important}
  .ht-qr .cke_top{padding:8px !important}
  .ht-bc{gap:4px;font-size:11px;padding-bottom:14px}
  .ht-bc-link{gap:3px}
  .ht-bc-link svg{width:9px;height:9px}
  .ht-bc-sep{padding:0 2px}
  .ht-bc-cur-truncate{max-width:min(100%, 42vw)}
  .ht-post-author{
    display:grid;
    grid-template-columns:minmax(112px,128px) minmax(0,1fr);
    align-items:start;
    column-gap:14px;
    row-gap:0;
    padding:12px 14px;
    text-align:left;
  }
  .ht-post-main{
    grid-column:1;
    grid-row:1;
    justify-items:center;
    width:100%;
  }
  .ht-post-avatar-wrap{
    margin-bottom:8px;
    align-self:center;
  }
  .ht-post-username{
    margin:0;
    word-break:break-word;
    line-height:1.35;
  }
  .ht-post-nameplate{
    align-items:center;
    text-align:center;
    gap:6px;
  }
  .ht-post-rank{
    margin:0;
    align-self:center;
  }
  .ht-post-username{
    justify-content:center;
    text-align:center;
  }
  .ht-post-username a{
    justify-content:center;
    text-align:center;
  }
  .ht-post-stars{display:none}
  .ht-post-stats{
    grid-column:2;
    grid-row:1;
    width:100%;
    margin:0;
    padding:2px 0 0 14px;
    border-left:1px solid var(--ht-border2);
  }
  .ht-post-stat-row:first-child{padding-top:0}
  .ht-post-pm{
    grid-column:1 / -1;
    width:100%;
    margin-top:10px;
    display:none;
  }
  .ht-stats-inner{grid-template-columns:repeat(2,1fr)}
  .ht-zones{grid-template-columns:1fr}
  .ht-footer-grid{grid-template-columns:1fr}
  .ht-ctf-inner{flex-direction:column}
  .ht-prof-banner-grid{flex-direction:column}
  .ht-prof-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ht-prof-actions{padding:12px 16px}
  .ht-brd-top{padding:12px 14px}
  .ht-brd-statsbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 14px}
  .ht-brd-focus{padding:10px 14px 12px}
  .ht-brd-focus-row{align-items:flex-start}
  .ht-brd-focus-txt{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .ht-brd-focus-time{display:none}
  .ht-brd-longdesc{padding:0 14px 12px}
  .ht-brd-moderators{grid-column:1 / -1}
  .ht-fd-row{padding:12px 14px}
  .ht-fd-main{flex-basis:100%;padding-right:0}
  .ht-fd-replies,.ht-fd-views,.ht-fd-last{display:none}
  .ht-inlinemod-master{width:100%;margin-left:0}
  .ht-inlinemod-form{width:100%}
  .ht-inlinemod-select{width:100%;min-width:0}
  .ht-inlinemod-btn{flex:1 1 calc(50% - 6px);justify-content:center}
  .ht-srch-row{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    padding:14px;
  }
  .ht-srch-forum-col,
  .ht-srch-inlinecheck{justify-content:flex-start}
  .ht-srch-last{justify-items:start;text-align:left}
  .ht-srch-main{gap:10px}
  .ht-srch-thread-meta{display:grid;gap:8px}
  .ht-srch-thread-meta span{min-width:0}
  .ht-srch-num{font-size:14px}
  .ht-pm-page.ht-ucp-shell{max-width:900px}
  .ht-thread-row{padding:12px 14px}
  .ht-thread-stat,.ht-thread-stat.ht-thread-views{flex:1 1 calc(50% - 6px);min-width:0}
  .ht-thread-last{width:100%;min-width:0;margin-left:0}
  .ht-th-hdr{padding:14px 16px}
  .ht-th-meta{gap:10px}
  .ht-th-meta-item{flex:1 1 calc(50% - 10px);min-width:0}
  .ht-th-actions-row{justify-content:flex-start}
  .ht-th-actions{width:100%;gap:10px;align-items:flex-start}
  .ht-th-actions-row .ht-th-action-btn,
  .ht-th-actions-row .ht-btn-reply{
    flex:1 1 calc(50% - 6px);
    justify-content:center;
    min-width:0;
  }
  .ht-rate-widget{width:100%}
  .ht-rate-widget:has(.ht-rate-stars:empty){
    display:none;
  }
  .ht-rate-widget form{
    width:100%;
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  .ht-rate-widget form > span{
    width:100%;
  }
  .ht-rate-stars{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
  }
  .ht-th-extra-btn{
    display:none;
  }
  .ht-th-search-mini{width:100%}
  .ht-th-search-input{width:100%;min-width:0}
  .ht-form-sec-hdr,.ht-form-sec-body,.ht-form-options{padding-left:14px;padding-right:14px}
  .ht-form-actions{align-items:stretch}
  .ht-form-actions > a{width:100%;justify-content:center}
  .ht-nr-actions{width:100%}
  .ht-nr-actions .ht-btn-draft,.ht-nr-actions .ht-btn-preview,.ht-nr-actions .ht-btn-post{width:100%;flex:1 1 100%}
  .ht-attach-actions{width:100%}
  .ht-attach-actions .ht-attach-action{flex:1 1 100%}
  .ht-attach-dropzone{padding:14px 12px}
  .ht-post-body-wrap{padding:14px 16px}
  .ht-post-footer{padding:10px 14px}
  .ht-post-actions-l,.ht-post-actions-r{width:100%}
  .ht-post-actions-r{justify-content:flex-start;gap:6px;flex-wrap:wrap}
  .ht-post-actions-r .ht-pb-action-link{
    flex:0 0 auto;
  }
  .ht-st-bottom-nav > *{
    flex:1 1 calc(50% - 5px);
    justify-content:center;
  }
  .ht-review-post{padding:12px 14px}
  .ht-review-more,.ht-thread-review-hdr{padding-left:14px;padding-right:14px}
  .ht-tr-post-body{padding-left:0}
}

/* ── FORUMDISPLAY THREAD LIST FIX ── */
.ht-fd-row-wrap .ht-fd-row { flex: 1; min-width: 0; text-decoration: none; color: inherit; }

/* ── PRIVATE MESSAGES — PM 私信模块 CSS ── */
.ht-pm-page { max-width: 900px; margin: 0 auto; }
.ht-pm-page.ht-ucp-shell { max-width: 1180px; }
.ht-pm-page.ht-ucp-shell .ht-ucp-main { display: grid; gap: 18px; }
/* PM 顶部操作栏 */
.ht-pm-hdr { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.ht-pm-hdr-l { display: flex; align-items: center; gap: 14px; }
.ht-pm-ico { width: 44px; height: 44px; background: rgba(0,212,255,.12); border: 1px solid rgba(0,212,255,.35); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--ht-cyan); flex-shrink: 0; }
.ht-pm-ico svg { width: 20px; height: 20px; }
.ht-pm-title { font-family: var(--ht-display); font-size: 18px; color: var(--ht-tx1); letter-spacing: .05em; }
.ht-pm-sub { color: var(--ht-tx4); font-size: 11px; display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.ht-pm-sub svg { width: 10px; height: 10px; }
/* 文件夹列表 */
.ht-pm-folders { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-bottom: 20px; }
.ht-pm-folder-row { display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; transition: all .15s; text-decoration: none; color: inherit; }
.ht-pm-folder-row:hover { border-color: rgba(0,212,255,.4); background: var(--ht-hover); }
.ht-pm-folder-row.ht-pm-has-new { border-color: rgba(0,212,255,.4); }
.ht-pm-folder-ico { width: 36px; height: 36px; background: rgba(0,212,255,.1); border: 1px solid rgba(0,212,255,.25); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--ht-cyan); flex-shrink: 0; }
.ht-pm-folder-ico svg { width: 16px; height: 16px; }
.ht-pm-folder-info { flex: 1; min-width: 0; }
.ht-pm-folder-name { font-size: 13px; color: var(--ht-tx2); margin-bottom: 2px; }
.ht-pm-folder-cnt { font-size: 10px; color: var(--ht-tx4); }
.ht-pm-folder-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ht-pm-folder-new { font-size: 9px; padding: 1px 6px; background: rgba(0,212,255,.15); color: var(--ht-cyan); border: 1px solid rgba(0,212,255,.4); border-radius: 3px; letter-spacing: .08em; }
.ht-pm-folder-chev { color: var(--ht-tx4); }
.ht-pm-folder-chev svg { width: 13px; height: 13px; }
/* 配额条 */
.ht-pm-quota { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; }
.ht-pm-quota-lbl { font-size: 11px; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; white-space: nowrap; flex-shrink: 0; }
.ht-pm-quota-lbl svg { width: 11px; height: 11px; }
.ht-pm-quota-bar-wrap { flex: 1; height: 4px; background: var(--ht-border); border-radius: 2px; overflow: hidden; }
.ht-pm-quota-bar { height: 100%; background: linear-gradient(90deg, var(--ht-cyan), var(--ht-green)); border-radius: 2px; transition: width .3s; }
.ht-pm-quota-txt { font-size: 10px; color: var(--ht-tx4); white-space: nowrap; flex-shrink: 0; }
/* Tab 导航 */
.ht-pm-tabnav { display: flex; gap: 4px; margin-bottom: 20px; border-bottom: 1px solid var(--ht-border); padding-bottom: 12px; flex-wrap: wrap; }
.ht-pm-tab { padding: 5px 12px; border-radius: 4px 4px 0 0; font-size: 12px; color: var(--ht-tx3); border: 1px solid transparent; transition: all .15s; display: flex; align-items: center; gap: 5px; }
.ht-pm-tab svg { width: 11px; height: 11px; }
.ht-pm-tab:hover, .ht-pm-tab.active { background: rgba(0,212,255,.1); color: var(--ht-cyan); border-color: rgba(0,212,255,.3); }
.ht-pm-tab-compose { color: var(--ht-green); margin-left: auto; border-color: rgba(0,255,65,.2); }
.ht-pm-tab-compose:hover { background: rgba(0,255,65,.1); color: var(--ht-green); border-color: rgba(0,255,65,.4); }
/* PM 列表表格 */
.ht-pm-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0 12px; flex-wrap: wrap; }
.ht-pm-toolbar-l { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; flex: 1 1 320px; }
.ht-pm-toolbar-r { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; min-width: min(100%, 320px); }
.ht-pm-search-shell {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-wrap: nowrap;
  min-width: min(100%, 320px);
  flex: 1 1 320px;
  background: linear-gradient(180deg, rgba(5,18,7,.98), rgba(3,11,4,.98));
  border: 1px solid var(--ht-border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(0,212,255,.03);
}
.ht-pm-inline-hint { font-size: 10px; color: var(--ht-tx4); }
.ht-pm-list-tbl { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ht-pm-list-hdr { display: grid; grid-template-columns: 34px 28px minmax(0, 1fr) 180px; align-items: center; padding: 8px 20px; background: var(--ht-deep); border-bottom: 1px solid var(--ht-border); font-size: 10px; letter-spacing: .1em; color: var(--ht-tx4); gap: 12px; }
.ht-pm-list-hdr-subj { flex: 1; }
.ht-pm-list-hdr-from { width: 100px; }
.ht-pm-list-hdr-date { width: 100px; text-align: right; }
/* PM 消息行 */
.ht-pm-row { display: grid; grid-template-columns: 34px 28px minmax(0, 1fr) 180px; align-items: center; padding: 12px 20px; border-bottom: 1px solid var(--ht-border2); gap: 12px; transition: background .15s; }
.ht-pm-row:hover { background: var(--ht-hover); }
.ht-pm-row.pm_status_new, .ht-pm-row.pm_status_unread { border-left: 2px solid var(--ht-cyan); }
.ht-pm-row-check { display: flex; align-items: center; }
.ht-pm-row-status { display: flex; align-items: center; justify-content: center; }
.ht-pm-row-status img { width: 14px; height: 14px; display: block; opacity: .92; }
.ht-pm-row-main { min-width: 0; }
.ht-pm-row-subj-line { display: flex; align-items: center; gap: 8px; min-width: 0; margin-bottom: 4px; }
.ht-pm-row-link { display: block; text-decoration: none; color: inherit; min-width: 0; }
.ht-pm-row-subj-link { font-size: 13px; color: var(--ht-tx2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; min-width: 0; }
.ht-pm-row.pm_status_new .ht-pm-row-subj-link, .ht-pm-row.pm_status_unread .ht-pm-row-subj-link { color: var(--ht-tx1); font-weight: 500; }
.ht-pm-row-type { display: inline-flex; align-items: center; justify-content: center; color: var(--ht-tx4); flex-shrink: 0; }
.ht-pm-row-type img { max-width: 16px; max-height: 16px; opacity: .78; }
.ht-pm-row-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; min-width: 0; }
.ht-pm-row-from { font-size: 11px; color: var(--ht-cyan); text-align: right; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ht-pm-row-time { font-size: 10px; color: var(--ht-tx4); display: flex; align-items: center; gap: 4px; }
.ht-pm-row-time svg { width: 9px; height: 9px; }
/* PM 操作栏 */
.ht-pm-actions { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; width: 100%; }
/* PM 分页 */
.ht-pm-pagi { display: flex; justify-content: flex-end; padding: 8px 0; }
.ht-pm-footerbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.ht-pm-footerbar .ht-pm-actions { margin-bottom: 0; flex-wrap: wrap; }
.ht-pm-footerbar .ht-pm-actions select,
.ht-pm-footerbar .ht-pm-actions input[type="submit"],
.ht-pm-search-shell input,
.ht-pm-search-shell button,
.select2-container .select2-choice,
.select2-container-multi .select2-choices { min-height: 36px; border-radius: 6px !important; }
.ht-pm-footerbar .ht-pm-actions select,
.ht-pm-search-shell input,
.select2-container .select2-choice,
.select2-container-multi .select2-choices { background: #040c04 !important; border: 1px solid var(--ht-border) !important; color: var(--ht-tx2) !important; font-family: var(--ht-mono) !important; }
.ht-pm-search-shell button,
.ht-pm-footerbar .ht-pm-actions input[type="submit"] { cursor: pointer; }
.ht-pm-search-shell .ht-form-input {
  min-width: 0;
  flex: 1 1 auto;
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 14px !important;
  height: 38px;
}
.ht-pm-search-shell .ht-form-input:focus {
  outline: none;
}
.ht-pm-search-shell .ht-sort-tab,
.ht-pm-search-shell .ht-pm-search-btn {
  width: 40px;
  min-width: 40px;
  height: 38px;
  padding: 0;
  border: none;
  border-left: 1px solid var(--ht-border);
  border-radius: 0 !important;
  background: rgba(0,212,255,.08);
  color: var(--ht-cyan);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ht-pm-search-shell .ht-sort-tab:hover,
.ht-pm-search-shell .ht-pm-search-btn:hover {
  background: rgba(0,212,255,.14);
}
.ht-pm-search-shell .ht-sort-tab svg,
.ht-pm-search-shell .ht-pm-search-btn svg {
  width: 13px;
  height: 13px;
}
.ht-pm-folderjump {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  min-width: 0;
}
.ht-pm-folderjump select {
  min-width: 168px;
}
.ht-pm-statebar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  margin-bottom: 12px;
  border: 1px solid rgba(0,212,255,.16);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(4,16,6,.96), rgba(3,11,4,.96));
  color: var(--ht-tx3);
  font-size: 11px;
}
.ht-pm-statebar svg {
  width: 12px;
  height: 12px;
  color: var(--ht-cyan);
}
.ht-pm-compose-actions {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.ht-pm-compose-actions-r {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.ht-pm-compose-actions .ht-btn-cancel {
  flex-shrink: 0;
}
.ht-pm-editor {
  width: 100%;
  margin: 0;
  min-height: 200px;
  background: transparent;
  border: none;
  color: var(--ht-tx1);
  padding: 14px 16px;
  font-family: var(--ht-mono);
  font-size: 13px;
  line-height: 1.75;
  outline: none;
  resize: vertical;
}
.ht-pm-editor.ht-pm-editor-compact {
  min-height: 180px;
}
.ht-pm-view-hint {
  margin-bottom: 14px;
  color: var(--ht-tx4);
}
.ht-pm-quickreply {
  margin-top: 2px;
}
.ht-pm-quickreply .ht-form-actions {
  justify-content: flex-end;
  margin-top: 14px;
}
.ht-pm-nav-row .ht-btn-cancel {
  min-height: 38px;
}
.select2-drop,
.select2-results,
.select2-search input { background: #071107 !important; color: var(--ht-tx2) !important; border-color: var(--ht-border) !important; font-family: var(--ht-mono) !important; }
.select2-results .select2-highlighted { background: rgba(0,212,255,.16) !important; color: var(--ht-tx1) !important; }
.select2-container .select2-choice .select2-arrow { background: transparent !important; border-left-color: var(--ht-border) !important; }
/* 空文件夹占位 */
.ht-pm-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 60px 20px; text-align: center; }
.ht-pm-empty-ico { width: 56px; height: 56px; background: rgba(0,212,255,.08); border: 1px solid rgba(0,212,255,.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--ht-tx4); }
.ht-pm-empty-ico svg { width: 24px; height: 24px; }
.ht-pm-empty-title { font-family: var(--ht-display); font-size: 15px; color: var(--ht-tx2); }
.ht-pm-empty-desc { font-size: 12px; color: var(--ht-tx4); }
/* PM 查看页 */
.ht-pm-view-hdr { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; padding: 20px; margin-bottom: 1px; }
.ht-pm-view-subj { font-family: var(--ht-display); font-size: 16px; color: var(--ht-tx1); margin-bottom: 8px; }
.ht-pm-view-meta { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.ht-pm-view-from { font-size: 12px; color: var(--ht-cyan); display: flex; align-items: center; gap: 5px; }
.ht-pm-view-from svg { width: 12px; height: 12px; }
.ht-pm-view-time { font-size: 11px; color: var(--ht-tx4); display: flex; align-items: center; gap: 5px; }
.ht-pm-view-time svg { width: 10px; height: 10px; }
.ht-pm-view-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ht-pm-view-body { background: var(--ht-card); border: 1px solid var(--ht-border); border-top: none; border-radius: 0 0 8px 8px; padding: 0; margin-bottom: 16px; overflow: hidden; }
.ht-pm-view-content { color: var(--ht-tx2); line-height: 1.7; font-size: 14px; }
.ht-pm-nav-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ht-pm-panel { min-width: 0; }
.ht-pm-page .ht-pm-view-content .ht-post { margin: 0; border: none; border-radius: 0; background: transparent; }
.ht-pm-page .ht-pm-view-content .ht-post-hdr,
.ht-pm-page .ht-pm-view-content .ht-post-footer,
.ht-pm-page .ht-pm-view-content .ht-post-pm,
.ht-pm-page .ht-pm-view-content .ht-post-actions-l,
.ht-pm-page .ht-pm-view-content .ht-post-actions-r,
.ht-pm-page .ht-pm-view-content .postbit_warn,
.ht-pm-page .ht-pm-view-content .postbit_purgespammer,
.ht-pm-page .ht-pm-view-content .postbit_reply_pm,
.ht-pm-page .ht-pm-view-content .postbit_reply_all,
.ht-pm-page .ht-pm-view-content .postbit_forward_pm,
.ht-pm-page .ht-pm-view-content .postbit_delete_pm,
.ht-pm-page .ht-pm-view-content .postbit_reputation_add { display: none !important; }
.ht-pm-page .ht-pm-view-content .ht-post-inner { min-height: 0; }
.ht-pm-page .ht-pm-view-content .ht-post-author { width: 160px; }
.ht-pm-page .ht-pm-view-content .ht-post-body-wrap { min-height: 0; }
/* 举报按钮 */
.ht-pm-report-btn { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ht-tx4); padding: 3px 8px; border: 1px solid var(--ht-border); border-radius: 3px; transition: all .15s; }
.ht-pm-report-btn svg { width: 10px; height: 10px; }
.ht-pm-report-btn:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.4); }

/* ── MODCP — 版主控制台 CSS ── */
.ht-modcp-wrap { max-width: 1100px; margin: 0 auto; }
/* ModCP 顶部 */
.ht-modcp-hdr { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.ht-modcp-hdr-l { display: flex; align-items: center; gap: 14px; }
.ht-modcp-ico { width: 44px; height: 44px; background: rgba(255,170,0,.1); border: 1px solid rgba(255,170,0,.3); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--ht-amber); flex-shrink: 0; }
.ht-modcp-ico svg { width: 22px; height: 22px; }
.ht-modcp-title { font-family: var(--ht-display); font-size: 18px; color: var(--ht-tx1); letter-spacing: .05em; }
.ht-modcp-sub { color: var(--ht-tx4); font-size: 11px; margin-top: 2px; }
.ht-modcp-badge { padding: 5px 12px; background: rgba(255,0,64,.1); border: 1px solid rgba(255,0,64,.35); border-radius: 4px; color: var(--ht-red); font-size: 11px; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.ht-modcp-badge svg { width: 11px; height: 11px; }
/* ModCP 双栏布局 */
.ht-modcp-grid { display: grid; grid-template-columns: 200px 1fr; gap: 20px; align-items: start; }
/* 导航侧栏 */
.ht-modcp-nav { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; position: sticky; top: 72px; }
.ht-modcp-nav-hdr { padding: 10px 16px; background: var(--ht-deep); border-bottom: 1px solid var(--ht-border2); font-size: 9px; letter-spacing: .2em; color: var(--ht-tx4); display: flex; align-items: center; gap: 6px; }
.ht-modcp-nav-hdr svg { width: 10px; height: 10px; }
.ht-modcp-nav-link { display: flex; align-items: center; gap: 8px; padding: 9px 16px; font-size: 12px; color: var(--ht-tx3); border-bottom: 1px solid var(--ht-border2); transition: all .15s; text-decoration: none; }
.ht-modcp-nav-link svg { width: 12px; height: 12px; flex-shrink: 0; }
.ht-modcp-nav-link:hover, .ht-modcp-nav-link.active { background: rgba(255,170,0,.06); color: var(--ht-amber); border-left: 2px solid var(--ht-amber); padding-left: 14px; }
.ht-modcp-nav-sep { height: 1px; background: var(--ht-border); margin: 4px 0; }
/* 内容区 */
.ht-modcp-content { min-width: 0; }
.ht-modcp-stack { display: grid; gap: 16px; }
.ht-modcp-split { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); gap: 16px; }
.ht-modcp-panel { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-modcp-panel-hdr { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); background: rgba(255,255,255,.015); flex-wrap: wrap; }
.ht-modcp-panel-hdr svg { width: 13px; height: 13px; flex-shrink: 0; color: var(--ht-amber); }
.ht-modcp-panel-title { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx2); font-family: var(--ht-display); font-size: 12px; letter-spacing: .08em; }
.ht-modcp-panel-title svg { width: 13px; height: 13px; color: var(--ht-amber); }
.ht-modcp-panel-sub { color: var(--ht-tx4); font-size: 10px; }
.ht-modcp-panel-body { padding: 14px 16px; }
.ht-modcp-empty { padding: 16px; color: var(--ht-tx4); font-size: 11px; }
.ht-modcp-panel-act { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-modcp-select { min-width: 0; width: 100%; border: 1px solid var(--ht-border); border-radius: 8px; background: #050c05; color: var(--ht-tx2); padding: 10px 12px; font: inherit; }
.ht-modcp-panel select,
.ht-modcp-panel input[type="text"] { min-width: 0; border: 1px solid var(--ht-border); border-radius: 8px; background: #050c05; color: var(--ht-tx2); padding: 10px 12px; font: inherit; }
.ht-modcp-mini-actions { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.ht-modcp-mini-link { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-cyan); font-size: 10px; text-decoration: none; }
.ht-modcp-mini-link svg { width: 10px; height: 10px; }
.ht-modcp-noteform textarea { width: 100%; min-height: 220px; resize: vertical; border: 1px solid var(--ht-border); border-radius: 8px; background: #050c05; color: var(--ht-tx2); padding: 12px 14px; font: inherit; line-height: 1.6; }
.ht-modcp-noteform .ht-form-actions { justify-content: flex-start; margin-top: 12px; }
.ht-modcp-ban-list, .ht-modcp-await-list, .ht-modcp-log-list { padding: 4px 0; }
.ht-modcp-ban-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .95fr) 140px 140px; gap: 12px; align-items: start; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-modcp-ban-user { color: var(--ht-tx2); font-size: 12px; }
.ht-modcp-ban-reason { color: var(--ht-tx3); font-size: 11px; line-height: 1.5; }
.ht-modcp-ban-length, .ht-modcp-ban-admin { color: var(--ht-tx3); font-size: 11px; line-height: 1.5; }
.ht-modcp-await-row { display: grid; grid-template-columns: 92px 92px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-modcp-await-type { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx2); font-size: 12px; }
.ht-modcp-await-type svg { width: 12px; height: 12px; color: var(--ht-cyan); }
.ht-modcp-await-count { color: var(--ht-green); font-family: var(--ht-display); font-size: 18px; }
.ht-modcp-await-latest { min-width: 0; }
.ht-modcp-await-empty { color: var(--ht-tx4); font-size: 11px; }
.ht-modcp-lastitem { display: grid; gap: 4px; }
.ht-modcp-lastitem a { color: var(--ht-tx2); font-size: 12px; text-decoration: none; }
.ht-modcp-lastitem a:hover { color: var(--ht-cyan); }
.ht-modcp-lastitem-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--ht-tx4); font-size: 10px; }
.ht-modcp-lastitem-meta svg { width: 10px; height: 10px; }
.ht-modcp-log-head { display: grid; grid-template-columns: 160px 108px 160px minmax(0, 1fr) 136px; gap: 12px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--ht-border2); background: var(--ht-deep); color: var(--ht-tx4); font-size: 9px; letter-spacing: .14em; }
.ht-modcp-log-row { display: grid; grid-template-columns: 160px 108px 160px minmax(0, 1fr) 136px; gap: 12px; align-items: start; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-modcp-log-user, .ht-modcp-log-date, .ht-modcp-log-action, .ht-modcp-log-ip { color: var(--ht-tx3); font-size: 11px; line-height: 1.5; }
.ht-modcp-log-info { display: grid; gap: 6px; min-width: 0; color: var(--ht-tx3); font-size: 11px; line-height: 1.55; }
.ht-modcp-log-info strong { color: var(--ht-tx2); font-weight: 600; }
.ht-modcp-filter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ht-modcp-filter-grid .ht-form-group:last-child { grid-column: 1 / -1; }
.ht-modcp-filter-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.ht-modcp-filter-actions .ht-form-inline { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx4); font-size: 11px; }
.ht-modcp-filter-actions .ht-form-inline input { width: 80px; }
.ht-modcp-queue-tabs { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-modcp-queue-tab { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid var(--ht-border); border-radius: 999px; color: var(--ht-tx3); font-size: 10px; text-decoration: none; transition: all .15s; }
.ht-modcp-queue-tab svg { width: 11px; height: 11px; }
.ht-modcp-queue-tab:hover, .ht-modcp-queue-tab.active { color: var(--ht-cyan); border-color: rgba(0,212,255,.28); background: rgba(0,212,255,.05); }
.ht-modcp-queue-list { padding: 4px 0; }
.ht-modcp-queue-card { padding: 14px 16px; border-bottom: 1px solid var(--ht-border2); display: grid; gap: 12px; }
.ht-modcp-queue-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ht-modcp-queue-main { flex: 1; min-width: 0; }
.ht-modcp-queue-title { display: inline-block; color: var(--ht-tx2); font-size: 13px; text-decoration: none; margin-bottom: 5px; }
.ht-modcp-queue-title:hover { color: var(--ht-cyan); }
.ht-modcp-queue-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--ht-tx4); font-size: 10px; }
.ht-modcp-queue-meta svg { width: 10px; height: 10px; }
.ht-modcp-queue-snippet { color: var(--ht-tx3); font-size: 11px; line-height: 1.65; }
.ht-modcp-queue-controls { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.ht-modcp-queue-control { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-tx3); font-size: 11px; }
.ht-modcp-queue-control input { accent-color: var(--ht-cyan); }
.ht-modcp-mass { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-modcp-mass a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid var(--ht-border); border-radius: 999px; color: var(--ht-tx3); font-size: 10px; text-decoration: none; transition: all .15s; }
.ht-modcp-mass a:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.28); background: rgba(0,212,255,.05); }
.ht-modcp-mass svg { width: 10px; height: 10px; }
.ht-modcp-empty-state { padding: 32px 20px; text-align: center; color: var(--ht-tx4); font-size: 12px; }
.ht-modcp-empty-state svg { width: 18px; height: 18px; color: var(--ht-amber); margin-bottom: 8px; }
.ht-modcp-user-head,
.ht-modcp-user-row { display: grid; grid-template-columns: minmax(0,1fr) 140px 132px 132px 88px; gap: 12px; align-items: center; padding: 10px 16px; }
.ht-modcp-user-head { background: var(--ht-deep); border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx4); font-size: 9px; letter-spacing: .14em; }
.ht-modcp-user-row { border-bottom: 1px solid var(--ht-border2); }
.ht-modcp-user-main { min-width: 0; }
.ht-modcp-user-name { color: var(--ht-tx2); font-size: 12px; text-decoration: none; }
.ht-modcp-user-name:hover { color: var(--ht-cyan); }
.ht-modcp-user-sub,
.ht-modcp-user-group,
.ht-modcp-user-date,
.ht-modcp-user-count { color: var(--ht-tx3); font-size: 11px; line-height: 1.55; }
.ht-modcp-user-group,
.ht-modcp-user-date,
.ht-modcp-user-count { text-align: center; }
.ht-modcp-user-count { color: var(--ht-green); font-family: var(--ht-display); font-size: 17px; }
.ht-modcp-warning-head,
.ht-modcp-warning-row { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) 124px 124px 132px 96px; gap: 12px; align-items: center; padding: 10px 16px; }
.ht-modcp-warning-head { background: var(--ht-deep); border-bottom: 1px solid var(--ht-border2); color: var(--ht-tx4); font-size: 9px; letter-spacing: .14em; }
.ht-modcp-warning-row { border-bottom: 1px solid var(--ht-border2); align-items: start; }
.ht-warn-page dl { margin: 0; display: grid; gap: 10px; }
.ht-warn-choice { display: grid; gap: 10px; }
.ht-warn-choice dt { margin: 0; }
.ht-warn-choice dd { margin: 0 0 4px; }
.ht-warn-choice-label { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--ht-border2); border-radius: 10px; background: rgba(255,255,255,.015); cursor: pointer; transition: all .15s; }
.ht-warn-choice-label:hover { border-color: rgba(255,170,0,.28); background: rgba(255,170,0,.05); }
.ht-warn-choice-label input { margin-top: 2px; accent-color: var(--ht-amber); }
.ht-warn-choice-copy { display: grid; gap: 4px; min-width: 0; }
.ht-warn-choice-copy strong { color: var(--ht-tx2); font-size: 12px; }
.ht-warn-choice-copy span { color: var(--ht-tx4); font-size: 10px; line-height: 1.55; }
.ht-warn-choice-points { color: var(--ht-amber) !important; font-family: var(--ht-mono); letter-spacing: .08em; }
.ht-warn-type-card { padding: 14px; border: 1px solid var(--ht-border); border-radius: 10px; background: rgba(255,255,255,.02); display: grid; gap: 10px; }
.ht-warn-meter-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ht-warn-meter { width: 150px; height: 8px; display: flex; overflow: hidden; border-radius: 999px; background: #071107; border: 1px solid var(--ht-border2); }
.ht-warn-meter-now { background: rgba(0,212,255,.24); }
.ht-warn-meter-next { background: rgba(255,170,0,.28); }
.ht-warn-level { font-weight: 700; color: var(--ht-tx2); }
.ht-modcp-warning-main,
.ht-modcp-warning-reason { min-width: 0; display: grid; gap: 5px; }
.ht-modcp-warning-user { color: var(--ht-tx2); font-size: 12px; }
.ht-modcp-warning-user a,
.ht-modcp-warning-moderator a { color: inherit; }
.ht-modcp-warning-user a:hover,
.ht-modcp-warning-moderator a:hover { color: var(--ht-cyan); }
.ht-modcp-warning-reason-title { color: var(--ht-tx2); font-size: 12px; line-height: 1.45; }
.ht-modcp-warning-points { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(255,170,0,.22); background: rgba(255,170,0,.06); color: var(--ht-amber); font-size: 10px; letter-spacing: .08em; }
.ht-modcp-warning-date,
.ht-modcp-warning-moderator { color: var(--ht-tx3); font-size: 11px; line-height: 1.55; }
.ht-modcp-warning-action { display: flex; justify-content: flex-end; }
.ht-modcp-warning-revoked { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; color: var(--ht-red); font-size: 10px; }
.ht-modcp-warning-revoked svg { width: 10px; height: 10px; }
.ht-modcp-ip-grid { display: grid; gap: 16px; }
.ht-modcp-ip-list { padding: 4px 0; }
.ht-modcp-ip-row { display: grid; grid-template-columns: 164px minmax(0,1fr); gap: 12px; align-items: start; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); }
.ht-modcp-ip-address { color: var(--ht-green); font-family: var(--ht-display); font-size: 16px; line-height: 1.2; word-break: break-all; }
.ht-modcp-ip-result { min-width: 0; }
.ht-modcp-ip-hit { color: var(--ht-tx3); font-size: 11px; line-height: 1.6; }
.ht-modcp-ip-hit strong { color: var(--ht-tx2); font-weight: 600; }
.ht-modcp-ip-hit a { color: var(--ht-cyan); }
.ht-modcp-ip-hit a:hover { color: #35e5ff; }
.ht-modcp-ip-tools { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ht-modcp-ip-tools a { display: inline-flex; align-items: center; gap: 6px; color: var(--ht-tx3); font-size: 10px; text-decoration: none; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--ht-border); background: rgba(255,255,255,.015); transition: all .15s; }
.ht-modcp-ip-tools a:hover { color: var(--ht-cyan); border-color: rgba(0,212,255,.28); background: rgba(0,212,255,.05); }
.ht-modcp-ip-tools svg { width: 10px; height: 10px; }
.ht-modcp-ip-modal { max-width: 520px; margin: 0 auto; background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 10px; overflow: hidden; }
.ht-modcp-ip-modal-body { padding: 16px; display: grid; gap: 12px; }
.ht-modcp-ip-modal-row { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 12px; align-items: start; }
.ht-modcp-ip-modal-label { color: var(--ht-tx4); font-size: 10px; letter-spacing: .12em; }
.ht-modcp-ip-modal-value { color: var(--ht-tx2); font-size: 12px; line-height: 1.6; word-break: break-word; }
.ht-modcp-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.ht-modcp-edit-col { display: grid; gap: 16px; align-content: start; }
.ht-modcp-edit-card { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; }
.ht-modcp-edit-card-full { margin-top: 16px; }
.ht-modcp-edit-body { padding: 16px; }
.ht-modcp-edit-table { width: 100%; border-collapse: collapse; }
.ht-modcp-edit-table td { padding: 0 0 10px; vertical-align: top; }
.ht-modcp-edit-table td + td { padding-left: 10px; }
.ht-modcp-edit-table .smalltext { display: block; color: var(--ht-tx4); font-size: 11px; line-height: 1.6; }
.ht-modcp-edit-table strong { color: var(--ht-tx2); }
.ht-modcp-edit-card input[type="text"],
.ht-modcp-edit-card textarea,
.ht-modcp-edit-card select,
.ht-modcp-edit-native input[type="text"],
.ht-modcp-edit-native textarea,
.ht-modcp-edit-native select { width: 100%; max-width: 100%; box-sizing: border-box; background: #050c05; border: 1px solid var(--ht-border); border-radius: 8px; color: var(--ht-tx2); padding: 10px 12px; font: inherit; }
.ht-modcp-edit-card textarea,
.ht-modcp-edit-native textarea { min-height: 140px; resize: vertical; line-height: 1.6; }
.ht-modcp-edit-card select,
.ht-modcp-edit-native select { appearance: none; -webkit-appearance: none; }
.ht-modcp-edit-card input[type="checkbox"],
.ht-modcp-edit-card input[type="radio"],
.ht-modcp-edit-native input[type="checkbox"],
.ht-modcp-edit-native input[type="radio"] { accent-color: var(--ht-cyan); }
.ht-modcp-edit-inline { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.ht-modcp-edit-stack { display: grid; gap: 16px; }
.ht-modcp-edit-stack .ht-modcp-edit-help { color: var(--ht-tx4); font-size: 10px; line-height: 1.6; margin-bottom: 10px; }
.ht-modcp-edit-toggle label { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx2); font-size: 12px; }
.ht-modcp-edit-toggle-body { display: grid; gap: 10px; margin-top: 10px; padding: 12px; border: 1px solid var(--ht-border2); border-radius: 8px; background: rgba(255,255,255,.015); }
.ht-modcp-edit-inline-fields { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--ht-tx3); font-size: 11px; }
.ht-modcp-edit-inline-fields input[type="text"] { width: 72px; }
.ht-modcp-edit-inline-fields select { width: auto; min-width: 140px; }
.ht-modcp-edit-native { display: grid; gap: 16px; }
.ht-modcp-edit-native fieldset { margin: 0; padding: 14px 16px; border: 1px solid var(--ht-border); border-radius: 8px; background: var(--ht-card); }
.ht-modcp-edit-native legend { padding: 0 8px; color: var(--ht-tx2); font-family: var(--ht-display); font-size: 11px; letter-spacing: .08em; }
.ht-modcp-edit-native table { width: 100%; border-collapse: collapse; }
.ht-modcp-edit-native td { padding: 0 0 10px; vertical-align: top; }
.ht-modcp-edit-native td + td { padding-left: 10px; }
.ht-modcp-edit-native .smalltext { display: block; color: var(--ht-tx4); font-size: 11px; line-height: 1.6; }
.ht-modcp-edit-native .select2-container { width: 100% !important; }
.ht-modcp-edit-native dl { margin: 0; display: grid; gap: 10px; }
.ht-modcp-edit-native dd { margin: 0; }
.ht-modcp-edit-codebuttons { margin-top: 10px; }
.ht-modcp-edit-codebuttons .codebuttons,
.ht-modcp-edit-codebuttons .editor_control_bar { width: 100%; }
/* 快捷统计卡片 */
.ht-modcp-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 20px; }
.ht-modcp-stat { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; padding: 16px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.ht-modcp-stat-ico { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; }
.ht-modcp-stat-ico svg { width: 18px; height: 18px; }
.ht-modcp-stat-val { font-family: var(--ht-display); font-size: 20px; font-weight: 700; }
.ht-modcp-stat-lbl { font-size: 10px; color: var(--ht-tx4); letter-spacing: .08em; }
/* 举报表格 */
.ht-modcp-report-tbl { overflow: hidden; }
.ht-modcp-report-hdr { display: grid; grid-template-columns: 1fr 120px 100px 90px 120px; align-items: center; padding: 8px 16px; background: var(--ht-deep); border-bottom: 1px solid var(--ht-border); font-size: 9px; letter-spacing: .12em; color: var(--ht-tx4); gap: 10px; }
.ht-modcp-col-main { flex: 1; }
.ht-modcp-col-board, .ht-modcp-col-by, .ht-modcp-col-date { font-size: 10px; }
.ht-modcp-col-act { text-align: right; }
.ht-modcp-report-row { display: grid; grid-template-columns: 1fr 120px 100px 90px 120px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); gap: 10px; transition: background .15s; }
.ht-modcp-report-row:hover { background: var(--ht-hover); }
.ht-modcp-report-subj { font-size: 13px; color: var(--ht-tx2); display: block; margin-bottom: 4px; transition: color .15s; }
.ht-modcp-report-subj:hover { color: var(--ht-red); }
.ht-modcp-report-reason { font-size: 10px; color: var(--ht-tx4); display: flex; align-items: center; gap: 4px; }
.ht-modcp-report-reason svg { width: 9px; height: 9px; color: var(--ht-red); }
.ht-modcp-col-act { display: flex; gap: 4px; justify-content: flex-end; flex-wrap: wrap; }
.ht-modcp-link { color: var(--ht-tx3); font-size: 11px; transition: color .15s; }
.ht-modcp-link:hover { color: var(--ht-cyan); }
/* 公告列表 */
.ht-modcp-ann-panel { background: var(--ht-card); border: 1px solid var(--ht-border); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.ht-modcp-ann-panel-hdr { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); background: rgba(255,170,0,.02); flex-wrap: wrap; }
.ht-modcp-ann-panel-title { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx2); font-size: 12px; letter-spacing: .08em; font-family: var(--ht-display); }
.ht-modcp-ann-panel-title svg { width: 13px; height: 13px; color: var(--ht-amber); }
.ht-modcp-ann-panel-sub { color: var(--ht-tx4); font-size: 10px; }
.ht-modcp-ann-panel-act { display: inline-flex; align-items: center; gap: 6px; }
.ht-modcp-ann-list { padding: 4px 0; }
.ht-modcp-ann-forum { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); background: rgba(255,255,255,.01); flex-wrap: wrap; }
.ht-modcp-ann-forum-main { min-width: 0; flex: 1; }
.ht-modcp-ann-forum-name { display: inline-flex; align-items: center; gap: 8px; color: var(--ht-tx2); font-size: 13px; }
.ht-modcp-ann-forum-name svg { width: 12px; height: 12px; color: var(--ht-cyan); }
.ht-modcp-ann-forum-sub { color: var(--ht-tx4); font-size: 10px; margin-top: 4px; }
.ht-modcp-ann-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .15s; flex-wrap: wrap; }
.ht-modcp-ann-row:hover { background: var(--ht-hover); }
.ht-modcp-ann-title { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 200px; }
.ht-modcp-ann-title svg { width: 12px; height: 12px; flex-shrink: 0; }
.ht-modcp-ann-title a { color: var(--ht-tx2); font-size: 13px; transition: color .15s; }
.ht-modcp-ann-title a:hover { color: var(--ht-cyan); }
.ht-modcp-ann-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ht-modcp-ann-meta-item { display: inline-flex; align-items: center; gap: 5px; color: var(--ht-tx4); font-size: 10px; }
.ht-modcp-ann-meta-item svg { width: 10px; height: 10px; }
.ht-modcp-ann-status { display: inline-flex; align-items: center; justify-content: center; padding: 2px 8px; border-radius: 999px; font-size: 9px; letter-spacing: .12em; border: 1px solid var(--ht-border2); text-transform: uppercase; }
.ht-modcp-ann-status-active { color: var(--ht-green); border-color: rgba(0,255,65,.22); background: rgba(0,255,65,.06); }
.ht-modcp-ann-status-expired { color: var(--ht-amber); border-color: rgba(255,170,0,.22); background: rgba(255,170,0,.05); }
.ht-modcp-ann-empty { padding: 16px; color: var(--ht-tx4); font-size: 11px; }
.ht-modcp-ann-acts { display: flex; gap: 4px; flex-shrink: 0; }
.ht-modcp-ann-acts .ht-inlinemod-btn { white-space: nowrap; }
/* 审核队列 */
.ht-modcp-queue-list { padding: 4px 0; }
.ht-modcp-queue-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--ht-border2); transition: background .15s; flex-wrap: wrap; }
.ht-modcp-queue-row:hover { background: var(--ht-hover); }
.ht-modcp-queue-main { flex: 1; min-width: 0; }
.ht-modcp-queue-subj { margin-bottom: 4px; }
.ht-modcp-queue-meta { display: flex; align-items: center; gap: 12px; }
.ht-modcp-queue-acts { display: flex; gap: 4px; flex-shrink: 0; }

/* ── RESPONSIVE: PM + ModCP ── */
@media(max-width:1024px){
  .ht-modcp-grid{grid-template-columns:1fr}
  .ht-modcp-split{grid-template-columns:1fr}
  .ht-modcp-nav{position:static}
  .ht-modcp-stats{grid-template-columns:repeat(3,1fr)}
  .ht-modcp-report-hdr,.ht-modcp-report-row{grid-template-columns:1fr 80px 80px}
  .ht-modcp-col-date,.ht-modcp-col-act{display:none}
  .ht-modcp-ban-row{grid-template-columns:minmax(0,1fr) 130px 130px}
  .ht-modcp-ban-reason{grid-column:1 / -1}
  .ht-modcp-log-head,.ht-modcp-log-row{grid-template-columns:140px 92px minmax(0,1fr)}
  .ht-modcp-log-ip,.ht-modcp-log-action{display:none}
  .ht-modcp-filter-grid{grid-template-columns:1fr}
  .ht-modcp-ann-panel-hdr{align-items:flex-start}
  .ht-modcp-ann-forum{align-items:flex-start}
  .ht-modcp-ann-meta{width:100%}
  .ht-ann-sched-grid{grid-template-columns:1fr}
  .ht-modcp-user-head,.ht-modcp-warning-head{display:none}
  .ht-modcp-user-row,.ht-modcp-warning-row,.ht-modcp-ip-row{grid-template-columns:1fr}
  .ht-modcp-user-group,.ht-modcp-user-date,.ht-modcp-user-count,.ht-modcp-warning-action{justify-self:start;text-align:left}
  .ht-modcp-edit-grid{grid-template-columns:1fr}
  .ht-modcp-ip-modal-row{grid-template-columns:1fr}
  .ht-modcp-edit-inline{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ht-pm-list-hdr{grid-template-columns:34px 28px minmax(0,1fr)}
  .ht-pm-list-hdr span:last-child{display:none}
  .ht-pm-row{grid-template-columns:34px 28px minmax(0,1fr)}
  .ht-pm-row-right{grid-column:3;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin-top:4px}
  .ht-pm-row-from{text-align:left}
  .ht-pm-toolbar{align-items:flex-start}
  .ht-pm-toolbar-r,.ht-pm-footerbar{width:100%}
  .ht-pm-toolbar-r{margin-left:0;min-width:0}
  .ht-pm-search-shell{width:100%;min-width:0}
  .ht-pm-footerbar .ht-pm-pagi{justify-content:flex-start;width:100%}
}
@media(max-width:640px){
  .ht-ann-hero-top{padding:14px 16px}
  .ht-ann-title{font-size:16px}
  .ht-ann-sched-card{padding:12px}
  .ht-ann-opt-row{padding:10px}
  .ht-ann-radio-group{width:100%}
  .ht-ann-radio-group label{flex:1 1 120px}
  .ht-modcp-ann-panel-hdr{padding:12px 14px}
  .ht-modcp-ann-row,.ht-modcp-ann-forum{padding:12px 14px}
  .ht-modcp-ann-title{min-width:0}
  .ht-modcp-ann-meta{gap:8px}
  .ht-modcp-ann-forum-main{width:100%}
  .ht-modcp-ann-panel-act,.ht-modcp-ann-acts{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .ht-pm-folders{grid-template-columns:1fr}
  .ht-pm-folderjump{width:100%;margin-left:0}
  .ht-pm-folderjump select,.ht-pm-folderjump input[type="submit"]{flex:1 1 auto}
  .ht-pm-compose-actions{align-items:stretch}
  .ht-pm-compose-actions .ht-btn-cancel{width:100%;justify-content:center}
  .ht-pm-compose-actions-r{width:100%}
  .ht-pm-compose-actions-r .ht-btn-draft,
  .ht-pm-compose-actions-r .ht-btn-post{flex:1 1 100%;width:100%}
  .ht-pm-quickreply .ht-form-actions{justify-content:stretch}
  .ht-pm-quickreply .ht-form-actions .ht-btn-post,
  .ht-pm-quickreply .ht-form-actions .ht-btn-draft{width:100%;flex:1 1 100%}
  .ht-modcp-stats{grid-template-columns:1fr}
  .ht-modcp-panel-hdr,.ht-modcp-panel-body,.ht-modcp-ban-row,.ht-modcp-await-row,.ht-modcp-log-row,.ht-modcp-log-head,.ht-modcp-queue-card{padding-left:14px;padding-right:14px}
  .ht-modcp-await-row{grid-template-columns:1fr}
  .ht-modcp-ban-row{grid-template-columns:1fr}
  .ht-modcp-log-head{display:none}
  .ht-modcp-log-row{grid-template-columns:1fr}
  .ht-modcp-log-date,.ht-modcp-log-user{font-size:10px}
  .ht-modcp-queue-top{align-items:stretch}
  .ht-modcp-queue-controls{width:100%;justify-content:flex-start}
  .ht-modcp-filter-actions{justify-content:stretch}
  .ht-modcp-filter-actions .ht-form-inline{width:100%}
  .ht-modcp-filter-actions .ht-form-inline input{flex:1 1 auto}
  .ht-modcp-mass{width:100%}
  .ht-modcp-mass a{flex:1 1 100%;justify-content:center}
  .ht-modcp-edit-inline{grid-template-columns:1fr}
  .ht-modcp-edit-inline-fields{align-items:stretch}
  .ht-modcp-edit-inline-fields input[type="text"],
  .ht-modcp-edit-inline-fields select{width:100%}
  .ht-modcp-report-hdr,.ht-modcp-report-row{grid-template-columns:1fr auto}
  .ht-modcp-col-board,.ht-modcp-col-by{display:none}
  .ht-auth-captcha table,
  .ht-auth-captcha tr,
  .ht-auth-captcha td{display:block;width:100%}
  .ht-auth-captcha td[rowspan]{width:auto;padding-left:0;padding-top:12px}
  .ht-ucp-thread-stats{flex-wrap:wrap}
}

/* ── PRINT STYLESHEET ───────────────────��────────────────────────────────────
   使打印版本保持可读性：隐藏 UI Chrome，保留正文内容
   ─────────────────────────────────────────────────────────────────────────── */
@media print {
  /* 重置背景 */
  *, *::before, *::after {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  body { background: #fff; color: #000; font-family: Georgia, serif; font-size: 11pt; line-height: 1.5; }
  /* 隐藏交互与装饰元素 */
  .ht-nav, .ht-mob-menu, .ht-mob-toggle,
  .ht-hero, .ht-ticker, .ht-stats,
  .ht-sidebar, .ht-fd-grid > .ht-sidebar,
  .ht-sort-bar, .ht-fd-pagi, .ht-pm-pagi,
  .ht-pagi, .ht-inlinemod, .ht-new-thread,
  .ht-form-actions > a, .ht-btn-cancel,
  .ht-modcp-nav, .ht-modcp-stats,
  .ht-post-actions-l, .ht-post-actions-r, .ht-qr,
  .ht-footer, .ht-bc { display: none !important; }
  /* 链接样式 */
  a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
  a[href^="#"]::after, a[href^="javascript:"]::after { content: ""; }
  /* 帖子卡片 */
  .ht-post { border: 1px solid #ccc !important; page-break-inside: avoid; margin-bottom: 16pt; }
  .ht-post-author { border-right: 1px solid #ccc !important; }
  .ht-post-body { color: #000 !important; }
  /* 论坛列表行 */
  .ht-fd-row-wrap, .ht-pm-row { border-bottom: 1px solid #ddd !important; page-break-inside: avoid; }
  /* 代码块 */
  pre, code, .ht-post-body pre { background: #f5f5f5 !important; color: #333 !important; border: 1px solid #ccc; padding: 8pt; font-family: "Courier New", monospace; font-size: 9pt; white-space: pre-wrap; }
  /* 分页控制 */
  .ht-brd-hdr, .ht-np-hdr, .ht-pm-view-hdr { page-break-after: avoid; }
  /* 布局修正 */
  .ht-fd-grid { display: block !important; }
  .ht-fd-sidebar, .ht-fd-sidebar-strip { display: none !important; }
  .ht-st-grid { display: block !important; }
  .ht-st-sidebar, .ht-st-sidebar-strip { display: none !important; }
  .ht-fd-main { width: 100% !important; }
  /* 页眉/页脚水印 */
  @page {
    margin: 20mm;
    @top-center { content: "HACKERTOP.COM — Print View"; font-size: 9pt; color: #888; }
    @bottom-center { content: counter(page) " / " counter(pages); font-size: 9pt; color: #888; }
  }
}

		
		
		