/* =========================================================
   开源社区 · 静态模版共享样式（舒展版 / 1920 友好 / 固定左栏 / 通栏筛选）
   风格：白绿色 / 克制 / 大厂质感 / 仿百度文库左栏 + 顶部 AI 搜索
   设计基准：容器 1480px、基础字号 16px、宽松间距，适配 1920×1080 与常见大屏
   ========================================================= */

:root{
  --brand:#0a9d6f;
  --brand-strong:#078256;
  --brand-soft:#e8f6f0;
  --brand-soft-2:#f1faf6;
  --bg:#ffffff;
  --bg-soft:#f6f8f7;
  --text:#1d2826;
  --text-2:#5b6b67;
  --text-3:#8a9794;
  --line:#e9eeec;
  --line-strong:#dde4e1;
  --warn:#e8a33d;
  --danger:#e5564b;
  --ok:#1aa179;
  --radius:14px;
  --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(20,40,35,.05);
  --shadow:0 8px 28px rgba(20,40,35,.07);
  --maxw:1480px;
  --top-h:72px;
  --sidebar-w:272px;

  /* ── 网盘 / 状态色板 ──────────────────────────────────────────────
     App\Service\Disk\* 各驱动的 color() 返回的是 var(--c-blue) / var(--c-orange-ink)
     之类的**变量引用**（不是裸色值），本文件原先没定义这几个变量，于是前台渲染
     网盘图标、状态徽章时颜色全部落空。这里补齐与 public/url.php 内联 :root 一致的
     一套，保证「网盘中转页」与「下载线路选择页」配色同源。 */
  --c-blue:#2f6fed;   --c-blue-soft:#edf2ff;   --c-blue-ink:#1a4fbf;
  --c-purple:#7c5cfc; --c-purple-soft:#f2efff; --c-purple-ink:#5b3ec9;
  --c-orange:#f5841f; --c-orange-soft:#fff4ea; --c-orange-ink:#b4580a;
  --c-teal:#0ea494;   --c-teal-soft:#e5faf6;   --c-teal-ink:#0a7a6e;
  --c-pink:#e5486f;   --c-pink-soft:#fff0f3;   --c-pink-ink:#b02a47;
  --c-red:#e5484d;    --c-red-soft:#fdecec;    --c-red-ink:#a8272c;
  /* 旧版 ink 阶梯（url.php / Disk 驱动沿用），补齐后旧调用不再落空 */
  --ink-1:#1a1c19;    --ink-2:#3a3d42;         --ink-3:#6b7077;  --ink-4:#a0a5ac;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  color:var(--text);
  background:var(--bg-soft);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:16px;outline:none}

.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:20px;border:3px solid var(--bg-soft)}
::-webkit-scrollbar-track{background:transparent}

/* ---------- 顶部 AI 搜索导航（旧结构，保留兼容） ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--line);
}
.topbar__inner{
  display:flex;align-items:center;gap:22px;height:var(--top-h);
}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand__logo{
  width:46px;height:46px;border-radius:12px;
  background:linear-gradient(135deg,var(--brand),#16b887);
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:22px;
  box-shadow:0 4px 12px rgba(10,157,111,.28);
}
.brand__name{font-size:21px;font-weight:800;letter-spacing:.2px}
.brand__name small{font-weight:500;color:var(--text-3);font-size:13px;margin-left:6px}

.aisearch{flex:1;max-width:620px;position:relative}
.aisearch__box{
  display:flex;align-items:center;gap:12px;
  height:48px;padding:0 12px 0 18px;
  background:#fff;border:1.5px solid var(--line-strong);
  border-radius:26px;transition:.18s;
}
.aisearch__box:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.aisearch__icon{color:var(--text-3);flex-shrink:0;font-size:18px}
.aisearch input{flex:1;border:none;background:none;color:var(--text);font-size:16px}
.aisearch input::placeholder{color:var(--text-3)}
.ai-badge{
  display:inline-flex;align-items:center;gap:3px;
  background:linear-gradient(135deg,#0a9d6f,#13c08a);
  color:#fff;font-size:13px;font-weight:700;padding:5px 11px;border-radius:20px;
}
.aisearch__btn{height:38px;padding:0 20px;border-radius:22px;background:var(--brand);color:#fff;font-weight:600;font-size:15px;transition:.18s}
.aisearch__btn:hover{background:var(--brand-strong)}
.aisearch__suggest{
  position:absolute;top:58px;left:0;right:0;background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);padding:10px;display:none;z-index:70;
}
.aisearch__suggest.show{display:block}
.aisearch__suggest a{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;color:var(--text-2);font-size:15px}
.aisearch__suggest a:hover{background:var(--brand-soft-2);color:var(--brand-strong)}

.topnav{display:flex;align-items:center;gap:4px;flex-shrink:0}
.topnav a{padding:10px 16px;border-radius:10px;color:var(--text-2);font-weight:500;font-size:16px}
.topnav a:hover{color:var(--brand-strong);background:var(--brand-soft-2)}
.topnav a.active{color:var(--brand-strong);font-weight:700}

.topactions{display:flex;align-items:center;gap:14px;flex-shrink:0;margin-left:auto}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:46px;padding:0 22px;border-radius:12px;font-weight:600;font-size:16px;transition:.18s;white-space:nowrap;
}
.btn--primary{background:var(--brand);color:#fff}
.btn--primary:hover{background:var(--brand-strong)}
.btn--ghost{background:#fff;color:var(--text);border:1px solid var(--line-strong)}
.btn--ghost:hover{border-color:var(--brand);color:var(--brand-strong)}
.btn--sm{height:40px;padding:0 16px;font-size:14.5px;border-radius:9px}
.avatar{
  width:42px;height:42px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);
  display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0;overflow:hidden;
}
.avatar--lg{width:80px;height:80px;font-size:28px}
.menu-toggle{display:none;width:44px;height:44px;border-radius:11px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:19px}

/* ---------- 主体布局：左栏(固定全高) + 主区 ---------- */
.layout{display:flex;gap:28px;align-items:flex-start;padding:28px 0 56px}
.sidebar{
  width:var(--sidebar-w);flex-shrink:0;
  position:sticky;top:calc(var(--top-h) + 12px);align-self:flex-start;
  height:calc(100vh - var(--top-h) - 24px);
  overflow-y:auto;
  background:#fff;border:1px solid var(--line);border-right:1px solid var(--line);
  border-radius:0;box-shadow:var(--shadow-sm);
}
.sidebar__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;border-bottom:1px solid var(--line);font-weight:800;font-size:16px;position:sticky;top:0;background:#fff;z-index:2;
}
.sidebar__head .more{font-size:14px;color:var(--brand-strong);font-weight:600}
.cat{display:block;padding:8px 0 12px}
.cat__item{border-bottom:1px solid var(--line)}
.cat__item:last-child{border-bottom:none}
.cat__link{
  display:flex;align-items:center;gap:12px;padding:15px 20px;font-weight:600;color:var(--text);font-size:15.5px;transition:.15s;
}
.cat__link:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.cat__link .ico{width:22px;height:22px;color:var(--brand);flex-shrink:0}
.cat__link .arrow{margin-left:auto;color:var(--text-3);transition:.15s}
.cat__link.open .arrow{transform:rotate(90deg)}
.cat__sub{display:none;padding:6px 0 12px;background:var(--bg-soft)}
.cat__sub.show{display:block}
.cat__sub a{display:block;padding:11px 20px 11px 54px;color:var(--text-2);font-size:14.5px}
.cat__sub a:hover{color:var(--brand-strong)}
.cat__sub a.active{color:var(--brand-strong);font-weight:700}

.main{flex:1;min-width:0}

/* ---------- 通用区块 ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.section{margin-bottom:28px}
.section__head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.section__title{font-size:22px;font-weight:800}
.section__title .bar{display:inline-block;width:6px;height:20px;background:var(--brand);border-radius:3px;margin-right:12px;vertical-align:-2px}
.section__more{margin-left:auto;color:var(--text-3);font-size:15px}
.section__more:hover{color:var(--brand-strong)}

.tag{
  display:inline-flex;align-items:center;padding:4px 12px;border-radius:8px;font-size:13.5px;font-weight:600;
  background:var(--brand-soft);color:var(--brand-strong);
}
.tag--gray{background:var(--bg-soft);color:var(--text-2)}
.tag--warn{background:#fdf3e3;color:#b9791f}
.tag--danger{background:#fdecea;color:#c23a30}
.tag--ok{background:#e7f5ef;color:#136b4f}
.badge-mod{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:12.5px;font-weight:700;background:#eef6ff;color:#2f6fd0}
.badge-admin{background:#f0ecff;color:#6b4bd8}
.dot{width:8px;height:8px;border-radius:50%;background:var(--brand);display:inline-block}

/* ---------- 首页 Hero / 快捷入口 ---------- */
.hero{
  background:linear-gradient(180deg,#fff,var(--brand-soft-2));
  border:1px solid var(--line);border-radius:20px;padding:40px;margin-bottom:28px;
}
.hero__title{font-size:30px;font-weight:800;margin-bottom:10px;line-height:1.4}
.hero__title em{color:var(--brand-strong);font-style:normal}
.hero__sub{color:var(--text-2);margin-bottom:22px;font-size:15.5px}
.hotwords{display:flex;flex-wrap:wrap;gap:12px}
.hotwords a{padding:8px 16px;background:#fff;border:1px solid var(--line);border-radius:24px;font-size:15px;color:var(--text-2)}
.hotwords a:hover{border-color:var(--brand);color:var(--brand-strong)}

.quick{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-bottom:28px}
.quick__item{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 14px;text-align:center;transition:.18s;
}
.quick__item:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--brand-soft)}
.quick__ico{width:50px;height:50px;margin:0 auto 12px;border-radius:13px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:24px}
.quick__name{font-weight:600;font-size:15px}

/* ---------- 源码卡片网格 ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.src-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:.18s;display:flex;flex-direction:column;
}
.src-card:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-2px)}
.src-card__cover{
  height:172px;background:linear-gradient(135deg,#eef7f2,#dff1e9);position:relative;display:grid;place-items:center;
}
.src-card__cover .ext{font-size:40px;font-weight:800;color:var(--brand-strong);letter-spacing:1px;opacity:.85}
.src-card__cover .scan{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);color:#136b4f;font-size:13px;font-weight:700;padding:5px 10px;border-radius:8px}
.src-card__body{padding:18px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.src-card__title{font-weight:700;font-size:17px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.src-card__title:hover{color:var(--brand-strong)}
.src-card__meta{display:flex;align-items:center;gap:14px;color:var(--text-3);font-size:14px;margin-top:auto}
.src-card__meta .u{display:flex;align-items:center;gap:7px}
.src-card__price{color:var(--warn);font-weight:700;font-size:15px}
.src-card__foot{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:14px}

/* 列表（文本）视图 */
.grid.is-list{grid-template-columns:1fr;gap:16px}
.grid.is-list .src-card{flex-direction:row;align-items:stretch}
.grid.is-list .src-card__cover{width:208px;height:auto;flex-shrink:0}
.grid.is-list .src-card__body{padding:20px 24px}
.grid.is-list .src-card__title{font-size:18px}

