/**
 * Msg2me 全局样式
 * 通用组件、工具类、响应式适配
 */

/* ===== 全站版心体系（2026-09-15 P0）=====
   规则：宽屏封顶居中，窄屏 100% 自适应；nav/footer 的背景继续通宽，
   内层内容靠同一档版心对齐，跨页跳转不发生版心跳变。
   --site-wide：门户/网格页（首页、商城、社区列表、subsite 子站）
   --site-col：阅读+侧栏（帖子/资讯详情）
   --site-read：纯正文（工具页、信息流单列）
   导航/页脚内层与内容区用同一对齐公式（gutter 在留白内侧）。 */
:root {
    --site-wide: 1600px;
    --site-col: 1200px;
    --site-read: 900px;
    --site-gutter: 20px;
    --block-gap: 20px;
}
html, body { max-width: 100%; overflow-x: clip; }

/* 覆盖 Bootstrap .container 默认 1320 上限为本站宽档 1600（common.css 必须在 bootstrap 之后加载）。
   BS5 的 .container 基础 width:100%，仅在断点设 max-width，故此处只放开上限即可流体到 1600。 */
.container {
    max-width: var(--site-wide);
}

/* 阅读版心工具类（帖子/资讯正文等） */
.container-read {
    max-width: var(--site-read);
    margin-left: auto;
    margin-right: auto;
}

/* 全宽外壳的内层对齐：背景通宽、内容与 1600 版心左右缘对齐（≤1640 屏退化为普通 20px 安全边距） */
.shell-align {
    padding-left: max(var(--site-gutter), calc((100% - var(--site-wide)) / 2 + var(--site-gutter)));
    padding-right: max(var(--site-gutter), calc((100% - var(--site-wide)) / 2 + var(--site-gutter)));
}

/* nav/footer 内层容器与主体 20px 安全边距精确对齐（Bootstrap 默认 12px，会造成 8px 错位；
   这些容器内不使用 .row 栅格，可安全只覆盖 padding） */
nav .container,
footer .container,
.site-topbar > .container {
    padding-left: var(--site-gutter);
    padding-right: var(--site-gutter);
}

@media (max-width: 768px) {
    .container { padding-left: 12px; padding-right: 12px; }
    nav .container,
    footer .container,
    .site-topbar > .container { padding-left: 12px; padding-right: 12px; }
}

/* ===== 阅读型两栏布局（社区帖子 / 资讯详情；主题页与 subsite 子站共用）=====
   含侧栏时整体 --site-col 居中（主文列约 850px ≈ 中文舒适行长）；
   注意：subsite 不加载主题 style.css，故该布局的基础定义必须放在 common.css。 */
.layout-2col {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1.5rem;
    min-width: 0;
    max-width: var(--site-col, 1200px);
    margin: 0 auto;
}
.layout-2col > * { min-width: 0; }

/* 非独立子站：区块纵向间距（频道宫格/卡片网格统一 20px） */
.subsite-main .row.g-4 { --bs-gutter-y: 1.25rem; }
.subsite-main > .mb-4,
.container-main > .mb-4 { margin-bottom: var(--block-gap, 20px) !important; }
@media (max-width: 576px) {
    .layout-2col { grid-template-columns: 1fr; }
}
@media (max-width: 991.98px) {
    .layout-2col { grid-template-columns: minmax(0, 1fr); }
}

