/* ============================================================
   LLMCN Community — front-end theme layer (dual-theme)
   Loaded AFTER 旧版论坛 style_1_common.css so it overrides tokens.
   Design authority: GitHub Primer (primary) + Ant/Atlassian/Semi (cross-check).
   Brand from LLMCN new logo: deep-navy #0B1F3A + teal accent #0D9488.
   Constraints: no AI-dashboard language (no KPI/reward cards, no pill tabs,
   no big radius, no rainbow, no free-design). Structure = border + spacing.
   ============================================================ */

/* ===================== TOKENS ===================== */
:root {
  color-scheme: light;

  /* ---- surfaces (Primer canvas scale; neutral well only for inputs/hover/code) ---- */
  --bg:           #ffffff;
  --bg-elevated:  #ffffff;
  --surface:      #ffffff;
  --surface-2:    #f6f8fa;   /* Primer canvas.subtle */
  --surface-3:    #eaeef2;   /* stronger divider bg */
  --surface-hover:#f6f8fa;

  /* ---- borders (Primer neutral; structure = border + spacing) ---- */
  --border:        #d0d7de;  /* Primer border.default */
  --border-strong: #afb8c1;  /* Primer border.strong */
  --border-muted:  #e5e5e5;  /* in-content hairline */
  --border-ring:   rgba(0,0,0,0.08);   /* deprecated alias (Phase 10) */
  --border-ring-strong: rgba(0,0,0,0.12);

  /* ---- text (Primer fg scale; navy from logo wordmark) ---- */
  --text:   #0B1F3A;   /* primary (logo navy) */
  --text-1: #0B1F3A;   /* alias for Section-4 rebuild rules */
  --text-2: #57606a;   /* secondary (Primer fg.muted) */
  --text-3: #8c959f;   /* muted (Primer fg.subtle) */

  /* ---- single accent (logo teal): links / active / focus / primary / selected only ---- */
  --accent:        #0D9488;
  --accent-hover:  #0F766E;
  --accent-contrast:#ffffff;
  --accent-soft:   rgba(13,148,136,0.10);
  --accent-border: rgba(13,148,136,0.35);

  /* ---- nav ---- */
  --nav-bg:    #ffffff;
  --nav-text:  #0B1F3A;
  --nav-border:#d0d7de;
  --nav-h:     56px;
  --nav-active-bg:   rgba(13,148,136,0.08);   /* subtle teal tint, NOT giant gray block */
  --nav-active-text: #0B1F3A;

  /* ---- code ---- */
  --code-bg:   #f5f5f5;
  --code-text: #24292f;

  /* ---- semantic (real semantics ONLY: success / warning / danger) ---- */
  --success: #1a7f37; --success-bg: #dafbe1;
  --warning: #9a6700; --warning-bg: #fff8c5;
  --danger:  #cf222e; --danger-hover: #a40e26; --danger-bg: #ffebe9;
  --c-amber: #9a6700; --c-amber-bg: #fff8c5;
  --c-green: #1a7f37; --c-green-bg: #dafbe1;
  --c-blue:  #0D9488; --c-blue-bg:  rgba(13,148,136,0.08);
  --c-purple:#8b949e; --c-purple-bg:#f6f8fa;
  --c-red:   #cf222e; --c-red-bg:   #ffebe9;

  /* ---- elevation: default NONE; overlay shadow only for popover/modal ---- */
  --shadow-overlay: 0 8px 24px rgba(140,149,159,0.20);
  --shadow-sm:      0 1px 0 rgba(31,35,40,0.04);
  --shadow-ring:   0 0 0 1px rgba(0,0,0,0.08);   /* deprecated alias (Phase 10) */
  --shadow-md:     0 4px 12px rgba(0,0,0,0.08);   /* deprecated alias (Phase 10) */
  --shadow:        0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.08); /* deprecated */

  /* ---- radii (cap 8px; pill only for tag/status/segmented) ---- */
  --radius-s: 6px; --radius-sm: 6px;
  --radius-m: 6px; --radius-md: 6px;
  --radius-l: 8px; --radius-lg: 8px;
  --radius-xl:8px;
  --radius-c: 9999px; --radius-pill: 9999px;

  /* ---- spacing (8px scale) ---- */
  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-7:32px; --space-8:40px;
  --space-10:40px; --space-12:48px; --space-16:64px;

  /* ---- typography ---- */
  --font-sans: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --font-mono: "SFMono-Regular","Cascadia Code","JetBrains Mono",Consolas,"Liberation Mono",Menlo,monospace;
  --fs-page:24px; --lh-page:32px; --fw-page:600;
  --fs-section:18px; --lh-section:28px; --fw-section:600;
  --fs-body:14px; --lh-body:22px; --fw-body:400;
  --fs-secondary:13px; --fs-button:14px; --fw-button:500;

  /* ---- motion ---- */
  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --dur-fast:140ms; --dur-mid:200ms; --dur-slow:260ms;

  /* ---- layout (Primer PageLayout) ---- */
  --site-max-width:1200px;
  --settings-max-width:1080px;   /* settings shell */
  --shell-pad:24px;
  --sd-w:280px;
  --nav-w:220px;                 /* settings LEFT pane */
  --content-min:minmax(0,1fr);
  --shell-gap:32px;              /* pane↔content */
  --read-w:800px;
  --form-w:640px;                /* max form width (§38) */
  --maxw:var(--site-max-width);
  --thread-w:var(--read-w);
  --feed-w:760px;
  --side-w:300px;

  /* ---- backwards-compat aliases for 旧版论坛 inline styles ---- */
  --dz-bodybg:var(--bg); --dz-color:var(--accent); --dz-alink:var(--accent);
  --dz-ahot:var(--accent); --dz-fa:var(--text); --dz-fb:var(--text-2);
  --dz-fc:var(--text-3); --dz-fd:var(--text-3); --dz-ff:var(--surface-2);
  --dz-nvbg:var(--nav-bg); --dz-nvtxt:var(--nav-text); --dz-nvbga:var(--nav-bg);
  --dz-bga:var(--surface); --dz-bgb:var(--surface-2); --dz-bgc:var(--bg);
  --dz-bgd:var(--surface-2); --dz-bgf:var(--surface);
  --dz-bgfglass:var(--surface-3); --dz-bgbglass:rgba(0,0,0,.05);
  --dz-btnbg:var(--accent); --dz-btntxt:#ffffff; --dz-btnbga:var(--accent-hover);
  --dz-bordera:var(--border); --dz-borderb:var(--border); --dz-borderc:var(--border-strong); --dz-borderd:var(--border);
}

:root[data-theme="dark"] {
  color-scheme: dark;

  --bg:           #0d1117;
  --bg-elevated:  #161b22;
  --surface:      #0d1117;
  --surface-2:    #161b22;
  --surface-3:    #21262d;
  --surface-hover:#161b22;

  --border:        #30363d;
  --border-strong: #484f58;
  --border-muted:  #21262d;
  --border-ring:   rgba(255,255,255,0.08);
  --border-ring-strong: rgba(255,255,255,0.12);

  --text:   #e6edf3;
  --text-1: #e6edf3;
  --text-2: #8b949e;
  --text-3: #6e7681;

  --accent:        #2dd4bf;
  --accent-hover:  #5eead4;
  --accent-contrast:#0d1117;
  --accent-soft:   rgba(45,212,191,0.12);
  --accent-border: rgba(45,212,191,0.35);

  --nav-bg:    #0d1117;
  --nav-text:  #e6edf3;
  --nav-border:#30363d;
  --nav-active-bg:   rgba(45,212,191,0.12);
  --nav-active-text: #e6edf3;

  --code-bg:   #161b22;
  --code-text: #e6edf3;

  --success: #3fb950; --success-bg: rgba(63,185,80,.15);
  --warning: #d29922; --warning-bg: rgba(210,153,34,.15);
  --danger:  #f85149; --danger-hover: #ff7b72; --danger-bg: rgba(248,81,73,.15);
  --c-amber: #d29922; --c-amber-bg: rgba(210,153,34,.15);
  --c-green: #3fb950; --c-green-bg: rgba(63,185,80,.15);
  --c-blue:  #2dd4bf; --c-blue-bg:  rgba(45,212,191,.12);
  --c-purple:#8b949e; --c-purple-bg:rgba(139,148,158,.15);
  --c-red:   #f85149; --c-red-bg:   rgba(248,81,73,.15);

  --shadow-overlay: 0 8px 24px rgba(1,4,9,0.80);
  --shadow-sm:      0 1px 0 rgba(0,0,0,0.30);
  --shadow-ring:   0 0 0 1px rgba(255,255,255,0.08);
  --shadow-md:     0 6px 16px rgba(0,0,0,0.40);
  --shadow:        0 6px 16px rgba(0,0,0,0.40);

  --dz-bodybg:var(--bg); --dz-color:var(--accent); --dz-alink:var(--accent);
  --dz-ahot:var(--accent); --dz-fa:var(--text); --dz-fb:var(--text-2);
  --dz-fc:var(--text-3); --dz-fd:var(--text-3); --dz-ff:var(--surface-2);
  --dz-nvbg:var(--nav-bg); --dz-nvtxt:var(--nav-text); --dz-nvbga:var(--nav-bg);
  --dz-bga:var(--surface); --dz-bgb:var(--surface-2); --dz-bgc:var(--bg);
  --dz-bgd:var(--surface-2); --dz-bgf:var(--surface);
  --dz-bgfglass:var(--surface-3); --dz-bgbglass:rgba(0,0,0,.30);
  --dz-btnbg:var(--accent); --dz-btntxt:#0d1117; --dz-btnbga:var(--accent-hover);
  --dz-bordera:var(--border); --dz-borderb:var(--border); --dz-borderc:var(--border-strong); --dz-borderd:var(--border);
}

/* ===================== BASE ===================== */
body {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--text); background:var(--bg);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection { background:rgba(13,148,136,.18); color:var(--text); }

a { color:var(--accent); transition:color var(--dur-fast) var(--ease-out); text-decoration:none; }
a:hover { color:var(--accent-hover); text-decoration:none; }
.xg1,.xg2 { color:var(--text-3); }
.xi1,.xi2,.xi3 { color:var(--accent); }

/* fix icon font URL (stripped-install pointed at /tmp) */
@font-face {
  font-family:"dzicon";
  src:url('/static/image/common/dzicon.eot');
  src:url('/static/image/common/dzicon.eot?#iefix') format('eot'),
      url('/static/image/common/dzicon.woff2') format('woff2'),
      url('/static/image/common/dzicon.woff') format('woff');
  font-weight:normal; font-style:normal;
}

/* ===================== 旧版论坛 CORE SURFACES ===================== */
.bm { background:var(--surface); border:1px solid var(--border); }
.bm_h { background:var(--surface-2); border-color:var(--border); color:var(--text); }
.bm_h h2, .bm_h h3, .bm_h a { color:var(--text); }
.bm_h .o a, .bm_h .o { color:var(--text-3); }

.px, .pt, input[type="text"], input[type="password"], textarea, select {
  background:var(--surface-2); border:1px solid var(--border-strong);
  color:var(--text); border-radius:var(--radius-s);
  transition:border-color var(--dur-fast) var(--ease-out);
}
.px:focus, .pt:focus, textarea:focus, select:focus, input:focus {
  outline:none; border-color:var(--accent);
}
.px::placeholder, .pt::placeholder, textarea::placeholder { color:var(--text-3); }

.pn, input[type="submit"] {                      /* primary action = brand teal (spec §8) */
  background:var(--accent); color:var(--accent-contrast);
  border:1px solid var(--accent); border-radius:var(--radius-s);
  transition:transform var(--dur-fast) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
}
.sbtn, button, input[type="button"] {              /* secondary = neutral surface */
  background:var(--surface); color:var(--text);
  border:1px solid var(--border-strong); border-radius:var(--radius-s);
  transition:transform var(--dur-fast) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
}
.pn:hover, input[type="submit"]:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--accent-contrast); }
.sbtn:hover, button:hover, input[type="button"]:hover { background:var(--surface-2); border-color:var(--border-strong); color:var(--text); }
.pn:active, .sbtn:active, button:active, input[type="submit"]:active, input[type="button"]:active {
  transform:scale(.97);
}

/* tables */
table { color:var(--text); }
.tbl td, .tbl th, .dt td, .dt th { border-color:var(--border); }
.tbmu { border-bottom:1px solid var(--border); color:var(--text-2); }

/* post message base color */
.t_f, .pcb, .t_f td { color:var(--text); }

/* author / meta lines */
.authi, .xg1, .pbn { color:var(--text-3); }
.pi, .pls, .plc { color:var(--text); }

/* ============================================================
   TOP NAVIGATION — redesigned (compact 56px, flexbox, refined)
   ============================================================ */

/* ---- override the fixed-width <style> block that header_common.php emits
   whenever the style var `top_nav_widthauto` is falsy. That block ships
   `.dz_btm_layer{width:1200px}` + `.dz_btm_layer .dz_layer_nav{width:609px}`
   and is injected AFTER this stylesheet, so !important is required to win.
   Without this the bar overflows horizontally below 1200px and the nav is
   pinned to a dead 609px column. ---- */
.dz_btm_layer {
  width: auto !important;
  max-width: 100% !important;
}
.dz_btm_layer .dz_layer_nav {
  width: auto !important;
}
/* 旧版论坛 core also pins .dz_btm_layer to min-width:1200px, which defeats
   max-width and forces a horizontal scrollbar on every screen under 1200px. */
.dz_btm_layer,
.dz_btm_layer.dz_nav {
  min-width: 0 !important;
}

/* ---- bar container ---- */
.dz_layer_top {
  background: var(--nav-bg);
  border-bottom: 1px solid var(--border);
  height: 56px;
}
.dz_btm_layer {
  height: 56px;
}

/* ---- layout: the inner content row carries BOTH .dz_btm_layer and .dz_nav
   on the SAME element (see header.php line 101). They are NOT parent/child,
   so the compound selector (.dz_btm_layer.dz_nav) is required. ---- */
.dz_btm_layer.dz_nav {
  display: flex !important;
  align-items: center;
  height: 56px;
  width: 100% !important;
  max-width: var(--site-max-width) !important;
  margin: 0 auto;
  padding: 0 var(--shell-pad, 24px);
  gap: 6px;
  box-sizing: border-box;
}
/* hide the legacy .clear spacer so it doesn't become a flex item */
.dz_btm_layer.dz_nav .clear { display: none !important; }

/* ---- LOGO ---- */
.dz_nav .dz_nav_logo .dzlogo::before { content: none; }
.dz_nav .dz_nav_logo img.boardlogo { display: none !important; }
.dz_nav .dz_nav_logo { margin-right: 20px; }

.llmcn-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  text-decoration: none;
  color: var(--text);
  white-space: nowrap;
  transition: opacity var(--dur-fast) var(--ease-out);
}
.llmcn-logo:hover { opacity: .82; }
.llmcn-logo-mark {
  width: 28px; height: 28px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  border-radius: 7px;
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.llmcn-logo-mark svg { width: 18px; height: 18px; display: block; }
.llmcn-logo-text {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.05;
  letter-spacing: 0;
}
.llmcn-logo-name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: var(--text);
}
.llmcn-logo-sub {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  color: var(--text-3);
  margin-top: 1px;
}

/* ---- NAV LINKS ---- */
.dz_layer_nav {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.dz_layer_nav ul {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 2px;
}
.dz_layer_nav ul li {
  position: relative;
}
.dz_layer_nav ul li a {
  display: inline-flex;
  align-items: center;
  height: 56px;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 500;
  color: var(--nav-text);
  text-decoration: none;
  border-radius: var(--radius-s);
  transition: color var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out);
}
/* active page indicator — animated underline */
.dz_layer_nav ul li.a::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 4px;
  height: 2px;
  border-radius: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--dur-mid) var(--ease-out);
}
.dz_layer_nav ul li.a::after { transform: scaleX(1); }
.dz_layer_nav ul li.a a {
  color: var(--accent);
  font-weight: 600;
}
/* hover state */
@media (hover:hover) and (pointer:fine) {
  .dz_layer_nav ul li a:hover {
    background: var(--surface-2);
    color: var(--text);
  }
  .dz_layer_nav ul li.a a:hover {
    color: var(--accent);
    background: transparent;
  }
}

/* ---- RIGHT GROUP (search · theme · user/login) ---- */
.dz_btm_layer .dz_layer_dl {
  display: flex !important;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin-left: 12px;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* search input */
.header-right .header-searcher {
  margin-right: 0;
}
.header-right .header-searcher .searcher-wrap {
  display: flex;
  align-items: center;
}
.header-right .header-searcher .search-input {
  width: 180px !important;
  height: 32px;
  font-size: 13px;
  border-radius: var(--radius-s);
  background: var(--surface-2);
  border: 1px solid var(--border);
  transition: width var(--dur-mid) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.header-right .header-searcher .search-input:focus {
  width: 240px !important;
  border-color: var(--accent);
  background: var(--surface);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
  outline: none;
}
.header-right .header-searcher .search-input::placeholder { color: var(--text-3); }
.header-right .header-searcher .search-icon {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-3);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.header-right .header-searcher .search-icon:hover {
  background: var(--surface-2);
  color: var(--accent);
}

/* theme toggle button */
.llmcn-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: var(--radius-s);
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-2);
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out);
}
.llmcn-theme-toggle svg { width: 16px; height: 16px; display: block; }
.llmcn-theme-toggle:active { transform: scale(.93); }
@media (hover:hover) and (pointer:fine) {
  .llmcn-theme-toggle:hover { color: var(--accent); border-color: var(--accent); }
}
.llmcn-theme-toggle .icon-sun { display: none; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-sun { display: block; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-moon { display: none; }

/* placement fallback for non-dz pages that use .hdc */
.hdc .llmcn-theme-toggle { float: right; margin: 12px 0 0 10px; }

/* RSS feed icon (same size language as theme toggle) */
.llmcn-feed {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: var(--radius-s);
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-2);
  text-decoration: none;
  transition: transform var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
}
.llmcn-feed svg { width: 15px; height: 15px; display: block; }
.llmcn-feed:active { transform: scale(.93); }
@media (hover:hover) and (pointer:fine) {
  .llmcn-feed:hover { color: var(--accent); border-color: var(--accent); }
}
.hdc .llmcn-feed { float: right; margin: 12px 0 0 10px; }

/* ---- LOGIN BUTTON (guest CTA) ---- */
.dz_btm_layer .header-user-login .login_btn {
  background: var(--accent);
  border-radius: var(--radius-s);
  padding: 0 16px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  margin-right: 0;
  transition: background var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.dz_btm_layer .header-user-login .login_btn a {
  color: var(--accent-contrast);
  margin: 0;
  line-height: 1;
}
.dz_btm_layer .header-user-login .login_btn:hover {
  background: var(--accent-hover);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 24%, transparent);
}
.dz_btm_layer .header-user-login .login_btn:active { transform: scale(.96); }

/* ---- USER AREA (logged-in) ---- */
.dz_btm_layer .header-user-avatar img {
  border: 1px solid var(--border);
  border-radius: var(--radius-s);
}
.dz_btm_layer .header-user {
  position: relative;
}
.dz_btm_layer .header-user-info {
  display: flex;
  align-items: center;
}
.dz_btm_layer .header-user-avatar a {
  display: block;
  line-height: 0;
}
/* user dropdown card polish */
.dz_btm_layer .user-card {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow);
  background: var(--bg-elevated);
  min-width: 240px;
}
.dz_btm_layer .user-card-bottom {
  border-top: 1px solid var(--border);
  padding-top: 10px;
  margin-top: 8px;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 1200px) {
  .dz_btm_layer { padding: 0 14px; }
  .dz_layer_nav ul li a { padding: 0 11px; font-size: 13px; }
  .header-right .header-searcher .search-input { width: 150px !important; }
  .header-right .header-searcher .search-input:focus { width: 200px !important; }
  .llmcn-logo-sub { display: none; }
}
@media (max-width: 900px) {
  .llmcn-logo-text { display: none; }
  .dz_layer_nav ul li a { padding: 0 9px; font-size: 13px; }
}

/* ---- MOBILE HAMBURGER MENU (< 768px) ---- */
.llmcn-mob-toggle {
  display: none !important;
  align-items: center; justify-content: center;
  width: 32px; height: 32px;
  border-radius: var(--radius-s);
  background: transparent; border: 1px solid var(--border);
  color: var(--text-2); cursor: pointer;
  transition: color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
  flex: 0 0 auto; position: relative; z-index: 100;
}
.llmcn-mob-toggle svg { width: 18px; height: 18px; display: block; }
.llmcn-mob-toggle[aria-expanded="true"] {
  color: var(--accent); border-color: var(--accent);
}
@media (hover:hover) and (pointer:fine) {
  .llmcn-mob-toggle:hover { color: var(--accent); border-color: var(--accent); }
}

@media (max-width: 768px) {
  /* 旧版论坛 core ships body{min-width:1200px}; release it so the bar can
     actually shrink instead of forcing a horizontal scrollbar. */
  body { min-width: 0 !important; }

  .llmcn-mob-toggle { display: inline-flex !important; }

  /* hide nav by default, show when toggled */
  .dz_layer_nav {
    position: absolute !important;
    top: 52px !important; left: 0 !important; right: 0 !important;
    background: var(--bg-elevated, var(--bg));
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow);
    flex: none !important;
    max-height: 0 !important; overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: max-height 0.3s ease, opacity 0.2s ease,
                visibility 0s linear 0.2s;
    visibility: hidden !important;
    z-index: 99 !important;
  }
  .dz_layer_nav ul {
    flex-direction: column !important; padding: 8px 0 !important; gap: 0 !important;
  }
  .dz_layer_nav ul li a {
    height: auto !important; width: 100% !important;
    padding: 12px 20px !important;
    font-size: 14px !important; border-radius: 0 !important;
    justify-content: space-between !important;
  }
  .dz_layer_nav ul li.a::after { display: none !important; }
  .dz_layer_nav ul li.a a {
    color: var(--accent) !important; background: color-mix(in srgb, var(--accent) 6%, transparent) !important;
  }

  .dz_btm_layer { padding: 0 10px !important; height: 52px !important; position: relative !important; }
  .dz_btm_layer.dz_nav { height: 52px !important; }
  .llmcn-logo { height: 52px !important; }
  .llmcn-logo-mark { width: 24px !important; height: 24px !important; border-radius: 6px !important; }
  .llmcn-logo-mark svg { width: 16px !important; height: 16px !important; }
  .llmcn-theme-toggle, .llmcn-feed { width: 28px !important; height: 28px !important; }
  .dz_btm_layer .header-user-login .login_btn { height: 28px !important; padding: 0 12px !important; font-size: 12px !important; }
  .hdc .llmcn-theme-toggle, .hdc .llmcn-feed { margin-top: 10px !important; }
}

/* ===================== BUTTONS / PRESS FEEDBACK ===================== */
.pn:active, .sbtn:active, button:active,
input[type="submit"]:active, input[type="button"]:active { transform:scale(.97); }
a:active .pn, a:active .sbtn { transform:scale(.97); }

/* ===================== CARDS / SURFACES ===================== */
.bm { border-radius:var(--radius-m); transition:transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out); }

/* ===================== TABS / SUB-NAV ===================== */
.tbn li a, .tb a, #mu a { transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }

/* ===================== POP / DROPDOWN ===================== */
.p_pop, .p_pof, .tip { transition:opacity var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out); }

/* ===================== FORUM LIST — staggered entrance ===================== */
.fl.bm > .bm { animation:llmcn-rise var(--dur-slow) var(--ease-out) both; }
.fl.bm > .bm:nth-child(1){animation-delay:0ms}
.fl.bm > .bm:nth-child(2){animation-delay:40ms}
.fl.bm > .bm:nth-child(3){animation-delay:80ms}
.fl.bm > .bm:nth-child(4){animation-delay:120ms}
.fl.bm > .bm:nth-child(5){animation-delay:160ms}
@keyframes llmcn-rise { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

/* ===================== FOOTER ===================== */
#ft, .dz_footc { color:var(--text-2); }
#ft a, .dz_footc a { color:var(--text-2); }
#ft a:hover, .dz_footc a:hover { color:var(--accent); }

/* ===================== HOVER-ONLY ENHANCEMENTS ===================== */
@media (hover:hover) and (pointer:fine) {
  .dz_layer_nav ul li a:hover { background:var(--surface-2); border-radius:var(--radius-s); }
  .bm:hover { transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--accent); }
  .pn:hover, .sbtn:hover, button:hover,
  input[type="submit"]:hover, input[type="button"]:hover { box-shadow:var(--shadow-sm); }
}

/* ===================== HOMEPAGE — HERO (flat) ===================== */
.llmcn-hero {
  margin:0 0 18px; border-radius:var(--radius-xl); overflow:hidden;
  background:var(--surface); border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  animation:llmcn-rise var(--dur-slow) var(--ease-out) both;
}
.llmcn-hero-inner { padding:30px 30px 26px; }
.llmcn-hero-badge {
  display:inline-block; font-size:12px; letter-spacing:.5px; color:var(--accent);
  background:var(--c-blue-bg); border:1px solid var(--border-strong);
  padding:4px 10px; border-radius:var(--radius-c); margin-bottom:14px;
}
.llmcn-hero-title { font-size:26px; line-height:1.25; font-weight:700; margin:0 0 8px; color:var(--text); }
.llmcn-hero-sub { font-size:14px; color:var(--text-2); margin:0 0 18px; }
.llmcn-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.llmcn-hero-stats { display:flex; flex-wrap:wrap; gap:10px 28px; }
.llmcn-stat { display:flex; flex-direction:column; }
.llmcn-stat b { font-size:22px; font-weight:700; color:var(--text); line-height:1.1; }
.llmcn-stat span { font-size:12px; color:var(--text-3); margin-top:2px; }

