/* ============================================================
 * 防雷网 - 全站统一母版设计系统 fanglei.css
 * 源自 fanglei-home.html，所有频道共用；模块级功能样式以
 * $extra_css 附加并在本表之后加载，本表为 chrome 基线。
 * ============================================================ */

:root {
    --primary: #1565c0;
    --primary-dark: #0d47a1;
    --primary-light: #e3f2fd;
    --accent: #ef6c00;
    --accent-light: #fff3e0;
    --text: #212121;
    --text-2: #616161;
    --text-3: #9e9e9e;
    --border: #e0e0e0;
    --border-light: #f0f0f0;
    --bg: #f5f7fa;
    --white: #ffffff;
    --success: #2e7d32;
    --warning: #f9a825;
    --danger: #c62828;
    --link: #1565c0;
    --surface: #ffffff;        /* 卡片/面板等“白底”表面 */
    --surface-2: #f1f5f9;     /* 次级浅灰表面 */
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans", "Noto Sans KR", sans-serif;
    color: var(--text);
    background: var(--white);
    font-size: 14px;
    line-height: 1.6;
}
a { text-decoration:none; color:inherit; transition: color .15s; }
a:hover { color: var(--primary); }
ul, ol { list-style:none; }
img { max-width:100%; height:auto; }
.container { max-width:1240px; margin:0 auto; padding:0 12px; }
.clearfix::after { content:''; display:block; clear:both; }