/* ===== 深浅主题变量（subsite 不加载主题 style.css，故放 common.css 保证全站生效）===== */
:root {
    --bg: #f5f7fa;
    --card-bg: #ffffff;
    --card-bg-solid: #ffffff;
    --text: #1d1d1f;
    --text-secondary: #515154;
    --text-light: #6e6e73;
    --border: #e5e7eb;
    --shadow: 0 1px 3px rgba(0,0,0,0.06);
    --radius: 12px;
    --primary: #0d6efd;
    --secondary: #6c757d;
}
body.dark,
html.dark,
html[data-theme="dark"] {
    --bg: #0a0e27;
    --card-bg: #1a2238;
    --card-bg-solid: #1a2238;
    --text: #e2e8f0;
    --text-secondary: #a8b8cc;
    --text-light: #93a1bd;
    --border: #2d3748;
    --shadow: 0 1px 3px rgba(0,0,0,0.3);
}
/* html.light-theme 必须压过残留的 body.dark / html.dark，避免半页深半页浅 */
html.light-theme,
html.light-theme body,
html.light-theme body.dark,
html[data-theme="light"],
html[data-theme="light"] body {
    --bg: #f5f7fa;
    --card-bg: #ffffff;
    --card-bg-solid: #ffffff;
    --text: #1d1d1f;
    --text-secondary: #515154;
    --text-light: #6e6e73;
    --border: #e5e7eb;
    --shadow: 0 1px 3px rgba(0,0,0,0.06);
}
body { background: var(--bg); color: var(--text); }

/* 侧边栏卡片（subsite 与主题页共用；主题 style.css 有同名定义，此处保证 subsite 生效） */
.sidebar-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    padding: 1rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
}
.sidebar-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-light);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    letter-spacing: 0.5px;
}
/* 深色模式下 text-dark 类的链接改为主题色，避免黑字黑底 */
body.dark .sidebar a.text-dark,
body.dark .sidebar .text-dark {
    color: var(--text) !important;
}
body.dark .sidebar .text-muted {
    color: var(--text-light) !important;
}
body.dark .sidebar .fw-semibold,
body.dark .sidebar .fw-bold {
    color: var(--text);
}