/* buttons (LLMCN) */
.llmcn-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 18px; border-radius:var(--radius-m); font-size:14px; font-weight:500;
  color:var(--text); background:var(--surface-2); border:1px solid var(--border-strong);
  text-decoration:none; cursor:pointer;
  transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.llmcn-btn:active { transform:scale(.97); }
.llmcn-btn-primary { color:var(--accent-contrast); background:var(--accent); border-color:var(--accent); }
.llmcn-btn-sm { padding:6px 14px; font-size:13px; }
@media (hover:hover) and (pointer:fine) {
  .llmcn-btn:hover { transform:translateY(-1px); border-color:var(--accent); }
  .llmcn-btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); box-shadow:var(--shadow-sm); }
}

/* ===================== HOMEPAGE — SIDEBAR MODULES ===================== */
.llmcn-mod {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m);
  padding:14px 16px; margin-bottom:16px;
  transition:transform var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out);
}
@media (hover:hover) and (pointer:fine) {
  .llmcn-mod:hover { border-color:var(--border-strong); }
}
.llmcn-mod-hd { display:flex; align-items:center; gap:8px; font-size:15px; font-weight:600; color:var(--text); margin-bottom:12px; }
.llmcn-mod-ico {
  width:22px; height:22px; border-radius:7px; display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-style:normal; font-weight:700; color:var(--accent); background:var(--surface-2);
}
.llmcn-ico-reward { background:var(--c-amber-bg); color:var(--c-amber); }
.llmcn-ico-hot    { background:var(--c-red-bg);   color:var(--c-red); }
.llmcn-ico-rec    { background:var(--c-green-bg); color:var(--c-green); }
.llmcn-mod-more { margin-left:auto; font-size:12px; font-weight:400; color:var(--text-3); text-decoration:none; }
.llmcn-mod-more:hover { color:var(--accent); }
.llmcn-mod-list { list-style:none; margin:0; padding:0; counter-reset:llmcnrank; }
.llmcn-mod-list li { counter-increment:llmcnrank; display:flex; align-items:center; gap:8px; padding:7px 0; border-top:1px solid var(--border); }
.llmcn-mod-list li:first-child { border-top:none; }
.llmcn-mod-list li::before { content:counter(llmcnrank); flex:0 0 auto; width:18px; text-align:center; font-size:12px; font-weight:600; color:var(--text-3); }
.llmcn-mod-list li a { flex:1 1 auto; min-width:0; color:var(--text); font-size:13px; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.llmcn-mod-list li a:hover { color:var(--accent); }
.llmcn-mod-list li em { flex:0 0 auto; font-style:normal; font-size:12px; color:var(--text-3); }
.llmcn-b-reward { flex:0 0 auto; font-size:11px; font-weight:600; color:var(--c-amber); background:var(--c-amber-bg); border:1px solid var(--border-strong); padding:1px 6px; border-radius:var(--radius-c); }
.llmcn-mod-recruit .llmcn-mod-txt { font-size:13px; color:var(--text-2); line-height:1.6; margin:0 0 12px; }
.llmcn-mod-recruit .llmcn-mod-txt b { color:var(--text); font-weight:600; }

/* ===================== REDUCED MOTION ===================== */
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ===================== DAILY SIGN-IN ===================== */
.llmcn-sign-wrap { margin:0 0 20px; }
.llmcn-sign-main {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-xl);
  overflow:hidden; margin-bottom:16px; animation:llmcn-rise var(--dur-slow) var(--ease-out) both;
}
.llmcn-sign-hd { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 26px 0; }
.llmcn-sign-hd-t { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; }
.llmcn-sign-hd-t h1 { font-size:20px; font-weight:700; color:var(--text); margin:0; line-height:1.2; }
.llmcn-sign-hd-t em { font-style:normal; font-size:12px; color:var(--text-3); }
.llmcn-sign-dot { width:8px; height:8px; border-radius:50%; background:var(--c-green); box-shadow:0 0 0 4px var(--c-green-bg); }
.llmcn-sign-hd-n { text-align:right; flex:0 0 auto; }
.llmcn-sign-hd-n b { display:block; font-size:22px; font-weight:700; color:var(--text-2); line-height:1.1; }
.llmcn-sign-hd-n span { font-size:12px; color:var(--text-3); }
.llmcn-sign-body { display:flex; flex-wrap:wrap; gap:20px; padding:18px 26px 20px; }
.llmcn-sign-left { flex:1 1 380px; min-width:0; }
.llmcn-sign-right { flex:0 0 auto; display:flex; flex-wrap:wrap; gap:12px 28px; align-items:center; }   /* §29 definition-list row, no cards */
.llmcn-sign-kpi { background:none; border:0; border-radius:0; padding:0; min-width:0; display:flex; flex-direction:column; }
.llmcn-sign-kpi b { display:block; font-size:16px; font-weight:600; color:var(--text); line-height:1.2; }
.llmcn-sign-kpi span { font-size:12px; color:var(--text-3); }
.llmcn-sign-lead { font-size:14px; color:var(--text-2); margin:0 0 12px; }
.llmcn-sign-lead b { color:var(--text); font-weight:600; }
.llmcn-mood { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.llmcn-mood-i input { position:absolute; opacity:0; pointer-events:none; }
.llmcn-mood-i span {
  display:inline-block; font-size:13px; color:var(--text-2); cursor:pointer;
  background:transparent; border:1px solid var(--border); border-radius:var(--radius-s); padding:5px 12px;   /* §31 no gray pill by default */
  transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.llmcn-mood-i input:checked + span { color:var(--text); border-color:var(--accent); background:var(--accent-soft); }
.llmcn-mood-i span:active { transform:scale(.98); }
@media (hover:hover) and (pointer:fine) { .llmcn-mood-i span:hover { border-color:var(--border-strong); color:var(--text); } }
.llmcn-sign-note { display:block; width:100%; box-sizing:border-box; margin-bottom:14px; background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:var(--radius-m); padding:9px 12px; font-size:13px; transition:border-color var(--dur-fast) var(--ease-out); }
.llmcn-sign-note::placeholder { color:var(--text-3); }
.llmcn-sign-note:focus { outline:none; border-color:var(--accent); }
.llmcn-btn-lg { padding:11px 34px; font-size:15px; font-weight:600; }
.llmcn-sign-done { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.llmcn-sign-check {
  flex:0 0 auto; width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:24px; color:#fff; background:var(--c-green);
  animation:llmcn-pop var(--dur-slow) var(--ease-out) both;
}
@keyframes llmcn-pop { from{opacity:0;transform:scale(.85)} to{opacity:1;transform:scale(1)} }
.llmcn-sign-done-t { font-size:17px; font-weight:700; color:var(--text); margin:0 0 2px; }
.llmcn-sign-done-s { font-size:13px; color:var(--text-2); margin:0; }
.llmcn-sign-done-s b { color:var(--text); }
.llmcn-sign-guest p { font-size:14px; color:var(--text-2); margin:0 0 14px; }
.llmcn-sign-guest b { color:var(--text); }
.llmcn-ladder { display:flex; flex-wrap:wrap; gap:6px 18px; padding:0 26px 20px; }   /* §30 compact list, not card grid */
.llmcn-ladder-i { flex:0 0 auto; min-width:0; text-align:left; padding:2px 0; background:none; border:0; border-radius:0; display:flex; align-items:baseline; gap:6px; }
.llmcn-ladder-i.on { background:none; border:0; }
.llmcn-ladder-i b { font-size:13px; font-weight:600; color:var(--text); }
.llmcn-ladder-i span { font-size:12px; color:var(--text-2); }
.llmcn-ladder-i em { font-style:normal; font-size:11px; color:var(--text-3); }
.llmcn-sign-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.llmcn-sign-grid .llmcn-mod { margin:0; }

/* calendar */
.llmcn-cal-week, .llmcn-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.llmcn-cal-week { margin-bottom:6px; }
.llmcn-cal-week span { text-align:center; font-size:11px; color:var(--text-3); }
.llmcn-cal-d { display:flex; align-items:center; justify-content:center; aspect-ratio:1/1; font-style:normal; font-size:12px; border-radius:8px; border:1px solid transparent; color:var(--text-3); text-decoration:none; transition:transform var(--dur-fast) var(--ease-out); }
.llmcn-cal-d.pad { visibility:hidden; }
.llmcn-cal-d.done { background:var(--success-bg); border-color:var(--success); color:var(--success); font-weight:600; }
.llmcn-cal-d.makeup { background:var(--warning-bg); border-color:var(--warning); color:var(--warning); }
.llmcn-cal-d.canmakeup { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); cursor:pointer; }
.llmcn-cal-d.miss { background:var(--surface-2); border-color:var(--border); color:var(--text-3); }
.llmcn-cal-d.future { color:var(--text-3); opacity:.5; }
.llmcn-cal-d.istoday { box-shadow:0 0 0 2px var(--accent); }
.llmcn-cal-d.canmakeup:active { transform:scale(.94); }
@media (hover:hover) and (pointer:fine) { .llmcn-cal-d.canmakeup:hover { transform:translateY(-1px); } }
.llmcn-cal-legend { margin:12px 0 0; font-size:11px; color:var(--text-3); display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; }
.llmcn-cal-legend .dot { width:9px; height:9px; border-radius:3px; display:inline-block; margin-right:4px; }
.llmcn-cal-legend .dot.done { background:var(--success); }
.llmcn-cal-legend .dot.makeup { background:var(--warning); }
.llmcn-cal-legend .dot.canmakeup { background:var(--accent); }
.llmcn-cal-legend .dot.miss { background:var(--border-strong); }

/* today flow */
.llmcn-flow { list-style:none; margin:0; padding:0; }
.llmcn-flow li { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 0; border-top:1px dashed var(--border); font-size:13px; }
.llmcn-flow li:first-child { border-top:none; }
.llmcn-flow-rank { flex:0 0 auto; font-size:11px; color:var(--text-3); min-width:26px; }
.llmcn-flow-u { color:var(--text); text-decoration:none; font-weight:600; }
.llmcn-flow-u:hover { color:var(--accent); }
.llmcn-flow-mood { font-size:12px; color:var(--text-2); }
.llmcn-flow-note { font-size:12px; color:var(--text-3); flex:1 1 100%; padding-left:34px; }
.llmcn-flow-meta { margin-left:auto; font-style:normal; font-size:11px; color:var(--text-3); }

/* ranks */
.llmcn-rank { list-style:none; margin:0; padding:0; counter-reset:llmcnrk; }
.llmcn-rank li { counter-increment:llmcnrk; display:flex; align-items:center; gap:8px; padding:7px 0; border-top:1px dashed var(--border); font-size:13px; }
.llmcn-rank li:first-child { border-top:none; }
.llmcn-rank li::before { content:counter(llmcnrk); flex:0 0 20px; height:20px; line-height:20px; text-align:center; font-size:11px; font-weight:700; border-radius:6px; background:var(--surface-2); color:var(--text-3); border:1px solid var(--border); }
.llmcn-rank li:nth-child(1)::before { background:var(--accent); color:var(--accent-contrast); border-color:transparent; }
.llmcn-rank li:nth-child(2)::before { background:var(--text-2); color:#fff; border-color:transparent; }
.llmcn-rank li:nth-child(3)::before { background:var(--surface-2); color:var(--text-2); border-color:var(--border); }
.llmcn-rank li a { color:var(--text); text-decoration:none; }
.llmcn-rank li a:hover { color:var(--accent); }
.llmcn-rank li em { margin-left:auto; font-style:normal; font-size:12px; color:var(--text-3); }
.llmcn-empty { font-size:13px; color:var(--text-3); margin:6px 0 0; }
.llmcn-sign-rule { margin-top:16px; padding:14px 18px; font-size:12px; line-height:1.8; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-m); color:var(--text-3); }
.llmcn-sign-rule b { display:block; color:var(--text); font-size:13px; margin-bottom:4px; }
.llmcn-mod-sign .llmcn-signbox { text-align:center; padding:4px 0 2px; }
.llmcn-mod-sign .llmcn-signbox .n { font-size:26px; font-weight:700; color:var(--c-amber); line-height:1.1; }
.llmcn-mod-sign .llmcn-signbox .l { font-size:12px; color:var(--text-3); margin-bottom:12px; display:block; }
.llmcn-mod-sign .llmcn-signbox .s { font-size:12px; color:var(--text-2); margin-top:10px; display:block; }
.llmcn-mod-sign .llmcn-signbox .s b { color:var(--c-green); }

/* ===================== COMMUNITY HUB ===================== */
.llmcn-hub-block { margin-bottom:18px; animation:llmcn-rise var(--dur-slow) var(--ease-out) both; }
.llmcn-hub-hd-sub { font-size:12px; font-weight:400; color:var(--text-3); margin-left:8px; }
.llmcn-hub-hero {
  margin:0 0 18px; border-radius:var(--radius-xl); overflow:hidden;
  background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-sm);
  animation:llmcn-rise var(--dur-slow) var(--ease-out) both;
}
.llmcn-hub-hero-inner { padding:32px 32px 28px; }
.llmcn-hub-title { font-size:26px; line-height:1.25; font-weight:700; margin:0 0 8px; color:var(--text); }
.llmcn-hub-sub { font-size:14px; color:var(--text-2); margin:0 0 18px; max-width:680px; }

/* resource grid */
.llmcn-hub-res { display: block; }
.llmcn-hub-card {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 4px; min-height: 64px;
  border-bottom: 1px solid var(--border);
  background: transparent; border-radius: 0;
  text-decoration: none; color: var(--text);
  transition: background-color var(--dur-fast), border-radius var(--dur-fast);
}
.llmcn-hub-card:hover { background: var(--surface-2); border-radius: var(--radius-s); }
.llmcn-hub-card:active { transform: none; }
.llmcn-hub-card-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.llmcn-hub-card-name { font-size: 14px; font-weight: 600; color: var(--text); display: flex; align-items: center; gap: 6px; }
.llmcn-hub-card-badge { font-size: 10px; font-weight: 600; color: var(--accent); background: var(--c-blue-bg); border: 1px solid var(--border-strong); border-radius: var(--radius-c); padding: 0 6px; }
.llmcn-hub-card-desc { font-size: 12px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.llmcn-hub-card-go { flex: 0 0 auto; color: var(--text-3); font-size: 15px; transition: color var(--dur-fast); }
.llmcn-hub-card:hover .llmcn-hub-card-go { color: var(--accent); }

/* tag wall */
.llmcn-hub-tags { display:flex; flex-wrap:wrap; gap:9px; }
.llmcn-tag {
  display:inline-flex; align-items:center; gap:6px; text-decoration:none;
  color:var(--text-2); background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-c); padding:5px 12px; line-height:1.2;
  transition:transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.llmcn-tag i { font-style:normal; font-size:11px; color:var(--text-3); }
.llmcn-tag-sm { font-size:12px; }
.llmcn-tag-md { font-size:13px; color:var(--text); }
.llmcn-tag-lg { font-size:15px; color:var(--text); border-color:var(--border-strong); background:var(--surface-2); }
.llmcn-tag-xl { font-size:17px; font-weight:600; color:var(--accent); border-color:var(--accent); background:var(--c-blue-bg); }
.llmcn-tag:active { transform:scale(.95); }
@media (hover:hover) and (pointer:fine) { .llmcn-tag:hover { transform:translateY(-1px); border-color:var(--accent); color:var(--text); } }
.llmcn-hub-tip { font-size:12px; color:var(--text-3); margin:14px 0 0; }
.llmcn-hometags { display:flex; flex-wrap:wrap; gap:8px; }

/* ranks (3 columns) */
.llmcn-hub-ranks { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.llmcn-hub-rank-hd { display:flex; align-items:center; gap:7px; font-size:14px; font-weight:600; color:var(--text); margin-bottom:10px; }
.llmcn-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.dot-coin    { background:var(--c-amber); box-shadow:0 0 0 3px var(--c-amber-bg); }
.dot-contrib { background:var(--c-green); box-shadow:0 0 0 3px var(--c-green-bg); }
.dot-prestige{ background:var(--c-purple);box-shadow:0 0 0 3px var(--c-purple-bg); }
@media (max-width:768px) { .llmcn-hub-ranks { grid-template-columns:1fr; } }

/* ===================== BOUNTY BOARD ===================== */
.llmcn-bounty-hero { background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-sm); }
.llmcn-bounty-tabs { display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.llmcn-bounty-tabs-label { font-size:12px; color:var(--text-3); margin-right:2px; }
.llmcn-btab { font-size:13px; color:var(--text-2); text-decoration:none; padding:6px 14px; border-radius:var(--radius-c); border:1px solid var(--border); background:var(--surface-2); transition:transform var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.llmcn-btab:active { transform:scale(.97); }
.llmcn-btab.on { color:var(--text); background:var(--c-amber-bg); border-color:var(--c-amber); }
@media (hover:hover) and (pointer:fine) { .llmcn-btab:hover { transform:translateY(-1px); color:var(--text); border-color:var(--accent); } .llmcn-btab.on:hover { border-color:var(--c-amber); } }
.llmcn-bounty-list { list-style:none; margin:0; padding:0; }
.llmcn-bounty { display:flex; align-items:flex-start; gap:14px; padding:14px 4px; border-top:1px solid var(--border); transition:background-color var(--dur-fast) var(--ease-out); }
.llmcn-bounty:first-child { border-top:none; }
@media (hover:hover) and (pointer:fine) { .llmcn-bounty:hover { background:var(--surface-2); } }
.llmcn-bounty-amt { flex:0 0 auto; width:62px; min-height:54px; border-radius:var(--radius-m); display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--surface-2); border:1px solid var(--border); color:var(--text-3); text-align:center; }
.llmcn-bounty-amt.has { background:var(--c-amber-bg); border-color:var(--c-amber); }
.llmcn-bounty-amt b { font-size:22px; font-weight:800; color:var(--c-amber); line-height:1; }
.llmcn-bounty-amt span { font-size:11px; color:var(--text-3); margin-top:2px; }
.llmcn-bounty-amt-t { font-size:12px; font-weight:600; color:var(--c-amber); }
.llmcn-bounty-body { flex:1 1 auto; min-width:0; }
.llmcn-bounty-title { display:block; font-size:15px; font-weight:600; color:var(--text); text-decoration:none; margin-bottom:6px; transition:color var(--dur-fast) var(--ease-out); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.llmcn-bounty-title:hover { color:var(--accent); }
.llmcn-bounty-meta { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:12px; color:var(--text-3); }
.llmcn-bounty-author { color:var(--text-2); font-weight:500; }
.llmcn-bounty-dot { color:var(--border-strong); }
.llmcn-bounty-status { flex:0 0 auto; align-self:center; }
.llmcn-bpill { display:inline-block; font-size:11px; font-weight:600; padding:3px 10px; border-radius:var(--radius-c); white-space:nowrap; }
.llmcn-bpill.solved   { color:var(--c-green);  background:var(--c-green-bg);  border:1px solid var(--c-green); }
.llmcn-bpill.answered{ color:var(--c-blue);   background:var(--c-blue-bg);   border:1px solid var(--c-blue); }
.llmcn-bpill.waiting { color:var(--c-amber);  background:var(--c-amber-bg);  border:1px solid var(--c-amber); }
@media (max-width:560px) { .llmcn-bounty { flex-wrap:wrap; } .llmcn-bounty-status { margin-left:76px; } }
.llmcn-bstats { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 20px; }
.llmcn-bstat { display:flex; flex-direction:column; align-items:flex-start; min-width:96px; padding:10px 16px; background:var(--surface-2); border:1px solid var(--border-strong); border-radius:var(--radius-m); }
.llmcn-bstat b { font-size:22px; font-weight:800; line-height:1.1; color:var(--c-amber); font-variant-numeric:tabular-nums; }
.llmcn-bstat span { margin-top:3px; font-size:12px; color:var(--text-3); }
.llmcn-bstat:first-child b { color:var(--c-amber); }
.llmcn-bstat:nth-child(2) b { color:var(--c-blue); }
.llmcn-bstat:nth-child(3) b { color:var(--c-green); }
.llmcn-bstat:nth-child(4) b { color:var(--text-2); }
a.llmcn-bounty-author { text-decoration:none; }
@media (hover:hover) and (pointer:fine) { a.llmcn-bounty-author:hover { color:var(--accent); } }
.llmcn-bounty-empty { text-align:center; padding:44px 20px 40px; }
.llmcn-bounty-empty-icon { font-size:40px; line-height:1; margin-bottom:12px; opacity:.85; }
.llmcn-bounty-empty .llmcn-empty { margin-bottom:18px; font-size:14px; }
.llmcn-bounty-tip { margin:18px 0 0; padding:12px 14px; font-size:12px; line-height:1.7; color:var(--text-3); background:var(--c-amber-bg); border:1px solid var(--c-amber); border-left:3px solid var(--c-amber); border-radius:var(--radius-m); }
@media (max-width:560px) { .llmcn-bstat { flex:1 1 calc(50% - 5px); min-width:0; } }
a.llmcn-stat-link { text-decoration:none; transition:transform var(--dur-fast) var(--ease-out); }
@media (hover:hover) and (pointer:fine) { a.llmcn-stat-link:hover { transform:translateY(-2px); } a.llmcn-stat-link:hover b { color:var(--c-amber); } }
a.llmcn-stat-link:active { transform:scale(.97); }

/* ===================== MARKDOWN POST BODY ===================== */
.t_f.md-body { line-height:1.75; font-size:15px; word-wrap:break-word; }
.t_f.md-body > *:first-child { margin-top:0; }
.t_f.md-body h1, .t_f.md-body h2, .t_f.md-body h3, .t_f.md-body h4 { color:var(--text); font-weight:700; line-height:1.3; margin:1.4em 0 .6em; }
.t_f.md-body h1 { font-size:1.6em; padding-bottom:.3em; border-bottom:1px solid var(--border); }
.t_f.md-body h2 { font-size:1.35em; padding-bottom:.3em; border-bottom:1px solid var(--border); }
.t_f.md-body h3 { font-size:1.15em; }
.t_f.md-body h4 { font-size:1em; }
.t_f.md-body p { margin:0 0 1em; }
.t_f.md-body ul, .t_f.md-body ol { margin:0 0 1em; padding-left:1.6em; }
.t_f.md-body li { margin:.3em 0; }
.t_f.md-body blockquote { border-left:3px solid var(--border-strong); padding:.4em 1em; color:var(--text-2); background:var(--surface-2); margin:0 0 1em; border-radius:0 var(--radius-s) var(--radius-s) 0; }
.t_f.md-body a { color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.t_f.md-body img { max-width:100%; border-radius:var(--radius-s); }
.t_f.md-body hr { border:none; border-top:1px solid var(--border); margin:1.5em 0; }
.t_f.md-body table { border-collapse:collapse; width:100%; margin:0 0 1em; font-size:.95em; }
.t_f.md-body th, .t_f.md-body td { border:1px solid var(--border); padding:6px 10px; text-align:left; }
.t_f.md-body th { background:var(--surface-2); font-weight:600; }
.t_f.md-body code { font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace; font-size:.88em; background:var(--surface-2); border:1px solid var(--border); padding:.12em .4em; border-radius:var(--radius-s); color:var(--text); }
.t_f.md-body pre { margin:0 0 1em; border:1px solid var(--border); border-radius:var(--radius-m); overflow:auto; background:var(--code-bg); }
.t_f.md-body pre code { display:block; padding:1em 1.1em; background:none; border:none; font-size:.85em; line-height:1.6; color:var(--code-text); }

/* ===================== HIGHLIGHT.JS THEMES ===================== */
pre code.hljs { display:block; overflow-x:auto; padding:1em; }
code.hljs { padding:3px 5px; }
.hljs { color:var(--code-text); background:var(--code-bg); }
.hljs-doctag, .hljs-keyword, .hljs-meta .hljs-keyword, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-variable.language_ { color:#d73a49; }
.hljs-title, .hljs-title.class_, .hljs-title.class_.inherited__, .hljs-title.function_ { color:#6f42c1; }
.hljs-attr, .hljs-attribute, .hljs-literal, .hljs-meta, .hljs-number, .hljs-operator, .hljs-variable, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id { color:#005cc5; }
.hljs-regexp, .hljs-string, .hljs-meta .hljs-string { color:#032f62; }
.hljs-built_in, .hljs-symbol { color:#e36209; }
.hljs-comment, .hljs-code, .hljs-formula { color:#6a737d; font-style:italic; }
.hljs-name, .hljs-quote, .hljs-selector-tag, .hljs-selector-pseudo { color:#22863a; }
.hljs-section { color:#005cc5; font-weight:bold; }
.hljs-bullet { color:#735c0f; }
.hljs-addition { color:#22863a; background-color:#f0fff4; }
.hljs-deletion { color:#b31d28; background-color:#ffeef0; }

:root[data-theme="dark"] .hljs { color:#c9d1d9; background:#0d1117; }
:root[data-theme="dark"] .hljs-doctag, :root[data-theme="dark"] .hljs-keyword, :root[data-theme="dark"] .hljs-meta .hljs-keyword, :root[data-theme="dark"] .hljs-template-tag, :root[data-theme="dark"] .hljs-template-variable, :root[data-theme="dark"] .hljs-type, :root[data-theme="dark"] .hljs-variable.language_ { color:#ff7b72; }
:root[data-theme="dark"] .hljs-title, :root[data-theme="dark"] .hljs-title.class_, :root[data-theme="dark"] .hljs-title.class_.inherited__, :root[data-theme="dark"] .hljs-title.function_ { color:#d2a8ff; }
:root[data-theme="dark"] .hljs-attr, :root[data-theme="dark"] .hljs-attribute, :root[data-theme="dark"] .hljs-literal, :root[data-theme="dark"] .hljs-meta, :root[data-theme="dark"] .hljs-number, :root[data-theme="dark"] .hljs-operator, :root[data-theme="dark"] .hljs-variable, :root[data-theme="dark"] .hljs-selector-attr, :root[data-theme="dark"] .hljs-selector-class, :root[data-theme="dark"] .hljs-selector-id { color:#79c0ff; }
:root[data-theme="dark"] .hljs-regexp, :root[data-theme="dark"] .hljs-string, :root[data-theme="dark"] .hljs-meta .hljs-string { color:#a5d6ff; }
:root[data-theme="dark"] .hljs-built_in, :root[data-theme="dark"] .hljs-symbol { color:#ffa657; }
:root[data-theme="dark"] .hljs-comment, :root[data-theme="dark"] .hljs-code, :root[data-theme="dark"] .hljs-formula { color:#8b949e; }
:root[data-theme="dark"] .hljs-name, :root[data-theme="dark"] .hljs-quote, :root[data-theme="dark"] .hljs-selector-tag, :root[data-theme="dark"] .hljs-selector-pseudo { color:#7ee787; }
:root[data-theme="dark"] .hljs-section { color:#1f6feb; font-weight:bold; }
:root[data-theme="dark"] .hljs-bullet { color:#f2cc60; }
:root[data-theme="dark"] .hljs-addition { color:#aff5b4; background-color:#033a16; }
:root[data-theme="dark"] .hljs-deletion { color:#ffdcd7; background-color:#67060c; }

/* ===================== COMPONENT POLISH (editorial) ===================== */

/* Post body — document-like readability for non-Markdown posts too */
.t_f { line-height:1.7; font-size:15px; }
.t_f p { margin:0 0 1em; }

/* BBCode quote + code blocks (旧版论坛 [quote] / [code]) */
.quote {
  border-left:3px solid var(--border-strong);
  background:var(--surface-2); color:var(--text-2);
  padding:.6em 1em; margin:0 0 1em;
  border-radius:0 var(--radius-s) var(--radius-s) 0;
  font-size:.95em;
}
.quote a { color:var(--accent); }
.blockcode {
  border:1px solid var(--border); border-radius:var(--radius-m);
  background:var(--code-bg); overflow:auto; margin:0 0 1em;
}
.blockcode blockquote {
  color:var(--code-text); padding:1em 1.1em; margin:0;
  font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  font-size:.85em; line-height:1.6; white-space:pre;
}

/* Pagination */
.pg { margin:16px 0; font-size:13px; line-height:1; }
.pg a, .pg strong, .pg label {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:30px; padding:0 8px; margin:0 3px 0 0;
  border-radius:var(--radius-s); border:1px solid var(--border);
  background:var(--surface); color:var(--text-2); text-decoration:none;
  transition:color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out);
}
.pg strong { background:var(--accent); border-color:var(--accent); color:var(--accent-contrast); }
.pg a:hover { color:var(--accent); border-color:var(--accent); }
.pg .nxt, .pg .prev { color:var(--text-3); }
@media (hover:hover) and (pointer:fine) { .pg .nxt:hover, .pg .prev:hover { color:var(--accent); } }

/* Post editor */
.tedt { border:1px solid var(--border); border-radius:var(--radius-m); background:var(--surface); overflow:hidden; }
.tedt .bar { background:var(--surface-2); border-bottom:1px solid var(--border); padding:4px 6px; }
.tedt .bar a { color:var(--text-2); text-decoration:none; }
.tedt .area .pt, .tedt .area textarea { border:0; border-radius:0; background:var(--surface); }
.tedt .area .pt:focus, .tedt .area textarea:focus { box-shadow:none; border-color:transparent; }

/* Thread poster / author card */
.authi a { color:var(--accent); }
.authi .xg1 { color:var(--text-3); }
.pls .avtm, .pls .avt img { border-radius:var(--radius-s); border:1px solid var(--border); }
.plc .pi { border-bottom:1px solid var(--border); padding-bottom:8px; margin-bottom:12px; }

/* Thread list items — tidy spacing */
.ts .xg1, .tps .xg1 { color:var(--text-3); }
.bm_h .xs2 { font-weight:600; }

/* ===================== MOBILE ===================== */
@media (max-width:768px) {
  .wp, #wp, #hd .wp { padding-left:12px; padding-right:12px; }
  #nv { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  #nv ul { flex-wrap:nowrap; white-space:nowrap; }
  .hdc { display:flex; align-items:center; flex-wrap:wrap; }
  .hdc h2 { flex:1 1 auto; }
  .bm { border-radius:var(--radius-s); }
  .t_f, .t_f.md-body { font-size:15px; }
  .llmcn-theme-toggle, .llmcn-feed { margin-top:0; }
}

/* ===================== GITHUB LOGIN BUTTON (member auth page) ===================== */
#nv_member .llmcn-github-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; box-sizing:border-box; height:44px; padding:0 16px;
  border:1px solid #d8dce8; border-radius:6px; background:#fff;
  color:#1f2430; font-size:15px; font-weight:600; text-decoration:none;
  transition:border-color var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out);
}
#nv_member .llmcn-github-btn svg { width:18px; height:18px; display:block; }
@media (hover:hover) and (pointer:fine) {
  #nv_member .llmcn-github-btn:hover { border-color:#4f46e5; color:#4f46e5; }
}
#nv_member .llmcn-github-btn:active { transform:scale(.98); }

/* ============================================================
   Markdown power-up pack: copy button, TOC, Mermaid, KaTeX
   ============================================================ */

/* --- Code copy button (sits on each fenced block) --- */
.llmcn-pre { position: relative; }
.llmcn-copy {
  position: absolute; top: 8px; right: 8px;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 8px; font-size: 12px; line-height: 1.4;
  color: var(--text-3); background: var(--surface-2);
  border: 1px solid var(--border); border-radius: 6px;
  cursor: pointer; opacity: 0; transform: translateY(-2px);
  transition: opacity .15s ease, transform .15s ease, color .15s ease, border-color .15s ease;
}
.llmcn-pre:hover .llmcn-copy, .llmcn-copy:focus { opacity: 1; transform: translateY(0); }
@media (hover:none) { .llmcn-copy { opacity: 1; } }
.llmcn-copy svg { display: block; }
.llmcn-copy:hover { color: var(--accent); border-color: var(--accent); }
.llmcn-copy.copied { color: #16a34a; border-color: #16a34a; opacity: 1; }

/* --- Auto TOC for long posts --- */
.llmcn-toc {
  margin: 0 0 20px; padding: 14px 16px;
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius, 10px);
  font-size: 13px; line-height: 1.7;
}
.llmcn-toc-title {
  font-weight: 600; color: var(--text); font-size: 12px;
  letter-spacing: .04em; text-transform: uppercase; margin-bottom: 6px;
}
.llmcn-toc ol { margin: 0; padding-left: 18px; }
.llmcn-toc li { margin: 2px 0; }
.llmcn-toc li.lvl-h3 { list-style: none; margin-left: -12px; }
.llmcn-toc li.lvl-h4 { margin-left: 12px; }
.llmcn-toc li.lvl-h5, .llmcn-toc li.lvl-h6 { margin-left: 24px; }
.llmcn-toc a { color: var(--text-2); text-decoration: none; }
.llmcn-toc a:hover { color: var(--accent); }

/* --- Mermaid diagrams --- */
.md-body .mermaid {
  margin: 16px 0; padding: 12px;
  display: flex; justify-content: center;
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius, 10px); overflow-x: auto;
}
.md-body .mermaid svg { max-width: 100%; height: auto; }

/* --- KaTeX (math) color follows theme --- */
.md-body .katex { color: var(--text); }
.md-body .katex-display { margin: 16px 0; overflow-x: auto; overflow-y: hidden; padding: 2px 0; }

/* --- Heading anchor offset under sticky header --- */
.llmcn-heading { scroll-margin-top: 80px; }

/* ============================================================
   Link cards: GitHub repos + arXiv papers
   ============================================================ */
.llmcn-linkcard {
  margin: 16px 0; padding: 14px 16px;
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius, 10px);
  font-size: 14px; line-height: 1.5;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.llmcn-linkcard-loading, .llmcn-linkcard-error {
  color: var(--text-3); font-style: italic;
}
.llmcn-linkcard-github, .llmcn-linkcard-arxiv { padding: 0; overflow: hidden; }
.llmcn-linkcard .lc-main {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 14px 16px; text-decoration: none; color: inherit;
}
.llmcn-linkcard-github:hover, .llmcn-linkcard-arxiv:hover {
  border-color: var(--accent);
  box-shadow: 0 1px 0 var(--accent);
}
.lc-avatar {
  width: 40px; height: 40px; border-radius: 8px; flex: 0 0 auto;
  background: var(--surface); border: 1px solid var(--border); object-fit: cover;
}
.lc-body { min-width: 0; flex: 1 1 auto; }
.lc-title { font-weight: 600; color: var(--text); font-size: 14px; }
.lc-desc {
  color: var(--text-2); margin: 4px 0 6px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lc-meta { display: flex; flex-wrap: wrap; gap: 12px; color: var(--text-3); font-size: 12px; align-items: center; }
.lc-lang::before {
  content: ''; display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  background: var(--accent); margin-right: 5px; vertical-align: middle;
}
.lc-tag {
  align-self: stretch; flex: 0 0 auto; display: flex; align-items: center;
  padding: 0 14px; font-weight: 700; font-size: 12px; letter-spacing: .04em;
  color: #b31b1b; background: #fbe9e7; border-right: 1px solid var(--border);
}
:root[data-theme="dark"] .lc-tag { color: #ff8a80; background: #3a1414; }
.lc-authors { color: var(--text-2); font-size: 13px; margin: 2px 0 6px; }
.lc-id { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.lc-pdf {
  color: var(--accent); text-decoration: none; font-weight: 600;
  border: 1px solid var(--border); border-radius: 6px; padding: 1px 8px;
}
.lc-pdf:hover { border-color: var(--accent); }

/* ============================================================
   STANDARD 旧版论坛 PAGES — editorial polish (search / forumdisplay /
   viewthread / space-profile / portal / alerts)
   These pages ship with bare 旧版论坛 chrome; we bring them onto the
   same flat editorial system. Scoped to #nv_* where helpful.
   ============================================================ */

/* ---------- Alerts (error / info / right) ---------- */
.altw, .alert_info, .alert_error, .alert_right {
  border:1px solid var(--border); background:var(--surface-2);
  border-left:3px solid var(--accent); border-radius:var(--radius-s);
  padding:12px 14px; color:var(--text-2); font-size:13px;
}
.alert_error { border-left-color:var(--c-red); color:var(--c-red); }
.alert_info  { border-left-color:var(--c-blue); }
.f_c { color:var(--text); }
.nfl { margin:0; }

/* ---------- SEARCH (landing + results) ---------- */
#nv_search .mw { max-width:760px; margin:0 auto; padding:24px 16px 8px; }
#nv_search .hm.mtw.ptw.pbw { text-align:center; padding-top:12px; }
#nv_search .searchlogo { height:46px; width:auto; opacity:.92; }
#nv_search .searchform { background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-xl); box-shadow:var(--shadow); padding:22px 22px 26px; }
#nv_search #scform { margin:0 auto; }
#nv_search #scform_tb { text-align:center; color:var(--text-2); padding-bottom:14px; }
#nv_search #scform_tb .xs2 a { color:var(--text-2); padding:4px 10px; border-radius:var(--radius-c); text-decoration:none; }
#nv_search #scform_tb .xs2 a.a, #nv_search #scform_tb .xs2 a:hover { color:var(--accent); background:var(--c-blue-bg); }
#nv_search #scform_form { margin:0 auto; }
#nv_search .td_srchtxt { padding:0 10px 0 0; }
#nv_search .td_srchtxt input {
  width:100%; min-width:260px; height:46px; box-sizing:border-box;
  font-size:15px; border-radius:var(--radius-m); padding:0 14px;
}
#nv_search .td_srchbtn { width:auto; }
#nv_search .td_srchbtn button {
  height:46px; padding:0 26px; font-size:15px; font-weight:600;
  border-radius:var(--radius-m); cursor:pointer;
}
#nv_search .mbm, #nv_search .mbn { margin-bottom:14px; }
#nv_search .sttl { font-size:13px; color:var(--text-3); margin:14px 0 6px; }
#nv_search .sttl a, #nv_search .sttl b { color:var(--text-2); font-weight:600; }

/* ---------- THREAD LIST (forumdisplay + search results share .tl) ---------- */
.tl { width:100%; border-collapse:separate; border-spacing:0; }
.tl th, .tl td { border-bottom:1px solid var(--border); padding:12px 10px; vertical-align:middle; text-align:left; }
.tl .th { background:var(--surface-2); color:var(--text-3); font-size:12px; font-weight:600; }
.tl .th a { color:var(--text-3); text-decoration:none; }
.tl tr:last-child td { border-bottom:none; }
.tl tr:hover td { background:var(--surface-2); }
.tl .icn { width:44px; }
.tl .icn a { display:block; width:40px; height:40px; border-radius:var(--radius-s); overflow:hidden; border:1px solid var(--border); background:var(--surface-2); }
.tl .icn img { width:100%; height:100%; object-fit:cover; display:block; }
.tl .tf { font-size:15px; font-weight:600; }
.tl .tf a { color:var(--text); text-decoration:none; }
.tl .tf a:hover { color:var(--accent); }
.tl .tf .xi1, .tl .tf .xi2 { font-weight:400; font-size:12px; color:var(--c-red); margin-left:6px; }
.tl .by { color:var(--text-3); font-size:12px; white-space:nowrap; }
.tl .by a { color:var(--text-2); text-decoration:none; }
.tl .by a:hover { color:var(--accent); }
.tl .num { text-align:center; white-space:nowrap; color:var(--text-3); font-size:12px; }
.tl .num a { color:var(--text-2); text-decoration:none; font-weight:600; }
.tl .new { color:var(--c-green); }
.tl .mn, .tl .mtn { font-size:12px; }
.tl .mn a, .tl .mtn a { color:var(--text-3); text-decoration:none; }
.tl .mn a:hover, .tl .mtn a:hover { color:var(--accent); }

/* forumdisplay sort bar + subforum */
#nv_forum .bm_h { display:flex; align-items:center; gap:10px; }
#nv_forum .bm_h .xs2, #nv_forum .bm_h h2 { font-size:15px; font-weight:600; }
#nv_forum .bmw, #nv_forum .bml { margin-bottom:14px; }
#nv_forum .bw0 .bm_h { background:transparent; border:1px solid var(--border); border-bottom:none; border-radius:var(--radius-m) var(--radius-m) 0 0; }
#nv_forum .hasfsl .bm_c, #nv_forum .bw0 .bm_c { border-radius:0 0 var(--radius-m) var(--radius-m); }
#nv_forum .fpd .tedt, #nv_forum .fpd { margin-top:14px; }

/* ---------- VIEWTHREAD (post rows) ---------- */
.viewthread_table { width:100%; border-collapse:separate; border-spacing:0; }
.viewthread_table > tbody > tr > .pls,
.viewthread_table > tbody > tr > .plc { border-top:1px solid var(--border); vertical-align:top; }
.viewthread_table .pls { width:170px; padding:18px 12px; background:var(--surface-2); border-right:1px solid var(--border); }
.viewthread_table .plc { padding:18px 22px; }
.pls .avatar, .pls .favatar, .pls .avt { display:block; width:96px; height:96px; margin:0 auto 10px; border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--border); background:var(--surface); }
.pls .avatar img, .pls .favatar img { width:100%; height:100%; object-fit:cover; }
.pls .authi { text-align:center; }
.pls .authi a { font-weight:600; }
.pls .card_gender_, .pls .imicn, .pls .xg1 { text-align:center; font-size:12px; color:var(--text-3); }
.plc .pi { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; border-bottom:1px solid var(--border); padding-bottom:10px; margin-bottom:14px; }
.plc .pi strong, .plc .pti { font-weight:600; color:var(--text); }
.plc .pi .xg1, .plc .pi .y { font-size:12px; color:var(--text-3); }
.plc .t_fsz { color:var(--text-3); }
.plc .t_f, .plc .pcb { line-height:1.75; font-size:15px; }
.pct .pcb, .pct .t_f { color:var(--text); }
.po, .pob { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.po a, .pob a { color:var(--text-2); font-size:13px; text-decoration:none; }
.po a:hover, .pob a:hover { color:var(--accent); }
/* thread header + pagination under thread */
.vwthd { margin-bottom:14px; }
#nv_forum .pgt, #nv_forum .pgs { margin:14px 0; }
#nv_forum .mtm, #nv_forum .mtn, #nv_forum .ptm { font-size:12px; color:var(--text-3); }
#nv_forum .mtm a, #nv_forum .mtn a { color:var(--text-3); text-decoration:none; }
#nv_forum .mtm a:hover, #nv_forum .mtn a:hover { color:var(--accent); }
/* fast reply */
#nv_forum .fpd .tedt { margin-top:0; }

/* ---------- SPACE / USER PROFILE ---------- */
#nv_home .bm { margin-bottom:14px; }
#nv_home .bm_h { display:flex; align-items:center; gap:8px; }
#nv_home .bm_h .xs2, #nv_home .bm_h h2 { font-size:15px; font-weight:600; }
/* profile header */
#nv_home .u_profile, #nv_home .profile { }
#nv_home .pf_l { width:90px; color:var(--text-3); font-size:13px; padding:8px 0; vertical-align:top; }
#nv_home .pf_content { color:var(--text); font-size:14px; padding:8px 0; }
#nv_home .pf_content a { color:var(--accent); text-decoration:none; }
#nv_home .avatar, #nv_home .avt { border-radius:var(--radius-m); border:1px solid var(--border); }
#nv_home .avatar img { border-radius:var(--radius-m); }
#nv_home .pbm { display:flex; gap:18px; flex-wrap:wrap; padding:6px 0; }
#nv_home .pbm a, #nv_home .pbm b { color:var(--text-2); text-decoration:none; }
#nv_home .pbm b { color:var(--text); font-weight:700; }
/* space tabs (主题/回复/好友...) */
#nv_home .tb, .tb { margin:0 0 14px; border-bottom:1px solid var(--border); display:flex; flex-wrap:wrap; gap:4px; }
#nv_home .tb a, .tb a { color:var(--text-2); text-decoration:none; padding:8px 14px; font-size:14px; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
#nv_home .tb a.a, .tb a.a, #nv_home .tb a:hover, .tb a:hover { color:var(--accent); border-bottom-color:var(--accent); }
#nv_home .tb .o { margin-left:auto; }
/* sidebar modules */
#nv_home .sd, #nv_home .appl { }
#nv_home .sd .bm, #nv_home .appl .bm { margin-bottom:14px; }
#nv_home .xl, #nv_home .xl2 { list-style:none; margin:0; padding:0; }
#nv_home .xl li, #nv_home .xl2 li { padding:8px 0; border-top:1px solid var(--border); font-size:13px; }
#nv_home .xl li:first-child, #nv_home .xl2 li:first-child { border-top:none; }
#nv_home .xl li a, #nv_home .xl2 li a { color:var(--text); text-decoration:none; }
#nv_home .xl li a:hover, #nv_home .xl2 li a:hover { color:var(--accent); }
#nv_home .xl .xg1, #nv_home .xl2 .xg1 { color:var(--text-3); font-size:12px; }

/* 编辑资料页：下线 Discuz 内置的过时联系方式字段 */
#profilelist #tr_msn,
#profilelist #tr_taobao,
#profilelist #tr_telephone { display:none !important; }

/* ============================================================
   LAYOUT SYSTEM · SHELL  —  唯一拥有"页面宽度"的图层
   ------------------------------------------------------------
   【根因备忘 2026-09-02 · 改这里前必读】
   Desktop 被压成 Mobile 宽度，是三条规则的三方交互，缺一不可：
     1. [Discuz 原生 style_2_common.css]  .wp { margin:0 auto; width:1200px }
     2. [本文件 · 粘性页脚]              .llmcn-app { display:flex; flex-direction:column }
        （实际声明在 style_2_common.css 的自定义 CSS 块中）
        => #wp 变成 flex item，交叉轴 = 水平方向
     3. [本文件 · 旧移动端修复]          .wp { width:auto !important }
        => 抹掉了原生的"确定宽度"
   flex item 在交叉轴上带 auto 外边距时，按规范会**直接取消
   align-self:stretch**，于是 width:auto 退化为 fit-content，
   整页收缩到内容固有宽度（@1920 实测 254px–776px），auto margin
   再把这个窄块居中 —— 视觉上就是"桌面端渲染成手机版"。

   实测反证（talk.llmcn.org @1920，forum / space 两页一致）：
     baseline .................. 391 / 254   ❌
     body{display:block} ....... 1200 / 1200 ✅
     禁用 llmcn-v3.css ......... 1200 / 1200 ✅
     #wp{margin:0} ............. 1200 / 1200 ✅
     强制 align-self:stretch ... 391  （auto margin 赢，无效）
     body{min-width:1200px} .... 391 / 254   ❌（与 min-width 无关）

   结论：#wp 必须**永远持有确定宽度**。禁止再写 width:auto。
   ============================================================ */
body { min-width: 0 !important; }

/* 外壳：Header / Main / Footer 三段共用同一宽度契约 */
#wp,
.wp,
.dz_wide .wp {
  width: 100% !important;                              /* 确定宽度，勿改回 auto */
  max-width: var(--site-max-width, 1200px) !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* 只有最外层 #wp 负责左右留白；内层 .wp（#ct.wp 等）不再叠加，
   否则会出现双倍 gutter、内容与 Header/Footer 错位。 */
#wp {
  padding-left: var(--shell-pad, 20px);
  padding-right: var(--shell-pad, 20px);
}
#wp .wp {
  padding-left: 0;
  padding-right: 0;
}

.bm,
.cl,
.area {
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* ------------------------------------------------------------
   LAYOUT SYSTEM · MOBILE (<=768px)
   所有两栏布局（Layout A / B）统一降级为单栏，顺序 = DOM 顺序。
   ------------------------------------------------------------ */
@media (max-width: 768px) {
  html, body { min-width: 0 !important; }
  #wp, .wp, .dz_wide .wp {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
  #wp { padding-left: 12px; padding-right: 12px; }

  /* 拆掉 desktop 的 flex 两栏，回到自然流单栏 */
  #ct.ct2,
  #ct.ct2_a,
  #ct.ct3_a {
    display: block !important;
    gap: 0 !important;
  }
  .mn,
  .sd,
  .appl,
  .ct2 .mn,
  .ct2 .sd,
  .ct2_a .mn,
  .ct2_a .appl,
  .ct3_a .mn,
  .ct3_a .sd,
  .ct2_a_r .mn {
    float: none !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Logo */
.llmcn-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--nav-text, #1a1c1e); flex: 0 0 auto; }
.llmcn-brand__mark { display: inline-flex; width: 30px; height: 30px; color: var(--accent); }
.llmcn-brand__mark svg { width: 100%; height: 100%; }
.llmcn-brand__text { display: flex; flex-direction: column; line-height: 1.12; }
.llmcn-brand__text b { font-size: 17px; font-weight: 700; letter-spacing: .4px; }
.llmcn-brand__text i { font-size: 11px; font-style: normal; color: var(--text-3, #8a8f96); font-weight: 400; }

/* 按钮 */
.llmcn-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 16px; border-radius: var(--radius-s);
  font-size: 14px; font-weight: 600; line-height: 1; text-decoration: none;
  cursor: pointer; border: 1px solid transparent; white-space: nowrap;
  transition: background var(--dur-fast,140ms) var(--ease-out), color var(--dur-fast,140ms) var(--ease-out), transform var(--dur-fast,140ms) var(--ease-out), border-color var(--dur-fast,140ms) var(--ease-out);
}
.llmcn-btn:active { transform: scale(.97); }
.llmcn-btn--primary { background: var(--accent); color: var(--accent-contrast, #fff); }
.llmcn-btn--primary:hover { background: var(--accent-hover); color: var(--accent-contrast, #fff); text-decoration: none; }
.llmcn-btn--ghost { background: transparent; color: var(--text-2, #565b61); border-color: var(--border-strong, #d6d0c4); }
.llmcn-btn--ghost:hover { color: var(--text, #1a1c1e); border-color: var(--text-3, #8a8f96); text-decoration: none; }

/* 主题切换 / 移动菜单 按钮 */
.llmcn-theme-toggle, .llmcn-mob-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border: 1px solid var(--border, #e4e0d8); border-radius: 50%;
  background: var(--surface-2, #f1efea); color: var(--text-2, #565b61); cursor: pointer;
  transition: background var(--dur-fast,140ms) var(--ease-out), color var(--dur-fast,140ms) var(--ease-out);
}
.llmcn-theme-toggle:hover, .llmcn-mob-toggle:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.llmcn-theme-toggle svg, .llmcn-mob-toggle svg { width: 20px; height: 20px; }
.llmcn-theme-toggle .icon-sun { display: none; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-moon { display: none; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-sun { display: block; }

/* 移动端菜单按钮默认隐藏，导航默认显示 */
.llmcn-mob-toggle { display: none; }

/* 响应式 */
@media (max-width: 960px) {
  .llmcn-topbar__inner { gap: 10px; padding: 0 14px; }
  .llmcn-mob-toggle { display: inline-flex; }
  .llmcn-topbar .dz_layer_nav {
    position: absolute; top: 60px; left: 0; right: 0;
    height: auto; background: var(--nav-bg, var(--surface)); border-bottom: 1px solid var(--border, #e4e0d8);
    display: none; padding: 8px 14px; box-shadow: 0 12px 24px rgba(0,0,0,.08);
  }
  .llmcn-topbar .dz_layer_nav.is-open { display: block; }
  .llmcn-topbar .dz_layer_nav > ul { flex-direction: column; align-items: stretch; height: auto; gap: 0; }
  .llmcn-topbar .dz_layer_nav > ul > li { height: auto; }
  .llmcn-topbar .dz_layer_nav > ul > li > a { height: 44px; width: 100%; padding: 0 12px; border-radius: var(--radius-s,6px); font-size: 15px; }
  .llmcn-brand__text i { display: none; }
  .llmcn-topbar .header-searcher { display: none; }
  .llmcn-topbar .search-input:focus { width: 180px; }
}
@media (max-width: 560px) {
  .llmcn-brand__text b { font-size: 16px; }
  .llmcn-btn { padding: 0 12px; height: 34px; font-size: 13px; }
}

/* ============================================================
   SECTION 2: PAGE LAYER — search / user space (merged from llmcn-pages.css, 2026-09)
   ============================================================ */

/* ============================================================
   LLMCN Community — page optimization layer (search / user space)
   Loaded AFTER llmcn.css. Uses the unified dual-theme tokens:
   --bg --surface --surface-2 --surface-3 --border --border-strong
   --text --text-2 --text-3 --accent --accent-hover --accent-contrast
   --radius-* --shadow --shadow-sm --ease-out --dur-*
   Aesthetic matches llmcn.css: flat editorial, restrained, motion <300ms.
   ============================================================ */

/* ===================== SEARCH ===================== */
/* The search landing uses a table (#scform) we restyle into a card
   without touching the markup / JS hooks. */

#nv_search #ct .mw,
.searchform {
  max-width: 920px;
  margin: 24px auto;
}

.searchform {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  padding: 22px 24px 26px;
}

/* search logo + tab switcher */
#scform,
#scform tr,
#scform td { display: block; }

#scform_tb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
#scform_tb h1 { display: none; }            /* logo is shown via .hm on the standalone page */
#scform_tb .y {
  margin-left: auto;
  display: inline-flex;
  gap: 10px;
  align-items: center;
}
#scform_tb a {
  display: inline-block;
  padding: 6px 14px;
  border-radius: var(--radius-c);
  color: var(--text-2);
  font-size: 14px;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
#scform_tb a:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
#scform_tb a.a,
#scform_tb a.on { background: var(--accent); color: var(--accent-contrast); font-weight: 600; }
#scform_tb .showmenu { cursor: pointer; }

/* search input row */
#scform_form {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
#scform_form .td_srchtxt { display: block; flex: 1; }
#scform_form .td_srchtxt input,
.searchform input[name="srchtxt"] {
  width: 100%;
  height: 46px;
  padding: 0 16px;
  font-size: 15px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  outline: none;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
#scform_form .td_srchtxt input:focus,
.searchform input[name="srchtxt"]:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}
#scform_form .td_srchbtn { display: block; }

.schbtn,
#scform_submit {
  height: 46px;
  padding: 0 24px;
  font-size: 15px;
  font-weight: 600;
  color: var(--accent-contrast);
  background: var(--accent);
  border: none;
  border-radius: var(--radius-m);
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.schbtn:hover,
#scform_submit:hover { background: var(--accent-hover); }
.schbtn:active,
#scform_submit:active { transform: translateY(1px); }

.searchform p { color: var(--text-3); font-size: 13px; margin-top: 12px; }

/* result section */
.tl .sttl { margin: 22px auto 0; max-width: 920px; }
.tl .sttl h2 {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-2);
  padding-left: 12px;
  border-left: 3px solid var(--accent);
  line-height: 1.4;
}

.slst.mtw,
#threadlist {
  max-width: 920px;
  margin: 14px auto 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
#threadlist > ul,
.slst > ul { margin: 0; }

.slst .pbw,
#threadlist .pbw {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  transition: background var(--dur-fast) var(--ease-out);
}
.slst .pbw:last-child,
#threadlist .pbw:last-child { border-bottom: none; }
.slst .pbw:hover,
#threadlist .pbw:hover { background: var(--surface-2); }

.slst .pbw h3,
#threadlist .pbw h3 {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.5;
}
.slst .pbw h3 a,
#threadlist .pbw h3 a {
  color: var(--text);
  transition: color var(--dur-fast) var(--ease-out);
}
.slst .pbw h3 a:hover,
#threadlist .pbw h3 a:hover { color: var(--accent); }

/* highlighted keyword */
.slst em,
#threadlist em,
.xs3 em {
  color: var(--accent);
  font-style: normal;
  font-weight: 600;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border-radius: 3px;
  padding: 0 2px;
}

.slst .pbw p,
#threadlist .pbw p { margin: 4px 0 0; color: var(--text-2); font-size: 14px; line-height: 1.7; }
.slst .pbw p.xg1,
#threadlist .pbw p.xg1 { color: var(--text-3); font-size: 13px; }
.slst .pbw p.xg1 a,
#threadlist .pbw p.xg1 a { color: var(--text-2); }
.slst .pbw p.xg1 a:hover,
#threadlist .pbw p.xg1 a:hover { color: var(--accent); }

/* empty state */
.emp {
  max-width: 920px;
  margin: 14px auto 0;
  padding: 56px 20px;
  text-align: center;
  color: var(--text-3);
  font-size: 15px;
  background: var(--surface);
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-xl);
}
.emp::before {
  content: "";
  display: block;
  width: 46px; height: 46px;
  margin: 0 auto 14px;
  border-radius: var(--radius-c);
  background: var(--surface-2);
  -webkit-mask: var(--ico-search) center / 24px no-repeat;
          mask: var(--ico-search) center / 24px no-repeat;
}
:root { --ico-search: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A8F96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.3-4.3'/></svg>"); }

/* pagination */
.pgs { max-width: 920px; margin: 18px auto; }
.pgs a,
.pgs strong,
.pgb {
  display: inline-flex;
  align-items: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  margin: 0 4px 4px 0;
  border-radius: var(--radius-s);
  border: 1px solid var(--border);
  color: var(--text-2);
  font-size: 13px;
  transition: all var(--dur-fast) var(--ease-out);
}
.pgs a:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.pgs strong,
.pgs .pgcurrent { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); }

/* ===================== USER SPACE / PROFILE ===================== */

/* profile header card (avatar + name + sub) */
.h.cl {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  margin-bottom: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}
.h.cl .icn.avt { flex: 0 0 auto; margin: 0; }
.h.cl .icn.avt img,
.h.cl .icn.avt a { display: block; }
.h.cl .icn.avt img {
  width: 72px; height: 72px;
  border-radius: var(--radius-c);
  border: 1px solid var(--border);
  object-fit: cover;
}
.h.cl h2.mt {
  margin: 0;
  font-size: 21px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.2;
}
.h.cl .xs1.xg1.xw0 { margin-top: 6px; color: var(--text-3); font-size: 13px; }
.h.cl .xs1.xg1.xw0 a { color: var(--text-3); }
.h.cl .xs1.xg1.xw0 a:hover { color: var(--accent); }

/* space tab bar (follow / thread / blog / album / ...) */
.tb.cl {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-left: 0 !important;
  margin: 0 0 16px;
  border: none;
}
.tb.cl li { list-style: none; }
.tb.cl li a {
  display: inline-block;
  padding: 8px 16px;
  border-radius: var(--radius-c);
  color: var(--text-2);
  font-size: 14px;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.tb.cl li a:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.tb.cl li.a a { background: var(--accent); color: var(--accent-contrast); font-weight: 600; }

/* left side nav (appl) — plain pane, NOT a floating card (spec §16) */
.appl .tbn,
.tbn {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin-bottom: 16px;
}
.tbn h2.mt.bbda {
  margin: 4px 0 10px;
  padding-bottom: 10px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--text-3);
  border-bottom: 1px solid var(--border);
}
.tbn ul { margin: 0; }
.tbn li { list-style: none; }
.tbn li a {
  display: block;
  padding: 9px 12px;
  border-radius: var(--radius-s);
  color: var(--text-2);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.tbn li a:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.tbn li.a a {
  background: var(--nav-active-bg);   /* subtle teal tint, no blue bar/bold-blue */
  color: var(--text);
  font-weight: 600;
}

/* generic content blocks */
.bm {
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-sm);
  background: var(--surface);
  overflow: hidden;
}
.bm_h {
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
  border-radius: var(--radius-m) var(--radius-m) 0 0;
  padding: 12px 16px;
}
.bm_h h1, .bm_h h2, .bm_h .mt { margin: 0; font-size: 15px; font-weight: 600; color: var(--text); }
.bm_c { padding: 16px; }

/* profile progress bar */
.pbg {
  height: 8px;
  background: var(--surface-2);
  border-radius: var(--radius-c);
  overflow: hidden;
}
.pbg .pbr { height: 100%; background: var(--accent); border-radius: var(--radius-c); }
.pbg + p, .bm_c p { color: var(--text-2); font-size: 13px; }

/* feed / list items in space */
.el { padding: 12px 0; border-bottom: 1px solid var(--border); }
.el:last-child { border-bottom: none; }
.el li, .el a { color: var(--text-2); }
.el a:hover { color: var(--accent); }

/* ===================== GLOBAL REFINEMENTS ===================== */
/* subtle, safe consistency wins across all pages */
#pt {
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 12px 0;
  color: var(--text-3);
}
#pt a { color: var(--text-2); }
#pt a:hover { color: var(--accent); }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 640px) {
  .searchform { padding: 18px 16px 20px; margin: 14px auto; border-radius: var(--radius-m); }
  #scform_form { flex-direction: column; }
  .schbtn, #scform_submit { width: 100%; }
  #scform_tb { gap: 4px; }
  .h.cl { flex-direction: column; text-align: center; align-items: center; }
  .h.cl .xs1.xg1.xw0 { text-align: center; }
  .tb.cl { justify-content: center; }
}

/* ===================== UNIFIED LOGIN BUTTON ===================== */
.llmcn-login-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: var(--accent-contrast);
  background: var(--accent);
  border: none;
  border-radius: var(--radius-c);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.llmcn-login-btn:hover { background: var(--accent-hover); color: var(--accent-contrast); text-decoration: none; }
.llmcn-login-btn:active { transform: translateY(1px); }

/* ===================== FORUM / THREAD CONTENT TYPOGRAPHY ===================== */
/* These refine the native post body so it reads as the editorial style.
   llmcn.css owns the structural colors; here we tune spacing & special blocks. */
.t_f, .t_fsz {
  font-size: 15px;
  line-height: 1.75;
  color: var(--text);
  word-break: break-word;
}
.t_f p { margin: 0 0 14px; }
.t_f img, .plc img { max-width: 100%; height: auto; border-radius: var(--radius-s); }

/* blockquote / 旧版论坛 .quote */
blockquote,
.quote {
  margin: 14px 0;
  padding: 12px 16px;
  background: var(--surface-2);
  border-left: 3px solid var(--border-strong);
  border-radius: 0 var(--radius-s) var(--radius-s) 0;
  color: var(--text-2);
  font-size: 14px;
  line-height: 1.75;
}
blockquote .quote, .quote .quote { background: var(--surface-3); }
.quote a { color: var(--text-2); }

/* inline + block code */
.t_f code,
.plc code {
  padding: 2px 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 5px;
}
.t_f pre,
.plc pre,
.blockcode {
  margin: 14px 0;
  padding: 14px 16px;
  overflow-x: auto;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
  line-height: 1.7;
  color: var(--text);
}
.blockcode, .blockcode ol { color: var(--text-2); }
.blockcode li { margin: 2px 0; }

/* tables rendered inside posts */
.t_table,
.plc table {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 14px 0;
  border-collapse: separate;
  font-size: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  overflow-x: auto;
}
.t_table th, .t_table td,
.plc table th, .plc table td {
  padding: 9px 12px;
  border: 1px solid var(--border);
  color: var(--text);
}
.t_table th, .plc table th { background: var(--surface-2); color: var(--text-2); font-weight: 600; }

/* post layout columns (author card | content) */
.pls, .plc { padding: 16px; }
.pls { border-right: 1px solid var(--border); background: var(--surface-2); }
.pbw, .plhin { border-bottom: 1px solid var(--border); }

/* ===================== PORTAL ARTICLES ===================== */
.portal .bm, .portal_box .bm { margin-bottom: 14px; }
.atc,
.cl .article,
.list .article {
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  transition: background var(--dur-fast) var(--ease-out);
}
.atc:last-child, .cl .article:last-child { border-bottom: none; }
.atc:hover, .cl .article:hover { background: var(--surface-2); }
.atc h2, .cl .article h2, .atc .atctit, .list .article h2 {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
}
.atc h2 a, .cl .article h2 a, .list .article h2 a { color: var(--text); }
.atc h2 a:hover, .cl .article h2 a:hover, .list .article h2 a:hover { color: var(--accent); }
.atc .summary, .cl .article p, .list .article p { color: var(--text-2); font-size: 14px; line-height: 1.75; }
.atc .xg1, .cl .article .xg1 { color: var(--text-3); font-size: 13px; margin-top: 8px; }

/* ===================== FORUM THREAD LIST (板块帖子列表) ===================== */
/* .forumportal_listc ships with raw Discuz styling in extend_common.css;
   lift it to the same calm card rhythm as .tl/.atc/.slst above so the
   desktop forum reads cohesively. */
.forumportal_listc { margin-bottom: 0; }
.forumportal_listc li.kmlist {
  padding: 18px 6px;
  border-top: 1px solid var(--border);
  transition: background var(--dur-fast) var(--ease-out);
}
.forumportal_listc li.kmlist:hover { background: var(--surface-2); }
.forumportal_listc li:first-child { border-top: none; }
.forumportal_listc .kmtit { font-size: 17px; font-weight: 600; line-height: 1.5; }
.forumportal_listc .kmtit a { color: var(--text); transition: color var(--dur-fast) var(--ease-out); }
.forumportal_listc .kmtit a:hover { color: var(--accent); }
.forumportal_listc li .kmcon,
.forumportal_listc .kmcon { color: var(--text-2); line-height: 1.7; }
.forumportal_listc li .kmtxt {
  margin-top: 8px;
  line-height: 1.7;
  color: var(--text-2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-height: 3.4em;
  overflow: hidden;
}
.forumportal_listc .kmfoot { color: var(--text-3); }
.forumportal_listc .kmfoot a { color: var(--text-3); }
.forumportal_listc .kmfoot a:hover { color: var(--accent); }
.forumportal_listc .kmfoot .kmck:before,
.forumportal_listc .kmfoot .kmpl:before { opacity: .55; }


/* ============================================================
   SECTION 3: FORUM INNER PAGES — forumdisplay / viewthread / post / fastpost (merged from llmcn-forum.css, 2026-09)
   ============================================================ */

/* ============================================================
   LLMCN Community — forum inner pages layer
   forumdisplay / viewthread / post / fastpost / paged pages
   Loaded after llmcn-v3.css and llmcn-pages.css.
   Uses the unified dual-theme tokens.
   ============================================================ */

/* ----------------------------------------------------------------
   0. Global layout reset for forum pages
   ---------------------------------------------------------------- */
/* 页面宽度统一由 LAYOUT SYSTEM · SHELL 负责（见文件上方）。
   这里曾经写死 `.pg_forumdisplay #wp{max-width:1200px;margin:0 auto}`
   —— 正是那对 auto 外边距取消了 flex 交叉轴 stretch，
   与 `.wp{width:auto!important}` 合并后把整页压成 Mobile 宽度。
   已移除，勿再按页面重复声明 #wp 的宽度/外边距。 */

#ct { margin-top: 18px; }

.mn,
.bm,
.bmw,
.bml {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* ----------------------------------------------------------------
   1. Breadcrumb (#pt)
   ---------------------------------------------------------------- */
#pt {
  margin: 0;
  padding: 14px 0 0;
  border: 0 !important;
  background: transparent !important;
}
#pt .z {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  color: var(--text-3);
  font-size: 13px;
}
#pt .z a {
  color: var(--text-2);
  padding: 3px 0;
}
#pt .z a:hover { color: var(--accent); text-decoration: none; }
#pt .z .nvhm { font-weight: 600; color: var(--text); }
#pt .z em { color: var(--text-3); font-style: normal; }

/* ----------------------------------------------------------------
   2. Forum title card (bm bml pbn)
   ---------------------------------------------------------------- */
.bm.bml.pbn {
  margin: 16px 0 18px;
  padding: 18px 22px;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-sm) !important;
}
.bm.bml.pbn .bm_h {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  line-height: 1.4;
}
.bm.bml.pbn .bm_h h1.xs2 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
}
.bm.bml.pbn .bm_h h1 a { color: var(--text); }
.bm.bml.pbn .bm_h h1 a:hover { color: var(--accent); text-decoration: none; }
.bm.bml.pbn .bm_h .y { order: 2; }
.bm.bml.pbn .bm_h .y a.fa_rss {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-c);
  color: var(--text-2);
  font-size: 13px;
  background: var(--surface-2);
}
.bm.bml.pbn .bm_h .y a.fa_rss:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }
.bm.bml.pbn .xs1.xw0.i {
  font-size: 14px;
  font-weight: 400;
  color: var(--text-2);
}
.bm.bml.pbn .xs1 strong { color: var(--accent); font-weight: 700; }
.bm.bml.pbn .pipe { color: var(--border-strong); margin: 0 6px; }
.bm.bml.pbn .ico_increase { display: none; }

/* ----------------------------------------------------------------
   3. Action toolbar (#pgt, .pgs)
   ---------------------------------------------------------------- */
#pgt,
.pg .pgs,
#modmenu,
#pgbtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
}

.pgsbtn,
#newspecial,
#newspecialtmp,
#pgbtn a,
.pg a.nxt,
.pg a.prev {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: var(--radius-m);
  background: var(--accent) !important;
  color: var(--accent-contrast) !important;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none !important;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.pgsbtn:hover,
#newspecial:hover,
#pgbtn a:hover,
.pg a.nxt:hover,
.pg a.prev:hover {
  background: var(--accent-hover) !important;
  text-decoration: none !important;
}
.pgsbtn:active,
#newspecial:active { transform: scale(.97); }

.pgb a,
.pgb.y a,
.pgs .pgb a {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  background: var(--surface);
  color: var(--text-2);
  font-size: 14px;
  text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.pgb a:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }

/* ----------------------------------------------------------------
   4. Filter bar (.dz_list_top inside #threadlist)
   ---------------------------------------------------------------- */
#threadlist {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-sm) !important;
  overflow: hidden;
  margin-bottom: 18px;
}

.dz_list_top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 4px;
  padding: 12px 16px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
}
.dz_list_top a,
.dz_list_top .showmenu {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: var(--radius-c);
  color: var(--text-2);
  font-size: 14px;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.dz_list_top a:hover,
.dz_list_top .showmenu:hover { background: var(--surface-3); color: var(--text); text-decoration: none; }
.dz_list_top a.kmon,
.dz_list_top a.on,
.dz_list_top .a {
  background: var(--accent) !important;
  color: var(--accent-contrast) !important;
  font-weight: 600;
}
.dz_list_top .pipe,
.dz_list_top .z.kmall { color: var(--border-strong); margin: 0 4px; }
.dz_list_top .y { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.dz_list_top #atarget { color: var(--text-3); font-size: 13px; cursor: pointer; }

/* ----------------------------------------------------------------
   5. Thread list table (.tl)
   ---------------------------------------------------------------- */
.tl {
  width: 100%;
  border-collapse: collapse;
  background: var(--surface);
}
.tl .th {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
  color: var(--text-2);
  font-size: 13px;
  font-weight: 600;
}
.tl .th a { color: var(--text-2); }
.tl .th a:hover { color: var(--accent); }

.tl tbody tr,
.tl tr {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  transition: background var(--dur-fast) var(--ease-out);
}
.tl tbody tr:last-child,
.tl tr:last-child { border-bottom: 0; }
.tl tbody tr:hover { background: var(--surface-2); }

.tl .icn { width: 32px; flex: 0 0 32px; text-align: center; }
.tl .icn img { opacity: .8; }
.tl .common,
.tl .new,
.tl .lock,
.tl .vote,
.tl .reward,
.tl .activity,
.tl .debate,
.tl .poll { display: inline-block; }

.tl .num { width: 90px; flex: 0 0 90px; text-align: right; font-size: 13px; color: var(--text-3); }
.tl .num a,
.tl .num em { display: block; }
.tl .num a { color: var(--text-2); font-weight: 600; }
.tl .num em { color: var(--text-3); font-style: normal; }

.tl .by { width: 140px; flex: 0 0 140px; text-align: right; font-size: 13px; color: var(--text-3); }
.tl .by a { color: var(--text-2); }
.tl .by a:hover { color: var(--accent); }
.tl .by em { display: block; font-style: normal; color: var(--text-3); }

.tl .plc { flex: 1 1 auto; min-width: 0; }

.tl .xst {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.5;
}
.tl .xst:visited { color: var(--text-2); }
.tl .xst:hover { color: var(--accent); text-decoration: none; }

.tl .threadpages,
.tl .tps { font-size: 12px; margin-left: 6px; }
.tl .threadpages a,
.tl .tps a { color: var(--text-3); padding: 0 3px; }
.tl .threadpages a:hover,
.tl .tps a:hover { color: var(--accent); }

.tl .forumdisplay .tl_reply { font-size: 12px; color: var(--text-3); margin-left: 6px; }
.tl img[alt="digest"] { filter: hue-rotate(180deg); }
.tl .icon { display: none !important; }

/* stick / digest badges */
.tl .emfont,
.tl .xi1,
.tl .xg1 { font-size: 12px; }
.tl a.showmenu[onclick] { color: var(--text-2); }

/* ----------------------------------------------------------------
   6. Empty state
   ---------------------------------------------------------------- */
.emp {
  padding: 60px 20px;
  text-align: center;
  color: var(--text-3);
  font-size: 15px;
  background: transparent;
  border: 0 !important;
}
.emp:before {
  content: "∅";
  display: block;
  font-size: 48px;
  margin-bottom: 14px;
  opacity: .12;
  font-weight: 300;
}
/* empty-state wrapper inside threadlist card */
#threadlist .bm_c { border: 0 !important; background: transparent !important; padding: 0; }

/* ----------------------------------------------------------------
   7. Pagination (.pg)
   ---------------------------------------------------------------- */
.pg {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.pg a,
.pg strong,
.pg label,
.pg em,
.pg kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-c);
  background: var(--surface);
  color: var(--text-2);
  font-size: 14px;
  font-style: normal;
  text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.pg a:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.pg strong { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); font-weight: 700; }
.pg label { display: none; }

/* ----------------------------------------------------------------
   8. Fast post (#f_pst)
   ---------------------------------------------------------------- */
#f_pst {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-sm) !important;
  overflow: hidden;
  margin-bottom: 24px;
}
#f_pst .bm_h {
  padding: 14px 18px;
  background: var(--surface-2) !important;
  border-bottom: 1px solid var(--border) !important;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
#f_pst .bm_c { padding: 16px 18px; background: transparent !important; }

#f_pst .pnc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 24px;
  border: 0;
  border-radius: var(--radius-m);
  background: var(--accent);
  color: var(--accent-contrast);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
#f_pst .pnc:hover { background: var(--accent-hover); }

#f_pst .px,
#f_pst .pt {
  width: 100% !important;
  padding: 12px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  background: var(--surface);
  color: var(--text);
  font-size: 15px;
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
#f_pst .pbt.cl { display: flex; flex-direction: column; gap: 6px; }
#f_pst .pbt.cl span { color: var(--text-3); font-size: 13px; }
#f_pst .px:focus,
#f_pst .pt:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }

#f_pst .tedt {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  overflow: hidden;
}
#f_pst .bar {
  padding: 8px 10px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
}
#f_pst .bar a,
#f_pst .bar img { display: inline-flex; align-items: center; margin-right: 6px; }
#f_pst .bar img { filter: grayscale(100%); opacity: .6; }
#f_pst .area { padding: 0; }
#f_pst .pt { border: 0; border-radius: 0; min-height: 120px; }

#f_pst .tip {
  padding: 14px;
  border-radius: var(--radius-m);
  background: var(--surface-2);
  color: var(--text-2);
  font-size: 14px;
}
#f_pst .tip a { color: var(--accent); }

/* ----------------------------------------------------------------
   9. Viewthread post details
   ---------------------------------------------------------------- */
.pg_viewthread #ct { margin-top: 14px; }

.pg_viewthread #postlist > div,
#postlist .plc,
#postlist .pls {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
}

#postlist .plhin {
  display: flex;
  border: 1px solid var(--border);
  border-radius: var(--radius-l);
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
#postlist .plhin .pls {
  width: 170px;
  flex: 0 0 170px;
  padding: 18px;
  border: 0 !important;
  border-right: 1px solid var(--border) !important;
  background: var(--surface-2) !important;
}
#postlist .plhin .plc {
  flex: 1 1 auto;
  border: 0 !important;
  background: var(--surface) !important;
}

#postlist .pls .avatar img {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 1px solid var(--border);
}
#postlist .pls .pi { text-align: center; }
#postlist .pls .authi a {
  display: block;
  margin-top: 10px;
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
}
#postlist .pls .authi a:hover { color: var(--accent); }
#postlist .pls .xg1 { color: var(--text-3); font-size: 12px; }

#postlist .plc .pi {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
  background: var(--surface-2);
  color: var(--text-2);
  font-size: 13px;
}
#postlist .plc .pi a { color: var(--text-2); }
#postlist .plc .pi a:hover { color: var(--accent); }
#postlist .plc .pcb { padding: 18px; }

/* message body */
#postlist .pcb .t_f,
#postlist .pcb .t_fsz {
  font-size: 15px;
  line-height: 1.75;
  color: var(--text);
}
#postlist .pcb .t_f a { color: var(--accent); }
#postlist .pcb .t_f img { max-width: 100%; border-radius: var(--radius-m); }

/* blockquote / code */
#postlist .pcb blockquote,
#postlist .pcb .quote,
#postlist .pcb .blockquote {
  margin: 14px 0;
  padding: 14px 16px;
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--radius-m) var(--radius-m) 0;
  background: var(--surface-2);
  color: var(--text-2);
}
#postlist .pcb pre,
#postlist .pcb code {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 13px;
  background: var(--surface-3);
  padding: 2px 5px;
  border-radius: var(--radius-s);
}
#postlist .pcb pre {
  padding: 14px;
  border-radius: var(--radius-m);
  overflow-x: auto;
}

/* post actions */
#postlist .po,
#postlist .cm {
  padding: 12px 18px;
  border-top: 1px solid var(--border);
  background: var(--surface-2);
}
#postlist .po a,
#postlist .cm a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: var(--radius-c);
  color: var(--text-2);
  font-size: 13px;
}
#postlist .po a:hover,
#postlist .cm a:hover { background: var(--surface-3); color: var(--accent); text-decoration: none; }

/* ----------------------------------------------------------------
   10. Post page (newthread / reply)
   ---------------------------------------------------------------- */
.pg_post #ct { margin-top: 14px; }
.pg_post .bm_h {
  padding: 16px 20px;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-l) var(--radius-l) 0 0;
  border-bottom: 1px solid var(--border) !important;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
}
.pg_post .bm_c {
  padding: 20px;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-top: 0 !important;
  border-radius: 0 0 var(--radius-l) var(--radius-l);
}

.pg_post .bw0 { border: 0 !important; }
.pg_post table { width: 100%; }
.pg_post th,
.pg_post td { padding: 10px 0; vertical-align: top; }
.pg_post th {
  width: 110px;
  text-align: right;
  padding-right: 16px;
  color: var(--text-2);
  font-weight: 600;
  font-size: 14px;
}

.pg_post .px,
.pg_post .pt,
.pg_post .ps,
.pg_post select {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  background: var(--surface);
  color: var(--text);
  font-size: 15px;
  outline: none;
  box-sizing: border-box;
}
.pg_post .px:focus,
.pg_post .pt:focus,
.pg_post select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }

.pg_post .pn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 26px;
  border: 0;
  border-radius: var(--radius-m);
  background: var(--accent);
  color: var(--accent-contrast);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.pg_post .pn:hover { background: var(--accent-hover); }

/* editor in post page */
.pg_post .tedt {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-m);
  overflow: hidden;
}
.pg_post .bar {
  padding: 8px 10px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--border);
}
.pg_post .area .pt { border: 0; border-radius: 0; min-height: 260px; }

/* ----------------------------------------------------------------
   11. Generic forms / buttons reset
   ---------------------------------------------------------------- */
.px, .pt, .ps, select, textarea {
  font-family: inherit;
}
.pn {
  border: 0;
  border-radius: var(--radius-m);
  background: var(--accent);
  color: var(--accent-contrast);
  font-size: 14px;
  font-weight: 600;
}
.pn:hover { background: var(--accent-hover); }

/* ----------------------------------------------------------------
   12. Topbar polish overrides
   ---------------------------------------------------------------- */
/* 已禁用 旧版论坛 移动版自动跳转，隐藏页脚的“手机版”切换入口 */
a[href*="showmobile=yes"],
a[href*="mobile=yes"] { display: none !important; }

/* 隐藏 旧版论坛 原生的右侧悬浮发帖/帮助按钮（与主工具栏重复，且遮挡内容） */
#dz_rnav, .dz_rnav { display: none !important; }

/* ----------------------------------------------------------------
   13. Footer — override 旧版论坛 inline dark footer style
   ---------------------------------------------------------------- */
.dz_footc {
  background: var(--surface-2) !important;
  border-top: 1px solid var(--border);
  color: var(--text-2) !important;
}
.dz_footc a,
.dz_footc_nav .pipe,
.dz_footc_copy,
.dz_footc_copy a {
  color: var(--text-2) !important;
}
.dz_footc a:hover { color: var(--accent) !important; text-decoration: none; }
.dz_footc_nav { border-bottom-color: var(--border) !important; }
.dz_footc_dico { background: none !important; }
#ft.dz_footc_bottom { border-top: none; }

/* Remove any lingering underline/highlights on nav active */
.dz_layer_nav ul li.a,
.dz_layer_nav ul li.a a,
#nv_forum .dz_layer_nav ul li.a a { border-bottom: 0 !important; text-decoration: none !important; }

/* ----------------------------------------------------------------
   13. Responsive
   ---------------------------------------------------------------- */
@media (max-width: 960px) {
  #wp { padding-left: 14px; padding-right: 14px; }

  .bm.bml.pbn { padding: 14px 16px; }
  .bm.bml.pbn .bm_h h1.xs2 { font-size: 18px; }

  #pgt,
  .pg .pgs { flex-direction: column; align-items: flex-start; }
  .pgsbtn,
  #newspecial { width: 100%; justify-content: center; }
  .pgb,
  .pgb.y,
  .pgb a { float: none !important; width: auto; justify-content: center; }

  .dz_list_top { gap: 6px; }
  .dz_list_top .y { width: 100%; margin-left: 0; justify-content: flex-end; }

  .tl tbody tr,
  .tl tr { flex-wrap: wrap; padding: 12px 14px; }
  .tl .icn { width: 28px; flex: 0 0 28px; }
  .tl .plc { width: 100%; flex: 1 1 100%; order: 1; }
  .tl .num,
  .tl .by { width: auto; flex: 1 1 auto; text-align: left; order: 2; margin-top: 6px; font-size: 12px; }

  #postlist .plhin { flex-direction: column; }
  #postlist .plhin .pls {
    width: 100%;
    border-right: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
  }
  #postlist .pls .avatar img { width: 48px; height: 48px; }
  #postlist .pls .pi,
  #postlist .pls .authi { text-align: left; margin-top: 0; }

  .pg_post th,
  .pg_post td { display: block; width: 100%; padding: 6px 0; text-align: left; }
  .pg_post th { padding-top: 12px; }

  /* 首页版块列表：表格列太窄导致文字竖排，改成 flex 卡片 */
  .fl_tb, .fl_tb tbody, .fl_tb tr, .fl_tb td { display: block; width: auto !important; }
  .fl_tb tr {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
  }
  .fl_tb tr:last-child { border-bottom: 0; }
  .fl_tb .fl_icn { flex: 0 0 auto; }
  .fl_tb .fl_icn img { width: 40px; height: 40px; }
  .fl_tb td h2 { display: block; width: auto !important; white-space: normal; font-size: 15px; }
  .fl_tb .fl_i,
  .fl_tb .fl_by { flex: 0 0 auto; font-size: 12px; color: var(--text-3); }
}

@media (max-width: 560px) {
  .tl .xst { font-size: 14px; }
  .pg a, .pg strong, .pg em { min-width: 30px; height: 30px; font-size: 13px; }
}


/* ============================================================
   SECTION 4: REBUILD OVERRIDES — loaded-last authoritative layer (merged from llmcn-rebuild.css, 2026-09)
   ============================================================ */

/* ============================================================================
   LLMCN Talk — Rebuild Stylesheet (loaded LAST, authoritative)
   Content-first · Developer-oriented · Quiet confidence
   Tokens, typography, dark mode, layout, nav, feed, forumdisplay, viewthread,
   composer, footer, responsive. Overrides lower layers where needed.
   No gradients · no glow · no glassmorphism · one accent.
   ========================================================================== */

/* ---------- 1. Design Tokens ----------
   Tokens are intentionally defined ONCE at the top of this file.
   Keeping a single source of truth for colors, spacing, radii, shadows
   and layout variables so future edits don't drift. */

/* ---------- 2. Base ---------- */
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg);
  color: var(--text-1);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }
::selection { background: var(--accent-soft); }

/* kill 旧版论坛 chrome we don't want */
.toptb, #shortcut, #hds, #diy_style, #diy1, #diy3,
.wp.mtn, #dz_rnav, .dz_rnav, #chart, .fl, .lk,
#online, #an, #anc, #ancl { display: none !important; }

/* ---------- 3. Layout container ---------- */
.llmcn-wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--space-5);
}
.llmcn-feedwrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: var(--space-6) var(--space-5) var(--space-8);
  display: block;
}
.llmcn-main { min-width: 0; }
.llmcn-side { min-width: 0; }

