@charset "UTF-8";
/* ==========================================================================
   小谷围新粗野主义主题 v2 — 全量覆盖版
   ========================================================================== */
/* === 1. 设计令牌 === */
:root {
  --xgw-primary:#ff6600;
  --xgw-primary-deep:#b34700;
  --xgw-accent:#2563eb;
  --xgw-success:#10b981;
  --xgw-warning:#f59e0b;
  --xgw-danger:#ef4444;
  --xgw-ink:#000000;
  --xgw-paper:#ffffff;
  --xgw-paper-2:#f5f5f5;
  --xgw-tint:#fff3e6;
  --xgw-tint-2:#fff8f0;
  --xgw-muted:#666666;
  --xgw-muted-2:#999999;
  --xgw-border-w:2px;
  --xgw-shadow:4px 4px 0 var(--xgw-ink);
  --xgw-shadow-sm:2px 2px 0 var(--xgw-ink);
  --xgw-leftbar:4px;
  --xgw-radius:0px;
  --xgw-transition:.1s ease;
}

/* ==========================================================================
   1.4. 论坛列表路由：白灰橙阅读版

   首页已经定稿为“白 80% / 灰 17% / 橙 <= 3%”。分类页、最新页与话题
   列表复用同一套视觉语言，但保留分类色作为 3px 左侧识别线。这里使用路由
   作用域，避免改变产业图谱、薪资实验室与话题详情等专项页面。
   ========================================================================== */
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) {
  --xgw-primary: #e96628;
  --xgw-primary-deep: #9d451d;
  --xgw-accent: #5f5f5f;
  --xgw-ink: #353535;
  --xgw-paper: #fff;
  --xgw-paper-2: #f5f5f5;
  --xgw-tint: #f4f4f4;
  --xgw-tint-2: #fafafa;
  --xgw-muted: #696969;
  --xgw-muted-2: #929292;
  --xgw-border-w: 1px;
  --xgw-leftbar: 3px;
  --xgw-radius: 7px;
  --xgw-shadow: 0 7px 22px rgba(40, 40, 40, 0.1);
  --xgw-shadow-sm: 0 2px 8px rgba(40, 40, 40, 0.08);
  --xgw-list-line: #c5c5c5;
  --xgw-list-line-soft: #e8e8e8;
  --xgw-list-page: #f1f1f1;
  color: var(--xgw-ink);
  background: var(--xgw-list-page);
}

