

        .user-info {
            display: flex;
            align-items: center;
            gap: 20px;
            flex-wrap: wrap;
        }
        .user-item .value {
            color: var(--primary);
            font-weight: 600;
        }
        
        .rule-modal {
            display: none;
            position: fixed;
            z-index: 2147483646;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.5);
        }
        .rule-modal .modal-content {
            background-color: white;
            margin: 100px auto;
            padding: 25px;
            
            width: 90%;
            max-width: 600px;
            box-shadow: 0 5px 20px rgba(0,0,0,0.3);
            position: relative;
        }
        .rule-modal .close {
            color: var(--gray-400);
            float: right;
            font-size: var(--fs-display);
            font-weight: bold;
            cursor: pointer;
            position: absolute;
            top: 10px;
            right: 20px;
        }
        .rule-modal .close:hover {
            color: black;
        }
        .rule-modal h3 {
            color: var(--primary);
            margin-bottom: 20px;
        }
        .rule-content {
            line-height: 1.8;
            max-height: 60vh;
            overflow-y: auto;
            padding-right: 10px;
        }
        
        @media (min-width: 768px) {
            .wechat-content {
                flex-direction: row;
                justify-content: center;
            }
        }
        
/* 顶部蓝色 banner（仅首页展示）已挪到 <div class="container"> 之外的 body 直接子元素。
   用 width:100vw + margin-left:calc(-50vw + 50%) 真正贴齐视口左右边缘（包括滚动条预留区），保持与 footer / sitemap-nav / home-container 同样的 100% 视口宽视觉对齐。 */