/* ---- Homepage two-column（spec §10-14） ---- */
.llmcn-feedwrap.llmcn-home {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: var(--shell-gap);
  align-items: start;
}
.llmcn-home-side {
  position: sticky;
  top: calc(var(--nav-h) + var(--space-4));
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.llmcn-side-block {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  background: var(--surface);
}
.llmcn-side-hd {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-2);
  margin: 0 0 12px;
  letter-spacing: .02em;
}
.llmcn-side-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.llmcn-side-tags a {
  font-size: 12px;
  line-height: 1;
  color: var(--text-2);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 6px 10px;
  text-decoration: none;
  transition: color var(--dur-fast), border-color var(--dur-fast);
}
.llmcn-side-tags a:hover { color: var(--accent); border-color: var(--accent-border); }
.llmcn-side-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.llmcn-side-links li { border-top: 1px solid var(--border); }
.llmcn-side-links li:first-child { border-top: none; }
.llmcn-side-links a {
  display: block;
  padding: 9px 2px;
  font-size: 14px;
  color: var(--text);
  text-decoration: none;
  transition: color var(--dur-fast);
}
.llmcn-side-links a:hover { color: var(--accent); }
@media (max-width: 1180px) {
  .llmcn-feedwrap.llmcn-home { grid-template-columns: 1fr; }
  .llmcn-home-side { position: static; flex-direction: row; flex-wrap: wrap; }
  .llmcn-side-block { flex: 1 1 260px; }
}
/* hero search 高度统一 42px（spec §6） */
.llmcn-hero-search { height: 42px; }

