:root {
    --primary: #FFFFFF;
    --primary-light: #F8FAFC;
    --accent: #2563EB;
    --accent2: #4f8cff;
    --violet: #7C3AED;
    --accent-grad: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%);
    --gold: #D97706;
    --gold-light: #FEF3C7;
    --text: #1E293B;
    --text-muted: #52627A;
    --bg-card: #FFFFFF;
    --bg-card-hover: #F8FAFC;
    --border: #E2E8F0;
    --success: #16A34A;
    --warm: #EA580C;
    --danger: #DC2626;
    --radius: 10px;
    --radius-lg: 16px;
    --radius-xl: 22px;
    --shadow: 0 1px 3px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.06);
    --shadow-lg: 0 20px 48px rgba(37,99,235,0.14);
    --transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    --font-display: 'Outfit','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{min-height:100%;width:100%;font-size:17px}
body{
    font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei','Segoe UI',sans-serif;
    background:var(--primary);color:var(--text);
    min-height:100vh;width:100%;line-height:1.6;overflow-x:hidden;
}
.app-container{position:relative;z-index:1;width:100%;max-width:1400px;margin:0 auto;padding:0 20px;box-sizing:border-box;flex-shrink:0}

/* ═══════════════════════════════════════════════════════
   page-shell：用纯CSS弹性布局让Hero区"自动填满剩余视口高度"，
   替代此前用JS测量像素再赋值的方案。
   原理：page-shell是一个flex列容器，min-height:100vh 只是"下限"，
   header/nav-bar/app-container 设置 flex-shrink:0（不参与伸缩，按自身内容撑开），
   只有 .hero 设置 flex:1（会自动吸收"100vh减去其余兄弟元素高度"之后剩余的空间）。
   如果下方内容（app-container）本身很长，撑满100vh后还有多余内容，
   浏览器会让整个page-shell自然变得比100vh更高，此时Hero区会退回到自己内容的
   最小高度，不会被过度压缩——这些行为都是CSS弹性盒模型的标准规范，
   不依赖JS计算时机，因此不会再出现"不同操作系统/浏览器字体渲染时机不同
   导致的高度计算偏差"问题，且窗口缩放时浏览器会自动实时重新计算，不需要
   额外写resize监听代码。
   ═══════════════════════════════════════════════════════ */
.page-shell{display:flex;flex-direction:column}

/* ═══════════ Header（本轮收窄，Logo+品牌名+合并后的slogan） ═══════════ */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);flex-shrink:0}
.header-inner{width:100%;margin:0;padding:8px 32px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-sizing:border-box}
.brand-block{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0;text-align:left}
.logo-img{width:36px;height:36px;flex-shrink:0}
.brand-title-group{display:flex;flex-direction:column;line-height:1.15;flex-shrink:0}
.brand-title-group h1{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.2px;white-space:nowrap}
.brand-title-group .en{font-size:.6rem;color:var(--accent);letter-spacing:1.2px;text-transform:uppercase;font-weight:700;white-space:nowrap}
.brand-slogan{font-size:.82rem;color:var(--text);font-weight:600;line-height:1.4;border-left:1px solid var(--border);padding-left:14px;max-width:480px}
.brand-slogan .tagline{color:var(--text);font-weight:600}

/* 隐藏式登录入口：平时几乎不可见，鼠标移入才淡入 */
.auth-hover-zone{margin-left:auto;padding:16px 10px;cursor:pointer;flex-shrink:0}
.auth-status{display:flex;align-items:center;gap:10px}
.auth-hover-zone .auth-status{opacity:.1;transition:opacity .25s ease}
.auth-hover-zone:hover .auth-status{opacity:1}
.auth-login-btn{padding:7px 16px;background:var(--accent-grad);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;transition:var(--transition);letter-spacing:.3px;white-space:nowrap}
.auth-login-btn:hover{box-shadow:0 4px 14px rgba(37,99,235,.3)}
.auth-hello{font-size:.8rem;color:var(--text);font-weight:600;white-space:nowrap}
.auth-my-account-btn{padding:6px 12px;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.2);border-radius:8px;font-size:.72rem;color:var(--accent);font-weight:600;cursor:pointer;white-space:nowrap}
.auth-logout-btn{padding:6px 12px;background:var(--primary-light);border:1px solid var(--border);border-radius:8px;font-size:.72rem;color:var(--text-muted);cursor:pointer;white-space:nowrap}
.auth-logout-btn:hover{background:rgba(220,38,38,.06);color:var(--danger);border-color:rgba(220,38,38,.2)}
@media(max-width:900px){.auth-hover-zone .auth-status{opacity:1}.brand-slogan{display:none}}