.nav-wrapper{
    width:100vw !important;
    max-width:none !important;
    margin-left:calc(-50vw + 50%) !important;
    margin-right:calc(-50vw + 50%) !important;
    box-sizing:border-box !important;
    position:relative !important;
}

        .footer {
            text-align: center;
            padding: 10px 0;
            color: var(--gray-600);
            font-size: 14px;
            line-height: 1.4;
            margin-top: 0;
            grid-column: 1 / -1;
            background: var(--white);
            /* v1.2 (2026-08-11 下午)：与 .sitemap-nav 一样满铺视口（width:100vw + margin-left/right:-50vw），内部 padding-left/right 用 max() 在宽屏自动对齐原 .container 中央区，窄屏回退 16px */
            width: 100vw !important;
            max-width: none !important;
            margin-left: -50vw !important;
            margin-right: -50vw !important;
            padding-left: max(16px, calc((100vw - 1600px) / 2 + 16px)) !important;
            padding-right: max(16px, calc((100vw - 1600px) / 2 + 16px)) !important;
            box-sizing: border-box !important;
            position: relative !important;
        }
        
        .footer p {
            margin: 0;
            padding: 0;
        }
        
        .footer a {
            color: var(--primary);
            text-decoration: none;
            font-weight: 500;
        }
        
        .footer a:hover {
            text-decoration: underline;
        }
        
        @media (max-width: 992px) {
            .nav-wrapper {
                flex-direction: column;
                align-items: stretch;
            }
            .nav-container {
                flex-direction: column;
                align-items: stretch;
                gap: 15px;
            }
            .nav-menu {
                flex-wrap: wrap;
                justify-content: center;
            }
            .user-bar {
                margin-left: 0;
                width: 100%;
                padding: 8px 15px;
            }
            .user-info {
                justify-content: center;
                flex-wrap: wrap;
            }
        }
        
        @media (max-width: 768px) {
            .user-item {
                padding: 4px 10px;
                font-size: var(--fs-label);
            }
            .rule-hint {
                padding: 4px 12px;
            }
        }
        
        .modal {
            display: none;
            position: fixed;
            z-index: 2147483645;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.5);
        }
        
        .modal-content {
            background-color: white;
            margin: 100px auto;
            padding: 25px;
            
            width: 90%;
            max-width: 400px;
            box-shadow: 0 5px 20px rgba(0,0,0,0.3);
            position: relative;
        }
        
        .close {
            color: var(--gray-400);
            float: right;
            font-size: var(--fs-display);
            font-weight: bold;
            cursor: pointer;
            position: absolute;
            top: 10px;
            right: 20px;
        }
        
        .close:hover {
            color: black;
        }
        
        .modal h3 {
            color: var(--primary);
            margin-bottom: 20px;
        }
        
        .modal input {
            width: 100%;
            padding: 12px;
            margin: 10px 0;
            border: 2px solid var(--border);
            
            font-size: var(--fs-h3);
        }
        
        .modal button {
            background-color: var(--primary);
            color: white;
            border: none;
            padding: 12px 20px;
            
            font-size: var(--fs-h3);
            cursor: pointer;
            width: 100%;
            margin-top: 10px;
        }
        
        .modal button:hover {
            background-color: var(--primary-dark);
        }
        

        /* 加载遮罩 */
        .loading-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.7);
            z-index: 2147483647;
            justify-content: center;
            align-items: center;
            color: white;
            font-size: var(--fs-h1);
            backdrop-filter: blur(3px);
            flex-direction: column;
            gap: 20px;
        }
        .loading-overlay .spinner {
            font-size: var(--fs-display);
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

/* ===== header.php block2 移动端 LOGO 区折叠（≤768 / ≤640） ===== */
@media (max-width:768px){
/* 顶栏白条容器：禁止子元素溢出视口导致横向滚动条 */
nav.sitemap-nav{max-width:100%;overflow-x:hidden;}
/* 顶部蓝色 LOGO 区：移动端字号收紧，描述文字字号收敛（保留显示，由 ≤640 再隐藏） */
.nav-wrapper{padding:10px 16px !important;}
.nav-title>span:first-child{font-size:1.1rem !important;}
.nav-title>span:last-child{font-size:0.8rem !important;}
.nav-wrapper > a > div > div:not(.nav-title){font-size:0.85rem !important;line-height:1.45 !important;}
.nav-wrapper .fa-calculator{margin-right:6px !important;}
.nav-wrapper span[style*="background: rgba(255,255,255,0.25)"]{padding:3px 9px !important;font-size:0.75rem !important;}
}
@media (max-width:640px){
.home-section-nav{gap:6px;}
.hsn-links{order:1;flex:1 1 100%;min-width:0;flex-wrap:wrap;gap:4px 6px;padding:2px 0;}
.hsn-links a{padding:6px 9px;font-size:0.92em;}
#hsn-search-wrap{order:2;flex:1 1 100%;min-width:0;margin-top:6px;}
/* 顶栏蓝色 LOGO 区 ≤640px：副标题与描述隐藏，只留主标题 + 三个统计标签缩小 —— 全站页面均生效 */
.nav-title>span:last-child{display:none !important;}
.nav-wrapper > a > div > div:not(.nav-title){display:none !important;}
.nav-wrapper span[style*="background: rgba(255,255,255,0.25)"]{padding:2px 7px !important;font-size:0.7rem !important;gap:4px !important;}
.nav-wrapper span[style*="background: rgba(255,255,255,0.25)"] i{margin-right:3px !important;}
}

/* ===== header.php block3 首页 home-section-nav 基础样式 ===== */
/* .home-section-nav 桌面端 base 样式（仅首页用到，移到全站也无害）；移动端折叠段已抽出至 sitemap-nav 之前的全站 style 块（2026-08-10） */
.home-section-nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:2px 0;min-width:0;color:var(--gray-700,var(--gray-700));}
.hsn-links{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0;}
.hsn-links a{color:var(--gray-700,var(--gray-700));text-decoration:none;padding:4px 6px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;flex-shrink:0;white-space:nowrap;}
.hsn-links a:hover{color:var(--primary);border-bottom-color:var(--primary);}
.hsn-home{color:var(--primary)!important;}
#hsn-search-wrap{position:relative;flex:0 1 200px;min-width:140px;}