/* ---------- 4. Top navigation ---------- */
.dz_btm_layer { width: 100% !important; max-width: 100% !important; }
.dz_layer_top {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: saturate(180%) blur(8px);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--border);
}
.llmcn-nav {
  height: var(--nav-h);
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--space-5);
  display: flex;
  align-items: center;
  gap: var(--space-5);
}
.dz_btm_layer.dz_nav {
  height: var(--nav-h); max-width: var(--maxw); margin: 0 auto;
  padding: 0 var(--space-5);
  display: flex; align-items: center; gap: var(--space-5);
}
.dz_nav_logo, .llmcn-brand {
  display: flex; align-items: center; gap: 10px;
  color: var(--text-1); flex: 0 0 auto;
}
.dz_nav_logo .llmcn-logo-mark, .llmcn-brand .llmcn-logo-mark { color: var(--accent); display: inline-flex; }
.dz_nav_logo .llmcn-logo-mark svg, .llmcn-brand .llmcn-logo-mark svg { width: 26px; height: 26px; display: block; }
.llmcn-logo-text { display: flex; flex-direction: column; line-height: 1.05; }
.llmcn-logo-name { font-weight: 700; font-size: 16px; letter-spacing: .3px; }
.llmcn-logo-sub { font-size: 11px; color: var(--text-3); font-weight: 500; }