/* ===== 顶部工具栏 ===== */
.topbar { background:#0d47a1; color:rgba(255,255,255,.85); font-size:12px; height:32px; line-height:32px; }
.topbar .container { display:flex; justify-content:space-between; }
.topbar-left span { margin-right:18px; }
.topbar-left i { margin-right:4px; color:#64b5f6; }
.topbar-right { display:flex; align-items:center; }
.topbar-right a { margin-left:14px; color:rgba(255,255,255,.85); }
.topbar-right a:hover { color:#fff; }
.topbar-right .vip { color:#ffd54f; }

/* ===== 语言切换器 ===== */
.lang-switch { display:flex; align-items:center; margin-left:16px; gap:0; border-left:1px solid rgba(255,255,255,.2); padding-left:16px; height:32px; }
.lang-switch .lang-btn {
    background:transparent; border:none; color:rgba(255,255,255,.65); cursor:pointer;
    font-size:12px; padding:0 6px; height:32px; line-height:32px;
    transition: all .15s; font-family:inherit;
}
.lang-switch .lang-btn:hover { color:#fff; }
.lang-switch .lang-btn.active { color:#fff; font-weight:600; background:rgba(255,255,255,.12); }
.lang-switch .lang-sep { color:rgba(255,255,255,.2); font-size:10px; }

/* ===== Logo + 搜索 ===== */
.header { background:#fff; border-bottom:3px solid var(--primary); }
.header-inner { display:flex; align-items:center; padding:16px 0; gap:32px; }
.logo { display:flex; align-items:center; gap:14px; flex-shrink:0; text-decoration:none; }
.logo:hover .logo-text h1, .logo-text .logo-title { color:var(--primary); }
.logo-icon {
    width:56px; height:56px; border-radius:12px;
    background:linear-gradient(135deg,#1565c0,#0d47a1);
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:28px;
    box-shadow:0 3px 12px rgba(13,71,161,.28);
}
.logo-icon-img {
    width:56px; height:56px; border-radius:14px; flex-shrink:0;
    box-shadow:0 3px 12px rgba(13,71,161,.28);
    filter: drop-shadow(0 1px 2px rgba(13,71,161,.15));
}
.logo-text { display:flex; flex-direction:column; padding:2px 0; }
.logo-text h1, .logo-text .logo-title { font-size:32px; color:var(--primary-dark); line-height:1.1; font-weight:700; letter-spacing:4px; margin:0; position:relative; padding-bottom:6px; }
.logo-text h1::after, .logo-text .logo-title::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:3px; background:linear-gradient(90deg,var(--primary),var(--primary-light)); border-radius:2px; }
.logo-text p { font-size:13px; color:var(--text-2); margin-top:6px; letter-spacing:0.5px; }
.logo-text p .domain { color:#546e7a; font-weight:500; }
.logo-text p .sep { color:#b0bec5; margin:0 6px; }
.logo-text p .slogan { color:#78909c; }
.search-area { flex:1; max-width:560px; }
.search-tabs { display:flex; gap:2px; margin-bottom:6px; }
.search-tabs a {
    padding:4px 14px; font-size:12px; color:var(--text-2);
    border-radius:4px 4px 0 0; cursor:pointer;
}
.search-tabs a.active { background:var(--primary); color:#fff; }
.search-box { display:flex; border:2px solid var(--primary); border-radius:4px; overflow:hidden; }
.search-box input { flex:1; border:none; padding:10px 14px; font-size:14px; outline:none; }
.search-box button { background:var(--primary); color:#fff; border:none; padding:0 22px; cursor:pointer; font-size:15px; }
.search-box button:hover { background:var(--primary-dark); }
.hot-search { font-size:12px; color:var(--text-3); margin-top:6px; }
.hot-search a { margin-right:10px; color:var(--text-2); }
.hot-search a:hover { color:var(--accent); }
.header-actions { display:flex; gap:10px; flex-shrink:0; }
.btn { display:inline-flex; align-items:center; gap:5px; padding:9px 18px; border-radius:4px; font-size:13px; font-weight:500; cursor:pointer; border:none; }
.btn-primary { background:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-dark); }
.btn-outline { background:transparent; color:var(--primary); border:1px solid var(--primary); }
.btn-outline:hover { background:var(--primary-light); }
.btn-ghost { background:rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.4); }
.btn-ghost:hover { background:rgba(255,255,255,.25); }

/* ===== 主导航 ===== */
.nav { background:var(--primary); height:44px; }
.nav .container { display:flex; align-items:center; height:100%; }
.nav-menu { display:flex; height:100%; flex-wrap:nowrap; white-space:nowrap; }
.nav-menu > li { position:relative; }
.nav-menu > li > a {
    display:flex; align-items:center; height:100%;
    padding:0 15px; color:#fff; font-size:14px; font-weight:500; white-space:nowrap;
    border-right:1px solid rgba(255,255,255,.08);
}
.nav-menu > li > a:hover, .nav-menu > li > a.active { background:rgba(255,255,255,.12); }
.nav-menu > li > a i { margin-left:4px; font-size:10px; }
.nav-menu .hot { position:relative; }
.nav-menu .hot::after {
    content:'HOT'; position:absolute; top:6px; right:4px;
    background:var(--accent); color:#fff; font-size:9px;
    padding:1px 4px; border-radius:2px; font-weight:700;
}
.nav-menu .hot-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--accent); margin-left:4px; vertical-align:middle; }
.dropdown {
    position:absolute; top:100%; left:0; background:#fff;
    min-width:170px; box-shadow:0 8px 24px rgba(0,0,0,.12);
    border-top:3px solid var(--accent);
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:all .2s; z-index:999;
}
.nav-menu li:hover .dropdown,
.nav-menu li.has-dropdown:hover .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a { display:block; padding:10px 16px; font-size:13px; color:var(--text); border-bottom:1px solid var(--border-light); white-space:nowrap; }
.dropdown a > i { width:16px; margin-right:6px; text-align:center; color:var(--primary); font-size:14px; }
.dropdown a:hover { background:var(--primary-light); color:var(--primary); padding-left:20px; }

/* ===== 通用模块 ===== */
.section { padding:20px 0; }
.section.gray { background:var(--bg); }
.mod { background:#fff; border:1px solid var(--border-light); margin-bottom:16px; }
.mod-head {
    display:flex; justify-content:space-between; align-items:center;
    padding:0 16px; height:40px; border-bottom:2px solid var(--primary);
    background:linear-gradient(180deg,#fafdff,#fff);
}
.mod-head h3 { font-size:16px; font-weight:700; color:var(--text); display:flex; align-items:center; gap:8px; }
.mod-head h3 i { color:var(--primary); }
.mod-head h3 .tag { background:var(--accent); color:#fff; font-size:11px; padding:1px 6px; border-radius:2px; font-weight:500; }
.mod-head .tabs { display:flex; gap:2px; }
.mod-head .tabs a { padding:4px 10px; font-size:12px; color:var(--text-2); border-radius:3px; }
.mod-head .tabs a.active { background:var(--primary); color:#fff; }
.mod-head .more { font-size:12px; color:var(--text-3); }
.mod-head .more:hover { color:var(--primary); }
.mod-body { padding:14px 16px; }

/* ===== 顶部头条区 ===== */
.top-news { display:grid; grid-template-columns:1fr 380px; gap:16px; margin-top:16px; }
.headline-box { background:#fff; border:1px solid var(--border-light); padding:20px; }
.headline-main { text-align:center; border-bottom:1px dashed var(--border); padding-bottom:16px; margin-bottom:14px; }
.headline-main h2 { font-size:26px; font-weight:700; line-height:1.3; margin-bottom:8px; }
.headline-main h2 a { color:var(--danger); }
.headline-main p { font-size:13px; color:var(--text-2); line-height:1.7; }
.headline-sub { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.headline-sub a { font-size:14px; color:var(--text); line-height:1.8; }
.headline-sub a:hover { color:var(--primary); }
.headline-sub a::before { content:'•'; color:var(--accent); margin-right:6px; }

.banner-slider { position:relative; border:1px solid var(--border-light); overflow:hidden; height:280px; background:#000; }
.banner-slider .slide { display:none; width:100%; height:100%; position:relative; }
.banner-slider .slide.active { display:block; }
.banner-slider .slide img { width:100%; height:100%; object-fit:cover; opacity:.7; }
.banner-slider .slide-info { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.85)); padding:30px 16px 14px; color:#fff; }
.banner-slider .slide-info h4 { font-size:16px; margin-bottom:4px; }
.banner-slider .slide-info p { font-size:12px; opacity:.85; }
.banner-slider .dots { position:absolute; bottom:10px; right:12px; display:flex; gap:5px; }
.banner-slider .dots span { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.4); cursor:pointer; }
.banner-slider .dots span.active { background:var(--accent); }

/* ===== 三栏：快讯+排行+招标 ===== */
.row-3col { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-top:16px; }
.news-short-list li { padding:7px 0; border-bottom:1px dashed var(--border-light); font-size:14px; }
.news-short-list li:last-child { border-bottom:none; }
.news-short-list li a { display:flex; justify-content:space-between; align-items:center; }
.news-short-list li .title { color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.news-short-list li .date { color:var(--text-3); font-size:12px; margin-left:10px; flex-shrink:0; }
.news-short-list li .title::before { content:'·'; color:var(--accent); margin-right:6px; font-weight:700; }

.rank-list { counter-reset:rank; }
.rank-list li { counter-increment:rank; display:flex; gap:10px; padding:8px 0; border-bottom:1px solid var(--border-light); align-items:flex-start; }
.rank-list li:last-child { border-bottom:none; }
.rank-list li::before {
    content:counter(rank); width:20px; height:20px; flex-shrink:0;
    background:#eee; color:var(--text-2); border-radius:3px;
    display:flex; align-items:center; justify-content:center;
    font-size:12px; font-weight:700;
}
.rank-list li:nth-child(1)::before { background:#c62828; color:#fff; }
.rank-list li:nth-child(2)::before { background:#ef6c00; color:#fff; }
.rank-list li:nth-child(3)::before { background:#f9a825; color:#fff; }
.rank-list li a { font-size:13px; color:var(--text); line-height:1.5; }
.rank-list li a:hover { color:var(--primary); }
.rank-list li .meta { font-size:11px; color:var(--text-3); margin-top:3px; }

.zb-list li { padding:10px 0; border-bottom:1px solid var(--border-light); }
.zb-list li:last-child { border-bottom:none; }
.zb-list li h4 { font-size:14px; margin-bottom:6px; line-height:1.4; }
.zb-list li h4 a { color:var(--text); }
.zb-list li h4 a:hover { color:var(--primary); }
.zb-list li .zb-meta { display:flex; gap:10px; flex-wrap:wrap; font-size:12px; }
.zb-list li .zb-meta span { color:var(--text-2); }
.zb-list li .zb-meta .area { color:var(--primary); }
.zb-list li .zb-meta .budget { color:var(--accent); font-weight:600; }
.zb-list li .zb-meta .status { color:var(--success); }
.zb-list li .zb-meta .status.urgent { color:var(--danger); }

/* ===== 省市分站 ===== */
.city-nav { background:#fff; border:1px solid var(--border-light); padding:16px; margin-top:16px; }
.city-nav h3 { font-size:15px; font-weight:700; margin-bottom:12px; color:var(--text); display:flex; align-items:center; gap:8px; }
.city-nav h3 i { color:var(--primary); }
.city-nav h3 .label { font-size:12px; color:var(--text-3); font-weight:400; }
.city-list { display:flex; flex-wrap:wrap; gap:8px; }
.city-list a {
    padding:5px 12px; background:var(--bg); border:1px solid var(--border-light);
    border-radius:3px; font-size:13px; color:var(--text-2);
}
.city-list a:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.city-list a.hot { color:var(--danger); font-weight:500; }

/* ===== 主体两栏 ===== */
.main-grid { display:grid; grid-template-columns:1fr 320px; gap:16px; margin-top:16px; }

.news-mix { display:grid; grid-template-columns:200px 1fr; gap:16px; padding-bottom:14px; border-bottom:1px dashed var(--border); margin-bottom:14px; }
.news-mix .thumb { width:200px; height:130px; border-radius:4px; overflow:hidden; background:var(--bg); }
.news-mix .thumb img { width:100%; height:100%; object-fit:cover; }
.news-mix .info h4 { font-size:17px; margin-bottom:8px; line-height:1.4; }
.news-mix .info h4 a { color:var(--text); }
.news-mix .info h4 a:hover { color:var(--primary); }
.news-mix .info p { font-size:13px; color:var(--text-2); line-height:1.7; margin-bottom:8px; }
.news-mix .info .meta { font-size:12px; color:var(--text-3); }
.news-mix .info .meta span { margin-right:14px; }
.news-mix .info .meta .cat { color:var(--primary); background:var(--primary-light); padding:1px 7px; border-radius:2px; }

.doc-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.doc-cat {
    border:1px solid var(--border-light); border-radius:4px; padding:14px;
    transition:all .2s;
}
.doc-cat:hover { border-color:var(--primary); box-shadow:0 4px 12px rgba(21,101,192,.08); }
.doc-cat .icon { width:40px; height:40px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:10px; }
.doc-cat .icon.r1 { background:#ffebee; color:#c62828; }
.doc-cat .icon.r2 { background:#e3f2fd; color:#1565c0; }
.doc-cat .icon.r3 { background:#e8f5e9; color:#2e7d32; }
.doc-cat .icon.r4 { background:#fff3e0; color:#ef6c00; }
.doc-cat h4 { font-size:14px; margin-bottom:6px; }
.doc-cat p { font-size:12px; color:var(--text-2); margin-bottom:8px; }
.doc-cat .doc-count { font-size:12px; color:var(--text-3); }
.doc-cat .doc-count strong { color:var(--accent); }

.product-scroll { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.product-card { border:1px solid var(--border-light); border-radius:4px; overflow:hidden; transition:all .2s; }
.product-card:hover { box-shadow:0 4px 12px rgba(0,0,0,.08); }
.product-card .p-img { height:120px; background:var(--bg); display:flex; align-items:center; justify-content:center; font-size:36px; color:var(--primary); }
.product-card .p-info { padding:10px 12px; }
.product-card .p-info h4 { font-size:13px; margin-bottom:5px; line-height:1.4; height:36px; overflow:hidden; }
.product-card .p-info .spec { font-size:11px; color:var(--text-2); margin-bottom:6px; }
.product-card .p-info .price { color:var(--danger); font-size:14px; font-weight:700; }
.product-card .p-info .price small { font-size:11px; color:var(--text-3); font-weight:400; }

.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.case-card { border:1px solid var(--border-light); border-radius:4px; overflow:hidden; }
.case-card .c-img { height:150px; display:flex; align-items:center; justify-content:center; font-size:42px; }
.case-card .c-img.bg1 { background:linear-gradient(135deg,#e3f2fd,#bbdefb); color:#1565c0; }
.case-card .c-img.bg2 { background:linear-gradient(135deg,#e8f5e9,#c8e6c9); color:#2e7d32; }
.case-card .c-img.bg3 { background:linear-gradient(135deg,#fff3e0,#ffe0b2); color:#ef6c00; }
.case-card .c-info { padding:12px 14px; }
.case-card .c-tag { display:inline-block; font-size:11px; padding:2px 8px; border-radius:2px; margin-bottom:8px; }
.case-card .c-tag.t1 { background:#e3f2fd; color:#1565c0; }
.case-card .c-tag.t2 { background:#e8f5e9; color:#2e7d32; }
.case-card .c-tag.t3 { background:#fff3e0; color:#ef6c00; }
.case-card h4 { font-size:14px; margin-bottom:8px; line-height:1.4; }
.case-card p { font-size:12px; color:var(--text-2); line-height:1.6; margin-bottom:10px; height:48px; overflow:hidden; }
.case-card .c-meta { font-size:11px; color:var(--text-3); display:flex; gap:12px; }

.company-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.company-card { display:flex; gap:14px; padding:14px; border:1px solid var(--border-light); border-radius:4px; transition:all .2s; position:relative; }
.company-card:hover { border-color:var(--primary); box-shadow:0 2px 8px rgba(0,0,0,.06); }
.company-card .logo { width:56px; height:56px; border-radius:6px; background:var(--primary-light); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.company-card .c-info { flex:1; min-width:0; }
.company-card .c-info h4 { font-size:14px; margin-bottom:5px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.company-card .badge { font-size:10px; padding:1px 5px; border-radius:2px; }
.company-card .badge.vip { background:#ffebee; color:#c62828; }
.company-card .badge.verify { background:#e8f5e9; color:#2e7d32; }
.company-card .c-info .loc { font-size:12px; color:var(--text-2); margin-bottom:6px; }
.company-card .c-info .loc i { margin-right:3px; }
.company-card .c-info .desc { font-size:12px; color:var(--text-3); margin-bottom:6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.company-card .c-tags { display:flex; gap:5px; flex-wrap:wrap; }
.company-card .c-tags span { font-size:11px; color:var(--primary); background:var(--primary-light); padding:1px 7px; border-radius:2px; }
.company-card.certified { border-color:var(--success); }
.company-card.certified .logo { background:#e8f5e9; color:var(--success); }
.company-card .ribbon { position:absolute; top:0; right:0; background:linear-gradient(135deg,#ef6c00,#e65100); color:#fff; font-size:10px; padding:2px 8px; border-radius:0 0 0 6px; font-weight:600; }
.company-card .c-cat { font-size:12px; color:var(--text-2); margin-bottom:4px; }
.company-card .c-cat a { color:var(--primary); }
.company-card .view-btn { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--primary); margin-top:6px; }

.qa-item { padding:12px 0; border-bottom:1px dashed var(--border-light); }
.qa-item:last-child { border-bottom:none; }
.qa-item .q { font-size:14px; margin-bottom:8px; display:flex; gap:8px; }
.qa-item .q .q-label { color:var(--danger); font-weight:700; flex-shrink:0; }
.qa-item .q a { color:var(--text); }
.qa-item .q a:hover { color:var(--primary); }
.qa-item .a { font-size:12px; color:var(--text-2); line-height:1.7; padding-left:20px; margin-bottom:6px; }
.qa-item .a .a-label { color:var(--success); font-weight:700; }
.qa-item .qa-meta { font-size:11px; color:var(--text-3); padding-left:20px; display:flex; gap:12px; }
.qa-item .qa-meta .solved { color:var(--success); background:#e8f5e9; padding:1px 6px; border-radius:2px; }

/* 问答三大内容性质分类卡片 */
.qa-type-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0 6px; }
.qa-type-card { display:block; padding:18px 16px; background:var(--bg); border:1px solid var(--border-light); border-radius:8px; text-decoration:none; transition:.2s; }
.qa-type-card:hover, .qa-type-card.active { border-color:var(--primary); background:var(--primary-light); box-shadow:0 4px 14px rgba(45,127,249,.08); }
.qa-type-card > i { font-size:22px; color:var(--primary); }
.qa-type-card .qt-name { font-size:15px; font-weight:600; color:var(--text); margin:8px 0 4px; }
.qa-type-card .qt-desc { font-size:12px; color:var(--text-2); line-height:1.6; }
@media (max-width:768px){ .qa-type-grid { grid-template-columns:1fr; } }

/* ===== 侧边栏 ===== */
.sidebar .mod { margin-bottom:14px; }
.sidebar .mod-head { height:36px; }
.sidebar .mod-head h3 { font-size:14px; }
.sidebar .mod-body { padding:12px 14px; }

.tag-cloud { display:flex; flex-wrap:wrap; gap:6px; }
.tag-cloud a { padding:4px 10px; font-size:12px; border-radius:3px; background:var(--bg); color:var(--text-2); }
.tag-cloud a:hover { background:var(--primary); color:#fff; }
.tag-cloud a.hot { color:var(--danger); }

.stat-box { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.stat-item { text-align:center; padding:14px 8px; background:var(--bg); border-radius:4px; }
.stat-item strong { display:block; font-size:22px; color:var(--primary); font-weight:700; }
.stat-item span { font-size:12px; color:var(--text-2); }

.expert-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.expert-card { border:1px solid var(--border-light); border-radius:4px; overflow:hidden; }
.expert-card .e-img { height:130px; display:flex; align-items:center; justify-content:center; font-size:38px; background:linear-gradient(135deg,#f3e5f5,#e1bee7); color:#7b1fa2; }
.expert-card .e-info { padding:12px 14px; }
.expert-card h4 { font-size:14px; margin-bottom:6px; }
.expert-card .author { font-size:12px; color:var(--primary); margin-bottom:6px; }
.expert-card p { font-size:12px; color:var(--text-2); line-height:1.6; }

/* ===== 招聘求职 ===== */
.job-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.job-list li, .talent-list li { padding:12px 0; border-bottom:1px dashed var(--border-light); }
.job-list li:last-child, .talent-list li:last-child { border-bottom:none; }
.job-item .job-title a { font-size:15px; font-weight:600; color:var(--text); }
.job-item .job-title a:hover { color:var(--primary); }
.job-item .job-info { display:flex; gap:12px; margin-top:6px; font-size:12px; flex-wrap:wrap; }
.job-item .job-company { color:var(--primary); font-weight:500; }
.job-item .job-loc { color:var(--text-2); }
.job-item .job-salary { color:var(--accent); font-weight:600; }
.job-item .job-tags { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
.job-item .job-tags span { font-size:11px; padding:2px 8px; background:var(--primary-light); color:var(--primary); border-radius:2px; }
.talent-item .talent-name { font-size:15px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:8px; }
.talent-item .talent-tag { font-size:11px; padding:2px 8px; background:var(--accent-light); color:var(--accent); border-radius:2px; font-weight:400; }
.talent-item .talent-info { display:flex; gap:12px; margin-top:6px; font-size:12px; color:var(--text-2); flex-wrap:wrap; }
.talent-item .talent-info span { display:flex; align-items:center; gap:4px; }
.talent-item .talent-desc { font-size:12px; color:var(--text-3); margin-top:6px; line-height:1.6; }

/* ===== 底部 ===== */
.friend-links { background:#fff; border-top:1px solid var(--border); padding:20px 0; }
.friend-links h4 { font-size:14px; margin-bottom:10px; color:var(--text); }
.friend-links .links { display:flex; flex-wrap:wrap; gap:6px 14px; }
.friend-links .links a { font-size:12px; color:var(--text-2); }

.footer { background:#0f172a; color:rgba(255,255,255,.7); padding:40px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:36px; margin-bottom:32px; }
.footer-brand h3 { color:#fff; font-size:22px; margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.footer-brand p { font-size:13px; line-height:1.8; margin-bottom:16px; }
.footer-brand .contact p { margin-bottom:6px; font-size:13px; display:flex; align-items:center; gap:6px; }
.footer-brand .contact i { color:#64b5f6; width:16px; }
.footer-links h4 { color:#fff; font-size:15px; margin-bottom:14px; }
.footer-links a { display:block; padding:6px 0; font-size:13px; }
.footer-links a:hover { color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:18px 0; text-align:center; font-size:12px; }
.footer-bottom-main { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 16px; margin-bottom:12px; color:rgba(255,255,255,.85); }
.footer-bottom-main .fb-sep { position:relative; padding-left:16px; }
.footer-bottom-main .fb-sep::before { content:""; position:absolute; left:0; top:50%; width:1px; height:12px; background:rgba(255,255,255,.25); transform:translateY(-50%); }
.footer-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 20px; padding-top:12px; border-top:1px dashed rgba(255,255,255,.12); }
.footer-nav a { font-size:12px; color:rgba(255,255,255,.7); text-decoration:none; }
.footer-nav a:hover { color:#fff; }

/* ============================================================
 * 单页内容（关于我们 / 联系 / 合作 / 声明 / 隐私）
 * ============================================================ */
.static-page { background:#fff; border-radius:10px; box-shadow:0 2px 12px rgba(15,23,42,.06); padding:34px 40px; margin:18px auto 28px; }
.static-page > h1 { font-size:26px; color:var(--text-1); margin-bottom:6px; padding-bottom:14px; border-bottom:2px solid var(--primary); display:inline-block; }
.static-page .lead { color:var(--text-2); font-size:15px; line-height:1.9; margin:18px 0 8px; }
.static-page h2 { font-size:18px; color:var(--text-1); margin:26px 0 12px; padding-left:11px; border-left:4px solid var(--primary); }
.static-page h3 { font-size:15px; color:var(--text-1); margin:18px 0 8px; }
.static-page p { font-size:14px; line-height:1.95; color:var(--text-2); margin-bottom:12px; }
.static-page ul.sp-list { list-style:none; padding:0; margin:10px 0 14px; }
.static-page ul.sp-list li { position:relative; padding:8px 0 8px 22px; font-size:14px; line-height:1.8; color:var(--text-2); border-bottom:1px dashed var(--border-light); }
.static-page ul.sp-list li::before { content:"\f105"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; left:0; top:8px; color:var(--primary); }
.static-page ul.sp-list li b, .static-page p b { color:var(--text-1); }
.static-page .sp-hotline { background:var(--primary-light); border:1px solid var(--border-light); border-radius:8px; padding:14px 18px; margin:18px 0; font-size:14px; color:var(--text-1); }
.static-page .sp-hotline i { color:var(--primary); margin-right:6px; }
.static-page .sp-note { font-size:13px; color:var(--text-3); background:#f7f9fc; border-radius:8px; padding:12px 16px; margin-top:18px; }
.sp-meta { margin-top:18px; padding-top:14px; border-top:1px dashed var(--border-light); font-size:13px; color:var(--text-3); display:flex; align-items:center; gap:6px; }
.sp-meta i { color:var(--primary); }
/* 联系表单 */
.sp-form { margin-top:22px; max-width:520px; }
.sp-form .field { margin-bottom:14px; }
.sp-form label { display:block; font-size:13px; color:var(--text-2); margin-bottom:6px; }
.sp-form input, .sp-form textarea { width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid var(--border); border-radius:6px; font-size:14px; font-family:inherit; }
.sp-form input:focus, .sp-form textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-light); }
.sp-form textarea { resize:vertical; min-height:110px; }
.sp-form .btn-submit { background:var(--primary); color:#fff; border:none; border-radius:6px; padding:11px 26px; font-size:14px; font-weight:600; cursor:pointer; }
.sp-form .btn-submit:hover { opacity:.92; }
.sp-alert { padding:12px 16px; border-radius:6px; font-size:14px; margin-bottom:16px; }
.sp-alert.ok { background:#e8f6ee; color:#1a7f43; border:1px solid #b7e3c8; }
.sp-alert.err { background:#fdeaea; color:#c0392b; border:1px solid #f3c0bd; }

/* ============================================================
 * 列表/详情通用组件（首页风格扩展）
 * ============================================================ */

/* 面包屑 */
.breadcrumb { padding:10px 0; font-size:13px; color:var(--text-3); }
.breadcrumb a { color:var(--text-2); }
.breadcrumb a:hover { color:var(--primary); }
.breadcrumb .cur { color:var(--primary); font-weight:500; }
.breadcrumb .sep { margin:0 6px; color:var(--border); }

/* 频道 Hero */
.channel-hero {
    background:linear-gradient(135deg,#0d47a1,#1565c0);
    color:#fff; border-radius:6px; padding:28px 30px; margin:16px 0;
    display:flex; align-items:center; justify-content:space-between; gap:24px; overflow:hidden; position:relative;
}
.channel-hero::after { content:''; position:absolute; right:-40px; top:-40px; width:220px; height:220px; background:rgba(255,255,255,.06); border-radius:50%; }
.channel-hero .hero-text { position:relative; z-index:1; }
.channel-hero h1 { font-size:28px; font-weight:700; display:flex; align-items:center; gap:10px; }
.channel-hero h1 i { color:#ffd54f; }
.channel-hero p { font-size:13px; opacity:.9; margin-top:8px; max-width:680px; line-height:1.7; }
.channel-hero .hero-cta { margin-top:16px; display:flex; gap:10px; }
.channel-hero .hero-stats { display:flex; gap:24px; position:relative; z-index:1; }
.channel-hero .hero-stats .stat { text-align:center; }
.channel-hero .hero-stats .num { display:block; font-size:30px; font-weight:700; color:#fff; }
.channel-hero .hero-stats .lab { font-size:13px; opacity:.85; }

/* 列表工具条 */
.list-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin:16px 0; padding:12px 16px; background:#fff; border:1px solid var(--border-light); border-radius:4px; }
.filter-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.filter-tabs a { padding:6px 14px; font-size:13px; color:var(--text-2); background:var(--bg); border:1px solid var(--border-light); border-radius:3px; }
.filter-tabs a:hover { color:var(--primary); border-color:var(--primary); }
.filter-tabs a.active { background:var(--primary); color:#fff; border-color:var(--primary); }
.sort-bar { display:flex; align-items:center; gap:10px; font-size:13px; }
.sort-bar .lbl { color:var(--text-3); }
.sort-bar a { color:var(--text-2); padding:4px 8px; border-radius:3px; }
.sort-bar a.active { color:var(--primary); font-weight:600; background:var(--primary-light); }

/* 空状态 */
.empty-state { text-align:center; padding:50px 20px; color:var(--text-3); }
.empty-state i { font-size:48px; margin-bottom:14px; color:var(--border); }
.empty-state p { font-size:14px; margin-bottom:8px; }

/* 分页 */
.pagination { display:flex; justify-content:center; gap:6px; margin:24px 0; flex-wrap:wrap; }
.pagination a { min-width:36px; height:36px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:4px; font-size:13px; color:var(--text-2); background:#fff; }
.pagination a:hover { border-color:var(--primary); color:var(--primary); }
.pagination a.active { background:var(--primary); color:#fff; border-color:var(--primary); }

/* 详情双栏 */
.detail-wrap { display:grid; grid-template-columns:1fr 320px; gap:16px; margin-top:16px; }
.detail-wrap > aside .mod { margin-bottom:14px; }
.detail-wrap > aside .mod-head { height:36px; }
.detail-wrap > aside .mod-head h3 { font-size:14px; }
.detail-wrap > aside .mod-body { padding:12px 14px; }

/* 企业详情头部 */
.cd-header { display:flex; gap:18px; align-items:flex-start; background:#fff; border:1px solid var(--border-light); border-radius:6px; padding:24px; margin-top:16px; position:relative; }
.cd-header.certified { border-color:var(--success); box-shadow:0 0 0 1px var(--success) inset, 0 4px 12px rgba(46,125,50,.08); }
.cd-header .logo { width:84px; height:84px; border-radius:10px; background:linear-gradient(135deg,var(--primary-light),#bbdefb); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:34px; flex-shrink:0; font-weight:700; }
.cd-header.certified .logo { background:linear-gradient(135deg,#e8f5e9,#c8e6c9); color:var(--success); }
.cd-header .hd-info { flex:1; min-width:0; }
.cd-header .hd-info h1 { font-size:24px; font-weight:700; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cd-header .meta { display:flex; flex-wrap:wrap; gap:16px; font-size:13px; color:var(--text-2); margin-top:10px; }
.cd-header .meta i { color:var(--primary); margin-right:4px; }
.cd-header .trust-line { margin-top:12px; padding:8px 12px; background:#e8f5e9; color:var(--success); border-radius:4px; font-size:13px; display:flex; align-items:center; gap:6px; }
.cd-header .ribbon { position:absolute; top:0; right:0; background:linear-gradient(135deg,#ef6c00,#e65100); color:#fff; font-size:11px; padding:3px 12px; border-radius:0 6px 0 6px; font-weight:600; }

/* 标签页 + 面板 */
.cd-tabs { display:flex; gap:0; border-bottom:2px solid var(--primary); margin-top:16px; background:#fff; border:1px solid var(--border-light); border-bottom:none; border-radius:6px 6px 0 0; overflow:hidden; }
.cd-tabs button { padding:14px 24px; font-size:14px; font-weight:500; color:var(--text-2); background:transparent; border:none; cursor:pointer; border-bottom:3px solid transparent; font-family:inherit; }
.cd-tabs button:hover { color:var(--primary); background:var(--primary-light); }
.cd-tabs button.active { color:var(--primary); border-bottom-color:var(--primary); background:#fff; }
.cd-panel { background:#fff; border:1px solid var(--border-light); border-top:none; border-radius:0 0 6px 6px; padding:22px 24px; margin-bottom:16px; }
.cd-panel h3 { font-size:16px; font-weight:700; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border-light); display:flex; align-items:center; gap:8px; }
.cd-panel h3 i { color:var(--primary); }
.cd-panel p { font-size:14px; line-height:1.9; color:var(--text); margin-bottom:10px; }
.cd-panel .c-tags { display:flex; gap:6px; flex-wrap:wrap; }
.cd-panel .c-tags span { font-size:12px; color:var(--primary); background:var(--primary-light); padding:3px 10px; border-radius:3px; }

/* 信息列表 */
.info-list { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.info-list .row { display:flex; padding:12px 0; border-bottom:1px solid var(--border-light); }
.info-list .row .k { width:130px; flex-shrink:0; color:var(--text-3); font-size:13px; }
.info-list .row .v { flex:1; color:var(--text); font-size:14px; }
.info-list .row .v.mono { font-family:Consolas,monospace; }
.info-list .row:last-child { border-bottom:none; }

/* 资质证书列表 */
.qual-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.qual-list a { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--border-light); border-radius:4px; font-size:12px; color:var(--text-2); transition:all .15s; }
.qual-list a:hover { border-color:var(--primary); color:var(--primary); }
.qual-list a .name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 产品/案例网格 */
.prod-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.prod-card { border:1px solid var(--border-light); border-radius:4px; overflow:hidden; transition:all .2s; display:block; }
.prod-card:hover { border-color:var(--primary); box-shadow:0 4px 12px rgba(0,0,0,.08); }
.prod-card .p-img { height:120px; background:var(--primary-light); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:34px; }
.prod-card .p-info { padding:10px 12px; }
.prod-card .p-info h4 { font-size:13px; margin-bottom:6px; line-height:1.4; }
.prod-card .p-info .spec { font-size:12px; color:var(--text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 侧栏企业推荐 */
.side-company { display:flex; gap:10px; padding:10px 0; border-bottom:1px dashed var(--border-light); }
.side-company:last-child { border-bottom:none; }
.side-company .logo { width:40px; height:40px; border-radius:6px; background:var(--primary-light); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.side-company .sc-info h4 { font-size:13px; margin-bottom:3px; display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.side-company .sc-info .c-cat { font-size:11px; color:var(--text-3); }

/* 认证徽章 */
.cert-badge { font-size:11px; padding:1px 6px; border-radius:2px; font-weight:500; white-space:nowrap; }
.cert-badge.verified { background:#e8f5e9; color:var(--success); }
.cert-badge.flagship { background:linear-gradient(135deg,#ef6c00,#e65100); color:#fff; }

/* ===== 响应式 ===== */
@media (max-width:1024px) {
    .top-news, .main-grid, .row-3col, .detail-wrap { grid-template-columns:1fr; }
    .doc-cat-grid { grid-template-columns:repeat(2,1fr); }
    .product-scroll { grid-template-columns:repeat(3,1fr); }
    .case-grid, .expert-grid { grid-template-columns:repeat(2,1fr); }
    .company-grid { grid-template-columns:1fr; }
    .info-list { grid-template-columns:1fr; }
    .prod-grid { grid-template-columns:repeat(2,1fr); }
    .channel-hero { flex-direction:column; align-items:flex-start; }
    .nav-menu > li > a { padding:0 11px; font-size:13px; }
}
@media (max-width:768px) {
    .topbar .container { flex-direction:column; gap:4px; }
    .header-inner { flex-direction:column; gap:14px; align-items:flex-start; }
    .logo { gap:10px; }
    .logo-icon-img { width:44px; height:44px; border-radius:11px; }
    .logo-text h1, .logo-text .logo-title { font-size:24px; letter-spacing:2px; }
    .search-area { width:100%; max-width:none; }
    .nav-menu { overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
    .nav-menu > li > a { padding:0 14px; font-size:14px; }
    .news-mix { grid-template-columns:1fr; }
    .news-mix .thumb { width:100%; height:180px; }
    .headline-sub { grid-template-columns:1fr; }
    .doc-cat-grid, .product-scroll, .case-grid, .expert-grid, .company-grid, .job-grid, .prod-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .lang-switch { padding-left:8px; margin-left:8px; }
    .cd-header { flex-direction:column; }
    .info-list { grid-template-columns:1fr; }
    .channel-hero .hero-stats { gap:16px; }
}

/* ============================================================
 * 深浅色模式 · 暗色主题
 * 触发：<html data-theme="dark">。fanglei.css 全站最后加载，
 * 本块按相同选择器覆盖各频道 CSS 的白底，单文件生效、频道 CSS 原样不动。
 * ============================================================ */
[data-theme="dark"] {
    --primary: #4ea1f3;
    --primary-dark: #1565c0;
    --primary-light: #16314d;
    --accent: #ffa726;
    --accent-light: #3a2a12;
    --text: #e6edf3;
    --text-2: #aab6c2;
    --text-3: #7a8794;
    --border: #2c3a47;
    --border-light: #22303c;
    --bg: #0f172a;
    --white: #1a2433;
    --surface: #1a2433;
    --surface-2: #22303c;
    --success: #4caf50;
    --warning: #ffb300;
    --danger: #ef5350;
    --link: #4ea1f3;
    color-scheme: dark;
}

/* 基础 */
[data-theme="dark"] body { background: var(--bg); color: var(--text); }
[data-theme="dark"] ::selection { background: var(--primary); color:#fff; }
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select { background: var(--surface-2); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .sp-form input:focus,
[data-theme="dark"] .sp-form textarea:focus { box-shadow: 0 0 0 3px var(--primary-light); }

/* 顶栏/主导航保持品牌蓝（深色更稳） */
[data-theme="dark"] .topbar { background:#0b3a73; }
[data-theme="dark"] .nav { background: var(--primary-dark); }

/* 白底容器 → 暗色表面 */
[data-theme="dark"] .header,
[data-theme="dark"] .dropdown,
[data-theme="dark"] .mod,
[data-theme="dark"] .mod-head,
[data-theme="dark"] .headline-box,
[data-theme="dark"] .city-nav,
[data-theme="dark"] .list-toolbar,
[data-theme="dark"] .pagination a,
[data-theme="dark"] .pagination span,
[data-theme="dark"] .cd-header,
[data-theme="dark"] .cd-tabs,
[data-theme="dark"] .cd-panel,
[data-theme="dark"] .static-page,
[data-theme="dark"] .friend-links,
[data-theme="dark"] .side-mod,
[data-theme="dark"] .side-mod .sm-head,
[data-theme="dark"] .widget,
[data-theme="dark"] .news-list,
[data-theme="dark"] .news-list-item,
[data-theme="dark"] .article-card,
[data-theme="dark"] .core-card,
[data-theme="dark"] .policy-item,
[data-theme="dark"] .share-box,
[data-theme="dark"] .channel-card,
[data-theme="dark"] .side-card,
[data-theme="dark"] .prod-card,
[data-theme="dark"] .company-card,
[data-theme="dark"] .company-card.certified,
[data-theme="dark"] .cd-header.certified,
[data-theme="dark"] .filter-card,
[data-theme="dark"] .job-item,
[data-theme="dark"] .resume-card,
[data-theme="dark"] .info-block,
[data-theme="dark"] .empty-card,
[data-theme="dark"] .qual-list a,
[data-theme="dark"] .filter-tabs a,
[data-theme="dark"] .sort-bar a,
[data-theme="dark"] .filter-bar,
[data-theme="dark"] .btn-outline,
[data-theme="dark"] .contact-hidden,
[data-theme="dark"] .contact-locked { background: var(--surface); }

/* 浅灰底 → 次级表面 */
[data-theme="dark"] .article-lead,
[data-theme="dark"] .article-body th,
[data-theme="dark"] .article-body tr:nth-child(even),
[data-theme="dark"] .article-disclaimer,
[data-theme="dark"] .toc-list a.active,
[data-theme="dark"] .share-url,
[data-theme="dark"] .sp-note,
[data-theme="dark"] .bottom-conversion,
[data-theme="dark"] .mid-conversion,
[data-theme="dark"] .intro-box,
[data-theme="dark"] .article-tags .tag,
[data-theme="dark"] .news-list-item .tag { background: var(--surface-2); }

/* 搜索/侧栏输入（默认白底） */
[data-theme="dark"] .search-box input,
[data-theme="dark"] .side-search input { background: var(--surface-2); color: var(--text); }

/* ============ 考试题库 tiku（重设计版） ============ */

/* ---- Hero ---- */
.tk-hero {
    background: linear-gradient(135deg, #0a3d8f 0%, #0F52BA 40%, #1a6fd8 100%);
    padding: 48px 0 44px;
    color: #fff;
}
.tk-hero-inner { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.tk-hero h1 {
    font-size: 32px; font-weight: 800; margin: 0 0 10px; letter-spacing: 1px;
}
.tk-hero p {
    font-size: 15px; opacity: .88; margin: 0 0 24px; line-height: 1.6;
}
.tk-hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.tk-hbtn {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,.95); color: #0a3d8f;
    padding: 11px 22px; border-radius: 50px;
    font-size: 14.5px; font-weight: 700; text-decoration: none;
    transition: .2s; box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.tk-hbtn:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,.22); }
.tk-hbtn i { font-size: 16px; }

/* ---- 布局 ---- */
.tk-body {
    max-width: 1160px; margin: 28px auto 40px;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 24px;
    align-items: start;
}

/* ---- Section 标题 ---- */
.tk-section { margin-bottom: 30px; }
.tk-sec-title {
    font-size: 18px; font-weight: 800; color: var(--text);
    display: flex; align-items: center; gap: 10px; margin: 0 0 16px;
}
.tk-sec-title span {
    display: inline-block; width: 4px; height: 20px;
    background: var(--primary, #0F52BA); border-radius: 2px;
}

/* ---- 分类卡片 ---- */
.tk-cards {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.tk-card {
    display: flex; gap: 14px; align-items: flex-start;
    background: #fff; border: 1px solid var(--border-light, #e8e8e8);
    border-radius: 10px; padding: 20px 16px;
    text-decoration: none; color: var(--text);
    transition: .2s;
}
.tk-card:hover { box-shadow: 0 6px 20px rgba(15,82,186,.1); transform: translateY(-2px); }
.tk-card-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: #eef4ff; display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.tk-card-icon i { font-size: 21px; color: #0F52BA; }
.tk-card-body { flex: 1; min-width: 0; }
.tk-card-name { font-size: 15.5px; font-weight: 700; margin-bottom: 6px; }
.tk-card-desc { font-size: 13px; color: var(--text-2, #666); line-height: 1.65; margin-bottom: 8px; }
.tk-card-link { font-size: 13px; color: #0F52BA; font-weight: 600; }

/* ---- 试卷表格 ---- */
.tk-table-wrap { overflow-x: auto; border: 1px solid var(--border-light, #e8e8e8); border-radius: 10px; }
.tk-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px; }
.tk-table thead th {
    background: #0F52BA; color: #fff;
    padding: 13px 16px; text-align: left; font-weight: 600; font-size: 13.5px;
}
.tk-table thead th:first-child { border-radius: 9px 0 0 0; }
.tk-table thead th:last-child { border-radius: 0 9px 0 0; }
.tk-table td { padding: 13px 16px; border-bottom: 1px dashed var(--border-light, #eee); }
.tk-table tbody tr:last-child td { border-bottom: none; }
.tk-table tbody tr:hover { background: #fafbff; }
.tk-ptitle { font-weight: 600; color: var(--text); }
.tk-pop { white-space: nowrap; }

/* 按钮 */
.tk-btn {
    display: inline-block; padding: 6px 16px; border-radius: 6px;
    font-size: 13px; font-weight: 600; text-decoration: none;
    transition: .15s; cursor: pointer; border: none; line-height: 1.4;
}
.tk-btn-primary { background: #0F52BA; color: #fff; }
.tk-btn-primary:hover { background: #0c45a0; }
.tk-btn-outline { background: transparent; color: #0F52BA; border: 1px solid #0F52BA; }
.tk-btn-outline:hover { background: #f0f5ff; }
.tk-btn-sm { padding: 5px 13px; font-size: 12.5px; }
.tk-btn-block { display: block; width: 100%; text-align: center; padding: 11px; border-radius: 8px; }
.tk-btn-locked { background: #f0f0f0; color: #bbb; cursor: not-allowed; border: 1px solid #ddd; }

/* ---- 热门标签 ---- */
.tk-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.tk-tag {
    display: inline-block; padding: 7px 18px;
    background: #fff; border: 1px solid var(--border-light, #e0e0e0);
    border-radius: 22px; font-size: 13.5px; color: var(--text-2, #555);
    text-decoration: none; transition: .15s;
}
.tk-tag:hover { border-color: #0F52BA; color: #0F52BA; background: #f5f8ff; }

/* ---- 下载列表 ---- */
.tk-dl-list { display: flex; flex-direction: column; gap: 0; }
.tk-dl-item {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 18px;
    background: #fff; border: 1px solid var(--border-light, #e8e8e8);
    border-bottom: none;
    transition: .15s;
}
.tk-dl-item:first-child { border-radius: 10px 10px 0 0; }
.tk-dl-item:last-child { border-radius: 0 0 10px 10px; border-bottom: 1px solid var(--border-light, #e8e8e8); }
.tk-dl-item:hover { background: #fafbff; }
.tk-dl-type {
    width: 42px; height: 42px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800; color: #fff; flex-shrink: 0;
}
.tk-dl-type.pdf { background: #ffeaea; color: #E63946; }
.tk-dl-type.doc { background: #e8f0fe; color: #0F52BA; }
.tk-dl-info { flex: 1; min-width: 0; }
.tk-dl-title { font-size: 14.5px; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.tk-dl-meta { font-size: 12.5px; color: var(--text-3, #999); display: flex; gap: 10px; }
.tk-dl-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.tk-dl-badge {
    padding: 3px 10px; border-radius: 4px; font-size: 11.5px; font-weight: 700;
}
.tk-dl-badge.free { background: #e8f5e9; color: #2e7d32; }
.tk-dl-badge.vip  { background: #fff8e1; color: #b9770e; }

/* ---- 侧栏 ---- */
.tk-sidebar { display: flex; flex-direction: column; gap: 20px; }

.tk-side-box {
    background: #fff; border: 1px solid var(--border-light, #e8e8e8);
    border-radius: 10px; padding: 18px 16px;
}
.tk-side-title {
    font-size: 15.5px; font-weight: 700; margin: 0 0 14px;
    display: flex; align-items: center; gap: 8px; color: var(--text);
}
.tk-side-title i { color: #E63946; }

/* 排行榜 */
.tk-rank-list { list-style: none; margin: 0; padding: 0; }
.tk-rank-list li {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 0; border-bottom: 1px dashed #f0f0f0;
}
.tk-rank-list li:last-child { border-bottom: none; }
.tk-rank-n {
    width: 22px; height: 22px; border-radius: 5px;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700; flex-shrink: 0;
    background: #f5f5f5; color: #888;
}
.tk-rank-n.top { background: #E63946; color: #fff; }
.tk-rank-n:nth-child(n+4) { /* 4th+ */ }
.tk-rank-name {
    flex: 1; font-size: 13.5px; color: var(--text);
    text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tk-rank-name:hover { color: #0F52BA; }
.tk-rank-cnt { font-size: 12.5px; color: var(--text-3, #999); flex-shrink: 0; }
.tk-rank-empty { color: var(--text-3, #999); font-size: 13px; padding: 8px 0; }

/* 快捷入口网格 */
.tk-quick-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.tk-quick-item {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 16px 8px; border-radius: 10px;
    background: #f8faff; border: 1px solid #e8eeff;
    text-decoration: none; transition: .15s;
}
.tk-quick-item:hover { background: #eef4ff; transform: translateY(-1px); }
.tk-quick-item i { font-size: 24px; }
.tk-quick-item span { font-size: 12.5px; font-weight: 600; color: var(--text); }

/* VIP 卡片 */
.tk-vip-card {
    background: linear-gradient(135deg, #eef4ff, #f0f5ff);
    border: 1px solid #dce8fa; border-radius: 10px;
    padding: 22px 18px; text-align: center; position: relative;
}
.tk-vip-label {
    position: absolute; top: -1px; right: 16px;
    font-size: 11px; color: #999;
}
.tk-vip-card h4 { font-size: 17px; font-weight: 800; margin: 0 0 8px; color: #0F52BA; }
.tk-vip-card p { font-size: 13px; color: var(--text-2, #666); margin: 0 0 16px; line-height: 1.6; }

/* 空状态 */
.tk-empty {
    text-align: center; padding: 36px 20px; color: var(--text-3, #999);
}
.tk-empty i { font-size: 36px; margin-bottom: 10px; display: block; opacity: .4; }
.tk-empty p { margin: 0; font-size: 14px; }

/* ---- 响应式 ---- */
@media (max-width: 900px) {
    .tk-body { grid-template-columns: 1fr; }
    .tk-sidebar { order: -1; } /* 移动端侧栏置顶 */
    .tk-cards { grid-template-columns: repeat(2, 1fr); }
    .tk-hero h1 { font-size: 26px; }
    .tk-hero-btns { justify-content: center; }
}
@media (max-width: 480px) {
    .tk-cards { grid-template-columns: 1fr; }
    .tk-hero { padding: 32px 0 28px; }
}

/* 刷题答题区 */
.brush-wrap { max-width:860px; margin:18px auto; }
.brush-head h2 { font-size:22px; margin:0 0 6px; }
.brush-head p { color:var(--text-2); margin:0; }
.brush-head-bar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.brush-meta { display:flex; gap:14px; font-size:13px; color:var(--text-2); }
.brush-meta .timer { color:var(--danger); font-weight:700; }
.brush-q { background:#fff; border:1px solid var(--border-light); border-radius:8px; padding:16px 18px; margin-bottom:14px; }
.bq-no { font-size:14px; font-weight:700; color:var(--text); margin-bottom:8px; }
.bq-score { color:var(--text-3); font-weight:500; font-size:12px; margin-left:6px; }
.bq-stem { font-size:15px; line-height:1.7; color:var(--text); margin-bottom:10px; }
.brush-opts { display:flex; flex-direction:column; gap:8px; }
.opt { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--border-light); border-radius:6px; font-size:14px; cursor:pointer; }
.opt:hover { border-color:var(--primary); }
.opt input { margin:0; }
.opt-k { display:inline-flex; width:22px; height:22px; align-items:center; justify-content:center; background:var(--bg); border-radius:50%; font-weight:700; color:var(--text-2); flex-shrink:0; }
.opt.correct { border-color:#2e7d32; background:#f1f8f2; }
.opt.correct .opt-k { background:#2e7d32; color:#fff; }
.bq-fill, .bq-area { width:100%; padding:9px 12px; border:1px solid var(--border-light); border-radius:6px; font-size:14px; font-family:inherit; }
.bq-area { min-height:70px; resize:vertical; }
.ans-line { margin-top:10px; padding:8px 12px; background:var(--bg); border-radius:6px; font-size:13.5px; color:var(--text); }
.ans-line.ok { background:#f1f8f2; color:#2e7d32; }
.bq-mark { font-size:12px; font-weight:600; margin-left:8px; padding:1px 8px; border-radius:3px; }
.bq-mark.ok { background:#e8f5e9; color:#2e7d32; }
.bq-mark.bad { background:#fdecea; color:#c62828; }
.bq-mark.subj { background:var(--bg); color:var(--text-3); }
.brush-submit { text-align:center; margin:18px 0; }
.brush-submit .btn-primary { padding:11px 36px; border-radius:6px; background:var(--primary); color:#fff; border:none; font-size:15px; font-weight:600; cursor:pointer; }
.brush-start { background:#fff; border:1px solid var(--border-light); border-radius:8px; padding:20px; max-width:620px; margin:0 auto; }
.bs-row { margin-bottom:16px; }
.bs-row > label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
.bs-presets { display:flex; gap:10px; flex-wrap:wrap; }
.bs-preset { flex:1; min-width:150px; border:1px solid var(--border-light); border-radius:6px; padding:12px; cursor:pointer; text-align:center; }
.bs-preset input { display:none; }
.bs-preset b { display:block; font-size:14px; }
.bs-preset small { color:var(--text-3); font-size:12px; }
.bs-preset.active { border-color:var(--primary); background:var(--primary-light); }
.bs-select { width:100%; padding:9px 12px; border:1px solid var(--border-light); border-radius:6px; font-size:14px; }
.bs-tip { font-size:12px; color:var(--text-3); margin-top:12px; }
.brush-result { background:linear-gradient(120deg,#0F52BA,#1d6fd6); color:#fff; border-radius:10px; padding:22px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-bottom:16px; }
.br-score { font-size:40px; font-weight:800; line-height:1; }
.br-score small { font-size:16px; font-weight:500; opacity:.85; }
.br-info { display:flex; gap:16px; font-size:14px; flex-wrap:wrap; }
.br-info b.t-ok { color:#a5ffb0; } .br-info b.t-bad { color:#ffc4c4; }
.br-actions { margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }
.br-actions .mini-btn.ghost { background:rgba(255,255,255,.15); color:#fff; border-color:rgba(255,255,255,.4); }

/* APP 占位 */
.app-hero, .dl-hero { background:linear-gradient(120deg,#0F52BA,#1d6fd6); }
.app-status .badge.dev { display:inline-block; background:#fff3cd; color:#8a6d00; padding:4px 12px; border-radius:4px; font-size:13px; font-weight:600; }
.app-actions { display:flex; gap:12px; flex-wrap:wrap; }
.mini-qr { display:inline-flex; flex-direction:column; align-items:center; gap:8px; color:var(--text-3); }
.mini-qr i { font-size:64px; color:var(--border); }
.mini-qr p { margin:0; font-size:15px; color:var(--text-2); font-weight:600; }

/* ============ 手机刷题 H5 ============ */
.m-container { max-width:680px; }
.m-banner { display:flex; align-items:center; gap:12px; background:linear-gradient(120deg,#0F52BA,#1d6fd6); color:#fff; border-radius:10px; padding:18px; margin:16px 0; }
.m-banner i { font-size:32px; }
.m-banner b { display:block; font-size:18px; }
.m-banner small { opacity:.85; }
.m-err { background:#fdecea; color:#c62828; padding:10px 14px; border-radius:6px; margin-bottom:12px; font-size:13px; }
.m-start { background:#fff; border:1px solid var(--border-light); border-radius:10px; padding:18px; }
.m-presets { display:flex; gap:10px; margin-bottom:14px; }
.m-preset { flex:1; border:1px solid var(--border-light); border-radius:8px; padding:14px 8px; text-align:center; cursor:pointer; }
.m-preset input { display:none; }
.m-preset span { display:block; font-size:15px; font-weight:700; color:var(--text); }
.m-preset small { font-size:12px; color:var(--text-3); }
.m-preset:has(input:checked) { border-color:var(--primary); background:var(--primary-light); }
.m-select { width:100%; padding:10px 12px; border:1px solid var(--border-light); border-radius:8px; font-size:14px; margin-bottom:14px; }
.m-btn { display:inline-block; padding:11px 20px; border-radius:8px; background:var(--bg); color:var(--text); text-decoration:none; font-size:15px; font-weight:600; border:1px solid var(--border-light); }
.m-btn.primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.m-btn.block { display:block; width:100%; text-align:center; margin:8px 0 24px; }
.m-quiz-bar { background:#fff; border:1px solid var(--border-light); border-radius:8px; padding:12px 16px; margin:16px 0; font-size:14px; font-weight:600; color:var(--text); }
.m-q { background:#fff; border:1px solid var(--border-light); border-radius:10px; padding:16px; margin-bottom:14px; }
.m-q.ok { border-left:4px solid #2e7d32; }
.m-q.bad { border-left:4px solid #c62828; }
.m-qno { font-size:14px; font-weight:700; margin-bottom:8px; display:flex; justify-content:space-between; align-items:center; }
.m-mark { font-size:12px; padding:1px 8px; border-radius:3px; }
.m-q.ok .m-mark { background:#e8f5e9; color:#2e7d32; }
.m-q.bad .m-mark { background:#fdecea; color:#c62828; }
.m-stem { font-size:15px; line-height:1.7; margin-bottom:10px; }
.m-opts { display:flex; flex-direction:column; gap:8px; }
.m-opt { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--border-light); border-radius:8px; font-size:15px; }
.m-opt.correct { border-color:#2e7d32; background:#f1f8f2; }
.m-fill, .m-area { width:100%; padding:11px 12px; border:1px solid var(--border-light); border-radius:8px; font-size:15px; font-family:inherit; }
.m-area { min-height:80px; resize:vertical; }
.m-ans { margin-top:10px; font-size:13.5px; color:#2e7d32; font-weight:600; }
.m-ana { font-size:13px; color:var(--text-2); margin-top:4px; }
.m-result { background:linear-gradient(120deg,#0F52BA,#1d6fd6); color:#fff; border-radius:12px; padding:24px; text-align:center; margin:16px 0; }
.m-score { font-size:46px; font-weight:800; line-height:1; }
.m-score small { font-size:18px; font-weight:500; opacity:.85; }
.m-rinfo { margin-top:8px; font-size:14px; }
.m-list { margin-bottom:16px; }
.m-actions { display:flex; gap:12px; margin:8px 0 24px; }
.m-page { background:var(--bg); }
.m-topbar { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:#fff; border-bottom:1px solid var(--border-light); position:sticky; top:0; z-index:5; }
.m-topbar span { font-size:16px; font-weight:700; }
.m-topbar a { color:var(--primary); text-decoration:none; font-size:14px; }

@media (max-width: 768px) {
    .tk-cards { grid-template-columns: repeat(2, 1fr) !important; }
    .tk-body { grid-template-columns: 1fr !important; }
    .brush-result { flex-direction: column; align-items: flex-start; }
    .br-actions { margin-left: 0; }
}

/* 品牌渐变 hero 保持彩色，仅微调说明文字 */
[data-theme="dark"] .logo-text p .domain,
[data-theme="dark"] .logo-text p .slogan { color: var(--text-3); }

/* 主题切换按钮（置于页头操作区） */
.theme-toggle { width:40px; height:38px; padding:0; justify-content:center; }

/* ============ 防雷问答：我要提问 / 投稿 ============ */
.ask-submit-wrap { max-width:760px; margin:0 auto 24px; }
.ask-login-tip { background:var(--primary-light); color:var(--primary); padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:14px; }
.ask-login-tip a { color:var(--primary); font-weight:600; text-decoration:underline; }
.ask-form .ask-field { margin-bottom:16px; }
.ask-form label { display:block; font-size:13px; color:var(--text-2); margin-bottom:6px; font-weight:600; }
.ask-form .req { color:var(--danger); }
.ask-form select,
.ask-form input[type=text],
.ask-form textarea {
    width:100%; padding:10px 12px; border:1px solid var(--border-light); border-radius:6px;
    font-size:14px; line-height:1.6; background:var(--surface); color:var(--text);
    font-family:inherit; box-sizing:border-box;
}
.ask-form textarea { resize:vertical; }
.ask-form select:focus,
.ask-form input:focus,
.ask-form textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(15,82,186,.12); }
.ask-hint { font-size:12px; color:var(--text-3); margin:6px 0 0; line-height:1.5; }
.ask-note { font-size:12px; color:var(--text-3); margin-top:14px; }
.ask-note i { color:var(--success); }
.ask-success { text-align:center; padding:48px 20px; background:var(--surface); border:1px solid var(--border-light); border-radius:10px; }
.ask-success i { font-size:54px; color:var(--success); }
.ask-success h2 { margin:14px 0 10px; font-size:22px; color:var(--text); }
.ask-success p { color:var(--text-2); line-height:1.8; font-size:14px; }
.ask-success-ops { margin-top:22px; display:flex; gap:12px; justify-content:center; }
.co-msg { padding:10px 14px; border-radius:6px; margin-bottom:16px; font-size:14px; }

/* 后台投稿审核队列 */
.co-sub-status-0 { color:#e67e22; background:#fff4e6; padding:2px 8px; border-radius:3px; }
.co-sub-status-1 { color:var(--success); background:#e8f5e9; padding:2px 8px; border-radius:3px; }
.co-sub-status-2 { color:#999; background:#f2f2f2; padding:2px 8px; border-radius:3px; }
.co-sub-block { background:#fff; border:1px solid #eee; border-radius:6px; padding:16px; margin-bottom:14px; }
.co-sub-block h4 { margin:0 0 8px; font-size:15px; color:#333; }
.co-sub-block .co-sub-meta { font-size:12px; color:#888; margin-bottom:10px; }
.co-sub-block .co-sub-content { background:#fafafa; border-radius:5px; padding:12px; font-size:13px; color:#444; line-height:1.7; white-space:pre-wrap; max-height:220px; overflow:auto; }
.co-sub-ops { margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.co-sub-ops textarea { flex:1; min-width:200px; padding:8px 10px; border:1px solid #ddd; border-radius:4px; font-size:13px; font-family:inherit; }


.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ===== 活动导航入口（promo）2026-10-23 ===== */
.nav-menu .promo-nav-item { color: #e53935 !important; font-weight: 700; }
.nav-menu .promo-nav-item:hover { color: #b71c1c !important; }
.nav-menu .promo-nav-item .fas { margin-right: 3px; }
.nav-menu .promo-nav-item .hot-dot { margin-left: 4px; vertical-align: middle; }
