/* 散户宝 · 手机端社交样式（移动优先，类 App） */
:root{
  --primary:#00b27a; --primary-d:#009167; --primary-l:#e6f7f0;
  --gold:#f5a623; --gold-l:#fff4e0;
  --up:#f5455c; --down:#00b27a;
  --ink:#1f2937; --ink-2:#4b5563; --ink-3:#9ca3af;
  --bg:#f4f6f8; --card:#fff; --line:#eef0f2; --radius:14px;
  --tab-h:56px;
  --hdr:52px;            /* 顶部导航高度（桌面端自动增大） */
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%;overflow-x:clip}  /* 防横向溢出，保证内容始终居中 */
body{
  font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.7;
  -webkit-font-smoothing:antialiased; padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom));
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.container{width:100%;max-width:640px;margin:0 auto;padding:0 14px}
.appbar{
  position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.appbar .row{display:flex;align-items:center;gap:10px;height:var(--hdr);min-width:0}
.appbar img.logo{height:30px}
.appbar .brand{display:flex;align-items:center;flex:none}
.appbar .ttl{font-weight:800;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.appbar .spacer{margin-left:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:12px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:999px;border:1px solid transparent;font-weight:600;cursor:pointer;font-size:15px}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:active{background:var(--primary-d)}
.btn-ghost{background:#fff;color:var(--primary);border-color:var(--primary)}
.btn-block{width:100%}
.tag{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--primary-l);color:var(--primary-d);font-weight:600}

/* 顶部行情快览：大盘指数与个股分两组，中间竖线分隔；整体居中，减少空白 */
.ticker{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 0;overflow-x:hidden;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line)}
.ticker .tk-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ticker .tk-index{flex:none}
.ticker .tk-stocks{flex:0 1 auto;justify-content:center;flex-wrap:wrap;gap:4px 10px}
.ticker .tk-sep{flex:none;align-self:stretch;width:1px;background:var(--line);margin:0 12px}
.ticker .q{flex:none;text-align:center;min-width:64px;color:inherit;text-decoration:none;cursor:pointer;border-radius:10px;padding:2px 6px;transition:background .15s}
.ticker .q:hover{background:var(--primary-l)}
.ticker .q .n{font-size:13px;color:var(--ink-2);font-weight:600;white-space:nowrap}
.ticker .q .p{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.ticker .q .c{font-size:11px;font-weight:700}
.up{color:var(--up)} .down{color:var(--down)}
/* 行情条资金流向标记：流入↑红、流出↓绿 */
.ticker .q .flow-mark{display:inline-block;margin-left:2px;font-size:11px;font-weight:800;vertical-align:1px}
.ticker .q .flow-mark.in{color:var(--up)}
.ticker .q .flow-mark.out{color:var(--down)}

/* 帖子卡 */
/* 卡片本身是 <a>：必须显式块级。否则在部分浏览器（旧 WebKit / 各家 WebView）里，
   inline 元素包裹块级子元素会触发 block-in-inline 拆分，padding+背景被画成
   一条竖白色圆角「竖条」叠在头像上方（首页 .grid-2 因 Grid 会自动块化才看不出）。 */
.card.post,.post{display:block}
.post .ph{display:flex;align-items:center;gap:10px;margin-bottom:8px}
/* 头像：固定 38×38 正圆，行高归一并裁剪，任何浏览器下都不会被拉成竖条/溢出 */
.avatar{width:38px;height:38px;min-width:38px;max-width:38px;min-height:38px;max-height:38px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;display:grid;place-items:center;line-height:1;font-size:16px;font-weight:700;flex:0 0 38px;align-self:center;overflow:hidden}
.post .meta{font-size:12px;color:var(--ink-3)}
.post .title{font-weight:700;font-size:16px;margin:0 0 4px}
.post .ex{color:var(--ink-2);font-size:14px;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post .ft{display:flex;gap:18px;font-size:13px;color:var(--ink-3);align-items:center}
.post .ft .lk{color:var(--primary)}
.section-h{padding:16px 14px 4px;font-size:15px;font-weight:700;color:var(--ink-2)}

/* 底部 Tab */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--tab-h) + env(safe-area-inset-bottom));
  background:#fff;border-top:1px solid var(--line);display:flex;
  padding-bottom:env(safe-area-inset-bottom);
}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-3);font-size:11px}
.tabbar a .ic{font-size:20px}
.tabbar a.active{color:var(--primary)}
.tabbar a.fab{color:var(--primary)}
.tabbar a.fab .ic{position:relative;background:var(--primary);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-top:-18px;box-shadow:0 6px 16px rgba(0,178,122,.4)}
/* 发布入口已并入「社区」：圆标右上角保留一个「＋」角标，提示这里可以发帖 */
.tabbar a.fab .ic .plus{position:absolute;right:-5px;top:-5px;width:18px;height:18px;border-radius:50%;background:var(--gold);color:#fff;border:2px solid #fff;font-size:11px;line-height:14px;font-style:normal;font-weight:800;text-align:center}
/* 社区页浮动发布按钮：进入社区后仍可一键发帖 */
.cmty-fab{position:fixed;right:16px;bottom:calc(var(--tab-h) + 20px + env(safe-area-inset-bottom));z-index:39;display:inline-flex;align-items:center;gap:5px;padding:10px 17px;border-radius:999px;background:var(--primary);color:#fff;font-size:14px;font-weight:700;box-shadow:0 8px 22px rgba(0,178,122,.38);transition:.15s}
.cmty-fab:active{background:var(--primary-d);transform:scale(.97)}
.cmty-fab span{font-size:17px;line-height:1;font-weight:800}
@media (min-width:900px){.cmty-fab{display:none}}

/* 选股 */
.stock-bar{display:flex;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:var(--hdr);z-index:20}
.stock-bar input{flex:1;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font:inherit}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 14px}
/* 空的 chips 容器（如选股页的搜索联想条）不占位，避免留出一条空白 */
.chips:empty{display:none;padding:0}
.chip{flex:none;padding:6px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.stock-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent}
.stock-row:active{background:var(--primary-l)}
/* 行尾箭头：提示「可点开查看详情」，避免用户不知道能点 */
.stock-row .go{flex:none;margin-left:2px;color:var(--ink-3);font-size:18px;line-height:1}
.stock-row:hover .go{color:var(--primary)}
/* 选股 · 个股详情卡 */
#stockList .qt-card{grid-column:1 / -1;max-width:640px;width:100%;margin:0 auto}
.qt-card .qt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.qt-card .qt-acts .btn{flex:1 1 auto;justify-content:center}
.qt-card .qt-hint{font-size:12px;color:var(--ink-3);margin:10px 0 0;text-align:center}
.stock-row .nm{flex:1;min-width:0}
.stock-row .nm b{font-size:15px}
.stock-row .nm span{display:block;font-size:12px;color:var(--ink-3)}
.stock-row .px{text-align:right;font-variant-numeric:tabular-nums}
.stock-row .px .p{font-weight:700}
.stock-row .px .c{font-size:12px;font-weight:700}

/* 分享面板 */
.sheet-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:60;display:none}
.sheet-mask.show{display:block}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:#fff;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);transition:.25s}
.sheet.show{transform:translateY(0)}
.sheet h4{margin:0 0 14px;text-align:center}
.sheet .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;text-align:center}
.sheet .grid4 a{display:block;font-size:12px;color:var(--ink-2)}
.sheet .grid4 .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;margin:0 auto 6px;color:#fff}
.sheet .close{margin-top:14px;text-align:center;color:var(--ink-3)}