.dz_layer_nav, .llmcn-navlinks {
  display: flex; align-items: center; gap: 2px;
  flex: 1 1 auto; margin-left: var(--space-3);
}
.dz_layer_nav > a, .llmcn-navlink {
  color: var(--text-2);
  font-size: 14.5px; font-weight: 500;
  padding: 8px 12px; border-radius: var(--radius-md);
  transition: color var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out);
}
.dz_layer_nav > a:hover, .llmcn-navlink:hover { color: var(--text-1); background: var(--surface-2); }
.dz_layer_nav > a.is-active, .llmcn-navlink.is-active { color: var(--text); background: var(--surface-2); }

.dz_layer_dl, .llmcn-navactions { display: flex; align-items: center; gap: var(--space-2); flex: 0 0 auto; }

.llmcn-iconbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: var(--radius-md);
  border: 1px solid transparent; background: transparent; color: var(--text-2);
  cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast);
}
.llmcn-iconbtn:hover { background: var(--surface-2); color: var(--text-1); }
.llmcn-iconbtn svg { width: 18px; height: 18px; }

.llmcn-btn {
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 14px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 600; cursor: pointer;
  border: 1px solid var(--border-strong); background: var(--surface);
  color: var(--text-1); transition: all var(--dur-fast) var(--ease-out);
  white-space: nowrap;
}
.llmcn-btn:hover { background: var(--surface-2); border-color: var(--border-strong); }
.llmcn-btn-primary {
  background: var(--accent); border-color: var(--accent); color: var(--accent-contrast);
}
.llmcn-btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--accent-contrast); }
.llmcn-publish svg { width: 15px; height: 15px; }

.llmcn-theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: var(--radius-md);
  border: 1px solid transparent; background: transparent; color: var(--text-2); cursor: pointer;
  transition: background var(--dur-fast), color var(--dur-fast);
}
.llmcn-theme-toggle:hover { background: var(--surface-2); color: var(--text-1); }
.llmcn-theme-toggle .icon-sun { display: none; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-moon { display: none; }
:root[data-theme="dark"] .llmcn-theme-toggle .icon-sun { display: inline; }
.llmcn-theme-toggle svg { width: 18px; height: 18px; }

.llmcn-mob-toggle { display: none; }

/* ---------- 5. User status (login/avatar) kept minimal ---------- */
.llmcn-navactions .login-btn,
.llmcn-navactions a[href*="auth/login"],
.llmcn-navactions a[href*="logging"] {
  color: var(--text-1); font-weight: 600; font-size: 14px; padding: 8px 10px;
}
.llmcn-navactions .avt, .llmcn-navactions .avatar {
  width: 32px; height: 32px; border-radius: var(--radius-pill);
  border: 1px solid var(--border); overflow: hidden; display: inline-block;
}

/* ---------- 6. Typography helpers ---------- */
.llmcn-h-section {
  font-size: 13px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--text-3);
  margin: 0 0 var(--space-3);
}

/* ---------- 7. Homepage feed ---------- */
.llmcn-feed {
  display: block;
  width: 100%;
}
.llmcn-feedtabs {
  display: flex; align-items: center; gap: 2px;
  border-bottom: 1px solid var(--border);
  margin-bottom: var(--space-2);
}
.llmcn-feedtab {
  position: relative; padding: 12px 14px; color: var(--text-2);
  font-size: 14px; font-weight: 600; border: 0; background: none; cursor: pointer;
  transition: color var(--dur-fast);
}
.llmcn-feedtab:hover { color: var(--text-1); }
.llmcn-feedtab.is-active { color: var(--accent); }
.llmcn-feedtab.is-active::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px;
  height: 2px; background: var(--accent); border-radius: 2px;
}

.llmcn-feeditem {
  display: block; padding: 20px 0; border-bottom: 1px solid var(--border);
  color: inherit;
}
.llmcn-feeditem:first-child { padding-top: 8px; }
.llmcn-feeditem:hover .llmcn-fi-title { color: var(--accent); }
.llmcn-fi-top { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; flex-wrap: wrap; }
.llmcn-type {
  font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius-sm);
  background: var(--accent-soft); color: var(--accent);
}
.llmcn-fi-title {
  font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--text-1);
  margin: 0 0 6px; transition: color var(--dur-fast);
}
.llmcn-fi-excerpt {
  color: var(--text-2); font-size: 14px; line-height: 1.6; margin: 0 0 10px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.llmcn-fi-meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  color: var(--text-3); font-size: 13px;
}
.llmcn-fi-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--text-3); opacity: .6; }
.llmcn-fi-meta .author { color: var(--text-2); font-weight: 500; }
.llmcn-fi-meta .stat { display: inline-flex; align-items: center; gap: 4px; }
.llmcn-empty {
  padding: var(--space-8) var(--space-4); text-align: center; color: var(--text-3);
  border: 1px dashed var(--border); border-radius: var(--radius-lg); margin-top: var(--space-4);
}
.llmcn-empty a { color: var(--accent); font-weight: 600; }

/* tags */
.llmcn-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.llmcn-tag {
  display: inline-flex; align-items: center; font-size: 12.5px; font-weight: 500;
  padding: 3px 10px; border: 1px solid var(--border); border-radius: var(--radius-pill);
  color: var(--text-2); background: var(--surface); transition: all var(--dur-fast);
}
.llmcn-tag:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }

/* ---------- 8. Sidebar modules ---------- */
.llmcn-side-mod {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: var(--space-4); margin-bottom: var(--space-5);
}
.llmcn-side-mod h3 {
  font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: var(--text-3); margin: 0 0 var(--space-3);
}
.llmcn-side-list { list-style: none; margin: 0; padding: 0; }
.llmcn-side-list li { padding: 7px 0; border-bottom: 1px solid var(--border); }
.llmcn-side-list li:last-child { border-bottom: 0; }
.llmcn-side-list a { color: var(--text-1); font-size: 14px; font-weight: 500; }
.llmcn-side-list a:hover { color: var(--accent); }
.llmcn-side-list .meta { color: var(--text-3); font-size: 12px; margin-left: 6px; }
.llmcn-ann {
  font-size: 13.5px; color: var(--text-2); padding: 8px 0; border-bottom: 1px solid var(--border);
}
.llmcn-ann:last-child { border-bottom: 0; }
.llmcn-ann a { color: var(--text-1); font-weight: 500; }
.llmcn-ann .meta { color: var(--text-3); font-size: 12px; }

/* ---------- 9. Breadcrumb (slim) ---------- */
#pt, .llmcn-crumb {
  max-width: var(--maxw); margin: 0 auto; padding: var(--space-4) var(--space-5) 0;
  color: var(--text-3); font-size: 13px;
}
#pt a, .llmcn-crumb a { color: var(--text-3); }
#pt a:hover, .llmcn-crumb a:hover { color: var(--accent); }
#pt .nvhm, #pt .nvhm img { display: none; }
#pt em { color: var(--text-3); margin: 0 6px; font-style: normal; }
#pt .y, #pt .z .pipe { display: none; }
/* 帖子详情页面包屑与正文对齐 */
body:has(#postlist) #pt { max-width: var(--thread-w); padding-bottom: var(--space-3); }
/* 发帖页面包屑与表单对齐 */
body:has(#postbox) #pt, body:has(.pg_post) #pt { max-width: var(--form-w); }

/* ---------- 10. forumdisplay ---------- */
.llmcn-fd-head { max-width: var(--maxw); margin: 0 auto; padding: var(--space-5) var(--space-5) 0; }
.llmcn-fd-title { font-size: 24px; font-weight: 700; color: var(--text-1); margin: 0; }
.llmcn-fd-desc { color: var(--text-2); font-size: 14px; margin: 6px 0 0; }

.llmcn-fd-tabs {
  display: flex; align-items: center; gap: 2px; flex-wrap: wrap;
  max-width: var(--maxw); margin: var(--space-4) auto 0; padding: 0 var(--space-5);
  border-bottom: 1px solid var(--border);
}
.llmcn-fd-tab {
  position: relative; padding: 11px 14px; border: 0; background: none; cursor: pointer;
  color: var(--text-2); font-size: 14px; font-weight: 600; transition: color var(--dur-fast);
}
.llmcn-fd-tab:hover { color: var(--text-1); }
.llmcn-fd-tab.is-active { color: var(--accent); }
.llmcn-fd-tab.is-active::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px;
  height: 2px; background: var(--accent); border-radius: 2px;
}

/* the thread list (旧版论坛 renders .kmlist rows inside #threadlist) */
#threadlist.tl, #threadlist { max-width: var(--maxw); margin: var(--space-2) auto 0; padding: 0 var(--space-5); }
.tl .bm_c, #threadlist .bm_c { padding: 0; }
#threadlisttableid { list-style: none; margin: 0; padding: 0; }

.kmlist {
  list-style: none; padding: 18px 0 !important; border-bottom: 1px solid var(--border);
  position: relative;
}
.kmlist:last-child { border-bottom: 0; }
.kmlist .showcontent, .kmlist .km_moderate, .kmlist .closeprev { display: none !important; }
.kmtit {
  display: block !important; color: var(--text-1); font-size: 17px; font-weight: 600;
  line-height: 1.4; margin-bottom: 6px;
}
.kmtit:hover { color: var(--accent); }
.kmtit .kmimgico, .kmtit .kmico { display: none !important; }
.kmtit .km_subject { color: inherit; }
.kmtxt {
  color: var(--text-2); font-size: 14px; line-height: 1.6; margin: 0 0 10px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.kmfoot {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  color: var(--text-3); font-size: 13px;
}
.kmfoot .kmpl::before { content: "💬 "; }
.kmfoot .kmbg, .kmfoot .kmico_bk { color: var(--text-2); }
.kmfoot img { display: none; }
.kmfoot a { color: var(--text-2); font-weight: 500; }
.kmfoot a:hover { color: var(--accent); }
.kmimg_box, .kmimg_onebox, .km_4img { display: none; } /* hide inline image grids for now */

/* hide the legacy 旧版论坛 filter bar noise but keep pagination */
.dz_list_top { display: none !important; }
#pgt, .pgs, .pgt { max-width: var(--maxw); margin: var(--space-4) auto; padding: 0 var(--space-5); }
.pgb, .pgsbtn { display: none !important; }   /* hide "返回/发帖" legacy buttons; we have nav */

/* pagination (reuse token style) */
.pg { text-align: center; margin: var(--space-5) 0; }
.pg a, .pg strong, .pg label {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 34px; height: 34px; padding: 0 10px; margin: 0 3px;
  border: 1px solid var(--border); border-radius: var(--radius-md);
  color: var(--text-2); font-size: 13.5px; background: var(--surface);
}
.pg a:hover { color: var(--accent); border-color: var(--accent); }
.pg strong { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); }

/* forumdisplay legacy header chrome (今日/排名/版主/积分规则) hidden */
.bm.bml.pbn { display: none !important; }

/* ------------------------------------------------------------
   LAYOUT A · 内容 + 右侧栏   (.ct2 → forumdisplay / search / 列表页)
   flex 重建 Discuz 原生两栏：内容自适应(≈820+) + 侧栏 --sd-w(280)。
   不再用 float / 负边距 / max-width:920 硬压，也不再 display:none
   把侧栏整块砍掉 —— 那是之前"内容区过窄"的直接原因。
   ------------------------------------------------------------ */
.boardnav #ct.ct2,
#ct.ct2 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-6, 24px);
  max-width: none;
  margin: 18px 0 0;
  padding: 0;
}
#ct.ct2 > .mn,
#ct.ct2 .mn {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;          /* 关键：允许内部宽表格收缩，避免撑破两栏 */
  max-width: 100%;
  float: none;
  margin: 0;
}
#ct.ct2 > .sd,
#ct.ct2 #sd {
  display: block;
  flex: 0 0 var(--sd-w, 280px);
  width: var(--sd-w, 280px);
  min-width: 0;
  max-width: var(--sd-w, 280px);
  float: none;
  margin: 0;
  padding: 0;
}
#sd .bm, #sd .bmw { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-bottom: var(--space-5); }
#sd .bm_h, #sd h2 { font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--text-3); padding: var(--space-4) var(--space-4) 0; }
#sd .bm_c { padding: var(--space-3) var(--space-4) var(--space-4); }
#sd .xl, #sd .ml { list-style: none; margin: 0; padding: 0; }
#sd .xl li, #sd .ml li { padding: 6px 0; }
#sd a { color: var(--text-1); font-size: 14px; }
#sd a:hover { color: var(--accent); }
#sd .bm_o, #sd .o, #sd .y { display: none; }

/* ---------- 11. viewthread (post detail) ---------- */
/* 旧版论坛 已在服务端关闭左侧作者栏(close_leftinfo=1)，此处只做版式重建 */
#postlist.pl, #postlist {
  max-width: var(--thread-w) !important; margin: 0 auto; padding: 0 var(--space-5) var(--space-6);
  background: none !important; border: 0 !important;
}
/* 仅解构楼层外壳表格，绝不影响正文里用户自己的表格 */
#postlist > table,
#postlist > table > tbody,
#postlist > table > tbody > tr,
#postlist > table > tbody > tr > td { display: block; width: auto; }
#postlist > table > tbody > tr > td.plc { width: auto !important; padding: 0 !important; border: 0 !important; }
#postlist > table > tbody > tr > td.pls { display: none !important; }