/* ═══════════ Hero区（阶段B重构：三按钮+底部常驻CTA，与下方导航完全隔离） ═══════════ */
.hero{position:relative;overflow:hidden;background:#0B1220;padding:42px 32px 48px;flex:0 0 auto;min-height:calc(100vh - var(--header-h, 65px) - var(--nav-h, 57px));display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}
.hero-aurora{position:absolute;inset:0;pointer-events:none;opacity:.9}
.hero-aurora span{position:absolute;border-radius:50%;filter:blur(70px)}
.hero-aurora .a1{width:520px;height:520px;background:radial-gradient(circle,rgba(37,99,235,.5),transparent 70%);top:-220px;left:-80px}
.hero-aurora .a2{width:460px;height:460px;background:radial-gradient(circle,rgba(124,58,237,.4),transparent 70%);top:-160px;right:-60px}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 40%,transparent 90%)}
.hero-inner{position:relative;z-index:2;max-width:880px;margin:0 auto;text-align:center;color:#fff}
.fullscreen-btn{width:32px;height:32px;border-radius:50%;background:var(--primary-light);border:1px solid var(--border);color:var(--text-muted);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition)}
.fullscreen-btn:hover{background:rgba(37,99,235,.08);color:var(--accent);border-color:rgba(37,99,235,.25)}
.hero-title{font-family:var(--font-display);font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:800;line-height:1.32;margin:20px auto 14px;max-width:760px;letter-spacing:-.3px}
.hero-title .grad-text{background:linear-gradient(135deg,#7fb3ff,#c9a6ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-title .title-colon-small{font-size:.62em;font-weight:600;letter-spacing:0}
.hero-title .title-dash-line{display:inline-block;width:.85em;height:.09em;background:currentColor;vertical-align:.32em;margin-right:.15em}
.hero-sub{font-size:.9rem;color:#a9b7d4;margin:0 auto 28px;line-height:1.6;white-space:nowrap}

.hero-btn-row{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:0 0 14px}
.hero-feature-btn{width:240px;padding:24px 24px;border-radius:18px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.14);cursor:pointer;transition:.28s cubic-bezier(.4,0,.2,1);text-align:left;position:relative;overflow:hidden}
.hero-feature-btn::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-grad);opacity:0;transition:opacity .25s}
.hero-feature-btn:hover{background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.03));transform:translateY(-4px);border-color:rgba(124,138,255,.5);box-shadow:0 14px 32px -12px rgba(37,99,235,.45)}
.hero-feature-btn:hover::before{opacity:1}
.hero-feature-btn .btn-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.hero-feature-btn .icon-plain{font-size:22px;flex-shrink:0}
.hero-feature-btn .title{font-size:.94rem;font-weight:800;color:#fff;letter-spacing:-.1px;line-height:1.3}
.hero-feature-btn .chip{display:inline-flex;align-items:center;gap:5px;font-size:.66rem;color:#c9d4ee;background:rgba(255,255,255,.08);padding:3px 10px;border-radius:20px;font-weight:600;margin-bottom:6px}
.hero-feature-btn .arrow{position:absolute;bottom:18px;right:18px;font-size:.74rem;color:#7fa3ff;opacity:0;transform:translateX(-4px);transition:.25s}
.hero-feature-btn:hover .arrow{opacity:1;transform:translateX(0)}

.hero-bottom-cta{margin-top:22px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.hero-bottom-cta .q{font-size:.74rem;color:#8b98b8;margin:0 auto 16px;max-width:720px;line-height:1.85;text-align:center;white-space:pre-line}
.hero-bottom-btn{padding:12px 32px;border-radius:10px;background:var(--accent-grad);color:#fff;border:none;font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 10px 26px -6px rgba(37,99,235,.45);transition:.2s}
.hero-bottom-btn:hover{transform:translateY(-2px);box-shadow:0 14px 32px -6px rgba(37,99,235,.55)}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;height:44px;background:var(--primary);border-radius:50% 50% 0 0 / 100% 100% 0 0;transform:scale(1.4)}
@media(max-width:640px){.hero{padding:36px 16px 48px}.hero-sub{white-space:normal}}

/* ═══════════ Nav导航（吸附逻辑保留） ═══════════ */
.nav-bar{background:rgba(248,250,252,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:var(--header-h, 65px);scroll-margin-top:var(--header-h, 65px);z-index:99;box-shadow:0 0 0 rgba(15,23,42,0);transition:box-shadow .25s ease;flex-shrink:0}
.nav-bar.is-stuck{box-shadow:0 6px 16px -4px rgba(15,23,42,.12)}
.nav-inner{width:100%;max-width:1400px;margin:0 auto;padding:8px 20px;display:flex;align-items:center;gap:4px;box-sizing:border-box}
.nav-dropdown{position:relative;flex:1;min-width:0}
.nav-dropdown>button{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:transparent;border:none;border-radius:10px;color:var(--text-muted);font-size:.86rem;font-weight:600;cursor:pointer;transition:var(--transition);white-space:nowrap;letter-spacing:.3px;position:relative}
.nav-dropdown>button:hover{color:var(--text);background:rgba(37,99,235,.05)}
.nav-dropdown.active>button{color:#fff;background:var(--accent-grad);box-shadow:0 4px 14px rgba(37,99,235,.3)}
.dot.blue{background:var(--accent)}.dot.gold{background:var(--gold)}.dot.green{background:var(--success)}.dot.warm{background:var(--warm)}

.main-content{height:calc(100vh - var(--header-h, 65px) - var(--nav-h, 57px) - var(--footer-h, 44px));overflow-y:auto;box-sizing:border-box;padding:28px 0 40px;transition:opacity .18s ease,transform .18s ease}
.section-title{font-size:1.35rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--text)}
.section-title .badge{font-size:.7rem;background:var(--accent-grad);color:#fff;padding:4px 12px;border-radius:20px;font-weight:700;box-shadow:0 4px 12px rgba(37,99,235,.25)}

/* ═══════════ 小型Banner（技术/咨询/数据服务） ═══════════ */
.mini-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,#EEF2FF 0%,#F3EEFF 55%,#FCF3FF 100%);border:1px solid rgba(148,130,253,.16);border-radius:28px;padding:28px 34px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;box-shadow:0 4px 20px rgba(99,102,241,.08);flex-shrink:0}
.mini-banner-compact{padding:14px 34px;margin-bottom:16px}
.mini-banner-compact .mini-banner-icon{width:38px;height:38px}
.mini-banner-blob-a{position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.14),transparent 70%);top:-130px;right:-50px;pointer-events:none;z-index:0}
.mini-banner-blob-b{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 70%);bottom:-110px;left:12%;pointer-events:none;z-index:0}
.mini-banner-left{display:flex;align-items:center;gap:18px;position:relative;z-index:1}
.mini-banner-icon{width:56px;height:56px;flex-shrink:0;border-radius:18px;background:var(--accent-grad);display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 8px 20px rgba(99,102,241,.28)}
.mini-banner-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--text)}
.mini-banner-sub{font-size:.84rem;color:var(--text-muted);margin-top:4px;line-height:1.5}
.mini-banner-stats{display:flex;gap:0;position:relative;z-index:1;flex-wrap:wrap}
.mini-banner-stat{text-align:center;padding:0 22px;border-left:1px solid rgba(30,41,59,.09)}
.mini-banner-stat:first-child{border-left:none}
.mini-banner-stat .num{font-family:var(--font-display);font-weight:700;font-size:1.3rem;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:block}
.mini-banner-stat .lbl{font-size:.68rem;color:var(--text-muted);margin-top:3px;white-space:nowrap}
@media(max-width:640px){.mini-banner{padding:24px 22px}.mini-banner-stats{gap:0;width:100%;justify-content:space-between;margin-top:6px}.mini-banner-stat{padding:0 10px}}

/* ═══════════ 典型案例卡片（三大服务内复用showcase-card样式） ═══════════ */
.typical-case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:16px 0 28px}
.typical-case-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;transition:var(--transition)}
.typical-case-card:hover{border-color:#CBD5E1;box-shadow:var(--shadow-md);transform:translateY(-2px)}
.typical-case-card .icon{font-size:28px;margin-bottom:8px}
.typical-case-card h4{font-size:.92rem;font-weight:700;color:var(--text);margin-bottom:6px}
.typical-case-card p{font-size:.78rem;color:var(--text-muted);line-height:1.55}

/* ═══════════ 产品卡片 ═══════════ */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.product-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px;transition:var(--transition);cursor:default;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.product-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-grad);opacity:0;transition:opacity .3s}
.product-card:hover{border-color:#CBD5E1;transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.product-card:hover::before{opacity:1}
.product-card.clickable{cursor:pointer}
.product-card .icon-wrap{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:16px;box-shadow:0 6px 16px -4px rgba(37,99,235,.35)}
.product-card h4{font-size:1rem;font-weight:700;margin-bottom:6px;color:var(--text)}
.product-card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tag-sm{font-size:.68rem;padding:3px 9px;border-radius:12px;background:rgba(37,99,235,.08);color:var(--accent);font-weight:600;display:inline-block}
.tag-sm.health{background:rgba(22,163,74,.1);color:var(--success)}
.product-card .desc{font-size:.8rem;color:var(--text-muted);line-height:1.5}
.product-card .stat-row{display:flex;gap:14px;margin-top:12px;font-size:.75rem;color:var(--text-muted)}
.product-card .stat-row span{display:flex;align-items:center;gap:4px}
.product-card .stat-row .val{color:var(--gold);font-weight:700}
.product-card .enter-hint{font-size:.7rem;color:var(--success);margin-top:8px;display:flex;align-items:center;gap:4px;font-weight:600}

.service-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}
.service-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;transition:var(--transition);box-shadow:var(--shadow)}
.service-card:hover{border-color:#CBD5E1;box-shadow:var(--shadow-md)}
.service-card h4{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:4px}
.service-card .subtitle{font-size:.75rem;color:var(--text-muted);margin-bottom:12px}
.service-card ul{list-style:none;padding:0}
.service-card ul li{padding:7px 0;border-bottom:1px solid var(--border);font-size:.84rem;display:flex;align-items:center;gap:8px;color:var(--text)}
.service-card ul li:last-child{border-bottom:none}
.service-card ul li::before{content:'▸';color:var(--accent);font-size:.65rem;flex-shrink:0}

.entity-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:var(--transition);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.entity-card:hover{border-color:#CBD5E1;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.entity-card .entity-badge{display:inline-block;font-size:.65rem;padding:3px 10px;border-radius:12px;font-weight:700;letter-spacing:.5px;margin-bottom:10px}
.badge-national{background:var(--gold-light);color:var(--gold)}.badge-enterprise{background:rgba(37,99,235,.1);color:var(--accent)}.badge-joint{background:rgba(22,163,74,.1);color:var(--success)}
.entity-card h4{font-size:1.05rem;font-weight:700;margin-bottom:4px;color:var(--text)}
.entity-card .role{font-size:.75rem;color:var(--text-muted);margin-bottom:10px}
.entity-card .entity-desc{font-size:.82rem;color:var(--text);line-height:1.6}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.pillar-item{background:var(--primary-light);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center}
.pillar-item .pillar-icon{font-size:28px;margin-bottom:6px}
.pillar-item .pillar-label{font-size:.82rem;font-weight:700;color:var(--accent)}
.pillar-item .pillar-desc{font-size:.72rem;color:var(--text-muted);margin-top:4px;line-height:1.4}
.process-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}
.process-step{background:var(--primary-light);border:1px solid var(--border);border-radius:20px;padding:8px 18px;font-size:.82rem;font-weight:500;white-space:nowrap;color:var(--text)}
.process-arrow{color:var(--accent);font-weight:700;font-size:1.1rem}

/* ═══════════ 通用弹窗（大健康商城/OPL版本/展示墙/体验开通 共用容器样式） ═══════════ */
.health-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.health-backdrop.open{opacity:1;pointer-events:all}
.health-modal{background:var(--primary);border:1px solid var(--border);border-radius:var(--radius-lg);width:92vw;max-width:1100px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(15,23,42,.25);display:flex;flex-direction:column}
.opl-modal{max-width:560px}
.opl-modal-wide{max-width:960px;width:92vw}
.health-modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;background:var(--primary);z-index:5;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.health-modal-header h2{font-size:1.2rem;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--text)}
.btn-close{background:var(--primary-light);border:1px solid var(--border);color:var(--text-muted);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1.1rem;transition:var(--transition);display:flex;align-items:center;justify-content:center}
.btn-close:hover{background:rgba(220,38,38,.08);color:var(--danger);border-color:rgba(220,38,38,.2)}
.health-modal-body{padding:20px 24px;flex:1}