/* ---------- 排行列表 ---------- */
.rank{display:flex;flex-direction:column}
.rank__item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.rank__item:last-child{border-bottom:none}
.rank__no{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:800;background:var(--bg-soft);color:var(--text-3);flex-shrink:0}
.rank__no.top{background:var(--brand);color:#fff}
.rank__title{flex:1;font-size:15px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank__title:hover{color:var(--brand-strong)}
.rank__num{font-size:14px;color:var(--text-3)}

/* ---------- 源码分类页：通栏筛选工具条 ---------- */
.toolbar{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:20px;box-shadow:var(--shadow-sm);
}
.toolbar__group{display:flex;align-items:center;gap:10px}
.toolbar__label{font-size:15px;color:var(--text-3);font-weight:600;white-space:nowrap}
.chip{padding:9px 17px;border-radius:22px;font-size:14.5px;background:var(--bg-soft);color:var(--text-2);cursor:pointer;border:1px solid transparent;transition:.15s;white-space:nowrap}
.chip:hover{border-color:var(--brand);color:var(--brand-strong)}
.chip.on{background:var(--brand);color:#fff;font-weight:600}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden}
.seg button{padding:9px 18px;font-size:14.5px;color:var(--text-2);background:#fff;transition:.15s}
.seg button:hover{background:var(--brand-soft-2)}
.seg button.active{background:var(--brand);color:#fff;font-weight:600}
.toolbar .spacer{margin-left:auto}
.toolbar select{height:42px;padding:0 14px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--text);font-size:15px}

/* ---------- 详情页两栏 ---------- */
.detail{display:grid;grid-template-columns:1fr 376px;gap:28px;align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.panel__head{padding:17px 20px;border-bottom:1px solid var(--line);font-weight:800;font-size:17px;display:flex;align-items:center;gap:8px}
.panel__body{padding:22px}

.src-hero{padding:28px;display:flex;gap:24px}
.src-hero__cover{width:152px;height:192px;border-radius:14px;background:linear-gradient(135deg,#eef7f2,#dff1e9);display:grid;place-items:center;flex-shrink:0}
.src-hero__cover .ext{font-size:48px;font-weight:800;color:var(--brand-strong);opacity:.85}
.src-hero__main{flex:1;min-width:0}
.src-hero__title{font-size:27px;font-weight:800;margin-bottom:12px;line-height:1.35}
.src-hero__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.src-hero__stat{display:flex;gap:32px;color:var(--text-2);font-size:15px}
.src-hero__stat b{color:var(--text);font-weight:800;font-size:19px;display:block}

.score{display:flex;align-items:center;gap:18px}
.score__num{font-size:42px;font-weight:800;color:var(--brand-strong);line-height:1}
.score__stars{color:var(--warn);font-size:22px;letter-spacing:2px}
.score__bars{flex:1;display:flex;flex-direction:column;gap:6px}
.score__bar{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--text-2)}
.score__bar .track{flex:1;height:8px;background:var(--bg-soft);border-radius:4px;overflow:hidden}
.score__bar .fill{height:100%;background:var(--brand)}

.kv{display:grid;grid-template-columns:140px 1fr;gap:0}
.kv>div{padding:13px 14px;border-bottom:1px solid var(--line);font-size:14.5px}
.kv>div:nth-child(odd){background:var(--bg-soft);color:var(--text-2);font-weight:600}
.kv>div:nth-child(even){color:var(--text);word-break:break-all}

.scan-box{display:flex;flex-direction:column;gap:14px}
.scan-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}
.scan-row .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;font-size:16px}
.scan-row .ic.ok{background:#e7f5ef;color:#136b4f}
.scan-row .ic.warn{background:#fdf3e3;color:#b9791f}
.scan-row .txt{flex:1;font-size:15px}
.scan-row .txt small{display:block;color:var(--text-3);font-size:13px}
.scan-row .st{font-weight:700;font-size:14.5px}
.scan-row .st.ok{color:#136b4f}.scan-row .st.warn{color:#b9791f}

.ver{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.ver:last-child{border-bottom:none}
.ver__v{font-weight:800;color:var(--brand-strong);font-size:16px}
.ver__date{color:var(--text-3);font-size:13.5px}
.ver__note{flex:1;color:var(--text-2);font-size:15px}

.mini-list{display:flex;flex-direction:column;gap:11px}
.mini{display:flex;align-items:center;gap:14px;padding:11px;border-radius:12px;transition:.15s}
.mini:hover{background:var(--brand-soft-2)}
.mini__ext{width:42px;height:52px;border-radius:8px;background:linear-gradient(135deg,#eef7f2,#dff1e9);color:var(--brand-strong);display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0}
.mini__info{flex:1;min-width:0}
.mini__title{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini__title:hover{color:var(--brand-strong)}
.mini__sub{font-size:14px;color:var(--text-3)}

.vendor{display:flex;gap:16px;align-items:center}
.vendor__logo{width:64px;height:64px;border-radius:16px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-weight:800;font-size:24px;flex-shrink:0}
.vendor__name{font-weight:800;font-size:18px}
.vendor__meta{color:var(--text-2);font-size:15px;margin-top:2px}

.alert{display:flex;gap:12px;padding:14px 16px;border-radius:12px;font-size:15px;margin-bottom:12px;line-height:1.6}
.alert--danger{background:#fdecea;color:#9c2f26}
.alert--warn{background:#fdf3e3;color:#8a5e16}
.alert--info{background:var(--brand-soft-2);color:var(--brand-strong)}
.alert .a-ico{flex-shrink:0;font-weight:800}

.cmt{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.cmt:last-child{border-bottom:none}
.cmt__body{flex:1;min-width:0}
.cmt__head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.cmt__name{font-weight:700;font-size:16px}
.cmt__time{color:var(--text-3);font-size:13.5px}
.cmt__text{color:var(--text-2);font-size:15px;line-height:1.7}
.cmt__acts{display:flex;gap:20px;margin-top:9px;color:var(--text-3);font-size:14px}
.cmt__acts span{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.cmt__acts span:hover{color:var(--brand-strong)}
.cmt-form{display:flex;gap:14px;padding:18px;background:var(--bg-soft);border-radius:14px;margin-bottom:18px}
.cmt-form textarea{flex:1;height:80px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;font-size:15px}
.cmt-form textarea:focus{border-color:var(--brand)}

.dl-btn{
  width:100%;height:56px;border-radius:14px;background:linear-gradient(135deg,var(--brand),#13b486);color:#fff;
  font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 6px 18px rgba(10,157,111,.25);transition:.18s;
}
.dl-btn:hover{filter:brightness(1.05)}

.wiki p{color:var(--text-2);font-size:15px;margin-bottom:10px;line-height:1.75}
.wiki h4{font-size:16px;margin:14px 0 6px}

/* ---------- 论坛/社区/版主 ---------- */
.board{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:16px}
.board__ico{width:54px;height:54px;border-radius:13px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:24px;flex-shrink:0}
.board__main{flex:1;min-width:0}
.board__name{font-weight:800;font-size:17px}
.board__desc{color:var(--text-2);font-size:15px;margin:4px 0 8px}
.board__mods{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mod{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;background:var(--bg-soft);font-size:13.5px;color:var(--text-2)}
.mod .avatar{width:24px;height:24px;font-size:11px}
.apply-box{padding:18px;background:linear-gradient(135deg,var(--brand-soft-2),#fff);border:1px dashed var(--brand);border-radius:14px;text-align:center}
.apply-box p{color:var(--text-2);font-size:15px;margin-bottom:14px;line-height:1.7}

.post{display:flex;gap:14px;padding:18px;border-bottom:1px solid var(--line)}
.post:last-child{border-bottom:none}
.post__main{flex:1;min-width:0}
.post__title{font-weight:700;font-size:17px;margin-bottom:6px}
.post__title:hover{color:var(--brand-strong)}
.post__excerpt{color:var(--text-2);font-size:15px;margin-bottom:8px}
.post__meta{display:flex;gap:18px;color:var(--text-3);font-size:13.5px;flex-wrap:wrap}

/* 表单 */
.field{margin-bottom:20px}
.field label{display:block;font-weight:600;margin-bottom:8px;font-size:15px}
.field input,.field textarea,.field select{
  width:100%;height:52px;padding:0 16px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--text);font-size:16px;
}
.field textarea{height:auto;padding:12px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}

.dropzone{
  border:2px dashed var(--line-strong);border-radius:16px;padding:56px 28px;text-align:center;
  background:var(--bg-soft);transition:.18s;cursor:pointer;
}
.dropzone.drag{border-color:var(--brand);background:var(--brand-soft-2)}
.dropzone__ico{font-size:42px;color:var(--brand);margin-bottom:12px}
.dropzone p{color:var(--text-2);font-size:15px}
.dropzone b{color:var(--brand-strong)}
.progress{height:10px;background:var(--bg-soft);border-radius:6px;overflow:hidden;margin-top:16px;display:none}
.progress.show{display:block}
.progress .fill{height:100%;width:0;background:var(--brand);transition:width .2s}

.uc{display:grid;grid-template-columns:288px 1fr;gap:28px;align-items:start}
.uc__side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.uc__profile{padding:28px;text-align:center;border-bottom:1px solid var(--line)}
.uc__name{font-weight:800;font-size:18px;margin-top:12px}
.uc__role{color:var(--text-3);font-size:13.5px}
.uc__menu a{display:flex;align-items:center;gap:12px;padding:15px 22px;color:var(--text-2);border-left:3px solid transparent;font-size:15.5px}
.uc__menu a:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.uc__menu a.active{background:var(--brand-soft-2);color:var(--brand-strong);border-left-color:var(--brand);font-weight:700}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.stat-card .n{font-size:28px;font-weight:800;color:var(--brand-strong)}
.stat-card .l{color:var(--text-2);font-size:14.5px;margin-top:4px}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}
.tabs button{padding:13px 18px;font-weight:600;color:var(--text-2);border-bottom:2px solid transparent;font-size:15.5px}
.tabs button.active{color:var(--brand-strong);border-bottom-color:var(--brand)}

.modal{position:fixed;inset:0;background:rgba(20,40,35,.4);display:none;align-items:center;justify-content:center;z-index:100;padding:24px}
.modal.show{display:flex}
.modal__box{background:#fff;border-radius:18px;max-width:480px;width:100%;padding:30px;box-shadow:var(--shadow)}
.modal__box h3{font-size:21px;margin-bottom:10px}
.modal__box p{color:var(--text-2);font-size:15px;margin-bottom:20px;line-height:1.7}

.crumb{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:14.5px;margin-bottom:18px;flex-wrap:wrap}
.crumb a:hover{color:var(--brand-strong)}
.crumb .sep{color:var(--line-strong)}

.pagination{display:flex;justify-content:center;gap:8px;margin-top:28px}
.pagination a{padding:11px 17px;border:1px solid var(--line);border-radius:10px;color:var(--text-2);font-size:15px}
.pagination a.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.pagination a:hover:not(.active){border-color:var(--brand);color:var(--brand-strong)}

/* 页脚（旧结构，保留兼容） */
.footer{background:#fff;border-top:1px solid var(--line);margin-top:28px}
.footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding:52px 0}
.footer h5{font-size:16px;margin-bottom:16px}
.footer a{display:block;color:var(--text-2);font-size:15px;padding:6px 0}
.footer a:hover{color:var(--brand-strong)}
.footer__about p{color:var(--text-2);font-size:15px;margin-top:12px;line-height:1.7}
.footer__bottom{border-top:1px solid var(--line);padding:20px 0;color:var(--text-3);font-size:14px;text-align:center}

/* ---------- 响应式 ---------- */
@media(max-width:1200px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .quick{grid-template-columns:repeat(3,1fr)}
  .detail{grid-template-columns:1fr}
  .uc{grid-template-columns:1fr}
}
@media(max-width:980px){
  .topnav{display:none}
  .menu-toggle{display:grid;place-items:center}
  .aisearch{order:3;max-width:none;flex-basis:100%}
  .topbar__inner{flex-wrap:wrap;height:auto;padding:12px 0;gap:12px}
  .sidebar{position:fixed;left:0;top:var(--top-h);bottom:0;z-index:80;width:290px;border-radius:0;transform:translateX(-100%);transition:.25s;overflow-y:auto;height:auto}
  .sidebar.open{transform:translateX(0)}
  .layout{flex-direction:column;padding-top:14px}
  .mask{position:fixed;inset:0;background:rgba(20,40,35,.4);z-index:70;display:none}
  .mask.show{display:block}
  .footer__inner{grid-template-columns:1fr 1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .grid.is-list .src-card__cover{width:150px}
}
@media(max-width:600px){
  .grid{grid-template-columns:1fr}
  .quick{grid-template-columns:repeat(2,1fr)}
  .src-hero{flex-direction:column}
  .stat-row{grid-template-columns:1fr 1fr}
  .grid.is-list .src-card{flex-direction:column}
  .grid.is-list .src-card__cover{width:100%;height:172px}
}

/* =====================================================================
   v2 结构层：公告条 / 头部 / 分类页签 / 三栏 / 绿色横幅 / 编号列表 / 四格卡 / 右栏
   （按 CMS 源码网截图结构重做，配色保持白绿，整体按 1920 大屏舒展化）
   ===================================================================== */
:root{ --top-h:72px; --left-w:272px; --rail-w:348px; --gold:#e0912f; --red:#d94f4f; }

/* 公告条 */
.notice{background:#eef7f2;border-bottom:1px solid var(--line)}
.notice__inner{display:flex;align-items:center;gap:12px;height:46px;font-size:14.5px;color:var(--brand-strong);overflow:hidden}
.notice__inner b{background:var(--brand);color:#fff;font-size:13px;font-weight:700;padding:4px 10px;border-radius:6px;flex-shrink:0}
.notice__inner a{color:var(--brand-strong);font-weight:600}
.notice__inner .sep{color:var(--line-strong)}

/* 头部 */
.hdr{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.hdr__inner{display:flex;align-items:center;gap:18px;height:var(--top-h)}
.hdr__logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.hdr__logo .mk{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#16b887);color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px;box-shadow:0 4px 12px rgba(10,157,111,.28)}
.hdr__logo .nm{font-size:19px;font-weight:800;line-height:1.15}
.hdr__logo .nm small{display:block;font-size:12px;color:var(--text-3);font-weight:500;letter-spacing:.5px}
.hdr__nav{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto}
.hdr__nav a{padding:10px 14px;border-radius:10px;color:var(--text-2);font-weight:500;font-size:15.5px;white-space:nowrap}
.hdr__nav a:hover{color:var(--brand-strong);background:var(--brand-soft-2)}
.hdr__nav a.active{color:var(--brand-strong);font-weight:700}
.hdr__search{display:flex;align-items:center;gap:10px;height:46px;padding:0 8px 0 18px;background:var(--bg-soft);border:1px solid var(--line-strong);border-radius:24px;width:270px;flex-shrink:0}
.hdr__search input{flex:1;border:none;background:none;font-size:15px}
.hdr__search button{width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:14px}
.hdr__links{display:flex;align-items:center;gap:16px;color:var(--text-2);font-size:15.5px;flex-shrink:0}
.hdr__links a:hover{color:var(--brand-strong)}

/* 分类页签 */
.cattabs{background:#fff;border-bottom:1px solid var(--line)}
.cattabs__inner{display:flex;gap:8px;padding:11px 0;overflow-x:auto}
.cattabs__inner::-webkit-scrollbar{height:0}
.cattabs a{padding:9px 18px;border-radius:22px;font-size:15px;color:var(--text-2);white-space:nowrap;font-weight:500}
.cattabs a:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.cattabs a.active{background:var(--brand);color:#fff;font-weight:700}

/* 三栏布局 */
.cols{display:grid;grid-template-columns:var(--left-w) minmax(0,1fr) var(--rail-w);gap:28px;align-items:start;padding:28px 0 56px}
/* ★ 两栏页专用：正文自适应 + 右栏定宽。
   .cols 是**三轨**网格 [左栏|正文|右栏]，子元素按书写顺序入轨。
   若模板里只有 main + rail（没有 <aside class="sidebar">），main 会掉进 --left-w
   那条 272px 窄轨、rail 反而拿到 1fr 撑满，还多空出一条 348px 空轨 ——
   表现为「正文挤成一条、右栏奇宽」。
   ⇒ 凡 cols 容器内**没有** .sidebar 的模板，必须写成 class="cols cols--2"。
   （受影响的是详情页/投稿页：news/show、ai/show、coll/show、promo/{index,my,submit}） */
.cols--2{grid-template-columns:minmax(0,1fr) var(--rail-w)}
.cols .sidebar{position:sticky;top:calc(var(--top-h) + 12px);height:calc(100vh - var(--top-h) - 24px)}
.rail{display:flex;flex-direction:column;gap:20px;position:sticky;top:calc(var(--top-h) + 12px)}

/* 绿色横幅 */
.hero-ban{display:flex;gap:28px;align-items:center;background:linear-gradient(120deg,#0b7a4f,#12b47d);border-radius:20px;padding:38px 40px;color:#fff;margin-bottom:24px;position:relative;overflow:hidden}
.hero-ban::after{content:"";position:absolute;right:-70px;top:-70px;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.2),transparent 70%)}
.hero-ban__main{flex:1;min-width:0;position:relative;z-index:1}
.hero-ban__badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);padding:5px 13px;border-radius:20px;font-size:13.5px;font-weight:600;margin-bottom:16px}
.hero-ban h1{font-size:32px;font-weight:800;margin-bottom:14px;line-height:1.35}
.hero-ban p{color:rgba(255,255,255,.86);font-size:15px;line-height:1.85;max-width:680px;margin-bottom:20px}
.hero-ban__stats{display:flex;gap:42px;flex-wrap:wrap}
.hero-ban__stats b{font-size:26px;font-weight:800;display:block;line-height:1.2}
.hero-ban__stats span{font-size:13.5px;color:rgba(255,255,255,.8)}
.hero-ban__card{width:244px;flex-shrink:0;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);border-radius:18px;padding:26px 22px;text-align:center;position:relative;z-index:1}
.hero-ban__card .ic{width:62px;height:62px;margin:0 auto 14px;border-radius:16px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:30px}
.hero-ban__card h4{font-size:17px;font-weight:800;margin-bottom:5px}
.hero-ban__card span{font-size:13.5px;color:rgba(255,255,255,.82)}

/* 标签筛选行 */
.tagrow{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:24px;flex-wrap:wrap}
.tagrow .lb{font-size:15px;color:var(--text-3);font-weight:600}
.tagrow .spacer{margin-left:auto}
.mini-search{display:flex;align-items:center;gap:8px;height:42px;padding:0 6px 0 14px;background:var(--bg-soft);border:1px solid var(--line-strong);border-radius:22px;width:260px}
.mini-search input{flex:1;border:none;background:none;font-size:14.5px}
.mini-search button{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:14px}

/* 页标题 + 统计 pill */
.pagehead{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin-bottom:20px}
.pagehead__title{font-size:26px;font-weight:800;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pagehead__desc{color:var(--text-2);font-size:14.5px;line-height:1.75;margin-bottom:16px}
.statpills{display:flex;gap:14px;flex-wrap:wrap}
.statpill{display:flex;align-items:center;gap:12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;padding:14px 20px;min-width:132px}
.statpill .n{font-size:24px;font-weight:800;color:var(--brand-strong);line-height:1}
.statpill .l{font-size:13.5px;color:var(--text-2)}
.statpill.o .n{color:var(--gold)} .statpill.r .n{color:var(--red)}

/* 筛选卡（语言/框架/数据库）*/
.filtercard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 20px;margin-bottom:16px}
.frow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.frow:last-child{border-bottom:none}
.frow .lb{font-size:14.5px;color:var(--text-3);font-weight:600;width:58px;flex-shrink:0}
.frow .chip{padding:6px 15px;font-size:14.5px}

/* 多维筛选条（软件工具等栏目，华军/天极式多行条件） */
.fbar .frow{gap:8px;padding:11px 0}
.fbar .lb{width:64px;font-size:14px;letter-spacing:2px}
.fbar .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:13.5px}
.fbar .chip i{font-style:normal;font-size:11.5px;font-weight:700;line-height:1;color:var(--text-3);background:var(--bg-soft);border-radius:9px;padding:3px 7px}
.fbar .chip.on i{color:#fff;background:rgba(255,255,255,.25)}
.fbar .frow--sort .chip{padding:7px 18px;font-weight:600}
.fbar .frow--sort .chip.on{box-shadow:0 2px 8px var(--brand-soft-2)}
.fbar .mini-search{height:34px;width:210px;font-size:13px}

/* 排序 + 视图 */
.sortbar{display:flex;align-items:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.sortbar .lb{font-size:14.5px;color:var(--text-3);margin-right:2px}
.sortbar button{padding:9px 16px;border-radius:9px;font-size:14.5px;color:var(--text-2)}
.sortbar button.active{color:#fff;background:var(--brand);font-weight:600}
.sortbar button:hover:not(.active){color:var(--brand-strong);background:var(--brand-soft-2)}
.sortbar .spacer{margin-left:auto}

/* 四格源码卡 */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.grid4.g3{grid-template-columns:repeat(3,1fr)}
.grid4.glist{grid-template-columns:1fr;gap:16px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.18s;display:flex;flex-direction:column}
.fcard:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.fcard__banner{height:150px;position:relative;display:grid;place-items:center}
.fcard__badge{position:absolute;left:11px;top:11px;font-size:12.5px;font-weight:800;padding:4px 10px;border-radius:7px;color:#fff}
.bd-free{background:var(--brand)} .bd-paid{background:var(--gold)} .bd-new{background:#2f9de0} .bd-hot{background:var(--red)}
.fcard__banner .ic{font-size:50px}
.fcard__body{padding:16px 18px;flex:1;display:flex;flex-direction:column;gap:7px}
.fcard__title{font-weight:700;font-size:16px;line-height:1.4}
.fcard__title:hover{color:var(--brand-strong)}
.fcard__desc{color:var(--text-3);font-size:13.5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fcard__meta{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:10px}
.fcard__price{font-weight:800;font-size:17px;color:var(--brand-strong)}
.fcard__price.paid{color:var(--gold)}
.fcard__dl{font-size:13.5px;color:var(--text-3);margin-left:auto}
.fcard__strip{display:flex;align-items:center;gap:7px;padding:9px 18px;font-size:13.5px;font-weight:600;color:#fff}
.grid4.glist .fcard{flex-direction:row;align-items:stretch}
.grid4.glist .fcard__banner{width:208px;height:auto}
.grid4.glist .fcard__body{justify-content:center}
.bn-1{background:linear-gradient(135deg,#e7f6ef,#cfeedf)}
.bn-2{background:linear-gradient(135deg,#fff3e3,#ffe4c4)}
.bn-3{background:linear-gradient(135deg,#e8f1fd,#d3e4fb)}
.bn-4{background:linear-gradient(135deg,#fdeaea,#fbd6d6)}
.bn-5{background:linear-gradient(135deg,#efeafd,#e0d7fb)}
.strip-1{background:#0a9d6f} .strip-2{background:#e0912f} .strip-3{background:#2f6fed} .strip-4{background:#d94f4f} .strip-5{background:#7c5cfc}

/* 软件编号列表 */
.softlist{display:flex;flex-direction:column;gap:14px}
.soft{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;transition:.18s}
.soft:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}
.soft__no{width:32px;height:32px;border-radius:9px;background:var(--bg-soft);color:var(--text-3);font-weight:800;font-size:15px;display:grid;place-items:center;flex-shrink:0}
.soft__no.top{background:var(--brand);color:#fff}
.soft__icon{width:60px;height:60px;border-radius:15px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:27px;flex-shrink:0}
.soft__main{flex:1;min-width:0}
.soft__title{font-weight:800;font-size:17px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.soft__title em{font-style:normal;font-size:12.5px;font-weight:600;color:var(--text-3);background:var(--bg-soft);padding:3px 9px;border-radius:6px}
.soft__desc{color:var(--text-2);font-size:14px;margin:6px 0 10px;line-height:1.65}
.soft__tags{display:flex;gap:7px;flex-wrap:wrap}
.soft__tags .tag{font-size:12.5px;padding:3px 9px}
.soft__dl{text-align:center;flex-shrink:0;width:120px}
.soft__dl b{font-size:22px;font-weight:800;color:var(--brand-strong);display:block}
.soft__dl span{font-size:12.5px;color:var(--text-3)}
.soft__rate{width:82px;flex-shrink:0;text-align:center}
.soft__rate .s{color:var(--warn);font-size:14px}
.soft__rate b{font-size:22px;font-weight:800;display:block;color:var(--text)}
.soft__rate span{font-size:12.5px;color:var(--text-3)}
.soft__btn{flex-shrink:0}

/* 右栏模块 */
.railmod{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.railmod__head{display:flex;align-items:center;gap:9px;padding:15px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:16px}
.railmod__head .ic{width:24px;height:24px;border-radius:7px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:13px}
.railmod__head .more{margin-left:auto;font-size:13.5px;color:var(--text-3);font-weight:500}
.railmod__body{padding:14px 18px}
.rk{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px dashed var(--line)}
.rk:last-child{border-bottom:none}
.rk__no{width:22px;height:22px;border-radius:7px;background:var(--bg-soft);color:var(--text-3);font-size:13px;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.rk__no.t1{background:var(--brand);color:#fff} .rk__no.t2{background:#3fb98a;color:#fff} .rk__no.t3{background:#7ecfae;color:#fff}
.rk__info{flex:1;min-width:0}
.rk__name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk__name:hover{color:var(--brand-strong)}
.rk__sub{font-size:12.5px;color:var(--text-3)}
.rk__val{font-size:13px;color:var(--brand-strong);font-weight:700;flex-shrink:0}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags a{padding:6px 12px;border-radius:8px;background:var(--bg-soft);font-size:13.5px;color:var(--text-2)}
.tags a:hover{background:var(--brand-soft);color:var(--brand-strong)}
.promo{background:linear-gradient(135deg,#0b7a4f,#12b47d);border-radius:14px;padding:20px;color:#fff;text-align:center}
.promo h4{font-size:17px;font-weight:800;margin-bottom:7px}
.promo p{font-size:13.5px;color:rgba(255,255,255,.86);margin-bottom:14px;line-height:1.65}
.promo .btn{background:#fff;color:var(--brand-strong);width:100%}
.newitem{display:flex;gap:11px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.newitem:last-child{border-bottom:none}
.newitem .ic{width:42px;height:42px;border-radius:10px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:17px;flex-shrink:0}
.newitem__info{flex:1;min-width:0}
.newitem__name{font-size:14px;font-weight:600}
.newitem__sub{font-size:12.5px;color:var(--text-3)}

/* 面包屑 v2 */
.crumb2{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:14.5px;margin-bottom:16px;flex-wrap:wrap}
.crumb2 a:hover{color:var(--brand-strong)}

/* 深绿页脚 */
.foot-dark{background:#0f2b22;color:rgba(255,255,255,.72);margin-top:28px}
.foot-dark__inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:32px;padding:52px 0}
.foot-dark__brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.foot-dark__brand .mk{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#12b47d,#16d196);color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px}
.foot-dark__brand .nm{color:#fff;font-size:18px;font-weight:800}
.foot-dark .about{color:rgba(255,255,255,.6);font-size:14px;line-height:1.85}
.foot-dark h5{color:#fff;font-size:15.5px;margin-bottom:16px}
.foot-dark a{display:block;color:rgba(255,255,255,.68);font-size:14px;padding:6px 0}
.foot-dark a:hover{color:#5ce0ad}
.foot-dark__bottom{max-width:none;border-top:1px solid rgba(255,255,255,.12);padding:18px 32px;text-align:center;font-size:13.5px;color:rgba(255,255,255,.5)}

@media(max-width:1280px){
  .cols{grid-template-columns:var(--left-w) minmax(0,1fr)}
  /* 两栏页在窄屏仍保留右栏（只有一条 1fr 轨时会被本行覆盖，故必须显式重申） */
  .cols--2{grid-template-columns:minmax(0,1fr) var(--rail-w)}
  .rail{position:static}
  .grid4{grid-template-columns:repeat(3,1fr)}
  .foot-dark__inner{grid-template-columns:1.4fr 1fr 1fr}
}
@media(max-width:980px){
  .cols{grid-template-columns:1fr}
  .cols .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:80;width:290px;height:auto;border-radius:0;transform:translateX(-100%);transition:.25s;overflow-y:auto}
  .cols .sidebar.open{transform:translateX(0)}
  .hdr__nav,.hdr__search{display:none}
  .hdr__inner .menu-toggle{display:grid;place-items:center}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .hero-ban{flex-direction:column;align-items:flex-start}
  .hero-ban__card{width:100%}
  .soft{flex-wrap:wrap}
  .soft__dl,.soft__rate{width:auto}
  .foot-dark__inner{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .grid4{grid-template-columns:1fr}
  .soft__btn{width:100%}
  .foot-dark__inner{grid-template-columns:1fr}
}

/* =====================================================================
   首页门户壳（仿百度文库新版）：左侧固定图标导航 + 右侧 AI 搜索 / 二级分类 / 楼层 / 底部
   ===================================================================== */
.home{background:var(--bg-soft)}

/* 左侧固定导航 */
.gnav{position:fixed;left:0;top:0;bottom:0;width:104px;background:#fff;border-right:1px solid var(--line);z-index:70;display:flex;flex-direction:column;align-items:center;padding:18px 0 16px;overflow-y:auto}
.gnav::-webkit-scrollbar{width:0}
.gnav__logo{display:flex;flex-direction:column;align-items:center;gap:7px;margin-bottom:22px;flex-shrink:0}
.gnav__logo .mk{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#16b887);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;box-shadow:0 4px 12px rgba(10,157,111,.28)}
.gnav__logo .nm{font-size:12.5px;font-weight:800;color:var(--text)}
.gnav__menu{display:flex;flex-direction:column;gap:4px;width:100%;padding:0 10px}
.gnav__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 4px;border-radius:12px;color:var(--text-2);font-size:12.5px;font-weight:600;text-align:center;transition:.15s}
.gnav__item .ic{font-size:20px;line-height:1}
.gnav__item:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.gnav__item.active{background:var(--brand-soft);color:var(--brand-strong)}
.gnav__foot{margin-top:auto;width:100%;padding:12px 12px 0;border-top:1px solid var(--line);flex-shrink:0}

/* 右侧主区 */
.gmain{margin-left:104px;min-height:100vh;display:flex;flex-direction:column}
.gtop{position:sticky;top:0;z-index:50;background:rgba(246,248,247,.92);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--line)}
.gtop__inner{padding:0 32px;height:62px;display:flex;align-items:center;gap:18px}
.gtop__logo{display:none;align-items:center;gap:9px;font-weight:800;font-size:16px}
.gtop__logo .mk{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--brand),#16b887);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px}
.gtop__right{margin-left:auto;display:flex;align-items:center;gap:20px;color:var(--text-2);font-size:14.5px}
.gtop__right a:hover{color:var(--brand-strong)}
.gtop__vip{color:#c98a1f;font-weight:700}
.gtop__ico{font-size:17px}
.gwrap{padding:26px 32px 0;width:100%}

/* 大搜索（AI 搜索） */
.aihero{padding:24px 0 30px;text-align:center}
.aihero__brand{font-size:15px;font-weight:800;color:var(--brand-strong);margin-bottom:18px;letter-spacing:1px}
.aihero h1{font-size:46px;font-weight:800;letter-spacing:1px;margin-bottom:12px;line-height:1.25}
.aihero h1 em{color:var(--brand-strong);font-style:normal}
.aihero__sub{color:var(--text-2);font-size:15.5px;margin-bottom:26px}
.aibox{max-width:880px;margin:0 auto;background:#fff;border:1px solid var(--line-strong);border-radius:20px;box-shadow:var(--shadow);padding:20px 22px 14px;text-align:left}
.aibox textarea{width:100%;border:none;resize:none;height:64px;font-size:16.5px;color:var(--text);background:none;line-height:1.6}
.aibox textarea::placeholder{color:var(--text-3)}
.aibox__foot{display:flex;align-items:center;gap:12px;margin-top:12px;border-top:1px solid var(--line);padding-top:14px}
.aibox__opt{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;background:var(--bg-soft);color:var(--text-2);font-size:14px;font-weight:600}
.aibox__opt.on{background:var(--brand-soft);color:var(--brand-strong)}
.aibox__send{margin-left:auto;height:44px;padding:0 28px;border-radius:12px;background:var(--brand);color:#fff;font-weight:700;font-size:15.5px}
.aibox__send:hover{background:var(--brand-strong)}
.aihero__sug{margin-top:16px;color:var(--text-3);font-size:13.5px}
.aihero__sug a{color:var(--brand-strong);font-weight:600}

/* 二级分类图标 */
.caticons{display:grid;grid-template-columns:repeat(8,1fr);gap:16px;margin:8px 0 36px}
.caticon{display:flex;flex-direction:column;align-items:center;gap:11px;padding:20px 8px;background:#fff;border:1px solid var(--line);border-radius:16px;font-size:14px;font-weight:600;color:var(--text-2);transition:.18s;text-align:center}
.caticon:hover{box-shadow:var(--shadow);transform:translateY(-2px);color:var(--brand-strong);border-color:var(--brand-soft)}
.caticon .ic{width:50px;height:50px;border-radius:14px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:24px}
.caticon--more .ic{background:var(--bg-soft);color:var(--text-3);border:1px dashed var(--line-strong)}

/* 楼层 */
.floor{margin-bottom:40px}
.floor__head{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.floor__head h2{font-size:23px;font-weight:800;display:flex;align-items:center;gap:12px}
.floor__head h2 .bar{width:6px;height:22px;background:var(--brand);border-radius:3px;display:inline-block}
.floor__tabs{display:flex;gap:6px}
.floor__tabs a{padding:7px 16px;border-radius:20px;font-size:14.5px;color:var(--text-2);font-weight:600}
.floor__tabs a.on{background:var(--brand);color:#fff}
.floor__tabs a:hover:not(.on){background:var(--brand-soft-2);color:var(--brand-strong)}
.floor__more{margin-left:auto;color:var(--text-3);font-size:14.5px}
.floor__more:hover{color:var(--brand-strong)}
.floor__body{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:26px;align-items:start}
.resgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

/* 底部区块 */
.bblocks{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:8px 0 42px}
.bblock{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.bblock h4{font-size:16.5px;font-weight:800;margin-bottom:16px;display:flex;align-items:center;gap:9px}
.bblock h4 .bar{width:5px;height:18px;background:var(--brand);border-radius:3px;display:inline-block}
.links{display:flex;flex-wrap:wrap;gap:12px 20px}
.links a{color:var(--text-2);font-size:14.5px}
.links a:hover{color:var(--brand-strong)}
.coll-list{display:flex;flex-direction:column;gap:14px}
.coll{display:flex;align-items:center;gap:12px}
.coll .ic{width:40px;height:40px;border-radius:11px;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-size:18px;flex-shrink:0}
.coll__name{font-size:15px;font-weight:600}
.coll__sub{font-size:13px;color:var(--text-3)}

@media(max-width:1180px){
  .caticons{grid-template-columns:repeat(4,1fr)}
  .floor__body{grid-template-columns:1fr}
  .resgrid{grid-template-columns:repeat(3,1fr)}
  .bblocks{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .gnav{width:76px}
  .gmain{margin-left:76px}
  .gnav__item{font-size:11.5px}
  .gnav__logo .nm{display:none}
  .gtop__logo{display:flex}
  .aihero h1{font-size:34px}
  .resgrid{grid-template-columns:repeat(2,1fr)}
  .bblocks{grid-template-columns:1fr}
}
@media(max-width:640px){
  .gnav{display:none}
  .gmain{margin-left:0}
  .gwrap{padding:18px 18px 0}
  .gtop__inner{padding:0 18px}
  .foot-dark__inner,.foot-dark__bottom{padding-left:18px;padding-right:18px}
  .caticons{grid-template-columns:repeat(3,1fr);gap:12px}
  .resgrid{grid-template-columns:1fr}
  .aihero h1{font-size:28px}
  .aibox{padding:16px}
}

/* =====================================================================
   第 12 轮：列表页增强
   ① 侧栏价格筛选标签 ② 卡片技术栈行 ③ 热榜金银铜 ④ 软件合集 ⑤ 分页跳转
   ===================================================================== */

/* ① 侧栏筛选标签（价格区间等）：可点击、点击高亮 */
.sidefilter{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px 16px}
.schip{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:20px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-2);font-size:13.5px;font-weight:600;transition:.15s;line-height:1}
.schip:hover{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-soft-2)}
.schip.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 10px rgba(10,157,111,.22)}
.schip .c{font-size:12px;font-weight:700;opacity:.72}
.schip.on .c{opacity:.9}

/* ② 卡片技术栈行：关键词加粗 + 标签行，提升移动端可读性 */
.fcard__desc b{color:var(--text);font-weight:700}
.fcard__tech{display:flex;flex-wrap:wrap;gap:6px}
.fcard__tech span{padding:4px 10px;border-radius:8px;background:var(--brand-soft);color:var(--brand-strong);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;letter-spacing:.2px}

/* ③ 本周热榜：前三名金/银/铜微背景 + 整行可点 */
.rk{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;border-bottom:none;transition:.15s}
.rk+.rk{margin-top:3px}
.rk:hover{background:var(--bg-soft)}
.rk--t1{background:linear-gradient(90deg,#fff5d9,#fffdf7);box-shadow:inset 0 0 0 1px #f2e0ad}
.rk--t2{background:linear-gradient(90deg,#f1f4f6,#fafcfd);box-shadow:inset 0 0 0 1px #e0e6ea}
.rk--t3{background:linear-gradient(90deg,#fbeee0,#fefaf4);box-shadow:inset 0 0 0 1px #eedbc1}
.rk--t1:hover{background:linear-gradient(90deg,#ffefc4,#fffcee)}
.rk--t2:hover{background:linear-gradient(90deg,#e9eef1,#f6fafb)}
.rk--t3:hover{background:linear-gradient(90deg,#f8e7d4,#fdf6ec)}
.rk--t1 .rk__name,.rk--t2 .rk__name,.rk--t3 .rk__name{font-weight:700}
.rk--t1 .rk__sub{color:#b5871c} .rk--t2 .rk__sub{color:#7b858c} .rk--t3 .rk__sub{color:#ac7a44}
.rk__no{width:24px;height:24px;border-radius:8px}
.rk__no.t1{background:linear-gradient(135deg,#f7c948,#dfa11c);color:#5a3c04;box-shadow:0 2px 6px rgba(223,161,28,.38)}
.rk__no.t2{background:linear-gradient(135deg,#e0e5e9,#b3bcc3);color:#3b444a;box-shadow:0 2px 6px rgba(150,160,168,.32)}
.rk__no.t3{background:linear-gradient(135deg,#e0a877,#bd7b40);color:#482c10;box-shadow:0 2px 6px rgba(189,123,64,.32)}
.rk__crown{font-size:15px;line-height:1;flex-shrink:0}

/* ④ 软件合集 */
.collsec{margin:36px 0 6px}
.collsec__tabs{display:flex;gap:6px;flex-wrap:wrap}
.collsec__tabs button{padding:7px 15px;border-radius:20px;font-size:14px;color:var(--text-2);font-weight:600;transition:.15s}
.collsec__tabs button.on{background:var(--brand);color:#fff}
.collsec__tabs button:hover:not(.on){background:var(--brand-soft-2);color:var(--brand-strong)}
.collgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.collcard{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.18s;display:flex;flex-direction:column}
.collcard:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--brand-soft)}
.collcard__cover{height:104px;position:relative;display:grid;place-items:center}
.collcard__cover .ic{font-size:38px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.12))}
.collcard__cover .cnt{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--brand-strong);font-size:12px;font-weight:800;padding:3px 9px;border-radius:20px}
.collcard__body{padding:14px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.collcard__title{font-weight:800;font-size:15.5px}
.collcard__title:hover{color:var(--brand-strong)}
.collcard__body p{font-size:13.5px;color:var(--text-3);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.collcard__foot{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:9px;font-size:12.5px;color:var(--text-3)}
.collcard__foot .u{font-weight:700;color:var(--brand-strong)}

/* ⑤ 分页 + 跳转 */
.pagebar{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:28px}
.pagebar .pagination{margin-top:0}
.pagejump{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2)}
.pagejump input{width:60px;height:40px;text-align:center;border:1px solid var(--line-strong);border-radius:9px;background:#fff;font-size:14.5px;color:var(--text)}
.pagejump input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.pagejump button{height:40px;padding:0 16px;border-radius:9px;background:var(--brand);color:#fff;font-weight:700;font-size:14px}
.pagejump button:hover{background:var(--brand-strong)}

/* 轻提示（分页跳转演示用） */
.toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%,14px);background:rgba(18,38,33,.93);color:#fff;font-size:14.5px;padding:12px 24px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:1180px){ .collgrid{grid-template-columns:repeat(3,1fr)} }
@media(max-width:860px){ .collgrid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:640px){
  .collgrid{grid-template-columns:1fr}
  .pagebar{gap:12px}
  .pagejump{width:100%;justify-content:center}
  .fcard__tech span{font-size:13px}
}
/* ===== 第 14 轮 全站 20+ 颗粒化页面 ===== */
.filterbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
.page-hero{padding:34px 32px;background:linear-gradient(120deg,var(--brand-soft),#fff);border-radius:16px;margin-bottom:22px;border:1px solid var(--line)}
.page-hero h1{font-size:26px;margin:0 0 8px}
.page-hero p{color:var(--text-2);max-width:720px}
/* 认证 */
.auth{display:flex;justify-content:center;padding:54px 18px 60px}
.auth__card{width:100%;max-width:430px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 30px 26px;box-shadow:0 18px 50px rgba(10,40,30,.07)}
.auth__brand{text-align:center;margin-bottom:16px}
.auth__brand .mk{display:inline-flex;width:48px;height:48px;border-radius:13px;background:var(--brand);color:#fff;align-items:center;justify-content:center;font-size:23px;font-weight:700;margin-bottom:10px}
.auth__brand h2{font-size:21px;margin:0}
.auth__brand p{color:var(--text-3);font-size:13.5px;margin:6px 0 0}
.auth__tabs{display:flex;gap:6px;background:var(--brand-soft);border-radius:10px;padding:4px;margin-bottom:18px}
.auth__tab{flex:1;text-align:center;padding:9px 0;border-radius:8px;font-size:14.5px;color:var(--text-2);cursor:pointer}
.auth__tab.active{background:#fff;color:var(--brand-strong);font-weight:700;box-shadow:0 2px 8px rgba(10,40,30,.07)}
.auth__panel{display:none}
.auth__panel.active{display:block}
.auth__row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:13.5px;color:var(--text-3)}
.auth__row a{color:var(--brand-strong)}
.auth__social{display:flex;gap:10px;margin-top:20px}
.auth__social a{flex:1;text-align:center;padding:11px 0;border:1px solid var(--line);border-radius:10px;font-size:14px;color:var(--text-2)}
.auth__or{text-align:center;color:var(--text-3);font-size:13px;margin:18px 0 4px}
.auth__hint{font-size:12.5px;color:var(--text-3);margin-top:14px;line-height:1.7}
.auth__hint a{color:var(--brand-strong)}
/* 会员 */
.viphero{padding:32px;background:linear-gradient(120deg,#0a9d6f,#078256);color:#fff;border-radius:18px;margin-bottom:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px}
.viphero h1{font-size:24px;margin:0 0 6px}
.viphero p{opacity:.9}
.viphero .btn{background:#fff;color:var(--brand-strong)}
.vipgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px}
.vipcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column}
.vipcard--hot{border-color:var(--brand);box-shadow:0 14px 40px rgba(10,40,30,.10);position:relative}
.vipcard--hot::before{content:"推荐";position:absolute;top:-11px;left:24px;background:var(--brand);color:#fff;font-size:12px;padding:3px 12px;border-radius:20px}
.vipcard h3{margin:0 0 4px;font-size:19px}
.vipcard__price{font-size:30px;font-weight:800;color:var(--brand-strong);margin:10px 0}
.vipcard__price small{font-size:14px;color:var(--text-3);font-weight:500}
.vipcard__benefits{list-style:none;padding:0;margin:8px 0 18px;flex:1}
.vipcard__benefits li{padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--text-1)}
.vipcard__benefits li::before{content:"✓";color:var(--brand);font-weight:700;margin-right:8px}
/* 文章/帮助 */
.article{max-width:900px;margin:0 auto;line-height:1.85;font-size:16px}
.article h3{font-size:20px;margin:26px 0 10px;padding-left:12px;border-left:4px solid var(--brand)}
.article p{margin:12px 0;color:var(--text-2)}
.article ul{margin:12px 0 12px 22px}
.article ul li{margin:6px 0;color:var(--text-2)}
.article .lead{font-size:17px;color:var(--text-3);background:var(--brand-soft);padding:14px 18px;border-radius:12px}
.faq{margin-top:10px}
.faq__item{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}
.faq__q{padding:14px 18px;font-weight:600;cursor:pointer;background:var(--bg-soft)}
.faq__a{padding:0 18px;max-height:0;overflow:hidden;transition:.25s;color:var(--text-2);font-size:14.5px}
.faq__item.open .faq__a{padding:14px 18px;max-height:300px}
/* AI 对话 */
.aichat{display:grid;grid-template-columns:230px 1fr;gap:20px}
.aichat__side{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;align-self:start}
.aichat__side h4{margin:4px 0 10px;font-size:14px;color:var(--text-3)}
.aichat__new{display:block;width:100%;margin-bottom:12px}
.aichat__hist a{display:block;padding:9px 12px;border-radius:9px;color:var(--text-2);font-size:14px;margin-bottom:4px}
.aichat__hist a:hover{background:var(--brand-soft);color:var(--brand-strong)}
.aichat__main{background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:560px}
.aichat__head{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:700}
.aichat__msgs{flex:1;padding:20px;overflow:auto;display:flex;flex-direction:column;gap:14px}
.bubble{max-width:78%;padding:12px 15px;border-radius:14px;font-size:14.5px;line-height:1.6}
.bubble--bot{background:var(--brand-soft);border-top-left-radius:4px;align-self:flex-start}
.bubble--user{background:var(--brand);color:#fff;border-top-right-radius:4px;align-self:flex-end}
.aichat__input{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:10px}
.aichat__input textarea{flex:1;height:46px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;resize:none;font:inherit}
.aichat__suggest{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px}
.aichat__suggest button{border:1px solid var(--line);background:var(--bg-soft);border-radius:20px;padding:6px 14px;font-size:13px;color:var(--text-2);cursor:pointer}
/* 消息 */
.msgtabs{display:flex;gap:8px;margin-bottom:16px}
.msgtabs .tabbtn{flex:0 0 auto}
.msg{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fff;align-items:flex-start}
.msg--unread{background:var(--brand-soft)}
.msg__ava{width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto}
.msg__body{flex:1}
.msg__top{display:flex;justify-content:space-between;align-items:center}
.msg__title{font-weight:700;font-size:15px}
.msg__time{font-size:12.5px;color:var(--text-3)}
.msg__text{color:var(--text-2);font-size:14px;margin:6px 0 0}
.msg__dot{width:8px;height:8px;border-radius:50%;background:#d94f4f;display:inline-block;margin-left:6px;vertical-align:middle}
/* 通用 tab */
.tabnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tabbtn{padding:8px 16px;border-radius:9px;background:var(--bg-soft);color:var(--text-2);cursor:pointer;font-size:14px;border:1px solid transparent}
.tabbtn.active{background:var(--brand);color:#fff;font-weight:600}
.tabpane{display:none}
.tabpane.active{display:block}
/* 空状态 */
.empty{text-align:center;padding:60px 20px;color:var(--text-3)}
.empty__ic{font-size:54px;margin-bottom:12px}
.empty p{font-size:15px}
/* 历史/云盘行 */
.hist{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.hist__type{font-size:12px;padding:3px 10px;border-radius:20px;background:var(--brand-soft);color:var(--brand-strong);font-weight:600;flex:0 0 auto}
.hist__main{flex:1;min-width:0}
.hist__title{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist__sub{font-size:13px;color:var(--text-3);margin-top:3px}
.hist__time{font-size:12.5px;color:var(--text-3);flex:0 0 auto}
.hist__del{color:var(--text-3);cursor:pointer;flex:0 0 auto;font-size:13px}
.cloudbar{height:12px;background:var(--bg-soft);border-radius:8px;overflow:hidden;margin:6px 0 4px}
.cloudbar .fill{height:100%;background:var(--brand);width:42%}
.fs{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.fs__ic{width:42px;height:42px;border-radius:10px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto}
.fs__main{flex:1;min-width:0}
.fs__name{font-weight:600;font-size:15px}
.fs__sub{font-size:13px;color:var(--text-3);margin-top:3px}
.fs__act{color:var(--brand-strong);font-size:13.5px;cursor:pointer;flex:0 0 auto}
/* 标签云 */
.tagcloud{display:flex;flex-wrap:wrap;gap:10px}
.tagcloud a{padding:7px 15px;border:1px solid var(--line);border-radius:20px;color:var(--text-2);font-size:14px;cursor:pointer}
.tagcloud a:hover{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-soft)}
.rankpills{display:flex;gap:8px;margin-bottom:18px}
/* 创作中心 */
.dash{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.dash__card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.dash__n{font-size:26px;font-weight:800;color:var(--brand-strong)}
.dash__l{color:var(--text-3);font-size:13.5px;margin-top:4px}
.todo{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;margin-bottom:10px;background:#fff}
.todo__dot{width:9px;height:9px;border-radius:50%;background:#e0912f;flex:0 0 auto}
/* 信息区 */
.infobox{background:var(--brand-soft);border-radius:14px;padding:20px 22px;margin-bottom:20px}
.infobox h3{margin:0 0 10px}
.infobox p{margin:6px 0;color:var(--text-2);font-size:14.5px}
.cat-link{display:flex;align-items:center;gap:6px;color:var(--text-1);padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:14.5px}
.cat-link:hover{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-soft)}
.cat-link .dot{width:6px;height:6px;border-radius:50%;background:var(--brand);flex:0 0 auto}
/* 响应式 */
@media (max-width:980px){.vipgrid{grid-template-columns:1fr}.aichat{grid-template-columns:1fr}.aichat__side{order:2}.dash{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.dash{grid-template-columns:1fr 1fr}.page-hero,.viphero{padding:22px}.viphero{flex-direction:column;align-items:flex-start}.auth{padding:24px 14px}}

/* ===== 第 16 轮 分类专属页（技术百科/插件模版/厂商库/项目报告）===== */
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.vcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;transition:.15s}
.vcard:hover{border-color:var(--brand);box-shadow:0 12px 32px rgba(10,40,30,.08)}
.vcard__top{display:flex;align-items:center;gap:12px}
.vcard__logo{width:48px;height:48px;border-radius:12px;background:var(--brand-soft);color:var(--brand-strong);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;flex:0 0 auto}
.vcard__name{font-weight:700;font-size:16px}
.vcard__meta{font-size:13px;color:var(--text-3)}
.vcard__desc{color:var(--text-2);font-size:14px;line-height:1.65;flex:1}
.vcard__tags{display:flex;gap:6px;flex-wrap:wrap}
.vcard__tags span{font-size:12px;background:var(--bg-soft);color:var(--text-2);padding:3px 10px;border-radius:20px}
.vcard__foot{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);padding-top:10px}
@media (max-width:980px){.vgrid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.vgrid{grid-template-columns:1fr}}

/* ===== 第 17 轮 栏目体系改造（catnav / 分类网格 / 热榜） ===== */
.catnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:62px;z-index:49}
.catnav__inner{display:flex;gap:6px;padding:10px 32px;overflow-x:auto;scrollbar-width:none}
.catnav__inner::-webkit-scrollbar{display:none}
.catnav__item{white-space:nowrap;padding:8px 14px;border-radius:9px;font-size:14.5px;color:var(--text-2);font-weight:500;transition:.15s}
.catnav__item:hover{background:var(--brand-soft);color:var(--brand-strong)}
.catnav__item.active{background:var(--brand);color:#fff;font-weight:600}
.catgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.catcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:5px;transition:.15s}
.catcard:hover{border-color:var(--brand);box-shadow:0 12px 30px rgba(10,40,30,.08);transform:translateY(-2px)}
.catcard .ic{font-size:24px;line-height:1}
.catcard__t{font-weight:700;font-size:15.5px;color:var(--text-1)}
.catcard__s{font-size:13px;color:var(--text-3)}
.catcard .pill{position:absolute;right:14px;top:18px;font-size:12px;background:var(--brand-soft);color:var(--brand-strong);padding:2px 9px;border-radius:20px;font-weight:600}
.hot10{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.hot10::-webkit-scrollbar{display:none}
.hot10__i{flex:0 0 auto;width:170px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;position:relative}
.hot10__i:hover{border-color:var(--brand);box-shadow:0 10px 26px rgba(10,40,30,.07)}
.hot10__no{position:absolute;right:12px;top:12px;font-size:13px;font-weight:800;color:var(--text-3)}
.hot10__i:nth-child(1) .hot10__no,.hot10__i:nth-child(2) .hot10__no,.hot10__i:nth-child(3) .hot10__no{color:#e0912f}
.hot10__ic{font-size:22px}
.hot10__t{font-size:14px;font-weight:600;color:var(--text-1);line-height:1.45}
.hot10__s{font-size:12.5px;color:var(--text-3)}
@media (min-width:981px){.foot-dark__inner{grid-template-columns:1.6fr repeat(6,1fr);gap:26px}}
@media (max-width:1180px){.catgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:980px){.catgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.catgrid{grid-template-columns:repeat(2,1fr)}.catnav__inner{padding:8px 18px}}

/* ===== 第 19 轮 广场 SNS 信息流（home.html） ===== */
.rail--sns{width:330px;flex:0 0 330px}
.sns-hero{display:flex;gap:24px;justify-content:space-between;align-items:center;background:linear-gradient(120deg,#e8f6f0,#f6fbf8 55%,#fff);border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin-bottom:18px;flex-wrap:wrap}
.sns-hero__l{flex:1;min-width:280px}
.sns-hero h1{font-size:24px;margin:0 0 8px}
.sns-hero p{color:var(--text-2);font-size:14.5px;max-width:640px}
.sns-hero__stats{display:flex;gap:20px;margin-top:14px;color:var(--text-3);font-size:13.5px;flex-wrap:wrap}
.sns-hero__stats b{color:var(--brand-strong);font-size:16px;margin-right:4px}
.sns-hero__r{display:flex;gap:14px}
.sns-entry{width:122px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 12px;text-align:center}
.sns-entry__qr{width:62px;height:62px;margin:0 auto 8px;border-radius:10px;background:var(--bg-soft);display:grid;place-items:center;font-size:26px;color:var(--text-3)}
.sns-entry__t{font-weight:700;font-size:13.5px}
.sns-entry__s{font-size:12px;color:var(--text-3)}
.sns-compose{padding:16px 18px;margin-bottom:16px}
.sns-compose__in{display:flex;gap:12px}
.sns-compose__ta{flex:1;min-height:78px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;font-size:14.5px;resize:vertical;background:var(--bg-soft)}
.sns-compose__ta:focus{outline:none;border-color:var(--brand);background:#fff}
.sns-compose__bar{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);flex-wrap:wrap}
.sns-compose__tools{display:flex;gap:10px;flex-wrap:wrap}
.sns-compose__tools a{font-size:13.5px;color:var(--text-2);padding:6px 10px;border-radius:8px;background:var(--bg-soft)}
.sns-compose__tools a:hover{background:var(--brand-soft);color:var(--brand-strong)}
.sns-compose__count{margin-left:auto;font-size:12.5px;color:var(--text-3)}
.sns-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.sns-filter__sort{margin-left:auto;display:flex;gap:8px;font-size:14px}
.sns-filter__sort a{color:var(--text-2);padding:6px 12px;border-radius:8px}
.sns-filter__sort a.on{color:var(--brand-strong);font-weight:700;background:var(--brand-soft)}
.sns-feed{display:flex;flex-direction:column;gap:16px}
.sns-card{padding:18px 20px}
.sns-card--hot{border-color:#f2d9c8;background:linear-gradient(180deg,#fffdf9,#fff)}
.sns-card__head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.sns-card__who{flex:1;min-width:0}
.sns-card__name{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sns-card__meta{font-size:12.5px;color:var(--text-3);margin-top:2px}
.sns-card__more{margin-left:auto;border:none;background:transparent;color:var(--text-3);font-size:19px;line-height:1;cursor:pointer;padding:4px 9px;border-radius:8px}
.sns-card__more:hover{background:var(--bg-soft);color:var(--text)}
.sns-card__body{padding-left:54px}
.sns-card__title{font-size:17px;margin:0 0 8px;line-height:1.5}
.sns-card__title a{color:var(--text)}
.sns-card__title a:hover{color:var(--brand-strong)}
.sns-card__text{color:var(--text-2);font-size:14.5px;margin:0 0 10px;line-height:1.75}
.act{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:3px 11px;border-radius:20px;margin-bottom:9px}
.act--publish{background:#eef4ff;color:#2f6fd0}
.act--download{background:#e8f6f0;color:#078256}
.act--review{background:#fff4e2;color:#b5761a}
.act--vote{background:#f1ecff;color:#6b4bd8}
.act--news{background:#ffeceb;color:#c8392e}
.act--hot{background:linear-gradient(90deg,#ffe7d1,#ffd6c2);color:#c0522a}
.act--ask{background:#eaf6ff;color:#1f7fbf}
.act--like{background:#fdeef3;color:#c33a6b}
.vtag{font-size:11.5px;padding:2px 9px;border-radius:20px;font-weight:700}
.vtag--mod{background:#eef6ff;color:#2f6fd0}
.vtag--co{background:#e8f6f0;color:#078256}
.vtag--off{background:#f0ecff;color:#6b4bd8}
.vtag--hot{background:#ffe7d1;color:#c0522a}
.sns-media{height:168px;border-radius:12px;background:repeating-linear-gradient(45deg,#f4f7f6,#f4f7f6 12px,#eef3f1 12px,#eef3f1 24px);border:1px dashed var(--line-strong);display:grid;place-items:center;color:var(--text-3);font-size:13.5px;margin-bottom:12px}
.sns-media--news{background:repeating-linear-gradient(45deg,#f6f4fb,#f6f4fb 12px,#f0edf8 12px,#f0edf8 24px)}
.sns-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.sns-tags a{font-size:13px;color:var(--brand-strong);background:var(--brand-soft);padding:4px 11px;border-radius:20px}
.sns-attach{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;background:var(--bg-soft)}
.sns-attach__ic{font-size:22px}
.sns-attach__m{flex:1;min-width:0}
.sns-attach__t{font-weight:600;font-size:14.5px}
.sns-attach__s{font-size:12.5px;color:var(--text-3);margin-top:2px}
.sns-dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.sns-dl__i{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff}
.sns-dl__i:hover{border-color:var(--brand);background:var(--brand-soft-2)}
.sns-dl__ic{width:34px;height:34px;border-radius:9px;background:var(--brand-soft);display:grid;place-items:center;font-size:17px;flex:0 0 auto}
.sns-dl__t{font-size:13.8px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sns-dl__s{font-size:12px;color:var(--text-3);flex:0 0 auto}
.sns-review{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg-soft);margin-bottom:10px}
.sns-review__ic{width:44px;height:44px;border-radius:11px;background:#fff4e2;display:grid;place-items:center;font-size:21px;flex:0 0 auto}
.sns-review__m{flex:1;min-width:0}
.sns-review__t{font-weight:700;font-size:14.5px}
.sns-review__s{font-size:12.5px;color:var(--text-3);margin-top:2px}
.sns-review__score{font-size:24px;font-weight:800;color:#e0912f}
.sns-review__score span{font-size:13px;color:var(--text-3);font-weight:500}
.sns-vote{display:flex;flex-direction:column;gap:9px}
.sns-vote__o{position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px 14px;cursor:pointer;font:inherit;font-size:14.5px;text-align:left;overflow:hidden}
.sns-vote__o:hover{border-color:var(--brand)}
.sns-vote__bar{position:absolute;left:0;top:0;bottom:0;background:var(--brand-soft);z-index:0;transition:.3s}
.sns-vote__l{position:relative;z-index:1;flex:1;color:var(--text)}
.sns-vote__p{position:relative;z-index:1;font-weight:700;color:var(--brand-strong);font-size:13.5px}
.sns-vote__o.voted{border-color:var(--brand);background:var(--brand-soft-2)}
.sns-vote--mini .sns-vote__o{padding:9px 12px;font-size:13.5px}
.sns-vote__hint{font-size:12.8px;color:var(--text-3);margin:11px 0 0}
.sns-hot{display:flex;align-items:center;gap:12px;border:1px solid #f2d9c8;border-radius:12px;padding:12px 14px;background:#fffaf5;margin-bottom:10px}
.sns-hot__ic{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#ffd9c0,#ffe9d8);display:grid;place-items:center;font-size:21px;flex:0 0 auto}
.sns-hot__m{flex:1;min-width:0}
.sns-hot__t{font-weight:700;font-size:14.8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sns-hot__rise{font-size:12px;font-weight:700;color:#c0522a;background:#ffe7d1;padding:2px 9px;border-radius:20px}
.sns-hot__s{font-size:12.5px;color:var(--text-3);margin-top:3px}
.sns-answer{display:flex;flex-direction:column;gap:10px;border-left:3px solid var(--brand-soft);padding-left:14px;margin-bottom:6px}
.sns-answer__i{display:flex;gap:10px;font-size:14px;color:var(--text-2);align-items:flex-start}
.sns-answer__i .avatar{width:32px;height:32px;font-size:13px}
.sns-acts{display:flex;align-items:center;gap:22px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);padding-left:54px;font-size:14px;color:var(--text-2)}
.sns-acts a{cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.sns-acts a:hover{color:var(--brand-strong)}
.sns-acts a.on{color:var(--brand-strong);font-weight:700}
.sns-acts__r{margin-left:auto;cursor:pointer;color:var(--text-3);font-size:13.5px}
.sns-more{text-align:center;margin:22px 0 10px}
.sns-sideblock{border-top:1px solid var(--line);padding:16px 20px}
.sns-sideblock__t{font-weight:800;font-size:14.5px;margin-bottom:8px}
.sns-sideblock__p{font-size:13.5px;color:var(--text-2);line-height:1.7}
.sns-me{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.sns-me .avatar--lg{width:54px;height:54px;font-size:20px}
.sns-me__n{font-weight:700;font-size:14.5px}
.sns-me__s{font-size:12.5px;color:var(--text-3)}
.cat__link.on{color:var(--brand-strong)}
.sns-app{display:flex;gap:12px;align-items:center;padding:11px;border-radius:11px;background:var(--bg-soft);margin-bottom:10px}
.sns-app__qr{width:56px;height:56px;border-radius:10px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:24px;color:var(--text-3);flex:0 0 auto}
.sns-app__m{flex:1;min-width:0}
.sns-app__t{font-weight:700;font-size:14.5px}
.sns-app__s{font-size:12.3px;color:var(--text-3);margin:2px 0 5px}
.sns-app__tag{font-size:11.5px;font-weight:700;background:var(--brand-soft);color:var(--brand-strong);padding:2px 9px;border-radius:20px}
.sns-app__tag--alt{background:#fdeef3;color:#c33a6b}
.sns-app__note{font-size:12.3px;color:var(--text-3);line-height:1.65;margin-top:4px}
.sns-topic{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}
.sns-topic:last-child{border-bottom:none}
.sns-topic__h{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sns-topic__n{color:var(--text-3);font-size:12.5px;flex:0 0 auto}
.sns-user{display:flex;align-items:center;gap:11px;padding:9px 0}
.sns-user .avatar{width:38px;height:38px;font-size:14px}
.sns-user__m{flex:1;min-width:0}
.sns-user__n{font-weight:600;font-size:14px}
.sns-user__s{font-size:12.3px;color:var(--text-3)}
.sns-user__b{font-size:13px;color:var(--brand-strong);border:1px solid var(--brand);border-radius:20px;padding:3px 12px;flex:0 0 auto}
.sns-user__b:hover{background:var(--brand);color:#fff}
.sns-minivote__q{font-weight:700;font-size:14.5px;margin-bottom:10px}
.sns-minivote__s{font-size:12.3px;color:var(--text-3);margin-top:9px}
.sns-tips p{font-size:13px;color:var(--text-2);line-height:1.7;margin:0 0 8px}
@media (max-width:1280px){.rail--sns{width:290px;flex:0 0 290px}}
@media (max-width:1080px){.rail--sns{display:none}}
@media (max-width:640px){.sns-card__body,.sns-acts{padding-left:0}.sns-dl{grid-template-columns:1fr}.sns-hero{padding:18px}.sns-hero__r{width:100%}.sns-entry{flex:1}.sns-filter__sort{margin-left:0;width:100%}}

/* ===== 第 20 轮 传统站长门户（source.html） ===== */
.op{font-size:13.5px;line-height:1.6}
.op .crumb{margin-bottom:12px}
.op-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f2f5f3;border:1px solid var(--line);border-radius:6px;padding:8px 14px;color:var(--text-2);font-size:13px;margin-bottom:12px}
.op-toolbar a{color:var(--text-2)}
.op-toolbar a:hover{color:var(--brand-strong);text-decoration:underline}
.op-toolbar__s{color:var(--line-strong)}
.op-toolbar__date{margin-left:auto;color:var(--text-3);font-size:12.5px}
.op-masthead{display:flex;gap:18px;align-items:center;margin-bottom:12px}
.op-masthead__logo{flex:0 0 258px}
.op-masthead__logo a{display:flex;align-items:center;gap:12px}
.op-masthead__mk{width:64px;height:64px;border-radius:10px;background:linear-gradient(135deg,var(--brand),#16b887);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:800;flex:0 0 auto}
.op-masthead__tx b{display:block;font-size:22px;letter-spacing:1px;color:var(--text)}
.op-masthead__tx i{display:block;font-style:normal;font-size:12.5px;color:var(--text-3);margin-top:2px}
.op-masthead__banner{position:relative;flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.op-masthead__banner img{display:block;width:100%;height:auto}
.op-masthead__ad{position:absolute;right:0;bottom:0;background:rgba(0,0,0,.42);color:#fff;font-size:11px;padding:2px 8px}
.op-search{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px 16px;margin-bottom:12px}
.op-search__in{display:flex;max-width:780px}
.op-sel{height:46px;border:1px solid var(--line-strong);border-right:none;border-radius:8px 0 0 8px;padding:0 10px;background:#f7f9f8;color:var(--text-2);font:inherit;font-size:14px}
.op-search__kw{flex:1;min-width:0;height:46px;border:1px solid var(--line-strong);border-left:none;border-right:none;padding:0 14px;font:inherit;font-size:14.5px}
.op-search__kw:focus{outline:none;border-color:var(--brand)}
.op-search__btn{height:46px;padding:0 30px;border-radius:0 8px 8px 0;background:var(--brand);color:#fff;font-size:15px;font-weight:700;letter-spacing:2px;cursor:pointer;border:none}
.op-search__btn:hover{background:var(--brand-strong)}
.op-search__hot{margin-top:10px;font-size:13px;color:var(--text-3)}
.op-search__hot a{margin:0 8px 0 2px}
.op-navbar{background:#0e3b2c;border-radius:8px;margin-bottom:14px;overflow:hidden}
.op-navbar__in{display:flex;flex-wrap:wrap;padding:0 6px}
.op-navbar__in a{display:block;padding:12px 14px;color:#e6f2ee;font-size:14.5px;font-weight:600}
.op-navbar__in a:hover{background:#0a9d6f;color:#fff}
.op-navbar__in a.on{background:var(--brand);color:#fff}
.op-cols{display:flex;gap:14px;align-items:flex-start}
.op-col-l{flex:0 0 258px}
.op-col-m{flex:1;min-width:0}
.op-col-r{flex:0 0 300px}
.op-box{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:14px;overflow:hidden}
.op-box__hd{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(180deg,#f4f8f6,#eaf2ee);border-bottom:1px solid var(--line)}
.op-box__ic{font-size:15px}
.op-box__hd h3{font-size:15px;font-weight:800;color:#0e3b2c;margin:0}
.op-box__hd h3 .op-new{font-size:10px;font-weight:800;color:#fff;background:#e5564b;border-radius:3px;padding:1px 5px;vertical-align:middle;margin-left:4px}
.op-box__more{margin-left:auto;font-size:12.5px;color:var(--text-3)}
.op-box__more:hover{color:var(--brand-strong)}
.op-box__bd{padding:8px 12px 12px}
.op-li{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px dotted var(--line);font-size:13.5px}
.op-li:last-child{border-bottom:none}
.op-li__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.op-li:hover .op-li__t{color:var(--brand-strong);text-decoration:underline}
.op-li__m{font-size:12px;color:var(--text-3);flex:0 0 auto}
.op-hot-flag{font-size:10px;font-weight:800;color:#fff;background:#e5564b;border-radius:3px;padding:1px 4px;flex:0 0 auto}
.op-li2{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.op-rklist .rk{padding:7px 6px}
.op-tree{display:flex;flex-direction:column}
.op-tree__i{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px dotted var(--line);font-size:13.5px;color:var(--text-2)}
.op-tree__i::before{content:"\25B8";color:var(--brand);font-size:11px}
.op-tree__i:last-child{border-bottom:none}
.op-tree__i:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.op-tree__n{flex:1}
.op-tree__c{font-size:12px;color:var(--text-3)}
.op-navgroup{padding:7px 0;border-bottom:1px dotted var(--line)}
.op-navgroup:last-child{border-bottom:none}
.op-navgroup__t{font-size:13px;font-weight:800;color:#0e3b2c;margin-bottom:5px}
.op-navgroup__l{display:flex;flex-wrap:wrap;gap:0 14px}
.op-navgroup__l a{font-size:13px;color:var(--text-2);line-height:2}
.op-navgroup__l a:hover{color:var(--brand-strong);text-decoration:underline}
.op-tagcloud{display:flex;flex-wrap:wrap;gap:8px}
.op-tagcloud a{font-size:13px;color:var(--text-2);background:var(--bg-soft);border:1px solid var(--line);border-radius:4px;padding:4px 9px}
.op-tagcloud a:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}
.op-qr{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg-soft);margin-bottom:8px}
.op-qr__i{width:52px;height:52px;border-radius:6px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:22px;color:var(--text-3);flex:0 0 auto}
.op-qr__m{flex:1;min-width:0}
.op-qr__t{font-size:13.5px;font-weight:700}
.op-qr__s{font-size:12px;color:var(--text-3)}
.op-qr__note{font-size:12px;color:var(--text-3);line-height:1.6;margin:0}
.op-sub{font-size:12.5px;color:var(--text-2);line-height:1.7;margin:0 0 8px}
.op-links{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px 16px;font-size:13px;color:var(--text-2);line-height:2}
.op-links b{color:#0e3b2c}
.op-links a{margin-right:14px}
.op-links a:hover{color:var(--brand-strong);text-decoration:underline}
@media (max-width:1280px){.op-col-l{flex:0 0 226px}.op-col-r{flex:0 0 268px}}
@media (max-width:1080px){.op-cols{flex-wrap:wrap}.op-col-l,.op-col-m,.op-col-r{flex:1 1 100%}}
@media (max-width:760px){.op-masthead{flex-direction:column;align-items:stretch}.op-masthead__logo{flex:1 1 auto}.op-li2{grid-template-columns:1fr}.op-navbar__in a{padding:10px 12px;font-size:14px}.op-toolbar__date{width:100%;margin-left:0}}

/* ===== 第 20 轮 资讯详情页（news-detail.html） ===== */
.nd-progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--brand);z-index:99;transition:width .12s}
.nd-article{padding:26px 30px 22px}
.nd-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px}
.nd-cat{display:inline-block;font-size:12px;font-weight:700;background:var(--brand-soft);color:var(--brand-strong);padding:3px 10px;border-radius:20px;margin-bottom:10px}
.nd-title{font-size:28px;line-height:1.4;margin:0 0 12px}
.nd-lead{font-size:16px;color:var(--text-2);background:var(--brand-soft-2);border-left:3px solid var(--brand);padding:12px 16px;border-radius:0 8px 8px 0;line-height:1.75;margin:0}
.nd-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:14px;font-size:13px;color:var(--text-3)}
.nd-fonts{display:flex;align-items:center;gap:6px;margin-left:auto}
.nd-font{border:1px solid var(--line);background:#fff;border-radius:6px;padding:3px 10px;font-size:12.5px;color:var(--text-2);cursor:pointer;font-family:inherit}
.nd-font.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.nd-figure{margin:0 0 22px}
.nd-figure__ph{height:300px;border-radius:12px;background:repeating-linear-gradient(45deg,#f4f7f6,#f4f7f6 12px,#eef3f1 12px,#eef3f1 24px);border:1px dashed var(--line-strong);display:grid;place-items:center;color:var(--text-3);font-size:13.5px;text-align:center;padding:20px}
.nd-figure figcaption{text-align:center;font-size:12.5px;color:var(--text-3);margin-top:8px}
.nd-body{font-size:16.5px;line-height:1.95;color:var(--text)}
.nd-body h2{font-size:20px;margin:28px 0 12px;padding-left:12px;border-left:4px solid var(--brand)}
.nd-body h3{font-size:17px;margin:20px 0 8px}
.nd-body p{margin:12px 0}
.nd-body a{color:var(--brand-strong);text-decoration:underline}
.nd-ul{margin:12px 0;padding-left:22px}
.nd-ul li{margin:7px 0;color:var(--text-2);font-size:16px}
.nd-quote{margin:18px 0;padding:16px 20px;background:var(--bg-soft);border-left:4px solid var(--brand);border-radius:0 10px 10px 0;color:var(--text-2);font-size:16px;line-height:1.85}
.nd-quote__by{display:block;margin-top:8px;font-size:13px;color:var(--text-3)}
.nd-table{overflow-x:auto;margin:16px 0}
.nd-table table{width:100%;border-collapse:collapse;font-size:14.5px}
.nd-table th,.nd-table td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.nd-table th{background:var(--bg-soft);font-weight:700;color:var(--text)}
.nd-table td{color:var(--text-2)}
.nd-note{font-size:13px;color:var(--text-3)}
.nd-tags{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 0}
.nd-tags a{font-size:13.5px;color:var(--brand-strong);background:var(--brand-soft);padding:5px 12px;border-radius:20px}
.nd-share{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14.5px;color:var(--text-2)}
.nd-share a{cursor:pointer;border:1px solid var(--line);border-radius:20px;padding:6px 16px}
.nd-share a:hover{border-color:var(--brand);color:var(--brand-strong)}
.nd-share a.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.nd-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.nd-pager a{display:block;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;color:var(--text-2)}
.nd-pager a span{display:block;font-size:12px;color:var(--text-3);margin-bottom:3px}
.nd-pager a:hover{border-color:var(--brand);color:var(--brand-strong)}
.nd-pager__next{text-align:right}
.nd-rel{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dotted var(--line);font-size:14.5px}
.nd-rel:last-child{border-bottom:none}
.nd-rel__ic{font-size:16px}
.nd-rel__t{flex:1;min-width:0;color:var(--text-2)}
.nd-rel:hover .nd-rel__t{color:var(--brand-strong)}
.nd-rel__m{font-size:12.5px;color:var(--text-3);flex:0 0 auto}
.nd-cmt-num{font-size:14px;color:var(--brand-strong);font-weight:700}
.nd-cmt-tip{font-size:12.5px;color:var(--text-3)}
.nd-cmtform{display:flex;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:14px}
.nd-cmtform__m{flex:1;min-width:0}
.nd-cmtform textarea{width:100%;min-height:78px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font:inherit;font-size:14.5px;resize:vertical;background:var(--bg-soft)}
.nd-cmtform__bar{display:flex;align-items:center;gap:12px;margin-top:9px;flex-wrap:wrap}
.nd-cmtform__note{font-size:12.5px;color:var(--text-3)}
.nd-cmtform__bar .btn{margin-left:auto}
.nd-cmt{display:flex;gap:12px;padding:14px 0;border-bottom:1px dotted var(--line)}
.nd-cmt:last-child{border-bottom:none}
.nd-cmt__b{flex:1;min-width:0}
.nd-cmt__h{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}
.nd-cmt__n{font-weight:700;color:var(--text);font-size:14px}
.nd-cmt__badge{font-size:11.5px;background:var(--brand-soft);color:var(--brand-strong);padding:2px 8px;border-radius:20px}
.nd-cmt__badge--wait{background:#fff4e2;color:#b5761a}
.nd-cmt__t{color:var(--text-3)}
.nd-cmt__x{margin-top:6px;font-size:14.5px;color:var(--text-2);line-height:1.75}
.nd-cmt__a{display:flex;gap:16px;margin-top:7px;font-size:13px;color:var(--text-3)}
.nd-cmt__a span{cursor:pointer}
.nd-cmt__a span:hover{color:var(--brand-strong)}
.nd-cmtmore{text-align:center;margin-top:16px}
.nd-toc{display:flex;flex-direction:column}
.nd-toc a{padding:8px 10px;border-radius:8px;font-size:14px;color:var(--text-2);border-left:3px solid transparent}
.nd-toc a:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.nd-toc a.on{border-left-color:var(--brand);color:var(--brand-strong);background:var(--brand-soft-2);font-weight:700}
.nd-cats{display:flex;flex-direction:column}
.nd-cats a{padding:9px 10px;border-radius:8px;font-size:14px;color:var(--text-2)}
.nd-cats a:hover{background:var(--brand-soft-2);color:var(--brand-strong)}
.nd-sub{font-size:12.8px;color:var(--text-2);line-height:1.7;margin:0 0 10px}
.nd-body[data-size="s"]{font-size:15px}
.nd-body[data-size="l"]{font-size:18px}
@media (max-width:760px){.nd-article{padding:20px 16px}.nd-title{font-size:22px}.nd-meta{gap:12px}.nd-fonts{margin-left:0;width:100%}.nd-pager{grid-template-columns:1fr}.nd-figure__ph{height:200px}}

/* ===== 第 23 轮 传统门户现代化（source.html，覆写第 20 轮 .op-*） ===== */
.op{font-size:14.5px;line-height:1.65}

/* 快捷入口条 */
.op-quick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:16px;box-shadow:var(--shadow-sm)}
.op-quick__i{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-2);background:var(--bg-soft);border-radius:10px;padding:8px 14px;transition:.18s}
.op-quick__i:hover{background:var(--brand);color:#fff;transform:translateY(-1px)}
.op-quick__date{margin-left:auto;font-size:13px;color:var(--text-3)}

/* 报头：logo 卡 + banner */
.op-masthead{gap:20px;margin-bottom:16px;align-items:stretch}
.op-masthead__logo{flex:0 0 288px;display:flex}
.op-masthead__logo a{flex:1;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;gap:14px;box-shadow:var(--shadow-sm);transition:.18s}
.op-masthead__logo a:hover{box-shadow:var(--shadow);border-color:var(--brand-soft)}
.op-masthead__mk{width:58px;height:58px;border-radius:16px;font-size:26px;box-shadow:0 8px 20px rgba(10,157,111,.28)}
.op-masthead__tx b{font-size:21px;letter-spacing:.5px}
.op-masthead__tx i{font-size:12.5px;margin-top:4px}
.op-masthead__banner{border-radius:16px;box-shadow:var(--shadow)}
.op-masthead__ad{border-radius:0 0 0 8px}

/* 搜索区 */
.op-search{border-radius:16px;padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}
.op-search__main{display:flex;align-items:center;max-width:900px;border:1.5px solid var(--line-strong);border-radius:14px;padding:5px 5px 5px 16px;background:#fff;transition:.18s}
.op-search__main:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft-2)}
.op-search__ic{font-size:17px;opacity:.55;flex:0 0 auto}
.op-search__kw{flex:1;min-width:0;height:42px;border:none;background:none;padding:0 12px;font:inherit;font-size:15px}
.op-search__kw:focus{outline:none}
.op-search__btn{height:42px;padding:0 30px;border-radius:10px;background:var(--brand);color:#fff;font-size:15px;font-weight:700;border:none;cursor:pointer;transition:.18s}
.op-search__btn:hover{background:var(--brand-strong)}
.op-search__seg{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.op-search__seglb{font-size:13px;color:var(--text-3);font-weight:600;margin-right:2px}
.op-search__seg .chip{padding:7px 15px;font-size:13.5px}
.op-search__more{margin-left:auto;font-size:13px;color:var(--brand-strong);font-weight:600}
.op-search__hot{margin-top:12px;font-size:13.5px;color:var(--text-3);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.op-search__hot a{margin:0;padding:3px 11px;border-radius:20px;background:var(--bg-soft);transition:.15s}
.op-search__hot a:hover{background:var(--brand-soft);color:var(--brand-strong)}

/* 栏目导航：浅色胶囊条 */
.op-navbar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 10px;margin-bottom:18px;box-shadow:var(--shadow-sm);overflow:visible}
.op-navbar__in{gap:4px;flex-wrap:wrap;padding:0}
.op-navbar__in a{padding:9px 15px;border-radius:10px;color:var(--text-2);font-size:14.5px;font-weight:600;transition:.16s}
.op-navbar__in a:hover{background:var(--brand-soft);color:var(--brand-strong)}
.op-navbar__in a.on{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(10,157,111,.28)}

/* 三栏 */
.op-cols{gap:18px}
.op-col-l{flex:0 0 272px}
.op-col-r{flex:0 0 320px}

/* 卡片 */
.op-box{border-radius:16px;margin-bottom:18px;box-shadow:var(--shadow-sm);transition:.18s}
.op-box:hover{box-shadow:var(--shadow)}
.op-box__hd{gap:10px;padding:15px 18px;background:#fff;border-bottom:1px solid var(--line)}
.op-box__hd h3{font-size:16px;color:var(--text);font-weight:800}
.op-box__hd h3 .op-new{vertical-align:2px}
.op-box__ic{width:28px;height:28px;border-radius:9px;background:var(--brand-soft);display:grid;place-items:center;font-size:15px;flex:0 0 auto}
.op-box__more{font-size:13px;color:var(--text-3);font-weight:500}
.op-box__more:hover{color:var(--brand-strong)}
.op-box__bd{padding:12px 14px 16px}

/* 列表行：无边框 + 圆角 hover */
.op-li{gap:10px;padding:9px 10px;border-bottom:none;border-radius:9px;font-size:14.5px;transition:.14s}
.op-li:hover{background:var(--brand-soft-2)}
.op-li__t{color:var(--text-2)}
.op-li:hover .op-li__t{color:var(--brand-strong);text-decoration:none}
.op-li__m{font-size:12.5px;color:var(--text-3);background:var(--bg-soft);padding:2px 9px;border-radius:20px}
.op-li2{gap:2px 18px}
.op-hot-flag{border-radius:20px;padding:2px 7px;font-size:10px}
.op-rklist .rk{padding:9px 8px;border-radius:9px}

/* 分类树 / 栏目分组 */
.op-tree{gap:2px}
.op-tree__i{padding:9px 12px;border-bottom:none;border-radius:9px;font-size:14.5px;transition:.14s}
.op-tree__i::before{color:var(--brand);font-size:12px}
.op-tree__i:last-child{border-bottom:none}
.op-tree__i:hover{background:var(--brand-soft-2)}
.op-tree__c{font-size:12.5px;background:var(--bg-soft);color:var(--text-3);padding:2px 9px;border-radius:20px}
.op-navgroup{padding:9px 0;border-bottom:1px solid var(--line)}
.op-navgroup:last-child{border-bottom:none}
.op-navgroup__t{font-size:13.5px;color:var(--brand-strong);margin-bottom:7px}
.op-navgroup__l{gap:6px 8px}
.op-navgroup__l a{font-size:13.5px;line-height:1.5;padding:5px 11px;border-radius:20px;background:var(--bg-soft);transition:.14s}
.op-navgroup__l a:hover{background:var(--brand-soft);color:var(--brand-strong);text-decoration:none}

/* 标签云 / 二维码 / 友链 */
.op-tagcloud{gap:9px}
.op-tagcloud a{font-size:13.5px;border-radius:20px;padding:6px 14px;border-color:transparent;background:var(--bg-soft);transition:.14s}
.op-tagcloud a:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:transparent;transform:translateY(-1px)}
.op-qr{border-radius:12px;padding:10px 12px;margin-bottom:10px}
.op-qr__i{width:56px;height:56px;border-radius:10px;font-size:24px}
.op-qr__t{font-size:14px}
.op-qr__note{font-size:12.5px}
.op-sub{font-size:13px;line-height:1.7}

/* 友情链接 */
.op-links{border-radius:16px;padding:14px 18px;font-size:13.5px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}
.op-links__lb{color:var(--text-3);font-weight:700;font-size:13px;margin-right:4px}
.op-links a{margin-right:0;padding:5px 13px;border-radius:20px;background:var(--bg-soft);transition:.14s}
.op-links a:hover{background:var(--brand-soft);color:var(--brand-strong);text-decoration:none}

@media (max-width:1280px){.op-col-l{flex:0 0 240px}.op-col-r{flex:0 0 286px}.op-navbar__in a{padding:8px 12px;font-size:14px}}
@media (max-width:1080px){.op-cols{gap:14px}}
@media (max-width:760px){.op-quick{gap:8px;padding:10px 12px}.op-quick__date{width:100%;margin-left:0}.op-masthead__logo{flex:1 1 auto}.op-masthead__logo a{padding:14px}.op-search{padding:14px}.op-search__btn{padding:0 20px}.op-search__more{margin-left:0;width:100%}.op-box__hd{padding:13px 14px}.op-box__bd{padding:10px 10px 14px}}

/* ===== 第 24 轮 GitHub 镜像站（opensource.html） ===== */
.gh{font-size:14px}

/* 站点栏（GitHub 深色 header） */
.gh-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#24292f;border-radius:14px;padding:12px 18px;margin-bottom:14px}
.gh-bar__logo{display:inline-flex;align-items:center;gap:9px;color:#fff;font-weight:800;font-size:16px}
.gh-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#2da44e,#1f883d);display:grid;place-items:center;font-size:15px;color:#fff}
.gh-bar__sub{font-weight:500;font-size:12.5px;color:#8b949e;margin-left:2px}
.gh-bar__search{flex:1;min-width:220px;max-width:460px;display:flex;background:#fff;border-radius:9px;overflow:hidden}
.gh-bar__search input{flex:1;min-width:0;border:none;padding:0 13px;height:38px;font:inherit;font-size:14px;outline:none}
.gh-bar__search button{border:none;background:#2da44e;color:#fff;padding:0 18px;font-weight:700;cursor:pointer;font-size:14px;font-family:inherit}
.gh-bar__search button:hover{background:#2c974b}
.gh-bar__nav{margin-left:auto;display:flex;gap:16px;font-size:14px}
.gh-bar__nav a{color:#c9d1d9;font-weight:600}
.gh-bar__nav a:hover{color:#fff}
.gh-bar__nav a.on{color:#fff;box-shadow:inset 0 -2px 0 #fd8c73}

/* 镜像状态条 */
.gh-status{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 16px;margin-bottom:16px;font-size:13.5px;color:var(--text-2);box-shadow:var(--shadow-sm)}
.gh-status__dot{width:8px;height:8px;border-radius:50%;background:#1a7f37;box-shadow:0 0 0 4px rgba(26,127,55,.15);flex:0 0 auto}
.gh-status b{color:var(--text)}
.gh-status__note{margin-left:auto;font-size:12.5px;color:var(--text-3)}

/* 三栏 */
.gh-cols{display:flex;gap:18px;align-items:flex-start}
.gh-side{flex:0 0 236px}
.gh-main{flex:1;min-width:0}
.gh-rail{flex:0 0 312px}

/* 通用盒 */
.gh-box{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden}
.gh-box__hd{padding:12px 15px;font-weight:800;font-size:14.5px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.gh-box__hd .more{margin-left:auto;font-size:12.5px;color:var(--text-3);font-weight:500}
.gh-box__hd .more:hover{color:#0969da}
.gh-box__bd{padding:10px 12px 14px}
.gh-note{font-size:12.6px;color:var(--text-2);line-height:1.7}
.gh-note p{margin:0 0 7px}
.gh-note p:last-child{margin-bottom:0}
.gh-note strong{color:var(--text)}
.gh-note code{font-family:ui-monospace,Consolas,Menlo,monospace;background:var(--bg-soft);border-radius:4px;padding:1px 5px;font-size:12px;color:#0550ae}

/* 语言筛选 */
.gh-lang{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;font-size:13.8px;color:var(--text-2);cursor:pointer;transition:.14s}
.gh-lang:hover{background:var(--bg-soft)}
.gh-lang.on{background:rgba(9,105,218,.08);color:#0969da;font-weight:700}
.gh-lang i{width:11px;height:11px;border-radius:50%;flex:0 0 auto;background:#8a9794}
.gh-lang__all i{background:linear-gradient(135deg,#f1e05a,#3178c6,#3572A5)}
.gh-lang span{margin-left:auto;font-size:12.5px;color:var(--text-3)}
.gh-lang.on span{color:inherit}

/* Topics 词条 */
.gh-topics{display:flex;flex-wrap:wrap;gap:8px}
.gh-topics a{font-size:12.8px;color:#0969da;background:#ddf4ff;padding:4px 12px;border-radius:20px;transition:.14s}
.gh-topics a:hover{background:#0969da;color:#fff}

/* 仓库列表 */
.gh-repos{display:flex;flex-direction:column;gap:12px}
.gh-repo{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;transition:.16s}
.gh-repo:hover{border-color:#0969da;box-shadow:0 8px 24px rgba(9,105,218,.10)}
.gh-repo__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gh-repo__ico{width:30px;height:30px;border-radius:8px;background:var(--bg-soft);display:grid;place-items:center;font-size:15px;flex:0 0 auto}
.gh-repo__name{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:15.5px;color:#0969da;font-weight:600}
.gh-repo__name b{font-weight:800}
.gh-repo__name:hover{text-decoration:underline}
.gh-repo__flag{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:20px;background:#ddf4ff;color:#0969da}
.gh-repo__flag--cn{background:#dcffe4;color:#1a7f37}
.gh-repo__desc{margin:9px 0 11px;font-size:14px;color:var(--text-2);line-height:1.65}
.gh-repo__topics{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.gh-repo__topics a{font-size:12.3px;color:#0969da;background:#ddf4ff;padding:3px 11px;border-radius:20px}
.gh-repo__topics a:hover{background:#0969da;color:#fff}
.gh-repo__meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12.8px;color:var(--text-3)}
.gh-repo__meta .gh-lang{padding:0;cursor:default;font-size:12.8px}
.gh-repo__meta .gh-lang:hover{background:none}
.gh-up{color:#1a7f37;font-weight:700}
.gh-star{margin-left:auto;border:1px solid var(--line-strong);background:#f6f8fa;border-radius:8px;padding:5px 13px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;transition:.14s;font-family:inherit}
.gh-star:hover{border-color:#0969da;color:#0969da}
.gh-star.on{background:#ddf4ff;border-color:#0969da;color:#0969da;font-weight:700}

/* 区块 / 页签 */
.gh-sec{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:18px}
.gh-sec__hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.gh-sec__hd h2{font-size:17px;margin:0}
.gh-tabs{display:flex;gap:6px;background:#f6f8fa;border-radius:9px;padding:3px}
.gh-tabs button{border:none;background:none;padding:6px 14px;border-radius:7px;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:inherit}
.gh-tabs button.on{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.gh-sec__more{margin-left:auto;font-size:13px;color:#0969da;font-weight:600}

/* Topics 卡片 */
.gh-topicgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gh-topiccard{border:1px solid var(--line);border-radius:12px;padding:15px;transition:.16s;background:#fff}
.gh-topiccard:hover{border-color:#0969da;box-shadow:0 8px 24px rgba(9,105,218,.10)}
.gh-topiccard__t{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:14.5px;font-weight:700;color:#0969da}
.gh-topiccard__d{font-size:13px;color:var(--text-3);margin:7px 0 10px;line-height:1.6}
.gh-topiccard__m{font-size:12.3px;color:var(--text-3);display:flex;gap:14px}

/* Releases */
.gh-rel{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.gh-rel:last-child{border-bottom:none}
.gh-rel__tag{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:12.5px;font-weight:700;background:#dcffe4;color:#1a7f37;padding:3px 10px;border-radius:20px;flex:0 0 auto}
.gh-rel__t{flex:1;min-width:0;color:var(--text-2)}
.gh-rel__d{font-size:12.5px;color:var(--text-3);flex:0 0 auto}
.gh-rel__dl{font-size:12.5px;color:#0969da;font-weight:600;cursor:pointer;flex:0 0 auto}

/* 节点 / 代码 / 日志 */
.gh-node{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:13.8px;color:var(--text-2)}
.gh-node:hover{background:var(--bg-soft)}
.gh-node__dot{width:8px;height:8px;border-radius:50%;background:#1a7f37;flex:0 0 auto}
.gh-node__dot--warn{background:#bf8700}
.gh-node__n{flex:1}
.gh-node__ms{font-size:12.5px;color:var(--text-3);font-family:ui-monospace,Consolas,Menlo,monospace}
.gh-code{position:relative;background:#f6f8fa;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-family:ui-monospace,Consolas,Menlo,monospace;font-size:12.3px;color:#0550ae;line-height:1.75;overflow-x:auto}
.gh-code code{white-space:nowrap}
.gh-code__cp{position:absolute;right:8px;top:8px;border:1px solid var(--line-strong);background:#fff;border-radius:7px;padding:3px 10px;font-size:12px;color:var(--text-2);cursor:pointer;font-family:inherit}
.gh-code__cp:hover{border-color:#0969da;color:#0969da}
.gh-log{font-size:12.8px;color:var(--text-2);line-height:2}
.gh-log span{font-family:ui-monospace,Consolas,Menlo,monospace;color:var(--text-3);margin-right:8px}

@media (max-width:1280px){.gh-side{flex:0 0 210px}.gh-rail{flex:0 0 282px}.gh-topicgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1080px){.gh-cols{flex-wrap:wrap}.gh-side,.gh-main,.gh-rail{flex:1 1 100%}.gh-side{order:2}.gh-rail{order:3}}
@media (max-width:760px){.gh-bar{padding:12px 14px}.gh-bar__search{order:3;max-width:none}.gh-bar__nav{width:100%;margin-left:0;overflow-x:auto}.gh-topicgrid{grid-template-columns:1fr}.gh-status__note{margin-left:0;width:100%}.gh-repo{padding:14px}.gh-star{margin-left:0;width:100%}}

/* ============================================================
   AI 大全（aihub.html）· 第 25 轮 · .ax-* 七分区独立样式
   ============================================================ */

/* ---------- Hero（深色 · AI 控制台） ---------- */
.ax-hero{position:relative;overflow:hidden;border-radius:20px;background:linear-gradient(135deg,#08071a 0%,#120f33 55%,#0d1b2a 100%);color:#e9edff;box-shadow:0 18px 44px rgba(12,10,40,.24)}
.ax-hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(120,140,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(120,140,255,.10) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(120% 90% at 18% 0%,#000 30%,transparent 78%);-webkit-mask-image:radial-gradient(120% 90% at 18% 0%,#000 30%,transparent 78%)}
.ax-hero__in{position:relative;display:flex;gap:34px;align-items:flex-start;padding:34px 34px 26px}
.ax-hero__l{flex:1 1 auto;min-width:0}
.ax-hero__r{flex:0 0 322px}
.ax-hero__eyebrow{display:inline-block;font-size:12.5px;letter-spacing:.06em;color:#9fe8cf;background:rgba(46,230,160,.12);border:1px solid rgba(46,230,160,.28);padding:4px 12px;border-radius:20px}
.ax-hero__t{margin:14px 0 10px;font-size:38px;line-height:1.1;font-weight:800;letter-spacing:.01em;color:#fff}
.ax-hero__d{margin:0 0 18px;font-size:14.5px;line-height:1.75;color:#b9c2e6;max-width:680px}
.ax-hero__d b{color:#9fe8cf;font-weight:700}
.ax-hero__search{display:flex;align-items:center;gap:0;background:rgba(255,255,255,.07);border:1px solid rgba(150,170,255,.24);border-radius:14px;padding:6px 6px 6px 14px;max-width:660px;transition:.2s}
.ax-hero__search:focus-within{border-color:rgba(46,230,160,.6);box-shadow:0 0 0 4px rgba(46,230,160,.12)}
.ax-hero__sic{font-size:15px;opacity:.7}
.ax-hero__si{flex:1 1 auto;min-width:0;background:none;border:none;outline:none;color:#eaf0ff;font-size:14px;padding:10px 12px;font-family:inherit}
.ax-hero__si::placeholder{color:#7d88b0}
.ax-hero__sb{flex:0 0 auto;height:38px;padding:0 20px;border:none;border-radius:10px;background:linear-gradient(135deg,#2ee6a0,#12b98a);color:#04170f;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;transition:.18s}
.ax-hero__sb:hover{filter:brightness(1.06);transform:translateY(-1px)}
.ax-hero__sq{flex:0 0 auto;margin-left:8px;display:inline-flex;align-items:center;height:38px;padding:0 14px;border-radius:10px;background:rgba(120,140,255,.14);border:1px solid rgba(150,170,255,.3);color:#cfd8ff;font-size:13px;text-decoration:none;white-space:nowrap;transition:.18s}
.ax-hero__sq:hover{background:rgba(120,140,255,.24);color:#fff}
.ax-hero__hot{margin-top:14px;font-size:13px;color:#8b96bd}
.ax-hero__hot a{display:inline-block;margin:0 6px 6px 0;padding:3px 10px;border-radius:20px;background:rgba(255,255,255,.06);color:#c3cdf0;text-decoration:none;transition:.16s}
.ax-hero__hot a:hover{background:rgba(46,230,160,.16);color:#9fe8cf}

.ax-nodes{background:rgba(10,12,34,.72);border:1px solid rgba(140,160,255,.2);border-radius:16px;padding:16px;backdrop-filter:blur(6px)}
.ax-nodes__hd{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#c8d2f5;font-weight:600;padding-bottom:11px;border-bottom:1px dashed rgba(140,160,255,.18)}
.ax-nodes__live{font-size:11.5px;color:#2ee6a0;letter-spacing:.08em}
.ax-node{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid rgba(140,160,255,.09)}
.ax-node:last-of-type{border-bottom:none}
.ax-node__dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#3f4a6b}
.ax-node__dot--on{background:#2ee6a0;box-shadow:0 0 0 4px rgba(46,230,160,.16)}
.ax-node__dot--warn{background:#ffcf66;box-shadow:0 0 0 4px rgba(255,207,102,.16)}
.ax-node__n{flex:1 1 auto;min-width:0;font-size:13px;color:#e2e8ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ax-node__s{flex:0 0 auto;font-size:12px;color:#8de9c4}
.ax-node__s:empty{display:none}
.ax-node__t{flex:0 0 58px;text-align:right;font-size:12px;color:#8b96bd;font-family:ui-monospace,Consolas,monospace}
.ax-nodes__ft{margin-top:11px;padding-top:11px;border-top:1px dashed rgba(140,160,255,.18);font-size:12px;color:#8b96bd}
.ax-nodes__ft b{color:#2ee6a0}

.ax-hero__stats{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(140,160,255,.14);border-top:1px solid rgba(140,160,255,.16)}
.ax-stat{background:rgba(9,11,30,.62);padding:15px 18px;text-align:center}
.ax-stat b{display:block;font-size:22px;font-weight:800;color:#9fe8cf;line-height:1.2}
.ax-stat span{display:block;margin-top:3px;font-size:12px;color:#8b96bd}

/* ---------- 粘性二级锚点导航 ---------- */
.ax-tabs{position:sticky;top:0;z-index:30;margin:16px 0 20px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}
.ax-tabs__in{display:flex;gap:4px;overflow-x:auto;padding:7px 8px}
.ax-tabs__i{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:10px;font-size:13.5px;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:.16s}
.ax-tabs__i span{font-size:14px}
.ax-tabs__i:hover{background:var(--bg-soft);color:var(--text)}
.ax-tabs__i.on{background:var(--brand);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(10,157,111,.22)}

/* ---------- 分区通用壳 ---------- */
.ax-sec{margin-bottom:22px;padding:26px;border:1px solid var(--line);border-radius:18px;background:#fff;scroll-margin-top:74px}
.ax-sec__hd{position:relative;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.ax-sec__t{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.ax-sec__ic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;background:var(--brand-soft);font-size:18px}
.ax-sec__t h2{margin:0;font-size:20px;font-weight:800;letter-spacing:.01em}
.ax-sec__badge{font-size:11.5px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.18);padding:2px 9px;border-radius:20px;letter-spacing:.04em}
.ax-sec__d{margin:10px 0 0;font-size:13.5px;line-height:1.75;color:var(--text-2);max-width:900px}
.ax-sec__more{position:absolute;right:0;top:2px;font-size:13px;color:var(--brand-strong);text-decoration:none}
.ax-sec__more:hover{text-decoration:underline}

.ax-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 15px;border-radius:9px;font-size:13px;text-decoration:none;border:1px solid var(--line-strong);background:#fff;color:var(--text);cursor:pointer;font-family:inherit;transition:.16s}
.ax-btn:hover{border-color:var(--brand);color:var(--brand-strong)}
.ax-btn--solid{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.ax-btn--solid:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.ax-btn--light{background:#fff;border-color:#fff;color:#04170f;font-weight:700}
.ax-btn--ghost{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.ax-btn--ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.ax-chip{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11.5px;line-height:1.5;background:rgba(255,255,255,.1);border:1px solid rgba(160,180,255,.24);color:#c8d2f5;margin:0 5px 5px 0}
.ax-chip--soft{background:var(--bg-soft);border-color:var(--line);color:var(--text-2)}
.ax-note{margin:12px 0 14px;padding:9px 13px;border-radius:10px;background:rgba(255,207,102,.1);border:1px solid rgba(232,163,61,.28);font-size:12.5px;color:#8a6a2a}
.ax-note--light{background:var(--bg-soft);border-color:var(--line);color:var(--text-3)}
.ax-link{color:var(--brand-strong);text-decoration:none}
.ax-link:hover{text-decoration:underline}

/* ---------- 表格 ---------- */
.ax-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.ax-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:660px}
.ax-table thead th{background:var(--bg-soft);text-align:left;padding:12px 16px;font-weight:700;font-size:13px;color:var(--text);border-bottom:1px solid var(--line);white-space:nowrap}
.ax-table tbody td{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--text-2);white-space:nowrap}
.ax-table tbody tr:last-child td{border-bottom:none}
.ax-table tbody tr:hover{background:var(--brand-soft-2)}
.ax-ct__n{color:var(--text);font-weight:600}
.ax-ct__lang{font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.ax-rate{color:#e8a33d;font-weight:700}

/* ---------- ① 大模型（深色区） ---------- */
.ax-sec--model{background:linear-gradient(160deg,#0b0a20 0%,#131033 60%,#0c1a2b 100%);border-color:rgba(140,160,255,.18);color:#e6ebff}
.ax-sec--model .ax-sec__hd{border-bottom-color:rgba(140,160,255,.18)}
.ax-sec--model .ax-sec__ic{background:rgba(46,230,160,.14)}
.ax-sec--model .ax-sec__t h2{color:#fff}
.ax-sec--model .ax-sec__badge{background:rgba(46,230,160,.14);border-color:rgba(46,230,160,.3);color:#9fe8cf}
.ax-sec--model .ax-sec__d{color:#a9b4dd}
.ax-sec--model .ax-sec__more{color:#9fe8cf}
.ax-sec--model .ax-tablewrap{border-color:rgba(140,160,255,.2)}
.ax-sec--model .ax-table thead th{background:rgba(255,255,255,.06);color:#dfe6ff;border-bottom-color:rgba(140,160,255,.2)}
.ax-sec--model .ax-table tbody td{border-bottom-color:rgba(140,160,255,.1);color:#aeb9de}
.ax-sec--model .ax-table tbody tr:hover{background:rgba(46,230,160,.06)}
.ax-models{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:6px}
.ax-model{position:relative;padding:16px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(150,170,255,.18);transition:.2s}
.ax-model:hover{transform:translateY(-3px);border-color:rgba(46,230,160,.44);box-shadow:0 14px 30px rgba(6,10,30,.4)}
.ax-model__hd{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.ax-model__logo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;font-size:13px;font-weight:800;letter-spacing:.02em;color:#04170f;background:linear-gradient(135deg,#2ee6a0,#12b98a)}
.ax-model--cl .ax-model__logo{background:linear-gradient(135deg,#ffcf66,#f2994a)}
.ax-model--qw .ax-model__logo{background:linear-gradient(135deg,#7aa8ff,#4f6bff);color:#fff}
.ax-model--gl .ax-model__logo{background:linear-gradient(135deg,#c9a6ff,#8b5cf6);color:#fff}
.ax-model__id{flex:1 1 auto;min-width:0}
.ax-model__n{font-size:14px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ax-model__v{font-size:12px;color:#8b96bd;margin-top:2px}
.ax-model__pulse{flex:0 0 auto;font-size:11px;color:#2ee6a0;animation:axpulse 2s ease-in-out infinite}
@keyframes axpulse{0%,100%{opacity:1}50%{opacity:.28}}
.ax-model__spec{display:flex;flex-direction:column;gap:1px;background:rgba(140,160,255,.12);border-radius:10px;overflow:hidden;margin-bottom:12px}
.ax-model__sp{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;background:rgba(9,11,30,.52);font-size:12.5px}
.ax-model__sp span{color:#8b96bd}
.ax-model__sp b{color:#dbe3ff;font-weight:600;font-family:ui-monospace,Consolas,monospace}
.ax-model__chips{margin-bottom:14px;min-height:52px}
.ax-model__acts{display:flex;gap:8px}
.ax-model__acts .ax-btn{flex:1 1 0;height:32px;font-size:12.5px;background:transparent;border-color:rgba(150,170,255,.3);color:#cfd8ff}
.ax-model__acts .ax-btn:hover{border-color:#2ee6a0;color:#9fe8cf}
.ax-model__acts .ax-btn--solid{background:linear-gradient(135deg,#2ee6a0,#12b98a);border-color:transparent;color:#04170f;font-weight:700}
.ax-model__acts .ax-btn--solid:hover{filter:brightness(1.07);color:#04170f}

/* ---------- ② AI Skill（应用商店风） ---------- */
.ax-skills{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ax-skill{position:relative;display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:.18s}
.ax-skill:hover{transform:translateY(-3px);border-color:rgba(10,157,111,.4);box-shadow:0 12px 26px rgba(20,40,35,.09)}
.ax-skill__ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;font-size:22px;box-shadow:var(--shadow-sm)}
.sk-1{background:linear-gradient(135deg,#d9f2ff,#a8dcff)}
.sk-2{background:linear-gradient(135deg,#ffe4ef,#ffbdd9)}
.sk-3{background:linear-gradient(135deg,#e6f7ec,#bfeacf)}
.sk-4{background:linear-gradient(135deg,#f1e8ff,#d5c2ff)}
.sk-5{background:linear-gradient(135deg,#fff3d9,#ffe0a3)}
.sk-6{background:linear-gradient(135deg,#e4f0ff,#c4daff)}
.sk-7{background:linear-gradient(135deg,#e2fbf5,#b6f0e0)}
.sk-8{background:linear-gradient(135deg,#ffe9e4,#ffc9bd)}
.ax-skill__b{flex:1 1 auto;min-width:0}
.ax-skill__n{font-size:14px;font-weight:700;color:var(--text)}
.ax-skill__d{margin-top:5px;font-size:12.5px;line-height:1.6;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ax-skill__m{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:12px}
.ax-skill__c{color:var(--text-3)}
.ax-skill__p{color:var(--brand-strong);font-weight:600}
.ax-skill__p--paid{color:#e8a33d}
.ax-skill__add{position:absolute;right:14px;bottom:14px;height:28px;padding:0 13px;border-radius:8px;border:1px solid var(--brand);background:var(--brand-soft);color:var(--brand-strong);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.16s}
.ax-skill__add:hover{background:var(--brand);color:#fff}
.ax-skill__add.on{background:var(--bg-soft);border-color:var(--line);color:var(--text-3)}

/* ---------- ③ Agent（工作流） ---------- */
.ax-sec--agent{background:linear-gradient(160deg,#f7fbff,#eef5ff)}
.ax-sec--agent .ax-sec__ic{background:#e2edff}
.ax-agents{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ax-agent{padding:18px;border-radius:16px;background:#fff;border:1px solid #dfe9f8;box-shadow:var(--shadow-sm);transition:.18s}
.ax-agent:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(30,60,110,.1)}
.ax-agent__hd{display:flex;align-items:center;gap:11px;margin-bottom:15px}
.ax-agent__ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#e2edff;font-size:19px}
.ax-agent--ag-2 .ax-agent__ic{background:#e6f7ec}
.ax-agent--ag-3 .ax-agent__ic{background:#f1e8ff}
.ax-agent__n{font-size:14.5px;font-weight:700;color:var(--text)}
.ax-agent__cat{font-size:12px;color:var(--text-3);margin-top:2px}
.ax-agent__run{margin-left:auto;flex:0 0 auto;font-size:11.5px;color:#2f6bd8;background:#e2edff;padding:3px 10px;border-radius:20px;white-space:nowrap}
.ax-steps{display:flex;flex-direction:column;gap:0;margin-bottom:14px}
.ax-step{position:relative;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:#f7faff;border:1px solid #e6eefb;margin-bottom:7px}
.ax-step__no{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;background:#fff;border:1px solid #cfe0f7;font-size:11.5px;font-weight:700;color:#4a76c4}
.ax-step--done .ax-step__no{background:#2f6bd8;border-color:#2f6bd8;color:#fff}
.ax-step__t{font-size:12.8px;color:var(--text-2)}
.ax-step__ar{position:absolute;left:20px;bottom:-8px;font-size:11px;color:#b9cbe8;line-height:1}
.ax-agent__env{margin-bottom:14px}
.ax-agent__env .ax-chip{background:#f2f7ff;border-color:#e0eafb;color:#4a76c4}
.ax-agent__acts{display:flex;gap:8px}
.ax-agent__acts .ax-btn{flex:1 1 0}

/* ---------- ④ 钩子 Hooks（深色代码区） ---------- */
.ax-sec--hook{background:linear-gradient(160deg,#0a1119 0%,#0e1a24 60%,#101b16 100%);border-color:rgba(120,200,180,.16);color:#e3f0ec}
.ax-sec--hook .ax-sec__hd{border-bottom-color:rgba(120,200,180,.16)}
.ax-sec--hook .ax-sec__ic{background:rgba(46,230,160,.14)}
.ax-sec--hook .ax-sec__t h2{color:#fff}
.ax-sec--hook .ax-sec__badge{background:rgba(46,230,160,.14);border-color:rgba(46,230,160,.28);color:#9fe8cf}
.ax-sec--hook .ax-sec__d{color:#9fb3ae}
.ax-sec--hook .ax-sec__more{color:#9fe8cf}
.ax-hooks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ax-hook{border-radius:15px;background:rgba(6,14,20,.72);border:1px solid rgba(120,200,180,.18);overflow:hidden;transition:.18s}
.ax-hook:hover{border-color:rgba(46,230,160,.44);box-shadow:0 14px 30px rgba(0,0,0,.36)}
.ax-hook__hd{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(120,200,180,.14)}
.ax-hook__trig{flex:0 0 auto;font-family:ui-monospace,Consolas,monospace;font-size:11.5px;padding:3px 10px;border-radius:6px;background:#0f4d3a;color:#8de9c4;border:1px solid rgba(46,230,160,.3)}
.ax-hook__trig.hl-post{background:#123a63;color:#9ecbff;border-color:rgba(120,180,255,.3)}
.ax-hook__trig.hl-pub{background:#4a2a6b;color:#dcc0ff;border-color:rgba(200,150,255,.3)}
.ax-hook__t{flex:1 1 auto;min-width:0;font-size:13px;font-weight:600;color:#e6f2ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ax-copy{flex:0 0 auto;height:26px;padding:0 11px;border-radius:7px;border:1px solid rgba(120,200,180,.28);background:rgba(46,230,160,.1);color:#9fe8cf;font-size:12px;cursor:pointer;font-family:inherit;transition:.16s}
.ax-copy:hover{background:rgba(46,230,160,.22)}
.ax-copy--sm{height:28px;border-color:var(--line-strong);background:var(--bg-soft);color:var(--text-2);font-weight:500}
.ax-copy--sm:hover{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-soft)}
.ax-code{margin:0;padding:13px 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.3px;line-height:1.85;overflow-x:auto;color:#c8ddd6}
.ax-code__ln{display:block;padding:0 14px;white-space:pre}
.ax-code__ln:hover{background:rgba(46,230,160,.07)}
.ax-code__ln i{display:inline-block;width:22px;margin-right:10px;color:#456056;font-style:normal;text-align:right;user-select:none}
.ax-code.hl-pre .ax-code__ln:first-child{color:#8de9c4}
.ax-code.hl-post .ax-code__ln:nth-child(2){color:#9ecbff}
.ax-code.hl-pub .ax-code__ln:nth-child(3){color:#dcc0ff}
.ax-hook__ft{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid rgba(120,200,180,.14);font-size:11.5px}
.ax-hook__env{color:#8fa8a2}
.ax-hook__inst{margin-left:auto;font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:#2ee6a0;background:rgba(46,230,160,.08);padding:3px 9px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}

/* ---------- ⑤ 提示词（引用风） ---------- */
.ax-sec--prompt{background:linear-gradient(160deg,#fffdf8,#fff9ee)}
.ax-sec--prompt .ax-sec__ic{background:#fff1d6}
.ax-prompts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.ax-prompt{display:flex;flex-direction:column;padding:18px;border-radius:16px;background:#fff;border:1px solid #f0e6cf;box-shadow:var(--shadow-sm);transition:.18s}
.ax-prompt:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(120,95,40,.1)}
.ax-prompt__hd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ax-prompt__cat{flex:0 0 auto;font-size:11.5px;color:#9a7420;background:#fff1d6;border:1px solid rgba(232,163,61,.28);padding:3px 10px;border-radius:20px}
.ax-prompt__t{font-size:15px;font-weight:700;color:var(--text)}
.ax-prompt__b{position:relative;margin:0 0 13px;padding:13px 15px 13px 17px;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;background:#fafcfa;font-size:13px;line-height:1.85;color:var(--text-2);flex:1 1 auto}
.ax-prompt__var{display:inline-block;padding:0 6px;margin:0 1px;border-radius:5px;background:#fff1d6;border:1px solid rgba(232,163,61,.4);color:#9a7420;font-weight:600;font-size:12.5px}
.ax-prompt__models{margin-bottom:12px}
.ax-prompt__ft{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.ax-prompt__cnt{font-size:12px;color:var(--text-3)}
.ax-prompt__ft .ax-copy{margin-left:auto}

/* ---------- ⑥ AI 绘画（画廊） ---------- */
.ax-sec--art{padding-bottom:20px}
.ax-arts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ax-art{margin:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff;transition:.2s}
.ax-art:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(20,40,35,.14)}
.ax-art__ph{position:relative;height:172px}
.art-1{background:linear-gradient(135deg,#1b1b3a 0%,#4b2e83 52%,#ff2d95 100%)}
.art-2{background:linear-gradient(160deg,#f5f2e9 0%,#dbe6d9 55%,#93aa92 100%)}
.art-3{background:linear-gradient(135deg,#f8f9fb 0%,#e7ecf3 55%,#ccd6e2 100%)}
.art-4{background:linear-gradient(135deg,#ffd6e0 0%,#c7e9ff 55%,#d9f7e6 100%)}
.art-5{background:linear-gradient(120deg,#04121f 0%,#0a3b4d 55%,#12e0a0 100%)}
.art-6{background:linear-gradient(135deg,#eef2ff 0%,#e0e7ff 55%,#fae8ff 100%)}
.ax-art__tag{position:absolute;left:10px;top:10px;font-size:11.5px;color:#fff;background:rgba(0,0,0,.42);backdrop-filter:blur(4px);padding:3px 10px;border-radius:20px}
.ax-art__ov{position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.5));opacity:0;transition:.2s}
.ax-art:hover .ax-art__ov{opacity:1}
.ax-art__op{font-size:12.5px;color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);padding:4px 12px;border-radius:20px}
.ax-art__cap{padding:12px 14px 40px}
.ax-art__p{font-size:13px;line-height:1.6;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ax-art__m{display:flex;gap:9px;margin-top:7px;font-size:11.5px;color:var(--text-3)}
.ax-art .ax-copy{position:absolute;right:12px;bottom:12px}

/* ---------- ⑦ AI 编程（表格区） ---------- */
.ax-sec--code .ax-sec__ic{background:#e8eefc}
.ax-table--code tbody td{white-space:nowrap}

/* ---------- 站内 AI 导航 ---------- */
.ax-more{margin-bottom:22px;padding:22px 26px;border:1px solid var(--line);border-radius:18px;background:var(--bg-soft)}
.ax-more__hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ax-more__hd h2{margin:0;font-size:17px;font-weight:800}
.ax-more__hd span{font-size:13px;color:var(--text-3)}
.ax-more__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ax-more__g h5{margin:0 0 10px;font-size:13px;color:var(--text-3);font-weight:600;letter-spacing:.02em}
.ax-more__g a{display:block;padding:7px 12px;margin-bottom:6px;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--text-2);text-decoration:none;transition:.16s}
.ax-more__g a:hover{border-color:var(--brand);color:var(--brand-strong);transform:translateX(3px)}

/* ---------- 投稿 CTA ---------- */
.ax-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:24px 28px;border-radius:18px;background:linear-gradient(135deg,#0a9d6f,#078256 60%,#065f43);color:#fff;box-shadow:0 14px 32px rgba(10,157,111,.2)}
.ax-cta__l{flex:1 1 320px;min-width:0}
.ax-cta__l h3{margin:0 0 8px;font-size:19px;font-weight:800}
.ax-cta__l p{margin:0;font-size:13.5px;line-height:1.7;color:rgba(255,255,255,.86)}
.ax-cta__r{display:flex;gap:10px;flex:0 0 auto}
.ax-cta__r .ax-btn{height:40px;padding:0 20px;font-size:14px}

/* ---------- 响应式 ---------- */
@media (max-width:1280px){
  .ax-models{grid-template-columns:repeat(2,1fr)}
  .ax-skills{grid-template-columns:repeat(2,1fr)}
  .ax-skills .ax-skill:nth-child(n+7){display:none}
  .ax-hero__r{flex:0 0 280px}
}
@media (max-width:1080px){
  .ax-hero__in{flex-wrap:wrap;padding:26px 22px 20px}
  .ax-hero__r{flex:1 1 100%}
  .ax-hero__stats{grid-template-columns:repeat(3,1fr)}
  .ax-stat:nth-child(n+4){border-top:1px solid rgba(140,160,255,.14)}
  .ax-agents,.ax-hooks{grid-template-columns:1fr}
  .ax-arts{grid-template-columns:repeat(2,1fr)}
  .ax-more__grid{grid-template-columns:repeat(2,1fr)}
  .ax-sec{padding:20px}
  .ax-sec__more{position:static;display:inline-block;margin-top:10px}
}
@media (max-width:760px){
  .ax-hero{border-radius:16px}
  .ax-hero__t{font-size:28px}
  .ax-hero__search{flex-wrap:wrap;gap:8px;padding:10px}
  .ax-hero__si{width:100%;padding:8px 4px}
  .ax-hero__sb{flex:1 1 0}
  .ax-hero__sq{margin-left:0;flex:1 1 0;justify-content:center}
  .ax-hero__stats{grid-template-columns:repeat(2,1fr)}
  .ax-models,.ax-skills,.ax-prompts,.ax-arts{grid-template-columns:1fr}
  .ax-skills .ax-skill:nth-child(n+7){display:flex}
  .ax-sec{padding:16px;border-radius:14px;scroll-margin-top:66px}
  .ax-tabs{border-radius:12px}
  .ax-tabs__i{padding:7px 12px;font-size:13px}
  .ax-cta{padding:20px}
  .ax-cta__r{width:100%}
  .ax-cta__r .ax-btn{flex:1 1 0}
  .ax-prompt__b{font-size:12.5px}
  .ax-hook__inst{max-width:100%;margin-left:0;width:100%}
  .ax-hook__ft{flex-wrap:wrap}
}

/* ============================================================
   第 26 轮 · 今日头条（.tt-*） / 百科（.wk-*） / 版本发布（.rel-*） / 维护者（.mtn-*）
   ============================================================ */

/* ==================== 一、今日头条信息流 ==================== */
.tt-head{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:16px}
.tt-head__bar{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tt-logo{display:flex;align-items:center;gap:9px;text-decoration:none;flex:0 0 auto}
.tt-logo__mk{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#f04142,#d92b2d);color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 4px 12px rgba(240,65,66,.28)}
.tt-logo__nm{font-size:15px;font-weight:800;color:var(--text);letter-spacing:.01em}
.tt-search{flex:1 1 300px;display:flex;align-items:center;max-width:580px;background:var(--bg-soft);border:1px solid var(--line);border-radius:22px;padding:4px 4px 4px 14px;transition:.18s}
.tt-search:focus-within{border-color:#f04142;background:#fff;box-shadow:0 0 0 4px rgba(240,65,66,.09)}
.tt-search__ic{font-size:14px;opacity:.55}
.tt-search__i{flex:1 1 auto;min-width:0;border:none;background:none;outline:none;font-size:13.5px;padding:8px 10px;font-family:inherit;color:var(--text)}
.tt-search__b{flex:0 0 auto;height:32px;padding:0 20px;border:none;border-radius:18px;background:linear-gradient(135deg,#f04142,#d92b2d);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:.16s}
.tt-search__b:hover{filter:brightness(1.06)}
.tt-head__r{display:flex;gap:9px;flex:0 0 auto;margin-left:auto}
.tt-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:18px;font-size:13.5px;text-decoration:none;border:1px solid #f04142;background:#f04142;color:#fff;font-weight:600;cursor:pointer;font-family:inherit;transition:.16s}
.tt-btn:hover{background:#d92b2d;border-color:#d92b2d;color:#fff}
.tt-btn--ghost{background:#fff;color:#f04142}
.tt-btn--ghost:hover{background:rgba(240,65,66,.08);color:#d92b2d}
.tt-chans{display:flex;gap:2px;overflow-x:auto;padding:0 10px;position:sticky;top:0;z-index:25;background:#fff;border-bottom:1px solid var(--line)}
.tt-chan{flex:0 0 auto;position:relative;padding:13px 14px;font-size:14.5px;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:.15s}
.tt-chan:hover{color:#f04142}
.tt-chan.on{color:#f04142;font-weight:700}
.tt-chan.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:5px;width:22px;height:3px;border-radius:2px;background:#f04142}
.tt-chan--add{color:var(--text-3);font-weight:700}

.tt-cols{display:flex;gap:18px;align-items:flex-start}
.tt-feed{flex:1 1 auto;min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:2px 18px}
.tt-card{display:flex;gap:15px;padding:16px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.tt-card:last-of-type{border-bottom:none}
.tt-card__b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:space-between;min-height:132px}
.tt-card--text .tt-card__b,.tt-card--pics .tt-card__b{min-height:0}
.tt-pic{flex:0 0 auto;width:206px;height:132px;border-radius:10px;display:block;position:relative;overflow:hidden;transition:.2s}
.tt-card:hover .tt-pic{transform:scale(1.012)}
.tt-pic--wide{width:100%;height:212px}
.tt-pic--sm{width:auto;flex:1 1 0;height:88px;border-radius:8px}
.tt-pic-1{background:linear-gradient(135deg,#0f3d2e,#12b98a)}
.tt-pic-2{background:linear-gradient(135deg,#101a3a,#3b5bdb)}
.tt-pic-3{background:linear-gradient(135deg,#4a1030,#e64980)}
.tt-pic-4{background:linear-gradient(135deg,#3a2408,#e8930a)}
.tt-pic-5{background:linear-gradient(135deg,#122036,#2a86e0)}
.tt-pic-6{background:linear-gradient(135deg,#2a1533,#8b5cf6)}
.tt-pic-7{background:linear-gradient(135deg,#0b0b0b,#4a4a4a)}
.tt-pic-8{background:linear-gradient(135deg,#0d2f3a,#12b0b0)}
.tt-badge{position:absolute;left:9px;top:9px;font-size:11.5px;color:#fff;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);padding:3px 9px;border-radius:20px}
.tt-badge2{display:inline-block;font-size:11.5px;color:#f04142;background:rgba(240,65,66,.08);border:1px solid rgba(240,65,66,.22);padding:1px 8px;border-radius:20px}
.tt-dur{position:absolute;right:9px;bottom:9px;font-size:11.5px;color:#fff;background:rgba(0,0,0,.55);padding:2px 8px;border-radius:6px;font-family:ui-monospace,Consolas,monospace}
.tt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.42);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;padding-left:4px}
.tt-play--hover{display:none}
.tt-card__t{margin:0;font-size:17px;line-height:1.5;font-weight:700}
.tt-card--text .tt-card__t,.tt-card--pics .tt-card__t{font-size:16.5px}
.tt-card__t a{color:var(--text);text-decoration:none;transition:.15s}
.tt-card__t a:hover{color:#f04142}
.tt-card__d{margin:9px 0 0;font-size:13.5px;line-height:1.7;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tt-card__pics{display:flex;gap:8px;margin-top:11px}
.tt-card__m{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:11px;font-size:12.5px;color:var(--text-3)}
.tt-src{color:var(--text-2);font-weight:500}
.tt-m{color:var(--text-3)}
.tt-time{margin-left:auto}
.tt-card--ad{background:linear-gradient(135deg,#fff8f3,#fff2ea);border:1px solid #ffe0cc;border-radius:12px;padding:14px 16px;margin:12px 0}
.tt-ad__l{flex:1 1 auto;min-width:0}
.tt-ad__lb{display:inline-block;font-size:11px;color:#9a7b5a;background:rgba(154,123,90,.12);padding:1px 7px;border-radius:4px;margin-bottom:6px}
.tt-ad__t{font-size:15.5px;font-weight:700;color:#7a4a22;line-height:1.45}
.tt-ad__d{margin-top:6px;font-size:12.5px;color:#a0794f}
.tt-ad__b{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;height:34px;padding:0 18px;border-radius:18px;background:linear-gradient(135deg,#ff8a3d,#f2600c);color:#fff;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}
.tt-load{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0 24px}
.tt-load__b{height:38px;padding:0 30px;border-radius:19px;border:1px solid var(--line-strong);background:#fff;color:var(--text-2);font-size:13.5px;cursor:pointer;font-family:inherit;transition:.16s}
.tt-load__b:hover{border-color:#f04142;color:#f04142}
.tt-load__s{font-size:12px;color:var(--text-3)}

.tt-rail{flex:0 0 322px}
.tt-mod{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px;margin-bottom:16px}
.tt-mod__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tt-mod__hd h3{margin:0;font-size:15px;font-weight:800;display:flex;align-items:center;gap:7px}
.tt-mod__hd h3::before{content:"";width:4px;height:15px;border-radius:2px;background:linear-gradient(180deg,#f04142,#ff8a3d)}
.tt-mod__more{font-size:12.5px;color:var(--text-3);text-decoration:none}
.tt-mod__more:hover{color:#f04142}
.tt-hot__i{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:.15s}
.tt-hot__i:last-child{border-bottom:none}
.tt-hot__i:hover .tt-hot__t{color:#f04142}
.tt-hot__no{flex:0 0 auto;width:20px;height:20px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;background:var(--bg-soft);color:var(--text-3);font-family:ui-monospace,Consolas,monospace}
.tt-hot__i--top .tt-hot__no:nth-child(1),.tt-hot__i--top .tt-hot__no{background:linear-gradient(135deg,#f04142,#ff8a3d);color:#fff}
.tt-hot__t{flex:1 1 auto;min-width:0;font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-hot__v{flex:0 0 auto;font-size:12px;color:var(--text-3)}
.tt-tags{display:flex;flex-wrap:wrap;gap:7px}
.tt-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:20px;background:var(--bg-soft);border:1px solid var(--line);font-size:12.5px;color:var(--text-2);text-decoration:none;transition:.15s}
.tt-tag:hover{border-color:#f04142;color:#f04142;background:rgba(240,65,66,.05)}
.tt-tag span{font-size:11px;color:var(--text-3)}
.tt-mp__i{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.tt-mp__i:last-child{border-bottom:none}
.tt-mp__b{flex:1 1 auto;min-width:0}
.tt-mp__n{font-size:13.5px;font-weight:600;color:var(--text)}
.tt-mp__d{font-size:12px;color:var(--text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-follow{flex:0 0 auto;height:27px;padding:0 13px;border-radius:14px;border:1px solid #f04142;background:#fff;color:#f04142;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;transition:.16s}
.tt-follow:hover{background:#f04142;color:#fff}
.tt-follow.on{background:var(--bg-soft);border-color:var(--line);color:var(--text-3)}
.tt-mod--tip{background:var(--bg-soft)}
.tt-tip{margin:0 0 6px;font-size:12.5px;line-height:1.7;color:var(--text-2)}
.tt-tip b{color:var(--text)}

/* ==================== 二、百科 ==================== */
.wk-hero{position:relative;overflow:hidden;border-radius:20px;background:linear-gradient(135deg,#0d3576 0%,#1a5cc0 55%,#2a86e0 100%);color:#eaf2ff;margin-bottom:16px;box-shadow:0 16px 38px rgba(13,53,118,.22)}
.wk-hero__bg{position:absolute;inset:0;background-image:radial-gradient(circle at 82% 18%,rgba(255,255,255,.16),transparent 42%),radial-gradient(circle at 10% 88%,rgba(120,220,255,.18),transparent 46%),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 62px)}
.wk-hero__in{position:relative;padding:32px 34px 26px}
.wk-hero__eyebrow{display:inline-block;font-size:12.5px;color:#bfe0ff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);padding:4px 12px;border-radius:20px}
.wk-hero__t{margin:14px 0 10px;font-size:36px;font-weight:800;color:#fff;line-height:1.1}
.wk-hero__d{margin:0 0 20px;font-size:14.5px;line-height:1.75;color:#c6dcff;max-width:760px}
.wk-hero__d b{color:#fff}
.wk-search{display:flex;align-items:center;gap:0;max-width:680px;background:rgba(255,255,255,.96);border-radius:14px;padding:6px 6px 6px 16px;box-shadow:0 10px 26px rgba(6,26,60,.24)}
.wk-search__ic{font-size:15px;opacity:.5}
.wk-search__i{flex:1 1 auto;min-width:0;border:none;background:none;outline:none;font-size:14.5px;padding:11px 12px;font-family:inherit;color:var(--text)}
.wk-search__b{flex:0 0 auto;height:40px;padding:0 24px;border:none;border-radius:10px;background:linear-gradient(135deg,#1a5cc0,#0d3576);color:#fff;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:.16s}
.wk-search__b:hover{filter:brightness(1.08)}
.wk-hero__hot{margin-top:15px;font-size:13px;color:#9dc0f0}
.wk-hero__hot a{display:inline-block;margin:0 6px 6px 0;padding:3px 11px;border-radius:20px;background:rgba(255,255,255,.12);color:#d7e7ff;text-decoration:none;transition:.16s}
.wk-hero__hot a:hover{background:rgba(255,255,255,.24);color:#fff}
.wk-hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:22px;background:rgba(255,255,255,.16);border-radius:12px;overflow:hidden}
.wk-stat{background:rgba(9,32,72,.34);padding:13px 16px;text-align:center}
.wk-stat b{display:block;font-size:20px;font-weight:800;color:#fff;line-height:1.2}
.wk-stat span{display:block;margin-top:3px;font-size:12px;color:#a8c8f0}

.wk-alpha{display:flex;align-items:center;gap:3px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin-bottom:12px}
.wk-alpha__lb{font-size:12.5px;color:var(--text-3);margin-right:6px;padding-right:10px;border-right:1px solid var(--line)}
.wk-alpha__lb--num{border-right:none;border-left:1px solid var(--line);margin-left:8px;padding-left:12px}
.wk-alpha__i{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 5px;border-radius:7px;font-size:12.5px;color:var(--text-2);text-decoration:none;font-family:ui-monospace,Consolas,monospace;transition:.14s}
.wk-alpha__i:hover{background:#1a5cc0;color:#fff}

.wk-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.wk-cat{height:34px;padding:0 16px;border-radius:18px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13.5px;cursor:pointer;font-family:inherit;transition:.15s}
.wk-cat:hover{border-color:#1a5cc0;color:#1a5cc0}
.wk-cat.on{background:linear-gradient(135deg,#1a5cc0,#0d3576);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 6px 16px rgba(26,92,192,.22)}

.wk-cols{display:flex;gap:18px;align-items:flex-start}
.wk-grid{flex:1 1 auto;min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.wk-grid__hd{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.wk-grid__hd h2{margin:0;font-size:17px;font-weight:800}
.wk-grid__c{font-size:12.5px;color:var(--text-3)}
.wk-item{display:block;padding:16px 0;border-bottom:1px solid var(--line);transition:.15s}
.wk-item:last-child{border-bottom:none}
.wk-item__hd{display:flex;align-items:center;gap:11px}
.wk-item__av{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff;background:linear-gradient(135deg,#1a5cc0,#0d3576)}
.wk-item--wk-2 .wk-item__av{background:linear-gradient(135deg,#0a9d6f,#067a55)}
.wk-item--wk-3 .wk-item__av{background:linear-gradient(135deg,#e8930a,#c26f00)}
.wk-item--wk-4 .wk-item__av{background:linear-gradient(135deg,#8b5cf6,#6437d4)}
.wk-item--wk-5 .wk-item__av{background:linear-gradient(135deg,#e64980,#c22a63)}
.wk-item__t{flex:1 1 auto;min-width:0}
.wk-item__n{font-size:16px;font-weight:700;color:var(--text);transition:.15s}
.wk-item:hover .wk-item__n{color:#1a5cc0}
.wk-item__en{font-size:12px;color:var(--text-3);font-family:ui-monospace,Consolas,monospace;margin-top:2px}
.wk-item__go{flex:0 0 auto;font-size:12.5px;color:#1a5cc0;text-decoration:none;opacity:0;transition:.18s}
.wk-item:hover .wk-item__go{opacity:1}
.wk-item__d{margin:10px 0 0 51px;font-size:13.5px;line-height:1.75;color:var(--text-2)}
.wk-item__m{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:10px 0 0 51px;font-size:12px;color:var(--text-3)}
.wk-tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11.5px;background:#eef4fe;border:1px solid #d8e6fb;color:#1a5cc0}
.wk-tag--lg{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:20px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-2);text-decoration:none;font-size:12.5px;transition:.15s}
.wk-tag--lg:hover{border-color:#1a5cc0;color:#1a5cc0;background:#eef4fe}
.wk-tag--lg span{font-size:11px;color:var(--text-3)}
.wk-item__v{margin-left:auto;color:var(--text-3)}
.wk-item__u{color:var(--text-3)}

.wk-rail{flex:0 0 322px}
.wk-mod{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px;margin-bottom:16px}
.wk-mod__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wk-mod__hd h3{margin:0;font-size:15px;font-weight:800;display:flex;align-items:center;gap:7px}
.wk-mod__hd h3::before{content:"";width:4px;height:15px;border-radius:2px;background:linear-gradient(180deg,#2a86e0,#0d3576)}
.wk-mod__more{font-size:12.5px;color:var(--text-3);text-decoration:none}
.wk-mod__more:hover{color:#1a5cc0}
.wk-hot__i{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:.15s}
.wk-hot__i:last-child{border-bottom:none}
.wk-hot__i:hover .wk-hot__t{color:#1a5cc0}
.wk-hot__no{flex:0 0 auto;width:20px;height:20px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;background:var(--bg-soft);color:var(--text-3);font-family:ui-monospace,Consolas,monospace}
.wk-hot__i--top .wk-hot__no{background:linear-gradient(135deg,#2a86e0,#0d3576);color:#fff}
.wk-hot__t{flex:1 1 auto;min-width:0;font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-hot__v{flex:0 0 auto;font-size:12px;color:var(--text-3)}
.wk-recent{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none}
.wk-recent:last-child{border-bottom:none}
.wk-recent__d{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#2a86e0;margin-top:6px}
.wk-recent__t{font-size:13.5px;color:var(--text);transition:.15s}
.wk-recent:hover .wk-recent__t{color:#1a5cc0}
.wk-recent__s{font-size:12px;color:var(--text-3);margin-top:2px}
.wk-tags{display:flex;flex-wrap:wrap;gap:7px}
.wk-mod--cb{background:linear-gradient(160deg,#eef4fe,#e2edfd);border-color:#d8e6fb}
.wk-cb__p{margin:0 0 12px;font-size:12.5px;line-height:1.75;color:#3a5a8a}
.wk-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;border-radius:10px;border:1px solid var(--line-strong);background:#fff;color:var(--text);font-size:13.5px;text-decoration:none;cursor:pointer;font-family:inherit;transition:.16s}
.wk-btn:hover{border-color:#1a5cc0;color:#1a5cc0}
.wk-btn--solid{background:linear-gradient(135deg,#1a5cc0,#0d3576);border-color:transparent;color:#fff;font-weight:600}
.wk-btn--solid:hover{filter:brightness(1.08);color:#fff;border-color:transparent}

/* ==================== 三、版本发布表 ==================== */
.rel-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px;border-radius:12px;background:linear-gradient(135deg,#f3faf6,#e9f5ef);border:1px solid #d8ece2}
.rel-top__l{flex:1 1 300px;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rel-top__v{font-size:19px;font-weight:800;color:var(--brand-strong);font-family:ui-monospace,Consolas,monospace}
.rel-top__lb{font-size:11.5px;color:#fff;background:var(--brand);padding:2px 9px;border-radius:20px}
.rel-top__d{font-size:12.5px;color:var(--text-2)}
.rel-top__r{display:flex;gap:9px;flex:0 0 auto;flex-wrap:wrap}
.rel-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:9px;border:1px solid var(--line-strong);background:#fff;color:var(--text);font-size:13px;cursor:pointer;font-family:inherit;transition:.16s}
.rel-btn:hover{border-color:var(--brand);color:var(--brand-strong)}
.rel-btn--solid{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.rel-btn--solid:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.rel-btn--sm{height:28px;padding:0 13px;font-size:12.5px;border-radius:8px}
.rel-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.rel{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
table.rel thead th{background:var(--bg-soft);text-align:left;padding:11px 14px;font-size:12.5px;font-weight:700;color:var(--text);border-bottom:1px solid var(--line);white-space:nowrap}
table.rel tbody td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--text-2);white-space:nowrap;vertical-align:middle}
table.rel tbody tr:last-child td{border-bottom:none}
table.rel tbody tr:hover{background:var(--brand-soft-2)}
.rel__row--cur{background:rgba(10,157,111,.05)}
.rel__v{font-family:ui-monospace,Consolas,monospace;font-size:13.5px;font-weight:700;color:var(--text)}
.rel__b{display:inline-block;margin-left:7px;font-size:11px;color:#fff;background:var(--brand);padding:1px 7px;border-radius:20px}
.rel__date,.rel__size{font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.rel__sha{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--text-3);background:var(--bg-soft);border:1px dashed var(--line-strong);padding:2px 8px;border-radius:6px;cursor:pointer;transition:.15s}
.rel__sha:hover{border-color:var(--brand);color:var(--brand-strong);border-style:solid}
.rel__dl{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--text)}
.rel__st{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:20px}
.rel__st--ok{color:var(--brand-strong);background:var(--brand-soft)}
.rel__st--warn{color:#9a7420;background:#fff1d6}
.rel__st--old{color:var(--text-3);background:var(--bg-soft)}
.rel-note{margin-top:14px;padding:13px 16px;border-radius:12px;background:var(--bg-soft);border:1px solid var(--line)}
.rel-note p{margin:0 0 7px;font-size:12.8px;line-height:1.75;color:var(--text-2)}
.rel-note p:last-child{margin-bottom:0}
.rel-note b{color:var(--text)}
.rel-note code{font-family:ui-monospace,Consolas,monospace;font-size:12.3px;background:#fff;border:1px solid var(--line);padding:1px 6px;border-radius:5px}

/* ==================== 四、维护者信息 ==================== */
.mtn{display:flex;align-items:center;gap:12px}
.mtn__av{width:46px;height:46px;font-size:17px}
.mtn__b{flex:1 1 auto;min-width:0}
.mtn__n{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14.5px;font-weight:700;color:var(--text)}
.mtn__tag{font-size:11px;font-weight:500;color:var(--text-3);background:var(--bg-soft);border:1px solid var(--line);padding:2px 8px;border-radius:20px}
.mtn__tag--ok{color:var(--brand-strong);background:var(--brand-soft);border-color:rgba(10,157,111,.2)}
.mtn__s{margin-top:5px;font-size:12.5px;color:var(--text-2)}
.mtn__co{margin-top:14px;padding-top:13px;border-top:1px dashed var(--line)}
.mtn__co__hd{font-size:12.5px;color:var(--text-3);margin-bottom:9px}
.mtn__c{display:flex;align-items:center;gap:10px;padding:7px 0}
.mtn__cn{font-size:13.5px;font-weight:600;color:var(--text)}
.mtn__cs{font-size:12px;color:var(--text-3);margin-top:2px}
.mtn__acts{display:flex;gap:9px;margin-top:14px;flex-wrap:wrap}
.mtn__acts .rel-btn{flex:1 1 0}
.mtn__note{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:#fffbef;border:1px solid #f5e6c0;font-size:12.3px;line-height:1.75;color:#8a6a2a}

/* ==================== 响应式 ==================== */
@media (max-width:1280px){
  .tt-rail,.wk-rail{flex:0 0 290px}
  .tt-pic{width:176px;height:120px}
  .tt-card__b{min-height:120px}
}
@media (max-width:1080px){
  .tt-cols,.wk-cols{flex-wrap:wrap}
  .tt-feed,.wk-grid{flex:1 1 100%}
  .tt-rail,.wk-rail{flex:1 1 100%}
  .wk-item__d,.wk-item__m{margin-left:0}
  .wk-hero__stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .tt-card{flex-wrap:wrap}
  .tt-pic{width:100%;height:196px}
  .tt-card__b{min-height:0}
  .tt-search{order:3;max-width:none;flex:1 1 100%}
  .tt-head__r{margin-left:0}
  .tt-pic--wide{height:180px}
}
@media (max-width:760px){
  .tt-card__t{font-size:16px}
  .tt-head__bar{padding:12px 14px;gap:10px}
  .tt-feed{padding:2px 14px}
  .wk-hero__in{padding:24px 18px 20px}
  .wk-hero__t{font-size:27px}
  .wk-search{padding:5px 5px 5px 12px}
  .wk-search__b{padding:0 16px}
  .wk-alpha{padding:9px 11px}
  .wk-grid{padding:14px}
  .rel-top{padding:12px}
  .rel-top__r{width:100%}
  .rel-top__r .rel-btn{flex:1 1 0}
  .mtn__acts .rel-btn{flex:1 1 100%}
}

/* ============================================================
   第 27 轮 · APP 下载页（.app-* 页面 / .ph-* 手机预览）
   ============================================================ */

/* ---------- Hero ---------- */
.app-hero{position:relative;overflow:hidden;border-radius:20px;background:linear-gradient(135deg,#0d1226 0%,#1b2a63 55%,#0c3a2c 100%);color:#eaf0ff;margin-bottom:18px;box-shadow:0 16px 38px rgba(10,20,60,.24)}
.app-hero__bg{position:absolute;inset:0;background-image:radial-gradient(circle at 85% 12%,rgba(46,230,160,.2),transparent 44%),radial-gradient(circle at 8% 92%,rgba(90,130,255,.22),transparent 48%),repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 58px)}
.app-hero__in{position:relative;display:flex;gap:32px;padding:32px 34px}
.app-hero__l{flex:1 1 auto;min-width:0}
.app-hero__r{flex:0 0 292px;display:flex;flex-direction:column;gap:12px}
.app-hero__eyebrow{display:inline-block;font-size:12.5px;color:#9fe8cf;background:rgba(46,230,160,.12);border:1px solid rgba(46,230,160,.28);padding:4px 12px;border-radius:20px}
.app-hero__t{margin:14px 0 10px;font-size:38px;font-weight:800;color:#fff;line-height:1.1}
.app-hero__d{margin:0 0 20px;font-size:14.5px;line-height:1.78;color:#b9c4e8;max-width:700px}
.app-hero__d b{color:#9fe8cf}
.app-hero__btns{display:flex;gap:11px;flex-wrap:wrap}
.app-btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 20px;border-radius:13px;border:1px solid rgba(150,170,255,.28);background:rgba(255,255,255,.08);color:#e6ecff;text-decoration:none;font-size:13.5px;transition:.18s}
.app-btn:hover{border-color:rgba(46,230,160,.5);background:rgba(46,230,160,.1);transform:translateY(-2px)}
.app-btn__ic{font-size:20px;line-height:1}
.app-btn b{display:block;font-size:14px;font-weight:700;color:#fff}
.app-btn i{display:block;font-style:normal;font-size:11.5px;color:#93a0c8;margin-top:2px}
.app-btn--dark{background:rgba(6,10,24,.5);border-color:rgba(150,170,255,.24)}
.app-btn--light{background:#fff;border-color:#fff;color:#04170f}
.app-btn--light b{color:#04170f}
.app-btn--light i{color:#4a6b60}
.app-btn--light:hover{background:#fff;border-color:#fff}
.app-btn--ghost{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.app-btn--ghost b{color:#fff}
.app-btn--ghost:hover{background:rgba(255,255,255,.14)}
.app-hero__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.app-pill{font-size:12px;color:#c3cdf0;background:rgba(255,255,255,.08);border:1px solid rgba(150,170,255,.22);padding:4px 11px;border-radius:20px}
.app-hero__safe{margin-top:16px;font-size:12.5px;line-height:1.7;color:#8d99bd;padding:10px 13px;border-radius:10px;background:rgba(255,207,102,.08);border:1px solid rgba(255,207,102,.2)}

.app-qr{background:rgba(255,255,255,.96);border-radius:16px;padding:16px;text-align:center;box-shadow:0 14px 32px rgba(6,12,30,.3)}
.app-qr__img{position:relative;width:150px;height:150px;margin:0 auto 12px;border-radius:12px;background:repeating-conic-gradient(#1b2436 0 25%,#fff 0 50%) 50%/14px 14px;display:flex;align-items:center;justify-content:center}
.app-qr__mk{position:relative;width:44px;height:44px;border-radius:12px;background:#0a9d6f;color:#fff;font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.app-qr__corner{position:absolute;width:20px;height:20px;border:3px solid #0a9d6f}
.app-qr__corner.tl{left:6px;top:6px;border-right:none;border-bottom:none;border-radius:6px 0 0 0}
.app-qr__corner.tr{right:6px;top:6px;border-left:none;border-bottom:none;border-radius:0 6px 0 0}
.app-qr__corner.bl{left:6px;bottom:6px;border-right:none;border-top:none;border-radius:0 0 0 6px}
.app-qr__corner.br{right:6px;bottom:6px;border-left:none;border-top:none;border-radius:0 0 6px 0}
.app-qr__t{font-size:14px;font-weight:700;color:#16202e}
.app-qr__s{font-size:11.5px;color:#7c8794;margin-top:3px}
.app-qr2{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.1);border:1px solid rgba(150,170,255,.24);border-radius:13px;padding:11px 13px}
.app-qr2__img{flex:0 0 auto;width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,.9);color:#0d1226;display:flex;align-items:center;justify-content:center;font-size:19px}
.app-qr2__t{font-size:13.5px;font-weight:600;color:#fff}
.app-qr2__s{font-size:11.5px;color:#93a0c8;margin-top:2px}
.app-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(150,170,255,.18);border-radius:12px;overflow:hidden}
.app-nums>div{background:rgba(8,12,28,.6);padding:11px 6px;text-align:center}
.app-nums b{display:block;font-size:15px;font-weight:800;color:#9fe8cf}
.app-nums span{display:block;font-size:11px;color:#8d99bd;margin-top:2px}

/* ---------- 预览区外壳 ---------- */
.app-prev{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:18px}
.app-prev__hd{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap}
.app-prev__hd h2{margin:0;font-size:19px;font-weight:800;display:flex;align-items:center;gap:9px}
.app-prev__hd h2::before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,#0a9d6f,#2ee6a0)}
.app-prev__hd p{margin:9px 0 0;font-size:13.5px;line-height:1.75;color:var(--text-2);max-width:760px}
.app-prev__hd p b{color:var(--brand-strong)}
.app-prev__lb{flex:0 0 auto;font-size:12.5px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.2);padding:6px 12px;border-radius:20px}
.app-prev__body{display:flex;gap:30px;align-items:flex-start}
.app-prev__side{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:14px}
.app-side__card{background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.app-side__card h3{margin:0 0 12px;font-size:15px;font-weight:800}
.app-side__card p{margin:0 0 8px;font-size:12.8px;line-height:1.78;color:var(--text-2)}
.app-side__card p:last-child{margin-bottom:0}
.app-side__card p b{color:var(--text)}
.app-side__card--tip{background:#fffbef;border-color:#f5e6c0}
.app-side__card--tip h3{color:#8a6a2a}
.app-tabn{display:flex;align-items:flex-start;gap:11px;padding:9px 0;border-bottom:1px dashed var(--line-strong)}
.app-tabn:last-child{border-bottom:none}
.app-tabn__i{flex:0 0 auto;width:34px;height:34px;border-radius:11px;background:#fff;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:16px}
.app-tabn__i--pub{background:linear-gradient(135deg,#0a9d6f,#078256);border-color:transparent;color:#fff;box-shadow:0 6px 14px rgba(10,157,111,.3)}
.app-tabn__t{font-size:13.5px;font-weight:700;color:var(--text)}
.app-tabn__d{font-size:12.3px;color:var(--text-2);margin-top:3px;line-height:1.65}

/* ---------- 手机预览 ---------- */
.ph{position:relative;flex:0 0 336px;width:336px;height:672px;border-radius:40px;background:linear-gradient(160deg,#39435c,#0b0f17);padding:11px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 28px 62px rgba(10,20,40,.3),inset 0 0 0 1px rgba(255,255,255,.08)}
.ph::before{content:"";position:absolute;inset:11px;border-radius:30px;background:#f4f6f9}
.ph::after{content:"";position:absolute;left:50%;transform:translateX(-50%);top:15px;width:92px;height:20px;border-radius:12px;background:#0b0f17;z-index:5}
.ph>*{position:relative;z-index:2}
.ph__status{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:9px 18px 4px;font-size:11.5px;font-weight:600;color:#16202e;font-family:ui-monospace,Consolas,monospace}
.ph__status-r{font-size:10px;letter-spacing:.06em;color:#4a5563}
.ph__search{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin:6px 12px 10px;padding:8px 12px;border-radius:18px;background:#e9edf3}
.ph__search-i{font-size:12px;opacity:.5}
.ph__search-p{font-size:12px;color:#8e99a6}
.ph__scroll{flex:1 1 auto;overflow-y:auto;padding-bottom:8px;scrollbar-width:none}
.ph__scroll::-webkit-scrollbar{width:0}
.ph__home{flex:0 0 auto;height:16px;display:flex;align-items:center;justify-content:center;background:#fff}
.ph__home::after{content:"";width:112px;height:4px;border-radius:3px;background:#0b0f17;opacity:.26}

/* 轮播 */
.ph-banner{position:relative;height:130px;margin:0 12px;border-radius:14px;overflow:hidden}
.ph-bn{position:absolute;inset:0;display:none;align-items:center;gap:13px;padding:16px 18px;text-decoration:none;color:#fff}
.ph-bn.on{display:flex}
.ph-bn-1{background:linear-gradient(135deg,#0f3d2e,#12b98a)}
.ph-bn-2{background:linear-gradient(135deg,#1b1b3a,#6b46e0 60%,#ff2d95)}
.ph-bn-3{background:linear-gradient(135deg,#3a2408,#e8930a)}
.ph-bn-4{background:linear-gradient(135deg,#101a3a,#2a86e0)}
.ph-bn-5{background:linear-gradient(135deg,#0b0b0b,#4a4a4a)}
.ph-bn__ic{flex:0 0 auto;font-size:32px;line-height:1}
.ph-bn__b{flex:1 1 auto;min-width:0}
.ph-bn__t{font-size:16px;font-weight:800}
.ph-bn__s{font-size:11.5px;color:rgba(255,255,255,.85);margin-top:5px;line-height:1.5}
.ph-dots{display:flex;justify-content:center;gap:5px;padding:9px 0 4px}
.ph-dots__i{width:6px;height:6px;border-radius:50%;border:none;padding:0;background:rgba(11,15,23,.18);cursor:pointer;transition:.2s}
.ph-dots__i.on{width:16px;border-radius:3px;background:#0a9d6f}

/* 两排图标 */
.ph-gridsec{display:grid;grid-template-columns:repeat(5,1fr);gap:13px 4px;margin:6px 12px 0;padding:14px 8px;background:#fff;border-radius:14px}
.ph-ic{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none}
.ph-ic__b{width:42px;height:42px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-size:19px;background:#eef2f7;transition:.18s}
.ph-ic:nth-child(1) .ph-ic__b{background:linear-gradient(135deg,#e3f2ff,#c6e4ff)}
.ph-ic:nth-child(2) .ph-ic__b{background:linear-gradient(135deg,#ffe6ef,#ffc9dc)}
.ph-ic:nth-child(3) .ph-ic__b{background:linear-gradient(135deg,#f1e8ff,#dcc9ff)}
.ph-ic:nth-child(4) .ph-ic__b{background:linear-gradient(135deg,#e6f7ec,#c7ebd6)}
.ph-ic:nth-child(5) .ph-ic__b{background:linear-gradient(135deg,#e9eef5,#d3dce8)}
.ph-ic:nth-child(6) .ph-ic__b{background:linear-gradient(135deg,#fff3d9,#ffe2a8)}
.ph-ic:nth-child(7) .ph-ic__b{background:linear-gradient(135deg,#ffe9e4,#ffcdbf)}
.ph-ic:nth-child(8) .ph-ic__b{background:linear-gradient(135deg,#e4f0ff,#c6dcff)}
.ph-ic:nth-child(9) .ph-ic__b{background:linear-gradient(135deg,#e2fbf5,#bdf0e2)}
.ph-ic:nth-child(10) .ph-ic__b{background:linear-gradient(135deg,#fdf1d6,#f7dda6)}
.ph-ic:hover .ph-ic__b{transform:translateY(-2px) scale(1.04)}
.ph-ic__t{font-size:10.5px;color:#4a5563;white-space:nowrap}

/* 资源区 */
.ph-res{margin:10px 12px 0;background:#fff;border-radius:14px;padding:12px 12px 4px}
.ph-res__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ph-res__hd span{font-size:14px;font-weight:800;color:#16202e}
.ph-res__more{border:none;background:none;font-size:11.5px;color:#8e99a6;cursor:pointer;font-family:inherit}
.ph-res__i{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #f0f3f7;text-decoration:none}
.ph-res__i:last-child{border-bottom:none}
.ph-res__ic{flex:0 0 auto;width:46px;height:46px;border-radius:11px}
.ph-r1{background:linear-gradient(135deg,#0f3d2e,#12b98a)}
.ph-r2{background:linear-gradient(135deg,#4a1030,#e64980)}
.ph-r3{background:linear-gradient(135deg,#1b1b3a,#6b46e0)}
.ph-res__b{flex:1 1 auto;min-width:0}
.ph-res__t{font-size:12.8px;font-weight:600;color:#16202e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ph-res__s{font-size:11px;color:#8e99a6;margin-top:3px}
.ph-res__g{flex:0 0 auto;height:25px;padding:0 12px;border-radius:13px;background:#e8f6f0;color:#0a9d6f;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center}

/* 底部 5 键 */
.ph__tab{flex:0 0 auto;display:flex;align-items:flex-end;justify-content:space-around;background:#fff;border-top:1px solid #eef1f5;padding:7px 6px 0}
.ph-tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#9aa5b1;font-size:10px;position:relative;padding-bottom:4px}
.ph-tab__i{font-size:19px;line-height:1;transition:.16s}
.ph-tab__t{white-space:nowrap}
.ph-tab--on{color:#0a9d6f;font-weight:700}
.ph-tab--on .ph-tab__i{transform:translateY(-1px)}
.ph-tab--pub{margin-top:-26px}
.ph-tab--pub .ph-tab__i{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#0a9d6f,#078256);color:#fff;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:300;border:3px solid #fff;box-shadow:0 8px 18px rgba(10,157,111,.36)}
.ph-tab--pub .ph-tab__t{color:#0a9d6f;font-weight:700;font-size:10.5px}

/* ---------- 通用段落 ---------- */
.app-sec{margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.app-sec__hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:18px}
.app-sec__hd h2{margin:0;font-size:18px;font-weight:800;display:flex;align-items:center;gap:9px}
.app-sec__s{font-size:12.5px;color:var(--text-3)}
.app-sec__more{margin-left:auto;font-size:13px;color:var(--brand-strong);text-decoration:none}
.app-sec__more:hover{text-decoration:underline}
.app-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.app-feat{display:flex;gap:12px;padding:15px;border-radius:14px;background:var(--bg-soft);border:1px solid var(--line);transition:.18s}
.app-feat:hover{background:#fff;border-color:rgba(10,157,111,.35);transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,40,35,.08)}
.app-feat__ic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:#fff;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.app-feat__t{font-size:14px;font-weight:700;color:var(--text)}
.app-feat__d{margin-top:5px;font-size:12.6px;line-height:1.7;color:var(--text-2)}
.app-logs{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.app-log__i{display:flex;align-items:flex-start;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);font-size:13px}
.app-log__i:last-child{border-bottom:none}
.app-log__i:hover{background:var(--brand-soft-2)}
.app-log__v{flex:0 0 66px;font-family:ui-monospace,Consolas,monospace;font-weight:700;color:var(--brand-strong)}
.app-log__d{flex:0 0 96px;color:var(--text-3);font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.app-log__n{flex:1 1 auto;min-width:0;color:var(--text-2);line-height:1.7}
.app-ecos{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.app-eco__c{position:relative;padding:18px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;text-align:center;transition:.18s}
.app-eco__c:hover{border-color:rgba(10,157,111,.4);transform:translateY(-3px);box-shadow:0 12px 26px rgba(20,40,35,.09)}
.app-eco__ic{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;font-size:22px;margin-bottom:11px}
.ec-1{background:linear-gradient(135deg,#e6f7ec,#c7ebd6)}
.ec-2{background:linear-gradient(135deg,#e3f2ff,#c6e4ff)}
.ec-3{background:linear-gradient(135deg,#f1e8ff,#dcc9ff)}
.ec-4{background:linear-gradient(135deg,#ffe6ef,#ffc9dc)}
.app-eco__n{font-size:14.5px;font-weight:700;color:var(--text)}
.app-eco__d{margin-top:7px;font-size:12.4px;line-height:1.7;color:var(--text-2);min-height:42px}
.app-eco__qr{width:74px;height:74px;margin:10px auto 8px;border-radius:10px;background:repeating-conic-gradient(#dfe6e4 0 25%,#fff 0 50%) 50%/10px 10px;display:flex;align-items:center;justify-content:center;color:#9aa8a4;font-size:22px;border:1px solid var(--line)}
.app-eco__tag{display:inline-block;font-size:11.5px;color:var(--text-3);background:var(--bg-soft);border:1px solid var(--line);padding:2px 10px;border-radius:20px}
.app-dls{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.app-dl__c{padding:16px;border-radius:14px;background:var(--bg-soft);border:1px solid var(--line)}
.app-dl__ic{font-size:22px}
.app-dl__t{margin-top:9px;font-size:14px;font-weight:700;color:var(--text)}
.app-dl__d{margin-top:6px;font-size:12.6px;line-height:1.7;color:var(--text-2)}
.app-dl__s{margin-top:9px;font-size:11.5px;color:var(--text-3);padding-top:9px;border-top:1px dashed var(--line-strong)}
.app-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:24px 28px;border-radius:18px;background:linear-gradient(135deg,#0a9d6f,#078256 60%,#065f43);color:#fff;box-shadow:0 14px 32px rgba(10,157,111,.2)}
.app-cta h3{margin:0 0 8px;font-size:18px;font-weight:800}
.app-cta p{margin:0;font-size:13.5px;line-height:1.7;color:rgba(255,255,255,.86)}
.app-cta>div:first-child{flex:1 1 320px}
.app-cta__r{display:flex;gap:10px;flex:0 0 auto}

/* ---------- 站内右上角入口 ---------- */
.gtop__app{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:15px;background:var(--brand-soft);color:var(--brand-strong);font-size:13px;font-weight:600;text-decoration:none;transition:.16s}
.gtop__app:hover{background:var(--brand);color:#fff}

/* ---------- 响应式 ---------- */
@media (max-width:1280px){
  .ph{flex:0 0 300px;width:300px;height:626px}
  .ph-banner{height:118px}
  .app-feats,.app-dls{grid-template-columns:repeat(2,1fr)}
  .app-ecos{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1080px){
  .app-hero__in{flex-wrap:wrap;padding:26px 22px}
  .app-hero__r{flex:1 1 100%;flex-direction:row;flex-wrap:wrap}
  .app-qr{flex:0 0 232px}
  .app-qr2{flex:1 1 200px}
  .app-nums{flex:1 1 100%}
  .app-prev__body{flex-wrap:wrap;justify-content:center}
  .app-prev__side{flex:1 1 100%}
}
@media (max-width:760px){
  .app-hero__t{font-size:29px}
  .app-hero__btns{width:100%}
  .app-btn{flex:1 1 100%;justify-content:center}
  .app-hero__r{flex-direction:column}
  .app-qr{flex:1 1 auto}
  .app-prev{padding:16px}
  .ph{flex:0 0 300px;width:300px;height:620px}
  .app-feats,.app-dls,.app-ecos{grid-template-columns:1fr}
  .app-sec{padding:16px}
  .app-log__i{flex-wrap:wrap;gap:8px}
  .app-log__n{flex:1 1 100%}
  .app-cta{padding:20px}
  .app-cta__r{width:100%}
  .app-cta__r .app-btn{flex:1 1 0;height:46px;justify-content:center}
}

/* ============================================================
   第 28 轮 · 我的发布 / 我的下载（.mp-*）
   ============================================================ */
.mp-st{display:inline-block;flex:0 0 auto;font-size:11.5px;font-weight:600;padding:3px 11px;border-radius:20px;white-space:nowrap}
.mp-st--ok{color:#078256;background:#e8f6f0;border:1px solid rgba(10,157,111,.2)}
.mp-st--wait{color:#9a7420;background:#fff1d6;border:1px solid rgba(232,163,61,.28)}
.mp-st--no{color:#b23b31;background:#fdecea;border:1px solid rgba(229,86,75,.24)}
.mp-st--draft{color:#5b6b67;background:#f1f4f3;border:1px solid var(--line)}
.hist__del{transition:.16s}
.hist__del:hover{color:var(--brand-strong)}
@media (max-width:760px){
  .hist{flex-wrap:wrap;gap:8px}
  .hist__main{flex:1 1 100%;order:2}
  .hist__type{order:1}
  .mp-st{order:3;margin-right:auto}
  .hist__time{order:4}
  .hist__del{order:5}
}
/* ============================================================
   第 29 轮 · 分类分区页通用壳（.dv-*）+ 网赚中心（.mny-*）+ 免费资源（.frs-*）
   ============================================================ */

/* ---------- 通用 Hero ---------- */
.dv-hero{position:relative;overflow:hidden;border-radius:20px;color:#eaf0ff;margin-bottom:18px;box-shadow:0 16px 38px rgba(8,16,40,.22)}
.dv-hero--money{background:linear-gradient(135deg,#14100a 0%,#3a2a09 48%,#0c2a1e 100%)}
.dv-hero--free{background:linear-gradient(135deg,#08182f 0%,#11456a 50%,#0a5a45 100%)}
.dv-hero__bg{position:absolute;inset:0;background-image:radial-gradient(circle at 86% 14%,rgba(46,230,160,.18),transparent 44%),radial-gradient(circle at 6% 90%,rgba(255,200,90,.16),transparent 46%),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 60px)}
.dv-hero__in{position:relative;display:flex;gap:30px;padding:30px 32px}
.dv-hero__l{flex:1 1 auto;min-width:0}
.dv-hero__r{flex:0 0 300px}
.dv-hero__eyebrow{display:inline-block;font-size:12.5px;color:#ffe0a3;background:rgba(255,224,163,.12);border:1px solid rgba(255,224,163,.28);padding:4px 12px;border-radius:20px}
.dv-hero--free .dv-hero__eyebrow{color:#9fe8cf;background:rgba(46,230,160,.12);border-color:rgba(46,230,160,.28)}
.dv-hero__t{margin:14px 0 10px;font-size:36px;font-weight:800;color:#fff;line-height:1.1}
.dv-hero__d{margin:0 0 20px;font-size:14.5px;line-height:1.78;color:#c3cbe4;max-width:730px}
.dv-hero__d b{color:#9fe8cf}
.dv-hero--money .dv-hero__d b{color:#ffd58a}
.dv-hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(150,170,255,.16);border-radius:12px;overflow:hidden}
.dv-hero__stats>div{background:rgba(8,12,26,.52);padding:12px 14px;text-align:center}
.dv-hero__stats b{display:block;font-size:20px;font-weight:800;color:#9fe8cf;line-height:1.2}
.dv-hero--money .dv-hero__stats b{color:#ffd58a}
.dv-hero__stats span{display:block;margin-top:3px;font-size:12px;color:#8d99bd}

/* ---------- 通用锚点导航 ---------- */
.dv-tabs{position:sticky;top:0;z-index:30;margin:16px 0 20px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}
.dv-tabs__in{display:flex;gap:4px;overflow-x:auto;padding:7px 8px}
.dv-tabs__i{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:10px;font-size:13.5px;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:.16s}
.dv-tabs__i span{font-size:14px}
.dv-tabs__i:hover{background:var(--bg-soft);color:var(--text)}
.dv-tabs__i.on{background:var(--brand);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(10,157,111,.22)}

/* ---------- 通用分区壳 ---------- */
.dv-sec{margin-bottom:20px;padding:24px 26px;border:1px solid var(--line);border-radius:18px;background:#fff;scroll-margin-top:74px}
.dv-sec--dark{background:linear-gradient(160deg,#0f1410 0%,#141c14 55%,#101a20 100%);border-color:rgba(120,200,170,.18);color:#e3f0ec}
.dv-sec--warn{background:linear-gradient(160deg,#1b1410,#241a12);border-color:rgba(255,180,120,.2);color:#f6ebe2}
.dv-sec__hd{position:relative;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.dv-sec--dark .dv-sec__hd,.dv-sec--warn .dv-sec__hd{border-bottom-color:rgba(255,255,255,.12)}
.dv-sec__t{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.dv-sec__ic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;background:var(--brand-soft);font-size:18px}
.dv-sec--dark .dv-sec__ic{background:rgba(46,230,160,.14)}
.dv-sec--warn .dv-sec__ic{background:rgba(255,180,120,.16)}
.dv-sec__t h2{margin:0;font-size:20px;font-weight:800}
.dv-sec--dark .dv-sec__t h2,.dv-sec--warn .dv-sec__t h2{color:#fff}
.dv-sec__badge{font-size:11.5px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.18);padding:2px 9px;border-radius:20px}
.dv-sec--dark .dv-sec__badge{color:#9fe8cf;background:rgba(46,230,160,.12);border-color:rgba(46,230,160,.28)}
.dv-sec--warn .dv-sec__badge{color:#ffcf9a;background:rgba(255,180,120,.14);border-color:rgba(255,180,120,.3)}
.dv-sec__d{margin:10px 0 0;font-size:13.5px;line-height:1.75;color:var(--text-2);max-width:960px}
.dv-sec--dark .dv-sec__d,.dv-sec--warn .dv-sec__d{color:#a8b6b0}
.dv-sec__more{position:absolute;right:0;top:2px;font-size:13px;color:var(--brand-strong);text-decoration:none}
.dv-sec__more:hover{text-decoration:underline}
.dv-sec--dark .dv-sec__more{color:#9fe8cf}
.dv-sec--warn .dv-sec__more{color:#ffcf9a}

.dv-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 15px;border-radius:9px;font-size:13px;text-decoration:none;border:1px solid var(--line-strong);background:#fff;color:var(--text);cursor:pointer;font-family:inherit;transition:.16s}
.dv-btn:hover{border-color:var(--brand);color:var(--brand-strong)}
.dv-btn--sm{height:28px;padding:0 13px;font-size:12.5px;border-radius:8px}
.dv-btn--solid{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.dv-btn--solid:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.dv-btn--light{background:#fff;border-color:#fff;color:#04170f;font-weight:700}
.dv-btn--ghost{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.dv-btn--ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.dv-sec--dark .dv-btn{background:transparent;border-color:rgba(150,200,180,.3);color:#cfd8ff}
.dv-sec--dark .dv-btn:hover{border-color:#2ee6a0;color:#9fe8cf}
.dv-sec--dark .dv-btn--solid{background:linear-gradient(135deg,#2ee6a0,#12b98a);border-color:transparent;color:#04170f;font-weight:700}
.dv-sec--dark .dv-btn--solid:hover{filter:brightness(1.06);color:#04170f}

.dv-chip{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11.5px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-2);margin:0 5px 5px 0}
.dv-chip--soft{background:#f2f7ff;border-color:#e0eafb;color:#4a76c4}
.dv-sec--dark .dv-chip{background:rgba(255,255,255,.08);border-color:rgba(160,200,190,.24);color:#c4d8d2}
.dv-sec--warn .dv-chip{background:rgba(255,255,255,.08);border-color:rgba(255,190,140,.24);color:#f0d8c4}

.dv-tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.dv-tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px}
.dv-tbl thead th{background:var(--bg-soft);text-align:left;padding:12px 16px;font-size:13px;font-weight:700;color:var(--text);border-bottom:1px solid var(--line);white-space:nowrap}
.dv-tbl tbody td{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--text-2);vertical-align:middle}
.dv-tbl tbody tr:last-child td{border-bottom:none}
.dv-tbl tbody tr:hover{background:var(--brand-soft-2)}
.dv-tbl tbody td:first-child{color:var(--text);font-weight:600}

.dv-note{margin-top:16px;padding:12px 15px;border-radius:12px;background:rgba(255,207,102,.1);border:1px solid rgba(232,163,61,.28);font-size:12.5px;line-height:1.75;color:#8a6a2a}
.dv-note b{color:#6d5218}

.dv-cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:24px 28px;border-radius:18px;background:linear-gradient(135deg,#0a9d6f,#078256 60%,#065f43);color:#fff;box-shadow:0 14px 32px rgba(10,157,111,.2)}
.dv-cta>div:first-child{flex:1 1 320px}
.dv-cta h3{margin:0 0 8px;font-size:19px;font-weight:800}
.dv-cta p{margin:0;font-size:13.5px;line-height:1.7;color:rgba(255,255,255,.86)}
.dv-cta__r{display:flex;gap:10px;flex:0 0 auto}
.dv-cta__r .dv-btn{height:40px;padding:0 20px;font-size:14px}

/* ============================================================
   网赚中心 .mny-*
   ============================================================ */
.mny-rule{background:rgba(10,12,26,.7);border:1px solid rgba(255,190,120,.24);border-radius:16px;padding:16px}
.mny-rule__hd{font-size:13.5px;font-weight:700;color:#ffd58a;padding-bottom:11px;border-bottom:1px dashed rgba(255,190,120,.24)}
.mny-rule__i{display:flex;flex-direction:column;gap:3px;padding:11px 0;border-bottom:1px solid rgba(255,190,120,.12)}
.mny-rule__i:last-child{border-bottom:none;padding-bottom:0}
.mny-rule__i b{font-size:13.5px;color:#fff}
.mny-rule__i span{font-size:12.3px;line-height:1.6;color:#a8b6c4}

.mny-plats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mny-plat{padding:16px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(150,200,180,.18);transition:.2s}
.mny-plat:hover{transform:translateY(-3px);border-color:rgba(46,230,160,.44);box-shadow:0 14px 30px rgba(4,10,20,.4)}
.mny-plat__hd{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.mny-plat__logo{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#04170f;background:linear-gradient(135deg,#2ee6a0,#12b98a)}
.mny-plat--m2 .mny-plat__logo{background:linear-gradient(135deg,#7aa8ff,#4f6bff);color:#fff}
.mny-plat--m3 .mny-plat__logo{background:linear-gradient(135deg,#ffd58a,#f2994a)}
.mny-plat--m4 .mny-plat__logo{background:linear-gradient(135deg,#c9a6ff,#8b5cf6);color:#fff}
.mny-plat__n{font-size:14px;font-weight:700;color:#fff}
.mny-plat__t{font-size:12px;color:#8fa8a2;margin-top:2px}
.mny-plat__kv{display:flex;flex-direction:column;gap:1px;background:rgba(150,200,180,.12);border-radius:10px;overflow:hidden;margin-bottom:12px}
.mny-plat__kv>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;background:rgba(8,12,20,.5);font-size:12.5px}
.mny-plat__kv span{color:#8fa8a2}
.mny-plat__kv b{color:#dbe8e4;font-weight:600}
.mny-plat__tags{margin-bottom:14px;min-height:30px}
.mny-plat .dv-btn{width:100%}

.mny-vids{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mny-vid{padding:18px;border-radius:16px;background:#fff;border:1px solid #e2ece8;box-shadow:var(--shadow-sm);transition:.18s}
.mny-vid:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,50,40,.1)}
.mny-vid--k1{border-color:#ffe0c2}
.mny-vid--k2{border-color:#cfe4ff}
.mny-vid--k3{border-color:#d6f0e2}
.mny-vid__hd{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.mny-vid__ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);display:inline-flex;align-items:center;justify-content:center;font-size:19px}
.mny-vid--k1 .mny-vid__ic{background:#fff0dd}
.mny-vid--k2 .mny-vid__ic{background:#e4f0ff}
.mny-vid--k3 .mny-vid__ic{background:#e2fbf5}
.mny-vid__n{font-size:15px;font-weight:800;color:var(--text)}
.mny-vid__s{font-size:12.3px;color:var(--text-3);margin-top:3px}
.mny-vid__steps{list-style:none;margin:0 0 14px;padding:0;counter-reset:mvs}
.mny-vid__steps li{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;margin-bottom:6px;border-radius:9px;background:var(--bg-soft);font-size:12.8px;line-height:1.6;color:var(--text-2)}
.mny-vid__steps li i{flex:0 0 auto;width:19px;height:19px;border-radius:50%;background:#fff;border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-style:normal;font-weight:700;color:var(--brand-strong)}
.mny-vid__ways{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;font-size:12px}
.mny-vid__ways>span{color:var(--text-3)}
.mny-vid .dv-btn{width:100%}

.mny-lv{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 10px;border-radius:20px;white-space:nowrap}
.mny-lv--1{color:#078256;background:#e8f6f0;border:1px solid rgba(10,157,111,.2)}
.mny-lv--2{color:#9a7420;background:#fff1d6;border:1px solid rgba(232,163,61,.28)}
.mny-lv--3{color:#b23b31;background:#fdecea;border:1px solid rgba(229,86,75,.24)}

.mny-ecs{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.mny-ec{padding:18px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#fafcfb);transition:.18s}
.mny-ec:hover{transform:translateY(-3px);border-color:rgba(10,157,111,.4);box-shadow:0 14px 30px rgba(20,40,35,.09)}
.mny-ec__hd{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.mny-ec__ic{flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:19px}
.mny-ec--e1 .mny-ec__ic{background:#e4f0ff}
.mny-ec--e2 .mny-ec__ic{background:#e8f6f0}
.mny-ec--e3 .mny-ec__ic{background:#ffe6ef}
.mny-ec--e4 .mny-ec__ic{background:#f1e8ff}
.mny-ec__n{font-size:15px;font-weight:800;color:var(--text)}
.mny-ec__s{font-size:12.3px;color:var(--text-3);margin-top:3px}
.mny-ec__hd .mny-lv{margin-left:auto}
.mny-ec__cost{display:inline-block;font-size:12.3px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.18);padding:4px 11px;border-radius:20px;margin-bottom:12px}
.mny-ec__tips{list-style:none;margin:0;padding:0}
.mny-ec__tips li{font-size:12.8px;line-height:1.75;color:var(--text-2)}

.mny-sks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mny-sk{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:15px;border:1px solid var(--line);background:#fff;text-decoration:none;transition:.18s}
.mny-sk:hover{transform:translateY(-3px);border-color:rgba(10,157,111,.42);box-shadow:0 12px 26px rgba(20,40,35,.09)}
.mny-sk__ic{font-size:22px;line-height:1}
.mny-sk__n{font-size:14px;font-weight:700;color:var(--text)}
.mny-sk__d{font-size:12.3px;color:var(--text-3);line-height:1.6}
.mny-sk__p{font-size:12.5px;font-weight:600;color:var(--brand-strong);margin-top:2px}

.mny-warns{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.mny-warn{padding:16px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,180,120,.24)}
.mny-warn__hd{font-size:14px;font-weight:800;color:#ffb98a;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed rgba(255,180,120,.24)}
.mny-warn p{margin:0 0 7px;font-size:12.8px;line-height:1.75;color:#d8cfc6}
.mny-warn p:last-child{margin-bottom:0}

/* ============================================================
   免费资源 .frs-*
   ============================================================ */
.frs-tip{background:rgba(8,20,32,.7);border:1px solid rgba(120,200,190,.26);border-radius:16px;padding:16px}
.frs-tip__hd{font-size:13.5px;font-weight:700;color:#9fe8cf;padding-bottom:11px;border-bottom:1px dashed rgba(120,200,190,.24)}
.frs-tip__i{display:flex;flex-direction:column;gap:3px;padding:11px 0;border-bottom:1px solid rgba(120,200,190,.12)}
.frs-tip__i:last-child{border-bottom:none;padding-bottom:0}
.frs-tip__i b{font-size:13.5px;color:#fff}
.frs-tip__i span{font-size:12.3px;line-height:1.6;color:#9fb3c4}

.frs-doms{display:flex;flex-direction:column;gap:10px}
.frs-dom{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#fff;transition:.16s}
.frs-dom:hover{border-color:rgba(10,157,111,.4);box-shadow:0 8px 20px rgba(20,40,35,.07)}
.frs-dom__ic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.frs-dom--f1 .frs-dom__ic{background:#e4f0ff}
.frs-dom--f2 .frs-dom__ic{background:#e8f6f0}
.frs-dom--f3 .frs-dom__ic{background:#f1e8ff}
.frs-dom--f4 .frs-dom__ic{background:#fff0dd}
.frs-dom__b{flex:1 1 auto;min-width:0}
.frs-dom__n{font-size:14px;font-weight:700;color:var(--text)}
.frs-dom__m{font-size:12.3px;color:var(--text-3);margin-top:3px}
.frs-dom__lim{flex:0 0 auto;font-size:12.3px;color:#9a7420;background:#fff7e6;border:1px solid rgba(232,163,61,.26);padding:3px 10px;border-radius:20px;white-space:nowrap}
.frs-dom .dv-btn{flex:0 0 auto}

.frs-hosts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.frs-host{display:flex;flex-direction:column;padding:16px;border-radius:15px;border:1px solid var(--line);background:#fff;transition:.18s}
.frs-host:hover{transform:translateY(-3px);border-color:rgba(10,157,111,.42);box-shadow:0 12px 26px rgba(20,40,35,.09)}
.frs-host__hd{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.frs-host__ic{flex:0 0 auto;width:36px;height:36px;border-radius:11px;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:17px}
.frs-host--h1 .frs-host__ic{background:#e4f0ff}
.frs-host--h2 .frs-host__ic{background:#e2fbf5}
.frs-host--h3 .frs-host__ic{background:#e8f6f0}
.frs-host--h4 .frs-host__ic{background:#fff0dd}
.frs-host__n{font-size:14px;font-weight:700;color:var(--text)}
.frs-host__d{font-size:12.6px;line-height:1.7;color:var(--text-2);min-height:44px}
.frs-host__fit{font-size:12.3px;color:#4a76c4;background:#f2f7ff;border:1px solid #e0eafb;padding:3px 10px;border-radius:20px;align-self:flex-start;margin:10px 0}
.frs-host__note{font-size:12.3px;color:var(--text-3);line-height:1.65;flex:1 1 auto;padding-bottom:12px}
.frs-host .dv-btn{width:100%}

.frs-ssl{display:grid;grid-template-columns:1fr 300px;gap:20px}
.frs-ssl__steps{display:flex;flex-direction:column;gap:12px}
.frs-step{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;border-radius:13px;background:var(--bg-soft);border:1px solid var(--line)}
.frs-step__no{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#0a9d6f,#078256);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
.frs-step__t{font-size:14px;font-weight:700;color:var(--text)}
.frs-step__d{margin-top:5px;font-size:12.8px;line-height:1.7;color:var(--text-2)}
.frs-ssl__aside{padding:16px;border-radius:13px;background:#f6fbf8;border:1px solid #dcefe6}
.frs-ssl__k{font-size:12.5px;font-weight:700;color:var(--brand-strong);margin-bottom:8px}
.frs-ssl__k+.frs-ssl__k,.frs-ssl__aside p+.frs-ssl__k{margin-top:14px}
.frs-ssl__aside p{margin:0 0 6px;font-size:12.6px;line-height:1.72;color:var(--text-2)}

.frs-cdns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.frs-cdn{padding:16px;border-radius:15px;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#fafcfb)}
.frs-cdn__n{font-size:14px;font-weight:700;color:var(--text)}
.frs-cdn__d{margin-top:8px;font-size:12.7px;line-height:1.72;color:var(--text-2)}
.frs-cdn__note{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line-strong);font-size:12.2px;color:#9a7420}

.frs-lv{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 10px;border-radius:20px;white-space:nowrap}
.frs-lv--ok{color:#078256;background:#e8f6f0;border:1px solid rgba(10,157,111,.2)}
.frs-lv--mid{color:#9a7420;background:#fff1d6;border:1px solid rgba(232,163,61,.28)}

.frs-mats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.frs-mat{display:flex;align-items:center;gap:13px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#fff;text-decoration:none;transition:.18s}
.frs-mat:hover{transform:translateY(-3px);border-color:rgba(10,157,111,.42);box-shadow:0 12px 26px rgba(20,40,35,.09)}
.frs-mat__ph{flex:0 0 auto;width:52px;height:52px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-size:24px}
.frs-mat--ma-1 .frs-mat__ph{background:linear-gradient(135deg,#e3f2ff,#c6e4ff)}
.frs-mat--ma-2 .frs-mat__ph{background:linear-gradient(135deg,#ffe6ef,#ffc9dc)}
.frs-mat--ma-3 .frs-mat__ph{background:linear-gradient(135deg,#f1e8ff,#dcc9ff)}
.frs-mat--ma-4 .frs-mat__ph{background:linear-gradient(135deg,#e6f7ec,#c7ebd6)}
.frs-mat--ma-5 .frs-mat__ph{background:linear-gradient(135deg,#fff3d9,#ffe2a8)}
.frs-mat--ma-6 .frs-mat__ph{background:linear-gradient(135deg,#e2fbf5,#bdf0e2)}
.frs-mat__b{flex:1 1 auto;min-width:0}
.frs-mat__n{font-size:14px;font-weight:700;color:var(--text)}
.frs-mat__d{margin-top:4px;font-size:12.3px;color:var(--text-3);line-height:1.6}
.frs-mat__tag{flex:0 0 auto;font-size:11.5px;color:var(--text-3);background:var(--bg-soft);border:1px solid var(--line);padding:2px 9px;border-radius:20px}

.frs-learns{display:flex;flex-direction:column;gap:10px}
.frs-learn{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#fff;transition:.16s}
.frs-learn:hover{border-color:rgba(10,157,111,.4);box-shadow:0 8px 20px rgba(20,40,35,.07)}
.frs-learn__b{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--bg-soft);display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.frs-learn__t{font-size:14px;font-weight:700;color:var(--text)}
.frs-learn__d{font-size:12.3px;color:var(--text-3);margin-top:3px}
.frs-learn__p{margin-left:auto;flex:0 0 auto;font-size:12.3px;font-weight:600;color:var(--brand-strong);background:var(--brand-soft);padding:3px 11px;border-radius:20px}

.frs-notes{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.frs-note{padding:16px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,180,120,.24)}
.frs-note__hd{font-size:14px;font-weight:800;color:#ffb98a;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed rgba(255,180,120,.24)}
.frs-note p{margin:0 0 7px;font-size:12.8px;line-height:1.75;color:#d8cfc6}
.frs-note p:last-child{margin-bottom:0}

/* ---------- 响应式 ---------- */
@media (max-width:1280px){
  .mny-plats{grid-template-columns:repeat(2,1fr)}
  .frs-hosts{grid-template-columns:repeat(2,1fr)}
  .mny-sks{grid-template-columns:repeat(3,1fr)}
  .frs-ssl{grid-template-columns:1fr 260px}
  .dv-hero__r{flex:0 0 280px}
}
@media (max-width:1080px){
  .dv-hero__in{flex-wrap:wrap;padding:24px 22px}
  .dv-hero__r{flex:1 1 100%}
  .dv-hero__stats{grid-template-columns:repeat(2,1fr)}
  .mny-vids,.frs-cdns,.frs-mats{grid-template-columns:repeat(2,1fr)}
  .mny-ecs,.mny-warns,.frs-notes{grid-template-columns:1fr}
  .mny-sks{grid-template-columns:repeat(2,1fr)}
  .frs-ssl{grid-template-columns:1fr}
  .dv-sec{padding:20px}
  .dv-sec__more{position:static;display:inline-block;margin-top:10px}
}
@media (max-width:760px){
  .dv-hero__t{font-size:28px}
  .mny-plats,.mny-vids,.frs-hosts,.frs-cdns,.frs-mats,.mny-sks{grid-template-columns:1fr}
  .dv-sec{padding:16px;border-radius:14px;scroll-margin-top:66px}
  .dv-tabs{border-radius:12px}
  .dv-tabs__i{padding:7px 12px;font-size:13px}
  .frs-dom,.frs-learn{flex-wrap:wrap;gap:10px}
  .frs-dom__b,.frs-learn>div{flex:1 1 100%}
  .frs-dom__lim{margin-left:0}
  .frs-dom .dv-btn,.frs-learn .frs-learn__p{width:100%;margin-left:0;text-align:center;justify-content:center}
  .mny-ec__hd{flex-wrap:wrap}
  .mny-ec__hd .mny-lv{margin-left:0}
  .dv-cta{padding:20px}
  .dv-cta__r{width:100%}
  .dv-cta__r .dv-btn{flex:1 1 0}
}
/* 技能变现卡：图标底纹 + 8 组编号配色（第 29 轮补充） */
.mny-sk__ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;background:var(--brand-soft);font-size:22px;line-height:1}
.mny-sk--s1 .mny-sk__ic{background:#e8f2ff;box-shadow:inset 0 0 0 1px #d6e6ff}
.mny-sk--s2 .mny-sk__ic{background:#eafaf1;box-shadow:inset 0 0 0 1px #d3f2e0}
.mny-sk--s3 .mny-sk__ic{background:#fff3e6;box-shadow:inset 0 0 0 1px #ffe4c9}
.mny-sk--s4 .mny-sk__ic{background:#eef0ff;box-shadow:inset 0 0 0 1px #dfe3ff}
.mny-sk--s5 .mny-sk__ic{background:#fdf0f6;box-shadow:inset 0 0 0 1px #fbdfec}
.mny-sk--s6 .mny-sk__ic{background:#e9f7fb;box-shadow:inset 0 0 0 1px #d4eef7}
.mny-sk--s7 .mny-sk__ic{background:#f3f0fd;box-shadow:inset 0 0 0 1px #e5dffb}
.mny-sk--s8 .mny-sk__ic{background:#f2f6ea;box-shadow:inset 0 0 0 1px #e3eed2}
.mny-sk--s1 .mny-sk__p{color:#2f6fd0}
.mny-sk--s2 .mny-sk__p{color:#12925f}
.mny-sk--s3 .mny-sk__p{color:#c0701c}
.mny-sk--s4 .mny-sk__p{color:#4a5ad0}
.mny-sk--s5 .mny-sk__p{color:#c23a78}
.mny-sk--s6 .mny-sk__p{color:#1a7f9c}
.mny-sk--s7 .mny-sk__p{color:#6a4fc4}
.mny-sk--s8 .mny-sk__p{color:#5d7a26}
/* ============================================================
   第 30 轮 · 顶部导航视觉分组（.catnav__sep）+ 行业源码故事页（.sc-*）
   ============================================================ */

/* ---------- 顶部导航分组分隔件 ---------- */
.catnav__sep{flex:0 0 auto;width:1px;height:20px;align-self:center;background:var(--line-strong);margin:0 9px}

/* ---------- Hero ---------- */
.sc-hero{position:relative;overflow:hidden;border-radius:20px;margin-bottom:18px;color:#e8eefc;background:linear-gradient(135deg,#0b1020 0%,#131a33 46%,#0c2019 100%);box-shadow:0 18px 42px rgba(8,14,32,.24)}
.sc-hero__bg{position:absolute;inset:0;background-image:radial-gradient(circle at 84% 12%,rgba(46,230,160,.16),transparent 45%),radial-gradient(circle at 8% 88%,rgba(90,150,255,.16),transparent 46%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 64px)}
.sc-hero__in{position:relative;display:flex;gap:28px;padding:32px 34px}
.sc-hero__l{flex:1 1 auto;min-width:0}
.sc-hero__r{flex:0 0 292px}
.sc-hero__eyebrow{display:inline-block;font-size:12.5px;color:#9fe8cf;background:rgba(46,230,160,.12);border:1px solid rgba(46,230,160,.3);padding:4px 12px;border-radius:20px}
.sc-hero h1{margin:14px 0 10px;font-size:38px;font-weight:800;color:#fff;line-height:1.1;letter-spacing:.5px}
.sc-hero__d{margin:0 0 20px;font-size:14.5px;line-height:1.8;color:#c3cbe4;max-width:740px}
.sc-hero__d b{color:#9fe8cf}
.sc-hero__acts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.sc-hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(150,170,255,.16);border-radius:12px;overflow:hidden}
.sc-hero__stats>div{background:rgba(8,12,26,.52);padding:12px 14px;text-align:center}
.sc-hero__stats b{display:block;font-size:20px;font-weight:800;color:#9fe8cf;line-height:1.2}
.sc-hero__stats span{display:block;margin-top:3px;font-size:12px;color:#8d99bd}
.sc-hero__card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:18px 18px 15px}
.sc-hero__card h4{margin:0 0 11px;font-size:14px;font-weight:700;color:#fff}
.sc-hero__card ol{margin:0;padding-left:18px}
.sc-hero__card li{font-size:12.8px;line-height:1.72;color:#b9c3dd;margin-bottom:8px}
.sc-hero__card li:last-child{margin-bottom:0}

/* ---------- 锚点导航 ---------- */
.sc-tabs{position:sticky;top:0;z-index:30;margin:16px 0 18px;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}
.sc-tabs__in{display:flex;gap:4px;overflow-x:auto;padding:7px 8px}
.sc-tabs__i{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;font-size:13.5px;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:.16s}
.sc-tabs__i span{font-size:14px}
.sc-tabs__i:hover{background:var(--bg-soft);color:var(--text)}
.sc-tabs__i.on{background:#0e1729;color:#fff;font-weight:600}

/* ---------- 速查区 ---------- */
.sc-index{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.sc-index__col{padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.sc-index__h{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--text)}
.sc-index__links{display:flex;flex-wrap:wrap;gap:8px}
.sc-index__links a{font-size:13px;color:var(--text-2);text-decoration:none;padding:6px 12px;border-radius:9px;background:var(--bg-soft);border:1px solid var(--line);transition:.16s}
.sc-index__links a:hover{border-color:var(--brand);color:var(--brand-strong);background:#fff}
.sc-index__tags{display:flex;flex-wrap:wrap;gap:7px}
.sc-index__tags span{font-size:12.2px;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.18);padding:4px 10px;border-radius:20px}

/* ---------- 分区 ---------- */
.sc-sec{margin-bottom:20px;padding:24px 26px;border:1px solid var(--line);border-radius:18px;background:#fff;scroll-margin-top:74px}
.sc-sec__hd{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.sc-sec__no{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:linear-gradient(140deg,#0e1729,#1d3a30);color:#9fe8cf;font-size:15px;font-weight:800;letter-spacing:.5px}
.sc-sec__t{margin:0;font-size:20px;font-weight:800}
.sc-sec__d{margin:8px 0 0;font-size:13.5px;line-height:1.75;color:var(--text-2);max-width:940px}

/* ---------- 故事块 ---------- */
.sc-story{position:relative;display:flex;gap:16px;padding:20px 0}
.sc-story+.sc-story{border-top:1px dashed var(--line-strong)}
.sc-story:first-of-type{padding-top:0}
.sc-story__no{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);font-size:14px;font-weight:800}
.sc-story__main{flex:1 1 auto;min-width:0}
.sc-story__hd{margin-bottom:14px}
.sc-story__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.sc-story__ind{font-size:11.5px;font-weight:600;color:var(--brand-strong);background:var(--brand-soft);border:1px solid rgba(10,157,111,.18);padding:2px 9px;border-radius:20px}
.sc-story__yr{font-size:12px;color:var(--text-3)}
.sc-story__t{margin:0 0 10px;font-size:17.5px;font-weight:800;line-height:1.42;color:var(--text)}
.sc-story__stack{display:flex;flex-wrap:wrap;gap:6px}
.sc-story__stack span{font-size:11.8px;color:var(--text-2);background:var(--bg-soft);border:1px solid var(--line);padding:3px 9px;border-radius:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* 四拍：痛点 / 为什么不买现成的 / 技术怎么落地 / 沉淀成什么 */
.sc-beats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.sc-beat{padding:13px 15px;border-radius:13px;border:1px solid var(--line);background:#fbfcfe}
.sc-beat__k{display:inline-block;font-size:12px;font-weight:700;margin-bottom:7px;padding:2px 9px;border-radius:7px;color:var(--text-2);background:var(--bg-soft)}
.sc-beat p{margin:0;font-size:13.4px;line-height:1.82;color:var(--text-2)}
.sc-beat p b{color:var(--text)}
.sc-beat p code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.4px;background:#eef2f8;border:1px solid #e2e8f2;border-radius:5px;padding:1px 5px;color:#31527e}
.sc-beat--pain{background:#fff8f4;border-color:#f7e2d4}
.sc-beat--pain .sc-beat__k{color:#b4551c;background:#fdeee2}
.sc-beat--why{background:#f8f7ff;border-color:#e6e2f8}
.sc-beat--why .sc-beat__k{color:#5b45b8;background:#efecfc}
.sc-beat--how{background:#f4f9ff;border-color:#dbe8fa}
.sc-beat--how .sc-beat__k{color:#2b5fa8;background:#e7f0fd}
.sc-beat--out{background:#f3fbf6;border-color:#d8efe2}
.sc-beat--out .sc-beat__k{color:#0d7a52;background:#e3f6ec}

.sc-story__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
.sc-story__src{font-size:12.2px;color:var(--text-3)}
.sc-story__acts{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- 避坑忠告 ---------- */
.sc-notes{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}
.sc-note{display:flex;gap:12px;padding:15px 16px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13)}
.sc-note__no{flex:0 0 auto;font-size:15px;font-weight:800;color:#ffcf9a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.5}
.sc-note h4{margin:0 0 7px;font-size:14px;font-weight:700;color:#fff}
.sc-note p{margin:0;font-size:13px;line-height:1.78;color:#a8b6b0}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .sc-hero__r{flex:0 0 262px}
  .sc-hero h1{font-size:34px}
}
@media (max-width:860px){
  .sc-hero__in{flex-direction:column;padding:26px 22px}
  .sc-hero__r{flex:1 1 auto}
  .sc-index{grid-template-columns:1fr}
  .sc-beats{grid-template-columns:1fr}
  .sc-notes{grid-template-columns:1fr}
}
@media (max-width:760px){
  .sc-sec{padding:18px 16px}
  .sc-hero h1{font-size:29px}
  .sc-hero__stats{grid-template-columns:repeat(2,1fr)}
  .sc-story{gap:11px}
  .sc-story__t{font-size:16px}
  .sc-story__foot{flex-direction:column;align-items:flex-start}
  .sc-sec__hd{gap:11px}
  .sc-sec__no{width:38px;height:38px;font-size:13.5px}
  .catnav__sep{margin:0 6px}
}
/* ============================================================
   第 33 轮 · 治理体系：危险资源标识 / 责任卡 / 社区法庭 / 治理中心 / 参与度认证
   ============================================================ */

.btn--danger{background:#c0392b;border-color:#c0392b;color:#fff;font-weight:600}
.btn--danger:hover{background:#a83226;border-color:#a83226;color:#fff}

/* ---------- 危险资源标识（detail.html）---------- */
.risk{border:1px solid #f0c9c4;background:#fdf4f3}
.risk__hd{display:flex;gap:13px;align-items:flex-start;padding:16px 20px;border-bottom:1px solid #f3d8d4}
.risk__badge{flex:0 0 auto;display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:7px;background:#c0392b;color:#fff;font-size:13px;font-weight:700;letter-spacing:.5px}
.risk__t{font-size:16px;font-weight:800;color:#8e2b20;line-height:1.5}
.risk__s{margin-top:5px;font-size:13.5px;color:#a4645a;line-height:1.7}
.risk__trig{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#f3d8d4}
.risk__trigi{background:#fdf4f3;padding:13px 14px;text-align:center}
.risk__trigi b{display:block;font-size:19px;font-weight:800;color:#c0392b;line-height:1.25}
.risk__trigi span{display:block;margin-top:4px;font-size:12px;color:#a4645a;line-height:1.55}
.risk__note{margin:0;padding:14px 20px;font-size:13.5px;line-height:1.8;color:#7a5b55;background:#fdf8f7}
.risk__note b{color:#8e2b20}
.risk__acts{display:flex;gap:9px;flex-wrap:wrap;padding:15px 20px;border-top:1px solid #f3d8d4}

/* ---------- 资源责任信息卡 ---------- */
.resp{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.resp__i{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#fff;font-size:14px}
.resp__i span{color:var(--text-3);flex:0 0 auto}
.resp__i b{font-weight:600;text-align:right}
.resp__warn{color:#c0392b}

/* ---------- 评论区治理工具条 ---------- */
.cmtool{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}
.cmtool__l{font-size:13.5px;color:var(--text-2);line-height:1.7}
.cmtool__l b{color:var(--text)}
.cmtool__acts{display:flex;gap:9px;flex-wrap:wrap}
.cmtool__rep{font-size:13px;color:#c0392b;text-decoration:none;cursor:pointer}
.cmtool__rep:hover{text-decoration:underline}

/* ---------- Hero 主题变体（复用 .dv-hero）---------- */
.dv-hero--court{background:linear-gradient(135deg,#120d1c 0%,#2a1430 48%,#1b0f14 100%)}
.dv-hero--gov{background:linear-gradient(135deg,#0d1418 0%,#123040 50%,#0b2a22 100%)}
.dv-hero--points{background:linear-gradient(135deg,#141105 0%,#2e2508 50%,#0d2318 100%)}

/* ---------- 社区法庭（court.html）---------- */
.ct-quota{padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;margin-bottom:20px}
.ct-quota__hd{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.ct-quota__t{font-size:16px;font-weight:800}
.ct-quota__t span{font-size:13px;font-weight:400;color:var(--text-3);margin-left:8px}
.ct-quota__n{font-size:13.5px;color:var(--text-2)}
.ct-quota__n b{font-size:19px;color:var(--brand-strong);font-weight:800}
.ct-bar{height:11px;border-radius:20px;background:var(--bg-soft);overflow:hidden}
.ct-bar__in{height:100%;border-radius:20px;background:linear-gradient(90deg,#12b98a,#0a9d6f)}
.ct-quota__ft{margin-top:10px;font-size:12.5px;color:var(--text-3);line-height:1.7}

.ct-me{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:20px}
.ct-me>div{background:#fff;padding:15px 16px;text-align:center}
.ct-me b{display:block;font-size:21px;font-weight:800;color:var(--brand-strong);line-height:1.2}
.ct-me span{display:block;margin-top:4px;font-size:12.5px;color:var(--text-3)}

.ct-case{border:1px solid var(--line);border-radius:16px;background:#fff;padding:20px 22px;margin-bottom:14px}
.ct-case__hd{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:6px}
.ct-case__no{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--text-3)}
.ct-case__type{font-size:11.5px;font-weight:600;color:#5b45b8;background:#efecfc;border:1px solid #e6e2f8;padding:2px 10px;border-radius:20px}
.ct-case__type--ban{color:#a83226;background:#fdeeea;border-color:#f5d6d0}
.ct-case__type--copy{color:#b4551c;background:#fdeee2;border-color:#f7e2d4}
.ct-case__t{margin:0 0 14px;font-size:17px;font-weight:800;line-height:1.5}
.ct-sides{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.ct-side{padding:14px 16px;border-radius:13px;border:1px solid var(--line)}
.ct-side--a{background:#f4f9ff;border-color:#dbe8fa}
.ct-side--b{background:#fff8f4;border-color:#f7e2d4}
.ct-side__k{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:7px;margin-bottom:8px}
.ct-side--a .ct-side__k{color:#2b5fa8;background:#e7f0fd}
.ct-side--b .ct-side__k{color:#b4551c;background:#fdeee2}
.ct-side p{margin:0;font-size:13.4px;line-height:1.8;color:var(--text-2)}
.ct-side p b{color:var(--text)}
.ct-vote{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}
.ct-vote__b{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:9px;border:1px solid var(--line-strong);background:#fff;font-size:13.5px;color:var(--text);cursor:pointer;font-family:inherit;transition:.16s}
.ct-vote__b:hover{border-color:var(--brand);color:var(--brand-strong)}
.ct-vote__b.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.ct-vote__stat{margin-left:auto;font-size:13px;color:var(--text-3)}
.ct-vote__stat b{color:var(--text-2)}

.ct-rank{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.ct-rank th{background:var(--bg-soft);color:var(--text-2);font-weight:600;font-size:13px;text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}
.ct-rank td{padding:12px 14px;border-bottom:1px solid var(--line)}
.ct-rank tr:last-child td{border-bottom:none}
.ct-lv{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--brand-soft);color:var(--brand-strong)}
.ct-lv--2{background:#eef0ff;color:#4a5ad0}
.ct-lv--3{background:#fdf0f6;color:#c23a78}
.ct-lv--4{background:#fff3e6;color:#c0701c}

.ct-rules{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ct-rule{padding:14px 16px;border-radius:13px;border:1px solid var(--line);background:#fbfcfe}
.ct-rule h4{margin:0 0 7px;font-size:14px;font-weight:700}
.ct-rule p{margin:0;font-size:13.2px;line-height:1.78;color:var(--text-2)}

/* ---------- 治理中心（governance.html）---------- */
.gv-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gv-col{border-radius:14px;padding:16px 18px;border:1px solid var(--line)}
.gv-col--ok{background:#f3fbf6;border-color:#d8efe2}
.gv-col--no{background:#fdf4f3;border-color:#f0c9c4}
.gv-col h4{margin:0 0 11px;font-size:14.5px;font-weight:700}
.gv-col--ok h4{color:#0d7a52}
.gv-col--no h4{color:#a83226}
.gv-col ul{margin:0;padding-left:19px}
.gv-col li{font-size:13.4px;line-height:1.9;color:var(--text-2)}
.gv-col li b{color:var(--text)}

.gv-pubstat{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px}
.gv-pubstat>div{background:#fff;padding:15px 16px;text-align:center}
.gv-pubstat b{display:block;font-size:21px;font-weight:800;color:#c0392b;line-height:1.2}
.gv-pubstat span{display:block;margin-top:4px;font-size:12.5px;color:var(--text-3)}

.gv-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gv-field{display:flex;flex-direction:column;gap:7px}
.gv-field--full{grid-column:1/-1}
.gv-field label{font-size:13.5px;font-weight:600;color:var(--text-2)}
.gv-field input,.gv-field select,.gv-field textarea{font-family:inherit}
.gv-field textarea{min-height:96px;padding:11px 13px;border:1px solid var(--line-strong);border-radius:10px;font-size:14px;resize:vertical}
.gv-hint{font-size:12.5px;color:var(--text-3);line-height:1.7}

/* ---------- 参与度与认证（points.html）---------- */
.pd-check{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 12px}
.pd-day{flex:0 0 auto;width:76px;padding:11px 6px;border-radius:12px;border:1px solid var(--line);background:#fff;text-align:center}
.pd-day b{display:block;font-size:13px;color:var(--text-2)}
.pd-day span{display:block;margin-top:5px;font-size:18px;line-height:1}
.pd-day.on{background:#eafaf1;border-color:#c9ead9}
.pd-day.on b{color:var(--brand-strong)}
.pd-day.off{background:var(--bg-soft);opacity:.62}
.pd-day--today{border-color:var(--brand);box-shadow:0 0 0 2px rgba(10,157,111,.13)}

.pd-apps{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.pd-app{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px 20px}
.pd-app__hd{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.pd-app__ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;font-size:21px;background:var(--brand-soft)}
.pd-app--a1 .pd-app__ic{background:#e6f7ef}
.pd-app--a2 .pd-app__ic{background:#e8f2ff}
.pd-app--a3 .pd-app__ic{background:#fff3e6}
.pd-app--a4 .pd-app__ic{background:#eef0ff}
.pd-app--a5 .pd-app__ic{background:#fdf0f6}
.pd-app--a6 .pd-app__ic{background:#e9f7fb}
.pd-app__n{font-size:15.5px;font-weight:800}
.pd-app__d{margin:0 0 12px;font-size:13.3px;line-height:1.78;color:var(--text-2)}
.pd-app__req{border-radius:12px;background:var(--bg-soft);padding:12px 14px;margin-bottom:12px}
.pd-app__req div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px;line-height:1.9;color:var(--text-2)}
.pd-app__req b{font-weight:600;color:var(--text)}
.pd-app__req .ok{color:#0d7a52;font-weight:700}
.pd-app__req .no{color:#c0392b;font-weight:700}
.pd-app__barrow{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pd-app__bar{flex:1 1 auto;height:8px;border-radius:20px;background:var(--bg-soft);overflow:hidden}
.pd-app__bar i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#12b98a,#0a9d6f)}
.pd-app__pct{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--brand-strong)}
.pd-app__acts{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.pd-app__gate{font-size:12.5px;color:var(--text-3);line-height:1.7;margin-bottom:12px}
.pd-app__gate b{color:#c0392b}
.pd-app--ready .pd-app__gate b{color:#0d7a52}


/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .ct-me{grid-template-columns:repeat(2,1fr)}
  .risk__trig{grid-template-columns:repeat(2,1fr)}
  .gv-pubstat{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .ct-sides{grid-template-columns:1fr}
  .ct-rules{grid-template-columns:1fr}
  .gv-cols{grid-template-columns:1fr}
  .pd-apps{grid-template-columns:1fr}
}
@media (max-width:760px){
  .resp{grid-template-columns:1fr}
  .risk__hd{flex-direction:column}
  .risk__acts .btn{width:100%;justify-content:center}
  .ct-case{padding:16px 15px}
  .gv-form{grid-template-columns:1fr}
  .ct-rank{font-size:13px}
  .ct-rank th{padding:9px 10px}
  .ct-rank td{padding:10px}
  .pd-day{width:64px}
  .ct-vote__stat{margin-left:0;width:100%}
}

/* ---------- 风险监测态（未触发阈值，琥珀色）---------- */
.risk--watch{border-color:#f0dcb4;background:#fffdf6}
.risk--watch .risk__hd{border-bottom-color:#f4e5c9}
.risk--watch .risk__badge{background:#b8860b}
.risk--watch .risk__t{color:#8a6510}
.risk--watch .risk__s{color:#9c8348}
.risk--watch .risk__trig{background:#f4e5c9}
.risk--watch .risk__trigi{background:#fffdf6}
.risk--watch .risk__trigi b{color:#b8860b}
.risk--watch .risk__trigi span{color:#9c8348}
.risk--watch .risk__note{background:#fffefb;color:#8a7a55}
.risk--watch .risk__note b{color:#8a6510}
.risk--watch .risk__acts{border-top-color:#f4e5c9}

/* ---------- 责任信息卡说明 ---------- */
.resp__note{margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);font-size:13.4px;line-height:1.85;color:var(--text-2)}
.resp__note b{color:var(--text)}
.resp__note a{color:var(--brand-strong);font-weight:600}

/* ---------- 被折叠的评论 ---------- */
.cmt--fold{background:var(--bg-soft);border-radius:12px;padding:16px 14px;border-bottom:1px solid var(--line);opacity:.92}
.cmt--fold .cmt__text{color:var(--text-3)}
.cmt--fold .cmt__name{font-weight:600}
.cmt__tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:8px;font-size:12px;font-weight:700;background:#fdeeea;color:#a83226}
.cmt__rev{margin-top:9px;font-size:12.8px;color:var(--text-3);line-height:1.7}
.cmt__rev a{color:var(--brand-strong);font-weight:600}

/* ---------- Hero 右侧通用说明卡（第 33 轮，治理/认证页复用）---------- */
.dv-hero__card{border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.07);padding:17px 18px 19px}
.dv-hero__card h4{margin:0 0 12px;font-size:14.5px;font-weight:800;color:#fff;display:flex;align-items:center;gap:7px}
.dv-hero__cardrow{display:flex;gap:9px;font-size:12.9px;line-height:1.72;color:rgba(255,255,255,.82);margin-bottom:9px}
.dv-hero__cardrow:last-child{margin-bottom:0}
.dv-hero__cardrow b{flex:0 0 62px;color:#fff;font-weight:700}
.dv-hero__cardrow i{font-style:normal;display:inline-flex;flex:0 0 18px;justify-content:center}

/* ============================================================
   第 34 轮：新媒体矩阵（.md-*）+ Steam 手机版补充
   ============================================================ */

/* ---------- Hero 变体：新媒体矩阵 ---------- */
.dv-hero--media{background:linear-gradient(135deg,#1a0d14 0%,#3a1020 48%,#12100e 100%)}

/* ---------- 新媒体平台卡 ---------- */
.md-plats{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.md-plat{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px 20px}
.md-plat__hd{display:flex;align-items:center;gap:12px;margin-bottom:13px}
.md-plat__logo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.3px;line-height:1.15;text-align:center}
.md-plat--xhs .md-plat__logo{background:#ff2442}
.md-plat--dy .md-plat__logo{background:#161823}
.md-plat__n{font-size:15.5px;font-weight:800;line-height:1.4}
.md-plat__t{margin-top:3px;font-size:12.5px;color:var(--text-3);line-height:1.6}
.md-plat__kv{border-radius:12px;background:var(--bg-soft);padding:2px 14px;margin-bottom:13px}
.md-plat__kv div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;line-height:2.12;border-bottom:1px solid var(--line)}
.md-plat__kv div:last-child{border-bottom:none}
.md-plat__kv span{flex:0 0 auto;color:var(--text-3)}
.md-plat__kv b{font-weight:600;text-align:right}
.md-plat__tags{margin-bottom:13px}
.md-plat__acts{display:flex;gap:9px;flex-wrap:wrap}

/* ---------- Steam 手机版能力条 ---------- */
.stm-bar{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.tagrow button.chip{font-family:inherit;line-height:1.35}

/* ---------- {pages} 分页控件（View::pages 输出 .pager/.pg，全站通用） ---------- */
.pager{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.pager-total{font-size:14px;color:var(--text-3);margin-right:6px}
.pager .pg{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;color:var(--text-2);font-size:14.5px;line-height:1;transition:.15s}
.pager .pg:hover{border-color:var(--brand);color:var(--brand-strong)}
.pager .pg.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.pager .pg-gap{color:var(--text-3);padding:0 4px}

/* ---------- 列表页排序条（a.sb 版本，配 <a> 用；.sortbar button 版见上） ---------- */
.sortbar a.sb{display:inline-flex;align-items:center;padding:9px 16px;border-radius:9px;font-size:14.5px;color:var(--text-2);transition:.15s}
.sortbar a.sb:hover{color:var(--brand-strong);background:var(--brand-soft-2)}
.sortbar a.sb.on{color:#fff;background:var(--brand);font-weight:600}
html[data-theme="dark"] .sortbar a.sb.on{color:#0b1a12}

/* ═══════ 搜索中心（百度式首页 + Discuz 式结果页） ═══════ */
.sh-home{max-width:760px;margin:46px auto 60px;text-align:center}
.sh-logo{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:30px}
.sh-logo .mk{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--brand);color:#fff;font-size:32px;font-weight:800}
.sh-logo .nm{font-size:40px;font-weight:800;color:var(--ink-1);letter-spacing:2px}
.sh-logo-sub{font-style:normal;font-size:15px;color:var(--text-3);align-self:flex-end;margin-bottom:9px;letter-spacing:4px}
.sh-box{display:flex;gap:10px;justify-content:center}
.sh-box input{flex:1;max-width:560px;height:58px;border:2px solid var(--brand);border-radius:29px;padding:0 26px;font-size:17px;outline:none;background:var(--surface);color:var(--ink-1)}
.sh-box input:focus{box-shadow:0 4px 20px var(--brand-soft-2)}
.sh-box button{height:58px;padding:0 38px;border:none;border-radius:29px;background:var(--brand);color:#fff;font-size:16.5px;font-weight:700;cursor:pointer;letter-spacing:6px}
.sh-box button:hover{background:var(--brand-strong)}
.sh-hotrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;margin:26px 0 8px}
.sh-hotrow .lb{font-size:14px;color:var(--text-3);font-weight:600}
.sh-hotrow .chip i{font-style:normal;font-size:11px;color:var(--text-3);margin-left:4px}
.sh-see{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 24px;margin-top:30px;text-align:left}
.sh-see-h{font-size:17px;font-weight:800;color:var(--ink-1);margin-bottom:12px}
.sh-see-h span{font-size:11px;color:var(--text-3);font-weight:600;letter-spacing:2px;margin-left:10px}
.sh-seelist{list-style:none;margin:0;padding:0}
.sh-seelist li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}
.sh-seelist li:last-child{border-bottom:none}
.sh-seelist .no{flex:none;width:22px;height:22px;border-radius:6px;background:var(--bg-soft);color:var(--text-3);font-size:12.5px;font-weight:700;display:grid;place-items:center}
.sh-seelist .no.top{background:var(--brand);color:#fff}
.sh-seelist .t{flex:1;min-width:0}
.sh-seelist .t a{font-size:14.5px;font-weight:600;color:var(--ink-1);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.sh-seelist .t a:hover{color:var(--brand-strong)}
.sh-seelist .meta{font-size:12px;color:var(--text-3)}
.sh-tip{margin-top:18px;font-size:12.5px;color:var(--text-3);line-height:1.8}
.sh-empty{font-size:13px;color:var(--text-3)}
.sh-empty-li{justify-content:center;color:var(--text-3);font-size:13.5px}
/* 结果页：顶部紧凑条 */
.sh-head{display:flex;align-items:center;gap:18px;margin:18px 0 12px;flex-wrap:wrap}
.sh-head-logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex:none}
.sh-head-logo .mk{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--brand);color:#fff;font-size:17px;font-weight:800}
.sh-head-logo .nm{font-size:17px;font-weight:800;color:var(--ink-1)}
.sh-head-box{display:flex;gap:8px;flex:1;min-width:320px;max-width:640px}
.sh-head-box input{flex:1;height:44px;border:2px solid var(--brand);border-radius:22px;padding:0 20px;font-size:15px;outline:none;background:var(--surface);color:var(--ink-1)}
.sh-head-box button{height:44px;padding:0 22px;border:none;border-radius:22px;background:var(--brand);color:#fff;font-size:14.5px;font-weight:700;cursor:pointer}
.sh-head-meta{font-size:13.5px;color:var(--text-3);flex:none}
.sh-head-meta b{color:var(--brand-strong);font-size:16px}
.sh-subrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.sh-subrow .lb{font-size:13px;color:var(--text-3);font-weight:600}
.sh-subrow .chip{padding:5px 13px;font-size:12.5px}
.sh-subrow .spacer{flex:1}
.sh-reset{font-size:12.5px;color:var(--text-3);text-decoration:none}
.sh-reset:hover{color:var(--red)}
.sh-cols{margin-top:4px}
/* 左栏筛选 */
.sh-side .cat__link.on{color:var(--brand-strong);font-weight:700;background:var(--brand-soft-2)}
.sh-adv{padding:10px 14px 14px}
.sh-adv label{display:block;font-size:12.5px;color:var(--text-3);margin:4px 0 6px}
.sh-adv input[type=text]{width:100%;box-sizing:border-box;height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13px;outline:none;background:var(--surface);color:var(--ink-1)}
.sh-adv input[type=text]:focus{border-color:var(--brand)}
.sh-adv button{margin-top:8px;width:100%;height:34px;border:none;border-radius:8px;background:var(--brand);color:#fff;font-size:13px;font-weight:600;cursor:pointer}
.sh-adv-tip{margin:8px 0 0;font-size:11.5px;color:var(--text-3);line-height:1.6}
.sh-none{padding:56px 20px;text-align:center;color:var(--text-3)}

/* ===== 演示截图区 + 灯箱（资源详情页，2026-09-17） =====
   数据源：cm_download.thumbs（逗号分隔，发布时由 member/IndexController 拼接）。
   排版用 auto-fill 网格，缩略图统一 16:10 裁切，避免不同尺寸截图把版面撑歪。 */
.shots__hd{display:flex;align-items:center;gap:9px}
.shots__n{font-size:12px;font-weight:700;color:var(--brand-strong);background:var(--brand-soft);padding:2px 9px;border-radius:20px}
.shots__tip{margin:0 0 12px;font-size:12.5px;color:var(--text-3);line-height:1.7}
.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.shots__i{position:relative;display:block;aspect-ratio:16/10;border:1px solid var(--line);border-radius:10px;
  overflow:hidden;background:var(--bg-soft,#f4f6f8)}
.shots__i img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.shots__i:hover img{transform:scale(1.05)}
.shots__i::after{content:"🔍";position:absolute;right:7px;bottom:7px;width:24px;height:24px;border-radius:50%;
  background:rgba(15,23,42,.62);color:#fff;font-size:12px;display:grid;place-items:center;
  opacity:0;transition:opacity .2s}
.shots__i:hover::after{opacity:1}
.shotbox{position:fixed;inset:0;z-index:300;background:rgba(12,15,14,.92);display:none;
  align-items:center;justify-content:center}
.shotbox.on{display:flex}
.shotbox__img{max-width:92vw;max-height:86vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.shotbox__x{position:absolute;top:18px;right:22px;width:42px;height:42px;border-radius:50%;border:none;
  background:rgba(255,255,255,.14);color:#fff;font-size:20px;cursor:pointer;line-height:1}
.shotbox__x:hover{background:rgba(255,255,255,.26)}
.shotbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  border:none;background:rgba(255,255,255,.14);color:#fff;font-size:22px;cursor:pointer}
.shotbox__nav:hover{background:rgba(255,255,255,.26)}
.shotbox__prev{left:20px}
.shotbox__next{right:20px}
.shotbox__no{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;
  background:rgba(255,255,255,.14);padding:5px 14px;border-radius:20px;font-variant-numeric:tabular-nums}
@media (max-width:640px){
  .shots{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}
  .shotbox__nav{width:42px;height:42px}
  .shotbox__prev{left:8px}
  .shotbox__next{right:8px}
}

/* =========================================================
   下载线路选择页 /downloadurl.php（对标华军 downloadurl.php）
   结构：.dlu 分组 → .dlu__row 单条线路（左信息 / 右按钮）
   配色：每个来源组一个 accent，用 --dlu / --dlu-soft 局部覆盖，
        与站点栏目色（--brand）解耦，避免"整页一片绿"看不出区别。
   ========================================================= */
.dlu__lead{margin:0 0 14px;font-size:13.5px;color:var(--text-2);line-height:1.85}
.dlu__lead--mini{margin:-6px 0 14px;font-size:12.5px;color:var(--text-3)}

.dlu{--dlu:var(--brand,#0a9d6f);--dlu-soft:var(--brand-soft,#e8f6f0);
  border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;
  background:#fff;margin-bottom:16px}
.dlu:last-child{margin-bottom:0}
.dlu--blue  {--dlu:#2f6fed;--dlu-soft:#edf2ff}
.dlu--purple{--dlu:#7c5cfc;--dlu-soft:#f2efff}
.dlu--orange{--dlu:#d98324;--dlu-soft:#fff5e9}
.dlu--gray  {--dlu:#6b7a76;--dlu-soft:#f3f6f5}

.dlu__hd{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
  background:var(--dlu-soft);border-bottom:1px solid var(--line)}
.dlu__ico{flex:0 0 auto;width:36px;height:36px;border-radius:9px;background:#fff;
  display:grid;place-items:center;font-size:19px;color:var(--dlu);box-shadow:var(--shadow-sm)}
.dlu__hd-t{flex:1;min-width:0}
.dlu__hd-t h3{margin:0;font-size:15px;font-weight:800;color:var(--text);line-height:1.4}
.dlu__hd-t p{margin:4px 0 0;font-size:12.5px;color:var(--text-2);line-height:1.7}
.dlu__cnt{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--dlu);
  background:#fff;border-radius:999px;padding:3px 11px;line-height:1.6}

.dlu__list{list-style:none;margin:0;padding:0}
.dlu__row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid var(--line)}
.dlu__row:first-child{border-top:0}
.dlu__row:hover{background:#fafcfb}
.dlu__row.is-dead{background:#fdf7f7}
.dlu__row.is-locked{background:#fcfdfc}
.dlu__l{flex:1;min-width:0;display:flex;gap:11px;align-items:flex-start}
.dlu__ic{flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:var(--bg-soft,#f6f8f7);
  display:grid;place-items:center;font-size:16px;line-height:1}
.dlu__meta{flex:1;min-width:0}
.dlu__name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:14.5px;font-weight:700;color:var(--text);line-height:1.5}
.dlu__badge{display:inline-flex;align-items:center;height:20px;padding:0 9px;border-radius:999px;
  font-size:11.5px;font-weight:700;white-space:nowrap}
.dlu__badge.is-ok  {background:#e7f6ef;color:#0b7a53}
.dlu__badge.is-bad {background:#fdecec;color:#b3352f}
.dlu__badge.is-warn{background:#fdf3e4;color:#9a6212}
.dlu__badge.is-info{background:#eaf1ff;color:#2557c4}
.dlu__badge.is-mute{background:#f1f4f3;color:#6b7a76}

.dlu__info{margin-top:3px;font-size:12.5px;color:var(--text-3);line-height:1.7;word-break:break-all}
.dlu__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.dlu__tags i{font-style:normal;font-size:11.5px;color:var(--text-2);background:var(--bg-soft,#f6f8f7);
  border:1px solid var(--line);border-radius:999px;padding:2px 9px;line-height:1.7}

.dlu__code{display:inline-flex;align-items:center;gap:8px;margin-top:9px;padding:5px 10px;
  background:var(--dlu-soft);border:1px dashed var(--dlu);border-radius:8px;
  font-size:12.5px;color:var(--text-2)}
.dlu__code b{font-size:14.5px;letter-spacing:.1em;color:var(--dlu);font-variant-numeric:tabular-nums}
.dlu__copy{height:26px;padding:0 11px;border:1px solid var(--dlu);border-radius:6px;background:#fff;
  color:var(--dlu);font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.dlu__copy:hover{background:var(--dlu);color:#fff}
.dlu__copy.is-done{background:var(--dlu);color:#fff}

.dlu__note{margin-top:8px;font-size:12px;color:var(--text-3);line-height:1.7;
  padding-left:10px;border-left:2px solid var(--line-strong)}

.dlu__r{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:168px}
.dlu__btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;
  border-radius:9px;background:var(--dlu);color:#fff;font-size:14px;font-weight:700;
  text-decoration:none;white-space:nowrap;transition:filter .15s,background .15s}
.dlu__btn:hover{filter:brightness(.94)}
.dlu__btn.is-lock{background:#fff;color:var(--dlu);border:1px solid var(--dlu)}
.dlu__btn.is-lock:hover{background:var(--dlu-soft);filter:none}
.dlu__btn.is-off{background:#f1f4f3;color:#9aa7a3;cursor:not-allowed}
.dlu__rep{height:28px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;
  color:var(--text-3);font-size:12px;cursor:pointer;transition:all .15s}
.dlu__rep:hover{border-color:#e5564b;color:#b3352f}
.dlu__rep.is-busy{opacity:.65;cursor:default}
.dlu__rep.is-done{border-color:#1aa179;color:#0b7a53}
.dlu__foot{padding:10px 16px 13px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--text-3);line-height:1.75;background:#fdfefd}

.dlu__empty{padding:34px 20px;text-align:center;border:1px dashed var(--line-strong);
  border-radius:var(--radius-sm);background:var(--bg-soft,#f6f8f7)}
.dlu__empty-i{font-size:38px;line-height:1;margin-bottom:10px}
.dlu__empty p{margin:0 0 8px;font-size:13.5px;color:var(--text-2);line-height:1.85}
.dlu__empty p b{color:var(--text)}
.dlu__empty-a{margin-top:14px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

@media (max-width:900px){
  .dlu__row{flex-direction:column;align-items:stretch;gap:11px}
  .dlu__r{flex-direction:row;min-width:0;align-items:center}
  .dlu__btn{flex:1}
  .dlu__rep{flex:0 0 auto;padding:0 12px}
}
@media (max-width:640px){
  .dlu__hd{padding:12px 13px;gap:10px}
  .dlu__hd-t p{display:none}
  .dlu__row{padding:12px 13px}
  .dlu__r{flex-wrap:wrap}
}