/* 帖子标题区 */
#postlist .posthead { margin: 0 0 var(--space-5); }
#postlist .plc.vwthd { padding: 0 !important; }
#postlist .plc.vwthd > .y, #postlist .side_btn, #postlist #fj { display: none !important; }
#postlist h1.ts, #postlist .ts {
  font-size: 30px; font-weight: 700; line-height: 1.28; letter-spacing: -0.01em;
  color: var(--text-1); margin: 0 0 10px; padding: 0; background: none; border: 0;
}
#postlist h1.ts a { color: var(--accent); font-size: 15px; font-weight: 500; vertical-align: middle; }
#postlist .plc.vwthd > .xg1 { display: block; color: var(--text-3); font-size: 13px; }
#postlist .plc.vwthd > .xg1:empty { display: none; }

/* 首帖：卡片；回复：分隔线列表 */
#postlist .plhin {
  background: none !important; border: 0 !important; border-radius: 0 !important;
  margin: 0 !important; padding: 0 !important; width: 100% !important;
}
#postlist .plhin.llmcn-op {
  background: var(--surface) !important; border: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) !important; padding: var(--space-6) !important;
  margin-bottom: var(--space-6) !important;
}
#postlist .plhin:not(.llmcn-op) {
  border-top: 1px solid var(--border) !important; padding: var(--space-5) 0 !important;
}
#postlist .plhin:not(.llmcn-op):hover { background: var(--surface-hover) !important; }

/* 作者行：头像 + 名字 + 时间 + 楼层锚点 */
#postlist .pi {
  display: flex !important; align-items: center; gap: 10px;
  height: auto !important; margin: 0 0 14px !important; padding: 0 !important;
  border: 0 !important; background: none !important; overflow: visible;
}
#postlist .pti { display: flex; align-items: center; flex: 1 1 auto; min-width: 0; order: 1;
  margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
#postlist .pdbt { display: flex; gap: 8px; }
#postlist .authi { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
#postlist .authi .avt { padding: 0 !important; float: none !important; line-height: 0; }
#postlist .authi .avt img, #postlist .authi .avatar img {
  width: 36px; height: 36px; border-radius: 50%; display: block; object-fit: cover;
  background: var(--surface-2);
}
#postlist .llmcn-author { color: var(--text-1) !important; font-weight: 600; font-size: 14px; }
#postlist .llmcn-author:hover { color: var(--accent) !important; }
#postlist .llmcn-time { color: var(--text-3); font-size: 13px; font-style: normal; }
#postlist .llmcn-iploc { color: var(--text-3); font-size: 13px; font-style: normal; }
#postlist .llmcn-badge-op {
  font-size: 11px; font-weight: 600; line-height: 1; padding: 3px 6px;
  border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent);
}
#postlist .llmcn-anchor { order: 2; margin-left: auto; font-weight: 400; flex: none; }
#postlist .llmcn-anchor a { color: var(--text-3); font-size: 12px; font-family: var(--font-mono); }
#postlist .llmcn-anchor a:hover { color: var(--accent); }
#postlist .llmcn-anchor em { font-style: normal; }
/* 残留的旧论坛痕迹 */
#postlist .authicn, #postlist .replystick, #postlist .sign, #postlist .signatures,
#postlist .pipe, #postlist .plc .psti, #postlist .plid,
#postlist .p_pop.mgcmn, #postlist .pcb > .none { display: none !important; }

/* 正文容器 */
#postlist .pct, #postlist .pcb { margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: none !important; width: auto !important; }
#postlist .pstatus { margin: 14px 0 0; padding: 8px 0 0; border-top: 1px dashed var(--border);
  color: var(--text-3); font-size: 12px; background: none; }
/* post body typography (already partly handled by markdown.js for .md-body) */
.t_f, .pcb .t_f {
  font-size: 15.5px; line-height: 1.75; color: var(--text-1);
}
.t_f p, .pcb .t_f p { margin: 0 0 14px; }
.t_f h1, .t_f h2, .t_f h3, .t_f h4 { color: var(--text-1); font-weight: 700; line-height: 1.35; margin: 24px 0 12px; }
.t_f h1 { font-size: 24px; } .t_f h2 { font-size: 21px; } .t_f h3 { font-size: 18px; }
.t_f a { color: var(--accent); border-bottom: 1px solid var(--accent-soft); }
.t_f a:hover { border-bottom-color: var(--accent); }
.t_f ul, .t_f ol { margin: 0 0 14px; padding-left: 22px; }
.t_f li { margin: 4px 0; }
.t_f blockquote { margin: 0 0 14px; padding: 10px 14px; border-left: 3px solid var(--border-strong);
  background: var(--surface-2); border-radius: 0 var(--radius-md) var(--radius-md) 0; color: var(--text-2); }
.t_f img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.t_f table { width: 100%; border-collapse: collapse; margin: 0 0 14px; display: block; overflow-x: auto; }
.t_f table th, .t_f table td { border: 1px solid var(--border); padding: 8px 10px; text-align: left; }
.t_f table th { background: var(--surface-2); }
/* code */
.t_f code, .pcb code {
  font-family: var(--font-mono); font-size: 13px; background: var(--surface-2);
  padding: 2px 5px; border-radius: var(--radius-sm); color: var(--text-1);
}
.t_f pre, .pcb pre {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md);
  padding: 14px 16px; overflow-x: auto; margin: 0 0 14px; position: relative;
}
.t_f pre code, .pcb pre code { background: none; padding: 0; font-size: 13px; line-height: 1.6; }
/* copy button injected by markdown.js */
.llmcn-copy {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  font-size: 12px; padding: 3px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text-2); cursor: pointer; opacity: 0; transition: opacity var(--dur-fast);
}
pre:hover .llmcn-copy, .llmcn-copy:focus { opacity: 1; }
.llmcn-copy:hover { color: var(--accent); border-color: var(--accent); }

/* 旧版论坛 引用块 */
.t_f .quote, .pcb .quote { margin: 0 0 14px; }
.t_f .quote blockquote, .pcb .quote blockquote {
  margin: 0; padding: 10px 14px; border-left: 3px solid var(--border-strong);
  background: var(--surface-2); border-radius: 0 var(--radius-md) var(--radius-md) 0;
  color: var(--text-2); font-size: 14px;
}
.t_f .quote blockquote font, .t_f .quote blockquote size { font-size: inherit !important; color: inherit !important; }

/* 附件 */
.pattl, .attnm { margin: 14px 0 0; font-size: 13px; }
.pattl .attnm a { color: var(--accent); }

/* 楼层操作条 */
#postlist .po.hin { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; }
#postlist .pob {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px;
  margin: 14px 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important;
}
#postlist .pob em, #postlist .pob p {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px;
  margin: 0; padding: 0; font-style: normal; float: none !important;
}
#postlist .pob p { margin-left: auto; }
#postlist .pob a {
  color: var(--text-2); font-size: 13px; font-weight: 500; padding: 4px 0;
  border: 0; background: none; transition: color var(--dur-fast);
}
#postlist .pob a:hover { color: var(--accent); }
#postlist .pob a.fastre { color: var(--accent); }
#postlist .pob .replyadd, #postlist .pob .replysubtract {
  border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px 10px;
}
#postlist .pob .replyadd:hover { border-color: var(--accent); }
#postlist .pob img { display: none; }

/* 帖子底部主操作区（收藏/分享/举报） */
#p_btn, .p_pop.p_opt { display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
  max-width: var(--thread-w); margin: 0 auto var(--space-5); padding: 0 var(--space-5);
  background: none; border: 0; }
#p_btn a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border: 1px solid var(--border); border-radius: var(--radius-pill);
  color: var(--text-2); font-size: 13px; background: var(--surface);
  transition: all var(--dur-fast);
}
#p_btn a:hover { color: var(--accent); border-color: var(--accent); }
#p_btn a i, #p_btn a img, #p_btn em { display: none; }

/* 回复区标题 */
.llmcn-replies-head {
  max-width: var(--thread-w); margin: var(--space-7) auto var(--space-2); padding: 0 var(--space-5);
  font-size: 15px; font-weight: 700; color: var(--text-1);
}
.llmcn-replies-head span { color: var(--text-3); font-weight: 400; margin-left: 6px; }

/* 快速回复 */
#f_pst { max-width: var(--thread-w); margin: var(--space-5) auto var(--space-8); padding: 0 var(--space-5); }
#f_pst .pl, #f_pst form { background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: var(--space-4); }
#f_pst .tedt .area, #f_pst textarea {
  width: 100%; min-height: 110px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-1); padding: 12px 14px; font-size: 14.5px;
  line-height: 1.7; font-family: var(--font-sans); resize: vertical; box-sizing: border-box;
}
#f_pst textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
#f_pst .fpd, #f_pst .tedt .bar { display: none; }
#f_pst .bm_h { display: none; }
#f_pst .bm { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-4); }
#f_pst .px, #f_pst .pt, #f_pst textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-1); font-size: 15px; box-sizing: border-box; font-family: var(--font-sans);
}
#f_pst .pn { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); }

/* ------------------------------------------------------------
   LAYOUT B · 左侧导航 + 内容   (.ct2_a → 设置 / 通知 / 帮助 / 用户中心)
   Discuz 原生用 float + 负边距实现，DOM 顺序是 .appl(左导航) → .mn。
   之前一条 `#ct.ct2_a .mn,.sd{float:none;width:auto}` 把 float 拆了
   却没给替代布局 —— 于是 .appl 与 .mn 变成两个独立块，左导航直接
   掉到内容下方（截图 A / C / E 的问题）。这里用 flex 正式重建。
   ------------------------------------------------------------ */
#ct.ct2_a {
  display: flex;
  align-items: flex-start;
  gap: var(--shell-gap, 32px);
  max-width: var(--settings-max-width, 1080px);
  width: auto;
  margin: 18px auto var(--space-8);
  padding: 0;
  float: none;
  background: none;
  border: 0;
}
#ct.ct2_a > .appl,
#ct.ct2_a .appl {
  order: -1;                       /* force LEFT pane (spec §14) */
  flex: 0 0 var(--nav-w, 220px);
  width: var(--nav-w, 220px);
  max-width: var(--nav-w, 220px);
  min-width: 0;
  float: none;
  margin: 0;                       /* 清掉原生 margin-left:-150px 的负边距技巧 */
  padding: var(--space-3) 0;
  box-sizing: border-box;
}
#ct.ct2_a > .mn,
#ct.ct2_a .mn {
  flex: 1 1 auto;
  display: block;                  /* 原生这里会算成 inline，导致宽度失效 */
  width: auto;
  max-width: 100%;
  min-width: 0;
  float: none;
  margin: 0;
}
/* settings/notification/help content: rely on border + spacing, no shadow (spec §11) */
#ct.ct2_a .bm { box-shadow: none; }

/* ---------- PHASE 5: Avatar page (neutralize checkerboard, hide floating return) ---------- */
#retpre { display: none !important; }                  /* spec §18 floating return link */
#avatardesigner { max-width: 360px; }
#avataradjuster { background: var(--surface-2) !important; border: 1px solid var(--border); border-radius: var(--radius-m); }
#avataradjuster * { background-color: transparent !important; }   /* kill jarring checkerboard (core avatar.css) */
#avataradjuster #selector { background: transparent !important; border: 1px solid var(--accent) !important; }
form#avatarform table.tfm { max-width: var(--form-w); }
form#avatarform table.tfm caption h2 { font-size: 18px; font-weight: 600; color: var(--text); margin: 0 0 4px; }
form#avatarform table.tfm caption p { color: var(--text-2); font-size: 13px; margin: 0 0 12px; }
form#avatarform table.tfm img { width: 96px; height: 96px; border-radius: var(--radius-m); border: 1px solid var(--border); object-fit: cover; }
.uploadavatar, .saveAvatar, .backfileselection, .finishbutton {
  display: inline-block; padding: 8px 16px; border: 1px solid var(--border-strong);
  border-radius: var(--radius-s); background: var(--surface); color: var(--text);
  font-size: 14px; font-weight: 500; cursor: pointer;
}
.uploadavatar, .saveAvatar { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); }

/* ---------- PHASE 6: Notifications (text tabs w/ active underline; no blue pill) ---------- */
#ct.ct2_a .mn ul.tb,
#ct.ct2_a .mn ul.tb.cl {
  display: flex; flex-wrap: wrap; gap: 2px; align-items: center;
  border-bottom: 1px solid var(--border); margin: 0 0 16px; padding: 0; list-style: none;
}
#ct.ct2_a .mn ul.tb li { list-style: none; }
#ct.ct2_a .mn ul.tb li a {
  display: block; padding: 8px 12px 10px; color: var(--text-2); font-size: 14px; font-weight: 500;
  border-bottom: 2px solid transparent; margin-bottom: -1px; text-decoration: none;
}
#ct.ct2_a .mn ul.tb li a:hover { color: var(--text); }
#ct.ct2_a .mn ul.tb li.a a,
#ct.ct2_a .mn ul.tb li.a a:hover {
  color: var(--accent); border-bottom-color: var(--accent); font-weight: 600;
  background: transparent;            /* kill blue pill (spec §25) */
}
#ct.ct2_a .mn ul.tb li.y { margin-left: auto; }   /* 筛选设置 right-aligned */
#ct.ct2_a .mn .emp { padding: 32px 0; color: var(--text-2); text-align: center; }  /* inline empty (§24) */

/* ---------- 12. Composer (post / newthread / reply / edit) ----------
   发帖器是单栏阅读式布局（Layout C），只对真正含 #postform 的页面生效，
   绝不能再命中所有 .ct2_a（那会顺带压垮设置/通知/帮助）。 */
body:has(#postform) #ct,
.pg_post #ct.ct2_a {
  display: block;
  max-width: var(--form-w);
  margin: 18px auto var(--space-8);
  padding: 0;
  width: auto; float: none; background: none; border: 0;
}
body:has(#postform) #ct .mn,
.pg_post #ct.ct2_a .mn { width: auto; max-width: 100%; float: none; margin: 0; }
body:has(#postform) #ct .appl,
body:has(#postform) #ct .sd,
body:has(#postform) #sd,
.pg_post #ct.ct2_a .appl { display: none !important; }

.llmcn-composer-head { margin: 0 0 var(--space-5); }
.llmcn-composer-title {
  font-size: 24px; font-weight: 700; color: var(--text-1); margin: 0 0 var(--space-4);
  letter-spacing: -0.01em;
}
.llmcn-types { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.llmcn-type-opt {
  display: flex; flex-direction: column; gap: 3px;
  padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--surface); cursor: pointer; transition: all var(--dur-fast);
}
.llmcn-type-opt:hover { border-color: var(--border-strong); }
.llmcn-type-label { font-size: 14px; font-weight: 600; color: var(--text-1); }
.llmcn-type-desc { font-size: 12px; color: var(--text-3); }
.llmcn-type-opt.is-active { border-color: var(--accent); background: var(--accent-soft); }
.llmcn-type-opt.is-active .llmcn-type-label { color: var(--accent); }

/* 编辑器外壳 */
#editorbox, #postbox > .bm, .bm.bw0 {
  background: var(--surface) !important; border: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) !important; padding: var(--space-5) !important; margin: 0 !important;
}
#postbox { padding: 0; margin: 0; background: none; }
#postbox .bm_h, #postbox .bm_c { padding: 0; background: none; border: 0; }

/* 次级类型条（普通帖 / 悬赏提问） */
ul.tb.llmcn-specialtb {
  display: flex; gap: 4px; list-style: none; margin: 0 0 var(--space-4) !important;
  padding: 0 0 var(--space-4); border-bottom: 1px solid var(--border); background: none;
}
ul.tb.llmcn-specialtb li { float: none; margin: 0; padding: 0; background: none; border: 0; height: auto; }
ul.tb.llmcn-specialtb li a {
  display: block; padding: 5px 12px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 500; color: var(--text-2); background: none; border: 0; height: auto; line-height: 1.5;
}
ul.tb.llmcn-specialtb li a:hover { color: var(--text-1); background: var(--surface-2); }
ul.tb.llmcn-specialtb li.a a, ul.tb.llmcn-specialtb li.current a {
  color: var(--accent); background: var(--accent-soft); font-weight: 600;
}
ul.tb.llmcn-specialtb li.y { margin-left: auto; }

/* 标题行 */
#postbox .pbt, #postbox .pbt.cl { margin: 0 0 var(--space-3); padding: 0; background: none; border: 0; }
#postbox .pbt .z, #postbox .pbt span { float: none; }
#postbox input#subject, #postbox .px#subject {
  width: 100% !important; box-sizing: border-box; padding: 12px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-1);
  font-size: 18px; font-weight: 600; font-family: var(--font-sans); line-height: 1.4;
}
#postbox input#subject::placeholder { color: var(--text-3); font-weight: 400; }
#postbox input#subject:focus, #postbox textarea:focus, #postbox .px:focus, #postbox select:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
}
#subjectchk { display: block; margin-top: 6px; color: var(--text-3); font-size: 12px; }
#postbox select#typeid, #postbox select {
  padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-1); font-size: 14px; font-family: var(--font-sans);
  margin: 0 0 var(--space-2);
}

/* 正文编辑区 */
#postbox .tedt, #e_body, .tedt { border: 0; background: none; margin: 0; }
#postbox .tedt .bar, .tedt .bar {
  background: var(--surface-2); border: 1px solid var(--border); border-bottom: 0;
  border-radius: var(--radius-md) var(--radius-md) 0 0; padding: 5px 8px; min-height: 0; height: auto;
}
#postbox .tedt .bar a, #postbox .tedt .bar span { color: var(--text-2); }
#postbox .area, .tedt .area { border: 0; background: none; }
#postbox textarea, #postbox .pt, #e_textarea, .tedt textarea {
  width: 100% !important; box-sizing: border-box; min-height: 320px;
  padding: 14px; border: 1px solid var(--border); border-radius: 0 0 var(--radius-md) var(--radius-md);
  background: var(--surface); color: var(--text-1);
  font-size: 15px; line-height: 1.75; font-family: var(--font-sans); resize: vertical;
}

/* 附加选项：只留必要项，隐藏售价/阅读权限/回帖奖励/抢楼/定时 */
#post_extra { margin: var(--space-4) 0 0; padding: var(--space-4) 0 0; border-top: 1px solid var(--border); background: none; }
#post_extra_tb { display: flex; flex-wrap: wrap; gap: 6px; }
#post_extra_tb label {
  padding: 5px 10px; border: 1px solid var(--border); border-radius: var(--radius-pill);
  color: var(--text-2); font-size: 12.5px; cursor: pointer; background: var(--surface);
  transition: all var(--dur-fast);
}
#post_extra_tb label:hover { color: var(--accent); border-color: var(--accent); }
#extra_readperm_b, #extra_price_b, #extra_replycredit_b,
#extra_rushreplyset_b, #extra_pubdate_b,
#extra_readperm_c, #extra_price_c, #extra_replycredit_c,
#extra_rushreplyset_c, #extra_pubdate_c,
#adddynamicspan, #adddynamic_doingspan,
#newspecial_menu, #newspecialtmp, #newspecial { display: none !important; }
#post_extra .exfm {
  margin: var(--space-3) 0 0; padding: var(--space-3); background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius-md); font-size: 13.5px;
}
#post_extra .exfm .px { padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text-1); font-size: 13.5px; }

/* 验证码 */
#seccheck { margin: var(--space-4) 0 0; }
#seccheck .rfm td { padding: 4px 6px 4px 0; }

/* 提交区 */
.pnpost {
  display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
  margin: var(--space-5) 0 0 !important; padding: var(--space-4) 0 0;
  border-top: 1px solid var(--border);
}
.pnpost > a.y { order: 9; margin-left: auto; color: var(--text-3) !important; font-size: 12.5px; float: none !important; }
.pnpost button.pn {
  height: 38px; padding: 0 20px; border-radius: var(--radius-md);
  border: 1px solid var(--border-strong); background: var(--surface); color: var(--text-1);
  font-size: 14px; font-weight: 500; cursor: pointer; font-family: var(--font-sans);
  transition: all var(--dur-fast);
}
.pnpost button.pn:hover { border-color: var(--border-strong); background: var(--surface-2); }
.pnpost button.pn.pnc {
  background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); font-weight: 600;
}
.pnpost button.pn.pnc:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.pnpost button.pn span, .pnpost button.pn em, .pnpost button.pn strong { font-style: normal; font-weight: inherit; }

/* ---------- 13. Footer ---------- */
/* 旧 旧版论坛 页脚 / 右侧悬浮栏 / 二维码，全部下线 */
.dz_footc, .dz_rnav, #scrolltop, .focus#sitefocus, #ft .dz_footc_dico { display: none !important; }

.llmcn-footer {
  margin-top: var(--space-8);
  border-top: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-2);
}
.llmcn-footer-inner {
  max-width: var(--maxw); margin: 0 auto;
  padding: var(--space-7) var(--space-5) var(--space-6);
  display: grid; grid-template-columns: minmax(220px, 1fr) 2fr; gap: var(--space-6);
}
.llmcn-footer-name {
  display: inline-block; font-size: 15px; font-weight: 700;
  color: var(--text-1); letter-spacing: -0.01em;
}
.llmcn-footer-name:hover { color: var(--accent); }
.llmcn-footer-desc { margin: 6px 0 0; font-size: 13px; line-height: 1.6; color: var(--text-3); max-width: 26em; }
.llmcn-footer-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.llmcn-footer-col { display: flex; flex-direction: column; gap: 8px; }
.llmcn-footer-col h4 {
  margin: 0 0 2px; font-size: 12px; font-weight: 600; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--text-3);
}
.llmcn-footer-col a { font-size: 13.5px; color: var(--text-2); line-height: 1.4; }
.llmcn-footer-col a:hover { color: var(--accent); }
.llmcn-footer-legal {
  max-width: var(--maxw); margin: 0 auto;
  padding: var(--space-4) var(--space-5) var(--space-6);
  border-top: 1px solid var(--border);
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4);
  font-size: 12.5px; color: var(--text-3);
}
.llmcn-footer-legal a { color: var(--text-3); }
.llmcn-footer-legal a:hover { color: var(--text-2); }

.llmcn-totop {
  position: fixed; right: 24px; bottom: 24px; z-index: 90;
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-2); cursor: pointer;
  box-shadow: var(--shadow-sm); transition: color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);
}
.llmcn-totop:hover { color: var(--accent); border-color: var(--accent); }
.llmcn-totop[hidden] { display: none; }

/* ---------- 14. Search page ---------- */
.llmcn-searchwrap { max-width: 800px; margin: var(--space-7) auto var(--space-8); padding: 0 var(--space-5); }
.llmcn-searchwrap h1 { font-size: 22px; font-weight: 700; margin: 0 0 var(--space-4); color: var(--text-1); }
.llmcn-searchsub { margin: -8px 0 var(--space-5); font-size: 13px; color: var(--text-3); }
.llmcn-searchbar { display: flex; gap: 8px; margin-bottom: 10px; }
.llmcn-searchbar input {
  flex: 1; min-width: 0; padding: 11px 13px; border: 1px solid var(--border-strong); border-radius: var(--radius-md);
  background: var(--surface); color: var(--text-1); font-size: 15px; transition: border-color var(--dur-2) var(--ease-out);
}
.llmcn-searchbar input:focus { outline: none; border-color: var(--accent); }
.llmcn-searchbar .llmcn-btn-primary { height: auto; padding: 0 20px; white-space: nowrap; }
.llmcn-searchopts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: var(--space-6); }
.llmcn-select {
  appearance: none; -webkit-appearance: none;
  padding: 7px 28px 7px 10px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23888'/%3E%3C/svg%3E") no-repeat right 10px center;
  color: var(--text-1); font-size: 13px; cursor: pointer; max-width: 100%;
}
.llmcn-select:focus { outline: none; border-color: var(--accent); }
.llmcn-select-multi { appearance: auto; -webkit-appearance: auto; background-image: none; padding: 6px; width: 100%; }
.llmcn-check { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text-2); cursor: pointer; }
.llmcn-check input { accent-color: var(--accent); margin: 0; }
.llmcn-searchadv { margin-left: auto; font-size: 13px; color: var(--text-3); }
.llmcn-searchadv:hover { color: var(--accent); }