/* ===== 通用工具类 ===== */
.text-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.text-ellipsis-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.text-ellipsis-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ===== 卡片悬停效果 ===== */
.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* ===== 渐变文字 ===== */
.gradient-text {
    background: linear-gradient(135deg, #667eea, #764ba2);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ===== 徽章样式 ===== */
.badge-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 4px;
}

.badge-dot.success { background: #10b981; }
.badge-dot.warning { background: #f59e0b; }
.badge-dot.danger { background: #ef4444; }
.badge-dot.info { background: #3b82f6; }

/* Bootstrap bg-warning 徽章在暗色页面默认继承浅色文字，黄底浅字对比不足；统一深字 */
.badge.bg-warning { color: #1f2937; }

/* ===== 空状态 ===== */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: #94a3b8;
}

.empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

/* ===== 加载动画 ===== */
.loading-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #e2e8f0;
    border-top-color: #667eea;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ===== 响应式 ===== */
@media (max-width: 768px) {
    .hide-mobile { display: none !important; }
    .show-mobile { display: block !important; }
}

@media (min-width: 769px) {
    .show-mobile { display: none !important; }
}

/* ===== 滚动条美化 ===== */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* ===== Trade 风格通用层（全站单源真相）===== */
/* 选中反色变量 — 浅色默认（与 common.css :root 一致），body.dark 覆盖深色 */
:root {
    --m-sel-bg: #0f0f0f; --m-sel-fg: #fff;
    --m-card-bg: #fff; --m-card-bd: rgba(0,0,0,.08);
    --m-card-hover-bd: rgba(59,130,246,.5); --m-card-hover-sh: 0 6px 20px rgba(59,130,246,.12);
    --m-chip-bg: rgba(59,130,246,.08); --m-chip-bd: rgba(59,130,246,.2); --m-chip-fg: #0284c7;
    --m-btn-grad: linear-gradient(135deg,#60a5fa,#818cf8);
    --m-ghost-bd: rgba(0,0,0,.2); --m-ghost-fg: rgba(29,29,31,.8);
}
body.dark {
    --m-sel-bg: #f1f1f1; --m-sel-fg: #0f0f0f;
    --m-card-bg: rgba(255,255,255,.03); --m-card-bd: rgba(255,255,255,.08);
    --m-card-hover-bd: rgba(96,165,250,.5); --m-card-hover-sh: 0 8px 20px rgba(96,165,250,.12);
    --m-chip-bg: rgba(96,165,250,.10); --m-chip-bd: rgba(96,165,250,.25); --m-chip-fg: #93c5fd;
    --m-ghost-bd: rgba(255,255,255,.25); --m-ghost-fg: rgba(255,255,255,.8);
}

/* cell 型选中：灰底反色 + 右上角圆形 ✓ */
.m-sel {
    background: var(--m-sel-bg) !important;
    color: var(--m-sel-fg) !important;
    border-color: transparent !important;
    position: relative;
}
.m-sel::after {
    content: '\2713'; position: absolute; top: 6px; right: 6px;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--m-sel-bg); color: var(--m-sel-fg);
    font-size: 12px; font-weight: 700; line-height: 20px; text-align: center;
}

/* chip/tab 型选中：纯反色，无 ✓ */
.m-sel-flat {
    background: var(--m-sel-bg) !important;
    color: var(--m-sel-fg) !important;
    border-color: transparent !important;
}

/* 通用卡片 */
.m-card {
    background: var(--m-card-bg); border: 1px solid var(--m-card-bd);
    border-radius: var(--radius); transition: border-color .2s, box-shadow .2s;
}
.m-card:hover { border-color: var(--m-card-hover-bd); box-shadow: var(--m-card-hover-sh); }

/* 通用标签 */
.m-chip {
    background: var(--m-chip-bg); border: 1px solid var(--m-chip-bd);
    color: var(--m-chip-fg); border-radius: 20px; padding: 4px 12px; font-size: 12px;
}

/* 主按钮 */
.m-btn-primary {
    background: var(--m-btn-grad); color: #fff; border: none;
    border-radius: 8px; padding: 8px 20px; cursor: pointer; font-size: 13px;
}
.m-btn-ghost {
    background: transparent; border: 1px solid var(--m-ghost-bd);
    color: var(--m-ghost-fg); border-radius: 8px; padding: 8px 20px; cursor: pointer; font-size: 13px;
}

/* ===== 社区三模式切换器（首页 / 顶栏 / 横幅同一套：图标 + title） ===== */
.mode-switcher{box-shadow:0 2px 8px rgba(59,130,246,.35);border-radius:8px;}
.mode-switcher .btn{border-radius:8px;display:inline-flex;align-items:center;justify-content:center;}
.mode-switcher .mode-label{display:none;}
.mode-switcher.mode-switcher-labeled .mode-label{display:inline;margin-left:4px;font-size:.78rem;font-weight:600;}
@media (max-width:576px){
    .mode-switcher.mode-switcher-labeled .mode-label{display:none;}
}
@media (max-width:768px){
    .mode-switcher .btn{min-width:40px;min-height:40px;}
}

/* ===== 全站统一右下角浮动导航：🏠回主站 · ↑回顶部 · ↓直达底部（2026-09-25 全站体检统一） ===== */
.m2m-float-nav{position:fixed;right:18px;bottom:18px;z-index:1050;display:flex;flex-direction:column;align-items:center;gap:10px;}
.m2m-fn{position:relative;overflow:hidden;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;text-decoration:none;cursor:pointer;border:1px solid rgba(255,255,255,.35);
    transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,background .25s,opacity .25s;flex-shrink:0;}
/* 糖果球玻璃光泽：顶部椭圆高光层（立体感来源之一） */
.m2m-fn::before{content:'';position:absolute;left:14%;top:5%;width:72%;height:44%;border-radius:50%;
    background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.06));pointer-events:none;}
.m2m-fn svg{position:relative;z-index:1;display:block;filter:drop-shadow(0 1px 1px rgba(60,30,90,.35));}
/* 滚动感知隐藏：页顶藏↑、页底藏↓（缩放淡出，不占位不响应点击） */
.m2m-fn.off{opacity:0;transform:scale(.4);pointer-events:none;}
.m2m-fn i{line-height:1;}
/* 提权：防止宿主页 a{color:inherit}（如 news .np-body a，特异性 0,1,1）把图标染成正文色，全站统一白图标 */
.m2m-float-nav .m2m-fn,.m2m-float-nav .m2m-fn i{color:#fff;}
.m2m-fn-home{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(46,20,90,.28),0 4px 14px rgba(102,126,234,.4);}
.m2m-fn-home:hover{color:#fff;background:linear-gradient(135deg,#764ba2 0%,#667eea 100%);transform:scale(1.1) rotate(-5deg);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(46,20,90,.28),0 6px 20px rgba(102,126,234,.6),0 0 0 4px rgba(102,126,234,.15);}
.m2m-fn-top{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(120,20,50,.26),0 4px 14px rgba(245,87,108,.4);font-size:16px;}
.m2m-fn-top:hover{color:#fff;background:linear-gradient(135deg,#f5576c 0%,#f093fb 100%);transform:scale(1.1);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(120,20,50,.26),0 6px 20px rgba(245,87,108,.6),0 0 0 4px rgba(245,87,108,.15);}
.m2m-fn-down{background:linear-gradient(135deg,#36d1dc 0%,#5b86e5 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(20,60,130,.26),0 4px 14px rgba(54,209,220,.4);font-size:16px;}
.m2m-fn-down:hover{color:#fff;background:linear-gradient(135deg,#5b86e5 0%,#36d1dc 100%);transform:scale(1.1);box-shadow:inset 0 2px 3px rgba(255,255,255,.5),inset 0 -4px 6px rgba(20,60,130,.26),0 6px 20px rgba(91,134,229,.6),0 0 0 4px rgba(91,134,229,.15);}
/* 移动端缩小一档，不隐藏（长页面手机端同样需要） */
@media (max-width:768px){
    .m2m-float-nav{right:12px;bottom:12px;gap:8px;}
    .m2m-fn{width:38px;height:38px;font-size:16px;}
    .m2m-fn-top,.m2m-fn-down{font-size:14px;}
}

/* ===== P3 骨架屏：shimmer 动画 ===== */
.skel-card{
    background:var(--m-card-bg,rgba(30,41,59,.7));
    border:1px solid var(--m-card-bd,rgba(59,130,246,.2));
    border-radius:12px;overflow:hidden;
}
.skel-cover,.skel-line{
    background:linear-gradient(110deg,rgba(255,255,255,.04) 8%,rgba(255,255,255,.12) 18%,rgba(255,255,255,.04) 33%);
    background-size:200% 100%;
    animation:skelShimmer 1.4s linear infinite;
    border-radius:6px;
}
.skel-cover{aspect-ratio:16/9;border-radius:0;}
.skel-line{height:10px;margin:8px 12px;}
.skel-line.short{width:60%;}
@keyframes skelShimmer{to{background-position:-200% 0;}}

/* ===== P3 焦点可视性：键盘导航时清晰对焦框 ===== */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
    outline:2px solid #60a5fa;
    outline-offset:2px;
    border-radius:4px;
}
body.dark a:focus-visible,body.dark button:focus-visible{
    outline-color:#93c5fd;
}

/* ===== #211 统一广告位（全站共用，双主题） ===== */
.m2m-ad-reserved{display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:2px;color:#9ca3af;box-sizing:border-box;}
.m2m-ad-reserved .m2m-ad-ph{font-size:13px;letter-spacing:.06em;}
html:not(.light-theme) .m2m-ad-reserved,body.dark .m2m-ad-reserved{background:#1a2030;border-color:#2a3148;color:#64748b;}
.dl-fh .m2m-ad-slot{border-radius:2px;margin:14px auto;}
.m2m-ad-slot{position:relative;margin:20px auto;max-width:100%;border-radius:14px;overflow:hidden;display:block;clear:both;}
.m2m-ad-slot .m2m-ad-body a{display:block;border-radius:14px;}
.m2m-ad-slot .m2m-ad-body img{display:block;width:100%;height:auto;border-radius:14px;}
.m2m-ad-slot .m2m-ad-body iframe{display:block;max-width:100%;border-radius:14px;}
.m2m-ad-tag{position:absolute;top:8px;left:10px;z-index:2;font-size:10px;line-height:1;padding:3px 7px;border-radius:999px;background:rgba(17,24,39,.55);color:rgba(255,255,255,.88);letter-spacing:1px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.m2m-ad-sidebar{border-radius:12px;margin:16px 0;}
.m2m-ad-sidebar .m2m-ad-body img,.m2m-ad-sidebar .m2m-ad-body a{border-radius:12px;}
/* 有 DIY 权限者看到的空槽幽灵占位 */
.m2m-ad-slot-empty{margin:16px auto;border:2px dashed rgba(124,108,240,.45);border-radius:14px;background:rgba(124,108,240,.06);min-height:96px;display:flex;align-items:center;justify-content:center;gap:8px;color:#7c6cf0;font-size:13px;cursor:pointer;transition:background .2s,border-color .2s;}
.m2m-ad-slot-empty:hover{background:rgba(124,108,240,.14);border-color:#7c6cf0;}
.m2m-ad-slot-empty .m2m-ad-empty-hint{display:flex;align-items:center;gap:8px;pointer-events:none;}
body.dark .m2m-ad-slot-empty{border-color:rgba(167,139,250,.5);background:rgba(167,139,250,.1);color:#c4b5fd;}
body.dark .m2m-ad-slot-empty:hover{background:rgba(167,139,250,.2);}
/* DIY 模式下已投广告位的编辑描边 */
.m2m-ad-edit-mode .m2m-ad-slot:not(.m2m-ad-slot-empty){outline:2px dashed rgba(124,108,240,.55);outline-offset:3px;cursor:pointer;}
.m2m-ad-edit-btn{position:absolute;top:8px;right:10px;z-index:3;border:0;border-radius:999px;padding:3px 10px;font-size:11px;background:#7c6cf0;color:#fff;cursor:pointer;display:none;box-shadow:0 2px 8px rgba(80,60,200,.4);}
.m2m-ad-edit-mode .m2m-ad-edit-btn{display:block;}

img.m2m-av{object-fit:cover;display:inline-block;vertical-align:middle;flex-shrink:0;border-radius:50%;}

/* ===== 三端导航：平板/桌面保留头部+页脚菜单；手机（≤767.98px）改用底部专用菜单 ===== */
.m2m-tabbar{
    display:none;
    position:fixed;left:0;right:0;bottom:0;z-index:1080;
    height:calc(56px + env(safe-area-inset-bottom,0px));
    padding:4px 4px env(safe-area-inset-bottom,0px);
    box-sizing:border-box;
    background:rgba(15,23,42,.96);
    border-top:1px solid rgba(148,163,184,.22);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    justify-content:space-around;align-items:stretch;
}
html.light-theme .m2m-tabbar{
    background:rgba(255,255,255,.96);
    border-top-color:rgba(15,23,42,.08);
}
.m2m-tab{
    flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2px;text-decoration:none!important;color:#94a3b8!important;font-size:10px;line-height:1.1;font-weight:600;
}
.m2m-tab i{font-size:18px;line-height:1;}
.m2m-tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.m2m-tab.is-on,.m2m-tab:hover{color:#60a5fa!important;}
html.light-theme .m2m-tab{color:#64748b!important;}
html.light-theme .m2m-tab.is-on,html.light-theme .m2m-tab:hover{color:#0071e3!important;}

@media (max-width:767.98px){
    .m2m-tabbar{display:flex;}
    body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));}
    /* 收藏脚本在手机浏览器无效；登录/注册改走底栏「我的」 */
    .topbar-bookmark,
    .topbar-auth{display:none!important;}
    .navbar-toggler{display:none!important;}
    .top-nav,
    .portal-navbar{display:none!important;}
    .subsite-brand{display:none!important;}
    .m2m-pathbar{display:flex;}
    .m2m-path-search-mobile{display:inline-flex;}
    .navbar-collapse{display:flex!important;flex-basis:auto!important;flex-grow:0!important;}
    .navbar-collapse .navbar-nav,
    .subsite-menu,
    .ent-menu,
    .quick-nav,
    .m2m-float-nav,
    header nav,
    .rv-head-nav,
    .ent-float-back,.warm-float-back{display:none!important;}
    body > footer,
    footer.site-footer,
    footer.subsite-footer,
    footer.portal-footer,
    .warm-footer,
    .ent-footer,
    [data-ad-slot="footer_banner"]{display:none!important;}
    .container-main{padding-left:10px;padding-right:10px;}
}

@media (min-width:768px){
    .m2m-tabbar{display:none!important;}
    .m2m-pathbar{display:none!important;}
}

/* 移动端浮动导航让位给底栏 */
@media (max-width:767.98px){
    .m2m-float-nav{display:none!important;}
}

/* 顶栏：窄屏不撑破；平板用汉堡（navbar-expand-xl），避免 14 项横排溢出 */
.hp-topbar .container,
.site-topbar .container {
    min-width: 0;
    flex-wrap: nowrap;
    gap: 8px 12px;
}
.hp-topbar .topbar-slogan,
.site-topbar .topbar-slogan {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
    text-overflow: unset;
    white-space: normal;
    max-width: none;
    line-height: 1.45;
}
.hp-topbar .topbar-actions,
.site-topbar .topbar-actions {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    white-space: nowrap;
    justify-content: flex-end;
}
.top-nav .container,
.top-nav.navbar > .container {
    min-width: 0;
}
.top-nav .navbar-nav .nav-link,
.top-nav .nav-link {
    white-space: nowrap;
}
/* 仅手机：胶囊主菜单下方显示当前路径，右侧放放大镜和三模式 */
.m2m-pathbar{
    display:none;
    border-bottom:1px solid rgba(148,163,184,.18);
    background:rgba(15,23,42,.72);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
html.light-theme .m2m-pathbar{
    background:rgba(255,255,255,.92);
    border-bottom-color:rgba(15,23,42,.08);
}
.m2m-pathbar-inner{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    min-height:36px;padding-top:4px;padding-bottom:4px;
}
.m2m-path{
    display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;
    font-size:13px;color:#94a3b8;line-height:1.3;
}
.m2m-path a{color:#93c5fd;text-decoration:none;}
.m2m-path a:hover{color:#bfdbfe;}
.m2m-path-here{color:#e2e8f0;font-weight:600;}
.m2m-path-sep{opacity:.4;user-select:none;}
html.light-theme .m2m-path a{color:#0071e3;}
html.light-theme .m2m-path-here{color:#1d1d1f;}
.m2m-path-tools{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.m2m-path-search-mobile{display:none;}
.m2m-path-search-mobile .m2m-search-btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;color:#e2e8f0;text-decoration:none;border-radius:8px;
}
html.light-theme .m2m-path-search-mobile .m2m-search-btn{color:#1d1d1f;}
.m2m-path-modes .btn{padding:.22rem .42rem;line-height:1;}
@media (min-width: 768px) {
    .m2m-mnav{display:none!important;}
    .top-nav .navbar-toggler{display:none!important;}
    .top-nav .navbar-collapse{
        display:flex!important;
        flex-basis:auto!important;
        flex-grow:1!important;
    }
    .top-nav .navbar-collapse .navbar-nav{
        display:flex!important;
        flex-direction:row;
        flex-wrap:wrap;
        row-gap:2px;
    }
    .top-nav .navbar-nav .nav-link{
        padding-left:.55rem;
        padding-right:.55rem;
        font-size:.9rem;
    }
}
@media (max-width: 991.98px) {
    /* 手机/窄平板：操作区优先，口号改到页脚品牌区阅读 */
    .hp-topbar .topbar-slogan,
    .site-topbar .topbar-slogan { display: none; }
}

/* 语言下拉跟随日夜主题，避免浅色界面仍用死黑菜单 */
.topbar-lang-menu {
    z-index: 1080;
    min-width: 160px;
    font-size: 13px;
    padding: 4px;
    background: #1e293b;
    border: 1px solid rgba(148,163,184,.25);
    color: #e2e8f0;
}
.topbar-lang-menu > li { padding: 0; margin: 0; display: block; }
.topbar-lang-menu .dropdown-item {
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: 8px 12px;
    color: #e2e8f0;
    cursor: pointer;
    text-decoration: none;
}
.topbar-lang-menu .dropdown-item:hover,
.topbar-lang-menu .dropdown-item:focus,
.topbar-lang-menu .dropdown-item.active {
    background: rgba(96,165,250,.18);
    color: #fff;
}
html.light-theme .topbar-lang-menu {
    background: #fff;
    border-color: #e8e8ed;
    color: #1d1d1f;
    box-shadow: 0 8px 24px rgba(15,23,42,.12);
}
html.light-theme .topbar-lang-menu .dropdown-item { color: #1d1d1f; }
html.light-theme .topbar-lang-menu .dropdown-item:hover,
html.light-theme .topbar-lang-menu .dropdown-item:focus,
html.light-theme .topbar-lang-menu .dropdown-item.active {
    background: rgba(0,113,227,.08);
    color: #0071e3;
}

.m2m-welcome-bar {
    position: relative;
    z-index: 1030;
    background: linear-gradient(90deg, #667eea, #764ba2);
    color: #fff;
    font-size: 14px;
}
.m2m-welcome-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 8px 16px;
    padding-inline-end: 44px;
    text-align: center;
    min-width: 0;
}
.m2m-welcome-text {
    display: block;
    min-width: 0;
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: normal;
}
.m2m-welcome-close {
    position: absolute;
    inset-inline-end: 8px;
    top: 50%;
    transform: translateY(-50%);
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    background: none;
    border: 0;
    color: #fff;
    opacity: .9;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

/* 手机客户端：横向滑动主菜单（顶栏栏目在窄屏被隐藏，用这条导航） */
.m2m-mnav{display:none;}
@media (max-width:767.98px){
    .m2m-mnav{
        display:block!important;
        position:sticky;top:0;z-index:1075;
        background:rgba(10,18,32,.94);
        border-bottom:1px solid rgba(148,163,184,.18);
        backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    }
    html.light-theme .m2m-mnav{background:rgba(255,255,255,.96);border-bottom-color:rgba(15,23,42,.08);}
    .m2m-mnav-track{
        display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
        padding:8px 12px;scrollbar-width:none;
    }
    .m2m-mnav-track::-webkit-scrollbar{display:none;}
    .m2m-mnav-item{
        flex:0 0 auto;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;
        color:#cbd5e1!important;text-decoration:none!important;
        background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.2);white-space:nowrap;
    }
    .m2m-mnav-item.is-on{color:#fff!important;background:#2563eb;border-color:#2563eb;}
    html.light-theme .m2m-mnav-item{color:#334155!important;background:#f1f5f9;border-color:#e2e8f0;}
    html.light-theme .m2m-mnav-item.is-on{color:#fff!important;background:#0071e3;border-color:#0071e3;}
    .article-content,.forum-thread-row,.feed-card{overflow-wrap:anywhere;}
}

/* 社区大加号发帖：产品要求去掉（回顶按钮保留） */
.comm-fab-post,.video-fab{display:none!important;}

/* 论坛模式：主列拉宽，帖子行加高并露出摘要 */
body.mode-forum .comm-rev-page{
    grid-template-columns:minmax(0,1fr) 180px!important;gap:16px;
    max-width:var(--site-wide,1600px);margin-inline:auto;width:100%;
}
body.mode-forum .comm-rev-page:not(.is-video) .ft-stats{
    gap:8px;font-size:11px;opacity:.85;padding-top:2px;
}
body.mode-forum .comm-rev-page:not(.is-video) .forum-thread-row{
    padding:18px 16px;min-height:92px;
}
body.mode-forum .forum-thread-excerpt{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;margin-top:6px;color:#94a3b8;font-size:13px;line-height:1.5;
    font-weight:400;
}
html.light-theme body.mode-forum .forum-thread-excerpt{color:#64748b;}
@media (max-width:1100px){
    body.mode-forum .comm-rev-page{grid-template-columns:1fr!important;}
    body.mode-forum .comm-rev-side{display:none;}
    body.mode-forum .comm-rev-page:not(.is-video) .forum-thread-row{flex-wrap:wrap;}
    body.mode-forum .comm-rev-page:not(.is-video) .ft-stats{
        margin-left:52px;width:calc(100% - 52px);justify-content:flex-start;
    }
}

/* ===== 整站手机端：防撑破、可点、可滑、底栏不挡操作 ===== */
@media (max-width:767.98px){
    html,body{overflow-x:clip;max-width:100%;}
    img,video,canvas,svg{max-width:100%;}
    iframe,embed,object{max-width:100%;width:100%;}
    pre,code,.article-content{overflow-wrap:anywhere;word-break:break-word;}
    .table-responsive,table{max-width:100%;}
    .container,.container-main,.subsite-main,.np-wrap,.auth-page{
        max-width:100%;padding-left:12px;padding-right:12px;
    }
    .row{--bs-gutter-x:.75rem;}
    .row>[class*="col"]{min-width:0;}
    .masonry,.masonry-3col,.thread-masonry,.feed-grid,.np-dp-grid,.np-hg-grid,.board-grid{
        grid-template-columns:1fr!important;columns:1!important;
    }
    .hp-grid-news > *,.hp-grid > *{width:100%!important;max-width:100%!important;flex:1 1 100%!important;}
    .layout-2col,.comm-rev-page{grid-template-columns:1fr!important;}
    input,select,textarea,.form-control,.form-select{font-size:16px!important;}
    .m2m-tab{min-height:44px;}
    .m2m-mnav-item{min-height:36px;display:inline-flex;align-items:center;}
    .topbar-account,.np-tb-login,.np-tb-reg,.np-tb-bar,.np-footer,
    footer.np-footer,.portal-footer{display:none!important;}
    .np-channels,.np-ch-inner,.channel-tabs,.comm-board-pills{
        display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .np-channels::-webkit-scrollbar,.np-ch-inner::-webkit-scrollbar{display:none;}
    .np-search{width:100%;max-width:100%;}
    .np-mast-inner{flex-direction:column;align-items:stretch;gap:12px;}
    .otp-row{justify-content:space-between;gap:6px;}
    .otp-box{width:auto;flex:1 1 0;min-width:0;max-width:48px;height:44px;}
    .hl-stage,.glass-card.position-relative[style*="height"]{max-height:220px;}
    .quick-nav,.quick-nav-scroll{display:none!important;}
    .hp-topbar .topbar-slogan,.site-topbar .topbar-slogan{display:none!important;}
    .site-topbar .container,.hp-topbar .container{flex-wrap:nowrap;}
    .mode-switcher{flex-shrink:0;}
    .btn,.nav-link,a.page-link{max-width:100%;}
    .modal-dialog{margin:.5rem;max-width:calc(100% - 1rem);}
    .dropdown-menu{max-width:min(280px,calc(100vw - 16px));}
    .article-actions,.forum-only .article-actions{flex-wrap:wrap;margin-bottom:8px;}
    body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));}
}
@media (max-width:479.98px){
    .board-grid{grid-template-columns:1fr 1fr!important;}
    .thread-thumb{width:100%;height:auto;max-height:180px;}
}