/* 顶栏与筛选控件不再使用纯黑粗线和硬阴影。 */
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header {
  border-bottom: 1px solid var(--xgw-list-line);
  box-shadow: 0 2px 8px rgba(40, 40, 40, 0.08);
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills > li > a {
  color: var(--xgw-muted);
  border: 1px solid transparent;
  border-radius: 7px;
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills > li > a.active {
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border-color: var(--xgw-list-line);
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills > li > a:not(.active):hover {
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border-color: var(--xgw-list-line);
  box-shadow: none;
  transform: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills > li > a:focus-visible,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .btn:focus-visible,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .select-kit-header:focus-visible {
  outline: 2px solid var(--xgw-primary);
  outline-offset: 2px;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .btn,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .select-kit-header,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .combo-box-header {
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: 1px solid var(--xgw-list-line);
  border-radius: 7px;
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .list-controls .btn-primary {
  background: var(--xgw-primary);
  border-color: var(--xgw-primary);
}

/* 宽屏是清晰的编辑式表格：一个外框、细分隔线、无单行硬阴影。 */
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-container {
  overflow: hidden;
  background: var(--xgw-paper);
  border: 1px solid var(--xgw-list-line);
  border-radius: 10px;
  box-shadow: var(--xgw-shadow-sm);
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list {
  overflow: hidden;
  background: var(--xgw-paper);
  border: 0;
  border-radius: inherit;
  border-spacing: 0;
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list thead th {
  color: var(--xgw-muted);
  background: var(--xgw-paper-2);
  border: 0;
  border-bottom: 1px solid var(--xgw-list-line) !important;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item {
  background: var(--xgw-paper);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:hover {
  position: relative;
  background: var(--xgw-tint-2);
  box-shadow: none;
  transform: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:last-child td {
  color: var(--xgw-ink);
  border-bottom: 1px solid var(--xgw-list-line-soft);
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:last-child td {
  border-bottom: 0;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td.main-link {
  border-left: 3px solid var(--row-cat-color, var(--xgw-primary)) !important;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .title {
  color: var(--xgw-ink);
  font-weight: 650;
  line-height: 1.5;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:hover .title,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:hover td:last-of-type,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:hover td:last-of-type a {
  color: var(--xgw-primary-deep);
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .badge-category-bg {
  border: 0 !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .badge-category {
  color: var(--xgw-muted);
  background: transparent;
  border: 0;
  padding: 2px 3px;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.posters .avatar {
  border: 1px solid var(--xgw-list-line);
  border-radius: 50% !important;
  box-shadow: none;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.posters a.xgw-avatar-fallback {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border: 1px solid var(--xgw-list-line);
  border-radius: 50%;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.views {
  padding: 10px 8px;
  color: var(--xgw-ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--xgw-list-line-soft);
  border-radius: 0;
  box-shadow: none;
  font-size: 12px;
}

:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:last-child td.views {
  border-bottom: 0;
}

/* Discourse 的内部 span 也带 .views；必须与 td.views 分开归零，避免统计值再套一层方框。 */
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.views > .views,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.replies > .posts,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.posts > .posts,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.posts > .badge-posts,
:is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list td.replies > .badge-posts {
  display: inline !important;
  width: auto;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font: inherit;
  line-height: inherit;
}

/* 本地最新页刊头同步为柔和版，便于与首页直接并排验收。 */
body.xgw-latest-page .xgw-latest-head {
  border: 1px solid var(--xgw-list-line);
  border-radius: 10px;
  box-shadow: var(--xgw-shadow);
}

body.xgw-latest-page .xgw-latest-head__utility {
  color: var(--xgw-ink);
  background: #f2f2f2;
  border-bottom: 1px solid var(--xgw-list-line);
}

body.xgw-latest-page .xgw-latest-head__utility a,
body.xgw-latest-page .xgw-latest-head__all {
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: 1px solid var(--xgw-list-line);
  border-radius: 7px;
  box-shadow: none;
}

body.xgw-latest-page .xgw-latest-head__utility a {
  background: var(--xgw-primary);
}

body.xgw-latest-page .xgw-latest-head__body {
  background: linear-gradient(rgba(53, 53, 53, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(53, 53, 53, 0.045) 1px, transparent 1px), #fbfbfb;
  background-size: 28px 28px;
}

body.xgw-latest-page .xgw-latest-head__body::after {
  border: 0;
  border-bottom-left-radius: 16px;
}

body.xgw-latest-page .xgw-latest-head__index {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border: 1px solid var(--xgw-list-line);
  border-radius: 7px;
  box-shadow: none;
}

body.xgw-latest-page .xgw-latest-head__all:hover,
body.xgw-latest-page .xgw-latest-head__utility a:hover {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  box-shadow: none;
  transform: none;
}

@media (min-width: 1025px) {
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list {
    overflow: hidden;
    border: 1px solid var(--xgw-list-line);
    border-radius: 10px;
    box-shadow: var(--xgw-shadow-sm);
  }
}
/* 1024px 以下改为标题优先的横向阅读卡片；统计信息只占内容所需宽度。 */
@media (max-width: 1024px) {
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-container {
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list {
    overflow: visible;
    background: transparent;
    border-radius: 0;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list tbody {
    gap: 10px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item {
    overflow: hidden;
    background: var(--xgw-paper);
    border: 1px solid var(--xgw-list-line);
    border-radius: 10px;
    box-shadow: var(--xgw-shadow-sm);
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:hover {
    background: var(--xgw-paper);
    box-shadow: var(--xgw-shadow-sm);
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:last-child td {
    border-bottom: 0;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td.main-link {
    padding: 13px 14px 11px;
    border-bottom: 1px solid var(--xgw-list-line-soft);
    border-left-width: 3px !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .title {
    font-size: 16px;
    line-height: 1.55;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td.replies,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td.posts,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td.views,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td:last-of-type {
    min-height: 30px;
    padding: 7px 9px;
    color: var(--xgw-ink);
    background: var(--xgw-paper-2);
    border: 0;
    border-right: 1px solid var(--xgw-list-line-soft);
    font-weight: 650;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item td:last-of-type {
    border-right: 0;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item::after {
    content: "";
    min-width: 0;
    flex: 1 1 0;
    background: var(--xgw-paper-2);
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child {
    padding: 13px 14px;
    background: var(--xgw-paper);
    border-left-width: 3px !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item:has(> td.topic-list-data:only-child)::after {
    display: none;
  }
  body.xgw-latest-page .xgw-latest-head {
    box-shadow: var(--xgw-shadow-sm);
  }
}
@media (max-width: 480px) {
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list tbody {
    gap: 6px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item {
    border-radius: 6px;
    box-shadow: none;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child {
    padding: 8px 12px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .title {
    font-size: 16px;
    line-height: 1.42;
  }
}
/* 手机正式方案 C：受控密度、44px 触控区、单行横滑筛选。 */
@media (max-width: 480px) {
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) {
    --header-offset: 48px;
    --xgw-mobile-touch: 44px;
    --xgw-mobile-icon: 18px;
    --xgw-mobile-title: 16px;
    --xgw-mobile-meta: 12px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) #main-outlet {
    padding-top: 10px;
  }
  /* 48px 顶栏内，Logo、登录、搜索和菜单仍保留完整 44px 热区。 */
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .wrap,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .contents {
    height: 48px;
    min-height: 48px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .contents {
    height: 48px;
    align-items: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .title > a {
    width: var(--xgw-mobile-touch);
    min-width: var(--xgw-mobile-touch);
    height: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header img.logo-mobile {
    width: var(--xgw-mobile-touch);
    height: 26px;
    object-fit: contain;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .panel,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .header-buttons,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .auth-buttons,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .d-header-icons,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .header-dropdown-toggle {
    min-height: var(--xgw-mobile-touch);
    display: flex;
    align-items: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .d-header-icons {
    gap: 4px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .login-button {
    width: auto;
    min-width: 72px;
    height: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    padding: 0 10px;
    gap: 6px;
    color: #202020;
    background: var(--xgw-primary);
    border: 1px solid var(--xgw-primary);
    border-radius: 6px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 750;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .login-button:hover,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .login-button:active {
    color: #202020;
    background: var(--xgw-primary);
    box-shadow: none;
    transform: none;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .header-dropdown-toggle > .btn {
    box-sizing: border-box;
    width: var(--xgw-mobile-touch);
    min-width: var(--xgw-mobile-touch);
    height: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    padding: 0 !important;
    line-height: 1;
    color: var(--xgw-ink);
    background: var(--xgw-paper);
    border: 1px solid #d2d2d2;
    border-radius: 6px;
    box-shadow: none;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .login-button .d-icon,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .d-header .header-dropdown-toggle .d-icon {
    width: var(--xgw-mobile-icon) !important;
    height: var(--xgw-mobile-icon) !important;
    color: var(--xgw-ink) !important;
  }
  /* 320px 起筛选始终一行；空间不足时横滑，不再让“最新”掉到第二行。 */
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    height: 48px;
    min-height: 48px;
    margin: 0 0 6px;
    padding: 2px 0;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container::-webkit-scrollbar {
    display: none;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .category-breadcrumb {
    width: max-content;
    min-width: max-content;
    height: var(--xgw-mobile-touch);
    margin: 0;
    padding: 0;
    display: flex !important;
    flex: 0 0 auto;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 6px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .category-breadcrumb > li,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .category-breadcrumb .select-kit,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .nav-pills > li {
    height: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    margin: 0;
    flex: 0 0 auto;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .select-kit-header,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .list-control-toggle-link-trigger {
    height: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    padding: 0 11px;
    color: var(--xgw-muted);
    background: var(--xgw-paper);
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    box-shadow: none;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .category-breadcrumb__category-selector .select-kit-header {
    color: var(--xgw-ink);
    border-color: #9fdce4;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .list-control-toggle-link-trigger {
    color: var(--xgw-paper);
    background: var(--xgw-ink);
    border-color: var(--xgw-ink);
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .angle-icon,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-container .list-control-toggle-link-trigger .d-icon {
    width: 14px;
    height: 14px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .navigation-controls {
    flex: 0 0 auto;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item {
    border-color: #d3d3d3;
    box-shadow: none;
  }
  /* 单 td 同时是 last-of-type；归零旧规则生成的恒定“更新”文字。 */
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child::before {
    content: none !important;
    display: none !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .topic-item-metadata {
    display: grid !important;
    grid-template-columns: max-content max-content minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 1px 3px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .main-link {
    grid-column: 1/-1;
    grid-row: 1;
    min-height: var(--xgw-mobile-touch);
    display: flex !important;
    align-items: center;
    gap: 5px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .title {
    min-width: 0;
    min-height: var(--xgw-mobile-touch);
    display: flex !important;
    align-items: center;
    color: var(--xgw-ink);
    font-size: var(--xgw-mobile-title);
    font-weight: 650;
    line-height: 1.42;
    overflow-wrap: anywhere;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-statuses,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-status.--pinned {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-status.--pinned {
    gap: 3px;
    color: var(--xgw-muted);
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-status.--pinned::after {
    content: "置顶";
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-status.--pinned .d-icon {
    width: 13px;
    height: 13px;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .pull-right {
    grid-column: 2;
    grid-row: 2;
    min-height: var(--xgw-mobile-touch);
    margin: 0;
    display: flex;
    align-items: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .posts-map {
    min-height: var(--xgw-mobile-touch);
    display: flex;
    align-items: center;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .badge-posts {
    min-width: 54px;
    min-height: var(--xgw-mobile-touch);
    padding: 0 5px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: var(--xgw-muted);
    font-size: var(--xgw-mobile-meta);
    font-weight: 650;
    line-height: 1.35;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .badge-posts::after {
    content: " 回复";
    color: var(--xgw-muted);
    font-size: var(--xgw-mobile-meta);
    font-weight: 650;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .topic-item-stats {
    display: contents !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .topic-item-stats::before,
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item > td.topic-list-data:only-child .topic-item-stats::after {
    content: none !important;
    display: none !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats__category-tags {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    min-height: var(--xgw-mobile-touch);
    display: flex;
    align-items: center;
    overflow: hidden;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats__category-tags .badge-category__wrapper {
    min-height: var(--xgw-mobile-touch);
    padding: 0 3px;
    display: inline-flex;
    align-items: center;
    color: var(--xgw-muted);
    font-size: var(--xgw-mobile-meta);
    line-height: 1.35;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .badge-category.--style-square {
    gap: 5px;
    color: var(--xgw-muted);
    background: transparent;
    font-size: var(--xgw-mobile-meta);
    font-weight: 650;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .badge-category.--style-square::before {
    width: 7px;
    min-width: 7px;
    height: 7px;
    border-radius: 50%;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats__category-tags .discourse-tags {
    display: none !important;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats > .activity.last {
    grid-column: 3;
    grid-row: 2;
    min-width: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    justify-self: end;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--xgw-muted-2);
    font-size: var(--xgw-mobile-meta);
    line-height: 1.35;
  }
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats > .activity.last a {
    min-width: var(--xgw-mobile-touch);
    min-height: var(--xgw-mobile-touch);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
  }
  /* 1970 异常会产生空链接；移出显示与焦点顺序，不伪造活动时间。 */
  :is(body.navigation-category, body.navigation-topics, body.xgw-latest-page) .topic-list-item .topic-item-stats > .activity.last:has(a:empty) {
    display: none !important;
  }
}
/* ==========================================================================
   1.5. 首页正式收敛版：极简白灰
   仅作用于 P0 个人首页与论坛目录，不改变帖子阅读页。
   ========================================================================== */
body.xgw-pure-home {
  --xgw-primary: #e96628;
  --xgw-primary-deep: #9d451d;
  --xgw-accent: #5f5f5f;
  --xgw-success: #696969;
  --xgw-warning: #e96628;
  --xgw-danger: #696969;
  --xgw-ink: #353535;
  --xgw-paper: #ffffff;
  --xgw-paper-2: #f5f5f5;
  --xgw-tint: #f4f4f4;
  --xgw-tint-2: #fafafa;
  --xgw-muted: #696969;
  --xgw-muted-2: #929292;
  --xgw-border-w: 1px;
  --xgw-leftbar: 3px;
  --xgw-shadow: 0 7px 22px rgba(40, 40, 40, 0.1);
  --xgw-shadow-sm: 0 2px 8px rgba(40, 40, 40, 0.08);
  --xgw-transition: 0.16s ease;
  --xgw-home-line: #adadad;
  --xgw-home-line-soft: #e1e1e1;
  --xgw-home-grid: rgba(60, 60, 60, 0.052);
  color: var(--xgw-ink);
  background: #f1f1f1;
}

body.xgw-pure-home.xgw-p0-home {
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), #f1f1f1;
  background-size: 24px 24px;
}

/* 目录刊头：取消大面积黑底，保留一个小橙色识别点。 */
body.xgw-pure-home .xgw-forum-shell {
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .xgw-forum-shell__bar {
  color: var(--xgw-ink);
  background: #f2f2f2;
  border-bottom-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-forum-shell__bar button {
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-hero {
  color: var(--xgw-ink);
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), #fbfbfb;
  background-size: 28px 28px;
  border-bottom-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-hero::before {
  top: -18px;
  right: -18px;
  width: 76px;
  height: 76px;
  border: 0;
}

body.xgw-pure-home .xgw-hero::after {
  display: none;
}

body.xgw-pure-home .xgw-hero-tag {
  color: var(--xgw-ink);
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-hero-title {
  color: var(--xgw-ink);
}

body.xgw-pure-home .xgw-hero-sub {
  color: var(--xgw-muted);
}

body.xgw-pure-home .nav-tabs {
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home .nav-tabs__item {
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border-right-color: var(--xgw-home-line);
}

body.xgw-pure-home .nav-tabs__item:hover {
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .nav-tabs__item--active,
body.xgw-pure-home .nav-tabs__item--active:hover {
  background: var(--xgw-primary);
}

body.xgw-pure-home .xgw-section__num,
body.xgw-pure-home .xgw-section__more {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-section__line {
  height: 1px;
  background: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-section__more:hover {
  transform: none;
  box-shadow: none;
  background: var(--xgw-paper-2);
}

/* 普通目录卡片：去掉彩色大图标、粗描边和弹跳式悬浮。 */
body.xgw-pure-home .category-card {
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home .category-card::before {
  width: 2px;
  background: var(--xgw-home-line);
}

body.xgw-pure-home .category-card:hover {
  transform: none;
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home .category-card__header,
body.xgw-pure-home .category-card__sub,
body.xgw-pure-home .category-card__footer,
body.xgw-pure-home .sub-item,
body.xgw-pure-home .category-card__action,
body.xgw-pure-home .xgw-module-card__scope span {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .category-card__icon {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border-color: var(--xgw-home-line);
  box-shadow: none;
}

body.xgw-pure-home .category-card:hover .category-card__icon {
  transform: none;
  box-shadow: none;
}

body.xgw-pure-home .category-card__footer,
body.xgw-pure-home .xgw-module-card__scope {
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .category-card__action {
  box-shadow: none;
}

body.xgw-pure-home .category-card__action:hover,
body.xgw-pure-home .xgw-module-card:hover .category-card__action {
  transform: none;
  box-shadow: none;
  background: #ececec;
}

/* 特色入口统一为白灰容器；青、蓝、绿只保留在很小的语义标签里。 */
body.xgw-pure-home :where(.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card) {
  color: var(--xgw-ink);
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home :where(.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card):hover {
  color: var(--xgw-ink);
  transform: none;
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home .xgw-ai-directory-card {
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), var(--xgw-paper);
  background-size: 20px 20px;
}

body.xgw-pure-home .xgw-ai-directory-card__index {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border-right-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-ai-directory-card__route {
  border-color: var(--xgw-home-line-soft);
}

body.xgw-pure-home .xgw-ai-directory-card__route::before,
body.xgw-pure-home .xgw-ai-directory-card__route::after {
  height: 1px;
  background: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-ai-directory-card__route i,
body.xgw-pure-home .xgw-ai-directory-card__route b {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-ai-directory-card__action,
body.xgw-pure-home .xgw-tech-directory-card > b,
body.xgw-pure-home .xgw-salary-directory-card > b,
body.xgw-pure-home .xgw-suggestion-directory-card > b {
  color: var(--xgw-ink);
  background: #ececec;
}

body.xgw-pure-home .xgw-tech-directory-card {
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), var(--xgw-paper);
  background-size: 18px 18px;
}

body.xgw-pure-home .xgw-tech-directory-card__head,
body.xgw-pure-home .xgw-tech-directory-card__paths span,
body.xgw-pure-home .xgw-salary-directory-card__stamp,
body.xgw-pure-home .xgw-suggestion-directory-card > div,
body.xgw-pure-home .xgw-suggestion-directory-card li {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-tech-directory-card__paths span,
body.xgw-pure-home .xgw-tech-directory-card__paths span:last-child,
body.xgw-pure-home .xgw-suggestion-directory-card li,
body.xgw-pure-home .xgw-suggestion-directory-card li:last-child {
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .xgw-salary-directory-card {
  background: var(--xgw-paper);
}

/* 首页标签也只使用灰与橙，不再引入红、绿、蓝或黄色状态色。 */
body.xgw-pure-home :where(.xgw-tag--hot, .xgw-tag--pinned) {
  color: var(--xgw-primary);
  background: var(--xgw-paper);
  border-color: var(--xgw-primary);
}

body.xgw-pure-home :where(.xgw-tag--new, .xgw-tag--rules) {
  color: var(--xgw-muted);
  background: var(--xgw-paper-2);
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-suggestion-directory-card {
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), var(--xgw-paper);
  background-size: 18px 18px;
}

body.xgw-pure-home .xgw-suggestion-directory-card strong {
  color: var(--xgw-ink);
}

body.xgw-pure-home .xgw-footer {
  border-color: var(--xgw-home-line);
  box-shadow: none;
}

/* P0 个人首页：去掉整屏黑色与整屏橙色，改为编辑部式白灰分区。 */
body.xgw-pure-home .xgw-p0 {
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home .xgw-p0 :where(.xgw-p0__masthead,
.xgw-p0__hero,
.xgw-p0__eyebrow,
.xgw-p0__button,
.xgw-p0__principles span,
.xgw-p0__portrait,
.xgw-p0__portrait figcaption,
.xgw-p0__about,
.xgw-p0__manifesto,
.xgw-p0__thanks,
.xgw-p0__course-note,
.xgw-p0__projects,
.xgw-p0__project,
.xgw-p0__project-no,
.xgw-p0__project-status) {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__hero-copy {
  background: linear-gradient(var(--xgw-home-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-home-grid) 1px, transparent 1px), var(--xgw-paper);
  background-size: 28px 28px;
}

body.xgw-pure-home .xgw-p0__eyebrow,
body.xgw-pure-home .xgw-p0__button {
  box-shadow: none;
}

body.xgw-pure-home .xgw-p0__button:hover {
  transform: none;
  box-shadow: none;
}

body.xgw-pure-home .xgw-p0__section-index i {
  border-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__about-body {
  border-top: 2px solid var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__portrait {
  background: #666666;
}

body.xgw-pure-home .xgw-p0__optic-stage {
  background: radial-gradient(circle at 50% 50%, rgba(233, 102, 40, 0.24), transparent 40%), linear-gradient(rgba(255, 255, 255, 0.11) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.11) 1px, transparent 1px), #666666;
  background-size: auto, 34px 34px, 34px 34px, auto;
}

body.xgw-pure-home .xgw-p0__manifesto {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .xgw-p0__manifesto-heading h2,
body.xgw-pure-home .xgw-p0__manifesto-list strong {
  color: var(--xgw-ink);
}

body.xgw-pure-home .xgw-p0__manifesto-heading p,
body.xgw-pure-home .xgw-p0__manifesto-list span {
  color: var(--xgw-muted);
}

body.xgw-pure-home .xgw-p0__manifesto-list {
  border-top-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__manifesto-list li {
  border-bottom-color: var(--xgw-home-line-soft);
}

body.xgw-pure-home .xgw-p0__thanks {
  background: var(--xgw-paper);
}

body.xgw-pure-home .xgw-p0__thanks .xgw-p0__section-label {
  color: var(--xgw-primary-deep);
}

body.xgw-pure-home .xgw-p0__signature {
  border-top-color: var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__course-note {
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow-sm);
  transform: none;
}

body.xgw-pure-home .xgw-p0__projects {
  background: var(--xgw-paper);
}

body.xgw-pure-home .xgw-p0__project {
  border-color: var(--xgw-home-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home .xgw-p0__project:hover {
  transform: none;
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home .xgw-p0__project-no,
body.xgw-pure-home .xgw-p0__project--map .xgw-p0__project-no {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
}

body.xgw-pure-home .xgw-p0__project-actions .xgw-p0__project-link,
body.xgw-pure-home .xgw-p0__project--map .xgw-p0__project-link {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border-color: var(--xgw-home-line);
  box-shadow: none;
}

body.xgw-pure-home .xgw-p0__project-actions .xgw-p0__project-link:hover,
body.xgw-pure-home .xgw-p0__project--map .xgw-p0__project-link:hover,
body.xgw-pure-home .xgw-p0__project--map .xgw-p0__project-link:focus-visible {
  color: var(--xgw-ink);
  background: #ecece7;
  border-color: var(--xgw-home-line);
  box-shadow: none;
  transform: none;
}

body.xgw-pure-home .xgw-p0__footer {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border-top: 1px solid var(--xgw-home-line);
}

body.xgw-pure-home .xgw-p0__footer span,
body.xgw-pure-home .xgw-p0__footer p {
  color: var(--xgw-muted);
}

body.xgw-pure-home .xgw-p0__footer a {
  border-color: var(--xgw-home-line);
}

/* === 2. 基础 === */
html {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--xgw-paper-2);
}

/* === 3. 顶部导航栏 === */
.d-header {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 0 2px 0 var(--xgw-ink);
  background: var(--xgw-paper);
}

.d-header-wrapper {
  padding: 0;
}

.brand {
  font-weight: 700;
  letter-spacing: -0.5px;
}

.top-bar {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

/* === 4. 主导航 Tabs === */
.nav-pills > li > a {
  border: var(--xgw-border-w) solid rgba(0, 0, 0, 0);
  padding: 8px 14px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.2px;
  transition: all var(--xgw-transition);
}

.nav-pills > li > a.active {
  border-color: var(--xgw-ink);
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
}

.nav-pills > li > a:not(.active):hover {
  border-color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  transform: translate(-1px, -1px);
}

.nav-pills > li > a:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 2px;
}

/* === 5. 分类列表（首页） === */
.category-row {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  margin-bottom: 12px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  position: relative;
}

.category-row:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.category-row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--xgw-leftbar);
  background: var(--badge-color, var(--xgw-primary));
  z-index: 2;
}

.main-link {
  padding-left: 16px !important;
}

.link-top-line, .link-bottom-line {
  border-color: var(--xgw-ink) !important;
  border-width: var(--xgw-border-w) !important;
}

.badge-category-bg {
  border: var(--xgw-border-w) solid var(--xgw-ink) !important;
  box-shadow: var(--xgw-shadow-sm) !important;
  border-radius: 0 !important;
}

.badge-category {
  border: none !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.3px !important;
}

.category-desc {
  font-size: 12px;
  color: var(--xgw-muted);
  padding: 2px 0 0 16px;
}

.topic-count, .post-count {
  font-weight: 700;
  font-size: 12px;
  color: var(--xgw-ink);
}

.topic-list-header {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--xgw-muted);
}

.topic-list-stats {
  border-left: var(--xgw-border-w) solid var(--xgw-ink) !important;
}

/* === 6. 话题列表 === */
.topic-list {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
  border-collapse: separate;
}

.topic-list-item {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  transition: background var(--xgw-transition);
}

.topic-list-item:last-child {
  border-bottom: 0;
}

.topic-list-item td:first-child {
  border-left: var(--xgw-leftbar) solid var(--xgw-primary);
}

.topic-list-item:hover {
  background: var(--xgw-tint-2);
}

.topic-list-item-info .username {
  font-weight: 700;
  font-size: 12px;
}

.last-posted-by {
  font-size: 11px;
  color: var(--xgw-muted);
}

/* === 7. 按钮系统 === */
.btn {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  border-radius: var(--xgw-radius);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.2px;
  padding: 8px 16px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  cursor: pointer;
  background: var(--xgw-paper);
  color: var(--xgw-ink);
}

.btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper-2);
}

.btn:active {
  transform: translate(0, 0);
  box-shadow: var(--xgw-shadow-sm);
}

.btn:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 2px;
}

.btn-primary {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  border-color: var(--xgw-primary);
}

.btn-primary:hover {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
}

.btn-default {
  background: var(--xgw-paper);
}

.btn .icon {
  margin-right: 4px;
}

/* === 8. 帖子内容 === */
.cooked {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 20px;
  border-radius: 0;
}

.cooked p {
  margin-bottom: 12px;
  line-height: 1.7;
}

.cooked ul, .cooked ol {
  border-left: var(--xgw-leftbar) solid var(--xgw-primary);
  padding-left: 16px;
  margin: 12px 0;
}

.cooked li {
  margin-bottom: 4px;
}

.cooked blockquote {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-left: var(--xgw-leftbar) solid var(--xgw-warning);
  background: var(--xgw-tint);
  padding: 12px 16px;
  margin: 12px 0;
  font-style: normal;
}

.cooked code {
  background: var(--xgw-paper-2);
  border: 1px solid var(--xgw-ink);
  padding: 2px 6px;
  font-family: "SF Mono", "Fira Code", monospace;
  font-size: 12px;
}

.cooked pre {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-ink);
  padding: 16px;
  overflow-x: auto;
}

.cooked pre code {
  background: transparent;
  color: var(--xgw-paper);
  padding: 0;
}

.cooked a {
  color: var(--xgw-accent);
  border-bottom: 2px solid var(--xgw-accent);
  text-decoration: none;
  font-weight: 600;
}

.cooked a:hover {
  background: var(--xgw-tint);
  border-bottom-color: var(--xgw-primary);
  color: var(--xgw-primary);
}

.cooked img {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  max-width: 100%;
}

/* === 9. 回复卡片 === */
.reply {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  margin-bottom: 16px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.reply:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

.reply.unread {
  border-left: var(--xgw-leftbar) solid var(--xgw-primary);
  background: var(--xgw-tint-2);
}

.reply .post-menu {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
}

/* === 10. 帖子头部元数据 === */
.topic-meta-data {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding-bottom: 12px;
  margin-bottom: 12px;
}

.primary-post-time {
  font-size: 11px;
  color: var(--xgw-muted);
  font-weight: 600;
}

.post-author .username {
  font-weight: 700;
  font-size: 14px;
}

.trust-level {
  display: inline-block;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.badged-text .badge-wrapper {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
}

/* === 11. 用户头像与统计 === */
.avatar {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  border-radius: 0 !important;
  transition: transform var(--xgw-transition);
}

.avatar:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

.user-card {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 16px;
}

.user-card:empty,
.group-card:empty {
  display: none !important;
}

.user-card-name {
  font-weight: 700;
  font-size: 14px;
}

/* === 12. 标签系统 === */
.discourse-tags, .tag-list {
  margin: 8px 0;
}

.tag {
  display: inline-flex;
  align-items: center;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-decoration: none;
  background: var(--xgw-paper);
  color: var(--xgw-ink);
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  margin-right: 6px;
  margin-bottom: 6px;
}

.tag:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-tint);
}

.tag--default {
  background: var(--xgw-paper-2);
}

.tag--primary {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
}

.tag--accent {
  background: var(--xgw-accent);
  color: var(--xgw-paper);
}

.tag--success {
  background: var(--xgw-success);
  color: var(--xgw-paper);
}

.tag--warning {
  background: var(--xgw-warning);
  color: var(--xgw-ink);
}

.tag--danger {
  background: var(--xgw-danger);
  color: var(--xgw-paper);
}

/* === 13. 侧边栏 === */
.sidebar {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
}

.categories-sidebar {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.sidebar-section {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 12px 16px;
}

.sidebar-section:last-child {
  border-bottom: 0;
}

.sidebar h4 {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--xgw-muted);
  margin-bottom: 8px;
}

/* === 14. 帖子操作栏 === */
.post-actions {
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 8px 0;
}

.like-action .like-button, .reply-action .reply-button {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  font-weight: 700;
  font-size: 12px;
  padding: 4px 10px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  cursor: pointer;
}

.like-action .like-button:hover, .reply-action .reply-button:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  background: var(--xgw-tint);
}

.like-count, .reply-count, .views {
  font-weight: 700;
  font-size: 13px;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 4px 8px;
}

.like-count {
  border-color: var(--xgw-danger);
  color: var(--xgw-danger);
}

.reply-count {
  border-color: var(--xgw-accent);
  color: var(--xgw-accent);
}

/* === 15. 分页导航 === */
.page-controls {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 8px;
  display: flex;
  gap: 8px;
  justify-content: center;
}

.page-controls a, .page-controls span {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 6px 12px;
  font-weight: 700;
  font-size: 12px;
  text-decoration: none;
  background: var(--xgw-paper);
  color: var(--xgw-ink);
  transition: transform var(--xgw-transition), background var(--xgw-transition);
}

.page-controls a:hover {
  transform: translate(-1px, -1px);
  box-shadow: 2px 2px 0 var(--xgw-ink);
  background: var(--xgw-tint);
}

.page-controls .current {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  border-color: var(--xgw-ink);
}

/* === 16. 搜索框 === */
.search-term, .search-box {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
}

.search-term input {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 600;
  background: var(--xgw-paper);
  color: var(--xgw-ink);
  outline: none;
}

.search-term input:focus {
  box-shadow: var(--xgw-shadow);
  border-color: var(--xgw-primary);
}

.search-result {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 12px 16px;
  margin-bottom: 8px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.search-result:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  background: var(--xgw-tint-2);
}

/* === 17. Modal/Dialog === */
.modal, .dialog {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
  border-radius: 0 !important;
}

.modal-inner-wrap, .dialog-content {
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.modal-header, .dialog-header {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 16px 20px;
}

.modal-footer, .dialog-footer {
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 12px 20px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.modal-title, .dialog-title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.3px;
}

/* === 18. 编辑器/Composer === */
.composer-container {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
}

.composer-title {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 12px 16px;
  font-weight: 700;
  font-size: 14px;
}

.composer-textarea {
  border: none;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 16px;
  font-size: 14px;
  line-height: 1.6;
  background: var(--xgw-paper);
  color: var(--xgw-ink);
  resize: vertical;
  min-height: 200px;
}

.composer-textarea:focus {
  background: var(--xgw-tint-2);
  outline: none;
}

.composer-controls {
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 12px 16px;
  display: flex;
  gap: 8px;
  align-items: center;
}

.composer-option {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: transform var(--xgw-transition), background var(--xgw-transition);
}

.composer-option:hover {
  transform: translate(-1px, -1px);
  box-shadow: 2px 2px 0 var(--xgw-ink);
  background: var(--xgw-tint);
}

/* === 19. 消息弹窗 === */
.message-popup {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
}

.message-popup-content {
  padding: 16px;
}

/* === 20. 页脚 === */
.footer-crawler, .crawler-nav {
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  padding: 20px;
}

.crawler-nav ul {
  list-style: none;
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.crawler-nav a {
  color: var(--xgw-paper);
  font-weight: 700;
  font-size: 13px;
  border: 1px solid var(--xgw-paper);
  padding: 4px 10px;
  text-decoration: none;
  transition: all var(--xgw-transition);
}

.crawler-nav a:hover {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  border-color: var(--xgw-primary);
}

.powered-by-link {
  font-size: 11px;
  color: var(--xgw-muted-2);
  margin-top: 12px;
}

.powered-by-link a {
  color: var(--xgw-primary);
  font-weight: 700;
  border-bottom: 2px solid var(--xgw-primary);
  text-decoration: none;
}

/* === 21. 滚动条 === */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: var(--xgw-paper-2);
  border-left: var(--xgw-border-w) solid var(--xgw-ink);
}

::-webkit-scrollbar-thumb {
  background: var(--xgw-ink);
  border: 2px solid var(--xgw-paper-2);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--xgw-primary);
}

/* === 22. 选中高亮 === */
::selection {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
}

/* === 23. XGW 自定义组件（保留原有） === */
.xgw-neo-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  letter-spacing: -0.2px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: var(--xgw-radius);
  box-shadow: var(--xgw-shadow);
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  background: var(--xgw-paper);
  color: var(--xgw-ink);
}

.xgw-neo-btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--xgw-ink);
}

.xgw-neo-btn:active {
  transform: translate(0, 0);
  box-shadow: var(--xgw-shadow-sm);
}

.xgw-neo-btn:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 2px;
}

.xgw-neo-btn-primary {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  border-color: var(--xgw-primary);
}

.xgw-neo-btn-primary:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 2px;
}

.xgw-neo-btn-ghost {
  background: rgba(0, 0, 0, 0);
  color: var(--xgw-paper);
  border-color: var(--xgw-paper);
  box-shadow: var(--xgw-shadow);
}

.xgw-neo-btn-ghost:hover {
  background: var(--xgw-paper);
  color: var(--xgw-ink);
}

.xgw-neo-hero {
  position: relative;
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  padding: 56px 24px 48px;
  overflow: hidden;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-neo-hero::before {
  content: "";
  position: absolute;
  top: -30px;
  right: -30px;
  width: 120px;
  height: 120px;
  background: var(--xgw-primary);
  border: var(--xgw-border-w) solid var(--xgw-paper);
}

.xgw-neo-hero::after {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 24px;
  width: 60px;
  height: 60px;
  border: var(--xgw-border-w) solid hsla(0, 0%, 100%, 0.3);
}

.xgw-neo-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.xgw-neo-hero-tag {
  display: inline-block;
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 20px;
  border: var(--xgw-border-w) solid var(--xgw-paper);
}

.xgw-neo-hero-title {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -1.5px;
  color: var(--xgw-paper);
  margin: 0 0 14px;
}

.xgw-neo-hero-sub {
  font-size: 16px;
  color: hsla(0, 0%, 100%, 0.85);
  margin: 0 0 28px;
  line-height: 1.6;
}

.xgw-neo-hero-btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.xgw-neo-section-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.xgw-neo-section-num {
  font-size: 11px;
  font-weight: 700;
  color: var(--xgw-primary-deep);
  background: var(--xgw-tint);
  border: var(--xgw-border-w) solid var(--xgw-primary);
  padding: 2px 8px;
  letter-spacing: 0.5px;
  white-space: nowrap;
  flex-shrink: 0;
}

.xgw-neo-section-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.5px;
  white-space: nowrap;
}

.xgw-neo-section-line {
  flex: 1;
  height: 2px;
  background: var(--xgw-ink);
}

.xgw-neo-section-head-dark .xgw-neo-section-title {
  color: var(--xgw-paper);
}

.xgw-neo-section-head-dark .xgw-neo-section-line {
  background: var(--xgw-paper);
}

.xgw-neo-section-head-dark .xgw-neo-section-num {
  background: var(--xgw-ink);
  color: var(--xgw-primary);
  border-color: var(--xgw-primary);
}

.xgw-neo-salary-card {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 20px;
  margin-bottom: 16px;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-neo-salary-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.xgw-neo-salary-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 2px 6px;
  border: 1.5px solid currentColor;
}

.xgw-neo-salary-dot {
  width: 8px;
  height: 8px;
  border: 1.5px solid currentColor;
  display: inline-block;
}

.xgw-neo-salary-anchor {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 8px 14px;
  box-shadow: var(--xgw-shadow-sm);
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
  text-decoration: none;
  background: var(--xgw-paper);
}

.xgw-neo-salary-anchor:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-tint);
}

.xgw-neo-salary-placeholder {
  border: var(--xgw-border-w) dashed var(--xgw-ink);
  background: var(--xgw-paper-2);
  padding: 24px;
  text-align: center;
  color: var(--xgw-muted);
  font-size: 13px;
}

.xgw-neo-salary-icon {
  font-size: 24px;
  margin-bottom: 8px;
}

.xgw-neo-salary-ph-title {
  font-weight: 700;
  font-size: 14px;
  color: var(--xgw-ink);
  margin-bottom: 4px;
}

.xgw-neo-salary-ph-desc {
  font-size: 12px;
  color: var(--xgw-muted);
}

.xgw-neo-salary-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--xgw-accent);
  border-bottom: 2px solid var(--xgw-accent);
  text-decoration: none;
}

.xgw-neo-salary-note {
  font-size: 11px;
  color: var(--xgw-muted-2);
  line-height: 1.5;
  border-left: var(--xgw-leftbar) solid var(--xgw-warning);
  padding-left: 12px;
  margin-top: 12px;
}

.xgw-neo-salary-note::before {
  content: "⚠ ";
  color: var(--xgw-warning);
}

.xgw-neo-resource {
  margin-bottom: 32px;
}

.xgw-neo-resource-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
}

.xgw-neo-resource-card {
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 20px;
  transition: background var(--xgw-transition);
  text-decoration: none;
  color: var(--xgw-ink);
  display: block;
}

.xgw-neo-resource-card:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: -3px;
}

.xgw-neo-resource-card:hover {
  background: var(--xgw-tint-2);
}

.xgw-neo-resource-card:hover .xgw-neo-resource-link {
  color: var(--xgw-primary);
  border-color: var(--xgw-primary);
}

.xgw-neo-resource-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 2px 6px;
  border: 1.5px solid currentColor;
  margin-bottom: 10px;
}

.xgw-neo-resource-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.3px;
  margin-bottom: 6px;
}

.xgw-neo-resource-desc {
  font-size: 12px;
  color: var(--xgw-muted);
  line-height: 1.5;
}

.xgw-neo-resource-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--xgw-ink);
  border-bottom: 2px solid var(--xgw-ink);
  text-decoration: none;
  margin-top: 12px;
  transition: all var(--xgw-transition);
}

.xgw-neo-legal {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  padding: 20px;
  margin-top: 24px;
}

.xgw-neo-legal-title {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--xgw-ink);
}

.xgw-neo-legal-note {
  font-size: 12px;
  color: var(--xgw-muted-2);
  line-height: 1.6;
  margin: 16px 0 0;
}

.xgw-neo-copyright-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
  margin-top: 16px;
}

.xgw-neo-copyright {
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 16px;
  text-align: center;
  transition: background var(--xgw-transition);
}

.xgw-neo-copyright:hover {
  background: var(--xgw-tint-2);
}

.xgw-neo-copyright-level {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.xgw-neo-copyright-desc {
  font-size: 11px;
  color: var(--xgw-muted-2);
  line-height: 1.4;
}

.xgw-neo-copyright-green {
  border-color: var(--xgw-success);
  background: rgba(16, 185, 129, 0.12);
}

.xgw-neo-copyright-green .xgw-neo-copyright-level {
  color: #34d399;
}

.xgw-neo-copyright-yellow {
  border-color: var(--xgw-warning);
  background: rgba(245, 158, 11, 0.12);
}

.xgw-neo-copyright-yellow .xgw-neo-copyright-level {
  color: var(--xgw-warning);
}

.xgw-neo-copyright-private {
  border-color: var(--xgw-accent);
  background: rgba(37, 99, 235, 0.12);
}

.xgw-neo-copyright-private .xgw-neo-copyright-level {
  color: var(--xgw-accent);
}

.xgw-neo-copyright-red {
  border-color: var(--xgw-danger);
  background: rgba(239, 68, 68, 0.12);
}

.xgw-neo-copyright-red .xgw-neo-copyright-level {
  color: #f87171;
}

.xgw-pulse {
  animation: xgw-pulse 2s ease-in-out infinite;
}

@keyframes xgw-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}
@media (prefers-reduced-motion: reduce) {
  .xgw-pulse {
    animation: none;
  }
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
/* ==========================================================================
   24. 二级目录系统（来自已批准小样 01-二级目录小样.html）
   ========================================================================== */
/* 目录包裹层 */
.xgw-directory {
  position: relative;
  z-index: 5;
}

/* 一级 Tabs（叠压 Hero 底边） */
.tabs-wrap {
  max-width: 1200px;
  margin: -20px auto 0;
  padding: 0 16px;
  position: relative;
  z-index: 10;
}

.nav-tabs {
  display: flex;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
  overflow: hidden;
  list-style: none;
}

.nav-tabs__item {
  appearance: none;
  flex: 1;
  min-width: 0;
  padding: 12px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: inherit;
  text-align: center;
  background: var(--xgw-paper);
  border: 0;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: 0;
  cursor: pointer;
  transition: background 0.1s, color 0.1s;
  white-space: nowrap;
  color: var(--xgw-ink);
  text-decoration: none;
  display: block;
}

.nav-tabs__item:last-child {
  border-right: none;
}

.nav-tabs__item:hover {
  background: var(--xgw-paper-2);
}

.nav-tabs__item--active {
  background: var(--xgw-primary);
  color: var(--xgw-ink);
}

.nav-tabs__item--active:hover {
  background: var(--xgw-primary);
}

.xgw-directory [hidden] {
  display: none !important;
}

/* Section 编号标题 */
.xgw-section {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 16px 12px;
  max-width: 1200px;
  margin: 8px auto 0;
}

.xgw-section__num {
  font-size: 11px;
  font-weight: 700;
  color: var(--xgw-primary-deep);
  background: var(--xgw-tint);
  border: var(--xgw-border-w) solid var(--xgw-primary);
  padding: 2px 8px;
  letter-spacing: 0.5px;
  white-space: nowrap;
  flex-shrink: 0;
}

.xgw-section__title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.3px;
  white-space: nowrap;
  margin: 0;
}

.xgw-section__line {
  flex: 1;
  height: 2px;
  background: var(--xgw-ink);
}

.xgw-section__more {
  font-size: 12px;
  font-weight: 700;
  color: var(--xgw-muted);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 4px 10px;
  background: var(--xgw-paper);
  transition: transform 0.1s, box-shadow 0.1s;
  white-space: nowrap;
  flex-shrink: 0;
  text-decoration: none;
  display: inline-block;
}

.xgw-section__more:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow-sm);
}

/* 分类卡片网格 */
.directory {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px 40px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
}

/* 技术区沿用用户确认的双列方块节奏，避免七个领域被压成过密的三列。 */
.xgw-directory #tech + .directory {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.category-card {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  background: var(--xgw-paper);
  transition: transform 0.1s ease, box-shadow 0.1s ease;
  position: relative;
  display: flex;
  flex-direction: column;
}

.category-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.category-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--xgw-leftbar);
  background: var(--cat-color, var(--xgw-primary));
  z-index: 2;
}

/* 卡片头 */
.category-card__header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 16px 12px 24px;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  flex: 1;
}

.category-card__icon {
  width: 40px;
  height: 40px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--cat-color, var(--xgw-primary));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  box-shadow: var(--xgw-shadow-sm);
  transition: transform 0.1s;
}

.category-card:hover .category-card__icon {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

.category-card__body {
  flex: 1;
  min-width: 0;
}

.category-card__name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.3px;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.category-card__desc {
  font-size: 12px;
  color: var(--xgw-muted);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.category-card__meta {
  display: flex;
  gap: 12px;
  margin-top: 8px;
  font-size: 11px;
  color: var(--xgw-muted-2);
  font-weight: 600;
}

.category-card__meta b {
  color: var(--xgw-ink);
}

/* 小标签 */
.xgw-tag {
  display: inline-flex;
  align-items: center;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 1px 5px;
  border: 1.5px solid currentColor;
}

.xgw-tag--pinned {
  color: var(--xgw-primary);
  background: var(--xgw-tint);
  border-color: var(--xgw-primary);
}

.xgw-tag--hot {
  color: var(--xgw-danger);
  background: rgba(239, 68, 68, 0.1);
  border-color: var(--xgw-danger);
}

.xgw-tag--new {
  color: var(--xgw-success);
  background: rgba(16, 185, 129, 0.1);
  border-color: var(--xgw-success);
}

.xgw-tag--rules {
  color: var(--xgw-accent);
  background: rgba(37, 99, 235, 0.08);
  border-color: var(--xgw-accent);
}

/* 二级目录格 */
.category-card__sub {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
}

.sub-item {
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: background 0.1s;
  color: var(--xgw-ink);
  text-decoration: none;
}

.sub-item:nth-child(2n) {
  border-right: none;
}

.sub-item:hover {
  background: var(--xgw-tint-2);
}

.sub-item::before {
  content: "›";
  color: var(--xgw-primary);
  font-weight: 700;
}

/* 卡片脚 */
.category-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px 10px 24px;
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
}

.category-card__action {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 5px 10px;
  background: var(--xgw-paper);
  box-shadow: var(--xgw-shadow-sm);
  transition: transform 0.1s, box-shadow 0.1s, background 0.1s;
  cursor: pointer;
  color: var(--xgw-ink);
  text-decoration: none;
  display: inline-block;
}

.category-card__action:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-tint);
}

/* 统一模块卡：新增一个板块就是新增一张整卡，复杂内容放在卡内范围标签中。 */
.xgw-module-card {
  min-height: 222px;
  color: var(--xgw-ink);
  text-decoration: none;
}

.xgw-module-card:focus-visible {
  outline: 3px solid var(--cat-color, var(--xgw-primary));
  outline-offset: 4px;
}

.xgw-module-card .category-card__header {
  min-height: 128px;
  flex: 0 0 auto;
}

.xgw-module-card .category-card__icon {
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: 24px;
  font-weight: 900;
}

.xgw-module-card__scope {
  min-height: 49px;
  padding: 9px 14px 9px 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  background: #fffefa;
}

.xgw-module-card__scope span {
  padding: 4px 7px;
  border: 1px solid var(--xgw-ink);
  background: var(--xgw-paper);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
}

.xgw-module-card .category-card__footer {
  margin-top: auto;
}

.xgw-module-card:hover .category-card__action {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-tint);
}

/* 响应式：手机单列 */
@media (max-width: 768px) {
  .directory {
    grid-template-columns: 1fr;
  }
  .xgw-directory #tech + .directory {
    grid-template-columns: 1fr;
  }
  .nav-tabs {
    flex-wrap: wrap;
  }
  .nav-tabs__item {
    box-sizing: border-box;
    flex: 1 1 50%;
    min-width: 50%;
    min-height: 44px;
    width: 50%;
    padding: 10px 8px;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .tabs-wrap {
    margin-top: 0;
    padding: 12px 16px 0;
  }
  .xgw-section {
    padding: 16px 12px 10px;
  }
}
/* 首页手机端：目录入口遵守 44px 触控下限，字号保持可读。 */
@media (max-width: 480px) {
  body.xgw-pure-home .category-card__icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
  }
  body.xgw-pure-home .category-card__name {
    font-size: 16px;
    line-height: 1.35;
  }
  body.xgw-pure-home .category-card__desc {
    font-size: 13px;
    line-height: 1.55;
  }
  body.xgw-pure-home .sub-item,
  body.xgw-pure-home .category-card__action {
    min-height: 44px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
  }
}
/* ==========================================================================
   25. P1 严格小样对齐：黑底 Hero + 纯首页隐藏 + 页脚条
   ========================================================================== */
/* 顶部 Hero（小样 01：黑底白字 + 橙色装饰方块，无按钮） */
.xgw-hero {
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  padding: 48px 24px 40px;
  position: relative;
  overflow: hidden;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-hero::before {
  content: "";
  position: absolute;
  top: -24px;
  right: -24px;
  width: 100px;
  height: 100px;
  background: var(--xgw-primary);
  border: var(--xgw-border-w) solid var(--xgw-paper);
}

.xgw-hero::after {
  content: "";
  position: absolute;
  bottom: -16px;
  left: 40px;
  width: 48px;
  height: 48px;
  border: var(--xgw-border-w) solid hsla(0, 0%, 100%, 0.25);
}

.xgw-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.xgw-hero-tag {
  display: inline-block;
  background: var(--xgw-primary);
  color: var(--xgw-ink);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 16px;
  border: var(--xgw-border-w) solid var(--xgw-paper);
}

.xgw-hero-title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -1px;
  margin-bottom: 8px;
  color: var(--xgw-paper);
}

.xgw-hero-sub {
  font-size: 14px;
  color: hsla(0, 0%, 100%, 0.75);
  max-width: 600px;
  margin: 0;
}

/* 页脚条（小样 01） */
.xgw-footer {
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 14px 20px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
  font-size: 11px;
  color: var(--xgw-muted);
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: var(--xgw-shadow-sm);
}

.xgw-footer strong {
  color: var(--xgw-ink);
}

/* 严格小样：根路径 "/" = 纯目录页。
   隐藏原生发现区（#main-container 内含 最新/热门 tab、筛选 chips、话题列表），
   我们注入在 above-main-container 的 Hero/目录不受影响。 */
body.xgw-pure-home #main-container {
  display: none !important;
}

/* 兜底：个别结构变体下直接隐藏列表容器与发现控制条 */
body.xgw-pure-home .topic-list-container,
body.xgw-pure-home .list-controls,
body.xgw-pure-home .filter-navigation {
  display: none !important;
}

/* 纯首页的顶部留白（顶栏下方直接进黑底 Hero） */
body.xgw-pure-home #main-outlet-wrapper {
  padding-top: 0;
}

@media (max-width: 768px) {
  .xgw-hero {
    padding: 40px 16px 36px;
  }
  .xgw-hero-title {
    font-size: 24px;
  }
}
/* ==========================================================================
   26. P2 话题列表换皮（/latest、/c/*）：neobrutalism 行 + 分类色左栏 + 时间/浏览量列
   ========================================================================== */
.topic-list {
  width: 100%;
  max-width: 100%;
  table-layout: auto;
}

.topic-list thead th:nth-child(2),
.topic-list td.posters {
  width: 48px;
}

.topic-list thead th.replies,
.topic-list thead th.posts,
.topic-list td.replies,
.topic-list td.posts {
  width: 56px;
}

.topic-list thead th.views,
.topic-list td.views {
  width: 64px;
}

.topic-list thead th:last-of-type,
.topic-list td:last-of-type {
  width: 90px;
}

/* 表头 */
.topic-list thead th {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink) !important;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--xgw-muted);
  background: var(--xgw-paper-2);
  padding: 8px 10px;
  text-align: left;
}

.topic-list thead th.views,
.topic-list thead th.replies,
.topic-list thead th:last-of-type {
  text-align: center;
}

/* 行分隔：2px 黑线 */
.topic-list-item td {
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  padding: 10px 8px;
}

.topic-list-item:last-child td {
  border-bottom: 0;
}

/* 左栏：分类色（JS 注入 --row-cat-color），无分类回落橙色 */
.topic-list-item td.main-link {
  border-left: var(--xgw-leftbar) solid var(--row-cat-color, var(--xgw-primary)) !important;
}

/* 行 hover：橙色底 + 硬阴影抬起 */
.topic-list-item {
  transition: background var(--xgw-transition);
}

.topic-list-item:hover {
  background: var(--xgw-tint);
  box-shadow: var(--xgw-shadow-sm);
  position: relative;
}

/* 标题 */
.topic-list-item .title {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.35;
  color: var(--xgw-ink);
  text-decoration: none;
}

.topic-list-item:hover .title {
  color: var(--xgw-primary-deep);
}

/* 分类徽章：小样风格方标签 */
.topic-list-item .badge-category {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border: 1px solid rgba(0, 0, 0, 0.35);
}

/* 数值列：保持原生表格单元格，避免 td 被 inline-block 破坏列对齐。 */
.topic-list td.posts,
.topic-list td.views {
  text-align: center;
  font-weight: 700;
  font-size: 12px;
  color: var(--xgw-ink);
}

.topic-list td.posts .badge-posts {
  color: inherit;
  text-decoration: none;
}

/* 发帖人列 */
.topic-list td.posters {
  white-space: nowrap;
  text-align: center;
}

.topic-list td.posters .avatar {
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.topic-list td.posters a.xgw-avatar-fallback {
  width: 29px;
  height: 29px;
  display: inline-grid;
  place-items: center;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.topic-list td.posters a.xgw-avatar-fallback::before {
  content: "光";
}

.topic-list td.posters a.xgw-avatar-fallback img {
  display: none;
}

/* 时间列（末列，原生无 class，用 :last-of-type 命中） */
.topic-list td:last-of-type,
.topic-list thead th:last-of-type {
  text-align: center;
  white-space: nowrap;
  min-width: 0;
}

.topic-list td:last-of-type {
  font-size: 12px;
  font-weight: 700;
  color: var(--xgw-muted);
}

.topic-list td:last-of-type a {
  color: var(--xgw-muted);
  text-decoration: none;
}

.topic-list-item:hover td:last-of-type,
.topic-list-item:hover td:last-of-type a {
  color: var(--xgw-primary-deep);
}

/* 宽桌面保留完整统计列；竖屏和平板在下方重排成紧凑元数据。 */
@media (min-width: 1025px) {
  .topic-list th.views,
  .topic-list td.views,
  .topic-list th:last-of-type,
  .topic-list td:last-of-type,
  .topic-list th.replies,
  .topic-list th.posts,
  .topic-list td.replies,
  .topic-list td.posts {
    display: table-cell !important;
  }
}
/* 列表外框（桌面）：整表带硬阴影 */
.topic-list-container {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: var(--xgw-paper);
}

/*
 * 竖屏 / 窄内容区：标题优先的阅读卡片。
 * 1024px 断点同时覆盖“813px 视口 + 224px 侧栏”这类实际内容仅约 540px 的场景。
 */
@media (max-width: 1024px) {
  .topic-list-container {
    border: 0;
    box-shadow: none;
    background: transparent;
  }
  .topic-list {
    display: block;
    width: 100%;
    border: 0;
    box-shadow: none;
    background: transparent;
  }
  .topic-list thead {
    display: none;
  }
  .topic-list tbody {
    display: grid;
    width: 100%;
    gap: 10px;
  }
  .topic-list-item {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    background: var(--xgw-paper);
    border: var(--xgw-border-w) solid var(--xgw-ink);
    box-shadow: var(--xgw-shadow-sm);
  }
  .topic-list-item:hover {
    box-shadow: var(--xgw-shadow-sm);
  }
  .topic-list-item td,
  .topic-list-item:last-child td {
    box-sizing: border-box;
    width: auto !important;
    min-width: 0;
    border-bottom: 0;
  }
  .topic-list-item td.main-link {
    flex: 1 0 100%;
    width: 100% !important;
    min-height: 0;
    padding: 14px 14px 12px;
    display: block !important;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
    border-left-width: 6px !important;
  }
  .topic-list-item .title {
    display: block;
    font-size: 16px;
    line-height: 1.45;
  }
  .topic-list-item .link-bottom-line {
    margin-top: 6px;
  }
  .topic-list-item td.posters {
    display: none !important;
  }
  .topic-list-item td.replies,
  .topic-list-item td.posts,
  .topic-list-item td.views,
  .topic-list-item td:last-of-type {
    width: auto !important;
    min-height: 0;
    flex: 0 0 auto;
    padding: 8px 10px;
    display: inline-flex !important;
    align-items: baseline;
    justify-content: flex-start;
    gap: 4px;
    white-space: normal;
    border-right: 0;
    background: var(--xgw-paper-2);
    color: var(--xgw-ink);
    font-size: 12px !important;
    line-height: 1.3;
    text-align: left;
  }
  .topic-list-item td.posts .badge-posts,
  .topic-list-item td.replies .badge-posts,
  .topic-list-item td:last-of-type a {
    display: inline;
    padding: 0 !important;
    line-height: 1.3;
  }
  .topic-list-item td:last-of-type {
    flex: 0 0 auto;
    border-right: 0;
  }
  .topic-list-item td.replies::after,
  .topic-list-item td.posts::after,
  .topic-list-item td.views::after,
  .topic-list-item td:last-of-type::before {
    color: var(--xgw-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
  }
  .topic-list-item td.replies::after,
  .topic-list-item td.posts::after {
    content: "回复";
  }
  .topic-list-item td.views::after {
    content: "浏览";
  }
  .topic-list-item td:last-of-type::before {
    content: "更新";
  }
  .topic-list td:last-of-type {
    min-width: 0;
    font-size: 11px !important;
  }
  /* Discourse 手机端只渲染一个 td；必须让它占满整张卡，而不是继承三列布局。 */
  .topic-list-item > td.topic-list-data:only-child {
    flex: 1 1 100%;
    width: 100% !important;
    max-width: none !important;
    padding: 14px;
    display: block !important;
    border-left: 6px solid var(--row-cat-color, var(--xgw-primary)) !important;
  }
  .topic-list-item > td.topic-list-data:only-child > .pull-left {
    display: none;
  }
  .topic-list-item > td.topic-list-data:only-child .topic-item-metadata {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    column-gap: 10px;
    width: 100%;
    margin: 0 !important;
  }
  .topic-list-item > td.topic-list-data:only-child .main-link {
    grid-column: 1/-1;
    display: block;
    width: auto;
    padding: 0 !important;
  }
  .topic-list-item > td.topic-list-data:only-child .pull-right {
    grid-column: 1;
    float: none;
    display: inline-flex;
    width: auto;
    margin: 9px 0 0;
  }
  .topic-list-item > td.topic-list-data:only-child .posts-map {
    display: inline-flex;
    min-width: 0;
    width: auto;
    padding: 0;
    border: 0;
    background: transparent;
  }
  .topic-list-item > td.topic-list-data:only-child .badge-posts::after {
    content: " 回复";
    color: var(--xgw-muted);
    font-size: 10px;
    font-weight: 800;
  }
  .topic-list-item > td.topic-list-data:only-child .topic-item-stats {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    width: auto;
    margin: 9px 0 0;
  }
  .topic-list-item > td.topic-list-data:only-child .topic-item-stats .activity {
    font-size: 11px;
  }
}
/* 列表摘要可能来自 Markdown 代码模板；列表只展示标题，正文进入话题后阅读。 */
body.navigation-category .topic-list-item .topic-excerpt,
body.navigation-topics .topic-list-item .topic-excerpt,
body.xgw-latest-page .topic-list-item .topic-excerpt {
  display: none !important;
}

/* ==========================================================================
   27. P0 个人引导页：光学实验台 × 工业编辑部
   ========================================================================== */
/* P0 与论坛目录共用根路径，通过 body 状态类互斥显示。 */
.xgw-forum-return,
.xgw-forum-shell {
  display: none;
}

body.xgw-pure-home:not(.xgw-directory-home) .xgw-hero,
body.xgw-pure-home:not(.xgw-directory-home) .xgw-directory,
body.xgw-pure-home:not(.xgw-directory-home) .xgw-forum-return,
body.xgw-pure-home:not(.xgw-directory-home) .xgw-forum-shell {
  display: none !important;
}

body.xgw-directory-home .xgw-p0 {
  display: none !important;
}

body.xgw-directory-home .xgw-forum-return {
  display: block;
}

body.xgw-directory-home .xgw-forum-shell {
  display: block;
}

body.xgw-p0-home {
  background: linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px), #e9e7e1;
  background-size: 24px 24px;
}

.xgw-p0,
.xgw-p0 *,
.xgw-p0 *::before,
.xgw-p0 *::after {
  box-sizing: border-box;
}

.xgw-p0 {
  --xgw-p0-serif: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  width: min(1200px, 100% - 32px);
  margin: 24px auto 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
}

.xgw-p0 a,
.xgw-p0 button,
.xgw-forum-return,
.xgw-forum-shell__bar button {
  font: inherit;
}

.xgw-p0 a:focus-visible,
.xgw-p0 button:focus-visible,
.xgw-forum-return:focus-visible,
.xgw-forum-shell__bar button:focus-visible,
.xgw-directory .nav-tabs__item:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 3px;
}

/* 刊头 */
.xgw-p0__masthead {
  min-height: 76px;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-p0__wordmark {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--xgw-ink);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-decoration: none;
}

.xgw-p0__wordmark-mark {
  padding: 7px 9px 6px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-primary);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.1em;
}

.xgw-p0__mast-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.xgw-p0__mast-meta span:last-child {
  padding: 5px 8px;
  background: var(--xgw-primary);
  border: 1px solid var(--xgw-ink);
}

/* 首屏 */
.xgw-p0__hero {
  min-height: 650px;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.85fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-p0__hero-copy {
  position: relative;
  z-index: 1;
  padding: clamp(44px, 6vw, 78px) clamp(30px, 5vw, 68px) 36px;
  display: flex;
  flex-direction: column;
  background: linear-gradient(rgba(0, 0, 0, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.045) 1px, transparent 1px), #fbfaf6;
  background-size: 28px 28px;
}

.xgw-p0__hero-copy::after {
  content: "OPTICAL / FIELD NOTES";
  position: absolute;
  right: 14px;
  bottom: 108px;
  color: rgba(0, 0, 0, 0.28);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  writing-mode: vertical-rl;
}

.xgw-p0__eyebrow {
  width: fit-content;
  margin: 0 0 28px;
  padding: 7px 11px 7px 8px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.xgw-p0__eyebrow span {
  padding: 3px 5px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
}

.xgw-p0__hero h1 {
  max-width: 720px;
  margin: 0;
  color: var(--xgw-ink);
  font-family: var(--xgw-p0-serif);
  font-size: clamp(48px, 6.1vw, 82px);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.075em;
  text-wrap: balance;
}

.xgw-p0__hero h1 span {
  display: block;
  margin-bottom: 8px;
  color: var(--xgw-primary);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 0.42em;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.xgw-p0__lead {
  margin: 30px 0 0;
  padding-left: 18px;
  border-left: 6px solid var(--xgw-primary);
  font-family: var(--xgw-p0-serif);
  font-size: clamp(18px, 2vw, 23px);
  font-weight: 800;
  line-height: 1.55;
}

.xgw-p0__intro {
  max-width: 630px;
  margin: 20px 0 0;
  color: #353535;
  font-size: 14px;
  line-height: 1.85;
}

.xgw-p0__actions {
  margin-top: 30px;
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
}

.xgw-p0__button {
  min-height: 48px;
  padding: 11px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: 0;
  box-shadow: var(--xgw-shadow-sm);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition), background var(--xgw-transition);
}

.xgw-p0__button:hover {
  color: var(--xgw-ink);
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.xgw-p0__button:active {
  transform: translate(1px, 1px);
  box-shadow: none;
}

.xgw-p0__button--primary {
  min-width: 168px;
  background: var(--xgw-primary);
}

.xgw-p0__button--primary:hover {
  background: #ff7a22;
}

.xgw-p0__button--ghost {
  min-width: 188px;
  background: var(--xgw-paper);
}

.xgw-p0__button--ghost:hover {
  background: var(--xgw-tint);
}

.xgw-p0__button b {
  font-size: 18px;
  line-height: 1;
}

.xgw-p0__principles {
  margin-top: auto;
  padding-top: 34px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.xgw-p0__principles span {
  min-height: 48px;
  padding: 9px 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--xgw-ink);
  border-right: 0;
  background: rgba(255, 255, 255, 0.86);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
}

.xgw-p0__principles span:last-child {
  border-right: 1px solid var(--xgw-ink);
}

/* 光学装置视觉：只使用 CSS，避免额外资源阻塞首屏。 */
.xgw-p0__portrait {
  min-width: 0;
  margin: 0;
  display: grid;
  grid-template-rows: minmax(420px, 1fr) auto;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border-left: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-p0__optic-stage {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 50%, rgba(255, 102, 0, 0.16), transparent 38%), linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px), #050505;
  background-size: auto, 34px 34px, 34px 34px, auto;
}

.xgw-p0__optic-stage::before,
.xgw-p0__optic-stage::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.42);
}

.xgw-p0__optic-stage::before {
  width: 260px;
  height: 260px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}

.xgw-p0__optic-stage::after {
  width: 18px;
  height: 18px;
  right: 20px;
  top: 20px;
  background: var(--xgw-primary);
  box-shadow: -286px 320px 0 var(--xgw-primary);
}

.xgw-p0__beam {
  position: absolute;
  left: -18%;
  top: 50%;
  width: 138%;
  height: 3px;
  z-index: 2;
  background: var(--xgw-primary);
  box-shadow: 0 0 14px rgba(255, 102, 0, 0.9);
  transform-origin: center;
}

.xgw-p0__beam--one {
  transform: rotate(-12deg);
}

.xgw-p0__beam--two {
  height: 1px;
  opacity: 0.7;
  transform: rotate(18deg);
}

.xgw-p0__lens {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  border: 3px solid var(--xgw-paper);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.xgw-p0__lens--front {
  width: 128px;
  height: 246px;
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 18px 0 0 rgba(255, 102, 0, 0.16), 10px 0 0 rgba(255, 102, 0, 0.32);
}

.xgw-p0__lens--back {
  width: 54px;
  height: 162px;
  left: 73%;
  border-width: 2px;
  opacity: 0.56;
}

.xgw-p0__target {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  width: 22px;
  height: 22px;
  border: 2px solid var(--xgw-primary);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.xgw-p0__target::before,
.xgw-p0__target::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: var(--xgw-primary);
  transform: translate(-50%, -50%);
}

.xgw-p0__target::before {
  width: 54px;
  height: 1px;
}

.xgw-p0__target::after {
  width: 1px;
  height: 54px;
}

.xgw-p0__scale {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 12px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.7);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-align: center;
}

.xgw-p0__portrait figcaption {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  border-top: var(--xgw-border-w) solid var(--xgw-paper);
  background: var(--xgw-primary);
  color: var(--xgw-ink);
}

.xgw-p0__placeholder-kicker {
  width: fit-content;
  padding: 3px 6px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-p0__portrait figcaption strong {
  margin-top: 4px;
  font-family: var(--xgw-p0-serif);
  font-size: 24px;
  line-height: 1.2;
}

.xgw-p0__portrait figcaption small {
  font-size: 11px;
  line-height: 1.6;
}

/* 关于 */
.xgw-p0__about {
  padding: clamp(46px, 6vw, 76px) clamp(26px, 5vw, 60px);
  display: grid;
  grid-template-columns: 150px minmax(0, 1.05fr) minmax(280px, 0.85fr);
  gap: clamp(24px, 4vw, 52px);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-p0__section-index {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-p0__section-index i {
  width: 100%;
  height: 8px;
  border-top: 2px solid var(--xgw-ink);
  border-bottom: 1px solid var(--xgw-ink);
}

.xgw-p0__about-title p,
.xgw-p0__section-label,
.xgw-p0__projects-head > span {
  margin: 0 0 12px;
  color: var(--xgw-primary-deep);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.xgw-p0__about-title h2,
.xgw-p0__manifesto-heading h2,
.xgw-p0__thanks h2,
.xgw-p0__projects-head h2 {
  margin: 0;
  font-family: var(--xgw-p0-serif);
  font-weight: 900;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.xgw-p0__about-title h2 {
  font-size: clamp(30px, 3.7vw, 46px);
  line-height: 1.25;
}

.xgw-p0__about-title h2 span {
  display: block;
  color: var(--xgw-primary);
}

.xgw-p0__about-body {
  padding-top: 26px;
  border-top: 6px solid var(--xgw-ink);
}

.xgw-p0__about-body p {
  margin: 0 0 16px;
  color: #3d3d3d;
  font-size: 14px;
  line-height: 1.9;
}

.xgw-p0__about-body p:last-child {
  margin-bottom: 0;
}

/* 价值观 */
.xgw-p0__manifesto {
  padding: clamp(48px, 6vw, 78px) clamp(26px, 5vw, 60px);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: clamp(40px, 7vw, 90px);
  color: var(--xgw-paper);
  background: radial-gradient(circle at 10% 10%, rgba(255, 102, 0, 0.17), transparent 28%), var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-p0__manifesto-heading > span {
  display: inline-block;
  margin-bottom: 24px;
  padding: 4px 7px;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.xgw-p0__manifesto-heading h2 {
  max-width: 480px;
  color: var(--xgw-paper);
  font-size: clamp(34px, 4.5vw, 54px);
  line-height: 1.18;
}

.xgw-p0__manifesto-heading p {
  max-width: 430px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 1.8;
}

.xgw-p0__manifesto-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.xgw-p0__manifesto-list li {
  padding: 24px 0;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}

.xgw-p0__manifesto-list li > b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  letter-spacing: 0.08em;
}

.xgw-p0__manifesto-list div {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.xgw-p0__manifesto-list strong {
  color: var(--xgw-paper);
  font-family: var(--xgw-p0-serif);
  font-size: 21px;
}

.xgw-p0__manifesto-list span {
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  line-height: 1.65;
}

/* 感谢与课程共创 */
.xgw-p0__thanks {
  padding: clamp(48px, 6vw, 74px) clamp(26px, 5vw, 60px);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(310px, 0.85fr);
  gap: clamp(34px, 6vw, 74px);
  background: var(--xgw-primary);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-p0__thanks .xgw-p0__section-label {
  display: inline-block;
  color: var(--xgw-ink);
}

.xgw-p0__thanks h2 {
  max-width: 620px;
  font-size: clamp(36px, 5vw, 60px);
  line-height: 1.12;
}

.xgw-p0__thanks-copy > p {
  max-width: 650px;
  margin: 24px 0 0;
  font-size: 14px;
  line-height: 1.85;
}

.xgw-p0__signature {
  width: fit-content;
  margin-top: 30px;
  padding-top: 11px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 3px solid var(--xgw-ink);
}

.xgw-p0__signature span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-p0__signature strong {
  font-family: var(--xgw-p0-serif);
  font-size: 18px;
}

.xgw-p0__course-note {
  position: relative;
  min-height: 320px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
  box-shadow: 8px 8px 0 var(--xgw-ink);
  transform: rotate(1deg);
}

.xgw-p0__course-note > span {
  width: fit-content;
  padding: 5px 7px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-p0__course-note > strong {
  margin-top: 24px;
  font-family: var(--xgw-p0-serif);
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.25;
}

.xgw-p0__course-note > p {
  margin: 18px 0 0;
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.75;
}

.xgw-p0__course-note > i {
  margin-top: auto;
  padding-top: 26px;
  color: rgba(0, 0, 0, 0.16);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 30px;
  font-style: normal;
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.06em;
  text-align: right;
}

/* 项目窗口 */
.xgw-p0__projects {
  padding: clamp(48px, 6vw, 76px) clamp(26px, 5vw, 60px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  background: linear-gradient(135deg, rgba(255, 102, 0, 0.08) 25%, transparent 25%) -12px 0/24px 24px, var(--xgw-paper);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-p0__projects-head {
  margin-bottom: 18px;
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 120px 1fr auto;
  align-items: end;
  gap: 20px;
}

.xgw-p0__projects-head > span {
  margin: 0;
  align-self: start;
}

.xgw-p0__projects-head h2 {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.12;
}

.xgw-p0__projects-head p {
  max-width: 250px;
  margin: 0;
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.6;
}

.xgw-p0__project {
  min-height: 264px;
  padding: 0;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-p0__project:hover {
  transform: translate(-3px, -3px);
  box-shadow: 7px 7px 0 var(--xgw-ink);
}

.xgw-p0__project-no {
  grid-row: 1/3;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 24px;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-primary);
  font-family: var(--xgw-p0-serif);
  font-size: 34px;
  font-weight: 900;
}

.xgw-p0__project-main {
  padding: 24px;
}

.xgw-p0__project-main > span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-p0__project-main h3 {
  margin: 18px 0 10px;
  font-family: var(--xgw-p0-serif);
  font-size: 26px;
  line-height: 1.15;
}

.xgw-p0__project-main p {
  margin: 0;
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.75;
}

.xgw-p0__project-status {
  padding: 10px 14px;
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper-2);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: right;
}

.xgw-p0__project--map .xgw-p0__project-no {
  color: var(--xgw-paper);
  background: var(--xgw-ink);
}

.xgw-p0__project--map .xgw-p0__project-link {
  color: #fff;
  border-color: #1769aa;
  background: #1769aa;
  box-shadow: none;
}

.xgw-p0__project--map .xgw-p0__project-link:hover,
.xgw-p0__project--map .xgw-p0__project-link:focus-visible {
  color: #fff;
  border-color: #115486;
  background: #115486;
  box-shadow: none;
  transform: none;
}

/* 页尾 */
.xgw-p0__footer {
  min-height: 120px;
  padding: 26px 32px;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(260px, 1.2fr) auto;
  align-items: center;
  gap: 28px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
}

.xgw-p0__footer div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.xgw-p0__footer b {
  font-family: var(--xgw-p0-serif);
  font-size: 17px;
}

.xgw-p0__footer span,
.xgw-p0__footer p {
  color: rgba(255, 255, 255, 0.62);
  font-size: 10px;
  line-height: 1.6;
}

.xgw-p0__footer p {
  margin: 0;
}

.xgw-p0__footer a {
  padding: 8px 10px;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border: 1px solid var(--xgw-paper);
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
}

/* 目录状态顶部返回入口：真实站点与静态验收页各自复用。 */
.xgw-forum-return {
  width: min(1200px, 100% - 32px);
  margin: 20px auto 14px;
  padding: 10px 14px;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: 0;
  box-shadow: var(--xgw-shadow-sm);
  font-size: 12px;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.xgw-forum-return:hover {
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.xgw-forum-shell {
  min-height: 100vh;
  background: var(--xgw-paper-2);
}

.xgw-forum-shell__bar {
  min-height: 52px;
  padding: 8px max(16px, (100% - 1168px) / 2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-forum-shell__bar button {
  padding: 7px 10px;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border: 1px solid var(--xgw-paper);
  border-radius: 0;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 900px) {
  .xgw-p0__hero {
    grid-template-columns: 1fr;
  }
  .xgw-p0__portrait {
    grid-template-columns: minmax(0, 1.3fr) minmax(240px, 0.7fr);
    grid-template-rows: 360px;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
    border-left: 0;
  }
  .xgw-p0__optic-stage {
    min-height: 360px;
  }
  .xgw-p0__portrait figcaption {
    justify-content: flex-end;
    border-top: 0;
    border-left: var(--xgw-border-w) solid var(--xgw-paper);
  }
  .xgw-p0__about {
    grid-template-columns: 110px minmax(0, 1fr);
  }
  .xgw-p0__about-body {
    grid-column: 2;
  }
  .xgw-p0__manifesto,
  .xgw-p0__thanks {
    grid-template-columns: 1fr;
  }
  .xgw-p0__course-note {
    min-height: 280px;
    transform: none;
  }
}
@media (max-width: 680px) {
  .xgw-p0 {
    width: calc(100% - 20px);
    margin: 10px auto 36px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-p0__masthead {
    min-height: 0;
    padding: 12px 14px;
    align-items: flex-start;
  }
  .xgw-p0__wordmark {
    max-width: 210px;
    font-size: 11px;
  }
  .xgw-p0__mast-meta {
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    font-size: 8px;
    text-align: right;
  }
  .xgw-p0__mast-meta span:first-child {
    display: none;
  }
  .xgw-p0__hero-copy {
    padding: 38px 20px 24px;
  }
  .xgw-p0__hero-copy::after {
    display: none;
  }
  .xgw-p0__eyebrow {
    margin-bottom: 22px;
    font-size: 9px;
  }
  .xgw-p0__hero h1 {
    font-size: clamp(43px, 14vw, 62px);
    line-height: 1.02;
  }
  .xgw-p0__lead {
    margin-top: 24px;
    font-size: 17px;
  }
  .xgw-p0__intro {
    font-size: 13px;
  }
  .xgw-p0__actions {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-p0__button {
    width: 100%;
    min-width: 0;
  }
  .xgw-p0__principles {
    margin-top: 30px;
    padding-top: 0;
    grid-template-columns: 1fr;
  }
  .xgw-p0__principles span {
    min-height: 38px;
    border-right: 1px solid var(--xgw-ink);
    border-bottom: 0;
  }
  .xgw-p0__principles span:last-child {
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-p0__portrait {
    grid-template-columns: 1fr;
    grid-template-rows: 330px auto;
  }
  .xgw-p0__optic-stage {
    min-height: 330px;
  }
  .xgw-p0__portrait figcaption {
    border-top: var(--xgw-border-w) solid var(--xgw-paper);
    border-left: 0;
  }
  .xgw-p0__about,
  .xgw-p0__manifesto,
  .xgw-p0__thanks,
  .xgw-p0__projects {
    padding: 42px 20px;
  }
  .xgw-p0__about {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .xgw-p0__section-index,
  .xgw-p0__about-body {
    grid-column: 1;
  }
  .xgw-p0__section-index {
    flex-direction: row;
    align-items: center;
  }
  .xgw-p0__section-index i {
    flex: 1;
  }
  .xgw-p0__about-title h2,
  .xgw-p0__manifesto-heading h2,
  .xgw-p0__thanks h2,
  .xgw-p0__projects-head h2 {
    font-size: 34px;
  }
  .xgw-p0__manifesto {
    gap: 34px;
  }
  .xgw-p0__manifesto-list li {
    grid-template-columns: 36px 1fr;
    gap: 10px;
  }
  .xgw-p0__course-note {
    min-height: 300px;
    padding: 24px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-p0__projects {
    grid-template-columns: 1fr;
  }
  .xgw-p0__projects-head {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .xgw-p0__projects-head p {
    max-width: none;
  }
  .xgw-p0__project {
    min-height: 0;
  }
  .xgw-p0__project-main {
    padding: 20px;
  }
  .xgw-p0__footer {
    padding: 26px 20px;
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .xgw-p0__footer a {
    width: fit-content;
  }
  .xgw-forum-return {
    width: calc(100% - 24px);
    margin-top: 12px;
  }
  .xgw-forum-shell__bar {
    align-items: flex-start;
    flex-direction: column;
  }
}
/* ==========================================================================
   28. 最新讨论页：与首页共用的工业编辑部页头
   ========================================================================== */
body.xgw-latest-page {
  background: linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px), var(--xgw-list-page, var(--xgw-paper-2));
  background-size: 24px 24px;
}

.xgw-latest-head,
.xgw-latest-head *,
.xgw-latest-head *::before,
.xgw-latest-head *::after {
  box-sizing: border-box;
}

.xgw-latest-head {
  position: relative;
  width: min(1200px, 100% - 32px);
  margin: 24px auto 28px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 7px 7px 0 var(--xgw-ink);
}

.xgw-latest-head__utility {
  min-height: 46px;
  padding: 9px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.11em;
}

.xgw-latest-head__utility a {
  padding: 5px 7px;
  color: var(--xgw-ink);
  background: var(--xgw-primary);
  border: 1px solid var(--xgw-paper);
  text-decoration: none;
}

.xgw-latest-head__utility a:hover {
  background: var(--xgw-paper);
}

.xgw-latest-head__body {
  position: relative;
  min-height: 190px;
  padding: 34px 38px;
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  background: linear-gradient(rgba(0, 0, 0, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.045) 1px, transparent 1px), #fbfaf6;
  background-size: 26px 26px;
}

.xgw-latest-head__body::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 68px;
  height: 68px;
  background: var(--xgw-primary);
  border-left: var(--xgw-border-w) solid var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-latest-head__index {
  position: relative;
  z-index: 1;
  width: fit-content;
  padding: 9px 11px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 4px 4px 0 var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-latest-head h1 {
  margin: 0;
  color: var(--xgw-ink);
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(40px, 5vw, 62px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.06em;
}

.xgw-latest-head__body p {
  max-width: 620px;
  margin: 16px 0 0;
  color: var(--xgw-muted);
  font-size: 13px;
  line-height: 1.7;
}

.xgw-latest-head__all {
  position: relative;
  z-index: 1;
  margin-right: 52px;
  padding: 10px 13px;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition), background var(--xgw-transition);
}

.xgw-latest-head__all:hover {
  color: var(--xgw-ink);
  background: var(--xgw-tint);
  transform: translate(-2px, -2px);
  box-shadow: var(--xgw-shadow);
}

.xgw-latest-head a:focus-visible {
  outline: 3px solid var(--xgw-accent);
  outline-offset: 3px;
}

body.xgw-latest-page .topic-list-container,
body.xgw-latest-page .topic-list {
  width: 100%;
}

@media (max-width: 768px) {
  .xgw-latest-head {
    width: calc(100% - 20px);
    margin: 10px auto 24px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-latest-head__utility {
    min-height: 42px;
    padding: 8px 10px;
    font-size: 8px;
  }
  .xgw-latest-head__body {
    min-height: 0;
    padding: 30px 20px 26px;
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .xgw-latest-head__body::after {
    width: 42px;
    height: 42px;
  }
  .xgw-latest-head h1 {
    font-size: 44px;
  }
  .xgw-latest-head__body p {
    margin-top: 12px;
    padding-right: 18px;
    font-size: 12px;
  }
  .xgw-latest-head__all {
    width: fit-content;
    margin-right: 0;
  }
}
/* ==========================================================================
   29. AI 光学设计实验室：版主介绍 × DeepO × 论坛入口
   ========================================================================== */
:root {
  --xgw-ai: #23e0cf;
  --xgw-ai-deep: #007f77;
  --xgw-ai-soft: #dffffb;
}

/* P0 合作窗口从预告升级为正式入口。 */
.xgw-p0__project--collab .xgw-p0__project-no {
  background: var(--xgw-ai);
}

.xgw-p0__project--collab .xgw-p0__project-status {
  background: var(--xgw-ai-soft);
}

.xgw-p0__project-meta {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.xgw-p0__project-meta span {
  padding: 3px 6px;
  color: var(--xgw-ink);
  background: var(--xgw-ai-soft);
  border: 1px solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.xgw-p0__project-actions {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}

.xgw-p0__project-actions a {
  color: var(--xgw-ink);
  font-size: 10px;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.xgw-p0__project-actions .xgw-p0__project-link {
  padding: 7px 9px;
  background: var(--xgw-ai);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 2px 2px 0 var(--xgw-ink);
  text-decoration: none;
}

.xgw-p0__project-actions .xgw-p0__project-link:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

/* 光学技术目录中的全宽特色入口。 */
.xgw-ai-directory-card {
  min-height: 146px;
  padding: 0;
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 100px minmax(310px, 1fr) minmax(220px, 0.75fr) 130px;
  align-items: stretch;
  overflow: hidden;
  color: var(--xgw-ink);
  background: linear-gradient(rgba(0, 0, 0, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.045) 1px, transparent 1px), var(--xgw-ai-soft);
  background-size: 20px 20px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  text-decoration: none;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-ai-directory-card:hover {
  color: var(--xgw-ink);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--xgw-ink);
}

.xgw-ai-directory-card__index {
  padding: 22px 12px;
  display: flex;
  justify-content: center;
  background: var(--xgw-ai);
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  writing-mode: vertical-rl;
}

.xgw-ai-directory-card__title {
  padding: 22px 26px;
}

.xgw-ai-directory-card__title small {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.xgw-ai-directory-card__title strong {
  margin-top: 8px;
  display: block;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.1;
  letter-spacing: -0.045em;
}

.xgw-ai-directory-card__title p {
  margin: 10px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.55;
}

.xgw-ai-directory-card__route {
  position: relative;
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
  border-left: 1px dashed var(--xgw-ink);
  border-right: 1px dashed var(--xgw-ink);
}

.xgw-ai-directory-card__route::before,
.xgw-ai-directory-card__route::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--xgw-ink);
}

.xgw-ai-directory-card__route::before {
  top: calc(50% - 6px);
  transform: rotate(-3deg);
}

.xgw-ai-directory-card__route::after {
  top: calc(50% + 6px);
  transform: rotate(3deg);
}

.xgw-ai-directory-card__route i {
  position: relative;
  z-index: 1;
  width: 10px;
  height: 48px;
  display: block;
  border: 2px solid var(--xgw-ink);
  border-radius: 50%;
  background: var(--xgw-paper);
}

.xgw-ai-directory-card__route b {
  position: relative;
  z-index: 2;
  width: 7px;
  height: 7px;
  display: block;
  background: var(--xgw-primary);
  border: 1px solid var(--xgw-ink);
  transform: rotate(45deg);
}

.xgw-ai-directory-card__action {
  padding: 20px 14px;
  display: grid;
  place-items: center;
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}

/* 独立专区沿用论坛新粗野主义骨架，局部切换为实验仪器语汇。 */
body.xgw-ai-optics-page {
  background: linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px), #e7e8e4;
  background-size: 24px 24px;
}

.xgw-ai-lab,
.xgw-ai-lab *,
.xgw-ai-lab *::before,
.xgw-ai-lab *::after {
  box-sizing: border-box;
}

.xgw-ai-lab {
  --xgw-ai-serif: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  position: relative;
  left: 50%;
  width: min(1200px, 100%);
  margin: 24px 0 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
  transform: translateX(-50%);
}

.xgw-ai-lab a {
  color: inherit;
}

.xgw-ai-lab a:focus-visible {
  outline: 3px solid var(--xgw-primary);
  outline-offset: 3px;
}

.xgw-ai-lab__bar {
  min-height: 48px;
  padding: 9px 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-ai-lab__bar a {
  width: fit-content;
  text-decoration: none;
}

.xgw-ai-lab__bar > span {
  font-size: 11px;
  text-align: center;
}

.xgw-ai-lab__bar b {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.xgw-ai-lab__bar b i {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 50%;
  background: var(--xgw-ai);
  box-shadow: 0 0 0 4px rgba(35, 224, 207, 0.18);
  animation: xgw-ai-pulse 1.8s ease-in-out infinite;
}

@keyframes xgw-ai-pulse {
  50% {
    box-shadow: 0 0 0 8px rgba(35, 224, 207, 0);
  }
}
.xgw-ai-lab__hero {
  min-height: 550px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(400px, 0.95fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__hero-copy {
  padding: clamp(52px, 7vw, 92px) clamp(30px, 6vw, 76px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: radial-gradient(circle at 88% 14%, rgba(35, 224, 207, 0.25) 0 6px, transparent 7px), linear-gradient(135deg, transparent 0 70%, rgba(35, 224, 207, 0.1) 70% 100%), var(--xgw-paper);
}

.xgw-ai-lab__eyebrow,
.xgw-ai-lab__section-label {
  margin: 0;
  color: var(--xgw-ai-deep);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.xgw-ai-lab__hero h1 {
  max-width: 660px;
  margin: 24px 0 0;
  font-family: var(--xgw-ai-serif);
  font-size: clamp(54px, 7.1vw, 92px);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.075em;
}

.xgw-ai-lab__hero h1 span {
  margin-bottom: 8px;
  display: block;
  color: var(--xgw-ink);
  font-size: 0.72em;
  line-height: 1.18;
  letter-spacing: -0.055em;
  text-shadow: 3px 3px 0 var(--xgw-ai);
}

.xgw-ai-lab__hero h1 em {
  display: block;
  font-style: normal;
  white-space: nowrap;
}

.xgw-ai-lab__lead {
  max-width: 620px;
  margin: 30px 0 0;
  color: #343434;
  font-size: 14px;
  line-height: 1.9;
}

.xgw-ai-lab__hero-actions {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.xgw-ai-lab__button {
  width: fit-content;
  padding: 11px 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--xgw-ai);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-ai-lab__button:hover {
  color: var(--xgw-ink);
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 var(--xgw-ink);
}

.xgw-ai-lab a.xgw-ai-lab__button--dark {
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ai);
}

.xgw-ai-lab a.xgw-ai-lab__button--dark:hover {
  color: var(--xgw-paper);
  box-shadow: 5px 5px 0 var(--xgw-ai);
}

.xgw-ai-lab__instrument {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  color: var(--xgw-paper);
  background: linear-gradient(rgba(35, 224, 207, 0.075) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 224, 207, 0.075) 1px, transparent 1px), #0c1212;
  background-size: 22px 22px;
  border-left: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__instrument-head,
.xgw-ai-lab__instrument-foot {
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: rgba(255, 255, 255, 0.62);
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-ai-lab__instrument-head b {
  color: var(--xgw-ai);
}

.xgw-ai-lab__instrument-foot {
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  border-bottom: 0;
}

.xgw-ai-lab__beam {
  position: relative;
  min-height: 420px;
  overflow: hidden;
}

.xgw-ai-lab__beam-line,
.xgw-ai-lab__beam-line::before,
.xgw-ai-lab__beam-line::after {
  content: "";
  position: absolute;
  left: 9%;
  right: 8%;
  top: 50%;
  height: 2px;
  display: block;
  background: var(--xgw-ai);
  transform-origin: 70% 50%;
  box-shadow: 0 0 12px rgba(35, 224, 207, 0.7);
}

.xgw-ai-lab__beam-line::before {
  left: 0;
  right: 0;
  top: -35px;
  transform: rotate(8deg);
}

.xgw-ai-lab__beam-line::after {
  left: 0;
  right: 0;
  top: 35px;
  transform: rotate(-8deg);
}

.xgw-ai-lab__beam-source,
.xgw-ai-lab__sensor {
  position: absolute;
  top: calc(50% - 48px);
  width: 10px;
  height: 96px;
  display: block;
  background: var(--xgw-primary);
  border: 2px solid var(--xgw-paper);
}

.xgw-ai-lab__beam-source {
  left: 8%;
}

.xgw-ai-lab__sensor {
  right: 8%;
  background: var(--xgw-ai);
}

.xgw-ai-lab__lens {
  position: absolute;
  top: calc(50% - 112px);
  width: 44px;
  height: 224px;
  display: block;
  border: 3px solid var(--xgw-paper);
  border-radius: 50%;
  background: rgba(35, 224, 207, 0.12);
  box-shadow: inset 0 0 24px rgba(35, 224, 207, 0.2);
}

.xgw-ai-lab__lens--one {
  left: 36%;
}

.xgw-ai-lab__lens--two {
  left: 53%;
  width: 30px;
  transform: scaleX(-1);
}

.xgw-ai-lab__node {
  position: absolute;
  bottom: 17%;
  color: rgba(255, 255, 255, 0.62);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  letter-spacing: 0.08em;
}

.xgw-ai-lab__node--source {
  left: 5%;
}

.xgw-ai-lab__node--optics {
  left: 41%;
}

.xgw-ai-lab__node--sensor {
  right: 4%;
}

.xgw-ai-lab__node--ai {
  right: 8%;
  bottom: 9%;
  color: var(--xgw-ai);
}

.xgw-ai-lab__proof {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__proof div {
  min-height: 102px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--xgw-ink);
}

.xgw-ai-lab__proof div:last-child {
  border-right: 0;
}

.xgw-ai-lab__proof small {
  color: var(--xgw-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-ai-lab__proof strong {
  font-family: var(--xgw-ai-serif);
  font-size: clamp(17px, 2vw, 23px);
  line-height: 1.15;
}

.xgw-ai-lab__curator {
  padding: clamp(52px, 7vw, 86px) clamp(28px, 6vw, 72px);
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(42px, 7vw, 96px);
  align-items: center;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__portrait {
  position: relative;
  margin: 0;
  min-height: 420px;
  display: grid;
  grid-template-rows: 1fr auto;
  overflow: hidden;
  background: var(--xgw-ai-soft);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 7px 7px 0 var(--xgw-ai);
}

.xgw-ai-lab__portrait::after {
  content: "RESIDENT / 01";
  position: absolute;
  top: 14px;
  right: -34px;
  width: 140px;
  padding: 5px;
  background: var(--xgw-primary);
  border-block: 1px solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 900;
  text-align: center;
  transform: rotate(45deg);
}

.xgw-ai-lab__portrait img {
  width: 100%;
  height: 350px;
  display: block;
  object-fit: cover;
  filter: none;
}

.xgw-ai-lab__portrait figcaption {
  padding: 15px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--xgw-paper);
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__portrait figcaption span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-ai-lab__portrait figcaption b {
  font-size: 11px;
}

.xgw-ai-lab__curator-copy h2,
.xgw-ai-lab__route h2,
.xgw-ai-lab__community h2 {
  margin: 16px 0 0;
  font-family: var(--xgw-ai-serif);
  font-size: clamp(38px, 5vw, 62px);
  line-height: 1.05;
  letter-spacing: -0.055em;
}

.xgw-ai-lab__curator-role {
  margin: 16px 0 26px !important;
  padding-bottom: 18px;
  color: var(--xgw-ai-deep) !important;
  border-bottom: 1px solid var(--xgw-ink);
  font-weight: 900;
}

.xgw-ai-lab__curator-copy > p:not(.xgw-ai-lab__section-label) {
  max-width: 680px;
  margin: 0 0 14px;
  color: #3f3f3f;
  font-size: 13px;
  line-height: 1.9;
}

.xgw-ai-lab__chips {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.xgw-ai-lab__chips span {
  padding: 5px 8px;
  background: var(--xgw-ai-soft);
  border: 1px solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 800;
}

.xgw-ai-lab__text-link {
  margin-top: 24px;
  width: fit-content;
  display: block;
  font-size: 11px;
  font-weight: 900;
  text-underline-offset: 4px;
}

.xgw-ai-lab__route {
  padding: clamp(52px, 7vw, 82px) clamp(28px, 6vw, 72px);
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__route .xgw-ai-lab__section-label {
  color: var(--xgw-ai);
}

.xgw-ai-lab__route h2 {
  max-width: 760px;
}

.xgw-ai-lab__route ol {
  margin: 48px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  border: 1px solid rgba(255, 255, 255, 0.46);
}

.xgw-ai-lab__route li {
  min-height: 220px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(255, 255, 255, 0.46);
}

.xgw-ai-lab__route li:last-child {
  border-right: 0;
}

.xgw-ai-lab__route li b {
  color: var(--xgw-ai);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
}

.xgw-ai-lab__route li strong {
  margin-top: auto;
  font-family: var(--xgw-ai-serif);
  font-size: 22px;
}

.xgw-ai-lab__route li span {
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 11px;
  line-height: 1.7;
}

.xgw-ai-lab__deepo {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1.18fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__deepo-copy {
  padding: clamp(52px, 7vw, 82px) clamp(28px, 6vw, 72px);
}

.xgw-ai-lab__deepo h2 {
  margin: 12px 0 0;
  font-family: var(--xgw-ai-serif);
  font-size: clamp(68px, 10vw, 128px);
  line-height: 0.85;
  letter-spacing: -0.08em;
}

.xgw-ai-lab__deepo-copy > strong {
  margin-top: 20px;
  display: block;
  color: var(--xgw-ai-deep);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
}

.xgw-ai-lab__deepo-copy > p {
  margin: 24px 0 0;
  color: #3f3f3f;
  font-size: 13px;
  line-height: 1.9;
}

.xgw-ai-lab__deepo-copy .xgw-ai-lab__button {
  margin-top: 28px;
}

.xgw-ai-lab__console {
  margin: clamp(34px, 5vw, 64px) clamp(28px, 5vw, 58px) clamp(34px, 5vw, 64px) 0;
  min-height: 470px;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  color: var(--xgw-paper);
  background: #101717;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ai);
}

.xgw-ai-lab__console-bar {
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  letter-spacing: 0.08em;
}

.xgw-ai-lab__console-bar b {
  color: var(--xgw-primary);
  letter-spacing: 0.25em;
}

.xgw-ai-lab__console-grid {
  display: grid;
  grid-template-columns: 84px 1fr;
}

.xgw-ai-lab__console-side {
  display: flex;
  flex-direction: column;
  background: #171f1f;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.xgw-ai-lab__console-side span {
  padding: 13px 10px;
  color: rgba(255, 255, 255, 0.45);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 7px;
  font-weight: 700;
}

.xgw-ai-lab__console-side .is-active {
  color: var(--xgw-ink);
  background: var(--xgw-ai);
}

.xgw-ai-lab__console-stage {
  position: relative;
  overflow: hidden;
  background: linear-gradient(rgba(35, 224, 207, 0.065) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 224, 207, 0.065) 1px, transparent 1px);
  background-size: 18px 18px;
}

.xgw-ai-lab__console-stage .ray {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 50%;
  height: 1px;
  display: block;
  background: var(--xgw-ai);
  transform-origin: center right;
  box-shadow: 0 0 7px rgba(35, 224, 207, 0.65);
}

.xgw-ai-lab__console-stage .ray--one {
  transform: rotate(0deg);
}

.xgw-ai-lab__console-stage .ray--two {
  transform: rotate(8deg);
}

.xgw-ai-lab__console-stage .ray--three {
  transform: rotate(-8deg);
}

.xgw-ai-lab__console-stage .glass {
  position: absolute;
  top: 24%;
  width: 20px;
  height: 52%;
  display: block;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  background: rgba(35, 224, 207, 0.1);
}

.xgw-ai-lab__console-stage .glass--one {
  left: 34%;
}

.xgw-ai-lab__console-stage .glass--two {
  left: 51%;
  width: 13px;
}

.xgw-ai-lab__console-stage .glass--three {
  left: 66%;
  width: 25px;
}

.xgw-ai-lab__console-stage small {
  position: absolute;
  right: 14px;
  bottom: 12px;
  padding: 4px 6px;
  color: var(--xgw-ai);
  background: rgba(0, 0, 0, 0.7);
  border: 1px solid rgba(35, 224, 207, 0.5);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
}

.xgw-ai-lab__community {
  padding: clamp(52px, 7vw, 86px) clamp(28px, 6vw, 72px);
  background: linear-gradient(135deg, rgba(35, 224, 207, 0.1) 25%, transparent 25%) -12px 0/24px 24px, var(--xgw-paper);
}

.xgw-ai-lab__community-head {
  max-width: 860px;
}

.xgw-ai-lab__community-grid {
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.xgw-ai-lab__community-grid article {
  min-height: 220px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow-sm);
}

.xgw-ai-lab__community-grid article:nth-child(2) {
  background: var(--xgw-ai-soft);
}

.xgw-ai-lab__community-grid article b {
  color: var(--xgw-ai-deep);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
}

.xgw-ai-lab__community-grid article h3 {
  margin: auto 0 10px;
  font-family: var(--xgw-ai-serif);
  font-size: 25px;
}

.xgw-ai-lab__community-grid article p {
  margin: 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.75;
}

.xgw-ai-lab__community-cta {
  margin-top: 24px;
  min-height: 104px;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-ai-lab__community-cta div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.xgw-ai-lab__community-cta span {
  color: var(--xgw-ai);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-ai-lab__community-cta strong {
  font-family: var(--xgw-ai-serif);
  font-size: 18px;
}

.xgw-ai-lab__community-cta a {
  padding: 10px 13px;
  flex: 0 0 auto;
  color: var(--xgw-ink);
  background: var(--xgw-ai);
  border: 1px solid var(--xgw-paper);
  box-shadow: 3px 3px 0 var(--xgw-paper);
  font-size: 10px;
  font-weight: 900;
  text-decoration: none;
}

@media (max-width: 900px) {
  .xgw-ai-directory-card {
    grid-template-columns: 72px minmax(0, 1fr) 112px;
  }
  .xgw-ai-directory-card__route {
    display: none;
  }
  .xgw-ai-lab__hero,
  .xgw-ai-lab__deepo {
    grid-template-columns: 1fr;
  }
  .xgw-ai-lab__instrument {
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
    border-left: 0;
  }
  .xgw-ai-lab__beam {
    min-height: 360px;
  }
  .xgw-ai-lab__proof,
  .xgw-ai-lab__route ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xgw-ai-lab__proof div:nth-child(2),
  .xgw-ai-lab__route li:nth-child(2) {
    border-right: 0;
  }
  .xgw-ai-lab__proof div:nth-child(-n+2),
  .xgw-ai-lab__route li:nth-child(-n+2) {
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-ai-lab__curator {
    grid-template-columns: minmax(230px, 0.75fr) minmax(0, 1.25fr);
    gap: 40px;
  }
  .xgw-ai-lab__route li {
    min-height: 190px;
  }
  .xgw-ai-lab__console {
    margin: 0 28px 48px;
  }
}
@media (max-width: 640px) {
  .xgw-ai-directory-card {
    min-height: 0;
    grid-template-columns: 46px minmax(0, 1fr);
  }
  .xgw-ai-directory-card__index {
    padding: 16px 8px;
  }
  .xgw-ai-directory-card__title {
    padding: 18px;
  }
  .xgw-ai-directory-card__title strong {
    font-size: 26px;
  }
  .xgw-ai-directory-card__action {
    padding: 11px;
    grid-column: 1/-1;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-ai-lab {
    width: calc(100vw - 20px);
    margin-top: 10px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-ai-lab__bar {
    grid-template-columns: 1fr auto;
    font-size: 7px;
  }
  .xgw-ai-lab__bar > span {
    display: none;
  }
  .xgw-ai-lab__hero-copy {
    padding: 48px 22px;
  }
  .xgw-ai-lab__hero h1 {
    font-size: clamp(36px, 11.25vw, 44px);
  }
  .xgw-ai-lab__lead {
    font-size: 13px;
  }
  .xgw-ai-lab__beam {
    min-height: 300px;
  }
  .xgw-ai-lab__lens {
    top: calc(50% - 80px);
    width: 30px;
    height: 160px;
  }
  .xgw-ai-lab__proof {
    grid-template-columns: 1fr;
  }
  .xgw-ai-lab__proof div,
  .xgw-ai-lab__proof div:nth-child(2) {
    min-height: 78px;
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-ai-lab__proof div:last-child {
    border-bottom: 0;
  }
  .xgw-ai-lab__curator {
    padding: 48px 22px;
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .xgw-ai-lab__portrait {
    min-height: 0;
  }
  .xgw-ai-lab__portrait img {
    height: auto;
    aspect-ratio: 1/1;
  }
  .xgw-ai-lab__curator-copy h2,
  .xgw-ai-lab__route h2,
  .xgw-ai-lab__community h2 {
    font-size: 38px;
  }
  .xgw-ai-lab__route,
  .xgw-ai-lab__deepo-copy,
  .xgw-ai-lab__community {
    padding: 48px 22px;
  }
  .xgw-ai-lab__route ol {
    grid-template-columns: 1fr;
  }
  .xgw-ai-lab__route li,
  .xgw-ai-lab__route li:nth-child(2) {
    min-height: 160px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.46);
  }
  .xgw-ai-lab__route li:last-child {
    border-bottom: 0;
  }
  .xgw-ai-lab__console {
    min-height: 360px;
    margin: 0 22px 48px;
    box-shadow: 5px 5px 0 var(--xgw-ai);
  }
  .xgw-ai-lab__console-grid {
    grid-template-columns: 62px 1fr;
  }
  .xgw-ai-lab__community-grid {
    grid-template-columns: 1fr;
  }
  .xgw-ai-lab__community-grid article {
    min-height: 180px;
  }
  .xgw-ai-lab__community-cta {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-ai-lab__community-cta a {
    text-align: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .xgw-ai-lab__bar b i {
    animation: none;
  }
}
/* === 33. 光学技术工坊、光电器件图谱与薪资数据库 === */
.xgw-tech-directory-card,
.xgw-salary-directory-card {
  grid-column: 1/-1;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  text-decoration: none;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-tech-directory-card:hover,
.xgw-salary-directory-card:hover {
  color: var(--xgw-ink);
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 var(--xgw-ink);
}

.xgw-tech-directory-card {
  min-height: 164px;
  display: grid;
  grid-template-columns: minmax(285px, 1.12fr) minmax(330px, 1fr) 150px;
  align-items: stretch;
  overflow: hidden;
  background: linear-gradient(rgba(0, 0, 0, 0.065) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.065) 1px, transparent 1px), #ecfffa;
  background-size: 18px 18px;
}

.xgw-tech-directory-card__head {
  padding: 22px 26px;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-tech-directory-card__head > span,
.xgw-salary-directory-card small {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-tech-directory-card__head strong,
.xgw-salary-directory-card strong {
  display: block;
  margin-top: 8px;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(25px, 3vw, 35px);
  line-height: 1.05;
  letter-spacing: -0.055em;
}

.xgw-tech-directory-card__head p,
.xgw-salary-directory-card p {
  margin: 10px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.55;
}

.xgw-tech-directory-card__paths {
  padding: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  align-content: center;
}

.xgw-tech-directory-card__paths span {
  padding: 7px 9px;
  border: 1px solid var(--xgw-ink);
  background: rgba(255, 255, 255, 0.8);
  font-size: 10px;
  font-weight: 800;
  text-align: center;
}

.xgw-tech-directory-card__paths span:last-child {
  grid-column: auto;
  background: #dff8ef;
}

.xgw-tech-directory-card > b,
.xgw-salary-directory-card > b {
  padding: 20px 14px;
  display: grid;
  place-items: center;
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}

.xgw-salary-directory-card {
  min-height: 138px;
  display: grid;
  grid-template-columns: 110px minmax(320px, 1fr) 155px;
  align-items: stretch;
  overflow: hidden;
  background: #fff6dd;
}

.xgw-salary-directory-card__stamp {
  padding: 16px;
  display: grid;
  place-items: center;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  writing-mode: vertical-rl;
}

.xgw-salary-directory-card > div {
  padding: 20px 26px;
}

body.xgw-optics-technology-page {
  background: linear-gradient(rgba(0, 0, 0, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.04) 1px, transparent 1px), #e9f0ed;
  background-size: 24px 24px;
}

.xgw-tech-hub,
.xgw-tech-hub *,
.xgw-tech-hub *::before,
.xgw-tech-hub *::after {
  box-sizing: border-box;
}

.xgw-tech-hub {
  position: relative;
  left: 50%;
  width: min(1200px, 100%);
  margin: 24px 0 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
  transform: translateX(-50%);
}

.xgw-tech-hub a {
  color: inherit;
}

.xgw-tech-hub__bar {
  min-height: 42px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-tech-hub__bar a {
  text-decoration: none;
}

.xgw-tech-hub__bar > span {
  color: #72f6df;
}

.xgw-tech-hub__bar b {
  justify-self: end;
  color: #ffcf5b;
}

.xgw-tech-hub__bar b i {
  width: 7px;
  height: 7px;
  display: inline-block;
  margin-right: 6px;
  background: #00d5ae;
  border: 1px solid var(--xgw-paper);
  animation: xgw-tech-pulse 1.4s steps(2, start) infinite;
}

@keyframes xgw-tech-pulse {
  50% {
    opacity: 0.25;
  }
}
.xgw-tech-hub__hero {
  min-height: 300px;
  padding: clamp(42px, 6vw, 78px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.65fr);
  gap: 48px;
  align-items: end;
  background: radial-gradient(circle at 84% 15%, rgba(0, 213, 174, 0.42), transparent 26%), linear-gradient(135deg, #fff 0%, #f3fffc 61%, #d8fff4 100%);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-tech-hub__hero p,
.xgw-tech-hub__hero-note span {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.xgw-tech-hub__hero h1 {
  margin: 18px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(48px, 7vw, 86px);
  line-height: 0.93;
  letter-spacing: -0.085em;
}

.xgw-tech-hub__hero h1 em {
  padding: 0 0.08em;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-style: normal;
}

.xgw-tech-hub__hero-note {
  padding: 18px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 4px 4px 0 #00d5ae;
  background: rgba(255, 255, 255, 0.88);
}

.xgw-tech-hub__hero-note p {
  margin: 12px 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0;
}

.xgw-tech-hub__hero-note small {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-tech-tabs {
  padding: 12px 16px;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: #d9ede6;
}

.xgw-tech-tabs button,
.xgw-device-tabs button,
.xgw-salary-tabs button {
  appearance: none;
  border: 1px solid var(--xgw-ink);
  border-radius: 0;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  cursor: pointer;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition), background var(--xgw-transition);
}

.xgw-tech-tabs button {
  min-width: max-content;
  padding: 8px 11px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  font-weight: 800;
}

.xgw-tech-tabs button b {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
}

.xgw-tech-tabs button.is-active {
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  box-shadow: 3px 3px 0 #00d5ae;
  transform: translate(-1px, -1px);
}

.xgw-tech-tabs button.is-active b {
  color: #72f6df;
}

.xgw-tech-tabs button:hover:not(.is-active), .xgw-device-tabs button:hover:not(.is-active), .xgw-salary-tabs button:hover:not(.is-active) {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

.xgw-tech-overview {
  padding: 28px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.xgw-tech-hub [hidden] {
  display: none !important;
}

.xgw-tech-path {
  min-height: 210px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  box-shadow: 4px 4px 0 var(--xgw-ink);
  cursor: pointer;
  text-align: left;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-tech-path:hover {
  transform: translate(-3px, -3px);
  box-shadow: 7px 7px 0 var(--xgw-ink);
}

.xgw-tech-path > span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-tech-path strong {
  margin-top: 18px;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(26px, 3.3vw, 38px);
  line-height: 1.04;
  letter-spacing: -0.06em;
}

.xgw-tech-path p {
  max-width: 31em;
  margin: 12px 0 auto;
  font-size: 12px;
  line-height: 1.6;
}

.xgw-tech-path i {
  margin-top: 16px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.xgw-tech-path--imaging {
  background: #fff2e7;
  box-shadow: 4px 4px 0 #ff6600;
}

.xgw-tech-path--machine-vision {
  background: #e8f8ff;
  box-shadow: 4px 4px 0 #1c9fe2;
}

.xgw-tech-path--display-xr {
  background: #f3eaff;
  box-shadow: 4px 4px 0 #8056dd;
}

.xgw-tech-path--lighting {
  background: #f5ffd8;
  box-shadow: 4px 4px 0 #a5cf27;
}

.xgw-tech-path--laser {
  background: #ffe9ed;
  box-shadow: 4px 4px 0 #d93963;
}

.xgw-tech-path--devices {
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  box-shadow: 4px 4px 0 #00d5ae;
}

.xgw-tech-path--devices > span, .xgw-tech-path--devices i {
  color: #72f6df;
}

.xgw-tech-products {
  grid-column: 1/-1;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 16px 24px;
  align-items: center;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: #f6f5ee;
}

.xgw-tech-products b {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.06em;
}

.xgw-tech-products div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.xgw-tech-products div span {
  padding: 5px 8px;
  border: 1px solid var(--xgw-ink);
  background: var(--xgw-paper);
  font-size: 10px;
  font-weight: 800;
}

.xgw-tech-products p {
  grid-column: 2;
  margin: 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.55;
}

.xgw-tech-detail {
  min-height: 500px;
  padding: clamp(34px, 5vw, 66px);
  background: #fff9ee;
}

.xgw-tech-detail--machine-vision {
  background: #eefaff;
}

.xgw-tech-detail--display-xr {
  background: #f7f0ff;
}

.xgw-tech-detail--lighting {
  background: #f8ffe9;
}

.xgw-tech-detail--laser {
  background: #fff0f2;
}

.xgw-tech-detail header {
  max-width: 760px;
}

.xgw-tech-detail header > span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-tech-detail h2 {
  margin: 16px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(40px, 5vw, 66px);
  line-height: 0.98;
  letter-spacing: -0.07em;
}

.xgw-tech-detail header p {
  margin: 17px 0 0;
  font-size: 15px;
  line-height: 1.7;
}

.xgw-tech-detail__topics {
  margin-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.xgw-tech-detail__topics span {
  padding: 7px 10px;
  border: 1px solid var(--xgw-ink);
  background: rgba(255, 255, 255, 0.85);
  font-size: 11px;
  font-weight: 800;
}

.xgw-tech-detail__route {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-tech-detail__route article {
  min-height: 178px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--xgw-ink);
}

.xgw-tech-detail__route article:last-child {
  border-right: 0;
}

.xgw-tech-detail__route article > b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.xgw-tech-detail__route small {
  margin-top: auto;
  color: var(--xgw-muted);
  font-size: 10px;
  font-weight: 800;
}

.xgw-tech-detail__route strong {
  margin-top: 7px;
  font-size: 16px;
  line-height: 1.38;
}

.xgw-tech-detail footer {
  margin-top: 26px;
  padding-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-tech-detail footer p {
  max-width: 620px;
  margin: 0;
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.6;
}

.xgw-tech-detail footer a {
  padding: 9px 12px;
  flex: 0 0 auto;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  background: var(--xgw-paper);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.xgw-device-atlas {
  padding: clamp(26px, 4vw, 50px);
  background: #10221e;
  color: var(--xgw-paper);
}

.xgw-device-atlas__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 0.46fr);
  gap: 40px;
  align-items: end;
}

.xgw-device-atlas__head p, .xgw-device-atlas__head aside b {
  margin: 0;
  color: #72f6df;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.xgw-device-atlas__head h2 {
  margin: 16px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(38px, 5vw, 64px);
  line-height: 0.97;
  letter-spacing: -0.075em;
}

.xgw-device-atlas__head aside {
  padding: 17px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background: rgba(255, 255, 255, 0.06);
}

.xgw-device-atlas__head aside span {
  display: inline-block;
  margin: 10px 4px 0 0;
  padding: 4px 7px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  font-size: 10px;
}

.xgw-device-tabs {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.xgw-device-tabs button {
  min-height: 94px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: var(--xgw-ink);
  background: #f4fff9;
  text-align: left;
}

.xgw-device-tabs button small {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-device-tabs button strong {
  margin-top: 8px;
  font-size: 22px;
}

.xgw-device-tabs button span {
  margin-top: auto;
  color: var(--xgw-muted);
  font-size: 10px;
}

.xgw-device-tabs button.is-active {
  color: var(--xgw-paper);
  background: #00a888;
  border-color: var(--xgw-paper);
  box-shadow: 4px 4px 0 #ffcf5b;
  transform: translate(-2px, -2px);
}

.xgw-device-tabs button.is-active small, .xgw-device-tabs button.is-active span {
  color: #eafff9;
}

.xgw-device-sheet {
  margin-top: 18px;
  color: var(--xgw-ink);
  background: #fdfbf3;
  border: var(--xgw-border-w) solid var(--xgw-paper);
  box-shadow: 6px 6px 0 #00d5ae;
}

.xgw-device-sheet > header {
  padding: 28px;
  display: grid;
  grid-template-columns: minmax(230px, 0.7fr) minmax(260px, 1fr) auto;
  gap: 26px;
  align-items: end;
  background: #e5fff7;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-device-sheet > header span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-device-sheet > header h3 {
  margin: 9px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(42px, 5vw, 66px);
  line-height: 0.86;
  letter-spacing: -0.08em;
}

.xgw-device-sheet > header div > b {
  display: block;
  margin-top: 10px;
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  letter-spacing: 0.08em;
}

.xgw-device-sheet > header p {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
}

.xgw-device-sheet > header > em {
  padding: 6px 8px;
  align-self: start;
  border: 1px solid var(--xgw-ink);
  background: #ffcf5b;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.xgw-device-sheet__keywords {
  padding: 12px 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  border-bottom: 1px solid var(--xgw-ink);
  background: #fff;
}

.xgw-device-sheet__keywords span, .xgw-device-apps span {
  padding: 4px 7px;
  border: 1px solid var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
}

.xgw-device-sheet__keywords span {
  background: #e6fff7;
}

.xgw-device-principle, .xgw-device-timeline {
  padding: 28px;
  border-bottom: 1px solid var(--xgw-ink);
}

.xgw-device-section-title {
  display: flex;
  gap: 9px;
  align-items: baseline;
}

.xgw-device-section-title > b {
  color: #fff;
  padding: 3px 6px;
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
}

.xgw-device-section-title > span {
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.xgw-device-section-title small {
  margin-left: auto;
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-device-principle ol {
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  border: 1px solid var(--xgw-ink);
}

.xgw-device-principle li {
  min-height: 95px;
  padding: 16px;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
  border-right: 1px solid var(--xgw-ink);
  background: #fff;
}

.xgw-device-principle li:last-child {
  border-right: 0;
}

.xgw-device-principle li b {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
}

.xgw-device-principle li span {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.55;
}

.xgw-device-apps {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.xgw-device-apps span {
  background: #ffcf5b;
}

.xgw-device-timeline {
  background: #f5fbf8;
}

.xgw-device-timeline ol {
  margin: 21px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
}

.xgw-device-timeline li {
  position: relative;
  min-height: 156px;
  padding: 24px 14px 10px;
  border-top: 2px solid var(--xgw-ink);
}

.xgw-device-timeline li::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 14px;
  width: 10px;
  height: 10px;
  background: #00a888;
  border: 1px solid var(--xgw-ink);
  transform: rotate(45deg);
}

.xgw-device-timeline time {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
}

.xgw-device-timeline li > b {
  display: inline-block;
  margin-top: 9px;
  padding: 3px 5px;
  background: var(--xgw-ink);
  color: var(--xgw-paper);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  letter-spacing: 0.08em;
}

.xgw-device-timeline p {
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.6;
}

.xgw-device-radar-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.xgw-device-radar-grid article {
  min-height: 238px;
  padding: 28px;
  border-right: 1px solid var(--xgw-ink);
}

.xgw-device-radar-grid article:last-child {
  border-right: 0;
  background: #fff4d9;
}

.xgw-device-radar-grid strong {
  display: block;
  margin-top: 28px;
  font-size: 16px;
  line-height: 1.45;
}

.xgw-device-radar-grid p {
  margin: 11px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.65;
}

.xgw-device-status {
  display: inline-block;
  margin-top: 22px;
  padding: 5px 7px;
  border: 1px solid var(--xgw-ink);
  background: #e6fff7;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.07em;
}

.xgw-device-status--live {
  background: #ffcf5b;
}

body.xgw-salary-page {
  background: linear-gradient(rgba(255, 102, 0, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 102, 0, 0.055) 1px, transparent 1px), #f4efe5;
  background-size: 24px 24px;
}

.xgw-salary-lab,
.xgw-salary-lab *,
.xgw-salary-lab *::before,
.xgw-salary-lab *::after {
  box-sizing: border-box;
}

.xgw-salary-lab {
  position: relative;
  left: 50%;
  width: min(1200px, 100%);
  margin: 24px 0 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
  transform: translateX(-50%);
}

.xgw-salary-lab a {
  color: inherit;
}

.xgw-salary-lab [hidden] {
  display: none !important;
}

.xgw-salary-lab__bar {
  min-height: 42px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.xgw-salary-lab__bar a {
  text-decoration: none;
}

.xgw-salary-lab__bar > span {
  color: #ffcf5b;
}

.xgw-salary-lab__bar > b {
  justify-self: end;
  color: #b8ffec;
}

.xgw-salary-lab__hero {
  min-height: 314px;
  padding: clamp(42px, 6vw, 76px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.62fr);
  gap: 48px;
  align-items: end;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: radial-gradient(circle at 82% 18%, rgba(255, 181, 53, 0.55), transparent 25%), linear-gradient(135deg, #fffdf6 0%, #fff0c8 100%);
}

.xgw-salary-lab__hero-copy > p:first-child, .xgw-salary-lab__hero aside > span {
  margin: 0;
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.xgw-salary-lab__hero h1 {
  margin: 18px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(50px, 7vw, 88px);
  line-height: 0.9;
  letter-spacing: -0.09em;
}

.xgw-salary-lab__hero h1 em {
  color: var(--xgw-primary);
  font-style: normal;
}

.xgw-salary-lab__hero-copy > p:last-child {
  max-width: 37em;
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 1.7;
}

.xgw-salary-lab__hero aside {
  padding: 18px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 4px 4px 0 var(--xgw-primary);
  background: rgba(255, 255, 255, 0.86);
}

.xgw-salary-lab__hero aside > strong {
  display: block;
  margin-top: 12px;
  font-size: 17px;
  line-height: 1.35;
}

.xgw-salary-lab__hero aside p {
  margin: 11px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.6;
}

.xgw-salary-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-salary-metrics article {
  min-height: 118px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--xgw-ink);
}

.xgw-salary-metrics article:last-child {
  border-right: 0;
}

.xgw-salary-metrics small {
  color: var(--xgw-muted);
  font-size: 10px;
  font-weight: 800;
}

.xgw-salary-metrics strong {
  margin-top: auto;
  color: var(--xgw-primary);
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: 42px;
  line-height: 0.9;
  letter-spacing: -0.08em;
}

.xgw-salary-metrics span {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 700;
}

.xgw-salary-tabs {
  padding: 12px 16px;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: #fff1c8;
}

.xgw-salary-tabs button {
  min-width: max-content;
  padding: 8px 11px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  font-weight: 800;
}

.xgw-salary-tabs button b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
}

.xgw-salary-tabs button.is-active {
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-primary);
  transform: translate(-1px, -1px);
}

.xgw-salary-tabs button.is-active b {
  color: #ffcf5b;
}

.xgw-salary-overview, .xgw-salary-method, .xgw-salary-report {
  padding: clamp(28px, 5vw, 58px);
}

.xgw-salary-overview > header {
  max-width: 690px;
}

.xgw-salary-overview > header > span, .xgw-salary-method > header > span, .xgw-salary-report header span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-salary-overview h2, .xgw-salary-method h2, .xgw-salary-report h2 {
  margin: 13px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(37px, 5vw, 62px);
  line-height: 0.98;
  letter-spacing: -0.075em;
}

.xgw-salary-overview > header p {
  margin: 17px 0 0;
  font-size: 14px;
  line-height: 1.7;
}

.xgw-salary-dimensions {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-salary-dimensions article {
  min-height: 166px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--xgw-ink);
}

.xgw-salary-dimensions article:last-child {
  border-right: 0;
}

.xgw-salary-dimensions b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.xgw-salary-dimensions strong {
  margin-top: auto;
  font-size: 16px;
}

.xgw-salary-dimensions span {
  margin-top: 8px;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.55;
}

.xgw-salary-source-map {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.xgw-salary-source-map article {
  min-height: 126px;
  padding: 17px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  background: #fff8e8;
}

.xgw-salary-source-map small {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-salary-source-map strong {
  display: block;
  margin-top: 10px;
  font-size: 17px;
}

.xgw-salary-source-map p {
  margin: 8px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.5;
}

.xgw-salary-inline-action {
  margin-top: 28px;
  padding: 11px 14px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 4px 4px 0 var(--xgw-primary);
  color: var(--xgw-ink);
  background: #ffcf5b;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.xgw-salary-inline-action:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--xgw-primary);
}

.xgw-salary-report header {
  margin-bottom: 18px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.xgw-salary-report header a, .xgw-salary-method__actions a {
  padding: 9px 11px;
  flex: 0 0 auto;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  background: #fff4d9;
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.xgw-salary-report__frame {
  aspect-ratio: 16/9;
  min-height: 560px;
  overflow: hidden;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: #f4f4f4;
  box-shadow: 5px 5px 0 var(--xgw-ink);
}

.xgw-salary-report__frame iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.xgw-salary-report__fallback {
  margin: 20px 0 0;
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.6;
}

.xgw-salary-report__fallback a {
  color: var(--xgw-ink);
  font-weight: 900;
}

.xgw-salary-method {
  background: #fff8ea;
}

.xgw-salary-method > header {
  max-width: 760px;
}

.xgw-salary-method ol {
  margin: 32px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-salary-method li {
  min-height: 136px;
  padding: 19px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  border-right: 1px solid var(--xgw-ink);
  border-bottom: 1px solid var(--xgw-ink);
}

.xgw-salary-method li:nth-child(2n) {
  border-right: 0;
}

.xgw-salary-method li:nth-last-child(-n+2) {
  border-bottom: 0;
}

.xgw-salary-method li > b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}

.xgw-salary-method li strong {
  font-size: 16px;
}

.xgw-salary-method li p {
  margin: 7px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.6;
}

.xgw-salary-method aside {
  margin-top: 18px;
  padding: 18px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: #ffcf5b;
}

.xgw-salary-method aside strong {
  font-size: 15px;
}

.xgw-salary-method aside p {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.6;
}

.xgw-salary-method__actions {
  margin-top: 25px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* 珍贵数据的登录门槛：保持编辑部式白灰界面，只用一枚小锁说明状态。 */
.xgw-access-gate {
  max-width: 680px;
  margin: 0 auto;
  padding: clamp(34px, 6vw, 64px) clamp(22px, 5vw, 52px);
  border: 1px solid #d6d8d5;
  border-radius: 14px;
  background: #f8f8f6;
  box-shadow: none;
  text-align: center;
}

.xgw-access-gate__lock {
  width: 44px;
  height: 44px;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  border: 1px solid #d6d8d5;
  border-radius: 50%;
  background: #fff;
  color: #555b57;
}

.xgw-access-gate__lock svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.xgw-access-gate small {
  display: block;
  color: #6c706d;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.xgw-access-gate h2 {
  margin: 14px 0 0;
  color: #272a28;
  font-size: clamp(30px, 4.5vw, 48px);
  letter-spacing: -0.055em;
}

.xgw-access-gate p {
  max-width: 35em;
  margin: 18px auto 0;
  color: #666b68;
  font-size: 13px;
  line-height: 1.75;
}

.xgw-access-gate button,
.xgw-salary-method__actions button {
  appearance: none;
  min-height: 44px;
  margin-top: 24px;
  padding: 10px 15px;
  border: 1px solid #b9bdb9;
  border-radius: 8px;
  color: #252826;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.xgw-salary-method__actions button {
  margin-top: 0;
}

.xgw-access-gate button:hover,
.xgw-salary-method__actions button:hover {
  border-color: #8d928e;
  background: #f1f2ef;
}

.xgw-access-gate button:focus-visible,
.xgw-salary-method__actions button:focus-visible {
  outline: 2px solid var(--xgw-primary);
  outline-offset: 3px;
}

.xgw-access-gate em {
  margin-top: 16px;
  display: block;
  color: #7b807c;
  font-size: 10px;
  font-style: normal;
  line-height: 1.6;
}

@media (max-width: 600px) {
  .xgw-access-gate {
    padding: 30px 18px;
    border-radius: 10px;
  }
  .xgw-access-gate__lock {
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
  }
  .xgw-access-gate h2 {
    font-size: 26px;
    line-height: 1.15;
    letter-spacing: -0.04em;
  }
  .xgw-access-gate p {
    font-size: 13px;
  }
  .xgw-access-gate button,
  .xgw-salary-method__actions button {
    min-height: 44px;
  }
}
/* ==========================================================================
   38. 第二轮收敛：两屏个人首页、单入口图谱、安静讨论页
   ========================================================================== */
body.xgw-pure-home.xgw-p0-home .xgw-p0__hero,
body.xgw-pure-home.xgw-p0-home .xgw-p0__brief {
  min-height: min(760px, 100svh - 76px);
}

.xgw-p0__brief {
  padding: clamp(52px, 7vw, 94px) clamp(24px, 5vw, 72px);
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.18fr);
  gap: clamp(42px, 7vw, 96px);
  align-items: center;
  border-top: 1px solid #dbe2e8;
  background: #f7f9fb;
}

.xgw-p0__brief-copy > span,
.xgw-p0__brief-links small {
  color: #708090;
  font: 750 10px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.12em;
}

.xgw-p0__brief-copy h2 {
  max-width: 620px;
  margin: 18px 0 22px;
  color: #202d3a;
  font-size: clamp(34px, 4.6vw, 62px);
  font-weight: 760;
  line-height: 1.14;
  letter-spacing: -0.045em;
}

.xgw-p0__brief-copy h2 span {
  color: #315b7d;
}

.xgw-p0__brief-copy > p {
  max-width: 560px;
  margin: 0;
  color: #647181;
  font-size: 15px;
  line-height: 1.85;
}

.xgw-p0__brief-copy ul {
  margin: 34px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
}

.xgw-p0__brief-copy li {
  padding: 0 14px;
  border-left: 1px solid #d7e0e7;
}

.xgw-p0__brief-copy li:first-child {
  padding-left: 0;
  border-left: 0;
}

.xgw-p0__brief-copy li b,
.xgw-p0__brief-copy li span {
  display: block;
}

.xgw-p0__brief-copy li b {
  color: #243342;
  font-size: 13px;
}

.xgw-p0__brief-copy li span {
  margin-top: 5px;
  color: #7a8793;
  font-size: 11px;
  line-height: 1.5;
}

.xgw-p0__brief-links {
  display: grid;
  gap: 12px;
}

.xgw-p0__brief-links > a {
  min-height: 126px;
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid #d6dee5;
  border-radius: 14px;
  color: #202d3a;
  background: #fff;
  text-decoration: none;
  box-shadow: 0 7px 24px rgba(35, 55, 72, 0.045);
  transition: border-color 0.16s ease, transform 0.16s ease;
}

.xgw-p0__brief-links > a:hover,
.xgw-p0__brief-links > a:focus-visible {
  border-color: #91a6b7;
  transform: translateY(-1px);
}

.xgw-p0__brief-links strong {
  margin-top: 8px;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.35;
}

.xgw-p0__brief-links a > span {
  margin-top: 8px;
  color: #5f7080;
  font-size: 12px;
}

.xgw-industry-directory-card {
  grid-template-columns: minmax(285px, 1.12fr) minmax(280px, 0.9fr) minmax(190px, 0.48fr);
}

.xgw-industry-directory-card__actions {
  gap: 10px;
}

.xgw-industry-directory-card__actions .xgw-industry-directory-card__protected {
  min-height: 54px;
  border-radius: 10px;
  font-size: 12px;
}

body.xgw-topic-page #main-outlet {
  border-color: #e1e7ec;
  border-radius: 13px;
  overflow: hidden;
}

body.xgw-topic-page #topic-title {
  padding: 26px 30px 22px;
  border-bottom-color: #e9eef2;
}

body.xgw-topic-page .topic-post {
  border-bottom-color: #edf1f4;
}

body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
  grid-template-columns: 92px minmax(0, 1fr);
}

body.xgw-topic-page .topic-avatar {
  padding: 44px 20px 22px;
  border-right: 0;
  background: #edf5fa;
}

body.xgw-topic-page .topic-avatar .avatar {
  border-color: #cbdce9;
}

body.xgw-topic-page .topic-meta-data {
  padding: 15px 24px 8px;
  border-bottom: 0;
}

body.xgw-topic-page .topic-body .cooked {
  padding-top: 14px;
}

body.xgw-topic-page .topic-post .post-menu-area,
body.xgw-topic-page .topic-post .post-actions,
body.xgw-topic-page .topic-post nav.post-controls {
  border-top: 0;
}

body.xgw-topic-page #reply-control .composer-container {
  min-height: 430px;
  border: 1px solid #d8e1e8;
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  box-shadow: 0 -10px 32px rgba(32, 45, 58, 0.1);
}

body.xgw-topic-page #reply-control .d-editor-textarea-wrapper {
  min-height: 220px;
  border-radius: 8px;
}

body.xgw-topic-page #reply-control textarea.d-editor-input {
  min-height: 190px;
  line-height: 1.75;
}

@media (max-width: 820px) {
  body.xgw-pure-home.xgw-p0-home .xgw-p0__hero,
  body.xgw-pure-home.xgw-p0-home .xgw-p0__brief {
    min-height: auto;
  }
  .xgw-p0__brief {
    grid-template-columns: 1fr;
    gap: 36px;
    padding: 48px 22px;
  }
  .xgw-p0__brief-copy ul {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .xgw-p0__brief-copy li,
  .xgw-p0__brief-copy li:first-child {
    padding: 0 0 0 13px;
    border-left: 2px solid #cedbe5;
  }
  .xgw-p0__brief-links > a {
    min-height: 108px;
    padding: 20px;
  }
}
@media (max-width: 760px) {
  body.xgw-topic-page #main-outlet {
    border-radius: 0;
  }
  body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
    grid-template-columns: 48px minmax(0, 1fr);
  }
  body.xgw-topic-page .topic-avatar {
    padding: 14px 7px 18px;
    background: #f0f6fa;
  }
  body.xgw-topic-page .topic-meta-data {
    padding: 13px 44px 6px 12px;
  }
  body.xgw-topic-page .topic-body .cooked {
    padding: 12px 12px 10px;
  }
  body.xgw-topic-page #reply-control .composer-container {
    min-height: min(70svh, 540px);
    border-right: 0;
    border-left: 0;
    border-radius: 12px 12px 0 0;
  }
  body.xgw-topic-page #reply-control .d-editor-textarea-wrapper {
    min-height: 180px;
  }
}
@media (min-width: 821px) and (max-width: 1080px) {
  .xgw-tech-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 820px) {
  .xgw-tech-directory-card {
    grid-template-columns: 1fr;
  }
  .xgw-tech-directory-card__head {
    border-right: 0;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-tech-directory-card__paths {
    grid-template-columns: 1fr 1fr;
  }
  .xgw-tech-directory-card > b {
    padding: 12px;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-salary-directory-card {
    grid-template-columns: 70px 1fr;
  }
  .xgw-salary-directory-card > b {
    grid-column: 1/-1;
    padding: 12px;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-salary-directory-card > div {
    padding: 18px;
  }
  .xgw-salary-directory-card__stamp {
    padding: 10px;
  }
  .xgw-tech-hub, .xgw-salary-lab {
    width: calc(100vw - 20px);
    margin-top: 10px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-tech-hub__bar, .xgw-salary-lab__bar {
    grid-template-columns: 1fr auto;
    font-size: 7px;
  }
  .xgw-tech-hub__bar > span, .xgw-salary-lab__bar > span {
    display: none;
  }
  .xgw-tech-hub__hero, .xgw-salary-lab__hero {
    padding: 45px 22px;
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .xgw-tech-hub__hero h1, .xgw-salary-lab__hero h1 {
    font-size: clamp(43px, 12vw, 59px);
  }
  .xgw-tech-tabs, .xgw-salary-tabs {
    padding: 10px;
  }
  .xgw-tech-overview {
    padding: 18px;
    grid-template-columns: 1fr;
  }
  .xgw-tech-path {
    min-height: 184px;
  }
  .xgw-tech-products {
    grid-template-columns: 1fr;
  }
  .xgw-tech-products p {
    grid-column: 1;
  }
  .xgw-tech-detail {
    padding: 38px 22px;
  }
  .xgw-tech-detail__route {
    grid-template-columns: 1fr;
  }
  .xgw-tech-detail__route article {
    min-height: 120px;
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-tech-detail__route article:last-child {
    border-bottom: 0;
  }
  .xgw-tech-detail footer {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-tech-detail footer a {
    text-align: center;
  }
  .xgw-device-atlas {
    padding: 36px 18px;
  }
  .xgw-device-atlas__head {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .xgw-device-tabs {
    display: flex;
    overflow-x: auto;
  }
  .xgw-device-tabs button {
    min-width: 162px;
    flex: 0 0 162px;
  }
  .xgw-device-sheet > header {
    padding: 22px;
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .xgw-device-sheet > header > em {
    justify-self: start;
  }
  .xgw-device-sheet__keywords, .xgw-device-principle, .xgw-device-timeline {
    padding: 20px;
  }
  .xgw-device-principle ol {
    grid-template-columns: 1fr;
  }
  .xgw-device-principle li {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-device-principle li:last-child {
    border-bottom: 0;
  }
  .xgw-device-timeline ol {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .xgw-device-timeline li {
    min-height: 110px;
  }
  .xgw-device-radar-grid {
    grid-template-columns: 1fr;
  }
  .xgw-device-radar-grid article {
    min-height: 200px;
    padding: 20px;
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-device-radar-grid article:last-child {
    border-bottom: 0;
  }
  .xgw-salary-metrics {
    grid-template-columns: 1fr 1fr;
  }
  .xgw-salary-metrics article:nth-child(2) {
    border-right: 0;
  }
  .xgw-salary-metrics article:nth-child(-n+2) {
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-salary-overview, .xgw-salary-method, .xgw-salary-report {
    padding: 38px 22px;
  }
  .xgw-salary-dimensions {
    grid-template-columns: 1fr 1fr;
  }
  .xgw-salary-dimensions article:nth-child(2) {
    border-right: 0;
  }
  .xgw-salary-dimensions article:nth-child(-n+2) {
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-salary-source-map {
    grid-template-columns: 1fr;
  }
  .xgw-salary-report header {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-salary-report header a {
    text-align: center;
  }
  .xgw-salary-report__frame {
    min-height: 500px;
    aspect-ratio: auto;
  }
  .xgw-salary-method ol {
    grid-template-columns: 1fr;
  }
  .xgw-salary-method li, .xgw-salary-method li:nth-child(2n) {
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-salary-method li:last-child {
    border-bottom: 0;
  }
}
/* ==========================================================================
   33. 帖子详情：工程讨论记录
   详情页不把回复做成闲聊流。首帖是问题说明书；回复强调结论、依据和条件；
   有价值回复与当前沉淀始终可见，方便后来者接上讨论。
   ========================================================================== */
body.xgw-topic-page {
  background: linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px), #e8ece8;
  background-size: 24px 24px;
}

body.xgw-topic-page #main-outlet-wrapper {
  background: transparent;
}

body.xgw-topic-page #main-outlet {
  width: min(1160px, 100% - 32px);
  margin: 28px auto 62px;
}

body.xgw-topic-page #topic-title {
  margin: 0 0 22px;
  padding: clamp(24px, 4vw, 42px);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-left: 10px solid var(--xgw-primary);
  background: var(--xgw-paper);
  box-shadow: 6px 6px 0 var(--xgw-ink);
}

body.xgw-topic-page #topic-title h1,
body.xgw-topic-page .fancy-title {
  color: var(--xgw-ink);
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(33px, 4.4vw, 59px);
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -0.065em;
}

body.xgw-topic-page .topic-post {
  margin: 0 0 16px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
  box-shadow: 4px 4px 0 var(--xgw-ink);
}

body.xgw-topic-page .topic-post:first-of-type,
body.xgw-topic-page #post_1 {
  border-left: 8px solid var(--xgw-primary);
  background: #fffaf1;
}

body.xgw-topic-page .topic-body {
  min-width: 0;
  padding: 18px clamp(16px, 2.3vw, 28px) 22px;
}

body.xgw-topic-page .topic-avatar {
  padding: 16px 10px;
  border-right: 1px solid var(--xgw-ink);
  background: #f2f6f3;
}

body.xgw-topic-page .topic-meta-data {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--xgw-ink);
}

body.xgw-topic-page .topic-post .cooked {
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

body.xgw-topic-page .topic-post .post-menu-area,
body.xgw-topic-page .topic-post .post-actions {
  margin-top: 18px;
  padding-top: 10px;
  border-top: 1px solid var(--xgw-ink);
  background: transparent;
}

body.xgw-topic-page .topic-post .post-menu-area button,
body.xgw-topic-page .topic-post .post-actions button {
  border: 1px solid var(--xgw-ink);
  border-radius: 0;
  background: var(--xgw-paper);
  font-weight: 800;
}

/* 本地可验证原型：工业实验记录 × 社区讨论。 */
.xgw-topic-prototype-page,
.xgw-topic-prototype-page * {
  box-sizing: border-box;
}

.xgw-topic-prototype-page a {
  color: inherit;
}

.xgw-thread {
  width: min(1240px, 100% - 32px);
  margin: 24px auto 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
}

.xgw-thread__utility {
  min-height: 40px;
  padding: 8px 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-thread__utility a {
  color: var(--xgw-paper);
  text-decoration: none;
}

.xgw-thread__utility a:hover {
  color: #74f5df;
}

.xgw-thread__utility > span {
  color: #74f5df;
  text-align: center;
}

.xgw-thread__utility > b {
  justify-self: end;
  color: #ffcf5b;
}

.xgw-thread__utility i {
  width: 7px;
  height: 7px;
  margin-right: 5px;
  display: inline-block;
  background: #74f5df;
  border-radius: 50%;
}

.xgw-thread__head {
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr) 176px;
  align-items: stretch;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: radial-gradient(circle at 74% 25%, rgba(46, 221, 193, 0.34), transparent 29%), #f9fbf8;
}

.xgw-thread__serial {
  padding: 22px 16px;
  display: flex;
  align-items: flex-start;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  writing-mode: vertical-rl;
}

.xgw-thread__title {
  padding: clamp(28px, 4.5vw, 58px) clamp(24px, 4.5vw, 60px) 34px;
}

.xgw-thread__title nav {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
}

.xgw-thread__title nav a {
  color: #007f6a;
}

.xgw-thread__title nav span {
  color: var(--xgw-muted);
}

.xgw-thread__title h1 {
  max-width: 820px;
  margin: 19px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(41px, 5.35vw, 74px);
  font-weight: 900;
  line-height: 0.99;
  letter-spacing: -0.078em;
}

.xgw-thread__title > p {
  max-width: 660px;
  margin: 21px 0 0;
  padding-left: 14px;
  border-left: 4px solid var(--xgw-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
}

.xgw-thread__tags {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.xgw-thread__tags span {
  padding: 5px 8px;
  border: 1px solid var(--xgw-ink);
  background: var(--xgw-paper);
  font-size: 10px;
  font-weight: 900;
}

.xgw-thread__tags span:nth-child(2) {
  background: #dff5ff;
}

.xgw-thread__tags span:nth-child(3) {
  background: #fff0d8;
}

.xgw-thread__tags span:nth-child(4) {
  background: #e7fae8;
}

.xgw-thread__stats {
  margin: 0;
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  border-left: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-thread__stats div {
  min-height: 86px;
  padding: 15px;
  display: grid;
  align-content: center;
  border-bottom: 1px solid var(--xgw-ink);
  background: rgba(255, 255, 255, 0.78);
}

.xgw-thread__stats div:last-child {
  border-bottom: 0;
}

.xgw-thread__stats dt {
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-thread__stats dd {
  margin: 4px 0 0;
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
}

.xgw-thread__status {
  display: grid;
  grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.15fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: #effff9;
}

.xgw-thread__status > header {
  padding: 28px 30px;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  background: #72f6df;
}

.xgw-thread__status > header > span,
.xgw-thread-synthesis > div > span,
.xgw-thread-composer > div > span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.09em;
}

.xgw-thread__status h2 {
  margin: 12px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(24px, 2.8vw, 37px);
  line-height: 1.1;
  letter-spacing: -0.055em;
}

.xgw-thread__status-note {
  padding: 29px 34px;
  display: grid;
  align-content: center;
  background: #fbfffd;
  transition: background var(--xgw-transition);
}

.xgw-thread__status-note.is-accepted {
  background: #fff8df;
}

.xgw-thread__status-note > b {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
}

.xgw-thread__status-note p {
  max-width: 660px;
  margin: 11px 0 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}

.xgw-thread__status-note small {
  margin-top: 12px;
  color: var(--xgw-muted);
  font-size: 10px;
  font-weight: 700;
}

.xgw-thread__status-note small i {
  width: 7px;
  height: 7px;
  margin-right: 5px;
  display: inline-block;
  background: var(--xgw-warning);
  border: 1px solid var(--xgw-ink);
}

.xgw-thread__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 236px;
  align-items: start;
}

.xgw-thread__stream {
  min-width: 0;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-thread__toolbar {
  min-height: 74px;
  padding: 14px 21px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: #f4f4ee;
}

.xgw-thread__toolbar > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

.xgw-thread__toolbar span {
  margin-right: 4px;
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-thread__toolbar button {
  padding: 7px 9px;
  border: 1px solid var(--xgw-ink);
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
}

.xgw-thread__toolbar button.is-active {
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  box-shadow: 3px 3px 0 #00b68e;
  transform: translate(-1px, -1px);
}

.xgw-thread__toolbar button b {
  margin-left: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.xgw-thread__toolbar > p {
  max-width: 270px;
  margin: 0;
  color: var(--xgw-muted);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.45;
  text-align: right;
}

.xgw-thread-post {
  display: grid;
  grid-template-columns: 154px minmax(0, 1fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-thread-post[hidden] {
  display: none;
}

.xgw-thread-post--origin {
  background: #fffaf1;
}

.xgw-thread-post--valuable {
  background: #f0fff9;
}

.xgw-thread-post--answer {
  box-shadow: inset 8px 0 0 #00b68e;
}

.xgw-thread-post__rail {
  padding: 19px 14px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-right: 1px solid var(--xgw-ink);
  background: #f4f7f4;
}

.xgw-thread-post--origin .xgw-thread-post__rail {
  background: #ffdfb8;
}

.xgw-thread-post--valuable .xgw-thread-post__rail {
  background: #a7f4df;
}

.xgw-thread-post__rail > span {
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.xgw-thread-avatar {
  width: 43px;
  height: 43px;
  margin-top: 17px;
  display: grid;
  place-items: center;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 3px 3px 0 var(--xgw-ink);
  color: var(--xgw-ink);
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: 19px;
  font-weight: 900;
}

.xgw-thread-avatar--orange {
  background: #ff7b2e;
}

.xgw-thread-avatar--blue {
  background: #87d5ff;
}

.xgw-thread-avatar--green {
  background: #70e6bd;
}

.xgw-thread-avatar--violet {
  background: #c6b9ff;
}

.xgw-thread-post__rail strong {
  margin-top: 12px;
  font-size: 13px;
}

.xgw-thread-post__rail small {
  margin-top: 3px;
  color: var(--xgw-muted);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.45;
}

.xgw-thread-post__rail time {
  margin-top: auto;
  padding-top: 18px;
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 8px;
  font-weight: 800;
}

.xgw-thread-post__body {
  min-width: 0;
  padding: 28px clamp(20px, 3vw, 40px) 24px;
}

.xgw-thread-post__body > header {
  position: relative;
  padding-right: 132px;
}

.xgw-thread-post__body > header > span {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-thread-post__body > header > em {
  position: absolute;
  top: 0;
  right: 0;
  padding: 4px 6px;
  color: var(--xgw-ink);
  border: 1px solid var(--xgw-ink);
  background: #72f6df;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.xgw-thread-post__body h2 {
  margin: 13px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(25px, 3.1vw, 38px);
  line-height: 1.12;
  letter-spacing: -0.055em;
}

.xgw-thread-post__body > p {
  max-width: 720px;
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 1.85;
}

.xgw-thread-post__body mark {
  padding: 0 3px;
  color: var(--xgw-ink);
  background: #ffcf5b;
}

.xgw-thread-brief {
  margin-top: 25px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-thread-brief article {
  min-height: 127px;
  padding: 15px 13px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--xgw-ink);
  background: var(--xgw-paper);
}

.xgw-thread-brief article:last-child {
  border-right: 0;
  background: #ffe2b7;
}

.xgw-thread-brief b {
  color: var(--xgw-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
}

.xgw-thread-brief small {
  margin-top: auto;
  color: var(--xgw-muted);
  font-size: 9px;
  font-weight: 900;
}

.xgw-thread-brief strong {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.38;
}

.xgw-thread-parameters {
  margin-top: 18px;
  border: 1px solid var(--xgw-ink);
  background: #f3f7f5;
}

.xgw-thread-parameters summary {
  padding: 11px 13px;
  display: flex;
  justify-content: space-between;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
}

.xgw-thread-parameters summary span {
  font-size: 18px;
  line-height: 0.8;
}

.xgw-thread-parameters[open] summary {
  border-bottom: 1px solid var(--xgw-ink);
  background: #dff7ef;
}

.xgw-thread-parameters[open] summary span {
  transform: rotate(45deg);
}

.xgw-thread-parameters > div {
  padding: 4px 14px 12px;
}

.xgw-thread-parameters p {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.7;
}

.xgw-thread-post blockquote {
  margin: 19px 0 0;
  padding: 13px 15px;
  border: 1px solid var(--xgw-ink);
  border-left: 6px solid var(--xgw-primary);
  background: #fff1df;
  font-size: 12px;
  line-height: 1.75;
}

.xgw-thread-post blockquote b {
  display: block;
  margin-bottom: 3px;
}

.xgw-thread-evidence {
  margin-top: 20px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  border: 1px solid var(--xgw-ink);
  background: #edf8ff;
}

.xgw-thread-evidence--strong {
  background: #ddfaef;
}

.xgw-thread-evidence b {
  color: #12638f;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.06em;
}

.xgw-thread-evidence--strong b {
  color: #007f6a;
}

.xgw-thread-evidence p {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.7;
}

.xgw-thread-route {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  border: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-thread-route li {
  min-height: 82px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  border-bottom: 1px solid var(--xgw-ink);
  background: #fff;
}

.xgw-thread-route li:last-child {
  border-bottom: 0;
}

.xgw-thread-route li:nth-child(2n) {
  background: #f2fbf7;
}

.xgw-thread-route li > b {
  color: var(--xgw-paper);
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
}

.xgw-thread-route strong {
  font-size: 13px;
}

.xgw-thread-route p {
  margin: 5px 0 0;
  color: #444;
  font-size: 11px;
  line-height: 1.55;
}

.xgw-thread-post__body footer {
  margin-top: 22px;
  padding-top: 13px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--xgw-ink);
}

.xgw-thread-action,
.xgw-thread-accept {
  padding: 7px 9px;
  border: 1px solid var(--xgw-ink);
  border-radius: 0;
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
}

.xgw-thread-action:hover {
  background: #edf8ff;
}

.xgw-thread-accept {
  background: #72f6df;
}

.xgw-thread-accept:hover,
.xgw-thread-accept.is-accepted {
  color: var(--xgw-paper);
  background: var(--xgw-ink);
}

.xgw-thread-post__body footer a {
  margin-left: auto;
  color: #007f6a;
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.xgw-thread-post__body footer a:hover {
  text-decoration: underline;
}

.xgw-thread-synthesis {
  padding: clamp(26px, 4vw, 44px);
  display: grid;
  grid-template-columns: minmax(270px, 0.86fr) minmax(0, 1.14fr);
  gap: clamp(22px, 4vw, 56px);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  color: var(--xgw-paper);
  background: #152722;
}

.xgw-thread-synthesis > div > span {
  color: #72f6df;
}

.xgw-thread-synthesis h2 {
  max-width: 420px;
  margin: 13px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(29px, 3.4vw, 47px);
  line-height: 1.06;
  letter-spacing: -0.06em;
}

.xgw-thread-synthesis ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.55);
}

.xgw-thread-synthesis li {
  min-height: 72px;
  padding: 14px 0;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.55);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.55;
}

.xgw-thread-synthesis li > b {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  color: var(--xgw-ink);
  background: #ffcf5b;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
}

.xgw-thread__aside {
  min-width: 0;
  background: #f9f8ef;
}

.xgw-thread-anchors {
  position: sticky;
  top: 18px;
  padding: 20px 17px 16px;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-thread-anchors > span {
  color: var(--xgw-muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.xgw-thread-anchors a {
  margin-top: 10px;
  padding: 8px 0;
  display: flex;
  gap: 9px;
  align-items: center;
  border-bottom: 1px solid #b2b2ab;
  color: var(--xgw-ink);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.xgw-thread-anchors a:last-child {
  border-bottom: 0;
}

.xgw-thread-anchors a:hover {
  color: #007f6a;
}

.xgw-thread-anchors b {
  color: #007f6a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
}

.xgw-thread__rule {
  margin: 18px 16px;
  padding: 15px;
  border: 1px solid var(--xgw-ink);
  background: #fff5df;
  box-shadow: 3px 3px 0 var(--xgw-ink);
}

.xgw-thread__rule b {
  font-size: 11px;
}

.xgw-thread__rule p {
  margin: 8px 0 0;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.7;
}

.xgw-thread-composer {
  padding: clamp(28px, 4vw, 48px);
  display: grid;
  grid-template-columns: minmax(250px, 1.1fr) minmax(160px, 0.7fr) auto;
  gap: 26px;
  align-items: end;
  background: #f7f0ff;
}

.xgw-thread-composer h2 {
  max-width: 420px;
  margin: 12px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(28px, 3.5vw, 46px);
  line-height: 1.05;
  letter-spacing: -0.065em;
}

.xgw-thread-composer p {
  max-width: 420px;
  margin: 12px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.7;
}

.xgw-thread-composer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.xgw-thread-composer li {
  padding: 7px 0;
  border-bottom: 1px solid var(--xgw-ink);
  font-size: 11px;
  font-weight: 900;
}

.xgw-thread-composer li::before {
  content: "✓";
  margin-right: 7px;
  color: #673bc4;
}

.xgw-thread-composer button {
  min-height: 48px;
  padding: 11px 14px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: 0;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
  box-shadow: 4px 4px 0 #673bc4;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.xgw-thread-composer button:hover {
  color: var(--xgw-ink);
  background: #c7b7ff;
}

.xgw-thread-composer button:disabled {
  color: var(--xgw-ink);
  background: #d9e1df;
  box-shadow: none;
  cursor: default;
}

.xgw-thread__footer {
  padding: 19px 24px;
  display: flex;
  align-items: baseline;
  gap: 20px;
  color: var(--xgw-paper);
  background: var(--xgw-ink);
}

.xgw-thread__footer strong {
  color: #ffcf5b;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: 17px;
}

.xgw-thread__footer span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 11px;
  font-weight: 700;
}

@media (max-width: 860px) {
  body.xgw-topic-page #main-outlet {
    width: calc(100% - 20px);
    margin-top: 12px;
  }
  body.xgw-topic-page #topic-title {
    padding: 24px 18px;
    border-left-width: 6px;
    box-shadow: 4px 4px 0 var(--xgw-ink);
  }
  body.xgw-topic-page .topic-body {
    padding: 15px;
  }
  body.xgw-topic-page .topic-avatar {
    padding: 10px 7px;
  }
  .xgw-thread {
    width: calc(100% - 16px);
    margin: 8px auto 36px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-thread__utility {
    grid-template-columns: 1fr auto;
    padding: 8px 10px;
  }
  .xgw-thread__utility > span {
    display: none;
  }
  .xgw-thread__head {
    grid-template-columns: 1fr;
  }
  .xgw-thread__serial {
    min-height: 30px;
    padding: 8px 11px;
    display: block;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
    font-size: 8px;
    writing-mode: horizontal-tb;
  }
  .xgw-thread__title {
    padding: 28px 18px 23px;
  }
  .xgw-thread__title h1 {
    font-size: clamp(37px, 11.4vw, 53px);
  }
  .xgw-thread__title > p {
    margin-top: 16px;
    font-size: 12px;
  }
  .xgw-thread__stats {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
    border-left: 0;
  }
  .xgw-thread__stats div {
    min-height: 68px;
    padding: 10px;
    border-right: 1px solid var(--xgw-ink);
    border-bottom: 0;
  }
  .xgw-thread__stats div:last-child {
    border-right: 0;
  }
  .xgw-thread__stats dd {
    font-size: 20px;
  }
  .xgw-thread__status {
    grid-template-columns: 1fr;
  }
  .xgw-thread__status > header {
    padding: 24px 18px;
    border-right: 0;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-thread__status-note {
    padding: 21px 18px;
  }
  .xgw-thread__layout {
    grid-template-columns: 1fr;
  }
  .xgw-thread__stream {
    border-right: 0;
  }
  .xgw-thread__toolbar {
    padding: 13px 14px;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .xgw-thread__toolbar > p {
    max-width: none;
    text-align: left;
  }
  .xgw-thread-post {
    grid-template-columns: 1fr;
  }
  .xgw-thread-post__rail {
    min-height: 72px;
    padding: 11px 14px;
    display: grid;
    grid-template-columns: 62px 44px minmax(0, 1fr);
    column-gap: 10px;
    align-items: center;
    border-right: 0;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-thread-post__rail > span {
    grid-row: 1/span 2;
    align-self: start;
  }
  .xgw-thread-avatar {
    margin-top: 0;
    grid-row: 1/span 2;
  }
  .xgw-thread-post__rail strong {
    margin: 0;
  }
  .xgw-thread-post__rail small {
    margin: 1px 0 0;
  }
  .xgw-thread-post__rail time {
    display: none;
  }
  .xgw-thread-post__body {
    padding: 22px 15px 18px;
  }
  .xgw-thread-post__body > header {
    padding-right: 0;
  }
  .xgw-thread-post__body > header > em {
    position: static;
    margin-top: 10px;
    display: inline-block;
  }
  .xgw-thread-post__body > p {
    margin-top: 15px;
    font-size: 13px;
  }
  .xgw-thread-brief {
    grid-template-columns: 1fr 1fr;
  }
  .xgw-thread-brief article {
    min-height: 108px;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-thread-brief article:nth-child(2n) {
    border-right: 0;
  }
  .xgw-thread-brief article:nth-last-child(-n+2) {
    border-bottom: 0;
  }
  .xgw-thread-evidence {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .xgw-thread-route li {
    grid-template-columns: 32px minmax(0, 1fr);
    padding: 13px;
  }
  .xgw-thread-post__body footer a {
    width: 100%;
    margin-left: 0;
  }
  .xgw-thread-synthesis {
    grid-template-columns: 1fr;
    gap: 25px;
    padding: 30px 18px;
  }
  .xgw-thread__aside {
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-thread-anchors {
    position: static;
    padding: 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 14px;
  }
  .xgw-thread-anchors > span {
    grid-column: 1/-1;
    margin-bottom: 6px;
  }
  .xgw-thread__rule {
    margin: 16px;
  }
  .xgw-thread-composer {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 30px 18px;
  }
  .xgw-thread-composer button {
    width: 100%;
  }
  .xgw-thread__footer {
    padding: 18px;
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .xgw-tech-hub__bar b i {
    animation: none;
  }
}
/* ===========================================================================
   33B. 帖子详情：沉浸阅读模式
   首页与目录负责建立品牌记忆；帖子页只保留必要层级、完整时间和楼层关系。
   这组后置规则有意收敛 33 节的实验性看板语言，同时兼容 Discourse 原生
   话题页与 sandbox/topic-detail.html 验收页。
   ========================================================================== */
body.xgw-topic-page {
  --xgw-thread-ink: #252a31;
  --xgw-thread-muted: #69727d;
  --xgw-thread-line: #e3e7eb;
  --xgw-thread-soft: #f6f7f8;
  --xgw-thread-link: #175199;
  color: var(--xgw-thread-ink);
  background: #f6f7f8;
  background-image: none;
}

/* 深层页区分“回到来源”和“回到全站目录”，避免一个按钮承担两种语义。 */
.xgw-context-nav {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}

.xgw-context-nav a + a {
  padding-left: 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.32);
  opacity: 0.72;
}

body.xgw-topic-page .xgw-topic-context {
  width: min(1120px, 100% - 40px);
  min-height: 42px;
  margin: 18px auto 10px;
  padding: 0 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: var(--xgw-thread-muted);
  font-size: 13px;
}

body.xgw-topic-page .xgw-topic-context > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

body.xgw-topic-page .xgw-topic-context a {
  color: var(--xgw-thread-link);
  text-decoration: none;
}

body.xgw-topic-page .xgw-topic-context a + a {
  padding-left: 16px;
  border-left: 1px solid var(--xgw-thread-line);
  color: var(--xgw-thread-muted);
}

body.xgw-topic-page .xgw-topic-context > span {
  color: #8a929b;
  font-variant-numeric: tabular-nums;
}

/* 正式 Discourse 话题页：让原生结构回到文章阅读与楼层讨论。 */
body.xgw-topic-page #main-outlet-wrapper {
  background: transparent;
}

body.xgw-topic-page #main-outlet {
  width: min(1120px, 100% - 40px);
  margin: 0 auto 56px;
  padding: 0 clamp(22px, 4vw, 48px) 36px;
  border: 1px solid var(--xgw-thread-line);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page #topic-title {
  max-width: 820px;
  margin: 0;
  padding: 34px 0 24px;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.xgw-topic-page #topic-title h1,
body.xgw-topic-page .fancy-title {
  margin: 0;
  color: var(--xgw-thread-ink);
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(27px, 3vw, 36px);
  font-weight: 720;
  line-height: 1.32;
  letter-spacing: -0.025em;
}

body.xgw-topic-page #topic-title .topic-category,
body.xgw-topic-page #topic-title .topic-header-extra {
  margin-top: 13px;
}

body.xgw-topic-page .topic-post {
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line);
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page .topic-post:first-of-type,
body.xgw-topic-page #post_1 {
  border-top: 0;
  border-left: 0;
  background: #fff;
}

body.xgw-topic-page .topic-avatar {
  padding: 24px 12px 0 0;
  border: 0;
  background: transparent;
}

body.xgw-topic-page .topic-body {
  max-width: 820px;
  padding: 22px 0 28px;
  border: 0;
  background: transparent;
}

body.xgw-topic-page .topic-meta-data {
  min-height: 42px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 0;
  color: var(--xgw-thread-muted);
  background: transparent;
}

body.xgw-topic-page .topic-post .cooked {
  color: #30363d;
  font-size: 16px;
  line-height: 1.85;
}

body.xgw-topic-page .topic-post .cooked h2,
body.xgw-topic-page .topic-post .cooked h3 {
  color: var(--xgw-thread-ink);
  line-height: 1.45;
}

body.xgw-topic-page .topic-post .cooked blockquote {
  margin: 20px 0;
  padding: 10px 16px;
  border: 0;
  border-left: 3px solid #b7bec6;
  color: #4f5964;
  background: #f7f8f9;
}

body.xgw-topic-page .topic-post .post-menu-area,
body.xgw-topic-page .topic-post .post-actions {
  margin-top: 22px;
  padding-top: 12px;
  border-top: 1px solid #f0f1f3;
  background: transparent;
}

body.xgw-topic-page .topic-post .post-menu-area button,
body.xgw-topic-page .topic-post .post-actions button {
  border-radius: 4px;
  color: var(--xgw-thread-muted);
  background: transparent;
  box-shadow: none;
}

/* 讨论页不继承首页的重边框组件语言。头像、正文图片和原生按钮应服务于阅读。 */
body.xgw-topic-page .topic-avatar .avatar {
  border: 1px solid #dde2e7;
  border-radius: 50% !important;
  box-shadow: none;
  transition: none;
}

body.xgw-topic-page .topic-avatar .avatar:hover {
  transform: none;
  box-shadow: none;
}

body.xgw-topic-page .topic-post .cooked img.emoji {
  border: 0;
  box-shadow: none;
}

body.xgw-topic-page #main-outlet .btn {
  border: 1px solid transparent;
  border-radius: 4px;
  box-shadow: none;
  font-weight: 600;
  transition: color 0.15s ease, background-color 0.15s ease;
}

body.xgw-topic-page #main-outlet .btn:hover,
body.xgw-topic-page #main-outlet .btn:active {
  transform: none;
  box-shadow: none;
}

body.xgw-topic-page #main-outlet .btn-primary {
  color: #fff;
  border-color: #d95600;
  background: #e85d04;
}

body.xgw-topic-page #main-outlet .topic-map__views-trigger {
  padding: 4px 0;
  color: var(--xgw-thread-muted);
  border: 0;
  background: transparent;
}

body.xgw-topic-page #main-outlet .badge-wrapper {
  border: 0;
  box-shadow: none;
}

body.xgw-topic-page .more-topics__container .topic-list,
body.xgw-topic-page .more-topics__container .topic-list-item {
  border-color: var(--xgw-thread-line);
  box-shadow: none;
}

body.xgw-topic-page .more-topics__container .topic-list {
  border-width: 1px 0 0;
  border-radius: 0;
  border-collapse: collapse;
}

body.xgw-topic-page .more-topics__container .topic-list-item td:first-child {
  border-left: 0;
}

/* 本地话题原型：保留结构化信息，去除展板式色块与装饰。 */
.xgw-thread {
  width: min(1080px, 100% - 40px);
  margin: 24px auto 56px;
  overflow: hidden;
  color: var(--xgw-thread-ink, #252a31);
  border: 1px solid var(--xgw-thread-line, #e3e7eb);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}

.xgw-thread__utility {
  min-height: 44px;
  padding: 0 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  color: var(--xgw-thread-muted, #69727d);
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fff;
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 0;
}

.xgw-thread__utility a,
.xgw-thread__utility a:hover,
.xgw-thread__utility > span,
.xgw-thread__utility > b {
  color: inherit;
}

.xgw-thread__utility a:hover {
  color: var(--xgw-thread-link, #a6461f);
}

.xgw-thread__utility > b {
  margin-left: auto;
  font-weight: 600;
}

.xgw-thread__utility i {
  width: 6px;
  height: 6px;
  border: 0;
  border-radius: 50%;
  background: #4f8b65;
}

.xgw-thread__head {
  padding: 30px 36px 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 36px;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fff;
}

.xgw-thread__serial {
  min-height: 0;
  padding: 0;
  grid-column: 1/-1;
  display: block;
  color: var(--xgw-thread-muted, #69727d);
  border: 0;
  background: transparent;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.03em;
  writing-mode: horizontal-tb;
}

.xgw-thread__title {
  padding: 0;
}

.xgw-thread__title nav {
  margin-top: 4px;
  gap: 8px;
  font-size: 12px;
}

.xgw-thread__title nav a {
  color: var(--xgw-thread-link, #a6461f);
}

.xgw-thread__title h1 {
  max-width: 780px;
  margin: 14px 0 0;
  color: var(--xgw-thread-ink, #252a31);
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(28px, 3.7vw, 38px);
  font-weight: 720;
  line-height: 1.32;
  letter-spacing: -0.035em;
}

.xgw-thread__title > p {
  max-width: 720px;
  margin: 14px 0 0;
  color: var(--xgw-thread-muted, #69727d);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
}

.xgw-thread__meta {
  margin-top: 15px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  color: var(--xgw-thread-muted, #69727d);
  font-size: 12px;
}

.xgw-thread__meta strong {
  color: #3f4750;
  font-weight: 650;
}

.xgw-thread__tags {
  margin-top: 13px;
  gap: 6px;
}

.xgw-thread__tags span,
.xgw-thread__tags span:nth-child(n) {
  padding: 4px 8px;
  color: #58616b;
  border: 0;
  border-radius: 3px;
  background: #f0f2f4;
  font-size: 11px;
  font-weight: 500;
}

.xgw-thread__stats {
  min-width: 134px;
  padding-left: 26px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 0;
  border-left: 1px solid var(--xgw-thread-line, #e3e7eb);
}

.xgw-thread__stats div {
  min-height: 0;
  padding: 8px 0;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border: 0;
}

.xgw-thread__stats dt {
  color: var(--xgw-thread-muted, #69727d);
  font-family: inherit;
  font-size: 11px;
  letter-spacing: 0;
}

.xgw-thread__stats dd {
  margin: 0;
  color: #3f4750;
  font-size: 13px;
  font-weight: 650;
}

.xgw-thread__status {
  margin: 18px 36px;
  padding: 14px 16px;
  display: block;
  border: 1px solid #dce6df;
  border-radius: 4px;
  background: #f8fbf9;
}

.xgw-thread__status > header {
  padding: 0;
  border: 0;
  background: transparent;
}

.xgw-thread__status > header > span {
  color: #4d715b;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: 0;
}

.xgw-thread__status h2 {
  margin: 5px 0 0;
  font-family: inherit;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: 0;
}

.xgw-thread__status-note,
.xgw-thread__status-note.is-accepted {
  padding: 9px 0 0;
  border: 0;
  background: transparent;
}

.xgw-thread__status-note > b {
  color: #4d715b;
  font-family: inherit;
  font-size: 10px;
  letter-spacing: 0;
}

.xgw-thread__status-note p {
  max-width: 800px;
  margin: 5px 0 0;
  color: #49535d;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.7;
}

.xgw-thread__status-note small {
  margin-top: 6px;
  font-size: 10px;
}

.xgw-thread__status-note small i {
  border: 0;
  border-radius: 50%;
  background: #8ca095;
}

.xgw-thread__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  border-top: 1px solid var(--xgw-thread-line, #e3e7eb);
}

.xgw-thread__stream {
  border: 0;
  border-right: 1px solid var(--xgw-thread-line, #e3e7eb);
}

.xgw-thread__toolbar {
  min-height: 52px;
  padding: 10px 24px;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fbfbfc;
}

.xgw-thread__toolbar span {
  color: var(--xgw-thread-muted, #69727d);
  font-family: inherit;
  font-size: 10px;
  letter-spacing: 0;
}

.xgw-thread__toolbar button {
  padding: 5px 9px;
  border: 0;
  border-radius: 3px;
  color: #59636e;
  background: transparent;
  font-size: 11px;
  font-weight: 600;
}

.xgw-thread__toolbar button:hover {
  background: #eef0f2;
}

.xgw-thread__toolbar button.is-active {
  color: #30363d;
  background: #e7eaed;
  box-shadow: none;
  transform: none;
}

.xgw-thread__toolbar > p {
  color: var(--xgw-thread-muted, #69727d);
  font-size: 10px;
  font-weight: 400;
}

.xgw-thread-post,
.xgw-thread-post--origin,
.xgw-thread-post--valuable {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fff;
}

.xgw-thread-post--answer {
  box-shadow: inset 3px 0 0 #5e8b6d;
}

.xgw-thread-post__rail,
.xgw-thread-post--origin .xgw-thread-post__rail,
.xgw-thread-post--valuable .xgw-thread-post__rail {
  min-height: 0;
  padding: 24px 12px 22px 20px;
  border: 0;
  background: #fff;
}

.xgw-thread-post__rail > span {
  color: #8a929b;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  letter-spacing: 0;
}

.xgw-thread-avatar,
.xgw-thread-avatar--orange,
.xgw-thread-avatar--blue,
.xgw-thread-avatar--green,
.xgw-thread-avatar--violet {
  width: 40px;
  height: 40px;
  margin-top: 12px;
  color: #56606a;
  border: 1px solid #d8dde2;
  border-radius: 50%;
  background: #f2f4f5;
  box-shadow: none;
  font-size: 14px;
}

.xgw-thread-post__rail strong {
  margin-top: 10px;
  color: #343a40;
  font-size: 12px;
}

.xgw-thread-post__rail small {
  color: var(--xgw-thread-muted, #69727d);
  font-size: 9px;
  font-weight: 400;
}

.xgw-thread-post__rail time {
  color: #8a929b;
  font-family: inherit;
  font-size: 9px;
  font-weight: 400;
}

.xgw-thread-post__body {
  padding: 25px 28px 24px;
}

.xgw-thread-post__body > header {
  padding-right: 0;
}

.xgw-thread-post__body > header > span {
  color: var(--xgw-thread-muted, #69727d);
  font-family: inherit;
  font-size: 10px;
  letter-spacing: 0;
}

.xgw-thread-post__body > header > em {
  top: -2px;
  padding: 3px 7px;
  color: #466652;
  border: 1px solid #c9dace;
  border-radius: 3px;
  background: #f6faf7;
  font-size: 9px;
  font-weight: 600;
}

.xgw-thread-post__body h2 {
  margin: 9px 0 0;
  font-family: inherit;
  font-size: clamp(19px, 2.2vw, 24px);
  font-weight: 680;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.xgw-thread-post__body > p {
  margin-top: 16px;
  color: #343a40;
  font-size: 15px;
  line-height: 1.85;
}

.xgw-thread-post__body mark {
  padding: 0 2px;
  color: inherit;
  background: #fff0b8;
}

.xgw-thread-brief {
  margin-top: 20px;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid var(--xgw-thread-line, #e3e7eb);
  border-radius: 4px;
}

.xgw-thread-brief article,
.xgw-thread-brief article:last-child {
  min-height: 92px;
  padding: 13px;
  border: 0;
  border-right: 1px solid var(--xgw-thread-line, #e3e7eb);
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fafbfc;
}

.xgw-thread-brief article:nth-child(2n) {
  border-right: 0;
}

.xgw-thread-brief article:nth-last-child(-n+2) {
  border-bottom: 0;
}

.xgw-thread-brief b {
  color: #8a929b;
  font-size: 10px;
}

.xgw-thread-brief small {
  color: var(--xgw-thread-muted, #69727d);
  font-size: 9px;
}

.xgw-thread-brief strong {
  color: #3c444c;
  font-size: 12px;
  font-weight: 600;
}

.xgw-thread-parameters {
  border-color: var(--xgw-thread-line, #e3e7eb);
  border-radius: 4px;
  background: #fafbfc;
}

.xgw-thread-parameters summary {
  font-size: 11px;
  font-weight: 600;
}

.xgw-thread-parameters[open] summary {
  border-color: var(--xgw-thread-line, #e3e7eb);
  background: #f3f5f6;
}

.xgw-thread-post blockquote {
  border: 0;
  border-left: 3px solid #b6bec7;
  background: #f7f8f9;
  font-size: 12px;
}

.xgw-thread-evidence,
.xgw-thread-evidence--strong {
  border: 0;
  border-left: 3px solid #c4ccd3;
  border-radius: 0;
  background: #f7f8f9;
}

.xgw-thread-evidence--strong {
  border-left-color: #7fa08a;
  background: #f7faf8;
}

.xgw-thread-evidence b,
.xgw-thread-evidence--strong b {
  color: #56616b;
}

.xgw-thread-evidence p {
  font-weight: 400;
}

.xgw-thread-route {
  border: 1px solid var(--xgw-thread-line, #e3e7eb);
  border-radius: 4px;
}

.xgw-thread-route li,
.xgw-thread-route li:nth-child(2n) {
  border-color: var(--xgw-thread-line, #e3e7eb);
  background: #fff;
}

.xgw-thread-route li > b {
  color: #5e6872;
  border-radius: 50%;
  background: #eef0f2;
}

.xgw-thread-route strong {
  font-weight: 650;
}

.xgw-thread-post__body footer {
  border-color: #f0f1f3;
}

.xgw-thread-action,
.xgw-thread-accept {
  padding: 6px 8px;
  color: #66707a;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 10px;
  font-weight: 600;
}

.xgw-thread-action:hover {
  background: #f0f2f4;
}

.xgw-thread-accept {
  color: #466652;
  background: #eef6f0;
}

.xgw-thread-accept:hover,
.xgw-thread-accept.is-accepted {
  color: #fff;
  background: #4f755c;
}

.xgw-thread-post__body footer a {
  color: var(--xgw-thread-link, #a6461f);
  font-size: 10px;
}

.xgw-thread-synthesis {
  padding: 28px;
  gap: 32px;
  color: var(--xgw-thread-ink, #252a31);
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #f7f8f9;
}

.xgw-thread-synthesis > div > span {
  color: #5d7a67;
}

.xgw-thread-synthesis h2 {
  margin-top: 9px;
  font-family: inherit;
  font-size: 24px;
  line-height: 1.38;
  letter-spacing: -0.025em;
}

.xgw-thread-synthesis ol {
  border-color: #d9dee3;
}

.xgw-thread-synthesis li {
  border-color: #d9dee3;
  font-size: 11px;
  font-weight: 500;
}

.xgw-thread-synthesis li > b {
  color: #53605a;
  border-radius: 50%;
  background: #e4ebe6;
}

.xgw-thread__aside {
  background: #fbfbfc;
}

.xgw-thread-anchors {
  top: 74px;
  padding: 20px 18px;
  border: 0;
}

.xgw-thread-anchors > span {
  color: #8a929b;
  font-family: inherit;
  font-size: 9px;
  letter-spacing: 0;
}

.xgw-thread-anchors a {
  border-color: #e4e7ea;
  color: #56606a;
  font-size: 11px;
  font-weight: 600;
}

.xgw-thread-anchors a:hover {
  color: var(--xgw-thread-link, #a6461f);
}

.xgw-thread-anchors b {
  color: #9aa1a8;
}

.xgw-thread__rule {
  margin: 4px 18px 20px;
  padding: 13px;
  border: 1px solid var(--xgw-thread-line, #e3e7eb);
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
}

.xgw-thread__rule p {
  color: var(--xgw-thread-muted, #69727d);
  font-weight: 400;
}

.xgw-thread-composer {
  padding: 30px 28px;
  gap: 24px;
  border-bottom: 1px solid var(--xgw-thread-line, #e3e7eb);
  background: #fff;
}

.xgw-thread-composer h2 {
  font-family: inherit;
  font-size: 25px;
  line-height: 1.35;
  letter-spacing: -0.025em;
}

.xgw-thread-composer p {
  color: var(--xgw-thread-muted, #69727d);
  font-weight: 400;
}

.xgw-thread-composer li {
  border-color: #e7eaed;
  font-weight: 600;
}

.xgw-thread-composer li::before {
  color: #5e8b6d;
}

.xgw-thread-composer button {
  min-height: 42px;
  border: 0;
  border-radius: 4px;
  color: #fff;
  background: #343a40;
  box-shadow: none;
  font-size: 11px;
}

.xgw-thread-composer button:hover {
  color: #fff;
  background: #20252a;
}

.xgw-thread__footer {
  color: #5f6872;
  border: 0;
  background: #fafbfc;
}

.xgw-thread__footer strong {
  color: #424950;
  font-family: inherit;
  font-size: 14px;
}

.xgw-thread__footer span {
  color: #7c858e;
  font-weight: 400;
}

@media (max-width: 760px) {
  .xgw-context-nav a + a {
    display: none;
  }
  body.xgw-topic-page .xgw-context-nav a + a {
    display: inline;
  }
  body.xgw-topic-page .xgw-topic-context {
    box-sizing: border-box;
    width: 100%;
    min-height: 40px;
    margin: 0;
    padding: 0 16px;
    border-bottom: 1px solid var(--xgw-thread-line);
    background: #fff;
    font-size: 12px;
  }
  body.xgw-topic-page #main-outlet {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 0 0 24px;
    border: 0;
    border-radius: 0;
  }
  body.xgw-topic-page #topic-title {
    padding: 20px 0 16px;
    box-shadow: none;
  }
  body.xgw-topic-page #topic-title h1,
  body.xgw-topic-page .fancy-title {
    font-size: 22px;
    line-height: 1.38;
    letter-spacing: -0.015em;
  }
  body.xgw-topic-page .topic-post,
  body.xgw-topic-page .topic-post:first-of-type,
  body.xgw-topic-page #post_1 {
    border-left: 0;
  }
  body.xgw-topic-page .topic-avatar {
    padding: 14px 8px 0 0;
  }
  body.xgw-topic-page .topic-avatar .avatar {
    width: 40px;
    height: 40px;
  }
  body.xgw-topic-page .topic-body {
    padding: 14px 0 22px;
  }
  body.xgw-topic-page .topic-meta-data {
    min-height: 40px;
    margin-left: 46px;
    margin-bottom: 8px;
    padding-bottom: 6px;
  }
  body.xgw-topic-page .topic-post .cooked {
    font-size: 15.5px;
    line-height: 1.78;
  }
  body.xgw-topic-page .topic-post .cooked a {
    border-bottom: 0;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
  }
  body.xgw-topic-page .topic-navigation {
    margin-top: 0;
    padding-top: 8px;
    border-top: 1px solid var(--xgw-thread-line);
  }
  body.xgw-topic-page .topic-footer-main-buttons .btn {
    min-height: 40px;
    padding: 8px 14px;
  }
  body.xgw-topic-page .more-topics__container .topic-list-item {
    display: block;
    grid-template-columns: 1fr;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid var(--xgw-thread-line);
    background: #fff;
    box-shadow: none;
  }
  body.xgw-topic-page .more-topics__container .topic-list-item:hover {
    background: #f8f9fa;
    box-shadow: none;
  }
  body.xgw-topic-page .more-topics__container .topic-list-item td.topic-list-data {
    box-sizing: border-box;
    width: 100% !important;
    min-height: 0;
    padding: 14px 4px;
    display: block !important;
    border: 0;
  }
  body.xgw-topic-page .more-topics__container .topic-list-item .title {
    font-size: 15px;
    line-height: 1.5;
  }
  body.xgw-topic-page .more-topics__container .avatar {
    border: 1px solid #dde2e7;
    border-radius: 50% !important;
    box-shadow: none;
  }
  body.xgw-topic-page #user-card,
  body.xgw-topic-page #group-card {
    max-width: calc(100vw - 40px);
  }
  .xgw-thread {
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .xgw-thread__utility {
    padding: 0 16px;
  }
  .xgw-thread__utility > span {
    display: none;
  }
  .xgw-thread__head {
    padding: 20px 16px 18px;
    grid-template-columns: 1fr;
  }
  .xgw-thread__serial {
    padding: 0;
    border: 0;
    font-size: 10px;
  }
  .xgw-thread__title h1 {
    margin-top: 12px;
    font-size: clamp(22px, 6.2vw, 25px);
    line-height: 1.42;
    letter-spacing: -0.02em;
  }
  .xgw-thread__title > p {
    margin-top: 12px;
    padding-left: 0;
    border-left: 0;
    font-size: 12px;
    line-height: 1.65;
  }
  .xgw-thread__meta {
    margin-top: 12px;
    gap: 4px 12px;
    font-size: 11px;
  }
  .xgw-thread__stats {
    min-width: 0;
    padding: 12px 0 0;
    flex-direction: row;
    border: 0;
    border-top: 1px solid var(--xgw-thread-line, #e3e7eb);
  }
  .xgw-thread__stats div {
    padding: 0 14px 0 0;
    justify-content: flex-start;
    gap: 5px;
  }
  .xgw-thread__status {
    margin: 0 16px;
    padding: 14px 0;
    border-width: 0 0 1px;
    border-radius: 0;
    background: #fff;
  }
  .xgw-thread__layout {
    grid-template-columns: 1fr;
  }
  .xgw-thread__stream {
    border-right: 0;
  }
  .xgw-thread__toolbar {
    padding: 10px 14px;
  }
  .xgw-thread__toolbar > p {
    display: none;
  }
  .xgw-thread-post {
    grid-template-columns: 1fr;
  }
  .xgw-thread-post__rail,
  .xgw-thread-post--origin .xgw-thread-post__rail,
  .xgw-thread-post--valuable .xgw-thread-post__rail {
    min-height: 62px;
    padding: 12px 16px;
    grid-template-columns: 46px 36px minmax(0, 1fr) auto;
    column-gap: 8px;
    border: 0;
    border-bottom: 1px solid #f0f1f3;
  }
  .xgw-thread-post__rail > span {
    grid-row: auto;
    align-self: center;
  }
  .xgw-thread-avatar {
    width: 34px;
    height: 34px;
    grid-row: auto;
  }
  .xgw-thread-post__rail strong {
    margin: 0;
  }
  .xgw-thread-post__rail time {
    display: block;
    margin: 0;
    padding: 0;
  }
  .xgw-thread-post__body {
    padding: 20px 16px 22px;
  }
  .xgw-thread-post__body > header > em {
    position: static;
    margin-top: 8px;
    display: inline-block;
  }
  .xgw-thread-post__body > p {
    font-size: 14px;
  }
  .xgw-thread-synthesis {
    grid-template-columns: 1fr;
    padding: 24px 16px;
  }
  .xgw-thread__aside {
    display: none;
  }
  .xgw-thread-composer {
    grid-template-columns: 1fr;
    padding: 25px 16px;
  }
  .xgw-thread__footer {
    padding: 16px;
  }
}
/* === 34. 社区建议箱与公开跟进 === */
.xgw-suggestion-directory-card {
  min-height: 150px;
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(320px, 0.9fr) 160px;
  overflow: hidden;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: var(--xgw-shadow);
  background: linear-gradient(rgba(36, 91, 255, 0.09) 1px, transparent 1px), linear-gradient(90deg, rgba(36, 91, 255, 0.09) 1px, transparent 1px), #eef3ff;
  background-size: 18px 18px;
  text-decoration: none;
  transition: transform var(--xgw-transition), box-shadow var(--xgw-transition);
}

.xgw-suggestion-directory-card:hover {
  color: var(--xgw-ink);
  box-shadow: 7px 7px 0 var(--xgw-ink);
  transform: translate(-2px, -2px);
}

.xgw-suggestion-directory-card > div {
  padding: 22px 26px;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-suggestion-directory-card small {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-suggestion-directory-card strong {
  display: block;
  margin-top: 8px;
  color: #245bff;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(25px, 3vw, 35px);
  line-height: 1.05;
  letter-spacing: -0.055em;
}

.xgw-suggestion-directory-card p {
  margin: 10px 0 0;
  color: var(--xgw-muted);
  font-size: 11px;
  line-height: 1.55;
}

.xgw-suggestion-directory-card ol {
  margin: 0;
  padding: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  list-style: none;
  align-content: center;
}

.xgw-suggestion-directory-card li {
  padding: 8px;
  border: 1px solid var(--xgw-ink);
  background: rgba(255, 255, 255, 0.8);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
}

.xgw-suggestion-directory-card li:last-child {
  background: #7ee8bd;
}

.xgw-suggestion-directory-card > b {
  padding: 20px 14px;
  display: grid;
  place-items: center;
  background: #245bff;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}

body.xgw-suggestion-page {
  background: linear-gradient(rgba(36, 91, 255, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(36, 91, 255, 0.06) 1px, transparent 1px), #f0f4ff;
  background-size: 24px 24px;
}

.xgw-suggestion-box,
.xgw-suggestion-box *,
.xgw-suggestion-box *::before,
.xgw-suggestion-box *::after {
  box-sizing: border-box;
}

.xgw-suggestion-box {
  position: relative;
  left: 50%;
  width: min(1200px, 100%);
  margin: 24px 0 64px;
  overflow: hidden;
  color: var(--xgw-ink);
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 8px 8px 0 var(--xgw-ink);
  background: var(--xgw-paper);
  transform: translateX(-50%);
}

.xgw-suggestion-box a {
  color: inherit;
}

.xgw-suggestion-box a:focus-visible,
.xgw-suggestion-box button:focus-visible,
.xgw-suggestion-box input:focus-visible,
.xgw-suggestion-box textarea:focus-visible,
.xgw-suggestion-box select:focus-visible {
  outline: 3px solid #245bff;
  outline-offset: 3px;
}

.xgw-suggestion-box__bar {
  min-height: 44px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  color: #fff;
  background: var(--xgw-ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.09em;
}

.xgw-suggestion-box__bar a {
  text-decoration: none;
}

.xgw-suggestion-box__bar span {
  color: #9bc0ff;
}

.xgw-suggestion-box__bar b {
  justify-self: end;
  color: #7ee8bd;
}

.xgw-suggestion-box__hero {
  min-height: 330px;
  padding: clamp(42px, 6vw, 78px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(270px, 0.64fr);
  gap: 54px;
  align-items: end;
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  background: radial-gradient(circle at 82% 18%, rgba(126, 232, 189, 0.82), transparent 25%), linear-gradient(135deg, #fbfdff 0%, #dce9ff 100%);
}

.xgw-suggestion-box__hero > div > p:first-child,
.xgw-suggestion-box__hero aside > span,
.xgw-suggestion-box__composer header > span,
.xgw-suggestion-box__tracker header span {
  margin: 0;
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.xgw-suggestion-box__hero h1 {
  margin: 18px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(50px, 7vw, 88px);
  line-height: 0.9;
  letter-spacing: -0.09em;
}

.xgw-suggestion-box__hero h1 em {
  padding: 0 0.08em;
  color: #fff;
  background: #245bff;
  font-style: normal;
}

.xgw-suggestion-box__hero > div > p:last-child {
  max-width: 38em;
  margin: 22px 0 0;
  font-size: 14px;
  line-height: 1.7;
}

.xgw-suggestion-box__hero aside {
  padding: 20px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  box-shadow: 4px 4px 0 #245bff;
  background: rgba(255, 255, 255, 0.9);
}

.xgw-suggestion-box__hero aside ol {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.xgw-suggestion-box__hero aside li {
  margin-top: 10px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}

.xgw-suggestion-box__hero aside li b {
  margin-right: 8px;
  color: #245bff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.xgw-suggestion-box__composer {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
  border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
}

.xgw-suggestion-box__composer > header {
  padding: 42px 34px;
  border-right: var(--xgw-border-w) solid var(--xgw-ink);
  background: #245bff;
  color: #fff;
}

.xgw-suggestion-box__composer h2,
.xgw-suggestion-box__tracker h2 {
  margin: 14px 0 0;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.05;
  letter-spacing: -0.06em;
}

.xgw-suggestion-box__composer header p {
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 12px;
  line-height: 1.75;
}

.xgw-suggestion-box__composer form {
  padding: 30px 34px 34px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  background: #fff;
}

.xgw-suggestion-box__field {
  display: grid;
  gap: 7px;
}

.xgw-suggestion-box__field--kind {
  grid-column: span 1;
}

.xgw-suggestion-box__field--title {
  grid-column: span 1;
}

.xgw-suggestion-box__field:not(.xgw-suggestion-box__field--kind):not(.xgw-suggestion-box__field--title) {
  grid-column: 1/-1;
}

.xgw-suggestion-box__field > span {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.xgw-suggestion-box__field input,
.xgw-suggestion-box__field textarea,
.xgw-suggestion-box__field select {
  width: 100%;
  padding: 10px 11px;
  border: 1px solid var(--xgw-ink);
  border-radius: 0;
  color: var(--xgw-ink);
  background: #fffef9;
  font: inherit;
  font-size: 12px;
  line-height: 1.55;
}

.xgw-suggestion-box__field textarea {
  resize: vertical;
}

.xgw-suggestion-box__field select {
  min-height: 42px;
}

.xgw-suggestion-box__submit-row {
  grid-column: 1/-1;
  padding-top: 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.xgw-suggestion-box__submit-row p {
  max-width: 30em;
  margin: 0;
  color: var(--xgw-muted);
  font-size: 10px;
  line-height: 1.5;
}

.xgw-suggestion-box__submit-row button,
.xgw-suggestion-box__tracker > header > button {
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-radius: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
}

.xgw-suggestion-box__submit-row button {
  padding: 12px 16px;
  color: #fff;
  background: var(--xgw-ink);
}

.xgw-suggestion-box__submit-row button:hover {
  background: #245bff;
}

.xgw-suggestion-box__form-notice {
  grid-column: 1/-1;
  margin: 0;
  padding: 9px 10px;
  border: 1px solid var(--xgw-ink);
  background: #e6fff1;
  font-size: 11px;
  font-weight: 700;
}

.xgw-suggestion-box__tracker {
  padding: 42px 34px 48px;
  background: #fbfdff;
}

.xgw-suggestion-box__tracker > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.xgw-suggestion-box__tracker > header > button {
  padding: 10px 12px;
  color: var(--xgw-ink);
  background: #7ee8bd;
  font-size: 11px;
}

.xgw-suggestion-box__tracker > header > button:hover {
  background: #fff;
}

.xgw-suggestion-statuses {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border: var(--xgw-border-w) solid var(--xgw-ink);
  overflow: hidden;
}

.xgw-suggestion-statuses button {
  min-height: 82px;
  padding: 10px 8px;
  display: grid;
  align-content: center;
  gap: 3px;
  border: 0;
  border-right: 1px solid var(--xgw-ink);
  cursor: pointer;
  color: var(--xgw-ink);
  background: #fff;
  font: inherit;
  text-align: left;
  transition: background var(--xgw-transition), color var(--xgw-transition);
}

.xgw-suggestion-statuses button:last-child {
  border-right: 0;
}

.xgw-suggestion-statuses button:hover,
.xgw-suggestion-statuses button.is-active {
  color: #fff;
  background: #245bff;
}

.xgw-suggestion-statuses small {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.xgw-suggestion-statuses span {
  font-size: 11px;
  font-weight: 900;
}

.xgw-suggestion-statuses b {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.xgw-suggestion-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-top: 0;
}

.xgw-suggestion-list__item {
  min-height: 91px;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 130px;
  align-items: stretch;
  border-bottom: 1px solid var(--xgw-ink);
  background: #fff;
}

.xgw-suggestion-list__item:last-child {
  border-bottom: 0;
}

.xgw-suggestion-list__status {
  padding: 13px 9px;
  display: grid;
  place-items: center;
  border-right: 1px solid var(--xgw-ink);
  background: #e4edff;
  font-size: 10px;
  font-weight: 900;
  text-align: center;
}

.xgw-suggestion-list__item--released .xgw-suggestion-list__status {
  background: #7ee8bd;
}

.xgw-suggestion-list__item--building .xgw-suggestion-list__status {
  background: #ffd46c;
}

.xgw-suggestion-list__item--planned .xgw-suggestion-list__status {
  background: #cbbdff;
}

.xgw-suggestion-list__item--not-planned .xgw-suggestion-list__status {
  background: #e0e3e8;
}

.xgw-suggestion-list__item > div {
  min-width: 0;
  padding: 15px 18px;
}

.xgw-suggestion-list__item > div > a {
  color: var(--xgw-ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
  text-decoration: none;
}

.xgw-suggestion-list__item > div > a:hover {
  color: #245bff;
  text-decoration: underline;
}

.xgw-suggestion-list__item p {
  margin: 8px 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.xgw-suggestion-list__item p span {
  padding: 3px 5px;
  color: #245bff;
  border: 1px solid #a9c1ff;
  background: #f5f8ff;
  font-size: 9px;
  font-weight: 800;
}

.xgw-suggestion-list__item p small {
  color: var(--xgw-muted);
  font-size: 9px;
}

.xgw-suggestion-list__follow {
  padding: 14px 10px;
  display: grid;
  place-items: center;
  border-left: 1px solid var(--xgw-ink);
  color: var(--xgw-ink);
  background: #fffef9;
  font-size: 10px;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}

.xgw-suggestion-list__follow:hover {
  color: #fff;
  background: var(--xgw-ink);
}

.xgw-suggestion-box__feedback-state {
  min-height: 130px;
  padding: 28px;
  display: grid;
  align-content: center;
  gap: 8px;
  border: var(--xgw-border-w) solid var(--xgw-ink);
  border-top: 0;
  background: #fff;
}

.xgw-suggestion-box__feedback-state strong {
  font-size: 14px;
}

.xgw-suggestion-box__feedback-state span {
  color: var(--xgw-muted);
  font-size: 12px;
  line-height: 1.6;
}

.xgw-suggestion-box__feedback-state a {
  color: #245bff;
  font-size: 12px;
  font-weight: 900;
}

.xgw-suggestion-box__feedback-state--error {
  background: #fff3f0;
}

.xgw-suggestion-box__footer {
  padding: 24px 34px;
  display: flex;
  align-items: baseline;
  gap: 24px;
  color: #fff;
  background: var(--xgw-ink);
}

.xgw-suggestion-box__footer strong {
  color: #7ee8bd;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.xgw-suggestion-box__footer p {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  line-height: 1.65;
}

@media (max-width: 820px) {
  .xgw-suggestion-directory-card {
    grid-template-columns: 1fr;
  }
  .xgw-suggestion-directory-card > div {
    border-right: 0;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-suggestion-directory-card > b {
    padding: 13px;
    border-top: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-suggestion-box {
    width: calc(100vw - 20px);
    margin-top: 10px;
    box-shadow: 5px 5px 0 var(--xgw-ink);
  }
  .xgw-suggestion-box__bar {
    grid-template-columns: 1fr auto;
    font-size: 7px;
  }
  .xgw-suggestion-box__bar span {
    display: none;
  }
  .xgw-suggestion-box__hero {
    padding: 45px 22px;
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .xgw-suggestion-box__hero h1 {
    font-size: clamp(43px, 12vw, 59px);
  }
  .xgw-suggestion-box__composer {
    grid-template-columns: 1fr;
  }
  .xgw-suggestion-box__composer > header {
    padding: 34px 22px;
    border-right: 0;
    border-bottom: var(--xgw-border-w) solid var(--xgw-ink);
  }
  .xgw-suggestion-box__composer form {
    padding: 24px 18px;
    grid-template-columns: 1fr;
  }
  .xgw-suggestion-box__field--kind, .xgw-suggestion-box__field--title {
    grid-column: 1;
  }
  .xgw-suggestion-box__submit-row {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-suggestion-box__submit-row button {
    width: 100%;
  }
  .xgw-suggestion-box__tracker {
    padding: 36px 18px;
  }
  .xgw-suggestion-box__tracker > header {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-suggestion-box__tracker > header > button {
    width: 100%;
  }
  .xgw-suggestion-statuses {
    grid-template-columns: 1fr 1fr;
  }
  .xgw-suggestion-statuses button {
    min-height: 68px;
    border-bottom: 1px solid var(--xgw-ink);
  }
  .xgw-suggestion-statuses button:nth-child(2n) {
    border-right: 0;
  }
  .xgw-suggestion-statuses button:last-child {
    grid-column: 1/-1;
    border-bottom: 0;
  }
  .xgw-suggestion-list__item {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .xgw-suggestion-list__follow {
    grid-column: 1/-1;
    min-height: 38px;
    border-top: 1px solid var(--xgw-ink);
    border-left: 0;
  }
  .xgw-suggestion-list__item > div {
    padding: 14px;
  }
  .xgw-suggestion-box__footer {
    padding: 24px 22px;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
}
/* ===========================================================================
   35. 光学产业图谱：安静版正式视觉
   保留首页与领域页的品牌感；进入图谱后只使用白、灰与单一蓝色。
   ========================================================================== */
body.xgw-optics-technology-page .xgw-tech-path--devices {
  color: #20262d;
  border-color: #d8dee5;
  background: #f7f8fa;
  box-shadow: none;
}

body.xgw-optics-technology-page .xgw-tech-path--devices:hover {
  border-color: #1769aa;
  background: #fff;
  box-shadow: none;
  transform: none;
}

body.xgw-optics-technology-page .xgw-tech-path--devices > span,
body.xgw-optics-technology-page .xgw-tech-path--devices i {
  color: #1769aa;
}

body.xgw-optics-technology-page .xgw-device-atlas,
body.xgw-optics-technology-page .xgw-device-atlas *,
body.xgw-optics-technology-page .xgw-device-atlas *::before,
body.xgw-optics-technology-page .xgw-device-atlas *::after {
  box-sizing: border-box;
}

body.xgw-optics-technology-page .xgw-device-atlas {
  padding: clamp(30px, 4vw, 52px);
  color: #20262d;
  border-top: 1px solid #dce2e8;
  background: #f5f7f9;
}

body.xgw-optics-technology-page .xgw-device-atlas__head {
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.42fr);
  gap: 34px;
  align-items: end;
}

body.xgw-optics-technology-page .xgw-device-atlas__head p,
body.xgw-optics-technology-page .xgw-device-atlas__head aside b {
  color: #1769aa;
  font-size: 10px;
  letter-spacing: 0.08em;
}

body.xgw-optics-technology-page .xgw-device-atlas__head h2 {
  max-width: 780px;
  margin-top: 14px;
  color: #20262d;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(34px, 4.5vw, 54px);
  font-weight: 720;
  line-height: 1.18;
  letter-spacing: -0.045em;
}

body.xgw-optics-technology-page .xgw-device-atlas__head aside {
  padding: 16px 18px;
  color: #48515b;
  border: 1px solid #dce2e8;
  border-radius: 5px;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-atlas__head aside span {
  margin: 9px 5px 0 0;
  padding: 4px 7px;
  color: #5f6872;
  border: 1px solid #dfe4e9;
  border-radius: 3px;
  background: #f7f8fa;
}

body.xgw-optics-technology-page .xgw-device-tabs {
  margin-top: 28px;
  gap: 8px;
}

body.xgw-optics-technology-page .xgw-device-tabs button {
  min-height: 88px;
  color: #242b32;
  border: 1px solid #d8dee5;
  border-radius: 5px;
  background: #fff;
  box-shadow: none;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.xgw-optics-technology-page .xgw-device-tabs button:hover:not(.is-active) {
  color: #242b32;
  border-color: #9cacbb;
  background: #f9fafb;
  box-shadow: none;
  transform: none;
}

body.xgw-optics-technology-page .xgw-device-tabs button small {
  color: #1769aa;
}

body.xgw-optics-technology-page .xgw-device-tabs button strong {
  margin-top: 6px;
  font-size: 20px;
}

body.xgw-optics-technology-page .xgw-device-tabs button.is-active {
  color: #fff;
  border-color: #1769aa;
  background: #1769aa;
  box-shadow: none;
  transform: none;
}

body.xgw-optics-technology-page .xgw-device-tabs button.is-active small,
body.xgw-optics-technology-page .xgw-device-tabs button.is-active span {
  color: #fff;
}

body.xgw-optics-technology-page .xgw-device-sheet {
  margin-top: 14px;
  overflow: hidden;
  color: #20262d;
  border: 1px solid #d6dde4;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}

body.xgw-optics-technology-page .xgw-device-sheet > header {
  padding: 28px 30px;
  grid-template-columns: minmax(220px, 0.64fr) minmax(260px, 1fr) auto;
  gap: 24px;
  border-bottom: 1px solid #dce2e8;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-sheet > header h3 {
  margin-top: 8px;
  color: #20262d;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(36px, 4.5vw, 54px);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -0.055em;
}

body.xgw-optics-technology-page .xgw-device-sheet > header div > b {
  color: #1769aa;
}

body.xgw-optics-technology-page .xgw-device-sheet > header p {
  color: #48515b;
  font-size: 13px;
  line-height: 1.72;
}

body.xgw-optics-technology-page .xgw-device-sheet > header > em {
  color: #1769aa;
  border: 1px solid #b9cee0;
  border-radius: 3px;
  background: #f4f8fb;
}

body.xgw-optics-technology-page .xgw-device-sheet__keywords {
  padding: 11px 30px;
  border-bottom: 1px solid #e1e6eb;
  background: #fafbfc;
}

body.xgw-optics-technology-page .xgw-device-sheet__keywords span,
body.xgw-optics-technology-page .xgw-device-apps span {
  color: #59636d;
  border: 1px solid #dce2e8;
  border-radius: 3px;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-principle,
body.xgw-optics-technology-page .xgw-device-timeline {
  padding: 28px 30px;
  border-bottom: 1px solid #dce2e8;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-section-title > b {
  color: #fff;
  border-radius: 2px;
  background: #1769aa;
}

body.xgw-optics-technology-page .xgw-device-section-title > span {
  color: #252c33;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: 21px;
  font-weight: 680;
  letter-spacing: -0.02em;
}

body.xgw-optics-technology-page .xgw-device-principle ol {
  border-color: #dce2e8;
  border-radius: 4px;
}

body.xgw-optics-technology-page .xgw-device-principle li {
  border-color: #dce2e8;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-principle li b {
  color: #1769aa;
}

body.xgw-optics-technology-page .xgw-device-timeline ol {
  gap: 0;
}

body.xgw-optics-technology-page .xgw-device-timeline li {
  border-top-color: #aeb9c4;
}

body.xgw-optics-technology-page .xgw-device-timeline li::before {
  width: 9px;
  height: 9px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #1769aa;
  box-shadow: 0 0 0 1px #1769aa;
  transform: none;
}

body.xgw-optics-technology-page .xgw-device-timeline li > b {
  color: #59636d;
  border-radius: 3px;
  background: #edf0f3;
}

body.xgw-optics-technology-page .xgw-device-radar-grid article {
  border-color: #dce2e8;
  background: #fff;
}

body.xgw-optics-technology-page .xgw-device-radar-grid article:last-child {
  background: #fafbfc;
}

body.xgw-optics-technology-page .xgw-device-status,
body.xgw-optics-technology-page .xgw-device-status--live {
  color: #1769aa;
  border-color: #bdd0e0;
  border-radius: 3px;
  background: #f3f7fa;
}

body.xgw-optics-technology-page .xgw-device-atlas button:focus-visible,
body.xgw-optics-technology-page .xgw-device-atlas a:focus-visible {
  outline: 2px solid #1769aa;
  outline-offset: 3px;
}

@media (max-width: 760px) {
  body.xgw-optics-technology-page .xgw-device-atlas {
    padding: 28px 14px 36px;
  }
  body.xgw-optics-technology-page .xgw-device-atlas__head {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  body.xgw-optics-technology-page .xgw-device-atlas__head h2 {
    font-size: clamp(30px, 9vw, 39px);
    line-height: 1.2;
  }
  body.xgw-optics-technology-page .xgw-device-atlas__head h2 br {
    display: none;
  }
  body.xgw-optics-technology-page .xgw-device-tabs {
    display: flex;
    overflow-x: auto;
    padding: 1px 1px 8px;
    scroll-snap-type: x proximity;
  }
  body.xgw-optics-technology-page .xgw-device-tabs button {
    min-width: 154px;
    min-height: 84px;
    flex: 0 0 154px;
    scroll-snap-align: start;
  }
  body.xgw-optics-technology-page .xgw-device-sheet > header {
    padding: 24px 18px;
    grid-template-columns: 1fr;
    gap: 15px;
  }
  body.xgw-optics-technology-page .xgw-device-sheet > header h3 {
    font-size: 38px;
  }
  body.xgw-optics-technology-page .xgw-device-sheet > header > em {
    justify-self: start;
  }
  body.xgw-optics-technology-page .xgw-device-sheet__keywords,
  body.xgw-optics-technology-page .xgw-device-principle,
  body.xgw-optics-technology-page .xgw-device-timeline {
    padding: 20px 18px;
  }
  body.xgw-optics-technology-page .xgw-device-section-title {
    flex-wrap: wrap;
  }
  body.xgw-optics-technology-page .xgw-device-section-title small {
    width: calc(100% - 32px);
    margin: 3px 0 0 32px;
  }
  body.xgw-optics-technology-page .xgw-device-principle ol,
  body.xgw-optics-technology-page .xgw-device-timeline ol,
  body.xgw-optics-technology-page .xgw-device-radar-grid {
    grid-template-columns: 1fr;
  }
  body.xgw-optics-technology-page .xgw-device-principle li {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid #dce2e8;
  }
  body.xgw-optics-technology-page .xgw-device-principle li:last-child {
    border-bottom: 0;
  }
  body.xgw-optics-technology-page .xgw-device-timeline li {
    min-height: 0;
    padding: 12px 12px 18px 25px;
    border-top: 0;
    border-left: 1px solid #aeb9c4;
  }
  body.xgw-optics-technology-page .xgw-device-timeline li::before {
    top: 16px;
    left: -5px;
  }
  body.xgw-optics-technology-page .xgw-device-radar-grid article {
    min-height: 0;
    padding: 24px 18px;
    border-right: 0;
    border-bottom: 1px solid #dce2e8;
  }
  body.xgw-optics-technology-page .xgw-device-radar-grid article:last-child {
    border-bottom: 0;
  }
}
/* ===========================================================================
   36. 正式讨论页：素雅传统楼层（最终覆盖）
   楼层、作者、正文与回复动作清晰分区；不使用装饰性色块与位移动效。
   ========================================================================== */
body.xgw-topic-page {
  --xgw-thread-ink: #20262d;
  --xgw-thread-muted: #68727d;
  --xgw-thread-line: #dce2e8;
  --xgw-thread-soft: #f6f7f8;
  --xgw-thread-link: #1769aa;
  color: var(--xgw-thread-ink);
  background: #f3f5f7;
}

body.xgw-topic-page .xgw-topic-context {
  box-sizing: border-box;
  width: min(1080px, 100% - 36px);
  min-height: 48px;
  margin: 18px auto 10px;
  padding: 0 14px;
  color: var(--xgw-thread-muted);
  border: 1px solid var(--xgw-thread-line);
  border-radius: 5px;
  background: #fff;
}

body.xgw-topic-page .xgw-topic-context > div:first-child {
  gap: 14px;
}

body.xgw-topic-page .xgw-topic-context__actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

body.xgw-topic-page .xgw-topic-context__actions > span {
  color: #59636d;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

body.xgw-topic-page .xgw-topic-context__reply.btn {
  min-height: 34px;
  padding: 7px 12px;
  color: #fff;
  border: 1px solid #1769aa;
  border-radius: 4px;
  background: #1769aa;
  box-shadow: none;
  font-size: 13px;
  font-weight: 650;
}

body.xgw-topic-page .xgw-topic-context__reply.btn:hover,
body.xgw-topic-page .xgw-topic-context__reply.btn:focus-visible {
  color: #fff;
  border-color: #115486;
  background: #115486;
  box-shadow: none;
  transform: none;
}

body.xgw-topic-page .xgw-topic-context__actions.is-composer-open .xgw-topic-context__reply {
  display: none;
}

body.xgw-topic-page #main-outlet-wrapper {
  background: transparent;
}

body.xgw-topic-page #main-outlet {
  box-sizing: border-box;
  width: min(1080px, 100% - 36px);
  margin: 0 auto 54px;
  padding: 0;
  overflow: visible;
  border: 1px solid var(--xgw-thread-line);
  border-radius: 5px;
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page #topic-title {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 28px 30px 24px;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page #topic-title .title-wrapper {
  width: 100%;
}

body.xgw-topic-page #topic-title h1,
body.xgw-topic-page .fancy-title {
  color: var(--xgw-thread-ink);
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 720;
  line-height: 1.4;
  letter-spacing: -0.025em;
}

body.xgw-topic-page .container.posts {
  grid-template-areas: "posts";
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
}

body.xgw-topic-page .container.posts > .row,
body.xgw-topic-page .topic-area,
body.xgw-topic-page .posts-wrapper,
body.xgw-topic-page .post-stream {
  width: 100%;
  max-width: none;
  min-width: 0;
}

body.xgw-topic-page .container.posts .topic-navigation.with-topic-progress {
  box-sizing: border-box;
  display: flex !important;
  grid-area: posts !important;
  grid-row: 3 !important;
  position: sticky !important;
  top: auto !important;
  bottom: calc(env(safe-area-inset-bottom) + var(--composer-height, 0px));
  z-index: 30;
  width: auto;
  margin: -1px 24px 0 !important;
  padding: 8px 0;
  align-self: auto !important;
  align-items: center;
  justify-content: flex-end;
}

body.xgw-topic-page .container.posts .topic-navigation.with-topic-progress #topic-progress,
body.xgw-topic-page .container.posts .topic-navigation.with-topic-progress .topic-admin-menu-trigger,
body.xgw-topic-page .container.posts .topic-navigation.with-topic-progress .topic-content-language-preferences {
  color: #4c5964;
  border-color: #d5dde4;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(25, 35, 45, 0.08);
}

body.xgw-topic-page .topic-post {
  position: relative;
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--xgw-thread-line);
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page .topic-post:last-child {
  border-bottom: 0;
}

body.xgw-topic-page .topic-post:has(article.boxed)::after {
  content: "#" attr(data-post-number);
  position: absolute;
  top: 16px;
  left: 18px;
  z-index: 2;
  color: #7a8590;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body.xgw-topic-page .topic-post article.boxed {
  border: 0;
  background: #fff;
}

body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: stretch;
}

body.xgw-topic-page .topic-avatar {
  box-sizing: border-box;
  width: auto;
  height: auto;
  min-height: 100%;
  margin: 0;
  padding: 44px 17px 20px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  float: none;
  border: 0;
  border-right: 1px solid var(--xgw-thread-line);
  background: var(--xgw-thread-soft);
}

body.xgw-topic-page .topic-avatar .avatar {
  width: 44px;
  height: 44px;
  border: 1px solid #d5dce2;
  border-radius: 50% !important;
  box-shadow: none;
  filter: none;
}

body.xgw-topic-page .topic-body {
  box-sizing: border-box;
  width: auto;
  max-width: none;
  min-width: 0;
  padding: 0;
  float: none;
  border: 0;
  background: #fff;
}

body.xgw-topic-page .topic-meta-data {
  min-height: 50px;
  margin: 0;
  padding: 15px 24px 9px;
  border: 0;
  border-bottom: 1px solid #eef1f3;
  color: var(--xgw-thread-muted);
  background: #fff;
}

body.xgw-topic-page .topic-meta-data .names a {
  color: #303840;
  font-weight: 650;
}

body.xgw-topic-page .topic-meta-data .post-infos {
  margin-left: auto;
  color: #7a8590;
}

body.xgw-topic-page .topic-body .cooked {
  padding: 18px 24px 14px;
  color: #2d343b;
  font-size: 16px;
  line-height: 1.86;
}

body.xgw-topic-page .topic-body .cooked h1,
body.xgw-topic-page .topic-body .cooked h2,
body.xgw-topic-page .topic-body .cooked h3 {
  color: #20262d;
  font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-weight: 680;
  line-height: 1.5;
}

body.xgw-topic-page .topic-body .cooked blockquote {
  margin: 18px 0;
  padding: 10px 15px;
  color: #4f5963;
  border: 0;
  border-left: 3px solid #aeb8c2;
  background: #f6f7f8;
}

body.xgw-topic-page .topic-body .cooked pre,
body.xgw-topic-page .topic-body .cooked code {
  border-color: #dce2e8;
  background: #f6f7f8;
}

body.xgw-topic-page .topic-post .post-menu-area,
body.xgw-topic-page .topic-post .post-actions,
body.xgw-topic-page .topic-post nav.post-controls {
  margin: 0 24px;
  padding: 9px 0 14px;
  border: 0;
  border-top: 1px solid #eef1f3;
  background: transparent;
}

body.xgw-topic-page .topic-post button,
body.xgw-topic-page #main-outlet .btn {
  border-radius: 4px;
  box-shadow: none;
  transition: color 0.15s ease, background-color 0.15s ease;
}

body.xgw-topic-page .topic-post button:hover,
body.xgw-topic-page .topic-post button:active,
body.xgw-topic-page #main-outlet .btn:hover,
body.xgw-topic-page #main-outlet .btn:active {
  box-shadow: none;
  transform: none;
}

body.xgw-topic-page #main-outlet .btn-primary {
  color: #fff;
  border-color: #1769aa;
  background: #1769aa;
}

body.xgw-topic-page #main-outlet .btn-primary:hover,
body.xgw-topic-page #main-outlet .btn-primary:focus-visible {
  color: #fff;
  border-color: #115486;
  background: #115486;
}

body.xgw-topic-page .topic-footer-main-buttons,
body.xgw-topic-page .topic-map,
body.xgw-topic-page .more-topics__container {
  margin-right: 24px;
  margin-left: 24px;
}

body.xgw-topic-page .more-topics__container .topic-list,
body.xgw-topic-page .more-topics__container .topic-list-item {
  border-color: var(--xgw-thread-line);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page .more-topics__container .topic-list-item:hover {
  background: #f8f9fa;
  box-shadow: none;
  transform: none;
}

body.xgw-topic-page #reply-control .composer-container,
body.xgw-topic-page #reply-control .d-editor-textarea-wrapper,
body.xgw-topic-page #reply-control .composer-fields {
  color: #20262d;
  border-color: #d6dde4;
  background: #fff;
  box-shadow: none;
}

body.xgw-topic-page #reply-control .composer-container {
  border-top: 1px solid #cfd7df;
  box-shadow: 0 -6px 22px rgba(25, 35, 45, 0.08);
}

@media (max-width: 760px) {
  body.xgw-topic-page {
    background: #fff;
  }
  body.xgw-topic-page:has(.xgw-topic-context__reply) {
    padding-bottom: calc(66px + env(safe-area-inset-bottom));
  }
  body.xgw-topic-page:has(.xgw-topic-context__actions.is-composer-open) {
    padding-bottom: 0;
  }
  body.xgw-topic-page .xgw-topic-context {
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid var(--xgw-thread-line);
    border-radius: 0;
  }
  body.xgw-topic-page .xgw-topic-context > div:first-child {
    gap: 10px;
  }
  body.xgw-topic-page .xgw-topic-context > div:first-child a + a {
    padding-left: 10px;
  }
  body.xgw-topic-page .xgw-topic-context__actions:has(.xgw-topic-context__reply) {
    box-sizing: border-box;
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 70;
    min-height: 58px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    justify-content: space-between;
    border-top: 1px solid #d7dee5;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 -4px 16px rgba(25, 35, 45, 0.08);
  }
  body.xgw-topic-page .xgw-topic-context__actions.is-composer-open {
    display: none;
  }
  html.composer-open body.xgw-topic-page .xgw-topic-context__actions {
    display: none;
  }
  body.xgw-topic-page .xgw-topic-context__reply.btn {
    min-width: 112px;
    min-height: 44px;
    justify-content: center;
  }
  body.xgw-topic-page:has(.xgw-topic-context__actions:not(.is-composer-open) .xgw-topic-context__reply) .container.posts .topic-navigation.with-topic-progress {
    bottom: calc(66px + env(safe-area-inset-bottom));
  }
  body.xgw-topic-page .container.posts .topic-navigation.with-topic-progress {
    margin-right: 14px !important;
    margin-left: 14px !important;
  }
  body.xgw-topic-page #main-outlet {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
  }
  body.xgw-topic-page #topic-title {
    padding: 20px 16px 18px;
  }
  body.xgw-topic-page #topic-title h1,
  body.xgw-topic-page .fancy-title {
    font-size: 22px;
    line-height: 1.42;
  }
  body.xgw-topic-page .topic-post:has(article.boxed)::after {
    top: 13px;
    right: 13px;
    left: auto;
  }
  body.xgw-topic-page .topic-post article.boxed,
  body.xgw-topic-page .topic-post article.onscreen-post {
    padding: 0;
    border: 0;
  }
  body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
    grid-template-columns: 52px minmax(0, 1fr);
  }
  body.xgw-topic-page .topic-avatar {
    min-height: 100%;
    margin: 0;
    padding: 15px 8px 18px;
    border-right: 1px solid var(--xgw-thread-line);
  }
  body.xgw-topic-page .topic-avatar .avatar {
    width: 34px;
    height: 34px;
  }
  body.xgw-topic-page .topic-meta-data {
    min-height: 54px;
    margin: 0;
    padding: 13px 48px 9px 13px;
  }
  body.xgw-topic-page .topic-meta-data .names {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
  }
  body.xgw-topic-page .topic-meta-data .names .first {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  body.xgw-topic-page .topic-meta-data .post-infos {
    margin-left: 5px;
  }
  body.xgw-topic-page .topic-body .cooked {
    padding: 15px 13px 12px;
    font-size: 15.5px;
    line-height: 1.8;
  }
  body.xgw-topic-page .topic-post .post-menu-area,
  body.xgw-topic-page .topic-post .post-actions,
  body.xgw-topic-page .topic-post nav.post-controls {
    margin: 0 13px;
    padding: 8px 0 12px;
  }
  body.xgw-topic-page .topic-footer-main-buttons,
  body.xgw-topic-page .topic-map,
  body.xgw-topic-page .more-topics__container {
    margin-right: 14px;
    margin-left: 14px;
  }
  body.xgw-topic-page .more-topics__container .topic-list-item td.topic-list-data {
    padding: 13px 2px;
  }
  body.xgw-topic-page #reply-control .composer-container {
    border-radius: 0;
  }
}
/* ==========================================================================
   37. 首页正式视觉 V04：瓷白海军 + 柔和圆角

   只作用于个人首页与论坛目录。分类列表、最新页、话题正文、回复区和各专项
   页面继续使用各自的低彩阅读样式。数值与本地 palette=porcelain、shape=soft
   小样保持一致，但不携带实验页的 data 属性和方案切换器。
   ========================================================================== */
body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) {
  --xgw-primary: #315b7d;
  --xgw-primary-deep: #23445e;
  --xgw-accent: #315b7d;
  --xgw-success: #506e65;
  --xgw-warning: #916a49;
  --xgw-danger: #8a4652;
  --xgw-ink: #202d3a;
  --xgw-paper: #ffffff;
  --xgw-paper-2: #ecf0f3;
  --xgw-tint: #e7eef4;
  --xgw-tint-2: #f7f9fb;
  --xgw-muted: #647181;
  --xgw-muted-2: #8a97a3;
  --xgw-page-bg: #f4f6f8;
  --xgw-hero-bg: #ffffff;
  --xgw-bar-bg: #e9eef2;
  --xgw-bar-fg: #202d3a;
  --xgw-line: #c5d0d9;
  --xgw-line-soft: #e5ebf0;
  --xgw-grid: rgba(49, 91, 125, 0.046);
  --xgw-optic-bg: #29475d;
  --xgw-border-w: 1px;
  --xgw-leftbar: 3px;
  --xgw-transition: 0.16s ease;
  --xgw-radius: 7px;
  --xgw-shape-card: 10px;
  --xgw-shape-large: 13px;
  --xgw-shape-control: 7px;
  --xgw-shape-chip: 999px;
  --xgw-shape-line: #c5c5c5;
  --xgw-shape-line-soft: #e8e8e8;
  --xgw-home-line: var(--xgw-shape-line);
  --xgw-home-line-soft: var(--xgw-shape-line-soft);
  --xgw-home-grid: var(--xgw-grid);
  --xgw-shadow: 0 8px 22px rgba(40, 40, 40, 0.075);
  --xgw-shadow-sm: 0 3px 10px rgba(40, 40, 40, 0.055);
  color: var(--xgw-ink);
  background: var(--xgw-page-bg);
}

body.xgw-pure-home.xgw-p0-home {
  background: linear-gradient(var(--xgw-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-grid) 1px, transparent 1px), var(--xgw-page-bg);
  background-size: 24px 24px;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-forum-shell {
  background: var(--xgw-page-bg);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-forum-shell__bar {
  color: var(--xgw-bar-fg);
  background: var(--xgw-bar-bg);
  border-color: var(--xgw-primary);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-forum-shell__bar button,
.nav-tabs__item--active,
.nav-tabs__item--active:hover,
.xgw-p0__button--primary,
.xgw-p0__button--primary:hover,
.xgw-p0__mast-meta span:last-child) {
  color: #ffffff;
  background: var(--xgw-primary);
  border-color: var(--xgw-primary);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__button--primary:hover {
  background: var(--xgw-primary-deep);
  border-color: var(--xgw-primary-deep);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-hero {
  color: var(--xgw-ink);
  background: linear-gradient(var(--xgw-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-grid) 1px, transparent 1px), var(--xgw-hero-bg);
  background-size: 28px 28px;
  border-color: var(--xgw-line);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-hero::before {
  border-color: var(--xgw-line);
  border-radius: 0 0 0 var(--xgw-shape-large);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-hero-tag,
.xgw-hero-title) {
  color: var(--xgw-ink);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-hero-tag {
  border-color: var(--xgw-line);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-hero-sub {
  color: var(--xgw-muted);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-p0,
.xgw-forum-shell) {
  overflow: hidden;
  border-radius: var(--xgw-shape-large);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.nav-tabs,
.category-card,
.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card,
.xgw-footer,
.xgw-p0__portrait,
.xgw-p0__optic-stage,
.xgw-p0__course-note,
.xgw-p0__project) {
  border-radius: var(--xgw-shape-card);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.nav-tabs,
.category-card,
.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card,
.xgw-p0__portrait,
.xgw-p0__course-note,
.xgw-p0__project) {
  overflow: hidden;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-forum-shell__bar button,
.xgw-hero-tag,
.xgw-section__num,
.xgw-section__more,
.category-card__icon,
.category-card__action,
.xgw-ai-directory-card__index,
.xgw-ai-directory-card__action,
.xgw-tech-directory-card > b,
.xgw-salary-directory-card > b,
.xgw-suggestion-directory-card > b,
.xgw-p0__eyebrow,
.xgw-p0__button,
.xgw-p0__wordmark-mark,
.xgw-p0__project-no,
.xgw-p0__project-status,
.xgw-p0__project-link) {
  border-radius: var(--xgw-shape-control);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-tag,
.xgw-p0__principles span,
.xgw-module-card__scope span) {
  border-radius: var(--xgw-shape-chip);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .nav-tabs {
  padding: 4px;
  gap: 4px;
  background: var(--xgw-paper-2);
  border-color: var(--xgw-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .nav-tabs__item {
  color: var(--xgw-ink);
  background: var(--xgw-paper);
  border-right: 0;
  border-radius: var(--xgw-shape-control);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .nav-tabs__item.nav-tabs__item--active,
body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .nav-tabs__item.nav-tabs__item--active:hover,
body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-forum-shell__bar button {
  color: #ffffff;
  background: var(--xgw-primary);
  border-color: var(--xgw-primary);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-section__line {
  height: 1px;
  border-radius: var(--xgw-shape-chip);
  background: linear-gradient(90deg, var(--xgw-shape-line), transparent 94%);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.category-card,
.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card,
.xgw-footer) {
  border-color: var(--xgw-line);
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.category-card,
.xgw-ai-directory-card,
.xgw-tech-directory-card,
.xgw-salary-directory-card,
.xgw-suggestion-directory-card):hover {
  transform: none;
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.category-card__header,
.category-card__sub,
.category-card__footer,
.sub-item,
.xgw-tech-directory-card__head,
.xgw-tech-directory-card__paths span,
.xgw-salary-directory-card__stamp,
.xgw-suggestion-directory-card > div,
.xgw-suggestion-directory-card li) {
  border-color: var(--xgw-shape-line-soft);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .category-card__icon {
  color: #ffffff;
  background: var(--cat-color, var(--xgw-primary));
  border-color: var(--cat-color, var(--xgw-primary));
  border-color: color-mix(in srgb, var(--cat-color, var(--xgw-primary)) 72%, var(--xgw-ink));
  box-shadow: none;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .category-card:hover .category-card__icon {
  transform: none;
  box-shadow: none;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-module-card__scope,
.category-card__footer,
.xgw-tech-directory-card__paths span,
.xgw-suggestion-directory-card li,
.xgw-suggestion-directory-card li:last-child) {
  background: var(--xgw-paper-2);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-ai-directory-card__action,
.xgw-tech-directory-card > b,
.xgw-salary-directory-card > b,
.xgw-suggestion-directory-card > b) {
  color: #ffffff;
  background: var(--xgw-primary);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__hero-copy {
  background: linear-gradient(var(--xgw-grid) 1px, transparent 1px), linear-gradient(90deg, var(--xgw-grid) 1px, transparent 1px), var(--xgw-paper);
  background-size: 28px 28px;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__portrait {
  background: var(--xgw-optic-bg);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__optic-stage {
  background: radial-gradient(circle at 50% 50%, rgba(49, 91, 125, 0.28), transparent 40%), linear-gradient(rgba(255, 255, 255, 0.11) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.11) 1px, transparent 1px), var(--xgw-optic-bg);
  background-size: auto, 34px 34px, 34px 34px, auto;
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-p0__course-note,
.xgw-p0__project) {
  box-shadow: var(--xgw-shadow-sm);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__project:hover {
  transform: none;
  box-shadow: var(--xgw-shadow);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__footer {
  color: var(--xgw-ink);
  background: var(--xgw-paper-2);
  border-top-color: var(--xgw-line);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) :where(.xgw-p0__footer span,
.xgw-p0__footer p) {
  color: var(--xgw-muted);
}

body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-p0__footer a {
  border-color: var(--xgw-line);
}

@media (max-width: 700px) {
  body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) {
    --xgw-shape-large: var(--xgw-shape-card);
  }
  body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .nav-tabs {
    gap: 3px;
  }
}
/* === 产业图谱正式入口与服务端资格状态 ===
   主题只负责公开导览和登录回跳；/xgw/industry-map 及全部数据接口
   必须由服务器逐次核验资格与 expires_at。 */
.xgw-industry-directory-card,
.xgw-industry-directory-card *,
.xgw-industry-access-shell,
.xgw-industry-access-shell * {
  box-sizing: border-box;
}

.xgw-industry-directory-card {
  grid-template-columns: minmax(285px, 1.12fr) minmax(280px, 0.9fr) minmax(176px, 0.52fr);
}

.xgw-industry-directory-card__actions {
  padding: 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  border-left: 1px solid #d4d9dd;
  background: #f5f6f4;
}

.xgw-industry-directory-card__actions a {
  min-height: 44px;
  padding: 9px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #c8cfd4;
  border-radius: 8px;
  color: #18304a;
  background: #ffffff;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}

.xgw-industry-directory-card__actions a:hover,
.xgw-industry-directory-card__actions a:focus-visible {
  color: #18304a;
  border-color: #8795a2;
  background: #eef1f2;
}

.xgw-industry-directory-card__actions a:focus-visible {
  outline: 2px solid #315b7d;
  outline-offset: 2px;
}

.xgw-industry-directory-card__actions .xgw-industry-directory-card__protected {
  color: #ffffff;
  border-color: #18304a;
  background: #18304a;
}

.xgw-industry-directory-card__actions .xgw-industry-directory-card__protected:hover,
.xgw-industry-directory-card__actions .xgw-industry-directory-card__protected:focus-visible,
.xgw-p0__project-actions .xgw-p0__project-link--protected,
body.xgw-pure-home .xgw-p0__project--map .xgw-p0__project-link--protected {
  color: #ffffff;
  border-color: #18304a;
  background: #18304a;
}

.xgw-industry-directory-card__actions small {
  color: #6b747b;
  font-size: 9px;
  font-weight: 750;
  line-height: 1.45;
  text-align: center;
}

.xgw-mini-lock {
  position: relative;
  width: 12px;
  height: 10px;
  flex: 0 0 12px;
  display: inline-block;
  border: 1.5px solid currentColor;
  border-radius: 2px;
}

.xgw-mini-lock::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 2px;
  width: 6px;
  height: 7px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
}

.xgw-industry-access-shell {
  width: min(100% - 32px, 960px);
  min-height: min(640px, 100vh - 160px);
  margin: 28px auto 48px;
  display: grid;
  place-items: center;
  color: #172a3d;
}

.xgw-industry-access {
  width: min(100%, 640px);
  padding: clamp(42px, 7vw, 76px) clamp(24px, 6vw, 58px);
  border: 1px solid #d4d9dd;
  border-radius: 16px;
  background: #f7f8f6;
  box-shadow: 0 18px 50px rgba(23, 42, 61, 0.06);
  text-align: center;
}

.xgw-industry-access__lock {
  width: 42px;
  height: 42px;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  border: 1px solid #cbd2d7;
  border-radius: 50%;
  color: #18304a;
  background: #ffffff;
}

.xgw-industry-access__lock .xgw-mini-lock {
  width: 13px;
  height: 11px;
  flex-basis: 13px;
}

.xgw-industry-access__eyebrow {
  margin: 0;
  color: #6a747d;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.xgw-industry-access h1 {
  margin: 14px 0 0;
  color: #172a3d;
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-size: clamp(30px, 5vw, 44px);
  line-height: 1.14;
  letter-spacing: -0.045em;
}

.xgw-industry-access__copy {
  max-width: 35em;
  margin: 18px auto 0;
  color: #5f6971;
  font-size: 13px;
  line-height: 1.8;
}

.xgw-industry-access__meta {
  margin: 22px 0 0;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-top: 1px solid #dfe3e6;
  border-bottom: 1px solid #dfe3e6;
  color: #68727a;
  font-size: 11px;
  line-height: 1.55;
}

.xgw-industry-access__meta strong {
  color: #18304a;
}

.xgw-industry-access__actions {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.xgw-industry-access__actions a,
.xgw-industry-access__actions button {
  min-height: 44px;
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #c6cdd3;
  border-radius: 8px;
  color: #18304a;
  background: #ffffff;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.xgw-industry-access__actions .is-primary {
  color: #ffffff;
  border-color: #18304a;
  background: #18304a;
}

.xgw-industry-access[data-access-state=expired] .xgw-industry-access__meta strong {
  color: #7b4f3f;
}

@media (max-width: 820px) {
  .xgw-industry-directory-card {
    grid-template-columns: 1fr;
  }
  .xgw-industry-directory-card__actions {
    border-top: 1px solid #d4d9dd;
    border-left: 0;
  }
}
@media (max-width: 600px) {
  .xgw-industry-directory-card__actions {
    padding: 12px;
  }
  .xgw-industry-directory-card__actions a {
    width: 100%;
    font-size: 11px;
  }
  .xgw-industry-access-shell {
    width: calc(100% - 20px);
    min-height: calc(100vh - 110px);
    margin: 10px auto 24px;
  }
  .xgw-industry-access {
    padding: 34px 18px;
    border-radius: 12px;
  }
  .xgw-industry-access h1 {
    font-size: 29px;
  }
  .xgw-industry-access__copy {
    font-size: 13px;
  }
  .xgw-industry-access__meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    text-align: left;
  }
  .xgw-industry-access__actions {
    align-items: stretch;
    flex-direction: column;
  }
  .xgw-industry-access__actions a,
  .xgw-industry-access__actions button {
    width: 100%;
  }
}
/* 最终优先级：确保后续正式主题段不会覆盖第二轮收敛。 */
body.xgw-pure-home.xgw-p0-home .xgw-p0__hero,
body.xgw-pure-home.xgw-p0-home .xgw-p0__brief {
  min-height: min(760px, 100svh - 76px);
}

.xgw-industry-directory-card {
  grid-template-columns: minmax(285px, 1.12fr) minmax(280px, 0.9fr) minmax(190px, 0.48fr);
}

.xgw-industry-directory-card__actions .xgw-industry-directory-card__protected {
  min-height: 54px;
  border-radius: 10px;
  font-size: 12px;
}

body.xgw-topic-page #main-outlet {
  border-color: #e1e7ec;
  border-radius: 13px;
  overflow: hidden;
}

body.xgw-topic-page #topic-title {
  border-bottom-color: #e9eef2;
}

body.xgw-topic-page .topic-post {
  border-bottom-color: #edf1f4;
}

body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
  grid-template-columns: 92px minmax(0, 1fr);
}

body.xgw-topic-page .topic-avatar {
  padding: 44px 20px 22px;
  border-right: 0;
  background: #edf5fa;
}

body.xgw-topic-page .topic-meta-data {
  border-bottom: 0;
}

body.xgw-topic-page .topic-post .post-menu-area,
body.xgw-topic-page .topic-post .post-actions,
body.xgw-topic-page .topic-post nav.post-controls {
  border-top: 0;
}

body.xgw-topic-page #reply-control .composer-container {
  min-height: 430px;
  border: 1px solid #d8e1e8;
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  box-shadow: 0 -10px 32px rgba(32, 45, 58, 0.1);
}

body.xgw-topic-page #reply-control .d-editor-textarea-wrapper {
  min-height: 220px;
  border-radius: 8px;
}

body.xgw-topic-page #reply-control textarea.d-editor-input {
  min-height: 190px;
  line-height: 1.75;
}

@media (max-width: 820px) {
  body.xgw-pure-home.xgw-p0-home .xgw-p0__hero,
  body.xgw-pure-home.xgw-p0-home .xgw-p0__brief {
    min-height: auto;
  }
}
@media (max-width: 760px) {
  body.xgw-topic-page #main-outlet {
    border-radius: 0;
  }
  body.xgw-topic-page .topic-post article.boxed > .post__row.row:has(> .topic-avatar) {
    grid-template-columns: 48px minmax(0, 1fr);
  }
  body.xgw-topic-page .topic-avatar {
    padding: 14px 7px 18px;
    background: #f0f6fa;
  }
  body.xgw-topic-page #reply-control .composer-container {
    min-height: min(70svh, 540px);
    border-right: 0;
    border-left: 0;
    border-radius: 12px 12px 0 0;
  }
  body.xgw-topic-page #reply-control .d-editor-textarea-wrapper {
    min-height: 180px;
  }
}
/* 装饰性呼吸灯不承载信息，关闭循环动画以减少移动端重绘。 */
.xgw-pulse,
.xgw-ai-lab__bar b i,
.xgw-tech-hub__bar b i {
  animation: none !important;
}

/* YULIANG_CARD_START: isolated self-hosted leisure entry, 2026-10-11. */
body .xgw-directory a.xgw-yuliang-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 340px;
  overflow: hidden;
  color: #29464b;
  background: #fffdf7;
  border: 1px solid #d9cebb;
  border-radius: 16px;
  text-decoration: none;
  box-shadow: 0 3px 12px rgba(70, 54, 30, 0.04);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

body .xgw-directory a.xgw-yuliang-card:hover {
  color: #29464b;
  border-color: #b6a17e;
  box-shadow: 0 8px 24px rgba(70, 54, 30, 0.1);
  transform: translateY(-3px);
}

body .xgw-directory a.xgw-yuliang-card:active {
  transform: translateY(-1px);
}

body .xgw-directory a.xgw-yuliang-card:focus-visible {
  outline: 3px solid #446f74;
  outline-offset: 4px;
}

body .xgw-directory .xgw-yuliang-card__visual {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 180px;
  flex: 1 0 auto;
  overflow: hidden;
  background: #f3eee3;
}

body .xgw-directory .xgw-yuliang-card__visual svg {
  display: block;
  width: 100%;
  height: 210px;
}

body .xgw-directory .xgw-yuliang-card__stamp {
  position: absolute;
  top: 14px;
  left: 18px;
  padding: 4px 9px;
  border: 1px solid #ded4c1;
  border-radius: 5px;
  background: #fffdf3;
  color: #6b624e;
  font-size: 11px;
  line-height: 1.5;
}

body .xgw-directory .xgw-yuliang-card__content {
  padding: 19px 24px 17px;
}

body .xgw-directory a.xgw-yuliang-card h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  margin: 0;
  color: #294c53;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
}

body .xgw-directory .xgw-yuliang-card__subtitle {
  color: #70664f;
  font-size: 13px;
  font-weight: 500;
}

body .xgw-directory a.xgw-yuliang-card p {
  margin: 10px 0 13px;
  color: #666551;
  font-size: 14px;
  line-height: 1.7;
}

body .xgw-directory .xgw-yuliang-card__topics {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

body .xgw-directory .xgw-yuliang-card__topics span {
  padding: 3px 9px;
  border-radius: 5px;
  background: #f0ece1;
  color: #736a55;
  font-size: 11px;
  line-height: 1.5;
}

body .xgw-directory .xgw-yuliang-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding: 14px 24px;
  border-top: 1px solid #e6decc;
  background: #f6f2e8;
  color: #706953;
  font-size: 11px;
  line-height: 1.5;
}

body .xgw-directory .xgw-yuliang-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  padding: 0 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #294c53;
  color: #fffdf7;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

body .xgw-directory .xgw-yuliang-card__cta b {
  font-size: 17px;
}

@media (max-width: 580px) {
  body .xgw-directory .xgw-yuliang-card__visual svg {
    height: 185px;
  }
  body .xgw-directory .xgw-yuliang-card__content {
    padding: 17px 20px;
  }
  body .xgw-directory .xgw-yuliang-card__footer {
    padding: 12px 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body .xgw-directory a.xgw-yuliang-card {
    transition: none;
  }
  body .xgw-directory a.xgw-yuliang-card:hover,
  body .xgw-directory a.xgw-yuliang-card:active {
    transform: none;
  }
}
/* YULIANG_CARD_END */
/* AI_TOOLS_MENU_START: approved local menu, 2026-10-11. */
.xgw-ai-menu {
  width: min(560px, 100% - 32px);
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 0;
  overflow: auto;
  color: #294c53;
  background: #fffdf7;
  border: 1px solid #cbd7cf;
  border-radius: 20px;
  box-shadow: 0 24px 80px rgba(25, 48, 43, 0.2);
  font-family: "Microsoft YaHei", sans-serif;
}

.xgw-ai-menu::backdrop {
  background: rgba(25, 39, 37, 0.46);
}

.xgw-ai-menu__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 28px 28px 20px;
}

.xgw-ai-menu__eyebrow {
  margin: 0 0 10px;
  color: #718b80;
  font: 11px Georgia, serif;
  letter-spacing: 2px;
}

.xgw-ai-menu h2 {
  margin: 0;
  color: #294c53;
  font-size: 26px;
  line-height: 1.35;
}

.xgw-ai-menu__intro {
  margin: 9px 0 0;
  color: #65746b;
  font-size: 14px;
  line-height: 1.6;
}

.xgw-ai-menu__close {
  flex: none;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #526e63;
  background: #edf1e9;
  border: 1px solid #d7dfd4;
  border-radius: 50%;
  cursor: pointer;
}

.xgw-ai-menu__close svg {
  width: 18px;
  height: 18px;
}

.xgw-ai-menu__links {
  display: grid;
  gap: 12px;
  padding: 0 28px 24px;
}

.xgw-ai-menu__link {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 15px;
  min-height: 114px;
  padding: 19px;
  color: #294c53;
  background: #eef3ed;
  border: 1px solid #d2ddd2;
  border-radius: 12px;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease;
}

.xgw-ai-menu__link:hover {
  color: #294c53;
  background: #e4ede4;
  border-color: #9eb5a1;
}

.xgw-ai-menu__link--learning {
  background: #f6f1e4;
  border-color: #e0d7c2;
}

.xgw-ai-menu__link--learning:hover {
  background: #eee5d1;
  border-color: #c4b084;
}

.xgw-ai-menu__icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  background: #d8e5d8;
  color: #3e6657;
  border-radius: 10px;
}

.xgw-ai-menu__link--learning .xgw-ai-menu__icon {
  color: #95713c;
  background: #e9ddbd;
}

.xgw-ai-menu__icon svg {
  width: 25px;
  height: 25px;
}

.xgw-ai-menu__label {
  display: block;
  margin-bottom: 5px;
  color: #294c53;
  font-size: 17px;
  line-height: 1.4;
  font-weight: 700;
}

.xgw-ai-menu__description {
  display: block;
  color: #667466;
  font-size: 12px;
  line-height: 1.6;
}

.xgw-ai-menu__domain {
  display: block;
  margin-top: 7px;
  color: #778576;
  font: 11px Georgia, serif;
  overflow-wrap: anywhere;
}

.xgw-ai-menu__arrow {
  font-size: 23px;
  font-weight: 400;
}

.xgw-ai-menu__footer {
  margin: 0;
  padding: 16px 28px;
  color: #738072;
  background: #f3f3e9;
  border-top: 1px solid #e0e4d6;
  font-size: 11px;
  line-height: 1.7;
}

.xgw-ai-menu a:focus-visible, .xgw-ai-menu button:focus-visible {
  outline: 3px solid #446f74;
  outline-offset: 3px;
}

@media (max-width: 400px) {
  .xgw-ai-menu__header {
    padding: 22px 20px 18px;
  }
  .xgw-ai-menu__links {
    padding: 0 20px 20px;
  }
  .xgw-ai-menu__link {
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    gap: 11px;
    padding: 14px 12px;
  }
  .xgw-ai-menu__icon {
    width: 40px;
    height: 44px;
  }
  .xgw-ai-menu__label {
    font-size: 16px;
  }
  .xgw-ai-menu__footer {
    padding: 14px 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .xgw-ai-menu__link {
    transition: none;
  }
}
/* AI_TOOLS_MENU_END */
/* QA_REMAINING_START: local candidate, 2026-10-11; no data or permission changes. */
/* QA-005: six existing filters, two columns, unchanged touch target. */
@media (max-width: 700px) {
  body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-directory .nav-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 4px;
  }
  body.xgw-pure-home:is(.xgw-p0-home, .xgw-directory-home) .xgw-directory .nav-tabs__item {
    width: auto;
    min-width: 0;
    min-height: 44px;
    padding: 8px 6px;
    font-size: 13px;
    line-height: 1.5;
    white-space: normal;
    border: 0;
  }
}
/* QA-009: only the admin user list; search gets its own row on narrow screens. */
@media (max-width: 620px) {
  body.admin-interface .admin-users-list .d-filter-controls {
    flex-wrap: wrap;
    min-width: 0;
  }
  body.admin-interface .admin-users-list .d-filter-controls__inputs {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
  }
  body.admin-interface .admin-users-list .filter-input-container {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }
  body.admin-interface .admin-users-list .d-filter-controls__input {
    flex: 1 1 0%;
    min-width: 0;
    width: 100%;
    min-height: 42px;
  }
  body.admin-interface .admin-users-list .d-filter-controls__dropdowns {
    flex: 1 1 10em;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
  }
  body.admin-interface .admin-users-list .d-filter-controls__dropdowns select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }
  body.admin-interface .admin-users-list .d-filter-controls__reset {
    flex: 0 0 auto;
    min-height: 44px;
  }
}
/* QA-007: formatting tools only, not submit/cancel buttons or editor behavior. */
#reply-control .d-editor-button-bar .btn {
  border: 1px solid #d8e1e8;
  border-radius: 6px;
  box-shadow: none;
  color: #526776;
  background: #fff;
  min-height: 36px;
  padding: 7px 9px;
  transform: none;
  transition: background-color 0.1s ease, border-color 0.1s ease;
}

#reply-control .d-editor-button-bar .btn:is(:hover, :active):not(:disabled) {
  border-color: #a9bfce;
  box-shadow: none;
  color: #264e6b;
  background: #edf4f8;
  transform: none;
}

#reply-control .d-editor-button-bar .btn .d-icon {
  color: currentColor;
}

#reply-control .d-editor-button-bar .btn:focus-visible {
  outline: 2px solid #315b7d;
  outline-offset: 2px;
}

#reply-control .d-editor-button-bar .btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

@media (max-width: 700px) {
  #reply-control .d-editor-button-bar .btn {
    min-height: 44px;
    min-width: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  #reply-control .d-editor-button-bar .btn {
    transition: none;
  }
}
/* QA_REMAINING_END */
/* XGW_FRIEND_FORUM_START */
.xgw-friends {
  margin: 46px 0 40px;
}

.xgw-friends .xgw-friends__heading {
  margin: 0 0 18px;
}

.xgw-friends .xgw-section__title {
  margin: 0;
  font-size: 22px;
  font-weight: 750;
  line-height: 1.35;
}

.xgw-friends__note {
  color: #66777b;
  font-size: 13px;
  white-space: nowrap;
}

.xgw-friends__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.xgw-friends .xgw-friends__card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 20px 12px;
  align-items: start;
  box-sizing: border-box;
  min-width: 0;
  min-height: 250px;
  padding: 24px 20px;
  overflow: hidden;
  color: #24484f;
  background: #faf8f0;
  border: 1px solid #d9d2bf;
  border-radius: 16px;
  box-shadow: 0 7px 24px rgba(42, 63, 68, 0.045);
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.xgw-friends .xgw-friends__card:hover {
  color: #24484f;
  border-color: #809b91;
  box-shadow: 0 10px 28px rgba(42, 63, 68, 0.09);
}

.xgw-friends .xgw-friends__card:focus-visible {
  outline: 3px solid #315a60;
  outline-offset: 5px;
}

.xgw-friends__art {
  display: block;
  width: 100%;
  margin-top: 20px;
}

.xgw-friends__art svg {
  display: block;
  width: 100%;
  height: auto;
}

.xgw-friends__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}

.xgw-friends__eyebrow {
  margin-bottom: 11px;
  color: #72715f;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.xgw-friends__title {
  display: block;
  margin-bottom: 10px;
  color: #24484f;
  font-size: 26px;
  font-weight: 750;
  line-height: 1.3;
}

.xgw-friends__title span {
  margin-left: 6px;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.035em;
}

.xgw-friends__description {
  color: #5f6b65;
  font-size: 15px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.xgw-friends__domain {
  margin-top: 12px;
  color: #6d746b;
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.xgw-friends__action {
  display: flex;
  grid-column: 1/-1;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid #e2ddcd;
}

.xgw-friends__cta {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 46px;
  box-sizing: border-box;
  padding: 10px 16px;
  color: #fff;
  background: #294d53;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
  white-space: nowrap;
}

.xgw-friends__cta > span {
  font-size: 22px;
  font-weight: 400;
}

.xgw-friends__external {
  color: #66716a;
  font-size: 11px;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .xgw-friends__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .xgw-friends {
    margin: 32px 0;
  }
  .xgw-friends .xgw-section__title {
    font-size: 19px;
  }
  .xgw-friends__note {
    font-size: 11px;
  }
  .xgw-friends__grid {
    grid-template-columns: 1fr;
  }
  .xgw-friends__description {
    font-size: 14px;
  }
}
@media (max-width: 360px) {
  .xgw-friends .xgw-friends__card {
    grid-template-columns: 54px minmax(0, 1fr);
    column-gap: 10px;
    padding: 20px;
  }
  .xgw-friends__action {
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .xgw-friends .xgw-friends__card {
    transition: none;
  }
}
/* XGW_FRIEND_FORUM_END */