/* 大健康商城 */
.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.health-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;transition:var(--transition);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.health-item:hover{border-color:#CBD5E1;box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.h-img{position:relative;width:100%;aspect-ratio:1.6/1;border-radius:14px;margin-bottom:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.h-img::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 22% 18%, rgba(255,255,255,.4), transparent 42%),repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 2px, transparent 2px 7px);mix-blend-mode:overlay;pointer-events:none}
.h-img::after{content:'';position:absolute;inset:0;box-shadow:inset 0 -14px 20px -10px rgba(0,0,0,.25);pointer-events:none}
.h-img .icon-token{position:relative;z-index:1;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 10px rgba(0,0,0,.18),inset 0 1px 1px rgba(255,255,255,.5)}
.h-img .cat-tag{position:absolute;top:9px;left:9px;z-index:2;font-size:.6rem;font-weight:700;color:#fff;padding:3px 9px;border-radius:20px;letter-spacing:.3px}
.health-item h5{font-size:.9rem;font-weight:700;margin-bottom:4px;color:var(--text)}
.health-item .h-desc{font-size:.72rem;color:var(--text-muted);margin-bottom:10px;line-height:1.4;flex:1}
.health-item .price-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.health-item .price-rmb{font-size:.95rem;font-weight:700;color:var(--text)}
.health-item .price-rmb small{font-size:.7rem;color:var(--text-muted);font-weight:400}
.health-item .price-voucher{font-size:.78rem;color:var(--gold);font-weight:600}
.btn-add-cart{width:100%;padding:9px;background:var(--success);border:none;border-radius:8px;color:#fff;font-weight:700;font-size:.8rem;cursor:pointer}
.btn-add-cart.in-cart{background:var(--warm)}
.cart-sidebar{border-top:1px solid var(--border);padding:16px 24px;background:var(--primary-light);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.cart-items{max-height:160px;overflow-y:auto;margin-bottom:12px}
.cart-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:.82rem;color:var(--text)}
.cart-item .qty-ctrl{display:flex;align-items:center;gap:6px}
.cart-item .qty-ctrl button{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);cursor:pointer}
.cart-empty{font-size:.8rem;color:var(--text-muted);text-align:center;padding:16px 0}
.cart-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.checkout-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.payment-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.payment-toggle button{padding:8px 16px;background:var(--bg-card);border:none;color:var(--text-muted);font-size:.78rem;cursor:pointer}
.payment-toggle button.active{background:var(--accent);color:#fff;font-weight:700}
.btn-checkout{padding:10px 24px;background:var(--accent-grad);border:none;border-radius:8px;color:#fff;font-weight:700;font-size:.85rem;cursor:pointer}
.feature-hidden-note{font-size:.72rem;color:var(--text-muted);text-align:center;padding:14px;background:var(--primary-light);border-radius:8px;margin-top:10px}

/* ═══════════ OPL版本/体验开通 弹窗内组件 ═══════════ */
.opl-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.opl-choice-card{background:var(--primary-light);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center}
.opl-choice-card.featured{background:linear-gradient(145deg,#EEF2FF,#F3EEFF);border-color:rgba(124,58,237,.25)}
.opl-choice-icon{font-size:34px;margin-bottom:10px}
.opl-choice-card h4{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:8px}
.opl-choice-card p{font-size:.82rem;color:var(--text-muted);line-height:1.5;margin-bottom:14px;flex:1}
.opl-price .price-num{font-family:var(--font-display);font-size:1.6rem;font-weight:800;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.opl-choice-btn{padding:10px 20px;border-radius:8px;border:none;font-weight:700;font-size:.85rem;cursor:pointer;width:100%}
.opl-choice-btn.primary{background:var(--accent-grad);color:#fff}
.opl-choice-btn.ghost{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}
.opl-form label{display:block;font-size:.8rem;font-weight:600;margin:10px 0 5px;color:var(--text)}
.opl-form input,.opl-form textarea{width:100%;padding:10px 14px;background:var(--primary);border:1px solid var(--border);border-radius:8px;font-size:.86rem;font-family:inherit}
.opl-form textarea{resize:vertical;min-height:80px}
.opl-back-link{display:block;text-align:center;margin-top:14px;background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline}
.opl-order-summary{background:var(--primary-light);border-radius:var(--radius);padding:16px;margin-bottom:16px}
.opl-order-row{display:flex;justify-content:space-between;font-size:.86rem;color:var(--text);padding:4px 0}
.opl-order-price{font-weight:800;color:var(--accent);font-size:1.05rem}
.opl-pay-methods{display:flex;gap:10px;margin-bottom:16px}
.opl-pay-btn{flex:1;padding:10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:.84rem;font-weight:600;cursor:pointer}
.opl-pay-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(37,99,235,.06)}
.opl-demo-note{font-size:.72rem;color:var(--text-muted);margin:10px 0 16px;line-height:1.5}
.opl-success-lead{font-size:.86rem;color:var(--text);margin-bottom:16px;line-height:1.5}
.opl-credential-box{background:var(--primary-light);border:1px dashed var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}
.opl-credential-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:.86rem}
.opl-credential-row .label{color:var(--text-muted)}
.opl-credential-row .value{font-weight:700;color:var(--text);font-family:monospace}
.opl-empty{font-size:.85rem;color:var(--text-muted);text-align:center;padding:20px 0}
.opl-account-list{display:flex;flex-direction:column;gap:14px}
.opl-account-item{background:var(--primary-light);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}
.opl-account-row{display:flex;align-items:center;gap:10px;font-size:.84rem;padding:4px 0}
.opl-account-row .label{color:var(--text-muted);min-width:70px}
.opl-account-row .value{font-weight:600;color:var(--text);font-family:monospace}
.opl-mini-btn{margin-left:auto;padding:4px 10px;font-size:.72rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text-muted)}
.opl-mini-link{display:inline-block;margin-top:6px;font-size:.8rem;color:var(--accent);font-weight:600;text-decoration:none}
@media(max-width:640px){.opl-choice-grid{grid-template-columns:1fr}}

/* ═══════════ 数据空间展示墙 ═══════════ */
.showcase-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.showcase-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;transition:var(--transition)}
.showcase-card:hover{border-color:#CBD5E1;box-shadow:var(--shadow-md);transform:translateY(-2px)}
.showcase-icon{font-size:32px;margin-bottom:8px}
.showcase-card h4{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:6px}
.showcase-card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.showcase-card .desc{font-size:.78rem;color:var(--text-muted);line-height:1.5;margin-bottom:12px;flex:1}
.showcase-cta-card{background:linear-gradient(145deg,#EEF2FF,#F3EEFF);border:1px dashed rgba(124,58,237,.3)}
@media(max-width:640px){.showcase-grid{grid-template-columns:1fr}}

/* ═══════════ 反馈表单 ═══════════ */
.feedback-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;max-width:680px;box-shadow:var(--shadow)}
.feedback-form h4{text-align:center;margin-bottom:18px}
.feedback-form label{display:block;font-size:.84rem;font-weight:600;margin:12px 0 5px;color:var(--text)}
.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;padding:10px 14px;background:var(--primary);border:1px solid var(--border);border-radius:8px;font-size:.88rem;font-family:inherit}
.feedback-form textarea{resize:vertical;min-height:100px}
.btn-submit{margin-top:16px;padding:11px 28px;background:var(--accent-grad);color:#fff;border:none;border-radius:8px;font-weight:700;font-size:.9rem;cursor:pointer}

/* ═══════════ 通用弹窗：登录注册 / 成功提示 / toast ═══════════ */
.auth-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
/* 平台条款弹窗是从注册框内部点击触发打开的，层级必须比登录注册弹窗(500)更高，
   否则会像截图那样被压在注册框下面——这里单独覆盖，不改动.health-backdrop这个全站通用层级，
   避免影响其他不涉及"从别的弹窗里再弹一层"场景的普通弹窗 */
#platformTermsBackdrop{z-index:600}
.auth-overlay.open{opacity:1;pointer-events:all}
.auth-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:90vw;max-width:400px;box-shadow:0 20px 60px rgba(15,23,42,.25);overflow:hidden}
.auth-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}
.auth-modal-header h3{font-size:1.05rem;font-weight:700;color:var(--text)}
.auth-tabs{display:flex;gap:4px;padding:16px 24px 0}
.auth-tab{flex:1;text-align:center;padding:10px;border-radius:8px;font-size:.86rem;font-weight:600;color:var(--text-muted);cursor:pointer;background:var(--primary-light)}
.auth-tab.active{background:var(--accent-grad);color:#fff}
.auth-modal-body{padding:20px 24px 24px}
.auth-modal-body label{display:block;font-size:.8rem;font-weight:600;margin:10px 0 5px;color:var(--text)}
.auth-modal-body input{width:100%;padding:10px 14px;background:var(--primary);border:1px solid var(--border);border-radius:8px;font-size:.86rem;font-family:inherit}
.auth-error{color:var(--danger);font-size:.78rem;margin-top:10px;min-height:1.1em}
.auth-submit-btn{width:100%;margin-top:16px;padding:11px;background:var(--accent-grad);color:#fff;border:none;border-radius:8px;font-weight:700;font-size:.88rem;cursor:pointer}
.auth-demo-note{font-size:.7rem;color:var(--text-muted);margin-top:14px;text-align:center;line-height:1.5}

.success-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:400;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.success-overlay.open{opacity:1;pointer-events:all}
.success-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;text-align:center;max-width:400px;box-shadow:0 20px 50px rgba(15,23,42,.2)}
.success-box .check-icon{font-size:48px;margin-bottom:12px}
.success-box h3{font-size:1.1rem;font-weight:700;color:var(--success);margin-bottom:6px}
.success-box p{font-size:.82rem;color:var(--text-muted);margin-bottom:16px;line-height:1.5}
.success-box .btn-ok{padding:10px 28px;background:var(--success);border:none;border-radius:8px;color:#fff;font-weight:700;cursor:pointer}

.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--text);color:#fff;padding:12px 28px;border-radius:30px;font-weight:600;z-index:999;opacity:0;pointer-events:none;transition:opacity .35s;font-size:.9rem;box-shadow:0 8px 24px rgba(15,23,42,.2);display:flex;align-items:center;gap:8px}
.toast.toast-success{background:#16a34a}
.toast.toast-warning{background:#d97706}
.toast.show{opacity:1}

@media(max-width:768px){
    .nav-inner{flex-wrap:wrap}
    .nav-dropdown>button{font-size:.7rem;padding:10px 3px}
    .product-grid,.service-panel,.typical-case-grid{grid-template-columns:1fr}
    .pillar-grid{grid-template-columns:1fr}
    .health-modal{width:98vw;max-height:92vh}
    .health-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
    .cart-summary{flex-direction:column;align-items:stretch}
    .checkout-row{flex-direction:column}
}

/* ═══════════════════════════════════════════════════════
   管理后台面板（阶段C）
   深色侧边栏 + 浅色内容区，和前台消费页视觉明显区分
   ═══════════════════════════════════════════════════════ */
.admin-shell{display:flex;min-height:100vh}
.admin-sidebar{width:230px;background:#0B1220;color:#fff;flex-shrink:0;display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;box-sizing:border-box}
.admin-logo-row{display:flex;align-items:center;gap:10px;padding:6px 8px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}
.admin-brand-name{font-size:.86rem;font-weight:700}
.admin-brand-sub{font-size:.66rem;color:#8fa0c2;margin-top:2px}
.admin-nav-section-label{font-size:.62rem;color:#5b6b8c;text-transform:uppercase;letter-spacing:.5px;margin:14px 10px 6px;font-weight:700}
.admin-nav-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;font-size:.84rem;color:#c3cde0;cursor:pointer;margin-bottom:2px;transition:.2s}

/* 管理后台侧边栏可折叠分组 */
.admin-nav-group{margin-bottom:4px}
.admin-nav-group-header{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;font-size:.72rem;color:#8b98b8;text-transform:uppercase;letter-spacing:.5px;font-weight:700;cursor:pointer;border-radius:9px;transition:.2s}
.admin-nav-group-header:hover{background:rgba(255,255,255,.05)}
.admin-nav-group-arrow{transition:transform .2s ease;font-size:.7rem}
.admin-nav-group.collapsed .admin-nav-group-arrow{transform:rotate(-90deg)}
.admin-nav-group-items{max-height:600px;overflow:hidden;transition:max-height .25s ease}
.admin-nav-group.collapsed .admin-nav-group-items{max-height:0}
.admin-nav-item:hover{background:rgba(255,255,255,.06)}
.admin-nav-item.active{background:var(--accent-grad);color:#fff;font-weight:700}
.admin-nav-item[style*="display:none"]{display:none}

.admin-main{flex:1;padding:28px 34px;background:var(--primary-light);min-height:100vh;box-sizing:border-box}
.admin-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:10;background:var(--primary-light);padding:12px 0;margin-top:-12px}
.admin-topbar h2{font-size:1.2rem;font-weight:800;color:var(--text)}
.admin-topbar .breadcrumb{font-size:.78rem;color:var(--text-muted);margin-top:2px}

.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.admin-stat-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.admin-stat-card .label{font-size:.76rem;color:var(--text-muted);margin-bottom:8px}
.admin-stat-card .num{font-family:var(--font-display);font-size:1.6rem;font-weight:800;color:var(--text)}
.admin-stat-card .num.warn{color:#EA580C}

.admin-panel-box{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:var(--shadow);margin-bottom:20px}
.admin-panel-box h3{font-size:.95rem;font-weight:700;margin-bottom:14px;color:var(--text)}

.admin-table{width:100%;border-collapse:collapse;font-size:.8rem}
.admin-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.72rem}
.admin-table td{padding:10px;border-bottom:1px solid #F1F5F9;color:var(--text)}
.admin-role-pill{font-size:.66rem;padding:2px 8px;border-radius:12px;font-weight:700}
.admin-role-pill.admin{background:rgba(239,68,68,.1);color:#DC2626}
.admin-role-pill.operator{background:rgba(37,99,235,.1);color:var(--accent)}

.admin-flag-row{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid var(--border)}
.admin-flag-row:last-child{border-bottom:none}
.admin-flag-row .flag-label{font-size:.86rem;color:var(--text);font-weight:600}
.admin-flag-row .flag-meta{font-size:.7rem;color:var(--text-muted);margin-top:2px}
.admin-toggle{width:42px;height:22px;border-radius:22px;position:relative;cursor:pointer;border:none;flex-shrink:0;transition:.2s}
.admin-toggle.on{background:var(--accent-grad)}
.admin-toggle.off{background:#CBD5E1}
.admin-toggle::after{content:'';position:absolute;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.admin-toggle.on::after{right:2px}
.admin-toggle.off::after{left:2px}

.admin-content-form label{display:block;font-size:.82rem;font-weight:600;margin:6px 0 8px;color:var(--text)}
.admin-content-form textarea{width:100%;min-height:140px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;font-size:.86rem;font-family:inherit;line-height:1.6;resize:vertical}
.admin-content-form .meta{font-size:.72rem;color:var(--text-muted);margin-top:8px}
.admin-save-btn{margin-top:14px;padding:10px 24px;background:var(--accent-grad);color:#fff;border:none;border-radius:8px;font-weight:700;font-size:.85rem;cursor:pointer}
.admin-save-btn:disabled{opacity:.6;cursor:not-allowed}
.admin-empty-note{font-size:.82rem;color:var(--text-muted);text-align:center;padding:30px 0}

/* ═══════════════════════════════════════════════════════
   交流反馈 · 论坛功能（阶段D）
   ═══════════════════════════════════════════════════════ */
.feedback-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:0}
.feedback-tab-btn{padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;font-size:.88rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:var(--transition)}
.feedback-tab-btn:hover{color:var(--text)}
.feedback-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}

.forum-post-list{display:flex;flex-direction:column;gap:12px}
.forum-post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:var(--transition)}
.forum-post-card:hover{border-color:#CBD5E1;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.forum-post-card h4{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:6px}
.forum-post-preview{font-size:.8rem;color:var(--text-muted);line-height:1.5;margin-bottom:8px}
.forum-post-meta{font-size:.72rem;color:var(--text-muted)}

.forum-reply-list{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.forum-reply-item{background:var(--primary-light);border-radius:10px;padding:14px 16px}
.forum-reply-quote{font-size:.72rem;color:var(--accent);font-weight:600;margin-bottom:6px}
.forum-reply-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.forum-reply-author{font-size:.82rem;font-weight:700;color:var(--text)}
.forum-reply-time{font-size:.68rem;color:var(--text-muted)}
.forum-reply-content{font-size:.84rem;color:var(--text);line-height:1.55;white-space:pre-wrap}
.forum-reply-actions{display:flex;gap:14px;margin-top:8px}
.forum-reply-action-btn{background:none;border:none;font-size:.72rem;color:var(--text-muted);cursor:pointer;font-weight:600}
.forum-reply-action-btn:hover{color:var(--accent)}
.forum-reply-action-btn.danger:hover{color:var(--danger)}

/* ═══════════════════════════════════════════════════════
   标签胶囊编辑器 / 图标点选器 / 分类标记（阶段A/B/C新增）
   ═══════════════════════════════════════════════════════ */
.tag-chip-editor{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--primary)}
.tag-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.tag-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(37,99,235,.08);color:var(--accent);font-size:.76rem;font-weight:600;padding:4px 6px 4px 10px;border-radius:14px}
.tag-chip-remove{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.9rem;line-height:1;padding:0 2px}
.tag-chip-remove:hover{color:var(--danger)}
.tag-chip-input{width:100%;border:none;outline:none;font-size:.84rem;padding:4px 2px;font-family:inherit;background:transparent}

.icon-picker{border:1px solid var(--border);border-radius:8px;padding:10px;max-height:180px;overflow-y:auto;background:var(--primary)}
.icon-picker-group-label{font-size:.66rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin:8px 0 4px;width:100%}
.icon-picker-grid{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.icon-picker-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--primary-light);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}
.icon-picker-btn:hover{border-color:var(--accent)}
.icon-picker-btn.selected{border-color:var(--accent);background:rgba(37,99,235,.1);box-shadow:0 0 0 2px rgba(37,99,235,.15)}

.category-pill{display:inline-block;font-size:.66rem;font-weight:700;color:var(--accent);background:rgba(37,99,235,.08);padding:2px 9px;border-radius:12px;margin-left:6px;vertical-align:middle}
.unconfirmed-badge{display:inline-block;font-size:.66rem;font-weight:700;color:var(--warm);background:rgba(234,88,12,.1);padding:2px 9px;border-radius:12px;margin-left:6px;vertical-align:middle}

/* ═══════════════════════════════════════════════════════
   展示墙分类筛选 + 搜索框
   ═══════════════════════════════════════════════════════ */
.showcase-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.showcase-category-pills{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.showcase-cat-pill{padding:6px 14px;border-radius:16px;border:1px solid var(--border);background:var(--primary-light);color:var(--text-muted);font-size:.76rem;font-weight:600;cursor:pointer;transition:var(--transition)}
.showcase-cat-pill:hover{border-color:var(--accent);color:var(--accent)}
.showcase-cat-pill.active{background:var(--accent-grad);border-color:transparent;color:#fff}
.showcase-search-input{padding:8px 14px;border:1px solid var(--border);border-radius:16px;font-size:.82rem;font-family:inherit;min-width:200px}

/* ═══════════════════════════════════════════════════════
   大健康商品详情页——内容块渲染样式
   ═══════════════════════════════════════════════════════ */
.health-detail-blocks{margin-top:8px}
.detail-block-heading{font-size:1rem;font-weight:700;color:var(--text);margin:18px 0 8px}
.detail-block-paragraph{font-size:.86rem;color:var(--text);line-height:1.75;margin-bottom:12px;white-space:pre-wrap}
.detail-block-image{width:100%;border-radius:10px;margin-bottom:14px;display:block}

/* ═══════════════════════════════════════════════════════
   三大服务板块："左侧按键列表 + 右侧说明与操作" 通用布局
   整体撑满mainContent的固定高度（.board-fixed-frame），
   侧边栏和详情区各自独立滚动，外层高度不会因为内容长短而弹动
   ═══════════════════════════════════════════════════════ */
.board-fixed-frame{display:flex;flex-direction:column;height:100%}
.subtab-board{display:flex;gap:20px;align-items:stretch;margin-top:16px;flex:1;min-height:0}
.subtab-sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.subtab-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:var(--transition);font-size:.84rem;font-weight:600;color:var(--text)}
.subtab-btn:hover{border-color:var(--accent)}
.subtab-btn.active{background:var(--accent-grad);border-color:transparent;color:#fff}
.subtab-icon{font-size:1.1rem;flex-shrink:0}
.subtab-detail{flex:1;min-width:0;min-height:0;overflow-y:auto;padding-right:4px}

.group-member-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.group-member-row input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.82rem;font-family:inherit}
.group-member-remove{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--primary-light);color:var(--text-muted);cursor:pointer;flex-shrink:0}
.group-member-remove:hover{color:var(--danger);border-color:var(--danger)}

@media(max-width:900px){.subtab-board{flex-direction:column}.subtab-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;overflow-y:visible}}

/* ═══════════════════════════════════════════════════════
   管理后台列表通用筛选栏
   ═══════════════════════════════════════════════════════ */
.admin-list-filter-bar{display:flex;gap:10px;margin-bottom:14px}
.admin-list-search{flex:1;padding:8px 14px;border:1px solid var(--border);border-radius:8px;font-size:.82rem;font-family:inherit}
.admin-list-category-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.82rem;font-family:inherit;min-width:140px}

/* ═══════════════════════════════════════════════════════
   导航栏未登录锁定状态
   ═══════════════════════════════════════════════════════ */
.nav-lock-icon{display:none;font-size:.7rem;margin-left:2px;opacity:.6}
.nav-inner.nav-locked .nav-lock-icon{display:inline}

/* ═══════════════════════════════════════════════════════
   三大服务板块子面板：3:2 布局（左侧说明，右侧操作/表单），
   左右两栏各自独立滚动，撑满subtab-detail剩余的固定高度
   ═══════════════════════════════════════════════════════ */
.board-2-1-layout{display:flex;gap:20px;align-items:stretch;height:100%}
.board-2-1-left{flex:3;min-width:0;overflow-y:auto;height:100%;padding-right:4px}
.board-2-1-right{flex:2;min-width:260px;overflow-y:auto;height:100%;padding-right:4px}
@media(max-width:900px){.board-2-1-layout{flex-direction:column;height:auto}.board-2-1-left,.board-2-1-right{height:auto;overflow-y:visible}}

/* ═══════════════════════════════════════════════════════
   基本情况板块：3:2布局 + 工作动态PDF查看器，
   整体撑满固定高度，左右两栏各自独立滚动
   ═══════════════════════════════════════════════════════ */
.basic-info-2-1-layout{display:flex;gap:20px;align-items:stretch;flex:1;min-height:0}
.basic-info-left{flex:3;min-width:0;display:flex;flex-direction:column;gap:16px;overflow-y:auto;height:100%;padding-right:4px}
.basic-info-right{flex:2;min-width:280px;height:100%;display:flex;flex-direction:column}
.basic-info-scroll-card{flex:1;min-height:0;overflow-y:auto}
@media(max-width:900px){.basic-info-2-1-layout{flex-direction:column;height:auto}.basic-info-left,.basic-info-right{height:auto;overflow-y:visible}.basic-info-scroll-card{max-height:320px}}

/* 国家级平台+联合创新体合并为一个文本框内的两个小节 */
.basic-info-section:first-child{margin-top:0}
.basic-info-section-divider{height:1px;background:var(--border);margin:20px 0}

/* ═══════════════════════════════════════════════════════
   骨架屏占位：数据加载完成前的灰色闪烁占位块
   ═══════════════════════════════════════════════════════ */
.skeleton-lines{display:block}
.skeleton-line{display:block;height:14px;border-radius:4px;margin-bottom:8px;background:linear-gradient(90deg,#eef0f4 25%,#e2e5eb 37%,#eef0f4 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}
.skeleton-pdf{width:100%;max-width:520px;aspect-ratio:3/4;border-radius:8px;background:linear-gradient(90deg,#eef0f4 25%,#e2e5eb 37%,#eef0f4 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}
@keyframes skeleton-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

.bulletin-pdf-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;flex:1;min-height:0;display:flex;flex-direction:column}
.bulletin-pdf-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--primary-light);border-bottom:1px solid var(--border);font-size:.84rem;font-weight:700;color:var(--text);flex-shrink:0;gap:10px}
.bulletin-pdf-header span:first-child{flex-shrink:0}
.bulletin-pdf-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;min-width:0}
.bulletin-pdf-select{padding:5px 8px;border:1px solid var(--border);border-radius:6px;font-size:.74rem;font-family:inherit;width:180px;background:#fff}
.bulletin-pdf-zoom-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:.9rem;flex-shrink:0}
.bulletin-pdf-zoom-btn:hover{border-color:var(--accent)}
#bulletinPdfBody{flex:1;min-height:0;display:flex;flex-direction:column;padding:0}

/* PDF.js翻页查看器：画布区独立滚动 + 翻页条固定在最下面，小窗和放大弹窗共用同一套结构 */
.pdf-canvas-area{flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px}
.pdf-canvas-area canvas{max-width:100%;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);display:block}
.pdf-nav-bar{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px;border-top:1px solid var(--border);background:var(--primary-light)}
.pdf-nav-btn-subtle{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--text-muted);font-size:.9rem;cursor:pointer;flex-shrink:0;transition:var(--transition)}
.pdf-nav-btn-subtle:hover{border-color:var(--accent);color:var(--accent)}
.pdf-nav-btn-subtle:disabled{opacity:.35;cursor:not-allowed}
.pdf-page-info{font-size:.74rem;color:var(--text-muted)}

/* 放大弹窗内的PDF查看器需要一个明确的高度，画布区才知道该分配多少滚动空间 */
#bulletinZoomBody{height:70vh;display:flex;flex-direction:column;padding:0!important}

/* 管理后台：基本情况长文字实时预览 */
.basic-info-live-preview{background:var(--primary-light);border:1px solid var(--border);border-radius:8px;padding:14px;min-height:180px;max-height:280px;overflow-y:auto}

/* 基本情况板块：标题+操作按钮同一行，标题左对齐，按钮右对齐 */
.basic-info-top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px;flex-shrink:0}
.basic-info-top-actions{display:flex;gap:10px}

/* ═══════════════════════════════════════════════════════
   模拟收银台（正式注册用，纯前端演示效果）
   ═══════════════════════════════════════════════════════ */
.mock-payment-method-row{display:flex;gap:10px;margin-bottom:20px}
.mock-payment-method-btn{flex:1;padding:12px;border-radius:10px;border:2px solid var(--border);background:#fff;font-size:.86rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:var(--transition)}
.mock-payment-method-btn.active{border-color:var(--accent);color:var(--accent);background:var(--primary-light)}
.mock-payment-amount{text-align:center;margin-bottom:20px}
.mock-payment-amount-label{font-size:.78rem;color:var(--text-muted)}
.mock-payment-amount-value{font-size:1.8rem;font-weight:800;color:var(--text)}
.mock-payment-qr{text-align:center;background:var(--primary-light);border:1px dashed var(--border);border-radius:10px;padding:30px 16px;font-size:.8rem;color:var(--text-muted);margin-bottom:20px}

/* 新增分类小组件 */
.add-category-widget{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.add-category-widget input{flex:1;min-width:160px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.8rem;font-family:inherit}

/* ═══════════════════════════════════════════════════════
   通用内容块编辑器：排版属性控制条（对齐/字号/加粗/斜体）
   ═══════════════════════════════════════════════════════ */
.block-style-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px;background:var(--primary-light);border-radius:8px}
.block-preset-select{font-weight:600;border-color:var(--accent)!important;background:#fff}
.block-style-row label{font-size:.74rem;color:var(--text-muted);margin:0}
.block-style-row select{padding:5px 8px;border:1px solid var(--border);border-radius:6px;font-size:.78rem;font-family:inherit}
.block-style-checkbox{display:flex;align-items:center;gap:4px;cursor:pointer}
.block-style-checkbox input{margin:0}

/* ═══════════════════════════════════════════════════════
   未登录时导航栏下方内容区的锁定占位——灰色调，不显示真实数据
   ═══════════════════════════════════════════════════════ */
.locked-content-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 20px;filter:grayscale(1);opacity:.75}
.locked-content-icon{font-size:2.6rem;margin-bottom:14px}
.locked-content-placeholder h3{font-size:1.1rem;color:var(--text);margin-bottom:8px}
.locked-content-placeholder p{font-size:.84rem;color:var(--text-muted);margin-bottom:20px;max-width:420px}
.locked-content-placeholder .opl-choice-btn{filter:grayscale(0)}

/* ═══════════════════════════════════════════════════════
   OPL应用示例 独立页面：左侧分类筛选+列表，右侧内嵌查看框
   ═══════════════════════════════════════════════════════ */
.showcase-page-layout{display:flex;gap:20px;flex:1;min-height:0}
.showcase-page-left{flex:2;min-width:0;display:flex;flex-direction:column;overflow-y:auto;padding-right:4px}
.showcase-page-right{flex:3;min-width:0;display:flex}
.showcase-page-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.showcase-page-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:var(--transition)}
.showcase-page-item:hover{border-color:var(--accent)}
.showcase-page-item.active{border-color:var(--accent);background:var(--primary-light)}
.showcase-page-item-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.showcase-page-item-body{flex:1;min-width:0}
.showcase-page-item-title{font-size:.86rem;font-weight:600;color:var(--text)}
.showcase-page-item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.showcase-embed-iframe{width:100%;height:100%;border:none;flex:1;background:#fff}
@media(max-width:900px){.showcase-page-layout{flex-direction:column}.showcase-page-left,.showcase-page-right{flex:none}.showcase-page-right{height:500px}}

/* 咨询服务案例：原地展开的内嵌查看框 */
.consult-case-viewer{margin-top:10px;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.consult-case-embed-iframe{width:100%;height:420px;border:none;display:block;background:#fff}

/* ═══════════════════════════════════════════════════════
   HTML案例大尺寸弹窗查看器：左侧筛选+搜索+列表，右侧内嵌查看框，
   给足够大的空间避免案例HTML自身因为容器过小而计算错位、交互失效
   ═══════════════════════════════════════════════════════ */
.opl-modal-huge{width:96vw;max-width:1680px;height:92vh;max-height:1000px}
.showcase-modal-body-large{display:flex;gap:16px;flex:1;min-height:0;padding:16px 20px}
.showcase-modal-left{flex:0 0 300px;display:flex;flex-direction:column;overflow-y:auto;padding-right:4px}
.showcase-filter-bar-vertical{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.showcase-modal-list{display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto}
.showcase-modal-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:var(--transition)}
.showcase-modal-item:hover{border-color:var(--accent)}
.showcase-modal-item.active{border-color:var(--accent);background:var(--primary-light)}
.showcase-modal-item-icon{flex-shrink:0;width:30px;height:30px;border-radius:7px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.showcase-modal-item-body{flex:1;min-width:0}
.showcase-modal-item-title{font-size:.82rem;font-weight:600;color:var(--text)}
.showcase-modal-item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.showcase-modal-right{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.showcase-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--primary-light);border-bottom:1px solid var(--border);font-size:.84rem;font-weight:600;color:var(--text);flex-shrink:0}
.showcase-viewer-frame-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden;position:relative}
.showcase-viewer-frame-scaler{position:absolute;top:0;left:0;transform-origin:top left}
.showcase-modal-iframe{width:1280px;height:800px;border:none;display:block}
@media(max-width:900px){.showcase-modal-body-large{flex-direction:column}.showcase-modal-left{flex:none;max-height:220px}}

/* 注册表单：服务协议+隐私政策勾选行 */
.auth-terms-note{font-size:.76rem;color:var(--text-muted);margin:4px 0 2px}
.auth-terms-note a{color:var(--accent);text-decoration:none}
.auth-terms-note a:hover{text-decoration:underline}

/* ═══════════════════════════════════════════════════════
   页脚：企业联络电话/邮箱，全站常驻
   ═══════════════════════════════════════════════════════ */
.site-footer{background:#0B1220;flex-shrink:0;padding:8px 0}
.site-footer-inner{max-width:1400px;margin:0 auto;width:100%;padding:0 20px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.78rem;color:#94a3b8}
.site-footer-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 20px;width:100%}
.site-footer-contact{display:inline-flex;align-items:center;gap:5px;color:#94a3b8}
.site-footer-contact a{color:#cbd5e1;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.site-footer-contact a:hover{color:#fff}

/* ═══════════════════════════════════════════════════════
   通用富文本编辑器（Quill.js）容器样式
   ═══════════════════════════════════════════════════════ */
.rich-editor-wrap{border-radius:10px;border:1px solid var(--border)}
.rich-editor-container{background:#fff;min-height:220px;font-family:inherit;font-size:.88rem;border-radius:0 0 10px 10px;overflow:hidden}
.rich-editor-container .ql-editor{min-height:220px;line-height:1.8}
.ql-toolbar.ql-snow{border:none;border-bottom:1px solid var(--border);background:var(--primary-light);position:sticky;top:0;z-index:5;border-radius:10px 10px 0 0}
.ql-container.ql-snow{border:none;font-family:inherit}

/* ═══════════════════════════════════════════════════════
   富文本内容前台展示样式（.rich-content-display）
   问题根源：Quill.js自带的排版class（对齐/颜色/字号等）只在编辑框内部（.ql-editor）生效，
   发布到前台普通容器后这些class没有对应的CSS规则、不会生效；同时全站的*{margin:0}重置
   清空了段落间距，导致段落/空行看起来"贴在一起、消失了"。这里补一套不依赖.ql-editor
   的独立展示样式，专门用于渲染富文本内容的容器，从根源解决这两个问题
   ═══════════════════════════════════════════════════════ */
.rich-content-display{line-height:1.85;color:var(--text)}
.rich-content-display p{margin-bottom:.5em;white-space:pre-wrap}
.rich-content-display p:last-child{margin-bottom:0}
.rich-content-display h1,.rich-content-display h2,.rich-content-display h3,.rich-content-display h4{margin:1em 0 .5em;font-weight:700}
.rich-content-display h1:first-child,.rich-content-display h2:first-child,.rich-content-display h3:first-child,.rich-content-display h4:first-child{margin-top:0}
.rich-content-display ol,.rich-content-display ul{margin:0 0 1em;padding-left:1.6em}
.rich-content-display blockquote{margin:0 0 1em;padding-left:16px;border-left:4px solid var(--border);color:var(--text-muted)}
.rich-content-display img{max-width:100%;border-radius:8px;margin:8px 0}
.rich-content-display a{color:var(--accent)}
/* 对齐（编辑框内是.ql-editor .ql-align-xxx，这里去掉这层限制，让class在任何地方都生效） */
.rich-content-display .ql-align-center{text-align:center}
.rich-content-display .ql-align-right{text-align:right}
.rich-content-display .ql-align-justify{text-align:justify}
/* 字号 */
.rich-content-display .ql-size-small{font-size:.75em}
.rich-content-display .ql-size-large{font-size:1.5em}
.rich-content-display .ql-size-huge{font-size:2.2em}
/* 字体 */
.rich-content-display .ql-font-serif{font-family:Georgia,'Times New Roman',serif}
.rich-content-display .ql-font-monospace{font-family:Monaco,'Courier New',monospace}
/* 文字颜色/背景色（Quill工具栏调色板自带的预设色值） */
.rich-content-display .ql-color-red{color:#e60000}.rich-content-display .ql-color-orange{color:#f90}
.rich-content-display .ql-color-yellow{color:#ff0}.rich-content-display .ql-color-green{color:#008a00}
.rich-content-display .ql-color-blue{color:#06c}.rich-content-display .ql-color-purple{color:#93f}
.rich-content-display .ql-bg-red{background-color:#e60000}.rich-content-display .ql-bg-orange{background-color:#f90}
.rich-content-display .ql-bg-yellow{background-color:#ff0}.rich-content-display .ql-bg-green{background-color:#008a00}
.rich-content-display .ql-bg-blue{background-color:#06c}.rich-content-display .ql-bg-purple{background-color:#93f}

/* 管理后台"实时预览"面板：跟编辑框并排/上下摆放，用跟前台完全一样的.rich-content-display样式渲染，
   管理员输入的同时就能明确看到"真实发布到前台会长什么样"，不用先保存再跳去前台核对 */
.rich-editor-live-layout{display:flex;gap:16px;align-items:flex-start}
.rich-editor-live-layout .rich-editor-side{flex:1;min-width:0}
.rich-editor-live-preview{flex:1;min-width:0;border:1px solid var(--border);border-radius:10px;padding:16px 18px;background:#fff;max-height:400px;overflow-y:auto}
.rich-editor-live-preview-label{font-size:.72rem;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;gap:5px;font-weight:600}
@media(max-width:900px){.rich-editor-live-layout{flex-direction:column}}

.rich-editor-preset-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.rich-editor-preset-label{font-size:.76rem;color:var(--text-muted)}

/* 字号下拉框：给每个像素值配上对应的显示文字（Quill默认只认small/large/huge这几个固定值，
   自定义的像素值需要单独配置，不然下拉框里所有选项都会显示成同一个"Normal"文字，没法分辨） */
.ql-snow .ql-picker.ql-size{width:70px}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,.ql-snow .ql-picker.ql-size .ql-picker-item::before{content:'16px'}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]::before{content:'12px';font-size:10px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before{content:'14px';font-size:11px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before{content:'16px';font-size:13px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before{content:'18px';font-size:14px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]::before{content:'20px';font-size:15px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]::before{content:'24px';font-size:17px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before{content:'28px';font-size:19px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]::before{content:'32px';font-size:21px}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="36px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="36px"]::before{content:'36px';font-size:23px}

/* 富文本编辑器：历史版本面板 */
.rich-editor-history-panel{border:1px solid var(--border);border-radius:8px;background:var(--primary-light);padding:10px;margin-bottom:10px;max-height:260px;overflow-y:auto}
.rich-editor-history-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff;border-radius:6px;margin-bottom:6px}
.rich-editor-history-item:last-child{margin-bottom:0}
.rich-editor-history-item-meta{font-size:.7rem;color:var(--text-muted);flex-shrink:0;white-space:nowrap}
.rich-editor-history-item-preview{font-size:.78rem;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 注册表单：验证码行 */
.auth-captcha-row{display:flex;align-items:center;gap:8px}
.auth-captcha-question{background:var(--primary-light);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-weight:700;font-size:.9rem;white-space:nowrap;flex-shrink:0}
.auth-captcha-refresh{width:38px;height:38px;flex-shrink:0;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font-size:1rem;color:var(--text-muted)}
.auth-captcha-refresh:hover{color:var(--accent);border-color:var(--accent)}
.auth-captcha-row input{flex:1;min-width:0}

/* 个体开通OPL帐号：申请状态展示（审核中/已开通） */
.individual-application-status{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:10px}
.individual-application-status.status-pending{background:#FFF7ED;color:#9A3412}
.individual-application-status.status-approved{background:#F0FDF4;color:#166534}
.individual-application-status-icon{flex-shrink:0;margin-top:1px}
.individual-application-status-title{font-weight:700;font-size:.86rem;margin-bottom:2px}
.individual-application-status-desc{font-size:.76rem;line-height:1.5}

/* 我的账号：个体/群体开通申请状态区块 */
.opl-account-section-title{display:flex;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--text);margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--border)}
.group-member-copy-list{margin-top:8px;display:flex;flex-direction:column;gap:5px}
.group-member-copy-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.76rem;color:var(--text-muted);background:var(--primary-light);padding:6px 10px;border-radius:6px}

/* 我的账号：未读角标 */
.auth-my-account-wrap{position:relative;display:inline-flex}
.account-unread-badge{position:absolute;top:-6px;right:-8px;background:#DC2626;color:#fff;font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;box-shadow:0 0 0 2px #fff}

/* ═══════════════════════════════════════════════════════
   右上角信息提示方框：平台公告
   ═══════════════════════════════════════════════════════ */
.announcement-bell-wrap{position:relative;display:flex;align-items:center;margin-right:6px}
.announcement-bell-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:var(--transition)}
.announcement-bell-btn:hover{border-color:var(--accent);color:var(--accent)}
.announcement-unread-badge{position:absolute;top:-4px;right:-4px;background:#DC2626;color:#fff;font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;box-shadow:0 0 0 2px #fff;pointer-events:none}
.announcement-panel{position:absolute;top:calc(100% + 10px);right:0;width:340px;max-height:420px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.15);z-index:300;padding:8px}
.announcement-panel-header{font-size:.82rem;font-weight:700;color:var(--text);padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}
.announcement-item{padding:10px;border-radius:8px;margin-bottom:4px}
.announcement-item:hover{background:var(--primary-light)}
.announcement-item-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.announcement-category-tag{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:10px;flex-shrink:0}
.announcement-category-tag.cat-notice{background:#EFF6FF;color:#1D4ED8}
.announcement-category-tag.cat-upgrade{background:#F0FDF4;color:#15803D}
.announcement-category-tag.cat-urgent{background:#FEF2F2;color:#DC2626}
.announcement-category-tag.cat-update{background:#FAF5FF;color:#7E22CE}
.announcement-item-title{font-size:.82rem;font-weight:600;color:var(--text)}
.announcement-item-time{font-size:.68rem;color:var(--text-muted);margin-left:auto;flex-shrink:0}
.announcement-item-content{font-size:.76rem;color:var(--text-muted);line-height:1.6;white-space:pre-wrap}

/* PDF渲染失败时的兜底重试提示 */
.pdf-render-retry{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,.9);font-size:.82rem;color:var(--text-muted)}

/* 管理后台：固定悬浮的返回平台按钮，不用滚回侧边栏顶部也能快速跳转 */
.admin-floating-back-btn{position:fixed;right:24px;bottom:24px;z-index:200;background:var(--accent-grad);color:#fff;border:none;border-radius:24px;padding:12px 20px;font-size:.84rem;font-weight:600;cursor:pointer;box-shadow:0 8px 24px rgba(99,102,241,.35);transition:var(--transition)}
.admin-floating-back-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(99,102,241,.45)}

/* 申请状态徽章：待审核/已开通/已驳回/异常 */
.application-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:auto}
.application-status-badge.status-pending{background:rgba(217,119,6,.1);color:#D97706}
.application-status-badge.status-approved{background:rgba(22,163,74,.1);color:#16A34A}
.application-status-badge.status-rejected{background:rgba(107,114,128,.12);color:#6B7280}
.application-status-badge.status-suspended{background:rgba(220,38,38,.1);color:#DC2626}
.application-reason-note{font-size:.76rem;color:var(--text-muted);background:var(--primary-light);padding:8px 10px;border-radius:6px;margin:6px 0}
.application-reason-note.reason-danger{background:rgba(220,38,38,.06);color:#B91C1C}
.application-ack-btn{margin-top:8px}

/* 管理后台导航项：待处理数量角标，只要没处理完就常亮显示 */
.admin-nav-badge{background:#DC2626;color:#fff;font-size:.66rem;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;margin-left:4px}