.llmcn-searchcount {
  font-size: 13px; color: var(--text-3); padding-bottom: 10px;
  border-bottom: 1px solid var(--border); margin-bottom: 4px;
}
.llmcn-searchcount strong { color: var(--text-1); font-weight: 600; }
.llmcn-searchmod { margin-left: 10px; color: var(--accent); }
.llmcn-srlist { list-style: none; margin: 0; padding: 0; }
.llmcn-sritem { padding: var(--space-4) 0; border-bottom: 1px solid var(--border); }
.llmcn-sr-title { margin: 0 0 6px; font-size: 16px; font-weight: 600; line-height: 1.45; }
.llmcn-sr-title a { color: var(--text-1); }
.llmcn-sr-title a:hover { color: var(--accent); }
.llmcn-sr-title strong,
.llmcn-sr-excerpt strong { color: var(--accent); font-weight: 600; }
.llmcn-sr-excerpt { margin: 0 0 7px; font-size: 13.5px; line-height: 1.65; color: var(--text-2); }
.llmcn-sr-locked { color: var(--text-3); font-style: normal; }
.llmcn-sr-meta { margin: 0; font-size: 12.5px; color: var(--text-3); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.llmcn-sr-meta a { color: var(--text-3); }
.llmcn-sr-meta a:hover { color: var(--accent); }
.llmcn-sr-forum { color: var(--text-2) !important; font-weight: 500; }
.llmcn-dot { color: var(--border-strong); }
.llmcn-pager { padding: var(--space-5) 0; font-size: 13px; }
.llmcn-empty-hint { font-size: 13px; color: var(--text-3); margin-top: 6px; }
.llmcn-searchtips {
  border: 0; border-radius: var(--radius-lg);
  background: var(--surface); padding: var(--space-5);
  box-shadow: var(--shadow-ring), var(--shadow-sm);
}
.llmcn-searchtips h2 { margin: 0 0 10px; font-size: 14px; font-weight: 600; color: var(--text-1); }
.llmcn-searchtips ul { margin: 0; padding-left: 18px; }
.llmcn-searchtips li { font-size: 13px; line-height: 1.9; color: var(--text-2); }
.llmcn-searchtips code {
  background: var(--surface-3); border: 1px solid var(--border); border-radius: 3px;
  padding: 1px 5px; font-size: 12px;
}

/* advanced search form */
.llmcn-advform { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); background: var(--surface); margin-bottom: var(--space-6); }
.llmcn-field { display: grid; grid-template-columns: 88px 1fr; gap: var(--space-4); align-items: start; padding: 9px 0; }
.llmcn-field > label { font-size: 13px; color: var(--text-3); padding-top: 8px; }
.llmcn-field-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.llmcn-field-body.llmcn-inline { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
.llmcn-field-body > input[type="text"] {
  padding: 8px 11px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text-1); font-size: 14px; width: 100%;
}
.llmcn-field-body > input[type="text"]:focus { outline: none; border-color: var(--accent); }
.llmcn-searchtabs { display: flex; gap: 2px; border-bottom: 1px solid var(--border); margin-bottom: var(--space-4); }
.llmcn-searchtabs a { padding: 10px 14px; color: var(--text-2); font-weight: 600; font-size: 14px; }
.llmcn-searchtabs a.is-active { color: var(--accent); box-shadow: inset 0 -2px 0 var(--accent); }

/* ---------- 14b. Profile page ---------- */
.llmcn-profile { max-width: 820px; margin: var(--space-7) auto var(--space-8); padding: 0 var(--space-5); }
.llmcn-pf-head { display: grid; grid-template-columns: 64px 1fr auto; gap: var(--space-5); align-items: start; }
.llmcn-pf-avatar {
  width: 64px; height: 64px; border-radius: var(--radius-pill); object-fit: cover;
  border: 1px solid var(--border); background: var(--surface-2);
}
.llmcn-pf-id { min-width: 0; }
.llmcn-pf-name { margin: 0; font-size: 26px; font-weight: 700; color: var(--text-1); line-height: 1.25; letter-spacing: -0.3px; }
.llmcn-pf-role { margin: 5px 0 0; font-size: 12.5px; color: var(--text-3); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.llmcn-pf-group {
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 1px 7px; color: var(--text-2); font-weight: 500;
}
.llmcn-pf-bio { margin: 10px 0 0; font-size: 14px; line-height: 1.7; color: var(--text-2); }
.llmcn-pf-actions { display: flex; gap: 8px; }
.llmcn-pf-stats {
  display: flex; gap: var(--space-6); margin: var(--space-5) 0 0;
  padding: var(--space-4) 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.llmcn-pf-stat { display: flex; flex-direction: column; gap: 2px; }
.llmcn-pf-stat b { font-size: 18px; font-weight: 700; color: var(--text-1); font-variant-numeric: tabular-nums; }
.llmcn-pf-stat span { font-size: 12px; color: var(--text-3); }
.llmcn-pf-section { margin-top: var(--space-6); }
.llmcn-pf-h2 { margin: 0 0 12px; font-size: 12px; font-weight: 700; color: var(--text-3); letter-spacing: .05em; text-transform: uppercase; }
.llmcn-pf-section .llmcn-sr-title { display: flex; align-items: baseline; gap: 8px; }

/* ---------- 15. Header popovers: notifications + account ---------- */
.llmcn-usernav { display: inline-flex; align-items: center; gap: var(--space-1); }
.llmcn-pop { position: relative; }

.llmcn-notice-btn { position: relative; }
.llmcn-badge {
  position: absolute; top: 1px; right: 0;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: var(--radius-pill);
  background: var(--accent); color: var(--accent-contrast);
  font-size: 11px; line-height: 16px; font-weight: 600;
  text-align: center; letter-spacing: 0;
  border: 2px solid var(--surface); box-sizing: content-box;
}

.llmcn-avatarbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; margin: 0;
  border: 0; background: transparent; cursor: pointer;
  border-radius: var(--radius-pill);
  transition: background var(--dur-fast) var(--ease-out);
}
.llmcn-avatarbtn:hover { background: var(--surface-2); }
.llmcn-avatarbtn img {
  width: 28px; height: 28px; border-radius: var(--radius-pill);
  border: 1px solid var(--border); object-fit: cover; display: block;
}

.llmcn-popmenu {
  position: absolute; top: calc(100% + 8px); right: 0;
  width: 264px; z-index: 300;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out),
              visibility 0s linear var(--dur-fast);
}
.llmcn-pop.is-open > .llmcn-popmenu {
  opacity: 1; visibility: visible; transform: none;
  transition-delay: 0s;
}

.llmcn-popmenu-head {
  padding: 10px var(--space-4) 8px;
  font-size: 12px; font-weight: 600; letter-spacing: .02em;
  color: var(--text-3); text-transform: none;
  border-bottom: 1px solid var(--border);
}
.llmcn-popmenu-body { padding: var(--space-1) 0; }
.llmcn-popmenu-body + .llmcn-popmenu-body { border-top: 1px solid var(--border); }
.llmcn-popmenu-empty {
  padding: var(--space-6) var(--space-4);
  text-align: center; font-size: 13px; color: var(--text-3);
}
.llmcn-popmenu-foot {
  display: flex; gap: var(--space-4);
  padding: 10px var(--space-4);
  border-top: 1px solid var(--border);
  background: var(--surface-2);
}
.llmcn-popmenu-foot a { font-size: 12px; color: var(--text-2); text-decoration: none; }
.llmcn-popmenu-foot a:hover { color: var(--accent); }

.llmcn-noti {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding: 9px var(--space-4);
  font-size: 14px; color: var(--text-1); text-decoration: none;
  transition: background var(--dur-fast) var(--ease-out);
}
.llmcn-noti:hover { background: var(--surface-2); color: var(--text-1); }
.llmcn-noti-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.llmcn-noti-n {
  flex: none; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: var(--radius-pill);
  background: var(--accent-soft); color: var(--accent);
  font-size: 11px; line-height: 18px; font-weight: 600; text-align: center;
  font-variant-numeric: tabular-nums;
}

.llmcn-usermenu { width: 240px; }
.llmcn-um-head {
  display: block; padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border); text-decoration: none;
}
.llmcn-um-head:hover { background: var(--surface-2); }
.llmcn-um-name {
  display: block; font-size: 14px; font-weight: 600; color: var(--text-1);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.llmcn-um-meta {
  display: block; margin-top: 2px; font-size: 12px; color: var(--text-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.llmcn-um-meta font { color: inherit !important; }
.llmcn-um-item {
  display: block; padding: 8px var(--space-4);
  font-size: 14px; color: var(--text-1); text-decoration: none;
  transition: background var(--dur-fast) var(--ease-out);
}
.llmcn-um-item:hover { background: var(--surface-2); color: var(--text-1); }
.llmcn-um-out { color: var(--text-2); }
.llmcn-um-out:hover { color: var(--danger); }

/* ---------- 16. Avatar ---------- */
.avt img, .avatar img, .llmcn-avatar {
  border-radius: var(--radius-pill); width: 32px; height: 32px; object-fit: cover;
  border: 1px solid var(--border); background: var(--surface-2);
}

/* ---------- 17. Buttons (generic 旧版论坛 .pn) ---------- */
.pn { border-radius: var(--radius-md); }
.pn.pnc { background: var(--accent); border-color: var(--accent); color: var(--accent-contrast); }

/* ---------- 18. Responsive ---------- */
@media (max-width: 960px) {
  .llmcn-feedwrap { grid-template-columns: 1fr; gap: var(--space-5); }
  .llmcn-side { order: 2; }
  .llmcn-main { order: 1; }
  /* Layout A 在平板宽度降为单栏：侧栏沉到内容下方而不是被删除 */
  .boardnav #ct.ct2, #ct.ct2 { display: block; }
  #ct.ct2 > .sd, #ct.ct2 #sd {
    width: auto; max-width: 100%; flex: none; margin-top: var(--space-5);
  }
  #threadlist.tl, #threadlist, .llmcn-fd-head, .llmcn-fd-tabs, #pt, #postlist, #f_pst {
    padding-left: var(--space-4); padding-right: var(--space-4);
  }
  .llmcn-wrap { padding: 0 var(--space-4); }
  .llmcn-footer-inner { grid-template-columns: 1fr; gap: var(--space-5); }
}
@media (max-width: 640px) {
  .llmcn-footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
  .llmcn-footer-inner { padding: var(--space-6) var(--space-4) var(--space-5); }
  .llmcn-footer-legal { padding: var(--space-4); gap: var(--space-3); }
  .llmcn-totop { right: 14px; bottom: 14px; }
  .llmcn-searchwrap { padding: 0 var(--space-4); margin-top: var(--space-5); }
  .llmcn-searchadv { margin-left: 0; }
  .llmcn-field { grid-template-columns: 1fr; gap: 6px; }
  .llmcn-field > label { padding-top: 0; }
  .llmcn-advform { padding: var(--space-4); }
  .llmcn-profile { padding: 0 var(--space-4); margin-top: var(--space-5); }
  .llmcn-pf-head { grid-template-columns: 48px 1fr; gap: var(--space-4); }
  .llmcn-pf-avatar { width: 48px; height: 48px; }
  .llmcn-pf-name { font-size: 19px; }
  .llmcn-pf-actions { grid-column: 1 / -1; }
  .llmcn-pf-stats { gap: var(--space-5); }
  .llmcn-popmenu { width: min(264px, calc(100vw - 24px)); }
}
@media (max-width: 768px) {
  .llmcn-navlink, .dz_layer_nav > a { display: none; }
  .llmcn-navlinks, .dz_layer_nav {
    display: none !important;
    margin: 0; padding: 0; flex: 0 0 0px;
  }
  .llmcn-mob-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border: 0; background: transparent; color: var(--text-2); cursor: pointer; margin-left: auto;
  }
  .llmcn-mob-toggle svg { width: 20px; height: 20px; }
  .llmcn-publish span { display: none; }
  .llmcn-publish { padding: 0 10px; }
  .llmcn-brand .llmcn-logo-sub { display: none; }
  /* mobile drawer */
  .llmcn-navlinks.is-open,
  .dz_layer_nav.is-open {
    display: flex !important; position: absolute; top: var(--nav-h); left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--surface); border-bottom: 1px solid var(--border); padding: var(--space-2) var(--space-4);
    box-shadow: var(--shadow-md); z-index: 99;
  }
  .llmcn-navlinks.is-open .llmcn-navlink,
  .llmcn-navlinks.is-open .dz_layer_nav > a,
  .dz_layer_nav.is-open .llmcn-navlink,
  .dz_layer_nav.is-open > a {
    display: block !important; padding: 14px 8px; border-radius: 0; border-bottom: 1px solid var(--border);
  }
  .llmcn-drawer-util {
    display: none; margin-top: var(--space-3); padding-top: var(--space-3);
    border-top: 1px solid var(--border);
  }
  .llmcn-navlinks.is-open .llmcn-drawer-util,
  .dz_layer_nav.is-open .llmcn-drawer-util {
    display: flex; flex-wrap: wrap; gap: var(--space-2);
  }
  .llmcn-drawer-link {
    flex: 1 1 auto; text-align: center;
    padding: 10px; border-radius: var(--radius-md);
    background: var(--surface-2); color: var(--text-1);
    font-size: 13px; font-weight: 500; text-decoration: none;
  }
  .llmcn-drawer-link:hover { background: var(--surface-3); color: var(--text-1); }
  .kmtit, .llmcn-fi-title { font-size: 16px; }
  .llmcn-fd-title { font-size: 21px; }
  #postlist .plc { padding: var(--space-4) !important; }
  #postlist .plc h2.pcb, #postlist .ts { font-size: 22px; }
  .llmcn-feedwrap { gap: var(--space-5); }
}
@media (max-width: 480px) {
  .llmcn-iconbtn[href*="search.php"],
  .llmcn-publish { display: none !important; }
  .dz_btm_layer.dz_nav { padding: 0 var(--space-3); gap: var(--space-2); }
  .dz_nav_logo .llmcn-logo-sub { display: none; }
  .llmcn-btn { padding: 0 10px; font-size: 13px; }
  .llmcn-usernav { gap: 0; }
}
@media (max-width: 375px) {
  .llmcn-theme-toggle { display: none !important; }
}
@media (max-width: 360px) {
  .dz_btm_layer.dz_nav { padding: 0 var(--space-2); gap: 6px; }
  .llmcn-btn { padding: 0 8px; font-size: 12px; height: 32px; }
  .llmcn-logo-mark svg { width: 22px; height: 22px; }
}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* focus visibility (a11y) */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, .llmcn-navlink:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm);
}


/* ============================================================
   SECTION 5: LAYOUT CONDITIONALS — formerly inline <style> in header_common.php
   ============================================================ */


.dz_btm_layer{width: 1200px;margin: 0 auto;}
.dz_btm_layer .dz_layer_nav{width: 609px;}
.header-right .header-searcher .search-input{width: 200px;}

/* ============================================================
   SECTION 6: 2026-09 产品重构 — 首页 Hero / Tab 排序 / 状态徽章 /
   导航「更多」下拉 / 精简页脚 / 侧栏补充
   ============================================================ */

/* —— 首页第一屏：克制、不浪费一屏 —— */
.llmcn-home-hero { margin:0 0 16px; grid-column: 1 / -1; }
.llmcn-home-hero-title { font-size:24px; line-height:1.3; font-weight:700; margin:0 0 6px; color:var(--text); }
.llmcn-home-hero-sub { font-size:15px; color:var(--text-2); margin:0 0 16px; }
.llmcn-home-hero-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.llmcn-home-hero-search { display:flex; flex:1 1 320px; max-width:520px; }
.llmcn-home-hero-input {
  flex:1 1 auto; min-width:0; height:40px; padding:0 14px;
  font-size:14px; color:var(--text);
  background:var(--surface); border:1px solid var(--border-strong);
  border-radius:var(--radius-s) 0 0 var(--radius-s); outline:none;
}
.llmcn-home-hero-input:focus { border-color:var(--accent); }
.llmcn-home-hero-go {
  height:40px; padding:0 18px; font-size:14px; cursor:pointer; font-weight:500;
  color:var(--accent-contrast); background:var(--accent);
  border:1px solid var(--accent); border-radius:0 var(--radius-s) var(--radius-s) 0;
}
.llmcn-home-hero-go:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
.llmcn-home-hero-ask {
  height:40px; display:inline-flex; align-items:center; padding:0 18px; font-size:14px; font-weight:500;
  white-space:nowrap; color:var(--text); background:var(--surface); border:1px solid var(--border-strong);
}
.llmcn-home-hero-ask:hover { background:var(--surface-2); }

/* Header search dedupe: home page already has a large hero search */
.pg_index .header-searcher { display:none !important; }

/* —— Tab 行：业务类型 + 次级排序（热门不占一级入口） —— */
.llmcn-feedtabs { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
.llmcn-feedsort { margin-left:auto; display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:var(--radius-s); overflow:hidden; }
.llmcn-feedsort a { padding:4px 12px; font-size:12px; color:var(--text-2); text-decoration:none; background:var(--surface); }
.llmcn-feedsort a + a { border-left:1px solid var(--border); }
.llmcn-feedsort a.is-active { color:var(--text); background:var(--bg); font-weight:600; }

/* —— 问答状态徽章：弱暖色=待解决，克制绿=已解决（不用荧光） —— */
.llmcn-status {
  display:inline-block; font-size:12px; line-height:1; padding:4px 8px;
  border-radius:var(--radius-s); border:1px solid transparent; white-space:nowrap;
}
.llmcn-status.is-open { color:var(--c-amber); background:var(--c-amber-bg); border-color:var(--border); }
.llmcn-status.is-solved { color:var(--c-green); background:var(--c-green-bg); border-color:var(--border); }

/* —— 侧栏补充：说明文字 / 链接组 —— */
.llmcn-side-text p { margin:0 0 8px; font-size:13px; line-height:1.6; color:var(--text-2); }
.llmcn-side-text p:last-child { margin-bottom:0; }
.llmcn-side-note { margin:0 0 8px; font-size:12px; color:var(--text-3, var(--text-2)); }
.llmcn-side-links { display:flex; flex-wrap:wrap; gap:8px; }
.llmcn-side-links a {
  font-size:13px; color:var(--text); text-decoration:none;
  border:1px solid var(--border); border-radius:var(--radius-s);
  padding:6px 10px; background:var(--surface);
}
.llmcn-side-links a:hover { color:var(--accent); border-color:var(--accent); }

/* —— 导航「更多」下拉：hover / focus 展开 —— */
.llmcn-navmore { position:relative; display:inline-flex; align-items:center; }
.llmcn-navmore-btn { cursor:pointer; user-select:none; gap:3px; }
.llmcn-navmore-btn .caret { width:14px; height:14px; opacity:.65; transition:transform var(--dur-fast) var(--ease-out); }
.llmcn-navmore-menu {
  position:absolute; top:100%; left:50%; min-width:170px; padding:6px; z-index:80;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m);
  box-shadow:var(--shadow-sm);
  opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast);
}
.llmcn-navmore-menu a { display:block; padding:8px 12px; font-size:14px; color:var(--text); text-decoration:none; border-radius:var(--radius-s); white-space:nowrap; }
.llmcn-navmore-menu a:hover { background:var(--bg); color:var(--accent); }
.llmcn-navmore:hover .llmcn-navmore-menu,
.llmcn-navmore:focus-within .llmcn-navmore-menu {
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(2px);
  transition-delay:0s;
}
.llmcn-navmore:hover .caret,
.llmcn-navmore:focus-within .caret { transform:rotate(180deg); }

/* —— 页脚：单行链接组（替代旧三栏） —— */
.llmcn-footer-links { display:flex; flex-wrap:wrap; gap:6px 22px; align-items:center; }
.llmcn-footer-links a { font-size:14px; color:var(--text-2); text-decoration:none; }
.llmcn-footer-links a:hover { color:var(--accent); }

/* —— 移动端：hero 单列、Tab 可换行 —— */
@media (max-width:768px) {
  .llmcn-home-hero-title { font-size:20px; }
  .llmcn-home-hero-sub { font-size:14px; }
  .llmcn-home-hero-search { max-width:none; flex:1 1 100%; }
  .llmcn-home-hero-actions { flex-direction:column; align-items:stretch; }
  .llmcn-home-hero-ask { justify-content:center; }
  .llmcn-feedsort { margin-left:0; }
  .llmcn-navmore-menu { left:auto; right:0; transform:translateY(6px); }
  .llmcn-navmore:hover .llmcn-navmore-menu,
  .llmcn-navmore:focus-within .llmcn-navmore-menu { transform:translateY(2px); }
}

/* —— 版块头：定位副标题 + 发布按钮（2026-09） —— */
.llmcn-fd-head .llmcn-fd-new { margin-top:14px; display:inline-flex; align-items:center; height:36px; padding:0 16px; font-size:14px; }

/* —— 抽屉工具组：桌面隐藏，仅移动端抽屉展开时显示 —— */
.llmcn-drawer-util { display: none; }

/* ============================================================
   SECTION 7 — 第二轮重构新增组件（2026-09-02）
   问答状态 / 采纳答案跳转 / 发帖折叠 / 提问引导 / 资源分组
   ============================================================ */

/* —— 问答状态徽标：只出现在问答与悬赏主题上 —— */
.llmcn-qa-status {
  display:inline-flex; align-items:center; height:20px; padding:0 8px;
  margin-left:8px; vertical-align:middle;
  font-size:12px; font-weight:600; line-height:1;
  border-radius:var(--radius-s); border:1px solid transparent;
  white-space:nowrap;
}
.llmcn-qa-status.is-solved { color:var(--c-green); background:var(--c-green-bg); border-color:var(--c-green-bg); }
.llmcn-qa-status.is-open   { color:var(--c-amber); background:var(--c-amber-bg); border-color:var(--c-amber-bg); }

/* —— 已解决：跳到被采纳的回答 —— */
.llmcn-jump-answer {
  display:inline-flex; align-items:center; gap:6px;
  margin:10px 0 0; padding:7px 12px;
  font-size:13px; font-weight:500; color:var(--c-green);
  background:var(--c-green-bg); border:1px solid var(--border);
  border-radius:var(--radius-s); text-decoration:none;
  transition:border-color var(--dur-fast) var(--ease-out);
}
.llmcn-jump-answer:hover { color:var(--c-green); border-color:var(--c-green); text-decoration:none; }
.llmcn-jump-answer::before { content:"↓"; font-size:12px; opacity:.75; }

/* —— 发帖页：传统论坛选项折叠进「更多选项」 —— */
.llmcn-moreopts { margin:14px 0 0; border:1px solid var(--border); border-radius:var(--radius-s); background:var(--surface); }
.llmcn-moreopts-sum {
  cursor:pointer; list-style:none; padding:10px 14px;
  font-size:13px; font-weight:500; color:var(--text-2);
  display:flex; align-items:center; gap:8px; user-select:none;
}
.llmcn-moreopts-sum::-webkit-details-marker { display:none; }
.llmcn-moreopts-sum::after { content:"▾"; margin-left:auto; font-size:11px; color:var(--text-3); transition:transform var(--dur-fast) var(--ease-out); }
.llmcn-moreopts[open] .llmcn-moreopts-sum { border-bottom:1px solid var(--border); color:var(--text); }
.llmcn-moreopts[open] .llmcn-moreopts-sum::after { transform:rotate(180deg); }
.llmcn-moreopts > *:not(summary) { padding:12px 14px; }

/* —— 提问引导：只在问答板块发新主题时出现 —— */
.llmcn-askhint {
  margin:0 0 14px; padding:14px 16px;
  border:1px solid var(--border); border-left:3px solid var(--accent);
  border-radius:var(--radius-s); background:var(--surface-2);
}
.llmcn-askhint-t { margin:0 0 8px; font-size:13px; font-weight:600; color:var(--text); }
.llmcn-askhint-l { margin:0; padding:0 0 0 18px; list-style:disc; }
.llmcn-askhint-l li { font-size:13px; line-height:1.85; color:var(--text-2); }
.llmcn-askhint-f { margin:8px 0 0; font-size:12px; color:var(--text-3); }

/* —— 开发者资源：按用途分组 —— */
.llmcn-rescat { margin:0 0 22px; }
.llmcn-rescat:last-child { margin-bottom:0; }
.llmcn-rescat-hd {
  margin:0 0 10px; padding:0 0 8px;
  font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--text-2);
  border-bottom:1px solid var(--border);
}
/* 去掉图标位后卡片改为两行文字布局 */
.llmcn-hub-card { align-items:center; }
.llmcn-hub-card-desc { white-space:normal; }
.llmcn-hub-contrib .llmcn-hub-rank-hd { font-size:13px; font-weight:600; color:var(--text-2); }
.llmcn-hub-contrib .llmcn-rank em { color:var(--text-3); font-style:normal; }

@media (max-width:768px) {
  .llmcn-jump-answer { width:100%; justify-content:center; }
  .llmcn-qa-status { margin-left:0; margin-right:6px; }
  .llmcn-rescat-hd { font-size:12px; }
}

/* =================================================================
   PHASE T1 — THEME UNIFICATION (2026-09-02)
   Scope: home / forumdisplay / viewthread / search
   Spec: Home + Forum Display + ViewThread + Search unified.
   Design authority: GitHub Primer (primary).
   - Bump shell to 1220 / 24 (desktop) / 16 (mobile).
   - Hide native Discuz duplicates on fd/vt pages.
   - New: hero, boards, features, fd-bar, fd-row, pager, vt-head, empty.
   ================================================================= */

/* ---- shell token bump ---- */
:root {
  --site-max-width: 1220px;
  --shell-pad: 24px;
}
@media (max-width: 768px) {
  :root { --shell-pad: 16px; }
}

