
/* ===== 重置与变量（限定在.portal-page内） ===== */
.portal-page,.portal-page *,.portal-page *::before,.portal-page *::after{margin:0;padding:0;box-sizing:border-box}
.portal-page{
  --ink:#0F172A;--slate:#475569;--muted:#94A3B8;--line:#E2E8F0;
  --bg:#F8FAFC;--card:#FFFFFF;--brand:#d7000f;--brand-2:#e8161d;
  --brand-grad:linear-gradient(135deg,#d7000f,#e8161d);
  --indigo:#4F46E5;--teal:#0D9488;--amber:#F59E0B;
  --radius:16px;--radius-sm:10px;
  --shadow:0 4px 20px rgba(15,23,42,.06);--shadow-hover:0 12px 40px rgba(15,23,42,.12);
  --maxw:1240px;
  --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  scroll-behavior:smooth;-webkit-text-size-adjust:100%;
  font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;font-size:15px;
  overflow-x:hidden;max-width:100%
}
.portal-page a{color:inherit;text-decoration:none;transition:color .2s}
.portal-page a:hover{color:var(--brand)}
.portal-page .title-link{color:inherit;font:inherit}
.portal-page img{max-width:100%;display:block}
.portal-page ul,.portal-page ol{list-style:none}
.portal-page h1,.portal-page h2,.portal-page h3,.portal-page h4{line-height:1.3;font-weight:700}
.portal-page .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ===== 顶部工具栏 ===== */
.portal-page .topbar{background:var(--ink);color:#CBD5E1;font-size:13px}
.portal-page .topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:38px}
.portal-page .topbar .date{display:flex;align-items:center;gap:8px}
.portal-page .topbar .date .dot{width:6px;height:6px;border-radius:50%;background:var(--brand)}
.portal-page .topbar .tools{display:flex;align-items:center;gap:20px}
.portal-page .topbar .tools a:hover{color:#fff}
.portal-page .topbar .tools .sep{color:#334155}
.portal-page .topbar .hot-search{display:flex;align-items:center;gap:6px;color:var(--muted)}
.portal-page .topbar .hot-search b{color:var(--brand-2);font-weight:600}

/* ===== 头部导航 ===== */
.portal-page .header{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}
.portal-page .header .wrap{display:flex;align-items:center;height:68px;gap:36px}
.portal-page .logo{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-.5px;white-space:nowrap}
.portal-page .logo .mark{width:40px;height:40px;border-radius:11px;background:var(--brand-grad);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:800;box-shadow:0 4px 14px rgba(215,0,15,.35)}
.portal-page .logo .name{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.portal-page .nav{display:flex;align-items:center;gap:4px;flex:1}
.portal-page .nav a{padding:8px 14px;border-radius:9px;font-size:15px;font-weight:500;color:var(--slate);position:relative}
.portal-page .nav a:hover{color:var(--ink);background:var(--bg)}
.portal-page .nav a.active{color:var(--brand);font-weight:600}
.portal-page .nav a.active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:var(--brand-grad)}
.portal-page .search{position:relative;display:flex;align-items:center}
.portal-page .search input{width:180px;height:38px;border:1.5px solid var(--line);border-radius:20px;padding:0 40px 0 16px;font-size:14px;font-family:inherit;background:var(--bg);color:var(--ink);transition:.2s}
.portal-page .search input:focus{outline:none;border-color:var(--brand);background:#fff;width:220px}
.portal-page .search svg{position:absolute;right:14px;width:16px;height:16px;color:var(--muted);pointer-events:none}

/* ===== 通用区块标题 ===== */
.portal-page .sec{padding:40px 0}
.portal-page .sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}
.portal-page .sec-head .left{display:flex;align-items:center;gap:12px}
.portal-page .sec-head h2{font-size:24px;letter-spacing:-.3px;display:flex;align-items:center;gap:10px}
.portal-page .sec-head h2 .bar{width:5px;height:24px;border-radius:3px;background:var(--brand-grad)}
.portal-page .sec-head .sub{font-size:13px;color:var(--muted);font-weight:500}
.portal-page .sec-head .more{font-size:14px;color:var(--slate);font-weight:500;display:flex;align-items:center;gap:4px}
.portal-page .sec-head .more:hover{color:var(--brand)}

/* ===== 页脚 ===== */
.portal-page .footer{background:#0B1120;color:#94A3B8;padding:48px 0 28px}
.portal-page .footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:32px;border-bottom:1px solid #1E293B}
.portal-page .footer .brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.portal-page .footer .brand .mark{width:38px;height:38px;border-radius:10px;background:var(--brand-grad);display:grid;place-items:center;color:#fff;font-size:20px;font-weight:800}
.portal-page .footer .brand .name{font-size:20px;font-weight:800;color:#fff}
.portal-page .footer .about{font-size:13px;line-height:1.7;max-width:320px}
.portal-page .footer h5{color:#fff;font-size:14px;margin-bottom:14px;font-weight:600}
.portal-page .footer li{margin-bottom:9px;font-size:13px}
.portal-page .footer li a:hover{color:var(--brand)}
.portal-page .footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:22px;font-size:12px;color:#64748B}
.portal-page .footer-bottom .links{display:flex;gap:18px}

/* ===== 友情链接 ===== */
.portal-page .footer-links{padding:28px 0;border-top:1px solid #1E293B}
.portal-page .footer-links .fl-title{color:#fff;font-size:14px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.portal-page .footer-links .fl-title::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand-grad)}
.portal-page .footer-links .fl-list{display:flex;flex-wrap:wrap;gap:10px 24px}
.portal-page .footer-links .fl-list a{font-size:13px;color:#64748B;transition:color .2s}
.portal-page .footer-links .fl-list a:hover{color:var(--brand)}

/* ===== 页脚公司简介 ===== */
.portal-page .footer-intro{display:flex;align-items:flex-start;gap:14px;padding:28px 0;border-top:1px solid #1E293B;color:#94A3B8;font-size:13px;line-height:1.8;max-width:900px;margin:0 auto}
.portal-page .footer-intro .fi-icon{flex-shrink:0;width:36px;height:36px;border-radius:8px;background:rgba(215,0,15,.15);display:grid;place-items:center}
.portal-page .footer-intro .fi-icon svg{width:18px;height:18px;color:var(--brand)}
.portal-page .footer-intro p{flex:1;margin:0}

/* ===== 页脚联系方式 ===== */
.portal-page .footer-contact{display:flex;align-items:center;justify-content:center;gap:20px;padding:24px 0;border-top:1px solid #1E293B;color:#94A3B8;font-size:13px;flex-wrap:wrap}
.portal-page .footer-contact .fc-item{display:flex;align-items:center;gap:8px}
.portal-page .footer-contact .fc-item svg{width:14px;height:14px;color:var(--brand);flex-shrink:0}
.portal-page .footer-contact .fc-divider{color:#334155}
@media(max-width:600px){
  .portal-page .footer-contact{gap:10px}
}

/* ===== 面包屑 ===== */
.portal-page .crumb-bar{background:var(--card);border-bottom:1px solid var(--line)}
.portal-page .crumb-bar .wrap{display:flex;align-items:center;height:46px;font-size:13px;color:var(--muted)}
.portal-page .crumb-bar a:hover{color:var(--brand)}
.portal-page .crumb-bar .sep{margin:0 8px;color:var(--line)}
.portal-page .crumb-bar .current{color:var(--slate);font-weight:500}

/* ===== 栏目横幅 ===== */
.portal-page .cat-banner{background:var(--brand-grad);color:#fff;padding:48px 0 44px;position:relative;overflow:hidden}
.portal-page .cat-banner::before{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.1)}
.portal-page .cat-banner::after{content:"";position:absolute;right:120px;bottom:-80px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08)}
.portal-page .cat-banner .inner{position:relative;z-index:1}
.portal-page .cat-banner .crumb{font-size:13px;color:rgba(255,255,255,.8);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.portal-page .cat-banner .crumb a:hover{color:#fff;text-decoration:underline}
.portal-page .cat-banner .crumb .sep{opacity:.6}
.portal-page .cat-banner h1{font-size:34px;letter-spacing:-.5px;margin-bottom:10px}
.portal-page .cat-banner .desc{font-size:15px;color:rgba(255,255,255,.88);max-width:620px}
.portal-page .cat-banner .stats{display:flex;gap:28px;margin-top:18px}
.portal-page .cat-banner .stats .s{display:flex;align-items:baseline;gap:6px}
.portal-page .cat-banner .stats .n{font-size:22px;font-weight:800}
.portal-page .cat-banner .stats .l{font-size:13px;color:rgba(255,255,255,.75)}

/* ===== 列表主体布局 ===== */
.portal-page .list-main{padding:36px 0 52px}
.portal-page .list-layout{display:grid;grid-template-columns:1fr 320px;gap:36px}

/* ===== 文章列表项 ===== */
.portal-page .feed{display:flex;flex-direction:column}
.portal-page .feed-item{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:transform .2s}
.portal-page .feed-item:first-child{padding-top:0}
.portal-page .feed-item:hover{transform:translateX(4px)}
.portal-page .feed-item .thumb{width:230px;height:150px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;background:var(--line)}
.portal-page .feed-item .body{flex:1;min-width:0;display:flex;flex-direction:column}
.portal-page .feed-item .tags{display:flex;gap:8px;margin-bottom:10px}
.portal-page .feed-item .tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:5px}
.portal-page .tag-hot{background:var(--brand);color:#fff}
.portal-page .tag-top{background:var(--brand-2);color:#fff}
.portal-page .tag-rec{background:var(--indigo);color:#fff}
.portal-page .tag-cat{background:#FFF1F1;color:var(--brand)}
.portal-page .feed-item h3{font-size:19px;margin-bottom:9px;transition:color .2s;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-wrap:break-word;overflow-wrap:break-word}
.portal-page .feed-item h3 a{display:inline}
.portal-page .feed-item:hover h3{color:var(--brand)}
.portal-page .feed-item .summary{font-size:14px;color:var(--slate);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:auto;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}
.portal-page .feed-item .meta{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--muted);margin-top:14px}
.portal-page .feed-item .meta .src{display:flex;align-items:center;gap:5px}
.portal-page .feed-item .meta .views{display:flex;align-items:center;gap:5px}
.portal-page .feed-item .meta svg{width:14px;height:14px}

/* ===== 排序工具条 ===== */
.portal-page .feed-toolbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:2px solid var(--ink);margin-bottom:4px}
.portal-page .feed-toolbar .tabs{display:flex;gap:6px}
.portal-page .feed-toolbar .tabs a{font-size:15px;font-weight:600;color:var(--muted);padding:6px 14px;border-radius:8px}
.portal-page .feed-toolbar .tabs a.on{color:#fff;background:var(--ink)}
.portal-page .feed-toolbar .tabs a:not(.on):hover{color:var(--ink);background:var(--bg)}
.portal-page .feed-toolbar .count{font-size:13px;color:var(--muted)}
.portal-page .feed-toolbar .count b{color:var(--ink);font-weight:600}

/* ===== 分页 ===== */
.portal-page .pager{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:40px}
.portal-page .pager a,.portal-page .pager span{min-width:40px;height:40px;display:grid;place-items:center;border-radius:10px;font-size:14px;font-weight:600;border:1.5px solid var(--line);color:var(--slate);background:var(--card);padding:0 6px}
.portal-page .pager a:hover{border-color:var(--brand);color:var(--brand)}
.portal-page .pager .cur{background:var(--brand-grad);color:#fff;border-color:transparent}
.portal-page .pager .dots{border:none;background:none;color:var(--muted)}
.portal-page .pager .nav-btn{padding:0 16px;gap:5px;display:flex;align-items:center}
.portal-page .pager .nav-btn.disabled{opacity:.35;pointer-events:none}

/* ===== 侧边栏 ===== */
.portal-page .sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:90px;align-self:start}
.portal-page .side-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.portal-page .side-card .head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700}
.portal-page .side-card .head .ico{width:26px;height:26px;border-radius:7px;background:var(--brand-grad);display:grid;place-items:center;color:#fff;font-size:14px}
.portal-page .side-card .head .more{margin-left:auto;font-size:12px;color:var(--muted);font-weight:500}

/* 排行榜 */
.portal-page .rank-list li{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);cursor:pointer}
.portal-page .rank-list li:last-child{border-bottom:none}
.portal-page .rank-list li .n{width:22px;height:22px;border-radius:6px;font-size:12px;font-weight:800;display:grid;place-items:center;flex-shrink:0;background:var(--bg);color:var(--muted)}
.portal-page .rank-list li:nth-child(1) .n{background:var(--brand);color:#fff}
.portal-page .rank-list li:nth-child(2) .n{background:var(--brand-2);color:#fff}
.portal-page .rank-list li:nth-child(3) .n{background:var(--amber);color:#fff}
.portal-page .rank-list li h4{font-size:14px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s}
.portal-page .rank-list li:hover h4{color:var(--brand)}
@media(max-width:600px){
  .portal-page .rank-list li h4{white-space:normal;text-overflow:clip;overflow:visible;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-wrap:break-word}
}
.portal-page .rank-list li .heat{font-size:12px;color:var(--muted);flex-shrink:0}

/* 推荐卡 */
.portal-page .rec-card{padding:16px 20px;border-bottom:1px solid var(--line);cursor:pointer}
.portal-page .rec-card:last-child{border-bottom:none}
.portal-page .rec-card .t{font-size:14.5px;font-weight:600;margin-bottom:6px;transition:color .2s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.portal-page .rec-card:hover .t{color:var(--brand)}
.portal-page .rec-card .m{font-size:12px;color:var(--muted);display:flex;gap:10px}

/* 订阅卡 */
.portal-page .subscribe{background:var(--ink);border-radius:var(--radius);padding:24px 22px;color:#fff;box-shadow:var(--shadow)}
.portal-page .subscribe h4{font-size:17px;margin-bottom:8px}
.portal-page .subscribe p{font-size:13px;color:#94A3B8;margin-bottom:16px;line-height:1.6}
.portal-page .subscribe form{display:flex;gap:8px}
.portal-page .subscribe input{flex:1;height:40px;border-radius:10px;border:1.5px solid #1E293B;background:#1E293B;color:#fff;padding:0 14px;font-size:13px;font-family:inherit}
.portal-page .subscribe input:focus{outline:none;border-color:var(--brand)}
.portal-page .subscribe button{height:40px;padding:0 18px;border:none;border-radius:10px;background:var(--brand-grad);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap}

/* ===== 响应式 ===== */
@media(max-width:980px){
  .portal-page .list-layout{grid-template-columns:1fr}
  .portal-page .sidebar{position:static;flex-direction:row;flex-wrap:wrap;gap:16px}
  .portal-page .side-card,.portal-page .subscribe{flex:1 1 280px}
  .portal-page .nav{display:none}
  .portal-page .search input{width:130px}
  .portal-page .footer-top{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .portal-page .wrap{padding:0 16px}
  .portal-page .topbar .tools{display:none}
  .portal-page .header .wrap{height:58px;gap:12px}
  .portal-page .logo{font-size:20px}
  .portal-page .logo .mark{width:34px;height:34px;font-size:18px}
  .portal-page .search input{width:100px}
  .portal-page .sidebar{flex-direction:column}
  .portal-page .footer-top{grid-template-columns:1fr}
  .portal-page .cat-banner{padding:34px 0 30px}
  .portal-page .cat-banner h1{font-size:26px}
  .portal-page .cat-banner .stats{gap:20px}
  .portal-page .footer-links .fl-list{gap:8px 16px}
  .portal-page .pager a,.portal-page .pager span{min-width:36px;height:36px}
}