/* 表单 */
.field{margin-bottom:14px}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.field input:focus,.field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-l)}
.note{background:var(--primary-l);border-left:4px solid var(--primary);padding:12px 14px;border-radius:0 10px 10px 0;font-size:14px;color:var(--ink-2);margin:12px 0}
.riskbar{background:#fff7ed;border:1px solid #ffe2c2;border-left:4px solid #ff9f1c;border-radius:12px;padding:12px 14px;font-size:13px;color:var(--ink-2);margin:12px 0}
.toast{position:fixed;left:50%;top:30%;transform:translateX(-50%);background:rgba(0,0,0,.82);color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:99;opacity:0;transition:.2s;pointer-events:none}
.toast.show{opacity:1}
.empty{text-align:center;color:var(--ink-3);padding:40px 0}
.skeleton{height:90px;background:linear-gradient(90deg,#eee,#f6f6f6,#eee);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:var(--radius);margin:12px 0}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ===== 内容页：学习 / 词典 / 关于 ===== */
.hero-mini{padding:16px 18px;text-align:left;background:linear-gradient(135deg,#e9f9f1,#f4f6f8);border:1px solid var(--line);border-radius:16px;margin-top:10px}
.hero-mini .hero-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.hero-mini .eyebrow{display:inline-block;font-size:15px;font-weight:700;letter-spacing:.5px;color:var(--primary);background:var(--primary-l);padding:5px 15px;border-radius:999px;margin:0;white-space:nowrap}
.hero-mini h2{font-size:22px;margin:0;line-height:1.35}
.hero-mini p{color:var(--ink-2);font-size:15px;line-height:1.75;margin:0}
.hero-mini .hero-cta{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}
.hero-mini .hero-act{margin-left:auto;flex:0 0 auto;white-space:nowrap}
.hero-mini .hero-cta-strong{box-shadow:0 6px 16px rgba(0,178,122,.28);padding:11px 20px;font-size:15px}
.hero-mini .hero-cta .muted-sm{margin:0;flex:1 1 260px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.grid-2{grid-template-columns:1fr}}
.feature{display:block}
.feature .icon{width:46px;height:46px;border-radius:13px;background:var(--primary-l);color:var(--primary);display:grid;place-items:center;font-size:22px;margin-bottom:10px}
.feature h3{font-size:16px;margin:0 0 6px}
.feature p{color:var(--ink-2);font-size:13px;margin:0}
.article{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:16px 0}
.article h1{font-size:20px;margin:0 0 6px}
.article .meta{color:var(--ink-3);font-size:13px;margin-bottom:14px}
.article h2{font-size:17px;margin:20px 0 8px}
.article p,.article li{color:var(--ink-2);font-size:15px}
.article ul,.article ol{padding-left:20px}
.article .note{background:var(--primary-l);border-left:4px solid var(--primary);padding:12px 14px;border-radius:0 10px 10px 0;margin:14px 0;font-size:14px;color:var(--ink-2)}
.article .warn{background:#fff4e5;border-left:4px solid #ff9f1c;padding:12px 14px;border-radius:0 10px 10px 0;margin:14px 0;font-size:14px;color:var(--ink-2)}
.article table.kb{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
.article table.kb th,.article table.kb td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;white-space:nowrap}
.article table.kb th{background:var(--primary-l);color:var(--primary-d);font-weight:700}
.article table.kb td:first-child,.article table.kb th:first-child{white-space:normal}
@media(min-width:900px){.article table.kb{display:table;font-size:15px}}
.gloss-search{padding:4px 0 12px;display:flex;gap:8px;align-items:center}
.gloss-search input{flex:1 1 auto;min-width:0;padding:11px 16px;border:1px solid var(--line);border-radius:999px;font:inherit}
.gloss-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-l)}
.gloss-search .btn{flex:0 0 auto;border-radius:999px}
.glossary-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.glossary-item h4{margin:0 0 6px;font-size:15px;display:flex;align-items:center;gap:8px}
.glossary-item .pin{font-size:12px;color:var(--ink-3);font-weight:500}
.glossary-item p{margin:0;color:var(--ink-2);font-size:14px}

/* 首页快捷入口 */
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 4px}
.quick a{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 6px;text-align:center;font-size:12px;color:var(--ink-2)}
.quick a b{display:block;font-size:22px;margin-bottom:4px}

/* ===== 会员：登录 / 注册 ===== */
.auth-wrap{padding:26px 0 10px}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 18px;max-width:420px;margin:0 auto;box-shadow:0 8px 28px rgba(15,23,42,.05)}
.auth-head{text-align:center;margin-bottom:18px}
.auth-head .eyebrow{display:inline-block;font-size:14px;font-weight:700;letter-spacing:1px;color:var(--primary);background:var(--primary-l);padding:5px 14px;border-radius:999px;margin-bottom:10px}
.auth-head h2{font-size:21px;margin:0 0 6px}
.auth-head p{margin:0;font-size:13px;color:var(--ink-3)}
.auth-foot{text-align:center;margin-top:14px;font-size:14px;color:var(--ink-2)}
.auth-foot a{color:var(--primary);font-weight:600}
.auth-tip{margin-top:14px;background:var(--primary-l);border-radius:10px;padding:10px 12px;font-size:12.5px;color:var(--ink-2);line-height:1.6}
.req{color:var(--up)}
.agree{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink-2);margin:0 0 14px;line-height:1.6}
.agree input{margin-top:3px;flex:none}
.agree a{color:var(--primary)}
@media(min-width:900px){.auth-card{max-width:460px;padding:26px 24px}.auth-wrap{padding:40px 0 20px}}

/* ===== 提示条 ===== */
.alert{border-radius:10px;padding:10px 14px;font-size:14px;margin:12px 0;line-height:1.6}
.alert-err{background:#fee2e2;color:#b91c1c}
.alert-ok{background:var(--primary-l);color:var(--primary-d)}
.alert-warn{background:var(--gold-l);color:#a35b00}
.alert-tip{background:#eef4ff;color:#334e9e}

/* ===== 图形验证码 / 算术题降级 ===== */
.captcha-field .captcha-row{display:flex;gap:10px;align-items:center}
.captcha-field input{flex:0 1 auto;width:auto;min-width:0;max-width:160px}
.captcha-field .captcha-img{flex:0 0 120px;height:44px;border-radius:10px;border:1px solid var(--line);cursor:pointer;background:#f4f6f8;object-fit:cover}
.captcha-field .math-captcha{gap:12px;flex-wrap:wrap}
.captcha-field .math-question{flex:none;font-weight:700;font-size:18px;color:var(--primary);background:var(--primary-l);padding:8px 14px;border-radius:10px;letter-spacing:1px;user-select:none}

/* ===== Cookie 同意弹窗 ===== */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:100;background:#1f2937;color:#fff;padding:14px 16px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px rgba(0,0,0,.15);transform:translateY(120%);transition:transform .3s ease;display:block}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner .cookie-inner{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.cookie-banner p{margin:0;font-size:13.5px;line-height:1.7;color:#e5e7eb}
.cookie-banner a{color:#6ee7b7;text-decoration:underline}
.cookie-banner .cookie-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.cookie-banner .btn{border-radius:999px;padding:8px 18px;font-size:14px}
.cookie-banner .btn-ghost{color:#1f2937;border-color:#fff;background:#fff}
.cookie-banner .btn-ghost:hover{background:#f3f4f6}
@media(min-width:640px){
  .cookie-banner .cookie-inner{flex-direction:row;align-items:center;justify-content:space-between}
  .cookie-banner p{flex:1 1 auto}
}

/* ===== 会员中心 ===== */
.prof{display:flex;gap:14px;align-items:flex-start}
.prof-info{flex:1;min-width:0}
.prof-info h3{margin:2px 0 2px;font-size:18px}
.prof-info .bio{font-size:13px;color:var(--ink-2);margin:6px 0 0}
.muted-sm{font-size:12px;color:var(--ink-3);margin:0}
.stat-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.stat-4 a{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 4px;text-align:center}
.stat-4 b{display:block;font-size:19px;color:var(--primary)}
.stat-4 span{font-size:12px;color:var(--ink-3)}
.grid-2-field{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media(max-width:520px){.grid-2-field{grid-template-columns:1fr}}
.fav-list,.my-list{display:flex;flex-direction:column;gap:8px}
.fav-item,.my-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px}
.fav-item .fav-ic{flex:none}
.fav-item .fav-nm,.my-row .my-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-row{gap:8px}
.btn-danger{background:#fff;color:#dc2626;border-color:#fecaca}
.btn-danger:active{background:#fee2e2}
.btn-mini{padding:5px 12px;font-size:13px}
.u-mini{display:flex;align-items:center;gap:6px;max-width:44%}
.u-mini .u-avatar{width:28px;height:28px;min-width:28px;max-height:28px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;display:grid;place-items:center;line-height:1;font-size:13px;font-weight:700;flex:0 0 28px;overflow:hidden}
.u-mini .u-name{font-size:13px;font-weight:600;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;flex:none}
.b-ok{background:var(--primary-l);color:var(--primary-d)}
.b-no{background:#fee2e2;color:#b91c1c}
.b-wait{background:var(--gold-l);color:#a35b00}

/* 用户中心新版（uc-head / uc-menu） */
.uc-head{display:flex;align-items:center;gap:14px;padding:18px 14px}
.uc-head .uc-avatar{width:60px;height:60px;min-width:60px;max-height:60px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;display:grid;place-items:center;line-height:1;font-size:24px;font-weight:700;flex:0 0 60px;overflow:hidden}
.uc-head .uc-meta{flex:1;min-width:0}
.uc-head .uc-meta h3{margin:2px 0 4px;font-size:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.uc-head .uc-edit{font-size:13px;color:var(--primary);font-weight:600;flex:none}
.uc-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.uc-menu a{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 6px;text-align:center;font-size:12px;color:var(--ink-2)}
.uc-menu .ic{display:block;font-size:22px;margin-bottom:6px}
@media(max-width:380px){.uc-menu{grid-template-columns:repeat(3,1fr)}}

/* ===== 教程页收藏 / 打卡 ===== */
.learn-act{display:flex;gap:8px;align-items:center;margin:14px 0 0;flex-wrap:wrap}
.act-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-size:13px;color:var(--ink-2);cursor:pointer;font-weight:600}
.act-btn.on{background:var(--primary);border-color:var(--primary);color:#fff}
.act-btn.done.on{background:var(--gold);border-color:var(--gold)}

/* ===== 教程单篇阅读页：面包屑 + 上一篇/下一篇 ===== */
.crumb{font-size:13px;color:var(--ink-3);margin:14px 0 0;line-height:1.9}
.crumb a{color:var(--ink-2)}
.crumb a:hover{color:var(--primary)}
.crumb .sep{margin:0 6px;color:var(--ink-3)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 0}
.p-box{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;transition:.15s}
a.p-box:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,178,122,.10)}
.p-box.p-empty{opacity:.5}
.p-box.p-next{text-align:right}
.p-lbl{display:block;font-size:12px;color:var(--ink-3);margin-bottom:4px}
.p-t{display:block;font-size:14px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.pager{grid-template-columns:1fr}.p-box.p-next{text-align:left}}

/* ===== 选股页：列表区移动端通栏、桌面端与内容同宽 ===== */
.stock-wrap{padding:0}
.stock-risk{margin:12px 14px}

/* ===== 锚点定位（吸顶头部不吃掉标题） ===== */
html{scroll-behavior:smooth}
.article[id], .section-h[id]{scroll-margin-top:calc(var(--hdr) + 14px)}

/* ===== 页脚 ===== */
.site-foot{margin-top:18px;background:#f8fafc;border-top:1px solid var(--line);padding:24px 0 18px;font-size:13px}
/* 页脚：上排 3 栏等宽对齐，备案与联系放底部横栏 */
/* 网站导航 / 合规与权益 / 举报 / 行情：合并为一个横向通栏，连续排列消除留白 */
.foot-util-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;background:#fff;border:1px solid #eef2f6;border-radius:var(--radius);padding:14px 18px;margin-bottom:14px}
.foot-util-bar h4{margin:0;font-size:13px;color:var(--ink-1);font-weight:700;letter-spacing:.8px;white-space:nowrap}
.foot-util-bar h4:not(:first-child){margin-left:10px}
.foot-util-bar>a{color:var(--ink-2);font-size:13px;text-decoration:none;line-height:1.4;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.foot-util-bar>a:hover{color:var(--primary)}
.foot-util-bar>a::before{content:'•';color:var(--primary);font-size:10px}
.foot-util-bar .foot-meta{color:var(--ink-3);font-size:12px;line-height:1.4;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.foot-util-bar .foot-meta a{color:var(--ink-3);font-size:12px;text-decoration:none}
.foot-util-bar .foot-meta a:hover{color:var(--primary)}
@media(max-width:640px){
  .foot-util-bar .foot-meta{white-space:normal}
}

/* 重要声明：顶部通栏卡片，风险提示突出 */
.foot-statement{background:#fff;border:1px solid #eef2f6;border-radius:var(--radius);padding:20px 22px;margin-bottom:14px}
.foot-statement h4{margin:0 0 14px;font-size:14px;color:var(--ink-1);font-weight:700;letter-spacing:.8px}
.foot-statement h4::after{content:'';display:block;width:24px;height:3px;background:var(--primary);border-radius:2px;margin-top:6px}
.foot-statement-body{display:grid;gap:14px 20px}
.foot-statement-body p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.75}
.foot-statement-body .foot-risk{grid-column:1 / -1;background:#f0fdf9;border:1px solid #d1fae5;border-left:4px solid var(--primary);border-radius:10px;padding:12px 14px;color:#065f46;font-weight:500}
.foot-statement-body .foot-src b,.foot-statement-body .foot-ad b{color:var(--ink-1)}
@media(min-width:760px){.foot-statement-body{grid-template-columns:1fr 1fr}}
@media(max-width:759px){.foot-statement-body{grid-template-columns:1fr}}

/* 举报与申诉 / 行情声明：已并入上方 .foot-util-bar 通栏，样式见上 */

/* 底部备案与联系：仅版权/版本/备案 */
.foot-bar{margin-top:14px;background:#fff;border:1px solid #eef2f6;border-radius:var(--radius);padding:12px 16px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between}
.foot-bar-copy{color:var(--ink-3);font-size:12px;line-height:1.6;white-space:nowrap}
.foot-bar-copy a{color:var(--ink-3);text-decoration:none}
.foot-bar-copy a:hover{color:var(--primary)}
@media(max-width:900px){
  .foot-bar{flex-direction:column;align-items:flex-start;gap:4px}
  .foot-bar-copy{white-space:normal}
}

/* ===== 桌面端：宽屏自动适配（不再像手机 App） ===== */
.topnav{display:none}
@media (min-width:900px){
  .container{max-width:1100px;padding:0 24px}
  body{padding-bottom:0}
  html{--hdr:58px}
  .appbar .row{height:var(--hdr)}
  .appbar .ttl{display:none}   /* 桌面端用导航替代页标题，消除中间大段留白 */
  /* 顶部导航（桌面显示，与 Logo 同一行，替代底部 Tab） */
  .topnav{display:flex;align-items:center;gap:2px;margin-left:10px;min-width:0;overflow-x:auto;scrollbar-width:none}
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{font-size:14.5px;font-weight:600;color:var(--ink-2);padding:7px 11px;border-radius:8px;white-space:nowrap}
  .topnav a:hover{background:var(--primary-l);color:var(--primary-d)}
  .topnav a.active{color:var(--primary);background:var(--primary-l)}
  /* 底部 Tab 仅移动端出现 */
  .tabbar{display:none}
  /* 行情条 / 搜索栏 / 标签行：与内容同宽居中（通栏会显得没对齐） */
  .ticker{max-width:1180px;margin:16px auto 0;padding:12px 24px;border:1px solid var(--line);border-radius:var(--radius)}
  /* 桌面端：个股自然排列，不强制拉伸，整体居中减少空白 */
  .ticker .tk-stocks{justify-content:center}
  .ticker .tk-stocks .q{flex:0 1 auto;min-width:64px}
  .stock-bar{top:var(--hdr);max-width:1100px;margin:0 auto;padding:10px 24px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
  .chips{max-width:1100px;margin:0 auto;padding:12px 24px}
  .container .chips{max-width:100%;padding-left:0;padding-right:0}
  /* 卡片多列：桌面内容列实际约 796~876px，阈值降到 170px 才能稳定排成四栏一行 */
  .grid-2{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
  /* 快捷入口共 6 项：桌面端一行铺满，不再出现第二行空出的格位 */
  .quick{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
  .section-h{padding:20px 0 6px}
  .article[id], .section-h[id]{scroll-margin-top:calc(var(--hdr) + 14px)}
  .side{top:calc(var(--hdr) + 14px)}
  .sec,.cat-pane{scroll-margin-top:calc(var(--hdr) + 14px)}
  .site-foot{margin-top:28px;padding:24px 0 20px}
  /* 选股页列表：桌面端改成多列卡片，名称与价格不再被拉得很开 */
  .stock-wrap{padding:0 24px}
  .stock-risk{margin:12px 0}
  .stock-wrap #stockList{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:12px;align-items:start}
  .stock-wrap .stock-row{border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s}
  .stock-wrap .stock-row:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,178,122,.1)}
  .stock-wrap .stock-row .nm{flex:1}
  .stock-wrap #stockList .empty{grid-column:1 / -1}
  .stock-wrap .skeleton{margin:0;height:64px}
}
@media (min-width:1200px){
  .container{max-width:1180px}
  /* 外壳与 .container/.ticker 对齐：原先 1100 比上方行情条窄 40px，左右错位 */
  .shell{max-width:1180px}
  .ticker,.stock-bar{max-width:1180px}
  .chips{max-width:1180px}
}

/* ===== 两栏布局：侧边栏 + 主内容（用户中心 / 学习分类）===== */
.layout-2{display:grid;grid-template-columns:236px 1fr;gap:16px;align-items:start;margin-top:12px}
.side{position:sticky;top:calc(var(--hdr) + 14px);display:flex;flex-direction:column;gap:12px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.side-h{font-size:13px;font-weight:700;color:var(--ink-3);margin:0 0 10px;letter-spacing:.5px}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--ink-2);font-size:14px;font-weight:600}
.side-nav a .ic{font-size:17px;width:20px;text-align:center;flex:none}
.side-nav a .cnt{margin-left:auto;font-size:12px;color:var(--ink-3);font-weight:500}
.side-nav a:hover{background:var(--primary-l);color:var(--primary-d)}
.side-nav a.active{background:var(--primary);color:#fff}
.side-nav a.active .cnt{color:rgba(255,255,255,.85)}
.side-link{display:flex;align-items:center;gap:8px;padding:9px 0;font-size:14px;color:var(--ink-2);font-weight:600}
.side-link:hover{color:var(--primary)}
.main-col{min-width:0}
.sec{scroll-margin-top:calc(var(--hdr) + 14px)}
/* 用户中心侧栏资料卡：一排横排，省空间 */
.uc-side-profile{display:flex;flex-direction:row;align-items:center;text-align:left;gap:10px}
.uc-side-profile .uc-avatar{width:40px;height:40px;min-width:40px;max-height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;display:grid;place-items:center;line-height:1;font-size:17px;font-weight:700;overflow:hidden}
.uc-side-profile .uc-info{min-width:0;flex:1}
.uc-side-profile h3{margin:0;font-size:15px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-start}
.uc-side-profile h3 .lv-badge{font-size:11px;padding:1px 7px}
.uc-side-profile .muted-sm{margin:2px 0 0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-side-profile .u-exit{margin-top:4px;width:100%}
/* 学习侧栏 / 分类 */
.learn-side-h{font-size:13px;font-weight:700;color:var(--ink-3);margin:0 0 10px;letter-spacing:.5px}
.cat-pane{scroll-margin-top:calc(var(--hdr) + 14px)}
/* 学习页：每章默认收起多余条目，点击「展开本章全部」再显示，减少长页下拉 */
.cat-pane:not(.expanded) .grid-2 > a.feature:nth-child(n+7){display:none}
.learn-more{margin:12px 0 6px;font-size:13px}
.learn-hd{display:flex;align-items:baseline;gap:8px;padding:4px 2px 0}
.learn-hd .muted-sm{margin:0}
@media(max-width:820px){
  .layout-2{grid-template-columns:1fr;gap:12px}
  .side{position:static;top:auto}
  .side-nav:not(.has-books){flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .side-nav:not(.has-books) a{white-space:nowrap;flex:none}
  .side-card.side-nav-wrap{padding-bottom:6px}
}
/* 会员等级徽章 */
.lv-badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap;line-height:1.6}
/* 学习「书本」目录（册 → 章） */
.book-group{display:flex;flex-direction:column}
.book-toggle{font-weight:700}
.book-toggle .arrow{display:inline-block;transition:.15s;margin-right:1px;font-size:11px;transform:rotate(0)}
.book-group.open .book-toggle .arrow{transform:rotate(90deg)}
.book-chapters{display:none;flex-direction:column;gap:2px;margin:2px 0 4px;padding-left:8px;border-left:2px solid var(--line)}
.book-group.open .book-chapters{display:flex}
.book-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;color:var(--ink);margin:22px 0 10px}
.book-title .muted-sm{margin:0}

/* ===== 全局外壳：左侧页面内容 + 右侧用户栏（桌面端） ===== */
.shell{display:block}
.user-rail{display:none}
.mine-side{position:static;top:auto}
@media (min-width:821px){
  .shell{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:20px;max-width:1100px;margin:0 auto;padding:0 24px;align-items:start}
  .shell-main{min-width:0}
  /* 内容列填满，避免与外层再次限宽 */
  .shell-main > .container{max-width:100%;padding-left:0;padding-right:0}
  /* 右侧用户栏：吸顶跟随 */
  .user-rail{display:flex;flex-direction:column;gap:12px;position:sticky;top:calc(var(--hdr) + 14px);align-self:start}
  /* 桌面端用户菜单只出现在右侧，页面内的横向菜单隐藏 */
  .mine-side{display:none}
  /* 不需要右栏的页面（登录/注册）：单列，不预留右侧空间 */
  .shell.no-rail{display:block}
}
@media (min-width:1200px){
  .shell{max-width:1180px}
}

/* ===== 广告位（统一盒式，后期加广告不错位）===== */
.ad-box{position:relative;margin:14px auto;width:100%;max-width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;text-align:center}
.ad-box .ad-label{position:absolute;top:0;right:0;z-index:3;font-size:10px;line-height:1;letter-spacing:1px;color:#fff;background:rgba(15,23,42,.45);padding:3px 6px;border-bottom-left-radius:8px;pointer-events:none}
.ad-box .ad-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;min-height:60px;padding:12px 10px}
.ad-box .ad-body>*{max-width:100%;margin-left:auto;margin-right:auto}
.ad-box.ad-card{margin:12px auto}
/* 已配置广告：轻微底色，更像原生内容卡片，融入版面 */
.ad-box:not(.ad-empty){background:linear-gradient(180deg,#fff,#fbfdfc);border-color:#e6efea}
.ad-box:not(.ad-empty) .ad-body{padding:14px 12px}
.ad-empty .ad-body{background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 10px,#f3f5f8 10px,#f3f5f8 20px)}
.ad-empty .ad-tag{font-size:12px;color:var(--ink-3);letter-spacing:1px}
.ad-disclose{font-size:11px;line-height:1.5;color:var(--ink-3);padding:6px 10px 9px;border-top:1px dashed var(--line);background:#fcfdfe;text-align:left}
.ad-box iframe,.ad-box ins,.ad-box img{max-width:100%}
/* 未配置占位：虚线边框 + 更紧凑，避免看起来像"破版空白" */
.ad-box.ad-empty{border-style:dashed;background:#fbfcfd}
.ad-box.ad-empty .ad-body{min-height:52px;padding:8px 10px}
/* 卡片网格内广告（首页信息流）：跨整行通栏，避免只占一格、同排留下大片空白 */
.grid-2 .ad-box{grid-column:1 / -1;margin:12px 0}
.grid-2 .ad-box .ad-body{min-height:80px}
/* 社区列表：分页式「加载更多」控件（替代无限滚动，对内容站更可控） */
.feed-more{display:flex;flex-direction:column;align-items:center;gap:6px;margin:18px 0 4px}
.feed-more .btn{margin:0}
.feed-more .feed-page{color:var(--ink-3)}
/* 正文中间广告：与段落留白协调 */
.article .ad-box{margin:18px auto}

/* ===== 学习页：顶部工具条（汇总重复入口）===== */
/* 固定 3 列：6 个入口排成 2 行，不再出现最后一行空一格 */
.learn-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 4px}
.lt-item{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 8px;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap;transition:.15s}
.lt-item:hover{border-color:var(--primary);color:var(--primary-d);background:var(--primary-l)}
.lt-ic{font-size:15px}

/* ===== 视频课程首页：田字格课程卡片 ===== */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:16px 0}
.video-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:.15s;text-decoration:none;color:inherit;display:block}
.video-card:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,178,122,.1)}
.video-cover{position:relative;padding-top:56.25%;background:var(--bg)}
.video-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-cover.no-cover{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f4f6f8,#e8ecef)}
.video-cover .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);color:#fff;border-radius:50%;font-size:16px;padding-left:3px}
.video-meta{padding:12px}
.video-meta .tag{font-size:11px;background:var(--primary-l);color:var(--primary-d);padding:2px 8px;border-radius:999px;font-weight:600}
.video-meta .ep-count{font-size:11px;background:#fff7ed;color:#c2410c;padding:2px 8px;border-radius:999px;font-weight:600;margin-left:6px}
.video-meta h4{font-size:15px;margin:8px 0 4px;line-height:1.4;color:var(--ink)}
.video-meta p{font-size:13px;color:var(--ink-2);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ===== 视频独立播放页：追剧模式 ===== */
.video-drama{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start;margin:16px 0}
.video-episodes{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;max-height:560px;display:flex;flex-direction:column}
.video-ep-h{font-size:13px;font-weight:700;color:var(--ink-3);margin:0 0 10px;letter-spacing:.5px}
.video-ep-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:6px}
.ep-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#f8fafc;border:1px solid transparent;border-radius:10px;padding:9px 10px;cursor:pointer;transition:.15s;text-decoration:none;color:inherit}
.ep-item:hover{background:var(--primary-l);border-color:var(--primary-l)}
.ep-item.active{background:var(--primary);border-color:var(--primary);color:#fff}
.ep-item.active .ep-sub{color:rgba(255,255,255,.85)}
.ep-no{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:50%;font-size:12px;font-weight:700;color:var(--ink-1)}
.ep-item.active .ep-no{background:#fff;color:var(--primary);border-color:#fff}
.ep-info{min-width:0;display:flex;flex-direction:column;gap:2px}
.ep-title{font-size:13px;font-weight:700;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-sub{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.video-stage{min-width:0}
.video-player-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.video-player-wrap h4{margin:0 0 10px;font-size:16px}
.video-player-ratio{position:relative;padding-top:56.25%;background:#000;border-radius:10px;overflow:hidden}
.video-player-ratio iframe{position:absolute;inset:0;width:100%;height:100%}
.video-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.video-pager .btn{margin:0}
.video-pager .disabled{opacity:.5;cursor:not-allowed}
@media(max-width:820px){
  .video-drama{grid-template-columns:1fr}
  .video-episodes{max-height:240px}
}

/* ===== 术语词典分页 ===== */
/* 术语分页：上一页/下一页固定在页码两端，三列网格对齐 */
.gloss-pager{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:18px 0}
.gloss-pager .page-nums{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.gloss-pager .page-num{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink)}
.gloss-pager .page-num:hover{border-color:var(--primary);color:var(--primary)}
.gloss-pager .page-num.active{background:var(--primary);border-color:var(--primary);color:#fff}
.gloss-pager .btn.disabled{opacity:.45;cursor:not-allowed}
@media(max-width:560px){
  .gloss-pager{grid-template-columns:1fr 1fr;gap:8px}
  .gloss-pager .page-nums{grid-column:1 / -1;order:-1}
}

/* ===== 阅读页：书本化（进度条 / 目录 / 排版） ===== */
.read-bar{position:fixed;left:0;right:0;top:var(--hdr);height:3px;background:transparent;z-index:29;pointer-events:none}
.read-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--gold));transition:width .1s linear}
.art-read{padding:18px;margin-top:10px}
.art-read h1{font-size:22px;line-height:1.4;margin:0 0 6px}
.art-read p,.art-read li{font-size:16px;line-height:1.9}
.art-read h2{font-size:18px;margin:26px 0 10px;padding-top:8px;border-top:1px solid var(--line)}
.toc{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:14px 0 18px}
.toc-h{font-size:14px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.toc ol{margin:0;padding-left:20px}
.toc li{margin:5px 0}
.toc a{color:var(--primary-d);font-size:14.5px}
.toc a:hover{text-decoration:underline}
@media(min-width:900px){
  .art-read{max-width:860px;padding:24px 26px;margin-left:auto;margin-right:auto}
}

/* ===== 前台发帖页 AI 内容助手 ===== */
/* 三个按钮固定一行（等宽三列），状态提示单独占一行，避免「合规自检」被挤到下一行 */
.ai-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:-4px 0 12px}
.ai-tools .btn-sm{background:#fff;border:1px solid var(--primary);color:var(--primary);width:100%;padding:9px 4px;font-size:13px;white-space:nowrap}
.ai-tools #aiMsg{grid-column:1 / -1;min-width:0;line-height:1.55}

/* ===== 个股 K 线页 ===== */
.kl-head{display:flex;align-items:center;gap:10px;padding:12px 0 2px;flex-wrap:wrap}
.kl-back{flex:none;width:32px;height:32px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--ink-2);display:grid;place-items:center;font-size:16px;text-decoration:none}
.kl-back:hover{border-color:var(--primary);color:var(--primary)}
.kl-id{display:flex;align-items:baseline;gap:8px;min-width:0}
.kl-id b{font-size:17px}
.kl-id span{font-size:12.5px;color:var(--ink-3)}
.kl-quote{margin-left:auto;display:flex;align-items:baseline;gap:8px}
.kl-quote .p{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.kl-quote .c{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.kl-periods{padding-left:0;padding-right:0;margin:8px 0 10px}
.kl-wrap{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.kl-wrap canvas{display:block;width:100%;touch-action:pan-y}
.kl-tip{position:absolute;display:none;pointer-events:none;background:rgba(31,41,55,.92);color:#fff;font-size:12px;line-height:1.65;padding:6px 9px;border-radius:8px;white-space:nowrap;z-index:6;font-variant-numeric:tabular-nums}
.kl-hint{position:absolute;left:0;right:0;top:46%;text-align:center;font-size:13px;color:var(--ink-3)}
.kl-note{text-align:center;margin:10px 0 0}

/* ===== 选股页「加自选」星标按钮 ===== */
.stock-bar .stock-zx{flex:none;white-space:nowrap;padding:8px 14px}
.fav-stock-btn{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink-3);font-size:15px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:.15s;padding:0}
.fav-stock-btn:hover{border-color:var(--primary);color:var(--primary)}
.fav-stock-btn.on{color:#f5a623;border-color:#f5a623;background:#fff7e8}
.kl-fav{flex:none;align-self:center}

/* ===== 我的自选股页 ===== */
.zx-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.zx-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;transition:.15s}
.zx-row:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(0,178,122,.08)}
.zx-nm{flex:1;min-width:0;text-decoration:none;color:inherit}
.zx-nm b{font-size:16px}
.zx-nm span{display:block;font-size:12px;color:var(--ink-3)}
.zx-px{text-align:right;font-variant-numeric:tabular-nums;min-width:72px}
.zx-px .p{font-weight:700}
.zx-px .c{font-size:12px;font-weight:700}
.zx-del{flex:none}
.zx-empty{text-align:center;padding:26px 16px}
.zx-empty p{margin:0 0 14px;color:var(--ink-2)}

/* ===== 学习中心：学习进度 / 已学标记 ===== */
.learn-progress{margin-top:10px;font-size:14px;color:var(--ink-2)}
.learn-progress b{color:var(--primary)}
.learned-badge{font-size:13px;margin-left:6px;vertical-align:middle}

/* ===== v9.12 合规整改：风险提示条 / 举报入口 / 404 / 规范页 ===== */
.risk-bar{display:flex;gap:8px;align-items:flex-start;margin:10px auto 14px;padding:10px 14px;background:#fff8e6;border:1px solid #f5d9a0;border-left:4px solid #e8a33d;border-radius:10px;color:#7a4b00;font-size:13px;line-height:1.6}
.risk-bar .risk-ic{font-size:16px;line-height:1.4}
.risk-bar p{margin:0}
.risk-bar b{color:#b45309}
.risk-bar a{color:#b45309;text-decoration:underline}
@media (max-width:640px){.risk-bar{font-size:12px;padding:8px 10px;margin:8px auto 12px}}
.lesson-risk{margin:0 0 12px;padding:8px 12px;background:#f3f6f9;border-left:3px solid #9aa5b1;border-radius:6px;color:#5b6570;font-size:12.5px;line-height:1.6}
.report-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#8a8f98;border:1px solid #dfe3e8;border-radius:999px;padding:3px 10px;text-decoration:none;background:#fff;vertical-align:middle}
.report-link:hover{color:#d93025;border-color:#f3b4ae;background:#fff5f4}
.notfound{max-width:520px;margin:48px auto;text-align:center;padding:0 16px}
.notfound .code{font-size:64px;font-weight:800;color:#00b27a;line-height:1}
.notfound h2{margin:12px 0 8px;font-size:20px}
.notfound p{color:#6b7280;font-size:14px;line-height:1.7}
.notfound .acts{margin-top:20px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.policy-body h3{margin:18px 0 8px;font-size:16px}
.policy-body p,.policy-body li{font-size:14px;line-height:1.8;color:#374151}

/* ===== v9.51 模型走势推演 ===== */
.fx-hero{padding:20px 18px;background:linear-gradient(135deg,#e9f9f1,#eef6ff);border:1px solid #dfeaf3;border-radius:16px;margin:14px 0}
.fx-hero .fx-eyebrow{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.5px;color:var(--primary-d);background:#fff;border:1px solid #cdeee1;padding:3px 12px;border-radius:999px;margin-bottom:10px}
.fx-hero h2{font-size:22px;margin:0 0 8px;line-height:1.35}
.fx-hero p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.8}
.fx-hero b{color:var(--ink)}
.fx-search{display:flex;gap:8px;margin:16px 0 8px}
.fx-search input{flex:1;min-width:0;padding:11px 16px;border:1px solid var(--line);border-radius:999px;font:inherit;background:#fff}
.fx-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-l)}
.fx-search .btn{flex:none;padding:10px 18px}
.fx-sug{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px}
.fx-sug:empty{display:none}
.fx-sug-item{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:13px;color:var(--ink-2);font-weight:600}
.fx-sug-item:hover{border-color:var(--primary);color:var(--primary-d);background:var(--primary-l)}
.fx-hint{font-size:12px;color:var(--ink-3);margin:6px 0 0}

.fx-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.fx-quick a{display:flex;flex-direction:column;align-items:center;gap:1px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 6px;font-size:13.5px;font-weight:700;color:var(--ink-2);transition:.15s}
.fx-quick a span{font-size:11px;color:var(--ink-3);font-weight:500;letter-spacing:.3px}
.fx-quick a:hover{border-color:var(--primary);color:var(--primary-d);background:var(--primary-l)}

.fx-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}
.fx-card-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.fx-card-h h3{margin:0;font-size:16px}
.fx-card-h>span{font-size:12px;color:var(--ink-3);font-weight:600}
.fx-card-h .fx-more{font-size:12.5px;color:var(--primary-d);font-weight:700}
.fx-note{font-size:12px;line-height:1.7;color:var(--ink-3);margin:10px 0 0}
.fx-sub{font-size:12px;line-height:1.7;color:var(--ink-3);margin:6px 0 0}
.fx-warn{margin:12px 0 0;background:#fff7ed;border:1px solid #ffe2c2;border-left:4px solid #ff9f1c;border-radius:10px;padding:11px 14px;font-size:13px;color:#7c4a03;line-height:1.7}
.fx-card.fx-about h3{margin:0 0 10px;font-size:16px}
.fx-card.fx-about ul{margin:0;padding-left:18px}
.fx-card.fx-about li{font-size:13.5px;color:var(--ink-2);line-height:1.8;margin:5px 0}

.fx-steps{list-style:none;margin:0;padding:0;counter-reset:fxstep;display:flex;flex-direction:column;gap:12px}
.fx-steps li{position:relative;padding-left:40px;counter-increment:fxstep}
.fx-steps li::before{content:counter(fxstep);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:9px;background:var(--primary-l);color:var(--primary-d);font-weight:800;font-size:14px;display:grid;place-items:center}
.fx-steps li b{display:block;font-size:14px;margin-bottom:2px}
.fx-steps li span{font-size:13px;color:var(--ink-2);line-height:1.7}

.fx-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.fx-metrics>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:11px 8px;text-align:center}
.fx-metrics b{display:block;font-size:19px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.3}
.fx-metrics span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}

.fx-tally{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.fx-tally-item{background:var(--primary-l);color:var(--primary-d);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}
.fx-tally-item b{font-weight:800}

.fx-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fx-table{width:100%;border-collapse:collapse;font-size:12.5px}
.fx-table th,.fx-table td{padding:8px 8px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.fx-table th:first-child,.fx-table td:first-child,.fx-table th:nth-child(2),.fx-table td:nth-child(2){text-align:left}
.fx-table th{color:var(--ink-3);font-weight:700;font-size:11.5px}
.fx-table tr:last-child td{border-bottom:none}
.fx-hit{display:inline-block;font-size:11px;font-weight:800;padding:1px 8px;border-radius:999px}
.fx-hit.ok{background:#e6f7f0;color:#009167}
.fx-hit.no{background:#f1f5f9;color:#64748b}

.fx-crumb{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-3);margin:14px 0 4px;flex-wrap:wrap}
.fx-crumb a{color:var(--ink-2)}
.fx-crumb a:hover{color:var(--primary)}
.fx-crumb .sep{color:#cbd5e1}
.fx-crumb-switch{margin-left:auto;color:var(--primary-d)!important;font-weight:700}
.fx-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0 2px}
.fx-id{min-width:0;flex:1}
.fx-id b{font-size:18px;display:block;line-height:1.3}
.fx-id span{font-size:12px;color:var(--ink-3);line-height:1.5}
.fx-quote{display:flex;align-items:baseline;gap:8px;margin-left:auto}
.fx-quote .p{font-size:23px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2}
.fx-quote .c{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.fx-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.fx-hchips{display:flex;gap:6px;overflow-x:auto;margin-right:auto;scrollbar-width:none}
.fx-hchips::-webkit-scrollbar{display:none}
.fx-hchip{flex:none;padding:5px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--ink-2);font-weight:600}
.fx-hchip:hover{border-color:var(--primary);color:var(--primary-d)}
.fx-hchip.active{background:var(--primary);border-color:var(--primary);color:#fff}

.fx-verdict-card{padding:18px 16px}
.fx-verdict{display:grid;grid-template-columns:126px minmax(0,1fr);gap:14px;align-items:center}
.fx-ring{--p:50;width:126px;height:126px;border-radius:50%;background:conic-gradient(from -90deg,var(--primary) calc(var(--p)*1%),#eef2f6 0);display:grid;place-items:center;flex:none}
.fx-ring.is-up{background:conic-gradient(from -90deg,var(--up) calc(var(--p)*1%),#eef2f6 0)}
.fx-ring.is-down{background:conic-gradient(from -90deg,var(--down) calc(var(--p)*1%),#eef2f6 0)}
.fx-ring .in{width:100px;height:100px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;box-shadow:inset 0 0 0 1px #f1f5f9}
.fx-ring .big{font-size:25px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.fx-ring .lbl{font-size:10.5px;color:var(--ink-3);margin-top:1px}
.fx-verdict-main{min-width:0}
.fx-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.fx-dir{display:inline-block;font-size:13px;font-weight:800;padding:3px 13px;border-radius:999px;line-height:1.5}
.fx-dir.up{background:#fee2e2;color:#b91c1c}
.fx-dir.down{background:#e6f7f0;color:#009167}
.fx-dir.flat{background:#fff4e0;color:#a35b00}
.fx-badge{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:#f1f5f9;color:#475569;line-height:1.6}
.fx-badge.ghost{background:#fff;border:1px solid var(--line);color:var(--ink-3)}
.fx-badge.conf-high{background:var(--primary-l);color:var(--primary-d)}
.fx-badge.conf-mid{background:#fff4e0;color:#a35b00}
.fx-badge.conf-low{background:#f3f4f6;color:#6b7280}
.fx-verdict-txt{margin:0 0 10px;font-size:13.5px;line-height:1.8;color:var(--ink-2)}
.fx-kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12.5px;color:var(--ink-2)}
.fx-kv>div{display:flex;align-items:baseline;gap:5px;min-width:0}
.fx-kv span{color:var(--ink-3);flex:none}
.fx-kv b{font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--ink);white-space:nowrap}
.fx-gauge{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,#d1fae5 0%,#f1f5f9 50%,#fee2e2 100%);margin:16px 0 6px}
.fx-gauge .mid{position:absolute;left:50%;top:-3px;width:1px;height:14px;background:#cbd5e1}
.fx-gauge .dot{position:absolute;top:-4px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--primary);transform:translateX(-50%);box-shadow:0 1px 4px rgba(15,23,42,.18)}
.fx-gauge-lbl{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-3);margin-bottom:4px}
.fx-chain{margin:10px 0 0;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.fx-chain b{font-size:14px;color:var(--ink)}
.fx-chain-op{color:var(--ink-3);font-weight:700}
.fx-chain .fx-chain-final{color:var(--primary-d);font-size:16px}

.fx-chart{background:linear-gradient(180deg,#fbfdfc,#fff);border:1px solid #f1f5f9;border-radius:12px;padding:4px 2px 0;overflow:hidden}
.fx-chart svg{display:block;width:100%;height:auto}
.fx-chart-m{display:none}
@media (max-width:600px){
  .fx-chart-d{display:none}
  .fx-chart-m{display:block}
}
.fx-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:11.5px;color:var(--ink-3)}
.fx-legend span{display:inline-flex;align-items:center;gap:5px}
.fx-legend i{display:inline-block;width:16px;height:0;border-top-width:2px;border-top-style:solid}
.fx-legend .lg-line{border-color:var(--primary)}
.fx-legend .lg-dash{border-color:#f5a623;border-top-style:dashed}
.fx-legend .lg-band{width:12px;height:10px;border:none;background:rgba(245,166,35,.2);border-radius:2px}
.fx-legend .lg-sup{border-color:var(--down);border-top-style:dashed}
.fx-legend .lg-res{border-color:var(--up);border-top-style:dashed}

.fx-factors{display:flex;flex-direction:column}
.fx-frow{display:grid;grid-template-columns:104px minmax(0,1fr) 54px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed #f1f5f9}
.fx-frow:last-child{border-bottom:none}
.fx-flabel{font-size:12.5px;font-weight:700;line-height:1.3;min-width:0}
.fx-flabel span{display:block;font-size:11px;color:var(--ink-3);font-weight:500;font-variant-numeric:tabular-nums;margin-top:1px}
.fx-fbar{position:relative;height:9px;background:#f1f5f9;border-radius:999px;overflow:hidden}
.fx-fbar .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:#cbd5e1;z-index:2}
.fx-fbar i{position:absolute;top:0;bottom:0;border-radius:999px;min-width:2px}
.fx-fbar i.pos{background:var(--up)}
.fx-fbar i.neg{background:var(--down)}
.fx-fpp{text-align:right;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}

.fx-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fx-info{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.fx-info-h{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:4px}
.fx-info-h b{font-size:13px}
.fx-info-h span{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.fx-info p{margin:0;font-size:12px;line-height:1.65;color:var(--ink-3)}

.fx-news,.fx-reports,.fx-refs{list-style:none;margin:0;padding:0}
.fx-news li,.fx-reports li{padding:10px 0;border-bottom:1px dashed var(--line)}
.fx-news li:last-child,.fx-reports li:last-child{border-bottom:none}
.fx-news a,.fx-reports a{font-size:13.5px;font-weight:600;line-height:1.65;display:block;color:var(--ink)}
.fx-news a:hover,.fx-reports a:hover{color:var(--primary-d)}
.fx-news-meta,.fx-rep-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);margin-top:4px}
.fx-sent{font-size:10.5px;font-weight:800;padding:1px 8px;border-radius:999px;line-height:1.6}
.fx-sent.pos{background:#fee2e2;color:#b91c1c}
.fx-sent.neg{background:#e6f7f0;color:#009167}
.fx-sent.neu{background:#f1f5f9;color:#64748b}
.fx-rate{background:var(--primary-l);color:var(--primary-d);font-weight:800;padding:1px 8px;border-radius:999px;font-size:10.5px}
.fx-refs li{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}
.fx-refs li:last-child{border-bottom:none}
.fx-refs a{flex:1;min-width:0;font-size:13px;font-weight:600;line-height:1.65}
.fx-refs a:hover{color:var(--primary-d)}
.fx-ref-src{flex:none;font-size:10.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:1px 7px}

.fx-ai-out{display:none;margin-top:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.9;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}

/* 全站入口条（首页 / 选股页） */
.fx-entry{display:flex;align-items:center;gap:12px;margin:14px 0;padding:13px 16px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(135deg,#eef6ff,#f0fdf9);transition:.15s}
.fx-entry:hover{border-color:#93c5fd;box-shadow:0 6px 18px rgba(37,99,235,.08)}
.fx-entry .fx-entry-ic{flex:none;width:42px;height:42px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 1px 4px rgba(15,23,42,.06)}
.fx-entry .fx-entry-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fx-entry .fx-entry-tx b{font-size:15px;color:var(--ink)}
.fx-entry .fx-entry-tx span{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.fx-entry .fx-entry-go{flex:none;font-size:13px;font-weight:800;color:#2563eb;white-space:nowrap}
.fx-entry.compact{margin:12px 14px}

@media (max-width:560px){
  .fx-hero{padding:16px 14px}
  .fx-hero h2{font-size:20px}
  .fx-verdict{grid-template-columns:104px minmax(0,1fr);gap:12px}
  .fx-ring{width:104px;height:104px}
  .fx-ring .in{width:82px;height:82px}
  .fx-ring .big{font-size:21px}
  .fx-kv{grid-template-columns:1fr}
  .fx-metrics{grid-template-columns:repeat(2,1fr)}
  .fx-info-grid{grid-template-columns:1fr}
  .fx-quick{grid-template-columns:repeat(2,1fr)}
  .fx-frow{grid-template-columns:92px minmax(0,1fr) 50px;gap:8px}
  .fx-search .btn{padding:10px 14px}
}
@media (min-width:900px){
  .fx-hero{padding:24px 26px}
  .fx-hero h2{font-size:26px}
  .fx-verdict{grid-template-columns:150px minmax(0,1fr);gap:20px}
  .fx-ring{width:150px;height:150px}
  .fx-ring .in{width:120px;height:120px}
  .fx-ring .big{font-size:30px}
  .fx-quick{grid-template-columns:repeat(6,1fr)}
  .fx-frow{grid-template-columns:130px minmax(0,1fr) 62px}
  .fx-card{padding:18px 20px}
}

/* ===== v9.52 科技风口 / 低价值挖掘 / 积分墙 ===== */
.fx-subnav{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:10px 0 2px;margin-bottom:4px;scrollbar-width:none}
.fx-subnav::-webkit-scrollbar{display:none}
.fx-subnav a{flex:none;font-size:13px;font-weight:700;color:var(--ink-2);border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;white-space:nowrap;transition:.15s}
.fx-subnav a:hover{border-color:var(--primary);color:var(--primary-d)}
.fx-subnav a.active{background:var(--primary);border-color:var(--primary);color:#fff}
.fx-subnav-sp{flex:1 1 auto;min-width:6px}
.fx-pts-chip{flex:none;font-size:12.5px;font-weight:800;color:#a35b00;background:var(--gold-l);border:1px solid #f5d9a0;border-radius:999px;padding:5px 12px;white-space:nowrap}
.fx-pts-chip.guest{color:var(--primary-d);background:var(--primary-l);border-color:#cdeee1}

.fx-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fx-hero-meta span{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--ink-2)}
.fx-hero-tech{background:linear-gradient(135deg,#eef6ff,#f0fdf9)}
.fx-hero-value{background:linear-gradient(135deg,#fff8e6,#f0fdf9)}

.fx-theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.fx-theme-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;transition:.15s;color:inherit}
.fx-theme-card:hover{border-color:var(--primary);box-shadow:0 6px 18px rgba(0,178,122,.1)}
.fx-theme-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.fx-theme-name{min-width:0}
.fx-theme-name b{display:block;font-size:15px;line-height:1.35}
.fx-theme-name span{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:2px}
.fx-theme-cat{display:inline-block!important;font-size:10px!important;font-weight:700;color:var(--primary-d)!important;background:var(--primary-l);border-radius:999px;padding:0 6px;line-height:17px;margin:2px 0 2px;width:max-content}
.fx-theme-filter{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.fx-theme-filter-item{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--ink-2);border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;transition:.15s}
.fx-theme-filter-item i{font-style:normal;font-size:10.5px;color:var(--ink-3);background:#f1f5f9;border-radius:999px;padding:0 5px;line-height:16px}
.fx-theme-filter-item:hover{border-color:var(--primary);color:var(--primary-d)}
.fx-theme-filter-item.active{background:var(--primary);border-color:var(--primary);color:#fff}
.fx-theme-filter-item.active i{background:rgba(255,255,255,.2);color:#fff}
.fx-stock-table-wrap{max-height:620px;overflow:auto}
.fx-stock-table-wrap thead th{position:sticky;top:0;background:#fff;z-index:2}
.fx-table-more{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.pts-balance-buy{margin-top:10px}
.fx-lock-all{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fx-lock-all-select{flex:1 1 210px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px}
.pts-all-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:4px 0 12px}
.pts-all-card{position:relative;display:flex;flex-direction:column;gap:2px;background:#f8fafc;border:2px solid var(--line);border-radius:12px;padding:10px 10px 8px;cursor:pointer;transition:.15s}
.pts-all-card:hover{border-color:var(--primary);background:var(--primary-l)}
.pts-all-card input{position:absolute;top:9px;right:9px;accent-color:var(--primary)}
.pts-all-card b{font-size:14px;padding-right:18px}
.pts-all-card span{font-size:16px;font-weight:800;color:#a35b00}
.pts-all-card small{font-size:10.5px;color:var(--ink-3)}
.pts-all-card:has(input:checked){border-color:var(--primary);background:var(--primary-l);box-shadow:0 0 0 2px rgba(0,178,122,.12)}
@media (max-width:900px){.pts-all-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.pts-all-grid{grid-template-columns:repeat(2,1fr)}}
.fx-heat{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;white-space:nowrap}
.fx-heat.hot{background:#fee2e2;color:#b91c1c}
.fx-heat.cold{background:#e6f7f0;color:#009167}
.fx-theme-nums{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3)}
.fx-theme-nums .fx-theme-chg{font-size:14px;font-weight:800}
.fx-heatbar{height:6px;background:#f1f5f9;border-radius:999px;overflow:hidden}
.fx-heatbar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--up));border-radius:999px}
.fx-theme-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-3);margin-top:auto}
.fx-lock-tag{font-size:10.5px;font-weight:800;color:#a35b00;background:#fff4e0;border-radius:999px;padding:1px 8px;white-space:nowrap}

.fx-heat-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}
.fx-heat-stats>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.fx-heat-stats span{font-size:11.5px;color:var(--ink-3)}
.fx-heat-stats b{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.fx-valcards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.fx-valcards>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.fx-valcards span{font-size:11.5px;color:var(--ink-3)}
.fx-valcards b{font-size:17px;font-variant-numeric:tabular-nums}
.fx-score{display:inline-block;background:var(--primary-l);color:var(--primary-d);font-weight:800;padding:2px 9px;border-radius:999px;font-variant-numeric:tabular-nums}
.fx-tag-mini{font-size:10.5px;color:var(--ink-3)}
.fx-value-table td{font-size:12px}

.fx-lock{display:flex;gap:16px;background:#fff;border:1px solid #ffe2c2;border-left:4px solid var(--gold);border-radius:14px;padding:18px;margin:12px 0}
.fx-lock-ic{flex:none;width:52px;height:52px;border-radius:14px;background:var(--gold-l);display:grid;place-items:center;font-size:26px}
.fx-lock-main{flex:1;min-width:0}
.fx-lock h3{margin:0 0 6px;font-size:16px}
.fx-lock p{margin:0;font-size:13px;line-height:1.75;color:var(--ink-2)}
.fx-lock-pts{margin-top:8px;font-size:12.5px;color:var(--ink-3)}
.fx-lock-pts b{color:var(--ink);font-variant-numeric:tabular-nums}
.fx-lock-note{font-size:11.5px!important;color:var(--ink-3)!important;margin-top:6px!important}
.fx-lock-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* 三个积分入口固定一行：等宽三列，避免 2+1 换行 */
.fx-lock-acts-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.fx-lock-acts-3 .btn{width:100%;font-size:12.5px;padding:9px 4px;white-space:nowrap}
.fx-lock-form{margin-top:12px}
.fx-lock-list{margin:10px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.8}
.fx-locked-card{border-color:#f5e0b0;background:linear-gradient(135deg,#fffdf7,#fff)}
.fx-ring-lock{background:#f1f5f9!important}
.fx-ring-lock .big{font-size:26px}

/* 积分中心 */
.pts-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#fff8e6,#f0fdf9);border:1px solid #f5e0b0;border-radius:16px;padding:20px 22px;margin:14px 0}
.pts-balance span{display:block;font-size:13px;color:var(--ink-3)}
.pts-balance b{display:block;font-size:42px;line-height:1.1;color:#a35b00;font-variant-numeric:tabular-nums}
.pts-balance small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}
.pts-checkin{text-align:right;flex:none}
.pts-checkin p{font-size:11.5px;color:var(--ink-3);margin:6px 0 0}
.pts-checkin-done{display:inline-block;background:#e6f7f0;color:#009167;font-weight:800;border-radius:999px;padding:6px 14px;font-size:13px}
.pts-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.pts-quick a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:700;display:flex;flex-direction:column;gap:2px;transition:.15s}
.pts-quick a span{font-size:11.5px;color:var(--ink-3);font-weight:500}
.pts-quick a:hover{border-color:var(--primary);color:var(--primary-d);background:var(--primary-l)}
.pts-rules{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pts-rules>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.pts-rules b{font-size:13px}
.pts-rules span{font-size:12px;color:var(--ink-3);line-height:1.6}
.pts-plus{color:#009167!important;font-weight:800}
.pts-minus{color:#dc2626!important;font-weight:800}
.pts-table td{font-size:12px}

@media (max-width:900px){
  .fx-theme-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .fx-theme-grid{grid-template-columns:1fr}
  .fx-heat-stats{grid-template-columns:repeat(2,1fr)}
  .fx-valcards{grid-template-columns:repeat(2,1fr)}
  .fx-lock{flex-direction:column;padding:16px}
  .fx-lock-ic{width:44px;height:44px;font-size:22px}
  .pts-hero{flex-direction:column;align-items:flex-start;gap:12px;padding:18px}
  .pts-balance b{font-size:34px}
  .pts-checkin{text-align:left}
  .pts-quick{grid-template-columns:1fr}
  .pts-rules{grid-template-columns:1fr}
}

/* ===== v9.53 手动购买积分 ===== */
.pts-buy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 6px}
.pts-buy-card{position:relative;display:flex;flex-direction:column;gap:4px;background:#f8fafc;border:2px solid var(--line);border-radius:14px;padding:14px 14px 12px;cursor:pointer;transition:.15s}
.pts-buy-card:hover{border-color:var(--primary);background:var(--primary-l)}
.pts-buy-card input{position:absolute;top:12px;right:12px;accent-color:var(--primary)}
.pts-buy-card b{font-size:16px;padding-right:20px}
.pts-buy-card .pts-buy-price{font-size:24px;font-weight:800;color:#a35b00;line-height:1.15}
.pts-buy-card small{font-size:11.5px;color:var(--ink-3);line-height:1.6}
.pts-buy-card:has(input:checked){border-color:var(--primary);background:var(--primary-l);box-shadow:0 0 0 2px rgba(0,178,122,.12)}
/* 购买页：剩余积分放在「购买积分」标题之前，先看余额再选套餐 */
.buy-balance{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:0 0 10px;font-size:13px;color:var(--ink-2)}
.buy-balance b{font-size:30px;line-height:1.05;color:#a35b00;font-variant-numeric:tabular-nums}
.buy-balance a{margin-left:auto;font-size:12px;font-weight:700;color:var(--primary-d)}
.buy-balance a:hover{text-decoration:underline}
.pts-qr-wrap{text-align:center;margin:10px 0 14px}
.pts-qr{display:inline-block;max-width:220px;width:62%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:6px}
.badge.b-warn{background:#fff4e0;color:#a35b00}
@media (max-width:700px){.pts-buy-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.pts-buy-grid{grid-template-columns:1fr}.pts-qr{width:70%}}


/* ===== 积分在线扫码支付 ===== */
.pay-method-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 14px; }
.pay-method-grid-single { grid-template-columns:1fr; }
.pay-method-card { position:relative; display:flex; flex-direction:column; gap:3px; padding:11px 12px; border:2px solid var(--line); border-radius:12px; background:#f8fafc; cursor:pointer; }
.pay-method-card:hover { border-color:var(--primary); background:var(--primary-l); }
.pay-method-card:has(input:checked) { border-color:var(--primary); background:var(--primary-l); box-shadow:0 0 0 2px rgba(0,178,122,.12); }
.pay-method-card input { position:absolute; top:11px; right:11px; accent-color:var(--primary); }
.pay-method-card b { font-size:14px; padding-right:22px; }
.pay-method-card small { font-size:11.5px; color:var(--ink-3); line-height:1.5; }
.pay-method-card.is-disabled { opacity:.55; cursor:not-allowed; }
.pay-order-line { display:flex; flex-wrap:wrap; gap:8px 22px; padding:10px 12px; background:#f8fafc; border:1px solid var(--line); border-radius:10px; font-size:13px; color:var(--ink-3); }
.pay-order-line b { color:var(--ink); }
.pay-channel-title { font-size:13px; font-weight:700; margin:14px 0 8px; }
.pay-channel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.pay-channel-card { position:relative; display:flex; flex-direction:column; gap:2px; padding:10px 11px; border:2px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }
.pay-channel-card:has(input:checked) { border-color:var(--primary); background:var(--primary-l); }
.pay-channel-card input { position:absolute; top:9px; right:9px; accent-color:var(--primary); }
.pay-channel-card b { font-size:13px; padding-right:18px; }
.pay-channel-card small { font-size:10.5px; color:var(--ink-3); }
.pay-qr-box { text-align:center; padding:16px 10px 6px; }
.pay-qr-img { width:min(260px,72vw); height:auto; border:1px solid var(--line); border-radius:12px; background:#fff; padding:8px; }
.pay-wait { font-size:12.5px; color:var(--ink-3); margin:12px 0 4px; }
@media (max-width:640px) {
  .pay-method-grid { grid-template-columns:1fr; }
  .pay-channel-grid { grid-template-columns:1fr; }
}

/* ===== 会员套餐 / 会员标识 ===== */
.member-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:4px 0 8px; }
.member-plan-card { position:relative; display:flex; flex-direction:column; gap:4px; padding:14px; border:2px solid var(--line); border-radius:14px; background:#f8fafc; text-decoration:none; color:var(--ink); transition:.15s; }
.member-plan-card:hover { border-color:var(--primary); background:var(--primary-l); }
.member-plan-card.active { border-color:var(--primary); background:var(--primary-l); box-shadow:0 0 0 2px rgba(0,178,122,.12); }
.member-plan-icon { font-size:26px; line-height:1; }
.member-plan-card b { font-size:15px; }
.member-plan-card strong { font-size:24px; color:#a35b00; line-height:1.15; }
.member-plan-card small { font-size:11.5px; color:var(--ink-3); line-height:1.5; }
.member-plan-btn { margin-top:4px; align-self:flex-start; font-size:11.5px; font-weight:700; color:var(--primary); }
.member-plan-card.m-month { border-top-color:#93c5fd; }
.member-plan-card.m-quarter { border-top-color:#c4b5fd; }
.member-plan-card.m-year { border-top-color:#fcd34d; }
.member-badge { display:inline-flex; align-items:center; gap:3px; padding:1px 7px; border-radius:999px; font-size:10.5px; font-weight:700; vertical-align:1px; white-space:nowrap; }
.member-badge.m-month { color:#1d4ed8; background:#dbeafe; border:1px solid #bfdbfe; }
.member-badge.m-quarter { color:#6d28d9; background:#ede9fe; border:1px solid #ddd6fe; }
.member-badge.m-year { color:#92400e; background:#fef3c7; border:1px solid #fde68a; }
@media (max-width:640px) { .member-plan-grid { grid-template-columns:1fr; } }

/* ===== 挣积分任务 ===== */
.earn-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 14px; }
.earn-task { display:flex; align-items:center; gap:10px; padding:12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.earn-ic { width:38px; height:38px; border-radius:10px; background:var(--primary-l); display:flex; align-items:center; justify-content:center; font-size:20px; flex:none; }
.earn-main { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.earn-main b { font-size:13.5px; }
.earn-main span { font-size:11.5px; color:var(--ink-3); }
.earn-task .btn, .earn-task .badge { flex:none; }
@media (max-width:640px) { .earn-grid { grid-template-columns:1fr; } }

/* ===== 购买后48小时订单反馈浮窗 ===== */
.ofb-btn { position:fixed; right:18px; bottom:18px; z-index:9998; border:none; border-radius:999px; background:#009167; color:#fff; font-size:12.5px; font-weight:700; padding:10px 14px; box-shadow:0 8px 24px rgba(0,145,103,.28); cursor:pointer; }
.ofb-btn:hover { background:#00a877; }
.ofb-mask { position:fixed; inset:0; z-index:9999; background:rgba(15,23,42,.5); display:flex; align-items:flex-end; justify-content:center; padding:18px; }
.ofb-mask[hidden] { display:none; }
.ofb-panel { width:min(480px,100%); max-height:86vh; overflow:auto; background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.25); padding:14px 16px 16px; }
.ofb-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
.ofb-head b { font-size:15px; }
.ofb-close { border:none; background:#f1f5f9; width:30px; height:30px; border-radius:50%; font-size:19px; line-height:1; cursor:pointer; color:#64748b; }
.ofb-sub { font-size:11.5px; color:#94a3b8; line-height:1.55; margin:2px 0 10px; }
.ofb-form .field { margin-bottom:8px; }
.ofb-form .field label { font-size:11.5px; margin-bottom:3px; }
.ofb-form .field textarea, .ofb-form .field input, .ofb-form .field select { font-size:12.5px; padding:8px 10px; }
.ofb-tip { font-size:11.5px; color:#64748b; margin:6px 0 0; min-height:16px; }
.ofb-list { border-top:1px solid #eef0f2; margin-top:12px; padding-top:10px; display:flex; flex-direction:column; gap:8px; }
.ofb-item { background:#f8fafc; border:1px solid #eef0f2; border-radius:10px; padding:8px 10px; }
.ofb-item-head { font-size:10.5px; color:#94a3b8; margin-bottom:3px; }
.ofb-msg { font-size:12px; color:#334155; margin:0; white-space:pre-wrap; word-break:break-word; }
.ofb-reply { margin-top:6px; padding:6px 8px; border-radius:8px; background:#e6f7f0; color:#007a58; font-size:11.5px; line-height:1.55; white-space:pre-wrap; }
.ofb-wait { margin-top:5px; font-size:10.5px; color:#a35b00; }
@media (max-width:520px) {
  .ofb-btn { right:10px; bottom:10px; font-size:11.5px; padding:9px 12px; }
  .ofb-mask { padding:10px; }
  .ofb-panel { max-height:88vh; }
}

/* ===== 每日早盘前瞻 ===== */
.morning-page { padding: 18px 0 38px; }
.morning-hero { position: relative; overflow: hidden; border-radius: 18px; padding: 26px 28px 22px; color: #fff; background: radial-gradient(circle at 88% 10%, rgba(0, 210, 160, .32), transparent 30%), linear-gradient(125deg, #102c2b, #064b40 58%, #087a63); box-shadow: 0 16px 40px rgba(4, 78, 63, .22); }
.morning-hero::after { content: ""; position: absolute; right: -70px; bottom: -100px; width: 260px; height: 260px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; }
.morning-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: relative; z-index: 1; }
.morning-hero .eyebrow { color: #9df3d6; letter-spacing: .12em; }
.morning-stamp { font-size: 11px; color: rgba(255,255,255,.72); }
.morning-hero h1 { position: relative; z-index: 1; margin: 12px 0 6px; font-size: 30px; line-height: 1.25; letter-spacing: -.02em; }
.morning-hero > p { position: relative; z-index: 1; margin: 0; color: rgba(255,255,255,.74); font-size: 12.5px; line-height: 1.7; }
.morning-bias-row { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 9px; margin-top: 20px; }
.morning-bias, .morning-hero-stat { min-width: 0; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); }
.morning-bias span, .morning-hero-stat span { display: block; font-size: 10px; color: rgba(255,255,255,.62); }
.morning-bias b { display: inline-block; margin: 3px 7px 2px 0; color: #9df3d6; font-size: 21px; line-height: 1.2; }
.morning-bias em { font-style: normal; font-size: 10px; color: rgba(255,255,255,.68); }
.morning-hero-stat b { display: block; margin-top: 4px; font-size: 15px; color: #fff; }
.morning-hero-stat em { display: block; margin-top: 2px; font-style: normal; font-size: 9.5px; color: rgba(255,255,255,.55); }
.morning-tone-down b, .morning-tone-down { color: #ffb7a6 !important; }
.morning-tone-flat b, .morning-tone-flat { color: #ffe29a !important; }
.morning-market-card { display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; align-items: center; margin-top: 14px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.morning-market-main h2 { margin: 2px 0 4px; font-size: 18px; }
.morning-index { display: flex; align-items: baseline; gap: 10px; }
.morning-index b { font-family: var(--font-num); font-size: 30px; letter-spacing: -.02em; }
.morning-index span { font-family: var(--font-num); font-size: 13px; font-weight: 700; }
.morning-market-note { margin: 5px 0 0; color: var(--ink-3); font-size: 11.5px; }
.morning-market-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.morning-market-metrics > div { padding: 9px 10px; border-radius: 9px; background: #f7faf8; border: 1px solid #edf2ef; }
.morning-market-metrics span { display: block; color: var(--ink-3); font-size: 10px; }
.morning-market-metrics b { display: block; margin-top: 3px; font-family: var(--font-num); font-size: 14px; }
.morning-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 26px 0 12px; }
.morning-section-head h2 { margin: 3px 0 4px; font-size: 21px; }
.morning-section-head p { margin: 0; color: var(--ink-3); font-size: 11.5px; line-height: 1.65; }
.morning-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.morning-sector-card { padding: 15px 15px 11px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-sm); }
.morning-sector-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.morning-cat { display: inline-block; margin-bottom: 2px; font-size: 9.5px; color: var(--primary-d); letter-spacing: .04em; }
.morning-sector-head h3 { margin: 0; font-size: 16px; }
.morning-sector-head small { display: block; margin-top: 3px; color: var(--ink-3); font-size: 10.5px; line-height: 1.55; }
.morning-sector-tone { flex: none; text-align: right; }
.morning-sector-tone b { display: block; font-size: 12px; color: var(--primary-d); }
.morning-sector-tone span { display: block; margin-top: 2px; color: var(--ink-3); font-size: 9.5px; }
.morning-sector-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 10px 0 8px; padding: 6px 8px; border-radius: 7px; background: #f8faf9; color: var(--ink-3); font-size: 10px; }
.morning-stock-list { display: flex; flex-direction: column; }
.morning-stock { display: grid; grid-template-columns: minmax(0, 1.5fr) auto auto auto; align-items: center; gap: 8px; padding: 7px 2px; border-top: 1px dashed #eef1ef; color: inherit; }
.morning-stock:first-child { border-top: none; }
.morning-stock:hover { background: #f8fcfa; }
.morning-stock-name { min-width: 0; }
.morning-stock-name b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
.morning-stock-name span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; color: var(--ink-3); font-size: 9.5px; }
.morning-stock-price { text-align: right; }
.morning-stock-price b { display: block; font-family: var(--font-num); font-size: 12px; }
.morning-stock-price span { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 10px; }
.morning-stock-flow { min-width: 54px; text-align: right; }
.morning-stock-flow span { display: block; color: var(--ink-3); font-size: 9px; }
.morning-stock-flow b { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 9.5px; }
.morning-tag { flex: none; padding: 2px 6px; border-radius: 999px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.morning-tag-hot { color: #b42318; background: #ffebe8; }
.morning-tag-warm { color: #a15c00; background: #fff3d8; }
.morning-tag-watch { color: #087a63; background: #e6f7f0; }
.morning-tag-flat { color: #667085; background: #f1f4f3; }
.morning-empty { margin: 8px 0; color: var(--ink-3); font-size: 11px; }
.morning-disclaimer { margin: 18px 0 0; padding: 10px 12px; border-radius: 8px; background: #fbfaf7; color: var(--ink-3); font-size: 10.5px; line-height: 1.7; }
.morning-page .is-up { color: #d92d20; }
.morning-page .is-down { color: #079455; }
@media (max-width: 760px) {
  .morning-hero { padding: 20px 18px 16px; border-radius: 14px; }
  .morning-hero h1 { font-size: 24px; }
  .morning-bias-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .morning-market-card { grid-template-columns: 1fr; gap: 12px; padding: 15px 16px; }
  .morning-grid { grid-template-columns: 1fr; }
  .morning-section-head { align-items: flex-start; flex-direction: column; gap: 6px; }
  .morning-stock { grid-template-columns: minmax(0, 1fr) auto auto; }
  .morning-stock-flow { display: none; }
}
.morning-data-note { margin: -2px 0 10px; padding: 7px 10px; border-radius: 7px; background: #fff8e8; border: 1px solid #f5e2b8; color: #8a5a00; font-size: 10.5px; line-height: 1.65; }
.morning-stock-price em { display: block; margin-top: 1px; color: #94a3b8; font-size: 8.5px; font-style: normal; }
.morning-factor-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.morning-factor-row span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border: 1px solid #e7ece9; border-radius: 999px; background: #f8faf9; color: var(--ink-3); font-size: 10px; }
.morning-factor-row b { color: var(--ink-2); font-size: 10px; }
.morning-focus { margin-top: 18px; padding: 15px 16px 13px; border: 1px solid #dceee7; border-radius: 13px; background: linear-gradient(135deg, #f2fbf7, #ffffff 62%); }
.morning-focus .morning-section-head { margin: 0 0 10px; }
.morning-focus-note { color: var(--ink-3); font-size: 10px; white-space: nowrap; }
.morning-focus-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.morning-focus-item { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 7px 8px; border: 1px solid #e8f0ec; border-radius: 8px; background: #fff; color: inherit; }
.morning-focus-item:hover { border-color: #b7ddce; background: #fbfefc; }
.morning-focus-no { color: #9bb7ad; font-family: var(--font-num); font-size: 10px; }
.morning-focus-name { min-width: 0; }
.morning-focus-name b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
.morning-focus-name span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; color: var(--ink-3); font-size: 9px; }
.morning-focus-price { text-align: right; }
.morning-focus-price b { display: block; font-family: var(--font-num); font-size: 11px; }
.morning-focus-price span { display: block; color: var(--ink-3); font-size: 8.5px; }
@media (max-width: 760px) {
  .morning-focus-grid { grid-template-columns: 1fr; }
  .morning-focus-item { grid-template-columns: 22px minmax(0, 1fr) auto auto; }
  .morning-focus-note { display: none; }
}

/* 顶栏「模型」下拉：减少一级导航拥挤 */
.topnav { overflow: visible; }
.nav-drop { position: relative; flex: none; }
.nav-drop summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 3px; padding: 7px 11px; border-radius: 8px; color: var(--ink-2); font-size: 14.5px; font-weight: 600; white-space: nowrap; }
.nav-drop summary::-webkit-details-marker { display: none; }
.nav-drop summary::marker { content: ""; }
.nav-drop summary:hover { background: var(--primary-l); color: var(--primary-d); }
.nav-drop[open] summary, .nav-drop.active summary { color: var(--primary); background: var(--primary-l); }
.nav-caret { font-size: 10px; opacity: .65; }
.nav-drop-body { position: absolute; top: calc(100% + 8px); left: 0; z-index: 80; min-width: 148px; padding: 5px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 14px 34px rgba(15, 23, 42, .14); }
.nav-drop-body a { display: block; padding: 8px 10px; border-radius: 7px; font-size: 13px; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.nav-drop-body a:hover { background: var(--primary-l); color: var(--primary-d); }
.nav-drop-body a.active { color: var(--primary); background: var(--primary-l); }
@media (max-width: 1100px) { .nav-drop summary { padding: 7px 8px; font-size: 13.5px; } }

/* ===== 手机端布局修正 v9.75 ===== */
@media (max-width: 640px) {
  .appbar .row { gap: 6px; }
  .appbar img.logo { height: 26px; }
  .appbar .ttl { display: block; flex: 0 1 auto; max-width: 96px; font-size: 15px; }
  .appbar .lang-sw { display: none; }
  .appbar .btn-mini { flex: none; white-space: nowrap; padding: 6px 10px; font-size: 12.5px; line-height: 1.3; }
  .appbar .u-mini { max-width: 44px; }
  .appbar .u-name { display: none; }
  .risk-bar { width: calc(100% - 28px); margin: 8px auto 10px; }
  .risk-bar p { font-size: 11.5px; line-height: 1.6; }
  .hero-mini { padding: 14px; }
  .hero-mini .hero-hd h2 { flex: 1 1 100%; font-size: 19px; }
  .hero-mini .hero-act { margin-left: 0; width: 100%; }
  .stock-bar { padding: 8px 10px; gap: 6px; }
  .stock-bar input { min-width: 0; padding: 8px 10px; font-size: 13px; }
  .stock-bar .stock-zx { flex: none; padding: 8px 10px; font-size: 12px; }
  .zx-full { display: none; }
  .zx-mini { display: inline; }
  .fx-subnav { flex-wrap: wrap; overflow: visible; }
  .fx-subnav-sp { display: none; }
  .fx-pts-chip { font-size: 11px; padding: 4px 9px; }
  .morning-bias-row { gap: 7px; }
  .morning-bias b { font-size: 20px; }
  .morning-bias em { display: block; margin-top: 2px; font-size: 9.5px; line-height: 1.5; white-space: nowrap; }
}
.zx-mini { display: none; }

@media (max-width:640px){.zx-mini{display:inline;}}

.ticker-note { max-width: 1180px; margin: 6px auto 0; padding: 0 14px; text-align: center; }
.stock-data-note { width: 100%; }
@media (max-width: 640px) {
  .ticker-note { padding: 0 14px; line-height: 1.6; }
  .stock-data-note { width: calc(100% - 28px); margin-left: auto !important; margin-right: auto !important; }
}

/* 手机端细节：行情说明、横滑表格、Cookie 条 */
.ticker-note b { white-space: nowrap; }
.fx-table-wrap { overscroll-behavior-x: contain; }
@media (max-width: 640px) {
  .fx-table-wrap::before { content: "表格可左右滑动 →"; display: block; position: sticky; left: 0; width: max-content; margin: 0 0 3px; padding: 2px 7px; border-radius: 999px; background: #eef4f1; color: #6b7c76; font-size: 9.5px; }
  .cookie-banner { padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .cookie-banner p { font-size: 11.5px; line-height: 1.55; }
  .cookie-banner .cookie-inner { gap: 8px; }
  .cookie-banner .cookie-actions { justify-content: stretch; gap: 6px; }
  .cookie-banner .cookie-actions .btn { flex: 1; padding: 7px 8px; font-size: 12px; }
  .site-foot { padding: 18px 0 12px; }
  .foot-util-bar { gap: 8px 12px; }
  .foot-bar-copy { white-space: normal; line-height: 1.8; }
}
@media (max-width: 360px) {
  .tabbar a { font-size: 9.5px; }
  .tabbar a .ic { font-size: 18px; }
  .appbar .btn-mini { padding: 6px 8px; font-size: 12px; }
}

/* 学习大菜单：参考模型子导航的卡片式入口 */
.nav-learn-panel { width: min(540px, calc(100vw - 28px)); display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 8px; }
.nav-learn-panel a { display: flex; align-items: flex-start; gap: 9px; padding: 9px 10px; border-radius: 8px; white-space: normal; }
.nav-learn-panel .nl-ic { flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: #f1f8f5; font-size: 14px; }
.nav-learn-panel .nl-tx { min-width: 0; }
.nav-learn-panel .nl-tx b { display: block; color: var(--ink-2); font-size: 12.5px; line-height: 1.35; }
.nav-learn-panel .nl-tx small { display: block; margin-top: 2px; color: var(--ink-3); font-size: 10px; font-weight: 400; line-height: 1.45; white-space: normal; }
.nav-learn-panel a.active .nl-tx b { color: var(--primary-d); }
.nav-learn-panel a.active .nl-ic { background: var(--primary-l); }
@media (max-width: 1100px) {
  .nav-learn-panel { width: min(440px, calc(100vw - 28px)); }
  .nav-learn-panel .nl-tx small { font-size: 9.5px; }
}

/* ===== 每日收盘看点 ===== */
.close-page { padding: 14px 0 38px; }
.close-hero { position: relative; overflow: hidden; border-radius: 16px; padding: 22px 24px 18px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(255, 190, 92, .28), transparent 32%), linear-gradient(125deg, #3a2415, #6b3d1d 58%, #91602a); box-shadow: 0 14px 34px rgba(92, 51, 19, .2); }
.close-hero-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.close-hero .eyebrow { color: #ffd79a; letter-spacing: .12em; }
.close-stamp { font-size: 10.5px; color: rgba(255,255,255,.65); }
.close-hero h1 { margin: 11px 0 5px; font-size: 27px; line-height: 1.25; }
.close-hero > p { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.7; }
.close-hero-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 14px; color: rgba(255,255,255,.7); font-size: 10.5px; }
.close-index-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.close-index-card { padding: 12px 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.close-index-card > span { display: block; color: var(--ink-3); font-size: 10.5px; }
.close-index-card > b { display: block; margin-top: 4px; font-family: var(--font-num); font-size: 21px; line-height: 1.2; }
.close-index-card > em { display: block; margin-top: 2px; font-family: var(--font-num); font-size: 12px; font-style: normal; font-weight: 700; }
.close-index-card > small { display: block; margin-top: 3px; color: var(--ink-3); font-size: 9.5px; }
.close-review { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; padding: 14px 18px; border: 1px solid #e8e1d3; border-radius: 12px; background: linear-gradient(120deg, #fffaf0, #fff); }
.close-review h2 { margin: 2px 0 3px; font-size: 18px; }
.close-review p { margin: 0; color: var(--ink-3); font-size: 11.5px; }
.close-review-result { flex: none; text-align: right; }
.close-review-result b { display: block; font-size: 13px; }
.close-review-result span { display: block; margin-top: 2px; color: var(--ink-3); font-size: 10px; }
.close-review-result.is-hit b { color: #b45309; }
.close-review-result.is-miss b { color: #64748b; }
.close-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
.close-metrics > div { padding: 9px 11px; border: 1px solid #edf0ee; border-radius: 9px; background: #f8faf9; }
.close-metrics span { display: block; color: var(--ink-3); font-size: 10px; }
.close-metrics b { display: block; margin-top: 2px; font-family: var(--font-num); font-size: 13px; }
.close-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.close-card { padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); }
.close-card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.close-card-head h2 { margin: 2px 0 0; font-size: 17px; }
.close-card-head p { margin: 3px 0 0; color: var(--ink-3); font-size: 10.5px; }
.close-sector-list { display: flex; flex-direction: column; }
.close-sector-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 1px; border-top: 1px dashed #eef1ef; color: inherit; }
.close-sector-row:first-child { border-top: none; }
.close-sector-row b { display: block; font-size: 12px; }
.close-sector-row span { display: block; margin-top: 1px; color: var(--ink-3); font-size: 9.5px; }
.close-sector-row em { flex: none; font-family: var(--font-num); font-size: 11.5px; font-style: normal; font-weight: 700; }
.close-stock-card { margin-top: 12px; }
.close-stock-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
.close-stock { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 7px 1px; border-top: 1px dashed #eef1ef; color: inherit; }
.close-stock:nth-child(-n+2) { border-top: none; }
.close-stock > div:first-child { min-width: 0; }
.close-stock > div:first-child b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
.close-stock > div:first-child span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; color: var(--ink-3); font-size: 9px; }
.close-stock-price { text-align: right; }
.close-stock-price b { display: block; font-family: var(--font-num); font-size: 11.5px; }
.close-stock-price span { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 9.5px; }
.close-stock-flow { min-width: 54px; text-align: right; }
.close-stock-flow span { display: block; color: var(--ink-3); font-size: 8.5px; }
.close-stock-flow b { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 9.5px; }
.close-page .is-up { color: #d92d20; }
.close-page .is-down { color: #079455; }
@media (max-width: 760px) {
  .close-hero { padding: 18px 16px 15px; border-radius: 13px; }
  .close-hero h1 { font-size: 23px; }
  .close-index-card { padding: 10px; }
  .close-index-card > b { font-size: 17px; }
  .close-index-card > em { font-size: 10.5px; }
  .close-review { align-items: flex-start; }
  .close-two-col { grid-template-columns: 1fr; }
  .close-stock-grid { grid-template-columns: 1fr; }
  .close-stock:nth-child(2) { border-top: 1px dashed #eef1ef; }
  .close-stock { grid-template-columns: minmax(0, 1fr) auto; }
  .close-stock-flow { display: none; }
  .close-metrics { gap: 6px; }
  .close-metrics > div { padding: 8px; }
}

/* 模型更新时间条 */
.model-update-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 9px 0 0; padding: 7px 11px; border: 1px solid #dceee7; border-radius: 9px; background: #f6fcf9; color: var(--ink-3); font-size: 10.5px; line-height: 1.5; text-decoration: none; }
.model-update-bar:hover { border-color: #b7ddce; background: #f1fbf6; }
.model-update-dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: #00a877; box-shadow: 0 0 0 3px rgba(0,168,119,.12); }
.model-update-bar b { color: #007a58; font-size: 11px; }
.model-update-bar em { margin-left: auto; color: #007a58; font-style: normal; font-weight: 700; white-space: nowrap; }
.model-update-bar .model-update-next { margin-left: auto; color: #9a7a3c; }
.model-update-home { margin-top: 8px; }
@media (max-width: 640px) {
  .model-update-bar { gap: 4px 8px; font-size: 9.5px; padding: 6px 9px; }
  .model-update-bar b { font-size: 10px; }
  .model-update-bar em { margin-left: 0; }
  .model-update-bar .model-update-next { margin-left: 0; }
}

/* 早盘观察点 */
.morning-watch { margin-top: 12px; padding: 13px 15px 11px; border: 1px solid #e9e4d8; border-radius: 12px; background: #fffdf7; }
.morning-watch .morning-section-head { margin: 0 0 8px; }
.morning-watch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.morning-watch-item { padding: 9px 10px; border: 1px solid #f0eadc; border-radius: 8px; background: #fff; }
.morning-watch-item > span { color: #b39a62; font-family: var(--font-num); font-size: 9px; }
.morning-watch-item b { display: block; margin: 1px 0 2px; font-size: 11.5px; color: #5d4d2e; }
.morning-watch-item p { margin: 0; color: var(--ink-3); font-size: 10px; line-height: 1.6; }
@media (max-width: 760px) { .morning-watch-grid { grid-template-columns: 1fr; } }

/* 模型体检 */
.review-page { padding: 14px 0 38px; }
.review-hero { padding: 22px 24px; border-radius: 15px; color: #fff; background: radial-gradient(circle at 88% 12%, rgba(120,190,255,.24), transparent 30%), linear-gradient(125deg, #172a46, #234a72 58%, #2c6b8f); }
.review-hero .eyebrow { color: #a9d8ff; letter-spacing: .12em; }
.review-hero h1 { margin: 9px 0 5px; font-size: 26px; line-height: 1.3; }
.review-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.75; }
.review-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 11px; }
.review-stat-grid > div { padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow-sm); }
.review-stat-grid span { display: block; color: var(--ink-3); font-size: 10px; }
.review-stat-grid b { display: block; margin-top: 2px; font-family: var(--font-num); font-size: 22px; line-height: 1.25; }
.review-stat-grid small { display: block; margin-top: 1px; color: var(--ink-3); font-size: 9px; }
.review-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 12px; }
.review-card { padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.review-card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.review-card-head h2 { margin: 2px 0 0; font-size: 17px; }
.review-bar-row { display: grid; grid-template-columns: 84px minmax(0,1fr) 48px 42px; align-items: center; gap: 7px; padding: 7px 0; border-top: 1px dashed #eef1ef; font-size: 10.5px; }
.review-bar-row:first-of-type { border-top: none; }
.review-bar { height: 7px; overflow: hidden; border-radius: 999px; background: #eef2f0; }
.review-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #2aa889, #69c9a9); }
.review-bar-row b { text-align: right; font-family: var(--font-num); font-size: 10.5px; }
.review-bar-row small { text-align: right; color: var(--ink-3); font-size: 9px; }
.review-table-card { margin-top: 12px; }
.review-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.review-table { width: 100%; border-collapse: collapse; min-width: 520px; font-size: 11px; }
.review-table th, .review-table td { padding: 7px 8px; border-bottom: 1px solid #eef1ef; text-align: left; white-space: nowrap; }
.review-table th { color: var(--ink-3); font-size: 10px; font-weight: 700; background: #f8faf9; }
.review-chip { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #f1f5f3; color: #44544d; font-size: 9.5px; }
.review-hit { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: 9.5px; font-weight: 700; }
.review-hit.is-hit { color: #007a58; background: #e6f7f0; }
.review-hit.is-miss { color: #8a5a00; background: #fff4e0; }
.review-page .is-up { color: #d92d20; }
.review-page .is-down { color: #079455; }
@media (max-width: 760px) {
  .review-hero { padding: 18px 16px; }
  .review-hero h1 { font-size: 22px; }
  .review-stat-grid { grid-template-columns: 1fr 1fr; }
  .review-two-col { grid-template-columns: 1fr; }
  .review-bar-row { grid-template-columns: 72px minmax(0,1fr) 44px 38px; }
}

/* 分时图 */
.minute-page { padding: 14px 0 34px; }
.minute-tabs .chip { text-decoration: none; }
.minute-date { margin: 7px 0 4px; text-align: center; color: var(--ink-3); font-size: 10.5px; }
.minute-wrap { position: relative; width: 100%; min-height: 340px; padding: 6px 0 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.minute-wrap canvas { display: block; width: 100%; }
.minute-tip { position: absolute; z-index: 2; display: none; min-width: 120px; padding: 6px 8px; border: 1px solid #dfe7e3; border-radius: 7px; background: rgba(255,255,255,.96); box-shadow: 0 6px 18px rgba(25,45,38,.12); color: var(--ink-3); font-size: 9.5px; line-height: 1.6; pointer-events: none; }
.minute-tip b { display: block; color: var(--ink-1); font-size: 10.5px; }
.minute-tip span { display: block; }
.minute-hint { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ink-3); font-size: 11px; }
.minute-guide { margin-top: 12px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.minute-guide h2 { margin: 0 0 8px; font-size: 17px; }
.minute-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.minute-guide-grid > div { padding: 9px 10px; border-radius: 8px; background: #f7faf8; }
.minute-guide-grid b { font-size: 11.5px; color: #35473f; }
.minute-guide-grid p { margin: 4px 0 0; color: var(--ink-3); font-size: 10px; line-height: 1.65; }
.minute-guide-note { margin: 9px 0 0; color: var(--ink-3); font-size: 9.5px; line-height: 1.6; }
@media (max-width: 760px) {
  .minute-wrap { min-height: 300px; border-radius: 10px; }
  .minute-guide-grid { grid-template-columns: 1fr; }
}

/* 早盘自选速览 */
.morning-mylist { margin-top: 12px; padding: 13px 15px 11px; border: 1px solid #dfeae5; border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); }
.morning-mylist .morning-section-head { margin-bottom: 8px; }
.morning-mylist-manage { color: var(--primary-d); font-size: 10.5px; font-weight: 700; }
.morning-mylist-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
.morning-mylist-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; padding: 8px 9px; border: 1px solid #eef2f0; border-radius: 8px; color: inherit; background: #fbfdfc; }
.morning-mylist-item > div { min-width: 0; }
.morning-mylist-item b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
.morning-mylist-item span { display: block; margin-top: 1px; color: var(--ink-3); font-size: 9px; }
.morning-mylist-item strong { align-self: center; font-family: var(--font-num); font-size: 12.5px; }
.morning-mylist-item em { grid-column: 2; text-align: right; font-family: var(--font-num); font-size: 9.5px; font-style: normal; }
.morning-mylist-item .is-up { color: #d92d20; }
.morning-mylist-item .is-down { color: #079455; }
.morning-mylist-empty { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 8px; background: #f7faf8; color: var(--ink-3); font-size: 10.5px; }
.morning-mylist-empty a { color: var(--primary-d); font-weight: 700; }
.morning-mylist-note { margin: 7px 0 0; color: var(--ink-3); font-size: 9px; line-height: 1.5; }
@media (max-width: 760px) { .morning-mylist-grid { grid-template-columns: 1fr 1fr; } }

/* 事件日历 */
.calendar-page { padding: 14px 0 36px; }
.calendar-hero { padding: 21px 23px; border-radius: 14px; color: #fff; background: linear-gradient(125deg, #173a36, #1f5a4e 58%, #2c7a63); }
.calendar-hero .eyebrow { color: #9fe0c6; letter-spacing: .12em; }
.calendar-hero h1 { margin: 9px 0 5px; font-size: 25px; }
.calendar-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: 11.5px; line-height: 1.7; }
.calendar-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 11px; color: rgba(255,255,255,.58); font-size: 9.5px; }
.calendar-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 11px; }
.calendar-toolbar .chips { margin: 0; }
.calendar-list { margin-top: 11px; }
.calendar-day { margin-top: 10px; padding: 11px 15px 6px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.calendar-day-head { display: flex; align-items: baseline; gap: 7px; padding-bottom: 6px; border-bottom: 1px solid #eef2f0; }
.calendar-day-head b { font-family: var(--font-num); font-size: 17px; }
.calendar-day-head span { color: var(--ink-3); font-size: 10px; }
.calendar-day-head em { margin-left: auto; color: var(--ink-3); font-size: 9.5px; font-style: normal; }
.calendar-event { display: flex; align-items: flex-start; gap: 9px; padding: 9px 1px; border-bottom: 1px dashed #eef2f0; }
.calendar-event:last-child { border-bottom: none; }
.calendar-type { flex: none; width: 34px; padding: 2px 0; border-radius: 5px; text-align: center; font-size: 9px; font-weight: 700; }
.calendar-type.type-earn { color: #1d4ed8; background: #eaf1ff; }
.calendar-type.type-unlock { color: #a15c00; background: #fff3df; }
.calendar-type.type-div { color: #007a58; background: #e8f8f1; }
.calendar-event-main { flex: 1; min-width: 0; }
.calendar-event-main b { display: block; font-size: 11.5px; }
.calendar-event-main b small { margin-left: 5px; color: var(--ink-3); font-family: var(--font-num); font-size: 9px; font-weight: 400; }
.calendar-event-main span { display: block; margin-top: 1px; color: var(--ink-2); font-size: 10px; }
.calendar-event-main small { display: block; margin-top: 1px; color: var(--ink-3); font-size: 9px; line-height: 1.5; }
.calendar-link { flex: none; align-self: center; color: var(--primary-d); font-size: 9.5px; font-weight: 700; white-space: nowrap; }
.calendar-guide { margin-top: 12px; padding: 15px 17px; border: 1px solid #e8e3d6; border-radius: 11px; background: #fffdf8; }
.calendar-guide h2 { margin: 0 0 8px; font-size: 17px; }
.calendar-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.calendar-guide-grid > div { padding: 9px 10px; border-radius: 8px; background: #fff; border: 1px solid #f0eadc; }
.calendar-guide-grid b { font-size: 11.5px; color: #5d4d2e; }
.calendar-guide-grid p { margin: 4px 0 0; color: var(--ink-3); font-size: 10px; line-height: 1.65; }
.calendar-note { margin: 9px 0 0; color: var(--ink-3); font-size: 9.5px; }
@media (max-width: 760px) {
  .calendar-hero { padding: 17px 15px; }
  .calendar-hero h1 { font-size: 21px; }
  .calendar-guide-grid { grid-template-columns: 1fr; }
  .calendar-event { gap: 7px; }
}

/* 板块轮动 */
.rotation-page { padding: 14px 0 36px; }
.rotation-hero { padding: 21px 23px; border-radius: 14px; color: #fff; background: linear-gradient(125deg, #142d3d, #1e4d55 55%, #276e5f); }
.rotation-hero .eyebrow { color: #a7e4cf; letter-spacing: .12em; }
.rotation-hero h1 { margin: 9px 0 5px; font-size: 25px; }
.rotation-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: 11.5px; line-height: 1.7; }
.rotation-meta { display: flex; gap: 14px; margin-top: 10px; color: rgba(255,255,255,.55); font-size: 9.5px; }
.rotation-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.rotation-toolbar .chips { margin: 0; }
.rotation-legend { margin: 0; color: var(--ink-3); font-size: 9px; }
.rotation-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.rotation-card { display: block; min-height: 115px; padding: 9px 10px; border: 1px solid #e7ece9; border-radius: 9px; color: var(--ink-1); background: #fff; }
.rotation-card-top { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.rotation-card-top span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); font-size: 8.5px; }
.rotation-card-top small { flex: none; color: var(--ink-3); font-size: 8px; }
.rotation-card > b { display: block; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.rotation-card > strong { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 17px; line-height: 1.25; }
.rotation-periods { display: flex; justify-content: space-between; gap: 2px; margin-top: 4px; color: var(--ink-3); font-size: 8px; }
.rotation-periods em { font-family: var(--font-num); font-style: normal; }
.rotation-flow { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 4px; color: var(--ink-3); font-size: 8px; }
.rotation-card.up1 { background: #f5fbf7; border-color: #d9ede2; }
.rotation-card.up2 { background: #e8f7ee; border-color: #bfe5cc; }
.rotation-card.up3 { background: #d6f2e0; border-color: #9bd6b2; }
.rotation-card.down1 { background: #f8fbf9; border-color: #dfeae4; }
.rotation-card.down2 { background: #edf7f1; border-color: #c9e6d7; }
.rotation-card.down3 { background: #dff1e8; border-color: #a9d8c1; }
.rotation-card.flat { background: #fff; }
.rotation-card > strong { color: #26352f; }
.rotation-card.up1 > strong, .rotation-card.up2 > strong, .rotation-card.up3 > strong { color: #b42318; }
.rotation-card.down1 > strong, .rotation-card.down2 > strong, .rotation-card.down3 > strong { color: #067647; }
.rotation-page .is-up { color: #b42318; }
.rotation-page .is-down { color: #067647; }
.rotation-guide { margin-top: 12px; padding: 15px 17px; border: 1px solid #e6e4d9; border-radius: 11px; background: #fffdf7; }
.rotation-guide h2 { margin: 0 0 8px; font-size: 17px; }
.rotation-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.rotation-guide-grid > div { padding: 9px 10px; border: 1px solid #f0eadc; border-radius: 8px; background: #fff; }
.rotation-guide-grid b { color: #5d4d2e; font-size: 11.5px; }
.rotation-guide-grid p { margin: 4px 0 0; color: var(--ink-3); font-size: 10px; line-height: 1.65; }
.rotation-note { margin: 9px 0 0; color: var(--ink-3); font-size: 9.5px; }
@media (max-width: 1100px) { .rotation-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 860px) { .rotation-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 620px) { .rotation-hero { padding: 17px 15px; } .rotation-hero h1 { font-size: 21px; } .rotation-grid { grid-template-columns: 1fr 1fr; } .rotation-guide-grid { grid-template-columns: 1fr; } }

/* 到价提醒 */
.price-alert-panel { margin: 9px 0 4px; padding: 11px 13px; border: 1px solid #d9ece3; border-radius: 9px; background: #f7fcf9; }
.price-alert-head b { font-size: 12px; color: #0f6b51; }
.price-alert-head span { display: block; margin-top: 2px; color: var(--ink-3); font-size: 9.5px; }
.price-alert-panel form { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 7px; }
.price-alert-panel select, .price-alert-panel input { padding: 6px 8px; border: 1px solid #cfe2d9; border-radius: 6px; background: #fff; font-size: 11px; }
.price-alert-panel input { width: 100px; }
.alert-list-card { margin-top: 12px; padding: 13px 15px; border: 1px solid #dfeae5; border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.alert-list-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.alert-list-head h2 { margin: 2px 0 0; font-size: 17px; }
.alert-list-head > a { color: var(--primary-d); font-size: 10px; font-weight: 700; }
.alert-item { display: flex; align-items: center; gap: 9px; padding: 8px 0; border-top: 1px dashed #eef2f0; }
.alert-item-main { flex: 1; min-width: 0; }
.alert-item-main b { display: block; font-size: 11.5px; }
.alert-item-main b small { margin-left: 5px; color: var(--ink-3); font-family: var(--font-num); font-size: 9px; font-weight: 400; }
.alert-item-main span { display: block; margin-top: 1px; color: var(--ink-3); font-size: 10px; }
.alert-status { flex: none; padding: 2px 7px; border-radius: 999px; font-size: 9px; font-weight: 700; }
.alert-status.is-watching { color: #0f6b51; background: #e8f7f0; }
.alert-status.is-tripped { color: #a15c00; background: #fff3df; }
.alert-item .alert-del { flex: none; padding: 3px 7px; font-size: 9.5px; }
.alert-note { margin: 7px 0 0; color: var(--ink-3); font-size: 9px; line-height: 1.55; }
@media (max-width: 620px) { .price-alert-panel form { gap: 5px; } .price-alert-panel select { width: 100%; } .price-alert-panel input { flex: 1; width: auto; } }

/* 模型因子/版本 */
.morning-sector-why { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0 0 7px; }
.morning-sector-why span { padding: 2px 6px; border-radius: 5px; background: #f5f8f6; font-family: var(--font-num); font-size: 9px; }
.morning-sector-why span.is-up { color: #b42318; }
.morning-sector-why span.is-down { color: #067647; }
.morning-sector-why small { color: var(--ink-3); font-size: 8.5px; }
.review-model-version { margin-top: 6px; color: rgba(255,255,255,.55); font-size: 9.5px; }
.review-version { color: var(--ink-3); font-family: var(--font-num); font-size: 9.5px; }

/* 首页 5 分钟工具卡 */
.home-tools { margin: 14px 0 4px; padding: 14px 15px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); }
.home-tools-head { margin-bottom: 9px; }
.home-tools-head h2 { margin: 2px 0 3px; font-size: 19px; }
.home-tools-head p { margin: 0; color: var(--ink-3); font-size: 10.5px; }
.home-tools-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 7px; }
.home-tools-grid a { display: block; min-height: 92px; padding: 9px 10px; border: 1px solid #edf1ef; border-radius: 8px; background: #fbfdfc; color: inherit; }
.home-tools-grid a:hover { border-color: #b9dfd0; background: #f5fcf8; }
.home-tools-grid b { display: block; font-size: 11.5px; }
.home-tools-grid span { display: block; margin-top: 2px; color: var(--ink-3); font-size: 9.5px; }
.home-tools-grid em { display: block; margin-top: 5px; color: #6b7f76; font-size: 9px; font-style: normal; line-height: 1.5; }
@media (max-width: 900px) { .home-tools-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 620px) { .home-tools-grid { grid-template-columns: 1fr 1fr; } .home-tools-grid a { min-height: 100px; } }

/* K线页公告 */
.kline-ann { margin: 10px 0 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.kline-ann-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.kline-ann-head h2 { margin: 0; font-size: 15px; }
.kline-ann-head span { color: var(--ink-3); font-size: 9px; }
.kline-ann-item { display: flex; gap: 8px; padding: 6px 0; border-top: 1px dashed #eef2f0; color: inherit; }
.kline-ann-item span { flex: none; color: var(--ink-3); font-family: var(--font-num); font-size: 9px; }
.kline-ann-item b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5px; font-weight: 500; }

/* 早盘国内指数卡片（一行不换行） */
.morning-indices { margin-top: 12px; padding: 13px 15px 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); }
.morning-indices-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.morning-indices-head h2 { margin: 2px 0 0; font-size: 18px; }
.morning-strength { color: var(--ink-3); font-size: 10px; white-space: nowrap; }
.morning-strength b { color: var(--primary-d); font-family: var(--font-num); font-size: 12px; }
.morning-index-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.morning-index-card { min-width: 0; padding: 8px 9px; border: 1px solid #edf1ef; border-radius: 8px; background: #fbfdfc; }
.mi-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); font-size: 9.5px; }
.mi-price { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; font-family: var(--font-num); font-size: 17px; line-height: 1.25; }
.mi-chg { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 10px; font-style: normal; font-weight: 700; }
.mi-meta { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 3px; margin-top: 4px; padding-top: 3px; border-top: 1px dashed #edf1ef; color: var(--ink-3); font-size: 8px; white-space: nowrap; }
.mi-meta span { overflow: hidden; text-overflow: ellipsis; }
.morning-index-card .is-up { color: #d92d20; }
.morning-index-card .is-down { color: #079455; }
@media (max-width: 900px) {
  .morning-index-grid { display: flex; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 3px; }
  .morning-index-card { flex: 0 0 140px; }
}

/* 用户栏积分快捷卡 */
.uc-points-card { display: flex; align-items: center; gap: 9px; padding: 10px 12px; background: linear-gradient(120deg, #fffaf0, #fff); border-color: #f0e2bf; text-decoration: none; }
.uc-points-card:hover { border-color: #e5c97f; background: #fff8e8; }
.ucp-ic { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: #fff3d6; font-size: 15px; }
.ucp-info { flex: 1; min-width: 0; }
.ucp-info b { display: block; color: #6b4e1f; font-size: 12px; }
.ucp-info small { display: block; margin-top: 1px; color: #9a7a3c; font-size: 9.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ucp-info em { font-style: normal; }
.uc-points-card > em { flex: none; color: #a15c00; font-size: 9.5px; font-style: normal; font-weight: 700; }
@media (min-width: 900px) {
  .user-rail { max-height: calc(100vh - var(--hdr) - 28px); overflow-y: auto; scrollbar-width: thin; }
}

/* 自选雷达 */
.radar-page { padding: 14px 0 36px; }
.radar-hero { padding: 21px 23px; border-radius: 14px; color: #fff; background: linear-gradient(125deg, #172c47, #234d68 56%, #2d726d); }
.radar-hero .eyebrow { color: #a7e4d9; letter-spacing: .12em; }
.radar-hero h1 { margin: 9px 0 5px; font-size: 25px; }
.radar-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: 11.5px; line-height: 1.7; }
.radar-meta { display: flex; gap: 12px; margin-top: 10px; color: rgba(255,255,255,.55); font-size: 9.5px; }
.radar-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 11px; margin-top: 11px; }
.radar-card { padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.radar-alert { grid-column: 1 / -1; }
.radar-card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.radar-card-head h2 { margin: 2px 0 0; font-size: 17px; }
.radar-card-head a, .radar-card-head > span { color: var(--primary-d); font-size: 9.5px; font-weight: 700; }
.radar-ann-item { display: flex; gap: 8px; padding: 7px 0; border-top: 1px dashed #eef2f0; color: inherit; }
.radar-ann-item:first-of-type { border-top: none; }
.radar-date { flex: none; color: var(--ink-3); font-family: var(--font-num); font-size: 8.5px; }
.radar-ann-item > div { min-width: 0; }
.radar-ann-item b { display: block; font-size: 10.5px; }
.radar-ann-item b small { margin-left: 5px; color: var(--ink-3); font-family: var(--font-num); font-size: 8.5px; font-weight: 400; }
.radar-ann-item > div > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; color: var(--ink-2); font-size: 9.5px; }
.radar-event { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; border-top: 1px dashed #eef2f0; color: inherit; }
.radar-event:first-of-type { border-top: none; }
.radar-event > div { min-width: 0; }
.radar-event b { display: block; font-size: 10.5px; }
.radar-event span { display: block; margin-top: 1px; color: var(--ink-3); font-size: 9px; }
.radar-alert-item { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px dashed #eef2f0; }
.radar-alert-item:first-of-type { border-top: none; }
.radar-alert-item > div { flex: 1; min-width: 0; }
.radar-alert-item b { display: block; font-size: 10.5px; }
.radar-alert-item span { display: block; margin-top: 1px; color: var(--ink-3); font-family: var(--font-num); font-size: 9.5px; }
.radar-alert-item em { flex: none; padding: 2px 7px; border-radius: 999px; font-size: 9px; font-style: normal; font-weight: 700; }
.radar-alert-item em.is-watching { color: #0f6b51; background: #e8f7f0; }
.radar-alert-item em.is-tripped { color: #a15c00; background: #fff3df; }
.radar-guide { margin-top: 12px; padding: 15px 17px; border: 1px solid #e8e3d6; border-radius: 11px; background: #fffdf8; }
.radar-guide h2 { margin: 0 0 8px; font-size: 17px; }
.radar-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.radar-guide-grid > div { padding: 9px 10px; border: 1px solid #f0eadc; border-radius: 8px; background: #fff; }
.radar-guide-grid b { color: #5d4d2e; font-size: 11.5px; }
.radar-guide-grid p { margin: 4px 0 0; color: var(--ink-3); font-size: 10px; line-height: 1.65; }
.radar-note { margin: 9px 0 0; color: var(--ink-3); font-size: 9.5px; }
@media (max-width: 760px) {
  .radar-hero { padding: 17px 15px; }
  .radar-hero h1 { font-size: 21px; }
  .radar-grid { grid-template-columns: 1fr; }
  .radar-alert { grid-column: auto; }
  .radar-guide-grid { grid-template-columns: 1fr; }
}

/* 研究台 */
.research-page { padding: 14px 0 36px; }
.research-hero { padding: 22px 24px; border-radius: 15px; color: #fff; background: linear-gradient(125deg, #1d2939, #284b63 58%, #2d7a6a); }
.research-hero .eyebrow { color: #a7e4d9; letter-spacing: .12em; }
.research-hero h1 { margin: 9px 0 5px; font-size: 26px; }
.research-hero p { margin: 0; color: rgba(255,255,255,.72); font-size: 11.5px; line-height: 1.7; }
.research-picker { margin-top: 11px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.rs-search-row { display: flex; gap: 7px; }
.rs-search-wrap { position: relative; flex: 1; min-width: 0; }
.rs-search-wrap input { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid #dbe5e0; border-radius: 8px; font-size: 12px; background: #fbfdfc; }
.rs-search-wrap input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0,178,122,.09); }
.rs-suggest { position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px); max-height: 260px; overflow-y: auto; padding: 4px; border: 1px solid #dfe7e3; border-radius: 8px; background: #fff; box-shadow: 0 10px 30px rgba(25,45,38,.14); }
.rs-sug-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 7px 8px; border: 0; border-radius: 6px; background: transparent; text-align: left; cursor: pointer; }
.rs-sug-item:hover { background: #f1fbf6; }
.rs-sug-item b { font-size: 11px; color: var(--ink-1); }
.rs-sug-item span { font-family: var(--font-num); font-size: 9.5px; color: var(--ink-3); }
.rs-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; }
.rs-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 5px 3px 8px; border: 1px solid #cdeee1; border-radius: 999px; background: #f2fbf7; }
.rs-chip b { font-size: 10px; color: #0f6b51; }
.rs-chip small { font-family: var(--font-num); font-size: 8.5px; color: #6f857b; }
.rs-chip button { width: 16px; height: 16px; padding: 0; border: 0; border-radius: 50%; background: #dff2e9; color: #4f7a69; font-size: 11px; line-height: 16px; cursor: pointer; }
.rs-chip-empty { color: var(--ink-3); font-size: 9.5px; }
.rs-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; color: var(--ink-3); font-size: 9.5px; }
.rs-quick a { color: var(--primary-d); }
.rs-fav-label { margin-left: 6px; }
.rs-fav-add { padding: 2px 7px; border: 1px solid #d9e7e0; border-radius: 999px; background: #fff; color: #3e574b; font-size: 9px; cursor: pointer; }
.rs-fav-add:hover { border-color: var(--primary); color: var(--primary-d); }
.research-chart-card, .research-table-card { margin-top: 11px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow-sm); }
.research-card-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.research-card-head h2 { margin: 2px 0 0; font-size: 17px; }
.rs-chart-wrap { position: relative; min-height: 260px; }
.rs-chart-wrap canvas { display: block; width: 100%; }
.rs-chart-hint { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ink-3); font-size: 10px; }
.rs-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rs-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 10.5px; }
.rs-table th, .rs-table td { padding: 7px 8px; border-bottom: 1px solid #eef1ef; text-align: right; white-space: nowrap; }
.rs-table th:first-child, .rs-table td:first-child { position: sticky; left: 0; z-index: 1; text-align: left; background: #fff; color: var(--ink-3); font-weight: 500; }
.rs-table th:first-child { background: #f8faf9; }
.rs-table th { background: #f8faf9; color: var(--ink-3); font-weight: 700; }
.rs-table th b { display: block; font-size: 11px; color: var(--ink-1); }
.rs-table th small { display: block; margin-top: 1px; font-family: var(--font-num); font-size: 8px; font-weight: 400; }
.rs-table td.is-up { color: #d92d20; }
.rs-table td.is-down { color: #079455; }
.research-fin-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; margin-top: 11px; }
.research-fin-card { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow-sm); }
.rs-fin-head { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; padding-bottom: 5px; border-bottom: 1px solid #eef2f0; }
.rs-fin-head b { font-size: 13px; }
.rs-fin-head span { color: var(--ink-3); font-size: 9px; }
.rs-fin-main { display: grid; grid-template-columns: 50px 1fr auto; align-items: baseline; gap: 6px; padding: 5px 0 0; }
.rs-fin-main span { color: var(--ink-3); font-size: 9.5px; }
.rs-fin-main b { font-family: var(--font-num); font-size: 13px; }
.rs-fin-main em { font-family: var(--font-num); font-size: 9.5px; font-style: normal; }
.rs-fin-main .is-up { color: #d92d20; }
.rs-fin-main .is-down { color: #079455; }
.rs-fin-meta { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 6px; color: var(--ink-3); font-size: 8.5px; }
.rs-fin-links { margin-top: 7px; display: flex; gap: 10px; }
.rs-fin-links a { color: var(--primary-d); font-size: 9.5px; font-weight: 700; }
.research-guide { margin-top: 12px; padding: 15px 17px; border: 1px solid #e8e3d6; border-radius: 11px; background: #fffdf8; }
.research-guide h2 { margin: 0 0 8px; font-size: 17px; }
.research-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.research-guide-grid > div { padding: 9px 10px; border: 1px solid #f0eadc; border-radius: 8px; background: #fff; }
.research-guide-grid b { color: #5d4d2e; font-size: 11.5px; }
.research-guide-grid p { margin: 4px 0 0; color: var(--ink-3); font-size: 10px; line-height: 1.65; }
.research-note { margin: 9px 0 0; color: var(--ink-3); font-size: 9.5px; }
@media (max-width: 760px) {
  .research-hero { padding: 18px 16px; }
  .research-hero h1 { font-size: 22px; }
  .research-fin-grid { grid-template-columns: 1fr; }
  .research-guide-grid { grid-template-columns: 1fr; }
  .rs-table { min-width: 540px; }
}

/* 首页工具卡标题右侧研究台入口 */
.home-tools-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.home-tools-more { flex: none; color: var(--primary-d); font-size: 10px; font-weight: 700; white-space: nowrap; padding-bottom: 2px; }
@media (max-width: 620px) { .home-tools-head { align-items: flex-start; flex-direction: column; gap: 4px; } }

/* 全局搜索入口 */
.nav-search { display:grid; place-items:center; width:32px; height:32px; margin-left:8px; border-radius:8px; color:var(--ink-2); font-size:15px; flex:none; }
.nav-search:hover { background:var(--primary-l); color:var(--primary-d); }
@media (max-width: 900px) { .nav-search { width:30px; height:30px; margin-left:4px; } }

/* 全局搜索页 */
.search-page { padding:14px 0 36px; }
.search-hero { padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#173b35,#20574c 58%,#2e7a63); }
.search-hero .eyebrow { color:#a7e4cf; letter-spacing:.12em; }
.search-hero h1 { margin:8px 0 10px; font-size:24px; }
.search-bar { display:flex; gap:7px; max-width:760px; }
.search-bar input { flex:1; min-width:0; padding:10px 12px; border:0; border-radius:8px; font-size:13px; }
.search-tabs { margin-top:9px; }
.search-count { margin:12px 0 0; color:var(--ink-3); font-size:10px; }
.search-group { margin-top:10px; padding:13px 15px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow-sm); }
.search-group h2 { margin:0 0 5px; font-size:16px; }
.search-group h2 small { color:var(--ink-3); font-size:9px; font-weight:400; }
.search-row { display:block; padding:8px 0; border-top:1px dashed #eef2f0; color:inherit; }
.search-row:first-of-type { border-top:0; }
.search-row b { display:block; font-size:11.5px; }
.search-row span { display:block; margin-top:1px; color:var(--ink-3); font-size:9.5px; line-height:1.55; }
.search-stock-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.search-stock-grid a { padding:7px 8px; border:1px solid #edf1ef; border-radius:7px; color:inherit; }
.search-stock-grid b { display:block; font-size:11px; }
.search-stock-grid span { display:block; color:var(--ink-3); font-family:var(--font-num); font-size:8.5px; }
.search-stock-grid em { display:block; margin-top:2px; color:var(--primary-d); font-size:8.5px; font-style:normal; }
.search-empty { margin-top:12px; padding:26px; border:1px dashed #dce7e1; border-radius:12px; text-align:center; background:#fff; }
.search-empty b { font-size:15px; }
.search-empty p { margin:4px 0 0; color:var(--ink-3); font-size:10.5px; }
@media (max-width:700px) { .search-stock-grid { grid-template-columns:1fr 1fr; } .search-hero { padding:16px 14px; } .search-hero h1 { font-size:20px; } }

/* 账号注销 */
.account-delete-page { padding:28px 0 44px; }
.account-delete-box { max-width:620px; margin:0 auto; padding:22px 24px; border:1px solid #eadcdc; border-radius:13px; background:#fff; box-shadow:var(--shadow-sm); }
.account-delete-box h1 { margin:4px 0 7px; font-size:24px; }
.account-delete-box > p { color:var(--ink-3); font-size:11px; line-height:1.7; }
.account-delete-box ul { margin:7px 0 12px; padding-left:18px; color:var(--ink-3); font-size:11px; line-height:1.8; }
.account-delete-warn { color:#b42318 !important; font-weight:700; }
@media (max-width:620px) { .account-delete-box { padding:17px 15px; } }

/* 评论举报链接 */
.cmt-report { margin:5px 0 0; font-size:9.5px; }
.cmt-report .report-link { color:#9a7a3c; }

/* 新手路径入口条 */
.start-banner { display:flex; align-items:center; gap:10px; margin-top:8px; padding:9px 12px; border:1px solid #dfe9d9; border-radius:9px; background:#f8fcf3; color:inherit; }
.start-banner:hover { border-color:#b9d8aa; background:#f2faeb; }
.start-banner-ic { flex:none; width:30px; height:30px; display:grid; place-items:center; border-radius:8px; background:#e8f5d9; font-size:15px; }
.start-banner > div { flex:1; min-width:0; }
.start-banner b { display:block; color:#3d5a2e; font-size:11px; }
.start-banner div span { display:block; margin-top:1px; color:#71836a; font-size:9.5px; }
.start-banner em { flex:none; color:#4f7a3a; font-size:9.5px; font-style:normal; font-weight:700; }
@media (max-width:620px) { .start-banner em { display:none; } }

/* 新手学习路径 */
.path-page { padding:14px 0 38px; }
.path-hero { padding:22px 24px; border-radius:15px; color:#fff; background:linear-gradient(125deg,#24391f,#3f6130 56%,#657f3d); }
.path-hero .eyebrow { color:#d4e8a8; letter-spacing:.12em; }
.path-hero h1 { margin:9px 0 5px; font-size:26px; }
.path-hero p { margin:0; max-width:760px; color:rgba(255,255,255,.74); font-size:11.5px; line-height:1.75; }
.path-progress { display:inline-block; margin-top:10px; padding:3px 9px; border-radius:999px; background:rgba(255,255,255,.12); color:#e8f4cf; font-size:9.5px; }
.path-steps { position:relative; margin-top:12px; }
.path-step { display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; margin-top:9px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.path-no { font-family:var(--font-num); font-size:26px; font-weight:800; color:#d9e6cf; line-height:1.1; }
.path-body h2 { margin:2px 0 4px; font-size:19px; }
.path-body > p { margin:0 0 7px; color:var(--ink-3); font-size:11px; line-height:1.65; }
.path-body ul { margin:0 0 9px; padding-left:17px; color:var(--ink-2); font-size:10.5px; line-height:1.85; }
.path-acts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:7px; }
.path-acts .btn { width:100%; font-size:13.5px; padding:9px 6px; }
@media (min-width:900px) { .path-acts { grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); } }
.path-note { margin-top:12px; padding:14px 16px; border:1px solid #ece4cf; border-radius:10px; background:#fffdf6; }
.path-note b { font-size:13px; color:#5d4d2e; }
.path-note p { margin:4px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }
@media (max-width:620px) { .path-hero { padding:17px 15px; } .path-hero h1 { font-size:21px; } .path-step { grid-template-columns:40px minmax(0,1fr); padding:12px; } .path-no { font-size:21px; } }

/* 模拟交易 */
.sim-page { padding:14px 0 38px; }
.sim-hero { padding:22px 24px; border-radius:15px; color:#fff; background:linear-gradient(125deg,#1f3345,#2b5268 56%,#2f7b6b); }
.sim-hero .eyebrow { color:#b8e3d2; letter-spacing:.12em; }
.sim-hero h1 { margin:9px 0 5px; font-size:26px; }
.sim-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11.5px; line-height:1.7; }
.sim-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:11px; }
.sim-stats > div { padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.sim-stats span { display:block; color:var(--ink-3); font-size:9.5px; }
.sim-stats b { display:block; margin-top:2px; font-family:var(--font-num); font-size:19px; }
.sim-stats small { display:block; color:var(--ink-3); font-size:8.5px; }
.sim-stats .is-up { color:#d92d20; }
.sim-stats .is-down { color:#079455; }
.sim-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:10px; margin-top:10px; }
.sim-card { padding:13px 15px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow-sm); }
.sim-card-head { display:flex; align-items:flex-end; justify-content:space-between; gap:7px; margin-bottom:7px; }
.sim-card-head h2 { margin:0; font-size:16px; }
.sim-card-head > span, .sim-card-head a { color:var(--ink-3); font-size:9px; }
.sim-card-head a { color:var(--primary-d); font-weight:700; }
.sim-form .field { margin-bottom:7px; }
.sim-form input { width:100%; box-sizing:border-box; }
.sim-note { margin:7px 0 0; color:var(--ink-3); font-size:9px; line-height:1.55; }
.sim-pos-list { display:flex; flex-direction:column; }
.sim-pos { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; padding:8px 0; border-top:1px dashed #eef2f0; }
.sim-pos:first-child { border-top:0; }
.sim-pos > div:first-child b { display:block; font-size:11px; }
.sim-pos > div:first-child span { display:block; color:var(--ink-3); font-size:9px; }
.sim-pos-px { text-align:right; }
.sim-pos-px b { display:block; font-family:var(--font-num); font-size:12px; }
.sim-pos-px em { display:block; font-family:var(--font-num); font-size:9px; font-style:normal; }
.sim-pos-px .is-up { color:#d92d20; }
.sim-pos-px .is-down { color:#079455; }
.sim-sell { grid-column:1/-1; display:flex; justify-content:flex-end; gap:5px; }
.sim-sell input { width:74px; padding:3px 5px; border:1px solid #e0e8e4; border-radius:5px; font-size:9.5px; }
.sim-trades > div { display:grid; grid-template-columns:24px minmax(0,1fr) auto auto; align-items:center; gap:5px; padding:5px 0; border-top:1px dashed #eef2f0; font-size:10px; }
.sim-trades > div:first-child { border-top:0; }
.sim-trades span { font-weight:700; }
.sim-trades span.is-up { color:#d92d20; }
.sim-trades span.is-down { color:#079455; }
.sim-trades b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sim-trades em { color:var(--ink-3); font-style:normal; font-size:9px; }
.sim-trades small { color:var(--ink-3); font-size:8px; }
.sim-guide ol { margin:0; padding-left:17px; color:var(--ink-2); font-size:10px; line-height:1.9; }
.sim-guide li { margin-bottom:3px; }
@media (max-width:800px) { .sim-grid { grid-template-columns:1fr; } .sim-stats { grid-template-columns:1fr 1fr; } .sim-hero { padding:17px 15px; } .sim-hero h1 { font-size:21px; } }

/* 早盘自选合并进右侧栏（桌面） */
@media (min-width: 900px) { .morning-mylist-main { display: none; } }
.uc-watch-card { padding: 11px 12px; }
.uc-watch-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; margin-bottom: 5px; }
.uc-watch-head b { display: block; color: #26352f; font-size: 11.5px; }
.uc-watch-head span { display: block; margin-top: 1px; color: #8a9a93; font-size: 8.5px; }
.uc-watch-head > a { flex: none; color: var(--primary-d); font-size: 9px; font-weight: 700; }
.uc-watch-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 5px; padding: 5px 0; border-top: 1px dashed #eef2f0; color: inherit; }
.uc-watch-row:first-of-type { border-top: 0; }
.uc-watch-row > div { min-width: 0; }
.uc-watch-row b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5px; }
.uc-watch-row span { display: block; color: #8a9a93; font-family: var(--font-num); font-size: 8px; }
.uc-watch-row strong { font-family: var(--font-num); font-size: 10.5px; }
.uc-watch-row em { grid-column: 2; text-align: right; font-family: var(--font-num); font-size: 8.5px; font-style: normal; }
.uc-watch-row .is-up { color: #d92d20; }
.uc-watch-row .is-down { color: #079455; }
.uc-watch-empty { margin: 3px 0 0; color: #7b8a84; font-size: 9.5px; line-height: 1.6; }
.uc-watch-empty a { color: var(--primary-d); font-weight: 700; }
.review-path-tip { margin:8px 0 0; padding:7px 10px; border:1px solid #dfeae5; border-radius:7px; background:#f7fcf9; color:#647a70; font-size:9.5px; line-height:1.6; }
.review-path-tip a { color:var(--primary-d); font-weight:700; }

/* 顶部导航后置搜索框 */
.nav-search-form { display:flex; align-items:center; gap:5px; flex:0 1 190px; min-width:120px; max-width:210px; margin-left:7px; padding:4px 8px; border:1px solid #dfe8e3; border-radius:8px; background:#f8faf9; }
.nav-search-form:focus-within { border-color:#00b27a; background:#fff; box-shadow:0 0 0 3px rgba(0,178,122,.08); }
.nav-search-ic { flex:none; color:#8a9a93; font-size:12px; line-height:1; }
.nav-search-form input { flex:1; min-width:0; width:100%; padding:0; border:0; outline:none; background:transparent; color:var(--ink-1); font-size:10.5px; line-height:1.6; }
.nav-search-form input::placeholder { color:#9aa9a2; font-size:9.5px; }
.nav-search-mobile { display:none; place-items:center; width:30px; height:30px; border-radius:7px; color:var(--ink-2); font-size:14px; flex:none; }
@media (min-width:900px) and (max-width:1080px) { .nav-search-form { flex-basis:145px; min-width:110px; max-width:155px; } .nav-search-form input::placeholder { font-size:9px; } }
@media (max-width:899px) { .nav-search-form { display:none; } .nav-search-mobile { display:grid; } }

/* 每日一题 */
.quiz-page { padding:14px 0 38px; }
.quiz-hero { padding:21px 23px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#213a31,#345d45 58%,#5e7b3f); }
.quiz-hero .eyebrow { color:#d8e9ae; letter-spacing:.12em; }
.quiz-hero h1 { margin:9px 0 5px; font-size:25px; }
.quiz-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11.5px; }
.quiz-result { margin-top:11px; padding:16px 18px; border:1px solid #dce9d3; border-radius:11px; background:#f8fcf3; text-align:center; }
.quiz-result span { display:block; color:#71836a; font-size:10px; }
.quiz-result > b { display:block; margin-top:2px; color:#365b2e; font-family:var(--font-num); font-size:30px; }
.quiz-result p { margin:4px 0 10px; color:#647a5b; font-size:10.5px; }
.quiz-list { display:flex; flex-direction:column; gap:9px; margin-top:11px; }
.quiz-card { padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow-sm); }
.quiz-card.is-right { border-color:#bfe3d0; }
.quiz-card.is-wrong { border-color:#f0d6b6; }
.quiz-q { display:flex; align-items:flex-start; gap:8px; }
.quiz-q > span { flex:none; width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#eef5e8; color:#4f6a3b; font-family:var(--font-num); font-size:9px; }
.quiz-q b { font-size:12px; line-height:1.65; }
.quiz-q em { margin-left:auto; flex:none; font-size:9px; font-style:normal; font-weight:700; }
.quiz-card.is-right .quiz-q em { color:#079455; }
.quiz-card.is-wrong .quiz-q em { color:#b45309; }
.quiz-opts { display:flex; flex-direction:column; gap:5px; margin:9px 0 0 28px; }
.quiz-opts label { display:flex; align-items:flex-start; gap:5px; padding:6px 8px; border:1px solid #edf1ef; border-radius:6px; color:var(--ink-2); font-size:10.5px; line-height:1.55; cursor:pointer; }
.quiz-opts label:hover { background:#f7fbf5; border-color:#d8e8cd; }
.quiz-opts b { color:#4f6a3b; }
.quiz-pick { margin:9px 0 0 28px; color:#647a5b; font-size:10px; line-height:1.6; }
.quiz-why { margin:5px 0 0 28px; padding:7px 9px; border-radius:6px; background:#f8faf7; color:#5f746c; font-size:10px; line-height:1.7; }
.quiz-submit { display:flex; gap:7px; margin-top:4px; }
.quiz-guide { margin-top:12px; padding:14px 16px; border:1px solid #e8e3d6; border-radius:10px; background:#fffdf8; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.quiz-guide h2 { grid-column:1/-1; margin:0; font-size:16px; }
.quiz-guide > div { padding:9px 10px; border:1px solid #f0eadc; border-radius:7px; background:#fff; }
.quiz-guide b { font-size:11px; color:#5d4d2e; }
.quiz-guide p { margin:3px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.6; }
@media (max-width:700px) { .quiz-hero { padding:17px 15px; } .quiz-hero h1 { font-size:21px; } .quiz-guide { grid-template-columns:1fr; } .quiz-q b { font-size:11.5px; } }
.path-faq { margin-top:12px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.path-faq h2 { margin:0 0 6px; font-size:17px; }
.path-faq details { padding:7px 0; border-top:1px dashed #eef2f0; }
.path-faq details:first-of-type { border-top:0; }
.path-faq summary { cursor:pointer; color:#35473f; font-size:11px; font-weight:700; }
.path-faq p { margin:5px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }

/* 学习目录 */
.study-page { padding:14px 0 38px; }
.study-hero { padding:22px 24px; border-radius:15px; color:#fff; background:linear-gradient(125deg,#1f3a33,#315a49 58%,#617b3f); }
.study-hero .eyebrow { color:#d6e8b0; letter-spacing:.12em; }
.study-hero h1 { margin:9px 0 5px; font-size:26px; }
.study-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11.5px; }
.study-hero-acts { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.study-block { margin-top:12px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.study-block-head { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-bottom:8px; }
.study-block-head h2 { margin:2px 0 0; font-size:19px; }
.study-block-head > span { color:var(--ink-3); font-size:9.5px; }
.study-plan { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.study-plan a { display:flex; flex-direction:column; padding:9px 9px; border:1px solid #e7eee7; border-radius:8px; background:#fbfdf9; color:inherit; }
.study-plan a:hover { border-color:#b9d8aa; background:#f4faee; }
.study-plan b { color:#4f7a3a; font-family:var(--font-num); font-size:9px; }
.study-plan strong { margin-top:2px; font-size:11px; }
.study-plan span { margin-top:3px; color:var(--ink-3); font-size:8.5px; line-height:1.55; }
.study-plan em { margin-top:auto; padding-top:5px; color:var(--primary-d); font-size:8.5px; font-style:normal; font-weight:700; }
.study-dir { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.study-dir-col h3 { margin:0 0 5px; padding-bottom:5px; border-bottom:1px solid #eef2ef; font-size:12px; }
.study-dir-col a { display:block; padding:6px 0; border-bottom:1px dashed #f0f3f1; color:inherit; }
.study-dir-col a:last-child { border-bottom:0; }
.study-dir-col b { display:block; font-size:10.5px; }
.study-dir-col span { display:block; margin-top:1px; color:var(--ink-3); font-size:8.5px; line-height:1.5; }
.study-note { margin-top:12px; padding:14px 16px; border:1px solid #ece4cf; border-radius:10px; background:#fffdf6; }
.study-note b { font-size:12px; color:#5d4d2e; }
.study-note p { margin:4px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }
@media (max-width:1000px) { .study-plan { grid-template-columns:repeat(4,1fr); } .study-dir { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .study-hero { padding:17px 15px; } .study-hero h1 { font-size:21px; } .study-plan { grid-template-columns:1fr 1fr; } .study-dir { grid-template-columns:1fr; } .study-block-head > span { display:none; } }

/* 研究台：对比后的看点、模型、趋势跟踪 */
.rs-insight-wrap { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.rs-insights { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px; }
.rs-insight { padding:10px 11px; border:1px solid #e8f0e8; border-radius:8px; background:#fbfdf9; }
.rs-insight > span { display:block; color:var(--ink-3); font-size:9px; }
.rs-insight > b { display:block; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.rs-insight > em { display:block; margin-top:1px; font-family:var(--font-num); font-size:18px; font-style:normal; font-weight:700; color:#35473f; }
.rs-insight > em.is-up { color:#d92d20; }
.rs-insight > em.is-down { color:#079455; }
.rs-insight > small { display:block; margin-top:3px; color:var(--ink-3); font-size:8.5px; line-height:1.5; }
.rs-insight-note { margin:8px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.6; }
.rs-model { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.rs-model-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rs-model-main { padding:11px 12px; border:1px solid #e8f0e8; border-radius:8px; background:#fbfdf9; }
.rs-model-main > span { display:block; color:var(--ink-3); font-size:9px; }
.rs-model-main > b { display:block; margin-top:2px; color:#2f5d45; font-family:var(--font-num); font-size:25px; }
.rs-model-main > small { display:block; color:var(--ink-3); font-size:8.5px; }
.rs-model-main > p { margin:5px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.65; }
.rs-model-links { padding:10px 12px; border:1px solid #edf1ef; border-radius:8px; }
.rs-model-links > b { display:block; margin-bottom:5px; font-size:11px; }
.rs-model-links a { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:5px 0; border-top:1px dashed #eef2f0; color:var(--ink-2); font-size:9.5px; }
.rs-model-links a:first-of-type { border-top:0; }
.rs-model-links a span { color:var(--primary-d); }
.rs-next { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.rs-next-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.rs-next-grid a { display:block; padding:9px 10px; border:1px solid #e8f0e8; border-radius:7px; background:#fbfdf9; color:inherit; }
.rs-next-grid a:hover { border-color:#b9d8aa; background:#f4faee; }
.rs-next-grid b { display:block; font-size:10.5px; }
.rs-next-grid span { display:block; margin-top:2px; color:var(--ink-3); font-size:8.5px; line-height:1.45; }
.rs-next-list { margin:8px 0 0; padding-left:17px; color:var(--ink-2); font-size:10px; line-height:1.8; }
.rs-next-list b { color:#35473f; }
@media (max-width:800px) { .rs-insights { grid-template-columns:1fr 1fr; } .rs-model-grid { grid-template-columns:1fr; } .rs-next-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .rs-next-grid { grid-template-columns:1fr; } }

/* 安装 App / PWA */
.app-page { padding:14px 0 38px; }
.app-hero { display:flex; align-items:center; gap:18px; padding:22px 24px; border-radius:15px; color:#fff; background:linear-gradient(125deg,#173b35,#20574c 58%,#2e7a63); }
.app-icon { flex:none; width:82px; height:82px; border-radius:18px; box-shadow:0 8px 22px rgba(0,0,0,.2); }
.app-hero .eyebrow { color:#a7e4cf; letter-spacing:.12em; }
.app-hero h1 { margin:7px 0 4px; font-size:25px; }
.app-hero p { margin:0; max-width:680px; color:rgba(255,255,255,.74); font-size:11.5px; line-height:1.7; }
.app-hero-acts { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.app-status { margin-top:7px; color:#c9e9dc; font-size:9.5px; }
.app-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:11px; }
.app-card { padding:14px 16px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:var(--shadow-sm); }
.app-card h2 { margin:0 0 6px; font-size:17px; }
.app-card p { margin:0; color:var(--ink-3); font-size:10.5px; line-height:1.7; }
.app-card ol { margin:7px 0 0; padding-left:17px; color:var(--ink-2); font-size:10.5px; line-height:1.9; }
.app-what { margin-top:10px; }
.app-what-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:7px; }
.app-what-grid > div { padding:9px 10px; border:1px solid #e8f0e8; border-radius:7px; background:#fbfdf9; }
.app-what-grid b { display:block; font-size:11px; }
.app-what-grid span { display:block; margin-top:2px; color:var(--ink-3); font-size:8.5px; line-height:1.5; }
.app-note { margin:8px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.65; }
.app-note-box { margin-top:10px; padding:13px 15px; border:1px solid #ece4cf; border-radius:9px; background:#fffdf6; }
.app-note-box b { font-size:12px; color:#5d4d2e; }
.app-note-box p { margin:4px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }
@media (max-width:800px) { .app-grid { grid-template-columns:1fr; } .app-what-grid { grid-template-columns:1fr 1fr; } .app-hero { align-items:flex-start; padding:17px 15px; } .app-icon { width:60px; height:60px; border-radius:14px; } .app-hero h1 { font-size:21px; } }

/* PWA 独立模式：避开刘海和底部手势区 */
@media (display-mode: standalone) {
  .appbar { padding-top: env(safe-area-inset-top); }
  .tabbar { padding-bottom: env(safe-area-inset-bottom); }
}

/* 手机端：能并排的尽量并排 */
@media (max-width: 620px) {
  .study-plan a { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:4px; }
  .study-plan b { grid-column:1; grid-row:1; margin:0; }
  .study-plan strong { grid-column:2; grid-row:1; margin:0; }
  .study-plan span { grid-column:1/-1; grid-row:2; }
  .study-plan em { grid-column:1/-1; grid-row:3; }
  .rs-insight { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:5px; }
  .rs-insight > span { grid-column:1/-1; grid-row:1; }
  .rs-insight > b { grid-column:1; grid-row:2; }
  .rs-insight > em { grid-column:2; grid-row:2; margin:0; font-size:16px; }
  .rs-insight > small { grid-column:1/-1; grid-row:3; }
  .app-what-grid { grid-template-columns:1fr 1fr; }
}
.app-apk { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:1px solid #cfe6d9; border-radius:11px; background:#f2fbf5; }
.app-apk h2 { margin:2px 0 3px; font-size:18px; }
.app-apk p { margin:0; color:#63796e; font-size:10.5px; line-height:1.65; }
.app-apk .eyebrow { color:#3d8b64; }
.app-apk > a { flex:none; }
@media (max-width:700px) { .app-apk { align-items:flex-start; flex-direction:column; } }
.nav-logout { margin-left:2px; flex:none; }
.nav-logout button { display:flex; align-items:center; gap:3px; padding:5px 7px; border:0; border-radius:7px; background:transparent; color:#7b8a84; font-size:10px; cursor:pointer; }
.nav-logout button:hover { background:#f3f7f5; color:#b42318; }
.nav-logout-ic { font-size:13px; line-height:1; }
@media (max-width:620px) { .nav-logout-tx { display:none; } .nav-logout button { padding:7px; } }
.video-fav-row { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:5px 0 8px; }
.video-fav-row .muted-sm { font-size:9.5px; }
/* 页脚 App 下载 */
.foot-app { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:12px 0; padding:13px 16px; border:1px solid #cfe6d9; border-radius:10px; background:#f2fbf5; }
.foot-app-kicker { display:block; color:#3d8b64; font-size:8.5px; font-weight:800; letter-spacing:.12em; }
.foot-app-info b { display:block; margin-top:1px; color:#1f3d31; font-size:14px; }
.foot-app-info p { margin:2px 0 0; color:#63796e; font-size:10px; line-height:1.6; }
.foot-app-acts { display:flex; flex-wrap:wrap; gap:6px; flex:none; }
@media (max-width:700px) { .foot-app { align-items:flex-start; flex-direction:column; } .foot-app-acts { width:100%; } .foot-app-acts .btn { flex:1; text-align:center; } }
.nav-app { display:flex; align-items:center; gap:3px; flex:none; margin-left:2px; padding:5px 7px; border-radius:7px; color:#087a50; background:#eef8f1; font-size:10px; font-weight:700; text-decoration:none; }
.nav-app:hover { background:#dff2e7; }
.nav-app-ic { font-size:13px; line-height:1; }
@media (max-width:1180px) { .nav-app-tx { display:none; } .nav-app { padding:6px 7px; } }
@media (max-width:620px) { .nav-app { padding:7px; } }
/* APP 内新版本提示 */
.app-update-bar { position:fixed; left:12px; right:12px; bottom:calc(48px + env(safe-area-inset-bottom)); z-index:9999; display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid #b8dfc8; border-radius:10px; background:#f0fbf4; box-shadow:0 8px 24px rgba(20,50,38,.16); }
.app-update-txt { flex:1; min-width:0; }
.app-update-txt b { display:block; color:#155c3c; font-size:12px; }
.app-update-txt span { display:block; margin-top:1px; color:#5f7b6d; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.app-update-go { flex:none; padding:5px 9px; border-radius:6px; background:#00a877; color:#fff; font-size:10px; font-weight:700; text-decoration:none; }
.app-update-close { flex:none; width:24px; height:24px; border:0; background:transparent; color:#7b8a84; font-size:16px; cursor:pointer; }
@media (max-width:620px) { .app-update-bar { left:8px; right:8px; bottom:calc(58px + env(safe-area-inset-bottom)); } }
/* APP 内精简页脚 */
.app-foot { padding:12px 0 calc(12px + env(safe-area-inset-bottom)); }
.app-foot .container { display:flex; flex-direction:column; gap:5px; }
.app-foot-risk { margin:0; color:#6b7b73; font-size:10px; line-height:1.6; }
.app-foot-risk b { color:#3d5a4e; }
.app-foot-links { display:flex; flex-wrap:wrap; align-items:center; gap:9px; color:#8a9a93; font-size:9px; }
.app-foot-links a { color:#087a50; font-weight:700; }
.app-foot-links span { margin-left:auto; }
.foot-mobile-links { display:none; }
@media (max-width:620px) {
  .site-foot .foot-util-bar, .site-foot .foot-app { display:none; }
  .site-foot .foot-statement-body p:not(.foot-risk) { display:none; }
  .foot-mobile-links { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 0; }
  .foot-mobile-links a { color:#087a50; font-size:10px; font-weight:700; }
  .site-foot .foot-statement { padding-bottom:10px; }
}
/* 网站声明与导航 */
.site-info-page { padding:14px 0 38px; }
.si-hero { padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#1d3930,#2e5c47 58%,#4d7040); }
.si-hero .eyebrow { color:#cfe6ae; letter-spacing:.12em; }
.si-hero h1 { margin:8px 0 4px; font-size:25px; }
.si-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11px; }
.si-card { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.si-card h2 { margin:0 0 6px; font-size:17px; }
.si-card p { margin:5px 0 0; color:var(--ink-2); font-size:10.5px; line-height:1.8; }
.si-risk { padding:9px 11px; border-left:3px solid #00b27a; border-radius:0 6px 6px 0; background:#f2fbf5; color:#355b49 !important; }
.si-links { display:flex; flex-wrap:wrap; gap:5px 12px; margin-top:5px; }
.si-links a { color:#087a50; font-size:10.5px; font-weight:600; }
.si-meta { color:var(--ink-3) !important; font-size:9.5px !important; }
@media (max-width:620px) { .si-hero { padding:17px 15px; } .si-hero h1 { font-size:21px; } .si-card { padding:12px 13px; } .si-links { gap:6px 10px; } }
/* 午间点评 */
.midday-page { padding:14px 0 38px; }
.midday-hero { margin-top:8px; padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#183a38,#285b50 58%,#547044); }
.midday-hero-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.midday-hero .eyebrow { color:#d2e8b5; letter-spacing:.12em; }
.midday-stamp { color:rgba(255,255,255,.62); font-family:var(--font-num); font-size:9px; }
.midday-hero h1 { margin:8px 0 4px; font-size:25px; }
.midday-hero > p { margin:0; color:rgba(255,255,255,.72); font-size:11px; line-height:1.7; }
.midday-hero-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:11px; }
.midday-hero-stats > div { padding:8px 9px; border:1px solid rgba(255,255,255,.14); border-radius:8px; background:rgba(255,255,255,.07); }
.midday-hero-stats span { display:block; color:rgba(255,255,255,.6); font-size:8.5px; }
.midday-hero-stats b { display:block; margin-top:2px; color:#fff; font-family:var(--font-num); font-size:16px; }
.midday-hero-stats b.is-up { color:#ffb4a8; }
.midday-hero-stats b.is-down { color:#9ee6c2; }
.midday-refresh { margin:7px 0 0; font-size:9px; }
.midday-refresh a { color:#d3efd5; }
.midday-block { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow-sm); }
.midday-head { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-bottom:7px; }
.midday-head h2 { margin:2px 0 0; font-size:18px; }
.midday-head > a, .midday-head > span { color:var(--ink-3); font-size:9px; }
.midday-head > a { color:var(--primary-d); font-weight:700; }
.midday-indices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.midday-index { padding:9px 10px; border:1px solid #e8f0e8; border-radius:7px; background:#fbfdf9; }
.midday-index > span { display:block; color:var(--ink-3); font-size:9px; }
.midday-index > b { display:block; margin-top:2px; font-family:var(--font-num); font-size:17px; }
.midday-index > em { display:block; font-family:var(--font-num); font-size:10px; font-style:normal; }
.midday-note { margin:7px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.65; }
.midday-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.midday-themes > div { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:3px 6px; padding:6px 0; border-top:1px dashed #eef2f0; }
.midday-themes > div:first-child { border-top:0; }
.midday-dot { width:6px; height:6px; border-radius:50%; background:#079455; }
.midday-dot.is-down { background:#d92d20; }
.midday-themes b { font-size:10.5px; }
.midday-themes em { font-family:var(--font-num); font-size:10px; font-style:normal; }
.midday-themes small { grid-column:2/-1; color:var(--ink-3); font-size:8.5px; }
.midday-favs a { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:6px; padding:6px 0; border-top:1px dashed #eef2f0; color:inherit; }
.midday-favs a:first-child { border-top:0; }
.midday-favs span b { display:block; font-size:10.5px; }
.midday-favs span small { display:block; color:var(--ink-3); font-family:var(--font-num); font-size:8px; }
.midday-favs strong { font-family:var(--font-num); font-size:10.5px; }
.midday-favs em { font-family:var(--font-num); font-size:9px; font-style:normal; }
.midday-bias-row { display:flex; flex-wrap:wrap; gap:5px 12px; align-items:baseline; font-size:10px; }
.midday-bias-row span { color:var(--ink-3); }
.midday-bias-row b { color:#35473f; }
.midday-next ul { margin:5px 0 0; padding-left:17px; color:var(--ink-2); font-size:10px; line-height:1.9; }
.midday-next-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.midday-next-links a { padding:4px 8px; border-radius:6px; background:#eef8f1; color:#087a50; font-size:9.5px; font-weight:700; }
.midday-disclaimer { margin:10px 0 0; color:var(--ink-3); font-size:9px; line-height:1.6; }
@media (max-width:700px) { .midday-hero { padding:16px 14px; } .midday-hero h1 { font-size:21px; } .midday-hero-stats { grid-template-columns:1fr 1fr; } .midday-indices { grid-template-columns:1fr 1fr; } .midday-grid { grid-template-columns:1fr; } .midday-block { padding:12px 13px; } }
/* 研究台登录/积分门槛 */
.research-gate { margin-top:10px; padding:16px 18px; border:1px solid #dfeae5; border-radius:11px; background:#f8fcf9; }
.research-gate b { display:block; color:#264d3d; font-size:16px; }
.research-gate p { margin:4px 0 9px; color:#63796e; font-size:11px; line-height:1.7; }
.research-gate .btn { margin-right:6px; }
.research-cost { margin:8px 0 0; padding:7px 10px; border:1px solid #e4efe7; border-radius:7px; background:#f8fcf9; color:#4f6a5c; font-size:10px; }
.research-cost b { color:#087a50; }
/* 术语闪卡 */
.flash-page { padding:14px 0 38px; }
.flash-hero { padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#263b2e,#3f6041 58%,#6d7d43); }
.flash-hero .eyebrow { color:#d9e9b5; letter-spacing:.12em; }
.flash-hero h1 { margin:8px 0 4px; font-size:25px; }
.flash-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11px; }
.flash-card { margin-top:11px; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow-sm); text-align:center; }
.flash-meta { display:flex; justify-content:space-between; gap:8px; color:var(--ink-3); font-size:9px; }
.flash-term { margin:18px 0 3px; color:#234034; font-size:34px; font-weight:800; letter-spacing:1px; }
.flash-pin { color:#7b8a84; font-family:var(--font-num); font-size:11px; }
.flash-answer { max-width:620px; margin:14px auto 0; text-align:left; border:1px dashed #d9e5dd; border-radius:8px; background:#fbfdf9; }
.flash-answer summary { padding:9px 12px; cursor:pointer; color:#087a50; font-size:11px; font-weight:700; }
.flash-answer p { margin:0; padding:0 12px 12px; color:var(--ink-2); font-size:11px; line-height:1.8; }
.flash-acts { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:13px; }
.flash-tips { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:11px; }
.flash-tips h2 { grid-column:1/-1; margin:0; font-size:17px; }
.flash-tips > div { padding:10px 11px; border:1px solid #e8efe9; border-radius:8px; background:#fbfdf9; }
.flash-tips b { font-size:11px; color:#35473f; }
.flash-tips p { margin:3px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.6; }
@media (max-width:620px) { .flash-hero { padding:16px 15px; } .flash-hero h1 { font-size:21px; } .flash-term { font-size:28px; } .flash-tips { grid-template-columns:1fr; } .flash-card { padding:14px 13px; } }
/* 新手任务/成就 */
.task-page { padding:14px 0 38px; }
.task-hero { padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#1f3c32,#386046 58%,#718047); }
.task-hero .eyebrow { color:#d8e9b6; letter-spacing:.12em; }
.task-hero h1 { margin:8px 0 4px; font-size:26px; }
.task-hero p { margin:0; color:rgba(255,255,255,.73); font-size:11px; line-height:1.7; }
.task-progress { position:relative; display:flex; align-items:center; gap:8px; height:24px; margin-top:11px; padding:0 10px; border-radius:999px; background:rgba(255,255,255,.13); overflow:hidden; }
.task-progress b { position:relative; z-index:1; font-family:var(--font-num); font-size:11px; }
.task-progress span { position:relative; z-index:1; color:#d7e9c6; font-size:9px; }
.task-progress i { position:absolute; left:0; top:0; bottom:0; background:rgba(214,244,190,.25); border-radius:999px; }
.task-list { display:flex; flex-direction:column; gap:7px; margin-top:11px; }
.task-item { display:flex; align-items:center; gap:9px; padding:12px 14px; border:1px solid var(--line); border-radius:9px; background:#fff; color:inherit; }
.task-item:hover { border-color:#bfdcc9; background:#fbfdf9; }
.task-item.is-done { background:#f7fcf4; border-color:#d3e8cc; }
.task-ic { flex:none; width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:#f2f8f1; font-size:15px; }
.task-tx { flex:1; min-width:0; }
.task-tx b { display:block; font-size:11.5px; }
.task-tx small { display:block; margin-top:1px; color:var(--ink-3); font-size:9px; }
.task-count { flex:none; color:var(--ink-3); font-family:var(--font-num); font-size:10px; }
.task-arrow { flex:none; color:var(--primary-d); font-size:9px; font-weight:700; }
.task-item.is-done .task-arrow { color:#7b9a79; }
.task-badges { margin-top:11px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.task-badges h2 { margin:0 0 7px; font-size:17px; }
.badge-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.badge-item { padding:9px 8px; border:1px solid #edf1ed; border-radius:8px; background:#fbfcfb; text-align:center; opacity:.55; }
.badge-item.is-on { opacity:1; border-color:#d7e8cd; background:#f7fcf3; }
.badge-item span { display:block; font-size:17px; }
.badge-item b { display:block; margin-top:2px; font-size:10px; }
.badge-item small { display:block; margin-top:1px; color:var(--ink-3); font-size:8px; line-height:1.4; }
.task-note { margin-top:11px; padding:13px 15px; border:1px solid #ece4cf; border-radius:9px; background:#fffdf6; }
.task-note b { font-size:12px; color:#5d4d2e; }
.task-note p { margin:4px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }
.task-note a { color:var(--primary-d); font-weight:700; }
/* 错题本 */
.wrong-page .quiz-submit { align-items:center; }
@media (max-width:700px) { .task-hero { padding:17px 15px; } .task-hero h1 { font-size:22px; } .badge-grid { grid-template-columns:1fr 1fr; } .task-item { padding:10px 11px; } .task-count { display:none; } }
.sim-sell { flex-wrap:wrap; }
.sim-sell input[name="note"] { flex:1 1 150px; width:auto; min-width:120px; }
.sim-trade-note { grid-column:2/-1; color:#71836a !important; font-size:8.5px !important; line-height:1.5; }
/* 视频笔记 */
.video-transcript { margin:9px 0; padding:9px 11px; border:1px dashed #dce8df; border-radius:8px; background:#fbfdf9; }
.video-transcript summary { cursor:pointer; color:#087a50; font-size:10.5px; font-weight:700; }
.video-transcript p { margin:6px 0 0; color:var(--ink-2); font-size:10px; line-height:1.8; white-space:normal; }
.video-note { margin-top:10px; padding:11px 12px; border:1px solid #e4eee7; border-radius:9px; background:#fbfdf9; }
.video-note-head { display:flex; align-items:baseline; justify-content:space-between; gap:6px; }
.video-note-head b { font-size:11.5px; }
.video-note-head span { color:var(--ink-3); font-size:8.5px; }
.video-note textarea { width:100%; box-sizing:border-box; min-height:78px; margin-top:6px; padding:8px 9px; border:1px solid #e0e9e3; border-radius:7px; font:inherit; font-size:10.5px; line-height:1.7; resize:vertical; }
.video-note-acts { display:flex; align-items:center; gap:8px; margin-top:6px; }
/* 学习专题 */
.guide-page { padding:14px 0 38px; }
.guide-hero { padding:21px 23px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#233c35,#355f4a 58%,#697b46); }
.guide-hero .eyebrow { color:#d5e8b4; letter-spacing:.12em; }
.guide-hero h1 { margin:8px 0 4px; font-size:26px; }
.guide-hero p { margin:0; color:rgba(255,255,255,.72); font-size:11px; line-height:1.7; }
.guide-card { margin-top:10px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.guide-card h2 { margin:0 0 7px; font-size:17px; }
.guide-card ul, .guide-card ol { margin:0; padding-left:18px; color:var(--ink-2); font-size:10.5px; line-height:1.9; }
.guide-card li { margin-bottom:3px; }
.guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.guide-grid > div { padding:10px 11px; border:1px solid #e9f0e9; border-radius:8px; background:#fbfdf9; }
.guide-grid b { display:block; font-size:11px; color:#35473f; }
.guide-grid span { display:block; margin-top:3px; color:var(--ink-3); font-size:9.5px; line-height:1.65; }
.guide-note { margin:7px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.7; }
.guide-table-wrap { overflow-x:auto; }
.guide-table { width:100%; border-collapse:collapse; font-size:10px; }
.guide-table th, .guide-table td { padding:7px 8px; border-bottom:1px solid #eef2ef; text-align:left; }
.guide-table th { color:#4b5d55; background:#f7fbf8; }
@media (max-width:620px) { .guide-hero { padding:17px 15px; } .guide-hero h1 { font-size:21px; } .guide-grid { grid-template-columns:1fr; } .guide-card { padding:12px 13px; } }
.path-hero-acts { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
/* 顶部搜索联想 */
.nav-search-form { position:relative; }
.nav-suggest { position:absolute; left:0; right:0; top:calc(100% + 5px); z-index:80; padding:5px; border:1px solid #dfe8e3; border-radius:9px; background:#fff; box-shadow:0 10px 28px rgba(31,45,40,.14); max-height:300px; overflow:auto; }
.nav-suggest a { display:grid; grid-template-columns:34px minmax(0,1fr); gap:0 5px; padding:6px 7px; border-radius:6px; color:inherit; text-decoration:none; }
.nav-suggest a:hover { background:#f3faf6; }
.nav-suggest .ns-type { grid-row:1; align-self:center; color:#8a9a93; font-size:8px; }
.nav-suggest b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10.5px; }
.nav-suggest small { grid-column:2; color:#8a9a93; font-size:8px; }
@media (max-width:899px) { .nav-suggest { display:none !important; } }
/* APP 启动推广 */
.app-splash { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:22px; background:rgba(12,24,20,.56); backdrop-filter:blur(3px); }
.app-splash-card { width:min(360px,100%); padding:18px; border-radius:16px; background:#fff; box-shadow:0 20px 55px rgba(0,0,0,.25); text-align:center; }
.app-splash-card img { width:100%; max-height:300px; object-fit:cover; border-radius:11px; display:block; margin:0 auto 12px; }
.app-splash-card h2 { margin:0 0 5px; font-size:21px; color:#1f3b30; }
.app-splash-card p { margin:0; color:#6b7b73; font-size:11px; line-height:1.7; }
.app-splash-acts { display:flex; justify-content:center; gap:7px; margin-top:13px; }
.app-splash-acts .btn { font-size:11px; }
.app-splash-skip { color:#7b8a84; border-color:#e3eae6; }
/* 手机浏览器不再显示右上角下载 App（改由页脚/安装页承载） */
@media (max-width:899px) { .nav-app { display:none !important; } }

/* APP 内：收起网页顶部导航，保留品牌、搜索图标、账号与退出 */
body.shb-app .topnav,
body.shb-app .nav-search-form,
body.shb-app .nav-app,
body.shb-app .lang-sw { display:none !important; }
body.shb-app .appbar .row { height:50px; }
body.shb-app .appbar .ttl { display:block; flex:1; min-width:0; font-size:15px; }
body.shb-app .u-name { max-width:72px; }

/* 手机端三张说明卡尽量一行 */
@media (min-width:420px) and (max-width:700px) {
  .quiz-guide, .flash-tips, .research-guide-grid, .minute-guide-grid,
  .calendar-guide-grid, .rotation-guide-grid, .radar-guide-grid,
  .morning-market-metrics, .close-metrics, .close-index-grid {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 5px !important;
  }
  .quiz-guide > div, .flash-tips > div, .research-guide-grid > div,
  .minute-guide-grid > div, .calendar-guide-grid > div, .rotation-guide-grid > div,
  .radar-guide-grid > div, .morning-market-metrics > div, .close-metrics > div,
  .close-index-grid > div { padding: 7px 6px !important; }
  .quiz-guide b, .flash-tips b, .research-guide-grid b, .minute-guide-grid b,
  .calendar-guide-grid b, .rotation-guide-grid b, .radar-guide-grid b { font-size: 9.5px !important; line-height:1.35; }
  .quiz-guide p, .flash-tips p, .research-guide-grid p, .minute-guide-grid p,
  .calendar-guide-grid p, .rotation-guide-grid p, .radar-guide-grid p { font-size: 8px !important; line-height:1.45; }
}
/* 手机学习入口：6 个固定入口，3 列 2 行，避免最后一行空一格 */
@media (max-width:820px) {
  .learn-tools { gap:7px; margin:12px 0 4px; }
  .lt-item { gap:4px; padding:9px 4px; border-radius:9px; font-size:11px; }
  .lt-ic { font-size:15px; }
}
@media (min-width:900px) {
  .learn-tools { grid-template-columns:repeat(6,minmax(0,1fr)); max-width:820px; }
}
/* 其它卡片组的孤行/空格处理 */
@media (max-width:900px) {
  .home-tools-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .study-plan a:last-child { grid-column:1/-1; }
  .badge-grid .badge-item:last-child { grid-column:1/-1; }
  .grid-2 > a.feature:last-child:nth-child(odd) { grid-column:1/-1; }
}
/* 积分流水折叠 */
.pts-log-fold > summary { cursor:pointer; list-style:none; margin:0; }
.pts-log-fold > summary::-webkit-details-marker { display:none; }
.pts-log-fold > summary::after { content:'展开'; flex:none; margin-left:8px; color:var(--primary-d); font-size:10px; font-weight:700; }
.pts-log-fold[open] > summary::after { content:'收起'; }
.pts-log-fold[open] > summary { margin-bottom:8px; }
/* 页脚举报邮箱：默认不显示，点击弹窗 */
.foot-mail-reveal { border:0; background:none; padding:0; color:inherit; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.foot-mail-modal { position:fixed; inset:0; z-index:10001; display:grid; place-items:center; padding:20px; background:rgba(15,28,23,.5); }
.foot-mail-box { width:min(340px,100%); padding:18px; border-radius:14px; background:#fff; box-shadow:0 20px 50px rgba(0,0,0,.22); }
.foot-mail-box b { display:block; color:#1f3b30; font-size:16px; }
.foot-mail-box p { margin:8px 0 13px; padding:8px 10px; border:1px solid #e2ece6; border-radius:8px; background:#fbfdf9; font-family:var(--font-num); font-size:12px; word-break:break-all; }
.foot-mail-acts { display:flex; gap:8px; }
/* 全部积分流水 */
.pts-log-more { margin:2px 0 8px; font-size:10px; }
.pts-log-more a { color:var(--primary-d); font-weight:700; }
.pts-log-page { padding:14px 0 38px; }
.pts-pager { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:10px; font-size:11px; color:var(--ink-3); }
/* 专题内容折叠章节 */
.guide-fold { margin-top:10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.guide-fold > summary { padding:13px 16px; cursor:pointer; color:#2e493c; font-size:15px; font-weight:700; }
.guide-fold > summary::marker { color:var(--primary); }
.guide-fold > .guide-fold-body { margin:0; padding:0 16px 14px; border:0; border-radius:0; background:transparent; }
.guide-fold > .guide-fold-body h2 { display:none; }
@media (max-width:620px) { .guide-fold > summary { padding:11px 13px; font-size:14px; } .guide-fold > .guide-fold-body { padding:0 13px 12px; } }
/* 模型历史：默认 5 条，其余折叠 */
.fx-more-history, .review-more-history { margin-top:9px; border:1px dashed #dce8e1; border-radius:8px; background:#fbfdf9; }
.fx-more-history > summary, .review-more-history > summary { padding:8px 11px; cursor:pointer; color:var(--primary-d); font-size:10.5px; font-weight:700; }
.fx-more-history[open], .review-more-history[open] { padding-bottom:2px; }
.fx-more-history .fx-table-wrap, .review-more-history .review-table-wrap { margin:0; }
/* 周末要闻 */
.weekend-page { padding:14px 0 38px; }
.weekend-hero { padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(125deg,#1e3830,#35604a 58%,#6a7c4d); }
.weekend-hero .eyebrow { color:#d6e8b7; letter-spacing:.12em; }
.weekend-hero h1 { margin:8px 0 4px; font-size:26px; }
.weekend-hero p { margin:0; color:rgba(255,255,255,.73); font-size:11px; line-height:1.7; }
.weekend-meta { display:flex; flex-wrap:wrap; gap:9px 16px; margin-top:10px; color:#cfe4cb; font-size:9px; }
.weekend-list { margin-top:10px; border:1px solid var(--line); border-radius:10px; background:#fff; overflow:hidden; }
.weekend-item { display:grid; grid-template-columns:40px minmax(0,1fr) 16px; align-items:center; gap:7px; padding:11px 13px; border-bottom:1px solid #eef2ef; color:inherit; }
.weekend-item:last-child { border-bottom:0; }
.weekend-item:hover { background:#f7fcf9; }
.weekend-date { color:#8a9a92; font-family:var(--font-num); font-size:9px; }
.weekend-tx { min-width:0; }
.weekend-tx b { display:block; color:#263d33; font-size:11px; line-height:1.55; }
.weekend-tx small { display:block; margin-top:2px; color:#8a9a92; font-size:8.5px; }
.weekend-arrow { color:var(--primary-d); font-size:12px; }
.weekend-more { margin-top:8px; border:1px dashed #dce8e1; border-radius:9px; background:#fbfdf9; }
.weekend-more > summary { padding:9px 12px; cursor:pointer; color:var(--primary-d); font-size:10.5px; font-weight:700; }
.weekend-empty { margin-top:10px; padding:18px; border:1px dashed #dce8e1; border-radius:10px; background:#fbfdf9; }
.weekend-empty b { color:#365347; }
.weekend-empty p { margin:4px 0 0; color:var(--ink-3); font-size:10px; line-height:1.7; }
.weekend-note { margin-top:11px; padding:13px 15px; border:1px solid #ece4cf; border-radius:9px; background:#fffdf6; }
.weekend-note b { color:#5d4d2e; font-size:11px; }
.weekend-note p { margin:4px 0 0; color:var(--ink-3); font-size:9.5px; line-height:1.75; }
/* 资讯存档：最近 7 天保留原文链接，超过 7 天只留标题（外链取消） */
.news-archive { margin-top:9px; border:1px dashed #dce8e1; border-radius:9px; background:#fbfdf9; }
.news-archive > summary { padding:9px 12px; cursor:pointer; color:var(--primary-d); font-size:10.5px; font-weight:700; }
.news-archive-list { list-style:none; margin:0; padding:0 12px 8px; }
.news-archive-list li { display:grid; grid-template-columns:34px minmax(0,1fr) 70px; gap:7px; align-items:baseline; padding:5px 0; border-top:1px solid #eef3ef; font-size:10.5px; color:var(--ink-2); }
.news-archive-list li:first-child { border-top:0; }
.na-date { color:var(--ink-3); font-variant-numeric:tabular-nums; }
.na-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.na-src { text-align:right; color:var(--ink-3); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.news-archive-note { margin:0; padding:0 12px 10px; color:var(--ink-3); font-size:9px; line-height:1.6; }
@media (max-width:620px){ .news-archive-list li{grid-template-columns:30px minmax(0,1fr) 60px;font-size:10px} }
@media (max-width:620px){ .weekend-hero{padding:17px 15px} .weekend-hero h1{font-size:22px} .weekend-item{grid-template-columns:34px minmax(0,1fr) 14px;padding:10px} }
/* 财经快讯：紧凑列表 */
.flashnews-page { padding:12px 0 34px; }
.flashnews-head { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; padding:4px 2px 8px; border-bottom:1px solid var(--line); }
.flashnews-head h1 { margin:3px 0 0; font-size:22px; }
.flashnews-meta { display:flex; gap:9px; color:var(--ink-3); font-size:9px; font-family:var(--font-num); }
.flashnews-list { border:1px solid var(--line); border-radius:9px; background:#fff; overflow:hidden; margin-top:9px; }
.flashnews-item { display:grid; grid-template-columns:38px minmax(0,1fr) 58px; gap:7px; align-items:start; padding:8px 10px; border-bottom:1px solid #f0f3f1; color:inherit; }
.flashnews-item:last-child { border-bottom:0; }
.flashnews-item:hover { background:#f8fcf9; }
.fn-time { color:#8a9a92; font-family:var(--font-num); font-size:8.5px; padding-top:2px; }
.fn-body { min-width:0; }
.fn-body b { display:block; color:#2b4036; font-size:10.5px; line-height:1.5; }
.fn-body em { display:block; margin-top:1px; color:#7d8d85; font-size:9px; font-style:normal; line-height:1.5; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; }
.fn-src { color:#8a9a92; font-size:8px; text-align:right; padding-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:620px){ .flashnews-head h1{font-size:20px} .flashnews-item{grid-template-columns:34px minmax(0,1fr) 48px;padding:7px 8px} .fn-src{font-size:7.5px} }
/* 模型子导航：9 个 Tab 适配，避免最后一个被截断 */
.fx-subnav { gap:4px; }
.fx-subnav a { font-size:12px; padding:5px 9px; }
.fx-pts-chip { font-size:11px; padding:4px 9px; }
@media (max-width:1100px) {
  .fx-subnav a { font-size:11px; padding:5px 7px; }
  .fx-pts-chip { font-size:10px; padding:4px 7px; }
}
@media (max-width:700px) {
  .fx-subnav { gap:4px; padding:8px 0 2px; }
  .fx-subnav a { font-size:10px; padding:5px 6px; }
  .fx-pts-chip { font-size:9px; padding:4px 6px; }
}

/* ===== v10.26 全站公告弹窗 ===== */
html.ann-open, html.ann-open body { overflow: hidden; }
.ann-mask { display: none; position: fixed; inset: 0; z-index: 10020; place-items: center; padding: 22px; background: rgba(15, 28, 23, .52); backdrop-filter: blur(3px); }
.ann-mask.show { display: grid; animation: annFade .18s ease; }
.ann-mask.hide { opacity: 0; transition: opacity .2s; }
.ann-card { width: min(360px, 100%); max-height: calc(100vh - 48px); overflow: auto; background: #fff; border-radius: 18px; padding: 22px 20px 16px; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, .28); animation: annPop .22s cubic-bezier(.2, .9, .3, 1.2); }
.ann-ic { width: 52px; height: 52px; margin: 0 auto 10px; border-radius: 50%; display: grid; place-items: center; font-size: 26px; background: var(--primary-l); }
.ann-card h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.4; color: var(--ink); }
.ann-body { text-align: left; font-size: 13.5px; line-height: 1.9; color: var(--ink-2); margin: 0 0 16px; word-break: break-word; }
.ann-hint { margin: 10px 0 0; font-size: 11px; color: var(--ink-3); }
@keyframes annFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes annPop { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@media (max-width: 400px) { .ann-mask { padding: 14px; } .ann-card { padding: 18px 16px 14px; } .ann-card h3 { font-size: 17px; } .ann-body { font-size: 13px; } }/* 手机底部 5 个等宽窗口（无中间发布键） */
@media (max-width:620px) {
  .tabbar a { font-size:11px; gap:3px; }
  .tabbar a .ic { font-size:21px; }
}
/* 6 个底部窗口：小屏再收一档 */
@media (max-width:620px) { .tabbar a { font-size:10.5px; } .tabbar a .ic { font-size:20px; } }
@media (max-width:380px) { .tabbar a { font-size:9.5px; } .tabbar a .ic { font-size:18px; } }
/* 扫码付款：左二维码，右金额/积分 */
.pay-qr-card { display:grid; grid-template-columns:minmax(230px, .9fr) minmax(0, 1.1fr); gap:18px; margin:12px 0; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.pay-qr-col { min-width:0; text-align:center; border-right:1px dashed #e3ece6; padding-right:18px; }
.pay-qr-col .fx-card-h { text-align:left; }
.pay-qr-col .pts-qr-wrap { margin:8px auto 10px; }
.pay-qr-col .pts-qr { max-width:210px; width:100%; }
.pay-qr-col .pay-info-jump { width:100%; max-width:260px; }
.pay-side-contact { margin:7px 0 0; color:var(--ink-3); font-size:9px; line-height:1.6; }
.pay-side-col { min-width:0; }
.pay-side-col h4 { margin:0 0 8px; color:#263d33; font-size:14px; }
.pay-side-list { display:flex; flex-direction:column; gap:6px; }
.pay-side-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 8px; padding:8px 10px; border:1px solid #e5eee7; border-radius:8px; background:#fbfdf9; color:inherit; }
.pay-side-item.active { border-color:var(--primary); background:var(--primary-l); }
.pay-side-item span { font-size:11px; font-weight:700; }
.pay-side-item b { color:#a35b00; font-family:var(--font-num); font-size:12px; }
.pay-side-item small { grid-column:1/-1; color:var(--ink-3); font-size:9px; }
.pay-side-points { margin-top:9px; padding:8px 10px; border:1px solid #ece4cf; border-radius:8px; background:#fffdf6; color:#6b5b3d; font-size:10px; }
.pay-side-points b { font-family:var(--font-num); font-size:15px; color:#a35b00; }
.pay-side-points small { display:block; color:#9a8b6c; font-size:9px; }
@media (max-width:620px) { .pay-qr-card { grid-template-columns:1fr; padding:12px; gap:10px; } .pay-qr-col { border-right:0; border-bottom:1px dashed #e3ece6; padding:0 0 10px; } .pay-qr-col .pts-qr { max-width:190px; } .pay-side-item { padding:8px; } }
.pay-side-item { font:inherit; text-align:left; cursor:pointer; }
.pay-side-item:hover { border-color:#b9d8c8; background:#f6fbf8; }
.pay-side-list .pay-side-item { width:100%; }
.pay-side-points-buy { border-color:#ead8ad; background:#fffdf4; }
.pay-side-points-buy.is-disabled { opacity:.55; cursor:not-allowed; }
.pay-pack-radios { display:none !important; }
.pay-member-brief { margin-top:9px; padding:9px 10px; border:1px solid #e6efe7; border-radius:8px; background:#fbfdf9; }
.pay-member-brief b { display:block; margin-bottom:3px; color:#365347; font-size:10px; }
.pay-member-brief p { margin:2px 0 0; color:var(--ink-3); font-size:9px; line-height:1.65; }
.pay-side-item small { line-height:1.55; }
.pay-side-benefit { color:#8d9c95; font-size:8.5px; font-style:normal; text-align:right; white-space:nowrap; align-self:center; }
.pay-side-points { display:grid; grid-template-columns:auto 1fr auto; gap:2px 7px; align-items:baseline; }
.pay-side-points span { font-size:9px; }
.pay-side-points b { font-family:var(--font-num); font-size:15px; color:#a35b00; }
.pay-side-points em { color:#9a8b6c; font-size:8px; font-style:normal; text-align:right; }
.pay-side-points small { grid-column:1/-1; display:block; color:#9a8b6c; font-size:9px; }
.pay-points-form { margin:0; }
.pay-points-form .pay-side-item { width:100%; }
/* 积分购买：积分/会员田字格 */
.pay-side-list.is-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.pay-side-list.is-grid .pay-side-item { grid-template-columns:minmax(0,1fr) auto; align-content:start; padding:9px; }
.pay-side-list.is-grid .pay-side-item span { grid-column:1; grid-row:1; }
.pay-side-list.is-grid .pay-side-item b { grid-column:2; grid-row:1; align-self:start; }
.pay-side-list.is-grid .pay-side-benefit { grid-column:1/-1; grid-row:2; text-align:left; }
.pay-side-list.is-grid .pay-side-item small { grid-column:1/-1; grid-row:3; }
.pay-member-item { border-color:#eadfbf; background:#fffdf7; }
.pay-member-item:hover { background:#fffaf0; }
@media (max-width:420px) { .pay-side-list.is-grid { grid-template-columns:1fr; } }