/* ---- HOMEPAGE: hero (≤200px) ---- */
.llmcn-hero { padding: 20px 0 18px; max-width: 760px; }
.llmcn-hero h1 { font-size: 26px; line-height: 1.3; font-weight: 600; color: var(--text); margin: 0 0 6px; }
.llmcn-hero p  { font-size: 14px; line-height: 1.6; color: var(--text-2); margin: 0 0 14px; max-width: 640px; }
.llmcn-hero-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.llmcn-hero-search {
  display: flex; flex: 1 1 320px; max-width: 480px; height: 44px;
  border: 1px solid var(--border); border-radius: var(--radius-m);
  background: var(--surface); overflow: hidden;
}
.llmcn-hero-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.llmcn-hero-search input { flex: 1 1 auto; height: 100%; border: 0; padding: 0 14px; font: inherit; font-size: 14px; color: var(--text); background: transparent; outline: none; }
.llmcn-hero-search button { height: 100%; padding: 0 18px; border: 0; background: var(--accent); color: #fff; font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; }
.llmcn-hero-search button:hover { background: var(--accent-hover); }
.llmcn-hero-ask {
  display: inline-flex; align-items: center; height: 44px; padding: 0 16px;
  border: 1px solid var(--border); border-radius: var(--radius-m);
  background: var(--surface); color: var(--text); font-size: 14px; font-weight: 500; text-decoration: none;
}
.llmcn-hero-ask:hover { border-color: var(--accent); color: var(--accent); }
@media (max-width: 768px) {
  .llmcn-hero h1 { font-size: 22px; }
  .llmcn-hero-actions { flex-direction: column; align-items: stretch; }
  .llmcn-hero-search { max-width: 100%; }
  .llmcn-hero-ask { justify-content: center; }
}

/* ---- HOMEPAGE: 社区板块 (6 块, 3-2-1 col, light blocks not cards) ---- */
.llmcn-boards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
@media (max-width: 1024px) { .llmcn-boards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .llmcn-boards { grid-template-columns: 1fr; } }
.llmcn-board {
  display: block; padding: 18px 20px;
  border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
  text-decoration: none; color: inherit; background: var(--surface);
  transition: background var(--dur-fast) var(--ease-out);
}
.llmcn-board:hover { background: var(--surface-2); }
.llmcn-board h3 { font-size: 16px; font-weight: 600; color: var(--text); margin: 0 0 4px; line-height: 1.35; }
.llmcn-board p  { font-size: 13px; line-height: 1.55; color: var(--text-2); margin: 0 0 10px; min-height: 38px; }
.llmcn-board-meta { font-size: 12px; color: var(--text-3); display: inline-flex; gap: 6px; align-items: center; }
.llmcn-board-meta .dot { color: var(--text-3); }
.llmcn-board-meta .unsolved { color: var(--warning); }

/* ---- HOMEPAGE: 社区功能 (4 块, simple list not card) ---- */
.llmcn-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
@media (max-width: 1024px) { .llmcn-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .llmcn-features { grid-template-columns: 1fr; } }
.llmcn-feature {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
  text-decoration: none; color: inherit; background: var(--surface);
}
.llmcn-feature:hover { background: var(--surface-2); }
.llmcn-feature .lbl { font-size: 14px; font-weight: 500; color: var(--text); }
.llmcn-feature .sub { font-size: 12px; color: var(--text-3); }
.llmcn-feature .arrow { margin-left: auto; color: var(--text-3); font-size: 14px; }

/* ---- Section header used across home / fd / search ---- */
.llmcn-section { margin: 28px 0 0; }
.llmcn-section > h2 {
  font-size: 16px; font-weight: 600; color: var(--text);
  margin: 0 0 12px; padding-bottom: 10px;
  display: flex; align-items: baseline; gap: 10px;
  border-bottom: 1px solid var(--border-muted);
}
.llmcn-section > h2 .meta { font-size: 12px; color: var(--text-3); font-weight: 400; margin-left: auto; }
.llmcn-section > h2 .meta a { color: var(--text-2); text-decoration: none; }
.llmcn-section > h2 .meta a:hover { color: var(--accent); }

/* ---- HOMEPAGE: feedtabs (compact sub-filter inside 最新讨论) ---- */
.llmcn-feedtabs { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin: 0 0 12px; font-size: 14px; }
.llmcn-feedtab { padding: 6px 10px; color: var(--text-2); text-decoration: none; border-radius: var(--radius-s); }
.llmcn-feedtab:hover { color: var(--text); background: var(--surface-2); }
.llmcn-feedtab.is-active { color: var(--accent); font-weight: 600; background: var(--nav-active-bg); }
.llmcn-feedsort { margin-left: auto; display: inline-flex; gap: 2px; }
.llmcn-feedsort a { padding: 4px 8px; color: var(--text-3); text-decoration: none; font-size: 12px; }
.llmcn-feedsort a.is-active { color: var(--text); font-weight: 500; }
.llmcn-feeditem .llmcn-type { color: var(--text-3); }

/* ---- Empty state (home / fd / search) — scenario copy, not generic ---- */
.llmcn-empty {
  padding: 32px 20px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-m);
  background: var(--surface);
  text-align: center;
}
.llmcn-empty .title { font-size: 14px; color: var(--text); margin: 0 0 6px; font-weight: 500; }
.llmcn-empty .sub   { font-size: 12px; color: var(--text-3); margin: 0 0 14px; }
.llmcn-empty .cta   { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border: 1px solid var(--accent); color: var(--accent); border-radius: var(--radius-m); text-decoration: none; font-size: 13px; font-weight: 500; background: transparent; cursor: pointer; }
.llmcn-empty .cta:hover { background: var(--accent-soft); }
.llmcn-empty .cta.is-primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.llmcn-empty .cta.is-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: #fff; }

/* ---- Forum Display: head (breadcrumb / title / desc / actions) ---- */
.llmcn-fd-head { padding: 0 0 12px; border-bottom: 1px solid var(--border); }
.llmcn-fd-crumb { font-size: 12px; color: var(--text-3); margin: 0 0 10px; }
.llmcn-fd-crumb a { color: var(--text-3); text-decoration: none; }
.llmcn-fd-crumb a:hover { color: var(--accent); }
.llmcn-fd-crumb .sep { margin: 0 6px; color: var(--text-3); }
.llmcn-fd-title-row { display: flex; align-items: flex-start; gap: 12px; }
.llmcn-fd-title-row h1 { font-size: 22px; font-weight: 600; color: var(--text); margin: 0; line-height: 1.3; flex: 1 1 auto; }
.llmcn-fd-head .desc { font-size: 13px; color: var(--text-2); margin: 8px 0 12px; max-width: 720px; line-height: 1.55; }
.llmcn-fd-head .desc .unsolved { color: var(--warning); margin-left: 6px; }

/* ---- Common primary button (used in fd head / vt actions) ---- */
.llmcn-btn-primary {
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 14px;
  background: var(--accent); color: #fff;
  border: 1px solid var(--accent);
  border-radius: var(--radius-m);
  font-size: 14px; font-weight: 500;
  text-decoration: none; cursor: pointer;
}
.llmcn-btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: #fff; }
.llmcn-btn-primary svg { width: 14px; height: 14px; }

/* ---- fd-bar: 筛选 + 排序 + More ---- */
.llmcn-fd-bar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin: 12px 0 0; padding: 8px 0;
  border-top: 1px solid var(--border-muted);
  border-bottom: 1px solid var(--border-muted);
  font-size: 13px;
}
.llmcn-fd-tabs { display: inline-flex; gap: 2px; }
.llmcn-fd-tabs a { padding: 6px 10px; color: var(--text-2); text-decoration: none; border-radius: var(--radius-s); }
.llmcn-fd-tabs a:hover { background: var(--surface-2); color: var(--text); }
.llmcn-fd-tabs a.is-active { color: var(--accent); font-weight: 600; background: var(--nav-active-bg); }
.llmcn-fd-sort { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--text-3); font-size: 12px; }
.llmcn-select {
  height: 30px; padding: 0 26px 0 10px;
  border: 1px solid var(--border); border-radius: var(--radius-s);
  background: var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2357606a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 8px center / 12px;
  font: inherit; font-size: 13px; color: var(--text);
  -webkit-appearance: none; appearance: none; cursor: pointer;
}
.llmcn-select:hover, .llmcn-select:focus { border-color: var(--accent); outline: none; }

/* ---- More menu (···) ---- */
.llmcn-more { position: relative; }
.llmcn-more-btn {
  height: 30px; min-width: 32px; padding: 0 8px;
  display: inline-flex; align-items: center; gap: 4px;
  background: transparent; color: var(--text-2);
  border: 1px solid var(--border); border-radius: var(--radius-s);
  font: inherit; font-size: 13px; cursor: pointer;
}
.llmcn-more-btn:hover { color: var(--text); background: var(--surface-2); }
.llmcn-more-menu {
  position: absolute; right: 0; top: calc(100% + 4px);
  min-width: 200px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-m);
  box-shadow: var(--shadow-overlay);
  padding: 4px; z-index: 20;
  display: none; font-size: 13px;
}
.llmcn-more.is-open .llmcn-more-menu { display: block; }
.llmcn-more-menu a { display: flex; align-items: center; gap: 8px; padding: 7px 10px; color: var(--text); text-decoration: none; border-radius: var(--radius-s); }
.llmcn-more-menu a:hover { background: var(--surface-2); color: var(--accent); }
.llmcn-more-menu .sep { height: 1px; background: var(--border-muted); margin: 4px 0; }

/* ---- Forum Display: list rows (kmlist → llmcn-fd-row visual) ---- */
#threadlist > div.bm_c > form > .dz_forumdisplay_waterfall { margin: 0; padding: 0; }
#threadlist ul, .kmlist { list-style: none; margin: 0; padding: 0; }
#threadlist .kmlist > li {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border-muted);
  background: transparent !important;
}
#threadlist .kmlist > li:hover { background: var(--surface-2) !important; }
#threadlist .kmlist .km_main { flex: 1 1 auto; min-width: 0; }
#threadlist .kmlist .km_title a { font-size: 15px; color: var(--text); line-height: 1.4; font-weight: 500;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis;
}
#threadlist .kmlist .km_title a:hover { color: var(--accent); }
#threadlist .kmlist .km_meta { font-size: 12px; color: var(--text-3); margin-top: 4px; }
#threadlist .kmlist .km_meta a { color: var(--text-2); text-decoration: none; }
#threadlist .kmlist .km_meta a:hover { color: var(--accent); }
#threadlist .kmlist .km_meta .km_dot { margin: 0 6px; }
#threadlist .kmlist .km_st { flex: 0 0 auto; text-align: right; font-size: 12px; color: var(--text-3); min-width: 96px; }
#threadlist .kmlist .km_st .kmpl, #threadlist .kmlist .km_st .kmck { display: block; line-height: 1.3; }
#threadlist .kmlist .km_st .kmpl { color: var(--text); font-weight: 500; }

/* ---- Pager (restyled Discuz .pg + our wrapper) ---- */
.llmcn-pager, .pg {
  display: flex !important; justify-content: center; align-items: center; gap: 4px;
  padding: 16px 0 !important; font-size: 13px; flex-wrap: wrap;
  background: transparent !important; border: 0 !important;
}
.llmcn-pager a, .llmcn-pager strong, .llmcn-pager span,
.pg a, .pg strong, .pg span {
  min-width: 30px; height: 30px; padding: 0 8px !important;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border) !important; border-radius: var(--radius-s) !important;
  background: var(--surface) !important; color: var(--text-2) !important;
  text-decoration: none !important; box-shadow: none !important;
  font-weight: 400;
}
.llmcn-pager a:hover, .pg a:hover { color: var(--accent) !important; border-color: var(--accent) !important; }
.llmcn-pager strong, .pg strong { background: var(--accent) !important; border-color: var(--accent) !important; color: #fff !important; font-weight: 600 !important; }
.llmcn-pager .pg_empty, .llmcn-pager .pg_dot, .llmcn-pager .pg_label,
.pg .pg_empty, .pg .pg_dot, .pg .pg_label { border: 0 !important; background: transparent !important; color: var(--text-3) !important; }
.pg label, .pg input { display: none !important; } /* hide "跳转至" input */

/* ---- ViewThread: head (breadcrumb / tags / title / meta / actions) ---- */
.llmcn-vt-head { padding: 0 0 14px; border-bottom: 1px solid var(--border); }
.llmcn-vt-crumb { font-size: 12px; color: var(--text-3); margin: 0 0 10px; }
.llmcn-vt-crumb a { color: var(--text-3); text-decoration: none; }
.llmcn-vt-crumb a:hover { color: var(--accent); }
.llmcn-vt-crumb .sep { margin: 0 6px; }
.llmcn-vt-tags { display: flex; gap: 6px; margin: 0 0 10px; flex-wrap: wrap; }
.llmcn-vt-tag {
  display: inline-flex; align-items: center; height: 22px; padding: 0 8px;
  border: 1px solid var(--border); border-radius: var(--radius-pill);
  font-size: 12px; color: var(--text-2); background: var(--surface-2);
  text-decoration: none;
}
.llmcn-vt-tag.is-qa-solved { color: var(--success); border-color: rgba(26,127,55,.35); background: var(--success-bg); }
.llmcn-vt-tag.is-qa-open   { color: var(--warning); border-color: rgba(154,103,0,.35); background: var(--warning-bg); }
.llmcn-vt-tag.is-reward    { color: var(--accent); border-color: var(--accent-border); background: var(--accent-soft); }
.llmcn-vt-tag.is-digest    { color: var(--accent); border-color: var(--accent-border); background: var(--accent-soft); }
.llmcn-vt-head h1 { font-size: 22px; font-weight: 600; color: var(--text); margin: 0 0 8px; line-height: 1.4; }
.llmcn-vt-meta { font-size: 12px; color: var(--text-3); display: flex; gap: 12px; flex-wrap: wrap; }
.llmcn-vt-meta a { color: var(--text-2); text-decoration: none; }
.llmcn-vt-meta a:hover { color: var(--accent); }
.llmcn-vt-actions {
  display: flex; align-items: center; gap: 14px;
  margin: 12px 0 0; padding: 8px 0; font-size: 13px;
  border-top: 1px solid var(--border-muted);
}
.llmcn-vt-actions a { color: var(--text-2); text-decoration: none; }
.llmcn-vt-actions a:hover { color: var(--accent); }

/* ---- ViewThread: post rows (CSS-only restyle of <table>) ---- */
/* OP: hide left avatar column, meta inline */
#postlist .plhin.llmcn-op > tbody > tr > .pls { display: none; }
#postlist .plhin.llmcn-op > tbody > tr > .plc { width: 100%; display: block; }
#postlist .plhin.llmcn-op .plc .pi { border-bottom: 1px solid var(--border-muted); padding-bottom: 8px; margin-bottom: 12px; }
#postlist .plhin.llmcn-op .pls { display: none; }
.viewthread_table > tbody > tr > td.pls.llmcn-hide { display: none; }
.viewthread_table > tbody > tr > td.plc.llmcn-wide { width: 100%; display: block; }

/* Replies: avatar+author compact, no large gray block */
#postlist .plhin:not(.llmcn-op) > tbody > tr > .pls {
  width: 150px; padding: 16px 12px;
  background: transparent; border-right: 1px solid var(--border-muted);
}
#postlist .plhin:not(.llmcn-op) > tbody > tr > .plc { padding: 16px 20px; }
#postlist .plhin:not(.llmcn-op) .pls .avatar, #postlist .plhin:not(.llmcn-op) .pls .favatar, #postlist .plhin:not(.llmcn-op) .pls .avt {
  width: 40px; height: 40px; margin: 0 0 8px; border-radius: var(--radius-s);
  border: 1px solid var(--border);
}
#postlist .plhin:not(.llmcn-op) .pls .authi { text-align: left; font-size: 13px; }
#postlist .plhin:not(.llmcn-op) .pls .authi a { font-weight: 500; color: var(--accent); }
#postlist .plhin:not(.llmcn-op) .pls .xg1 { font-size: 12px; color: var(--text-3); }

/* ---- SEARCH: align to shell ---- */
.llmcn-searchwrap { padding: 8px 0 0; }
.llmcn-searchwrap > h1 { font-size: 22px; font-weight: 600; color: var(--text); margin: 0 0 16px; }

/* ---- Hide native duplicates on Forum Display / ViewThread ---- */
.pg_forumdisplay #pt,
.pg_forumdisplay .bm.bml.pbn,
.pg_forumdisplay .dz_list_top,
.pg_forumdisplay #thread_types,
.pg_forumdisplay p.emp { display: none !important; }
.pg_forumdisplay #pgt > span.pgb,
.pg_forumdisplay #pgt > a#newspecial,
.pg_forumdisplay #pgt > #newspecialtmp,
.pg_forumdisplay #pgt > .pipe { display: none !important; }
.pg_forumdisplay #pgt { border: 0 !important; background: transparent !important; padding: 0 !important; }
.pg_forumdisplay #pgt > span:not(.pgb) { display: contents; }
/* 底部分页：保留分页本身，去掉返回/发布按钮 */
.pg_forumdisplay .bm.bw0.pgs { background: transparent !important; border: 0 !important; padding: 0 !important; }
.pg_forumdisplay .bm.bw0.pgs > .pgb,
.pg_forumdisplay .bm.bw0.pgs > #newspecialtmp,
.pg_forumdisplay .bm.bw0.pgs > .pipe { display: none !important; }

.pg_viewthread #pt,
.pg_viewthread .bm.bw0.pgs { display: none !important; }
.pg_viewthread #pgt > a.pgsbtn,
.pg_viewthread #pgt > .pipe,
.pg_viewthread #pgt > .pgb { display: none !important; }
.pg_viewthread #pgt { border: 0 !important; background: transparent !important; padding: 0 !important; }

/* ---- Header: dedup search (icon vs input) ---- */
/* search results page already has its own prominent search form (spec §17:
   one main search input per page) → hide the global header search there */
.pg_forum .header-searcher { display: none !important; }
@media (min-width: 769px) {
  .llmcn-iconbtn[aria-label="搜索"] { display: none !important; }
}
@media (max-width: 768px) {
  .header-right .header-searcher { display: none !important; }
  .llmcn-iconbtn[aria-label="搜索"] { display: inline-flex !important; }
}

/* ---- Cold-start polish additions (2026-09-03) ---- */

/* Header: 更多 dropdown (desktop) */
.llmcn-navmore { position: relative; display: inline-block; }
.llmcn-navmore > summary {
  list-style: none; cursor: pointer; user-select: none;
  /* inherits .llmcn-navlink sizing from existing rules */
}
.llmcn-navmore > summary::-webkit-details-marker { display: none; }
.llmcn-navmore > summary::marker { display: none; }
.llmcn-navmore-menu {
  /* left:auto is REQUIRED: a legacy hover-based block (~L4121) sets left:50% +
     translateX(-50%), which conflicts with right:0 and stretches the panel. */
  position: absolute; top: calc(100% + 6px); right: 0; left: auto; min-width: 168px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-m); box-shadow: var(--shadow-soft);
  padding: 6px; z-index: 100; display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out),
              visibility 0s linear var(--dur-fast);
}
.llmcn-navmore-menu a {
  padding: 8px 10px; border-radius: var(--radius-s); color: var(--text); text-decoration: none;
  font-size: 14px; white-space: nowrap;
}
.llmcn-navmore-menu a:hover { background: var(--surface-2); color: var(--accent); }
.llmcn-navmore[open] > summary { color: var(--accent); }
/* Reveal on click ([open]) too — without this, the legacy hover-only rules leave
   [open] with an accent-coloured 更多 label but no visible menu once the pointer leaves. */
.llmcn-navmore[open] .llmcn-navmore-menu,
.llmcn-navmore:hover .llmcn-navmore-menu,
.llmcn-navmore:focus-within .llmcn-navmore-menu {
  opacity: 1; visibility: visible; transform: translateY(2px); transition-delay: 0s;
}

/* Help page (help.php) — stable replacement for misc.php?mod=faq */
.llmcn-helpwrap { max-width: 820px; margin: 0 auto; padding: 8px 0 40px; }
.llmcn-help-lead { color: var(--text-2); font-size: 15px; line-height: 1.7; margin: 8px 0 22px; }
.llmcn-help-sec { margin-top: 26px; }
.llmcn-help-sec h2 { font-size: 16px; font-weight: 600; margin: 0 0 10px; }
.llmcn-help-sec p { color: var(--text-2); font-size: 14px; line-height: 1.75; margin: 0 0 8px; }
.llmcn-help-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: li; }
.llmcn-help-list li { font-size: 14px; line-height: 1.7; color: var(--text-2); padding-left: 14px; position: relative; }
.llmcn-help-list li::before {
  content: ''; position: absolute; left: 0; top: 10px;
  width: 4px; height: 4px; border-radius: 50%; background: var(--border);
}
.llmcn-help-list li strong { color: var(--text); font-weight: 600; display: block; margin-bottom: 2px; }
.llmcn-help-list.is-ordered li { padding-left: 22px; }
.llmcn-help-list.is-ordered li::before {
  content: counter(li) '.'; counter-increment: li;
  position: absolute; left: 0; top: 0; width: auto; height: auto;
  background: none; border-radius: 0; color: var(--text-2);
}
.llmcn-help-note {
  padding: 10px 12px; background: var(--surface-2); border-radius: var(--radius-s);
  border-left: 2px solid var(--accent);
}
.llmcn-help-actions { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }

/* Search: collapsed advanced options + explicitly labelled fields */
.llmcn-searchadvbox { margin-top: 12px; }
.llmcn-searchadvbox > summary {
  list-style: none; cursor: pointer; user-select: none;
  display: inline-flex; align-items: center; font-size: 13px; color: var(--text-2);
  padding: 4px 8px; border-radius: var(--radius-s);
}
.llmcn-searchadvbox > summary::-webkit-details-marker { display: none; }
.llmcn-searchadvbox > summary::marker { display: none; }
.llmcn-searchadvbox[open] > summary { color: var(--accent); }
.llmcn-searchadvbox .llmcn-searchopts {
  margin-top: 10px; display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end;
}
.llmcn-field { display: inline-flex; flex-direction: column; gap: 4px; }
.llmcn-field > span { font-size: 12px; color: var(--text-2); }

/* Forumdisplay: custom clean thread list */
.llmcn-fdlist { border-top: 1px solid var(--border); margin-top: 12px; }
.llmcn-fditem {
  display: block; padding: 14px 4px; border-bottom: 1px solid var(--border);
  text-decoration: none; color: inherit;
}
.llmcn-fditem:hover { background: var(--surface-2); }
.llmcn-fditem-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; flex-wrap: wrap; }
.llmcn-fditem-title { font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--text-1); margin: 0 0 6px; transition: color var(--dur-fast); }
.llmcn-fditem:hover .llmcn-fditem-title { color: var(--accent); }
.llmcn-fditem-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--text-3); font-size: 13px; }
.llmcn-fditem-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--text-3); opacity: .6; }

.llmcn-pill {
  font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: var(--radius-sm);
  background: var(--surface-2); color: var(--text-2); border: 1px solid var(--border);
  line-height: 1.4;
}
.llmcn-pill.is-stick { color: var(--accent); background: var(--accent-soft); border-color: var(--accent-soft); }
.llmcn-pill.is-digest { color: var(--c-amber); background: var(--c-amber-bg); border-color: var(--c-amber-bg); }

/* Search: weaker tips, hidden opts already handled in template */
.llmcn-searchtips { margin-top: 16px; color: var(--text-3); font-size: 13px; }
.llmcn-searchtips-hd { font-weight: 600; color: var(--text-2); margin: 0 0 6px; }
.llmcn-searchtips ul { margin: 0; padding-left: 18px; line-height: 1.7; }
.llmcn-searchtips code { color: var(--text-2); background: var(--surface-2); padding: 1px 4px; border-radius: 4px; font-size: 12px; }
.llmcn-searchtips a { color: var(--accent); }

/* Resources: tags expansion, count line */
.llmcn-hub-count { font-size: 13px; color: var(--text-2); margin: 0 0 14px; }
.llmcn-hub-tags-more { display: inline-flex; }
.llmcn-hub-tags-more > summary {
  list-style: none; cursor: pointer; user-select: none;
  font-size: 12px; color: var(--text-2); padding: 4px 8px; border-radius: var(--radius-sm);
  background: var(--surface-2); border: 1px solid var(--border);
}
.llmcn-hub-tags-more > summary::-webkit-details-marker { display: none; }
.llmcn-hub-tags-more > summary::marker { display: none; }
.llmcn-hub-tags-more[open] summary { color: var(--accent); border-color: var(--accent-border); }
.llmcn-hub-tags-rest { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }

/* Sign: collapsed details, guest compact */
.llmcn-sign-details {
  margin-top: 18px; border: 1px solid var(--border); border-radius: var(--radius-m);
  padding: 14px 16px; background: var(--surface);
}
.llmcn-sign-details > summary { list-style: none; cursor: pointer; font-weight: 600; color: var(--text-1); }
.llmcn-sign-details > summary::-webkit-details-marker { display: none; }
.llmcn-sign-details > summary::marker { display: none; }
.llmcn-sign-details[open] > summary { margin-bottom: 12px; color: var(--accent); }
.llmcn-sign-details .llmcn-ladder { padding: 0; }
.llmcn-sign-guest { color: var(--text-2); }
.llmcn-sign-guest-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.llmcn-sign-guest-actions .llmcn-btn { height: 38px; padding: 0 18px; }

/* ---- Mobile: section & list compact ---- */
@media (max-width: 768px) {
  .llmcn-fd-head h1 { font-size: 19px; }
  .llmcn-fd-bar { flex-direction: column; align-items: stretch; }
  .llmcn-fd-sort { margin-left: 0; }
  .llmcn-vt-head h1 { font-size: 19px; }
  #postlist .plhin:not(.llmcn-op) > tbody > tr > .pls { width: 100px; padding: 12px 8px; }
  .llmcn-pager a, .llmcn-pager strong, .llmcn-pager span,
  .pg a, .pg strong, .pg span { min-width: 28px; padding: 0 6px !important; }
  .llmcn-navmore { display: none; }
}