/* ===== header.php block4 页面 H1（视觉隐藏）+ 移动端用户区折叠 ===== */
/* ========== 自动注入的页面级 H1（语义化 SEO 标题，视觉隐藏但可被爬虫/读屏识别） ========== */
.page-h1 {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* 移动端：导航菜单单行（可横向滚动），用户区第二行 */
@media (max-width: 768px) {
.sitemap-nav > div {
flex-direction: column !important;
align-items: stretch !important;
gap: 8px !important;
}
/* 左列：网站地图 + 导航项，外层负责横向滚动（让下拉能溢出向下） */
.sitemap-nav > div > div:first-child {
flex-wrap: nowrap !important;
width: 100% !important;
gap: 8px !important;
overflow-x: auto !important;
overflow-y: visible !important;
-webkit-overflow-scrolling: touch;
}
.sitemap-nav > div > div:first-child > a {
flex-shrink: 0 !important;
}
/* 内层（导航项容器）：flex nowrap，不设 overflow，让下拉可见 */
.sitemap-nav > div > div:first-child > div:not(.nav-item) {
flex-wrap: nowrap !important;
gap: 6px !important;
min-width: 0 !important;
}
/* 移动端用户区第二行：浅灰胶囊条，居中单行（全站直角铁律：0 圆角） */
.sitemap-nav > div > div:last-child {
width: 100% !important;
justify-content: center !important;
align-items: center !important;
padding: 7px 10px !important;
background: var(--gray-050) !important;
border: 1px solid var(--gray-200) !important;
border-radius: 0 !important;
flex-wrap: nowrap !important;
gap: 10px !important;
box-sizing: border-box !important;
}
/* 移动端用户区：100% 宽占独立一行，内部单行紧凑（用户胶囊 + 次数 + 规则 + 关注） */
.sitemap-nav .user-area {
flex: 0 0 100% !important; order: 3; margin-top: 4px !important;
display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
justify-content: flex-start !important; align-items: center !important;
gap: 6px !important;
}
/* 4 个子元素全部按内容宽收缩，禁止 div 默认 100% 撑满 */
.sitemap-nav .user-area > .user-pill,
.sitemap-nav .user-area > .user-quota,
.sitemap-nav .user-area > .user-rule-text,
.sitemap-nav .user-area > .user-follow,
.sitemap-nav .user-area > .user-login-btn {
flex: 0 0 auto !important; min-width: 0; width: auto !important;
}
/* 隐藏旧头像方块（已并入 user-pill 胶囊） */
.sitemap-nav .user-area .user-avatar { display: none !important; }
/* 登录态编辑笔在小屏仍可点 */
.sitemap-nav .user-area .user-pill { padding: 3px 8px !important; }
.sitemap-nav .user-area .user-nickname {
font-size: var(--fs-sm) !important; color: var(--primary) !important; font-weight: 600 !important;
max-width: 56px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sitemap-nav .user-area .user-edit-btn { font-size: 10px !important; margin-left: 1px !important; }
/* 次数组：极简图标+数字 */
.sitemap-nav .user-area .user-quota { gap: 6px !important; }
.sitemap-nav .user-area .user-quota span { font-size: var(--fs-sm) !important; gap: 2px !important; }
.sitemap-nav .user-area .user-quota b { font-size: var(--fs-sm) !important; color: var(--primary) !important; font-weight: 700 !important; }
/* 规则按钮：蓝描边扁平（去红圆去阴影） */
.sitemap-nav .user-area .user-rule-text {
padding: 3px 7px !important; font-size: var(--fs-xs) !important;
border-radius: 0 !important;
}
/* 关注按钮：蓝主色实心（去绿渐变去阴影） */
.sitemap-nav .user-area .user-follow {
padding: 4px 10px !important;
font-size: var(--fs-sm) !important;
gap: 3px !important;
border-radius: 0 !important;
}
/* 登录按钮：蓝主色实心，风格与关注按钮一致（未登录时显示） */
.sitemap-nav .user-area .user-login-btn {
display: inline-flex !important; align-items: center; gap: 4px;
padding: 4px 10px !important; font-size: var(--fs-sm) !important; font-weight: 600 !important;
color: var(--white) !important; background: var(--primary) !important; text-decoration: none !important;
border: none !important; border-radius: 0 !important; cursor: pointer !important; line-height: 1.4 !important;
white-space: nowrap !important;
}
.sitemap-nav .user-area .user-login-btn:hover { background: var(--primary-dark) !important; }
/* 极窄屏（≤360px）：规则/关注文字隐藏只保图标，确保不撑破 */
@media (max-width: 360px) {
.sitemap-nav .user-area { gap: 4px !important; }
.sitemap-nav .user-area .user-pill { padding: 2px 6px !important; }
.sitemap-nav .user-area .user-rule-label { display: none !important; }
.sitemap-nav .user-area .user-rule-text { padding: 3px 5px !important; }
.sitemap-nav .user-area .user-follow-text { display: none !important; }
.sitemap-nav .user-area .user-follow { padding: 4px 6px !important; }
.sitemap-nav .user-area .user-login-btn { padding: 4px 6px !important; }
.sitemap-nav .user-area .user-nickname { max-width: 40px !important; }
}
}

/* ============================================================
   全站通用：nicknameModal 提示 / footer 链接与免责声明
   背景：这些类此前在全站 CSS 中完全没有定义，仅依赖内联样式或继承。
   补充定义后保证样式来源统一，且不覆盖现有内联样式。
   2026-08-30
   ============================================================ */

/* 昵称修改弹窗中的状态提示（默认隐藏，JS 填充内容后显示） */
.modal-message {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: var(--fs-sm, .85rem);
    line-height: 1.5;
    display: none;
}

.modal-message--success {
    background: var(--success-50);
    color: var(--success);
    border: 1px solid var(--success-50);
}

/* footer 公众号入口链接 */
.footer-wechat-link {
    color: var(--primary);
    text-decoration: none;
    cursor: pointer;
}
.footer-wechat-link:hover {
    text-decoration: underline;
}

/* footer 免责声明（与现有内联样式互补，不冲突的属性生效） */
.footer-disclaimer {
    color: var(--gray-400);
    font-size: 12px;
    line-height: 1.4;
    margin: 2px 0 0;
    text-align: center;
}

/* ===== footer.php 站点地图导航模块样式 ===== */
/* 与 .container(viewport 满宽, flex-column) 子元素对齐：强制 100% 宽，避免 flex column 下 margin:auto 把元素收缩到内容宽再居中。
顶部 margin:14px 小间隙、全站统一（计算器页/文档页/首页一致）。
加顶部浅主色描边 + 浅蓝底，让它一眼看出是独立 sitemap module（之前纯白底与 .container 融在一起看不出边界）。 */
.seo-sitemap-nav{
width:100%;margin:var(--module-gap) 0 0;box-sizing:border-box;
background:var(--white);
padding:14px 18px 16px;
}
.seo-sitemap-cols{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:flex-start;width:100%;}
.seo-sitemap-col{display:flex;flex-wrap:wrap;align-content:flex-start;min-width:0;}
.seo-sitemap-col strong{display:block;width:100%;color:var(--gray-700);font-size: var(--fs-label);margin:0 0 8px;padding-left:8px;border-left:3px solid var(--primary);line-height:1.1;}
.seo-sitemap-col a{display:inline-block;color:var(--gray-600);font-size: var(--fs-sm);text-decoration:none;background:var(--white);padding:3px 9px;margin:0 4px 4px 0;line-height:1.2;white-space:nowrap;transition:all .2s;border:1px solid var(--gray-200);}
.seo-sitemap-col a:hover{background:var(--primary-100);color:var(--primary);border-color:var(--primary);}
.seo-sitemap-qr{flex:0 0 auto;margin-left:auto;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 0 2px;}
.seo-sitemap-qr img{display:block;width:100px;height:100px;background:var(--white);border:1px solid var(--gray-200);}
.seo-sitemap-qr-cap{color:var(--gray-600);font-size: var(--fs-sm);line-height:1.2;text-align:center;white-space:nowrap;}
@media(max-width:768px){.seo-sitemap-cols{gap:4px 10px;}.seo-sitemap-nav{padding:12px 14px;}}
@media(max-width:480px){.seo-sitemap-col{flex:0 0 100% !important;}.seo-sitemap-nav{padding:10px 12px;}.seo-sitemap-qr{flex:0 0 100% !important;margin-left:0;margin-top:8px;padding-top:10px;border-top:1px dashed var(--gray-300);}}


/* ============================================================
   全站通用：.hidden 与「公众号二维码弹窗」内部样式
   背景：这两个模块的类此前在全站 CSS 中完全没有定义，靠
   .rule-modal / .rule-modal .modal-content 的基础样式和元素自带的
   width/height 属性「裸奔」——功能正常但缺少居中、间距、层级细节。
   补充时避开 !important，以免压制已有的 display:flex 逻辑。
   2026-08-30
   ============================================================ */

/* 通用隐藏（不加强制，保留被 JS 用 display:flex / block 恢复的能力） */
.hidden { display: none; }

/* 公众号二维码弹窗 */
.modal-content--wechat {
    text-align: center;
    border-radius: 12px;
}

.modal-content--wechat .close {
    top: 12px;
    right: 16px;
}

.wechat-modal-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 18px;
    padding-right: 24px;   /* 避开右上角关闭按钮 */
}

.wechat-modal-body {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.wechat-qrcode {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    background: var(--white);
}

.wechat-modal-hint {
    color: var(--gray-500);
    font-size: var(--fs-sm, .85rem);
    margin: 0 0 6px;
}

.wechat-modal-name {
    color: var(--gray-900);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 2px;
}

.wechat-modal-id {
    color: var(--primary);
    font-size: .9rem;
    font-weight: 600;
    font-family: Consolas, monospace;
    margin: 0 0 10px;
}

.wechat-modal-note {
    color: var(--gray-400);
    font-size: .78rem;
    margin: 0;
}

@media (max-width: 480px) {
    .rule-modal .modal-content.modal-content--wechat { margin: 60px auto; padding: 20px 16px; }
    .wechat-modal-title { font-size: 1.05rem; }
}

/* ============================================================
   2026-08-31 全站复查：移动端易操作（放大触摸目标）+ 字号≥12px 修正
   原问题：用户区「登录/关注/规则」按钮高度仅 25px、导航链接 26px，
   顶栏次数与图标字号 11px（低于全站 ≥12px 铁律）。
   ============================================================ */
@media (max-width: 768px) {
  /* 用户区按钮增大触摸高度，更易点中 */
  .sitemap-nav .user-area .user-login-btn,
  .sitemap-nav .user-area .user-follow,
  .sitemap-nav .user-area .user-rule-text {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  /* 首行导航链接（首页/计算器/…）增大触摸高度 */
  .sitemap-nav > div > div:first-child > a {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  /* 首页/计算器工具区导航链接与搜索框增大触摸高度，更易点中 */
  .hsn-links a {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  .site-search, #hsn-search-wrap input {
    min-height: 36px !important;
    box-sizing: border-box !important;
  }
  /* 计算器页面包屑导航链接（首页/计算器）增大触摸高度 */
  .calc-breadcrumb-item a {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
}
/* 顶栏用户区次数与图标字号提升到 12px */
.sitemap-nav .user-area .user-quota,
.sitemap-nav .user-area .user-quota span,
.sitemap-nav .user-area .user-quota b,
.user-quota-icon { font-size: 12px !important; }

/* 首页工具标签芯片与「主页」链接字号提到 12px（满足全站 ≥12px 铁律，原 11px） */
.tool-tag, .hsn-home { font-size: 12px !important; }

/* 全站 ≥12px 铁律收尾（2026-08-31）：公式下标 sub 与脚注 small 浏览器默认仅 ≈0.8em，
   在 12px 父级下约 10px 违例；calc4 排砖网格标签用 --fs-xs≈11px 违例。统一提到 ≥12px。 */
sub { font-size: 1em !important; }
small { font-size: 12px !important; }
.grid-cell, .room-number, .room-label { font-size: 12px !important; }

/* 全站 ≥12px 铁律收尾（续四，2026-08-31）：剩余 11px 辅助说明/页脚链接/功能标签兜底。
   覆盖：页脚 SEO 站点地图链接、计算器内部说明类（st+数字的提示/脚注，如 st69/st152/st271 等）、
   以及 live-tag/material-strength-display/calc10-combo-desc/column 等功能标签。 */
.seo-sitemap-nav a,
.live-tag,
.material-strength-display,
.calc10-combo-desc,
.column,
.beam-load,
.pipe-header,
.pipe-header span,
.pipe-item-row,
.pipe-item-row span,
.pipe-item-row input,
.pipe-item-row select,
.rounding-note,
.rounding-note span,
select,
option,
[class^="st"] { font-size: 12px !important; }

/* 全站易操作（续四，2026-08-31）：桌面端页眉触摸目标也补最小高度。
   原 min-height:36px 仅写在 @media(max-width:768px) 内，桌面端页眉按钮仅 22~30px 高，
   点中困难。此处把同一组选择器（并补 .user-icon-btn 规则图标按钮）提到全视口生效。 */
.sitemap-nav .user-area .user-login-btn,
.sitemap-nav .user-area .user-follow,
.sitemap-nav .user-area .user-rule-text,
.sitemap-nav > div > div:first-child > a,
.hsn-links a,
.site-search, #hsn-search-wrap input,
.calc-breadcrumb-item a,
.user-icon-btn {
  min-height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 全站 ≥12px 铁律收尾（续五，2026-08-31）：SVG 示意图内 <text> 浏览器默认字号偏小
   （7~11px 用户单位），强制提到 12px，满足全站 ≥12px 铁律，桌面端图注更清晰。 */
svg text { font-size: 12px !important; }

/* 移动端示意图容器横向滚动，保持 SVG 自然宽度（图注清晰可读），不撑破页面
   （与 calc12 参考表同一思路：图在窄屏内滚动而非被压缩到看不清）。 */
@media (max-width: 768px) {
  .diagram { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .diagram-svg { min-width: 360px; max-width: none; }
}
.user-icon-btn { min-width: 36px !important; }
